From 689c8c8247c757979bd28221b9122e205acf1873 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Mon, 5 Oct 2015 13:24:14 +1100 Subject: [PATCH 001/450] Update list of effective TLD names. --- data/definitions.txt | 1355 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 1250 insertions(+), 105 deletions(-) diff --git a/data/definitions.txt b/data/definitions.txt index f8941f7a..fbedda46 100644 --- a/data/definitions.txt +++ b/data/definitions.txt @@ -713,7 +713,19 @@ cx gov.cx // cy : http://en.wikipedia.org/wiki/.cy -*.cy +ac.cy +biz.cy +com.cy +ekloges.cy +gov.cy +ltd.cy +name.cy +net.cy +org.cy +parliament.cy +press.cy +pro.cy +tm.cy // cz : http://en.wikipedia.org/wiki/.cz cz @@ -826,6 +838,7 @@ edu.et biz.et name.et info.et +net.et // eu : http://en.wikipedia.org/wiki/.eu eu @@ -932,6 +945,11 @@ org.gi // gl : http://en.wikipedia.org/wiki/.gl // http://nic.gl gl +co.gl +com.gl +edu.gl +net.gl +org.gl // gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm gm @@ -1113,8 +1131,16 @@ web.id ie gov.ie -// il : http://en.wikipedia.org/wiki/.il -*.il +// il : http://www.isoc.org.il/domains/ +il +ac.il +co.il +gov.il +idf.il +k12.il +muni.il +net.il +org.il // im : https://www.nic.im/ // Submitted by registry 2013-11-15 @@ -3571,6 +3597,7 @@ ltd.lk assn.lk grp.lk hotel.lk +ac.lk // lr : http://psg.com/dns/lr/lr.txt // Submitted by registry 2008-06-17 @@ -3647,7 +3674,7 @@ gov.me its.me priv.me -// mg : http://www.nic.mg/tarif.htm +// mg : http://nic.mg/nicmg/?page_id=39 mg org.mg nom.mg @@ -3657,6 +3684,7 @@ tm.mg edu.mg mil.mg com.mg +co.mg // mh : http://en.wikipedia.org/wiki/.mh mh @@ -4412,9 +4440,9 @@ mobi.ng // ni : http://www.nic.ni/dominios.htm *.ni -// nl : http://www.domain-registry.nl/ace.php/c,728,122,,,,Home.html -// Confirmed by registry (with technical -// reservations) 2008-06-08 +// nl : http://en.wikipedia.org/wiki/.nl +// https://www.sidn.nl/ +// ccTLD for the Netherlands nl // BV.nl will be a registry for dutch BV's (besloten vennootschap) @@ -5304,14 +5332,11 @@ gos.pk info.pk // pl http://www.dns.pl/english/index.html -// confirmed on 26.09.2014 from Bogna Tchórzewska +// updated by .PL registry on 2015-04-28 pl com.pl net.pl org.pl -info.pl -waw.pl -gov.pl // pl functional domains (http://www.dns.pl/english/index.html) aid.pl agro.pl @@ -5321,6 +5346,7 @@ biz.pl edu.pl gmina.pl gsm.pl +info.pl mail.pl miasta.pl media.pl @@ -5342,16 +5368,55 @@ tm.pl tourism.pl travel.pl turystyka.pl -// Government domains (administred by ippt.gov.pl) -uw.gov.pl -um.gov.pl +// Government domains +gov.pl +ap.gov.pl +ic.gov.pl +is.gov.pl +us.gov.pl +kmpsp.gov.pl +kppsp.gov.pl +kwpsp.gov.pl +psp.gov.pl +wskr.gov.pl +kwp.gov.pl +mw.gov.pl ug.gov.pl +um.gov.pl +umig.gov.pl +ugim.gov.pl upow.gov.pl +uw.gov.pl starostwo.gov.pl +pa.gov.pl +po.gov.pl +psse.gov.pl +pup.gov.pl +rzgw.gov.pl +sa.gov.pl so.gov.pl sr.gov.pl -po.gov.pl -pa.gov.pl +wsa.gov.pl +sko.gov.pl +uzs.gov.pl +wiih.gov.pl +winb.gov.pl +pinb.gov.pl +wios.gov.pl +witd.gov.pl +wzmiuw.gov.pl +piw.gov.pl +wiw.gov.pl +griw.gov.pl +wif.gov.pl +oum.gov.pl +sdn.gov.pl +zp.gov.pl +uppo.gov.pl +mup.gov.pl +wuoz.gov.pl +konsulat.gov.pl +oirm.gov.pl // pl regional domains (http://www.dns.pl/english/index.html) augustow.pl babia-gora.pl @@ -5459,6 +5524,7 @@ ustka.pl walbrzych.pl warmia.pl warszawa.pl +waw.pl wegrow.pl wielun.pl wlocl.pl @@ -6245,10 +6311,6 @@ zhytomyr.ua zp.ua zt.ua -// Private registries in .ua -co.ua -pp.ua - // ug : https://www.registry.co.ug/ ug co.ug @@ -6621,114 +6683,147 @@ edu.ws yt // IDN ccTLDs -// Please sort by ISO 3166 ccTLD, then punicode string -// when submitting patches and follow this format: -// ("" ) : -// [optional sponsoring org] -// +// When submitting patches, please maintain a sort by ISO 3166 ccTLD, then +// U-label, and follow this format: +// // A-Label ("", [, variant info]) : +// // [sponsoring org] +// U-Label -// xn--mgbaam7a8h ("Emerat" Arabic) : AE +// xn--mgbaam7a8h ("Emerat", Arabic) : AE // http://nic.ae/english/arabicdomain/rules.jsp امارات -// xn--54b7fta0cc ("Bangla" Bangla) : BD +// xn--y9a3aq ("hye", Armenian) : AM +// ISOC AM (operated by .am Registry) +հայ + +// xn--54b7fta0cc ("Bangla", Bangla) : BD বাংলা -// xn--fiqs8s ("China" Chinese-Han-Simplified <.Zhongguo>) : CN +// xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY +// Operated by .by registry +бел + +// xn--fiqs8s ("Zhongguo/China", Chinese, Simplified) : CN // CNNIC // http://cnnic.cn/html/Dir/2005/10/11/3218.htm 中国 -// xn--fiqz9s ("China" Chinese-Han-Traditional <.Zhongguo>) : CN +// xn--fiqz9s ("Zhongguo/China", Chinese, Traditional) : CN // CNNIC // http://cnnic.cn/html/Dir/2005/10/11/3218.htm 中國 -// xn--lgbbat1ad8j ("Algeria / Al Jazair" Arabic) : DZ +// xn--lgbbat1ad8j ("Algeria/Al Jazair", Arabic) : DZ الجزائر -// xn--wgbh1c ("Egypt" Arabic .masr) : EG +// xn--wgbh1c ("Egypt/Masr", Arabic) : EG // http://www.dotmasr.eg/ مصر -// xn--node ("ge" Georgian (Mkhedruli)) : GE +// xn--node ("ge", Georgian Mkhedruli) : GE გე -// xn--j6w193g ("Hong Kong" Chinese-Han) : HK +// xn--qxam ("el", Greek) : GR +// Hellenic Ministry of Infrastructure, Transport, and Networks +ελ + +// xn--j6w193g ("Hong Kong", Chinese) : HK // https://www2.hkirc.hk/register/rules.jsp 香港 -// xn--h2brj9c ("Bharat" Devanagari) : IN +// xn--h2brj9c ("Bharat", Devanagari) : IN // India भारत -// xn--mgbbh1a71e ("Bharat" Arabic) : IN +// xn--mgbbh1a71e ("Bharat", Arabic) : IN // India بھارت -// xn--fpcrj9c3d ("Bharat" Telugu) : IN +// xn--fpcrj9c3d ("Bharat", Telugu) : IN // India భారత్ -// xn--gecrj9c ("Bharat" Gujarati) : IN +// xn--gecrj9c ("Bharat", Gujarati) : IN // India ભારત -// xn--s9brj9c ("Bharat" Gurmukhi) : IN +// xn--s9brj9c ("Bharat", Gurmukhi) : IN // India ਭਾਰਤ -// xn--45brj9c ("Bharat" Bengali) : IN +// xn--45brj9c ("Bharat", Bengali) : IN // India ভারত -// xn--xkc2dl3a5ee0h ("India" Tamil) : IN +// xn--xkc2dl3a5ee0h ("India", Tamil) : IN // India இந்தியா -// xn--mgba3a4f16a ("Iran" Persian) : IR +// xn--mgba3a4f16a ("Iran", Persian) : IR ایران -// xn--mgba3a4fra ("Iran" Arabic) : IR +// xn--mgba3a4fra ("Iran", Arabic) : IR ايران -// xn--mgbayh7gpa ("al-Ordon" Arabic) : JO +// xn--mgbtx2b ("Iraq", Arabic) : IQ +// Communications and Media Commission +عراق + +// xn--mgbayh7gpa ("al-Ordon", Arabic) : JO // National Information Technology Center (NITC) // Royal Scientific Society, Al-Jubeiha الاردن -// xn--3e0b707e ("Republic of Korea" Hangul) : KR +// xn--3e0b707e ("Republic of Korea", Hangul) : KR 한국 -// xn--80ao21a ("Kaz" Kazakh) : KZ +// xn--80ao21a ("Kaz", Kazakh) : KZ қаз -// xn--fzc2c9e2c ("Lanka" Sinhalese-Sinhala) : LK +// xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK // http://nic.lk ලංකා -// xn--xkc2al3hye2a ("Ilangai" Tamil) : LK +// xn--xkc2al3hye2a ("Ilangai", Tamil) : LK // http://nic.lk இலங்கை -// xn--mgbc0a9azcg ("Morocco / al-Maghrib" Arabic) : MA +// xn--mgbc0a9azcg ("Morocco/al-Maghrib", Arabic) : MA المغرب -// xn--l1acc ("mon" Mongolian) : MN +// xn--d1alf ("mkd", Macedonian) : MK +// MARnet +мкд + +// xn--l1acc ("mon", Mongolian) : MN мон -// xn--mgbx4cd0ab ("Malaysia" Malay) : MY +// xn--mix891f ("Macao", Chinese, Traditional) : MO +// MONIC / HNET Asia (Registry Operator for .mo) +澳門 + +// xn--mix082f ("Macao", Chinese, Simplified) : MO +澳门 + +// xn--mgbx4cd0ab ("Malaysia", Malay) : MY مليسيا -// xn--mgb9awbf ("Oman" Arabic) : OM +// xn--mgb9awbf ("Oman", Arabic) : OM عمان -// xn--ygbi2ammx ("Falasteen" Arabic) : PS +// xn--mgbai9azgqp6j ("Pakistan", Urdu/Arabic) : PK +پاکستان + +// xn--mgbai9a5eva00b ("Pakistan", Urdu/Arabic, variant) : PK +پاكستان + +// xn--ygbi2ammx ("Falasteen", Arabic) : PS // The Palestinian National Internet Naming Authority (PNINA) // http://www.pnina.ps فلسطين -// xn--90a3ac ("srb" Cyrillic) : RS +// xn--90a3ac ("srb", Cyrillic) : RS // http://www.rnids.rs/en/the-.срб-domain срб пр.срб @@ -6738,62 +6833,66 @@ yt упр.срб ак.срб -// xn--p1ai ("rf" Russian-Cyrillic) : RU +// xn--p1ai ("rf", Russian-Cyrillic) : RU // http://www.cctld.ru/en/docs/rulesrf.php рф -// xn--wgbl6a ("Qatar" Arabic) : QA +// xn--wgbl6a ("Qatar", Arabic) : QA // http://www.ict.gov.qa/ قطر -// xn--mgberp4a5d4ar ("AlSaudiah" Arabic) : SA +// xn--mgberp4a5d4ar ("AlSaudiah", Arabic) : SA // http://www.nic.net.sa/ السعودية -// xn--mgberp4a5d4a87g ("AlSaudiah" Arabic) variant : SA +// xn--mgberp4a5d4a87g ("AlSaudiah", Arabic, variant) : SA السعودیة -// xn--mgbqly7c0a67fbc ("AlSaudiah" Arabic) variant : SA +// xn--mgbqly7c0a67fbc ("AlSaudiah", Arabic, variant) : SA السعودیۃ -// xn--mgbqly7cvafr ("AlSaudiah" Arabic) variant : SA +// xn--mgbqly7cvafr ("AlSaudiah", Arabic, variant) : SA السعوديه -// xn--ogbpf8fl ("Syria" Arabic) : SY -سورية - -// xn--mgbtf8fl ("Syria" Arabic) variant : SY -سوريا +// xn--mgbpl2fh ("sudan", Arabic) : SD +// Operated by .sd registry +سودان -// xn--yfro4i67o Singapore ("Singapore" Chinese-Han) : SG +// xn--yfro4i67o Singapore ("Singapore", Chinese) : SG 新加坡 -// xn--clchc0ea0b2g2a9gcd ("Singapore" Tamil) : SG +// xn--clchc0ea0b2g2a9gcd ("Singapore", Tamil) : SG சிங்கப்பூர் -// xn--o3cw4h ("Thai" Thai) : TH +// xn--ogbpf8fl ("Syria", Arabic) : SY +سورية + +// xn--mgbtf8fl ("Syria", Arabic, variant) : SY +سوريا + +// xn--o3cw4h ("Thai", Thai) : TH // http://www.thnic.co.th ไทย -// xn--pgbs0dh ("Tunis") : TN +// xn--pgbs0dh ("Tunisia", Arabic) : TN // http://nic.tn تونس -// xn--kpry57d ("Taiwan" Chinese-Han-Traditional) : TW +// xn--kpry57d ("Taiwan", Chinese, Traditional) : TW // http://www.twnic.net/english/dn/dn_07a.htm 台灣 -// xn--kprw13d ("Taiwan" Chinese-Han-Simplified) : TW +// xn--kprw13d ("Taiwan", Chinese, Simplified) : TW // http://www.twnic.net/english/dn/dn_07a.htm 台湾 -// xn--nnx388a ("Taiwan") variant : TW +// xn--nnx388a ("Taiwan", Chinese, variant) : TW 臺灣 -// xn--j1amh ("ukr" Cyrillic) : UA +// xn--j1amh ("ukr", Cyrillic) : UA укр -// xn--mgb2ddes ("AlYemen" Arabic) : YE +// xn--mgb2ddes ("AlYemen", Arabic) : YE اليمن // xxx : http://icmregistry.com @@ -6802,8 +6901,24 @@ xxx // ye : http://www.y.net.ye/services/domain_name.htm *.ye -// za : http://www.zadna.org.za/slds.html -*.za +// za : http://www.zadna.org.za/content/page/domain-information +ac.za +agrica.za +alt.za +co.za +edu.za +gov.za +grondar.za +law.za +mil.za +net.za +ngo.za +nis.za +nom.za +org.za +school.za +tm.za +web.za // zm : http://en.wikipedia.org/wiki/.zm *.zm @@ -6812,20 +6927,38 @@ xxx *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-04-07T06:02:08Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-09-25T01:37:01Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa +// aarp : 2015-05-21 AARP +aarp + +// abarth : 2015-07-30 Fiat Chrysler Automobiles N.V. +abarth + // abb : 2014-10-24 ABB Ltd abb // abbott : 2014-07-24 Abbott Laboratories, Inc. abbott +// abbvie : 2015-07-30 AbbVie Inc. +abbvie + +// abc : 2015-07-30 Disney Enterprises, Inc. +abc + +// able : 2015-06-25 Able Inc. +able + // abogado : 2014-04-24 Top Level Domain Holdings Limited abogado +// abudhabi : 2015-07-30 Abu Dhabi Systems and Information Centre +abudhabi + // academy : 2013-11-07 Half Oaks, LLC academy @@ -6847,6 +6980,9 @@ active // actor : 2013-12-12 United TLD Holdco Ltd. actor +// adac : 2015-07-16 Allgemeiner Deutscher Automobil-Club e.V. (ADAC) +adac + // ads : 2014-12-04 Charleston Road Registry Inc. ads @@ -6856,6 +6992,12 @@ adult // aeg : 2015-03-19 Aktiebolaget Electrolux aeg +// aetna : 2015-05-21 Aetna Life Insurance Company +aetna + +// afamilycompany : 2015-07-23 Johnson Shareholdings, Inc. +afamilycompany + // afl : 2014-10-02 Australian Football League afl @@ -6865,18 +7007,33 @@ africa // africamagic : 2015-03-05 Electronic Media Network (Pty) Ltd africamagic +// agakhan : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) +agakhan + // agency : 2013-11-14 Steel Falls, LLC agency // aig : 2014-12-18 American International Group, Inc. aig +// aigo : 2015-08-06 aigo Digital Technology Co,Ltd. +aigo + +// airbus : 2015-07-30 Airbus S.A.S. +airbus + // airforce : 2014-03-06 United TLD Holdco Ltd. airforce // airtel : 2014-10-24 Bharti Airtel Limited airtel +// akdn : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) +akdn + +// alfaromeo : 2015-07-31 Fiat Chrysler Automobiles N.V. +alfaromeo + // alibaba : 2015-01-15 Alibaba Group Holding Limited alibaba @@ -6886,9 +7043,33 @@ alipay // allfinanz : 2014-07-03 Allfinanz Deutsche Vermögensberatung Aktiengesellschaft allfinanz +// allstate : 2015-07-31 Allstate Fire and Casualty Insurance Company +allstate + +// ally : 2015-06-18 Ally Financial Inc. +ally + // alsace : 2014-07-02 REGION D ALSACE alsace +// alstom : 2015-07-30 ALSTOM +alstom + +// americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc. +americanexpress + +// americanfamily : 2015-07-23 AmFam, Inc. +americanfamily + +// amex : 2015-07-31 American Express Travel Related Services Company, Inc. +amex + +// amfam : 2015-07-23 AmFam, Inc. +amfam + +// amica : 2015-05-28 Amica Mutual Insurance Company +amica + // amsterdam : 2014-07-24 Gemeente Amsterdam amsterdam @@ -6901,9 +7082,21 @@ android // anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. anquan +// anz : 2015-07-31 Australia and New Zealand Banking Group Limited +anz + +// aol : 2015-09-17 AOL Inc. +aol + // apartments : 2014-12-11 June Maple, LLC apartments +// app : 2015-05-14 Charleston Road Registry Inc. +app + +// apple : 2015-05-14 Apple Inc. +apple + // aquarelle : 2014-07-24 Aquarelle.com aquarelle @@ -6919,22 +7112,37 @@ army // arte : 2014-12-11 Association Relative à la Télévision Européenne G.E.I.E. arte +// asda : 2015-07-31 Wal-Mart Stores, Inc. +asda + // associates : 2014-03-06 Baxter Hill, LLC associates +// athleta : 2015-07-30 The Gap, Inc. +athleta + // attorney : 2014-03-20 attorney // auction : 2014-03-20 auction +// audi : 2015-05-21 AUDI Aktiengesellschaft +audi + +// audible : 2015-06-25 Amazon EU S.à r.l. +audible + // audio : 2014-03-20 Uniregistry, Corp. audio +// auspost : 2015-08-13 Australian Postal Corporation +auspost + // author : 2014-12-18 Amazon EU S.à r.l. author -// auto : 2014-11-13 Uniregistry, Corp. +// auto : 2014-11-13 auto // autos : 2014-01-09 DERAutos, LLC @@ -6943,15 +7151,27 @@ autos // avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca avianca +// aws : 2015-06-25 Amazon EU S.à r.l. +aws + // axa : 2013-12-19 AXA SA axa // azure : 2014-12-18 Microsoft Corporation azure +// baby : 2015-04-09 Johnson & Johnson Services, Inc. +baby + // baidu : 2015-01-08 Baidu, Inc. baidu +// banamex : 2015-07-30 Citigroup Inc. +banamex + +// bananarepublic : 2015-07-31 The Gap, Inc. +bananarepublic + // band : 2014-06-12 band @@ -6970,9 +7190,15 @@ barclaycard // barclays : 2014-11-20 Barclays Bank PLC barclays +// barefoot : 2015-06-11 Gallo Vineyards, Inc. +barefoot + // bargains : 2013-11-14 Half Hallow, LLC bargains +// basketball : 2015-08-20 Fédération Internationale de Basketball (FIBA) +basketball + // bauhaus : 2014-04-17 Werkhaus GmbH bauhaus @@ -6982,6 +7208,9 @@ bayern // bbc : 2014-12-18 British Broadcasting Corporation bbc +// bbt : 2015-07-23 BB&T Corporation +bbt + // bbva : 2014-10-02 BANCO BILBAO VIZCAYA ARGENTARIA, S.A. bbva @@ -6991,6 +7220,9 @@ bcg // bcn : 2014-07-24 Municipi de Barcelona bcn +// beats : 2015-05-14 Beats Electronics, LLC +beats + // beer : 2014-01-09 Top Level Domain Holdings Limited beer @@ -7003,6 +7235,12 @@ berlin // best : 2013-12-19 BestTLD Pty Ltd best +// bestbuy : 2015-07-31 BBY Solutions, Inc. +bestbuy + +// bet : 2015-05-07 Afilias plc +bet + // bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited bharti @@ -7030,6 +7268,15 @@ black // blackfriday : 2014-01-16 Uniregistry, Corp. blackfriday +// blanco : 2015-07-16 BLANCO GmbH + Co KG +blanco + +// blockbuster : 2015-07-30 Dish DBS Corporation +blockbuster + +// blog : 2015-05-14 PRIMER NIVEL S.A. +blog + // bloomberg : 2014-07-17 Bloomberg IP Holdings LLC bloomberg @@ -7051,6 +7298,12 @@ bnpparibas // boats : 2014-12-04 DERBoats, LLC boats +// boehringer : 2015-07-09 Boehringer Ingelheim International GmbH +boehringer + +// bofa : 2015-07-31 NMS Services, Inc. +bofa + // bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br bom @@ -7060,9 +7313,21 @@ bond // boo : 2014-01-30 Charleston Road Registry Inc. boo +// book : 2015-08-27 Amazon EU S.à r.l. +book + +// booking : 2015-07-16 Booking.com B.V. +booking + // boots : 2015-01-08 THE BOOTS COMPANY PLC boots +// bosch : 2015-06-18 Robert Bosch GMBH +bosch + +// bostik : 2015-05-28 Bostik SA +bostik + // bot : 2014-12-18 Amazon EU S.à r.l. bot @@ -7090,6 +7355,9 @@ brussels // budapest : 2013-11-21 Top Level Domain Holdings Limited budapest +// bugatti : 2015-07-23 Bugatti International SA +bugatti + // build : 2013-11-07 Plan Bee LLC build @@ -7120,6 +7388,9 @@ cal // call : 2014-12-18 Amazon EU S.à r.l. call +// calvinklein : 2015-07-30 PVH gTLD Holdings LLC +calvinklein + // camera : 2013-08-27 Atomic Maple, LLC camera @@ -7138,7 +7409,10 @@ capetown // capital : 2014-03-06 Delta Mill, LLC capital -// car : 2015-01-22 Charleston Road Registry Inc. +// capitalone : 2015-08-06 Capital One Financial Corporation +capitalone + +// car : 2015-01-22 car // caravan : 2013-12-12 Caravan International, Inc. @@ -7156,7 +7430,7 @@ career // careers : 2013-10-02 Wild Corner, LLC careers -// cars : 2014-11-13 Uniregistry, Corp. +// cars : 2014-11-13 cars // cartier : 2014-06-23 Richemont DNS Inc. @@ -7165,6 +7439,12 @@ cartier // casa : 2013-11-21 Top Level Domain Holdings Limited casa +// case : 2015-09-03 CNH Industrial N.V. +case + +// caseih : 2015-09-03 CNH Industrial N.V. +caseih + // cash : 2014-03-06 Delta Lake, LLC cash @@ -7180,13 +7460,22 @@ cba // cbn : 2014-08-22 The Christian Broadcasting Network, Inc. cbn +// cbre : 2015-07-02 CBRE, Inc. +cbre + +// cbs : 2015-08-06 CBS Domains Inc. +cbs + +// ceb : 2015-04-09 The Corporate Executive Board Company +ceb + // center : 2013-11-07 Tin Mill, LLC center // ceo : 2013-11-07 CEOTLD Pty Ltd ceo -// cern : 2014-06-05 European Organization for Nuclear Research (\ +// cern : 2014-06-05 European Organization for Nuclear Research ("CERN") cern // cfa : 2014-08-28 CFA Institute @@ -7195,15 +7484,24 @@ cfa // cfd : 2014-12-11 IG Group Holdings PLC cfd +// chanel : 2015-04-09 Chanel International B.V. +chanel + // channel : 2014-05-08 Charleston Road Registry Inc. channel +// chase : 2015-04-30 JPMorgan Chase & Co. +chase + // chat : 2014-12-04 Sand Fields, LLC chat // cheap : 2013-11-14 Sand Cover, LLC cheap +// chintai : 2015-06-11 CHINTAI Corporation +chintai + // chloe : 2014-10-16 Richemont DNS Inc. chloe @@ -7213,6 +7511,9 @@ christmas // chrome : 2014-07-24 Charleston Road Registry Inc. chrome +// chrysler : 2015-07-30 FCA US LLC. +chrysler + // church : 2014-02-06 Holly Fields, LLC church @@ -7225,6 +7526,12 @@ circle // cisco : 2014-12-22 Cisco Technology, Inc. cisco +// citadel : 2015-07-23 Citadel Domain LLC +citadel + +// citi : 2015-07-30 Citigroup Inc. +citi + // citic : 2014-01-09 CITIC Group Corporation citic @@ -7249,9 +7556,15 @@ clinic // clothing : 2013-08-27 Steel Lake, LLC clothing +// cloud : 2015-04-16 ARUBA S.p.A. +cloud + // club : 2013-11-08 .CLUB DOMAINS, LLC club +// clubmed : 2015-06-25 Club Méditerranée S.A. +clubmed + // coach : 2014-10-09 Koko Island, LLC coach @@ -7267,6 +7580,9 @@ college // cologne : 2014-02-05 NetCologne Gesellschaft für Telekommunikation mbH cologne +// comcast : 2015-07-23 Comcast IP Holdings I, LLC +comcast + // commbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA commbank @@ -7300,6 +7616,9 @@ contractors // cooking : 2013-11-21 Top Level Domain Holdings Limited cooking +// cookingchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. +cookingchannel + // cool : 2013-11-14 Koko Lake, LLC cool @@ -7375,6 +7694,12 @@ day // dclk : 2014-11-20 Charleston Road Registry Inc. dclk +// dds : 2015-05-07 Top Level Domain Holdings Limited +dds + +// deal : 2015-06-25 Amazon EU S.à r.l. +deal + // dealer : 2014-12-22 Dealer Dot Com, Inc. dealer @@ -7390,6 +7715,9 @@ delivery // dell : 2014-10-24 Dell Inc. dell +// deloitte : 2015-07-31 Deloitte Touche Tohmatsu +deloitte + // delta : 2015-02-19 Delta Air Lines, Inc. delta @@ -7411,6 +7739,9 @@ design // dev : 2014-10-16 Charleston Road Registry Inc. dev +// dhl : 2015-07-23 Deutsche Post AG +dhl + // diamonds : 2013-09-22 John Edge, LLC diamonds @@ -7429,12 +7760,21 @@ directory // discount : 2014-03-06 Holly Hill, LLC discount +// discover : 2015-07-23 Discover Financial Services +discover + +// dish : 2015-07-30 Dish DBS Corporation +dish + // dnp : 2013-12-13 Dai Nippon Printing Co., Ltd. dnp // docs : 2014-10-16 Charleston Road Registry Inc. docs +// dodge : 2015-07-30 FCA US LLC. +dodge + // dog : 2014-12-04 Koko Mill, LLC dog @@ -7447,6 +7787,9 @@ domains // doosan : 2014-04-03 Doosan Corporation doosan +// dot : 2015-05-21 Dish DBS Corporation +dot + // download : 2014-11-20 dot Support Limited download @@ -7456,15 +7799,33 @@ drive // dstv : 2015-03-12 MultiChoice (Proprietary) Limited dstv +// dtv : 2015-06-04 Dish DBS Corporation +dtv + // dubai : 2015-01-01 Dubai Smart Government Department dubai +// duck : 2015-07-23 Johnson Shareholdings, Inc. +duck + +// dunlop : 2015-07-02 The Goodyear Tire & Rubber Company +dunlop + +// duns : 2015-08-06 The Dun & Bradstreet Corporation +duns + +// dupont : 2015-06-25 E.I. du Pont de Nemours and Company +dupont + // durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry durban // dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG dvag +// dwg : 2015-07-23 Autodesk, Inc. +dwg + // earth : 2014-12-04 Interlink Co., Ltd. earth @@ -7483,6 +7844,9 @@ email // emerck : 2014-04-03 Merck KGaA emerck +// emerson : 2015-07-23 Emerson Electric Co. +emerson + // energy : 2014-09-11 Binky Birch, LLC energy @@ -7495,12 +7859,18 @@ engineering // enterprises : 2013-09-20 Snow Oaks, LLC enterprises +// epost : 2015-07-23 Deutsche Post AG +epost + // epson : 2014-12-04 Seiko Epson Corporation epson // equipment : 2013-08-27 Corn Station, LLC equipment +// ericsson : 2015-07-09 Telefonaktiebolaget L M Ericsson +ericsson + // erni : 2014-04-03 ERNI Group Holding AG erni @@ -7510,6 +7880,12 @@ esq // estate : 2013-08-27 Trixy Park, LLC estate +// esurance : 2015-07-23 Esurance Insurance Company +esurance + +// etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +etisalat + // eurovision : 2014-04-24 European Broadcasting Union (EBU) eurovision @@ -7534,6 +7910,9 @@ exposed // express : 2015-02-11 Sea Sunset, LLC express +// extraspace : 2015-05-14 Extra Space Storage LLC +extraspace + // fage : 2014-12-18 Fage International S.A. fage @@ -7546,7 +7925,7 @@ fairwinds // faith : 2014-11-20 dot Faith Limited faith -// family : 2015-04-02 Bitter Galley, LLC +// family : 2015-04-02 family // fan : 2014-03-06 @@ -7558,18 +7937,36 @@ fans // farm : 2013-11-07 Just Maple, LLC farm +// farmers : 2015-07-09 Farmers Insurance Exchange +farmers + // fashion : 2014-07-03 Top Level Domain Holdings Limited fashion // fast : 2014-12-18 Amazon EU S.à r.l. fast +// fedex : 2015-08-06 Federal Express Corporation +fedex + // feedback : 2013-12-19 Top Level Spectrum, Inc. feedback +// ferrari : 2015-07-31 Fiat Chrysler Automobiles N.V. +ferrari + // ferrero : 2014-12-18 Ferrero Trading Lux S.A. ferrero +// fiat : 2015-07-31 Fiat Chrysler Automobiles N.V. +fiat + +// fidelity : 2015-07-30 Fidelity Brokerage Services LLC +fidelity + +// fido : 2015-08-06 Rogers Communications Partnership +fido + // film : 2015-01-08 Motion Picture Domain Registry Pty Ltd film @@ -7582,6 +7979,9 @@ finance // financial : 2014-03-06 Just Cover, LLC financial +// fire : 2015-06-25 Amazon EU S.à r.l. +fire + // firestone : 2014-12-18 Bridgestone Corporation firestone @@ -7606,6 +8006,9 @@ flickr // flights : 2013-12-05 Fox Station, LLC flights +// flir : 2015-07-23 FLIR Systems, Inc. +flir + // florist : 2013-11-07 Half Cypress, LLC florist @@ -7621,6 +8024,9 @@ fly // foo : 2014-01-23 Charleston Road Registry Inc. foo +// foodnetwork : 2015-07-02 Lifestyle Domain Holdings, Inc. +foodnetwork + // football : 2014-12-18 Foggy Farms, LLC football @@ -7639,15 +8045,33 @@ forum // foundation : 2013-12-05 John Dale, LLC foundation +// fox : 2015-09-11 FOX Registry, LLC +fox + +// fresenius : 2015-07-30 Fresenius Immobilien-Verwaltungs-GmbH +fresenius + // frl : 2014-05-15 FRLregistry B.V. frl // frogans : 2013-12-19 OP3FT frogans +// frontdoor : 2015-07-02 Lifestyle Domain Holdings, Inc. +frontdoor + // frontier : 2015-02-05 Frontier Communications Corporation frontier +// ftr : 2015-07-16 Frontier Communications Corporation +ftr + +// fujitsu : 2015-07-30 Fujitsu Limited +fujitsu + +// fujixerox : 2015-07-23 Xerox DNHC LLC +fujixerox + // fund : 2014-03-20 John Castle, LLC fund @@ -7666,16 +8090,28 @@ gal // gallery : 2013-09-13 Sugar House, LLC gallery +// gallo : 2015-06-11 Gallo Vineyards, Inc. +gallo + // gallup : 2015-02-19 Gallup, Inc. gallup +// game : 2015-05-28 Uniregistry, Corp. +game + +// games : 2015-05-28 Foggy Beach, LLC +games + +// gap : 2015-07-31 The Gap, Inc. +gap + // garden : 2014-06-26 Top Level Domain Holdings Limited garden // gbiz : 2014-07-17 Charleston Road Registry Inc. gbiz -// gdn : 2014-07-31 Joint Stock Company \ +// gdn : 2014-07-31 Joint Stock Company "Navigation-information systems" gdn // gea : 2014-12-04 GEA Group Aktiengesellschaft @@ -7687,6 +8123,9 @@ gent // genting : 2015-03-12 Resorts World Inc Pte. Ltd. genting +// george : 2015-07-31 Wal-Mart Stores, Inc. +george + // ggee : 2014-01-09 GMO Internet, Inc. ggee @@ -7702,6 +8141,9 @@ gives // giving : 2014-11-13 Giving Limited giving +// glade : 2015-07-23 Johnson Shareholdings, Inc. +glade + // glass : 2013-11-07 Black Cover, LLC glass @@ -7723,6 +8165,9 @@ gmo // gmx : 2014-04-24 1&1 Mail & Media GmbH gmx +// godaddy : 2015-07-23 Go Daddy East, LLC +godaddy + // gold : 2015-01-22 June Edge, LLC gold @@ -7735,6 +8180,12 @@ golf // goo : 2014-12-18 NTT Resonant Inc. goo +// goodhands : 2015-07-31 Allstate Fire and Casualty Insurance Company +goodhands + +// goodyear : 2015-07-02 The Goodyear Tire & Rubber Company +goodyear + // goog : 2014-11-20 Charleston Road Registry Inc. goog @@ -7750,6 +8201,9 @@ got // gotv : 2015-03-12 MultiChoice (Proprietary) Limited gotv +// grainger : 2015-05-07 Grainger Registry Services, LLC +grainger + // graphics : 2013-09-13 Over Madison, LLC graphics @@ -7765,6 +8219,9 @@ gripe // group : 2014-08-15 Romeo Town, LLC group +// guardian : 2015-07-30 The Guardian Life Insurance Company of America +guardian + // gucci : 2014-11-13 Guccio Gucci S.p.a. gucci @@ -7789,6 +8246,12 @@ hangout // haus : 2013-12-05 haus +// hbo : 2015-07-30 HBO Registry Services, Inc. +hbo + +// hdfc : 2015-07-30 HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED +hdfc + // hdfcbank : 2015-02-12 HDFC Bank Limited hdfcbank @@ -7810,15 +8273,24 @@ here // hermes : 2014-07-10 HERMES INTERNATIONAL hermes +// hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc. +hgtv + // hiphop : 2014-03-06 Uniregistry, Corp. hiphop +// hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc. +hisamitsu + // hitachi : 2014-10-31 Hitachi, Ltd. hitachi // hiv : 2014-03-13 dotHIV gemeinnuetziger e.V. hiv +// hkt : 2015-05-14 PCCW-HKT DataCom Services Limited +hkt + // hockey : 2015-03-19 Half Willow, LLC hockey @@ -7831,12 +8303,21 @@ holiday // homedepot : 2015-04-02 Homer TLC, Inc. homedepot +// homegoods : 2015-07-16 The TJX Companies, Inc. +homegoods + // homes : 2014-01-09 DERHomes, LLC homes +// homesense : 2015-07-16 The TJX Companies, Inc. +homesense + // honda : 2014-12-18 Honda Motor Co., Ltd. honda +// honeywell : 2015-07-23 Honeywell GTLD LLC +honeywell + // horse : 2013-11-21 Top Level Domain Holdings Limited horse @@ -7846,6 +8327,9 @@ host // hosting : 2014-05-29 Uniregistry, Corp. hosting +// hot : 2015-08-27 Amazon EU S.à r.l. +hot + // hoteles : 2015-03-05 Travel Reservations SRL hoteles @@ -7864,6 +8348,15 @@ hsbc // htc : 2015-04-02 HTC corporation htc +// hughes : 2015-07-30 Hughes Satellite Systems Corporation +hughes + +// hyatt : 2015-07-30 Hyatt GTLD, L.L.C. +hyatt + +// hyundai : 2015-07-09 Hyundai Motor Company +hyundai + // ibm : 2014-07-31 International Business Machines Corporation ibm @@ -7876,12 +8369,24 @@ ice // icu : 2015-01-08 One.com A/S icu +// ieee : 2015-07-23 IEEE Global LLC +ieee + // ifm : 2014-01-30 ifm electronic gmbh ifm // iinet : 2014-07-03 Connect West Pty. Ltd. iinet +// ikano : 2015-07-09 Ikano S.A. +ikano + +// imamat : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) +imamat + +// imdb : 2015-06-25 Amazon EU S.à r.l. +imdb + // immo : 2014-07-10 Auburn Bloom, LLC immo @@ -7909,9 +8414,15 @@ insurance // insure : 2014-03-20 Pioneer Willow, LLC insure +// intel : 2015-08-06 Intel Corporation +intel + // international : 2013-11-07 Wild Way, LLC international +// intuit : 2015-07-30 Intuit Administrative Services, Inc. +intuit + // investments : 2014-03-20 Holly Glen, LLC investments @@ -7924,6 +8435,9 @@ irish // iselect : 2015-02-11 iSelect Ltd iselect +// ismaili : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) +ismaili + // ist : 2014-08-28 Istanbul Metropolitan Municipality ist @@ -7933,6 +8447,12 @@ istanbul // itau : 2014-10-02 Itau Unibanco Holding S.A. itau +// itv : 2015-07-09 ITV Services Limited +itv + +// iveco : 2015-09-03 CNH Industrial N.V. +iveco + // iwc : 2014-06-23 Richemont DNS Inc. iwc @@ -7945,6 +8465,12 @@ java // jcb : 2014-11-20 JCB Co., Ltd. jcb +// jcp : 2015-04-23 JCP Media, Inc. +jcp + +// jeep : 2015-07-30 FCA US LLC. +jeep + // jetzt : 2014-01-09 New TLD Company AB jetzt @@ -7963,6 +8489,9 @@ jll // jmp : 2015-03-26 Matrix IP LLC jmp +// jnj : 2015-06-18 Johnson & Johnson Services, Inc. +jnj + // joburg : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry joburg @@ -7972,27 +8501,48 @@ jot // joy : 2014-12-18 Amazon EU S.à r.l. joy +// jpmorgan : 2015-04-30 JPMorgan Chase & Co. +jpmorgan + // jprs : 2014-09-18 Japan Registry Services Co., Ltd. jprs // juegos : 2014-03-20 Uniregistry, Corp. juegos +// juniper : 2015-07-30 JUNIPER NETWORKS, INC. +juniper + // kaufen : 2013-11-07 United TLD Holdco Ltd. kaufen // kddi : 2014-09-12 KDDI CORPORATION kddi +// kerryhotels : 2015-04-30 Kerry Trading Co. Limited +kerryhotels + +// kerrylogistics : 2015-04-09 Kerry Trading Co. Limited +kerrylogistics + +// kerryproperties : 2015-04-09 Kerry Trading Co. Limited +kerryproperties + // kfh : 2014-12-04 Kuwait Finance House kfh +// kia : 2015-07-09 KIA MOTORS CORPORATION +kia + // kim : 2013-09-23 Afilias Limited kim // kinder : 2014-11-07 Ferrero Trading Lux S.A. kinder +// kindle : 2015-06-25 Amazon EU S.à r.l. +kindle + // kitchen : 2013-09-20 Just Goodbye, LLC kitchen @@ -8005,6 +8555,12 @@ koeln // komatsu : 2015-01-08 Komatsu Ltd. komatsu +// kosher : 2015-08-20 Kosher Marketing Assets LLC +kosher + +// kpmg : 2015-04-23 KPMG International Cooperative (KPMG International Genossenschaft) +kpmg + // kpn : 2015-01-08 Koninklijke KPN N.V. kpn @@ -8014,6 +8570,9 @@ krd // kred : 2013-12-19 KredTLD Pty Ltd kred +// kuokgroup : 2015-04-09 Kerry Trading Co. Limited +kuokgroup + // kyknet : 2015-03-05 Electronic Media Network (Pty) Ltd kyknet @@ -8023,21 +8582,39 @@ kyoto // lacaixa : 2014-01-09 CAIXA D'ESTALVIS I PENSIONS DE BARCELONA lacaixa +// ladbrokes : 2015-08-06 LADBROKES INTERNATIONAL PLC +ladbrokes + +// lamborghini : 2015-06-04 Automobili Lamborghini S.p.A. +lamborghini + // lancaster : 2015-02-12 LANCASTER lancaster +// lancia : 2015-07-31 Fiat Chrysler Automobiles N.V. +lancia + +// lancome : 2015-07-23 L'Oréal +lancome + // land : 2013-09-10 Pine Moon, LLC land // landrover : 2014-11-13 Jaguar Land Rover Ltd landrover +// lanxess : 2015-07-30 LANXESS Corporation +lanxess + // lasalle : 2015-04-02 Jones Lang LaSalle Incorporated lasalle // lat : 2014-10-16 ECOM-LAC Federaciòn de Latinoamèrica y el Caribe para Internet y el Comercio Electrònico lat +// latino : 2015-07-30 Dish DBS Corporation +latino + // latrobe : 2014-06-16 La Trobe University latrobe @@ -8047,7 +8624,7 @@ law // lawyer : 2014-03-20 lawyer -// lds : 2014-03-20 IRI Domain Management, LLC (\ +// lds : 2014-03-20 IRI Domain Management, LLC ("Applicant") lds // lease : 2014-03-06 Victor Trail, LLC @@ -8056,9 +8633,18 @@ lease // leclerc : 2014-08-07 A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc leclerc +// lefrak : 2015-07-16 LeFrak Organization, Inc. +lefrak + // legal : 2014-10-16 Blue Falls, LLC legal +// lego : 2015-07-16 LEGO Juris A/S +lego + +// lexus : 2015-04-23 TOYOTA MOTOR CORPORATION +lexus + // lgbt : 2014-05-08 Afilias Limited lgbt @@ -8083,6 +8669,9 @@ lighting // like : 2014-12-18 Amazon EU S.à r.l. like +// lilly : 2015-07-31 Eli Lilly and Company +lilly + // limited : 2014-03-06 Big Fest, LLC limited @@ -8098,9 +8687,15 @@ linde // link : 2013-11-14 Uniregistry, Corp. link -// live : 2014-12-04 Half Woods, LLC +// lipsy : 2015-06-25 Lipsy Ltd +lipsy + +// live : 2014-12-04 live +// living : 2015-07-30 Lifestyle Domain Holdings, Inc. +living + // lixil : 2015-03-19 LIXIL Group Corporation lixil @@ -8110,6 +8705,15 @@ loan // loans : 2014-03-20 June Woods, LLC loans +// locker : 2015-06-04 Dish DBS Corporation +locker + +// locus : 2015-06-25 Locus Analytics LLC +locus + +// loft : 2015-07-30 Annco, Inc. +loft + // lol : 2015-01-30 Uniregistry, Corp. lol @@ -8125,12 +8729,21 @@ lotto // love : 2014-12-22 Merchant Law Group LLP love +// lpl : 2015-07-30 LPL Holdings, Inc. +lpl + +// lplfinancial : 2015-07-30 LPL Holdings, Inc. +lplfinancial + // ltd : 2014-09-25 Over Corner, LLC ltd // ltda : 2014-04-17 DOMAIN ROBOT SERVICOS DE HOSPEDAGEM NA INTERNET LTDA ltda +// lundbeck : 2015-08-06 H. Lundbeck A/S +lundbeck + // lupin : 2014-11-07 LUPIN LIMITED lupin @@ -8140,6 +8753,9 @@ luxe // luxury : 2013-10-17 Luxury Partners, LLC luxury +// macys : 2015-07-31 Macys, Inc. +macys + // madrid : 2014-05-01 Comunidad de Madrid madrid @@ -8173,9 +8789,30 @@ markets // marriott : 2014-10-09 Marriott Worldwide Corporation marriott +// marshalls : 2015-07-16 The TJX Companies, Inc. +marshalls + +// maserati : 2015-07-31 Fiat Chrysler Automobiles N.V. +maserati + +// mattel : 2015-08-06 Mattel Sites, Inc. +mattel + // mba : 2015-04-02 Lone Hollow, LLC mba +// mcd : 2015-07-30 McDonald’s Corporation +mcd + +// mcdonalds : 2015-07-30 McDonald’s Corporation +mcdonalds + +// mckinsey : 2015-07-31 McKinsey Holdings, Inc. +mckinsey + +// med : 2015-08-06 Medistry LLC +med + // media : 2014-03-06 Grand Glen, LLC media @@ -8200,6 +8837,9 @@ menu // meo : 2014-11-07 PT Comunicacoes S.A. meo +// metlife : 2015-05-07 MetLife Services and Solutions, LLC +metlife + // miami : 2013-12-19 Top Level Domain Holdings Limited miami @@ -8209,6 +8849,21 @@ microsoft // mini : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft mini +// mint : 2015-07-30 Intuit Administrative Services, Inc. +mint + +// mit : 2015-07-02 Massachusetts Institute of Technology +mit + +// mitsubishi : 2015-07-23 Mitsubishi Corporation +mitsubishi + +// mlb : 2015-05-21 MLB Advanced Media DH, LLC +mlb + +// mls : 2015-04-23 The Canadian Real Estate Association +mls + // mma : 2014-11-07 MMA IARD mma @@ -8227,16 +8882,25 @@ moe // moi : 2014-12-18 Amazon EU S.à r.l. moi +// mom : 2015-04-16 Uniregistry, Corp. +mom + // monash : 2013-09-30 Monash University monash // money : 2014-10-16 Outer McCook, LLC money +// monster : 2015-09-11 Monster Worldwide, Inc. +monster + // montblanc : 2014-06-23 Richemont DNS Inc. montblanc -// mormon : 2013-12-05 IRI Domain Management, LLC (\ +// mopar : 2015-07-30 FCA US LLC. +mopar + +// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") mormon // mortgage : 2014-03-20 @@ -8245,6 +8909,9 @@ mortgage // moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) moscow +// moto : 2015-06-04 Charleston Road Registry Inc. +moto + // motorcycles : 2014-01-09 DERMotorcycles, LLC motorcycles @@ -8257,6 +8924,9 @@ movie // movistar : 2014-10-16 Telefónica S.A. movistar +// msd : 2015-07-23 MSD Registry Holdings, Inc. +msd + // mtn : 2014-12-04 MTN Dubai Limited mtn @@ -8272,9 +8942,15 @@ multichoice // mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC mutual +// mutuelle : 2015-06-18 Fédération Nationale de la Mutualité Française +mutuelle + // mzansimagic : 2015-03-05 Electronic Media Network (Pty) Ltd mzansimagic +// nab : 2015-08-20 National Australia Bank Limited +nab + // nadex : 2014-12-11 IG Group Holdings PLC nadex @@ -8284,18 +8960,27 @@ nagoya // naspers : 2015-02-12 Intelprop (Proprietary) Limited naspers +// nationwide : 2015-07-23 Nationwide Mutual Insurance Company +nationwide + // natura : 2015-03-12 NATURA COSMÉTICOS S.A. natura // navy : 2014-03-06 United TLD Holdco Ltd. navy +// nba : 2015-07-31 NBA REGISTRY, LLC +nba + // nec : 2015-01-08 NEC Corporation nec // netbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA netbank +// netflix : 2015-06-18 Netflix, Inc. +netflix + // network : 2013-11-14 Trixy Manor, LLC network @@ -8305,12 +8990,24 @@ neustar // new : 2014-01-30 Charleston Road Registry Inc. new +// newholland : 2015-09-03 CNH Industrial N.V. +newholland + // news : 2014-12-18 news +// next : 2015-06-18 Next plc +next + +// nextdirect : 2015-06-18 Next plc +nextdirect + // nexus : 2014-07-24 Charleston Road Registry Inc. nexus +// nfl : 2015-07-23 NFL Reg Ops LLC +nfl + // ngo : 2014-03-06 Public Interest Registry ngo @@ -8320,6 +9017,12 @@ nhk // nico : 2014-12-04 DWANGO Co., Ltd. nico +// nike : 2015-07-23 NIKE, Inc. +nike + +// nikon : 2015-05-21 NIKON CORPORATION +nikon + // ninja : 2013-11-07 United TLD Holdco Ltd. ninja @@ -8329,12 +9032,21 @@ nissan // nokia : 2015-01-08 Nokia Corporation nokia +// northwesternmutual : 2015-06-18 Northwestern Mutual Registry, LLC +northwesternmutual + // norton : 2014-12-04 Symantec Corporation norton +// now : 2015-06-25 Amazon EU S.à r.l. +now + // nowruz : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. nowruz +// nowtv : 2015-05-14 Starbucks (HK) Limited +nowtv + // nra : 2014-05-22 NRA Holdings Company, INC. nra @@ -8350,12 +9062,30 @@ nyc // obi : 2014-09-25 OBI Group Holding SE & Co. KGaA obi +// observer : 2015-04-30 Guardian News and Media Limited +observer + +// off : 2015-07-23 Johnson Shareholdings, Inc. +off + // office : 2015-03-12 Microsoft Corporation office // okinawa : 2013-12-05 BusinessRalliart Inc. okinawa +// olayan : 2015-05-14 Crescent Holding GmbH +olayan + +// olayangroup : 2015-05-14 Crescent Holding GmbH +olayangroup + +// oldnavy : 2015-07-31 The Gap, Inc. +oldnavy + +// ollo : 2015-06-04 Dish DBS Corporation +ollo + // omega : 2015-01-08 The Swatch Group Ltd omega @@ -8371,9 +9101,15 @@ onl // online : 2015-01-15 DotOnline Inc. online +// onyourside : 2015-07-23 Nationwide Mutual Insurance Company +onyourside + // ooo : 2014-01-09 INFIBEAM INCORPORATION LIMITED ooo +// open : 2015-07-31 American Express Travel Related Services Company, Inc. +open + // oracle : 2014-06-19 Oracle Corporation oracle @@ -8392,6 +9128,9 @@ osaka // otsuka : 2013-10-11 Otsuka Holdings Co., Ltd. otsuka +// ott : 2015-06-04 Dish DBS Corporation +ott + // ovh : 2014-01-16 OVH SAS ovh @@ -8401,6 +9140,9 @@ page // pamperedchef : 2015-02-05 The Pampered Chef, Ltd. pamperedchef +// panasonic : 2015-07-30 Panasonic Corporation +panasonic + // panerai : 2014-11-07 Richemont DNS Inc. panerai @@ -8422,9 +9164,21 @@ party // passagens : 2015-03-05 Travel Reservations SRL passagens +// pay : 2015-08-27 Amazon EU S.à r.l. +pay + // payu : 2015-02-12 MIH PayU B.V. payu +// pccw : 2015-05-14 PCCW Enterprises Limited +pccw + +// pet : 2015-05-07 Afilias plc +pet + +// pfizer : 2015-09-11 Pfizer Inc. +pfizer + // pharmacy : 2014-06-19 National Association of Boards of Pharmacy pharmacy @@ -8461,9 +9215,15 @@ pid // pin : 2014-12-18 Amazon EU S.à r.l. pin +// ping : 2015-06-11 Ping Registry Provider, Inc. +ping + // pink : 2013-10-01 Afilias Limited pink +// pioneer : 2015-07-16 Pioneer Corporation +pioneer + // pizza : 2014-06-26 Foggy Moon, LLC pizza @@ -8473,27 +9233,42 @@ place // play : 2015-03-05 Charleston Road Registry Inc. play +// playstation : 2015-07-02 Sony Computer Entertainment Inc. +playstation + // plumbing : 2013-09-10 Spring Tigers, LLC plumbing // plus : 2015-02-05 Sugar Mill, LLC plus +// pnc : 2015-07-02 PNC Domain Co., LLC +pnc + // pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG pohl // poker : 2014-07-03 Afilias Domains No. 5 Limited poker +// politie : 2015-08-20 Politie Nederland +politie + // porn : 2014-10-16 ICM Registry PN LLC porn +// pramerica : 2015-07-30 Prudential Financial, Inc. +pramerica + // praxi : 2013-12-05 Praxi S.p.A. praxi // press : 2014-04-03 DotPress Inc. press +// prime : 2015-06-25 Amazon EU S.à r.l. +prime + // prod : 2014-01-23 Charleston Road Registry Inc. prod @@ -8503,6 +9278,9 @@ productions // prof : 2014-07-24 Charleston Road Registry Inc. prof +// progressive : 2015-07-23 Progressive Casualty Insurance Company +progressive + // promo : 2014-12-18 Play.PROMO Oy promo @@ -8512,6 +9290,15 @@ properties // property : 2014-05-22 Uniregistry, Corp. property +// protection : 2015-04-23 +protection + +// pru : 2015-07-30 Prudential Financial, Inc. +pru + +// prudential : 2015-07-30 Prudential Financial, Inc. +prudential + // pub : 2013-12-12 United TLD Holdco Ltd. pub @@ -8524,12 +9311,21 @@ quebec // quest : 2015-03-26 Quest ION Limited quest +// qvc : 2015-07-30 QVC, Inc. +qvc + // racing : 2014-12-04 Premier Registry Limited racing +// raid : 2015-07-23 Johnson Shareholdings, Inc. +raid + // read : 2014-12-18 Amazon EU S.à r.l. read +// realestate : 2015-09-11 dotRealEstate LLC +realestate + // realtor : 2014-05-29 Real Estate Domains LLC realtor @@ -8551,7 +9347,7 @@ redumbrella // rehab : 2014-03-06 United TLD Holdco Ltd. rehab -// reise : 2014-03-13 dotreise GmbH +// reise : 2014-03-13 reise // reisen : 2014-03-06 New Cypress, LLC @@ -8593,12 +9389,21 @@ review // reviews : 2013-09-13 reviews +// rexroth : 2015-06-18 Robert Bosch GMBH +rexroth + // rich : 2013-11-21 I-Registry Ltd. rich +// richardli : 2015-05-14 Pacific Century Asset Management (HK) Limited +richardli + // ricoh : 2014-11-20 Ricoh Company, Ltd. ricoh +// rightathome : 2015-07-23 Johnson Shareholdings, Inc. +rightathome + // ril : 2015-04-02 Reliance Industries Limited ril @@ -8617,6 +9422,9 @@ rocks // rodeo : 2013-12-19 Top Level Domain Holdings Limited rodeo +// rogers : 2015-08-06 Rogers Communications Partnership +rogers + // room : 2014-12-18 Amazon EU S.à r.l. room @@ -8653,6 +9461,9 @@ sale // salon : 2014-12-11 Outer Orchard, LLC salon +// samsclub : 2015-07-31 Wal-Mart Stores, Inc. +samsclub + // samsung : 2014-04-03 SAMSUNG SDS CO., LTD samsung @@ -8677,6 +9488,9 @@ sarl // sas : 2015-04-02 Research IP LLC sas +// save : 2015-06-25 Amazon EU S.à r.l. +save + // saxo : 2014-10-31 Saxo Bank A/S saxo @@ -8689,9 +9503,12 @@ sbs // sca : 2014-03-13 SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) sca -// scb : 2014-02-20 The Siam Commercial Bank Public Company Limited (\ +// scb : 2014-02-20 The Siam Commercial Bank Public Company Limited ("SCB") scb +// schaeffler : 2015-08-06 Schaeffler Technologies AG & Co. KG +schaeffler + // schmidt : 2014-04-03 SALM S.A.S. schmidt @@ -8710,6 +9527,9 @@ schwarz // science : 2014-09-11 dot Science Limited science +// scjohnson : 2015-07-23 Johnson Shareholdings, Inc. +scjohnson + // scor : 2014-10-31 SCOR SE scor @@ -8719,6 +9539,12 @@ scot // seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal) seat +// secure : 2015-08-27 Amazon EU S.à r.l. +secure + +// security : 2015-05-14 +security + // seek : 2014-12-04 Seek Limited seek @@ -8728,6 +9554,12 @@ sener // services : 2014-02-27 Fox Castle, LLC services +// ses : 2015-07-23 SES +ses + +// seven : 2015-08-06 Seven West Media Ltd +seven + // sew : 2014-07-17 SEW-EURODRIVE GmbH & Co KG sew @@ -8737,9 +9569,21 @@ sex // sexy : 2013-09-11 Uniregistry, Corp. sexy +// sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR +sfr + +// shangrila : 2015-09-03 Shangri‐La International Hotel Management Limited +shangrila + // sharp : 2014-05-01 Sharp Corporation sharp +// shaw : 2015-04-23 Shaw Cablesystems G.P. +shaw + +// shell : 2015-07-30 Shell Information Technology International Inc +shell + // shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. shia @@ -8755,9 +9599,15 @@ shouji // show : 2015-03-05 Snow Beach, LLC show +// showtime : 2015-08-06 CBS Domains Inc. +showtime + // shriram : 2014-01-23 Shriram Capital Ltd. shriram +// silk : 2015-06-25 Amazon EU S.à r.l. +silk + // sina : 2015-03-12 Sina Corporation sina @@ -8767,6 +9617,9 @@ singles // site : 2015-01-15 DotSite Inc. site +// ski : 2015-04-09 STARTING DOT LIMITED +ski + // skin : 2015-01-15 L'Oréal skin @@ -8776,6 +9629,12 @@ sky // skype : 2014-12-18 Microsoft Corporation skype +// sling : 2015-07-30 Hughes Satellite Systems Corporation +sling + +// smart : 2015-07-09 Smart Communications, Inc. (SMART) +smart + // smile : 2014-12-18 Amazon EU S.à r.l. smile @@ -8788,6 +9647,9 @@ soccer // social : 2013-11-07 United TLD Holdco Ltd. social +// softbank : 2015-07-02 SoftBank Corp. +softbank + // software : 2014-03-20 software @@ -8821,9 +9683,18 @@ spot // spreadbetting : 2014-12-11 IG Group Holdings PLC spreadbetting +// srl : 2015-05-07 mySRL GmbH +srl + +// srt : 2015-07-30 FCA US LLC. +srt + // stada : 2014-11-13 STADA Arzneimittel AG stada +// staples : 2015-07-30 Staples, Inc. +staples + // star : 2015-01-08 Star India Private Limited star @@ -8833,6 +9704,9 @@ starhub // statebank : 2015-03-12 STATE BANK OF INDIA statebank +// statefarm : 2015-07-30 State Farm Mutual Automobile Insurance Company +statefarm + // statoil : 2014-12-04 Statoil ASA statoil @@ -8848,7 +9722,10 @@ stockholm // storage : 2014-12-22 Self Storage Company LLC storage -// studio : 2015-02-11 Spring Goodbye, LLC +// store : 2015-04-09 DotStore Inc. +store + +// studio : 2015-02-11 studio // study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD @@ -8884,6 +9761,9 @@ suzuki // swatch : 2015-01-08 The Swatch Group Ltd swatch +// swiftcover : 2015-07-23 Swiftcover Insurance Services Limited +swiftcover + // swiss : 2014-10-16 Swiss Confederation swiss @@ -8902,13 +9782,19 @@ tab // taipei : 2014-07-10 Taipei City Government taipei +// talk : 2015-04-09 Amazon EU S.à r.l. +talk + // taobao : 2015-01-15 Alibaba Group Holding Limited taobao +// target : 2015-07-31 Target Domain Holdings, LLC +target + // tatamotors : 2015-03-12 Tata Motors Ltd tatamotors -// tatar : 2014-04-24 Limited Liability Company \ +// tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" tatar // tattoo : 2013-08-30 Uniregistry, Corp. @@ -8923,6 +9809,9 @@ taxi // tci : 2014-09-12 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. tci +// tdk : 2015-06-11 TDK Corporation +tdk + // team : 2015-03-05 Atomic Lake, LLC team @@ -8944,12 +9833,24 @@ temasek // tennis : 2014-12-04 Cotton Bloom, LLC tennis +// teva : 2015-07-02 Teva Pharmaceutical Industries Limited +teva + // thd : 2015-04-02 Homer TLC, Inc. thd // theater : 2015-03-19 Blue Tigers, LLC theater +// theatre : 2015-05-07 +theatre + +// theguardian : 2015-04-30 Guardian News and Media Limited +theguardian + +// tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America +tiaa + // tickets : 2015-02-05 Accent Media Limited tickets @@ -8968,6 +9869,15 @@ tires // tirol : 2014-04-24 punkt Tirol GmbH tirol +// tjmaxx : 2015-07-16 The TJX Companies, Inc. +tjmaxx + +// tjx : 2015-07-16 The TJX Companies, Inc. +tjx + +// tkmaxx : 2015-07-16 The TJX Companies, Inc. +tkmaxx + // tmall : 2015-01-15 Alibaba Group Holding Limited tmall @@ -8989,12 +9899,18 @@ toray // toshiba : 2014-04-10 TOSHIBA Corporation toshiba +// total : 2015-08-06 Total SA +total + // tours : 2015-01-22 Sugar Station, LLC tours // town : 2014-03-06 Koko Moon, LLC town +// toyota : 2015-04-23 TOYOTA MOTOR CORPORATION +toyota + // toys : 2014-03-06 Pioneer Orchard, LLC toys @@ -9007,6 +9923,9 @@ trading // training : 2013-11-07 Wild Willow, LLC training +// travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. +travelchannel + // travelers : 2015-03-26 Travelers TLD, LLC travelers @@ -9019,6 +9938,9 @@ trust // trv : 2015-03-26 Travelers TLD, LLC trv +// tube : 2015-06-11 Latin American Telecom LLC +tube + // tui : 2014-07-03 TUI AG tui @@ -9031,9 +9953,15 @@ tushu // tvs : 2015-02-19 T V SUNDRAM IYENGAR & SONS LIMITED tvs +// ubank : 2015-08-20 National Australia Bank Limited +ubank + // ubs : 2014-12-11 UBS AG ubs +// uconnect : 2015-07-30 FCA US LLC. +uconnect + // university : 2014-03-06 Little Station, LLC university @@ -9043,18 +9971,27 @@ uno // uol : 2014-05-01 UBN INTERNET LTDA. uol +// ups : 2015-06-25 UPS Market Driver, Inc. +ups + // vacations : 2013-12-05 Atomic Tigers, LLC vacations // vana : 2014-12-11 Lifestyle Domain Holdings, Inc. vana +// vanguard : 2015-09-03 The Vanguard Group, Inc. +vanguard + // vegas : 2014-01-16 Dot Vegas, Inc. vegas // ventures : 2013-08-27 Binky Lake, LLC ventures +// verisign : 2015-08-13 VeriSign, Inc. +verisign + // versicherung : 2014-03-20 dotversicherung-registry GmbH versicherung @@ -9067,18 +10004,27 @@ viajes // video : 2014-10-16 video +// vig : 2015-05-14 VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe +vig + // viking : 2015-04-02 Viking River Cruises (Bermuda) Ltd. viking // villas : 2013-12-05 New Sky, LLC villas +// vin : 2015-06-18 Holly Shadow, LLC +vin + // vip : 2015-01-22 Minds + Machines Group Limited vip // virgin : 2014-09-25 Virgin Enterprises Limited virgin +// visa : 2015-07-30 Visa Worldwide Pte. Limited +visa + // vision : 2013-12-05 Koko Station, LLC vision @@ -9091,12 +10037,18 @@ vistaprint // viva : 2014-11-07 Saudi Telecom Company viva +// vivo : 2015-07-31 Telefonica Brasil S.A. +vivo + // vlaanderen : 2014-02-06 DNS.be vzw vlaanderen // vodka : 2013-12-19 Top Level Domain Holdings Limited vodka +// volkswagen : 2015-05-14 Volkswagen Group of America Inc. +volkswagen + // vote : 2013-11-21 Monolith Registry LLC vote @@ -9115,6 +10067,9 @@ vuelos // wales : 2014-05-08 Nominet UK wales +// walmart : 2015-07-31 Wal-Mart Stores, Inc. +walmart + // walter : 2014-11-13 Sandvik AB walter @@ -9124,6 +10079,9 @@ wang // wanggou : 2014-12-18 Amazon EU S.à r.l. wanggou +// warman : 2015-06-18 Weir Group IP Limited +warman + // watch : 2013-11-14 Sand Shadow, LLC watch @@ -9139,6 +10097,9 @@ weatherchannel // webcam : 2014-01-23 dot Webcam Limited webcam +// weber : 2015-06-04 Saint-Gobain Weber SA +weber + // website : 2014-04-03 DotWebsite Inc. website @@ -9172,9 +10133,21 @@ win // windows : 2014-12-18 Microsoft Corporation windows +// wine : 2015-06-18 June Station, LLC +wine + +// winners : 2015-07-16 The TJX Companies, Inc. +winners + // wme : 2014-02-13 William Morris Endeavor Entertainment, LLC wme +// wolterskluwer : 2015-08-06 Wolters Kluwer N.V. +wolterskluwer + +// woodside : 2015-07-09 Woodside Petroleum Limited +woodside + // work : 2013-12-19 Top Level Domain Holdings Limited work @@ -9196,6 +10169,9 @@ xbox // xerox : 2014-10-24 Xerox DNHC LLC xerox +// xfinity : 2015-07-09 Comcast IP Holdings I, LLC +xfinity + // xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. xihuan @@ -9220,6 +10196,9 @@ xin // xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED 在线 +// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd. +大众汽车 + // xn--3pxu8k : 2015-01-15 VeriSign Sarl 点看 @@ -9232,12 +10211,18 @@ xin // xn--4gbrim : 2013-10-04 Suhub Electronic Establishment موقع +// xn--4gq48lf9j : 2015-07-31 Wal-Mart Stores, Inc. +一号店 + // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center 公益 // xn--55qx5d : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) 公司 +// xn--5su34j936bgsg : 2015-09-03 Shangri‐La International Hotel Management Limited +香格里拉 + // xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited 网站 @@ -9286,7 +10271,7 @@ xin // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD 삼성 -// xn--czr694b : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY.HONGKONG LIMITED +// xn--czr694b : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED 商标 // xn--czrs0t : 2013-12-19 Wild Island, LLC @@ -9307,6 +10292,9 @@ xin // xn--estv75g : 2015-02-19 Industrial and Commercial Bank of China Limited 工行 +// xn--fct429k : 2015-04-09 Amazon EU S.à r.l. +家電 + // xn--fhbei : 2015-01-15 VeriSign Sarl كوم @@ -9322,6 +10310,9 @@ xin // xn--flw351e : 2014-07-31 Charleston Road Registry Inc. 谷歌 +// xn--fzys8d69uvgm : 2015-05-14 PCCW Enterprises Limited +電訊盈科 + // xn--g2xx48c : 2015-01-30 Minds + Machines Group Limited 购物 @@ -9361,12 +10352,21 @@ xin // xn--mgba3a3ejt : 2014-11-20 Aramco Services Company ارامكو +// xn--mgba7c0bbn0a : 2015-05-14 Crescent Holding GmbH +العليان + +// xn--mgbaakc7dvf : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +اتصالات + // xn--mgbab2bd : 2013-10-31 CORE Association بازار // xn--mgbb9fbpob : 2014-12-18 GreenTech Consultancy Company W.L.L. موبايلي +// xn--mgbca7dzdo : 2015-07-30 Abu Dhabi Systems and Information Centre +ابوظبي + // xn--mgbt3dhd : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. همراه @@ -9436,12 +10436,21 @@ vermögensberatung // xn--vuq861b : 2014-10-16 Beijing Tele-info Network Technology Co., Ltd. 信息 +// xn--w4r85el8fhu5dnra : 2015-04-30 Kerry Trading Co. Limited +嘉里大酒店 + +// xn--w4rs40l : 2015-07-30 Kerry Trading Co. Limited +嘉里 + // xn--xhq521b : 2013-11-14 Guangzhou YU Wei Information Technology Co., Ltd. 广东 // xn--zfr164b : 2013-11-08 China Organizational Name Administration Center 政务 +// xperia : 2015-05-14 Sony Mobile Communications AB +xperia + // xyz : 2013-12-05 XYZ.COM LLC xyz @@ -9466,12 +10475,18 @@ yoga // yokohama : 2013-12-12 GMO Registry, Inc. yokohama +// you : 2015-04-09 Amazon EU S.à r.l. +you + // youtube : 2014-05-01 Charleston Road Registry Inc. youtube // yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. yun +// zappos : 2015-06-25 Amazon EU S.à r.l. +zappos + // zara : 2014-11-07 Industria de Diseño Textil, S.A. (INDITEX, S.A.) zara @@ -9481,6 +10496,9 @@ zero // zip : 2014-05-08 Charleston Road Registry Inc. zip +// zippo : 2015-07-02 Zadco Company +zippo + // zone : 2013-11-14 Outer Falls, LLC zone @@ -9524,26 +10542,22 @@ elasticbeanstalk.com elb.amazonaws.com // Amazon S3 : https://aws.amazon.com/s3/ -// Submitted by Courtney Eckhardt 2013-03-22 +// Submitted by Eric Kinolik 2015-04-08 s3.amazonaws.com -s3-us-west-2.amazonaws.com -s3-us-west-1.amazonaws.com -s3-eu-west-1.amazonaws.com +s3-ap-northeast-1.amazonaws.com s3-ap-southeast-1.amazonaws.com s3-ap-southeast-2.amazonaws.com -s3-ap-northeast-1.amazonaws.com +s3-external-1.amazonaws.com +s3-external-2.amazonaws.com +s3-fips-us-gov-west-1.amazonaws.com +s3-eu-central-1.amazonaws.com +s3-eu-west-1.amazonaws.com s3-sa-east-1.amazonaws.com s3-us-gov-west-1.amazonaws.com -s3-fips-us-gov-west-1.amazonaws.com -s3-website-us-east-1.amazonaws.com -s3-website-us-west-2.amazonaws.com -s3-website-us-west-1.amazonaws.com -s3-website-eu-west-1.amazonaws.com -s3-website-ap-southeast-1.amazonaws.com -s3-website-ap-southeast-2.amazonaws.com -s3-website-ap-northeast-1.amazonaws.com -s3-website-sa-east-1.amazonaws.com -s3-website-us-gov-west-1.amazonaws.com +s3-us-west-1.amazonaws.com +s3-us-west-2.amazonaws.com +s3.cn-north-1.amazonaws.com.cn +s3.eu-central-1.amazonaws.com // BetaInABox // Submitted by adrian@betainabox.com 2012-09-13 @@ -9611,6 +10625,14 @@ cloudcontrolapp.com // co.ca : http://registry.co.ca/ co.ca +// CDN77.com : http://www.cdn77.com +// Submitted by Jan Krpes 2015-07-13 +c.cdn77.org +cdn77-ssl.net +r.cdn77.net +rsc.cdn77.org +ssl.origin.cdn77-secure.org + // CoDNS B.V. co.nl co.no @@ -9627,6 +10649,10 @@ cupcake.is // Submitted by Andrew Farmer 2012-10-02 dreamhosters.com +// DuckDNS : http://www.duckdns.org/ +// Submitted by Richard Harper 2015-05-17 +duckdns.org + // DynDNS.com : http://www.dyndns.com/services/dns/dyndns/ dyndns-at-home.com dyndns-at-work.com @@ -9908,6 +10934,66 @@ webhop.org worse-than.tv writesthisblog.com +// EU.org https://eu.org/ +// Submitted by Pierre Beyssac 2015-04-17 + +eu.org +al.eu.org +asso.eu.org +at.eu.org +au.eu.org +be.eu.org +bg.eu.org +ca.eu.org +cd.eu.org +ch.eu.org +cn.eu.org +cy.eu.org +cz.eu.org +de.eu.org +dk.eu.org +edu.eu.org +ee.eu.org +es.eu.org +fi.eu.org +fr.eu.org +gr.eu.org +hr.eu.org +hu.eu.org +ie.eu.org +il.eu.org +in.eu.org +int.eu.org +is.eu.org +it.eu.org +jp.eu.org +kr.eu.org +lt.eu.org +lu.eu.org +lv.eu.org +mc.eu.org +me.eu.org +mk.eu.org +mt.eu.org +my.eu.org +net.eu.org +ng.eu.org +nl.eu.org +no.eu.org +nz.eu.org +paris.eu.org +pl.eu.org +pt.eu.org +q-a.eu.org +ro.eu.org +ru.eu.org +se.eu.org +si.eu.org +sk.eu.org +tr.eu.org +uk.eu.org +us.eu.org + // Fastly Inc. http://www.fastly.com/ // Submitted by Vladimir Vuksan 2013-05-31 a.ssl.fastly.net @@ -9941,21 +11027,37 @@ ro.com // Submitted by Eduardo Vela 2014-12-19 appspot.com blogspot.ae +blogspot.al +blogspot.am +blogspot.ba blogspot.be +blogspot.bg blogspot.bj blogspot.ca blogspot.cf blogspot.ch +blogspot.cl blogspot.co.at +blogspot.co.id blogspot.co.il +blogspot.co.ke blogspot.co.nz blogspot.co.uk +blogspot.co.za blogspot.com blogspot.com.ar blogspot.com.au blogspot.com.br +blogspot.com.by +blogspot.com.co +blogspot.com.cy +blogspot.com.ee +blogspot.com.eg blogspot.com.es +blogspot.com.mt +blogspot.com.ng blogspot.com.tr +blogspot.com.uy blogspot.cv blogspot.cz blogspot.de @@ -9964,30 +11066,46 @@ blogspot.fi blogspot.fr blogspot.gr blogspot.hk +blogspot.hr blogspot.hu blogspot.ie blogspot.in +blogspot.is blogspot.it blogspot.jp blogspot.kr +blogspot.li +blogspot.lt +blogspot.lu +blogspot.md +blogspot.mk blogspot.mr blogspot.mx +blogspot.my blogspot.nl blogspot.no +blogspot.pe blogspot.pt +blogspot.qa blogspot.re blogspot.ro +blogspot.rs blogspot.ru blogspot.se blogspot.sg +blogspot.si blogspot.sk +blogspot.sn blogspot.td blogspot.tw +blogspot.ug +blogspot.vn codespot.com googleapis.com googlecode.com pagespeedmobilizer.com withgoogle.com +withyoutube.com // Heroku : https://www.heroku.com/ // Submitted by Tom Maher 2013-05-02 @@ -10011,6 +11129,14 @@ azurewebsites.net azure-mobile.net cloudapp.net +// Mozilla Foundation : https://mozilla.org/ +// Submited by glob 2015-07-06 +bmoattachments.org + +// Neustar Inc. +// Submitted by Trung Tran 2015-04-23 +4u.com + // NFSN, Inc. : https://www.NearlyFreeSpeech.NET/ // Submitted by Jeff Wheelhouse 2014-02-02 nfshost.com @@ -10039,14 +11165,33 @@ poznan.pl wroc.pl zakopane.pl +// Pantheon Systems, Inc. : https://pantheon.io/ +// Submitted by Gary Dylina 2015-09-14 +pantheon.io +gotpantheon.com + // priv.at : http://www.nic.priv.at/ // Submitted by registry 2008-06-09 priv.at +// QA2 +// Submitted by Daniel Dent (https://www.danieldent.com/) 2015-07-16 +qa2.com + // Red Hat, Inc. OpenShift : https://openshift.redhat.com/ // Submitted by Tim Kramer 2012-10-24 rhcloud.com +// Sandstorm Development Group, Inc. : https://sandcats.io/ +// Submitted by Asheesh Laroia 2015-07-21 +sandcats.io + +// Service Online LLC : http://drs.ua/ +// Submitted by Serhii Bulakh 2015-07-30 +biz.ua +co.ua +pp.ua + // SinaAppEngine : http://sae.sina.com.cn/ // Submitted by SinaAppEngine 2015-02-02 sinaapp.com From 1568dcbc1523e434db00dff1a5be817e45a4bc7e Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Thu, 30 Apr 2015 14:18:59 +1000 Subject: [PATCH 002/450] Don't duplicate rule indices when creating index. By default, the rule index is re-created when new rules are added to a list. The index isn't cleared when this happens, so the index allows repeated addition of the same indices for the same rule. This in turn slows down `List.find`. --- lib/public_suffix/list.rb | 2 +- test/unit/list_test.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 8ee6a206..457931f8 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -156,7 +156,6 @@ def self.parse(input) # def initialize(&block) @rules = [] - @indexes = {} yield(self) if block_given? create_index! end @@ -169,6 +168,7 @@ def initialize(&block) # where Rule#labels.first is 'us' @indexes['us'] #=> [5,4], that way in # select we can avoid mapping every single rule against the candidate domain. def create_index! + @indexes = {} @rules.map { |l| l.labels.first }.each_with_index do |elm, inx| if !@indexes.has_key?(elm) @indexes[elm] = [inx] diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 8cb344bd..4c8dcd53 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -54,6 +54,13 @@ def test_add_should_recreate_index assert_equal PublicSuffix::Rule.factory("net"), @list.find("google.net") end + def test_add_should_not_duplicate_indices + @list = PublicSuffix::List.parse("com") + @list.add(PublicSuffix::Rule.factory("net")) + + assert_equal @list.indexes["com"], [0] + end + def test_empty? assert @list.empty? @list.add(PublicSuffix::Rule.factory("")) From ff9799a6f954114414ce5f17e482fdff3e2d180c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 25 Oct 2015 17:47:32 +0100 Subject: [PATCH 003/450] Update the PSL source to point to GitHub --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index 59141936..d143a72c 100644 --- a/Rakefile +++ b/Rakefile @@ -91,7 +91,7 @@ desc "Downloads the Public Suffix List file from the repository and stores it lo task :upddef do require "net/http" - DEFINITION_URL = "https://publicsuffix.org/list/effective_tld_names.dat" + DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" File.open("data/definitions.txt", "w+") do |f| response = Net::HTTP.get_response(URI.parse(DEFINITION_URL)) From 7bffc0f2b8808b6f984230e7833c83dfaa6953e1 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 26 Oct 2015 09:11:50 +0100 Subject: [PATCH 004/450] Update definitions --- CHANGELOG.md | 5 + data/definitions.txt | 1378 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 1277 insertions(+), 106 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 263411b3..4e3833f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### master + +- CHANGED: Updated definitions. + + #### Release 1.5.1 - FIXED: Ignore case for parsing and validating (GH-62) diff --git a/data/definitions.txt b/data/definitions.txt index f8941f7a..e2359b96 100644 --- a/data/definitions.txt +++ b/data/definitions.txt @@ -713,7 +713,19 @@ cx gov.cx // cy : http://en.wikipedia.org/wiki/.cy -*.cy +ac.cy +biz.cy +com.cy +ekloges.cy +gov.cy +ltd.cy +name.cy +net.cy +org.cy +parliament.cy +press.cy +pro.cy +tm.cy // cz : http://en.wikipedia.org/wiki/.cz cz @@ -826,6 +838,7 @@ edu.et biz.et name.et info.et +net.et // eu : http://en.wikipedia.org/wiki/.eu eu @@ -932,6 +945,11 @@ org.gi // gl : http://en.wikipedia.org/wiki/.gl // http://nic.gl gl +co.gl +com.gl +edu.gl +net.gl +org.gl // gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm gm @@ -1113,8 +1131,16 @@ web.id ie gov.ie -// il : http://en.wikipedia.org/wiki/.il -*.il +// il : http://www.isoc.org.il/domains/ +il +ac.il +co.il +gov.il +idf.il +k12.il +muni.il +net.il +org.il // im : https://www.nic.im/ // Submitted by registry 2013-11-15 @@ -3571,6 +3597,7 @@ ltd.lk assn.lk grp.lk hotel.lk +ac.lk // lr : http://psg.com/dns/lr/lr.txt // Submitted by registry 2008-06-17 @@ -3647,7 +3674,7 @@ gov.me its.me priv.me -// mg : http://www.nic.mg/tarif.htm +// mg : http://nic.mg/nicmg/?page_id=39 mg org.mg nom.mg @@ -3657,6 +3684,7 @@ tm.mg edu.mg mil.mg com.mg +co.mg // mh : http://en.wikipedia.org/wiki/.mh mh @@ -4412,9 +4440,9 @@ mobi.ng // ni : http://www.nic.ni/dominios.htm *.ni -// nl : http://www.domain-registry.nl/ace.php/c,728,122,,,,Home.html -// Confirmed by registry (with technical -// reservations) 2008-06-08 +// nl : http://en.wikipedia.org/wiki/.nl +// https://www.sidn.nl/ +// ccTLD for the Netherlands nl // BV.nl will be a registry for dutch BV's (besloten vennootschap) @@ -5304,14 +5332,11 @@ gos.pk info.pk // pl http://www.dns.pl/english/index.html -// confirmed on 26.09.2014 from Bogna Tchórzewska +// updated by .PL registry on 2015-04-28 pl com.pl net.pl org.pl -info.pl -waw.pl -gov.pl // pl functional domains (http://www.dns.pl/english/index.html) aid.pl agro.pl @@ -5321,6 +5346,7 @@ biz.pl edu.pl gmina.pl gsm.pl +info.pl mail.pl miasta.pl media.pl @@ -5342,16 +5368,55 @@ tm.pl tourism.pl travel.pl turystyka.pl -// Government domains (administred by ippt.gov.pl) -uw.gov.pl -um.gov.pl +// Government domains +gov.pl +ap.gov.pl +ic.gov.pl +is.gov.pl +us.gov.pl +kmpsp.gov.pl +kppsp.gov.pl +kwpsp.gov.pl +psp.gov.pl +wskr.gov.pl +kwp.gov.pl +mw.gov.pl ug.gov.pl +um.gov.pl +umig.gov.pl +ugim.gov.pl upow.gov.pl +uw.gov.pl starostwo.gov.pl +pa.gov.pl +po.gov.pl +psse.gov.pl +pup.gov.pl +rzgw.gov.pl +sa.gov.pl so.gov.pl sr.gov.pl -po.gov.pl -pa.gov.pl +wsa.gov.pl +sko.gov.pl +uzs.gov.pl +wiih.gov.pl +winb.gov.pl +pinb.gov.pl +wios.gov.pl +witd.gov.pl +wzmiuw.gov.pl +piw.gov.pl +wiw.gov.pl +griw.gov.pl +wif.gov.pl +oum.gov.pl +sdn.gov.pl +zp.gov.pl +uppo.gov.pl +mup.gov.pl +wuoz.gov.pl +konsulat.gov.pl +oirm.gov.pl // pl regional domains (http://www.dns.pl/english/index.html) augustow.pl babia-gora.pl @@ -5459,6 +5524,7 @@ ustka.pl walbrzych.pl warmia.pl warszawa.pl +waw.pl wegrow.pl wielun.pl wlocl.pl @@ -6245,10 +6311,6 @@ zhytomyr.ua zp.ua zt.ua -// Private registries in .ua -co.ua -pp.ua - // ug : https://www.registry.co.ug/ ug co.ug @@ -6621,114 +6683,147 @@ edu.ws yt // IDN ccTLDs -// Please sort by ISO 3166 ccTLD, then punicode string -// when submitting patches and follow this format: -// ("" ) : -// [optional sponsoring org] -// +// When submitting patches, please maintain a sort by ISO 3166 ccTLD, then +// U-label, and follow this format: +// // A-Label ("", [, variant info]) : +// // [sponsoring org] +// U-Label -// xn--mgbaam7a8h ("Emerat" Arabic) : AE +// xn--mgbaam7a8h ("Emerat", Arabic) : AE // http://nic.ae/english/arabicdomain/rules.jsp امارات -// xn--54b7fta0cc ("Bangla" Bangla) : BD +// xn--y9a3aq ("hye", Armenian) : AM +// ISOC AM (operated by .am Registry) +հայ + +// xn--54b7fta0cc ("Bangla", Bangla) : BD বাংলা -// xn--fiqs8s ("China" Chinese-Han-Simplified <.Zhongguo>) : CN +// xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY +// Operated by .by registry +бел + +// xn--fiqs8s ("Zhongguo/China", Chinese, Simplified) : CN // CNNIC // http://cnnic.cn/html/Dir/2005/10/11/3218.htm 中国 -// xn--fiqz9s ("China" Chinese-Han-Traditional <.Zhongguo>) : CN +// xn--fiqz9s ("Zhongguo/China", Chinese, Traditional) : CN // CNNIC // http://cnnic.cn/html/Dir/2005/10/11/3218.htm 中國 -// xn--lgbbat1ad8j ("Algeria / Al Jazair" Arabic) : DZ +// xn--lgbbat1ad8j ("Algeria/Al Jazair", Arabic) : DZ الجزائر -// xn--wgbh1c ("Egypt" Arabic .masr) : EG +// xn--wgbh1c ("Egypt/Masr", Arabic) : EG // http://www.dotmasr.eg/ مصر -// xn--node ("ge" Georgian (Mkhedruli)) : GE +// xn--node ("ge", Georgian Mkhedruli) : GE გე -// xn--j6w193g ("Hong Kong" Chinese-Han) : HK +// xn--qxam ("el", Greek) : GR +// Hellenic Ministry of Infrastructure, Transport, and Networks +ελ + +// xn--j6w193g ("Hong Kong", Chinese) : HK // https://www2.hkirc.hk/register/rules.jsp 香港 -// xn--h2brj9c ("Bharat" Devanagari) : IN +// xn--h2brj9c ("Bharat", Devanagari) : IN // India भारत -// xn--mgbbh1a71e ("Bharat" Arabic) : IN +// xn--mgbbh1a71e ("Bharat", Arabic) : IN // India بھارت -// xn--fpcrj9c3d ("Bharat" Telugu) : IN +// xn--fpcrj9c3d ("Bharat", Telugu) : IN // India భారత్ -// xn--gecrj9c ("Bharat" Gujarati) : IN +// xn--gecrj9c ("Bharat", Gujarati) : IN // India ભારત -// xn--s9brj9c ("Bharat" Gurmukhi) : IN +// xn--s9brj9c ("Bharat", Gurmukhi) : IN // India ਭਾਰਤ -// xn--45brj9c ("Bharat" Bengali) : IN +// xn--45brj9c ("Bharat", Bengali) : IN // India ভারত -// xn--xkc2dl3a5ee0h ("India" Tamil) : IN +// xn--xkc2dl3a5ee0h ("India", Tamil) : IN // India இந்தியா -// xn--mgba3a4f16a ("Iran" Persian) : IR +// xn--mgba3a4f16a ("Iran", Persian) : IR ایران -// xn--mgba3a4fra ("Iran" Arabic) : IR +// xn--mgba3a4fra ("Iran", Arabic) : IR ايران -// xn--mgbayh7gpa ("al-Ordon" Arabic) : JO +// xn--mgbtx2b ("Iraq", Arabic) : IQ +// Communications and Media Commission +عراق + +// xn--mgbayh7gpa ("al-Ordon", Arabic) : JO // National Information Technology Center (NITC) // Royal Scientific Society, Al-Jubeiha الاردن -// xn--3e0b707e ("Republic of Korea" Hangul) : KR +// xn--3e0b707e ("Republic of Korea", Hangul) : KR 한국 -// xn--80ao21a ("Kaz" Kazakh) : KZ +// xn--80ao21a ("Kaz", Kazakh) : KZ қаз -// xn--fzc2c9e2c ("Lanka" Sinhalese-Sinhala) : LK +// xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK // http://nic.lk ලංකා -// xn--xkc2al3hye2a ("Ilangai" Tamil) : LK +// xn--xkc2al3hye2a ("Ilangai", Tamil) : LK // http://nic.lk இலங்கை -// xn--mgbc0a9azcg ("Morocco / al-Maghrib" Arabic) : MA +// xn--mgbc0a9azcg ("Morocco/al-Maghrib", Arabic) : MA المغرب -// xn--l1acc ("mon" Mongolian) : MN +// xn--d1alf ("mkd", Macedonian) : MK +// MARnet +мкд + +// xn--l1acc ("mon", Mongolian) : MN мон -// xn--mgbx4cd0ab ("Malaysia" Malay) : MY +// xn--mix891f ("Macao", Chinese, Traditional) : MO +// MONIC / HNET Asia (Registry Operator for .mo) +澳門 + +// xn--mix082f ("Macao", Chinese, Simplified) : MO +澳门 + +// xn--mgbx4cd0ab ("Malaysia", Malay) : MY مليسيا -// xn--mgb9awbf ("Oman" Arabic) : OM +// xn--mgb9awbf ("Oman", Arabic) : OM عمان -// xn--ygbi2ammx ("Falasteen" Arabic) : PS +// xn--mgbai9azgqp6j ("Pakistan", Urdu/Arabic) : PK +پاکستان + +// xn--mgbai9a5eva00b ("Pakistan", Urdu/Arabic, variant) : PK +پاكستان + +// xn--ygbi2ammx ("Falasteen", Arabic) : PS // The Palestinian National Internet Naming Authority (PNINA) // http://www.pnina.ps فلسطين -// xn--90a3ac ("srb" Cyrillic) : RS +// xn--90a3ac ("srb", Cyrillic) : RS // http://www.rnids.rs/en/the-.срб-domain срб пр.срб @@ -6738,62 +6833,66 @@ yt упр.срб ак.срб -// xn--p1ai ("rf" Russian-Cyrillic) : RU +// xn--p1ai ("rf", Russian-Cyrillic) : RU // http://www.cctld.ru/en/docs/rulesrf.php рф -// xn--wgbl6a ("Qatar" Arabic) : QA +// xn--wgbl6a ("Qatar", Arabic) : QA // http://www.ict.gov.qa/ قطر -// xn--mgberp4a5d4ar ("AlSaudiah" Arabic) : SA +// xn--mgberp4a5d4ar ("AlSaudiah", Arabic) : SA // http://www.nic.net.sa/ السعودية -// xn--mgberp4a5d4a87g ("AlSaudiah" Arabic) variant : SA +// xn--mgberp4a5d4a87g ("AlSaudiah", Arabic, variant) : SA السعودیة -// xn--mgbqly7c0a67fbc ("AlSaudiah" Arabic) variant : SA +// xn--mgbqly7c0a67fbc ("AlSaudiah", Arabic, variant) : SA السعودیۃ -// xn--mgbqly7cvafr ("AlSaudiah" Arabic) variant : SA +// xn--mgbqly7cvafr ("AlSaudiah", Arabic, variant) : SA السعوديه -// xn--ogbpf8fl ("Syria" Arabic) : SY -سورية - -// xn--mgbtf8fl ("Syria" Arabic) variant : SY -سوريا +// xn--mgbpl2fh ("sudan", Arabic) : SD +// Operated by .sd registry +سودان -// xn--yfro4i67o Singapore ("Singapore" Chinese-Han) : SG +// xn--yfro4i67o Singapore ("Singapore", Chinese) : SG 新加坡 -// xn--clchc0ea0b2g2a9gcd ("Singapore" Tamil) : SG +// xn--clchc0ea0b2g2a9gcd ("Singapore", Tamil) : SG சிங்கப்பூர் -// xn--o3cw4h ("Thai" Thai) : TH +// xn--ogbpf8fl ("Syria", Arabic) : SY +سورية + +// xn--mgbtf8fl ("Syria", Arabic, variant) : SY +سوريا + +// xn--o3cw4h ("Thai", Thai) : TH // http://www.thnic.co.th ไทย -// xn--pgbs0dh ("Tunis") : TN +// xn--pgbs0dh ("Tunisia", Arabic) : TN // http://nic.tn تونس -// xn--kpry57d ("Taiwan" Chinese-Han-Traditional) : TW +// xn--kpry57d ("Taiwan", Chinese, Traditional) : TW // http://www.twnic.net/english/dn/dn_07a.htm 台灣 -// xn--kprw13d ("Taiwan" Chinese-Han-Simplified) : TW +// xn--kprw13d ("Taiwan", Chinese, Simplified) : TW // http://www.twnic.net/english/dn/dn_07a.htm 台湾 -// xn--nnx388a ("Taiwan") variant : TW +// xn--nnx388a ("Taiwan", Chinese, variant) : TW 臺灣 -// xn--j1amh ("ukr" Cyrillic) : UA +// xn--j1amh ("ukr", Cyrillic) : UA укр -// xn--mgb2ddes ("AlYemen" Arabic) : YE +// xn--mgb2ddes ("AlYemen", Arabic) : YE اليمن // xxx : http://icmregistry.com @@ -6802,8 +6901,24 @@ xxx // ye : http://www.y.net.ye/services/domain_name.htm *.ye -// za : http://www.zadna.org.za/slds.html -*.za +// za : http://www.zadna.org.za/content/page/domain-information +ac.za +agrica.za +alt.za +co.za +edu.za +gov.za +grondar.za +law.za +mil.za +net.za +ngo.za +nis.za +nom.za +org.za +school.za +tm.za +web.za // zm : http://en.wikipedia.org/wiki/.zm *.zm @@ -6812,20 +6927,38 @@ xxx *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-04-07T06:02:08Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-10-11T22:21:58Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa +// aarp : 2015-05-21 AARP +aarp + +// abarth : 2015-07-30 Fiat Chrysler Automobiles N.V. +abarth + // abb : 2014-10-24 ABB Ltd abb // abbott : 2014-07-24 Abbott Laboratories, Inc. abbott +// abbvie : 2015-07-30 AbbVie Inc. +abbvie + +// abc : 2015-07-30 Disney Enterprises, Inc. +abc + +// able : 2015-06-25 Able Inc. +able + // abogado : 2014-04-24 Top Level Domain Holdings Limited abogado +// abudhabi : 2015-07-30 Abu Dhabi Systems and Information Centre +abudhabi + // academy : 2013-11-07 Half Oaks, LLC academy @@ -6847,6 +6980,9 @@ active // actor : 2013-12-12 United TLD Holdco Ltd. actor +// adac : 2015-07-16 Allgemeiner Deutscher Automobil-Club e.V. (ADAC) +adac + // ads : 2014-12-04 Charleston Road Registry Inc. ads @@ -6856,6 +6992,12 @@ adult // aeg : 2015-03-19 Aktiebolaget Electrolux aeg +// aetna : 2015-05-21 Aetna Life Insurance Company +aetna + +// afamilycompany : 2015-07-23 Johnson Shareholdings, Inc. +afamilycompany + // afl : 2014-10-02 Australian Football League afl @@ -6865,18 +7007,33 @@ africa // africamagic : 2015-03-05 Electronic Media Network (Pty) Ltd africamagic +// agakhan : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) +agakhan + // agency : 2013-11-14 Steel Falls, LLC agency // aig : 2014-12-18 American International Group, Inc. aig +// aigo : 2015-08-06 aigo Digital Technology Co,Ltd. +aigo + +// airbus : 2015-07-30 Airbus S.A.S. +airbus + // airforce : 2014-03-06 United TLD Holdco Ltd. airforce // airtel : 2014-10-24 Bharti Airtel Limited airtel +// akdn : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) +akdn + +// alfaromeo : 2015-07-31 Fiat Chrysler Automobiles N.V. +alfaromeo + // alibaba : 2015-01-15 Alibaba Group Holding Limited alibaba @@ -6886,9 +7043,33 @@ alipay // allfinanz : 2014-07-03 Allfinanz Deutsche Vermögensberatung Aktiengesellschaft allfinanz +// allstate : 2015-07-31 Allstate Fire and Casualty Insurance Company +allstate + +// ally : 2015-06-18 Ally Financial Inc. +ally + // alsace : 2014-07-02 REGION D ALSACE alsace +// alstom : 2015-07-30 ALSTOM +alstom + +// americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc. +americanexpress + +// americanfamily : 2015-07-23 AmFam, Inc. +americanfamily + +// amex : 2015-07-31 American Express Travel Related Services Company, Inc. +amex + +// amfam : 2015-07-23 AmFam, Inc. +amfam + +// amica : 2015-05-28 Amica Mutual Insurance Company +amica + // amsterdam : 2014-07-24 Gemeente Amsterdam amsterdam @@ -6901,9 +7082,21 @@ android // anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. anquan +// anz : 2015-07-31 Australia and New Zealand Banking Group Limited +anz + +// aol : 2015-09-17 AOL Inc. +aol + // apartments : 2014-12-11 June Maple, LLC apartments +// app : 2015-05-14 Charleston Road Registry Inc. +app + +// apple : 2015-05-14 Apple Inc. +apple + // aquarelle : 2014-07-24 Aquarelle.com aquarelle @@ -6919,22 +7112,37 @@ army // arte : 2014-12-11 Association Relative à la Télévision Européenne G.E.I.E. arte +// asda : 2015-07-31 Wal-Mart Stores, Inc. +asda + // associates : 2014-03-06 Baxter Hill, LLC associates +// athleta : 2015-07-30 The Gap, Inc. +athleta + // attorney : 2014-03-20 attorney // auction : 2014-03-20 auction +// audi : 2015-05-21 AUDI Aktiengesellschaft +audi + +// audible : 2015-06-25 Amazon EU S.à r.l. +audible + // audio : 2014-03-20 Uniregistry, Corp. audio +// auspost : 2015-08-13 Australian Postal Corporation +auspost + // author : 2014-12-18 Amazon EU S.à r.l. author -// auto : 2014-11-13 Uniregistry, Corp. +// auto : 2014-11-13 auto // autos : 2014-01-09 DERAutos, LLC @@ -6943,15 +7151,27 @@ autos // avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca avianca +// aws : 2015-06-25 Amazon EU S.à r.l. +aws + // axa : 2013-12-19 AXA SA axa // azure : 2014-12-18 Microsoft Corporation azure +// baby : 2015-04-09 Johnson & Johnson Services, Inc. +baby + // baidu : 2015-01-08 Baidu, Inc. baidu +// banamex : 2015-07-30 Citigroup Inc. +banamex + +// bananarepublic : 2015-07-31 The Gap, Inc. +bananarepublic + // band : 2014-06-12 band @@ -6970,9 +7190,15 @@ barclaycard // barclays : 2014-11-20 Barclays Bank PLC barclays +// barefoot : 2015-06-11 Gallo Vineyards, Inc. +barefoot + // bargains : 2013-11-14 Half Hallow, LLC bargains +// basketball : 2015-08-20 Fédération Internationale de Basketball (FIBA) +basketball + // bauhaus : 2014-04-17 Werkhaus GmbH bauhaus @@ -6982,6 +7208,9 @@ bayern // bbc : 2014-12-18 British Broadcasting Corporation bbc +// bbt : 2015-07-23 BB&T Corporation +bbt + // bbva : 2014-10-02 BANCO BILBAO VIZCAYA ARGENTARIA, S.A. bbva @@ -6991,6 +7220,9 @@ bcg // bcn : 2014-07-24 Municipi de Barcelona bcn +// beats : 2015-05-14 Beats Electronics, LLC +beats + // beer : 2014-01-09 Top Level Domain Holdings Limited beer @@ -7003,6 +7235,12 @@ berlin // best : 2013-12-19 BestTLD Pty Ltd best +// bestbuy : 2015-07-31 BBY Solutions, Inc. +bestbuy + +// bet : 2015-05-07 Afilias plc +bet + // bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited bharti @@ -7030,6 +7268,15 @@ black // blackfriday : 2014-01-16 Uniregistry, Corp. blackfriday +// blanco : 2015-07-16 BLANCO GmbH + Co KG +blanco + +// blockbuster : 2015-07-30 Dish DBS Corporation +blockbuster + +// blog : 2015-05-14 PRIMER NIVEL S.A. +blog + // bloomberg : 2014-07-17 Bloomberg IP Holdings LLC bloomberg @@ -7051,6 +7298,12 @@ bnpparibas // boats : 2014-12-04 DERBoats, LLC boats +// boehringer : 2015-07-09 Boehringer Ingelheim International GmbH +boehringer + +// bofa : 2015-07-31 NMS Services, Inc. +bofa + // bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br bom @@ -7060,9 +7313,21 @@ bond // boo : 2014-01-30 Charleston Road Registry Inc. boo +// book : 2015-08-27 Amazon EU S.à r.l. +book + +// booking : 2015-07-16 Booking.com B.V. +booking + // boots : 2015-01-08 THE BOOTS COMPANY PLC boots +// bosch : 2015-06-18 Robert Bosch GMBH +bosch + +// bostik : 2015-05-28 Bostik SA +bostik + // bot : 2014-12-18 Amazon EU S.à r.l. bot @@ -7090,6 +7355,9 @@ brussels // budapest : 2013-11-21 Top Level Domain Holdings Limited budapest +// bugatti : 2015-07-23 Bugatti International SA +bugatti + // build : 2013-11-07 Plan Bee LLC build @@ -7120,6 +7388,9 @@ cal // call : 2014-12-18 Amazon EU S.à r.l. call +// calvinklein : 2015-07-30 PVH gTLD Holdings LLC +calvinklein + // camera : 2013-08-27 Atomic Maple, LLC camera @@ -7138,7 +7409,10 @@ capetown // capital : 2014-03-06 Delta Mill, LLC capital -// car : 2015-01-22 Charleston Road Registry Inc. +// capitalone : 2015-08-06 Capital One Financial Corporation +capitalone + +// car : 2015-01-22 car // caravan : 2013-12-12 Caravan International, Inc. @@ -7156,7 +7430,7 @@ career // careers : 2013-10-02 Wild Corner, LLC careers -// cars : 2014-11-13 Uniregistry, Corp. +// cars : 2014-11-13 cars // cartier : 2014-06-23 Richemont DNS Inc. @@ -7165,6 +7439,12 @@ cartier // casa : 2013-11-21 Top Level Domain Holdings Limited casa +// case : 2015-09-03 CNH Industrial N.V. +case + +// caseih : 2015-09-03 CNH Industrial N.V. +caseih + // cash : 2014-03-06 Delta Lake, LLC cash @@ -7180,13 +7460,22 @@ cba // cbn : 2014-08-22 The Christian Broadcasting Network, Inc. cbn +// cbre : 2015-07-02 CBRE, Inc. +cbre + +// cbs : 2015-08-06 CBS Domains Inc. +cbs + +// ceb : 2015-04-09 The Corporate Executive Board Company +ceb + // center : 2013-11-07 Tin Mill, LLC center // ceo : 2013-11-07 CEOTLD Pty Ltd ceo -// cern : 2014-06-05 European Organization for Nuclear Research (\ +// cern : 2014-06-05 European Organization for Nuclear Research ("CERN") cern // cfa : 2014-08-28 CFA Institute @@ -7195,15 +7484,24 @@ cfa // cfd : 2014-12-11 IG Group Holdings PLC cfd +// chanel : 2015-04-09 Chanel International B.V. +chanel + // channel : 2014-05-08 Charleston Road Registry Inc. channel +// chase : 2015-04-30 JPMorgan Chase & Co. +chase + // chat : 2014-12-04 Sand Fields, LLC chat // cheap : 2013-11-14 Sand Cover, LLC cheap +// chintai : 2015-06-11 CHINTAI Corporation +chintai + // chloe : 2014-10-16 Richemont DNS Inc. chloe @@ -7213,6 +7511,9 @@ christmas // chrome : 2014-07-24 Charleston Road Registry Inc. chrome +// chrysler : 2015-07-30 FCA US LLC. +chrysler + // church : 2014-02-06 Holly Fields, LLC church @@ -7225,6 +7526,12 @@ circle // cisco : 2014-12-22 Cisco Technology, Inc. cisco +// citadel : 2015-07-23 Citadel Domain LLC +citadel + +// citi : 2015-07-30 Citigroup Inc. +citi + // citic : 2014-01-09 CITIC Group Corporation citic @@ -7246,12 +7553,21 @@ click // clinic : 2014-03-20 Goose Park, LLC clinic +// clinique : 2015-10-01 The Estée Lauder Companies Inc. +clinique + // clothing : 2013-08-27 Steel Lake, LLC clothing +// cloud : 2015-04-16 ARUBA S.p.A. +cloud + // club : 2013-11-08 .CLUB DOMAINS, LLC club +// clubmed : 2015-06-25 Club Méditerranée S.A. +clubmed + // coach : 2014-10-09 Koko Island, LLC coach @@ -7267,6 +7583,9 @@ college // cologne : 2014-02-05 NetCologne Gesellschaft für Telekommunikation mbH cologne +// comcast : 2015-07-23 Comcast IP Holdings I, LLC +comcast + // commbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA commbank @@ -7276,6 +7595,9 @@ community // company : 2013-11-07 Silver Avenue, LLC company +// compare : 2015-10-08 iSelect Ltd +compare + // computer : 2013-10-24 Pine Mill, LLC computer @@ -7300,6 +7622,9 @@ contractors // cooking : 2013-11-21 Top Level Domain Holdings Limited cooking +// cookingchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. +cookingchannel + // cool : 2013-11-14 Koko Lake, LLC cool @@ -7375,6 +7700,12 @@ day // dclk : 2014-11-20 Charleston Road Registry Inc. dclk +// dds : 2015-05-07 Top Level Domain Holdings Limited +dds + +// deal : 2015-06-25 Amazon EU S.à r.l. +deal + // dealer : 2014-12-22 Dealer Dot Com, Inc. dealer @@ -7390,6 +7721,9 @@ delivery // dell : 2014-10-24 Dell Inc. dell +// deloitte : 2015-07-31 Deloitte Touche Tohmatsu +deloitte + // delta : 2015-02-19 Delta Air Lines, Inc. delta @@ -7411,6 +7745,9 @@ design // dev : 2014-10-16 Charleston Road Registry Inc. dev +// dhl : 2015-07-23 Deutsche Post AG +dhl + // diamonds : 2013-09-22 John Edge, LLC diamonds @@ -7429,12 +7766,21 @@ directory // discount : 2014-03-06 Holly Hill, LLC discount +// discover : 2015-07-23 Discover Financial Services +discover + +// dish : 2015-07-30 Dish DBS Corporation +dish + // dnp : 2013-12-13 Dai Nippon Printing Co., Ltd. dnp // docs : 2014-10-16 Charleston Road Registry Inc. docs +// dodge : 2015-07-30 FCA US LLC. +dodge + // dog : 2014-12-04 Koko Mill, LLC dog @@ -7447,6 +7793,9 @@ domains // doosan : 2014-04-03 Doosan Corporation doosan +// dot : 2015-05-21 Dish DBS Corporation +dot + // download : 2014-11-20 dot Support Limited download @@ -7456,15 +7805,33 @@ drive // dstv : 2015-03-12 MultiChoice (Proprietary) Limited dstv +// dtv : 2015-06-04 Dish DBS Corporation +dtv + // dubai : 2015-01-01 Dubai Smart Government Department dubai +// duck : 2015-07-23 Johnson Shareholdings, Inc. +duck + +// dunlop : 2015-07-02 The Goodyear Tire & Rubber Company +dunlop + +// duns : 2015-08-06 The Dun & Bradstreet Corporation +duns + +// dupont : 2015-06-25 E.I. du Pont de Nemours and Company +dupont + // durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry durban // dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG dvag +// dwg : 2015-07-23 Autodesk, Inc. +dwg + // earth : 2014-12-04 Interlink Co., Ltd. earth @@ -7483,6 +7850,9 @@ email // emerck : 2014-04-03 Merck KGaA emerck +// emerson : 2015-07-23 Emerson Electric Co. +emerson + // energy : 2014-09-11 Binky Birch, LLC energy @@ -7495,12 +7865,18 @@ engineering // enterprises : 2013-09-20 Snow Oaks, LLC enterprises +// epost : 2015-07-23 Deutsche Post AG +epost + // epson : 2014-12-04 Seiko Epson Corporation epson // equipment : 2013-08-27 Corn Station, LLC equipment +// ericsson : 2015-07-09 Telefonaktiebolaget L M Ericsson +ericsson + // erni : 2014-04-03 ERNI Group Holding AG erni @@ -7510,6 +7886,12 @@ esq // estate : 2013-08-27 Trixy Park, LLC estate +// esurance : 2015-07-23 Esurance Insurance Company +esurance + +// etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +etisalat + // eurovision : 2014-04-24 European Broadcasting Union (EBU) eurovision @@ -7534,6 +7916,9 @@ exposed // express : 2015-02-11 Sea Sunset, LLC express +// extraspace : 2015-05-14 Extra Space Storage LLC +extraspace + // fage : 2014-12-18 Fage International S.A. fage @@ -7546,7 +7931,7 @@ fairwinds // faith : 2014-11-20 dot Faith Limited faith -// family : 2015-04-02 Bitter Galley, LLC +// family : 2015-04-02 family // fan : 2014-03-06 @@ -7558,18 +7943,36 @@ fans // farm : 2013-11-07 Just Maple, LLC farm +// farmers : 2015-07-09 Farmers Insurance Exchange +farmers + // fashion : 2014-07-03 Top Level Domain Holdings Limited fashion // fast : 2014-12-18 Amazon EU S.à r.l. fast +// fedex : 2015-08-06 Federal Express Corporation +fedex + // feedback : 2013-12-19 Top Level Spectrum, Inc. feedback +// ferrari : 2015-07-31 Fiat Chrysler Automobiles N.V. +ferrari + // ferrero : 2014-12-18 Ferrero Trading Lux S.A. ferrero +// fiat : 2015-07-31 Fiat Chrysler Automobiles N.V. +fiat + +// fidelity : 2015-07-30 Fidelity Brokerage Services LLC +fidelity + +// fido : 2015-08-06 Rogers Communications Partnership +fido + // film : 2015-01-08 Motion Picture Domain Registry Pty Ltd film @@ -7582,6 +7985,9 @@ finance // financial : 2014-03-06 Just Cover, LLC financial +// fire : 2015-06-25 Amazon EU S.à r.l. +fire + // firestone : 2014-12-18 Bridgestone Corporation firestone @@ -7606,6 +8012,9 @@ flickr // flights : 2013-12-05 Fox Station, LLC flights +// flir : 2015-07-23 FLIR Systems, Inc. +flir + // florist : 2013-11-07 Half Cypress, LLC florist @@ -7621,6 +8030,9 @@ fly // foo : 2014-01-23 Charleston Road Registry Inc. foo +// foodnetwork : 2015-07-02 Lifestyle Domain Holdings, Inc. +foodnetwork + // football : 2014-12-18 Foggy Farms, LLC football @@ -7639,15 +8051,33 @@ forum // foundation : 2013-12-05 John Dale, LLC foundation +// fox : 2015-09-11 FOX Registry, LLC +fox + +// fresenius : 2015-07-30 Fresenius Immobilien-Verwaltungs-GmbH +fresenius + // frl : 2014-05-15 FRLregistry B.V. frl // frogans : 2013-12-19 OP3FT frogans +// frontdoor : 2015-07-02 Lifestyle Domain Holdings, Inc. +frontdoor + // frontier : 2015-02-05 Frontier Communications Corporation frontier +// ftr : 2015-07-16 Frontier Communications Corporation +ftr + +// fujitsu : 2015-07-30 Fujitsu Limited +fujitsu + +// fujixerox : 2015-07-23 Xerox DNHC LLC +fujixerox + // fund : 2014-03-20 John Castle, LLC fund @@ -7666,16 +8096,28 @@ gal // gallery : 2013-09-13 Sugar House, LLC gallery +// gallo : 2015-06-11 Gallo Vineyards, Inc. +gallo + // gallup : 2015-02-19 Gallup, Inc. gallup +// game : 2015-05-28 Uniregistry, Corp. +game + +// games : 2015-05-28 Foggy Beach, LLC +games + +// gap : 2015-07-31 The Gap, Inc. +gap + // garden : 2014-06-26 Top Level Domain Holdings Limited garden // gbiz : 2014-07-17 Charleston Road Registry Inc. gbiz -// gdn : 2014-07-31 Joint Stock Company \ +// gdn : 2014-07-31 Joint Stock Company "Navigation-information systems" gdn // gea : 2014-12-04 GEA Group Aktiengesellschaft @@ -7687,6 +8129,9 @@ gent // genting : 2015-03-12 Resorts World Inc Pte. Ltd. genting +// george : 2015-07-31 Wal-Mart Stores, Inc. +george + // ggee : 2014-01-09 GMO Internet, Inc. ggee @@ -7702,6 +8147,9 @@ gives // giving : 2014-11-13 Giving Limited giving +// glade : 2015-07-23 Johnson Shareholdings, Inc. +glade + // glass : 2013-11-07 Black Cover, LLC glass @@ -7723,6 +8171,9 @@ gmo // gmx : 2014-04-24 1&1 Mail & Media GmbH gmx +// godaddy : 2015-07-23 Go Daddy East, LLC +godaddy + // gold : 2015-01-22 June Edge, LLC gold @@ -7735,6 +8186,12 @@ golf // goo : 2014-12-18 NTT Resonant Inc. goo +// goodhands : 2015-07-31 Allstate Fire and Casualty Insurance Company +goodhands + +// goodyear : 2015-07-02 The Goodyear Tire & Rubber Company +goodyear + // goog : 2014-11-20 Charleston Road Registry Inc. goog @@ -7750,6 +8207,9 @@ got // gotv : 2015-03-12 MultiChoice (Proprietary) Limited gotv +// grainger : 2015-05-07 Grainger Registry Services, LLC +grainger + // graphics : 2013-09-13 Over Madison, LLC graphics @@ -7765,6 +8225,9 @@ gripe // group : 2014-08-15 Romeo Town, LLC group +// guardian : 2015-07-30 The Guardian Life Insurance Company of America +guardian + // gucci : 2014-11-13 Guccio Gucci S.p.a. gucci @@ -7789,6 +8252,12 @@ hangout // haus : 2013-12-05 haus +// hbo : 2015-07-30 HBO Registry Services, Inc. +hbo + +// hdfc : 2015-07-30 HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED +hdfc + // hdfcbank : 2015-02-12 HDFC Bank Limited hdfcbank @@ -7810,15 +8279,24 @@ here // hermes : 2014-07-10 HERMES INTERNATIONAL hermes +// hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc. +hgtv + // hiphop : 2014-03-06 Uniregistry, Corp. hiphop +// hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc. +hisamitsu + // hitachi : 2014-10-31 Hitachi, Ltd. hitachi // hiv : 2014-03-13 dotHIV gemeinnuetziger e.V. hiv +// hkt : 2015-05-14 PCCW-HKT DataCom Services Limited +hkt + // hockey : 2015-03-19 Half Willow, LLC hockey @@ -7831,12 +8309,21 @@ holiday // homedepot : 2015-04-02 Homer TLC, Inc. homedepot +// homegoods : 2015-07-16 The TJX Companies, Inc. +homegoods + // homes : 2014-01-09 DERHomes, LLC homes +// homesense : 2015-07-16 The TJX Companies, Inc. +homesense + // honda : 2014-12-18 Honda Motor Co., Ltd. honda +// honeywell : 2015-07-23 Honeywell GTLD LLC +honeywell + // horse : 2013-11-21 Top Level Domain Holdings Limited horse @@ -7846,6 +8333,9 @@ host // hosting : 2014-05-29 Uniregistry, Corp. hosting +// hot : 2015-08-27 Amazon EU S.à r.l. +hot + // hoteles : 2015-03-05 Travel Reservations SRL hoteles @@ -7864,6 +8354,15 @@ hsbc // htc : 2015-04-02 HTC corporation htc +// hughes : 2015-07-30 Hughes Satellite Systems Corporation +hughes + +// hyatt : 2015-07-30 Hyatt GTLD, L.L.C. +hyatt + +// hyundai : 2015-07-09 Hyundai Motor Company +hyundai + // ibm : 2014-07-31 International Business Machines Corporation ibm @@ -7876,12 +8375,24 @@ ice // icu : 2015-01-08 One.com A/S icu +// ieee : 2015-07-23 IEEE Global LLC +ieee + // ifm : 2014-01-30 ifm electronic gmbh ifm // iinet : 2014-07-03 Connect West Pty. Ltd. iinet +// ikano : 2015-07-09 Ikano S.A. +ikano + +// imamat : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) +imamat + +// imdb : 2015-06-25 Amazon EU S.à r.l. +imdb + // immo : 2014-07-10 Auburn Bloom, LLC immo @@ -7909,9 +8420,15 @@ insurance // insure : 2014-03-20 Pioneer Willow, LLC insure +// intel : 2015-08-06 Intel Corporation +intel + // international : 2013-11-07 Wild Way, LLC international +// intuit : 2015-07-30 Intuit Administrative Services, Inc. +intuit + // investments : 2014-03-20 Holly Glen, LLC investments @@ -7924,6 +8441,9 @@ irish // iselect : 2015-02-11 iSelect Ltd iselect +// ismaili : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) +ismaili + // ist : 2014-08-28 Istanbul Metropolitan Municipality ist @@ -7933,6 +8453,12 @@ istanbul // itau : 2014-10-02 Itau Unibanco Holding S.A. itau +// itv : 2015-07-09 ITV Services Limited +itv + +// iveco : 2015-09-03 CNH Industrial N.V. +iveco + // iwc : 2014-06-23 Richemont DNS Inc. iwc @@ -7945,6 +8471,12 @@ java // jcb : 2014-11-20 JCB Co., Ltd. jcb +// jcp : 2015-04-23 JCP Media, Inc. +jcp + +// jeep : 2015-07-30 FCA US LLC. +jeep + // jetzt : 2014-01-09 New TLD Company AB jetzt @@ -7963,6 +8495,9 @@ jll // jmp : 2015-03-26 Matrix IP LLC jmp +// jnj : 2015-06-18 Johnson & Johnson Services, Inc. +jnj + // joburg : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry joburg @@ -7972,27 +8507,48 @@ jot // joy : 2014-12-18 Amazon EU S.à r.l. joy +// jpmorgan : 2015-04-30 JPMorgan Chase & Co. +jpmorgan + // jprs : 2014-09-18 Japan Registry Services Co., Ltd. jprs // juegos : 2014-03-20 Uniregistry, Corp. juegos +// juniper : 2015-07-30 JUNIPER NETWORKS, INC. +juniper + // kaufen : 2013-11-07 United TLD Holdco Ltd. kaufen // kddi : 2014-09-12 KDDI CORPORATION kddi +// kerryhotels : 2015-04-30 Kerry Trading Co. Limited +kerryhotels + +// kerrylogistics : 2015-04-09 Kerry Trading Co. Limited +kerrylogistics + +// kerryproperties : 2015-04-09 Kerry Trading Co. Limited +kerryproperties + // kfh : 2014-12-04 Kuwait Finance House kfh +// kia : 2015-07-09 KIA MOTORS CORPORATION +kia + // kim : 2013-09-23 Afilias Limited kim // kinder : 2014-11-07 Ferrero Trading Lux S.A. kinder +// kindle : 2015-06-25 Amazon EU S.à r.l. +kindle + // kitchen : 2013-09-20 Just Goodbye, LLC kitchen @@ -8005,6 +8561,12 @@ koeln // komatsu : 2015-01-08 Komatsu Ltd. komatsu +// kosher : 2015-08-20 Kosher Marketing Assets LLC +kosher + +// kpmg : 2015-04-23 KPMG International Cooperative (KPMG International Genossenschaft) +kpmg + // kpn : 2015-01-08 Koninklijke KPN N.V. kpn @@ -8014,6 +8576,9 @@ krd // kred : 2013-12-19 KredTLD Pty Ltd kred +// kuokgroup : 2015-04-09 Kerry Trading Co. Limited +kuokgroup + // kyknet : 2015-03-05 Electronic Media Network (Pty) Ltd kyknet @@ -8023,21 +8588,42 @@ kyoto // lacaixa : 2014-01-09 CAIXA D'ESTALVIS I PENSIONS DE BARCELONA lacaixa +// ladbrokes : 2015-08-06 LADBROKES INTERNATIONAL PLC +ladbrokes + +// lamborghini : 2015-06-04 Automobili Lamborghini S.p.A. +lamborghini + +// lamer : 2015-10-01 The Estée Lauder Companies Inc. +lamer + // lancaster : 2015-02-12 LANCASTER lancaster +// lancia : 2015-07-31 Fiat Chrysler Automobiles N.V. +lancia + +// lancome : 2015-07-23 L'Oréal +lancome + // land : 2013-09-10 Pine Moon, LLC land // landrover : 2014-11-13 Jaguar Land Rover Ltd landrover +// lanxess : 2015-07-30 LANXESS Corporation +lanxess + // lasalle : 2015-04-02 Jones Lang LaSalle Incorporated lasalle // lat : 2014-10-16 ECOM-LAC Federaciòn de Latinoamèrica y el Caribe para Internet y el Comercio Electrònico lat +// latino : 2015-07-30 Dish DBS Corporation +latino + // latrobe : 2014-06-16 La Trobe University latrobe @@ -8047,7 +8633,7 @@ law // lawyer : 2014-03-20 lawyer -// lds : 2014-03-20 IRI Domain Management, LLC (\ +// lds : 2014-03-20 IRI Domain Management, LLC ("Applicant") lds // lease : 2014-03-06 Victor Trail, LLC @@ -8056,9 +8642,18 @@ lease // leclerc : 2014-08-07 A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc leclerc +// lefrak : 2015-07-16 LeFrak Organization, Inc. +lefrak + // legal : 2014-10-16 Blue Falls, LLC legal +// lego : 2015-07-16 LEGO Juris A/S +lego + +// lexus : 2015-04-23 TOYOTA MOTOR CORPORATION +lexus + // lgbt : 2014-05-08 Afilias Limited lgbt @@ -8083,6 +8678,9 @@ lighting // like : 2014-12-18 Amazon EU S.à r.l. like +// lilly : 2015-07-31 Eli Lilly and Company +lilly + // limited : 2014-03-06 Big Fest, LLC limited @@ -8098,9 +8696,15 @@ linde // link : 2013-11-14 Uniregistry, Corp. link -// live : 2014-12-04 Half Woods, LLC +// lipsy : 2015-06-25 Lipsy Ltd +lipsy + +// live : 2014-12-04 live +// living : 2015-07-30 Lifestyle Domain Holdings, Inc. +living + // lixil : 2015-03-19 LIXIL Group Corporation lixil @@ -8110,6 +8714,15 @@ loan // loans : 2014-03-20 June Woods, LLC loans +// locker : 2015-06-04 Dish DBS Corporation +locker + +// locus : 2015-06-25 Locus Analytics LLC +locus + +// loft : 2015-07-30 Annco, Inc. +loft + // lol : 2015-01-30 Uniregistry, Corp. lol @@ -8125,12 +8738,21 @@ lotto // love : 2014-12-22 Merchant Law Group LLP love +// lpl : 2015-07-30 LPL Holdings, Inc. +lpl + +// lplfinancial : 2015-07-30 LPL Holdings, Inc. +lplfinancial + // ltd : 2014-09-25 Over Corner, LLC ltd // ltda : 2014-04-17 DOMAIN ROBOT SERVICOS DE HOSPEDAGEM NA INTERNET LTDA ltda +// lundbeck : 2015-08-06 H. Lundbeck A/S +lundbeck + // lupin : 2014-11-07 LUPIN LIMITED lupin @@ -8140,6 +8762,9 @@ luxe // luxury : 2013-10-17 Luxury Partners, LLC luxury +// macys : 2015-07-31 Macys, Inc. +macys + // madrid : 2014-05-01 Comunidad de Madrid madrid @@ -8173,9 +8798,30 @@ markets // marriott : 2014-10-09 Marriott Worldwide Corporation marriott +// marshalls : 2015-07-16 The TJX Companies, Inc. +marshalls + +// maserati : 2015-07-31 Fiat Chrysler Automobiles N.V. +maserati + +// mattel : 2015-08-06 Mattel Sites, Inc. +mattel + // mba : 2015-04-02 Lone Hollow, LLC mba +// mcd : 2015-07-30 McDonald’s Corporation +mcd + +// mcdonalds : 2015-07-30 McDonald’s Corporation +mcdonalds + +// mckinsey : 2015-07-31 McKinsey Holdings, Inc. +mckinsey + +// med : 2015-08-06 Medistry LLC +med + // media : 2014-03-06 Grand Glen, LLC media @@ -8200,6 +8846,9 @@ menu // meo : 2014-11-07 PT Comunicacoes S.A. meo +// metlife : 2015-05-07 MetLife Services and Solutions, LLC +metlife + // miami : 2013-12-19 Top Level Domain Holdings Limited miami @@ -8209,6 +8858,21 @@ microsoft // mini : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft mini +// mint : 2015-07-30 Intuit Administrative Services, Inc. +mint + +// mit : 2015-07-02 Massachusetts Institute of Technology +mit + +// mitsubishi : 2015-07-23 Mitsubishi Corporation +mitsubishi + +// mlb : 2015-05-21 MLB Advanced Media DH, LLC +mlb + +// mls : 2015-04-23 The Canadian Real Estate Association +mls + // mma : 2014-11-07 MMA IARD mma @@ -8227,16 +8891,25 @@ moe // moi : 2014-12-18 Amazon EU S.à r.l. moi +// mom : 2015-04-16 Uniregistry, Corp. +mom + // monash : 2013-09-30 Monash University monash // money : 2014-10-16 Outer McCook, LLC money +// monster : 2015-09-11 Monster Worldwide, Inc. +monster + // montblanc : 2014-06-23 Richemont DNS Inc. montblanc -// mormon : 2013-12-05 IRI Domain Management, LLC (\ +// mopar : 2015-07-30 FCA US LLC. +mopar + +// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") mormon // mortgage : 2014-03-20 @@ -8245,6 +8918,9 @@ mortgage // moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) moscow +// moto : 2015-06-04 Charleston Road Registry Inc. +moto + // motorcycles : 2014-01-09 DERMotorcycles, LLC motorcycles @@ -8257,6 +8933,9 @@ movie // movistar : 2014-10-16 Telefónica S.A. movistar +// msd : 2015-07-23 MSD Registry Holdings, Inc. +msd + // mtn : 2014-12-04 MTN Dubai Limited mtn @@ -8272,9 +8951,15 @@ multichoice // mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC mutual +// mutuelle : 2015-06-18 Fédération Nationale de la Mutualité Française +mutuelle + // mzansimagic : 2015-03-05 Electronic Media Network (Pty) Ltd mzansimagic +// nab : 2015-08-20 National Australia Bank Limited +nab + // nadex : 2014-12-11 IG Group Holdings PLC nadex @@ -8284,18 +8969,27 @@ nagoya // naspers : 2015-02-12 Intelprop (Proprietary) Limited naspers +// nationwide : 2015-07-23 Nationwide Mutual Insurance Company +nationwide + // natura : 2015-03-12 NATURA COSMÉTICOS S.A. natura // navy : 2014-03-06 United TLD Holdco Ltd. navy +// nba : 2015-07-31 NBA REGISTRY, LLC +nba + // nec : 2015-01-08 NEC Corporation nec // netbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA netbank +// netflix : 2015-06-18 Netflix, Inc. +netflix + // network : 2013-11-14 Trixy Manor, LLC network @@ -8305,12 +8999,24 @@ neustar // new : 2014-01-30 Charleston Road Registry Inc. new +// newholland : 2015-09-03 CNH Industrial N.V. +newholland + // news : 2014-12-18 news +// next : 2015-06-18 Next plc +next + +// nextdirect : 2015-06-18 Next plc +nextdirect + // nexus : 2014-07-24 Charleston Road Registry Inc. nexus +// nfl : 2015-07-23 NFL Reg Ops LLC +nfl + // ngo : 2014-03-06 Public Interest Registry ngo @@ -8320,6 +9026,12 @@ nhk // nico : 2014-12-04 DWANGO Co., Ltd. nico +// nike : 2015-07-23 NIKE, Inc. +nike + +// nikon : 2015-05-21 NIKON CORPORATION +nikon + // ninja : 2013-11-07 United TLD Holdco Ltd. ninja @@ -8329,12 +9041,21 @@ nissan // nokia : 2015-01-08 Nokia Corporation nokia +// northwesternmutual : 2015-06-18 Northwestern Mutual Registry, LLC +northwesternmutual + // norton : 2014-12-04 Symantec Corporation norton +// now : 2015-06-25 Amazon EU S.à r.l. +now + // nowruz : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. nowruz +// nowtv : 2015-05-14 Starbucks (HK) Limited +nowtv + // nra : 2014-05-22 NRA Holdings Company, INC. nra @@ -8350,12 +9071,30 @@ nyc // obi : 2014-09-25 OBI Group Holding SE & Co. KGaA obi +// observer : 2015-04-30 Guardian News and Media Limited +observer + +// off : 2015-07-23 Johnson Shareholdings, Inc. +off + // office : 2015-03-12 Microsoft Corporation office // okinawa : 2013-12-05 BusinessRalliart Inc. okinawa +// olayan : 2015-05-14 Crescent Holding GmbH +olayan + +// olayangroup : 2015-05-14 Crescent Holding GmbH +olayangroup + +// oldnavy : 2015-07-31 The Gap, Inc. +oldnavy + +// ollo : 2015-06-04 Dish DBS Corporation +ollo + // omega : 2015-01-08 The Swatch Group Ltd omega @@ -8371,9 +9110,15 @@ onl // online : 2015-01-15 DotOnline Inc. online +// onyourside : 2015-07-23 Nationwide Mutual Insurance Company +onyourside + // ooo : 2014-01-09 INFIBEAM INCORPORATION LIMITED ooo +// open : 2015-07-31 American Express Travel Related Services Company, Inc. +open + // oracle : 2014-06-19 Oracle Corporation oracle @@ -8386,12 +9131,18 @@ organic // orientexpress : 2015-02-05 Belmond Ltd. orientexpress +// origins : 2015-10-01 The Estée Lauder Companies Inc. +origins + // osaka : 2014-09-04 Interlink Co., Ltd. osaka // otsuka : 2013-10-11 Otsuka Holdings Co., Ltd. otsuka +// ott : 2015-06-04 Dish DBS Corporation +ott + // ovh : 2014-01-16 OVH SAS ovh @@ -8401,6 +9152,9 @@ page // pamperedchef : 2015-02-05 The Pampered Chef, Ltd. pamperedchef +// panasonic : 2015-07-30 Panasonic Corporation +panasonic + // panerai : 2014-11-07 Richemont DNS Inc. panerai @@ -8422,9 +9176,21 @@ party // passagens : 2015-03-05 Travel Reservations SRL passagens +// pay : 2015-08-27 Amazon EU S.à r.l. +pay + // payu : 2015-02-12 MIH PayU B.V. payu +// pccw : 2015-05-14 PCCW Enterprises Limited +pccw + +// pet : 2015-05-07 Afilias plc +pet + +// pfizer : 2015-09-11 Pfizer Inc. +pfizer + // pharmacy : 2014-06-19 National Association of Boards of Pharmacy pharmacy @@ -8461,9 +9227,15 @@ pid // pin : 2014-12-18 Amazon EU S.à r.l. pin +// ping : 2015-06-11 Ping Registry Provider, Inc. +ping + // pink : 2013-10-01 Afilias Limited pink +// pioneer : 2015-07-16 Pioneer Corporation +pioneer + // pizza : 2014-06-26 Foggy Moon, LLC pizza @@ -8473,27 +9245,42 @@ place // play : 2015-03-05 Charleston Road Registry Inc. play +// playstation : 2015-07-02 Sony Computer Entertainment Inc. +playstation + // plumbing : 2013-09-10 Spring Tigers, LLC plumbing // plus : 2015-02-05 Sugar Mill, LLC plus +// pnc : 2015-07-02 PNC Domain Co., LLC +pnc + // pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG pohl // poker : 2014-07-03 Afilias Domains No. 5 Limited poker +// politie : 2015-08-20 Politie Nederland +politie + // porn : 2014-10-16 ICM Registry PN LLC porn +// pramerica : 2015-07-30 Prudential Financial, Inc. +pramerica + // praxi : 2013-12-05 Praxi S.p.A. praxi // press : 2014-04-03 DotPress Inc. press +// prime : 2015-06-25 Amazon EU S.à r.l. +prime + // prod : 2014-01-23 Charleston Road Registry Inc. prod @@ -8503,6 +9290,9 @@ productions // prof : 2014-07-24 Charleston Road Registry Inc. prof +// progressive : 2015-07-23 Progressive Casualty Insurance Company +progressive + // promo : 2014-12-18 Play.PROMO Oy promo @@ -8512,6 +9302,15 @@ properties // property : 2014-05-22 Uniregistry, Corp. property +// protection : 2015-04-23 +protection + +// pru : 2015-07-30 Prudential Financial, Inc. +pru + +// prudential : 2015-07-30 Prudential Financial, Inc. +prudential + // pub : 2013-12-12 United TLD Holdco Ltd. pub @@ -8524,12 +9323,21 @@ quebec // quest : 2015-03-26 Quest ION Limited quest +// qvc : 2015-07-30 QVC, Inc. +qvc + // racing : 2014-12-04 Premier Registry Limited racing +// raid : 2015-07-23 Johnson Shareholdings, Inc. +raid + // read : 2014-12-18 Amazon EU S.à r.l. read +// realestate : 2015-09-11 dotRealEstate LLC +realestate + // realtor : 2014-05-29 Real Estate Domains LLC realtor @@ -8551,7 +9359,7 @@ redumbrella // rehab : 2014-03-06 United TLD Holdco Ltd. rehab -// reise : 2014-03-13 dotreise GmbH +// reise : 2014-03-13 reise // reisen : 2014-03-06 New Cypress, LLC @@ -8593,12 +9401,21 @@ review // reviews : 2013-09-13 reviews +// rexroth : 2015-06-18 Robert Bosch GMBH +rexroth + // rich : 2013-11-21 I-Registry Ltd. rich +// richardli : 2015-05-14 Pacific Century Asset Management (HK) Limited +richardli + // ricoh : 2014-11-20 Ricoh Company, Ltd. ricoh +// rightathome : 2015-07-23 Johnson Shareholdings, Inc. +rightathome + // ril : 2015-04-02 Reliance Industries Limited ril @@ -8617,6 +9434,9 @@ rocks // rodeo : 2013-12-19 Top Level Domain Holdings Limited rodeo +// rogers : 2015-08-06 Rogers Communications Partnership +rogers + // room : 2014-12-18 Amazon EU S.à r.l. room @@ -8653,6 +9473,9 @@ sale // salon : 2014-12-11 Outer Orchard, LLC salon +// samsclub : 2015-07-31 Wal-Mart Stores, Inc. +samsclub + // samsung : 2014-04-03 SAMSUNG SDS CO., LTD samsung @@ -8677,6 +9500,9 @@ sarl // sas : 2015-04-02 Research IP LLC sas +// save : 2015-06-25 Amazon EU S.à r.l. +save + // saxo : 2014-10-31 Saxo Bank A/S saxo @@ -8689,9 +9515,12 @@ sbs // sca : 2014-03-13 SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) sca -// scb : 2014-02-20 The Siam Commercial Bank Public Company Limited (\ +// scb : 2014-02-20 The Siam Commercial Bank Public Company Limited ("SCB") scb +// schaeffler : 2015-08-06 Schaeffler Technologies AG & Co. KG +schaeffler + // schmidt : 2014-04-03 SALM S.A.S. schmidt @@ -8710,6 +9539,9 @@ schwarz // science : 2014-09-11 dot Science Limited science +// scjohnson : 2015-07-23 Johnson Shareholdings, Inc. +scjohnson + // scor : 2014-10-31 SCOR SE scor @@ -8719,15 +9551,30 @@ scot // seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal) seat +// secure : 2015-08-27 Amazon EU S.à r.l. +secure + +// security : 2015-05-14 +security + // seek : 2014-12-04 Seek Limited seek +// select : 2015-10-08 iSelect Ltd +select + // sener : 2014-10-24 Sener Ingeniería y Sistemas, S.A. sener // services : 2014-02-27 Fox Castle, LLC services +// ses : 2015-07-23 SES +ses + +// seven : 2015-08-06 Seven West Media Ltd +seven + // sew : 2014-07-17 SEW-EURODRIVE GmbH & Co KG sew @@ -8737,9 +9584,21 @@ sex // sexy : 2013-09-11 Uniregistry, Corp. sexy +// sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR +sfr + +// shangrila : 2015-09-03 Shangri‐La International Hotel Management Limited +shangrila + // sharp : 2014-05-01 Sharp Corporation sharp +// shaw : 2015-04-23 Shaw Cablesystems G.P. +shaw + +// shell : 2015-07-30 Shell Information Technology International Inc +shell + // shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. shia @@ -8755,9 +9614,15 @@ shouji // show : 2015-03-05 Snow Beach, LLC show +// showtime : 2015-08-06 CBS Domains Inc. +showtime + // shriram : 2014-01-23 Shriram Capital Ltd. shriram +// silk : 2015-06-25 Amazon EU S.à r.l. +silk + // sina : 2015-03-12 Sina Corporation sina @@ -8767,6 +9632,9 @@ singles // site : 2015-01-15 DotSite Inc. site +// ski : 2015-04-09 STARTING DOT LIMITED +ski + // skin : 2015-01-15 L'Oréal skin @@ -8776,6 +9644,12 @@ sky // skype : 2014-12-18 Microsoft Corporation skype +// sling : 2015-07-30 Hughes Satellite Systems Corporation +sling + +// smart : 2015-07-09 Smart Communications, Inc. (SMART) +smart + // smile : 2014-12-18 Amazon EU S.à r.l. smile @@ -8788,6 +9662,9 @@ soccer // social : 2013-11-07 United TLD Holdco Ltd. social +// softbank : 2015-07-02 SoftBank Corp. +softbank + // software : 2014-03-20 software @@ -8821,18 +9698,30 @@ spot // spreadbetting : 2014-12-11 IG Group Holdings PLC spreadbetting +// srl : 2015-05-07 mySRL GmbH +srl + +// srt : 2015-07-30 FCA US LLC. +srt + // stada : 2014-11-13 STADA Arzneimittel AG stada +// staples : 2015-07-30 Staples, Inc. +staples + // star : 2015-01-08 Star India Private Limited star -// starhub : 2015-02-05 StarHub Limited +// starhub : 2015-02-05 StarHub Ltd starhub // statebank : 2015-03-12 STATE BANK OF INDIA statebank +// statefarm : 2015-07-30 State Farm Mutual Automobile Insurance Company +statefarm + // statoil : 2014-12-04 Statoil ASA statoil @@ -8848,7 +9737,10 @@ stockholm // storage : 2014-12-22 Self Storage Company LLC storage -// studio : 2015-02-11 Spring Goodbye, LLC +// store : 2015-04-09 DotStore Inc. +store + +// studio : 2015-02-11 studio // study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD @@ -8884,6 +9776,9 @@ suzuki // swatch : 2015-01-08 The Swatch Group Ltd swatch +// swiftcover : 2015-07-23 Swiftcover Insurance Services Limited +swiftcover + // swiss : 2014-10-16 Swiss Confederation swiss @@ -8902,13 +9797,19 @@ tab // taipei : 2014-07-10 Taipei City Government taipei +// talk : 2015-04-09 Amazon EU S.à r.l. +talk + // taobao : 2015-01-15 Alibaba Group Holding Limited taobao +// target : 2015-07-31 Target Domain Holdings, LLC +target + // tatamotors : 2015-03-12 Tata Motors Ltd tatamotors -// tatar : 2014-04-24 Limited Liability Company \ +// tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" tatar // tattoo : 2013-08-30 Uniregistry, Corp. @@ -8923,6 +9824,9 @@ taxi // tci : 2014-09-12 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. tci +// tdk : 2015-06-11 TDK Corporation +tdk + // team : 2015-03-05 Atomic Lake, LLC team @@ -8944,12 +9848,24 @@ temasek // tennis : 2014-12-04 Cotton Bloom, LLC tennis +// teva : 2015-07-02 Teva Pharmaceutical Industries Limited +teva + // thd : 2015-04-02 Homer TLC, Inc. thd // theater : 2015-03-19 Blue Tigers, LLC theater +// theatre : 2015-05-07 +theatre + +// theguardian : 2015-04-30 Guardian News and Media Limited +theguardian + +// tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America +tiaa + // tickets : 2015-02-05 Accent Media Limited tickets @@ -8968,6 +9884,15 @@ tires // tirol : 2014-04-24 punkt Tirol GmbH tirol +// tjmaxx : 2015-07-16 The TJX Companies, Inc. +tjmaxx + +// tjx : 2015-07-16 The TJX Companies, Inc. +tjx + +// tkmaxx : 2015-07-16 The TJX Companies, Inc. +tkmaxx + // tmall : 2015-01-15 Alibaba Group Holding Limited tmall @@ -8989,12 +9914,18 @@ toray // toshiba : 2014-04-10 TOSHIBA Corporation toshiba +// total : 2015-08-06 Total SA +total + // tours : 2015-01-22 Sugar Station, LLC tours // town : 2014-03-06 Koko Moon, LLC town +// toyota : 2015-04-23 TOYOTA MOTOR CORPORATION +toyota + // toys : 2014-03-06 Pioneer Orchard, LLC toys @@ -9007,6 +9938,9 @@ trading // training : 2013-11-07 Wild Willow, LLC training +// travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. +travelchannel + // travelers : 2015-03-26 Travelers TLD, LLC travelers @@ -9019,6 +9953,9 @@ trust // trv : 2015-03-26 Travelers TLD, LLC trv +// tube : 2015-06-11 Latin American Telecom LLC +tube + // tui : 2014-07-03 TUI AG tui @@ -9031,9 +9968,15 @@ tushu // tvs : 2015-02-19 T V SUNDRAM IYENGAR & SONS LIMITED tvs +// ubank : 2015-08-20 National Australia Bank Limited +ubank + // ubs : 2014-12-11 UBS AG ubs +// uconnect : 2015-07-30 FCA US LLC. +uconnect + // university : 2014-03-06 Little Station, LLC university @@ -9043,18 +9986,27 @@ uno // uol : 2014-05-01 UBN INTERNET LTDA. uol +// ups : 2015-06-25 UPS Market Driver, Inc. +ups + // vacations : 2013-12-05 Atomic Tigers, LLC vacations // vana : 2014-12-11 Lifestyle Domain Holdings, Inc. vana +// vanguard : 2015-09-03 The Vanguard Group, Inc. +vanguard + // vegas : 2014-01-16 Dot Vegas, Inc. vegas // ventures : 2013-08-27 Binky Lake, LLC ventures +// verisign : 2015-08-13 VeriSign, Inc. +verisign + // versicherung : 2014-03-20 dotversicherung-registry GmbH versicherung @@ -9067,18 +10019,27 @@ viajes // video : 2014-10-16 video +// vig : 2015-05-14 VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe +vig + // viking : 2015-04-02 Viking River Cruises (Bermuda) Ltd. viking // villas : 2013-12-05 New Sky, LLC villas +// vin : 2015-06-18 Holly Shadow, LLC +vin + // vip : 2015-01-22 Minds + Machines Group Limited vip // virgin : 2014-09-25 Virgin Enterprises Limited virgin +// visa : 2015-07-30 Visa Worldwide Pte. Limited +visa + // vision : 2013-12-05 Koko Station, LLC vision @@ -9091,12 +10052,18 @@ vistaprint // viva : 2014-11-07 Saudi Telecom Company viva +// vivo : 2015-07-31 Telefonica Brasil S.A. +vivo + // vlaanderen : 2014-02-06 DNS.be vzw vlaanderen // vodka : 2013-12-19 Top Level Domain Holdings Limited vodka +// volkswagen : 2015-05-14 Volkswagen Group of America Inc. +volkswagen + // vote : 2013-11-21 Monolith Registry LLC vote @@ -9115,6 +10082,9 @@ vuelos // wales : 2014-05-08 Nominet UK wales +// walmart : 2015-07-31 Wal-Mart Stores, Inc. +walmart + // walter : 2014-11-13 Sandvik AB walter @@ -9124,6 +10094,9 @@ wang // wanggou : 2014-12-18 Amazon EU S.à r.l. wanggou +// warman : 2015-06-18 Weir Group IP Limited +warman + // watch : 2013-11-14 Sand Shadow, LLC watch @@ -9139,6 +10112,9 @@ weatherchannel // webcam : 2014-01-23 dot Webcam Limited webcam +// weber : 2015-06-04 Saint-Gobain Weber SA +weber + // website : 2014-04-03 DotWebsite Inc. website @@ -9172,9 +10148,21 @@ win // windows : 2014-12-18 Microsoft Corporation windows +// wine : 2015-06-18 June Station, LLC +wine + +// winners : 2015-07-16 The TJX Companies, Inc. +winners + // wme : 2014-02-13 William Morris Endeavor Entertainment, LLC wme +// wolterskluwer : 2015-08-06 Wolters Kluwer N.V. +wolterskluwer + +// woodside : 2015-07-09 Woodside Petroleum Limited +woodside + // work : 2013-12-19 Top Level Domain Holdings Limited work @@ -9184,6 +10172,9 @@ works // world : 2014-06-12 Bitter Fields, LLC world +// wow : 2015-10-08 Amazon EU S.à r.l. +wow + // wtc : 2013-12-19 World Trade Centers Association, Inc. wtc @@ -9196,6 +10187,9 @@ xbox // xerox : 2014-10-24 Xerox DNHC LLC xerox +// xfinity : 2015-07-09 Comcast IP Holdings I, LLC +xfinity + // xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. xihuan @@ -9220,6 +10214,9 @@ xin // xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED 在线 +// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd. +大众汽车 + // xn--3pxu8k : 2015-01-15 VeriSign Sarl 点看 @@ -9232,12 +10229,18 @@ xin // xn--4gbrim : 2013-10-04 Suhub Electronic Establishment موقع +// xn--4gq48lf9j : 2015-07-31 Wal-Mart Stores, Inc. +一号店 + // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center 公益 // xn--55qx5d : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) 公司 +// xn--5su34j936bgsg : 2015-09-03 Shangri‐La International Hotel Management Limited +香格里拉 + // xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited 网站 @@ -9286,7 +10289,7 @@ xin // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD 삼성 -// xn--czr694b : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY.HONGKONG LIMITED +// xn--czr694b : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED 商标 // xn--czrs0t : 2013-12-19 Wild Island, LLC @@ -9307,6 +10310,9 @@ xin // xn--estv75g : 2015-02-19 Industrial and Commercial Bank of China Limited 工行 +// xn--fct429k : 2015-04-09 Amazon EU S.à r.l. +家電 + // xn--fhbei : 2015-01-15 VeriSign Sarl كوم @@ -9322,12 +10328,18 @@ xin // xn--flw351e : 2014-07-31 Charleston Road Registry Inc. 谷歌 +// xn--fzys8d69uvgm : 2015-05-14 PCCW Enterprises Limited +電訊盈科 + // xn--g2xx48c : 2015-01-30 Minds + Machines Group Limited 购物 // xn--gckr3f0f : 2015-02-26 Amazon EU S.à r.l. クラウド +// xn--gk3at1e : 2015-10-08 Amazon EU S.à r.l. +通販 + // xn--hxt814e : 2014-05-15 Zodiac Libra Limited 网店 @@ -9361,12 +10373,21 @@ xin // xn--mgba3a3ejt : 2014-11-20 Aramco Services Company ارامكو +// xn--mgba7c0bbn0a : 2015-05-14 Crescent Holding GmbH +العليان + +// xn--mgbaakc7dvf : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +اتصالات + // xn--mgbab2bd : 2013-10-31 CORE Association بازار // xn--mgbb9fbpob : 2014-12-18 GreenTech Consultancy Company W.L.L. موبايلي +// xn--mgbca7dzdo : 2015-07-30 Abu Dhabi Systems and Information Centre +ابوظبي + // xn--mgbt3dhd : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. همراه @@ -9436,12 +10457,21 @@ vermögensberatung // xn--vuq861b : 2014-10-16 Beijing Tele-info Network Technology Co., Ltd. 信息 +// xn--w4r85el8fhu5dnra : 2015-04-30 Kerry Trading Co. Limited +嘉里大酒店 + +// xn--w4rs40l : 2015-07-30 Kerry Trading Co. Limited +嘉里 + // xn--xhq521b : 2013-11-14 Guangzhou YU Wei Information Technology Co., Ltd. 广东 // xn--zfr164b : 2013-11-08 China Organizational Name Administration Center 政务 +// xperia : 2015-05-14 Sony Mobile Communications AB +xperia + // xyz : 2013-12-05 XYZ.COM LLC xyz @@ -9466,12 +10496,18 @@ yoga // yokohama : 2013-12-12 GMO Registry, Inc. yokohama +// you : 2015-04-09 Amazon EU S.à r.l. +you + // youtube : 2014-05-01 Charleston Road Registry Inc. youtube // yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. yun +// zappos : 2015-06-25 Amazon EU S.à r.l. +zappos + // zara : 2014-11-07 Industria de Diseño Textil, S.A. (INDITEX, S.A.) zara @@ -9481,6 +10517,9 @@ zero // zip : 2014-05-08 Charleston Road Registry Inc. zip +// zippo : 2015-07-02 Zadco Company +zippo + // zone : 2013-11-14 Outer Falls, LLC zone @@ -9524,26 +10563,22 @@ elasticbeanstalk.com elb.amazonaws.com // Amazon S3 : https://aws.amazon.com/s3/ -// Submitted by Courtney Eckhardt 2013-03-22 +// Submitted by Eric Kinolik 2015-04-08 s3.amazonaws.com -s3-us-west-2.amazonaws.com -s3-us-west-1.amazonaws.com -s3-eu-west-1.amazonaws.com +s3-ap-northeast-1.amazonaws.com s3-ap-southeast-1.amazonaws.com s3-ap-southeast-2.amazonaws.com -s3-ap-northeast-1.amazonaws.com +s3-external-1.amazonaws.com +s3-external-2.amazonaws.com +s3-fips-us-gov-west-1.amazonaws.com +s3-eu-central-1.amazonaws.com +s3-eu-west-1.amazonaws.com s3-sa-east-1.amazonaws.com s3-us-gov-west-1.amazonaws.com -s3-fips-us-gov-west-1.amazonaws.com -s3-website-us-east-1.amazonaws.com -s3-website-us-west-2.amazonaws.com -s3-website-us-west-1.amazonaws.com -s3-website-eu-west-1.amazonaws.com -s3-website-ap-southeast-1.amazonaws.com -s3-website-ap-southeast-2.amazonaws.com -s3-website-ap-northeast-1.amazonaws.com -s3-website-sa-east-1.amazonaws.com -s3-website-us-gov-west-1.amazonaws.com +s3-us-west-1.amazonaws.com +s3-us-west-2.amazonaws.com +s3.cn-north-1.amazonaws.com.cn +s3.eu-central-1.amazonaws.com // BetaInABox // Submitted by adrian@betainabox.com 2012-09-13 @@ -9611,6 +10646,14 @@ cloudcontrolapp.com // co.ca : http://registry.co.ca/ co.ca +// CDN77.com : http://www.cdn77.com +// Submitted by Jan Krpes 2015-07-13 +c.cdn77.org +cdn77-ssl.net +r.cdn77.net +rsc.cdn77.org +ssl.origin.cdn77-secure.org + // CoDNS B.V. co.nl co.no @@ -9627,6 +10670,10 @@ cupcake.is // Submitted by Andrew Farmer 2012-10-02 dreamhosters.com +// DuckDNS : http://www.duckdns.org/ +// Submitted by Richard Harper 2015-05-17 +duckdns.org + // DynDNS.com : http://www.dyndns.com/services/dns/dyndns/ dyndns-at-home.com dyndns-at-work.com @@ -9908,6 +10955,66 @@ webhop.org worse-than.tv writesthisblog.com +// EU.org https://eu.org/ +// Submitted by Pierre Beyssac 2015-04-17 + +eu.org +al.eu.org +asso.eu.org +at.eu.org +au.eu.org +be.eu.org +bg.eu.org +ca.eu.org +cd.eu.org +ch.eu.org +cn.eu.org +cy.eu.org +cz.eu.org +de.eu.org +dk.eu.org +edu.eu.org +ee.eu.org +es.eu.org +fi.eu.org +fr.eu.org +gr.eu.org +hr.eu.org +hu.eu.org +ie.eu.org +il.eu.org +in.eu.org +int.eu.org +is.eu.org +it.eu.org +jp.eu.org +kr.eu.org +lt.eu.org +lu.eu.org +lv.eu.org +mc.eu.org +me.eu.org +mk.eu.org +mt.eu.org +my.eu.org +net.eu.org +ng.eu.org +nl.eu.org +no.eu.org +nz.eu.org +paris.eu.org +pl.eu.org +pt.eu.org +q-a.eu.org +ro.eu.org +ru.eu.org +se.eu.org +si.eu.org +sk.eu.org +tr.eu.org +uk.eu.org +us.eu.org + // Fastly Inc. http://www.fastly.com/ // Submitted by Vladimir Vuksan 2013-05-31 a.ssl.fastly.net @@ -9941,21 +11048,37 @@ ro.com // Submitted by Eduardo Vela 2014-12-19 appspot.com blogspot.ae +blogspot.al +blogspot.am +blogspot.ba blogspot.be +blogspot.bg blogspot.bj blogspot.ca blogspot.cf blogspot.ch +blogspot.cl blogspot.co.at +blogspot.co.id blogspot.co.il +blogspot.co.ke blogspot.co.nz blogspot.co.uk +blogspot.co.za blogspot.com blogspot.com.ar blogspot.com.au blogspot.com.br +blogspot.com.by +blogspot.com.co +blogspot.com.cy +blogspot.com.ee +blogspot.com.eg blogspot.com.es +blogspot.com.mt +blogspot.com.ng blogspot.com.tr +blogspot.com.uy blogspot.cv blogspot.cz blogspot.de @@ -9964,30 +11087,46 @@ blogspot.fi blogspot.fr blogspot.gr blogspot.hk +blogspot.hr blogspot.hu blogspot.ie blogspot.in +blogspot.is blogspot.it blogspot.jp blogspot.kr +blogspot.li +blogspot.lt +blogspot.lu +blogspot.md +blogspot.mk blogspot.mr blogspot.mx +blogspot.my blogspot.nl blogspot.no +blogspot.pe blogspot.pt +blogspot.qa blogspot.re blogspot.ro +blogspot.rs blogspot.ru blogspot.se blogspot.sg +blogspot.si blogspot.sk +blogspot.sn blogspot.td blogspot.tw +blogspot.ug +blogspot.vn codespot.com googleapis.com googlecode.com pagespeedmobilizer.com withgoogle.com +withyoutube.com // Heroku : https://www.heroku.com/ // Submitted by Tom Maher 2013-05-02 @@ -10011,6 +11150,14 @@ azurewebsites.net azure-mobile.net cloudapp.net +// Mozilla Foundation : https://mozilla.org/ +// Submited by glob 2015-07-06 +bmoattachments.org + +// Neustar Inc. +// Submitted by Trung Tran 2015-04-23 +4u.com + // NFSN, Inc. : https://www.NearlyFreeSpeech.NET/ // Submitted by Jeff Wheelhouse 2014-02-02 nfshost.com @@ -10039,14 +11186,33 @@ poznan.pl wroc.pl zakopane.pl +// Pantheon Systems, Inc. : https://pantheon.io/ +// Submitted by Gary Dylina 2015-09-14 +pantheon.io +gotpantheon.com + // priv.at : http://www.nic.priv.at/ // Submitted by registry 2008-06-09 priv.at +// QA2 +// Submitted by Daniel Dent (https://www.danieldent.com/) 2015-07-16 +qa2.com + // Red Hat, Inc. OpenShift : https://openshift.redhat.com/ // Submitted by Tim Kramer 2012-10-24 rhcloud.com +// Sandstorm Development Group, Inc. : https://sandcats.io/ +// Submitted by Asheesh Laroia 2015-07-21 +sandcats.io + +// Service Online LLC : http://drs.ua/ +// Submitted by Serhii Bulakh 2015-07-30 +biz.ua +co.ua +pp.ua + // SinaAppEngine : http://sae.sina.com.cn/ // Submitted by SinaAppEngine 2015-02-02 sinaapp.com From eca9ea0dcb7834bc7ea6ef9db8b7b92d02ebd545 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 27 Oct 2015 17:52:28 +0100 Subject: [PATCH 005/450] Release 1.5.2 --- CHANGELOG.md | 2 +- lib/public_suffix/version.rb | 2 +- public_suffix.gemspec | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e3833f1..392fdbfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog -#### master +#### Release 1.5.2 - CHANGED: Updated definitions. diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 6fff0f56..b0e6a3af 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -11,7 +11,7 @@ module PublicSuffix module Version MAJOR = 1 MINOR = 5 - PATCH = 1 + PATCH = 2 BUILD = nil STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join(".") diff --git a/public_suffix.gemspec b/public_suffix.gemspec index acad4a2b..b0f1f776 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -1,21 +1,21 @@ # -*- encoding: utf-8 -*- -# stub: public_suffix 1.5.1 ruby lib +# stub: public_suffix 1.5.2 ruby lib Gem::Specification.new do |s| s.name = "public_suffix" - s.version = "1.5.1" + s.version = "1.5.2" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.require_paths = ["lib"] s.authors = ["Simone Carletti"] - s.date = "2015-04-10" + s.date = "2015-10-27" s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.email = "weppos@weppos.net" s.files = [".gemtest", ".gitignore", ".ruby-gemset", ".travis.yml", ".yardopts", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/definitions.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/test_helper.rb", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] s.homepage = "http://simonecarletti.com/code/publicsuffix" s.licenses = ["MIT"] s.required_ruby_version = Gem::Requirement.new(">= 2.0") - s.rubygems_version = "2.4.5" + s.rubygems_version = "2.4.7" s.summary = "Domain name parser based on the Public Suffix List." s.test_files = ["test/acceptance_test.rb", "test/test_helper.rb", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] From c08ba0e08408807eea424e90f93cc0c7bb89a2dd Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 21 Nov 2015 19:33:12 +0100 Subject: [PATCH 006/450] Update definition --- CHANGELOG.md | 5 ++++ data/definitions.txt | 58 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 52 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 392fdbfe..7f37371a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### master + +- CHANGED: Updated definitions. + + #### Release 1.5.2 - CHANGED: Updated definitions. diff --git a/data/definitions.txt b/data/definitions.txt index e2359b96..8e8d8738 100644 --- a/data/definitions.txt +++ b/data/definitions.txt @@ -155,13 +155,6 @@ org.al // am : http://en.wikipedia.org/wiki/.am am -// an : http://www.una.an/an_domreg/default.asp -an -com.an -net.an -org.an -edu.an - // ao : http://en.wikipedia.org/wiki/.ao // http://www.dns.ao/REGISTR.DOC ao @@ -4437,8 +4430,21 @@ gov.ng mil.ng mobi.ng -// ni : http://www.nic.ni/dominios.htm -*.ni +// ni : http://www.nic.ni/ +com.ni +gob.ni +edu.ni +org.ni +nom.ni +net.ni +mil.ni +co.ni +biz.ni +web.ni +int.ni +ac.ni +in.ni +info.ni // nl : http://en.wikipedia.org/wiki/.nl // https://www.sidn.nl/ @@ -5783,7 +5789,6 @@ kms.ru k-uralsk.ru kustanai.ru kuzbass.ru -magnitka.ru mytis.ru nakhodka.ru nkz.ru @@ -6927,7 +6932,7 @@ web.za *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-10-11T22:21:58Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-11-12T22:43:48Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7196,6 +7201,9 @@ barefoot // bargains : 2013-11-14 Half Hallow, LLC bargains +// baseball : 2015-10-29 MLB Advanced Media DH, LLC +baseball + // basketball : 2015-08-20 Fédération Internationale de Basketball (FIBA) basketball @@ -7454,6 +7462,9 @@ casino // catering : 2013-12-05 New Falls. LLC catering +// catholic : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +catholic + // cba : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA cba @@ -7772,6 +7783,9 @@ discover // dish : 2015-07-30 Dish DBS Corporation dish +// diy : 2015-11-05 Lifestyle Domain Holdings, Inc. +diy + // dnp : 2013-12-13 Dai Nippon Printing Co., Ltd. dnp @@ -9038,6 +9052,9 @@ ninja // nissan : 2014-03-27 NISSAN MOTOR CO., LTD. nissan +// nissay : 2015-10-29 Nippon Life Insurance Company +nissay + // nokia : 2015-01-08 Nokia Corporation nokia @@ -9314,6 +9331,9 @@ prudential // pub : 2013-12-12 United TLD Holdco Ltd. pub +// pwc : 2015-10-29 PricewaterhouseCoopers LLP +pwc + // qpon : 2013-11-14 dotCOOL, Inc. qpon @@ -9977,6 +9997,9 @@ ubs // uconnect : 2015-07-30 FCA US LLC. uconnect +// unicom : 2015-10-15 China United Network Communications Corporation Limited +unicom + // university : 2014-03-06 Little Station, LLC university @@ -10253,6 +10276,9 @@ xin // xn--80adxhks : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) москва +// xn--80aqecdr1a : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +католик + // xn--80asehdb : 2013-07-14 CORE Association онлайн @@ -10388,6 +10414,9 @@ xin // xn--mgbca7dzdo : 2015-07-30 Abu Dhabi Systems and Information Centre ابوظبي +// xn--mgbi4ecexp : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +كاثوليك + // xn--mgbt3dhd : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. همراه @@ -10442,6 +10471,9 @@ xin // xn--tckwe : 2015-01-15 VeriSign Sarl コム +// xn--tiq49xqyj : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +天主教 + // xn--unup4y : 2013-07-14 Spring Fields, LLC 游戏 @@ -11158,6 +11190,10 @@ bmoattachments.org // Submitted by Trung Tran 2015-04-23 4u.com +// ngrok : https://ngrok.com/ +// Submitted by Alan Shreve 2015-11-10 +ngrok.io + // NFSN, Inc. : https://www.NearlyFreeSpeech.NET/ // Submitted by Jeff Wheelhouse 2014-02-02 nfshost.com From 6d7fd88698244848cf5b82c1571761676ffcce39 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 14 Dec 2015 13:53:27 +0100 Subject: [PATCH 007/450] CHANGELOG for GH-77 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f37371a..a72ac221 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ #### master +- FIXED: Don't duplicate rule indices when creating index (GH-77). [Thanks @ags] + - CHANGED: Updated definitions. From bb868f40e003f441b606f361430a4af4fc1d4502 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 14 Dec 2015 13:56:25 +0100 Subject: [PATCH 008/450] Release 1.5.3 --- CHANGELOG.md | 2 +- lib/public_suffix/version.rb | 2 +- public_suffix.gemspec | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a72ac221..f2434a04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog -#### master +#### Release 1.5.3 - FIXED: Don't duplicate rule indices when creating index (GH-77). [Thanks @ags] diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index b0e6a3af..5511227c 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -11,7 +11,7 @@ module PublicSuffix module Version MAJOR = 1 MINOR = 5 - PATCH = 2 + PATCH = 3 BUILD = nil STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join(".") diff --git a/public_suffix.gemspec b/public_suffix.gemspec index b0f1f776..5a16194d 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -1,14 +1,14 @@ # -*- encoding: utf-8 -*- -# stub: public_suffix 1.5.2 ruby lib +# stub: public_suffix 1.5.3 ruby lib Gem::Specification.new do |s| s.name = "public_suffix" - s.version = "1.5.2" + s.version = "1.5.3" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.require_paths = ["lib"] s.authors = ["Simone Carletti"] - s.date = "2015-10-27" + s.date = "2015-12-14" s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.email = "weppos@weppos.net" s.files = [".gemtest", ".gitignore", ".ruby-gemset", ".travis.yml", ".yardopts", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/definitions.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/test_helper.rb", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] From a27d11acb76a31f5aec772bbead3a3f395ad24d4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 5 Jan 2016 18:10:19 +0100 Subject: [PATCH 009/450] Welcome 2016 --- LICENSE.txt | 2 +- README.md | 2 +- lib/public_suffix.rb | 2 +- lib/public_suffix/domain.rb | 2 +- lib/public_suffix/errors.rb | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- lib/public_suffix/version.rb | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 732f1396..d70f3c4c 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2009-2015 Simone Carletti +Copyright (c) 2009-2016 Simone Carletti MIT License diff --git a/README.md b/README.md index 0e43b91e..413a5c82 100644 --- a/README.md +++ b/README.md @@ -158,4 +158,4 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. ## License -Copyright (c) 2009-2015 Simone Carletti. This is Free Software distributed under the MIT license. +Copyright (c) 2009-2016 Simone Carletti. This is Free Software distributed under the MIT license. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index ea0ccd52..0d3b12dc 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -3,7 +3,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2015 Simone Carletti +# Copyright (c) 2009-2016 Simone Carletti # require 'public_suffix/domain' diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 7eb6d193..0d3d8215 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -3,7 +3,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2015 Simone Carletti +# Copyright (c) 2009-2016 Simone Carletti # module PublicSuffix diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index e2ce1a82..b857f0df 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -3,7 +3,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2015 Simone Carletti +# Copyright (c) 2009-2016 Simone Carletti # module PublicSuffix diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 457931f8..3493f725 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -3,7 +3,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2015 Simone Carletti +# Copyright (c) 2009-2016 Simone Carletti # module PublicSuffix diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 98873247..91db15a2 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -3,7 +3,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2015 Simone Carletti +# Copyright (c) 2009-2016 Simone Carletti # module PublicSuffix diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 5511227c..60d326cd 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -3,7 +3,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2015 Simone Carletti +# Copyright (c) 2009-2016 Simone Carletti # module PublicSuffix From 5325cab00b2db4e7b29ef31d481c6026be010da2 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 6 Jan 2016 16:52:39 +0100 Subject: [PATCH 010/450] Update defitions --- CHANGELOG.md | 5 +++ data/definitions.txt | 84 +++++++++++++++++++++++++++++++++++++------- 2 files changed, 76 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2434a04..c555c84d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### master + +- CHANGED: Updated definitions. + + #### Release 1.5.3 - FIXED: Don't duplicate rule indices when creating index (GH-77). [Thanks @ags] diff --git a/data/definitions.txt b/data/definitions.txt index 8e8d8738..0f7dfea3 100644 --- a/data/definitions.txt +++ b/data/definitions.txt @@ -89,7 +89,6 @@ leasing.aero logistics.aero magazine.aero maintenance.aero -marketplace.aero media.aero microlight.aero modelling.aero @@ -112,7 +111,6 @@ show.aero skydiving.aero software.aero student.aero -taxi.aero trader.aero trading.aero trainer.aero @@ -1150,7 +1148,7 @@ tv.im // in : http://en.wikipedia.org/wiki/.in // see also: https://registry.in/Policies -// Please note, that nic.in is not an offical eTLD, but used by most +// Please note, that nic.in is not an official eTLD, but used by most // government institutions. in co.in @@ -4431,19 +4429,19 @@ mil.ng mobi.ng // ni : http://www.nic.ni/ -com.ni -gob.ni +com.ni +gob.ni edu.ni org.ni nom.ni net.ni -mil.ni +mil.ni co.ni biz.ni -web.ni +web.ni int.ni ac.ni -in.ni +in.ni info.ni // nl : http://en.wikipedia.org/wiki/.nl @@ -6577,8 +6575,8 @@ lib.wi.us // lib.wv.us Bug 941670 - Removed at request of Larry W Arnold lib.wy.us // k12.ma.us contains school districts in Massachusetts. The 4LDs are -// managed indepedently except for private (PVT), charter (CHTR) and -// parochial (PAROCH) schools. Those are delegated dorectly to the +// managed independently except for private (PVT), charter (CHTR) and +// parochial (PAROCH) schools. Those are delegated directly to the // 5LD operators. pvt.k12.ma.us chtr.k12.ma.us @@ -6932,7 +6930,7 @@ web.za *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-11-12T22:43:48Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-01-04T22:39:54Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7105,6 +7103,9 @@ apple // aquarelle : 2014-07-24 Aquarelle.com aquarelle +// arab : 2015-11-12 League of Arab States +arab + // aramco : 2014-11-20 Aramco Services Company aramco @@ -7231,6 +7232,9 @@ bcn // beats : 2015-05-14 Beats Electronics, LLC beats +// beauty : 2015-12-03 L'Oréal +beauty + // beer : 2014-01-09 Top Level Domain Holdings Limited beer @@ -7336,12 +7340,18 @@ bosch // bostik : 2015-05-28 Bostik SA bostik +// boston : 2015-12-10 Boston Globe Media Partners, LLC +boston + // bot : 2014-12-18 Amazon EU S.à r.l. bot // boutique : 2013-11-14 Over Galley, LLC boutique +// box : 2015-11-12 NS1 Limited +box + // bradesco : 2014-12-18 Banco Bradesco S.A. bradesco @@ -7672,6 +7682,9 @@ crown // crs : 2014-04-03 Federated Co-operatives Limited crs +// cruise : 2015-12-10 Viking River Cruises (Bermuda) Ltd. +cruise + // cruises : 2013-12-05 Spring Way, LLC cruises @@ -8068,6 +8081,9 @@ foundation // fox : 2015-09-11 FOX Registry, LLC fox +// free : 2015-12-10 Amazon EU S.à r.l. +free + // fresenius : 2015-07-30 Fresenius Immobilien-Verwaltungs-GmbH fresenius @@ -8257,6 +8273,9 @@ guitars // guru : 2013-08-27 Pioneer Cypress, LLC guru +// hair : 2015-12-03 L'Oréal +hair + // hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH hamburg @@ -8305,7 +8324,7 @@ hisamitsu // hitachi : 2014-10-31 Hitachi, Ltd. hitachi -// hiv : 2014-03-13 dotHIV gemeinnuetziger e.V. +// hiv : 2014-03-13 hiv // hkt : 2015-05-14 PCCW-HKT DataCom Services Limited @@ -9310,7 +9329,7 @@ prof // progressive : 2015-07-23 Progressive Casualty Insurance Company progressive -// promo : 2014-12-18 Play.PROMO Oy +// promo : 2014-12-18 promo // properties : 2013-12-05 Big Pass, LLC @@ -9445,6 +9464,9 @@ rio // rip : 2014-07-10 United TLD Holdco Ltd. rip +// rmit : 2015-11-19 Royal Melbourne Institute of Technology +rmit + // rocher : 2014-12-18 Ferrero Trading Lux S.A. rocher @@ -10087,6 +10109,9 @@ vodka // volkswagen : 2015-05-14 Volkswagen Group of America Inc. volkswagen +// volvo : 2015-11-12 Volvo Holding Sverige Aktiebolag +volvo + // vote : 2013-11-21 Monolith Registry LLC vote @@ -10432,6 +10457,9 @@ xin // xn--ngbe9e0a : 2014-12-04 Kuwait Finance House بيتك +// xn--ngbrx : 2015-11-12 League of Arab States +عرب + // xn--nqv7f : 2013-11-14 Public Interest Registry 机构 @@ -11153,6 +11181,7 @@ blogspot.td blogspot.tw blogspot.ug blogspot.vn +cloudfunctions.net codespot.com googleapis.com googlecode.com @@ -11160,6 +11189,10 @@ pagespeedmobilizer.com withgoogle.com withyoutube.com +// Hashbang : https://hashbang.sh +// Hashbang is a non-profit that provides shells and various other services. +hashbang.sh + // Heroku : https://www.heroku.com/ // Submitted by Tom Maher 2013-05-02 herokuapp.com @@ -11214,6 +11247,10 @@ operaunite.com // Submitted by Duarte Santos 2014-03-11 outsystemscloud.com +// Pagefront : https://www.pagefronthq.com/ +// Submitted by Jason Kriss 2015-12-02 +pagefrontapp.com + // .pl domains (grandfathered) art.pl gliwice.pl @@ -11235,6 +11272,11 @@ priv.at // Submitted by Daniel Dent (https://www.danieldent.com/) 2015-07-16 qa2.com +// Rackmaze LLC : https://www.rackmaze.com +// Submitted by Kirill Pertsev 2015-12-02 +rackmaze.com +rackmaze.net + // Red Hat, Inc. OpenShift : https://openshift.redhat.com/ // Submitted by Tim Kramer 2012-10-24 rhcloud.com @@ -11255,6 +11297,22 @@ sinaapp.com vipsinaapp.com 1kapp.com +// Synology, Inc. : https://www.synology.com/ +// Submitted by Rony Weng 2015-12-02 +synology.me +diskstation.me +i234.me +myds.me +dscloud.biz +dscloud.me +dscloud.mobi +dsmynas.com +dsmynas.net +dsmynas.org +familyds.com +familyds.net +familyds.org + // TASK geographical domains (www.task.gda.pl/uslugi/dns) gda.pl gdansk.pl From 255df4a706a1f2f6bf3891f0b2987b886a0e5bd4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 10 Jan 2016 19:06:11 +0100 Subject: [PATCH 011/450] Temporary workaround for bundler failure --- .travis.yml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index a75ddde0..78fb01b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,19 +1,22 @@ language: ruby rvm: - - 2.0 - - 2.1 - - 2.2 - - ruby-head - - jruby-19mode - - rbx-19mode +- 2.0 +- 2.1 +- 2.2 +- ruby-head +- jruby-19mode +- rbx-19mode + +before_install: +- gem install bundler notifications: recipients: - - weppos@weppos.net + - weppos@weppos.net matrix: allow_failures: - - rvm: rbx-19mode - - rvm: jruby-19mode - - rvm: ruby-head + - rvm: rbx-19mode + - rvm: jruby-19mode + - rvm: ruby-head From 57e2e69d64c8ce2f478db0fe00f11520d45e034e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 10 Jan 2016 19:06:32 +0100 Subject: [PATCH 012/450] Test on Ruby 2.3.0 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 78fb01b0..76228d09 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ rvm: - 2.0 - 2.1 - 2.2 +- 2.3.0 - ruby-head - jruby-19mode - rbx-19mode From bf6c0c7bc84731c8a71b9db74e78737ca43ee4d0 Mon Sep 17 00:00:00 2001 From: Adam Niedzielski Date: Sun, 17 Jan 2016 11:53:02 +0100 Subject: [PATCH 013/450] Mention in README that the list is bundled with the gem. Closes #88. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 413a5c82..1e05d0f1 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,10 @@ domain.tld # => "com" ``` +## Does ```PublicSuffix``` make requests to Public Suffix List website? + +No. ```PublicSuffix``` comes with a bundled list. It does not make any requests to parse or validate a domain. + ## Feedback and bug reports If you use this library and find yourself missing any functionality, please [let me know](mailto:weppos@weppos.net). From 8a3ab3369568b37c11b55f5db6ff630e7a7eb7d6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 17 Jan 2016 15:10:33 +0100 Subject: [PATCH 014/450] Add HTTP to better clarify the sentence --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e05d0f1..ba497e07 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,8 @@ domain.tld ## Does ```PublicSuffix``` make requests to Public Suffix List website? -No. ```PublicSuffix``` comes with a bundled list. It does not make any requests to parse or validate a domain. +No. ```PublicSuffix``` comes with a bundled list. It does not make any HTTP requests to parse or validate a domain. + ## Feedback and bug reports From c7c618bc498c947d09fb7804c8a5de331a12938c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 21 Jan 2016 20:02:26 +0100 Subject: [PATCH 015/450] Update definitions --- data/definitions.txt | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/data/definitions.txt b/data/definitions.txt index 0f7dfea3..a62e085c 100644 --- a/data/definitions.txt +++ b/data/definitions.txt @@ -1003,7 +1003,10 @@ gw gy co.gy com.gy +edu.gy +gov.gy net.gy +org.gy // hk : https://www.hkdnr.hk // Submitted by registry 2008-06-11 @@ -6136,10 +6139,6 @@ org.to edu.to mil.to -// tp : No registrations at this time. -// Submitted by Ryan Sleevi 2014-01-03 -tp - // subTLDs: https://www.nic.tr/forms/eng/policies.pdf // and: https://www.nic.tr/forms/politikalar.pdf // Submitted by 2014-07-19 @@ -6906,7 +6905,7 @@ xxx // za : http://www.zadna.org.za/content/page/domain-information ac.za -agrica.za +agric.za alt.za co.za edu.za @@ -10730,6 +10729,10 @@ cupcake.is // Submitted by Andrew Farmer 2012-10-02 dreamhosters.com +// Drobo : http://www.drobo.com/ +// Submitted by Ricardo Padilha 2015-12-17 +mydrobo.com + // DuckDNS : http://www.duckdns.org/ // Submitted by Richard Harper 2015-05-17 duckdns.org @@ -11190,7 +11193,6 @@ withgoogle.com withyoutube.com // Hashbang : https://hashbang.sh -// Hashbang is a non-profit that provides shells and various other services. hashbang.sh // Heroku : https://www.heroku.com/ @@ -11299,10 +11301,7 @@ vipsinaapp.com // Synology, Inc. : https://www.synology.com/ // Submitted by Rony Weng 2015-12-02 -synology.me diskstation.me -i234.me -myds.me dscloud.biz dscloud.me dscloud.mobi @@ -11312,6 +11311,9 @@ dsmynas.org familyds.com familyds.net familyds.org +i234.me +myds.me +synology.me // TASK geographical domains (www.task.gda.pl/uslugi/dns) gda.pl From 9aedd5c06448ac1dcb4f088b9e519000abd992c8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 18:50:09 +0100 Subject: [PATCH 016/450] Color tests --- Gemfile | 1 + test/test_helper.rb | 3 +++ 2 files changed, 4 insertions(+) diff --git a/Gemfile b/Gemfile index 6ae555a0..73e2da2d 100644 --- a/Gemfile +++ b/Gemfile @@ -3,3 +3,4 @@ source "http://rubygems.org" gemspec gem 'minitest' +gem 'minitest-reporters' diff --git a/test/test_helper.rb b/test/test_helper.rb index 8e4e2d15..0d8255f0 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,7 +1,10 @@ require 'rubygems' require 'minitest/autorun' +require 'minitest/reporters' require 'mocha/setup' +Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true) + $:.unshift File.expand_path('../../lib', __FILE__) require 'public_suffix' From b986b0bfbab1de1c38286d6b89f7a8ca28847b20 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 18:56:47 +0100 Subject: [PATCH 017/450] Public::Suffix::List.default_definition no longer keeps an open File pointer --- CHANGELOG.md | 2 ++ lib/public_suffix/list.rb | 16 ++++------------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c555c84d..b770e5c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ - CHANGED: Updated definitions. +- CHANGED: PublicSuffix::List.default_definition no longer memoizes the data (no need to keep it in memory as the list is already memoized) Also the method now returns a String, instead of a File pointer (that was never closed). + #### Release 1.5.3 diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 3493f725..425cc55f 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -42,10 +42,6 @@ module PublicSuffix class List include Enumerable - class << self - attr_writer :default_definition - end - # Gets the default rule list. # Initializes a new {PublicSuffix::List} parsing the content # of {PublicSuffix::List.default_definition}, if required. @@ -102,22 +98,18 @@ def self.reload DEFAULT_DEFINITION_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "definitions.txt") - # Gets the default definition list. - # Can be any IOStream including a File - # or a simple String. - # The object must respond to #each_line. + # Reads and returns the content of the the default definition list. # - # @return [File] + # @return [String] def self.default_definition - @default_definition || File.new(DEFAULT_DEFINITION_PATH, "r:utf-8") + File.open(DEFAULT_DEFINITION_PATH, "r:utf-8") { |f| f.read } end # Parse given +input+ treating the content as Public Suffix List. # # See http://publicsuffix.org/format/ for more details about input format. # - # @param [String] input The rule list to parse. - # + # @param [#each_line] string The list to parse. # @return [Array] def self.parse(input) new do |list| From a1a5e6b0943b8213c484fbe8170b3a151eeac04d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 19:06:42 +0100 Subject: [PATCH 018/450] Add PublicSuffix.domain # => sld.tld This is the most common use case for the PSL. --- CHANGELOG.md | 2 + lib/public_suffix.rb | 70 +++++++++++++++++++-------------- test/unit/public_suffix_test.rb | 18 +++++++++ 3 files changed, 60 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b770e5c6..89481746 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ #### master +- NEW: Added PublicSuffix.domain # => sld.tld + - CHANGED: Updated definitions. - CHANGED: PublicSuffix::List.default_definition no longer memoizes the data (no need to keep it in memory as the list is already memoized) Also the method now returns a String, instead of a File pointer (that was never closed). diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 0d3b12dc..68e260c9 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -14,15 +14,7 @@ module PublicSuffix - # Parses +domain+ and returns the - # {PublicSuffix::Domain} instance. - # - # @param [String, #to_s] domain - # The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list - # The rule list to search, defaults to the default {PublicSuffix::List} - # - # @return [PublicSuffix::Domain] + # Parses +name+ and returns the {PublicSuffix::Domain} instance. # # @example Parse a valid domain # PublicSuffix.parse("google.com") @@ -48,24 +40,29 @@ module PublicSuffix # PublicSuffix.parse("http://www.google.com") # # => PublicSuffix::DomainInvalid # + # + # @param [String, #to_s] name + # The domain name or fully qualified domain name to parse. + # @param [PublicSuffix::List] list + # The rule list to search, defaults to the default {PublicSuffix::List} + # @return [PublicSuffix::Domain] + # # @raise [PublicSuffix::Error] # If domain is not a valid domain. # @raise [PublicSuffix::DomainNotAllowed] - # If a rule for +domain+ is found, but the rule - # doesn't allow +domain+. - # - def self.parse(domain, list = List.default) - domain = domain.to_s.downcase - rule = list.find(domain) + # If a rule for +domain+ is found, but the rule doesn't allow +domain+. + def self.parse(name, list = List.default) + name = name.to_s.downcase + rule = list.find(name) if rule.nil? - raise DomainInvalid, "`#{domain}' is not a valid domain" + raise DomainInvalid, "`#{name}' is not a valid domain" end - if !rule.allow?(domain) - raise DomainNotAllowed, "`#{domain}' is not allowed according to Registry policy" + if !rule.allow?(name) + raise DomainNotAllowed, "`#{name}' is not allowed according to Registry policy" end - left, right = rule.decompose(domain) + left, right = rule.decompose(name) parts = left.split(".") # If we have 0 parts left, there is just a tld and no domain or subdomain @@ -78,17 +75,11 @@ def self.parse(domain, list = List.default) Domain.new(tld, sld, trd) end - # Checks whether +domain+ is assigned and allowed, - # without actually parsing it. + # Checks whether +domain+ is assigned and allowed, without actually parsing it. # # This method doesn't care whether domain is a domain or subdomain. # The validation is performed using the default {PublicSuffix::List}. # - # @param [String, #to_s] domain - # The domain name or fully qualified domain name to validate. - # - # @return [Boolean] - # # @example Validate a valid domain # PublicSuffix.valid?("example.com") # # => true @@ -117,10 +108,29 @@ def self.parse(domain, list = List.default) # PublicSuffix.valid?("http://www.example.com") # # => false # - def self.valid?(domain) - domain = domain.to_s.downcase - rule = List.default.find(domain) - !rule.nil? && rule.allow?(domain) + # + # @param [String, #to_s] name + # The domain name or fully qualified domain name to validate. + # @return [Boolean] + def self.valid?(name) + name = name.to_s.downcase + rule = List.default.find(name) + !rule.nil? && rule.allow?(name) + end + + # @param [String, #to_s] name + # The domain name or fully qualified domain name to parse. + # @param [PublicSuffix::List] list + # The rule list to search, defaults to the default {PublicSuffix::List} + # @return [String] + # + # @raise [PublicSuffix::Error] + # If domain is not a valid domain. + # @raise [PublicSuffix::DomainNotAllowed] + # If a rule for +domain+ is found, but the rule doesn't allow +domain+. + def self.domain(name, list = List.default) + domain = parse(name, list) + [domain.sld, domain.tld].join(".") end end diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index ec20aa4a..4c865a1a 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -112,4 +112,22 @@ def test_self_valid_with_fully_qualified_domain_name assert !PublicSuffix.valid?("google.qqq.") end + + def test_self_domain + assert_equal "google.com", PublicSuffix.domain("google.com") + assert_equal "google.com", PublicSuffix.domain("www.google.com") + assert_equal "google.co.uk", PublicSuffix.domain("google.co.uk") + assert_equal "google.co.uk", PublicSuffix.domain("www.google.co.uk") + end + + def test_self_domain_raises_with_invalid_domain + error = assert_raises(PublicSuffix::DomainInvalid) { PublicSuffix.domain("example.qqq") } + assert_match %r{example\.qqq}, error.message + end + + def test_self_domain_raises_with_unallowed_domain + error = assert_raises(PublicSuffix::DomainNotAllowed) { PublicSuffix.domain("example.ke") } + assert_match %r{example\.ke}, error.message + end + end From 549fcca42dae1ce064087593a995f640f559fe75 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 19:26:23 +0100 Subject: [PATCH 019/450] PublicSuffix.domain doesn't raise This implementation is closer to the one suggested in the PSL documentation. --- lib/public_suffix.rb | 14 +++++++------- test/unit/public_suffix_test.rb | 15 +++++++++------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 68e260c9..fc426409 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -118,19 +118,19 @@ def self.valid?(name) !rule.nil? && rule.allow?(name) end + # Attempt to parse the name and returns the domain, if valid. + # + # This method doesn't raise. Instead, it returns nil if the domain is not valid for whatever reason. + # # @param [String, #to_s] name # The domain name or fully qualified domain name to parse. # @param [PublicSuffix::List] list # The rule list to search, defaults to the default {PublicSuffix::List} # @return [String] - # - # @raise [PublicSuffix::Error] - # If domain is not a valid domain. - # @raise [PublicSuffix::DomainNotAllowed] - # If a rule for +domain+ is found, but the rule doesn't allow +domain+. def self.domain(name, list = List.default) - domain = parse(name, list) - [domain.sld, domain.tld].join(".") + parse(name, list).domain + rescue PublicSuffix::Error + nil end end diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 4c865a1a..50bac206 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -120,14 +120,17 @@ def test_self_domain assert_equal "google.co.uk", PublicSuffix.domain("www.google.co.uk") end - def test_self_domain_raises_with_invalid_domain - error = assert_raises(PublicSuffix::DomainInvalid) { PublicSuffix.domain("example.qqq") } - assert_match %r{example\.qqq}, error.message + def test_self_domain_with_invalid_domain_returns_nil + assert_nil PublicSuffix.domain("example.qqq") end - def test_self_domain_raises_with_unallowed_domain - error = assert_raises(PublicSuffix::DomainNotAllowed) { PublicSuffix.domain("example.ke") } - assert_match %r{example\.ke}, error.message + def test_self_domain_with_unallowed_domain_returns_nil + assert_nil PublicSuffix.domain("example.ke") + end + + def test_self_domain_with_blank_sld_returns_nil + assert_nil PublicSuffix.domain("com") + assert_nil PublicSuffix.domain(".com") end end From 2ec4e382d894dee8badabae353a9ca0008142f61 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 18:40:48 +0100 Subject: [PATCH 020/450] Test the PSL against the official specs The following 12 tests fail: Expected ".com" to be nil, got ".com" Expected ".example.com" to be nil, got "example.com" Expected "example.example" to be "example.example", got nil Expected "b.example.example" to be "example.example", got nil Expected "a.b.example.example" to be "example.example", got nil Expected "xn--85x722f.xn--55qx5d.cn" to be "xn--85x722f.xn--55qx5d.cn", got "xn--55qx5d.cn" Expected "www.xn--85x722f.xn--55qx5d.cn" to be "xn--85x722f.xn--55qx5d.cn", got "xn--55qx5d.cn" Expected "shishi.xn--55qx5d.cn" to be "shishi.xn--55qx5d.cn", got "xn--55qx5d.cn" Expected "xn--55qx5d.cn" to be nil, got "xn--55qx5d.cn" Expected "xn--85x722f.xn--fiqs8s" to be "xn--85x722f.xn--fiqs8s", got nil Expected "www.xn--85x722f.xn--fiqs8s" to be "xn--85x722f.xn--fiqs8s", got nil Expected "shishi.xn--fiqs8s" to be "shishi.xn--fiqs8s", got nil --- test/psl_test.rb | 51 +++++++++++++++++++++++++ test/tests.txt | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 test/psl_test.rb create mode 100644 test/tests.txt diff --git a/test/psl_test.rb b/test/psl_test.rb new file mode 100644 index 00000000..6155383b --- /dev/null +++ b/test/psl_test.rb @@ -0,0 +1,51 @@ +require 'test_helper' +require 'public_suffix' + +# This test runs against the current PSL file and ensures +# the definitions satisfies the test suite. +class PslTest < Minitest::Unit::TestCase + + ROOT = File.expand_path("../../", __FILE__) + + def self.tests + File.readlines(File.join(ROOT, "test/tests.txt")).map do |line| + line = line.strip + next if line.empty? + next if line.start_with?("//") + input, output = line.split(", ") + + # handle the case of eval("null"), it must be eval("nil") + input = "nil" if input == "null" + output = "nil" if output == "null" + + input = eval(input) + output = eval(output) + [input, output] + end + end + + + def test_valid + # Parse the PSL and run the tests + defs = File.read(File.join(ROOT, "data/definitions.txt")) + PublicSuffix::List.default = PublicSuffix::List.parse(defs) + + failures = [] + self.class.tests.each do |input, output| + domain = begin + + + d = PublicSuffix.parse(input) + [d.sld, d.tld].join(".") + rescue + nil + end + failures << [input, output, domain] if output != domain + end + + message = "The following #{failures.size} tests fail:\n" + failures.each { |i,o,d| message += "Expected %s to be %s, got %s\n" % [i.inspect, o.inspect, d.inspect] } + assert_equal 0, failures.size, message + end + +end diff --git a/test/tests.txt b/test/tests.txt new file mode 100644 index 00000000..b11150ab --- /dev/null +++ b/test/tests.txt @@ -0,0 +1,98 @@ +// Any copyright is dedicated to the Public Domain. +// http://creativecommons.org/publicdomain/zero/1.0/ + +// null input +null, null +// Mixed case +'COM', null +'example.COM', 'example.com' +'WwW.example.COM', 'example.com' +// Leading dot +'.com', null +'.example', null +'.example.com', null +'.example.example', null +// Unlisted TLD +'example', null +'example.example', 'example.example' +'b.example.example', 'example.example' +'a.b.example.example', 'example.example' +// Listed, but non-Internet, TLD +//'local', null +//'example.local', null +//'b.example.local', null +//'a.b.example.local', null +// TLD with only 1 rule +'biz', null +'domain.biz', 'domain.biz' +'b.domain.biz', 'domain.biz' +'a.b.domain.biz', 'domain.biz' +// TLD with some 2-level rules +'com', null +'example.com', 'example.com' +'b.example.com', 'example.com' +'a.b.example.com', 'example.com' +'uk.com', null +'example.uk.com', 'example.uk.com' +'b.example.uk.com', 'example.uk.com' +'a.b.example.uk.com', 'example.uk.com' +'test.ac', 'test.ac' +// TLD with only 1 (wildcard) rule +'mm', null +'c.mm', null +'b.c.mm', 'b.c.mm' +'a.b.c.mm', 'b.c.mm' +// More complex TLD +'jp', null +'test.jp', 'test.jp' +'www.test.jp', 'test.jp' +'ac.jp', null +'test.ac.jp', 'test.ac.jp' +'www.test.ac.jp', 'test.ac.jp' +'kyoto.jp', null +'test.kyoto.jp', 'test.kyoto.jp' +'ide.kyoto.jp', null +'b.ide.kyoto.jp', 'b.ide.kyoto.jp' +'a.b.ide.kyoto.jp', 'b.ide.kyoto.jp' +'c.kobe.jp', null +'b.c.kobe.jp', 'b.c.kobe.jp' +'a.b.c.kobe.jp', 'b.c.kobe.jp' +'city.kobe.jp', 'city.kobe.jp' +'www.city.kobe.jp', 'city.kobe.jp' +// TLD with a wildcard rule and exceptions +'ck', null +'test.ck', null +'b.test.ck', 'b.test.ck' +'a.b.test.ck', 'b.test.ck' +'www.ck', 'www.ck' +'www.www.ck', 'www.ck' +// US K12 +'us', null +'test.us', 'test.us' +'www.test.us', 'test.us' +'ak.us', null +'test.ak.us', 'test.ak.us' +'www.test.ak.us', 'test.ak.us' +'k12.ak.us', null +'test.k12.ak.us', 'test.k12.ak.us' +'www.test.k12.ak.us', 'test.k12.ak.us' +// IDN labels +'食狮.com.cn', '食狮.com.cn' +'食狮.公司.cn', '食狮.公司.cn' +'www.食狮.公司.cn', '食狮.公司.cn' +'shishi.公司.cn', 'shishi.公司.cn' +'公司.cn', null +'食狮.中国', '食狮.中国' +'www.食狮.中国', '食狮.中国' +'shishi.中国', 'shishi.中国' +'中国', null +// Same as above, but punycoded +'xn--85x722f.com.cn', 'xn--85x722f.com.cn' +'xn--85x722f.xn--55qx5d.cn', 'xn--85x722f.xn--55qx5d.cn' +'www.xn--85x722f.xn--55qx5d.cn', 'xn--85x722f.xn--55qx5d.cn' +'shishi.xn--55qx5d.cn', 'shishi.xn--55qx5d.cn' +'xn--55qx5d.cn', null +'xn--85x722f.xn--fiqs8s', 'xn--85x722f.xn--fiqs8s' +'www.xn--85x722f.xn--fiqs8s', 'xn--85x722f.xn--fiqs8s' +'shishi.xn--fiqs8s', 'shishi.xn--fiqs8s' +'xn--fiqs8s', null From 571197026f7295d095075c44d8c1bee3316befcc Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 19:08:01 +0100 Subject: [PATCH 021/450] Simplify the test using PublicSuffix.domain --- test/psl_test.rb | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/test/psl_test.rb b/test/psl_test.rb index 6155383b..32e801fa 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -32,14 +32,7 @@ def test_valid failures = [] self.class.tests.each do |input, output| - domain = begin - - - d = PublicSuffix.parse(input) - [d.sld, d.tld].join(".") - rescue - nil - end + domain = PublicSuffix.domain(input) rescue nil failures << [input, output, domain] if output != domain end From bd2cf6bef098627393caf20e44ab331a4a510bb4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 19:09:02 +0100 Subject: [PATCH 022/450] Ignore punycode --- test/psl_test.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/psl_test.rb b/test/psl_test.rb index 32e801fa..8410dbad 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -32,6 +32,9 @@ def test_valid failures = [] self.class.tests.each do |input, output| + # Punycode domains are not supported ATM + next if input =~ /xn\-\-/ + domain = PublicSuffix.domain(input) rescue nil failures << [input, output, domain] if output != domain end From cbf8bc78dcf0b388de8a541a7af51a2b22579a00 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 19:33:40 +0100 Subject: [PATCH 023/450] Remove deprecated InvalidDomain exception --- CHANGELOG.md | 2 ++ lib/public_suffix/errors.rb | 16 +++------------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89481746..7fd81fa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ - CHANGED: PublicSuffix::List.default_definition no longer memoizes the data (no need to keep it in memory as the list is already memoized) Also the method now returns a String, instead of a File pointer (that was never closed). +- CHANGED: Removed deprecated PublicSuffix::InvalidDomain exception + #### Release 1.5.3 diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index b857f0df..a63dd555 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -11,9 +11,8 @@ module PublicSuffix class Error < StandardError end - # Raised when trying to parse an invalid domain. - # A domain is considered invalid when no rule is found - # in the definition list. + # Raised when trying to parse an invalid name. + # A name is considered invalid when no rule is found in the definition list. # # @example # @@ -26,10 +25,7 @@ class Error < StandardError class DomainInvalid < Error end - # Raised when trying to parse a domain - # which is formally defined by a rule, - # but the rules set a requirement which is not satisfied - # by the input you are trying to parse. + # Raised when trying to parse a name that matches a suffix. # # @example # @@ -42,10 +38,4 @@ class DomainInvalid < Error class DomainNotAllowed < DomainInvalid end - # Backward Compatibility - # - # @deprecated Use {PublicSuffix::DomainInvalid}. - # - InvalidDomain = DomainInvalid - end From 7c7582efdcd865b48fa17619caf0ec6cd29d1910 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 19:57:24 +0100 Subject: [PATCH 024/450] Cleanup code fromm 2010 --- lib/public_suffix/list.rb | 42 ++++++++++++++++++++------------------- lib/public_suffix/rule.rb | 32 ++++++++++++++--------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 425cc55f..11bc2e28 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -43,6 +43,7 @@ class List include Enumerable # Gets the default rule list. + # # Initializes a new {PublicSuffix::List} parsing the content # of {PublicSuffix::List.default_definition}, if required. # @@ -130,6 +131,7 @@ def self.parse(input) end end + # Gets the array of rules. # # @return [Array] @@ -152,6 +154,7 @@ def initialize(&block) create_index! end + # Creates a naive index for +@rules+. Just a hash that will tell # us where the elements of +@rules+ are relative to its first # {PublicSuffix::Rule::Base#labels} element. @@ -246,27 +249,26 @@ def clear # # From the Public Suffix List documentation: # - # * If a hostname matches more than one rule in the file, + # - If a hostname matches more than one rule in the file, # the longest matching rule (the one with the most levels) will be used. - # * An exclamation mark (!) at the start of a rule marks an exception to a previous wildcard rule. + # - An exclamation mark (!) at the start of a rule marks an exception to a previous wildcard rule. # An exception rule takes priority over any other matching rule. # # == Algorithm description # - # * Match domain against all rules and take note of the matching ones. - # * If no rules match, the prevailing rule is "*". - # * If more than one rule matches, the prevailing rule is the one which is an exception rule. - # * If there is no matching exception rule, the prevailing rule is the one with the most labels. - # * If the prevailing rule is a exception rule, modify it by removing the leftmost label. - # * The public suffix is the set of labels from the domain + # - Match domain against all rules and take note of the matching ones. + # - If no rules match, the prevailing rule is "*". + # - If more than one rule matches, the prevailing rule is the one which is an exception rule. + # - If there is no matching exception rule, the prevailing rule is the one with the most labels. + # - If the prevailing rule is a exception rule, modify it by removing the leftmost label. + # - The public suffix is the set of labels from the domain # which directly match the labels of the prevailing rule (joined by dots). - # * The registered domain is the public suffix plus one additional label. - # - # @param [String, #to_s] domain The domain name. + # - The registered domain is the public suffix plus one additional label. # + # @param [String, #to_s] name The domain name. # @return [PublicSuffix::Rule::*, nil] - def find(domain) - rules = select(domain) + def find(name) + rules = select(name) rules.detect { |r| r.type == :exception } || rules.inject { |t,r| t.length > r.length ? t : r } end @@ -276,17 +278,17 @@ def find(domain) # Will use +@indexes+ to try only the rules that share the same first label, # that will speed up things when using +List.find('foo')+ a lot. # - # @param [String, #to_s] domain The domain name. - # + # @param [String, #to_s] name The domain name. # @return [Array] - def select(domain) + def select(name) # raise DomainInvalid, "Blank domain" - return [] if domain.to_s =~ /\A\s*\z/ + return [] if name.to_s =~ /\A\s*\z/ # raise DomainInvalid, "`#{domain}' is not expected to contain a scheme" - return [] if domain.include?("://") + return [] if name.include?("://") - indices = (@indexes[Domain.domain_to_labels(domain).first] || []) - @rules.values_at(*indices).select { |rule| rule.match?(domain) } + indices = (@indexes[Domain.domain_to_labels(name).first] || []) + @rules.values_at(*indices).select { |rule| rule.match?(name) } + end end end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 91db15a2..d5a8e621 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -11,7 +11,7 @@ module PublicSuffix # A Rule is a special object which holds a single definition # of the Public Suffix List. # - # There are 3 types of ruleas, each one represented by a specific + # There are 3 types of rules, each one represented by a specific # subclass within the +PublicSuffix::Rule+ namespace. # # To create a new Rule, use the {PublicSuffix::Rule#factory} method. @@ -21,12 +21,11 @@ module PublicSuffix # module Rule - # - # = Abstract rule class + # # Abstract rule class # # This represent the base class for a Rule definition # in the {Public Suffix List}[http://publicsuffix.org]. - # + # # This is intended to be an Abstract class # and you shouldn't create a direct instance. The only purpose # of this class is to expose a common interface @@ -36,7 +35,7 @@ module Rule # * {PublicSuffix::Rule::Exception} # * {PublicSuffix::Rule::Wildcard} # - # == Properties + # ## Properties # # A rule is composed by 4 properties: # @@ -57,7 +56,7 @@ module Rule # @value="google.com" # > # - # == Rule Creation + # ## Rule Creation # # The best way to create a new rule is passing the rule name # to the PublicSuffix::Rule.factory method. @@ -71,7 +70,7 @@ module Rule # This method will detect the rule type and create an instance # from the proper rule class. # - # == Rule Usage + # ## Rule Usage # # A rule describes the composition of a domain name # and explains how to tokenize the domain name @@ -82,10 +81,10 @@ module Rule # You can use the #match? method. # # rule = PublicSuffix::Rule.factory("com") - # + # # rule.match?("google.com") # # => true - # + # # rule.match?("google.com") # # => false # @@ -94,12 +93,12 @@ module Rule # to learn more about rule priority. # # When you have the right rule, you can use it to tokenize the domain name. - # + # # rule = PublicSuffix::Rule.factory("com") - # + # # rule.decompose("google.com") # # => ["google", "com"] - # + # # rule.decompose("www.google.com") # # => ["www.google", "com"] # @@ -329,7 +328,7 @@ def initialize(name) # # See http://publicsuffix.org/format/: # If the prevailing rule is a exception rule, - # modify it by removing the leftmost label. + # modify it by removing the leftmost label. # # @return [Array] def parts @@ -361,10 +360,6 @@ def decompose(domain) # and creates a new instance of that class. # The +name+ becomes the rule +value+. # - # @param [String] name The rule definition. - # - # @return [PublicSuffix::Rule::*] A rule instance. - # # @example Creates a Normal rule # PublicSuffix::Rule.factory("ar") # # => # @@ -377,6 +372,9 @@ def decompose(domain) # PublicSuffix::Rule.factory("!congresodelalengua3.ar") # # => # # + # @param [String] name The rule definition. + # + # @return [PublicSuffix::Rule::*] A rule instance. def self.factory(name) RULES[name.to_s[0,1]].new(name) end From 1cd2abd95870578ba321d2f147e31184e27d4a99 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 21:14:25 +0100 Subject: [PATCH 025/450] If no rules match, the prevailing rule is "*" (closes GH-91) This is a breaking change that may break assumptions made by existing users. --- CHANGELOG.md | 2 ++ lib/public_suffix.rb | 8 +++-- lib/public_suffix/domain.rb | 42 +++++++++---------------- lib/public_suffix/list.rb | 40 +++++++++++++---------- lib/public_suffix/rule.rb | 11 +++++++ test/acceptance_test.rb | 4 +-- test/unit/domain_test.rb | 56 ++++++++++++++++----------------- test/unit/list_test.rb | 37 +++++++++++++--------- test/unit/public_suffix_test.rb | 37 ++++++++++++---------- test/unit/rule_test.rb | 8 +++++ 10 files changed, 138 insertions(+), 107 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fd81fa7..9f8598ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ - CHANGED: Removed deprecated PublicSuffix::InvalidDomain exception +- CHANGED: If the suffix is now listed, then the prevaling rule is "*" as defined by the PSL algorithm (GH-91) + #### Release 1.5.3 diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index fc426409..b4677ad9 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -88,9 +88,9 @@ def self.parse(name, list = List.default) # PublicSuffix.valid?("www.example.com") # # => true # - # @example Validate a not-assigned domain - # PublicSuffix.valid?("example.qqq") - # # => false + # @example Validate a not-listed domain + # PublicSuffix.valid?("example.tldnotlisted") + # # => true # # @example Validate a not-allowed domain # PublicSuffix.valid?("example.do") @@ -116,6 +116,8 @@ def self.valid?(name) name = name.to_s.downcase rule = List.default.find(name) !rule.nil? && rule.allow?(name) + rescue DomainInvalid + false end # Attempt to parse the name and returns the domain, if valid. diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 0d3d8215..d1d1580e 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -123,10 +123,6 @@ def name # This method doesn't validate the input. It handles the domain # as a valid domain name and simply applies the necessary transformations. # - # # This is an invalid domain - # PublicSuffix::Domain.new("qqq", "google").domain - # # => "google.qqq" - # # This method returns a FQD, not just the domain part. # To get the domain part, use #sld (aka second level domain). # @@ -136,18 +132,17 @@ def name # PublicSuffix::Domain.new("com", "google", "www").sld # # => "google" # - # @return [String] - # # @see #domain? # @see #subdomain # + # @return [String] def domain if domain? [@sld, @tld].join(".") end end - # Returns a domain-like representation of this object + # Returns a subdomain-like representation of this object # if the object is a {#subdomain?}, nil otherwise. # # PublicSuffix::Domain.new("com").subdomain @@ -162,11 +157,7 @@ def domain # This method doesn't validate the input. It handles the domain # as a valid domain name and simply applies the necessary transformations. # - # # This is an invalid domain - # PublicSuffix::Domain.new("qqq", "google", "www").subdomain - # # => "www.google.qqq" - # - # This method returns a FQD, not just the domain part. + # This method returns a FQD, not just the subdomain part. # To get the subdomain part, use #trd (aka third level domain). # # PublicSuffix::Domain.new("com", "google", "www").subdomain @@ -175,11 +166,10 @@ def domain # PublicSuffix::Domain.new("com", "google", "www").trd # # => "www" # - # @return [String] - # # @see #subdomain? # @see #domain # + # @return [String] def subdomain if subdomain? [@trd, @sld, @tld].join(".") @@ -204,8 +194,6 @@ def rule # If you also want to validate the domain, # use {#valid_domain?} instead. # - # @return [Boolean] - # # @example # # PublicSuffix::Domain.new("com").domain? @@ -219,11 +207,12 @@ def rule # # # This is an invalid domain, but returns true # # because this method doesn't validate the content. - # PublicSuffix::Domain.new("qqq", "google").domain? + # PublicSuffix::Domain.new("com", nil).domain? # # => true # # @see #subdomain? # + # @return [Boolean] def domain? !(@tld.nil? || @sld.nil?) end @@ -236,8 +225,6 @@ def domain? # If you also want to validate the domain, # use {#valid_subdomain?} instead. # - # @return [Boolean] - # # @example # # PublicSuffix::Domain.new("com").subdomain? @@ -251,11 +238,12 @@ def domain? # # # This is an invalid domain, but returns true # # because this method doesn't validate the content. - # PublicSuffix::Domain.new("qqq", "google", "www").subdomain? + # PublicSuffix::Domain.new("com", "example", nil).subdomain? # # => true # # @see #domain? # + # @return [Boolean] def subdomain? !(@tld.nil? || @sld.nil? || @trd.nil?) end @@ -291,9 +279,9 @@ def is_a_subdomain? # Domain.new("com", "example", "www").valid? # # => true # - # @example Check a not-assigned domain - # Domain.new("qqq", "example").valid? - # # => false + # @example Check a not-listed rule + # Domain.new("tldnotlisted", "example").valid? + # # => true # # @example Check a not-allowed domain # Domain.new("do", "example").valid? @@ -316,14 +304,14 @@ def valid? # PublicSuffix::Domain.new("com").domain? # # => false # - # PublicSuffix::Domain.new("com", "google").domain? + # PublicSuffix::Domain.new("com", "example").domain? # # => true # - # PublicSuffix::Domain.new("com", "google", "www").domain? + # PublicSuffix::Domain.new("com", "example", "www").domain? # # => true # # # This is an invalid domain - # PublicSuffix::Domain.new("qqq", "google").false? + # PublicSuffix::Domain.new("jp", "ac").false? # # => true # # @see #domain? @@ -350,7 +338,7 @@ def valid_domain? # # => true # # # This is an invalid domain - # PublicSuffix::Domain.new("qqq", "google", "www").subdomain? + # PublicSuffix::Domain.new("jp", "kobe", "c").subdomain? # # => false # # @see #subdomain? diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 11bc2e28..295c433f 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -256,21 +256,23 @@ def clear # # == Algorithm description # - # - Match domain against all rules and take note of the matching ones. - # - If no rules match, the prevailing rule is "*". - # - If more than one rule matches, the prevailing rule is the one which is an exception rule. - # - If there is no matching exception rule, the prevailing rule is the one with the most labels. - # - If the prevailing rule is a exception rule, modify it by removing the leftmost label. - # - The public suffix is the set of labels from the domain - # which directly match the labels of the prevailing rule (joined by dots). - # - The registered domain is the public suffix plus one additional label. + # 1. Match domain against all rules and take note of the matching ones. + # 2. If no rules match, the prevailing rule is "*". + # 3. If more than one rule matches, the prevailing rule is the one which is an exception rule. + # 4. If there is no matching exception rule, the prevailing rule is the one with the most labels. + # 5. If the prevailing rule is a exception rule, modify it by removing the leftmost label. + # 6. The public suffix is the set of labels from the domain + # which directly match the labels of the prevailing rule (joined by dots). + # 7. The registered domain is the public suffix plus one additional label. # # @param [String, #to_s] name The domain name. - # @return [PublicSuffix::Rule::*, nil] - def find(name) + # @param [PublicSuffix::Rule::*] default The default rule to return in case no rule matches. + # @return [PublicSuffix::Rule::*] + def find(name, default = default_rule) rules = select(name) - rules.detect { |r| r.type == :exception } || - rules.inject { |t,r| t.length > r.length ? t : r } + rules.detect { |r| r.type == :exception } || + rules.inject { |t,r| t.length > r.length ? t : r } || + default end # Selects all the rules matching given domain. @@ -281,14 +283,20 @@ def find(name) # @param [String, #to_s] name The domain name. # @return [Array] def select(name) - # raise DomainInvalid, "Blank domain" - return [] if name.to_s =~ /\A\s*\z/ - # raise DomainInvalid, "`#{domain}' is not expected to contain a scheme" - return [] if name.include?("://") + raise DomainInvalid, "Name is blank" if name.to_s =~ /\A\s*\z/ + raise DomainInvalid, "`#{name}` is not expected to contain a scheme" if name.include?("://") indices = (@indexes[Domain.domain_to_labels(name).first] || []) @rules.values_at(*indices).select { |rule| rule.match?(name) } end + + # Gets the default rule. + # + # @see PublicSuffix::Rule.default_rule + # + # @return [PublicSuffix::Rule::*] + def default_rule + PublicSuffix::Rule.default end end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index d5a8e621..a7982ba7 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -379,6 +379,17 @@ def self.factory(name) RULES[name.to_s[0,1]].new(name) end + # The default rule to use if no rule match. + # + # The default rule is "*". From https://publicsuffix.org/list/: + # + # > If no rules match, the prevailing rule is "*". + # + # @return [PublicSuffix::Rule::Wildcard] The default rule. + def self.default + factory("*") + end + end end diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 24c797fe..aa0f8570 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -48,14 +48,14 @@ def test_invalid ["google-.com", true], # This case was covered in GH-15. - # I decide to cover this case because it's not easily reproducible with URI.parse + # I decided to cover this case because it's not easily reproducible with URI.parse # and can lead to several false positives. ["http://google.com", false], ] def test_rejected RejectedCases.each do |name, expected| - assert_equal expected, PublicSuffix.valid?(name) + assert_equal expected, PublicSuffix.valid?(name), "Expected %s to be %s" % [name.inspect, expected.inspect] assert !valid_domain?(name), "#{name} expected to be invalid" end end diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index 30e253b2..a21b2f8b 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -85,24 +85,24 @@ def test_name def test_domain assert_equal nil, @klass.new("com").domain - assert_equal nil, @klass.new("qqq").domain + assert_equal nil, @klass.new("tldnotlisted").domain assert_equal "google.com", @klass.new("com", "google").domain - assert_equal "google.qqq", @klass.new("qqq", "google").domain + assert_equal "google.tldnotlisted", @klass.new("tldnotlisted", "google").domain assert_equal "google.com", @klass.new("com", "google", "www").domain - assert_equal "google.qqq", @klass.new("qqq", "google", "www").domain + assert_equal "google.tldnotlisted", @klass.new("tldnotlisted", "google", "www").domain end def test_subdomain assert_equal nil, @klass.new("com").subdomain - assert_equal nil, @klass.new("qqq").subdomain + assert_equal nil, @klass.new("tldnotlisted").subdomain assert_equal nil, @klass.new("com", "google").subdomain - assert_equal nil, @klass.new("qqq", "google").subdomain + assert_equal nil, @klass.new("tldnotlisted", "google").subdomain assert_equal "www.google.com", @klass.new("com", "google", "www").subdomain - assert_equal "www.google.qqq", @klass.new("qqq", "google", "www").subdomain + assert_equal "www.google.tldnotlisted", @klass.new("tldnotlisted", "google", "www").subdomain end def test_rule - assert_equal nil, @klass.new("qqq").rule + assert_equal PublicSuffix::Rule.default, @klass.new("tldnotlisted").rule assert_equal PublicSuffix::Rule.factory("com"), @klass.new("com").rule assert_equal PublicSuffix::Rule.factory("com"), @klass.new("com", "google").rule assert_equal PublicSuffix::Rule.factory("com"), @klass.new("com", "google", "www").rule @@ -110,31 +110,31 @@ def test_rule def test_domain_question - assert @klass.new("com", "google").domain? - assert @klass.new("qqq", "google").domain? - assert @klass.new("com", "google", "www").domain? assert !@klass.new("com").domain? + assert @klass.new("com", "example").domain? + assert @klass.new("com", "example", "www").domain? + assert @klass.new("tldnotlisted", "example").domain? end def test_subdomain_question - assert @klass.new("com", "google", "www").subdomain? - assert @klass.new("qqq", "google", "www").subdomain? assert !@klass.new("com").subdomain? - assert !@klass.new("com", "google").subdomain? + assert !@klass.new("com", "example").subdomain? + assert @klass.new("com", "example", "www").subdomain? + assert @klass.new("tldnotlisted", "example", "www").subdomain? end def test_is_a_domain_question - assert @klass.new("com", "google").is_a_domain? - assert @klass.new("qqq", "google").is_a_domain? - assert !@klass.new("com", "google", "www").is_a_domain? assert !@klass.new("com").is_a_domain? + assert @klass.new("com", "example").is_a_domain? + assert !@klass.new("com", "example", "www").is_a_domain? + assert @klass.new("tldnotlisted", "example").is_a_domain? end def test_is_a_subdomain_question - assert @klass.new("com", "google", "www").is_a_subdomain? - assert @klass.new("qqq", "google", "www").is_a_subdomain? assert !@klass.new("com").is_a_subdomain? assert !@klass.new("com", "google").is_a_subdomain? + assert @klass.new("com", "google", "www").is_a_subdomain? + assert @klass.new("tldnotlisted", "example", "www").is_a_subdomain? end def test_valid_question @@ -142,10 +142,10 @@ def test_valid_question assert @klass.new("com", "example").valid? assert @klass.new("com", "example", "www").valid? - # not-assigned - assert !@klass.new("qqq").valid? - assert !@klass.new("qqq", "example").valid? - assert !@klass.new("qqq", "example", "www").valid? + # not-listed + assert !@klass.new("tldnotlisted").valid? + assert @klass.new("tldnotlisted", "example").valid? + assert @klass.new("tldnotlisted", "example", "www").valid? # not-allowed assert !@klass.new("ke").valid? @@ -154,17 +154,17 @@ def test_valid_question end def test_valid_domain_question - assert @klass.new("com", "google").valid_domain? - assert !@klass.new("qqq", "google").valid_domain? - assert @klass.new("com", "google", "www").valid_domain? assert !@klass.new("com").valid_domain? + assert @klass.new("com", "example").valid_domain? + assert @klass.new("com", "example", "www").valid_domain? + assert @klass.new("tldnotlisted", "example").valid_domain? end def test_valid_subdomain_question - assert @klass.new("com", "google", "www").valid_subdomain? - assert !@klass.new("qqq", "google", "www").valid_subdomain? assert !@klass.new("com").valid_subdomain? - assert !@klass.new("com", "google").valid_subdomain? + assert !@klass.new("com", "example").valid_subdomain? + assert @klass.new("com", "example", "www").valid_subdomain? + assert @klass.new("tldnotlisted", "example", "www").valid_subdomain? end end diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 4c8dcd53..19ba8c4d 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -47,7 +47,7 @@ def test_add def test_add_should_recreate_index @list = PublicSuffix::List.parse("com") assert_equal PublicSuffix::Rule.factory("com"), @list.find("google.com") - assert_equal nil, @list.find("google.net") + assert_equal @list.default_rule, @list.find("google.net") @list << PublicSuffix::Rule.factory("net") assert_equal PublicSuffix::Rule.factory("com"), @list.find("google.com") @@ -83,31 +83,40 @@ def test_clear def test_find - assert_equal PublicSuffix::Rule.factory("com"), list.find("google.com") - assert_equal PublicSuffix::Rule.factory("com"), list.find("foo.google.com") - assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("google.uk") - assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("google.co.uk") - assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("foo.google.co.uk") + assert_equal PublicSuffix::Rule.factory("com"), list.find("example.com") + assert_equal PublicSuffix::Rule.factory("com"), list.find("foo.example.com") + assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("example.uk") + assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("example.co.uk") + assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("foo.example.co.uk") assert_equal PublicSuffix::Rule.factory("!british-library.uk"), list.find("british-library.uk") assert_equal PublicSuffix::Rule.factory("!british-library.uk"), list.find("foo.british-library.uk") end + def test_find_default_rule + assert_equal PublicSuffix::List.default.default_rule, list.find("example.tldnotlisted") + end + + def test_select assert_equal 2, list.select("british-library.uk").size end - def test_select_returns_empty_when_domain_is_nil - assert_equal [], list.select(nil) + def test_select_name_nil + error = assert_raises(PublicSuffix::DomainInvalid) { list.select(nil) } + assert_match /blank/, error.message end - def test_select_returns_empty_when_domain_is_blank - assert_equal [], list.select("") - assert_equal [], list.select(" ") + def test_select_name_blank + error = assert_raises(PublicSuffix::DomainInvalid) { list.select("") } + assert_match /blank/, error.message + + error = assert_raises(PublicSuffix::DomainInvalid) { list.select(" ") } + assert_match /blank/, error.message end - def test_select_returns_empty_when_domain_has_scheme - assert_equal [], list.select("http://google.com") - assert_not_equal [], list.select("google.com") + def test_select_name_scheme + error = assert_raises(PublicSuffix::DomainInvalid) { list.select("http://example.com") } + assert_match /scheme/, error.message end diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 50bac206..09f6427b 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -44,7 +44,7 @@ def test_self_parse_a_domain_with_tld_and_sld_and_4rd assert_equal "one.two", domain.trd end - def test_self_parse_a_fully_qualified_domain_name + def test_self_parse_name_fqdn domain = PublicSuffix.parse("www.example.com.") assert_instance_of PublicSuffix::Domain, domain assert_equal "com", domain.tld @@ -72,14 +72,18 @@ def test_self_parse_a_domain_with_custom_list list << PublicSuffix::Rule.factory("test") domain = PublicSuffix.parse("www.example.test", list) + assert_instance_of PublicSuffix::Domain, domain assert_equal "test", domain.tld assert_equal "example", domain.sld assert_equal "www", domain.trd end - def test_self_parse_raises_with_invalid_domain - error = assert_raises(PublicSuffix::DomainInvalid) { PublicSuffix.parse("example.qqq") } - assert_match %r{example\.qqq}, error.message + def test_self_parse_with_notlisted_name + domain = PublicSuffix.parse("example.tldnotlisted") + assert_instance_of PublicSuffix::Domain, domain + assert_equal "tldnotlisted", domain.tld + assert_equal "example", domain.sld + assert_equal nil, domain.trd end def test_self_parse_raises_with_unallowed_domain @@ -100,17 +104,16 @@ def test_self_valid assert PublicSuffix.valid?("www.google.co.uk") end - # Returns false when domain has an invalid TLD - def test_self_valid_with_invalid_tld - assert !PublicSuffix.valid?("google.qqq") - assert !PublicSuffix.valid?("www.google.qqq") + def test_self_valid_with_notlisted_name + assert PublicSuffix.valid?("google.tldnotlisted") + assert PublicSuffix.valid?("www.google.tldnotlisted") end - def test_self_valid_with_fully_qualified_domain_name - assert PublicSuffix.valid?("google.com.") - assert PublicSuffix.valid?("google.co.uk.") - assert !PublicSuffix.valid?("google.qqq.") - end + # def test_self_valid_with_fully_qualified_domain_name + # assert PublicSuffix.valid?("google.com.") + # assert PublicSuffix.valid?("google.co.uk.") + # assert !PublicSuffix.valid?("google.tldnotlisted.") + # end def test_self_domain @@ -120,15 +123,15 @@ def test_self_domain assert_equal "google.co.uk", PublicSuffix.domain("www.google.co.uk") end - def test_self_domain_with_invalid_domain_returns_nil - assert_nil PublicSuffix.domain("example.qqq") + def test_self_domain_with_notlisted_name + assert_equal "example.tldnotlisted", PublicSuffix.domain("example.tldnotlisted") end - def test_self_domain_with_unallowed_domain_returns_nil + def test_self_domain_with_unallowed_name assert_nil PublicSuffix.domain("example.ke") end - def test_self_domain_with_blank_sld_returns_nil + def test_self_domain_with_blank_sld assert_nil PublicSuffix.domain("com") assert_nil PublicSuffix.domain(".com") end diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index b453ced8..937e5b36 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -23,6 +23,14 @@ def test_factory_should_return_rule_wildcard assert_instance_of PublicSuffix::Rule::Wildcard, rule end + + def test_default_returns_default_wildcard + default = PublicSuffix::Rule.default + assert_equal PublicSuffix::Rule::Wildcard.new("*"), default + assert_equal %w( example tldnotlisted ), default.decompose("example.tldnotlisted") + assert_equal %w( www.example tldnotlisted ), default.decompose("www.example.tldnotlisted") + end + end From f2c1c5a680e77ade0d83b419a8a077b07bf4ad31 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 21:37:59 +0100 Subject: [PATCH 026/450] Validate input only in .parse and .valid? PublicSuffix::List should not care about the input. If you call a List method directly, you should know what you are doing. --- CHANGELOG.md | 2 ++ lib/public_suffix.rb | 36 ++++++++++++++++++++------- lib/public_suffix/list.rb | 4 +-- test/unit/list_test.rb | 18 +++----------- test/unit/public_suffix_test.rb | 43 ++++++++++++++++++++++++++++++--- 5 files changed, 73 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f8598ea..66496d55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ - CHANGED: If the suffix is now listed, then the prevaling rule is "*" as defined by the PSL algorithm (GH-91) +- CHANGED: Input validation is performed only if you call PublicSuffix.parse or PublicSuffix.list + #### Release 1.5.3 diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index b4677ad9..c020c6bf 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -52,17 +52,18 @@ module PublicSuffix # @raise [PublicSuffix::DomainNotAllowed] # If a rule for +domain+ is found, but the rule doesn't allow +domain+. def self.parse(name, list = List.default) - name = name.to_s.downcase - rule = list.find(name) + what = normalize(name) + raise what if what.is_a?(DomainInvalid) + rule = list.find(what) if rule.nil? - raise DomainInvalid, "`#{name}' is not a valid domain" + raise DomainInvalid, "`#{what}` is not a valid domain" end - if !rule.allow?(name) - raise DomainNotAllowed, "`#{name}' is not allowed according to Registry policy" + if !rule.allow?(what) + raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" end - left, right = rule.decompose(name) + left, right = rule.decompose(what) parts = left.split(".") # If we have 0 parts left, there is just a tld and no domain or subdomain @@ -113,9 +114,11 @@ def self.parse(name, list = List.default) # The domain name or fully qualified domain name to validate. # @return [Boolean] def self.valid?(name) - name = name.to_s.downcase - rule = List.default.find(name) - !rule.nil? && rule.allow?(name) + what = normalize(name) + return false if what.is_a?(DomainInvalid) + + rule = List.default.find(what) + !rule.nil? && rule.allow?(what) rescue DomainInvalid false end @@ -135,4 +138,19 @@ def self.domain(name, list = List.default) nil end + + private + + # Pretend we know how to deal with user input. + def self.normalize(name) + name = name.to_s.dup + name.strip! + name.chomp!(".") + name.downcase! + + return DomainInvalid.new("Name is blank") if name.empty? + return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") + name + end + end diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 295c433f..2cfb587f 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -283,9 +283,7 @@ def find(name, default = default_rule) # @param [String, #to_s] name The domain name. # @return [Array] def select(name) - raise DomainInvalid, "Name is blank" if name.to_s =~ /\A\s*\z/ - raise DomainInvalid, "`#{name}` is not expected to contain a scheme" if name.include?("://") - + name = name.to_s indices = (@indexes[Domain.domain_to_labels(name).first] || []) @rules.values_at(*indices).select { |rule| rule.match?(name) } end diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 19ba8c4d..15260b0c 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -101,22 +101,10 @@ def test_select assert_equal 2, list.select("british-library.uk").size end - def test_select_name_nil - error = assert_raises(PublicSuffix::DomainInvalid) { list.select(nil) } - assert_match /blank/, error.message - end - def test_select_name_blank - error = assert_raises(PublicSuffix::DomainInvalid) { list.select("") } - assert_match /blank/, error.message - - error = assert_raises(PublicSuffix::DomainInvalid) { list.select(" ") } - assert_match /blank/, error.message - end - - def test_select_name_scheme - error = assert_raises(PublicSuffix::DomainInvalid) { list.select("http://example.com") } - assert_match /scheme/, error.message + assert_equal [], list.select(nil) + assert_equal [], list.select("") + assert_equal [], list.select(" ") end diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 09f6427b..2104d58d 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -67,7 +67,7 @@ def test_disable_support_for_private_domains end end - def test_self_parse_a_domain_with_custom_list + def test_self_parse_with_custom_list list = PublicSuffix::List.new list << PublicSuffix::Rule.factory("test") @@ -86,12 +86,12 @@ def test_self_parse_with_notlisted_name assert_equal nil, domain.trd end - def test_self_parse_raises_with_unallowed_domain + def test_self_parse_with_unallowed_domain error = assert_raises(PublicSuffix::DomainNotAllowed) { PublicSuffix.parse("example.ke") } assert_match %r{example\.ke}, error.message end - def test_self_raises_with_uri + def test_self_parse_with_uri error = assert_raises(PublicSuffix::DomainInvalid) { PublicSuffix.parse("http://google.com") } assert_match %r{http://google\.com}, error.message end @@ -136,4 +136,41 @@ def test_self_domain_with_blank_sld assert_nil PublicSuffix.domain(".com") end + + def test_self_normalize + [ + ['com', 'com'], + ['example.com', 'example.com'], + ['www.example.com', 'www.example.com'], + + ['example.com.', 'example.com'], # strip FQDN + [' example.com ', 'example.com'], # strip spaces + ['Example.COM', 'example.com'], # downcase + ].each do |input, output| + assert_equal output, PublicSuffix.normalize(input) + end + end + + def test_normalize_blank + [ + nil, + '', + ' ' + ].each do |input, output| + error = PublicSuffix.normalize(input) + assert_instance_of PublicSuffix::DomainInvalid, error + assert_equal "Name is blank", error.message + end + end + + def test_normalize_scheme + [ + 'https://google.com' + ].each do |input, output| + error = PublicSuffix.normalize(input) + assert_instance_of PublicSuffix::DomainInvalid, error + assert_match /scheme/, error.message + end + end + end From 803a06ba0582ee148e5d51cbd20e54d65871ea01 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 22:03:17 +0100 Subject: [PATCH 027/450] Consider an input with a leading dot as invalid I'm not thrilled by this rule, but this is one of the acceptance tests of the PSL. --- lib/public_suffix.rb | 1 + test/unit/public_suffix_test.rb | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index c020c6bf..32afb50d 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -149,6 +149,7 @@ def self.normalize(name) name.downcase! return DomainInvalid.new("Name is blank") if name.empty? + return DomainInvalid.new("Name starts with a dot") if name.start_with?(".") return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") name end diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 2104d58d..3c47de3c 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -173,4 +173,14 @@ def test_normalize_scheme end end + def test_normalize_leading_dot + [ + '.google.com' + ].each do |input, output| + error = PublicSuffix.normalize(input) + assert_instance_of PublicSuffix::DomainInvalid, error + assert_match "Name starts with a dot", error.message + end + end + end From 93f0e9ca7365edec1db8a8aff0cdef220abcbec2 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 22:03:29 +0100 Subject: [PATCH 028/450] Extract useful method --- lib/public_suffix.rb | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 32afb50d..3234842a 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -63,17 +63,7 @@ def self.parse(name, list = List.default) raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" end - left, right = rule.decompose(what) - - parts = left.split(".") - # If we have 0 parts left, there is just a tld and no domain or subdomain - # If we have 1 part left, there is just a tld, domain and not subdomain - # If we have 2 parts left, the last part is the domain, the other parts (combined) are the subdomain - tld = right - sld = parts.empty? ? nil : parts.pop - trd = parts.empty? ? nil : parts.join(".") - - Domain.new(tld, sld, trd) + decompose(what, rule) end # Checks whether +domain+ is assigned and allowed, without actually parsing it. @@ -141,6 +131,20 @@ def self.domain(name, list = List.default) private + def self.decompose(name, rule) + left, right = rule.decompose(name) + + parts = left.split(".") + # If we have 0 parts left, there is just a tld and no domain or subdomain + # If we have 1 part left, there is just a tld, domain and not subdomain + # If we have 2 parts left, the last part is the domain, the other parts (combined) are the subdomain + tld = right + sld = parts.empty? ? nil : parts.pop + trd = parts.empty? ? nil : parts.join(".") + + Domain.new(tld, sld, trd) + end + # Pretend we know how to deal with user input. def self.normalize(name) name = name.to_s.dup From 30cb96bd2939d6999322e697e0290792c104ce53 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 22:04:07 +0100 Subject: [PATCH 029/450] CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66496d55..b132fde8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ - CHANGED: Input validation is performed only if you call PublicSuffix.parse or PublicSuffix.list +- CHANGED: Input with leading dot is invalid per PSL acceptance tests + #### Release 1.5.3 From 666bc68081feeaec5cbcf7c275b7a5863d847b61 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 5 Feb 2016 22:06:59 +0100 Subject: [PATCH 030/450] Use the new Travis infrastructure --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 76228d09..e90f5c97 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,8 @@ rvm: - jruby-19mode - rbx-19mode +sudo: false + before_install: - gem install bundler From 6e26b65cb8dc21e316de88b7d0458039ed776dfe Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 6 Feb 2016 00:56:57 +0100 Subject: [PATCH 031/450] List.parse now accepts a `private_domains: false` option This PR removes the need to set the class-level attribute that sets a global state to the list and makes it hard to parse other lists without side effects. It also closes GH-68 --- CHANGELOG.md | 2 ++ lib/public_suffix/list.rb | 30 ++++++------------------------ test/unit/public_suffix_test.rb | 29 ++++++++++++++--------------- 3 files changed, 22 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b132fde8..2024454e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ - CHANGED: Input with leading dot is invalid per PSL acceptance tests +- CHANGED: Remove private_domains class-level attribute. It is replaced by the `private_domains: false` option in the list parse method. + #### Release 1.5.3 diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 2cfb587f..91ee5aae 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -48,8 +48,8 @@ class List # of {PublicSuffix::List.default_definition}, if required. # # @return [PublicSuffix::List] - def self.default - @default ||= parse(default_definition) + def self.default(**options) + @default ||= parse(default_definition, options) end # Sets the default rule list to +value+. @@ -62,25 +62,6 @@ def self.default=(value) @default = value end - # Shows if support for private (non-ICANN) domains is enabled or not - # - # @return [Boolean] - def self.private_domains? - @private_domains != false - end - - # Enables/disables support for private (non-ICANN) domains - # Implicitly reloads the list - # - # @param [Boolean] value - # enable/disable support - # - # @return [PublicSuffix::List] - def self.private_domains=(value) - @private_domains = !!value - self.clear - end - # Sets the default rule list to +nil+. # # @return [self] @@ -110,13 +91,14 @@ def self.default_definition # # See http://publicsuffix.org/format/ for more details about input format. # - # @param [#each_line] string The list to parse. + # @param string [#each_line] The list to parse. + # @param private_domain [Boolean] whether to ignore the private domains section. # @return [Array] - def self.parse(input) + def self.parse(input, private_domains: true) new do |list| input.each_line do |line| line.strip! - break if !private_domains? && line.include?('===BEGIN PRIVATE DOMAINS===') + break if !private_domains && line.include?('===BEGIN PRIVATE DOMAINS===') # strip blank lines if line.empty? next diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 3c47de3c..ce95c1e3 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -2,6 +2,20 @@ class PublicSuffixTest < Minitest::Unit::TestCase + def test_private_domains_enabled_by_default + domain = PublicSuffix.parse("www.example.blogspot.com") + assert_equal "blogspot.com", domain.tld + end + + def test_private_domains_disable + PublicSuffix::List.default = PublicSuffix::List.parse(PublicSuffix::List.default_definition, private_domains: false) + domain = PublicSuffix.parse("www.example.blogspot.com") + assert_equal "com", domain.tld + ensure + PublicSuffix::List.clear + end + + def test_self_parse_a_domain_with_tld_and_sld domain = PublicSuffix.parse("example.com") assert_instance_of PublicSuffix::Domain, domain @@ -52,21 +66,6 @@ def test_self_parse_name_fqdn assert_equal "www", domain.trd end - def test_private_domains_are_enabled_by_default - domain = PublicSuffix.parse("www.example.blogspot.com") - assert_equal "blogspot.com", domain.tld - end - - def test_disable_support_for_private_domains - begin - PublicSuffix::List.private_domains = false - domain = PublicSuffix.parse("www.example.blogspot.com") - assert_equal "com", domain.tld - ensure - PublicSuffix::List.private_domains = true - end - end - def test_self_parse_with_custom_list list = PublicSuffix::List.new list << PublicSuffix::Rule.factory("test") From b0c0e6a14f5a436bbca09612b776ef2a6e9416f3 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 6 Feb 2016 01:26:07 +0100 Subject: [PATCH 032/450] Add coveralls --- Gemfile | 1 + test/test_helper.rb | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Gemfile b/Gemfile index 73e2da2d..daeed7b8 100644 --- a/Gemfile +++ b/Gemfile @@ -4,3 +4,4 @@ gemspec gem 'minitest' gem 'minitest-reporters' +gem 'coveralls', require: false diff --git a/test/test_helper.rb b/test/test_helper.rb index 0d8255f0..f69c118d 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -2,6 +2,8 @@ require 'minitest/autorun' require 'minitest/reporters' require 'mocha/setup' +require 'coveralls' +Coveralls.wear! Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true) From 777be358004c242594ed2298424ae3e6ba7fb354 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 6 Feb 2016 01:33:23 +0100 Subject: [PATCH 033/450] Require Coverall as the first lib --- .travis.yml | 1 + test/test_helper.rb | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index e90f5c97..4638becf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ rvm: - rbx-19mode sudo: false +env: COVERALL=1 before_install: - gem install bundler diff --git a/test/test_helper.rb b/test/test_helper.rb index f69c118d..de0dba1c 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,9 +1,11 @@ -require 'rubygems' +if ENV['COVERALL'] + require 'coveralls' + Coveralls.wear! +end + require 'minitest/autorun' require 'minitest/reporters' require 'mocha/setup' -require 'coveralls' -Coveralls.wear! Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true) From 9b9972e42d314e83e9bc66c9e135e1a56bd9f90d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 6 Feb 2016 01:35:39 +0100 Subject: [PATCH 034/450] valid? no longer raises --- lib/public_suffix.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 3234842a..3c97f712 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -109,8 +109,6 @@ def self.valid?(name) rule = List.default.find(what) !rule.nil? && rule.allow?(what) - rescue DomainInvalid - false end # Attempt to parse the name and returns the domain, if valid. From 3ed3b560b77ee5063b29f151784ca0a96eed1416 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 6 Feb 2016 09:32:26 +0100 Subject: [PATCH 035/450] Update the README with the recent changes --- README.md | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index ba497e07..0fe86cf9 100644 --- a/README.md +++ b/README.md @@ -35,21 +35,34 @@ Not convinced yet? Check out [this real world example](http://stackoverflow.com/ - Ruby >= 2.0 -For an older versions of Ruby use a previous release. We also support several [Ruby implementations](http://simonecarletti.com/code/publicsuffix/#implementations). +For an older versions of Ruby use a previous release. ## Installation The best way to install *PublicSuffix* is via [RubyGems](https://rubygems.org/). - $ gem install public_suffix +```shell +$ gem install public_suffix +``` You might need administrator privileges on your system to install the gem. -## Basic Usage +## Usage + +Extract the domain out from a name: + +```ruby +PublicSuffix.domain("google.com") +# => "google.com" +PublicSuffix.domain("www.google.com") +# => "google.com" +PublicSuffix.domain("www.google.co.uk") +# => "google.co.uk" +``` -Example domain without subdomains. +Parse a domain without subdomains: ```ruby domain = PublicSuffix.parse("google.com") @@ -66,7 +79,7 @@ domain.subdomain # => nil ``` -Example domain with subdomains. +Parse a domain with subdomains: ```ruby domain = PublicSuffix.parse("www.google.com") @@ -83,7 +96,7 @@ domain.subdomain # => "www.google.com" ``` -Simple validation example. +Simple validation example: ```ruby PublicSuffix.valid?("google.com") @@ -92,7 +105,8 @@ PublicSuffix.valid?("google.com") PublicSuffix.valid?("www.google.com") # => true -PublicSuffix.valid?("x.yz") +# Explicitly forbidden, it is listed as a private domain +PublicSuffix.valid?("blogspot.com") # => false ``` @@ -102,21 +116,17 @@ This library automatically recognizes Fully Qualified Domain Names. A FQDN is a ```ruby # Parse a standard domain name -domain = PublicSuffix.parse("www.google.com") -# => # -domain.tld -# => "com" +PublicSuffix.domain("www.google.com") +# => "domain.com" # Parse a fully qualified domain name -domain = PublicSuffix.parse("www.google.com.") -# => # -domain.tld -# => "com" +PublicSuffix.domain("www.google.com.") +# => "domain.com" ``` ## Private domains -This library has support for switching off support for private (non-ICANN) domains +This library has support for switching off support for private (non-ICANN). The private domains section is stripped when the list is parsed, hence you will need to re-parse it. ```ruby # Parse a domain on a private TLD @@ -126,7 +136,7 @@ domain.tld # => "blogspot.com" # Disable support for private TLDs -PublicSuffix::List.private_domains = false +PublicSuffix::List.default = Public::Suffix.parse(Public::Suffix.default_definition, private_domains: false) # => # domain = PublicSuffix.parse("something.blogspot.com") # => # @@ -150,10 +160,10 @@ Report issues or feature requests to [GitHub Issues](https://github.com/weppos/p ## More -* [Homepage](http://simonecarletti.com/code/publicsuffix) -* [Repository](https://github.com/weppos/publicsuffix-ruby) -* [API Documentation](http://rubydoc.info/gems/public_suffix) -* [Introducing the Public Suffix List library for Ruby](http://simonecarletti.com/blog/2010/06/public-suffix-list-library-for-ruby/) +- [Homepage](http://simonecarletti.com/code/publicsuffix) +- [Repository](https://github.com/weppos/publicsuffix-ruby) +- [API Documentation](http://rubydoc.info/gems/public_suffix) +- [Introducing the Public Suffix List library for Ruby](https://simonecarletti.com/blog/2010/06/public-suffix-list-library-for-ruby/) ## Changelog From ccf3e1859a1f3aa69a6115977e700226a9105434 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 6 Feb 2016 10:21:14 +0100 Subject: [PATCH 036/450] All these changes deserve a major version bump --- lib/public_suffix/version.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 60d326cd..20a50315 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,9 +9,9 @@ module PublicSuffix module Version - MAJOR = 1 - MINOR = 5 - PATCH = 3 + MAJOR = 2 + MINOR = 0 + PATCH = 0 BUILD = nil STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join(".") From b5e2c7d8f4660eee557ea3735a7eb3a795b43d64 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 11 Feb 2016 20:24:39 +0100 Subject: [PATCH 037/450] Initial performance benchmarks Rehearsal ------------------------------------------------------------- Top level TLD 24.480000 0.090000 24.570000 ( 24.726439) Top level TLD (subdomain) 29.150000 0.120000 29.270000 ( 29.574744) Unlisted TLD 3.760000 0.110000 3.870000 ( 4.183193) Unlisted TLD (subdomain) 3.370000 0.050000 3.420000 ( 3.485396) Crazy suffix 331.010000 1.600000 332.610000 (335.269870) -------------------------------------------------- total: 393.740000sec user system total real Top level TLD 23.370000 0.020000 23.390000 ( 23.424841) Top level TLD (subdomain) 27.080000 0.090000 27.170000 ( 27.300811) Unlisted TLD 2.670000 0.020000 2.690000 ( 2.690630) Unlisted TLD (subdomain) 2.750000 0.020000 2.770000 ( 2.777981) Crazy suffix 334.060000 1.640000 335.700000 (337.806388) --- Rakefile | 3 +-- test/benchmark_helper.rb | 4 ++++ test/performance_benchmark.rb | 38 +++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 test/benchmark_helper.rb create mode 100644 test/performance_benchmark.rb diff --git a/Rakefile b/Rakefile index d143a72c..987588e8 100644 --- a/Rakefile +++ b/Rakefile @@ -58,13 +58,12 @@ task package: [:gemspec] require 'rake/testtask' Rake::TestTask.new do |t| - t.libs << "test" + t.libs = %w( lib test ) t.pattern = "test/**/*_test.rb" t.verbose = !!ENV["VERBOSE"] t.warning = !!ENV["WARNING"] end - require 'yard' require 'yard/rake/yardoc_task' diff --git a/test/benchmark_helper.rb b/test/benchmark_helper.rb new file mode 100644 index 00000000..1e7e3b45 --- /dev/null +++ b/test/benchmark_helper.rb @@ -0,0 +1,4 @@ +require 'benchmark' + +$:.unshift File.expand_path('../../lib', __FILE__) +require 'public_suffix' diff --git a/test/performance_benchmark.rb b/test/performance_benchmark.rb new file mode 100644 index 00000000..9c6015c3 --- /dev/null +++ b/test/performance_benchmark.rb @@ -0,0 +1,38 @@ +require_relative 'benchmark_helper' + +iterations = 100_000 + +# force load +list = PublicSuffix::List.default + +Benchmark.bmbm do |bm| + bm.report "Top level TLD" do + iterations.times do + PublicSuffix.domain("example.com", list) + end + end + + bm.report "Top level TLD (subdomain)" do + iterations.times do + PublicSuffix.domain("www.example.com", list) + end + end + + bm.report "Unlisted TLD" do + iterations.times do + PublicSuffix.domain("example.example", list) + end + end + + bm.report "Unlisted TLD (subdomain)" do + iterations.times do + PublicSuffix.domain("www.example.example", list) + end + end + + bm.report "Crazy suffix" do + iterations.times do + PublicSuffix.domain("a.b.ide.kyoto.jp", list) + end + end +end \ No newline at end of file From 392d8a8eda601645546363ea4f6a50f81953fd73 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 11 Feb 2016 20:44:59 +0100 Subject: [PATCH 038/450] Add memory benchmark Total allocated: 3919924 bytes (73424 objects) Total retained: 1962255 bytes (42857 objects) allocated memory by gem ----------------------------------- 3919884 publicsuffix-ruby/lib 40 other allocated memory by file ----------------------------------- 1697820 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb 1593784 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb 628280 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb 40 test/memory_benchmark.rb allocated memory by location ----------------------------------- 1593784 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 639254 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 628469 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:106 626800 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 198640 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 89712 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:134 78248 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:148 62720 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:149 1120 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:281 529 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:87 360 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:322 248 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:98 40 test/memory_benchmark.rb:7 allocated memory by class ----------------------------------- 2143732 String 920616 Array 463400 MatchData 311920 PublicSuffix::Rule::Normal 78288 Hash 1120 PublicSuffix::Rule::Wildcard 360 PublicSuffix::Rule::Exception 240 File 128 RubyVM::Env 80 Proc 40 PublicSuffix::List allocated objects by gem ----------------------------------- 73423 publicsuffix-ruby/lib 1 other allocated objects by file ----------------------------------- 39731 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb 17985 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb 15707 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb 1 test/memory_benchmark.rb allocated objects by location ----------------------------------- 39731 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 15670 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 11342 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 3547 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:106 3085 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 28 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:281 9 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:322 5 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:87 3 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:98 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:134 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:148 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:149 1 test/memory_benchmark.rb:7 allocated objects by class ----------------------------------- 46713 String 17215 Array 7798 PublicSuffix::Rule::Normal 1655 MatchData 28 PublicSuffix::Rule::Wildcard 9 PublicSuffix::Rule::Exception 2 Hash 1 File 1 Proc 1 PublicSuffix::List 1 RubyVM::Env retained memory by gem ----------------------------------- 1962255 publicsuffix-ruby/lib retained memory by file ----------------------------------- 963304 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb 684071 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb 314880 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb retained memory by location ----------------------------------- 963304 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 317262 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 313400 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 198640 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 89712 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:134 78248 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:148 1120 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:281 360 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:322 169 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:87 40 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:98 retained memory by class ----------------------------------- 1029751 String 540816 Array 311920 PublicSuffix::Rule::Normal 78248 Hash 1120 PublicSuffix::Rule::Wildcard 360 PublicSuffix::Rule::Exception 40 PublicSuffix::List retained objects by gem ----------------------------------- 42857 publicsuffix-ruby/lib retained objects by file ----------------------------------- 24061 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb 10924 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb 7872 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb retained objects by location ----------------------------------- 24061 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 7835 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 7835 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 3085 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 28 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:281 9 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:322 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:134 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:148 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:87 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:98 retained objects by class ----------------------------------- 25641 String 9379 Array 7798 PublicSuffix::Rule::Normal 28 PublicSuffix::Rule::Wildcard 9 PublicSuffix::Rule::Exception 1 Hash 1 PublicSuffix::List Allocated String Report ----------------------------------- 7835 "." 7835 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1800 "jp" 1798 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 1615 "" 1615 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 761 "no" 759 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 670 "s" 668 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 590 "c" 586 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 4 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 556 "museum" 554 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 509 "m" 507 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 494 "k" 492 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 484 "n" 482 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 447 "a" 443 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 4 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 446 "t" 444 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 391 "g" 389 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 389 "o" 387 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 384 "b" 380 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 4 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 384 "com" 382 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 374 "it" 372 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 364 "i" 361 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 3 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 308 "f" 306 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 300 "h" 298 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 264 "e" 262 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 261 "l" 259 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 261 "org" 259 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 254 "p" 252 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 234 "us" 232 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 217 "pl" 215 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 186 "r" 183 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 3 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 184 "net" 182 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 178 "d" 176 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 174 "gov" 172 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 162 "v" 161 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 143 "hokkaido" 143 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 136 "ru" 134 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 127 "edu" 125 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 124 "y" 122 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 122 "w" 120 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 121 "u" 119 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 92 "aero" 90 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 89 "co" 87 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 82 "ua" 80 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 77 "nagano" 77 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 76 "br" 74 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 74 "blogspot" 74 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 73 "j" 72 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:379 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 71 "saitama" 71 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 64 "fukuoka" 64 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 63 "cc" 61 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 61 "eu" 59 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 61 "tokyo" 59 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 59 "chiba" 59 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 Retained String Report ----------------------------------- 1800 "jp" 1798 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 761 "no" 759 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 556 "museum" 554 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 384 "com" 382 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 374 "it" 372 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 261 "org" 259 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 234 "us" 232 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 217 "pl" 215 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 184 "net" 182 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 174 "gov" 172 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 143 "hokkaido" 143 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 136 "ru" 134 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 127 "edu" 125 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 92 "aero" 90 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 89 "co" 87 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 82 "ua" 80 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 77 "nagano" 77 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 76 "br" 74 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 74 "blogspot" 74 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 71 "saitama" 71 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 64 "fukuoka" 64 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 63 "cc" 61 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 61 "eu" 59 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 61 "tokyo" 59 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 59 "chiba" 59 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 58 "k12" 58 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 58 "mil" 56 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 55 "lib" 55 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 54 "cn" 52 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 54 "fukushima" 54 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 54 "ibaraki" 54 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 54 "osaka" 52 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 53 "aichi" 53 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 47 "hyogo" 47 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 47 "okinawa" 45 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 47 "se" 45 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 45 "ac" 43 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 42 "bg" 40 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 40 "gifu" 40 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 40 "info" 38 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 40 "nara" 40 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 39 "yamagata" 39 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 38 "hu" 36 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 38 "shizuoka" 38 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 37 "gunma" 37 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 37 "kr" 35 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 36 "au" 34 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 36 "iwate" 36 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 36 "niigata" 36 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 35 "kyoto" 33 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:151 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:99 --- Gemfile | 1 + test/memory_benchmark.rb | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 test/memory_benchmark.rb diff --git a/Gemfile b/Gemfile index daeed7b8..dab8e418 100644 --- a/Gemfile +++ b/Gemfile @@ -5,3 +5,4 @@ gemspec gem 'minitest' gem 'minitest-reporters' gem 'coveralls', require: false +gem 'memory_profiler', require: false diff --git a/test/memory_benchmark.rb b/test/memory_benchmark.rb new file mode 100644 index 00000000..78226d2e --- /dev/null +++ b/test/memory_benchmark.rb @@ -0,0 +1,10 @@ +$:.unshift File.expand_path('../../lib', __FILE__) + +require 'memory_profiler' +require 'public_suffix' + +report = MemoryProfiler.report do + PublicSuffix::List.default +end + +report.pretty_print From f4d7549c6e16885ebb190ebbbc75d6cdcd1a161c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 11 Feb 2016 21:38:43 +0100 Subject: [PATCH 039/450] Replace regexp with String#start_with? Apparently, it's at least 50% faster. ``` ruby-2.1.5: ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0] Rehearsal --------------------------------------------------------- comment ^// 31.290000 0.240000 31.530000 ( 32.071784) nocomment ^// 39.510000 0.280000 39.790000 ( 40.576984) comment start_with? 16.880000 0.060000 16.940000 ( 17.018435) nocomment start_with? 17.560000 0.070000 17.630000 ( 17.743249) ---------------------------------------------- total: 105.890000sec user system total real comment ^// 27.480000 0.060000 27.540000 ( 27.626919) nocomment ^// 38.630000 0.270000 38.900000 ( 39.707810) comment start_with? 19.000000 0.140000 19.140000 ( 19.907291) nocomment start_with? 19.420000 0.140000 19.560000 ( 20.046664) ruby-2.2.1: ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14] Rehearsal --------------------------------------------------------- comment ^// 29.800000 0.170000 29.970000 ( 30.368608) nocomment ^// 37.420000 0.070000 37.490000 ( 37.553191) comment start_with? 16.830000 0.040000 16.870000 ( 16.916784) nocomment start_with? 19.250000 0.130000 19.380000 ( 19.783277) ---------------------------------------------- total: 103.710000sec user system total real comment ^// 32.620000 0.290000 32.910000 ( 33.561892) nocomment ^// 41.770000 0.420000 42.190000 ( 44.261902) comment start_with? 18.430000 0.110000 18.540000 ( 18.978552) nocomment start_with? 19.440000 0.160000 19.600000 ( 20.234362) ruby-2.3.0: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15] Rehearsal --------------------------------------------------------- comment ^// 28.110000 0.110000 28.220000 ( 28.391145) nocomment ^// 38.620000 0.170000 38.790000 ( 39.046173) comment start_with? 11.870000 0.040000 11.910000 ( 11.949450) nocomment start_with? 12.600000 0.040000 12.640000 ( 12.686201) ----------------------------------------------- total: 91.560000sec user system total real comment ^// 29.910000 0.200000 30.110000 ( 30.704775) nocomment ^// 38.230000 0.230000 38.460000 ( 38.846081) comment start_with? 12.570000 0.070000 12.640000 ( 12.804083) nocomment start_with? 12.530000 0.040000 12.570000 ( 12.629192) ``` BenchmarK ```ruby require_relative 'benchmark_helper' iterations = 100_000_000 comment = "// hello" nocomment = "hello" Benchmark.bmbm do |bm| bm.report "comment ^//" do iterations.times do (comment =~ %r{^//}) or exit end end bm.report "nocomment ^//" do iterations.times do !(nocomment =~ %r{^//}) or exit end end bm.report "comment start_with?" do iterations.times do comment.start_with?("//") or exit end end bm.report "nocomment start_with?" do iterations.times do !nocomment.start_with?("//") or exit end end end ``` --- lib/public_suffix/list.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 91ee5aae..5790fe2a 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -103,7 +103,7 @@ def self.parse(input, private_domains: true) if line.empty? next # strip comments - elsif line =~ %r{^//} + elsif line.start_with?("//") next # append rule else From 9e0f22a6a6ad30cafc28ec931f268393680a0067 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 11 Feb 2016 21:48:18 +0100 Subject: [PATCH 040/450] Reduce minimum memory allocation The "minimum" allocation is the one required to load the gem and parse the list into a set of rules. Initial:: ``` Total allocated: 3919924 bytes (73424 objects) Total retained: 1962255 bytes (42857 objects) ``` Current (-539153): ``` Total allocated: 3380771 bytes (69877 objects) Total retained: 1962255 bytes (42857 objects) ``` allocated memory by file ----------------------------------- ``` 1697820 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb 1593784 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb 628280 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb ``` to ``` 1593784 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb 1158667 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb 628280 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb ``` allocated memory by class ----------------------------------- ``` 2143732 String 920616 Array 463400 MatchData 311920 PublicSuffix::Rule::Normal 78288 Hash ``` to ``` 2067923 String 920616 Array 311920 PublicSuffix::Rule::Normal 78288 Hash ``` allocated objects by gem ----------------------------------- ``` 73423 publicsuffix-ruby/lib 1 other ``` to ``` 69876 publicsuffix-ruby/lib 1 other ``` allocated objects by class ----------------------------------- ``` 46713 String 17215 Array 7798 PublicSuffix::Rule::Normal 1655 MatchData 28 PublicSuffix::Rule::Wildcard 9 PublicSuffix::Rule::Exception ``` to ``` 44821 String 17215 Array 7798 PublicSuffix::Rule::Normal 28 PublicSuffix::Rule::Wildcard 9 PublicSuffix::Rule::Exception ``` It also fair to say that most of this memory is temporary memory that is deallocated once the parsing phase is completed. Next step will be to free some retained memory. --- lib/public_suffix/list.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 5790fe2a..9ffbd2ce 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -95,15 +95,18 @@ def self.default_definition # @param private_domain [Boolean] whether to ignore the private domains section. # @return [Array] def self.parse(input, private_domains: true) + comment_token = "//".freeze + private_token = "===BEGIN PRIVATE DOMAINS===".freeze + new do |list| input.each_line do |line| line.strip! - break if !private_domains && line.include?('===BEGIN PRIVATE DOMAINS===') + break if !private_domains && line.include?(private_token) # strip blank lines if line.empty? next # strip comments - elsif line.start_with?("//") + elsif line.start_with?(comment_token) next # append rule else From 000f1b2fb1874e1de6ee2d4bc884b3d9248e0254 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 11 Feb 2016 22:28:05 +0100 Subject: [PATCH 041/450] Increase performance using class type comparison The current version determines the type of a rule using the Rule#type method. However, this is useless as I can check the class of the Rule and get the same result. Moreover, the #type was memoized, causing extra memory allocation each time a never-evaluated rule was evaluated. The result was an increase of the allocation over time. From: ``` Rehearsal ------------------------------------------------------------- Top level TLD 24.480000 0.090000 24.570000 ( 24.726439) Top level TLD (subdomain) 29.150000 0.120000 29.270000 ( 29.574744) Unlisted TLD 3.760000 0.110000 3.870000 ( 4.183193) Unlisted TLD (subdomain) 3.370000 0.050000 3.420000 ( 3.485396) Crazy suffix 331.010000 1.600000 332.610000 (335.269870) -------------------------------------------------- total: 393.740000sec user system total real Top level TLD 23.370000 0.020000 23.390000 ( 23.424841) Top level TLD (subdomain) 27.080000 0.090000 27.170000 ( 27.300811) Unlisted TLD 2.670000 0.020000 2.690000 ( 2.690630) Unlisted TLD (subdomain) 2.750000 0.020000 2.770000 ( 2.777981) Crazy suffix 334.060000 1.640000 335.700000 (337.806388) ``` to ``` Rehearsal ------------------------------------------------------------- Top level TLD 27.020000 0.170000 27.190000 ( 27.582444) Top level TLD (subdomain) 30.600000 0.150000 30.750000 ( 31.012486) Unlisted TLD 2.890000 0.030000 2.920000 ( 2.925538) Unlisted TLD (subdomain) 3.020000 0.020000 3.040000 ( 3.049815) Crazy suffix 314.690000 0.920000 315.610000 (316.655812) -------------------------------------------------- total: 379.510000sec user system total real Top level TLD 23.870000 0.050000 23.920000 ( 23.989466) Top level TLD (subdomain) 29.990000 0.230000 30.220000 ( 31.102147) Unlisted TLD 2.960000 0.030000 2.990000 ( 3.006762) Unlisted TLD (subdomain) 2.760000 0.010000 2.770000 ( 2.780557) Crazy suffix 300.200000 0.740000 300.940000 (302.150041) ``` Allocation of two domain-parse executions: ``` Total allocated: 1199594 bytes (20024 objects) ``` to ``` Total allocated: 1199314 bytes (20017 objects) ``` --- lib/public_suffix/list.rb | 6 ++-- lib/public_suffix/rule.rb | 30 ++++++++----------- test/execution_profiler.rb | 14 +++++++++ ...enchmark.rb => initialization_profiler.rb} | 2 +- test/unit/rule_test.rb | 4 --- 5 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 test/execution_profiler.rb rename test/{memory_benchmark.rb => initialization_profiler.rb} (68%) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 9ffbd2ce..5cbb7b9f 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -42,6 +42,8 @@ module PublicSuffix class List include Enumerable + DEFAULT_DEFINITION_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "definitions.txt") + # Gets the default rule list. # # Initializes a new {PublicSuffix::List} parsing the content @@ -78,8 +80,6 @@ def self.reload self.clear.default end - DEFAULT_DEFINITION_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "definitions.txt") - # Reads and returns the content of the the default definition list. # # @return [String] @@ -255,7 +255,7 @@ def clear # @return [PublicSuffix::Rule::*] def find(name, default = default_rule) rules = select(name) - rules.detect { |r| r.type == :exception } || + rules.detect { |r| r.class == Rule::Exception } || rules.inject { |t,r| t.length > r.length ? t : r } || default end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index a7982ba7..162f75e5 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -122,22 +122,6 @@ def initialize(name, value = nil) @labels = Domain.domain_to_labels(@value) end - # - # The rule type name. - # - # @return [Symbol] - # - def self.type - @type ||= self.name.split("::").last.downcase.to_sym - end - - # - # @see {type} - # - def type - self.class.type - end - # Checks whether this rule is equal to other. # # @param [PublicSuffix::Rule::*] other @@ -226,14 +210,24 @@ def decompose(domain) def odiff(one, two) ii = 0 - while(ii < one.size && one[ii] == two[ii]) ii += 1 end - one[ii..one.length] end + + # DEPRECATED + + def self.type + # warn("deprecated") + end + + public + def type + self.class.type + end + end class Normal < Base diff --git a/test/execution_profiler.rb b/test/execution_profiler.rb new file mode 100644 index 00000000..5abcdd85 --- /dev/null +++ b/test/execution_profiler.rb @@ -0,0 +1,14 @@ +$:.unshift File.expand_path('../../lib', __FILE__) + +require 'memory_profiler' +require 'public_suffix' + +list = PublicSuffix::List.default + +report = MemoryProfiler.report do + PublicSuffix.domain("www.example.com") + PublicSuffix.domain("a.b.ide.kyoto.jp") +end + +report.pretty_print +# report.pretty_print(to_file: 'profiler-%s-%d.txt' % [ARGV[0], Time.now.to_i]) diff --git a/test/memory_benchmark.rb b/test/initialization_profiler.rb similarity index 68% rename from test/memory_benchmark.rb rename to test/initialization_profiler.rb index 78226d2e..743691ee 100644 --- a/test/memory_benchmark.rb +++ b/test/initialization_profiler.rb @@ -7,4 +7,4 @@ PublicSuffix::List.default end -report.pretty_print +report.pretty_print(to_file: 'profiler-%s-%d.txt' % [ARGV[0], Time.now.to_i]) diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index 937e5b36..ccbc07f5 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -48,7 +48,6 @@ def test_initialize rule = @klass.new("verona.it") assert_instance_of @klass, rule - assert_equal :base, rule.type assert_equal "verona.it", rule.name assert_equal "verona.it", rule.value assert_equal %w(verona it).reverse, rule.labels @@ -106,7 +105,6 @@ def setup def test_initialize rule = @klass.new("verona.it") assert_instance_of @klass, rule - assert_equal :normal, rule.type assert_equal "verona.it", rule.name assert_equal "verona.it", rule.value assert_equal %w(verona it).reverse, rule.labels @@ -183,7 +181,6 @@ def setup def test_initialize rule = @klass.new("!british-library.uk") assert_instance_of @klass, rule - assert_equal :exception, rule.type assert_equal "!british-library.uk", rule.name assert_equal "british-library.uk", rule.value assert_equal %w(british-library uk).reverse, rule.labels @@ -254,7 +251,6 @@ def setup def test_initialize rule = @klass.new("*.aichi.jp") assert_instance_of @klass, rule - assert_equal :wildcard, rule.type assert_equal "*.aichi.jp", rule.name assert_equal "aichi.jp", rule.value assert_equal %w(aichi jp).reverse, rule.labels From ab8315b78065c710ba14ab0531bafab863572e40 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 11 Feb 2016 23:12:12 +0100 Subject: [PATCH 042/450] Reduce dot-allocation The dot is a very common string here. Use a constant to reduce the number of allocations of the dot-string. Allocated String Report (Execution) ----------------------------------- ``` 2056 "." 2038 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 4 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:255 4 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:267 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix.rb:135 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix.rb:141 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix.rb:150 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix.rb:154 2 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:141 1800 "jp" 1797 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 3 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:255 ``` to ``` 1800 "jp" 1797 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 3 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb:249 ``` Allocated String Report (Initialization) ----------------------------------- ``` 7835 "." 7835 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1800 "jp" 1798 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:102 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:154 1615 "" 1615 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:102 ``` to ``` 1800 "jp" 1798 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/domain.rb:32 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:102 1 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:154 1615 "" 1615 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/list.rb:102 ``` The side effect is an intersting garbage-collection improvement from ``` Rehearsal ------------------------------------------------------------- Top level TLD 27.020000 0.170000 27.190000 ( 27.582444) Top level TLD (subdomain) 30.600000 0.150000 30.750000 ( 31.012486) Unlisted TLD 2.890000 0.030000 2.920000 ( 2.925538) Unlisted TLD (subdomain) 3.020000 0.020000 3.040000 ( 3.049815) Crazy suffix 314.690000 0.920000 315.610000 (316.655812) -------------------------------------------------- total: 379.510000sec user system total real Top level TLD 23.870000 0.050000 23.920000 ( 23.989466) Top level TLD (subdomain) 29.990000 0.230000 30.220000 ( 31.102147) Unlisted TLD 2.960000 0.030000 2.990000 ( 3.006762) Unlisted TLD (subdomain) 2.760000 0.010000 2.770000 ( 2.780557) Crazy suffix 300.200000 0.740000 300.940000 (302.150041) ``` to ``` Rehearsal ------------------------------------------------------------- Top level TLD 24.090000 0.100000 24.190000 ( 24.307475) Top level TLD (subdomain) 27.470000 0.120000 27.590000 ( 27.752587) Unlisted TLD 2.820000 0.030000 2.850000 ( 2.853791) Unlisted TLD (subdomain) 2.930000 0.030000 2.960000 ( 2.970755) Crazy suffix 311.020000 0.930000 311.950000 (313.731025) -------------------------------------------------- total: 369.540000sec user system total real Top level TLD 23.370000 0.020000 23.390000 ( 23.407416) Top level TLD (subdomain) 26.370000 0.080000 26.450000 ( 26.600531) Unlisted TLD 2.650000 0.010000 2.660000 ( 2.670087) Unlisted TLD (subdomain) 2.700000 0.020000 2.720000 ( 2.720060) Crazy suffix 299.800000 1.300000 301.100000 (302.758547) ``` --- lib/public_suffix.rb | 13 +++++++++---- lib/public_suffix/domain.rb | 8 ++++---- lib/public_suffix/rule.rb | 28 +++++++++++++++------------- test/initialization_profiler.rb | 3 ++- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 3c97f712..3f444de3 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -14,6 +14,11 @@ module PublicSuffix + DOT = ".".freeze + BANG = "!".freeze + STAR = "*".freeze + + # Parses +name+ and returns the {PublicSuffix::Domain} instance. # # @example Parse a valid domain @@ -132,13 +137,13 @@ def self.domain(name, list = List.default) def self.decompose(name, rule) left, right = rule.decompose(name) - parts = left.split(".") + parts = left.split(DOT) # If we have 0 parts left, there is just a tld and no domain or subdomain # If we have 1 part left, there is just a tld, domain and not subdomain # If we have 2 parts left, the last part is the domain, the other parts (combined) are the subdomain tld = right sld = parts.empty? ? nil : parts.pop - trd = parts.empty? ? nil : parts.join(".") + trd = parts.empty? ? nil : parts.join(DOT) Domain.new(tld, sld, trd) end @@ -147,11 +152,11 @@ def self.decompose(name, rule) def self.normalize(name) name = name.to_s.dup name.strip! - name.chomp!(".") + name.chomp!(DOT) name.downcase! return DomainInvalid.new("Name is blank") if name.empty? - return DomainInvalid.new("Name starts with a dot") if name.start_with?(".") + return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") name end diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index d1d1580e..221fd888 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -29,7 +29,7 @@ class Domain # # => ['uk', 'co', 'google'] # def self.domain_to_labels(domain) - domain.to_s.split(".").reverse + domain.to_s.split(DOT).reverse end attr_reader :tld, :sld, :trd @@ -105,7 +105,7 @@ def to_a # # => "www.google.com" # def name - [@trd, @sld, @tld].compact.join(".") + [@trd, @sld, @tld].compact.join(DOT) end # Returns a domain-like representation of this object @@ -138,7 +138,7 @@ def name # @return [String] def domain if domain? - [@sld, @tld].join(".") + [@sld, @tld].join(DOT) end end @@ -172,7 +172,7 @@ def domain # @return [String] def subdomain if subdomain? - [@trd, @sld, @tld].join(".") + [@trd, @sld, @tld].join(DOT) end end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 162f75e5..e29820a9 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -246,7 +246,7 @@ def initialize(name) # # @return [Array] def parts - @parts ||= @value.split(".") + @parts ||= @value.split(DOT) end # Decomposes the domain according to rule properties. @@ -258,7 +258,7 @@ def parts # The array with [trd + sld, tld]. # def decompose(domain) - domain.to_s.chomp(".") =~ /^(.*)\.(#{parts.join('\.')})$/ + domain.to_s.chomp(DOT) =~ /^(.*)\.(#{parts.join('\.')})$/ [$1, $2] end @@ -280,7 +280,7 @@ def initialize(name) # # @return [Array] def parts - @parts ||= @value.split(".") + @parts ||= @value.split(DOT) end # Overwrites the default implementation to cope with @@ -300,7 +300,7 @@ def length # The array with [trd + sld, tld]. # def decompose(domain) - domain.to_s.chomp(".") =~ /^(.*)\.(.*?\.#{parts.join('\.')})$/ + domain.to_s.chomp(DOT) =~ /^(.*)\.(.*?\.#{parts.join('\.')})$/ [$1, $2] end @@ -326,7 +326,7 @@ def initialize(name) # # @return [Array] def parts - @parts ||= @value.split(".")[1..-1] + @parts ||= @value.split(DOT)[1..-1] end # Decomposes the domain according to rule properties. @@ -338,17 +338,12 @@ def parts # The array with [trd + sld, tld]. # def decompose(domain) - domain.to_s.chomp(".") =~ /^(.*)\.(#{parts.join('\.')})$/ + domain.to_s.chomp(DOT) =~ /^(.*)\.(#{parts.join('\.')})$/ [$1, $2] end end - RULES = { - '*' => Wildcard, - '!' => Exception - } - RULES.default = Normal # Takes the +name+ of the rule, detects the specific rule class # and creates a new instance of that class. @@ -370,7 +365,14 @@ def decompose(domain) # # @return [PublicSuffix::Rule::*] A rule instance. def self.factory(name) - RULES[name.to_s[0,1]].new(name) + case name.to_s[0,1] + when STAR + Wildcard + when BANG + Exception + else + Normal + end.new(name) end # The default rule to use if no rule match. @@ -381,7 +383,7 @@ def self.factory(name) # # @return [PublicSuffix::Rule::Wildcard] The default rule. def self.default - factory("*") + factory(STAR) end end diff --git a/test/initialization_profiler.rb b/test/initialization_profiler.rb index 743691ee..3df0dd79 100644 --- a/test/initialization_profiler.rb +++ b/test/initialization_profiler.rb @@ -7,4 +7,5 @@ PublicSuffix::List.default end -report.pretty_print(to_file: 'profiler-%s-%d.txt' % [ARGV[0], Time.now.to_i]) +report.pretty_print +# report.pretty_print(to_file: 'profiler-%s-%d.txt' % [ARGV[0], Time.now.to_i]) From f4b2c201e140014e80522cf58666307983ed92ed Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 11 Feb 2016 23:16:54 +0100 Subject: [PATCH 043/450] Rule#decompose expects a domain, not a FQDN --- lib/public_suffix/rule.rb | 37 ++++++++--------------------- test/unit/rule_test.rb | 50 --------------------------------------- 2 files changed, 10 insertions(+), 77 deletions(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index e29820a9..67ec1272 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -194,10 +194,7 @@ def parts raise(NotImplementedError,"#{self.class}##{__method__} is not implemented") end - # - # @param [String, #to_s] domain - # The domain name to decompose. - # + # @param domain [String, #to_s] The domain name to decompose. # @return [Array] # # @raise [NotImplementedError] @@ -251,14 +248,10 @@ def parts # Decomposes the domain according to rule properties. # - # @param [String, #to_s] domain - # The domain name to decompose. - # - # @return [Array] - # The array with [trd + sld, tld]. - # + # @param domain [String, #to_s] The domain name to decompose. + # @return [Array] The array with [trd + sld, tld]. def decompose(domain) - domain.to_s.chomp(DOT) =~ /^(.*)\.(#{parts.join('\.')})$/ + domain.to_s =~ /^(.*)\.(#{parts.join('\.')})$/ [$1, $2] end @@ -270,7 +263,6 @@ class Wildcard < Base # # @param [String] name # The name of this rule. - # def initialize(name) super(name, name.to_s[2..-1]) end @@ -293,14 +285,10 @@ def length # Decomposes the domain according to rule properties. # - # @param [String, #to_s] domain - # The domain name to decompose. - # - # @return [Array] - # The array with [trd + sld, tld]. - # + # @param domain [String, #to_s] The domain name to decompose. + # @return [Array] The array with [trd + sld, tld]. def decompose(domain) - domain.to_s.chomp(DOT) =~ /^(.*)\.(.*?\.#{parts.join('\.')})$/ + domain.to_s =~ /^(.*)\.(.*?\.#{parts.join('\.')})$/ [$1, $2] end @@ -311,7 +299,6 @@ class Exception < Base # Initializes a new rule with +name+. # # @param [String] name The name of this rule. - # def initialize(name) super(name, name.to_s[1..-1]) end @@ -331,14 +318,10 @@ def parts # Decomposes the domain according to rule properties. # - # @param [String, #to_s] domain - # The domain name to decompose. - # - # @return [Array] - # The array with [trd + sld, tld]. - # + # @param domain [String, #to_s] The domain name to decompose. + # @return [Array] The array with [trd + sld, tld]. def decompose(domain) - domain.to_s.chomp(DOT) =~ /^(.*)\.(#{parts.join('\.')})$/ + domain.to_s =~ /^(.*)\.(#{parts.join('\.')})$/ [$1, $2] end diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index ccbc07f5..7b8446f5 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -125,24 +125,12 @@ def test_match assert !@klass.new("go.uk").match?("example.co.uk") end - def test_match_with_fully_qualified_domain_name - assert @klass.new("com").match?("com.") - assert @klass.new("com").match?("example.com.") - assert @klass.new("com").match?("www.example.com.") - end - def test_allow assert !@klass.new("com").allow?("com") assert @klass.new("com").allow?("example.com") assert @klass.new("com").allow?("www.example.com") end - def test_allow_with_fully_qualified_domain_name - assert !@klass.new("com").allow?("com.") - assert @klass.new("com").allow?("example.com.") - assert @klass.new("com").allow?("www.example.com.") - end - def test_length assert_equal 1, @klass.new("com").length @@ -162,12 +150,6 @@ def test_decompose assert_equal %w( foo.example com ), @klass.new("com").decompose("foo.example.com") end - def test_decompose_with_fully_qualified_domain_name - assert_equal [nil, nil], @klass.new("com").decompose("com.") - assert_equal %w( example com ), @klass.new("com").decompose("example.com.") - assert_equal %w( foo.example com ), @klass.new("com").decompose("foo.example.com.") - end - end @@ -196,25 +178,12 @@ def test_match assert !@klass.new("!british-library.uk").match?("example.co.uk") end - def test_match_with_fully_qualified_domain_name - assert @klass.new("!uk").match?("uk.") - assert @klass.new("!uk").match?("co.uk.") - assert @klass.new("!uk").match?("example.co.uk.") - assert @klass.new("!uk").match?("www.example.co.uk.") - end - def test_allow assert !@klass.new("!british-library.uk").allow?("uk") assert @klass.new("!british-library.uk").allow?("british-library.uk") assert @klass.new("!british-library.uk").allow?("www.british-library.uk") end - def test_allow_with_fully_qualified_domain_name - assert !@klass.new("!british-library.uk").allow?("uk.") - assert @klass.new("!british-library.uk").allow?("british-library.uk.") - assert @klass.new("!british-library.uk").allow?("www.british-library.uk.") - end - def test_length assert_equal 1, @klass.new("!british-library.uk").length @@ -232,12 +201,6 @@ def test_decompose assert_equal %w( foo.british-library uk ), @klass.new("!british-library.uk").decompose("foo.british-library.uk") end - def test_decompose_with_fully_qualified_domain_name - assert_equal [nil, nil], @klass.new("!british-library.uk").decompose("uk.") - assert_equal %w( british-library uk ), @klass.new("!british-library.uk").decompose("british-library.uk.") - assert_equal %w( foo.british-library uk ), @klass.new("!british-library.uk").decompose("foo.british-library.uk.") - end - end @@ -278,13 +241,6 @@ def test_allow assert @klass.new("*.uk").allow?("www.example.co.uk") end - def test_allow_with_fully_qualified_domain_name - assert !@klass.new("*.uk").allow?("uk.") - assert !@klass.new("*.uk").allow?("co.uk.") - assert @klass.new("*.uk").allow?("example.co.uk.") - assert @klass.new("*.uk").allow?("www.example.co.uk.") - end - def test_length assert_equal 2, @klass.new("*.uk").length @@ -302,10 +258,4 @@ def test_decompose assert_equal %w( foo.google co.uk ), @klass.new("*.uk").decompose("foo.google.co.uk") end - def test_decompose_with_fully_qualified_domain_name - assert_equal [nil, nil], @klass.new("*.do").decompose("nic.do.") - assert_equal %w( google co.uk ), @klass.new("*.uk").decompose("google.co.uk.") - assert_equal %w( foo.google co.uk ), @klass.new("*.uk").decompose("foo.google.co.uk.") - end - end From d6986c6221d057acfb20e982292cdd9755b0292a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 11 Feb 2016 23:45:18 +0100 Subject: [PATCH 044/450] Remove useless double loop This increases performances from ``` Rehearsal ------------------------------------------------------------- Top level TLD 24.090000 0.100000 24.190000 ( 24.307475) Top level TLD (subdomain) 27.470000 0.120000 27.590000 ( 27.752587) Unlisted TLD 2.820000 0.030000 2.850000 ( 2.853791) Unlisted TLD (subdomain) 2.930000 0.030000 2.960000 ( 2.970755) Crazy suffix 311.020000 0.930000 311.950000 (313.731025) -------------------------------------------------- total: 369.540000sec user system total real Top level TLD 23.370000 0.020000 23.390000 ( 23.407416) Top level TLD (subdomain) 26.370000 0.080000 26.450000 ( 26.600531) Unlisted TLD 2.650000 0.010000 2.660000 ( 2.670087) Unlisted TLD (subdomain) 2.700000 0.020000 2.720000 ( 2.720060) Crazy suffix 299.800000 1.300000 301.100000 (302.758547) ``` to ``` Rehearsal ------------------------------------------------------------- Top level TLD 22.980000 0.120000 23.100000 ( 23.271019) Top level TLD (subdomain) 25.450000 0.040000 25.490000 ( 25.553930) Unlisted TLD 2.640000 0.030000 2.670000 ( 2.668687) Unlisted TLD (subdomain) 2.770000 0.030000 2.800000 ( 2.802351) Crazy suffix 308.790000 1.480000 310.270000 (312.584280) -------------------------------------------------- total: 364.330000sec user system total real Top level TLD 22.500000 0.040000 22.540000 ( 22.609775) Top level TLD (subdomain) 24.870000 0.040000 24.910000 ( 24.935070) Unlisted TLD 2.560000 0.030000 2.590000 ( 2.587339) Unlisted TLD (subdomain) 2.650000 0.030000 2.680000 ( 2.689870) Crazy suffix 292.820000 0.980000 293.800000 (294.857483) ``` --- lib/public_suffix/list.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 5cbb7b9f..14260391 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -239,7 +239,7 @@ def clear # - An exclamation mark (!) at the start of a rule marks an exception to a previous wildcard rule. # An exception rule takes priority over any other matching rule. # - # == Algorithm description + # ## Algorithm description # # 1. Match domain against all rules and take note of the matching ones. # 2. If no rules match, the prevailing rule is "*". @@ -250,14 +250,15 @@ def clear # which directly match the labels of the prevailing rule (joined by dots). # 7. The registered domain is the public suffix plus one additional label. # - # @param [String, #to_s] name The domain name. + # @param name [String, #to_s] The domain name. # @param [PublicSuffix::Rule::*] default The default rule to return in case no rule matches. # @return [PublicSuffix::Rule::*] def find(name, default = default_rule) - rules = select(name) - rules.detect { |r| r.class == Rule::Exception } || - rules.inject { |t,r| t.length > r.length ? t : r } || - default + rule = select(name).inject do |l, r| + return r if r.class == Rule::Exception + l.length > r.length ? l : r + end + rule || default end # Selects all the rules matching given domain. From 487af543e73f9e850c58d70bdaac543e5a9318bb Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 12 Feb 2016 09:21:31 +0100 Subject: [PATCH 045/450] Reduce memory retention by not storing the list twice The value and the name are equivalent. It's always possible to reconstruct the original definition from the value. --- lib/public_suffix/rule.rb | 81 ++++++++++++++++++++++++--------------- test/unit/rule_test.rb | 9 +++-- 2 files changed, 56 insertions(+), 34 deletions(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 67ec1272..1a7c53cd 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -106,19 +106,14 @@ module Rule # class Base - attr_reader :name, :value, :labels + attr_reader :value, :labels # Initializes a new rule with name and value. # If value is +nil+, name also becomes the value for this rule. # - # @param [String] name - # The name of the rule - # @param [String] value - # The value of the rule. If nil, defaults to +name+. - # - def initialize(name, value = nil) - @name = name.to_s - @value = value || @name + # @param value [String] the value of the rule + def initialize(value) + @value = value.to_s @labels = Domain.domain_to_labels(@value) end @@ -131,9 +126,8 @@ def initialize(name, value = nil) # Returns true if this rule and other are instances of the same class # and has the same value, false otherwise. def ==(other) - return false unless other.is_a?(self.class) - self.equal?(other) || - self.name == other.name + self.equal?(other) || + (self.class == other.class && self.value == other.value) end alias :eql? :== @@ -229,13 +223,11 @@ def type class Normal < Base - # Initializes a new rule with +name+. - # - # @param [String] name - # The name of this rule. + # Initializes a new rule from +definition+. # - def initialize(name) - super(name, name) + # @param definition [String] the rule as defined in the PSL + def initialize(definition) + super(definition) end # dot-split rule value and returns all rule parts @@ -246,12 +238,20 @@ def parts @parts ||= @value.split(DOT) end + # Gets the original rule definition. + # + # @return [String] The rule definition. + def rule + value + end + # Decomposes the domain according to rule properties. # # @param domain [String, #to_s] The domain name to decompose. # @return [Array] The array with [trd + sld, tld]. def decompose(domain) - domain.to_s =~ /^(.*)\.(#{parts.join('\.')})$/ + suffix = parts.join('\.') + domain.to_s =~ /^(.*)\.(#{suffix})$/ [$1, $2] end @@ -259,12 +259,14 @@ def decompose(domain) class Wildcard < Base - # Initializes a new rule with +name+. + # Initializes a new rule from +definition+. + # + # The wildcard "*" is removed from the value, as it's common + # for each wildcard rule. # - # @param [String] name - # The name of this rule. - def initialize(name) - super(name, name.to_s[2..-1]) + # @param definition [String] the rule as defined in the PSL + def initialize(definition) + super(definition.to_s[2..-1]) end # dot-split rule value and returns all rule parts @@ -283,12 +285,20 @@ def length parts.length + 1 # * counts as 1 end + # Gets the original rule definition. + # + # @return [String] The rule definition. + def rule + value == "" ? STAR : STAR + DOT + value + end + # Decomposes the domain according to rule properties. # # @param domain [String, #to_s] The domain name to decompose. # @return [Array] The array with [trd + sld, tld]. def decompose(domain) - domain.to_s =~ /^(.*)\.(.*?\.#{parts.join('\.')})$/ + suffix = (['.*?'] + parts).join('\.') + domain.to_s =~ /^(.*)\.(#{suffix})$/ [$1, $2] end @@ -296,11 +306,14 @@ def decompose(domain) class Exception < Base - # Initializes a new rule with +name+. + # Initializes a new rule from +definition+. + # + # The bang ! is removed from the value, as it's common + # for each wildcard rule. # - # @param [String] name The name of this rule. - def initialize(name) - super(name, name.to_s[1..-1]) + # @param definition [String] the rule as defined in the PSL + def initialize(definition) + super(definition.to_s[1..-1]) end # dot-split rule value and returns all rule parts @@ -316,12 +329,20 @@ def parts @parts ||= @value.split(DOT)[1..-1] end + # Gets the original rule definition. + # + # @return [String] The rule definition. + def rule + BANG + value + end + # Decomposes the domain according to rule properties. # # @param domain [String, #to_s] The domain name to decompose. # @return [Array] The array with [trd + sld, tld]. def decompose(domain) - domain.to_s =~ /^(.*)\.(#{parts.join('\.')})$/ + suffix = parts.join('\.') + domain.to_s =~ /^(.*)\.(#{suffix})$/ [$1, $2] end diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index 7b8446f5..dd59b142 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -48,11 +48,11 @@ def test_initialize rule = @klass.new("verona.it") assert_instance_of @klass, rule - assert_equal "verona.it", rule.name assert_equal "verona.it", rule.value assert_equal %w(verona it).reverse, rule.labels end + def test_equality_with_self rule = PublicSuffix::Rule::Base.new("foo") assert_equal rule, rule @@ -61,6 +61,7 @@ def test_equality_with_self def test_equality_with_internals assert_equal @klass.new("foo"), @klass.new("foo") assert_not_equal @klass.new("foo"), @klass.new("bar") + assert_not_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("foo") assert_not_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("bar") assert_not_equal @klass.new("foo"), Class.new { def name; foo; end }.new end @@ -105,8 +106,8 @@ def setup def test_initialize rule = @klass.new("verona.it") assert_instance_of @klass, rule - assert_equal "verona.it", rule.name assert_equal "verona.it", rule.value + assert_equal "verona.it", rule.rule assert_equal %w(verona it).reverse, rule.labels end @@ -163,8 +164,8 @@ def setup def test_initialize rule = @klass.new("!british-library.uk") assert_instance_of @klass, rule - assert_equal "!british-library.uk", rule.name assert_equal "british-library.uk", rule.value + assert_equal "!british-library.uk", rule.rule assert_equal %w(british-library uk).reverse, rule.labels end @@ -214,8 +215,8 @@ def setup def test_initialize rule = @klass.new("*.aichi.jp") assert_instance_of @klass, rule - assert_equal "*.aichi.jp", rule.name assert_equal "aichi.jp", rule.value + assert_equal "*.aichi.jp", rule.rule assert_equal %w(aichi jp).reverse, rule.labels end From bc19278f6a90cc1e1d8912f5775cf556f0c295e6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 12 Feb 2016 10:13:59 +0100 Subject: [PATCH 046/450] Drastically reduce memory retemption and allocation Store just one single, normalized representation of the rule. The parts are no longer required (I can construct them) and the length (which is required for comparison) is memoized at runtime (1 fixnum instead of storing the entire parts array + the original labels). == Memory ==== Initialization Memory usage changed from: ``` Total allocated: 3380731 bytes (69877 objects) Total retained: 1962255 bytes (42857 objects) ``` to ``` Total allocated: 2690507 bytes (54206 objects) Total retained: 997546 bytes (18760 objects) ``` Allocated objects changed from: ``` 69876 publicsuffix-ruby/lib ``` to ``` 54205 publicsuffix-ruby/lib ``` Retained memory is less than 50% from ``` 1962255 publicsuffix-ruby/lib ``` to ``` 997546 publicsuffix-ruby/lib ``` ==== Execution The execution memory allocation is now insanely lower, from: ``` Total allocated: 1116834 bytes (17955 objects) Total retained: 440 bytes (11 objects) ``` to ``` Total allocated: 44554 bytes (129 objects) Total retained: 0 bytes (0 objects) ``` The retained memory was entirely `rule` memoization ``` retained memory by file ----------------------------------- 440 /Users/weppos/Code/publicsuffix-ruby/lib/public_suffix/rule.rb ``` and now the `rule` no longer needs such artifacts ``` retained memory by file ----------------------------------- NO DATA ``` == Benchmarks The benchmark results are simply incredible: ``` Rehearsal ------------------------------------------------------------- Top level TLD 5.990000 0.040000 6.030000 ( 6.106507) Top level TLD (subdomain) 6.880000 0.070000 6.950000 ( 7.349622) Unlisted TLD 2.440000 0.020000 2.460000 ( 2.466184) Unlisted TLD (subdomain) 2.390000 0.010000 2.400000 ( 2.397927) Crazy suffix 31.400000 0.250000 31.650000 ( 32.835799) --------------------------------------------------- total: 49.490000sec user system total real Top level TLD 7.500000 0.070000 7.570000 ( 8.025757) Top level TLD (subdomain) 6.810000 0.040000 6.850000 ( 6.970570) Unlisted TLD 2.660000 0.020000 2.680000 ( 2.705487) Unlisted TLD (subdomain) 2.730000 0.020000 2.750000 ( 2.766946) Crazy suffix 28.750000 0.180000 28.930000 ( 29.039220) ``` it was ``` Rehearsal ------------------------------------------------------------- Top level TLD 22.980000 0.120000 23.100000 ( 23.271019) Top level TLD (subdomain) 25.450000 0.040000 25.490000 ( 25.553930) Unlisted TLD 2.640000 0.030000 2.670000 ( 2.668687) Unlisted TLD (subdomain) 2.770000 0.030000 2.800000 ( 2.802351) Crazy suffix 308.790000 1.480000 310.270000 (312.584280) -------------------------------------------------- total: 364.330000sec user system total real Top level TLD 22.500000 0.040000 22.540000 ( 22.609775) Top level TLD (subdomain) 24.870000 0.040000 24.910000 ( 24.935070) Unlisted TLD 2.560000 0.030000 2.590000 ( 2.587339) Unlisted TLD (subdomain) 2.650000 0.030000 2.680000 ( 2.689870) Crazy suffix 292.820000 0.980000 293.800000 (294.857483) ``` --- lib/public_suffix/domain.rb | 37 +++++++--- lib/public_suffix/list.rb | 12 ++- lib/public_suffix/rule.rb | 141 ++++++++++++++++++------------------ test/unit/domain_test.rb | 16 ++-- test/unit/rule_test.rb | 12 --- 5 files changed, 110 insertions(+), 108 deletions(-) diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 221fd888..0b250cf8 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -10,28 +10,43 @@ module PublicSuffix class Domain - # Splits a string into its possible labels - # as a domain in reverse order from the input string. + # Splits a string into the dot-separated parts and reverse them. # - # The input is not validated, but it is assumed to be a valid domain. + # The input is not validated, but it is assumed to be a valid domain name. # - # @param [String, #to_s] domain - # The domain name to split. + # @example + # + # name_to_labels('example.com') + # # => ['com', 'example'] # + # name_to_labels('example.co.uk') + # # => ['uk', 'co', 'example'] + # + # @param name [String, #to_s] The domain name to split. # @return [Array] + def self.name_to_labels(name) + name_to_parts(name).reverse + end + + # Splits a string into the dot-separated parts. + # + # The input is not validated, but it is assumed to be a valid domain name. # # @example # - # domain_to_labels('google.com') - # # => ['com', 'google'] + # name_to_parts('example.com') + # # => ['example', 'com'] # - # domain_to_labels('google.co.uk') - # # => ['uk', 'co', 'google'] + # name_to_parts('example.co.uk') + # # => ['example', 'co', 'uk'] # - def self.domain_to_labels(domain) - domain.to_s.split(DOT).reverse + # @param name [String, #to_s] The domain name to split. + # @return [Array] + def self.name_to_parts(name) + name.to_s.split(DOT) end + attr_reader :tld, :sld, :trd # Creates and returns a new {PublicSuffix::Domain} instance. diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 14260391..ae2041b8 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -149,12 +149,10 @@ def initialize(&block) # select we can avoid mapping every single rule against the candidate domain. def create_index! @indexes = {} - @rules.map { |l| l.labels.first }.each_with_index do |elm, inx| - if !@indexes.has_key?(elm) - @indexes[elm] = [inx] - else - @indexes[elm] << inx - end + @rules.each_with_index do |rule, index| + tld = Domain.name_to_parts(rule.value).last + @indexes[tld] ||= [] + @indexes[tld] << index end end @@ -270,7 +268,7 @@ def find(name, default = default_rule) # @return [Array] def select(name) name = name.to_s - indices = (@indexes[Domain.domain_to_labels(name).first] || []) + indices = (@indexes[Domain.name_to_parts(name).last] || []) @rules.values_at(*indices).select { |rule| rule.match?(name) } end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 1a7c53cd..654cdde8 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -39,20 +39,13 @@ module Rule # # A rule is composed by 4 properties: # - # name - The name of the rule, corresponding to the rule definition - # in the public suffix list - # value - The value, a normalized version of the rule name. + # value - A normalized version of the rule name. # The normalization process depends on rule tpe. - # type - The rule type (:normal, :wildcard, :exception) - # labels - The canonicalized rule name # # Here's an example # # PublicSuffix::Rule.factory("*.google.com") # # # @@ -106,7 +99,7 @@ module Rule # class Base - attr_reader :value, :labels + attr_reader :value # Initializes a new rule with name and value. # If value is +nil+, name also becomes the value for this rule. @@ -114,7 +107,6 @@ class Base # @param value [String] the value of the rule def initialize(value) @value = value.to_s - @labels = Domain.domain_to_labels(@value) end # Checks whether this rule is equal to other. @@ -133,11 +125,6 @@ def ==(other) # Checks if this rule matches +domain+. # - # @param [String, #to_s] domain - # The domain name to check. - # - # @return [Boolean] - # # @example # rule = Rule.factory("com") # # # @@ -146,10 +133,14 @@ def ==(other) # rule.match?("example.net") # # => false # - def match?(domain) - l1 = labels - l2 = Domain.domain_to_labels(domain) - odiff(l1, l2).empty? + # @param name [String, #to_s] The domain name to check. + # @return [Boolean] + def match?(name) + # Note: it works because of the assumption there are no + # rules like foo.*.com. If the assumption is incorrect, + # we need to properly walk the input and skip parts according + # to wildcard component. + name.end_with?(value) end # Checks if this rule allows +domain+. @@ -171,32 +162,25 @@ def allow?(domain) !decompose(domain).last.nil? end - # Gets the length of this rule for comparison. - # The length usually matches the number of rule +parts+. - # - # Subclasses might actually override this method. - # - # @return [Integer] The number of parts. - def length - parts.length + # @abstract + def parts + raise NotImplementedError end - # - # @raise [NotImplementedError] # @abstract - def parts - raise(NotImplementedError,"#{self.class}##{__method__} is not implemented") + def length + raise NotImplementedError end # @param domain [String, #to_s] The domain name to decompose. # @return [Array] # - # @raise [NotImplementedError] # @abstract def decompose(domain) - raise(NotImplementedError,"#{self.class}##{__method__} is not implemented") + raise NotImplementedError end + private def odiff(one, two) @@ -230,14 +214,6 @@ def initialize(definition) super(definition) end - # dot-split rule value and returns all rule parts - # in the order they appear in the value. - # - # @return [Array] - def parts - @parts ||= @value.split(DOT) - end - # Gets the original rule definition. # # @return [String] The rule definition. @@ -255,6 +231,22 @@ def decompose(domain) [$1, $2] end + # dot-split rule value and returns all rule parts + # in the order they appear in the value. + # + # @return [Array] + def parts + @value.split(DOT) + end + + # Gets the length of this rule for comparison, + # represented by the number of dot-separated parts in the rule. + # + # @return [Integer] The length of the rule. + def length + @length ||= parts.length + end + end class Wildcard < Base @@ -269,22 +261,6 @@ def initialize(definition) super(definition.to_s[2..-1]) end - # dot-split rule value and returns all rule parts - # in the order they appear in the value. - # - # @return [Array] - def parts - @parts ||= @value.split(DOT) - end - - # Overwrites the default implementation to cope with - # the +*+ char. - # - # @return [Integer] The number of parts. - def length - parts.length + 1 # * counts as 1 - end - # Gets the original rule definition. # # @return [String] The rule definition. @@ -302,6 +278,23 @@ def decompose(domain) [$1, $2] end + # dot-split rule value and returns all rule parts + # in the order they appear in the value. + # + # @return [Array] + def parts + @value.split(DOT) + end + + # Gets the length of this rule for comparison, + # represented by the number of dot-separated parts in the rule + # plus 1 for the *. + # + # @return [Integer] The length of the rule. + def length + @length ||= parts.length + 1 # * counts as 1 + end + end class Exception < Base @@ -316,19 +309,6 @@ def initialize(definition) super(definition.to_s[1..-1]) end - # dot-split rule value and returns all rule parts - # in the order they appear in the value. - # The leftmost label is not considered a label. - # - # See http://publicsuffix.org/format/: - # If the prevailing rule is a exception rule, - # modify it by removing the leftmost label. - # - # @return [Array] - def parts - @parts ||= @value.split(DOT)[1..-1] - end - # Gets the original rule definition. # # @return [String] The rule definition. @@ -346,6 +326,27 @@ def decompose(domain) [$1, $2] end + # dot-split rule value and returns all rule parts + # in the order they appear in the value. + # The leftmost label is not considered a label. + # + # See http://publicsuffix.org/format/: + # If the prevailing rule is a exception rule, + # modify it by removing the leftmost label. + # + # @return [Array] + def parts + @value.split(DOT)[1..-1] + end + + # Gets the length of this rule for comparison, + # represented by the number of dot-separated parts in the rule. + # + # @return [Integer] The length of the rule. + def length + @length ||= parts.length + end + end diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index a21b2f8b..83627658 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -7,25 +7,25 @@ def setup end # Tokenizes given input into labels. - def test_self_domain_to_labels + def test_self_name_to_labels assert_equal %w( com live spaces someone ), - PublicSuffix::Domain.domain_to_labels("someone.spaces.live.com") + PublicSuffix::Domain.name_to_labels("someone.spaces.live.com") assert_equal %w( com zoho wiki leontina23samiko ), - PublicSuffix::Domain.domain_to_labels("leontina23samiko.wiki.zoho.com") + PublicSuffix::Domain.name_to_labels("leontina23samiko.wiki.zoho.com") end # Converts input into String. - def test_self_domain_to_labels_converts_input_to_string + def test_self_name_to_labels_converts_input_to_string assert_equal %w( com live spaces someone ), - PublicSuffix::Domain.domain_to_labels(:"someone.spaces.live.com") + PublicSuffix::Domain.name_to_labels(:"someone.spaces.live.com") end # Ignores trailing . - def test_self_domain_to_labels_ignores_trailing_dot + def test_self_name_to_labels_ignores_trailing_dot assert_equal %w( com live spaces someone ), - PublicSuffix::Domain.domain_to_labels("someone.spaces.live.com") + PublicSuffix::Domain.name_to_labels("someone.spaces.live.com") assert_equal %w( com live spaces someone ), - PublicSuffix::Domain.domain_to_labels(:"someone.spaces.live.com") + PublicSuffix::Domain.name_to_labels(:"someone.spaces.live.com") end diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index dd59b142..8e3cac63 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -47,9 +47,7 @@ def setup def test_initialize rule = @klass.new("verona.it") assert_instance_of @klass, rule - assert_equal "verona.it", rule.value - assert_equal %w(verona it).reverse, rule.labels end @@ -108,7 +106,6 @@ def test_initialize assert_instance_of @klass, rule assert_equal "verona.it", rule.value assert_equal "verona.it", rule.rule - assert_equal %w(verona it).reverse, rule.labels end @@ -166,7 +163,6 @@ def test_initialize assert_instance_of @klass, rule assert_equal "british-library.uk", rule.value assert_equal "!british-library.uk", rule.rule - assert_equal %w(british-library uk).reverse, rule.labels end @@ -217,7 +213,6 @@ def test_initialize assert_instance_of @klass, rule assert_equal "aichi.jp", rule.value assert_equal "*.aichi.jp", rule.rule - assert_equal %w(aichi jp).reverse, rule.labels end @@ -228,13 +223,6 @@ def test_match assert !@klass.new("*.go.uk").match?("example.co.uk") end - def test_match_with_fully_qualified_domain_name - assert @klass.new("*.uk").match?("uk.") - assert @klass.new("*.uk").match?("co.uk.") - assert @klass.new("*.uk").match?("example.co.uk.") - assert @klass.new("*.uk").match?("www.example.co.uk.") - end - def test_allow assert !@klass.new("*.uk").allow?("uk") assert !@klass.new("*.uk").allow?("co.uk") From eb98e7538267f91628281e87c3e413575b01fb2c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 12 Feb 2016 10:25:52 +0100 Subject: [PATCH 047/450] memory_profiler requires Ruby >= 2.1 --- Gemfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index dab8e418..c1b64eac 100644 --- a/Gemfile +++ b/Gemfile @@ -5,4 +5,7 @@ gemspec gem 'minitest' gem 'minitest-reporters' gem 'coveralls', require: false -gem 'memory_profiler', require: false + +if !RUBY_VERSION.start_with?("2.0") + gem 'memory_profiler', require: false +end From 4ca165b578472b4d1d22743bd9fdd34678d0ce8c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 12 Feb 2016 10:21:10 +0100 Subject: [PATCH 048/450] Removed futile utility helpers Removed futile utility helpers such as `Domain#rule`, `Domain#is_a_domain?`, `Domain#is_a_subdomain?`, `Domain#valid?`. You can easily obtain the same result by having a custom method that reconstructs the logic, and/or calling `PublicSuffix.{domain|parse}(domain.to_s)`. --- CHANGELOG.md | 4 +- lib/public_suffix/domain.rb | 110 ------------------------------------ test/unit/domain_test.rb | 58 ------------------- 3 files changed, 3 insertions(+), 169 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2024454e..a9a83549 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,9 @@ - CHANGED: Input with leading dot is invalid per PSL acceptance tests -- CHANGED: Remove private_domains class-level attribute. It is replaced by the `private_domains: false` option in the list parse method. +- CHANGED: Removed private_domains class-level attribute. It is replaced by the `private_domains: false` option in the list parse method. + +- REMOVED: Removed futile utility helpers such as Domain#rule, Domain#is_a_domain?, Domain#is_a_subdomain?, Domain#valid?. You can easily obtain the same result by having a custom method that reconstructs the logic, and/or calling `PublicSuffix.{domain|parse}(domain.to_s)`. #### Release 1.5.3 diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index d1d1580e..ba1d6d79 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -176,16 +176,6 @@ def subdomain end end - # Returns the rule matching this domain - # in the default {PublicSuffix::List}. - # - # @return [PublicSuffix::Rule::Base, nil] - # The rule instance a rule matches current domain, - # nil if no rule is found. - def rule - List.default.find(name) - end - # Checks whether self looks like a domain. # # This method doesn't actually validate the domain. @@ -248,106 +238,6 @@ def subdomain? !(@tld.nil? || @sld.nil? || @trd.nil?) end - # Checks whether self is exclusively a domain, - # and not a subdomain. - # - # @return [Boolean] - def is_a_domain? - domain? && !subdomain? - end - - # Checks whether self is exclusively a subdomain. - # - # @return [Boolean] - def is_a_subdomain? - subdomain? - end - - # Checks whether self is assigned and allowed - # according to default {List}. - # - # This method triggers a new rule lookup in the default {List}, - # which is a quite intensive task. - # - # @return [Boolean] - # - # @example Check a valid domain - # Domain.new("com", "example").valid? - # # => true - # - # @example Check a valid subdomain - # Domain.new("com", "example", "www").valid? - # # => true - # - # @example Check a not-listed rule - # Domain.new("tldnotlisted", "example").valid? - # # => true - # - # @example Check a not-allowed domain - # Domain.new("do", "example").valid? - # # => false - # Domain.new("do", "example", "www").valid? - # # => true - # - def valid? - r = rule - !r.nil? && r.allow?(name) - end - - # Checks whether self looks like a domain and validates - # according to default {List}. - # - # @return [Boolean] - # - # @example - # - # PublicSuffix::Domain.new("com").domain? - # # => false - # - # PublicSuffix::Domain.new("com", "example").domain? - # # => true - # - # PublicSuffix::Domain.new("com", "example", "www").domain? - # # => true - # - # # This is an invalid domain - # PublicSuffix::Domain.new("jp", "ac").false? - # # => true - # - # @see #domain? - # @see #valid? - # - def valid_domain? - domain? && valid? - end - - # Checks whether self looks like a subdomain and validates - # according to default {List}. - # - # @return [Boolean] - # - # @example - # - # PublicSuffix::Domain.new("com").subdomain? - # # => false - # - # PublicSuffix::Domain.new("com", "google").subdomain? - # # => false - # - # PublicSuffix::Domain.new("com", "google", "www").subdomain? - # # => true - # - # # This is an invalid domain - # PublicSuffix::Domain.new("jp", "kobe", "c").subdomain? - # # => false - # - # @see #subdomain? - # @see #valid? - # - def valid_subdomain? - subdomain? && valid? - end - end end diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index a21b2f8b..6e13e9b3 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -101,13 +101,6 @@ def test_subdomain assert_equal "www.google.tldnotlisted", @klass.new("tldnotlisted", "google", "www").subdomain end - def test_rule - assert_equal PublicSuffix::Rule.default, @klass.new("tldnotlisted").rule - assert_equal PublicSuffix::Rule.factory("com"), @klass.new("com").rule - assert_equal PublicSuffix::Rule.factory("com"), @klass.new("com", "google").rule - assert_equal PublicSuffix::Rule.factory("com"), @klass.new("com", "google", "www").rule - end - def test_domain_question assert !@klass.new("com").domain? @@ -116,55 +109,4 @@ def test_domain_question assert @klass.new("tldnotlisted", "example").domain? end - def test_subdomain_question - assert !@klass.new("com").subdomain? - assert !@klass.new("com", "example").subdomain? - assert @klass.new("com", "example", "www").subdomain? - assert @klass.new("tldnotlisted", "example", "www").subdomain? - end - - def test_is_a_domain_question - assert !@klass.new("com").is_a_domain? - assert @klass.new("com", "example").is_a_domain? - assert !@klass.new("com", "example", "www").is_a_domain? - assert @klass.new("tldnotlisted", "example").is_a_domain? - end - - def test_is_a_subdomain_question - assert !@klass.new("com").is_a_subdomain? - assert !@klass.new("com", "google").is_a_subdomain? - assert @klass.new("com", "google", "www").is_a_subdomain? - assert @klass.new("tldnotlisted", "example", "www").is_a_subdomain? - end - - def test_valid_question - assert !@klass.new("com").valid? - assert @klass.new("com", "example").valid? - assert @klass.new("com", "example", "www").valid? - - # not-listed - assert !@klass.new("tldnotlisted").valid? - assert @klass.new("tldnotlisted", "example").valid? - assert @klass.new("tldnotlisted", "example", "www").valid? - - # not-allowed - assert !@klass.new("ke").valid? - assert !@klass.new("ke", "example").valid? - assert @klass.new("ke", "example", "www").valid? - end - - def test_valid_domain_question - assert !@klass.new("com").valid_domain? - assert @klass.new("com", "example").valid_domain? - assert @klass.new("com", "example", "www").valid_domain? - assert @klass.new("tldnotlisted", "example").valid_domain? - end - - def test_valid_subdomain_question - assert !@klass.new("com").valid_subdomain? - assert !@klass.new("com", "example").valid_subdomain? - assert @klass.new("com", "example", "www").valid_subdomain? - assert @klass.new("tldnotlisted", "example", "www").valid_subdomain? - end - end From 5c68f7d8a3cdb3ccbf4e0be5d49350d9f3039dd4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 12 Feb 2016 10:51:48 +0100 Subject: [PATCH 049/450] Fix formatting --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9a83549..fd43f11c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,13 +13,13 @@ - CHANGED: If the suffix is now listed, then the prevaling rule is "*" as defined by the PSL algorithm (GH-91) -- CHANGED: Input validation is performed only if you call PublicSuffix.parse or PublicSuffix.list +- CHANGED: Input validation is performed only if you call `PublicSuffix.parse` or `PublicSuffix.list` - CHANGED: Input with leading dot is invalid per PSL acceptance tests -- CHANGED: Removed private_domains class-level attribute. It is replaced by the `private_domains: false` option in the list parse method. +- CHANGED: Removed `private_domains` class-level attribute. It is replaced by the `private_domains: false` option in the list parse method. -- REMOVED: Removed futile utility helpers such as Domain#rule, Domain#is_a_domain?, Domain#is_a_subdomain?, Domain#valid?. You can easily obtain the same result by having a custom method that reconstructs the logic, and/or calling `PublicSuffix.{domain|parse}(domain.to_s)`. +- REMOVED: Removed futile utility helpers such as `Domain#rule`, `Domain#is_a_domain?`, `Domain#is_a_subdomain?`, `Domain#valid?`. You can easily obtain the same result by having a custom method that reconstructs the logic, and/or calling `PublicSuffix.{domain|parse}(domain.to_s)`. #### Release 1.5.3 From 0c56b296f1bd6b2e8d0c72cb022d81a876a7654f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 12 Feb 2016 11:16:08 +0100 Subject: [PATCH 050/450] CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2024454e..96b265c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ - NEW: Added PublicSuffix.domain # => sld.tld +- CHANGED: Considerable performance improvements (GH-92) + - CHANGED: Updated definitions. - CHANGED: PublicSuffix::List.default_definition no longer memoizes the data (no need to keep it in memory as the list is already memoized) Also the method now returns a String, instead of a File pointer (that was never closed). From 2173dbe74967a746637f1aa12923864565ad033c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 12 Feb 2016 18:42:13 +0100 Subject: [PATCH 051/450] Remove deprecated methods I'll issue a deprecation warning in the 1.x version --- lib/public_suffix/list.rb | 9 --------- lib/public_suffix/rule.rb | 12 ------------ test/unit/list_test.rb | 24 ++++++++---------------- 3 files changed, 8 insertions(+), 37 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index ae2041b8..e0087249 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -72,14 +72,6 @@ def self.clear self end - # Resets the default rule list and reinitialize it - # parsing the content of {PublicSuffix::List.default_definition}. - # - # @return [PublicSuffix::List] - def self.reload - self.clear.default - end - # Reads and returns the content of the the default definition list. # # @return [String] @@ -211,7 +203,6 @@ def add(rule, index = true) def size @rules.size end - alias length size # Checks whether the list is empty. # diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 654cdde8..96a27b29 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -191,18 +191,6 @@ def odiff(one, two) one[ii..one.length] end - - # DEPRECATED - - def self.type - # warn("deprecated") - end - - public - def type - self.class.type - end - end class Normal < Base diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 15260b0c..a6e43921 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -13,7 +13,7 @@ def teardown def test_initialize assert_instance_of PublicSuffix::List, @list - assert_equal 0, @list.length + assert_equal 0, @list.size end def test_initialize_create_index_when_empty @@ -41,7 +41,7 @@ def test_equality_with_internals def test_add assert_equal @list, @list.add(PublicSuffix::Rule.factory("")) assert_equal @list, @list << PublicSuffix::Rule.factory("") - assert_equal 2, @list.length + assert_equal 2, @list.size end def test_add_should_recreate_index @@ -68,17 +68,17 @@ def test_empty? end def test_size - assert_equal 0, @list.length + assert_equal 0, @list.size assert_equal @list, @list.add(PublicSuffix::Rule.factory("")) - assert_equal 1, @list.length + assert_equal 1, @list.size end def test_clear - assert_equal 0, @list.length + assert_equal 0, @list.size assert_equal @list, @list.add(PublicSuffix::Rule.factory("")) - assert_equal 1, @list.length + assert_equal 1, @list.size assert_equal @list, @list.clear - assert_equal 0, @list.length + assert_equal 0, @list.size end @@ -128,14 +128,6 @@ def test_self_clear assert_equal nil, PublicSuffix::List.class_eval { @default } end - def test_self_reload - PublicSuffix::List.default - PublicSuffix::List.expects(:default_definition).returns("") - - PublicSuffix::List.reload - assert_equal PublicSuffix::List.new, PublicSuffix::List.default - end - def test_self_parse list = PublicSuffix::List.parse(< Date: Mon, 15 Feb 2016 19:38:00 +0100 Subject: [PATCH 052/450] Do not force UTF-8, it should be the default in Ruby 2.x Closes GH-94 --- CHANGELOG.md | 2 ++ lib/public_suffix/list.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d47e2d0f..2a78a3dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ - CHANGED: Removed `private_domains` class-level attribute. It is replaced by the `private_domains: false` option in the list parse method. +- CHANGED: The default list now assumes you use UTF-8 for reading the input (GH-94), + - REMOVED: Removed futile utility helpers such as `Domain#rule`, `Domain#is_a_domain?`, `Domain#is_a_subdomain?`, `Domain#valid?`. You can easily obtain the same result by having a custom method that reconstructs the logic, and/or calling `PublicSuffix.{domain|parse}(domain.to_s)`. diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index e0087249..6e882344 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -76,7 +76,7 @@ def self.clear # # @return [String] def self.default_definition - File.open(DEFAULT_DEFINITION_PATH, "r:utf-8") { |f| f.read } + File.open(DEFAULT_DEFINITION_PATH) { |f| f.read } end # Parse given +input+ treating the content as Public Suffix List. From 2722015d353b0be7d98001ce24ca163df133e847 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 10:46:08 +0100 Subject: [PATCH 053/450] Remove unused methods --- lib/public_suffix/rule.rb | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 96a27b29..7d361af1 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -99,6 +99,7 @@ module Rule # class Base + # @return [String] the rule definition attr_reader :value # Initializes a new rule with name and value. @@ -180,17 +181,6 @@ def decompose(domain) raise NotImplementedError end - - private - - def odiff(one, two) - ii = 0 - while(ii < one.size && one[ii] == two[ii]) - ii += 1 - end - one[ii..one.length] - end - end class Normal < Base From c5f899eb065e594c51bedc2dbe7995060d1184c0 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 10:49:59 +0100 Subject: [PATCH 054/450] Pass custom options as keyword arguments That will avoid to keep changing the signature for optional params. --- lib/public_suffix.rb | 6 +++--- test/unit/public_suffix_test.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 3f444de3..cb05d0d0 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -56,7 +56,7 @@ module PublicSuffix # If domain is not a valid domain. # @raise [PublicSuffix::DomainNotAllowed] # If a rule for +domain+ is found, but the rule doesn't allow +domain+. - def self.parse(name, list = List.default) + def self.parse(name, list: List.default) what = normalize(name) raise what if what.is_a?(DomainInvalid) @@ -125,8 +125,8 @@ def self.valid?(name) # @param [PublicSuffix::List] list # The rule list to search, defaults to the default {PublicSuffix::List} # @return [String] - def self.domain(name, list = List.default) - parse(name, list).domain + def self.domain(name, list: List.default) + parse(name, list: list).domain rescue PublicSuffix::Error nil end diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index ce95c1e3..8ae874b5 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -70,7 +70,7 @@ def test_self_parse_with_custom_list list = PublicSuffix::List.new list << PublicSuffix::Rule.factory("test") - domain = PublicSuffix.parse("www.example.test", list) + domain = PublicSuffix.parse("www.example.test", list: list) assert_instance_of PublicSuffix::Domain, domain assert_equal "test", domain.tld assert_equal "example", domain.sld From 64b0dd114d7e786907f8e345d734a6de42495692 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 13:27:03 +0100 Subject: [PATCH 055/450] Remove old .gemtest file --- .gemtest | 0 public_suffix.gemspec | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .gemtest diff --git a/.gemtest b/.gemtest deleted file mode 100644 index e69de29b..00000000 diff --git a/public_suffix.gemspec b/public_suffix.gemspec index 5a16194d..f0c3266d 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |s| s.date = "2015-12-14" s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.email = "weppos@weppos.net" - s.files = [".gemtest", ".gitignore", ".ruby-gemset", ".travis.yml", ".yardopts", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/definitions.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/test_helper.rb", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] + s.files = [".gitignore", ".ruby-gemset", ".travis.yml", ".yardopts", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/definitions.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] s.homepage = "http://simonecarletti.com/code/publicsuffix" s.licenses = ["MIT"] s.required_ruby_version = Gem::Requirement.new(">= 2.0") From 3559445fa7de69ebfe43917f11d4c19e6d611a27 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 18:20:07 +0100 Subject: [PATCH 056/450] Disable private domains at runtime This commit adds the ability to disable the use of private domains either runtime, in addition to the ability to not load the private domains section when reading the list (`private_domains: false`). This feature also supersedes the `private_domains` class-level attribute, that is no longer available. --- CHANGELOG.md | 2 ++ lib/public_suffix.rb | 30 ++++++++-------- lib/public_suffix/list.rb | 51 +++++++++++++++++++-------- lib/public_suffix/rule.rb | 25 +++++++------ test/acceptance_test.rb | 21 ++++++++++- test/unit/list_test.rb | 74 +++++++++++++++++++++++++++++++++++---- 6 files changed, 155 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a78a3dd..80249824 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ - NEW: Added PublicSuffix.domain # => sld.tld +- NEW: Added the ability to disable the use of private domains either at runtime, in addition to the ability to not load the private domains section when reading the list (`private_domains: false`). This feature also superseded the `private_domains` class-level attribute, that is no longer available. + - CHANGED: Considerable performance improvements (GH-92) - CHANGED: Updated definitions. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index cb05d0d0..bfff7296 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -46,21 +46,20 @@ module PublicSuffix # # => PublicSuffix::DomainInvalid # # - # @param [String, #to_s] name - # The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list - # The rule list to search, defaults to the default {PublicSuffix::List} + # @param [String, #to_s] name The domain name or fully qualified domain name to parse. + # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} + # @param [Boolean] include_private # @return [PublicSuffix::Domain] # # @raise [PublicSuffix::Error] # If domain is not a valid domain. # @raise [PublicSuffix::DomainNotAllowed] # If a rule for +domain+ is found, but the rule doesn't allow +domain+. - def self.parse(name, list: List.default) + def self.parse(name, list: List.default, include_private: true) what = normalize(name) raise what if what.is_a?(DomainInvalid) - rule = list.find(what) + rule = list.find(what, include_private: include_private) if rule.nil? raise DomainInvalid, "`#{what}` is not a valid domain" end @@ -105,14 +104,14 @@ def self.parse(name, list: List.default) # # => false # # - # @param [String, #to_s] name - # The domain name or fully qualified domain name to validate. + # @param [String, #to_s] name The domain name or fully qualified domain name to validate. + # @param [Boolean] include_private # @return [Boolean] - def self.valid?(name) + def self.valid?(name, list: List.default, include_private: true) what = normalize(name) return false if what.is_a?(DomainInvalid) - rule = List.default.find(what) + rule = List.default.find(what, include_private: include_private) !rule.nil? && rule.allow?(what) end @@ -120,13 +119,12 @@ def self.valid?(name) # # This method doesn't raise. Instead, it returns nil if the domain is not valid for whatever reason. # - # @param [String, #to_s] name - # The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list - # The rule list to search, defaults to the default {PublicSuffix::List} + # @param [String, #to_s] name The domain name or fully qualified domain name to parse. + # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} + # @param [Boolean] include_private # @return [String] - def self.domain(name, list: List.default) - parse(name, list: list).domain + def self.domain(name, list: List.default, include_private: true) + parse(name, list: list, include_private: include_private).domain rescue PublicSuffix::Error nil end diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 6e882344..93b9090f 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -89,20 +89,29 @@ def self.default_definition def self.parse(input, private_domains: true) comment_token = "//".freeze private_token = "===BEGIN PRIVATE DOMAINS===".freeze - + section = nil # 1 == ICANN, 2 == PRIVATE + new do |list| input.each_line do |line| line.strip! - break if !private_domains && line.include?(private_token) + case + # strip blank lines - if line.empty? + when line.include?(private_token) + break if !private_domains + section = 2 + + # strip blank lines + when line.empty? next + # strip comments - elsif line.start_with?(comment_token) + when line.start_with?(comment_token) next - # append rule + else - list.add(Rule.factory(line), false) + list.add(Rule.factory(line, private: section == 2), false) + end end end @@ -182,7 +191,7 @@ def to_a # # @param [PublicSuffix::Rule::*] rule # The rule to add to the list. - # @param [Boolean] index + # @param [Boolean] reindex # Set to true to recreate the rule index # after the rule has been added to the list. # @@ -190,9 +199,9 @@ def to_a # # @see #create_index! # - def add(rule, index = true) + def add(rule, reindex = true) @rules << rule - create_index! if index == true + create_index! if reindex self end alias << add @@ -242,8 +251,8 @@ def clear # @param name [String, #to_s] The domain name. # @param [PublicSuffix::Rule::*] default The default rule to return in case no rule matches. # @return [PublicSuffix::Rule::*] - def find(name, default = default_rule) - rule = select(name).inject do |l, r| + def find(name, default: default_rule, **options) + rule = select(name, **options).inject do |l, r| return r if r.class == Rule::Exception l.length > r.length ? l : r end @@ -252,15 +261,27 @@ def find(name, default = default_rule) # Selects all the rules matching given domain. # - # Will use +@indexes+ to try only the rules that share the same first label, - # that will speed up things when using +List.find('foo')+ a lot. + # Internally, the lookup heavily rely on the `@indexes`. The input is split into labels, + # and we retriever from the index only the rules that end with the input label. After that, + # a sequential scan is performed. In most cases, where the number of rules for the same label + # is limited, this algorithm is efficient enough. + # + # If `include_private` is set to false, the algorithm will skip the rules that are flagged as private domain. + # Note that the rules will still be part of the loop. If you frequently need to access lists + # ignoring the private domains, you should create a list that doesn't include these domains setting the + # `private_domains: false` option when calling {.parse}. # # @param [String, #to_s] name The domain name. + # @param [Boolean] include_private # @return [Array] - def select(name) + def select(name, include_private: true) name = name.to_s indices = (@indexes[Domain.name_to_parts(name).last] || []) - @rules.values_at(*indices).select { |rule| rule.match?(name) } + + finder = @rules.values_at(*indices).lazy + finder = finder.select { |rule| rule.match?(name) } + finder = finder.select { |rule| !rule.private } if include_private == false + finder.to_a end # Gets the default rule. diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 7d361af1..6dc169bb 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -102,12 +102,17 @@ class Base # @return [String] the rule definition attr_reader :value + # @return [Boolean] true if the rule is a private domain + attr_reader :private + + # Initializes a new rule with name and value. # If value is +nil+, name also becomes the value for this rule. # # @param value [String] the value of the rule - def initialize(value) - @value = value.to_s + def initialize(value, private: false) + @value = value.to_s + @private = private end # Checks whether this rule is equal to other. @@ -188,8 +193,8 @@ class Normal < Base # Initializes a new rule from +definition+. # # @param definition [String] the rule as defined in the PSL - def initialize(definition) - super(definition) + def initialize(definition, **options) + super(definition, **options) end # Gets the original rule definition. @@ -235,8 +240,8 @@ class Wildcard < Base # for each wildcard rule. # # @param definition [String] the rule as defined in the PSL - def initialize(definition) - super(definition.to_s[2..-1]) + def initialize(definition, **options) + super(definition.to_s[2..-1], **options) end # Gets the original rule definition. @@ -283,8 +288,8 @@ class Exception < Base # for each wildcard rule. # # @param definition [String] the rule as defined in the PSL - def initialize(definition) - super(definition.to_s[1..-1]) + def initialize(definition, **options) + super(definition.to_s[1..-1], **options) end # Gets the original rule definition. @@ -347,7 +352,7 @@ def length # @param [String] name The rule definition. # # @return [PublicSuffix::Rule::*] A rule instance. - def self.factory(name) + def self.factory(name, **options) case name.to_s[0,1] when STAR Wildcard @@ -355,7 +360,7 @@ def self.factory(name) Exception else Normal - end.new(name) + end.new(name, **options) end # The default rule to use if no rule match. diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index aa0f8570..a2683118 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -60,7 +60,7 @@ def test_rejected end end - + CaseCases = [ ["Www.google.com", ["www", "google", "com"]], ["www.Google.com", ["www", "google", "com"]], @@ -79,6 +79,25 @@ def test_ignore_case end + IncludePrivateCases = [ + ["blogspot.com", false, "blogspot.com"], + ["blogspot.com", true, nil], + ["subdomain.blogspot.com", false, "blogspot.com"], + ["subdomain.blogspot.com", true, "subdomain.blogspot.com"], + ] + + def test_include_private + # test domain and parse + IncludePrivateCases.each do |given, include_private, expected| + assert_equal expected, PublicSuffix.domain(given, include_private: include_private) + end + # test valid? + IncludePrivateCases.each do |given, include_private, expected| + assert_equal expected != nil, PublicSuffix.valid?(given, include_private: include_private) + end + end + + def valid_uri?(name) uri = URI.parse(name) uri.host != nil diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index a6e43921..3c4a0096 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -93,9 +93,12 @@ def test_find end def test_find_default_rule - assert_equal PublicSuffix::List.default.default_rule, list.find("example.tldnotlisted") + assert_equal PublicSuffix::List.default.default_rule, list.find("example.tldnotlisted") end + # def test_find_custom_default_rule + # end + def test_select assert_equal 2, list.select("british-library.uk").size @@ -107,6 +110,24 @@ def test_select_name_blank assert_equal [], list.select(" ") end + def test_select_include_private + list = PublicSuffix::List.new + list.add r1 = PublicSuffix::Rule.factory("io") + list.add r2 = PublicSuffix::Rule.factory("example.io", private: true) + + assert_equal list.select("foo.io"), [r1] + assert_equal list.select("example.io"), [r1, r2] + assert_equal list.select("foo.example.io"), [r1, r2] + + assert_equal list.select("foo.io", include_private: true), [r1] + assert_equal list.select("example.io", include_private: true), [r1, r2] + assert_equal list.select("foo.example.io", include_private: true), [r1, r2] + + assert_equal list.select("foo.io", include_private: false), [r1] + assert_equal list.select("example.io", include_private: false), [r1] + assert_equal list.select("foo.example.io", include_private: false), [r1] + end + def test_self_default_getter assert_equal nil, PublicSuffix::List.class_eval { @default } @@ -130,10 +151,11 @@ def test_self_clear def test_self_parse list = PublicSuffix::List.parse(< Date: Thu, 10 Mar 2016 18:24:08 +0100 Subject: [PATCH 057/450] Update definitions --- data/definitions.txt | 590 +++++++++++++++++++++++-------------------- 1 file changed, 320 insertions(+), 270 deletions(-) diff --git a/data/definitions.txt b/data/definitions.txt index a62e085c..c79649b5 100644 --- a/data/definitions.txt +++ b/data/definitions.txt @@ -1,10 +1,10 @@ // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// file, You can obtain one at https://mozilla.org/MPL/2.0/. // ===BEGIN ICANN DOMAINS=== -// ac : http://en.wikipedia.org/wiki/.ac +// ac : https://en.wikipedia.org/wiki/.ac ac com.ac edu.ac @@ -13,11 +13,11 @@ net.ac mil.ac org.ac -// ad : http://en.wikipedia.org/wiki/.ad +// ad : https://en.wikipedia.org/wiki/.ad ad nom.ad -// ae : http://en.wikipedia.org/wiki/.ae +// ae : https://en.wikipedia.org/wiki/.ae // see also: "Domain Name Eligibility Policy" at http://www.aeda.ae/eng/aepolicy.php ae co.ae @@ -28,7 +28,7 @@ ac.ae gov.ae mil.ae -// aero : see http://www.information.aero/index.php?id=66 +// aero : see https://www.information.aero/index.php?id=66 aero accident-investigation.aero accident-prevention.aero @@ -150,10 +150,10 @@ mil.al net.al org.al -// am : http://en.wikipedia.org/wiki/.am +// am : https://en.wikipedia.org/wiki/.am am -// ao : http://en.wikipedia.org/wiki/.ao +// ao : https://en.wikipedia.org/wiki/.ao // http://www.dns.ao/REGISTR.DOC ao ed.ao @@ -163,7 +163,7 @@ co.ao pb.ao it.ao -// aq : http://en.wikipedia.org/wiki/.aq +// aq : https://en.wikipedia.org/wiki/.aq aq // ar : https://nic.ar/normativa-vigente.xhtml @@ -178,7 +178,7 @@ net.ar org.ar tur.ar -// arpa : http://en.wikipedia.org/wiki/.arpa +// arpa : https://en.wikipedia.org/wiki/.arpa // Confirmed by registry 2008-06-18 arpa e164.arpa @@ -188,14 +188,14 @@ iris.arpa uri.arpa urn.arpa -// as : http://en.wikipedia.org/wiki/.as +// as : https://en.wikipedia.org/wiki/.as as gov.as -// asia : http://en.wikipedia.org/wiki/.asia +// asia : https://en.wikipedia.org/wiki/.asia asia -// at : http://en.wikipedia.org/wiki/.at +// at : https://en.wikipedia.org/wiki/.at // Confirmed by registry 2008-06-17 at ac.at @@ -203,7 +203,7 @@ co.at gv.at or.at -// au : http://en.wikipedia.org/wiki/.au +// au : https://en.wikipedia.org/wiki/.au // http://www.auda.org.au/ au // 2LDs @@ -245,14 +245,14 @@ tas.gov.au vic.gov.au wa.gov.au -// aw : http://en.wikipedia.org/wiki/.aw +// aw : https://en.wikipedia.org/wiki/.aw aw com.aw -// ax : http://en.wikipedia.org/wiki/.ax +// ax : https://en.wikipedia.org/wiki/.ax ax -// az : http://en.wikipedia.org/wiki/.az +// az : https://en.wikipedia.org/wiki/.az az com.az net.az @@ -267,7 +267,7 @@ name.az pro.az biz.az -// ba : http://en.wikipedia.org/wiki/.ba +// ba : https://en.wikipedia.org/wiki/.ba ba org.ba net.ba @@ -280,7 +280,7 @@ co.ba com.ba rs.ba -// bb : http://en.wikipedia.org/wiki/.bb +// bb : https://en.wikipedia.org/wiki/.bb bb biz.bb co.bb @@ -293,19 +293,19 @@ org.bb store.bb tv.bb -// bd : http://en.wikipedia.org/wiki/.bd +// bd : https://en.wikipedia.org/wiki/.bd *.bd -// be : http://en.wikipedia.org/wiki/.be +// be : https://en.wikipedia.org/wiki/.be // Confirmed by registry 2008-06-08 be ac.be -// bf : http://en.wikipedia.org/wiki/.bf +// bf : https://en.wikipedia.org/wiki/.bf bf gov.bf -// bg : http://en.wikipedia.org/wiki/.bg +// bg : https://en.wikipedia.org/wiki/.bg // https://www.register.bg/user/static/rules/en/index.html bg a.bg @@ -345,7 +345,7 @@ z.bg 8.bg 9.bg -// bh : http://en.wikipedia.org/wiki/.bh +// bh : https://en.wikipedia.org/wiki/.bh bh com.bh edu.bh @@ -353,7 +353,7 @@ net.bh org.bh gov.bh -// bi : http://en.wikipedia.org/wiki/.bi +// bi : https://en.wikipedia.org/wiki/.bi // http://whois.nic.bi/ bi co.bi @@ -362,10 +362,10 @@ edu.bi or.bi org.bi -// biz : http://en.wikipedia.org/wiki/.biz +// biz : https://en.wikipedia.org/wiki/.biz biz -// bj : http://en.wikipedia.org/wiki/.bj +// bj : https://en.wikipedia.org/wiki/.bj bj asso.bj barreau.bj @@ -379,7 +379,7 @@ gov.bm net.bm org.bm -// bn : http://en.wikipedia.org/wiki/.bn +// bn : https://en.wikipedia.org/wiki/.bn *.bn // bo : http://www.nic.bo/ @@ -395,7 +395,7 @@ mil.bo tv.bo // br : http://registro.br/dominio/categoria.html -// Submitted by registry 2014-08-11 +// Submitted by registry br adm.br adv.br @@ -476,7 +476,7 @@ org.bs edu.bs gov.bs -// bt : http://en.wikipedia.org/wiki/.bt +// bt : https://en.wikipedia.org/wiki/.bt bt com.bt edu.bt @@ -485,17 +485,17 @@ net.bt org.bt // bv : No registrations at this time. -// Submitted by registry 2006-06-16 +// Submitted by registry bv -// bw : http://en.wikipedia.org/wiki/.bw +// bw : https://en.wikipedia.org/wiki/.bw // http://www.gobin.info/domainname/bw.doc // list of other 2nd level tlds ? bw co.bw org.bw -// by : http://en.wikipedia.org/wiki/.by +// by : https://en.wikipedia.org/wiki/.by // http://tld.by/rules_2006_en.html // list of other 2nd level tlds ? by @@ -509,7 +509,7 @@ com.by // http://hoster.by/ of.by -// bz : http://en.wikipedia.org/wiki/.bz +// bz : https://en.wikipedia.org/wiki/.bz // http://www.belizenic.bz/ bz com.bz @@ -518,7 +518,7 @@ org.bz edu.bz gov.bz -// ca : http://en.wikipedia.org/wiki/.ca +// ca : https://en.wikipedia.org/wiki/.ca ca // ca geographical names ab.ca @@ -535,31 +535,31 @@ pe.ca qc.ca sk.ca yk.ca -// gc.ca: http://en.wikipedia.org/wiki/.gc.ca +// gc.ca: https://en.wikipedia.org/wiki/.gc.ca // see also: http://registry.gc.ca/en/SubdomainFAQ gc.ca -// cat : http://en.wikipedia.org/wiki/.cat +// cat : https://en.wikipedia.org/wiki/.cat cat -// cc : http://en.wikipedia.org/wiki/.cc +// cc : https://en.wikipedia.org/wiki/.cc cc -// cd : http://en.wikipedia.org/wiki/.cd +// cd : https://en.wikipedia.org/wiki/.cd // see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1 cd gov.cd -// cf : http://en.wikipedia.org/wiki/.cf +// cf : https://en.wikipedia.org/wiki/.cf cf -// cg : http://en.wikipedia.org/wiki/.cg +// cg : https://en.wikipedia.org/wiki/.cg cg -// ch : http://en.wikipedia.org/wiki/.ch +// ch : https://en.wikipedia.org/wiki/.ch ch -// ci : http://en.wikipedia.org/wiki/.ci +// ci : https://en.wikipedia.org/wiki/.ci // http://www.nic.ci/index.php?page=charte ci org.ci @@ -578,26 +578,26 @@ presse.ci md.ci gouv.ci -// ck : http://en.wikipedia.org/wiki/.ck +// ck : https://en.wikipedia.org/wiki/.ck *.ck !www.ck -// cl : http://en.wikipedia.org/wiki/.cl +// cl : https://en.wikipedia.org/wiki/.cl cl gov.cl gob.cl co.cl mil.cl -// cm : http://en.wikipedia.org/wiki/.cm plus bug 981927 +// cm : https://en.wikipedia.org/wiki/.cm plus bug 981927 cm co.cm com.cm gov.cm net.cm -// cn : http://en.wikipedia.org/wiki/.cn -// Submitted by registry 2008-06-11 +// cn : https://en.wikipedia.org/wiki/.cn +// Submitted by registry cn ac.cn com.cn @@ -645,8 +645,8 @@ hk.cn mo.cn tw.cn -// co : http://en.wikipedia.org/wiki/.co -// Submitted by registry 2008-06-11 +// co : https://en.wikipedia.org/wiki/.co +// Submitted by registry co arts.co com.co @@ -662,10 +662,10 @@ org.co rec.co web.co -// com : http://en.wikipedia.org/wiki/.com +// com : https://en.wikipedia.org/wiki/.com com -// coop : http://en.wikipedia.org/wiki/.coop +// coop : https://en.wikipedia.org/wiki/.coop coop // cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do @@ -678,7 +678,7 @@ go.cr or.cr sa.cr -// cu : http://en.wikipedia.org/wiki/.cu +// cu : https://en.wikipedia.org/wiki/.cu cu com.cu edu.cu @@ -687,7 +687,7 @@ net.cu gov.cu inf.cu -// cv : http://en.wikipedia.org/wiki/.cv +// cv : https://en.wikipedia.org/wiki/.cv cv // cw : http://www.una.cw/cw_registry/ @@ -698,12 +698,12 @@ edu.cw net.cw org.cw -// cx : http://en.wikipedia.org/wiki/.cx +// cx : https://en.wikipedia.org/wiki/.cx // list of other 2nd level tlds ? cx gov.cx -// cy : http://en.wikipedia.org/wiki/.cy +// cy : https://en.wikipedia.org/wiki/.cy ac.cy biz.cy com.cy @@ -718,22 +718,22 @@ press.cy pro.cy tm.cy -// cz : http://en.wikipedia.org/wiki/.cz +// cz : https://en.wikipedia.org/wiki/.cz cz -// de : http://en.wikipedia.org/wiki/.de +// de : https://en.wikipedia.org/wiki/.de // Confirmed by registry (with technical // reservations) 2008-07-01 de -// dj : http://en.wikipedia.org/wiki/.dj +// dj : https://en.wikipedia.org/wiki/.dj dj -// dk : http://en.wikipedia.org/wiki/.dk +// dk : https://en.wikipedia.org/wiki/.dk // Confirmed by registry 2008-06-17 dk -// dm : http://en.wikipedia.org/wiki/.dm +// dm : https://en.wikipedia.org/wiki/.dm dm com.dm net.dm @@ -741,7 +741,7 @@ org.dm edu.dm gov.dm -// do : http://en.wikipedia.org/wiki/.do +// do : https://en.wikipedia.org/wiki/.do do art.do com.do @@ -754,7 +754,7 @@ org.do sld.do web.do -// dz : http://en.wikipedia.org/wiki/.dz +// dz : https://en.wikipedia.org/wiki/.dz dz com.dz org.dz @@ -766,7 +766,7 @@ pol.dz art.dz // ec : http://www.nic.ec/reg/paso1.asp -// Submitted by registry 2008-07-04 +// Submitted by registry ec com.ec info.ec @@ -781,7 +781,7 @@ gov.ec gob.ec mil.ec -// edu : http://en.wikipedia.org/wiki/.edu +// edu : https://en.wikipedia.org/wiki/.edu edu // ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B @@ -797,7 +797,7 @@ aip.ee org.ee fie.ee -// eg : http://en.wikipedia.org/wiki/.eg +// eg : https://en.wikipedia.org/wiki/.eg eg com.eg edu.eg @@ -809,7 +809,7 @@ net.eg org.eg sci.eg -// er : http://en.wikipedia.org/wiki/.er +// er : https://en.wikipedia.org/wiki/.er *.er // es : https://www.nic.es/site_ingles/ingles/dominios/index.html @@ -820,7 +820,7 @@ org.es gob.es edu.es -// et : http://en.wikipedia.org/wiki/.et +// et : https://en.wikipedia.org/wiki/.et et com.et gov.et @@ -831,28 +831,28 @@ name.et info.et net.et -// eu : http://en.wikipedia.org/wiki/.eu +// eu : https://en.wikipedia.org/wiki/.eu eu -// fi : http://en.wikipedia.org/wiki/.fi +// fi : https://en.wikipedia.org/wiki/.fi fi -// aland.fi : http://en.wikipedia.org/wiki/.ax +// aland.fi : https://en.wikipedia.org/wiki/.ax // This domain is being phased out in favor of .ax. As there are still many // domains under aland.fi, we still keep it on the list until aland.fi is // completely removed. // TODO: Check for updates (expected to be phased out around Q1/2009) aland.fi -// fj : http://en.wikipedia.org/wiki/.fj +// fj : https://en.wikipedia.org/wiki/.fj *.fj -// fk : http://en.wikipedia.org/wiki/.fk +// fk : https://en.wikipedia.org/wiki/.fk *.fk -// fm : http://en.wikipedia.org/wiki/.fm +// fm : https://en.wikipedia.org/wiki/.fm fm -// fo : http://en.wikipedia.org/wiki/.fo +// fo : https://en.wikipedia.org/wiki/.fo fo // fr : http://www.afnic.fr/ @@ -883,14 +883,14 @@ pharmacien.fr port.fr veterinaire.fr -// ga : http://en.wikipedia.org/wiki/.ga +// ga : https://en.wikipedia.org/wiki/.ga ga // gb : This registry is effectively dormant -// Submitted by registry 2008-06-12 +// Submitted by registry gb -// gd : http://en.wikipedia.org/wiki/.gd +// gd : https://en.wikipedia.org/wiki/.gd gd // ge : http://www.nic.net.ge/policy_en.pdf @@ -903,7 +903,7 @@ mil.ge net.ge pvt.ge -// gf : http://en.wikipedia.org/wiki/.gf +// gf : https://en.wikipedia.org/wiki/.gf gf // gg : http://www.channelisles.net/register-domains/ @@ -913,7 +913,7 @@ co.gg net.gg org.gg -// gh : http://en.wikipedia.org/wiki/.gh +// gh : https://en.wikipedia.org/wiki/.gh // see also: http://www.nic.gh/reg_now.php // Although domains directly at second level are not possible at the moment, // they have been possible for some time and may come back. @@ -933,7 +933,7 @@ mod.gi edu.gi org.gi -// gl : http://en.wikipedia.org/wiki/.gl +// gl : https://en.wikipedia.org/wiki/.gl // http://nic.gl gl co.gl @@ -946,7 +946,7 @@ org.gl gm // gn : http://psg.com/dns/gn/gn.txt -// Submitted by registry 2008-06-17 +// Submitted by registry gn ac.gn com.gn @@ -955,7 +955,7 @@ gov.gn org.gn net.gn -// gov : http://en.wikipedia.org/wiki/.gov +// gov : https://en.wikipedia.org/wiki/.gov gov // gp : http://www.nic.gp/index.php?lang=en @@ -967,11 +967,11 @@ edu.gp org.gp asso.gp -// gq : http://en.wikipedia.org/wiki/.gq +// gq : https://en.wikipedia.org/wiki/.gq gq // gr : https://grweb.ics.forth.gr/english/1617-B-2005.html -// Submitted by registry 2008-06-09 +// Submitted by registry gr com.gr edu.gr @@ -979,7 +979,7 @@ net.gr org.gr gov.gr -// gs : http://en.wikipedia.org/wiki/.gs +// gs : https://en.wikipedia.org/wiki/.gs gs // gt : http://www.gt/politicas_de_registro.html @@ -995,10 +995,10 @@ org.gt // gu : http://gadao.gov.gu/registration.txt *.gu -// gw : http://en.wikipedia.org/wiki/.gw +// gw : https://en.wikipedia.org/wiki/.gw gw -// gy : http://en.wikipedia.org/wiki/.gy +// gy : https://en.wikipedia.org/wiki/.gy // http://registry.gy/ gy co.gy @@ -1009,7 +1009,7 @@ net.gy org.gy // hk : https://www.hkdnr.hk -// Submitted by registry 2008-06-11 +// Submitted by registry hk com.hk edu.hk @@ -1033,7 +1033,7 @@ org.hk 組織.hk 組织.hk -// hm : http://en.wikipedia.org/wiki/.hm +// hm : https://en.wikipedia.org/wiki/.hm hm // hn : http://www.nic.hn/politicas/ps02,,05.html @@ -1121,7 +1121,7 @@ or.id sch.id web.id -// ie : http://en.wikipedia.org/wiki/.ie +// ie : https://en.wikipedia.org/wiki/.ie ie gov.ie @@ -1137,7 +1137,7 @@ net.il org.il // im : https://www.nic.im/ -// Submitted by registry 2013-11-15 +// Submitted by registry im ac.im co.im @@ -1149,7 +1149,7 @@ plc.co.im tt.im tv.im -// in : http://en.wikipedia.org/wiki/.in +// in : https://en.wikipedia.org/wiki/.in // see also: https://registry.in/Policies // Please note, that nic.in is not an official eTLD, but used by most // government institutions. @@ -1167,10 +1167,10 @@ res.in gov.in mil.in -// info : http://en.wikipedia.org/wiki/.info +// info : https://en.wikipedia.org/wiki/.info info -// int : http://en.wikipedia.org/wiki/.int +// int : https://en.wikipedia.org/wiki/.int // Confirmed by registry 2008-06-18 int eu.int @@ -1215,7 +1215,7 @@ gov.is org.is int.is -// it : http://en.wikipedia.org/wiki/.it +// it : https://en.wikipedia.org/wiki/.it it gov.it edu.it @@ -1613,12 +1613,12 @@ gov.jo mil.jo name.jo -// jobs : http://en.wikipedia.org/wiki/.jobs +// jobs : https://en.wikipedia.org/wiki/.jobs jobs -// jp : http://en.wikipedia.org/wiki/.jp +// jp : https://en.wikipedia.org/wiki/.jp // http://jprs.co.jp/en/jpdomain.html -// Submitted by registry 2014-10-30 +// Submitted by registry jp // jp organizational type names ac.jp @@ -3445,7 +3445,7 @@ gov.ki info.ki com.ki -// km : http://en.wikipedia.org/wiki/.km +// km : https://en.wikipedia.org/wiki/.km // http://www.domaine.km/documents/charte.doc km org.km @@ -3458,7 +3458,7 @@ mil.km ass.km com.km // These are only mentioned as proposed suggestions at domaine.km, but -// http://en.wikipedia.org/wiki/.km says they're available for registration: +// https://en.wikipedia.org/wiki/.km says they're available for registration: coop.km asso.km presse.km @@ -3468,7 +3468,7 @@ pharmaciens.km veterinaire.km gouv.km -// kn : http://en.wikipedia.org/wiki/.kn +// kn : https://en.wikipedia.org/wiki/.kn // http://www.dot.kn/domainRules.html kn net.kn @@ -3485,7 +3485,7 @@ org.kp rep.kp tra.kp -// kr : http://en.wikipedia.org/wiki/.kr +// kr : https://en.wikipedia.org/wiki/.kr // see also: http://domain.nida.or.kr/eng/registration.jsp kr ac.kr @@ -3519,7 +3519,7 @@ jeonnam.kr seoul.kr ulsan.kr -// kw : http://en.wikipedia.org/wiki/.kw +// kw : https://en.wikipedia.org/wiki/.kw *.kw // ky : http://www.icta.ky/da_ky_reg_dom.php @@ -3531,7 +3531,7 @@ com.ky org.ky net.ky -// kz : http://en.wikipedia.org/wiki/.kz +// kz : https://en.wikipedia.org/wiki/.kz // see also: http://www.nic.kz/rules/index.jsp kz org.kz @@ -3541,8 +3541,8 @@ gov.kz mil.kz com.kz -// la : http://en.wikipedia.org/wiki/.la -// Submitted by registry 2008-06-10 +// la : https://en.wikipedia.org/wiki/.la +// Submitted by registry la int.la net.la @@ -3553,8 +3553,8 @@ per.la com.la org.la -// lb : http://en.wikipedia.org/wiki/.lb -// Submitted by registry 2008-06-17 +// lb : https://en.wikipedia.org/wiki/.lb +// Submitted by registry lb com.lb edu.lb @@ -3562,7 +3562,7 @@ gov.lb net.lb org.lb -// lc : http://en.wikipedia.org/wiki/.lc +// lc : https://en.wikipedia.org/wiki/.lc // see also: http://www.nic.lc/rules.htm lc com.lc @@ -3572,7 +3572,7 @@ org.lc edu.lc gov.lc -// li : http://en.wikipedia.org/wiki/.li +// li : https://en.wikipedia.org/wiki/.li li // lk : http://www.nic.lk/seclevpr.html @@ -3594,7 +3594,7 @@ hotel.lk ac.lk // lr : http://psg.com/dns/lr/lr.txt -// Submitted by registry 2008-06-17 +// Submitted by registry lr com.lr edu.lr @@ -3602,12 +3602,12 @@ gov.lr org.lr net.lr -// ls : http://en.wikipedia.org/wiki/.ls +// ls : https://en.wikipedia.org/wiki/.ls ls co.ls org.ls -// lt : http://en.wikipedia.org/wiki/.lt +// lt : https://en.wikipedia.org/wiki/.lt lt // gov.lt : http://www.gov.lt/index_en.php gov.lt @@ -3639,7 +3639,7 @@ med.ly org.ly id.ly -// ma : http://en.wikipedia.org/wiki/.ma +// ma : https://en.wikipedia.org/wiki/.ma // http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf ma co.ma @@ -3654,10 +3654,10 @@ mc tm.mc asso.mc -// md : http://en.wikipedia.org/wiki/.md +// md : https://en.wikipedia.org/wiki/.md md -// me : http://en.wikipedia.org/wiki/.me +// me : https://en.wikipedia.org/wiki/.me me co.me net.me @@ -3680,13 +3680,13 @@ mil.mg com.mg co.mg -// mh : http://en.wikipedia.org/wiki/.mh +// mh : https://en.wikipedia.org/wiki/.mh mh -// mil : http://en.wikipedia.org/wiki/.mil +// mil : https://en.wikipedia.org/wiki/.mil mil -// mk : http://en.wikipedia.org/wiki/.mk +// mk : https://en.wikipedia.org/wiki/.mk // see also: http://dns.marnet.net.mk/postapka.php mk com.mk @@ -3698,7 +3698,7 @@ inf.mk name.mk // ml : http://www.gobin.info/domainname/ml-template.doc -// see also: http://en.wikipedia.org/wiki/.ml +// see also: https://en.wikipedia.org/wiki/.ml ml com.ml edu.ml @@ -3708,10 +3708,10 @@ net.ml org.ml presse.ml -// mm : http://en.wikipedia.org/wiki/.mm +// mm : https://en.wikipedia.org/wiki/.mm *.mm -// mn : http://en.wikipedia.org/wiki/.mn +// mn : https://en.wikipedia.org/wiki/.mn mn gov.mn edu.mn @@ -3725,17 +3725,17 @@ org.mo edu.mo gov.mo -// mobi : http://en.wikipedia.org/wiki/.mobi +// mobi : https://en.wikipedia.org/wiki/.mobi mobi // mp : http://www.dot.mp/ // Confirmed by registry 2008-06-17 mp -// mq : http://en.wikipedia.org/wiki/.mq +// mq : https://en.wikipedia.org/wiki/.mq mq -// mr : http://en.wikipedia.org/wiki/.mr +// mr : https://en.wikipedia.org/wiki/.mr mr gov.mr @@ -3748,14 +3748,14 @@ net.ms org.ms // mt : https://www.nic.org.mt/go/policy -// Submitted by registry 2013-11-19 +// Submitted by registry mt com.mt edu.mt net.mt org.mt -// mu : http://en.wikipedia.org/wiki/.mu +// mu : https://en.wikipedia.org/wiki/.mu mu com.mu net.mu @@ -4317,7 +4317,7 @@ zoology.museum ירושלים.museum иком.museum -// mv : http://en.wikipedia.org/wiki/.mv +// mv : https://en.wikipedia.org/wiki/.mv // "mv" included because, contra Wikipedia, google.mv exists. mv aero.mv @@ -4350,7 +4350,7 @@ net.mw org.mw // mx : http://www.nic.mx/ -// Submitted by registry 2008-06-19 +// Submitted by registry mx com.mx org.mx @@ -4400,13 +4400,13 @@ name nc asso.nc -// ne : http://en.wikipedia.org/wiki/.ne +// ne : https://en.wikipedia.org/wiki/.ne ne -// net : http://en.wikipedia.org/wiki/.net +// net : https://en.wikipedia.org/wiki/.net net -// nf : http://en.wikipedia.org/wiki/.nf +// nf : https://en.wikipedia.org/wiki/.nf nf com.nf net.nf @@ -4419,17 +4419,18 @@ info.nf other.nf store.nf -// ng : http://psg.com/dns/ng/ +// ng : http://www.nira.org.ng/index.php/join-us/register-ng-domain/189-nira-slds ng com.ng edu.ng +gov.ng +i.ng +mil.ng +mobi.ng name.ng net.ng org.ng sch.ng -gov.ng -mil.ng -mobi.ng // ni : http://www.nic.ni/ com.ni @@ -4447,7 +4448,7 @@ ac.ni in.ni info.ni -// nl : http://en.wikipedia.org/wiki/.nl +// nl : https://en.wikipedia.org/wiki/.nl // https://www.sidn.nl/ // ccTLD for the Netherlands nl @@ -5226,7 +5227,7 @@ våler.hedmark.no *.np // nr : http://cenpac.net.nr/dns/index.html -// Confirmed by registry 2008-06-17 +// Submitted by registry nr biz.nr info.nr @@ -5236,11 +5237,11 @@ org.nr net.nr com.nr -// nu : http://en.wikipedia.org/wiki/.nu +// nu : https://en.wikipedia.org/wiki/.nu nu -// nz : http://en.wikipedia.org/wiki/.nz -// Confirmed by registry 2014-05-19 +// nz : https://en.wikipedia.org/wiki/.nz +// Submitted by registry nz ac.nz co.nz @@ -5259,7 +5260,7 @@ org.nz parliament.nz school.nz -// om : http://en.wikipedia.org/wiki/.om +// om : https://en.wikipedia.org/wiki/.om om co.om com.om @@ -5271,7 +5272,7 @@ net.om org.om pro.om -// org : http://en.wikipedia.org/wiki/.org +// org : https://en.wikipedia.org/wiki/.org org // pa : http://www.nic.pa/ @@ -5306,11 +5307,11 @@ com.pf org.pf edu.pf -// pg : http://en.wikipedia.org/wiki/.pg +// pg : https://en.wikipedia.org/wiki/.pg *.pg // ph : http://www.domains.ph/FAQ2.asp -// Submitted by registry 2008-06-13 +// Submitted by registry ph com.ph net.ph @@ -5339,7 +5340,7 @@ gos.pk info.pk // pl http://www.dns.pl/english/index.html -// updated by .PL registry on 2015-04-28 +// Submitted by registry pl com.pl net.pl @@ -5556,7 +5557,7 @@ org.pn edu.pn net.pn -// post : http://en.wikipedia.org/wiki/.post +// post : https://en.wikipedia.org/wiki/.post post // pr : http://www.nic.pr/index.asp?f=1 @@ -5571,22 +5572,26 @@ pro.pr biz.pr info.pr name.pr -// these aren't mentioned on nic.pr, but on http://en.wikipedia.org/wiki/.pr +// these aren't mentioned on nic.pr, but on https://en.wikipedia.org/wiki/.pr est.pr prof.pr ac.pr -// pro : http://www.nic.pro/support_faq.htm +// pro : http://registry.pro/get-pro pro +aaa.pro aca.pro +acct.pro +avocat.pro bar.pro cpa.pro +eng.pro jur.pro law.pro med.pro -eng.pro +recht.pro -// ps : http://en.wikipedia.org/wiki/.ps +// ps : https://en.wikipedia.org/wiki/.ps // http://www.nic.ps/registration/policy.html#reg ps edu.ps @@ -5608,7 +5613,7 @@ publ.pt com.pt nome.pt -// pw : http://en.wikipedia.org/wiki/.pw +// pw : https://en.wikipedia.org/wiki/.pw pw co.pw ne.pw @@ -5618,7 +5623,7 @@ go.pw belau.pw // py : http://www.nic.py/pautas.html#seccion_9 -// Confirmed by registry 2012-10-03 +// Submitted by registry py com.py coop.py @@ -5641,32 +5646,32 @@ sch.qa // re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs re -com.re asso.re +com.re nom.re // ro : http://www.rotld.ro/ ro +arts.ro com.ro -org.ro -tm.ro -nt.ro -nom.ro +firm.ro info.ro +nom.ro +nt.ro +org.ro rec.ro -arts.ro -firm.ro store.ro +tm.ro www.ro -// rs : http://en.wikipedia.org/wiki/.rs +// rs : https://www.rnids.rs/en/domains/national-domains rs +ac.rs co.rs -org.rs edu.rs -ac.rs gov.rs in.rs +org.rs // ru : http://www.cctld.ru/ru/docs/aktiv_8.php // Industry domains @@ -5831,7 +5836,7 @@ edu.sa sch.sa // sb : http://www.sbnic.net.sb/ -// Submitted by registry 2008-06-08 +// Submitted by registry sb com.sb edu.sb @@ -5848,7 +5853,7 @@ org.sc edu.sc // sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm -// Submitted by registry 2008-06-17 +// Submitted by registry sd com.sd net.sd @@ -5859,8 +5864,8 @@ tv.sd gov.sd info.sd -// se : http://en.wikipedia.org/wiki/.se -// Submitted by registry 2014-03-18 +// se : https://en.wikipedia.org/wiki/.se +// Submitted by registry se a.se ac.se @@ -5919,19 +5924,19 @@ gov.sh org.sh mil.sh -// si : http://en.wikipedia.org/wiki/.si +// si : https://en.wikipedia.org/wiki/.si si // sj : No registrations at this time. -// Submitted by registry 2008-06-16 +// Submitted by registry sj -// sk : http://en.wikipedia.org/wiki/.sk +// sk : https://en.wikipedia.org/wiki/.sk // list of 2nd level domains ? sk // sl : http://www.nic.sl -// Submitted by registry 2008-06-12 +// Submitted by registry sl com.sl net.sl @@ -5939,10 +5944,10 @@ edu.sl gov.sl org.sl -// sm : http://en.wikipedia.org/wiki/.sm +// sm : https://en.wikipedia.org/wiki/.sm sm -// sn : http://en.wikipedia.org/wiki/.sn +// sn : https://en.wikipedia.org/wiki/.sn sn art.sn com.sn @@ -5958,7 +5963,7 @@ com.so net.so org.so -// sr : http://en.wikipedia.org/wiki/.sr +// sr : https://en.wikipedia.org/wiki/.sr sr // st : http://www.nic.st/html/policyrules/ @@ -5976,7 +5981,7 @@ principe.st saotome.st store.st -// su : http://en.wikipedia.org/wiki/.su +// su : https://en.wikipedia.org/wiki/.su su adygeya.su arkhangelsk.su @@ -6019,12 +6024,12 @@ gob.sv org.sv red.sv -// sx : http://en.wikipedia.org/wiki/.sx -// Confirmed by registry 2012-05-31 +// sx : https://en.wikipedia.org/wiki/.sx +// Submitted by registry sx gov.sx -// sy : http://en.wikipedia.org/wiki/.sy +// sy : https://en.wikipedia.org/wiki/.sy // see also: http://www.gobin.info/domainname/sy.doc sy edu.sy @@ -6034,32 +6039,32 @@ mil.sy com.sy org.sy -// sz : http://en.wikipedia.org/wiki/.sz +// sz : https://en.wikipedia.org/wiki/.sz // http://www.sispa.org.sz/ sz co.sz ac.sz org.sz -// tc : http://en.wikipedia.org/wiki/.tc +// tc : https://en.wikipedia.org/wiki/.tc tc -// td : http://en.wikipedia.org/wiki/.td +// td : https://en.wikipedia.org/wiki/.td td -// tel: http://en.wikipedia.org/wiki/.tel +// tel: https://en.wikipedia.org/wiki/.tel // http://www.telnic.org/ tel -// tf : http://en.wikipedia.org/wiki/.tf +// tf : https://en.wikipedia.org/wiki/.tf tf -// tg : http://en.wikipedia.org/wiki/.tg +// tg : https://en.wikipedia.org/wiki/.tg // http://www.nic.tg/ tg -// th : http://en.wikipedia.org/wiki/.th -// Submitted by registry 2008-06-17 +// th : https://en.wikipedia.org/wiki/.th +// Submitted by registry th ac.th co.th @@ -6087,10 +6092,10 @@ org.tj test.tj web.tj -// tk : http://en.wikipedia.org/wiki/.tk +// tk : https://en.wikipedia.org/wiki/.tk tk -// tl : http://en.wikipedia.org/wiki/.tl +// tl : https://en.wikipedia.org/wiki/.tl tl gov.tl @@ -6105,7 +6110,7 @@ gov.tm mil.tm edu.tm -// tn : http://en.wikipedia.org/wiki/.tn +// tn : https://en.wikipedia.org/wiki/.tn // http://whois.ati.tn/ tn com.tn @@ -6129,8 +6134,8 @@ agrinet.tn defense.tn turen.tn -// to : http://en.wikipedia.org/wiki/.to -// Submitted by registry 2008-06-17 +// to : https://en.wikipedia.org/wiki/.to +// Submitted by registry to com.to gov.to @@ -6141,7 +6146,7 @@ mil.to // subTLDs: https://www.nic.tr/forms/eng/policies.pdf // and: https://www.nic.tr/forms/politikalar.pdf -// Submitted by 2014-07-19 +// Submitted by tr com.tr info.tr @@ -6170,7 +6175,7 @@ nc.tr // Used by government agencies of Northern Cyprus gov.nc.tr -// travel : http://en.wikipedia.org/wiki/.travel +// travel : https://en.wikipedia.org/wiki/.travel travel // tt : http://www.nic.tt/ @@ -6193,12 +6198,12 @@ name.tt gov.tt edu.tt -// tv : http://en.wikipedia.org/wiki/.tv +// tv : https://en.wikipedia.org/wiki/.tv // Not listing any 2LDs as reserved since none seem to exist in practice, // Wikipedia notwithstanding. tv -// tw : http://en.wikipedia.org/wiki/.tw +// tw : https://en.wikipedia.org/wiki/.tw tw edu.tw gov.tw @@ -6215,7 +6220,7 @@ club.tw 商業.tw // tz : http://www.tznic.or.tz/index.php/domains -// Confirmed by registry 2013-01-22 +// Submitted by registry tz ac.tz co.tz @@ -6231,7 +6236,7 @@ sc.tz tv.tz // ua : https://hostmaster.ua/policy/?ua -// Submitted by registry 2012-04-27 +// Submitted by registry ua // ua 2LD com.ua @@ -6324,7 +6329,7 @@ ne.ug com.ug org.ug -// uk : http://en.wikipedia.org/wiki/.uk +// uk : https://en.wikipedia.org/wiki/.uk // Submitted by registry uk ac.uk @@ -6339,7 +6344,7 @@ plc.uk police.uk *.sch.uk -// us : http://en.wikipedia.org/wiki/.us +// us : https://en.wikipedia.org/wiki/.us us dni.us fed.us @@ -6597,11 +6602,11 @@ com.uz net.uz org.uz -// va : http://en.wikipedia.org/wiki/.va +// va : https://en.wikipedia.org/wiki/.va va -// vc : http://en.wikipedia.org/wiki/.vc -// Submitted by registry 2008-06-13 +// vc : https://en.wikipedia.org/wiki/.vc +// Submitted by registry vc com.vc net.vc @@ -6611,8 +6616,7 @@ mil.vc edu.vc // ve : https://registro.nic.ve/ -// Confirmed by registry 2012-10-04 -// Updated 2014-05-20 - Bug 940478 +// Submitted by registry ve arts.ve co.ve @@ -6632,7 +6636,7 @@ store.ve tec.ve web.ve -// vg : http://en.wikipedia.org/wiki/.vg +// vg : https://en.wikipedia.org/wiki/.vg vg // vi : http://www.nic.vi/newdomainform.htm @@ -6661,7 +6665,7 @@ name.vn pro.vn health.vn -// vu : http://en.wikipedia.org/wiki/.vu +// vu : https://en.wikipedia.org/wiki/.vu // http://www.vunic.vu/ vu com.vu @@ -6672,7 +6676,7 @@ org.vu // wf : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf wf -// ws : http://en.wikipedia.org/wiki/.ws +// ws : https://en.wikipedia.org/wiki/.ws // http://samoanic.ws/index.dhtml ws com.ws @@ -6826,7 +6830,7 @@ yt فلسطين // xn--90a3ac ("srb", Cyrillic) : RS -// http://www.rnids.rs/en/the-.срб-domain +// https://www.rnids.rs/en/domains/national-domains срб пр.срб орг.срб @@ -6922,14 +6926,14 @@ school.za tm.za web.za -// zm : http://en.wikipedia.org/wiki/.zm +// zm : https://en.wikipedia.org/wiki/.zm *.zm -// zw : http://en.wikipedia.org/wiki/.zw +// zw : https://en.wikipedia.org/wiki/.zw *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-01-04T22:39:54Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-03-01T00:46:32Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7816,9 +7820,6 @@ doha // domains : 2013-10-17 Sugar Cross, LLC domains -// doosan : 2014-04-03 Doosan Corporation -doosan - // dot : 2015-05-21 Dish DBS Corporation dot @@ -8107,6 +8108,9 @@ fujitsu // fujixerox : 2015-07-23 Xerox DNHC LLC fujixerox +// fun : 2016-01-14 Oriental Trading Company, Inc. +fun + // fund : 2014-03-20 John Castle, LLC fund @@ -8194,6 +8198,9 @@ globo // gmail : 2014-05-01 Charleston Road Registry Inc. gmail +// gmbh : 2016-01-29 Extra Dynamite, LLC +gmbh + // gmo : 2014-01-09 GMO Internet, Inc. gmo @@ -9781,6 +9788,9 @@ storage // store : 2015-04-09 DotStore Inc. store +// stream : 2016-01-08 dot Stream Limited +stream + // studio : 2015-02-11 studio @@ -10591,20 +10601,21 @@ zuerich // (Note: these are in alphabetical order by company name) // Amazon CloudFront : https://aws.amazon.com/cloudfront/ -// Submitted by Donavan Miller 2013-03-22 +// Submitted by Donavan Miller cloudfront.net // Amazon Elastic Compute Cloud: https://aws.amazon.com/ec2/ -// Submitted by Osman Surkatty 2014-12-16 +// Submitted by Luke Wells ap-northeast-1.compute.amazonaws.com +ap-northeast-2.compute.amazonaws.com ap-southeast-1.compute.amazonaws.com ap-southeast-2.compute.amazonaws.com cn-north-1.compute.amazonaws.cn +compute-1.amazonaws.com compute.amazonaws.cn compute.amazonaws.com -compute-1.amazonaws.com -eu-west-1.compute.amazonaws.com eu-central-1.compute.amazonaws.com +eu-west-1.compute.amazonaws.com sa-east-1.compute.amazonaws.com us-east-1.amazonaws.com us-gov-west-1.compute.amazonaws.com @@ -10614,37 +10625,39 @@ z-1.compute-1.amazonaws.com z-2.compute-1.amazonaws.com // Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/ -// Submitted by Adam Stein 2013-04-02 +// Submitted by Adam Stein elasticbeanstalk.com // Amazon Elastic Load Balancing : https://aws.amazon.com/elasticloadbalancing/ -// Submitted by Scott Vidmar 2013-03-27 +// Submitted by Scott Vidmar elb.amazonaws.com // Amazon S3 : https://aws.amazon.com/s3/ -// Submitted by Eric Kinolik 2015-04-08 +// Submitted by Luke Wells s3.amazonaws.com s3-ap-northeast-1.amazonaws.com +s3-ap-northeast-2.amazonaws.com s3-ap-southeast-1.amazonaws.com s3-ap-southeast-2.amazonaws.com +s3-eu-central-1.amazonaws.com +s3-eu-west-1.amazonaws.com s3-external-1.amazonaws.com s3-external-2.amazonaws.com s3-fips-us-gov-west-1.amazonaws.com -s3-eu-central-1.amazonaws.com -s3-eu-west-1.amazonaws.com s3-sa-east-1.amazonaws.com s3-us-gov-west-1.amazonaws.com s3-us-west-1.amazonaws.com s3-us-west-2.amazonaws.com +s3.ap-northeast-2.amazonaws.com s3.cn-north-1.amazonaws.com.cn s3.eu-central-1.amazonaws.com // BetaInABox -// Submitted by adrian@betainabox.com 2012-09-13 +// Submitted by Adrian betainabox.com // CentralNic : http://www.centralnic.com/names/domains -// Submitted by registry 2012-09-27 +// Submitted by registry ae.org ar.com br.com @@ -10675,38 +10688,46 @@ za.bz za.com // Africa.com Web Solutions Ltd : https://registry.africa.com -// Submitted by Gavin Brown 2014-02-04 +// Submitted by Gavin Brown africa.com // iDOT Services Limited : http://www.domain.gr.com -// Submitted by Gavin Brown 2014-02-04 +// Submitted by Gavin Brown gr.com // Radix FZC : http://domains.in.net -// Submitted by Gavin Brown 2014-02-04 +// Submitted by Gavin Brown in.net // US REGISTRY LLC : http://us.org -// Submitted by Gavin Brown 2014-02-04 +// Submitted by Gavin Brown us.org // co.com Registry, LLC : https://registry.co.com -// Submitted by Gavin Brown 2014-02-04 +// Submitted by Gavin Brown co.com // c.la : http://www.c.la/ c.la +// Citrix : https://citrix.com +// Submitted by Alex Stoddard +xenapponazure.com + // cloudControl : https://www.cloudcontrol.com/ -// Submitted by Tobias Wilken 2013-07-23 +// Submitted by Tobias Wilken cloudcontrolled.com cloudcontrolapp.com // co.ca : http://registry.co.ca/ co.ca +// i-registry s.r.o. : http://www.i-registry.cz/ +// Submitted by Martin Semrad +co.cz + // CDN77.com : http://www.cdn77.com -// Submitted by Jan Krpes 2015-07-13 +// Submitted by Jan Krpes c.cdn77.org cdn77-ssl.net r.cdn77.net @@ -10718,23 +10739,36 @@ co.nl co.no // Commerce Guys, SAS -// Submitted by Damien Tournoud 2015-01-22 +// Submitted by Damien Tournoud *.platform.sh // Cupcake : https://cupcake.io/ -// Submitted by Jonathan Rudenberg 2013-10-08 +// Submitted by Jonathan Rudenberg cupcake.is +// cyon GmbH : https://www.cyon.ch/ +// Submitted by Dominic Luechinger +cyon.link +cyon.site + +// Dansk.net : http://www.dansk.net/ +// Submitted by Anani Voule +biz.dk +co.dk +firm.dk +reg.dk +store.dk + // DreamHost : http://www.dreamhost.com/ -// Submitted by Andrew Farmer 2012-10-02 +// Submitted by Andrew Farmer dreamhosters.com // Drobo : http://www.drobo.com/ -// Submitted by Ricardo Padilha 2015-12-17 +// Submitted by Ricardo Padilha mydrobo.com // DuckDNS : http://www.duckdns.org/ -// Submitted by Richard Harper 2015-05-17 +// Submitted by Richard Harper duckdns.org // DynDNS.com : http://www.dyndns.com/services/dns/dyndns/ @@ -11018,9 +11052,12 @@ webhop.org worse-than.tv writesthisblog.com -// EU.org https://eu.org/ -// Submitted by Pierre Beyssac 2015-04-17 +// dynv6 : https://dynv6.com +// Submitted by Dominik Menke 2016-01-18 +dynv6.net +// EU.org https://eu.org/ +// Submitted by Pierre Beyssac eu.org al.eu.org asso.eu.org @@ -11078,8 +11115,12 @@ tr.eu.org uk.eu.org us.eu.org +// Facebook, Inc. +// Submitted by Peter Ruibal +apps.fbsbx.com + // Fastly Inc. http://www.fastly.com/ -// Submitted by Vladimir Vuksan 2013-05-31 +// Submitted by Vladimir Vuksan a.ssl.fastly.net b.ssl.fastly.net global.ssl.fastly.net @@ -11087,28 +11128,33 @@ a.prod.fastly.net global.prod.fastly.net // Firebase, Inc. -// Submitted by Chris Raynor 2014-01-21 +// Submitted by Chris Raynor firebaseapp.com // Flynn : https://flynn.io -// Submitted by Jonathan Rudenberg 2014-07-12 +// Submitted by Jonathan Rudenberg flynnhub.com // GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains -// Submitted by David Illsley 2014-08-28 +// Submitted by David Illsley service.gov.uk // GitHub, Inc. -// Submitted by Ben Toews 2014-02-06 +// Submitted by Patrick Toomey github.io githubusercontent.com +githubcloud.com +*.api.githubcloud.com +*.ext.githubcloud.com +gist.githubcloud.com +*.githubcloudusercontent.com // GlobeHosting, Inc. -// Submitted by Zoltan Egresi 2013-07-12 +// Submitted by Zoltan Egresi ro.com // Google, Inc. -// Submitted by Eduardo Vela 2014-12-19 +// Submitted by Eduardo Vela appspot.com blogspot.ae blogspot.al @@ -11196,12 +11242,12 @@ withyoutube.com hashbang.sh // Heroku : https://www.heroku.com/ -// Submitted by Tom Maher 2013-05-02 +// Submitted by Tom Maher herokuapp.com herokussl.com // iki.fi -// Submitted by Hannu Aronsson 2009-11-05 +// Submitted by Hannu Aronsson iki.fi // info.at : http://www.info.at/ @@ -11212,45 +11258,45 @@ info.at co.pl // Microsoft : http://microsoft.com -// Submitted by Barry Dorrans 2014-01-24 +// Submitted by Barry Dorrans azurewebsites.net azure-mobile.net cloudapp.net // Mozilla Foundation : https://mozilla.org/ -// Submited by glob 2015-07-06 +// Submitted by glob bmoattachments.org // Neustar Inc. -// Submitted by Trung Tran 2015-04-23 +// Submitted by Trung Tran 4u.com // ngrok : https://ngrok.com/ -// Submitted by Alan Shreve 2015-11-10 +// Submitted by Alan Shreve ngrok.io // NFSN, Inc. : https://www.NearlyFreeSpeech.NET/ -// Submitted by Jeff Wheelhouse 2014-02-02 +// Submitted by Jeff Wheelhouse nfshost.com // NYC.mn : http://www.information.nyc.mn -// Submitted by Matthew Brown 2013-03-11 +// Submitted by Matthew Brown nyc.mn // One Fold Media : http://www.onefoldmedia.com/ -// Submitted by Eddie Jones 2014-06-10 +// Submitted by Eddie Jones nid.io // Opera Software, A.S.A. -// Submitted by Yngve Pettersen 2009-11-26 +// Submitted by Yngve Pettersen operaunite.com // OutSystems -// Submitted by Duarte Santos 2014-03-11 +// Submitted by Duarte Santos outsystemscloud.com // Pagefront : https://www.pagefronthq.com/ -// Submitted by Jason Kriss 2015-12-02 +// Submitted by Jason Kriss pagefrontapp.com // .pl domains (grandfathered) @@ -11262,45 +11308,49 @@ wroc.pl zakopane.pl // Pantheon Systems, Inc. : https://pantheon.io/ -// Submitted by Gary Dylina 2015-09-14 +// Submitted by Gary Dylina pantheon.io gotpantheon.com +// prgmr.com : https://prgmr.com/ +// Submitted by Sarah Newman +xen.prgmr.com + // priv.at : http://www.nic.priv.at/ -// Submitted by registry 2008-06-09 +// Submitted by registry priv.at // QA2 -// Submitted by Daniel Dent (https://www.danieldent.com/) 2015-07-16 +// Submitted by Daniel Dent (https://www.danieldent.com/) qa2.com // Rackmaze LLC : https://www.rackmaze.com -// Submitted by Kirill Pertsev 2015-12-02 +// Submitted by Kirill Pertsev rackmaze.com rackmaze.net // Red Hat, Inc. OpenShift : https://openshift.redhat.com/ -// Submitted by Tim Kramer 2012-10-24 +// Submitted by Tim Kramer rhcloud.com // Sandstorm Development Group, Inc. : https://sandcats.io/ -// Submitted by Asheesh Laroia 2015-07-21 +// Submitted by Asheesh Laroia sandcats.io // Service Online LLC : http://drs.ua/ -// Submitted by Serhii Bulakh 2015-07-30 +// Submitted by Serhii Bulakh biz.ua co.ua pp.ua // SinaAppEngine : http://sae.sina.com.cn/ -// Submitted by SinaAppEngine 2015-02-02 +// Submitted by SinaAppEngine sinaapp.com vipsinaapp.com 1kapp.com // Synology, Inc. : https://www.synology.com/ -// Submitted by Rony Weng 2015-12-02 +// Submitted by Rony Weng diskstation.me dscloud.biz dscloud.me @@ -11323,18 +11373,18 @@ med.pl sopot.pl // UDR Limited : http://www.udr.hk.com -// Submitted by registry 2014-11-07 +// Submitted by registry hk.com hk.org ltd.hk inc.hk // Yola : https://www.yola.com/ -// Submitted by Stefano Rivera 2014-07-09 +// Submitted by Stefano Rivera yolasite.com // ZaNiC : http://www.za.net/ -// Submitted by registry 2009-10-03 +// Submitted by registry za.net za.org From 2bfec89dc25923ce1b5164e0de1e4ec4915e96d0 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 18:28:07 +0100 Subject: [PATCH 058/450] Yard is incompartible with Rake 11 --- Gemfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Gemfile b/Gemfile index c1b64eac..74ad51ce 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,7 @@ source "http://rubygems.org" gemspec +gem 'rake', '< 11' gem 'minitest' gem 'minitest-reporters' gem 'coveralls', require: false From 854d416311b916a34872b82369548863e87a168c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 21:34:40 +0100 Subject: [PATCH 059/450] Fix bug where a suffix would partially match an input Given a rule `le.it`, the rule should not match `example.it`. --- lib/public_suffix/rule.rb | 3 ++- test/unit/rule_test.rb | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 6dc169bb..76c9ae22 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -146,7 +146,8 @@ def match?(name) # rules like foo.*.com. If the assumption is incorrect, # we need to properly walk the input and skip parts according # to wildcard component. - name.end_with?(value) + diff = name.chomp(value) + diff.empty? || diff[-1] == "." end # Checks if this rule allows +domain+. diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index 8e3cac63..f40a6e71 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -79,6 +79,13 @@ def test_match assert !@klass.new("go.uk").match?("example.co.uk") end + def test_match_partial_match + assert_equal false, @klass.new("le.it").match?("example.it") + assert_equal true , @klass.new("le.it").match?("le.it") + assert_equal true , @klass.new("le.it").match?("foo.le.it") + end + + def test_length assert_raises(NotImplementedError) { @klass.new("com").length } end From 92afe4bd35e9463ec0bb4485a5ca59ea4f41b7d6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 22:17:20 +0100 Subject: [PATCH 060/450] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fe86cf9..2f0564a6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Public Suffix List +# Public Suffix for Ruby PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](http://publicsuffix.org/). From c92f5a9bd0b42d99a56c504b49626a4d0b70da00 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 22:18:43 +0100 Subject: [PATCH 061/450] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f0564a6..6622a3d4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Public Suffix for Ruby +# Public Suffix Ruby PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](http://publicsuffix.org/). From 51836ed3123d0ffb962ddd33bd20856927355356 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 22:19:55 +0100 Subject: [PATCH 062/450] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6622a3d4..8a8b87f4 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,17 @@ PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](http://publicsuffix.org/). -[![Build Status](https://secure.travis-ci.org/weppos/publicsuffix-ruby.png)](http://travis-ci.org/weppos/publicsuffix-ruby) +[![Build Status](https://travis-ci.org/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.org/weppos/publicsuffix-ruby) ## What is the Public Suffix List? -The Public Suffix List is a cross-vendor initiative to provide an accurate list of domain name suffixes. +The [Public Suffix List](https://publicsuffix.org) is a cross-vendor initiative to provide an accurate list of domain name suffixes. The Public Suffix List is an initiative of the Mozilla Project, but is maintained as a community resource. It is available for use in any software, but was originally created to meet the needs of browser manufacturers. A "public suffix" is one under which Internet users can directly register names. Some examples of public suffixes are ".com", ".co.uk" and "pvt.k12.wy.us". The Public Suffix List is a list of all known public suffixes. -Source: http://publicsuffix.org - ## Why the Public Suffix List is better than any available Regular Expression parser? From 659f3debd539c4c829c640cb631e150f8269f625 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 10 Mar 2016 22:26:10 +0100 Subject: [PATCH 063/450] Add examples for excluding private domains at runtime --- README.md | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 8a8b87f4..130756d9 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ For an older versions of Ruby use a previous release. ## Installation -The best way to install *PublicSuffix* is via [RubyGems](https://rubygems.org/). +The best way to install PublicSuffix is via [RubyGems](https://rubygems.org/). ```shell $ gem install public_suffix @@ -124,27 +124,35 @@ PublicSuffix.domain("www.google.com.") ## Private domains -This library has support for switching off support for private (non-ICANN). The private domains section is stripped when the list is parsed, hence you will need to re-parse it. +This library has support for switching off support for private (non-ICANN). ```ruby -# Parse a domain on a private TLD -domain = PublicSuffix.parse("something.blogspot.com") -# => # -domain.tld +# Extract a domain including private domains (by default) +PublicSuffix.domain("something.blogspot.com") +# => "something.blogspot.com" + +# Extract a domain excluding private domains +PublicSuffix.domain("something.blogspot.com", include_private: false) # => "blogspot.com" +# It also works for #parse and #valid? +PublicSuffix.parse("something.blogspot.com", include_private: false) +PublicSuffix.valid?("something.blogspot.com", include_private: false) +``` + +If you don't care about private domains at all, it's more efficient to exclude them when the list is parsed: + +```ruby # Disable support for private TLDs PublicSuffix::List.default = Public::Suffix.parse(Public::Suffix.default_definition, private_domains: false) -# => # -domain = PublicSuffix.parse("something.blogspot.com") -# => # -domain.tld -# => "com" +# => "blogspot.com" +PublicSuffix.domain("something.blogspot.com") +# => "blogspot.com" ``` -## Does ```PublicSuffix``` make requests to Public Suffix List website? +## Does PublicSuffix make requests to Public Suffix List website? -No. ```PublicSuffix``` comes with a bundled list. It does not make any HTTP requests to parse or validate a domain. +No. PublicSuffix comes with a bundled list. It does not make any HTTP requests to parse or validate a domain. ## Feedback and bug reports From a492d6168cb864b8f79491d6c74577db9370ec68 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 11 Mar 2016 20:50:50 +0100 Subject: [PATCH 064/450] Consistently reuse the param "name" instead of "domain" --- lib/public_suffix/rule.rb | 48 ++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 76c9ae22..db62e339 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -24,7 +24,7 @@ module Rule # # Abstract rule class # # This represent the base class for a Rule definition - # in the {Public Suffix List}[http://publicsuffix.org]. + # in the {Public Suffix List}[https://publicsuffix.org]. # # This is intended to be an Abstract class # and you shouldn't create a direct instance. The only purpose @@ -65,11 +65,10 @@ module Rule # # ## Rule Usage # - # A rule describes the composition of a domain name - # and explains how to tokenize the domain name - # into tld, sld and trd. + # A rule describes the composition of a domain name and explains how to tokenize + # the name into tld, sld and trd. # - # To use a rule, you first need to be sure the domain you want to tokenize + # To use a rule, you first need to be sure the name you want to tokenize # can be handled by the current rule. # You can use the #match? method. # @@ -81,7 +80,7 @@ module Rule # rule.match?("google.com") # # => false # - # Rule order is significant. A domain can match more than one rule. + # Rule order is significant. A name can match more than one rule. # See the {Public Suffix Documentation}[http://publicsuffix.org/format/] # to learn more about rule priority. # @@ -117,9 +116,7 @@ def initialize(value, private: false) # Checks whether this rule is equal to other. # - # @param [PublicSuffix::Rule::*] other - # The rule to compare. - # + # @param [PublicSuffix::Rule::*] other The rule to compare # @return [Boolean] # Returns true if this rule and other are instances of the same class # and has the same value, false otherwise. @@ -129,7 +126,7 @@ def ==(other) end alias :eql? :== - # Checks if this rule matches +domain+. + # Checks if this rule matches +name+. # # @example # rule = Rule.factory("com") @@ -150,12 +147,7 @@ def match?(name) diff.empty? || diff[-1] == "." end - # Checks if this rule allows +domain+. - # - # @param [String, #to_s] domain - # The domain name to check. - # - # @return [Boolean] + # Checks if this rule allows +name+. # # @example # rule = Rule.factory("*.do") @@ -165,8 +157,10 @@ def match?(name) # rule.allow?("www.example.do") # # => true # - def allow?(domain) - !decompose(domain).last.nil? + # @param [String, #to_s] name The domain name to check + # @return [Boolean] + def allow?(name) + !decompose(name).last.nil? end # @abstract @@ -179,10 +173,9 @@ def length raise NotImplementedError end - # @param domain [String, #to_s] The domain name to decompose. - # @return [Array] - # # @abstract + # @param [String, #to_s] name The domain name to decompose + # @return [Array] def decompose(domain) raise NotImplementedError end @@ -205,9 +198,9 @@ def rule value end - # Decomposes the domain according to rule properties. + # Decomposes the domain name according to rule properties. # - # @param domain [String, #to_s] The domain name to decompose. + # @param [String, #to_s] name The domain name to decompose # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = parts.join('\.') @@ -252,9 +245,9 @@ def rule value == "" ? STAR : STAR + DOT + value end - # Decomposes the domain according to rule properties. + # Decomposes the domain name according to rule properties. # - # @param domain [String, #to_s] The domain name to decompose. + # @param [String, #to_s] name The domain name to decompose # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = (['.*?'] + parts).join('\.') @@ -300,9 +293,9 @@ def rule BANG + value end - # Decomposes the domain according to rule properties. + # Decomposes the domain name according to rule properties. # - # @param domain [String, #to_s] The domain name to decompose. + # @param [String, #to_s] name The domain name to decompose # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = parts.join('\.') @@ -351,7 +344,6 @@ def length # # => # # # @param [String] name The rule definition. - # # @return [PublicSuffix::Rule::*] A rule instance. def self.factory(name, **options) case name.to_s[0,1] From b072d83192005854c8c9cd32e6b3b1c31bd50268 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 12 Mar 2016 12:15:05 +0100 Subject: [PATCH 065/450] Merge name_to_labels and name_to_parts methods Consistently reuse labels to reference the name parts (as in the PSL site). Stop using labels to reference the reverse split of a name. Also, we don't need the reverse split anymore (as comparison is no longer split based). --- lib/public_suffix/domain.rb | 24 +++--------------------- lib/public_suffix/list.rb | 4 ++-- lib/public_suffix/rule.rb | 23 +++++++++++++++-------- test/unit/domain_test.rb | 14 +++----------- 4 files changed, 23 insertions(+), 42 deletions(-) diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 2f747760..2a796e90 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -10,39 +10,21 @@ module PublicSuffix class Domain - # Splits a string into the dot-separated parts and reverse them. + # Splits a string into the labels, that is the dot-separated parts. # # The input is not validated, but it is assumed to be a valid domain name. # # @example # # name_to_labels('example.com') - # # => ['com', 'example'] - # - # name_to_labels('example.co.uk') - # # => ['uk', 'co', 'example'] - # - # @param name [String, #to_s] The domain name to split. - # @return [Array] - def self.name_to_labels(name) - name_to_parts(name).reverse - end - - # Splits a string into the dot-separated parts. - # - # The input is not validated, but it is assumed to be a valid domain name. - # - # @example - # - # name_to_parts('example.com') # # => ['example', 'com'] # - # name_to_parts('example.co.uk') + # name_to_labels('example.co.uk') # # => ['example', 'co', 'uk'] # # @param name [String, #to_s] The domain name to split. # @return [Array] - def self.name_to_parts(name) + def self.name_to_labels(name) name.to_s.split(DOT) end diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 93b9090f..6ef87070 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -151,7 +151,7 @@ def initialize(&block) def create_index! @indexes = {} @rules.each_with_index do |rule, index| - tld = Domain.name_to_parts(rule.value).last + tld = Domain.name_to_labels(rule.value).last @indexes[tld] ||= [] @indexes[tld] << index end @@ -276,7 +276,7 @@ def find(name, default: default_rule, **options) # @return [Array] def select(name, include_private: true) name = name.to_s - indices = (@indexes[Domain.name_to_parts(name).last] || []) + indices = (@indexes[Domain.name_to_labels(name).last] || []) finder = @rules.values_at(*indices).lazy finder = finder.select { |rule| rule.match?(name) } diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index db62e339..ff9214c9 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -128,12 +128,19 @@ def ==(other) # Checks if this rule matches +name+. # + # A domain name is said to match a rule if and only if all of the following conditions are met: + # - When the domain and rule are split into corresponding labels, + # that the domain contains as many or more labels than the rule. + # - Beginning with the right-most labels of both the domain and the rule, + # and continuing for all labels in the rule, one finds that for every pair, + # either they are identical, or that the label from the rule is "*". + # + # @see https://publicsuffix.org/list/ + # # @example - # rule = Rule.factory("com") - # # # - # rule.match?("example.com") + # Rule.factory("com").match?("example.com") # # => true - # rule.match?("example.net") + # Rule.factory("com").match?("example.net") # # => false # # @param name [String, #to_s] The domain name to check. @@ -343,17 +350,17 @@ def length # PublicSuffix::Rule.factory("!congresodelalengua3.ar") # # => # # - # @param [String] name The rule definition. + # @param [String] content The rule content. # @return [PublicSuffix::Rule::*] A rule instance. - def self.factory(name, **options) - case name.to_s[0,1] + def self.factory(content, **options) + case content.to_s[0,1] when STAR Wildcard when BANG Exception else Normal - end.new(name, **options) + end.new(content, **options) end # The default rule to use if no rule match. diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index 987217ff..ef71e580 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -8,23 +8,15 @@ def setup # Tokenizes given input into labels. def test_self_name_to_labels - assert_equal %w( com live spaces someone ), + assert_equal %w( someone spaces live com ), PublicSuffix::Domain.name_to_labels("someone.spaces.live.com") - assert_equal %w( com zoho wiki leontina23samiko ), + assert_equal %w( leontina23samiko wiki zoho com ), PublicSuffix::Domain.name_to_labels("leontina23samiko.wiki.zoho.com") end # Converts input into String. def test_self_name_to_labels_converts_input_to_string - assert_equal %w( com live spaces someone ), - PublicSuffix::Domain.name_to_labels(:"someone.spaces.live.com") - end - - # Ignores trailing . - def test_self_name_to_labels_ignores_trailing_dot - assert_equal %w( com live spaces someone ), - PublicSuffix::Domain.name_to_labels("someone.spaces.live.com") - assert_equal %w( com live spaces someone ), + assert_equal %w( someone spaces live com ), PublicSuffix::Domain.name_to_labels(:"someone.spaces.live.com") end From 32b6d0a85266b05ff7d9652d801a007f140bd840 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 12 Mar 2016 19:51:23 +0100 Subject: [PATCH 066/450] Remove unnecessary Rule.allow? Keep the parse logic outside the Rule. --- lib/public_suffix.rb | 3 +- lib/public_suffix/rule.rb | 16 ------ test/unit/rule_test.rb | 103 +++++++++++++------------------------- 3 files changed, 36 insertions(+), 86 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index bfff7296..1f579662 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -63,7 +63,7 @@ def self.parse(name, list: List.default, include_private: true) if rule.nil? raise DomainInvalid, "`#{what}` is not a valid domain" end - if !rule.allow?(what) + if rule.decompose(what).last.nil? raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" end @@ -113,6 +113,7 @@ def self.valid?(name, list: List.default, include_private: true) rule = List.default.find(what, include_private: include_private) !rule.nil? && rule.allow?(what) + !rule.nil? && !rule.decompose(what).last.nil? end # Attempt to parse the name and returns the domain, if valid. diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index ff9214c9..4162ec0d 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -154,22 +154,6 @@ def match?(name) diff.empty? || diff[-1] == "." end - # Checks if this rule allows +name+. - # - # @example - # rule = Rule.factory("*.do") - # # => # - # rule.allow?("example.do") - # # => false - # rule.allow?("www.example.do") - # # => true - # - # @param [String, #to_s] name The domain name to check - # @return [Boolean] - def allow?(name) - !decompose(name).last.nil? - end - # @abstract def parts raise NotImplementedError diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index f40a6e71..27733e3f 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -66,23 +66,40 @@ def test_equality_with_internals def test_match - assert @klass.new("uk").match?("example.uk") - assert !@klass.new("gk").match?("example.uk") - assert !@klass.new("example").match?("example.uk") - - assert @klass.new("uk").match?("example.co.uk") - assert !@klass.new("gk").match?("example.co.uk") - assert !@klass.new("co").match?("example.co.uk") - - assert @klass.new("co.uk").match?("example.co.uk") - assert !@klass.new("uk.co").match?("example.co.uk") - assert !@klass.new("go.uk").match?("example.co.uk") - end - - def test_match_partial_match - assert_equal false, @klass.new("le.it").match?("example.it") - assert_equal true , @klass.new("le.it").match?("le.it") - assert_equal true , @klass.new("le.it").match?("foo.le.it") + [ + # standard match + [PublicSuffix::Rule.factory("uk"), "uk", true], + [PublicSuffix::Rule.factory("uk"), "example.uk", true], + [PublicSuffix::Rule.factory("uk"), "example.co.uk", true], + [PublicSuffix::Rule.factory("co.uk"), "example.co.uk", true], + + [PublicSuffix::Rule.factory("*.com"), "com", false], + [PublicSuffix::Rule.factory("*.com"), "example.com", true], + [PublicSuffix::Rule.factory("*.com"), "foo.example.com", true], + [PublicSuffix::Rule.factory("!example.com"), "com", false], + [PublicSuffix::Rule.factory("!example.com"), "example.com", true], + [PublicSuffix::Rule.factory("!example.com"), "foo.example.com", true], + + # TLD mismatch + [PublicSuffix::Rule.factory("gk"), "example.uk", false], + [PublicSuffix::Rule.factory("gk"), "example.co.uk", false], + [PublicSuffix::Rule.factory("co.uk"), "uk", false], + + # general mismatch + [PublicSuffix::Rule.factory("uk.co"), "example.co.uk", false], + [PublicSuffix::Rule.factory("go.uk"), "example.co.uk", false], + [PublicSuffix::Rule.factory("co.uk"), "uk", false], + + # partial matches/mismatches + [PublicSuffix::Rule.factory("co"), "example.co.uk", false], + [PublicSuffix::Rule.factory("example"), "example.uk", false], + [PublicSuffix::Rule.factory("le.it"), "example.it", false], + [PublicSuffix::Rule.factory("le.it"), "le.it", true], + [PublicSuffix::Rule.factory("le.it"), "foo.le.it", true], + + ].each do |rule, input, expected| + assert_equal expected, rule.match?(input) + end end @@ -116,27 +133,6 @@ def test_initialize end - def test_match - assert @klass.new("uk").match?("example.uk") - assert !@klass.new("gk").match?("example.uk") - assert !@klass.new("example").match?("example.uk") - - assert @klass.new("uk").match?("example.co.uk") - assert !@klass.new("gk").match?("example.co.uk") - assert !@klass.new("co").match?("example.co.uk") - - assert @klass.new("co.uk").match?("example.co.uk") - assert !@klass.new("uk.co").match?("example.co.uk") - assert !@klass.new("go.uk").match?("example.co.uk") - end - - def test_allow - assert !@klass.new("com").allow?("com") - assert @klass.new("com").allow?("example.com") - assert @klass.new("com").allow?("www.example.com") - end - - def test_length assert_equal 1, @klass.new("com").length assert_equal 2, @klass.new("co.com").length @@ -173,22 +169,6 @@ def test_initialize end - def test_match - assert @klass.new("!uk").match?("example.co.uk") - assert !@klass.new("!gk").match?("example.co.uk") - assert @klass.new("!co.uk").match?("example.co.uk") - assert !@klass.new("!go.uk").match?("example.co.uk") - assert @klass.new("!british-library.uk").match?("british-library.uk") - assert !@klass.new("!british-library.uk").match?("example.co.uk") - end - - def test_allow - assert !@klass.new("!british-library.uk").allow?("uk") - assert @klass.new("!british-library.uk").allow?("british-library.uk") - assert @klass.new("!british-library.uk").allow?("www.british-library.uk") - end - - def test_length assert_equal 1, @klass.new("!british-library.uk").length assert_equal 2, @klass.new("!foo.british-library.uk").length @@ -223,21 +203,6 @@ def test_initialize end - def test_match - assert @klass.new("*.uk").match?("example.uk") - assert @klass.new("*.uk").match?("example.co.uk") - assert @klass.new("*.co.uk").match?("example.co.uk") - assert !@klass.new("*.go.uk").match?("example.co.uk") - end - - def test_allow - assert !@klass.new("*.uk").allow?("uk") - assert !@klass.new("*.uk").allow?("co.uk") - assert @klass.new("*.uk").allow?("example.co.uk") - assert @klass.new("*.uk").allow?("www.example.co.uk") - end - - def test_length assert_equal 2, @klass.new("*.uk").length assert_equal 3, @klass.new("*.co.uk").length From bd0c89f80becda846aae5489ca86d7078d0149db Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 12 Mar 2016 19:55:47 +0100 Subject: [PATCH 067/450] Fix bug where the scanner never set private domains --- lib/public_suffix/list.rb | 14 ++--- test/unit/list_test.rb | 109 ++++++++++++++++++++++++-------------- test/unit/rule_test.rb | 3 +- 3 files changed, 77 insertions(+), 49 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 6ef87070..3425a4a2 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -96,16 +96,16 @@ def self.parse(input, private_domains: true) line.strip! case - # strip blank lines + # skip blank lines + when line.empty? + next + + # include private domains or stop scanner when line.include?(private_token) break if !private_domains section = 2 - # strip blank lines - when line.empty? - next - - # strip comments + # skip comments when line.start_with?(comment_token) next @@ -228,7 +228,7 @@ def clear self end - # Returns the most appropriate rule for domain. + # Finds and returns the most appropriate rule for the domain name. # # From the Public Suffix List documentation: # diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 3c4a0096..65685032 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -83,21 +83,56 @@ def test_clear def test_find - assert_equal PublicSuffix::Rule.factory("com"), list.find("example.com") - assert_equal PublicSuffix::Rule.factory("com"), list.find("foo.example.com") - assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("example.uk") - assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("example.co.uk") - assert_equal PublicSuffix::Rule.factory("*.uk"), list.find("foo.example.co.uk") + list = PublicSuffix::List.parse(< Date: Sat, 12 Mar 2016 19:56:01 +0100 Subject: [PATCH 068/450] Properly pass the options to the List.find --- lib/public_suffix.rb | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 1f579662..ac87795e 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -55,11 +55,13 @@ module PublicSuffix # If domain is not a valid domain. # @raise [PublicSuffix::DomainNotAllowed] # If a rule for +domain+ is found, but the rule doesn't allow +domain+. - def self.parse(name, list: List.default, include_private: true) + def self.parse(name, list: List.default, default_rule: nil, include_private: true) what = normalize(name) raise what if what.is_a?(DomainInvalid) - rule = list.find(what, include_private: include_private) + default_rule ||= list.default_rule + rule = list.find(what, default: default_rule, include_private: include_private) + if rule.nil? raise DomainInvalid, "`#{what}` is not a valid domain" end @@ -107,12 +109,13 @@ def self.parse(name, list: List.default, include_private: true) # @param [String, #to_s] name The domain name or fully qualified domain name to validate. # @param [Boolean] include_private # @return [Boolean] - def self.valid?(name, list: List.default, include_private: true) + def self.valid?(name, list: List.default, default_rule: nil, include_private: true) what = normalize(name) return false if what.is_a?(DomainInvalid) - rule = List.default.find(what, include_private: include_private) - !rule.nil? && rule.allow?(what) + default_rule ||= list.default_rule + rule = list.find(what, default: default_rule, include_private: include_private) + !rule.nil? && !rule.decompose(what).last.nil? end @@ -124,8 +127,8 @@ def self.valid?(name, list: List.default, include_private: true) # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} # @param [Boolean] include_private # @return [String] - def self.domain(name, list: List.default, include_private: true) - parse(name, list: list, include_private: include_private).domain + def self.domain(name, **options) + parse(name, **options).domain rescue PublicSuffix::Error nil end From eed166333b5e617e8a302a144e8c1e5e3e7ea7a3 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 12 Mar 2016 19:58:08 +0100 Subject: [PATCH 069/450] Test both parse and domain in the acceptance cases --- test/acceptance_test.rb | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index a2683118..8519da8f 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -3,24 +3,26 @@ class AcceptanceTest < Minitest::Unit::TestCase ValidCases = [ - ["google.com", [nil, "google", "com"]], - ["foo.google.com", ["foo", "google", "com"]], + ["example.com", "example.com", [nil, "example", "com"]], + ["foo.example.com", "example.com", ["foo", "example", "com"]], - ["verybritish.co.uk", [nil, "verybritish", "co.uk"]], - ["foo.verybritish.co.uk", ["foo", "verybritish", "co.uk"]], + ["verybritish.co.uk", "verybritish.co.uk", [nil, "verybritish", "co.uk"]], + ["foo.verybritish.co.uk", "verybritish.co.uk", ["foo", "verybritish", "co.uk"]], - ["parliament.uk", [nil, "parliament", "uk"]], - ["foo.parliament.uk", ["foo", "parliament", "uk"]], + ["parliament.uk", "parliament.uk", [nil, "parliament", "uk"]], + ["foo.parliament.uk", "parliament.uk", ["foo", "parliament", "uk"]], ] def test_valid - ValidCases.each do |name, results| - domain = PublicSuffix.parse(name) + ValidCases.each do |input, domain, results| + parsed = PublicSuffix.parse(input) trd, sld, tld = results - assert_equal tld, domain.tld, "Invalid tld for '#{name}'" - assert_equal sld, domain.sld, "Invalid sld for '#{name}'" - assert_equal trd, domain.trd, "Invalid trd for '#{name}'" - assert PublicSuffix.valid?(name) + assert_equal tld, parsed.tld, "Invalid tld for `#{name}`" + assert_equal sld, parsed.sld, "Invalid sld for `#{name}`" + assert_equal trd, parsed.trd, "Invalid trd for `#{name}`" + + assert_equal domain, PublicSuffix.domain(input) + assert PublicSuffix.valid?(input) end end From ed2c89b1b8a358258b28ea5dcf9817a968760b29 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 17 Mar 2016 20:45:24 +0100 Subject: [PATCH 070/450] Update list --- Rakefile | 4 ++-- data/{definitions.txt => list.txt} | 2 +- lib/public_suffix/list.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename data/{definitions.txt => list.txt} (99%) diff --git a/Rakefile b/Rakefile index 987588e8..f59eaa4f 100644 --- a/Rakefile +++ b/Rakefile @@ -87,12 +87,12 @@ end desc "Downloads the Public Suffix List file from the repository and stores it locally." -task :upddef do +task :"update-list" do require "net/http" DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" - File.open("data/definitions.txt", "w+") do |f| + File.open("data/list.txt", "w+") do |f| response = Net::HTTP.get_response(URI.parse(DEFINITION_URL)) response.body f.write(response.body) diff --git a/data/definitions.txt b/data/list.txt similarity index 99% rename from data/definitions.txt rename to data/list.txt index c79649b5..57ad2424 100644 --- a/data/definitions.txt +++ b/data/list.txt @@ -11309,7 +11309,7 @@ zakopane.pl // Pantheon Systems, Inc. : https://pantheon.io/ // Submitted by Gary Dylina -pantheon.io +pantheonsite.io gotpantheon.com // prgmr.com : https://prgmr.com/ diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 3425a4a2..1d8a9fb4 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -42,7 +42,7 @@ module PublicSuffix class List include Enumerable - DEFAULT_DEFINITION_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "definitions.txt") + DEFAULT_DEFINITION_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "list.txt") # Gets the default rule list. # From a57a745c20a5c818e000438f06d57c818a621fed Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 17 Mar 2016 20:45:38 +0100 Subject: [PATCH 071/450] Update Gem homepage --- Rakefile | 2 +- lib/public_suffix.rb | 4 +--- lib/public_suffix/domain.rb | 4 +--- lib/public_suffix/errors.rb | 4 +--- lib/public_suffix/list.rb | 4 +--- lib/public_suffix/rule.rb | 4 +--- 6 files changed, 6 insertions(+), 16 deletions(-) diff --git a/Rakefile b/Rakefile index f59eaa4f..ca5399b7 100644 --- a/Rakefile +++ b/Rakefile @@ -18,7 +18,7 @@ spec = Gem::Specification.new do |s| s.author = "Simone Carletti" s.email = "weppos@weppos.net" - s.homepage = "http://simonecarletti.com/code/publicsuffix" + s.homepage = "https://simonecarletti.com/code/publicsuffix-ruby" s.license = "MIT" s.files = `git ls-files`.split("\n") diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index ac87795e..88deea69 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -1,10 +1,8 @@ -# -# Public Suffix +# = Public Suffix # # Domain name parser based on the Public Suffix List. # # Copyright (c) 2009-2016 Simone Carletti -# require 'public_suffix/domain' require 'public_suffix/version' diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 2a796e90..e1d103e4 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -1,10 +1,8 @@ -# -# Public Suffix +# = Public Suffix # # Domain name parser based on the Public Suffix List. # # Copyright (c) 2009-2016 Simone Carletti -# module PublicSuffix diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index a63dd555..8af76495 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -1,10 +1,8 @@ -# -# Public Suffix +# = Public Suffix # # Domain name parser based on the Public Suffix List. # # Copyright (c) 2009-2016 Simone Carletti -# module PublicSuffix diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 1d8a9fb4..f569ca4b 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -1,10 +1,8 @@ -# -# Public Suffix +# = Public Suffix # # Domain name parser based on the Public Suffix List. # # Copyright (c) 2009-2016 Simone Carletti -# module PublicSuffix diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 4162ec0d..68df4d12 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -1,10 +1,8 @@ -# -# Public Suffix +# = Public Suffix # # Domain name parser based on the Public Suffix List. # # Copyright (c) 2009-2016 Simone Carletti -# module PublicSuffix From 455adcf8eebb1a737ca4e5733a4fa09ed7af905e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 17 Mar 2016 21:19:11 +0100 Subject: [PATCH 072/450] Remove unnecessary List#to_a method --- lib/public_suffix/list.rb | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index f569ca4b..a54a5851 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -177,12 +177,6 @@ def each(*args, &block) @rules.each(*args, &block) end - # Gets the list as array. - # - # @return [Array] - def to_a - @rules - end # Adds the given object to the list # and optionally refreshes the rule index. From 2ea2dccbb37d68b0bfaaa6c681d1d1862bac7126 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 17 Mar 2016 21:22:10 +0100 Subject: [PATCH 073/450] Protect indexes from outside modifications --- CHANGELOG.md | 2 -- README.md | 2 +- lib/public_suffix/list.rb | 42 +++++++++++++++------------------ test/psl_test.rb | 4 ++-- test/unit/list_test.rb | 26 +++++++------------- test/unit/public_suffix_test.rb | 2 +- 6 files changed, 32 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80249824..67c1b66c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,8 +11,6 @@ - CHANGED: Updated definitions. -- CHANGED: PublicSuffix::List.default_definition no longer memoizes the data (no need to keep it in memory as the list is already memoized) Also the method now returns a String, instead of a File pointer (that was never closed). - - CHANGED: Removed deprecated PublicSuffix::InvalidDomain exception - CHANGED: If the suffix is now listed, then the prevaling rule is "*" as defined by the PSL algorithm (GH-91) diff --git a/README.md b/README.md index 130756d9..44c0472c 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ If you don't care about private domains at all, it's more efficient to exclude t ```ruby # Disable support for private TLDs -PublicSuffix::List.default = Public::Suffix.parse(Public::Suffix.default_definition, private_domains: false) +PublicSuffix::List.default = Public::Suffix.parse(File.read(Public::Suffix::DEFAULT_LIST_PATH), private_domains: false) # => "blogspot.com" PublicSuffix.domain("something.blogspot.com") # => "blogspot.com" diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index a54a5851..cd5821f3 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -40,16 +40,16 @@ module PublicSuffix class List include Enumerable - DEFAULT_DEFINITION_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "list.txt") + DEFAULT_LIST_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "list.txt") # Gets the default rule list. # # Initializes a new {PublicSuffix::List} parsing the content - # of {PublicSuffix::List.default_definition}, if required. + # of {PublicSuffix::List.default_list_content}, if required. # # @return [PublicSuffix::List] def self.default(**options) - @default ||= parse(default_definition, options) + @default ||= parse(File.read(DEFAULT_LIST_PATH), options) end # Sets the default rule list to +value+. @@ -70,13 +70,6 @@ def self.clear self end - # Reads and returns the content of the the default definition list. - # - # @return [String] - def self.default_definition - File.open(DEFAULT_DEFINITION_PATH) { |f| f.read } - end - # Parse given +input+ treating the content as Public Suffix List. # # See http://publicsuffix.org/format/ for more details about input format. @@ -108,7 +101,7 @@ def self.parse(input, private_domains: true) next else - list.add(Rule.factory(line, private: section == 2), false) + list.add(Rule.factory(line, private: section == 2), reindex: false) end end @@ -121,21 +114,16 @@ def self.parse(input, private_domains: true) # @return [Array] attr_reader :rules - # Gets the naive index, a hash that with the keys being the first label of - # every rule pointing to an array of integers (indexes of the rules in @rules). - # - # @return [Array] - attr_reader :indexes - + # Initializes an empty {PublicSuffix::List}. # # @yield [self] Yields on self. # @yieldparam [PublicSuffix::List] self The newly created instance. # def initialize(&block) - @rules = [] + @rules = [] yield(self) if block_given? - create_index! + reindex! end @@ -146,7 +134,7 @@ def initialize(&block) # For instance if @rules[5] and @rules[4] are the only elements of the list # where Rule#labels.first is 'us' @indexes['us'] #=> [5,4], that way in # select we can avoid mapping every single rule against the candidate domain. - def create_index! + def reindex! @indexes = {} @rules.each_with_index do |rule, index| tld = Domain.name_to_labels(rule.value).last @@ -155,6 +143,13 @@ def create_index! end end + # Gets the naive index, a hash that with the keys being the first label of + # every rule pointing to an array of integers (indexes of the rules in @rules). + def indexes + @indexes.dup + end + + # Checks whether two lists are equal. # # List one is equal to two, if two is an instance of @@ -189,11 +184,11 @@ def each(*args, &block) # # @return [self] # - # @see #create_index! + # @see #reindex! # - def add(rule, reindex = true) + def add(rule, reindex: true) @rules << rule - create_index! if reindex + reindex! if reindex self end alias << add @@ -217,6 +212,7 @@ def empty? # @return [self] def clear @rules.clear + reindex! self end diff --git a/test/psl_test.rb b/test/psl_test.rb index 8410dbad..e2600ff4 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -27,8 +27,8 @@ def self.tests def test_valid # Parse the PSL and run the tests - defs = File.read(File.join(ROOT, "data/definitions.txt")) - PublicSuffix::List.default = PublicSuffix::List.parse(defs) + data = File.read(PublicSuffix::List::DEFAULT_LIST_PATH) + PublicSuffix::List.default = PublicSuffix::List.parse(data) failures = [] self.class.tests.each do |input, output| diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 65685032..abfa88d3 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -16,17 +16,10 @@ def test_initialize assert_equal 0, @list.size end - def test_initialize_create_index_when_empty + def test_initialize_indexes assert_equal({}, @list.indexes) end - def test_indexes - assert !list.indexes.empty? - assert_equal [1,2,3,4], list.indexes.delete('uk') - assert_equal [0], list.indexes.delete('com') - assert list.indexes.empty? - end - def test_equality_with_self list = PublicSuffix::List.new @@ -83,7 +76,7 @@ def test_clear def test_find - list = PublicSuffix::List.parse(<[0, 3], "uk"=>[1, 2]}, list.indexes) end diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 8ae874b5..dcd47326 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -8,7 +8,7 @@ def test_private_domains_enabled_by_default end def test_private_domains_disable - PublicSuffix::List.default = PublicSuffix::List.parse(PublicSuffix::List.default_definition, private_domains: false) + PublicSuffix::List.default = PublicSuffix::List.parse(File.read(PublicSuffix::List::DEFAULT_LIST_PATH), private_domains: false) domain = PublicSuffix.parse("www.example.blogspot.com") assert_equal "com", domain.tld ensure From 9cb246c961ebd8492f75a45e3fb7f0736f80cb8c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 18 Mar 2016 12:28:29 +0100 Subject: [PATCH 074/450] Rename include_private to ignore_private Be consistent with the other Go library. --- README.md | 6 +++--- lib/public_suffix.rb | 14 +++++++------- lib/public_suffix/list.rb | 8 ++++---- test/acceptance_test.rb | 18 +++++++++--------- test/unit/list_test.rb | 14 +++++++------- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 44c0472c..2f42557d 100644 --- a/README.md +++ b/README.md @@ -132,12 +132,12 @@ PublicSuffix.domain("something.blogspot.com") # => "something.blogspot.com" # Extract a domain excluding private domains -PublicSuffix.domain("something.blogspot.com", include_private: false) +PublicSuffix.domain("something.blogspot.com", ignore_private: true) # => "blogspot.com" # It also works for #parse and #valid? -PublicSuffix.parse("something.blogspot.com", include_private: false) -PublicSuffix.valid?("something.blogspot.com", include_private: false) +PublicSuffix.parse("something.blogspot.com", ignore_private: true) +PublicSuffix.valid?("something.blogspot.com", ignore_private: true) ``` If you don't care about private domains at all, it's more efficient to exclude them when the list is parsed: diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 88deea69..e050cec3 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -46,19 +46,19 @@ module PublicSuffix # # @param [String, #to_s] name The domain name or fully qualified domain name to parse. # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} - # @param [Boolean] include_private + # @param [Boolean] ignore_private # @return [PublicSuffix::Domain] # # @raise [PublicSuffix::Error] # If domain is not a valid domain. # @raise [PublicSuffix::DomainNotAllowed] # If a rule for +domain+ is found, but the rule doesn't allow +domain+. - def self.parse(name, list: List.default, default_rule: nil, include_private: true) + def self.parse(name, list: List.default, default_rule: nil, ignore_private: false) what = normalize(name) raise what if what.is_a?(DomainInvalid) default_rule ||= list.default_rule - rule = list.find(what, default: default_rule, include_private: include_private) + rule = list.find(what, default: default_rule, ignore_private: ignore_private) if rule.nil? raise DomainInvalid, "`#{what}` is not a valid domain" @@ -105,14 +105,14 @@ def self.parse(name, list: List.default, default_rule: nil, include_private: tru # # # @param [String, #to_s] name The domain name or fully qualified domain name to validate. - # @param [Boolean] include_private + # @param [Boolean] ignore_private # @return [Boolean] - def self.valid?(name, list: List.default, default_rule: nil, include_private: true) + def self.valid?(name, list: List.default, default_rule: nil, ignore_private: true) what = normalize(name) return false if what.is_a?(DomainInvalid) default_rule ||= list.default_rule - rule = list.find(what, default: default_rule, include_private: include_private) + rule = list.find(what, default: default_rule, ignore_private: ignore_private) !rule.nil? && !rule.decompose(what).last.nil? end @@ -123,7 +123,7 @@ def self.valid?(name, list: List.default, default_rule: nil, include_private: tr # # @param [String, #to_s] name The domain name or fully qualified domain name to parse. # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} - # @param [Boolean] include_private + # @param [Boolean] ignore_private # @return [String] def self.domain(name, **options) parse(name, **options).domain diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index cd5821f3..5b209c9c 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -254,21 +254,21 @@ def find(name, default: default_rule, **options) # a sequential scan is performed. In most cases, where the number of rules for the same label # is limited, this algorithm is efficient enough. # - # If `include_private` is set to false, the algorithm will skip the rules that are flagged as private domain. + # If `ignore_private` is set to true, the algorithm will skip the rules that are flagged as private domain. # Note that the rules will still be part of the loop. If you frequently need to access lists # ignoring the private domains, you should create a list that doesn't include these domains setting the # `private_domains: false` option when calling {.parse}. # # @param [String, #to_s] name The domain name. - # @param [Boolean] include_private + # @param [Boolean] ignore_private # @return [Array] - def select(name, include_private: true) + def select(name, ignore_private: false) name = name.to_s indices = (@indexes[Domain.name_to_labels(name).last] || []) finder = @rules.values_at(*indices).lazy finder = finder.select { |rule| rule.match?(name) } - finder = finder.select { |rule| !rule.private } if include_private == false + finder = finder.select { |rule| !rule.private } if ignore_private finder.to_a end diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 8519da8f..11d9e0d4 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -82,20 +82,20 @@ def test_ignore_case IncludePrivateCases = [ - ["blogspot.com", false, "blogspot.com"], - ["blogspot.com", true, nil], - ["subdomain.blogspot.com", false, "blogspot.com"], - ["subdomain.blogspot.com", true, "subdomain.blogspot.com"], + ["blogspot.com", true, "blogspot.com"], + ["blogspot.com", false, nil], + ["subdomain.blogspot.com", true, "blogspot.com"], + ["subdomain.blogspot.com", false, "subdomain.blogspot.com"], ] - def test_include_private + def test_ignore_private # test domain and parse - IncludePrivateCases.each do |given, include_private, expected| - assert_equal expected, PublicSuffix.domain(given, include_private: include_private) + IncludePrivateCases.each do |given, ignore_private, expected| + assert_equal expected, PublicSuffix.domain(given, ignore_private: ignore_private) end # test valid? - IncludePrivateCases.each do |given, include_private, expected| - assert_equal expected != nil, PublicSuffix.valid?(given, include_private: include_private) + IncludePrivateCases.each do |given, ignore_private, expected| + assert_equal expected != nil, PublicSuffix.valid?(given, ignore_private: ignore_private) end end diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index abfa88d3..3f329bd2 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -138,7 +138,7 @@ def test_select_name_blank assert_equal [], list.select(" ") end - def test_select_include_private + def test_select_ignore_private list = PublicSuffix::List.new list.add r1 = PublicSuffix::Rule.factory("io") list.add r2 = PublicSuffix::Rule.factory("example.io", private: true) @@ -147,13 +147,13 @@ def test_select_include_private assert_equal list.select("example.io"), [r1, r2] assert_equal list.select("foo.example.io"), [r1, r2] - assert_equal list.select("foo.io", include_private: true), [r1] - assert_equal list.select("example.io", include_private: true), [r1, r2] - assert_equal list.select("foo.example.io", include_private: true), [r1, r2] + assert_equal list.select("foo.io", ignore_private: false), [r1] + assert_equal list.select("example.io", ignore_private: false), [r1, r2] + assert_equal list.select("foo.example.io", ignore_private: false), [r1, r2] - assert_equal list.select("foo.io", include_private: false), [r1] - assert_equal list.select("example.io", include_private: false), [r1] - assert_equal list.select("foo.example.io", include_private: false), [r1] + assert_equal list.select("foo.io", ignore_private: true), [r1] + assert_equal list.select("example.io", ignore_private: true), [r1] + assert_equal list.select("foo.example.io", ignore_private: true), [r1] end From abba354c79e891b8ffbfdf16c3639d896ddb652f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 26 Mar 2016 17:02:31 +0100 Subject: [PATCH 075/450] Update definitions --- data/list.txt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 57ad2424..86e60be4 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6727,6 +6727,9 @@ yt // http://www.dotmasr.eg/ مصر +// xn--e1a4c ("eu", Cyrillic) : EU +ею + // xn--node ("ge", Georgian Mkhedruli) : GE გე @@ -6933,7 +6936,7 @@ web.za *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-03-01T00:46:32Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-03-25T21:39:59Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7118,6 +7121,9 @@ archi // army : 2014-03-06 United TLD Holdco Ltd. army +// art : 2016-03-24 UK Creative Ideas Limited +art + // arte : 2014-12-11 Association Relative à la Télévision Européenne G.E.I.E. arte @@ -11295,6 +11301,10 @@ operaunite.com // Submitted by Duarte Santos outsystemscloud.com +// oy.lc +// Submitted by Charly Coste +oy.lc + // Pagefront : https://www.pagefronthq.com/ // Submitted by Jason Kriss pagefrontapp.com @@ -11312,6 +11322,10 @@ zakopane.pl pantheonsite.io gotpantheon.com +// Peplink | Pepwave : http://peplink.com/ +// Submitted by Steve Leung +mypep.link + // prgmr.com : https://prgmr.com/ // Submitted by Sarah Newman xen.prgmr.com From 193e650127876ab46ead520b97a291d2c21b3195 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:09:37 +0200 Subject: [PATCH 076/450] Add Rubocop auto-generated config --- .rubocop.yml | 4 + .rubocop_todo.yml | 388 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 392 insertions(+) create mode 100644 .rubocop.yml create mode 100644 .rubocop_todo.yml diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 00000000..fa25e64f --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,4 @@ +inherit_from: .rubocop_todo.yml + +# AllCops: +# TargetRubyVersion: 2.0 diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml new file mode 100644 index 00000000..79567d18 --- /dev/null +++ b/.rubocop_todo.yml @@ -0,0 +1,388 @@ +# This configuration was generated by +# `rubocop --auto-gen-config` +# on 2016-03-27 12:00:54 +0200 using RuboCop version 0.38.0. +# The point is for the user to remove these configuration records +# one by one as the offenses are removed from the code base. +# Note that changes in the inspected code, or installation of new +# versions of RuboCop, may require this file to be generated again. + +# Offense count: 1 +Lint/AmbiguousRegexpLiteral: + Exclude: + - 'test/unit/public_suffix_test.rb' + +# Offense count: 2 +Lint/Eval: + Exclude: + - 'test/psl_test.rb' + +# Offense count: 2 +Lint/IneffectiveAccessModifier: + Exclude: + - 'lib/public_suffix.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: IgnoreEmptyBlocks. +Lint/UnusedBlockArgument: + Exclude: + - 'test/unit/public_suffix_test.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods. +Lint/UnusedMethodArgument: + Exclude: + - 'lib/public_suffix/domain.rb' + - 'lib/public_suffix/list.rb' + - 'lib/public_suffix/rule.rb' + +# Offense count: 1 +Lint/UselessAccessModifier: + Exclude: + - 'lib/public_suffix.rb' + +# Offense count: 1 +Lint/UselessAssignment: + Exclude: + - 'test/execution_profiler.rb' + +# Offense count: 12 +Metrics/AbcSize: + Max: 38 + +# Offense count: 2 +# Configuration parameters: CountComments. +Metrics/ClassLength: + Max: 184 + +# Offense count: 77 +# Configuration parameters: AllowHeredoc, AllowURI, URISchemes. +# URISchemes: http, https +Metrics/LineLength: + Max: 719 + +# Offense count: 9 +# Configuration parameters: CountComments. +Metrics/MethodLength: + Max: 32 + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. +# SupportedStyles: outdent, indent +Style/AccessModifierIndentation: + Enabled: false + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: prefer_alias, prefer_alias_method +Style/Alias: + Exclude: + - 'lib/public_suffix/list.rb' + - 'lib/public_suffix/rule.rb' + +# Offense count: 1 +Style/AsciiComments: + Exclude: + - 'lib/public_suffix/list.rb' + +# Offense count: 5 +Style/ConstantName: + Exclude: + - 'test/acceptance_test.rb' + +# Offense count: 5 +Style/Documentation: + Exclude: + - 'spec/**/*' + - 'test/**/*' + - 'lib/public_suffix.rb' + - 'lib/public_suffix/domain.rb' + - 'lib/public_suffix/rule.rb' + +# Offense count: 2 +Style/DoubleNegation: + Exclude: + - 'Rakefile' + +# Offense count: 50 +# Cop supports --auto-correct. +Style/EmptyLines: + Exclude: + - 'Rakefile' + - 'lib/public_suffix.rb' + - 'lib/public_suffix/domain.rb' + - 'lib/public_suffix/list.rb' + - 'lib/public_suffix/rule.rb' + - 'test/acceptance_test.rb' + - 'test/psl_test.rb' + - 'test/unit/domain_test.rb' + - 'test/unit/list_test.rb' + - 'test/unit/public_suffix_test.rb' + - 'test/unit/rule_test.rb' + +# Offense count: 33 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: empty_lines, no_empty_lines +Style/EmptyLinesAroundClassBody: + Exclude: + - 'lib/public_suffix/domain.rb' + - 'lib/public_suffix/list.rb' + - 'lib/public_suffix/rule.rb' + - 'test/acceptance_test.rb' + - 'test/psl_test.rb' + - 'test/unit/domain_test.rb' + - 'test/unit/errors_test.rb' + - 'test/unit/list_test.rb' + - 'test/unit/public_suffix_test.rb' + - 'test/unit/rule_test.rb' + +# Offense count: 13 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: empty_lines, no_empty_lines +Style/EmptyLinesAroundModuleBody: + Exclude: + - 'lib/public_suffix.rb' + - 'lib/public_suffix/domain.rb' + - 'lib/public_suffix/errors.rb' + - 'lib/public_suffix/list.rb' + - 'lib/public_suffix/rule.rb' + - 'lib/public_suffix/version.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment, ForceEqualSignAlignment. +Style/ExtraSpacing: + Exclude: + - 'test/acceptance_test.rb' + - 'test/unit/list_test.rb' + +# Offense count: 3 +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: format, sprintf, percent +Style/FormatString: + Exclude: + - 'lib/public_suffix.rb' + - 'test/acceptance_test.rb' + - 'test/psl_test.rb' + +# Offense count: 2 +# Configuration parameters: MinBodyLength. +Style/GuardClause: + Exclude: + - 'lib/public_suffix/domain.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues. +# SupportedStyles: ruby19, ruby19_no_mixed_keys, hash_rockets +Style/HashSyntax: + Enabled: false + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: MaxLineLength. +Style/IfUnlessModifier: + Exclude: + - 'Gemfile' + - 'lib/public_suffix.rb' + - 'lib/public_suffix/domain.rb' + +# Offense count: 10 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. +# SupportedStyles: special_inside_parentheses, consistent, align_brackets +Style/IndentArray: + Enabled: false + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: Width. +Style/IndentationWidth: + Exclude: + - 'lib/public_suffix/rule.rb' + - 'test/execution_profiler.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/LeadingCommentSpace: + Exclude: + - 'lib/public_suffix/list.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/MultilineIfThen: + Exclude: + - 'public_suffix.gemspec' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. +# SupportedStyles: aligned, indented +Style/MultilineOperationIndentation: + Enabled: false + +# Offense count: 6 +# Cop supports --auto-correct. +Style/MutableConstant: + Exclude: + - 'Rakefile' + - 'test/acceptance_test.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/NegatedIf: + Exclude: + - 'Gemfile' + - 'lib/public_suffix/list.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: IncludeSemanticChanges. +Style/NonNilCheck: + Exclude: + - 'test/acceptance_test.rb' + +# Offense count: 9 +# Cop supports --auto-correct. +# Configuration parameters: PreferredDelimiters. +Style/PercentLiteralDelimiters: + Exclude: + - 'public_suffix.gemspec' + +# Offense count: 6 +# Cop supports --auto-correct. +Style/PerlBackrefs: + Exclude: + - 'lib/public_suffix/rule.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +Style/RedundantSelf: + Exclude: + - 'lib/public_suffix/list.rb' + - 'lib/public_suffix/rule.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes. +# SupportedStyles: slashes, percent_r, mixed +Style/RegexpLiteral: + Exclude: + - 'test/unit/public_suffix_test.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/RescueModifier: + Exclude: + - 'Rakefile' + - 'test/psl_test.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: AllowIfMethodIsEmpty. +Style/SingleLineMethods: + Exclude: + - 'test/unit/rule_test.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +Style/SpaceAfterComma: + Exclude: + - 'lib/public_suffix/rule.rb' + - 'test/psl_test.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment. +Style/SpaceAroundOperators: + Exclude: + - 'test/unit/list_test.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment. +Style/SpaceBeforeFirstArg: + Exclude: + - 'test/unit/list_test.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. +# SupportedStyles: space, no_space +Style/SpaceInsideBlockBraces: + Enabled: false + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles. +# SupportedStyles: space, no_space +Style/SpaceInsideHashLiteralBraces: + Enabled: false + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: SupportedStyles. +# SupportedStyles: use_perl_names, use_english_names +Style/SpecialGlobalVars: + EnforcedStyle: use_perl_names + +# Offense count: 501 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiterals: + Enabled: false + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: final_newline, final_blank_line +Style/TrailingBlankLines: + Exclude: + - 'test/acceptance_test.rb' + - 'test/performance_benchmark.rb' + - 'test/unit/errors_test.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles. +# SupportedStyles: comma, consistent_comma, no_comma +Style/TrailingCommaInLiteral: + Exclude: + - 'test/acceptance_test.rb' + - 'test/unit/rule_test.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +Style/TrailingWhitespace: + Exclude: + - 'lib/public_suffix.rb' + - 'lib/public_suffix/list.rb' + - 'test/acceptance_test.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist. +# Whitelist: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym +Style/TrivialAccessors: + Exclude: + - 'lib/public_suffix/list.rb' + +# Offense count: 9 +# Cop supports --auto-correct. +Style/UnneededPercentQ: + Exclude: + - 'public_suffix.gemspec' + +# Offense count: 7 +# Cop supports --auto-correct. +# Configuration parameters: SupportedStyles, WordRegex. +# SupportedStyles: percent, brackets +Style/WordArray: + EnforcedStyle: percent + MinSize: 3 From 715059e903db6c4e6396b1ea5b5b1bbb1dc2482a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:20:31 +0200 Subject: [PATCH 077/450] Rubocop: fix Style/DoubleNegation --- .rubocop.yml | 5 +++-- .rubocop_todo.yml | 11 +++-------- Rakefile | 4 ++-- test/acceptance_test.rb | 6 +++--- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index fa25e64f..d2cf56e1 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,5 @@ inherit_from: .rubocop_todo.yml -# AllCops: -# TargetRubyVersion: 2.0 +#AllCops: +# Exclude: +# - "test/**/*_test.rb" diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 79567d18..85df51b1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2016-03-27 12:00:54 +0200 using RuboCop version 0.38.0. +# on 2016-03-27 12:18:24 +0200 using RuboCop version 0.38.0. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new @@ -102,11 +102,6 @@ Style/Documentation: - 'lib/public_suffix/domain.rb' - 'lib/public_suffix/rule.rb' -# Offense count: 2 -Style/DoubleNegation: - Exclude: - - 'Rakefile' - # Offense count: 50 # Cop supports --auto-correct. Style/EmptyLines: @@ -331,7 +326,7 @@ Style/SpaceInsideHashLiteralBraces: Style/SpecialGlobalVars: EnforcedStyle: use_perl_names -# Offense count: 501 +# Offense count: 492 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline. # SupportedStyles: single_quotes, double_quotes @@ -379,7 +374,7 @@ Style/UnneededPercentQ: Exclude: - 'public_suffix.gemspec' -# Offense count: 7 +# Offense count: 4 # Cop supports --auto-correct. # Configuration parameters: SupportedStyles, WordRegex. # SupportedStyles: percent, brackets diff --git a/Rakefile b/Rakefile index ca5399b7..455706b9 100644 --- a/Rakefile +++ b/Rakefile @@ -60,8 +60,8 @@ require 'rake/testtask' Rake::TestTask.new do |t| t.libs = %w( lib test ) t.pattern = "test/**/*_test.rb" - t.verbose = !!ENV["VERBOSE"] - t.warning = !!ENV["WARNING"] + t.verbose = !ENV["VERBOSE"].nil? + t.warning = !ENV["WARNING"].nil? end require 'yard' diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 11d9e0d4..5ca616a0 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -64,9 +64,9 @@ def test_rejected CaseCases = [ - ["Www.google.com", ["www", "google", "com"]], - ["www.Google.com", ["www", "google", "com"]], - ["www.google.Com", ["www", "google", "com"]], + ["Www.google.com", %w( www google com )], + ["www.Google.com", %w( www google com )], + ["www.google.Com", %w( www google com )], ] def test_ignore_case From cd7a22c91d3ca29e4e5056ff4324125a71a978a0 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:24:51 +0200 Subject: [PATCH 078/450] Rubocop: fix Style/WordArray --- .rubocop.yml | 5 ++--- .rubocop_todo.yml | 7 ------- test/unit/list_test.rb | 2 +- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index d2cf56e1..5488bb50 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,4 @@ inherit_from: .rubocop_todo.yml -#AllCops: -# Exclude: -# - "test/**/*_test.rb" +Style/WordArray: + Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 85df51b1..f57b9efb 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -67,13 +67,6 @@ Metrics/LineLength: Metrics/MethodLength: Max: 32 -# Offense count: 1 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. -# SupportedStyles: outdent, indent -Style/AccessModifierIndentation: - Enabled: false - # Offense count: 2 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 3f329bd2..4e8d0f39 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -238,7 +238,7 @@ def test_self_parse_indexes end -private + private def list @_list ||= PublicSuffix::List.parse(< Date: Sun, 27 Mar 2016 12:27:13 +0200 Subject: [PATCH 079/450] Rubocop: fix Style/Alias --- .rubocop_todo.yml | 9 --------- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index f57b9efb..aab81cad 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -67,15 +67,6 @@ Metrics/LineLength: Metrics/MethodLength: Max: 32 -# Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: prefer_alias, prefer_alias_method -Style/Alias: - Exclude: - - 'lib/public_suffix/list.rb' - - 'lib/public_suffix/rule.rb' - # Offense count: 1 Style/AsciiComments: Exclude: diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 5b209c9c..a5220492 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -165,7 +165,7 @@ def ==(other) self.equal?(other) || self.rules == other.rules end - alias :eql? :== + alias eql? == # Iterates each rule in the list. def each(*args, &block) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 68df4d12..7e3f9a34 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -122,7 +122,7 @@ def ==(other) self.equal?(other) || (self.class == other.class && self.value == other.value) end - alias :eql? :== + alias eql? == # Checks if this rule matches +name+. # From 9b0653ac3282850e46613828fc54cc7b653aa478 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:29:19 +0200 Subject: [PATCH 080/450] Rubocop: fix Style/RedundantSelf --- .rubocop_todo.yml | 7 ------- lib/public_suffix/list.rb | 3 +-- lib/public_suffix/rule.rb | 3 +-- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index aab81cad..c35b59dc 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -239,13 +239,6 @@ Style/PerlBackrefs: Exclude: - 'lib/public_suffix/rule.rb' -# Offense count: 4 -# Cop supports --auto-correct. -Style/RedundantSelf: - Exclude: - - 'lib/public_suffix/list.rb' - - 'lib/public_suffix/rule.rb' - # Offense count: 1 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes. diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index a5220492..103e9d9c 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -162,8 +162,7 @@ def indexes # @return [Boolean] def ==(other) return false unless other.is_a?(List) - self.equal?(other) || - self.rules == other.rules + equal?(other) || rules == other.rules end alias eql? == diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 7e3f9a34..358c81a6 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -119,8 +119,7 @@ def initialize(value, private: false) # Returns true if this rule and other are instances of the same class # and has the same value, false otherwise. def ==(other) - self.equal?(other) || - (self.class == other.class && self.value == other.value) + equal?(other) || (self.class == other.class && value == other.value) end alias eql? == From d9fcc8236524acc383db5676fbfddf01dd6e0aea Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:30:27 +0200 Subject: [PATCH 081/450] Rubocop: fix Style/RegexpLiteral --- .rubocop_todo.yml | 8 -------- test/unit/public_suffix_test.rb | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index c35b59dc..8b395681 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -239,14 +239,6 @@ Style/PerlBackrefs: Exclude: - 'lib/public_suffix/rule.rb' -# Offense count: 1 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes. -# SupportedStyles: slashes, percent_r, mixed -Style/RegexpLiteral: - Exclude: - - 'test/unit/public_suffix_test.rb' - # Offense count: 2 # Cop supports --auto-correct. Style/RescueModifier: diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index dcd47326..0ceb7386 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -87,7 +87,7 @@ def test_self_parse_with_notlisted_name def test_self_parse_with_unallowed_domain error = assert_raises(PublicSuffix::DomainNotAllowed) { PublicSuffix.parse("example.ke") } - assert_match %r{example\.ke}, error.message + assert_match /example\.ke/, error.message end def test_self_parse_with_uri From 86d9c5bd2989675601fbfc653ccb73180f1ea73a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:31:15 +0200 Subject: [PATCH 082/450] Rubocop: fix Style/RescueModifier --- .rubocop.yml | 3 +++ .rubocop_todo.yml | 7 ------- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 5488bb50..96a3e72c 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,3 +2,6 @@ inherit_from: .rubocop_todo.yml Style/WordArray: Enabled: false + +Style/RescueModifier: + Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8b395681..be71f3d2 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -239,13 +239,6 @@ Style/PerlBackrefs: Exclude: - 'lib/public_suffix/rule.rb' -# Offense count: 2 -# Cop supports --auto-correct. -Style/RescueModifier: - Exclude: - - 'Rakefile' - - 'test/psl_test.rb' - # Offense count: 1 # Cop supports --auto-correct. # Configuration parameters: AllowIfMethodIsEmpty. From 94710686ff0d83b762832486de7fe9461a932a09 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:34:42 +0200 Subject: [PATCH 083/450] Rubocop: fix Style/SingleLineMethods --- .rubocop.yml | 4 ++-- .rubocop_todo.yml | 7 ------- test/unit/rule_test.rb | 2 +- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 96a3e72c..0b051d8b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,7 +1,7 @@ inherit_from: .rubocop_todo.yml -Style/WordArray: +Style/RescueModifier: Enabled: false -Style/RescueModifier: +Style/WordArray: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index be71f3d2..f7564ddd 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -239,13 +239,6 @@ Style/PerlBackrefs: Exclude: - 'lib/public_suffix/rule.rb' -# Offense count: 1 -# Cop supports --auto-correct. -# Configuration parameters: AllowIfMethodIsEmpty. -Style/SingleLineMethods: - Exclude: - - 'test/unit/rule_test.rb' - # Offense count: 3 # Cop supports --auto-correct. Style/SpaceAfterComma: diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index 1015413e..f59f3ed0 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -61,7 +61,7 @@ def test_equality_with_internals assert_not_equal @klass.new("foo"), @klass.new("bar") assert_not_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("foo") assert_not_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("bar") - assert_not_equal @klass.new("foo"), Class.new { def name; foo; end }.new + assert_not_equal @klass.new("foo"), Class.new { def name; foo; end }.new # rubocop:disable Style/SingleLineMethods end From 5ac6a69bd7fa8fb59a8b71f0a268e72631115376 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:36:14 +0200 Subject: [PATCH 084/450] Rubocop: fix Style/SpaceAfterComma --- .rubocop_todo.yml | 7 ------- lib/public_suffix/rule.rb | 2 +- test/psl_test.rb | 2 +- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index f7564ddd..3ecaa0bf 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -239,13 +239,6 @@ Style/PerlBackrefs: Exclude: - 'lib/public_suffix/rule.rb' -# Offense count: 3 -# Cop supports --auto-correct. -Style/SpaceAfterComma: - Exclude: - - 'lib/public_suffix/rule.rb' - - 'test/psl_test.rb' - # Offense count: 2 # Cop supports --auto-correct. # Configuration parameters: AllowForAlignment. diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 358c81a6..394fc859 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -334,7 +334,7 @@ def length # @param [String] content The rule content. # @return [PublicSuffix::Rule::*] A rule instance. def self.factory(content, **options) - case content.to_s[0,1] + case content.to_s[0, 1] when STAR Wildcard when BANG diff --git a/test/psl_test.rb b/test/psl_test.rb index e2600ff4..a2f20792 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -40,7 +40,7 @@ def test_valid end message = "The following #{failures.size} tests fail:\n" - failures.each { |i,o,d| message += "Expected %s to be %s, got %s\n" % [i.inspect, o.inspect, d.inspect] } + failures.each { |i, o, d| message += "Expected %s to be %s, got %s\n" % [i.inspect, o.inspect, d.inspect] } assert_equal 0, failures.size, message end From 89e3a9a4475d2b5cafab5a3cc0feeae46632afba Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:38:41 +0200 Subject: [PATCH 085/450] Rubocop: fix Style/SpaceBeforeFirstArg --- .rubocop_todo.yml | 7 ------- test/unit/list_test.rb | 8 ++++---- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 3ecaa0bf..1293f7f1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -246,13 +246,6 @@ Style/SpaceAroundOperators: Exclude: - 'test/unit/list_test.rb' -# Offense count: 4 -# Cop supports --auto-correct. -# Configuration parameters: AllowForAlignment. -Style/SpaceBeforeFirstArg: - Exclude: - - 'test/unit/list_test.rb' - # Offense count: 1 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 4e8d0f39..947e093a 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -55,7 +55,7 @@ def test_add_should_not_duplicate_indices end def test_empty? - assert @list.empty? + assert @list.empty? @list.add(PublicSuffix::Rule.factory("")) assert !@list.empty? end @@ -158,7 +158,7 @@ def test_select_ignore_private def test_self_default_getter - assert_equal nil, PublicSuffix::List.class_eval { @default } + assert_equal nil, PublicSuffix::List.class_eval { @default } PublicSuffix::List.default assert_not_equal nil, PublicSuffix::List.class_eval { @default } end @@ -167,14 +167,14 @@ def test_self_default_setter PublicSuffix::List.default assert_not_equal nil, PublicSuffix::List.class_eval { @default } PublicSuffix::List.default = nil - assert_equal nil, PublicSuffix::List.class_eval { @default } + assert_equal nil, PublicSuffix::List.class_eval { @default } end def test_self_clear PublicSuffix::List.default assert_not_equal nil, PublicSuffix::List.class_eval { @default } PublicSuffix::List.clear - assert_equal nil, PublicSuffix::List.class_eval { @default } + assert_equal nil, PublicSuffix::List.class_eval { @default } end def test_self_parse From ca54fcce3a2e5381bb17ed6c57dc116c8eb5924a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:39:34 +0200 Subject: [PATCH 086/450] Rubocop: fix Style/SpaceAroundOperators --- .rubocop_todo.yml | 7 ------- test/unit/list_test.rb | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 1293f7f1..80b1c266 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -239,13 +239,6 @@ Style/PerlBackrefs: Exclude: - 'lib/public_suffix/rule.rb' -# Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: AllowForAlignment. -Style/SpaceAroundOperators: - Exclude: - - 'test/unit/list_test.rb' - # Offense count: 1 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 947e093a..a4b5ee7a 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -234,7 +234,7 @@ def test_self_parse_indexes // ===END PRIVATE DOMAINS=== EOS - assert_equal({"com"=>[0, 3], "uk"=>[1, 2]}, list.indexes) + assert_equal({"com" => [0, 3], "uk" => [1, 2]}, list.indexes) end From 1f431d547047a40f7563e33498888b212a35549d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:40:22 +0200 Subject: [PATCH 087/450] Rubocop: fix Style/PercentLiteralDelimiters --- .rubocop.yml | 4 ++++ .rubocop_todo.yml | 7 ------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0b051d8b..f0d03a22 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,9 @@ inherit_from: .rubocop_todo.yml +Style/PercentLiteralDelimiters: + Exclude: + - 'public_suffix.gemspec' + Style/RescueModifier: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 80b1c266..4de91995 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -226,13 +226,6 @@ Style/NonNilCheck: Exclude: - 'test/acceptance_test.rb' -# Offense count: 9 -# Cop supports --auto-correct. -# Configuration parameters: PreferredDelimiters. -Style/PercentLiteralDelimiters: - Exclude: - - 'public_suffix.gemspec' - # Offense count: 6 # Cop supports --auto-correct. Style/PerlBackrefs: From 7439e255086ad16d183792733ed679fa7c8922bb Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:41:00 +0200 Subject: [PATCH 088/450] Rubocop: fix Style/SpaceInsideBlockBraces --- .rubocop_todo.yml | 7 ------- Rakefile | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4de91995..117fe14d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -232,13 +232,6 @@ Style/PerlBackrefs: Exclude: - 'lib/public_suffix/rule.rb' -# Offense count: 1 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters. -# SupportedStyles: space, no_space -Style/SpaceInsideBlockBraces: - Enabled: false - # Offense count: 2 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles. diff --git a/Rakefile b/Rakefile index 455706b9..5a83d435 100644 --- a/Rakefile +++ b/Rakefile @@ -40,7 +40,7 @@ end desc "Build the gemspec file #{spec.name}.gemspec" task :gemspec do file = File.dirname(__FILE__) + "/#{spec.name}.gemspec" - File.open(file, "w") {|f| f << spec.to_ruby } + File.open(file, "w") { |f| f << spec.to_ruby } end desc "Remove any temporary products, including gemspec" From f542440dc6ccded686138fedc6efa0dbd79871f6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:41:45 +0200 Subject: [PATCH 089/450] Rubocop: fix Style/SpaceInsideHashLiteralBraces --- .rubocop_todo.yml | 7 ------- test/unit/list_test.rb | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 117fe14d..6162007f 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -232,13 +232,6 @@ Style/PerlBackrefs: Exclude: - 'lib/public_suffix/rule.rb' -# Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles. -# SupportedStyles: space, no_space -Style/SpaceInsideHashLiteralBraces: - Enabled: false - # Offense count: 5 # Cop supports --auto-correct. # Configuration parameters: SupportedStyles. diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index a4b5ee7a..2a1b0f49 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -234,7 +234,7 @@ def test_self_parse_indexes // ===END PRIVATE DOMAINS=== EOS - assert_equal({"com" => [0, 3], "uk" => [1, 2]}, list.indexes) + assert_equal({ "com" => [0, 3], "uk" => [1, 2] }, list.indexes) end From fc7d6af9dd79ab3a0cc7aa814635f4f64d0761e0 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:51:45 +0200 Subject: [PATCH 090/450] Rubocop: fix Style/TrailingCommaInLiteral --- .rubocop.yml | 3 +++ .rubocop_todo.yml | 9 --------- test/unit/public_suffix_test.rb | 6 +++--- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index f0d03a22..1b3effd9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -7,5 +7,8 @@ Style/PercentLiteralDelimiters: Style/RescueModifier: Enabled: false +Style/TrailingCommaInLiteral: + EnforcedStyleForMultiline: consistent_comma + Style/WordArray: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6162007f..e8e1c862 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -256,15 +256,6 @@ Style/TrailingBlankLines: - 'test/performance_benchmark.rb' - 'test/unit/errors_test.rb' -# Offense count: 6 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles. -# SupportedStyles: comma, consistent_comma, no_comma -Style/TrailingCommaInLiteral: - Exclude: - - 'test/acceptance_test.rb' - - 'test/unit/rule_test.rb' - # Offense count: 4 # Cop supports --auto-correct. Style/TrailingWhitespace: diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 0ceb7386..ea055597 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -154,7 +154,7 @@ def test_normalize_blank [ nil, '', - ' ' + ' ', ].each do |input, output| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error @@ -164,7 +164,7 @@ def test_normalize_blank def test_normalize_scheme [ - 'https://google.com' + 'https://google.com', ].each do |input, output| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error @@ -174,7 +174,7 @@ def test_normalize_scheme def test_normalize_leading_dot [ - '.google.com' + '.google.com', ].each do |input, output| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error From 9575361ab06fd08d72ea66ef22e5675df742e3b5 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:53:03 +0200 Subject: [PATCH 091/450] Rubocop: Ignore public_suffix.gemspec It's auto-generated. --- .rubocop.yml | 2 +- .rubocop_todo.yml | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 1b3effd9..75bde5ed 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,6 +1,6 @@ inherit_from: .rubocop_todo.yml -Style/PercentLiteralDelimiters: +AllCops: Exclude: - 'public_suffix.gemspec' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index e8e1c862..bb2eff13 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -192,12 +192,6 @@ Style/LeadingCommentSpace: Exclude: - 'lib/public_suffix/list.rb' -# Offense count: 2 -# Cop supports --auto-correct. -Style/MultilineIfThen: - Exclude: - - 'public_suffix.gemspec' - # Offense count: 2 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. @@ -272,12 +266,6 @@ Style/TrivialAccessors: Exclude: - 'lib/public_suffix/list.rb' -# Offense count: 9 -# Cop supports --auto-correct. -Style/UnneededPercentQ: - Exclude: - - 'public_suffix.gemspec' - # Offense count: 4 # Cop supports --auto-correct. # Configuration parameters: SupportedStyles, WordRegex. From 1d083555e8ba7488806ad57b52c8a19541578cb4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:54:47 +0200 Subject: [PATCH 092/450] Rubocop: Fix Style/LeadingCommentSpace --- .rubocop_todo.yml | 6 ------ lib/public_suffix/list.rb | 3 +-- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index bb2eff13..dfb5c78c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -186,12 +186,6 @@ Style/IndentationWidth: - 'lib/public_suffix/rule.rb' - 'test/execution_profiler.rb' -# Offense count: 1 -# Cop supports --auto-correct. -Style/LeadingCommentSpace: - Exclude: - - 'lib/public_suffix/list.rb' - # Offense count: 2 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 103e9d9c..e2d791bd 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -172,8 +172,7 @@ def each(*args, &block) end - # Adds the given object to the list - # and optionally refreshes the rule index. + # Adds the given object to the list and optionally refreshes the rule index. # # @param [PublicSuffix::Rule::*] rule # The rule to add to the list. From 592bacbd4e4425d6359e79e426253af816f2a653 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:57:12 +0200 Subject: [PATCH 093/450] Rubocop: Fix Lint/UnusedMethodArgument --- .rubocop_todo.yml | 9 --------- lib/public_suffix/domain.rb | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- 4 files changed, 3 insertions(+), 12 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index dfb5c78c..c8737f34 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -28,15 +28,6 @@ Lint/UnusedBlockArgument: Exclude: - 'test/unit/public_suffix_test.rb' -# Offense count: 3 -# Cop supports --auto-correct. -# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods. -Lint/UnusedMethodArgument: - Exclude: - - 'lib/public_suffix/domain.rb' - - 'lib/public_suffix/list.rb' - - 'lib/public_suffix/rule.rb' - # Offense count: 1 Lint/UselessAccessModifier: Exclude: diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index e1d103e4..a6416c8a 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -59,7 +59,7 @@ def self.name_to_labels(name) # PublicSuffix::Domain.new("com", "example", "wwww") # # => # # - def initialize(*args, &block) + def initialize(*args) @tld, @sld, @trd = args yield(self) if block_given? end diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index e2d791bd..e2e954d8 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -120,7 +120,7 @@ def self.parse(input, private_domains: true) # @yield [self] Yields on self. # @yieldparam [PublicSuffix::List] self The newly created instance. # - def initialize(&block) + def initialize @rules = [] yield(self) if block_given? reindex! diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 394fc859..b21a84c3 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -164,7 +164,7 @@ def length # @abstract # @param [String, #to_s] name The domain name to decompose # @return [Array] - def decompose(domain) + def decompose(*) raise NotImplementedError end From b28d878c97c268c77f1a6aa0e46cdf5ce7f39bb2 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:58:15 +0200 Subject: [PATCH 094/450] Rubocop: Fix Lint/UnusedBlockArgument --- .rubocop_todo.yml | 7 ------- test/unit/public_suffix_test.rb | 6 +++--- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index c8737f34..72385022 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -21,13 +21,6 @@ Lint/IneffectiveAccessModifier: Exclude: - 'lib/public_suffix.rb' -# Offense count: 3 -# Cop supports --auto-correct. -# Configuration parameters: IgnoreEmptyBlocks. -Lint/UnusedBlockArgument: - Exclude: - - 'test/unit/public_suffix_test.rb' - # Offense count: 1 Lint/UselessAccessModifier: Exclude: diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index ea055597..fc200398 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -155,7 +155,7 @@ def test_normalize_blank nil, '', ' ', - ].each do |input, output| + ].each do |input, _| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error assert_equal "Name is blank", error.message @@ -165,7 +165,7 @@ def test_normalize_blank def test_normalize_scheme [ 'https://google.com', - ].each do |input, output| + ].each do |input, _| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error assert_match /scheme/, error.message @@ -175,7 +175,7 @@ def test_normalize_scheme def test_normalize_leading_dot [ '.google.com', - ].each do |input, output| + ].each do |input, _| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error assert_match "Name starts with a dot", error.message From bd203dd0b72fa859f577734fc683193d9871a832 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 12:59:25 +0200 Subject: [PATCH 095/450] Rubocop: Fix Lint/UselessAssignment --- .rubocop_todo.yml | 5 ----- test/execution_profiler.rb | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 72385022..aa2dbd31 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -26,11 +26,6 @@ Lint/UselessAccessModifier: Exclude: - 'lib/public_suffix.rb' -# Offense count: 1 -Lint/UselessAssignment: - Exclude: - - 'test/execution_profiler.rb' - # Offense count: 12 Metrics/AbcSize: Max: 38 diff --git a/test/execution_profiler.rb b/test/execution_profiler.rb index 5abcdd85..44bd5f1c 100644 --- a/test/execution_profiler.rb +++ b/test/execution_profiler.rb @@ -3,7 +3,7 @@ require 'memory_profiler' require 'public_suffix' -list = PublicSuffix::List.default +PublicSuffix::List.default report = MemoryProfiler.report do PublicSuffix.domain("www.example.com") From 05a4f2be0ecca865e439b35716eb9d7e1fdea3f2 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 13:00:58 +0200 Subject: [PATCH 096/450] Rubocop: Fix Style/TrailingWhitespace --- .rubocop_todo.yml | 8 -------- lib/public_suffix.rb | 2 +- lib/public_suffix/list.rb | 4 ++-- test/acceptance_test.rb | 2 +- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index aa2dbd31..45dd83ff 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -223,14 +223,6 @@ Style/TrailingBlankLines: - 'test/performance_benchmark.rb' - 'test/unit/errors_test.rb' -# Offense count: 4 -# Cop supports --auto-correct. -Style/TrailingWhitespace: - Exclude: - - 'lib/public_suffix.rb' - - 'lib/public_suffix/list.rb' - - 'test/acceptance_test.rb' - # Offense count: 1 # Cop supports --auto-correct. # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index e050cec3..5a6d6902 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -113,7 +113,7 @@ def self.valid?(name, list: List.default, default_rule: nil, ignore_private: tru default_rule ||= list.default_rule rule = list.find(what, default: default_rule, ignore_private: ignore_private) - + !rule.nil? && !rule.decompose(what).last.nil? end diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index e2e954d8..bf4d79a9 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -114,7 +114,7 @@ def self.parse(input, private_domains: true) # @return [Array] attr_reader :rules - + # Initializes an empty {PublicSuffix::List}. # # @yield [self] Yields on self. @@ -132,7 +132,7 @@ def initialize # {PublicSuffix::Rule::Base#labels} element. # # For instance if @rules[5] and @rules[4] are the only elements of the list - # where Rule#labels.first is 'us' @indexes['us'] #=> [5,4], that way in + # where Rule#labels.first is 'us' @indexes['us'] #=> [5,4], that way in # select we can avoid mapping every single rule against the candidate domain. def reindex! @indexes = {} diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 5ca616a0..3038fadd 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -20,7 +20,7 @@ def test_valid assert_equal tld, parsed.tld, "Invalid tld for `#{name}`" assert_equal sld, parsed.sld, "Invalid sld for `#{name}`" assert_equal trd, parsed.trd, "Invalid trd for `#{name}`" - + assert_equal domain, PublicSuffix.domain(input) assert PublicSuffix.valid?(input) end From c749c6f4bb7997f9a2a98aa9e0e72965020f8a9a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 13:02:32 +0200 Subject: [PATCH 097/450] Rubocop: Fix Style/NonNilCheck --- .rubocop_todo.yml | 7 ------- test/acceptance_test.rb | 6 +++--- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 45dd83ff..540f7cee 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -186,13 +186,6 @@ Style/NegatedIf: - 'Gemfile' - 'lib/public_suffix/list.rb' -# Offense count: 3 -# Cop supports --auto-correct. -# Configuration parameters: IncludeSemanticChanges. -Style/NonNilCheck: - Exclude: - - 'test/acceptance_test.rb' - # Offense count: 6 # Cop supports --auto-correct. Style/PerlBackrefs: diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 3038fadd..d3757f04 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -95,21 +95,21 @@ def test_ignore_private end # test valid? IncludePrivateCases.each do |given, ignore_private, expected| - assert_equal expected != nil, PublicSuffix.valid?(given, ignore_private: ignore_private) + assert_equal !expected.nil?, PublicSuffix.valid?(given, ignore_private: ignore_private) end end def valid_uri?(name) uri = URI.parse(name) - uri.host != nil + !uri.host.nil? rescue false end def valid_domain?(name) uri = URI.parse(name) - uri.host != nil && uri.scheme.nil? + !uri.host.nil? && uri.scheme.nil? rescue false end From 7ffd64d6b8cd766a26d96b315c021b4b7b0d5b41 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 13:03:00 +0200 Subject: [PATCH 098/450] Rubocop: Fix Style/NegatedIf --- .rubocop.yml | 3 +++ .rubocop_todo.yml | 7 ------- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 75bde5ed..1ece0a74 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,6 +4,9 @@ AllCops: Exclude: - 'public_suffix.gemspec' +Style/NegatedIf: + Enabled: false + Style/RescueModifier: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 540f7cee..6510a2eb 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -179,13 +179,6 @@ Style/MutableConstant: - 'Rakefile' - 'test/acceptance_test.rb' -# Offense count: 2 -# Cop supports --auto-correct. -Style/NegatedIf: - Exclude: - - 'Gemfile' - - 'lib/public_suffix/list.rb' - # Offense count: 6 # Cop supports --auto-correct. Style/PerlBackrefs: From 340a64c9606a31c29c692e879c4e42274008479c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 13:08:05 +0200 Subject: [PATCH 099/450] Rubocop: Fix Style/IfUnlessModifier --- .rubocop.yml | 3 +++ .rubocop_todo.yml | 9 --------- Gemfile | 4 +--- lib/public_suffix/domain.rb | 8 ++------ 4 files changed, 6 insertions(+), 18 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 1ece0a74..44833be6 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,6 +4,9 @@ AllCops: Exclude: - 'public_suffix.gemspec' +Style/IfUnlessModifier: + Enabled: false + Style/NegatedIf: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 6510a2eb..b8e509a1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -141,15 +141,6 @@ Style/GuardClause: Style/HashSyntax: Enabled: false -# Offense count: 4 -# Cop supports --auto-correct. -# Configuration parameters: MaxLineLength. -Style/IfUnlessModifier: - Exclude: - - 'Gemfile' - - 'lib/public_suffix.rb' - - 'lib/public_suffix/domain.rb' - # Offense count: 10 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. diff --git a/Gemfile b/Gemfile index 74ad51ce..0f362b01 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,4 @@ gem 'minitest' gem 'minitest-reporters' gem 'coveralls', require: false -if !RUBY_VERSION.start_with?("2.0") - gem 'memory_profiler', require: false -end +gem 'memory_profiler', require: false if !RUBY_VERSION.start_with?("2.0") diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index a6416c8a..d8de4978 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -132,9 +132,7 @@ def name # # @return [String] def domain - if domain? - [@sld, @tld].join(DOT) - end + [@sld, @tld].join(DOT) if domain? end # Returns a subdomain-like representation of this object @@ -166,9 +164,7 @@ def domain # # @return [String] def subdomain - if subdomain? - [@trd, @sld, @tld].join(DOT) - end + [@trd, @sld, @tld].join(DOT) if subdomain? end # Checks whether self looks like a domain. From 184ec74b0f5bdc2a5b130132a9c49c0b56743cd6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:13:00 +0200 Subject: [PATCH 100/450] Rubocop: Fix Style/EmptyLines --- .rubocop.yml | 3 +++ .rubocop_todo.yml | 16 ---------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 44833be6..f1664e56 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,6 +4,9 @@ AllCops: Exclude: - 'public_suffix.gemspec' +Style/EmptyLines: + Enabled: false + Style/IfUnlessModifier: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index b8e509a1..303110a5 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -65,22 +65,6 @@ Style/Documentation: - 'lib/public_suffix/domain.rb' - 'lib/public_suffix/rule.rb' -# Offense count: 50 -# Cop supports --auto-correct. -Style/EmptyLines: - Exclude: - - 'Rakefile' - - 'lib/public_suffix.rb' - - 'lib/public_suffix/domain.rb' - - 'lib/public_suffix/list.rb' - - 'lib/public_suffix/rule.rb' - - 'test/acceptance_test.rb' - - 'test/psl_test.rb' - - 'test/unit/domain_test.rb' - - 'test/unit/list_test.rb' - - 'test/unit/public_suffix_test.rb' - - 'test/unit/rule_test.rb' - # Offense count: 33 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles. From 841816486e1ea1b7a15ca8daf13051b345349db2 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:18:20 +0200 Subject: [PATCH 101/450] Rubocop: Fix Style/EmptyLinesAroundClassBody --- .rubocop.yml | 6 ++++++ .rubocop_todo.yml | 30 ------------------------------ 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index f1664e56..e18621bd 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -7,6 +7,12 @@ AllCops: Style/EmptyLines: Enabled: false +Style/EmptyLinesAroundClassBody: + Enabled: false + +Style/EmptyLinesAroundModuleBody: + Enabled: false + Style/IfUnlessModifier: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 303110a5..8ba871d2 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -65,36 +65,6 @@ Style/Documentation: - 'lib/public_suffix/domain.rb' - 'lib/public_suffix/rule.rb' -# Offense count: 33 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: empty_lines, no_empty_lines -Style/EmptyLinesAroundClassBody: - Exclude: - - 'lib/public_suffix/domain.rb' - - 'lib/public_suffix/list.rb' - - 'lib/public_suffix/rule.rb' - - 'test/acceptance_test.rb' - - 'test/psl_test.rb' - - 'test/unit/domain_test.rb' - - 'test/unit/errors_test.rb' - - 'test/unit/list_test.rb' - - 'test/unit/public_suffix_test.rb' - - 'test/unit/rule_test.rb' - -# Offense count: 13 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: empty_lines, no_empty_lines -Style/EmptyLinesAroundModuleBody: - Exclude: - - 'lib/public_suffix.rb' - - 'lib/public_suffix/domain.rb' - - 'lib/public_suffix/errors.rb' - - 'lib/public_suffix/list.rb' - - 'lib/public_suffix/rule.rb' - - 'lib/public_suffix/version.rb' - # Offense count: 6 # Cop supports --auto-correct. # Configuration parameters: AllowForAlignment, ForceEqualSignAlignment. From 3f2d38deb3b82b23f746b04cc8c2c7d9aecebff4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:23:04 +0200 Subject: [PATCH 102/450] Rubocop: Fix Lint/AmbiguousRegexpLiteral --- .rubocop.yml | 3 +++ .rubocop_todo.yml | 5 ----- test/unit/public_suffix_test.rb | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index e18621bd..25dd3ea6 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,6 +4,9 @@ AllCops: Exclude: - 'public_suffix.gemspec' +Lint/AmbiguousRegexpLiteral: + Enabled: false + Style/EmptyLines: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8ba871d2..10e4eb3d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -6,11 +6,6 @@ # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 1 -Lint/AmbiguousRegexpLiteral: - Exclude: - - 'test/unit/public_suffix_test.rb' - # Offense count: 2 Lint/Eval: Exclude: diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index fc200398..12989e50 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -87,12 +87,12 @@ def test_self_parse_with_notlisted_name def test_self_parse_with_unallowed_domain error = assert_raises(PublicSuffix::DomainNotAllowed) { PublicSuffix.parse("example.ke") } - assert_match /example\.ke/, error.message + assert_match(/example\.ke/, error.message) end def test_self_parse_with_uri error = assert_raises(PublicSuffix::DomainInvalid) { PublicSuffix.parse("http://google.com") } - assert_match %r{http://google\.com}, error.message + assert_match(%r{http://google\.com}, error.message) end From b5c2287e89d71f9be657d100dde07813904cf657 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:24:51 +0200 Subject: [PATCH 103/450] Rubocop: Fix Lint/Eval --- .rubocop_todo.yml | 5 ----- test/psl_test.rb | 2 ++ 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 10e4eb3d..d28164e0 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -6,11 +6,6 @@ # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 2 -Lint/Eval: - Exclude: - - 'test/psl_test.rb' - # Offense count: 2 Lint/IneffectiveAccessModifier: Exclude: diff --git a/test/psl_test.rb b/test/psl_test.rb index a2f20792..2f38bb73 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -7,6 +7,7 @@ class PslTest < Minitest::Unit::TestCase ROOT = File.expand_path("../../", __FILE__) + # rubocop:disable Lint/Eval def self.tests File.readlines(File.join(ROOT, "test/tests.txt")).map do |line| line = line.strip @@ -23,6 +24,7 @@ def self.tests [input, output] end end + # rubocop:enable def test_valid From 0b2bac00f25445563e114f8dd92dfa4772f0d3ad Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:27:34 +0200 Subject: [PATCH 104/450] Rubocop: Fix Lint/IneffectiveAccessModifier --- .rubocop_todo.yml | 10 -- lib/public_suffix.rb | 269 ++++++++++++++++++++++--------------------- 2 files changed, 135 insertions(+), 144 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index d28164e0..c2848156 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -6,16 +6,6 @@ # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 2 -Lint/IneffectiveAccessModifier: - Exclude: - - 'lib/public_suffix.rb' - -# Offense count: 1 -Lint/UselessAccessModifier: - Exclude: - - 'lib/public_suffix.rb' - # Offense count: 12 Metrics/AbcSize: Max: 38 diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 5a6d6902..558d3d6b 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -16,149 +16,150 @@ module PublicSuffix BANG = "!".freeze STAR = "*".freeze - - # Parses +name+ and returns the {PublicSuffix::Domain} instance. - # - # @example Parse a valid domain - # PublicSuffix.parse("google.com") - # # => # - # - # @example Parse a valid subdomain - # PublicSuffix.parse("www.google.com") - # # => # - # - # @example Parse a fully qualified domain - # PublicSuffix.parse("google.com.") - # # => # - # - # @example Parse a fully qualified domain (subdomain) - # PublicSuffix.parse("www.google.com.") - # # => # - # - # @example Parse an invalid domain - # PublicSuffix.parse("x.yz") - # # => PublicSuffix::DomainInvalid - # - # @example Parse an URL (not supported, only domains) - # PublicSuffix.parse("http://www.google.com") - # # => PublicSuffix::DomainInvalid - # - # - # @param [String, #to_s] name The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} - # @param [Boolean] ignore_private - # @return [PublicSuffix::Domain] - # - # @raise [PublicSuffix::Error] - # If domain is not a valid domain. - # @raise [PublicSuffix::DomainNotAllowed] - # If a rule for +domain+ is found, but the rule doesn't allow +domain+. - def self.parse(name, list: List.default, default_rule: nil, ignore_private: false) - what = normalize(name) - raise what if what.is_a?(DomainInvalid) - - default_rule ||= list.default_rule - rule = list.find(what, default: default_rule, ignore_private: ignore_private) - - if rule.nil? - raise DomainInvalid, "`#{what}` is not a valid domain" - end - if rule.decompose(what).last.nil? - raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" + class << self + # Parses +name+ and returns the {PublicSuffix::Domain} instance. + # + # @example Parse a valid domain + # PublicSuffix.parse("google.com") + # # => # + # + # @example Parse a valid subdomain + # PublicSuffix.parse("www.google.com") + # # => # + # + # @example Parse a fully qualified domain + # PublicSuffix.parse("google.com.") + # # => # + # + # @example Parse a fully qualified domain (subdomain) + # PublicSuffix.parse("www.google.com.") + # # => # + # + # @example Parse an invalid domain + # PublicSuffix.parse("x.yz") + # # => PublicSuffix::DomainInvalid + # + # @example Parse an URL (not supported, only domains) + # PublicSuffix.parse("http://www.google.com") + # # => PublicSuffix::DomainInvalid + # + # + # @param [String, #to_s] name The domain name or fully qualified domain name to parse. + # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} + # @param [Boolean] ignore_private + # @return [PublicSuffix::Domain] + # + # @raise [PublicSuffix::Error] + # If domain is not a valid domain. + # @raise [PublicSuffix::DomainNotAllowed] + # If a rule for +domain+ is found, but the rule doesn't allow +domain+. + def parse(name, list: List.default, default_rule: nil, ignore_private: false) + what = normalize(name) + raise what if what.is_a?(DomainInvalid) + + default_rule ||= list.default_rule + rule = list.find(what, default: default_rule, ignore_private: ignore_private) + + if rule.nil? + raise DomainInvalid, "`#{what}` is not a valid domain" + end + if rule.decompose(what).last.nil? + raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" + end + + decompose(what, rule) end - decompose(what, rule) - end - - # Checks whether +domain+ is assigned and allowed, without actually parsing it. - # - # This method doesn't care whether domain is a domain or subdomain. - # The validation is performed using the default {PublicSuffix::List}. - # - # @example Validate a valid domain - # PublicSuffix.valid?("example.com") - # # => true - # - # @example Validate a valid subdomain - # PublicSuffix.valid?("www.example.com") - # # => true - # - # @example Validate a not-listed domain - # PublicSuffix.valid?("example.tldnotlisted") - # # => true - # - # @example Validate a not-allowed domain - # PublicSuffix.valid?("example.do") - # # => false - # PublicSuffix.valid?("www.example.do") - # # => true - # - # @example Validate a fully qualified domain - # PublicSuffix.valid?("google.com.") - # # => true - # PublicSuffix.valid?("www.google.com.") - # # => true - # - # @example Check an URL (which is not a valid domain) - # PublicSuffix.valid?("http://www.example.com") - # # => false - # - # - # @param [String, #to_s] name The domain name or fully qualified domain name to validate. - # @param [Boolean] ignore_private - # @return [Boolean] - def self.valid?(name, list: List.default, default_rule: nil, ignore_private: true) - what = normalize(name) - return false if what.is_a?(DomainInvalid) - - default_rule ||= list.default_rule - rule = list.find(what, default: default_rule, ignore_private: ignore_private) - - !rule.nil? && !rule.decompose(what).last.nil? - end + # Checks whether +domain+ is assigned and allowed, without actually parsing it. + # + # This method doesn't care whether domain is a domain or subdomain. + # The validation is performed using the default {PublicSuffix::List}. + # + # @example Validate a valid domain + # PublicSuffix.valid?("example.com") + # # => true + # + # @example Validate a valid subdomain + # PublicSuffix.valid?("www.example.com") + # # => true + # + # @example Validate a not-listed domain + # PublicSuffix.valid?("example.tldnotlisted") + # # => true + # + # @example Validate a not-allowed domain + # PublicSuffix.valid?("example.do") + # # => false + # PublicSuffix.valid?("www.example.do") + # # => true + # + # @example Validate a fully qualified domain + # PublicSuffix.valid?("google.com.") + # # => true + # PublicSuffix.valid?("www.google.com.") + # # => true + # + # @example Check an URL (which is not a valid domain) + # PublicSuffix.valid?("http://www.example.com") + # # => false + # + # + # @param [String, #to_s] name The domain name or fully qualified domain name to validate. + # @param [Boolean] ignore_private + # @return [Boolean] + def valid?(name, list: List.default, default_rule: nil, ignore_private: true) + what = normalize(name) + return false if what.is_a?(DomainInvalid) + + default_rule ||= list.default_rule + rule = list.find(what, default: default_rule, ignore_private: ignore_private) + + !rule.nil? && !rule.decompose(what).last.nil? + end - # Attempt to parse the name and returns the domain, if valid. - # - # This method doesn't raise. Instead, it returns nil if the domain is not valid for whatever reason. - # - # @param [String, #to_s] name The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} - # @param [Boolean] ignore_private - # @return [String] - def self.domain(name, **options) - parse(name, **options).domain - rescue PublicSuffix::Error - nil - end + # Attempt to parse the name and returns the domain, if valid. + # + # This method doesn't raise. Instead, it returns nil if the domain is not valid for whatever reason. + # + # @param [String, #to_s] name The domain name or fully qualified domain name to parse. + # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} + # @param [Boolean] ignore_private + # @return [String] + def domain(name, **options) + parse(name, **options).domain + rescue PublicSuffix::Error + nil + end - private + private - def self.decompose(name, rule) - left, right = rule.decompose(name) + def decompose(name, rule) + left, right = rule.decompose(name) - parts = left.split(DOT) - # If we have 0 parts left, there is just a tld and no domain or subdomain - # If we have 1 part left, there is just a tld, domain and not subdomain - # If we have 2 parts left, the last part is the domain, the other parts (combined) are the subdomain - tld = right - sld = parts.empty? ? nil : parts.pop - trd = parts.empty? ? nil : parts.join(DOT) + parts = left.split(DOT) + # If we have 0 parts left, there is just a tld and no domain or subdomain + # If we have 1 part left, there is just a tld, domain and not subdomain + # If we have 2 parts left, the last part is the domain, the other parts (combined) are the subdomain + tld = right + sld = parts.empty? ? nil : parts.pop + trd = parts.empty? ? nil : parts.join(DOT) - Domain.new(tld, sld, trd) - end + Domain.new(tld, sld, trd) + end - # Pretend we know how to deal with user input. - def self.normalize(name) - name = name.to_s.dup - name.strip! - name.chomp!(DOT) - name.downcase! - - return DomainInvalid.new("Name is blank") if name.empty? - return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) - return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") - name + # Pretend we know how to deal with user input. + def normalize(name) + name = name.to_s.dup + name.strip! + name.chomp!(DOT) + name.downcase! + + return DomainInvalid.new("Name is blank") if name.empty? + return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) + return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") + name + end end end From f2cd809a52333216467147c2435dce2722112e1e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:30:00 +0200 Subject: [PATCH 105/450] Rubocop: Fix Metrics/AbcSize --- .rubocop.yml | 4 ++++ .rubocop_todo.yml | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 25dd3ea6..45f7d0e1 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -7,6 +7,10 @@ AllCops: Lint/AmbiguousRegexpLiteral: Enabled: false +Metrics/AbcSize: + Exclude: + - 'test/**/*_test.rb' + Style/EmptyLines: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index c2848156..7a58abed 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -6,10 +6,6 @@ # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 12 -Metrics/AbcSize: - Max: 38 - # Offense count: 2 # Configuration parameters: CountComments. Metrics/ClassLength: From 2f9487096be4b8df8a1ac158c3389da38649fb80 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:31:51 +0200 Subject: [PATCH 106/450] Rubocop: Fix Style/ConstantName --- .rubocop_todo.yml | 10 ---------- test/acceptance_test.rb | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 7a58abed..f558644f 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -22,16 +22,6 @@ Metrics/LineLength: Metrics/MethodLength: Max: 32 -# Offense count: 1 -Style/AsciiComments: - Exclude: - - 'lib/public_suffix/list.rb' - -# Offense count: 5 -Style/ConstantName: - Exclude: - - 'test/acceptance_test.rb' - # Offense count: 5 Style/Documentation: Exclude: diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index d3757f04..3adb77be 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -2,7 +2,7 @@ class AcceptanceTest < Minitest::Unit::TestCase - ValidCases = [ + VALID_CASES = [ ["example.com", "example.com", [nil, "example", "com"]], ["foo.example.com", "example.com", ["foo", "example", "com"]], @@ -14,7 +14,7 @@ class AcceptanceTest < Minitest::Unit::TestCase ] def test_valid - ValidCases.each do |input, domain, results| + VALID_CASES.each do |input, domain, results| parsed = PublicSuffix.parse(input) trd, sld, tld = results assert_equal tld, parsed.tld, "Invalid tld for `#{name}`" @@ -27,7 +27,7 @@ def test_valid end - InvalidCases = [ + INVALID_CASES = [ ["nic.ke", PublicSuffix::DomainNotAllowed], [nil, PublicSuffix::DomainInvalid], ["", PublicSuffix::DomainInvalid], @@ -35,14 +35,14 @@ def test_valid ] def test_invalid - InvalidCases.each do |(name, error)| + INVALID_CASES.each do |(name, error)| assert_raises(error) { PublicSuffix.parse(name) } assert !PublicSuffix.valid?(name) end end - RejectedCases = [ + REJECTED_CASES = [ ["www. .com", true], ["foo.co..uk", true], ["goo,gle.com", true], @@ -56,21 +56,21 @@ def test_invalid ] def test_rejected - RejectedCases.each do |name, expected| + REJECTED_CASES.each do |name, expected| assert_equal expected, PublicSuffix.valid?(name), "Expected %s to be %s" % [name.inspect, expected.inspect] assert !valid_domain?(name), "#{name} expected to be invalid" end end - CaseCases = [ + CASE_CASES = [ ["Www.google.com", %w( www google com )], ["www.Google.com", %w( www google com )], ["www.google.Com", %w( www google com )], ] def test_ignore_case - CaseCases.each do |name, results| + CASE_CASES.each do |name, results| domain = PublicSuffix.parse(name) trd, sld, tld = results assert_equal tld, domain.tld, "Invalid tld for `#{name}'" @@ -81,7 +81,7 @@ def test_ignore_case end - IncludePrivateCases = [ + INCLUDE_PRIVATE_CASES = [ ["blogspot.com", true, "blogspot.com"], ["blogspot.com", false, nil], ["subdomain.blogspot.com", true, "blogspot.com"], @@ -90,11 +90,11 @@ def test_ignore_case def test_ignore_private # test domain and parse - IncludePrivateCases.each do |given, ignore_private, expected| + INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| assert_equal expected, PublicSuffix.domain(given, ignore_private: ignore_private) end # test valid? - IncludePrivateCases.each do |given, ignore_private, expected| + INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| assert_equal !expected.nil?, PublicSuffix.valid?(given, ignore_private: ignore_private) end end From 951442cb7d1aed35feba4f4f9500b764e2e6ca85 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:41:58 +0200 Subject: [PATCH 107/450] Rubocop: Fix Style/TrailingBlankLines --- .rubocop_todo.yml | 18 ------------------ test/acceptance_test.rb | 2 +- test/performance_benchmark.rb | 2 +- test/unit/errors_test.rb | 2 +- 4 files changed, 3 insertions(+), 21 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index f558644f..d9bb4dd1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -110,16 +110,6 @@ Style/SpecialGlobalVars: Style/StringLiterals: Enabled: false -# Offense count: 3 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: final_newline, final_blank_line -Style/TrailingBlankLines: - Exclude: - - 'test/acceptance_test.rb' - - 'test/performance_benchmark.rb' - - 'test/unit/errors_test.rb' - # Offense count: 1 # Cop supports --auto-correct. # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist. @@ -127,11 +117,3 @@ Style/TrailingBlankLines: Style/TrivialAccessors: Exclude: - 'lib/public_suffix/list.rb' - -# Offense count: 4 -# Cop supports --auto-correct. -# Configuration parameters: SupportedStyles, WordRegex. -# SupportedStyles: percent, brackets -Style/WordArray: - EnforcedStyle: percent - MinSize: 3 diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 3adb77be..7e96d107 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -114,4 +114,4 @@ def valid_domain?(name) false end -end \ No newline at end of file +end diff --git a/test/performance_benchmark.rb b/test/performance_benchmark.rb index 9c6015c3..fd1d6ae2 100644 --- a/test/performance_benchmark.rb +++ b/test/performance_benchmark.rb @@ -35,4 +35,4 @@ PublicSuffix.domain("a.b.ide.kyoto.jp", list) end end -end \ No newline at end of file +end diff --git a/test/unit/errors_test.rb b/test/unit/errors_test.rb index 180df9b8..ba38326d 100644 --- a/test/unit/errors_test.rb +++ b/test/unit/errors_test.rb @@ -20,4 +20,4 @@ def test_domain_not_allowed_inheritance PublicSuffix::DomainNotAllowed.new end -end \ No newline at end of file +end From 9874ba477ce74b0ebd44952130e350859f0ce0e6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:56:10 +0200 Subject: [PATCH 108/450] Rubocop: Fix Style/MutableConstant --- .rubocop_todo.yml | 7 ------- Rakefile | 2 +- test/acceptance_test.rb | 10 +++++----- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index d9bb4dd1..7b85ed1f 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -83,13 +83,6 @@ Style/IndentationWidth: Style/MultilineOperationIndentation: Enabled: false -# Offense count: 6 -# Cop supports --auto-correct. -Style/MutableConstant: - Exclude: - - 'Rakefile' - - 'test/acceptance_test.rb' - # Offense count: 6 # Cop supports --auto-correct. Style/PerlBackrefs: diff --git a/Rakefile b/Rakefile index 5a83d435..2c7f70e3 100644 --- a/Rakefile +++ b/Rakefile @@ -90,7 +90,7 @@ desc "Downloads the Public Suffix List file from the repository and stores it lo task :"update-list" do require "net/http" - DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" + DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat".freeze File.open("data/list.txt", "w+") do |f| response = Net::HTTP.get_response(URI.parse(DEFINITION_URL)) diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 7e96d107..c60ec95d 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -11,7 +11,7 @@ class AcceptanceTest < Minitest::Unit::TestCase ["parliament.uk", "parliament.uk", [nil, "parliament", "uk"]], ["foo.parliament.uk", "parliament.uk", ["foo", "parliament", "uk"]], - ] + ].freeze def test_valid VALID_CASES.each do |input, domain, results| @@ -32,7 +32,7 @@ def test_valid [nil, PublicSuffix::DomainInvalid], ["", PublicSuffix::DomainInvalid], [" ", PublicSuffix::DomainInvalid], - ] + ].freeze def test_invalid INVALID_CASES.each do |(name, error)| @@ -53,7 +53,7 @@ def test_invalid # I decided to cover this case because it's not easily reproducible with URI.parse # and can lead to several false positives. ["http://google.com", false], - ] + ].freeze def test_rejected REJECTED_CASES.each do |name, expected| @@ -67,7 +67,7 @@ def test_rejected ["Www.google.com", %w( www google com )], ["www.Google.com", %w( www google com )], ["www.google.Com", %w( www google com )], - ] + ].freeze def test_ignore_case CASE_CASES.each do |name, results| @@ -86,7 +86,7 @@ def test_ignore_case ["blogspot.com", false, nil], ["subdomain.blogspot.com", true, "blogspot.com"], ["subdomain.blogspot.com", false, "subdomain.blogspot.com"], - ] + ].freeze def test_ignore_private # test domain and parse From a790e3979c4d9ca635601b5af9d4fe3bbeb5c678 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:57:37 +0200 Subject: [PATCH 109/450] Rubocop: Fix Style/ExtraSpacing --- .rubocop_todo.yml | 8 -------- test/acceptance_test.rb | 4 ++-- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 7b85ed1f..acc133d0 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -31,14 +31,6 @@ Style/Documentation: - 'lib/public_suffix/domain.rb' - 'lib/public_suffix/rule.rb' -# Offense count: 6 -# Cop supports --auto-correct. -# Configuration parameters: AllowForAlignment, ForceEqualSignAlignment. -Style/ExtraSpacing: - Exclude: - - 'test/acceptance_test.rb' - - 'test/unit/list_test.rb' - # Offense count: 3 # Configuration parameters: EnforcedStyle, SupportedStyles. # SupportedStyles: format, sprintf, percent diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index c60ec95d..2c9bc3a6 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -83,9 +83,9 @@ def test_ignore_case INCLUDE_PRIVATE_CASES = [ ["blogspot.com", true, "blogspot.com"], - ["blogspot.com", false, nil], + ["blogspot.com", false, nil], ["subdomain.blogspot.com", true, "blogspot.com"], - ["subdomain.blogspot.com", false, "subdomain.blogspot.com"], + ["subdomain.blogspot.com", false, "subdomain.blogspot.com"], ].freeze def test_ignore_private From 313a75bb1a3fd4a9ca313b99baf42660e3c7605b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:58:11 +0200 Subject: [PATCH 110/450] Rubocop: Fix Style/GuardClause --- .rubocop_todo.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index acc133d0..d786dae7 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -40,12 +40,6 @@ Style/FormatString: - 'test/acceptance_test.rb' - 'test/psl_test.rb' -# Offense count: 2 -# Configuration parameters: MinBodyLength. -Style/GuardClause: - Exclude: - - 'lib/public_suffix/domain.rb' - # Offense count: 1 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues. From 53052797236354a5695f9f5f3e65a41b2363c881 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 14:59:13 +0200 Subject: [PATCH 111/450] Rubocop: Fix Style/HashSyntax --- .rubocop.yml | 4 ++++ .rubocop_todo.yml | 7 ------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 45f7d0e1..6e104c8a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -20,6 +20,10 @@ Style/EmptyLinesAroundClassBody: Style/EmptyLinesAroundModuleBody: Enabled: false +Style/HashSyntax: + Exclude: + - 'Rakefile' + Style/IfUnlessModifier: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index d786dae7..01e36f76 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -40,13 +40,6 @@ Style/FormatString: - 'test/acceptance_test.rb' - 'test/psl_test.rb' -# Offense count: 1 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues. -# SupportedStyles: ruby19, ruby19_no_mixed_keys, hash_rockets -Style/HashSyntax: - Enabled: false - # Offense count: 10 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. From a195682fd1ac71a59109613955d5a23abc76f6ea Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:03:26 +0200 Subject: [PATCH 112/450] Rubocop: Fix Style/IndentArray --- .rubocop.yml | 3 +++ .rubocop_todo.yml | 7 ------- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 6e104c8a..cadef17b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -24,6 +24,9 @@ Style/HashSyntax: Exclude: - 'Rakefile' +Style/IndentArray: + IndentationWidth: 4 + Style/IfUnlessModifier: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 01e36f76..95e85599 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -40,13 +40,6 @@ Style/FormatString: - 'test/acceptance_test.rb' - 'test/psl_test.rb' -# Offense count: 10 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. -# SupportedStyles: special_inside_parentheses, consistent, align_brackets -Style/IndentArray: - Enabled: false - # Offense count: 2 # Cop supports --auto-correct. # Configuration parameters: Width. From 7e39d06725b48136f05089782afc349ee587199b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:04:19 +0200 Subject: [PATCH 113/450] Rubocop: Fix Style/IndentationWidth --- .rubocop_todo.yml | 8 -------- lib/public_suffix/rule.rb | 2 +- test/execution_profiler.rb | 4 ++-- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 95e85599..2e536f27 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -40,14 +40,6 @@ Style/FormatString: - 'test/acceptance_test.rb' - 'test/psl_test.rb' -# Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: Width. -Style/IndentationWidth: - Exclude: - - 'lib/public_suffix/rule.rb' - - 'test/execution_profiler.rb' - # Offense count: 2 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index b21a84c3..d85ead9c 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -119,7 +119,7 @@ def initialize(value, private: false) # Returns true if this rule and other are instances of the same class # and has the same value, false otherwise. def ==(other) - equal?(other) || (self.class == other.class && value == other.value) + equal?(other) || (self.class == other.class && value == other.value) end alias eql? == diff --git a/test/execution_profiler.rb b/test/execution_profiler.rb index 44bd5f1c..2596000e 100644 --- a/test/execution_profiler.rb +++ b/test/execution_profiler.rb @@ -6,8 +6,8 @@ PublicSuffix::List.default report = MemoryProfiler.report do - PublicSuffix.domain("www.example.com") - PublicSuffix.domain("a.b.ide.kyoto.jp") + PublicSuffix.domain("www.example.com") + PublicSuffix.domain("a.b.ide.kyoto.jp") end report.pretty_print From 7c31998bf0adf3d256fccc26fb0f2639a0684c91 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:04:50 +0200 Subject: [PATCH 114/450] Rubocop: Fix Style/MultilineOperationIndentation --- .rubocop_todo.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 2e536f27..d84b2ee0 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -40,13 +40,6 @@ Style/FormatString: - 'test/acceptance_test.rb' - 'test/psl_test.rb' -# Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. -# SupportedStyles: aligned, indented -Style/MultilineOperationIndentation: - Enabled: false - # Offense count: 6 # Cop supports --auto-correct. Style/PerlBackrefs: From c646a6e91275f0c01e5be7d11d8660e8fbe3abf4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:09:22 +0200 Subject: [PATCH 115/450] Rubocop: Fix Style/TrivialAccessors --- .rubocop.yml | 10 ++++++++++ .rubocop_todo.yml | 8 -------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index cadef17b..d9f877f9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -39,5 +39,15 @@ Style/RescueModifier: Style/TrailingCommaInLiteral: EnforcedStyleForMultiline: consistent_comma +Style/TrivialAccessors: + # IgnoreClassMethods because I want to be able to define class-level accessors + # that sets an instance variable on the metaclass, such as: + # + # def self.default=(value) + # @default = value + # end + # + IgnoreClassMethods: true + Style/WordArray: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index d84b2ee0..1fc7782b 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -59,11 +59,3 @@ Style/SpecialGlobalVars: # SupportedStyles: single_quotes, double_quotes Style/StringLiterals: Enabled: false - -# Offense count: 1 -# Cop supports --auto-correct. -# Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist. -# Whitelist: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym -Style/TrivialAccessors: - Exclude: - - 'lib/public_suffix/list.rb' From 69f3e140c1ffa07986d4277bc1f50f3e28ffbb87 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:14:28 +0200 Subject: [PATCH 116/450] Rubocop: Fix Style/StringLiterals --- .rubocop.yml | 5 + .rubocop_todo.yml | 7 - Gemfile | 10 +- Rakefile | 14 +- lib/public_suffix.rb | 278 ++++++++++++++++---------------- lib/public_suffix/rule.rb | 2 +- test/acceptance_test.rb | 2 +- test/benchmark_helper.rb | 6 +- test/execution_profiler.rb | 6 +- test/initialization_profiler.rb | 6 +- test/performance_benchmark.rb | 2 +- test/psl_test.rb | 4 +- test/test_helper.rb | 14 +- test/unit/domain_test.rb | 2 +- test/unit/errors_test.rb | 2 +- test/unit/list_test.rb | 2 +- test/unit/public_suffix_test.rb | 22 +-- test/unit/rule_test.rb | 2 +- 18 files changed, 191 insertions(+), 195 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index d9f877f9..b8cdcdef 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -36,6 +36,11 @@ Style/NegatedIf: Style/RescueModifier: Enabled: false +# Hate It or Love It, I prefer double quotes as this is more consistent +# with several other programming languages and the output of puts and inspect. +Style/StringLiterals: + EnforcedStyle: double_quotes + Style/TrailingCommaInLiteral: EnforcedStyleForMultiline: consistent_comma diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 1fc7782b..521bd562 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -52,10 +52,3 @@ Style/PerlBackrefs: # SupportedStyles: use_perl_names, use_english_names Style/SpecialGlobalVars: EnforcedStyle: use_perl_names - -# Offense count: 492 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline. -# SupportedStyles: single_quotes, double_quotes -Style/StringLiterals: - Enabled: false diff --git a/Gemfile b/Gemfile index 0f362b01..0f15bb27 100644 --- a/Gemfile +++ b/Gemfile @@ -2,9 +2,9 @@ source "http://rubygems.org" gemspec -gem 'rake', '< 11' -gem 'minitest' -gem 'minitest-reporters' -gem 'coveralls', require: false +gem "rake", "< 11" +gem "minitest" +gem "minitest-reporters" +gem "coveralls", require: false -gem 'memory_profiler', require: false if !RUBY_VERSION.start_with?("2.0") +gem "memory_profiler", require: false if !RUBY_VERSION.start_with?("2.0") diff --git a/Rakefile b/Rakefile index 2c7f70e3..b3690b53 100644 --- a/Rakefile +++ b/Rakefile @@ -1,8 +1,8 @@ -require 'rubygems' -require 'bundler' +require "rubygems" +require "bundler" $:.unshift(File.dirname(__FILE__) + "/lib") -require 'public_suffix' +require "public_suffix" # Run test by default. @@ -31,7 +31,7 @@ spec = Gem::Specification.new do |s| end -require 'rubygems/package_task' +require "rubygems/package_task" Gem::PackageTask.new(spec) do |pkg| pkg.gem_spec = spec @@ -55,7 +55,7 @@ desc "Package the library and generates the gemspec" task package: [:gemspec] -require 'rake/testtask' +require "rake/testtask" Rake::TestTask.new do |t| t.libs = %w( lib test ) @@ -64,8 +64,8 @@ Rake::TestTask.new do |t| t.warning = !ENV["WARNING"].nil? end -require 'yard' -require 'yard/rake/yardoc_task' +require "yard" +require "yard/rake/yardoc_task" YARD::Rake::YardocTask.new(:yardoc) do |y| y.options = %w( --output-dir yardoc ) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 558d3d6b..ab4b4af8 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -4,11 +4,11 @@ # # Copyright (c) 2009-2016 Simone Carletti -require 'public_suffix/domain' -require 'public_suffix/version' -require 'public_suffix/errors' -require 'public_suffix/rule' -require 'public_suffix/list' +require "public_suffix/domain" +require "public_suffix/version" +require "public_suffix/errors" +require "public_suffix/rule" +require "public_suffix/list" module PublicSuffix @@ -16,150 +16,148 @@ module PublicSuffix BANG = "!".freeze STAR = "*".freeze - class << self - # Parses +name+ and returns the {PublicSuffix::Domain} instance. - # - # @example Parse a valid domain - # PublicSuffix.parse("google.com") - # # => # - # - # @example Parse a valid subdomain - # PublicSuffix.parse("www.google.com") - # # => # - # - # @example Parse a fully qualified domain - # PublicSuffix.parse("google.com.") - # # => # - # - # @example Parse a fully qualified domain (subdomain) - # PublicSuffix.parse("www.google.com.") - # # => # - # - # @example Parse an invalid domain - # PublicSuffix.parse("x.yz") - # # => PublicSuffix::DomainInvalid - # - # @example Parse an URL (not supported, only domains) - # PublicSuffix.parse("http://www.google.com") - # # => PublicSuffix::DomainInvalid - # - # - # @param [String, #to_s] name The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} - # @param [Boolean] ignore_private - # @return [PublicSuffix::Domain] - # - # @raise [PublicSuffix::Error] - # If domain is not a valid domain. - # @raise [PublicSuffix::DomainNotAllowed] - # If a rule for +domain+ is found, but the rule doesn't allow +domain+. - def parse(name, list: List.default, default_rule: nil, ignore_private: false) - what = normalize(name) - raise what if what.is_a?(DomainInvalid) - - default_rule ||= list.default_rule - rule = list.find(what, default: default_rule, ignore_private: ignore_private) - - if rule.nil? - raise DomainInvalid, "`#{what}` is not a valid domain" - end - if rule.decompose(what).last.nil? - raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" - end - - decompose(what, rule) + # Parses +name+ and returns the {PublicSuffix::Domain} instance. + # + # @example Parse a valid domain + # PublicSuffix.parse("google.com") + # # => # + # + # @example Parse a valid subdomain + # PublicSuffix.parse("www.google.com") + # # => # + # + # @example Parse a fully qualified domain + # PublicSuffix.parse("google.com.") + # # => # + # + # @example Parse a fully qualified domain (subdomain) + # PublicSuffix.parse("www.google.com.") + # # => # + # + # @example Parse an invalid domain + # PublicSuffix.parse("x.yz") + # # => PublicSuffix::DomainInvalid + # + # @example Parse an URL (not supported, only domains) + # PublicSuffix.parse("http://www.google.com") + # # => PublicSuffix::DomainInvalid + # + # + # @param [String, #to_s] name The domain name or fully qualified domain name to parse. + # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} + # @param [Boolean] ignore_private + # @return [PublicSuffix::Domain] + # + # @raise [PublicSuffix::Error] + # If domain is not a valid domain. + # @raise [PublicSuffix::DomainNotAllowed] + # If a rule for +domain+ is found, but the rule doesn't allow +domain+. + def self.parse(name, list: List.default, default_rule: nil, ignore_private: false) + what = normalize(name) + raise what if what.is_a?(DomainInvalid) + + default_rule ||= list.default_rule + rule = list.find(what, default: default_rule, ignore_private: ignore_private) + + if rule.nil? + raise DomainInvalid, "`#{what}` is not a valid domain" end - - # Checks whether +domain+ is assigned and allowed, without actually parsing it. - # - # This method doesn't care whether domain is a domain or subdomain. - # The validation is performed using the default {PublicSuffix::List}. - # - # @example Validate a valid domain - # PublicSuffix.valid?("example.com") - # # => true - # - # @example Validate a valid subdomain - # PublicSuffix.valid?("www.example.com") - # # => true - # - # @example Validate a not-listed domain - # PublicSuffix.valid?("example.tldnotlisted") - # # => true - # - # @example Validate a not-allowed domain - # PublicSuffix.valid?("example.do") - # # => false - # PublicSuffix.valid?("www.example.do") - # # => true - # - # @example Validate a fully qualified domain - # PublicSuffix.valid?("google.com.") - # # => true - # PublicSuffix.valid?("www.google.com.") - # # => true - # - # @example Check an URL (which is not a valid domain) - # PublicSuffix.valid?("http://www.example.com") - # # => false - # - # - # @param [String, #to_s] name The domain name or fully qualified domain name to validate. - # @param [Boolean] ignore_private - # @return [Boolean] - def valid?(name, list: List.default, default_rule: nil, ignore_private: true) - what = normalize(name) - return false if what.is_a?(DomainInvalid) - - default_rule ||= list.default_rule - rule = list.find(what, default: default_rule, ignore_private: ignore_private) - - !rule.nil? && !rule.decompose(what).last.nil? + if rule.decompose(what).last.nil? + raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" end - # Attempt to parse the name and returns the domain, if valid. - # - # This method doesn't raise. Instead, it returns nil if the domain is not valid for whatever reason. - # - # @param [String, #to_s] name The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} - # @param [Boolean] ignore_private - # @return [String] - def domain(name, **options) - parse(name, **options).domain - rescue PublicSuffix::Error - nil - end + decompose(what, rule) + end + + # Checks whether +domain+ is assigned and allowed, without actually parsing it. + # + # This method doesn't care whether domain is a domain or subdomain. + # The validation is performed using the default {PublicSuffix::List}. + # + # @example Validate a valid domain + # PublicSuffix.valid?("example.com") + # # => true + # + # @example Validate a valid subdomain + # PublicSuffix.valid?("www.example.com") + # # => true + # + # @example Validate a not-listed domain + # PublicSuffix.valid?("example.tldnotlisted") + # # => true + # + # @example Validate a not-allowed domain + # PublicSuffix.valid?("example.do") + # # => false + # PublicSuffix.valid?("www.example.do") + # # => true + # + # @example Validate a fully qualified domain + # PublicSuffix.valid?("google.com.") + # # => true + # PublicSuffix.valid?("www.google.com.") + # # => true + # + # @example Check an URL (which is not a valid domain) + # PublicSuffix.valid?("http://www.example.com") + # # => false + # + # + # @param [String, #to_s] name The domain name or fully qualified domain name to validate. + # @param [Boolean] ignore_private + # @return [Boolean] + def self.valid?(name, list: List.default, default_rule: nil, ignore_private: true) + what = normalize(name) + return false if what.is_a?(DomainInvalid) + + default_rule ||= list.default_rule + rule = list.find(what, default: default_rule, ignore_private: ignore_private) + + !rule.nil? && !rule.decompose(what).last.nil? + end + # Attempt to parse the name and returns the domain, if valid. + # + # This method doesn't raise. Instead, it returns nil if the domain is not valid for whatever reason. + # + # @param [String, #to_s] name The domain name or fully qualified domain name to parse. + # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} + # @param [Boolean] ignore_private + # @return [String] + def self.domain(name, **options) + parse(name, **options).domain + rescue PublicSuffix::Error + nil + end - private - def decompose(name, rule) - left, right = rule.decompose(name) + # private - parts = left.split(DOT) - # If we have 0 parts left, there is just a tld and no domain or subdomain - # If we have 1 part left, there is just a tld, domain and not subdomain - # If we have 2 parts left, the last part is the domain, the other parts (combined) are the subdomain - tld = right - sld = parts.empty? ? nil : parts.pop - trd = parts.empty? ? nil : parts.join(DOT) + def self.decompose(name, rule) + left, right = rule.decompose(name) - Domain.new(tld, sld, trd) - end + parts = left.split(DOT) + # If we have 0 parts left, there is just a tld and no domain or subdomain + # If we have 1 part left, there is just a tld, domain and not subdomain + # If we have 2 parts left, the last part is the domain, the other parts (combined) are the subdomain + tld = right + sld = parts.empty? ? nil : parts.pop + trd = parts.empty? ? nil : parts.join(DOT) - # Pretend we know how to deal with user input. - def normalize(name) - name = name.to_s.dup - name.strip! - name.chomp!(DOT) - name.downcase! - - return DomainInvalid.new("Name is blank") if name.empty? - return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) - return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") - name - end + Domain.new(tld, sld, trd) + end + + # Pretend we know how to deal with user input. + def self.normalize(name) + name = name.to_s.dup + name.strip! + name.chomp!(DOT) + name.downcase! + + return DomainInvalid.new("Name is blank") if name.empty? + return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) + return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") + name end end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index d85ead9c..2e5aa212 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -238,7 +238,7 @@ def rule # @param [String, #to_s] name The domain name to decompose # @return [Array] The array with [trd + sld, tld]. def decompose(domain) - suffix = (['.*?'] + parts).join('\.') + suffix = ([".*?"] + parts).join('\.') domain.to_s =~ /^(.*)\.(#{suffix})$/ [$1, $2] end diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 2c9bc3a6..0edc591a 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require "test_helper" class AcceptanceTest < Minitest::Unit::TestCase diff --git a/test/benchmark_helper.rb b/test/benchmark_helper.rb index 1e7e3b45..3b33a244 100644 --- a/test/benchmark_helper.rb +++ b/test/benchmark_helper.rb @@ -1,4 +1,4 @@ -require 'benchmark' +require "benchmark" -$:.unshift File.expand_path('../../lib', __FILE__) -require 'public_suffix' +$:.unshift File.expand_path("../../lib", __FILE__) +require "public_suffix" diff --git a/test/execution_profiler.rb b/test/execution_profiler.rb index 2596000e..a8e48df2 100644 --- a/test/execution_profiler.rb +++ b/test/execution_profiler.rb @@ -1,7 +1,7 @@ -$:.unshift File.expand_path('../../lib', __FILE__) +$:.unshift File.expand_path("../../lib", __FILE__) -require 'memory_profiler' -require 'public_suffix' +require "memory_profiler" +require "public_suffix" PublicSuffix::List.default diff --git a/test/initialization_profiler.rb b/test/initialization_profiler.rb index 3df0dd79..f6fd1e9f 100644 --- a/test/initialization_profiler.rb +++ b/test/initialization_profiler.rb @@ -1,7 +1,7 @@ -$:.unshift File.expand_path('../../lib', __FILE__) +$:.unshift File.expand_path("../../lib", __FILE__) -require 'memory_profiler' -require 'public_suffix' +require "memory_profiler" +require "public_suffix" report = MemoryProfiler.report do PublicSuffix::List.default diff --git a/test/performance_benchmark.rb b/test/performance_benchmark.rb index fd1d6ae2..aa935fd9 100644 --- a/test/performance_benchmark.rb +++ b/test/performance_benchmark.rb @@ -1,4 +1,4 @@ -require_relative 'benchmark_helper' +require_relative "benchmark_helper" iterations = 100_000 diff --git a/test/psl_test.rb b/test/psl_test.rb index 2f38bb73..68b8def0 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -1,5 +1,5 @@ -require 'test_helper' -require 'public_suffix' +require "test_helper" +require "public_suffix" # This test runs against the current PSL file and ensures # the definitions satisfies the test suite. diff --git a/test/test_helper.rb b/test/test_helper.rb index de0dba1c..d41ffd2d 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,16 +1,16 @@ -if ENV['COVERALL'] - require 'coveralls' +if ENV["COVERALL"] + require "coveralls" Coveralls.wear! end -require 'minitest/autorun' -require 'minitest/reporters' -require 'mocha/setup' +require "minitest/autorun" +require "minitest/reporters" +require "mocha/setup" Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true) -$:.unshift File.expand_path('../../lib', __FILE__) -require 'public_suffix' +$:.unshift File.expand_path("../../lib", __FILE__) +require "public_suffix" Minitest::Unit::TestCase.class_eval do def assert_not_equal(exp, act, msg = nil) diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index ef71e580..16204951 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require "test_helper" class PublicSuffix::DomainTest < Minitest::Unit::TestCase diff --git a/test/unit/errors_test.rb b/test/unit/errors_test.rb index ba38326d..2a67baaa 100644 --- a/test/unit/errors_test.rb +++ b/test/unit/errors_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require "test_helper" class ErrorsTest < Minitest::Unit::TestCase diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 2a1b0f49..c1d6a733 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require "test_helper" class PublicSuffix::ListTest < Minitest::Unit::TestCase diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 12989e50..25d62638 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require "test_helper" class PublicSuffixTest < Minitest::Unit::TestCase @@ -138,13 +138,13 @@ def test_self_domain_with_blank_sld def test_self_normalize [ - ['com', 'com'], - ['example.com', 'example.com'], - ['www.example.com', 'www.example.com'], + ["com", "com"], + ["example.com", "example.com"], + ["www.example.com", "www.example.com"], - ['example.com.', 'example.com'], # strip FQDN - [' example.com ', 'example.com'], # strip spaces - ['Example.COM', 'example.com'], # downcase + ["example.com.", "example.com"], # strip FQDN + [" example.com ", "example.com"], # strip spaces + ["Example.COM", "example.com"], # downcase ].each do |input, output| assert_equal output, PublicSuffix.normalize(input) end @@ -153,8 +153,8 @@ def test_self_normalize def test_normalize_blank [ nil, - '', - ' ', + "", + " ", ].each do |input, _| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error @@ -164,7 +164,7 @@ def test_normalize_blank def test_normalize_scheme [ - 'https://google.com', + "https://google.com", ].each do |input, _| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error @@ -174,7 +174,7 @@ def test_normalize_scheme def test_normalize_leading_dot [ - '.google.com', + ".google.com", ].each do |input, _| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index f59f3ed0..ec3879e0 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -1,4 +1,4 @@ -require 'test_helper' +require "test_helper" class PublicSuffix::RuleTest < Minitest::Unit::TestCase From 1501dac91763f23fd0798c761ba54402005c9f5e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:19:20 +0200 Subject: [PATCH 117/450] Rubocop: Fix Style/PerlBackrefs --- .rubocop_todo.yml | 6 ------ lib/public_suffix/rule.rb | 12 ++++++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 521bd562..cc8e731d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -40,12 +40,6 @@ Style/FormatString: - 'test/acceptance_test.rb' - 'test/psl_test.rb' -# Offense count: 6 -# Cop supports --auto-correct. -Style/PerlBackrefs: - Exclude: - - 'lib/public_suffix/rule.rb' - # Offense count: 5 # Cop supports --auto-correct. # Configuration parameters: SupportedStyles. diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 2e5aa212..8eed3369 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -192,8 +192,8 @@ def rule # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = parts.join('\.') - domain.to_s =~ /^(.*)\.(#{suffix})$/ - [$1, $2] + matches = domain.to_s.match(/^(.*)\.(#{suffix})$/) + matches ? matches[1..2] : [nil, nil] end # dot-split rule value and returns all rule parts @@ -239,8 +239,8 @@ def rule # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = ([".*?"] + parts).join('\.') - domain.to_s =~ /^(.*)\.(#{suffix})$/ - [$1, $2] + matches = domain.to_s.match(/^(.*)\.(#{suffix})$/) + matches ? matches[1..2] : [nil, nil] end # dot-split rule value and returns all rule parts @@ -287,8 +287,8 @@ def rule # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = parts.join('\.') - domain.to_s =~ /^(.*)\.(#{suffix})$/ - [$1, $2] + matches = domain.to_s.match(/^(.*)\.(#{suffix})$/) + matches ? matches[1..2] : [nil, nil] end # dot-split rule value and returns all rule parts From c74f82e6e2a89f8d2d088d7516c8b1379587dc5b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:20:06 +0200 Subject: [PATCH 118/450] Rubocop: Fix Style/SpecialGlobalVars --- .rubocop_todo.yml | 7 ------- Rakefile | 2 +- test/benchmark_helper.rb | 2 +- test/execution_profiler.rb | 2 +- test/initialization_profiler.rb | 2 +- test/test_helper.rb | 2 +- 6 files changed, 5 insertions(+), 12 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index cc8e731d..4c8f84de 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -39,10 +39,3 @@ Style/FormatString: - 'lib/public_suffix.rb' - 'test/acceptance_test.rb' - 'test/psl_test.rb' - -# Offense count: 5 -# Cop supports --auto-correct. -# Configuration parameters: SupportedStyles. -# SupportedStyles: use_perl_names, use_english_names -Style/SpecialGlobalVars: - EnforcedStyle: use_perl_names diff --git a/Rakefile b/Rakefile index b3690b53..1a04396b 100644 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,7 @@ require "rubygems" require "bundler" -$:.unshift(File.dirname(__FILE__) + "/lib") +$LOAD_PATH.unshift(File.dirname(__FILE__) + "/lib") require "public_suffix" diff --git a/test/benchmark_helper.rb b/test/benchmark_helper.rb index 3b33a244..1e7fc1c9 100644 --- a/test/benchmark_helper.rb +++ b/test/benchmark_helper.rb @@ -1,4 +1,4 @@ require "benchmark" -$:.unshift File.expand_path("../../lib", __FILE__) +$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require "public_suffix" diff --git a/test/execution_profiler.rb b/test/execution_profiler.rb index a8e48df2..4504bb50 100644 --- a/test/execution_profiler.rb +++ b/test/execution_profiler.rb @@ -1,4 +1,4 @@ -$:.unshift File.expand_path("../../lib", __FILE__) +$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require "memory_profiler" require "public_suffix" diff --git a/test/initialization_profiler.rb b/test/initialization_profiler.rb index f6fd1e9f..e9469e6d 100644 --- a/test/initialization_profiler.rb +++ b/test/initialization_profiler.rb @@ -1,4 +1,4 @@ -$:.unshift File.expand_path("../../lib", __FILE__) +$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require "memory_profiler" require "public_suffix" diff --git a/test/test_helper.rb b/test/test_helper.rb index d41ffd2d..24f7a4b5 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,7 +9,7 @@ Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true) -$:.unshift File.expand_path("../../lib", __FILE__) +$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require "public_suffix" Minitest::Unit::TestCase.class_eval do From ad106a649065b41be8616127695490fb4c3f1956 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:25:28 +0200 Subject: [PATCH 119/450] Rubocop: Fix Style/FormatString --- .rubocop.yml | 6 ++++++ .rubocop_todo.yml | 9 --------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index b8cdcdef..ae0e3341 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -20,6 +20,12 @@ Style/EmptyLinesAroundClassBody: Style/EmptyLinesAroundModuleBody: Enabled: false +# I personally don't care about the format style. +# In most cases I like to use %, but not at the point I want to enforce it +# as a convention in the entire code. +Style/FormatString: + Enabled: false + Style/HashSyntax: Exclude: - 'Rakefile' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4c8f84de..b8777bc9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -30,12 +30,3 @@ Style/Documentation: - 'lib/public_suffix.rb' - 'lib/public_suffix/domain.rb' - 'lib/public_suffix/rule.rb' - -# Offense count: 3 -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: format, sprintf, percent -Style/FormatString: - Exclude: - - 'lib/public_suffix.rb' - - 'test/acceptance_test.rb' - - 'test/psl_test.rb' From 3427fde2c0733cdc459103fcddb214b30606b76e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:27:41 +0200 Subject: [PATCH 120/450] Rubocop: Fix Metrics/MethodLength --- .rubocop.yml | 6 ++++++ .rubocop_todo.yml | 5 ----- lib/public_suffix/list.rb | 3 +++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index ae0e3341..7f0bef56 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -11,6 +11,12 @@ Metrics/AbcSize: Exclude: - 'test/**/*_test.rb' +Metrics/MethodLength: + Exclude: + - 'test/**/*_test.rb' + Max: 15 + + Style/EmptyLines: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index b8777bc9..969dd9bb 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -17,11 +17,6 @@ Metrics/ClassLength: Metrics/LineLength: Max: 719 -# Offense count: 9 -# Configuration parameters: CountComments. -Metrics/MethodLength: - Max: 32 - # Offense count: 5 Style/Documentation: Exclude: diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index bf4d79a9..7db6016c 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -70,6 +70,8 @@ def self.clear self end + # rubocop:disable Metrics/MethodLength + # Parse given +input+ treating the content as Public Suffix List. # # See http://publicsuffix.org/format/ for more details about input format. @@ -107,6 +109,7 @@ def self.parse(input, private_domains: true) end end end + # rubocop:enable Metrics/MethodLength # Gets the array of rules. From 71fe24bc24ea83dd14e300b2ba154dab792a93fa Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:31:59 +0200 Subject: [PATCH 121/450] Rubocop: Fix Metrics/ClassLength --- .rubocop.yml | 5 ++++- .rubocop_todo.yml | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 7f0bef56..a446767f 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -11,12 +11,15 @@ Metrics/AbcSize: Exclude: - 'test/**/*_test.rb' +Metrics/ClassLength: + Exclude: + - 'test/**/*_test.rb' + Metrics/MethodLength: Exclude: - 'test/**/*_test.rb' Max: 15 - Style/EmptyLines: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 969dd9bb..3f05bf68 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -8,8 +8,8 @@ # Offense count: 2 # Configuration parameters: CountComments. -Metrics/ClassLength: - Max: 184 +#Metrics/ClassLength: +# Max: 184 # Offense count: 77 # Configuration parameters: AllowHeredoc, AllowURI, URISchemes. From 4f8549d761ace1dda6a048b167d44158f67306b8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:44:17 +0200 Subject: [PATCH 122/450] Rubocop: Fix Metrics/LineLength --- .rubocop.yml | 6 ++++++ .rubocop_todo.yml | 11 ----------- lib/public_suffix/rule.rb | 4 +++- test/acceptance_test.rb | 6 ++++-- test/unit/list_test.rb | 4 +++- test/unit/public_suffix_test.rb | 3 ++- test/unit/rule_test.rb | 5 +++-- 7 files changed, 21 insertions(+), 18 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index a446767f..0b30a7c8 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -20,6 +20,12 @@ Metrics/MethodLength: - 'test/**/*_test.rb' Max: 15 +Metrics/LineLength: + Enabled: false + Exclude: + - 'test/**/*_test.rb' + Max: 100 + Style/EmptyLines: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 3f05bf68..c03ab550 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -6,17 +6,6 @@ # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 2 -# Configuration parameters: CountComments. -#Metrics/ClassLength: -# Max: 184 - -# Offense count: 77 -# Configuration parameters: AllowHeredoc, AllowURI, URISchemes. -# URISchemes: http, https -Metrics/LineLength: - Max: 719 - # Offense count: 5 Style/Documentation: Exclude: diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 8eed3369..74f0fcf9 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -125,7 +125,9 @@ def ==(other) # Checks if this rule matches +name+. # - # A domain name is said to match a rule if and only if all of the following conditions are met: + # A domain name is said to match a rule if and only if + # all of the following conditions are met: + # # - When the domain and rule are split into corresponding labels, # that the domain contains as many or more labels than the rule. # - Beginning with the right-most labels of both the domain and the rule, diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 0edc591a..799093e6 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -57,8 +57,10 @@ def test_invalid def test_rejected REJECTED_CASES.each do |name, expected| - assert_equal expected, PublicSuffix.valid?(name), "Expected %s to be %s" % [name.inspect, expected.inspect] - assert !valid_domain?(name), "#{name} expected to be invalid" + assert_equal expected, PublicSuffix.valid?(name), + "Expected %s to be %s" % [name.inspect, expected.inspect] + assert !valid_domain?(name), + "#{name} expected to be invalid" end end diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index c1d6a733..954d9345 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -203,7 +203,9 @@ def test_self_parse assert_instance_of PublicSuffix::List, list assert_equal 4, list.size - assert_equal %w( com *.uk !british-library.uk blogspot.com ).map { |name| PublicSuffix::Rule.factory(name) }, list.to_a + + rules = %w( com *.uk !british-library.uk blogspot.com ).map { |name| PublicSuffix::Rule.factory(name) } + assert_equal rules, list.to_a # private domains assert_equal false, list.find("com").private diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 25d62638..242c4cf1 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -8,7 +8,8 @@ def test_private_domains_enabled_by_default end def test_private_domains_disable - PublicSuffix::List.default = PublicSuffix::List.parse(File.read(PublicSuffix::List::DEFAULT_LIST_PATH), private_domains: false) + data = File.read(PublicSuffix::List::DEFAULT_LIST_PATH) + PublicSuffix::List.default = PublicSuffix::List.parse(data, private_domains: false) domain = PublicSuffix.parse("www.example.blogspot.com") assert_equal "com", domain.tld ensure diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index ec3879e0..39ab28bd 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -56,14 +56,15 @@ def test_equality_with_self assert_equal rule, rule end + # rubocop:disable Style/SingleLineMethods def test_equality_with_internals assert_equal @klass.new("foo"), @klass.new("foo") assert_not_equal @klass.new("foo"), @klass.new("bar") assert_not_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("foo") assert_not_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("bar") - assert_not_equal @klass.new("foo"), Class.new { def name; foo; end }.new # rubocop:disable Style/SingleLineMethods + assert_not_equal @klass.new("foo"), Class.new { def name; foo; end }.new end - + # rubocop:enable Style/SingleLineMethods def test_match [ From c83f651480254d3f395455da7bf75fda0739d1a2 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:48:58 +0200 Subject: [PATCH 123/450] Rubocop: Fix Style/Documentation --- .rubocop.yml | 7 +++++-- .rubocop_todo.yml | 16 ---------------- lib/public_suffix.rb | 8 ++++++++ lib/public_suffix/domain.rb | 1 + lib/public_suffix/rule.rb | 5 ++++- 5 files changed, 18 insertions(+), 19 deletions(-) delete mode 100644 .rubocop_todo.yml diff --git a/.rubocop.yml b/.rubocop.yml index 0b30a7c8..117a8e95 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,3 @@ -inherit_from: .rubocop_todo.yml - AllCops: Exclude: - 'public_suffix.gemspec' @@ -26,6 +24,11 @@ Metrics/LineLength: - 'test/**/*_test.rb' Max: 100 +Style/Documentation: + Exclude: + - 'spec/**/*' + - 'test/**/*' + Style/EmptyLines: Enabled: false diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml deleted file mode 100644 index c03ab550..00000000 --- a/.rubocop_todo.yml +++ /dev/null @@ -1,16 +0,0 @@ -# This configuration was generated by -# `rubocop --auto-gen-config` -# on 2016-03-27 12:18:24 +0200 using RuboCop version 0.38.0. -# The point is for the user to remove these configuration records -# one by one as the offenses are removed from the code base. -# Note that changes in the inspected code, or installation of new -# versions of RuboCop, may require this file to be generated again. - -# Offense count: 5 -Style/Documentation: - Exclude: - - 'spec/**/*' - - 'test/**/*' - - 'lib/public_suffix.rb' - - 'lib/public_suffix/domain.rb' - - 'lib/public_suffix/rule.rb' diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index ab4b4af8..ef4d38ea 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -10,6 +10,14 @@ require "public_suffix/rule" require "public_suffix/list" +# PublicSuffix is a Ruby domain name parser based on the Public Suffix List. +# +# The [Public Suffix List](https://publicsuffix.org) is a cross-vendor initiative +# to provide an accurate list of domain name suffixes. +# +# The Public Suffix List is an initiative of the Mozilla Project, +# but is maintained as a community resource. It is available for use in any software, +# but was originally created to meet the needs of browser manufacturers. module PublicSuffix DOT = ".".freeze diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index d8de4978..53fc98fa 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -6,6 +6,7 @@ module PublicSuffix + # Domain represents a domain name, composed by a TLD, SLD and TRD. class Domain # Splits a string into the labels, that is the dot-separated parts. diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 74f0fcf9..85ea60ac 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -19,7 +19,7 @@ module PublicSuffix # module Rule - # # Abstract rule class + # = Abstract rule class # # This represent the base class for a Rule definition # in the {Public Suffix List}[https://publicsuffix.org]. @@ -172,6 +172,7 @@ def decompose(*) end + # Normal represents a standard rule (e.g. com). class Normal < Base # Initializes a new rule from +definition+. @@ -216,6 +217,7 @@ def length end + # Wildcard represents a wildcard rule (e.g. *.co.uk). class Wildcard < Base # Initializes a new rule from +definition+. @@ -264,6 +266,7 @@ def length end + # Exception represents an exception rule (e.g. !parliament.uk). class Exception < Base # Initializes a new rule from +definition+. From 4acc5c4a67cf8d9b572ccc43faf4afcea5c81d25 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 15:56:36 +0200 Subject: [PATCH 124/450] Add Rubocop to the Gemfile --- Gemfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Gemfile b/Gemfile index 0f15bb27..c53a1f2d 100644 --- a/Gemfile +++ b/Gemfile @@ -6,5 +6,6 @@ gem "rake", "< 11" gem "minitest" gem "minitest-reporters" gem "coveralls", require: false +gem "rubocop", require: false gem "memory_profiler", require: false if !RUBY_VERSION.start_with?("2.0") From b9a7d2afce75268cd4e48f78c5de50ba54b024e8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 16:01:48 +0200 Subject: [PATCH 125/450] Add Rubocop to the default tasks --- Rakefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Rakefile b/Rakefile index 1a04396b..1c7a3fc6 100644 --- a/Rakefile +++ b/Rakefile @@ -5,8 +5,8 @@ $LOAD_PATH.unshift(File.dirname(__FILE__) + "/lib") require "public_suffix" -# Run test by default. -task :default => :test +# By default, run tests and linter. +task default: [:test, :rubocop] spec = Gem::Specification.new do |s| s.name = "public_suffix" @@ -64,6 +64,10 @@ Rake::TestTask.new do |t| t.warning = !ENV["WARNING"].nil? end +require "rubocop/rake_task" + +RuboCop::RakeTask.new + require "yard" require "yard/rake/yardoc_task" @@ -76,8 +80,7 @@ namespace :yardoc do rm_r "yardoc" rescue nil end end - -task clobber: "yardoc:clobber" +task clobber: ["yardoc:clobber"] desc "Open an irb session preloaded with this library" From 5e4194262e7d71dfba98aea0a7f3bf65462f134a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 16:02:50 +0200 Subject: [PATCH 126/450] Stop testing RBX --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4638becf..77b665e3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ rvm: - 2.3.0 - ruby-head - jruby-19mode -- rbx-19mode sudo: false env: COVERALL=1 @@ -20,7 +19,6 @@ notifications: matrix: allow_failures: - - rvm: rbx-19mode - rvm: jruby-19mode - rvm: ruby-head From bc6ff37ec37e6afe2f2c8abde6b7682d365a13a8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 20:09:40 +0200 Subject: [PATCH 127/450] Update .rubocop.yml --- .rubocop.yml | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/.rubocop.yml b/.rubocop.yml index 117a8e95..ba7ed0de 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,40 +1,61 @@ AllCops: Exclude: - - 'public_suffix.gemspec' + # Exclude .gemspec files because they are generally auto-generated + - '*.gemspec' Lint/AmbiguousRegexpLiteral: Enabled: false +# [codesmell] Metrics/AbcSize: + Enabled: false Exclude: + - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' +# [codesmell] Metrics/ClassLength: Exclude: + - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' +# [codesmell] Metrics/MethodLength: Exclude: + - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' Max: 15 +# [codesmell] Metrics/LineLength: Enabled: false Exclude: + - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' Max: 100 +# Do not use "and" or "or" in conditionals, but for readability we can use it +# to chain executions. Just beware of operator order. +Style/AndOr: + EnforcedStyle: conditionals + Style/Documentation: Exclude: - 'spec/**/*' - 'test/**/*' +# Double empty lines are useful to separate conceptually different methods +# in the same class or module. Style/EmptyLines: Enabled: false +# In most cases, a space is nice. Sometimes, it's not. +# Just be consistent with the rest of the surrounding code. Style/EmptyLinesAroundClassBody: Enabled: false +# In most cases, a space is nice. Sometimes, it's not. +# Just be consistent with the rest of the surrounding code. Style/EmptyLinesAroundModuleBody: Enabled: false @@ -44,19 +65,38 @@ Style/EmptyLinesAroundModuleBody: Style/FormatString: Enabled: false +# Prefer the latest Hash syntax Style/HashSyntax: Exclude: + # But Rakefiles generally have some definition like + # :default => :test + # that looks nicer with the old rocket syntax. - 'Rakefile' +# Array indentation should be considered like MultilineMethodCallIndentation indentation +# and use 4 spaces instead of 2. Style/IndentArray: IndentationWidth: 4 +# Hash indentation should be considered like MultilineMethodCallIndentation indentation +# and use 4 spaces instead of 2. +Style/IndentHash: + IndentationWidth: 4 + +# Multi-line differs from standard indentation, they are indented twice. +Style/MultilineMethodCallIndentation: + EnforcedStyle: indented + IndentationWidth: 4 + Style/IfUnlessModifier: Enabled: false +# unless is not always cool. Style/NegatedIf: Enabled: false +# There are cases were the inline rescue is ok. We can either downgrade the severity, +# or rely on the developer judgement on a case-by-case basis. Style/RescueModifier: Enabled: false @@ -65,6 +105,8 @@ Style/RescueModifier: Style/StringLiterals: EnforcedStyle: double_quotes +# It's nice to be consistent. The trailing comma also allows easy reordering, +# and doesn't cause a diff in Git when you add a line to the bottom. Style/TrailingCommaInLiteral: EnforcedStyleForMultiline: consistent_comma From 0616d655b9607b564bafe2dd4aafc731e9505b30 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 27 Mar 2016 20:10:25 +0200 Subject: [PATCH 128/450] Update Rakefile --- Rakefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Rakefile b/Rakefile index 1c7a3fc6..6e7fdcd8 100644 --- a/Rakefile +++ b/Rakefile @@ -68,6 +68,7 @@ require "rubocop/rake_task" RuboCop::RakeTask.new + require "yard" require "yard/rake/yardoc_task" From 7d74aaa5811d8122df7006935450f57be8db0b65 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 7 Apr 2016 22:47:43 +0800 Subject: [PATCH 129/450] Update definitions --- data/list.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 86e60be4..d8a3bf90 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6936,7 +6936,7 @@ web.za *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-03-25T21:39:59Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-04-04T20:12:16Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -9662,6 +9662,9 @@ shiksha // shoes : 2013-10-02 Binky Galley, LLC shoes +// shopping : 2016-03-31 Uniregistry, Corp. +shopping + // shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. shouji @@ -11347,6 +11350,10 @@ rackmaze.net // Submitted by Tim Kramer rhcloud.com +// RethinkDB : https://www.rethinkdb.com/ +// Submitted by Chris Kastorff +hzc.io + // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia sandcats.io From 2c5ceb70bb13d3ba8fac8825527403db0859642f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 18 Apr 2016 22:41:17 +0200 Subject: [PATCH 130/450] Update list --- data/list.txt | 59 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index d8a3bf90..2ca5763f 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6929,8 +6929,20 @@ school.za tm.za web.za -// zm : https://en.wikipedia.org/wiki/.zm -*.zm +// zm : https://zicta.zm/ +// Submitted by registry +zm +ac.zm +biz.zm +co.zm +com.zm +edu.zm +gov.zm +info.zm +mil.zm +net.zm +org.zm +sch.zm // zw : https://en.wikipedia.org/wiki/.zw *.zw @@ -10609,6 +10621,11 @@ zuerich // ===BEGIN PRIVATE DOMAINS=== // (Note: these are in alphabetical order by company name) +// Alces Software Ltd : http://alces-software.com +// Submitted by Mark J. Titorenko +*.compute.estate +*.alces.network + // Amazon CloudFront : https://aws.amazon.com/cloudfront/ // Submitted by Donavan Miller cloudfront.net @@ -10661,6 +10678,14 @@ s3.ap-northeast-2.amazonaws.com s3.cn-north-1.amazonaws.com.cn s3.eu-central-1.amazonaws.com +// Aptible : https://www.aptible.com/ +// Submitted by Thomas Orozco +on-aptible.com + +// AVM : https://avm.de +// Submitted by Andreas Weise +myfritz.net + // BetaInABox // Submitted by Adrian betainabox.com @@ -10760,6 +10785,10 @@ cupcake.is cyon.link cyon.site +// Daplie, Inc : https://daplie.com +// Submitted by AJ ONeal +daplie.me + // Dansk.net : http://www.dansk.net/ // Submitted by Anani Voule biz.dk @@ -10768,6 +10797,10 @@ firm.dk reg.dk store.dk +// deSEC : https://desec.io/ +// Submitted by Peter Thomassen +dedyn.io + // DreamHost : http://www.dreamhost.com/ // Submitted by Andrew Farmer dreamhosters.com @@ -11162,8 +11195,13 @@ gist.githubcloud.com // Submitted by Zoltan Egresi ro.com +// GoIP DNS Services : http://www.goip.de +// Submitted by Christian Poulter +goip.de + // Google, Inc. // Submitted by Eduardo Vela +*.0emm.com appspot.com blogspot.ae blogspot.al @@ -11288,6 +11326,10 @@ ngrok.io // Submitted by Jeff Wheelhouse nfshost.com +// nsupdate.info : https://www.nsupdate.info/ +// Submitted by Thomas Waldmann +nsupdate.info + // NYC.mn : http://www.information.nyc.mn // Submitted by Matthew Brown nyc.mn @@ -11337,6 +11379,10 @@ xen.prgmr.com // Submitted by registry priv.at +// Publication Presse Communication SARL : https://ppcom.fr +// Submitted by Yaacov Akiba Slama +chirurgiens-dentistes-en-france.fr + // QA2 // Submitted by Daniel Dent (https://www.danieldent.com/) qa2.com @@ -11393,6 +11439,11 @@ gdynia.pl med.pl sopot.pl +// TownNews.com domains : http://www.townnews.com +// Submitted by Dustin Ward +bloxcms.com +townnews-staging.com + // UDR Limited : http://www.udr.hk.com // Submitted by registry hk.com @@ -11400,6 +11451,10 @@ hk.org ltd.hk inc.hk +// Viprinet Europe GmbH : http://www.viprinet.com +// Submitted by Simon Kissel +router.management + // Yola : https://www.yola.com/ // Submitted by Stefano Rivera yolasite.com From 61775659a893144515c7482a1e7d5719b8d01d62 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 11 Apr 2016 07:01:58 +0100 Subject: [PATCH 131/450] https! --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2f42557d..d7072e1a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Public Suffix Ruby -PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](http://publicsuffix.org/). +PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](https://publicsuffix.org/). [![Build Status](https://travis-ci.org/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.org/weppos/publicsuffix-ruby) @@ -26,7 +26,7 @@ As well as being used to prevent cookies from being set where they shouldn't be, Source: https://wiki.mozilla.org/Public_Suffix_List -Not convinced yet? Check out [this real world example](http://stackoverflow.com/q/288810/123527). +Not convinced yet? Check out [this real world example](https://stackoverflow.com/q/288810/123527). ## Requirements @@ -124,7 +124,7 @@ PublicSuffix.domain("www.google.com.") ## Private domains -This library has support for switching off support for private (non-ICANN). +This library has support for switching off support for private (non-ICANN). ```ruby # Extract a domain including private domains (by default) @@ -166,7 +166,7 @@ Report issues or feature requests to [GitHub Issues](https://github.com/weppos/p ## More -- [Homepage](http://simonecarletti.com/code/publicsuffix) +- [Homepage](https://simonecarletti.com/code/publicsuffix-ruby) - [Repository](https://github.com/weppos/publicsuffix-ruby) - [API Documentation](http://rubydoc.info/gems/public_suffix) - [Introducing the Public Suffix List library for Ruby](https://simonecarletti.com/blog/2010/06/public-suffix-list-library-for-ruby/) From 975a5603c42b6c31f3d7d43a5c1f2ce620280c5f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 11 Apr 2016 07:03:32 +0100 Subject: [PATCH 132/450] Update installation details --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d7072e1a..444a90fb 100644 --- a/README.md +++ b/README.md @@ -38,14 +38,17 @@ For an older versions of Ruby use a previous release. ## Installation -The best way to install PublicSuffix is via [RubyGems](https://rubygems.org/). +You can install the gem manually: ```shell $ gem install public_suffix ``` -You might need administrator privileges on your system to install the gem. +Or use Bundler and define it as a dependency in your `Gemfile`: +```shell +$ gem 'public_suffix' +``` ## Usage From 724cd7481b0359845f72a41b287c7a988dcd8ea3 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 12 Apr 2016 09:19:56 +0100 Subject: [PATCH 133/450] Remove unnecessary constants --- lib/public_suffix/version.rb | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 20a50315..1f574c51 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -7,16 +7,6 @@ # module PublicSuffix - - module Version - MAJOR = 2 - MINOR = 0 - PATCH = 0 - BUILD = nil - - STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join(".") - end - - VERSION = Version::STRING - + # The current library version. + VERSION = "2.0.0" end From b66af9da847ca5f1b754bf0a2156728dd206fd3a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 19 Apr 2016 19:25:57 +0200 Subject: [PATCH 134/450] Move less relevant info to the bottom of the README --- README.md | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 444a90fb..6da3e32e 100644 --- a/README.md +++ b/README.md @@ -5,30 +5,6 @@ [![Build Status](https://travis-ci.org/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.org/weppos/publicsuffix-ruby) -## What is the Public Suffix List? - -The [Public Suffix List](https://publicsuffix.org) is a cross-vendor initiative to provide an accurate list of domain name suffixes. - -The Public Suffix List is an initiative of the Mozilla Project, but is maintained as a community resource. It is available for use in any software, but was originally created to meet the needs of browser manufacturers. - -A "public suffix" is one under which Internet users can directly register names. Some examples of public suffixes are ".com", ".co.uk" and "pvt.k12.wy.us". The Public Suffix List is a list of all known public suffixes. - - -## Why the Public Suffix List is better than any available Regular Expression parser? - -Previously, browsers used an algorithm which basically only denied setting wide-ranging cookies for top-level domains with no dots (e.g. com or org). However, this did not work for top-level domains where only third-level registrations are allowed (e.g. co.uk). In these cases, websites could set a cookie for co.uk which will be passed onto every website registered under co.uk. - -Clearly, this was a security risk as it allowed websites other than the one setting the cookie to read it, and therefore potentially extract sensitive information. - -Since there is no algorithmic method of finding the highest level at which a domain may be registered for a particular top-level domain (the policies differ with each registry), the only method is to create a list of all top-level domains and the level at which domains can be registered. This is the aim of the effective TLD list. - -As well as being used to prevent cookies from being set where they shouldn't be, the list can also potentially be used for other applications where the registry controlled and privately controlled parts of a domain name need to be known, for example when grouping by top-level domains. - -Source: https://wiki.mozilla.org/Public_Suffix_List - -Not convinced yet? Check out [this real world example](https://stackoverflow.com/q/288810/123527). - - ## Requirements - Ruby >= 2.0 @@ -153,6 +129,31 @@ PublicSuffix.domain("something.blogspot.com") # => "blogspot.com" ``` + +## What is the Public Suffix List? + +The [Public Suffix List](https://publicsuffix.org) is a cross-vendor initiative to provide an accurate list of domain name suffixes. + +The Public Suffix List is an initiative of the Mozilla Project, but is maintained as a community resource. It is available for use in any software, but was originally created to meet the needs of browser manufacturers. + +A "public suffix" is one under which Internet users can directly register names. Some examples of public suffixes are ".com", ".co.uk" and "pvt.k12.wy.us". The Public Suffix List is a list of all known public suffixes. + + +## Why the Public Suffix List is better than any available Regular Expression parser? + +Previously, browsers used an algorithm which basically only denied setting wide-ranging cookies for top-level domains with no dots (e.g. com or org). However, this did not work for top-level domains where only third-level registrations are allowed (e.g. co.uk). In these cases, websites could set a cookie for co.uk which will be passed onto every website registered under co.uk. + +Clearly, this was a security risk as it allowed websites other than the one setting the cookie to read it, and therefore potentially extract sensitive information. + +Since there is no algorithmic method of finding the highest level at which a domain may be registered for a particular top-level domain (the policies differ with each registry), the only method is to create a list of all top-level domains and the level at which domains can be registered. This is the aim of the effective TLD list. + +As well as being used to prevent cookies from being set where they shouldn't be, the list can also potentially be used for other applications where the registry controlled and privately controlled parts of a domain name need to be known, for example when grouping by top-level domains. + +Source: https://wiki.mozilla.org/Public_Suffix_List + +Not convinced yet? Check out [this real world example](https://stackoverflow.com/q/288810/123527). + + ## Does PublicSuffix make requests to Public Suffix List website? No. PublicSuffix comes with a bundled list. It does not make any HTTP requests to parse or validate a domain. From bd08fdfb2c1bed25aa8270943974c173a6b3c867 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 19 Apr 2016 19:27:02 +0200 Subject: [PATCH 135/450] Upgrade to JRuby 9k --- .travis.yml | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index 77b665e3..d1fb516e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,24 +1,23 @@ language: ruby rvm: -- 2.0 -- 2.1 -- 2.2 -- 2.3.0 -- ruby-head -- jruby-19mode + - 2.0 + - 2.1 + - 2.2 + - jruby-9.0.5.0 + - ruby-head sudo: false -env: COVERALL=1 +cache: + - bundler -before_install: -- gem install bundler +env: + - COVERALL=1 notifications: recipients: - - weppos@weppos.net + - weppos@weppos.net matrix: allow_failures: - - rvm: jruby-19mode - - rvm: ruby-head - + - rvm: ruby-head + - rvm: jruby-9.0.5.0 From e5337d0a345726fe8158add67604a0e7796a74bd Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 19 Apr 2016 19:33:31 +0200 Subject: [PATCH 136/450] Exclude vendored folders in Rubocop --- .rubocop.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index ba7ed0de..672ffa48 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,6 +2,9 @@ AllCops: Exclude: # Exclude .gemspec files because they are generally auto-generated - '*.gemspec' + # Exclude vendored folders + - 'tmp/**/*' + - 'vendor/**/*' Lint/AmbiguousRegexpLiteral: Enabled: false From b46f622cc2637954cdeaa5a39a0c1a19cbbdf9f0 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 19 Apr 2016 19:36:13 +0200 Subject: [PATCH 137/450] Freeze mutable objets assigned to constants --- lib/public_suffix/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 1f574c51..1adb6d32 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -8,5 +8,5 @@ module PublicSuffix # The current library version. - VERSION = "2.0.0" + VERSION = "2.0.0".freeze end From 9f84e75c3e85e8cad3e7b57d1476e73c6ae31851 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 19 May 2016 17:55:20 +0200 Subject: [PATCH 138/450] Fix inconsistent default value (closes GH-103) --- lib/public_suffix.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index ef4d38ea..960e78e5 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -114,7 +114,7 @@ def self.parse(name, list: List.default, default_rule: nil, ignore_private: fals # @param [String, #to_s] name The domain name or fully qualified domain name to validate. # @param [Boolean] ignore_private # @return [Boolean] - def self.valid?(name, list: List.default, default_rule: nil, ignore_private: true) + def self.valid?(name, list: List.default, default_rule: nil, ignore_private: false) what = normalize(name) return false if what.is_a?(DomainInvalid) From def7ece0f5537143d9f9605f59330cdda66a1bfa Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 15 May 2016 16:19:56 +0100 Subject: [PATCH 139/450] Add upgrading docs --- 2.0-Upgrade.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 2.0-Upgrade.md diff --git a/2.0-Upgrade.md b/2.0-Upgrade.md new file mode 100644 index 00000000..4f2fb432 --- /dev/null +++ b/2.0-Upgrade.md @@ -0,0 +1,35 @@ +# Welcome to PublicSuffix 2.0! + +PublicSuffix 2.0 contains a rewritten internal representation and comparison logic, that drastically increases the lookup performance. The new version also changes several internal and external API. + +This document documents the most relevant changes to help you upgrading from PublicSuffix 1.0 to 2.0. + +## What's New + +- The library is now 100% compliants with the official PublicSuffix tests. The major breaking change you may experience, is that if a domain passed as input doesn't match any rule, the rule `*` is assumed. You can override this behavior by passing a custom default rule with the `default_rule` option. +- `PublicSuffix.domain` is a new method that parses the input and returns the domain (combination of second level domain + suffix). This is a convenient helper to parse a domain name, for example when you need to determine the cookie or SSL scope. +- Added the ability to disable the use of private domains either at runtime, in addition to the ability to not load the private domains section when reading the list (`private_domains: false`). This feature also superseded the `private_domains` class-level attribute, that is no longer available. + +## Upgrade + +When upgrading, here's the most relevant changes to keep an eye on: + +- Several futile utility helpers were removed, such as `Domain#rule`, `Domain#is_a_domain?`, `Domain#is_a_subdomain?`, `Domain#valid?`. You can easily obtain the same result by having a custom method that reconstructs the logic, and/or calling `PublicSuffix.{domain|parse}(domain.to_s)`. +- `PublicSuffix::List.private_domains` is no longer available. Instead, you now have two ways to enable/disable the private domains: + + 1. At runtime, by using the `ignore_private` option + + ```ruby + PublicSuffix.domain("something.blogspot.com", ignore_private: true) + ``` + + 1. Loading a filtered list: + + ```ruby + # Disable support for private TLDs + PublicSuffix::List.default = Public::Suffix.parse(File.read(Public::Suffix::DEFAULT_LIST_PATH), private_domains: false) + # => "blogspot.com" + PublicSuffix.domain("something.blogspot.com") + # => "blogspot.com" + ``` + From 582a7d5fe52b847022babf9b9776d8b18ac621dd Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 20 May 2016 12:08:51 +0200 Subject: [PATCH 140/450] Fix bug where the default rule could not be nil This bug did not make it possible to reuse the previous behavior and skip the `"*"` default rule. --- lib/public_suffix.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 960e78e5..b7cdaa39 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -60,11 +60,10 @@ module PublicSuffix # If domain is not a valid domain. # @raise [PublicSuffix::DomainNotAllowed] # If a rule for +domain+ is found, but the rule doesn't allow +domain+. - def self.parse(name, list: List.default, default_rule: nil, ignore_private: false) + def self.parse(name, list: List.default, default_rule: list.default_rule, ignore_private: false) what = normalize(name) raise what if what.is_a?(DomainInvalid) - default_rule ||= list.default_rule rule = list.find(what, default: default_rule, ignore_private: ignore_private) if rule.nil? From 99c86aa17cef88f69fc60a8e2547400ccac90877 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 20 May 2016 12:17:09 +0200 Subject: [PATCH 141/450] Rubocop: Ignore Style::ClassAndModuleChildren in the tests --- .rubocop.yml | 125 ++------------------------------------------------- 1 file changed, 3 insertions(+), 122 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 672ffa48..0af78680 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,127 +1,8 @@ -AllCops: - Exclude: - # Exclude .gemspec files because they are generally auto-generated - - '*.gemspec' - # Exclude vendored folders - - 'tmp/**/*' - - 'vendor/**/*' - -Lint/AmbiguousRegexpLiteral: - Enabled: false - -# [codesmell] -Metrics/AbcSize: - Enabled: false - Exclude: - - 'spec/**/*_spec.rb' - - 'test/**/*_test.rb' - -# [codesmell] -Metrics/ClassLength: - Exclude: - - 'spec/**/*_spec.rb' - - 'test/**/*_test.rb' - -# [codesmell] -Metrics/MethodLength: - Exclude: - - 'spec/**/*_spec.rb' - - 'test/**/*_test.rb' - Max: 15 +inherit_from: + - .rubocop_defaults.yml -# [codesmell] -Metrics/LineLength: - Enabled: false +Style/ClassAndModuleChildren: Exclude: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' - Max: 100 - -# Do not use "and" or "or" in conditionals, but for readability we can use it -# to chain executions. Just beware of operator order. -Style/AndOr: - EnforcedStyle: conditionals - -Style/Documentation: - Exclude: - - 'spec/**/*' - - 'test/**/*' - -# Double empty lines are useful to separate conceptually different methods -# in the same class or module. -Style/EmptyLines: - Enabled: false - -# In most cases, a space is nice. Sometimes, it's not. -# Just be consistent with the rest of the surrounding code. -Style/EmptyLinesAroundClassBody: - Enabled: false - -# In most cases, a space is nice. Sometimes, it's not. -# Just be consistent with the rest of the surrounding code. -Style/EmptyLinesAroundModuleBody: - Enabled: false - -# I personally don't care about the format style. -# In most cases I like to use %, but not at the point I want to enforce it -# as a convention in the entire code. -Style/FormatString: - Enabled: false - -# Prefer the latest Hash syntax -Style/HashSyntax: - Exclude: - # But Rakefiles generally have some definition like - # :default => :test - # that looks nicer with the old rocket syntax. - - 'Rakefile' - -# Array indentation should be considered like MultilineMethodCallIndentation indentation -# and use 4 spaces instead of 2. -Style/IndentArray: - IndentationWidth: 4 - -# Hash indentation should be considered like MultilineMethodCallIndentation indentation -# and use 4 spaces instead of 2. -Style/IndentHash: - IndentationWidth: 4 - -# Multi-line differs from standard indentation, they are indented twice. -Style/MultilineMethodCallIndentation: - EnforcedStyle: indented - IndentationWidth: 4 - -Style/IfUnlessModifier: - Enabled: false - -# unless is not always cool. -Style/NegatedIf: - Enabled: false - -# There are cases were the inline rescue is ok. We can either downgrade the severity, -# or rely on the developer judgement on a case-by-case basis. -Style/RescueModifier: - Enabled: false - -# Hate It or Love It, I prefer double quotes as this is more consistent -# with several other programming languages and the output of puts and inspect. -Style/StringLiterals: - EnforcedStyle: double_quotes - -# It's nice to be consistent. The trailing comma also allows easy reordering, -# and doesn't cause a diff in Git when you add a line to the bottom. -Style/TrailingCommaInLiteral: - EnforcedStyleForMultiline: consistent_comma - -Style/TrivialAccessors: - # IgnoreClassMethods because I want to be able to define class-level accessors - # that sets an instance variable on the metaclass, such as: - # - # def self.default=(value) - # @default = value - # end - # - IgnoreClassMethods: true -Style/WordArray: - Enabled: false From e2839674ff966f5cc254c88737e9a6a46e327795 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 20 May 2016 12:25:44 +0200 Subject: [PATCH 142/450] Upgrade rubocop --- .rubocop_defaults.yml | 127 ++++++++++++++++++++++++++++++++++++++ lib/public_suffix/list.rb | 2 +- 2 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 .rubocop_defaults.yml diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml new file mode 100644 index 00000000..672ffa48 --- /dev/null +++ b/.rubocop_defaults.yml @@ -0,0 +1,127 @@ +AllCops: + Exclude: + # Exclude .gemspec files because they are generally auto-generated + - '*.gemspec' + # Exclude vendored folders + - 'tmp/**/*' + - 'vendor/**/*' + +Lint/AmbiguousRegexpLiteral: + Enabled: false + +# [codesmell] +Metrics/AbcSize: + Enabled: false + Exclude: + - 'spec/**/*_spec.rb' + - 'test/**/*_test.rb' + +# [codesmell] +Metrics/ClassLength: + Exclude: + - 'spec/**/*_spec.rb' + - 'test/**/*_test.rb' + +# [codesmell] +Metrics/MethodLength: + Exclude: + - 'spec/**/*_spec.rb' + - 'test/**/*_test.rb' + Max: 15 + +# [codesmell] +Metrics/LineLength: + Enabled: false + Exclude: + - 'spec/**/*_spec.rb' + - 'test/**/*_test.rb' + Max: 100 + +# Do not use "and" or "or" in conditionals, but for readability we can use it +# to chain executions. Just beware of operator order. +Style/AndOr: + EnforcedStyle: conditionals + +Style/Documentation: + Exclude: + - 'spec/**/*' + - 'test/**/*' + +# Double empty lines are useful to separate conceptually different methods +# in the same class or module. +Style/EmptyLines: + Enabled: false + +# In most cases, a space is nice. Sometimes, it's not. +# Just be consistent with the rest of the surrounding code. +Style/EmptyLinesAroundClassBody: + Enabled: false + +# In most cases, a space is nice. Sometimes, it's not. +# Just be consistent with the rest of the surrounding code. +Style/EmptyLinesAroundModuleBody: + Enabled: false + +# I personally don't care about the format style. +# In most cases I like to use %, but not at the point I want to enforce it +# as a convention in the entire code. +Style/FormatString: + Enabled: false + +# Prefer the latest Hash syntax +Style/HashSyntax: + Exclude: + # But Rakefiles generally have some definition like + # :default => :test + # that looks nicer with the old rocket syntax. + - 'Rakefile' + +# Array indentation should be considered like MultilineMethodCallIndentation indentation +# and use 4 spaces instead of 2. +Style/IndentArray: + IndentationWidth: 4 + +# Hash indentation should be considered like MultilineMethodCallIndentation indentation +# and use 4 spaces instead of 2. +Style/IndentHash: + IndentationWidth: 4 + +# Multi-line differs from standard indentation, they are indented twice. +Style/MultilineMethodCallIndentation: + EnforcedStyle: indented + IndentationWidth: 4 + +Style/IfUnlessModifier: + Enabled: false + +# unless is not always cool. +Style/NegatedIf: + Enabled: false + +# There are cases were the inline rescue is ok. We can either downgrade the severity, +# or rely on the developer judgement on a case-by-case basis. +Style/RescueModifier: + Enabled: false + +# Hate It or Love It, I prefer double quotes as this is more consistent +# with several other programming languages and the output of puts and inspect. +Style/StringLiterals: + EnforcedStyle: double_quotes + +# It's nice to be consistent. The trailing comma also allows easy reordering, +# and doesn't cause a diff in Git when you add a line to the bottom. +Style/TrailingCommaInLiteral: + EnforcedStyleForMultiline: consistent_comma + +Style/TrivialAccessors: + # IgnoreClassMethods because I want to be able to define class-level accessors + # that sets an instance variable on the metaclass, such as: + # + # def self.default=(value) + # @default = value + # end + # + IgnoreClassMethods: true + +Style/WordArray: + Enabled: false diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 7db6016c..37c4d011 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -87,7 +87,7 @@ def self.parse(input, private_domains: true) new do |list| input.each_line do |line| line.strip! - case + case # rubocop:disable Style/EmptyCaseCondition # skip blank lines when line.empty? From 041a8cae4002fe1387ab4d3af642df67a41e895f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 20 May 2016 12:30:01 +0200 Subject: [PATCH 143/450] Test on Ruby 2.3.0 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index d1fb516e..bf705773 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ rvm: - 2.0 - 2.1 - 2.2 + - 2.3.0 - jruby-9.0.5.0 - ruby-head From b46f3b67f7e4416115680d3d8cabc9457704fddc Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 20 May 2016 12:32:14 +0200 Subject: [PATCH 144/450] Add link to upgrading docs --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6da3e32e..e555fcae 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ Or use Bundler and define it as a dependency in your `Gemfile`: $ gem 'public_suffix' ``` +If you are upgrading to 2.0, see [2.0-Upgrade.md](2.0-Upgrade.md). + ## Usage Extract the domain out from a name: From 8363bfde476c34ce724f39437d7a12d7251e1972 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 20 May 2016 12:45:10 +0200 Subject: [PATCH 145/450] Release 2.0.0 --- CHANGELOG.md | 2 +- public_suffix.gemspec | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67c1b66c..7b94db5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog -#### master +#### Release 2.0.0 - NEW: Added PublicSuffix.domain # => sld.tld diff --git a/public_suffix.gemspec b/public_suffix.gemspec index f0c3266d..e105b7a6 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -1,23 +1,23 @@ # -*- encoding: utf-8 -*- -# stub: public_suffix 1.5.3 ruby lib +# stub: public_suffix 2.0.0 ruby lib Gem::Specification.new do |s| s.name = "public_suffix" - s.version = "1.5.3" + s.version = "2.0.0" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.require_paths = ["lib"] s.authors = ["Simone Carletti"] - s.date = "2015-12-14" + s.date = "2016-05-20" s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.email = "weppos@weppos.net" - s.files = [".gitignore", ".ruby-gemset", ".travis.yml", ".yardopts", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/definitions.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] - s.homepage = "http://simonecarletti.com/code/publicsuffix" + s.files = [".gitignore", ".rubocop.yml", ".rubocop_defaults.yml", ".ruby-gemset", ".travis.yml", ".yardopts", "2.0-Upgrade.md", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/list.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] + s.homepage = "https://simonecarletti.com/code/publicsuffix-ruby" s.licenses = ["MIT"] s.required_ruby_version = Gem::Requirement.new(">= 2.0") - s.rubygems_version = "2.4.7" + s.rubygems_version = "2.5.1" s.summary = "Domain name parser based on the Public Suffix List." - s.test_files = ["test/acceptance_test.rb", "test/test_helper.rb", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] + s.test_files = ["test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] if s.respond_to? :specification_version then s.specification_version = 4 From a57a6dcfced187d29b1c898fbab4e75dbf036e60 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 May 2016 10:12:13 +0200 Subject: [PATCH 146/450] Fix bug that prevents .valid? to reset the default rule See https://github.com/weppos/publicsuffix-ruby/commit/582a7d5fe52b847022babf9b9776d8b18ac621dd#commitcomment-17568586 --- CHANGELOG.md | 4 ++++ lib/public_suffix.rb | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b94db5c..5008302d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +#### Release 2.0.1 + +- FIXED: Fix bug that prevented .valid? to reset the default rule + #### Release 2.0.0 diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index b7cdaa39..ab567e4d 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -113,11 +113,10 @@ def self.parse(name, list: List.default, default_rule: list.default_rule, ignore # @param [String, #to_s] name The domain name or fully qualified domain name to validate. # @param [Boolean] ignore_private # @return [Boolean] - def self.valid?(name, list: List.default, default_rule: nil, ignore_private: false) + def self.valid?(name, list: List.default, default_rule: list.default_rule, ignore_private: false) what = normalize(name) return false if what.is_a?(DomainInvalid) - default_rule ||= list.default_rule rule = list.find(what, default: default_rule, ignore_private: ignore_private) !rule.nil? && !rule.decompose(what).last.nil? From cb3d68b9edcc53a72c1c10ed1f23ff291db63f10 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 May 2016 10:13:19 +0200 Subject: [PATCH 147/450] Release 2.0.1 --- lib/public_suffix/version.rb | 2 +- public_suffix.gemspec | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 1adb6d32..7628c421 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -8,5 +8,5 @@ module PublicSuffix # The current library version. - VERSION = "2.0.0".freeze + VERSION = "2.0.1".freeze end diff --git a/public_suffix.gemspec b/public_suffix.gemspec index e105b7a6..710a5809 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -1,14 +1,14 @@ # -*- encoding: utf-8 -*- -# stub: public_suffix 2.0.0 ruby lib +# stub: public_suffix 2.0.1 ruby lib Gem::Specification.new do |s| s.name = "public_suffix" - s.version = "2.0.0" + s.version = "2.0.1" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.require_paths = ["lib"] s.authors = ["Simone Carletti"] - s.date = "2016-05-20" + s.date = "2016-05-22" s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.email = "weppos@weppos.net" s.files = [".gitignore", ".rubocop.yml", ".rubocop_defaults.yml", ".ruby-gemset", ".travis.yml", ".yardopts", "2.0-Upgrade.md", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/list.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] From 580b0206d486833d4e56a9a65ad4ae34893e51c9 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 24 May 2016 15:57:38 +0200 Subject: [PATCH 148/450] Fix invalid example in README (closes GH-104) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e555fcae..69b62dd9 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ If you don't care about private domains at all, it's more efficient to exclude t ```ruby # Disable support for private TLDs -PublicSuffix::List.default = Public::Suffix.parse(File.read(Public::Suffix::DEFAULT_LIST_PATH), private_domains: false) +PublicSuffix::List.default = PublicSuffix::List.parse(File.read(PublicSuffix::List::DEFAULT_LIST_PATH), private_domains: false) # => "blogspot.com" PublicSuffix.domain("something.blogspot.com") # => "blogspot.com" From f5298225a7e9ca52c30fb4899cd7887647947ff3 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 10 Jun 2016 09:43:17 +0200 Subject: [PATCH 149/450] Update definitions --- CHANGELOG.md | 6 ++ data/list.txt | 161 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 162 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5008302d..033fed50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog + +#### Release 2.0.2 + +- CHANGED: Updated definitions. + + #### Release 2.0.1 - FIXED: Fix bug that prevented .valid? to reset the default rule diff --git a/data/list.txt b/data/list.txt index 2ca5763f..b46a4598 100644 --- a/data/list.txt +++ b/data/list.txt @@ -2634,7 +2634,6 @@ iwanuma.miyagi.jp kakuda.miyagi.jp kami.miyagi.jp kawasaki.miyagi.jp -kesennuma.miyagi.jp marumori.miyagi.jp matsushima.miyagi.jp minamisanriku.miyagi.jp @@ -6948,7 +6947,7 @@ sch.zm *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-04-04T20:12:16Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-05-09T22:17:27Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7430,6 +7429,9 @@ call // calvinklein : 2015-07-30 PVH gTLD Holdings LLC calvinklein +// cam : 2016-04-21 AC Webconnecting Holding B.V. +cam + // camera : 2013-08-27 Atomic Maple, LLC camera @@ -7865,7 +7867,7 @@ dunlop // duns : 2015-08-06 The Dun & Bradstreet Corporation duns -// dupont : 2015-06-25 E.I. du Pont de Nemours and Company +// dupont : 2015-06-25 E. I. du Pont de Nemours and Company dupont // durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry @@ -8075,6 +8077,9 @@ fly // foo : 2014-01-23 Charleston Road Registry Inc. foo +// food : 2016-04-21 Lifestyle Domain Holdings, Inc. +food + // foodnetwork : 2015-07-02 Lifestyle Domain Holdings, Inc. foodnetwork @@ -8396,6 +8401,9 @@ hot // hoteles : 2015-03-05 Travel Reservations SRL hoteles +// hotels : 2016-04-07 Booking.com B.V. +hotels + // hotmail : 2014-12-18 Microsoft Corporation hotmail @@ -8534,7 +8542,7 @@ jcp // jeep : 2015-07-30 FCA US LLC. jeep -// jetzt : 2014-01-09 New TLD Company AB +// jetzt : 2014-01-09 jetzt // jewelry : 2015-03-05 Wild Bloom, LLC @@ -9674,7 +9682,10 @@ shiksha // shoes : 2013-10-02 Binky Galley, LLC shoes -// shopping : 2016-03-31 Uniregistry, Corp. +// shop : 2016-04-08 GMO Registry, Inc. +shop + +// shopping : 2016-03-31 shopping // shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. @@ -10682,6 +10693,13 @@ s3.eu-central-1.amazonaws.com // Submitted by Thomas Orozco on-aptible.com +// Association potager.org : https://potager.org/ +// Submitted by Lunar +potager.org +poivron.org +sweetpepper.org +pimienta.org + // AVM : https://avm.de // Submitted by Andreas Weise myfritz.net @@ -10690,6 +10708,10 @@ myfritz.net // Submitted by Adrian betainabox.com +// Boxfuse : https://boxfuse.com +// Submitted by Axel Fontaine +boxfuse.io + // CentralNic : http://www.centralnic.com/names/domains // Submitted by registry ae.org @@ -10801,6 +10823,10 @@ store.dk // Submitted by Peter Thomassen dedyn.io +// DNShome : https://www.dnshome.de/ +// Submitted by Norbert Auler +dnshome.de + // DreamHost : http://www.dreamhost.com/ // Submitted by Andrew Farmer dreamhosters.com @@ -10813,6 +10839,11 @@ mydrobo.com // Submitted by Richard Harper duckdns.org +// dy.fi : http://dy.fi/ +// Submitted by Heikki Hannikainen +dy.fi +tunk.org + // DynDNS.com : http://www.dyndns.com/services/dns/dyndns/ dyndns-at-home.com dyndns-at-work.com @@ -11098,6 +11129,10 @@ writesthisblog.com // Submitted by Dominik Menke 2016-01-18 dynv6.net +// E4YOU spol. s.r.o. : https://e4you.cz/ +// Submitted by Vladimir Dudr +e4.cz + // EU.org https://eu.org/ // Submitted by Pierre Beyssac eu.org @@ -11177,6 +11212,15 @@ firebaseapp.com // Submitted by Jonathan Rudenberg flynnhub.com +// Freebox : http://www.freebox.fr +// Submitted by Romain Fliedel +freebox-os.com +freeboxos.com +fbx-os.fr +fbxos.fr +freebox-os.fr +freeboxos.fr + // GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains // Submitted by David Illsley service.gov.uk @@ -11329,6 +11373,95 @@ nfshost.com // nsupdate.info : https://www.nsupdate.info/ // Submitted by Thomas Waldmann nsupdate.info +nerdpol.ovh + +// No-IP.com : https://noip.com/ +// Submitted by Deven Reza +blogsyte.com +brasilia.me +cable-modem.org +ciscofreak.com +collegefan.org +couchpotatofries.org +damnserver.com +ddns.me +ditchyourip.com +dnsfor.me +dnsiskinky.com +dvrcam.info +dynns.com +eating-organic.net +fantasyleague.cc +geekgalaxy.com +golffan.us +health-carereform.com +homesecuritymac.com +homesecuritypc.com +hopto.me +ilovecollege.info +loginto.me +mlbfan.org +mmafan.biz +myactivedirectory.com +mydissent.net +myeffect.net +mymediapc.net +mypsx.net +mysecuritycamera.com +mysecuritycamera.net +mysecuritycamera.org +net-freaks.com +nflfan.org +nhlfan.net +no-ip.ca +no-ip.co.uk +no-ip.net +noip.us +onthewifi.com +pgafan.net +point2this.com +pointto.us +privatizehealthinsurance.net +quicksytes.com +read-books.org +securitytactics.com +serveexchange.com +servehumour.com +servep2p.com +servesarcasm.com +stufftoread.com +ufcfan.org +unusualperson.com +workisboring.com +3utilities.com +bounceme.net +ddns.net +ddnsking.com +gotdns.ch +hopto.org +myftp.biz +myftp.org +myvnc.com +no-ip.biz +no-ip.info +no-ip.org +noip.me +redirectme.net +servebeer.com +serveblog.net +servecounterstrike.com +serveftp.com +servegame.com +servehalflife.com +servehttp.com +serveirc.com +serveminecraft.net +servemp3.com +servepics.com +servequake.com +sytes.net +webhop.me +zapto.org // NYC.mn : http://www.information.nyc.mn // Submitted by Matthew Brown @@ -11346,10 +11479,18 @@ operaunite.com // Submitted by Duarte Santos outsystemscloud.com +// OwnProvider : http://www.ownprovider.com +// Submitted by Jan Moennich +ownprovider.com + // oy.lc // Submitted by Charly Coste oy.lc +// Pagefog : https://pagefog.com/ +// Submitted by Derek Myers +pgfog.com + // Pagefront : https://www.pagefronthq.com/ // Submitted by Jason Kriss pagefrontapp.com @@ -11416,6 +11557,16 @@ sinaapp.com vipsinaapp.com 1kapp.com +// Skyhat : http://www.skyhat.io +// Submitted by Shante Adam +bounty-full.com +alpha.bounty-full.com +beta.bounty-full.com + +// SpaceKit : https://www.spacekit.io/ +// Submitted by Reza Akhavan +spacekit.io + // Synology, Inc. : https://www.synology.com/ // Submitted by Rony Weng diskstation.me From 04940d3a5cc58b74564a974f5d18731a14619b45 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 10 Jun 2016 09:45:47 +0200 Subject: [PATCH 150/450] Release v2.0.2 --- lib/public_suffix/version.rb | 2 +- public_suffix.gemspec | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 7628c421..00980111 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -8,5 +8,5 @@ module PublicSuffix # The current library version. - VERSION = "2.0.1".freeze + VERSION = "2.0.2".freeze end diff --git a/public_suffix.gemspec b/public_suffix.gemspec index 710a5809..d8af24ca 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -1,14 +1,14 @@ # -*- encoding: utf-8 -*- -# stub: public_suffix 2.0.1 ruby lib +# stub: public_suffix 2.0.2 ruby lib Gem::Specification.new do |s| s.name = "public_suffix" - s.version = "2.0.1" + s.version = "2.0.2" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.require_paths = ["lib"] s.authors = ["Simone Carletti"] - s.date = "2016-05-22" + s.date = "2016-06-10" s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.email = "weppos@weppos.net" s.files = [".gitignore", ".rubocop.yml", ".rubocop_defaults.yml", ".ruby-gemset", ".travis.yml", ".yardopts", "2.0-Upgrade.md", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/list.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] From b3b8e1b3c96dee756ec092b4642f153eb79d8b40 Mon Sep 17 00:00:00 2001 From: Trevor Turk Date: Tue, 14 Jun 2016 14:51:43 -0500 Subject: [PATCH 151/450] Fix example on 2.0-Upgrade to match the README --- 2.0-Upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2.0-Upgrade.md b/2.0-Upgrade.md index 4f2fb432..f179e439 100644 --- a/2.0-Upgrade.md +++ b/2.0-Upgrade.md @@ -27,7 +27,7 @@ When upgrading, here's the most relevant changes to keep an eye on: ```ruby # Disable support for private TLDs - PublicSuffix::List.default = Public::Suffix.parse(File.read(Public::Suffix::DEFAULT_LIST_PATH), private_domains: false) + PublicSuffix::List.default = PublicSuffix::List.parse(File.read(PublicSuffix::List::DEFAULT_LIST_PATH), private_domains: false) # => "blogspot.com" PublicSuffix.domain("something.blogspot.com") # => "blogspot.com" From ffc4d3907eefae18935007f653bf19de8372016e Mon Sep 17 00:00:00 2001 From: Chris McClymont Date: Wed, 15 Jun 2016 09:48:14 +1000 Subject: [PATCH 152/450] Fix FQDN example domain output --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 69b62dd9..0cb74c97 100644 --- a/README.md +++ b/README.md @@ -96,11 +96,11 @@ This library automatically recognizes Fully Qualified Domain Names. A FQDN is a ```ruby # Parse a standard domain name PublicSuffix.domain("www.google.com") -# => "domain.com" +# => "google.com" # Parse a fully qualified domain name PublicSuffix.domain("www.google.com.") -# => "domain.com" +# => "google.com" ``` ## Private domains From d4e30d22b94eba6f51e688e5a484cba8ba26a004 Mon Sep 17 00:00:00 2001 From: Trevor Turk Date: Wed, 15 Jun 2016 11:48:47 -0500 Subject: [PATCH 153/450] Details and examples for official PublicSuffix algorithm change --- 2.0-Upgrade.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/2.0-Upgrade.md b/2.0-Upgrade.md index f179e439..cfec17dd 100644 --- a/2.0-Upgrade.md +++ b/2.0-Upgrade.md @@ -18,7 +18,7 @@ When upgrading, here's the most relevant changes to keep an eye on: - `PublicSuffix::List.private_domains` is no longer available. Instead, you now have two ways to enable/disable the private domains: 1. At runtime, by using the `ignore_private` option - + ```ruby PublicSuffix.domain("something.blogspot.com", ignore_private: true) ``` @@ -32,4 +32,33 @@ When upgrading, here's the most relevant changes to keep an eye on: PublicSuffix.domain("something.blogspot.com") # => "blogspot.com" ``` +- Now that the library is 100% compliant with the official PublicSuffix algorithm, if a domain passed as input doesn't match any rule, the wildcard rule `*` is assumed. This means that unlisted TLDs will be considered valid by default, when they would have been invalid in 1.x. However, you can override this behavior to emulate the 1.x behavior if needed: + + ```ruby + # 1.x: + + PublicSuffix.valid?("google.commm") + # => false + + # 2.x: + + PublicSuffix.valid?("google.commm") + # => true + + # Overriding 2.x behavior if needed, recommended approach: + + PublicSuffix.valid?("google.commm", default_rule: nil) + # => false + + # Overriding 2.x behavior if needed, monkeypatch approach: + + module PublicSuffix + class List + def default_rule + nil + end + end + end + PublicSuffix.valid?("google.commm") + # => false From 527935049f97a73598eb0bf5868230ad91cb86ca Mon Sep 17 00:00:00 2001 From: Trevor Turk Date: Wed, 15 Jun 2016 11:54:19 -0500 Subject: [PATCH 154/450] Remove monkey patch example --- 2.0-Upgrade.md | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/2.0-Upgrade.md b/2.0-Upgrade.md index cfec17dd..3f6d69b3 100644 --- a/2.0-Upgrade.md +++ b/2.0-Upgrade.md @@ -45,20 +45,8 @@ When upgrading, here's the most relevant changes to keep an eye on: PublicSuffix.valid?("google.commm") # => true - # Overriding 2.x behavior if needed, recommended approach: + # Overriding 2.x behavior if needed: PublicSuffix.valid?("google.commm", default_rule: nil) # => false - - # Overriding 2.x behavior if needed, monkeypatch approach: - - module PublicSuffix - class List - def default_rule - nil - end - end - end - - PublicSuffix.valid?("google.commm") - # => false + ```` From 2fe44306e094f89d99f67f4458d09cca939a962c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 28 Jun 2016 10:22:34 +0200 Subject: [PATCH 155/450] Update docs to mention the proper exception Closes GH-110 --- lib/public_suffix.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index ab567e4d..532b0594 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -56,7 +56,7 @@ module PublicSuffix # @param [Boolean] ignore_private # @return [PublicSuffix::Domain] # - # @raise [PublicSuffix::Error] + # @raise [PublicSuffix::DomainInvalid] # If domain is not a valid domain. # @raise [PublicSuffix::DomainNotAllowed] # If a rule for +domain+ is found, but the rule doesn't allow +domain+. From 556dd8b48a677ce8de52de86c5c3f055853ebb17 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 28 Jun 2016 10:40:26 +0200 Subject: [PATCH 156/450] Disable cop Style/SpaceInsidePercentLiteralDelimiters --- .rubocop_defaults.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index 672ffa48..f70fb9c3 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -76,6 +76,9 @@ Style/HashSyntax: # that looks nicer with the old rocket syntax. - 'Rakefile' +Style/IfUnlessModifier: + Enabled: false + # Array indentation should be considered like MultilineMethodCallIndentation indentation # and use 4 spaces instead of 2. Style/IndentArray: @@ -91,9 +94,6 @@ Style/MultilineMethodCallIndentation: EnforcedStyle: indented IndentationWidth: 4 -Style/IfUnlessModifier: - Enabled: false - # unless is not always cool. Style/NegatedIf: Enabled: false @@ -103,6 +103,17 @@ Style/NegatedIf: Style/RescueModifier: Enabled: false +# Sorry, but using trailing spaces helps readability. +# +# %w( foo bar ) +# +# looks better to me than +# +# %w( foo bar ) +# +Style/SpaceInsidePercentLiteralDelimiters: + Enabled: false + # Hate It or Love It, I prefer double quotes as this is more consistent # with several other programming languages and the output of puts and inspect. Style/StringLiterals: From a08e80696600ca51e566c5af541ad4b9a1f72265 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 28 Jun 2016 10:42:24 +0200 Subject: [PATCH 157/450] Inline disable cop Style/IfUnlessModifier --- .rubocop_defaults.yml | 3 --- lib/public_suffix.rb | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index f70fb9c3..a86ecfc0 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -76,9 +76,6 @@ Style/HashSyntax: # that looks nicer with the old rocket syntax. - 'Rakefile' -Style/IfUnlessModifier: - Enabled: false - # Array indentation should be considered like MultilineMethodCallIndentation indentation # and use 4 spaces instead of 2. Style/IndentArray: diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 532b0594..7f7cfb27 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -66,12 +66,14 @@ def self.parse(name, list: List.default, default_rule: list.default_rule, ignore rule = list.find(what, default: default_rule, ignore_private: ignore_private) + # rubocop:disable Style/IfUnlessModifier if rule.nil? raise DomainInvalid, "`#{what}` is not a valid domain" end if rule.decompose(what).last.nil? raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" end + # rubocop:enable Style/IfUnlessModifier decompose(what, rule) end From f6132e1cb96080f60a0b4b1628408dc8de51e8d2 Mon Sep 17 00:00:00 2001 From: Patrik Ragnarsson Date: Fri, 9 Sep 2016 18:48:16 +0200 Subject: [PATCH 158/450] How to get PublicSuffix 1.0 behavior (#117) --- 2.0-Upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2.0-Upgrade.md b/2.0-Upgrade.md index 3f6d69b3..1a10bfb3 100644 --- a/2.0-Upgrade.md +++ b/2.0-Upgrade.md @@ -6,7 +6,7 @@ This document documents the most relevant changes to help you upgrading from Pub ## What's New -- The library is now 100% compliants with the official PublicSuffix tests. The major breaking change you may experience, is that if a domain passed as input doesn't match any rule, the rule `*` is assumed. You can override this behavior by passing a custom default rule with the `default_rule` option. +- The library is now 100% compliants with the official PublicSuffix tests. The major breaking change you may experience, is that if a domain passed as input doesn't match any rule, the rule `*` is assumed. You can override this behavior by passing a custom default rule with the `default_rule` option. The old behavior can be restored by passing `default_rule: nil`. - `PublicSuffix.domain` is a new method that parses the input and returns the domain (combination of second level domain + suffix). This is a convenient helper to parse a domain name, for example when you need to determine the cookie or SSL scope. - Added the ability to disable the use of private domains either at runtime, in addition to the ability to not load the private domains section when reading the list (`private_domains: false`). This feature also superseded the `private_domains` class-level attribute, that is no longer available. From fb3123d76e82b853c19749384f3dbdab824109ba Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 24 Sep 2016 22:11:48 +0200 Subject: [PATCH 159/450] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0cb74c97..edc106ab 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Public Suffix Ruby +# Public Suffix for Ruby PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](https://publicsuffix.org/). From eff8b37ab835865705f274249a6981b7cbb833cb Mon Sep 17 00:00:00 2001 From: Charles Barbier Date: Fri, 30 Sep 2016 04:09:08 -0400 Subject: [PATCH 160/450] Update the definitions (#119) --- data/list.txt | 246 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 191 insertions(+), 55 deletions(-) diff --git a/data/list.txt b/data/list.txt index b46a4598..497f7b1f 100644 --- a/data/list.txt +++ b/data/list.txt @@ -2,6 +2,11 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. +// Please pull this list from, and only from https://publicsuffix.org/list/public_suffix_list.dat, +// rather than any other VCS sites. Pulling from any other URL is not guaranteed to be supported. + +// Instructions on pulling and using this list can be found at https://publicsuffix.org/list/. + // ===BEGIN ICANN DOMAINS=== // ac : https://en.wikipedia.org/wiki/.ac @@ -267,18 +272,14 @@ name.az pro.az biz.az -// ba : https://en.wikipedia.org/wiki/.ba +// ba : http://nic.ba/users_data/files/pravilnik_o_registraciji.pdf ba -org.ba -net.ba +com.ba edu.ba gov.ba mil.ba -unsa.ba -unbi.ba -co.ba -com.ba -rs.ba +net.ba +org.ba // bb : https://en.wikipedia.org/wiki/.bb bb @@ -2549,7 +2550,6 @@ hitoyoshi.kumamoto.jp kamiamakusa.kumamoto.jp kashima.kumamoto.jp kikuchi.kumamoto.jp -kosa.kumamoto.jp kumamoto.kumamoto.jp mashiki.kumamoto.jp mifune.kumamoto.jp @@ -6531,7 +6531,7 @@ lib.ca.us lib.co.us lib.ct.us lib.dc.us -lib.de.us +// lib.de.us Issue #243 - Moved to Private section at request of Ed Moore lib.fl.us lib.ga.us lib.gu.us @@ -6947,7 +6947,7 @@ sch.zm *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-05-09T22:17:27Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-08-17T00:17:46Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7024,9 +7024,6 @@ afl // africa : 2014-03-24 ZA Central Registry NPC trading as Registry.Africa africa -// africamagic : 2015-03-05 Electronic Media Network (Pty) Ltd -africamagic - // agakhan : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) agakhan @@ -7306,7 +7303,7 @@ blanco // blockbuster : 2015-07-30 Dish DBS Corporation blockbuster -// blog : 2015-05-14 PRIMER NIVEL S.A. +// blog : 2015-05-14 blog // bloomberg : 2014-07-17 Bloomberg IP Holdings LLC @@ -7732,6 +7729,9 @@ dad // dance : 2013-10-24 United TLD Holdco Ltd. dance +// data : 2016-06-02 Dish DBS Corporation +data + // date : 2014-11-20 dot Date Limited date @@ -7828,6 +7828,9 @@ dnp // docs : 2014-10-16 Charleston Road Registry Inc. docs +// doctor : 2016-06-02 Brice Trail, LLC +doctor + // dodge : 2015-07-30 FCA US LLC. dodge @@ -7849,9 +7852,6 @@ download // drive : 2015-03-05 Charleston Road Registry Inc. drive -// dstv : 2015-03-12 MultiChoice (Proprietary) Limited -dstv - // dtv : 2015-06-04 Dish DBS Corporation dtv @@ -7876,6 +7876,9 @@ durban // dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG dvag +// dvr : 2016-05-26 Hughes Satellite Systems Corporation +dvr + // dwg : 2015-07-23 Autodesk, Inc. dwg @@ -7885,6 +7888,9 @@ earth // eat : 2014-01-23 Charleston Road Registry Inc. eat +// eco : 2016-07-08 Big Room Inc. +eco + // edeka : 2014-12-18 EDEKA Verband kaufmännischer Genossenschaften e.V. edeka @@ -8068,9 +8074,6 @@ florist // flowers : 2014-10-09 Uniregistry, Corp. flowers -// flsmidth : 2014-07-24 FLSmidth A/S -flsmidth - // fly : 2014-05-08 Charleston Road Registry Inc. fly @@ -8161,7 +8164,7 @@ gallup // game : 2015-05-28 Uniregistry, Corp. game -// games : 2015-05-28 Foggy Beach, LLC +// games : 2015-05-28 games // gap : 2015-07-31 The Gap, Inc. @@ -8263,9 +8266,6 @@ gop // got : 2014-12-18 Amazon EU S.à r.l. got -// gotv : 2015-03-12 MultiChoice (Proprietary) Limited -gotv - // grainger : 2015-05-07 Grainger Registry Services, LLC grainger @@ -8281,6 +8281,9 @@ green // gripe : 2014-03-06 Corn Sunset, LLC gripe +// grocery : 2016-06-16 Wal-Mart Stores, Inc. +grocery + // group : 2014-08-15 Romeo Town, LLC group @@ -8644,9 +8647,6 @@ kred // kuokgroup : 2015-04-09 Kerry Trading Co. Limited kuokgroup -// kyknet : 2015-03-05 Electronic Media Network (Pty) Ltd -kyknet - // kyoto : 2014-11-07 Academic Institution: Kyoto Jyoho Gakuen kyoto @@ -8851,6 +8851,9 @@ management // mango : 2013-10-24 PUNTO FA S.L. mango +// map : 2016-06-09 Charleston Road Registry Inc. +map + // market : 2014-03-06 market @@ -8911,6 +8914,9 @@ menu // meo : 2014-11-07 PT Comunicacoes S.A. meo +// merckmsd : 2016-07-14 MSD Registry Holdings, Inc. +merckmsd + // metlife : 2015-05-07 MetLife Services and Solutions, LLC metlife @@ -8941,8 +8947,8 @@ mls // mma : 2014-11-07 MMA IARD mma -// mnet : 2015-03-05 Electronic Media Network (Pty) Ltd -mnet +// mobile : 2016-06-02 Dish DBS Corporation +mobile // mobily : 2014-12-18 GreenTech Consultancy Company W.L.L. mobily @@ -9010,18 +9016,12 @@ mtpc // mtr : 2015-03-12 MTR Corporation Limited mtr -// multichoice : 2015-03-12 MultiChoice (Proprietary) Limited -multichoice - // mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC mutual // mutuelle : 2015-06-18 Fédération Nationale de la Mutualité Française mutuelle -// mzansimagic : 2015-03-05 Electronic Media Network (Pty) Ltd -mzansimagic - // nab : 2015-08-20 National Australia Bank Limited nab @@ -9031,9 +9031,6 @@ nadex // nagoya : 2013-10-24 GMO Registry, Inc. nagoya -// naspers : 2015-02-12 Intelprop (Proprietary) Limited -naspers - // nationwide : 2015-07-23 Nationwide Mutual Insurance Company nationwide @@ -9196,7 +9193,7 @@ orange // organic : 2014-03-27 Afilias Limited organic -// orientexpress : 2015-02-05 Belmond Ltd. +// orientexpress : 2015-02-05 orientexpress // origins : 2015-10-01 The Estée Lauder Companies Inc. @@ -9247,9 +9244,6 @@ passagens // pay : 2015-08-27 Amazon EU S.à r.l. pay -// payu : 2015-02-12 MIH PayU B.V. -payu - // pccw : 2015-05-14 PCCW Enterprises Limited pccw @@ -9262,9 +9256,15 @@ pfizer // pharmacy : 2014-06-19 National Association of Boards of Pharmacy pharmacy +// phd : 2016-07-28 Charleston Road Registry Inc. +phd + // philips : 2014-11-07 Koninklijke Philips N.V. philips +// phone : 2016-06-02 Dish DBS Corporation +phone + // photo : 2013-11-14 Uniregistry, Corp. photo @@ -9400,6 +9400,9 @@ qvc // racing : 2014-12-04 Premier Registry Limited racing +// radio : 2016-07-21 European Broadcasting Union (EBU) +radio + // raid : 2015-07-23 Johnson Shareholdings, Inc. raid @@ -9622,6 +9625,9 @@ scor // scot : 2014-01-23 Dot Scot Registry Limited scot +// search : 2016-06-09 Charleston Road Registry Inc. +search + // seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal) seat @@ -9835,9 +9841,6 @@ style // sucks : 2014-12-22 Vox Populi Registry Inc. sucks -// supersport : 2015-03-05 SuperSport International Holdings Proprietary Limited -supersport - // supplies : 2013-12-19 Atomic Fields, LLC supplies @@ -10632,6 +10635,10 @@ zuerich // ===BEGIN PRIVATE DOMAINS=== // (Note: these are in alphabetical order by company name) +// Agnat sp. z o.o. : https://domena.pl +// Submitted by Przemyslaw Plewa +beep.pl + // Alces Software Ltd : http://alces-software.com // Submitted by Mark J. Titorenko *.compute.estate @@ -10642,24 +10649,24 @@ zuerich cloudfront.net // Amazon Elastic Compute Cloud: https://aws.amazon.com/ec2/ -// Submitted by Luke Wells +// Submitted by Philip Allchin +compute.amazonaws.com ap-northeast-1.compute.amazonaws.com ap-northeast-2.compute.amazonaws.com ap-southeast-1.compute.amazonaws.com ap-southeast-2.compute.amazonaws.com -cn-north-1.compute.amazonaws.cn -compute-1.amazonaws.com -compute.amazonaws.cn -compute.amazonaws.com eu-central-1.compute.amazonaws.com eu-west-1.compute.amazonaws.com sa-east-1.compute.amazonaws.com -us-east-1.amazonaws.com us-gov-west-1.compute.amazonaws.com us-west-1.compute.amazonaws.com us-west-2.compute.amazonaws.com +compute-1.amazonaws.com z-1.compute-1.amazonaws.com z-2.compute-1.amazonaws.com +us-east-1.amazonaws.com +compute.amazonaws.com.cn +cn-north-1.compute.amazonaws.com.cn // Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/ // Submitted by Adam Stein @@ -10695,23 +10702,43 @@ on-aptible.com // Association potager.org : https://potager.org/ // Submitted by Lunar -potager.org +pimienta.org poivron.org +potager.org sweetpepper.org -pimienta.org + +// ASUSTOR Inc. : http://www.asustor.com +// Submitted by Vincent Tseng +myasustor.com // AVM : https://avm.de // Submitted by Andreas Weise myfritz.net +// backplane : https://www.backplane.io +// Submitted by Anthony Voutas +backplaneapp.io + // BetaInABox // Submitted by Adrian betainabox.com +// BinaryLane : http://www.binarylane.com +// Submitted by Nathan O'Sullivan +bnr.la + // Boxfuse : https://boxfuse.com // Submitted by Axel Fontaine boxfuse.io +// BrowserSafetyMark +// Submitted by Dave Tharp +browsersafetymark.io + +// callidomus: https://www.callidomus.com/ +// Submitted by Marcus Popp +mycd.eu + // CentralNic : http://www.centralnic.com/names/domains // Submitted by registry ae.org @@ -10766,10 +10793,18 @@ co.com // c.la : http://www.c.la/ c.la +// certmgr.org : https://certmgr.org +// Submitted by B. Blechschmidt +certmgr.org + // Citrix : https://citrix.com // Submitted by Alex Stoddard xenapponazure.com +// ClearVox : http://www.clearvox.nl/ +// Submitted by Leon Rowland +virtueeldomein.nl + // cloudControl : https://www.cloudcontrol.com/ // Submitted by Tobias Wilken cloudcontrolled.com @@ -10798,6 +10833,14 @@ co.no // Submitted by Damien Tournoud *.platform.sh +// Craynic, s.r.o. : http://www.craynic.com/ +// Submitted by Ales Krajnik +realm.cz + +// Cryptonomic : https://cryptonomic.net/ +// Submitted by Andrew Cady +*.cryptonomic.net + // Cupcake : https://cupcake.io/ // Submitted by Jonathan Rudenberg cupcake.is @@ -10835,6 +10878,11 @@ dreamhosters.com // Submitted by Ricardo Padilha mydrobo.com +// Drud Holdings, LLC. : https://www.drud.com/ +// Submitted by Kevin Bridges +drud.io +drud.us + // DuckDNS : http://www.duckdns.org/ // Submitted by Richard Harper duckdns.org @@ -11192,6 +11240,13 @@ tr.eu.org uk.eu.org us.eu.org +// Evennode : http://www.evennode.com/ +// Submitted by Michal Kralik +eu-1.evennode.com +eu-2.evennode.com +us-1.evennode.com +us-2.evennode.com + // Facebook, Inc. // Submitted by Peter Ruibal apps.fbsbx.com @@ -11204,6 +11259,10 @@ global.ssl.fastly.net a.prod.fastly.net global.prod.fastly.net +// Featherhead : https://featherhead.xyz/ +// Submitted by Simon Menke +fhapp.xyz + // Firebase, Inc. // Submitted by Chris Raynor firebaseapp.com @@ -11235,9 +11294,15 @@ githubcloud.com gist.githubcloud.com *.githubcloudusercontent.com +// GitLab, Inc. +// Submitted by Alex Hanselka +gitlab.io + // GlobeHosting, Inc. // Submitted by Zoltan Egresi ro.com +ro.im +shop.ro // GoIP DNS Services : http://www.goip.de // Submitted by Christian Poulter @@ -11332,6 +11397,14 @@ withyoutube.com // Hashbang : https://hashbang.sh hashbang.sh +// Hasura : https://hasura.io +// Submitted by Shahidh K Muhammed +hasura-app.io + +// Hepforge : https://www.hepforge.org +// Submitted by David Grellscheid +hepforge.org + // Heroku : https://www.heroku.com/ // Submitted by Tom Maher herokuapp.com @@ -11345,6 +11418,28 @@ iki.fi biz.at info.at +// Joyent : https://www.joyent.com/ +// Submitted by Brian Bennett +*.triton.zone +*.cns.joyent.com + +// JS.ORG : http://dns.js.org +// Submitted by Stefan Keim +js.org + +// .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf +co.krd +edu.krd + +// Magento Commerce +// Submitted by Damien Tournoud +*.magentosite.cloud + +// Meteor Development Group : https://www.meteor.com/hosting +// Submitted by Pierre Carrier +meteorapp.com +eu.meteorapp.com + // Michau Enterprises Limited : http://www.co.pl/ co.pl @@ -11520,6 +11615,10 @@ xen.prgmr.com // Submitted by registry priv.at +// Protonet GmbH : http://protonet.io +// Submitted by Martin Meier +protonet.io + // Publication Presse Communication SARL : https://ppcom.fr // Submitted by Yaacov Akiba Slama chirurgiens-dentistes-en-france.fr @@ -11528,6 +11627,12 @@ chirurgiens-dentistes-en-france.fr // Submitted by Daniel Dent (https://www.danieldent.com/) qa2.com +// QNAP System Inc : https://www.qnap.com +// Submitted by Nick Chang +dev-myqnapcloud.com +alpha-myqnapcloud.com +myqnapcloud.com + // Rackmaze LLC : https://www.rackmaze.com // Submitted by Kirill Pertsev rackmaze.com @@ -11545,12 +11650,21 @@ hzc.io // Submitted by Asheesh Laroia sandcats.io +// SBE network solutions GmbH : https://www.sbe.de/ +// Submitted by Norman Meilick +logoip.de +logoip.com + // Service Online LLC : http://drs.ua/ // Submitted by Serhii Bulakh biz.ua co.ua pp.ua +// Shopblocks : http://www.shopblocks.com/ +// Submitted by Alex Bowers +myshopblocks.com + // SinaAppEngine : http://sae.sina.com.cn/ // Submitted by SinaAppEngine sinaapp.com @@ -11563,10 +11677,20 @@ bounty-full.com alpha.bounty-full.com beta.bounty-full.com +// staticland : https://static.land +// Submitted by Seth Vincent +static.land +dev.static.land +sites.static.land + // SpaceKit : https://www.spacekit.io/ // Submitted by Reza Akhavan spacekit.io +// Stackspace : https://www.stackspace.io/ +// Submitted by Lina He +stackspace.space + // Synology, Inc. : https://www.synology.com/ // Submitted by Rony Weng diskstation.me @@ -11590,11 +11714,15 @@ gdynia.pl med.pl sopot.pl -// TownNews.com domains : http://www.townnews.com +// TownNews.com : http://www.townnews.com // Submitted by Dustin Ward bloxcms.com townnews-staging.com +// TuxFamily : http://tuxfamily.org +// Submitted by TuxFamily administrators +tuxfamily.org + // UDR Limited : http://www.udr.hk.com // Submitted by registry hk.com @@ -11602,10 +11730,18 @@ hk.org ltd.hk inc.hk +// .US +// Submitted by Ed Moore +lib.de.us + // Viprinet Europe GmbH : http://www.viprinet.com // Submitted by Simon Kissel router.management +// Wikimedia Labs : https://wikitech.wikimedia.org +// Submitted by Yuvi Panda +wmflabs.org + // Yola : https://www.yola.com/ // Submitted by Stefano Rivera yolasite.com From ebc5ec9672e037cd60ab8720ceaa5c4e42d3281e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 30 Sep 2016 10:10:25 +0200 Subject: [PATCH 161/450] Release 2.0.3 --- CHANGELOG.md | 5 +++++ lib/public_suffix/version.rb | 2 +- public_suffix.gemspec | 6 +++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 033fed50..2b2d668f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### Release 2.0.3 + +- CHANGED: Updated definitions. + + #### Release 2.0.2 - CHANGED: Updated definitions. diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 00980111..917b122a 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -8,5 +8,5 @@ module PublicSuffix # The current library version. - VERSION = "2.0.2".freeze + VERSION = "2.0.3".freeze end diff --git a/public_suffix.gemspec b/public_suffix.gemspec index d8af24ca..0f8d79a2 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -1,14 +1,14 @@ # -*- encoding: utf-8 -*- -# stub: public_suffix 2.0.2 ruby lib +# stub: public_suffix 2.0.3 ruby lib Gem::Specification.new do |s| s.name = "public_suffix" - s.version = "2.0.2" + s.version = "2.0.3" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.require_paths = ["lib"] s.authors = ["Simone Carletti"] - s.date = "2016-06-10" + s.date = "2016-09-30" s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.email = "weppos@weppos.net" s.files = [".gitignore", ".rubocop.yml", ".rubocop_defaults.yml", ".ruby-gemset", ".travis.yml", ".yardopts", "2.0-Upgrade.md", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/list.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] From 0d52a1ba2d3600bb77364ec36d73e842de0dc072 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 15 Oct 2016 14:31:46 +0200 Subject: [PATCH 162/450] Rewrite the gem packaging task It should fix GH-121 and avoid the wrong version in the gemspec. --- .rubocop.yml | 5 ++++ CHANGELOG.md | 4 +++ Rakefile | 63 +++---------------------------------------- public_suffix.gemspec | 50 +++++++++++++--------------------- 4 files changed, 30 insertions(+), 92 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 0af78680..6744f46b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,6 +1,11 @@ inherit_from: - .rubocop_defaults.yml +AllCops: + Exclude: + # Exclude artifacts + - 'pkg/**/*' + Style/ClassAndModuleChildren: Exclude: - 'spec/**/*_spec.rb' diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b2d668f..bee0e913 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +#### master + +- FIXED: Fix a bug that caused the GEM to be published with the wrong version number in the gemspec (GH-121). + #### Release 2.0.3 diff --git a/Rakefile b/Rakefile index 6e7fdcd8..8295ce7e 100644 --- a/Rakefile +++ b/Rakefile @@ -1,59 +1,8 @@ -require "rubygems" -require "bundler" - -$LOAD_PATH.unshift(File.dirname(__FILE__) + "/lib") -require "public_suffix" - +require "bundler/gem_tasks" # By default, run tests and linter. task default: [:test, :rubocop] -spec = Gem::Specification.new do |s| - s.name = "public_suffix" - s.version = PublicSuffix::VERSION - s.summary = "Domain name parser based on the Public Suffix List." - s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." - - s.required_ruby_version = ">= 2.0" - - s.author = "Simone Carletti" - s.email = "weppos@weppos.net" - s.homepage = "https://simonecarletti.com/code/publicsuffix-ruby" - s.license = "MIT" - - s.files = `git ls-files`.split("\n") - s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") - s.require_paths = %w( lib ) - - s.add_development_dependency("rake") - s.add_development_dependency("mocha") - s.add_development_dependency("yard") -end - - -require "rubygems/package_task" - -Gem::PackageTask.new(spec) do |pkg| - pkg.gem_spec = spec -end - -desc "Build the gemspec file #{spec.name}.gemspec" -task :gemspec do - file = File.dirname(__FILE__) + "/#{spec.name}.gemspec" - File.open(file, "w") { |f| f << spec.to_ruby } -end - -desc "Remove any temporary products, including gemspec" -task clean: [:clobber] do - rm "#{spec.name}.gemspec" if File.file?("#{spec.name}.gemspec") -end - -desc "Remove any generated file" -task clobber: [:clobber_package] - -desc "Package the library and generates the gemspec" -task package: [:gemspec] - require "rake/testtask" @@ -69,19 +18,13 @@ require "rubocop/rake_task" RuboCop::RakeTask.new -require "yard" require "yard/rake/yardoc_task" YARD::Rake::YardocTask.new(:yardoc) do |y| - y.options = %w( --output-dir yardoc ) + y.options = ["--output-dir", "yardoc"] end -namespace :yardoc do - task :clobber do - rm_r "yardoc" rescue nil - end -end -task clobber: ["yardoc:clobber"] +CLOBBER.include "yardoc" desc "Open an irb session preloaded with this library" diff --git a/public_suffix.gemspec b/public_suffix.gemspec index 0f8d79a2..62b931b1 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -1,39 +1,25 @@ # -*- encoding: utf-8 -*- -# stub: public_suffix 2.0.3 ruby lib +$LOAD_PATH.push File.expand_path("../lib", __FILE__) +require "public_suffix/version" Gem::Specification.new do |s| - s.name = "public_suffix" - s.version = "2.0.3" - - s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= - s.require_paths = ["lib"] - s.authors = ["Simone Carletti"] - s.date = "2016-09-30" + s.name = "public_suffix" + s.version = PublicSuffix::VERSION + s.authors = ["Simone Carletti"] + s.email = ["weppos@weppos.net"] + s.homepage = "https://simonecarletti.com/code/publicsuffix-ruby" + s.summary = "Domain name parser based on the Public Suffix List." s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." - s.email = "weppos@weppos.net" - s.files = [".gitignore", ".rubocop.yml", ".rubocop_defaults.yml", ".ruby-gemset", ".travis.yml", ".yardopts", "2.0-Upgrade.md", "CHANGELOG.md", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "data/list.txt", "lib/public_suffix.rb", "lib/public_suffix/domain.rb", "lib/public_suffix/errors.rb", "lib/public_suffix/list.rb", "lib/public_suffix/rule.rb", "lib/public_suffix/version.rb", "public_suffix.gemspec", "test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] - s.homepage = "https://simonecarletti.com/code/publicsuffix-ruby" - s.licenses = ["MIT"] - s.required_ruby_version = Gem::Requirement.new(">= 2.0") - s.rubygems_version = "2.5.1" - s.summary = "Domain name parser based on the Public Suffix List." - s.test_files = ["test/acceptance_test.rb", "test/benchmark_helper.rb", "test/execution_profiler.rb", "test/initialization_profiler.rb", "test/performance_benchmark.rb", "test/psl_test.rb", "test/test_helper.rb", "test/tests.txt", "test/unit/domain_test.rb", "test/unit/errors_test.rb", "test/unit/list_test.rb", "test/unit/public_suffix_test.rb", "test/unit/rule_test.rb"] + s.licenses = ["MIT"] + + s.required_ruby_version = ">= 2.0" - if s.respond_to? :specification_version then - s.specification_version = 4 + s.require_paths = ["lib"] + s.files = `git ls-files`.split("\n") + s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") + s.extra_rdoc_files = %w( LICENSE.txt ) - if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_development_dependency(%q, [">= 0"]) - s.add_development_dependency(%q, [">= 0"]) - s.add_development_dependency(%q, [">= 0"]) - else - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - end - else - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - end + s.add_development_dependency "rake" + s.add_development_dependency "mocha" + s.add_development_dependency "yard" end From 32f13d972eac3ae48de697dacca1dba28dc423cf Mon Sep 17 00:00:00 2001 From: "G. Allen Morris III" Date: Tue, 16 Aug 2016 16:40:14 +0200 Subject: [PATCH 163/450] As we don't know test_self_default_getter will run, it must be set to nil --- test/unit/list_test.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 954d9345..2a95895d 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -158,7 +158,8 @@ def test_select_ignore_private def test_self_default_getter - assert_equal nil, PublicSuffix::List.class_eval { @default } + PublicSuffix::List.default = nil + assert_nil PublicSuffix::List.class_eval { @default; } PublicSuffix::List.default assert_not_equal nil, PublicSuffix::List.class_eval { @default } end From 9fa3b46350a95a7ff6b20771dc2c4f648b5d1a43 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 15 Oct 2016 14:34:43 +0200 Subject: [PATCH 164/450] Remove extra comma --- test/unit/list_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 2a95895d..ef2ab7a4 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -159,7 +159,7 @@ def test_select_ignore_private def test_self_default_getter PublicSuffix::List.default = nil - assert_nil PublicSuffix::List.class_eval { @default; } + assert_nil PublicSuffix::List.class_eval { @default } PublicSuffix::List.default assert_not_equal nil, PublicSuffix::List.class_eval { @default } end From ac198223615115dc0ea67adf48d433ceb2859041 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 15 Oct 2016 14:40:16 +0200 Subject: [PATCH 165/450] Update bundler --- .travis.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf705773..247922be 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: ruby + rvm: - 2.0 - 2.1 @@ -7,17 +8,15 @@ rvm: - jruby-9.0.5.0 - ruby-head -sudo: false +before_install: + - gem install bundler + cache: - bundler env: - COVERALL=1 -notifications: - recipients: - - weppos@weppos.net - matrix: allow_failures: - rvm: ruby-head From ac3a881368c8c8ec57b5750014dab8d87cd23497 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 6 Nov 2016 00:05:01 +0100 Subject: [PATCH 166/450] Fix Style/MultilineIfModifier > Favor a normal unless-statement over a modifier clause in a multiline statement. --- test/test_helper.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 24f7a4b5..16c1f854 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -13,7 +13,9 @@ require "public_suffix" Minitest::Unit::TestCase.class_eval do - def assert_not_equal(exp, act, msg = nil) - assert_operator(exp, :!=, act, msg) - end unless method_exists?(:assert_not_equal) + unless method_exists?(:assert_not_equal) + def assert_not_equal(exp, act, msg = nil) + assert_operator(exp, :!=, act, msg) + end + end end From 1ae4df0496fa7d799857d92b2a7acf81f14a2c5c Mon Sep 17 00:00:00 2001 From: Patrik Ragnarsson Date: Sun, 6 Nov 2016 10:45:46 +0100 Subject: [PATCH 167/450] Add default excludes to .rubocop.yml (#122) You could think that the settings here would be merged with the defaults, but rubocop doesn't seem that smart. --- .rubocop.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index 6744f46b..6c1ade3a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -3,6 +3,11 @@ inherit_from: AllCops: Exclude: + # Exclude .gemspec files because they are generally auto-generated + - '*.gemspec' + # Exclude vendored folders + - 'tmp/**/*' + - 'vendor/**/*' # Exclude artifacts - 'pkg/**/*' From 64942a51dfaa1f445324c2da0b0f80aed1da7777 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 6 Nov 2016 19:52:10 +0100 Subject: [PATCH 168/450] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index edc106ab..bdbdc7dc 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ $ gem install public_suffix Or use Bundler and define it as a dependency in your `Gemfile`: ```shell -$ gem 'public_suffix' +gem 'public_suffix' ``` If you are upgrading to 2.0, see [2.0-Upgrade.md](2.0-Upgrade.md). From b99fac1c831e1858d0f5b975ce180c0c729ffc3f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 6 Nov 2016 19:52:29 +0100 Subject: [PATCH 169/450] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bdbdc7dc..3bfcd59e 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ $ gem install public_suffix Or use Bundler and define it as a dependency in your `Gemfile`: -```shell +```ruby gem 'public_suffix' ``` From f83ca10f672c8266d17bf228423416090a821435 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 7 Nov 2016 01:04:20 +0100 Subject: [PATCH 170/450] No more need to use an older rake version --- Gemfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Gemfile b/Gemfile index c53a1f2d..5ead581f 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,6 @@ source "http://rubygems.org" gemspec -gem "rake", "< 11" gem "minitest" gem "minitest-reporters" gem "coveralls", require: false From dbb415ecdcd15150bc5a6e30d7069d9359cb54a7 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 7 Nov 2016 01:04:31 +0100 Subject: [PATCH 171/450] Update definitions --- CHANGELOG.md | 2 + data/list.txt | 114 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 111 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bee0e913..89c369a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - FIXED: Fix a bug that caused the GEM to be published with the wrong version number in the gemspec (GH-121). +- CHANGED: Updated definitions. + #### Release 2.0.3 diff --git a/data/list.txt b/data/list.txt index 497f7b1f..41edbbbc 100644 --- a/data/list.txt +++ b/data/list.txt @@ -704,7 +704,9 @@ org.cw cx gov.cx -// cy : https://en.wikipedia.org/wiki/.cy +// cy : http://www.nic.cy/ +// Submitted by registry Panayiotou Fotia +cy ac.cy biz.cy com.cy @@ -4367,9 +4369,17 @@ edu.my mil.my name.my -// mz : http://www.gobin.info/domainname/mz-template.doc -*.mz -!teledata.mz +// mz : http://www.uem.mz/ +// Submitted by registry +mz +ac.mz +adv.mz +co.mz +edu.mz +gov.mz +mil.mz +net.mz +org.mz // na : http://www.na-nic.com.na/ // http://www.info.na/domain/ @@ -10644,6 +10654,10 @@ beep.pl *.compute.estate *.alces.network +// alwaysdata : https://www.alwaysdata.com +// Submitted by Cyril +*.alwaysdata.net + // Amazon CloudFront : https://aws.amazon.com/cloudfront/ // Submitted by Donavan Miller cloudfront.net @@ -10825,6 +10839,20 @@ r.cdn77.net rsc.cdn77.org ssl.origin.cdn77-secure.org +// Cloud DNS Ltd : http://www.cloudns.net +// Submitted by Aleksander Hristov +cloudns.asia +cloudns.biz +cloudns.club +cloudns.cc +cloudns.eu +cloudns.in +cloudns.info +cloudns.org +cloudns.pro +cloudns.pw +cloudns.us + // CoDNS B.V. co.nl co.no @@ -11280,6 +11308,16 @@ fbxos.fr freebox-os.fr freeboxos.fr +// Fusion Intranet : https://www.fusion-intranet.com +// Submitted by Matthias Burtscher +myfusion.cloud + +// Futureweb OG : http://www.futureweb.at +// Submitted by Andreas Schnederle-Wagner +futuremailing.at +*.ex.ortsinfo.at +*.kunden.ortsinfo.at + // GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains // Submitted by David Illsley service.gov.uk @@ -11391,6 +11429,7 @@ codespot.com googleapis.com googlecode.com pagespeedmobilizer.com +publishproxy.com withgoogle.com withyoutube.com @@ -11418,6 +11457,36 @@ iki.fi biz.at info.at +// Interlegis : http://www.interlegis.leg.br +// Submitted by Gabriel Ferreira +ac.leg.br +al.leg.br +am.leg.br +ap.leg.br +ba.leg.br +ce.leg.br +df.leg.br +es.leg.br +go.leg.br +ma.leg.br +mg.leg.br +ms.leg.br +mt.leg.br +pa.leg.br +pb.leg.br +pe.leg.br +pi.leg.br +pr.leg.br +rj.leg.br +rn.leg.br +ro.leg.br +rr.leg.br +rs.leg.br +sc.leg.br +se.leg.br +sp.leg.br +to.leg.br + // Joyent : https://www.joyent.com/ // Submitted by Brian Bennett *.triton.zone @@ -11427,6 +11496,14 @@ info.at // Submitted by Stefan Keim js.org +// Keyweb AG : https://www.keyweb.de +// Submitted by Martin Dannehl +keymachine.de + +// KnightPoint Systems, LLC : http://www.knightpoint.com/ +// Submitted by Roy Keene +knightpoint.systems + // .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf co.krd edu.krd @@ -11566,6 +11643,10 @@ nyc.mn // Submitted by Eddie Jones nid.io +// OpenCraft GmbH : http://opencraft.com/ +// Submitted by Sven Marnach +opencraft.hosting + // Opera Software, A.S.A. // Submitted by Yngve Pettersen operaunite.com @@ -11646,6 +11727,12 @@ rhcloud.com // Submitted by Chris Kastorff hzc.io +// Revitalised Limited : http://www.revitalised.co.uk +// Submitted by Jack Price +wellbeingzone.eu +ptplus.fit +wellbeingzone.co.uk + // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia sandcats.io @@ -11667,9 +11754,11 @@ myshopblocks.com // SinaAppEngine : http://sae.sina.com.cn/ // Submitted by SinaAppEngine +1kapp.com +appchizi.com +applinzi.com sinaapp.com vipsinaapp.com -1kapp.com // Skyhat : http://www.skyhat.io // Submitted by Shante Adam @@ -11683,6 +11772,11 @@ static.land dev.static.land sites.static.land +// SourceLair PC : https://www.sourcelair.com +// Submitted by Antonis Kalipetis +apps.lair.io +*.stolos.io + // SpaceKit : https://www.spacekit.io/ // Submitted by Reza Akhavan spacekit.io @@ -11707,6 +11801,10 @@ i234.me myds.me synology.me +// TAIFUN Software AG : http://taifun-software.de +// Submitted by Bjoern Henke +taifun-dns.de + // TASK geographical domains (www.task.gda.pl/uslugi/dns) gda.pl gdansk.pl @@ -11719,6 +11817,12 @@ sopot.pl bloxcms.com townnews-staging.com +// TransIP : htts://www.transip.nl +// Submitted by Rory Breuk +*.transurl.be +*.transurl.eu +*.transurl.nl + // TuxFamily : http://tuxfamily.org // Submitted by TuxFamily administrators tuxfamily.org From 70cecd14b30a76044d73c9cbda4b5c84234b90c1 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 7 Nov 2016 01:05:12 +0100 Subject: [PATCH 172/450] Release 2.0.4 --- CHANGELOG.md | 3 ++- lib/public_suffix/version.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89c369a5..3f6e511b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog -#### master + +#### Release 2.0.4 - FIXED: Fix a bug that caused the GEM to be published with the wrong version number in the gemspec (GH-121). diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 917b122a..2a8bcba8 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -8,5 +8,5 @@ module PublicSuffix # The current library version. - VERSION = "2.0.3".freeze + VERSION = "2.0.4".freeze end From 172cee971d8a8099ebce84b10b9b0c2a3e3a008e Mon Sep 17 00:00:00 2001 From: Yuichiro Kaneko Date: Tue, 22 Nov 2016 02:43:05 +0900 Subject: [PATCH 173/450] Fix warnings (#124) This commit will fix these warnings: `MiniTest::Unit::TestCase is now Minitest::Test.` --- test/acceptance_test.rb | 2 +- test/psl_test.rb | 2 +- test/test_helper.rb | 2 +- test/unit/domain_test.rb | 2 +- test/unit/errors_test.rb | 2 +- test/unit/list_test.rb | 2 +- test/unit/public_suffix_test.rb | 2 +- test/unit/rule_test.rb | 10 +++++----- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 799093e6..c7411341 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -1,6 +1,6 @@ require "test_helper" -class AcceptanceTest < Minitest::Unit::TestCase +class AcceptanceTest < Minitest::Test VALID_CASES = [ ["example.com", "example.com", [nil, "example", "com"]], diff --git a/test/psl_test.rb b/test/psl_test.rb index 68b8def0..fc591ae6 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -3,7 +3,7 @@ # This test runs against the current PSL file and ensures # the definitions satisfies the test suite. -class PslTest < Minitest::Unit::TestCase +class PslTest < Minitest::Test ROOT = File.expand_path("../../", __FILE__) diff --git a/test/test_helper.rb b/test/test_helper.rb index 16c1f854..4abc5645 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -12,7 +12,7 @@ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require "public_suffix" -Minitest::Unit::TestCase.class_eval do +Minitest::Test.class_eval do unless method_exists?(:assert_not_equal) def assert_not_equal(exp, act, msg = nil) assert_operator(exp, :!=, act, msg) diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index 16204951..40cec04d 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -1,6 +1,6 @@ require "test_helper" -class PublicSuffix::DomainTest < Minitest::Unit::TestCase +class PublicSuffix::DomainTest < Minitest::Test def setup @klass = PublicSuffix::Domain diff --git a/test/unit/errors_test.rb b/test/unit/errors_test.rb index 2a67baaa..47ac592e 100644 --- a/test/unit/errors_test.rb +++ b/test/unit/errors_test.rb @@ -1,6 +1,6 @@ require "test_helper" -class ErrorsTest < Minitest::Unit::TestCase +class ErrorsTest < Minitest::Test # Inherits from StandardError def test_error_inheritance diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index ef2ab7a4..5ba3f3e4 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -1,6 +1,6 @@ require "test_helper" -class PublicSuffix::ListTest < Minitest::Unit::TestCase +class PublicSuffix::ListTest < Minitest::Test def setup @list = PublicSuffix::List.new diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 242c4cf1..781aa555 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -1,6 +1,6 @@ require "test_helper" -class PublicSuffixTest < Minitest::Unit::TestCase +class PublicSuffixTest < Minitest::Test def test_private_domains_enabled_by_default domain = PublicSuffix.parse("www.example.blogspot.com") diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index 39ab28bd..0cc64b35 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -1,6 +1,6 @@ require "test_helper" -class PublicSuffix::RuleTest < Minitest::Unit::TestCase +class PublicSuffix::RuleTest < Minitest::Test def test_factory_should_return_rule_normal rule = PublicSuffix::Rule.factory("com") @@ -34,7 +34,7 @@ def test_default_returns_default_wildcard end -class PublicSuffix::RuleBaseTest < Minitest::Unit::TestCase +class PublicSuffix::RuleBaseTest < Minitest::Test class ::PublicSuffix::Rule::Test < ::PublicSuffix::Rule::Base end @@ -120,7 +120,7 @@ def test_decompose end -class PublicSuffix::RuleNormalTest < Minitest::Unit::TestCase +class PublicSuffix::RuleNormalTest < Minitest::Test def setup @klass = PublicSuffix::Rule::Normal @@ -156,7 +156,7 @@ def test_decompose end -class PublicSuffix::RuleExceptionTest < Minitest::Unit::TestCase +class PublicSuffix::RuleExceptionTest < Minitest::Test def setup @klass = PublicSuffix::Rule::Exception @@ -190,7 +190,7 @@ def test_decompose end -class PublicSuffix::RuleWildcardTest < Minitest::Unit::TestCase +class PublicSuffix::RuleWildcardTest < Minitest::Test def setup @klass = PublicSuffix::Rule::Wildcard From 8312db0c94b31f065ac3706d702515c6f46fc705 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 26 Dec 2016 18:38:36 +0100 Subject: [PATCH 174/450] Fix warning with Coverall gem --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 5ead581f..97a73af6 100644 --- a/Gemfile +++ b/Gemfile @@ -2,9 +2,9 @@ source "http://rubygems.org" gemspec +gem "coveralls", require: false gem "minitest" gem "minitest-reporters" -gem "coveralls", require: false gem "rubocop", require: false gem "memory_profiler", require: false if !RUBY_VERSION.start_with?("2.0") From cd7bf4699ef51e98563424b83eb6369e21405117 Mon Sep 17 00:00:00 2001 From: Jean byroot Boussier Date: Mon, 2 Jan 2017 17:42:58 +0100 Subject: [PATCH 175/450] Remove useless Rule::Normal#initialize (#128) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I noticed that in our app `PublicSuffix` was taking 180ms to load the suffixes. After some profiling: ```ruby ================================== Mode: cpu(1000) Samples: 70 (0.00% miss rate) GC: 17 (24.29%) ================================== TOTAL (pct) SAMPLES (pct) FRAME 40 (57.1%) 20 (28.6%) #.factory 20 (28.6%) 17 (24.3%) PublicSuffix::Rule::Normal#initialize 6 (8.6%) 6 (8.6%) PublicSuffix::Domain.name_to_labels 11 (15.7%) 5 (7.1%) block in PublicSuffix::List#reindex! 3 (4.3%) 3 (4.3%) PublicSuffix::Rule::Base#initialize 9 (12.9%) 2 (2.9%) PublicSuffix::List#add 53 (75.7%) 0 (0.0%)
53 (75.7%) 0 (0.0%)
53 (75.7%) 0 (0.0%) block in
46 (65.7%) 0 (0.0%) PublicSuffix::List.parse 46 (65.7%) 0 (0.0%) PublicSuffix::List#initialize 42 (60.0%) 0 (0.0%) block in PublicSuffix::List.parse 42 (60.0%) 0 (0.0%) block (2 levels) in PublicSuffix::List.parse 11 (15.7%) 0 (0.0%) PublicSuffix::List#reindex! 7 (10.0%) 0 (0.0%) block (2 levels) in
``` `PublicSuffix::Rule::Normal#initialize` happens to be a hotspot, which is weird since it does nothing more than forwarding the parameters. After taking it out: ```ruby ================================== Mode: cpu(1000) Samples: 58 (0.00% miss rate) GC: 22 (37.93%) ================================== TOTAL (pct) SAMPLES (pct) FRAME 20 (34.5%) 19 (32.8%) #.factory 9 (15.5%) 9 (15.5%) PublicSuffix::Domain.name_to_labels 16 (27.6%) 7 (12.1%) block in PublicSuffix::List#reindex! 1 (1.7%) 1 (1.7%) PublicSuffix::Rule::Base#initialize 36 (62.1%) 0 (0.0%)
36 (62.1%) 0 (0.0%) block in
36 (62.1%) 0 (0.0%)
29 (50.0%) 0 (0.0%) PublicSuffix::List.parse 29 (50.0%) 0 (0.0%) PublicSuffix::List#initialize 20 (34.5%) 0 (0.0%) block in PublicSuffix::List.parse 16 (27.6%) 0 (0.0%) PublicSuffix::List#reindex! 20 (34.5%) 0 (0.0%) block (2 levels) in PublicSuffix::List.parse 7 (12.1%) 0 (0.0%) PublicSuffix::List#add 7 (12.1%) 0 (0.0%) block (2 levels) in
``` I also benchmarked: `PublicSuffix::List.parse(source, private_domains: false)`: ```ruby require 'public_suffix' require 'benchmark/ips' Benchmark.ips do |x| x.report('parse') do PublicSuffix::List.parse(source, private_domains: false) end end ``` Before: ``` Warming up -------------------------------------- parse 1.000 i/100ms Calculating ------------------------------------- parse 16.780 (± 6.0%) i/s - 84.000 in 5.020938s ``` After: ``` Warming up -------------------------------------- parse 2.000 i/100ms Calculating ------------------------------------- parse 22.670 (± 4.4%) i/s - 114.000 in 5.044953s ``` So clearly the `**options; super(**options)` is quite detrimental for performances. So I decided to replace that pattern with explicitly forwarding of the named arguments, and got the following numbers: ``` Warming up -------------------------------------- parse 3.000 i/100ms Calculating ------------------------------------- parse 38.982 (± 2.6%) i/s - 390.000 in 10.015638s ``` So I totally agree that `**options` is a nicer way to delegate, but given it's performance cost, I think it's better not to use it in hotspots. --- lib/public_suffix/rule.rb | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 85ea60ac..0146c141 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -175,13 +175,6 @@ def decompose(*) # Normal represents a standard rule (e.g. com). class Normal < Base - # Initializes a new rule from +definition+. - # - # @param definition [String] the rule as defined in the PSL - def initialize(definition, **options) - super(definition, **options) - end - # Gets the original rule definition. # # @return [String] The rule definition. @@ -226,8 +219,8 @@ class Wildcard < Base # for each wildcard rule. # # @param definition [String] the rule as defined in the PSL - def initialize(definition, **options) - super(definition.to_s[2..-1], **options) + def initialize(definition, private: false) + super(definition.to_s[2..-1], private: private) end # Gets the original rule definition. @@ -275,8 +268,8 @@ class Exception < Base # for each wildcard rule. # # @param definition [String] the rule as defined in the PSL - def initialize(definition, **options) - super(definition.to_s[1..-1], **options) + def initialize(definition, private: false) + super(definition.to_s[1..-1], private: private) end # Gets the original rule definition. @@ -338,7 +331,7 @@ def length # # @param [String] content The rule content. # @return [PublicSuffix::Rule::*] A rule instance. - def self.factory(content, **options) + def self.factory(content, private: false) case content.to_s[0, 1] when STAR Wildcard @@ -346,7 +339,7 @@ def self.factory(content, **options) Exception else Normal - end.new(content, **options) + end.new(content, private: private) end # The default rule to use if no rule match. From 74e42bb6bfb0c4eb00d8d44e60b2af356d86a848 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 2 Jan 2017 17:44:22 +0100 Subject: [PATCH 176/450] CHANGELOG for GH-128 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f6e511b..527c1b1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +#### master + +- CHANGED: Initialization performance improvements (GH-#128). [Thanks @casperisfine] + #### Release 2.0.4 From 367aea02ec34eb05a851084bb9065970623356d0 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 2 Jan 2017 17:47:19 +0100 Subject: [PATCH 177/450] Year --- LICENSE.txt | 2 +- README.md | 2 +- lib/public_suffix.rb | 2 +- lib/public_suffix/domain.rb | 2 +- lib/public_suffix/errors.rb | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- lib/public_suffix/version.rb | 6 ++---- 8 files changed, 9 insertions(+), 11 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index d70f3c4c..81fe94d9 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2009-2016 Simone Carletti +Copyright (c) 2009-2017 Simone Carletti MIT License diff --git a/README.md b/README.md index 3bfcd59e..dda5a65f 100644 --- a/README.md +++ b/README.md @@ -185,4 +185,4 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. ## License -Copyright (c) 2009-2016 Simone Carletti. This is Free Software distributed under the MIT license. +Copyright (c) 2009-2017 Simone Carletti. This is Free Software distributed under the MIT license. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 7f7cfb27..150b9a75 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2016 Simone Carletti +# Copyright (c) 2009-2017 Simone Carletti require "public_suffix/domain" require "public_suffix/version" diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 53fc98fa..4c4edd44 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2016 Simone Carletti +# Copyright (c) 2009-2017 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index 8af76495..a636e76b 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2016 Simone Carletti +# Copyright (c) 2009-2017 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 37c4d011..737ff194 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2016 Simone Carletti +# Copyright (c) 2009-2017 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 0146c141..7043edc9 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2016 Simone Carletti +# Copyright (c) 2009-2017 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 2a8bcba8..bbb67972 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -1,10 +1,8 @@ -# -# Public Suffix +# = Public Suffix # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2016 Simone Carletti -# +# Copyright (c) 2009-2017 Simone Carletti module PublicSuffix # The current library version. From 8f23984b4fc0dc54fe0fa6f1905abc3af6947123 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 2 Jan 2017 17:47:54 +0100 Subject: [PATCH 178/450] Update definitions --- CHANGELOG.md | 2 + data/list.txt | 345 ++++++++++++++++++++++++-------------------------- 2 files changed, 168 insertions(+), 179 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 527c1b1f..0c115efc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ #### master +- CHANGED: Updated definitions. + - CHANGED: Initialization performance improvements (GH-#128). [Thanks @casperisfine] diff --git a/data/list.txt b/data/list.txt index 41edbbbc..c4fc8b3a 100644 --- a/data/list.txt +++ b/data/list.txt @@ -2548,9 +2548,7 @@ arao.kumamoto.jp aso.kumamoto.jp choyo.kumamoto.jp gyokuto.kumamoto.jp -hitoyoshi.kumamoto.jp kamiamakusa.kumamoto.jp -kashima.kumamoto.jp kikuchi.kumamoto.jp kumamoto.kumamoto.jp mashiki.kumamoto.jp @@ -4442,20 +4440,21 @@ org.ng sch.ng // ni : http://www.nic.ni/ +ni +ac.ni +biz.ni +co.ni com.ni -gob.ni edu.ni -org.ni -nom.ni -net.ni -mil.ni -co.ni -biz.ni -web.ni -int.ni -ac.ni +gob.ni in.ni info.ni +int.ni +mil.ni +net.ni +nom.ni +org.ni +web.ni // nl : https://en.wikipedia.org/wiki/.nl // https://www.sidn.nl/ @@ -5682,143 +5681,13 @@ gov.rs in.rs org.rs -// ru : http://www.cctld.ru/ru/docs/aktiv_8.php -// Industry domains +// ru : https://cctld.ru/en/domains/domens_ru/reserved/ ru ac.ru -com.ru edu.ru -int.ru -net.ru -org.ru -pp.ru -// Geographical domains -adygeya.ru -altai.ru -amur.ru -arkhangelsk.ru -astrakhan.ru -bashkiria.ru -belgorod.ru -bir.ru -bryansk.ru -buryatia.ru -cbg.ru -chel.ru -chelyabinsk.ru -chita.ru -chukotka.ru -chuvashia.ru -dagestan.ru -dudinka.ru -e-burg.ru -grozny.ru -irkutsk.ru -ivanovo.ru -izhevsk.ru -jar.ru -joshkar-ola.ru -kalmykia.ru -kaluga.ru -kamchatka.ru -karelia.ru -kazan.ru -kchr.ru -kemerovo.ru -khabarovsk.ru -khakassia.ru -khv.ru -kirov.ru -koenig.ru -komi.ru -kostroma.ru -krasnoyarsk.ru -kuban.ru -kurgan.ru -kursk.ru -lipetsk.ru -magadan.ru -mari.ru -mari-el.ru -marine.ru -mordovia.ru -// mosreg.ru Bug 1090800 - removed at request of Aleksey Konstantinov -msk.ru -murmansk.ru -nalchik.ru -nnov.ru -nov.ru -novosibirsk.ru -nsk.ru -omsk.ru -orenburg.ru -oryol.ru -palana.ru -penza.ru -perm.ru -ptz.ru -rnd.ru -ryazan.ru -sakhalin.ru -samara.ru -saratov.ru -simbirsk.ru -smolensk.ru -spb.ru -stavropol.ru -stv.ru -surgut.ru -tambov.ru -tatarstan.ru -tom.ru -tomsk.ru -tsaritsyn.ru -tsk.ru -tula.ru -tuva.ru -tver.ru -tyumen.ru -udm.ru -udmurtia.ru -ulan-ude.ru -vladikavkaz.ru -vladimir.ru -vladivostok.ru -volgograd.ru -vologda.ru -voronezh.ru -vrn.ru -vyatka.ru -yakutia.ru -yamal.ru -yaroslavl.ru -yekaterinburg.ru -yuzhno-sakhalinsk.ru -// More geographical domains -amursk.ru -baikal.ru -cmw.ru -fareast.ru -jamal.ru -kms.ru -k-uralsk.ru -kustanai.ru -kuzbass.ru -mytis.ru -nakhodka.ru -nkz.ru -norilsk.ru -oskol.ru -pyatigorsk.ru -rubtsovsk.ru -snz.ru -syzran.ru -vdonsk.ru -zgrad.ru -// State domains gov.ru +int.ru mil.ru -// Technical domains test.ru // rw : http://www.nic.rw/cgi-bin/policy.pl @@ -6957,7 +6826,7 @@ sch.zm *.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-08-17T00:17:46Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-11-29T01:06:51Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7367,7 +7236,7 @@ bosch // bostik : 2015-05-28 Bostik SA bostik -// boston : 2015-12-10 Boston Globe Media Partners, LLC +// boston : 2015-12-10 boston // bot : 2014-12-18 Amazon EU S.à r.l. @@ -7913,9 +7782,6 @@ email // emerck : 2014-04-03 Merck KGaA emerck -// emerson : 2015-07-23 Emerson Electric Co. -emerson - // energy : 2014-09-11 Binky Birch, LLC energy @@ -8144,7 +8010,7 @@ fujitsu // fujixerox : 2015-07-23 Xerox DNHC LLC fujixerox -// fun : 2016-01-14 Oriental Trading Company, Inc. +// fun : 2016-01-14 fun // fund : 2014-03-20 John Castle, LLC @@ -8402,6 +8268,9 @@ honeywell // horse : 2013-11-21 Top Level Domain Holdings Limited horse +// hospital : 2016-10-20 Ruby Pike, LLC +hospital + // host : 2014-04-17 DotHost Inc. host @@ -8999,7 +8868,7 @@ mortgage // moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) moscow -// moto : 2015-06-04 Charleston Road Registry Inc. +// moto : 2015-06-04 moto // motorcycles : 2014-01-09 DERMotorcycles, LLC @@ -9146,7 +9015,7 @@ nyc // obi : 2014-09-25 OBI Group Holding SE & Co. KGaA obi -// observer : 2015-04-30 Guardian News and Media Limited +// observer : 2015-04-30 observer // off : 2015-07-23 Johnson Shareholdings, Inc. @@ -10394,7 +10263,7 @@ xin // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD 삼성 -// xn--czr694b : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED +// xn--czr694b : 2014-01-16 Dot Trademark TLD Holding Company Limted 商标 // xn--czrs0t : 2013-12-19 Wild Island, LLC @@ -10451,7 +10320,7 @@ xin // xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry संगठन -// xn--imr513n : 2014-12-11 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED +// xn--imr513n : 2014-12-11 Dot Trademark TLD Holding Company Limted 餐厅 // xn--io0a7i : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) @@ -10663,57 +10532,84 @@ beep.pl cloudfront.net // Amazon Elastic Compute Cloud: https://aws.amazon.com/ec2/ -// Submitted by Philip Allchin -compute.amazonaws.com -ap-northeast-1.compute.amazonaws.com -ap-northeast-2.compute.amazonaws.com -ap-southeast-1.compute.amazonaws.com -ap-southeast-2.compute.amazonaws.com -eu-central-1.compute.amazonaws.com -eu-west-1.compute.amazonaws.com -sa-east-1.compute.amazonaws.com -us-gov-west-1.compute.amazonaws.com -us-west-1.compute.amazonaws.com -us-west-2.compute.amazonaws.com -compute-1.amazonaws.com -z-1.compute-1.amazonaws.com -z-2.compute-1.amazonaws.com +// Submitted by Luke Wells +*.compute.amazonaws.com +*.compute-1.amazonaws.com +*.compute.amazonaws.com.cn us-east-1.amazonaws.com -compute.amazonaws.com.cn -cn-north-1.compute.amazonaws.com.cn // Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/ -// Submitted by Adam Stein -elasticbeanstalk.com +// Submitted by Luke Wells +elasticbeanstalk.cn-north-1.amazonaws.com.cn +*.elasticbeanstalk.com // Amazon Elastic Load Balancing : https://aws.amazon.com/elasticloadbalancing/ -// Submitted by Scott Vidmar -elb.amazonaws.com +// Submitted by Luke Wells +*.elb.amazonaws.com +*.elb.amazonaws.com.cn // Amazon S3 : https://aws.amazon.com/s3/ -// Submitted by Luke Wells -s3.amazonaws.com +// Submitted by Luke Wells +*.s3.amazonaws.com s3-ap-northeast-1.amazonaws.com s3-ap-northeast-2.amazonaws.com +s3-ap-south-1.amazonaws.com s3-ap-southeast-1.amazonaws.com s3-ap-southeast-2.amazonaws.com +s3-ca-central-1.amazonaws.com s3-eu-central-1.amazonaws.com s3-eu-west-1.amazonaws.com s3-external-1.amazonaws.com -s3-external-2.amazonaws.com s3-fips-us-gov-west-1.amazonaws.com s3-sa-east-1.amazonaws.com s3-us-gov-west-1.amazonaws.com +s3-us-east-2.amazonaws.com s3-us-west-1.amazonaws.com s3-us-west-2.amazonaws.com s3.ap-northeast-2.amazonaws.com +s3.ap-south-1.amazonaws.com s3.cn-north-1.amazonaws.com.cn +s3.ca-central-1.amazonaws.com s3.eu-central-1.amazonaws.com +s3.us-east-2.amazonaws.com +s3.dualstack.ap-northeast-1.amazonaws.com +s3.dualstack.ap-northeast-2.amazonaws.com +s3.dualstack.ap-south-1.amazonaws.com +s3.dualstack.ap-southeast-1.amazonaws.com +s3.dualstack.ap-southeast-2.amazonaws.com +s3.dualstack.ca-central-1.amazonaws.com +s3.dualstack.eu-central-1.amazonaws.com +s3.dualstack.eu-west-1.amazonaws.com +s3.dualstack.sa-east-1.amazonaws.com +s3.dualstack.us-east-1.amazonaws.com +s3.dualstack.us-east-2.amazonaws.com +s3-website-us-east-1.amazonaws.com +s3-website-us-west-1.amazonaws.com +s3-website-us-west-2.amazonaws.com +s3-website-ap-northeast-1.amazonaws.com +s3-website-ap-southeast-1.amazonaws.com +s3-website-ap-southeast-2.amazonaws.com +s3-website-eu-west-1.amazonaws.com +s3-website-sa-east-1.amazonaws.com +s3-website.ap-northeast-2.amazonaws.com +s3-website.ap-south-1.amazonaws.com +s3-website.ca-central-1.amazonaws.com +s3-website.eu-central-1.amazonaws.com +s3-website.us-east-2.amazonaws.com + +// Amune : https://amune.org/ +// Submitted by Team Amune +t3l3p0rt.net +tele.amune.org // Aptible : https://www.aptible.com/ // Submitted by Thomas Orozco on-aptible.com +// Asociación Amigos de la Informática "Euskalamiga" : http://encounter.eus/ +// Submitted by Hector Martin +user.party.eus + // Association potager.org : https://potager.org/ // Submitted by Lunar pimienta.org @@ -10861,6 +10757,18 @@ co.no // Submitted by Damien Tournoud *.platform.sh +// COSIMO GmbH http://www.cosimo.de +// Submitted by Rene Marticke +dyn.cosidns.de +dynamisches-dns.de +dnsupdater.de +internet-dns.de +l-o-g-i-n.de +dynamic-dns.info +feste-ip.net +knx-server.net +static-access.net + // Craynic, s.r.o. : http://www.craynic.com/ // Submitted by Ales Krajnik realm.cz @@ -11201,6 +11109,18 @@ webhop.org worse-than.tv writesthisblog.com +// ddnss.de : https://www.ddnss.de/ +// Submitted by Robert Niedziela +ddnss.de +dyn.ddnss.de +dyndns.ddnss.de +dyndns1.de +dyn-ip24.de +home-webserver.de +dyn.home-webserver.de +myhome-server.de +ddnss.org + // dynv6 : https://dynv6.com // Submitted by Dominik Menke 2016-01-18 dynv6.net @@ -11209,6 +11129,11 @@ dynv6.net // Submitted by Vladimir Dudr e4.cz +// Enonic : http://enonic.com/ +// Submitted by Erik Kaareng-Sunde +enonic.io +customer.enonic.io + // EU.org https://eu.org/ // Submitted by Pierre Beyssac eu.org @@ -11314,9 +11239,11 @@ myfusion.cloud // Futureweb OG : http://www.futureweb.at // Submitted by Andreas Schnederle-Wagner +futurehosting.at futuremailing.at *.ex.ortsinfo.at *.kunden.ortsinfo.at +*.statics.cloud // GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains // Submitted by David Illsley @@ -11336,9 +11263,12 @@ gist.githubcloud.com // Submitted by Alex Hanselka gitlab.io +// UKHomeOffice : https://www.gov.uk/government/organisations/home-office +// Submitted by Jon Shanks +homeoffice.gov.uk + // GlobeHosting, Inc. // Submitted by Zoltan Egresi -ro.com ro.im shop.ro @@ -11688,6 +11618,10 @@ gotpantheon.com // Submitted by Steve Leung mypep.link +// Planet-Work : https://www.planet-work.com/ +// Submitted by Frédéric VANNIÈRE +on-web.fr + // prgmr.com : https://prgmr.com/ // Submitted by Sarah Newman xen.prgmr.com @@ -11742,12 +11676,29 @@ sandcats.io logoip.de logoip.com +// Securepoint GmbH : https://www.securepoint.de +// Submitted by Erik Anders +firewall-gateway.com +firewall-gateway.de +my-gateway.de +my-router.de +spdns.de +spdns.eu +firewall-gateway.net +my-firewall.org +myfirewall.org +spdns.org + // Service Online LLC : http://drs.ua/ // Submitted by Serhii Bulakh biz.ua co.ua pp.ua +// ShiftEdit : https://shiftedit.net/ +// Submitted by Adam Jimenez +shiftedit.io + // Shopblocks : http://www.shopblocks.com/ // Submitted by Alex Bowers myshopblocks.com @@ -11827,6 +11778,22 @@ townnews-staging.com // Submitted by TuxFamily administrators tuxfamily.org +// TwoDNS : https://www.twodns.de/ +// Submitted by TwoDNS-Support +dd-dns.de +diskstation.eu +diskstation.org +dray-dns.de +draydns.de +dyn-vpn.de +dynvpn.de +mein-vigor.de +my-vigor.de +my-wan.de +syno-ds.de +synology-diskstation.de +synology-ds.de + // UDR Limited : http://www.udr.hk.com // Submitted by registry hk.com @@ -11850,9 +11817,29 @@ wmflabs.org // Submitted by Stefano Rivera yolasite.com +// Yombo : https://yombo.net +// Submitted by Mitch Schwenk +ybo.faith +yombo.me +homelink.one +ybo.party +ybo.review +ybo.science +ybo.trade + // ZaNiC : http://www.za.net/ // Submitted by registry za.net za.org +// Zeit, Inc. : https://zeit.domains/ +// Submitted by Olli Vanhoja +now.sh + +// 1GB LLC : https://www.1gb.ua/ +// Submitted by 1GB LLC +cc.ua +inf.ua +ltd.ua + // ===END PRIVATE DOMAINS=== From 5b9cd786be1e76daf5d2ab522ee9a9a508254dbb Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 2 Jan 2017 17:51:09 +0100 Subject: [PATCH 179/450] Release 2.0.5 --- CHANGELOG.md | 4 ++-- lib/public_suffix/version.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c115efc..c5b56c90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,10 @@ # Changelog -#### master +#### Release 2.0.5 - CHANGED: Updated definitions. -- CHANGED: Initialization performance improvements (GH-#128). [Thanks @casperisfine] +- CHANGED: Initialization performance improvements (GH-128). [Thanks @casperisfine] #### Release 2.0.4 diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index bbb67972..bfb58afd 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -6,5 +6,5 @@ module PublicSuffix # The current library version. - VERSION = "2.0.4".freeze + VERSION = "2.0.5".freeze end From 8dd04eda2a1fce3aa86e87e55989fd19800a2264 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 7 Jan 2017 19:30:01 +0100 Subject: [PATCH 180/450] Fix some MT6 assert_nil deprecations --- test/test_helper.rb | 8 -------- test/unit/domain_test.rb | 30 +++++++++++++++--------------- test/unit/list_test.rb | 10 +++++----- test/unit/public_suffix_test.rb | 6 +++--- test/unit/rule_test.rb | 10 +++++----- 5 files changed, 28 insertions(+), 36 deletions(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 4abc5645..943e7c79 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -11,11 +11,3 @@ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require "public_suffix" - -Minitest::Test.class_eval do - unless method_exists?(:assert_not_equal) - def assert_not_equal(exp, act, msg = nil) - assert_operator(exp, :!=, act, msg) - end - end -end diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index 40cec04d..509ce1b5 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -23,23 +23,23 @@ def test_self_name_to_labels_converts_input_to_string def test_initialize_with_tld domain = @klass.new("com") - assert_equal "com", domain.tld - assert_equal nil, domain.sld - assert_equal nil, domain.trd + assert_equal "com", domain.tld + assert_nil domain.sld + assert_nil domain.trd end def test_initialize_with_tld_and_sld domain = @klass.new("com", "google") - assert_equal "com", domain.tld - assert_equal "google", domain.sld - assert_equal nil, domain.trd + assert_equal "com", domain.tld + assert_equal "google", domain.sld + assert_nil domain.trd end def test_initialize_with_tld_and_sld_and_trd domain = @klass.new("com", "google", "www") - assert_equal "com", domain.tld - assert_equal "google", domain.sld - assert_equal "www", domain.trd + assert_equal "com", domain.tld + assert_equal "google", domain.sld + assert_equal "www", domain.trd end @@ -76,8 +76,8 @@ def test_name end def test_domain - assert_equal nil, @klass.new("com").domain - assert_equal nil, @klass.new("tldnotlisted").domain + assert_nil @klass.new("com").domain + assert_nil @klass.new("tldnotlisted").domain assert_equal "google.com", @klass.new("com", "google").domain assert_equal "google.tldnotlisted", @klass.new("tldnotlisted", "google").domain assert_equal "google.com", @klass.new("com", "google", "www").domain @@ -85,10 +85,10 @@ def test_domain end def test_subdomain - assert_equal nil, @klass.new("com").subdomain - assert_equal nil, @klass.new("tldnotlisted").subdomain - assert_equal nil, @klass.new("com", "google").subdomain - assert_equal nil, @klass.new("tldnotlisted", "google").subdomain + assert_nil @klass.new("com").subdomain + assert_nil @klass.new("tldnotlisted").subdomain + assert_nil @klass.new("com", "google").subdomain + assert_nil @klass.new("tldnotlisted", "google").subdomain assert_equal "www.google.com", @klass.new("com", "google", "www").subdomain assert_equal "www.google.tldnotlisted", @klass.new("tldnotlisted", "google", "www").subdomain end diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 5ba3f3e4..61ea0feb 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -161,21 +161,21 @@ def test_self_default_getter PublicSuffix::List.default = nil assert_nil PublicSuffix::List.class_eval { @default } PublicSuffix::List.default - assert_not_equal nil, PublicSuffix::List.class_eval { @default } + refute_nil PublicSuffix::List.class_eval { @default } end def test_self_default_setter PublicSuffix::List.default - assert_not_equal nil, PublicSuffix::List.class_eval { @default } + refute_nil PublicSuffix::List.class_eval { @default } PublicSuffix::List.default = nil - assert_equal nil, PublicSuffix::List.class_eval { @default } + assert_nil PublicSuffix::List.class_eval { @default } end def test_self_clear PublicSuffix::List.default - assert_not_equal nil, PublicSuffix::List.class_eval { @default } + refute_nil PublicSuffix::List.class_eval { @default } PublicSuffix::List.clear - assert_equal nil, PublicSuffix::List.class_eval { @default } + assert_nil PublicSuffix::List.class_eval { @default } end def test_self_parse diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 781aa555..a3492bc6 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -22,13 +22,13 @@ def test_self_parse_a_domain_with_tld_and_sld assert_instance_of PublicSuffix::Domain, domain assert_equal "com", domain.tld assert_equal "example", domain.sld - assert_equal nil, domain.trd + assert_nil domain.trd domain = PublicSuffix.parse("example.co.uk") assert_instance_of PublicSuffix::Domain, domain assert_equal "co.uk", domain.tld assert_equal "example", domain.sld - assert_equal nil, domain.trd + assert_nil domain.trd end def test_self_parse_a_domain_with_tld_and_sld_and_trd @@ -83,7 +83,7 @@ def test_self_parse_with_notlisted_name assert_instance_of PublicSuffix::Domain, domain assert_equal "tldnotlisted", domain.tld assert_equal "example", domain.sld - assert_equal nil, domain.trd + assert_nil domain.trd end def test_self_parse_with_unallowed_domain diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index 0cc64b35..f1c6ee5c 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -58,11 +58,11 @@ def test_equality_with_self # rubocop:disable Style/SingleLineMethods def test_equality_with_internals - assert_equal @klass.new("foo"), @klass.new("foo") - assert_not_equal @klass.new("foo"), @klass.new("bar") - assert_not_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("foo") - assert_not_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("bar") - assert_not_equal @klass.new("foo"), Class.new { def name; foo; end }.new + assert_equal @klass.new("foo"), @klass.new("foo") + refute_equal @klass.new("foo"), @klass.new("bar") + refute_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("foo") + refute_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("bar") + refute_equal @klass.new("foo"), Class.new { def name; foo; end }.new end # rubocop:enable Style/SingleLineMethods From 0efc738eea1073a4b72f0091b1a702a4b9eb7662 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 7 Jan 2017 19:42:06 +0100 Subject: [PATCH 181/450] Update RuboCop rules --- .rubocop_defaults.yml | 41 +++++++++++++++++++++++++++++---- lib/public_suffix/list.rb | 3 --- test/unit/public_suffix_test.rb | 2 +- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index a86ecfc0..007efbeb 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -6,11 +6,19 @@ AllCops: - 'tmp/**/*' - 'vendor/**/*' -Lint/AmbiguousRegexpLiteral: +# [codesmell] +Metrics/AbcSize: Enabled: false + Exclude: + - 'spec/**/*_spec.rb' + - 'test/**/*_test.rb' # [codesmell] -Metrics/AbcSize: +Metrics/BlockLength: + Enabled: false + +# [codesmell] +Metrics/CyclomaticComplexity: Enabled: false Exclude: - 'spec/**/*_spec.rb' @@ -18,24 +26,47 @@ Metrics/AbcSize: # [codesmell] Metrics/ClassLength: + Enabled: false + Exclude: + - 'spec/**/*_spec.rb' + - 'test/**/*_test.rb' + +# [codesmell] +Metrics/LineLength: + Enabled: false Exclude: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' + Max: 100 # [codesmell] Metrics/MethodLength: + Enabled: false Exclude: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' - Max: 15 + Max: 10 # [codesmell] -Metrics/LineLength: +Metrics/ModuleLength: Enabled: false Exclude: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' - Max: 100 + +# [codesmell] +Metrics/ParameterLists: + Enabled: false + Max: 5 + +# [codesmell] +Metrics/PerceivedComplexity: + Enabled: false + +# [codesmell] +# I don't really get the point of this cop. +Performance/RedundantMerge: + Enabled: false # Do not use "and" or "or" in conditionals, but for readability we can use it # to chain executions. Just beware of operator order. diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 737ff194..61142786 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -70,8 +70,6 @@ def self.clear self end - # rubocop:disable Metrics/MethodLength - # Parse given +input+ treating the content as Public Suffix List. # # See http://publicsuffix.org/format/ for more details about input format. @@ -109,7 +107,6 @@ def self.parse(input, private_domains: true) end end end - # rubocop:enable Metrics/MethodLength # Gets the array of rules. diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index a3492bc6..cd323017 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -169,7 +169,7 @@ def test_normalize_scheme ].each do |input, _| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error - assert_match /scheme/, error.message + assert_match(/scheme/, error.message) end end From 3c0281e168675ff2f55a6e18d56a5dda5a28d52f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 7 Jan 2017 19:44:16 +0100 Subject: [PATCH 182/450] PublicSuffix::List#rules is now protected You should not rely on it as the internal rule representation is subject to change to optimize performances. --- CHANGELOG.md | 5 +++++ lib/public_suffix/list.rb | 12 +++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5b56c90..54737a63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +#### master + +- CHANGED: PublicSuffix::List#rules is now protected. You should not rely on it as the internal rule representation is subject to change to optimize performances. + + #### Release 2.0.5 - CHANGED: Updated definitions. diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 61142786..7eb4a1c6 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -109,12 +109,6 @@ def self.parse(input, private_domains: true) end - # Gets the array of rules. - # - # @return [Array] - attr_reader :rules - - # Initializes an empty {PublicSuffix::List}. # # @yield [self] Yields on self. @@ -162,7 +156,7 @@ def indexes # @return [Boolean] def ==(other) return false unless other.is_a?(List) - equal?(other) || rules == other.rules + equal?(other) || @rules == other.rules end alias eql? == @@ -279,5 +273,9 @@ def default_rule PublicSuffix::Rule.default end + protected + + attr_reader :rules + end end From b6c8489da9befcf2c37b7f02ad5886224d02648a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 8 Jan 2017 00:03:39 +0100 Subject: [PATCH 183/450] Convert "console" into a command, instead of a rake task --- Rakefile | 6 ------ bin/console | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) create mode 100755 bin/console diff --git a/Rakefile b/Rakefile index 8295ce7e..e35d6ea9 100644 --- a/Rakefile +++ b/Rakefile @@ -27,12 +27,6 @@ end CLOBBER.include "yardoc" -desc "Open an irb session preloaded with this library" -task :console do - sh "irb -rubygems -I lib -r public_suffix.rb" -end - - desc "Downloads the Public Suffix List file from the repository and stores it locally." task :"update-list" do require "net/http" diff --git a/bin/console b/bin/console new file mode 100755 index 00000000..fd0f7392 --- /dev/null +++ b/bin/console @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby + +require "bundler/setup" +require "public_suffix" + +# You can add fixtures and/or initialization code here to make experimenting +# with your gem easier. You can also use a different console, if you like. + +# (If you use this, don't forget to add pry to your Gemfile!) +# require "pry" +# Pry.start + +require "irb" +IRB.start From 7115a81b420c75ad454732912a36f8ffe5157842 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 8 Jan 2017 00:05:33 +0100 Subject: [PATCH 184/450] Add benchmarks to Travis --- .rubocop.yml | 2 + .travis.yml | 8 +++- Rakefile | 8 ++++ benchmarks/bm_find.rb | 101 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 benchmarks/bm_find.rb diff --git a/.rubocop.yml b/.rubocop.yml index 6c1ade3a..fdd59c5d 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -10,6 +10,8 @@ AllCops: - 'vendor/**/*' # Exclude artifacts - 'pkg/**/*' + # Other + - 'benchmarks/**/*' Style/ClassAndModuleChildren: Exclude: diff --git a/.travis.yml b/.travis.yml index 247922be..42790a81 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,9 +4,11 @@ rvm: - 2.0 - 2.1 - 2.2 - - 2.3.0 - - jruby-9.0.5.0 + - 2.3.3 + - 2.4.0 - ruby-head + - jruby-9.0.5.0 + - jruby-9.1.0.0 before_install: - gem install bundler @@ -16,8 +18,10 @@ cache: env: - COVERALL=1 + - BENCHMARKS=1 matrix: allow_failures: - rvm: ruby-head - rvm: jruby-9.0.5.0 + - rvm: jruby-9.1.0.0 diff --git a/Rakefile b/Rakefile index e35d6ea9..d304b662 100644 --- a/Rakefile +++ b/Rakefile @@ -27,6 +27,14 @@ end CLOBBER.include "yardoc" +task :benchmarks do + Dir["benchmarks/bm_*.rb"].each do |file| + sh "ruby #{file}" + end +end +task default: [:benchmarks] if ENV["BENCHMARKS"] == "1" + + desc "Downloads the Public Suffix List file from the repository and stores it locally." task :"update-list" do require "net/http" diff --git a/benchmarks/bm_find.rb b/benchmarks/bm_find.rb new file mode 100644 index 00000000..e06abbb1 --- /dev/null +++ b/benchmarks/bm_find.rb @@ -0,0 +1,101 @@ +require 'benchmark' +require_relative '../lib/public_suffix' + +NAME_SHORT = "example.de" +NAME_MEDIUM = "www.subdomain.example.de" +NAME_LONG = "one.two.three.four.five.example.de" +NAME_WILD = "one.two.three.four.five.example.bd" +NAME_EXCP = "one.two.three.four.five.www.ck" + +IAAA = "one.two.three.four.five.example.ac" +IZZZ = "one.two.three.four.five.example.zone" + +PAAA = "one.two.three.four.five.example.beep.pl" +PZZZ = "one.two.three.four.five.example.now.sh" + +JP = "www.yokoshibahikari.chiba.jp" +IT = "one.two.three.four.five.example.it" +COM = "one.two.three.four.five.example.com" + +TIMES = (ARGV.first || 50_000).to_i + +# Initialize +PublicSuffix.valid?("example.com") + +Benchmark.bmbm(25) do |x| + x.report("NAME_SHORT") do + TIMES.times { PublicSuffix.valid?(NAME_SHORT) == true } + end + x.report("NAME_SHORT (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_SHORT, ignore_private: true) == true } + end + x.report("NAME_MEDIUM") do + TIMES.times { PublicSuffix.valid?(NAME_MEDIUM) == true } + end + x.report("NAME_MEDIUM (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_MEDIUM, ignore_private: true) == true } + end + x.report("NAME_LONG") do + TIMES.times { PublicSuffix.valid?(NAME_LONG) == true } + end + x.report("NAME_LONG (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_LONG, ignore_private: true) == true } + end + x.report("NAME_WILD") do + TIMES.times { PublicSuffix.valid?(NAME_WILD) == true } + end + x.report("NAME_WILD (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_WILD, ignore_private: true) == true } + end + x.report("NAME_EXCP") do + TIMES.times { PublicSuffix.valid?(NAME_EXCP) == true } + end + x.report("NAME_EXCP (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_EXCP, ignore_private: true) == true } + end + + x.report("IAAA") do + TIMES.times { PublicSuffix.valid?(IAAA) == true } + end + x.report("IAAA (noprivate)") do + TIMES.times { PublicSuffix.valid?(IAAA, ignore_private: true) == true } + end + x.report("IZZZ") do + TIMES.times { PublicSuffix.valid?(IZZZ) == true } + end + x.report("IZZZ (noprivate)") do + TIMES.times { PublicSuffix.valid?(IZZZ, ignore_private: true) == true } + end + + x.report("PAAA") do + TIMES.times { PublicSuffix.valid?(PAAA) == true } + end + x.report("PAAA (noprivate)") do + TIMES.times { PublicSuffix.valid?(PAAA, ignore_private: true) == true } + end + x.report("PZZZ") do + TIMES.times { PublicSuffix.valid?(PZZZ) == true } + end + x.report("PZZZ (noprivate)") do + TIMES.times { PublicSuffix.valid?(PZZZ, ignore_private: true) == true } + end + + x.report("JP") do + TIMES.times { PublicSuffix.valid?(JP) == true } + end + x.report("JP (noprivate)") do + TIMES.times { PublicSuffix.valid?(JP, ignore_private: true) == true } + end + x.report("IT") do + TIMES.times { PublicSuffix.valid?(IT) == true } + end + x.report("IT (noprivate)") do + TIMES.times { PublicSuffix.valid?(IT, ignore_private: true) == true } + end + x.report("COM") do + TIMES.times { PublicSuffix.valid?(COM) == true } + end + x.report("COM (noprivate)") do + TIMES.times { PublicSuffix.valid?(COM, ignore_private: true) == true } + end +end From 2b826da508ab54d407dbb489f1c25408f78eb571 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 8 Jan 2017 00:08:10 +0100 Subject: [PATCH 185/450] Do not duplicate builds --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 42790a81..58ec7635 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,7 @@ cache: - bundler env: - - COVERALL=1 - - BENCHMARKS=1 + - COVERALL=1 BENCHMARKS=1 matrix: allow_failures: From ca6d602ddbb1c440e3aeb78fca695adc607327b4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 7 Jan 2017 21:41:33 +0100 Subject: [PATCH 186/450] Removed `PublicSuffix::List.clear` It was an unnecessary accessor method. Use PublicSuffix::List.default = nil if you **really** need to reset the default list. You shouldn't. --- CHANGELOG.md | 12 ++---------- lib/public_suffix/list.rb | 8 -------- test/unit/list_test.rb | 9 +-------- test/unit/public_suffix_test.rb | 2 +- 4 files changed, 4 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54737a63..720a6f61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,13 @@ #### master -- CHANGED: PublicSuffix::List#rules is now protected. You should not rely on it as the internal rule representation is subject to change to optimize performances. +- CHANGED: `PublicSuffix::List#rules` is now protected. You should not rely on it as the internal rule representation is subject to change to optimize performances. +- CHANGED: Removed `PublicSuffix::List.clear`, it was an unnecessary accessor method. Use `PublicSuffix::List.default = nil` if you **really** need to reset the default list. You shouldn't. #### Release 2.0.5 - CHANGED: Updated definitions. - - CHANGED: Initialization performance improvements (GH-128). [Thanks @casperisfine] @@ -37,23 +37,15 @@ #### Release 2.0.0 - NEW: Added PublicSuffix.domain # => sld.tld - - NEW: Added the ability to disable the use of private domains either at runtime, in addition to the ability to not load the private domains section when reading the list (`private_domains: false`). This feature also superseded the `private_domains` class-level attribute, that is no longer available. - CHANGED: Considerable performance improvements (GH-92) - - CHANGED: Updated definitions. - - CHANGED: Removed deprecated PublicSuffix::InvalidDomain exception - - CHANGED: If the suffix is now listed, then the prevaling rule is "*" as defined by the PSL algorithm (GH-91) - - CHANGED: Input validation is performed only if you call `PublicSuffix.parse` or `PublicSuffix.list` - - CHANGED: Input with leading dot is invalid per PSL acceptance tests - - CHANGED: Removed `private_domains` class-level attribute. It is replaced by the `private_domains: false` option in the list parse method. - - CHANGED: The default list now assumes you use UTF-8 for reading the input (GH-94), - REMOVED: Removed futile utility helpers such as `Domain#rule`, `Domain#is_a_domain?`, `Domain#is_a_subdomain?`, `Domain#valid?`. You can easily obtain the same result by having a custom method that reconstructs the logic, and/or calling `PublicSuffix.{domain|parse}(domain.to_s)`. diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 7eb4a1c6..3494aec4 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -62,14 +62,6 @@ def self.default=(value) @default = value end - # Sets the default rule list to +nil+. - # - # @return [self] - def self.clear - self.default = nil - self - end - # Parse given +input+ treating the content as Public Suffix List. # # See http://publicsuffix.org/format/ for more details about input format. diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 61ea0feb..682d14ec 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -7,7 +7,7 @@ def setup end def teardown - PublicSuffix::List.clear + PublicSuffix::List.default = nil end @@ -171,13 +171,6 @@ def test_self_default_setter assert_nil PublicSuffix::List.class_eval { @default } end - def test_self_clear - PublicSuffix::List.default - refute_nil PublicSuffix::List.class_eval { @default } - PublicSuffix::List.clear - assert_nil PublicSuffix::List.class_eval { @default } - end - def test_self_parse list = PublicSuffix::List.parse(< Date: Sat, 7 Jan 2017 21:47:09 +0100 Subject: [PATCH 187/450] PublicSuffix::List#select is now private Note that this method is currently private, as you should not rely on it. Instead, the public interface is {#find}. The current internal algorithm allows to return all matching rules, but different data structures may not be able to do it, and instead would return only the match. For this reason, you should rely on {#find}. --- CHANGELOG.md | 3 ++- lib/public_suffix/list.rb | 12 +++++++----- test/unit/list_test.rb | 26 +++++++++++++------------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 720a6f61..3f5a393b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ #### master - CHANGED: `PublicSuffix::List#rules` is now protected. You should not rely on it as the internal rule representation is subject to change to optimize performances. -- CHANGED: Removed `PublicSuffix::List.clear`, it was an unnecessary accessor method. Use `PublicSuffix::List.default = nil` if you **really** need to reset the default list. You shouldn't. +- CHANGED: Removed `PublicSuffix::List.clear`, it was an unnecessary accessor method. Use `PublicSuffix::List.default = nil` if you **really** need to reset the default list. You shouldn't. +- CHANGED: `PublicSuffix::List#select` is now private. You should not use it, instead use ``PublicSuffix::List#find`. #### Release 2.0.5 diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 3494aec4..fdf7b64f 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -233,16 +233,16 @@ def find(name, default: default_rule, **options) # Selects all the rules matching given domain. # - # Internally, the lookup heavily rely on the `@indexes`. The input is split into labels, - # and we retriever from the index only the rules that end with the input label. After that, - # a sequential scan is performed. In most cases, where the number of rules for the same label - # is limited, this algorithm is efficient enough. - # # If `ignore_private` is set to true, the algorithm will skip the rules that are flagged as private domain. # Note that the rules will still be part of the loop. If you frequently need to access lists # ignoring the private domains, you should create a list that doesn't include these domains setting the # `private_domains: false` option when calling {.parse}. # + # Note that this method is currently private, as you should not rely on it. Instead, the public + # interface is {#find}. The current internal algorithm allows to return all matching rules, + # but different data structures may not be able to do it, and instead would return only the + # match. For this reason, you should rely on {#find}. + # # @param [String, #to_s] name The domain name. # @param [Boolean] ignore_private # @return [Array] @@ -255,6 +255,7 @@ def select(name, ignore_private: false) finder = finder.select { |rule| !rule.private } if ignore_private finder.to_a end + private :select # Gets the default rule. # @@ -265,6 +266,7 @@ def default_rule PublicSuffix::Rule.default end + protected attr_reader :rules diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 682d14ec..fcfd1d29 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -129,13 +129,13 @@ def test_find def test_select - assert_equal 2, list.select("british-library.uk").size + assert_equal 2, list.send(:select, "british-library.uk").size end def test_select_name_blank - assert_equal [], list.select(nil) - assert_equal [], list.select("") - assert_equal [], list.select(" ") + assert_equal [], list.send(:select, nil) + assert_equal [], list.send(:select, "") + assert_equal [], list.send(:select, " ") end def test_select_ignore_private @@ -143,17 +143,17 @@ def test_select_ignore_private list.add r1 = PublicSuffix::Rule.factory("io") list.add r2 = PublicSuffix::Rule.factory("example.io", private: true) - assert_equal list.select("foo.io"), [r1] - assert_equal list.select("example.io"), [r1, r2] - assert_equal list.select("foo.example.io"), [r1, r2] + assert_equal list.send(:select, "foo.io"), [r1] + assert_equal list.send(:select, "example.io"), [r1, r2] + assert_equal list.send(:select, "foo.example.io"), [r1, r2] - assert_equal list.select("foo.io", ignore_private: false), [r1] - assert_equal list.select("example.io", ignore_private: false), [r1, r2] - assert_equal list.select("foo.example.io", ignore_private: false), [r1, r2] + assert_equal list.send(:select, "foo.io", ignore_private: false), [r1] + assert_equal list.send(:select, "example.io", ignore_private: false), [r1, r2] + assert_equal list.send(:select, "foo.example.io", ignore_private: false), [r1, r2] - assert_equal list.select("foo.io", ignore_private: true), [r1] - assert_equal list.select("example.io", ignore_private: true), [r1] - assert_equal list.select("foo.example.io", ignore_private: true), [r1] + assert_equal list.send(:select, "foo.io", ignore_private: true), [r1] + assert_equal list.send(:select, "example.io", ignore_private: true), [r1] + assert_equal list.send(:select, "foo.example.io", ignore_private: true), [r1] end From 885b286dff6464efd0e2ac49ed4c74d1e05d1598 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 21 Jan 2017 21:52:34 -0800 Subject: [PATCH 188/450] Do not run benchmarks by default --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 58ec7635..a01fa164 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ cache: - bundler env: - - COVERALL=1 BENCHMARKS=1 + - COVERALL=1 matrix: allow_failures: From 601ba0cbd03edbfc2fa6bf73b2c43b8eea8da31c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 21 Jan 2017 22:48:02 -0800 Subject: [PATCH 189/450] Add more effective benchmark (find vs valid) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Valid requires to decompose the input, and adds an overhead. Instead, using #find I can better determine the cost of the #find call. ➜ publicsuffix-ruby git:(master) ✗ ruby benchmarks/bm_valid.rb Rehearsal ------------------------------------------------------------- NAME_SHORT 2.400000 0.010000 2.410000 ( 2.431881) NAME_SHORT (noprivate) 2.890000 0.050000 2.940000 ( 3.005929) NAME_MEDIUM 2.910000 0.090000 3.000000 ( 3.099855) NAME_MEDIUM (noprivate) 2.930000 0.020000 2.950000 ( 2.979649) NAME_LONG 2.710000 0.020000 2.730000 ( 2.768214) NAME_LONG (noprivate) 3.110000 0.030000 3.140000 ( 3.204438) NAME_WILD 1.910000 0.080000 1.990000 ( 2.086704) NAME_WILD (noprivate) 2.050000 0.030000 2.080000 ( 2.112060) NAME_EXCP 1.530000 0.010000 1.540000 ( 1.544326) NAME_EXCP (noprivate) 1.830000 0.010000 1.840000 ( 1.840148) IAAA 1.600000 0.000000 1.600000 ( 1.607783) IAAA (noprivate) 1.890000 0.000000 1.890000 ( 1.901052) IZZZ 1.510000 0.010000 1.520000 ( 1.517555) IZZZ (noprivate) 1.800000 0.010000 1.810000 ( 1.817985) PAAA 8.030000 0.090000 8.120000 ( 8.270579) PAAA (noprivate) 7.320000 0.020000 7.340000 ( 7.365341) PZZZ 1.870000 0.010000 1.880000 ( 1.885046) PZZZ (noprivate) 2.000000 0.010000 2.010000 ( 2.012714) JP 50.790000 0.330000 51.120000 ( 52.795887) JP (noprivate) 49.840000 0.310000 50.150000 ( 50.678130) IT 11.610000 0.100000 11.710000 ( 11.858061) IT (noprivate) 10.720000 0.010000 10.730000 ( 10.743938) COM 9.690000 0.020000 9.710000 ( 9.739030) COM (noprivate) 10.180000 0.030000 10.210000 ( 10.259466) -------------------------------------------------- total: 194.420000sec user system total real NAME_SHORT 2.190000 0.000000 2.190000 ( 2.200740) NAME_SHORT (noprivate) 2.460000 0.000000 2.460000 ( 2.468227) NAME_MEDIUM 2.300000 0.010000 2.310000 ( 2.304213) NAME_MEDIUM (noprivate) 3.150000 0.030000 3.180000 ( 3.232415) NAME_LONG 2.770000 0.020000 2.790000 ( 2.854338) NAME_LONG (noprivate) 2.760000 0.000000 2.760000 ( 2.766417) NAME_WILD 1.420000 0.010000 1.430000 ( 1.432541) NAME_WILD (noprivate) 1.780000 0.010000 1.790000 ( 1.795507) NAME_EXCP 1.430000 0.000000 1.430000 ( 1.437950) NAME_EXCP (noprivate) 1.670000 0.000000 1.670000 ( 1.671285) IAAA 1.540000 0.010000 1.550000 ( 1.542538) IAAA (noprivate) 1.820000 0.000000 1.820000 ( 1.831127) IZZZ 1.430000 0.010000 1.440000 ( 1.439348) IZZZ (noprivate) 1.810000 0.010000 1.820000 ( 1.845050) PAAA 7.600000 0.110000 7.710000 ( 7.848176) PAAA (noprivate) 6.850000 0.010000 6.860000 ( 6.860310) PZZZ 1.670000 0.000000 1.670000 ( 1.669032) PZZZ (noprivate) 1.890000 0.000000 1.890000 ( 1.897537) JP 45.650000 0.180000 45.830000 ( 46.127456) JP (noprivate) 47.030000 0.110000 47.140000 ( 47.385492) IT 10.480000 0.020000 10.500000 ( 10.515058) IT (noprivate) 10.610000 0.010000 10.620000 ( 10.638714) COM 10.310000 0.090000 10.400000 ( 10.540724) COM (noprivate) 11.030000 0.090000 11.120000 ( 11.441387) vs ➜ publicsuffix-ruby git:(master) ✗ ruby benchmarks/bm_find.rb Rehearsal ------------------------------------------------------------- NAME_SHORT 1.500000 0.010000 1.510000 ( 1.518221) NAME_SHORT (noprivate) 2.110000 0.030000 2.140000 ( 2.213987) NAME_MEDIUM 1.660000 0.000000 1.660000 ( 1.681097) NAME_MEDIUM (noprivate) 2.000000 0.010000 2.010000 ( 2.026092) NAME_LONG 1.710000 0.000000 1.710000 ( 1.717539) NAME_LONG (noprivate) 2.420000 0.020000 2.440000 ( 2.728341) NAME_WILD 0.630000 0.000000 0.630000 ( 0.633734) NAME_WILD (noprivate) 1.050000 0.000000 1.050000 ( 1.124908) NAME_EXCP 1.000000 0.010000 1.010000 ( 1.256310) NAME_EXCP (noprivate) 1.480000 0.010000 1.490000 ( 1.858576) IAAA 1.060000 0.000000 1.060000 ( 1.174612) IAAA (noprivate) 1.140000 0.010000 1.150000 ( 1.143543) IZZZ 0.610000 0.000000 0.610000 ( 0.612447) IZZZ (noprivate) 1.000000 0.000000 1.000000 ( 1.011670) PAAA 6.910000 0.040000 6.950000 ( 7.537147) PAAA (noprivate) 6.480000 0.020000 6.500000 ( 6.565181) PZZZ 0.810000 0.000000 0.810000 ( 0.822222) PZZZ (noprivate) 1.200000 0.000000 1.200000 ( 1.201767) JP 49.650000 0.330000 49.980000 ( 52.399795) JP (noprivate) 50.580000 0.540000 51.120000 ( 53.123797) IT 10.260000 0.090000 10.350000 ( 10.462243) IT (noprivate) 9.890000 0.010000 9.900000 ( 9.915310) COM 8.710000 0.020000 8.730000 ( 8.775702) COM (noprivate) 8.940000 0.010000 8.950000 ( 8.961991) -------------------------------------------------- total: 173.960000sec user system total real NAME_SHORT 1.410000 0.010000 1.420000 ( 1.415990) NAME_SHORT (noprivate) 1.760000 0.000000 1.760000 ( 1.762023) NAME_MEDIUM 1.570000 0.000000 1.570000 ( 1.575709) NAME_MEDIUM (noprivate) 1.930000 0.000000 1.930000 ( 1.929677) NAME_LONG 1.560000 0.010000 1.570000 ( 1.561451) NAME_LONG (noprivate) 1.880000 0.000000 1.880000 ( 1.885979) NAME_WILD 0.580000 0.000000 0.580000 ( 0.572888) NAME_WILD (noprivate) 0.880000 0.000000 0.880000 ( 0.882760) NAME_EXCP 0.640000 0.000000 0.640000 ( 0.641299) NAME_EXCP (noprivate) 0.990000 0.000000 0.990000 ( 0.992167) IAAA 0.720000 0.000000 0.720000 ( 0.720518) IAAA (noprivate) 1.120000 0.010000 1.130000 ( 1.138187) IZZZ 0.810000 0.020000 0.830000 ( 0.878696) IZZZ (noprivate) 1.200000 0.040000 1.240000 ( 1.296653) PAAA 6.820000 0.230000 7.050000 ( 7.303155) PAAA (noprivate) 7.340000 0.250000 7.590000 ( 7.853675) PZZZ 0.900000 0.000000 0.900000 ( 0.912295) PZZZ (noprivate) 1.180000 0.010000 1.190000 ( 1.199639) JP 48.180000 0.740000 48.920000 ( 50.066837) JP (noprivate) 49.560000 0.420000 49.980000 ( 51.103312) IT 10.330000 0.090000 10.420000 ( 10.592352) IT (noprivate) 10.430000 0.080000 10.510000 ( 10.563008) COM 8.860000 0.060000 8.920000 ( 8.960364) COM (noprivate) 10.010000 0.100000 10.110000 ( 10.248432) --- benchmarks/bm_find.rb | 51 +++++++++++---------- benchmarks/bm_valid.rb | 101 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 25 deletions(-) create mode 100644 benchmarks/bm_valid.rb diff --git a/benchmarks/bm_find.rb b/benchmarks/bm_find.rb index e06abbb1..29b30ff1 100644 --- a/benchmarks/bm_find.rb +++ b/benchmarks/bm_find.rb @@ -20,82 +20,83 @@ TIMES = (ARGV.first || 50_000).to_i # Initialize -PublicSuffix.valid?("example.com") +PublicSuffixList = PublicSuffix::List.default +PublicSuffixList.find("example.com") Benchmark.bmbm(25) do |x| x.report("NAME_SHORT") do - TIMES.times { PublicSuffix.valid?(NAME_SHORT) == true } + TIMES.times { PublicSuffixList.find(NAME_SHORT) != nil } end x.report("NAME_SHORT (noprivate)") do - TIMES.times { PublicSuffix.valid?(NAME_SHORT, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(NAME_SHORT, ignore_private: true) != nil } end x.report("NAME_MEDIUM") do - TIMES.times { PublicSuffix.valid?(NAME_MEDIUM) == true } + TIMES.times { PublicSuffixList.find(NAME_MEDIUM) != nil } end x.report("NAME_MEDIUM (noprivate)") do - TIMES.times { PublicSuffix.valid?(NAME_MEDIUM, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(NAME_MEDIUM, ignore_private: true) != nil } end x.report("NAME_LONG") do - TIMES.times { PublicSuffix.valid?(NAME_LONG) == true } + TIMES.times { PublicSuffixList.find(NAME_LONG) != nil } end x.report("NAME_LONG (noprivate)") do - TIMES.times { PublicSuffix.valid?(NAME_LONG, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(NAME_LONG, ignore_private: true) != nil } end x.report("NAME_WILD") do - TIMES.times { PublicSuffix.valid?(NAME_WILD) == true } + TIMES.times { PublicSuffixList.find(NAME_WILD) != nil } end x.report("NAME_WILD (noprivate)") do - TIMES.times { PublicSuffix.valid?(NAME_WILD, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(NAME_WILD, ignore_private: true) != nil } end x.report("NAME_EXCP") do - TIMES.times { PublicSuffix.valid?(NAME_EXCP) == true } + TIMES.times { PublicSuffixList.find(NAME_EXCP) != nil } end x.report("NAME_EXCP (noprivate)") do - TIMES.times { PublicSuffix.valid?(NAME_EXCP, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(NAME_EXCP, ignore_private: true) != nil } end x.report("IAAA") do - TIMES.times { PublicSuffix.valid?(IAAA) == true } + TIMES.times { PublicSuffixList.find(IAAA) != nil } end x.report("IAAA (noprivate)") do - TIMES.times { PublicSuffix.valid?(IAAA, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(IAAA, ignore_private: true) != nil } end x.report("IZZZ") do - TIMES.times { PublicSuffix.valid?(IZZZ) == true } + TIMES.times { PublicSuffixList.find(IZZZ) != nil } end x.report("IZZZ (noprivate)") do - TIMES.times { PublicSuffix.valid?(IZZZ, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(IZZZ, ignore_private: true) != nil } end x.report("PAAA") do - TIMES.times { PublicSuffix.valid?(PAAA) == true } + TIMES.times { PublicSuffixList.find(PAAA) != nil } end x.report("PAAA (noprivate)") do - TIMES.times { PublicSuffix.valid?(PAAA, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(PAAA, ignore_private: true) != nil } end x.report("PZZZ") do - TIMES.times { PublicSuffix.valid?(PZZZ) == true } + TIMES.times { PublicSuffixList.find(PZZZ) != nil } end x.report("PZZZ (noprivate)") do - TIMES.times { PublicSuffix.valid?(PZZZ, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(PZZZ, ignore_private: true) != nil } end x.report("JP") do - TIMES.times { PublicSuffix.valid?(JP) == true } + TIMES.times { PublicSuffixList.find(JP) != nil } end x.report("JP (noprivate)") do - TIMES.times { PublicSuffix.valid?(JP, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(JP, ignore_private: true) != nil } end x.report("IT") do - TIMES.times { PublicSuffix.valid?(IT) == true } + TIMES.times { PublicSuffixList.find(IT) != nil } end x.report("IT (noprivate)") do - TIMES.times { PublicSuffix.valid?(IT, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(IT, ignore_private: true) != nil } end x.report("COM") do - TIMES.times { PublicSuffix.valid?(COM) == true } + TIMES.times { PublicSuffixList.find(COM) != nil } end x.report("COM (noprivate)") do - TIMES.times { PublicSuffix.valid?(COM, ignore_private: true) == true } + TIMES.times { PublicSuffixList.find(COM, ignore_private: true) != nil } end end diff --git a/benchmarks/bm_valid.rb b/benchmarks/bm_valid.rb new file mode 100644 index 00000000..e06abbb1 --- /dev/null +++ b/benchmarks/bm_valid.rb @@ -0,0 +1,101 @@ +require 'benchmark' +require_relative '../lib/public_suffix' + +NAME_SHORT = "example.de" +NAME_MEDIUM = "www.subdomain.example.de" +NAME_LONG = "one.two.three.four.five.example.de" +NAME_WILD = "one.two.three.four.five.example.bd" +NAME_EXCP = "one.two.three.four.five.www.ck" + +IAAA = "one.two.three.four.five.example.ac" +IZZZ = "one.two.three.four.five.example.zone" + +PAAA = "one.two.three.four.five.example.beep.pl" +PZZZ = "one.two.three.four.five.example.now.sh" + +JP = "www.yokoshibahikari.chiba.jp" +IT = "one.two.three.four.five.example.it" +COM = "one.two.three.four.five.example.com" + +TIMES = (ARGV.first || 50_000).to_i + +# Initialize +PublicSuffix.valid?("example.com") + +Benchmark.bmbm(25) do |x| + x.report("NAME_SHORT") do + TIMES.times { PublicSuffix.valid?(NAME_SHORT) == true } + end + x.report("NAME_SHORT (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_SHORT, ignore_private: true) == true } + end + x.report("NAME_MEDIUM") do + TIMES.times { PublicSuffix.valid?(NAME_MEDIUM) == true } + end + x.report("NAME_MEDIUM (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_MEDIUM, ignore_private: true) == true } + end + x.report("NAME_LONG") do + TIMES.times { PublicSuffix.valid?(NAME_LONG) == true } + end + x.report("NAME_LONG (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_LONG, ignore_private: true) == true } + end + x.report("NAME_WILD") do + TIMES.times { PublicSuffix.valid?(NAME_WILD) == true } + end + x.report("NAME_WILD (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_WILD, ignore_private: true) == true } + end + x.report("NAME_EXCP") do + TIMES.times { PublicSuffix.valid?(NAME_EXCP) == true } + end + x.report("NAME_EXCP (noprivate)") do + TIMES.times { PublicSuffix.valid?(NAME_EXCP, ignore_private: true) == true } + end + + x.report("IAAA") do + TIMES.times { PublicSuffix.valid?(IAAA) == true } + end + x.report("IAAA (noprivate)") do + TIMES.times { PublicSuffix.valid?(IAAA, ignore_private: true) == true } + end + x.report("IZZZ") do + TIMES.times { PublicSuffix.valid?(IZZZ) == true } + end + x.report("IZZZ (noprivate)") do + TIMES.times { PublicSuffix.valid?(IZZZ, ignore_private: true) == true } + end + + x.report("PAAA") do + TIMES.times { PublicSuffix.valid?(PAAA) == true } + end + x.report("PAAA (noprivate)") do + TIMES.times { PublicSuffix.valid?(PAAA, ignore_private: true) == true } + end + x.report("PZZZ") do + TIMES.times { PublicSuffix.valid?(PZZZ) == true } + end + x.report("PZZZ (noprivate)") do + TIMES.times { PublicSuffix.valid?(PZZZ, ignore_private: true) == true } + end + + x.report("JP") do + TIMES.times { PublicSuffix.valid?(JP) == true } + end + x.report("JP (noprivate)") do + TIMES.times { PublicSuffix.valid?(JP, ignore_private: true) == true } + end + x.report("IT") do + TIMES.times { PublicSuffix.valid?(IT) == true } + end + x.report("IT (noprivate)") do + TIMES.times { PublicSuffix.valid?(IT, ignore_private: true) == true } + end + x.report("COM") do + TIMES.times { PublicSuffix.valid?(COM) == true } + end + x.report("COM (noprivate)") do + TIMES.times { PublicSuffix.valid?(COM, ignore_private: true) == true } + end +end From 20364c113c9dff62e763a8c70bc57edbce0bd26a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 21 Jan 2017 22:48:52 -0800 Subject: [PATCH 190/450] Fix $ bundle compilation error in Ruby 2.3 and 2.4 See https://github.com/sickill/rainbow/issues/48 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index a01fa164..d13db2e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ rvm: - jruby-9.1.0.0 before_install: + - gem update --system - gem install bundler cache: From 3550d1352b4e8c8e87379e5bf0b6ee39e32bc1a6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 7 Jan 2017 23:18:55 +0100 Subject: [PATCH 191/450] Compute the length of the rule without allocating an array Do not use additional space. It's enough to count the dots, no need to split the rule. --- lib/public_suffix/rule.rb | 43 ++++++++------------------------------- test/unit/rule_test.rb | 8 ++------ 2 files changed, 11 insertions(+), 40 deletions(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 7043edc9..d270e53d 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -99,6 +99,9 @@ class Base # @return [String] the rule definition attr_reader :value + # @return [String] the length of the rule + attr_reader :length + # @return [Boolean] true if the rule is a private domain attr_reader :private @@ -109,6 +112,7 @@ class Base # @param value [String] the value of the rule def initialize(value, private: false) @value = value.to_s + @length = @value.count(DOT) + 1 @private = private end @@ -158,11 +162,6 @@ def parts raise NotImplementedError end - # @abstract - def length - raise NotImplementedError - end - # @abstract # @param [String, #to_s] name The domain name to decompose # @return [Array] @@ -200,14 +199,6 @@ def parts @value.split(DOT) end - # Gets the length of this rule for comparison, - # represented by the number of dot-separated parts in the rule. - # - # @return [Integer] The length of the rule. - def length - @length ||= parts.length - end - end # Wildcard represents a wildcard rule (e.g. *.co.uk). @@ -215,12 +206,13 @@ class Wildcard < Base # Initializes a new rule from +definition+. # - # The wildcard "*" is removed from the value, as it's common - # for each wildcard rule. + # The wildcard "*" is removed from the value, + # as it's common for each wildcard rule. # # @param definition [String] the rule as defined in the PSL def initialize(definition, private: false) super(definition.to_s[2..-1], private: private) + @length += 1 # * counts as 1 end # Gets the original rule definition. @@ -248,15 +240,6 @@ def parts @value.split(DOT) end - # Gets the length of this rule for comparison, - # represented by the number of dot-separated parts in the rule - # plus 1 for the *. - # - # @return [Integer] The length of the rule. - def length - @length ||= parts.length + 1 # * counts as 1 - end - end # Exception represents an exception rule (e.g. !parliament.uk). @@ -264,8 +247,8 @@ class Exception < Base # Initializes a new rule from +definition+. # - # The bang ! is removed from the value, as it's common - # for each wildcard rule. + # The bang ! is removed from the value, + # as it's common for each exception rule. # # @param definition [String] the rule as defined in the PSL def initialize(definition, private: false) @@ -302,14 +285,6 @@ def parts @value.split(DOT)[1..-1] end - # Gets the length of this rule for comparison, - # represented by the number of dot-separated parts in the rule. - # - # @return [Integer] The length of the rule. - def length - @length ||= parts.length - end - end diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index f1c6ee5c..4ffb1d75 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -105,10 +105,6 @@ def test_match end - def test_length - assert_raises(NotImplementedError) { @klass.new("com").length } - end - def test_parts assert_raises(NotImplementedError) { @klass.new("com").parts } end @@ -172,8 +168,8 @@ def test_initialize def test_length - assert_equal 1, @klass.new("!british-library.uk").length - assert_equal 2, @klass.new("!foo.british-library.uk").length + assert_equal 2, @klass.new("!british-library.uk").length + assert_equal 3, @klass.new("!foo.british-library.uk").length end def test_parts From b71fdfd46900d4e63bc4342dacb60fe496f75dc7 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 21 Jan 2017 23:19:42 -0800 Subject: [PATCH 192/450] Reduce the length of certain domain, when not relevant MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before: ➜ publicsuffix-ruby git:(3550d13) ruby benchmarks/bm_valid.rb user system total real NAME_SHORT 2.280000 0.010000 2.290000 ( 2.298137) NAME_SHORT (noprivate) 2.570000 0.010000 2.580000 ( 2.589651) NAME_MEDIUM 2.390000 0.010000 2.400000 ( 2.411466) NAME_MEDIUM (noprivate) 2.700000 0.020000 2.720000 ( 2.721335) NAME_LONG 2.550000 0.010000 2.560000 ( 2.579820) NAME_LONG (noprivate) 2.800000 0.010000 2.810000 ( 2.824161) NAME_WILD 1.510000 0.010000 1.520000 ( 1.521867) NAME_WILD (noprivate) 1.780000 0.020000 1.800000 ( 1.810911) NAME_EXCP 1.510000 0.010000 1.520000 ( 1.526100) NAME_EXCP (noprivate) 1.780000 0.000000 1.780000 ( 1.779788) IAAA 1.520000 0.000000 1.520000 ( 1.523923) IAAA (noprivate) 2.090000 0.030000 2.120000 ( 2.145431) IZZZ 1.760000 0.010000 1.770000 ( 1.857560) IZZZ (noprivate) 1.800000 0.020000 1.820000 ( 1.830710) PAAA 7.960000 0.070000 8.030000 ( 8.211680) PAAA (noprivate) 7.830000 0.080000 7.910000 ( 8.069348) PZZZ 1.880000 0.020000 1.900000 ( 1.917670) PZZZ (noprivate) 2.070000 0.010000 2.080000 ( 2.116736) JP 48.060000 0.280000 48.340000 ( 49.707991) JP (noprivate) 47.620000 0.250000 47.870000 ( 48.146570) IT 11.100000 0.060000 11.160000 ( 11.208886) IT (noprivate) 11.550000 0.070000 11.620000 ( 11.692874) COM 10.580000 0.100000 10.680000 ( 10.779551) COM (noprivate) 10.400000 0.060000 10.460000 ( 10.522564) After: ➜ publicsuffix-ruby git:(master) ✗ ruby benchmarks/bm_valid.rb user system total real NAME_SHORT 2.140000 0.000000 2.140000 ( 2.137489) NAME_SHORT (noprivate) 2.460000 0.010000 2.470000 ( 2.469564) NAME_MEDIUM 2.280000 0.000000 2.280000 ( 2.281684) NAME_MEDIUM (noprivate) 2.520000 0.000000 2.520000 ( 2.527992) NAME_LONG 2.370000 0.000000 2.370000 ( 2.369214) NAME_LONG (noprivate) 2.570000 0.010000 2.580000 ( 2.576050) NAME_WILD 1.390000 0.000000 1.390000 ( 1.391516) NAME_WILD (noprivate) 1.680000 0.000000 1.680000 ( 1.686973) NAME_EXCP 1.380000 0.000000 1.380000 ( 1.383330) NAME_EXCP (noprivate) 1.690000 0.000000 1.690000 ( 1.689423) IAAA 1.380000 0.000000 1.380000 ( 1.382728) IAAA (noprivate) 1.630000 0.010000 1.640000 ( 1.637112) IZZZ 1.300000 0.000000 1.300000 ( 1.304215) IZZZ (noprivate) 1.550000 0.000000 1.550000 ( 1.552017) PAAA 7.030000 0.080000 7.110000 ( 7.190563) PAAA (noprivate) 6.890000 0.000000 6.890000 ( 6.900262) PZZZ 1.660000 0.010000 1.670000 ( 1.669444) PZZZ (noprivate) 1.850000 0.000000 1.850000 ( 1.855301) JP 46.620000 0.270000 46.890000 ( 47.472670) JP (noprivate) 47.270000 0.250000 47.520000 ( 48.135562) IT 10.350000 0.100000 10.450000 ( 10.601202) IT (noprivate) 10.900000 0.110000 11.010000 ( 11.222941) COM 8.910000 0.050000 8.960000 ( 9.020793) COM (noprivate) 9.310000 0.060000 9.370000 ( 9.451161) --- benchmarks/bm_find.rb | 8 ++++---- benchmarks/bm_valid.rb | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/benchmarks/bm_find.rb b/benchmarks/bm_find.rb index 29b30ff1..71f7a5fe 100644 --- a/benchmarks/bm_find.rb +++ b/benchmarks/bm_find.rb @@ -7,15 +7,15 @@ NAME_WILD = "one.two.three.four.five.example.bd" NAME_EXCP = "one.two.three.four.five.www.ck" -IAAA = "one.two.three.four.five.example.ac" -IZZZ = "one.two.three.four.five.example.zone" +IAAA = "www.example.ac" +IZZZ = "www.example.zone" PAAA = "one.two.three.four.five.example.beep.pl" PZZZ = "one.two.three.four.five.example.now.sh" JP = "www.yokoshibahikari.chiba.jp" -IT = "one.two.three.four.five.example.it" -COM = "one.two.three.four.five.example.com" +IT = "www.example.it" +COM = "www.example.com" TIMES = (ARGV.first || 50_000).to_i diff --git a/benchmarks/bm_valid.rb b/benchmarks/bm_valid.rb index e06abbb1..e690ac73 100644 --- a/benchmarks/bm_valid.rb +++ b/benchmarks/bm_valid.rb @@ -7,15 +7,15 @@ NAME_WILD = "one.two.three.four.five.example.bd" NAME_EXCP = "one.two.three.four.five.www.ck" -IAAA = "one.two.three.four.five.example.ac" -IZZZ = "one.two.three.four.five.example.zone" +IAAA = "www.example.ac" +IZZZ = "www.example.zone" PAAA = "one.two.three.four.five.example.beep.pl" PZZZ = "one.two.three.four.five.example.now.sh" JP = "www.yokoshibahikari.chiba.jp" -IT = "one.two.three.four.five.example.it" -COM = "one.two.three.four.five.example.com" +IT = "www.example.it" +COM = "www.example.com" TIMES = (ARGV.first || 50_000).to_i From 6f44736fa93cc63ca8267992ff14ad6e8bdc092b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 21 Jan 2017 23:43:34 -0800 Subject: [PATCH 193/450] Focus on #find vs #select --- benchmarks/bm_select.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 benchmarks/bm_select.rb diff --git a/benchmarks/bm_select.rb b/benchmarks/bm_select.rb new file mode 100644 index 00000000..e14039d7 --- /dev/null +++ b/benchmarks/bm_select.rb @@ -0,0 +1,26 @@ +require 'benchmark' +require_relative '../lib/public_suffix' + +JP = "www.yokoshibahikari.chiba.jp" + +TIMES = (ARGV.first || 50_000).to_i + +# Initialize +class PublicSuffix::List + public :select +end +PublicSuffixList = PublicSuffix::List.default +PublicSuffixList.find("example.jp") +PublicSuffixList.select("example.jp") + +Benchmark.bmbm(25) do |x| + x.report("JP select") do + TIMES.times { PublicSuffixList.select(JP) } + end + x.report("JP find") do + TIMES.times { PublicSuffixList.find(JP) } + end + # x.report("JP (noprivate)") do + # TIMES.times { PublicSuffixList.find(JP, ignore_private: true) != nil } + # end +end From 5ed8d0059a5bbbb86b4a5caa76c9d5b343ab739b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 Jan 2017 00:18:14 -0800 Subject: [PATCH 194/450] Use require_relative to load subfiles Otherwise, what can happen is that if you require the library without adding it to the load path AND the gem is installed, the main file will load the subfiles from the gem instead that from the same code. It happened for the benchmarks. require 'benchmark' require_relative '../lib/public_suffix' ... will load the file `lib/public_suffix` from this repo, but then `lib/public_suffix` will attempt to require the file `public_suffix/version` in your load path instead of ``lib/public_suffix/version` --- lib/public_suffix.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 150b9a75..ba96e860 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -4,11 +4,11 @@ # # Copyright (c) 2009-2017 Simone Carletti -require "public_suffix/domain" -require "public_suffix/version" -require "public_suffix/errors" -require "public_suffix/rule" -require "public_suffix/list" +require_relative "public_suffix/domain" +require_relative "public_suffix/version" +require_relative "public_suffix/errors" +require_relative "public_suffix/rule" +require_relative "public_suffix/list" # PublicSuffix is a Ruby domain name parser based on the Public Suffix List. # From 6d9666ac4a20bd59cd8a410895320d72ea840590 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 Jan 2017 00:18:37 -0800 Subject: [PATCH 195/450] More focus on slow executions --- benchmarks/bm_select.rb | 2 +- benchmarks/bm_select_incremental.rb | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 benchmarks/bm_select_incremental.rb diff --git a/benchmarks/bm_select.rb b/benchmarks/bm_select.rb index e14039d7..331e7c11 100644 --- a/benchmarks/bm_select.rb +++ b/benchmarks/bm_select.rb @@ -10,8 +10,8 @@ class PublicSuffix::List public :select end PublicSuffixList = PublicSuffix::List.default -PublicSuffixList.find("example.jp") PublicSuffixList.select("example.jp") +PublicSuffixList.find("example.jp") Benchmark.bmbm(25) do |x| x.report("JP select") do diff --git a/benchmarks/bm_select_incremental.rb b/benchmarks/bm_select_incremental.rb new file mode 100644 index 00000000..302a173b --- /dev/null +++ b/benchmarks/bm_select_incremental.rb @@ -0,0 +1,25 @@ +require 'benchmark' +require_relative '../lib/public_suffix' + +JP = "www.yokoshibahikari.chiba.jp" + +TIMES = (ARGV.first || 50_000).to_i + +# Initialize +class PublicSuffix::List + public :select +end +PublicSuffixList = PublicSuffix::List.default +PublicSuffixList.select("example.jp") + +Benchmark.bmbm(25) do |x| + x.report("select jp") do + TIMES.times { PublicSuffixList.select("jp") } + end + x.report("select example.jp") do + TIMES.times { PublicSuffixList.select("example.jp") } + end + x.report("select www.example.jp") do + TIMES.times { PublicSuffixList.select("www.example.jp") } + end +end From 6c868ec7611385f6e00bee19111eb5e054620199 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 Jan 2017 21:23:50 -0800 Subject: [PATCH 196/450] Reorganize benchmarks and profilers --- .rubocop.yml | 3 +- Gemfile | 2 +- test/benchmark_helper.rb | 4 -- {benchmarks => test/benchmarks}/bm_find.rb | 2 +- {benchmarks => test/benchmarks}/bm_select.rb | 2 +- .../benchmarks}/bm_select_incremental.rb | 2 +- {benchmarks => test/benchmarks}/bm_valid.rb | 2 +- test/performance_benchmark.rb | 38 ------------------- test/{ => profilers}/execution_profiler.rb | 2 +- .../initialization_profiler.rb | 2 +- 10 files changed, 9 insertions(+), 50 deletions(-) delete mode 100644 test/benchmark_helper.rb rename {benchmarks => test/benchmarks}/bm_find.rb (98%) rename {benchmarks => test/benchmarks}/bm_select.rb (93%) rename {benchmarks => test/benchmarks}/bm_select_incremental.rb (92%) rename {benchmarks => test/benchmarks}/bm_valid.rb (98%) delete mode 100644 test/performance_benchmark.rb rename test/{ => profilers}/execution_profiler.rb (83%) rename test/{ => profilers}/initialization_profiler.rb (78%) diff --git a/.rubocop.yml b/.rubocop.yml index fdd59c5d..b00938f5 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -11,7 +11,8 @@ AllCops: # Exclude artifacts - 'pkg/**/*' # Other - - 'benchmarks/**/*' + - 'test/benchmarks/**/*' + - 'test/profilers/**/*' Style/ClassAndModuleChildren: Exclude: diff --git a/Gemfile b/Gemfile index 97a73af6..087b2788 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ -source "http://rubygems.org" +source "https://rubygems.org" gemspec diff --git a/test/benchmark_helper.rb b/test/benchmark_helper.rb deleted file mode 100644 index 1e7fc1c9..00000000 --- a/test/benchmark_helper.rb +++ /dev/null @@ -1,4 +0,0 @@ -require "benchmark" - -$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) -require "public_suffix" diff --git a/benchmarks/bm_find.rb b/test/benchmarks/bm_find.rb similarity index 98% rename from benchmarks/bm_find.rb rename to test/benchmarks/bm_find.rb index 71f7a5fe..0bcfd42c 100644 --- a/benchmarks/bm_find.rb +++ b/test/benchmarks/bm_find.rb @@ -1,5 +1,5 @@ require 'benchmark' -require_relative '../lib/public_suffix' +require_relative "../../lib/public_suffix" NAME_SHORT = "example.de" NAME_MEDIUM = "www.subdomain.example.de" diff --git a/benchmarks/bm_select.rb b/test/benchmarks/bm_select.rb similarity index 93% rename from benchmarks/bm_select.rb rename to test/benchmarks/bm_select.rb index 331e7c11..66d908b8 100644 --- a/benchmarks/bm_select.rb +++ b/test/benchmarks/bm_select.rb @@ -1,5 +1,5 @@ require 'benchmark' -require_relative '../lib/public_suffix' +require_relative "../../lib/public_suffix" JP = "www.yokoshibahikari.chiba.jp" diff --git a/benchmarks/bm_select_incremental.rb b/test/benchmarks/bm_select_incremental.rb similarity index 92% rename from benchmarks/bm_select_incremental.rb rename to test/benchmarks/bm_select_incremental.rb index 302a173b..f002c827 100644 --- a/benchmarks/bm_select_incremental.rb +++ b/test/benchmarks/bm_select_incremental.rb @@ -1,5 +1,5 @@ require 'benchmark' -require_relative '../lib/public_suffix' +require_relative "../../lib/public_suffix" JP = "www.yokoshibahikari.chiba.jp" diff --git a/benchmarks/bm_valid.rb b/test/benchmarks/bm_valid.rb similarity index 98% rename from benchmarks/bm_valid.rb rename to test/benchmarks/bm_valid.rb index e690ac73..a484451f 100644 --- a/benchmarks/bm_valid.rb +++ b/test/benchmarks/bm_valid.rb @@ -1,5 +1,5 @@ require 'benchmark' -require_relative '../lib/public_suffix' +require_relative "../../lib/public_suffix" NAME_SHORT = "example.de" NAME_MEDIUM = "www.subdomain.example.de" diff --git a/test/performance_benchmark.rb b/test/performance_benchmark.rb deleted file mode 100644 index aa935fd9..00000000 --- a/test/performance_benchmark.rb +++ /dev/null @@ -1,38 +0,0 @@ -require_relative "benchmark_helper" - -iterations = 100_000 - -# force load -list = PublicSuffix::List.default - -Benchmark.bmbm do |bm| - bm.report "Top level TLD" do - iterations.times do - PublicSuffix.domain("example.com", list) - end - end - - bm.report "Top level TLD (subdomain)" do - iterations.times do - PublicSuffix.domain("www.example.com", list) - end - end - - bm.report "Unlisted TLD" do - iterations.times do - PublicSuffix.domain("example.example", list) - end - end - - bm.report "Unlisted TLD (subdomain)" do - iterations.times do - PublicSuffix.domain("www.example.example", list) - end - end - - bm.report "Crazy suffix" do - iterations.times do - PublicSuffix.domain("a.b.ide.kyoto.jp", list) - end - end -end diff --git a/test/execution_profiler.rb b/test/profilers/execution_profiler.rb similarity index 83% rename from test/execution_profiler.rb rename to test/profilers/execution_profiler.rb index 4504bb50..228cd120 100644 --- a/test/execution_profiler.rb +++ b/test/profilers/execution_profiler.rb @@ -1,4 +1,4 @@ -$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) +$LOAD_PATH.unshift File.expand_path("../../lib", __dir__) require "memory_profiler" require "public_suffix" diff --git a/test/initialization_profiler.rb b/test/profilers/initialization_profiler.rb similarity index 78% rename from test/initialization_profiler.rb rename to test/profilers/initialization_profiler.rb index e9469e6d..008b1e75 100644 --- a/test/initialization_profiler.rb +++ b/test/profilers/initialization_profiler.rb @@ -1,4 +1,4 @@ -$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) +$LOAD_PATH.unshift File.expand_path("../../lib", __dir__) require "memory_profiler" require "public_suffix" From 9cc1f40cff7657d6862eb4f62aa01d55df453689 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 Jan 2017 21:26:30 -0800 Subject: [PATCH 197/450] Reduce string allocation --- lib/public_suffix/rule.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index d270e53d..458a8867 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -154,7 +154,7 @@ def match?(name) # we need to properly walk the input and skip parts according # to wildcard component. diff = name.chomp(value) - diff.empty? || diff[-1] == "." + diff.empty? || diff[-1] == DOT end # @abstract From 60bebd4113d61096d521d657cb5390e4f67d23fa Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 Jan 2017 22:15:13 -0800 Subject: [PATCH 198/450] Deal with Minitest assert_nil warnings See https://github.com/seattlerb/minitest/commit/922bc9151a622cb3ef0b9f170aa09c3bb72c7eb8 --- test/acceptance_test.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index c7411341..147f41f0 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -19,7 +19,11 @@ def test_valid trd, sld, tld = results assert_equal tld, parsed.tld, "Invalid tld for `#{name}`" assert_equal sld, parsed.sld, "Invalid sld for `#{name}`" - assert_equal trd, parsed.trd, "Invalid trd for `#{name}`" + if trd.nil? + assert_nil parsed.trd, "Invalid trd for `#{name}`" + else + assert_equal trd, parsed.trd, "Invalid trd for `#{name}`" + end assert_equal domain, PublicSuffix.domain(input) assert PublicSuffix.valid?(input) @@ -93,7 +97,11 @@ def test_ignore_case def test_ignore_private # test domain and parse INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| - assert_equal expected, PublicSuffix.domain(given, ignore_private: ignore_private) + if expected.nil? + assert_nil PublicSuffix.domain(given, ignore_private: ignore_private) + else + assert_equal expected, PublicSuffix.domain(given, ignore_private: ignore_private) + end end # test valid? INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| From 010c60b2875ac3a7065df8c0c487b1e5380a5176 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 23 Jan 2017 18:17:38 -0800 Subject: [PATCH 199/450] Add tests to cover #each --- test/unit/list_test.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index fcfd1d29..5ef4de4c 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -31,6 +31,31 @@ def test_equality_with_internals assert_equal PublicSuffix::List.new.add(rule), PublicSuffix::List.new.add(rule) end + def test_each_without_block + list = PublicSuffix::List.parse(< Date: Mon, 23 Jan 2017 18:22:22 -0800 Subject: [PATCH 200/450] PublicSuffix::List is no longer enumerable Although the list is still a collection of rules, the idea is that the internal list representation is shifting away from a simple collection, and looping over rules is not only discouraged but it may actually be impossible in the future. Moreover, including Enumerable will introduce a bunch of methods. Instead, if you really need to iterate over the collection, simply use #each that returns an Enumerator. --- CHANGELOG.md | 2 +- lib/public_suffix/list.rb | 3 --- test/unit/list_test.rb | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f5a393b..ec8be7fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ - CHANGED: `PublicSuffix::List#rules` is now protected. You should not rely on it as the internal rule representation is subject to change to optimize performances. - CHANGED: Removed `PublicSuffix::List.clear`, it was an unnecessary accessor method. Use `PublicSuffix::List.default = nil` if you **really** need to reset the default list. You shouldn't. - CHANGED: `PublicSuffix::List#select` is now private. You should not use it, instead use ``PublicSuffix::List#find`. - +- CHANGED: `PublicSuffix::List` no longer implements Enumerable. Instead, use `#each` to loop over, or get an Enumerator. #### Release 2.0.5 diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index fdf7b64f..549d35c6 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -35,10 +35,7 @@ module PublicSuffix # The {PublicSuffix::List.default} rule list is used # to tokenize and validate a domain. # - # {PublicSuffix::List} implements +Enumerable+ module. - # class List - include Enumerable DEFAULT_LIST_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "list.txt") diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 5ef4de4c..15d3e6ca 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -224,7 +224,7 @@ def test_self_parse assert_equal 4, list.size rules = %w( com *.uk !british-library.uk blogspot.com ).map { |name| PublicSuffix::Rule.factory(name) } - assert_equal rules, list.to_a + assert_equal rules, list.each.to_a # private domains assert_equal false, list.find("com").private From 8f450cbc5fa0ec9dd626cd1fcf6ae696f5e9e853 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 23 Jan 2017 18:50:35 -0800 Subject: [PATCH 201/450] I need an execution profiler for a single find --- test/profilers/execution_profiler.rb | 1 - test/profilers/execution_profiler_jp.rb | 13 +++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 test/profilers/execution_profiler_jp.rb diff --git a/test/profilers/execution_profiler.rb b/test/profilers/execution_profiler.rb index 228cd120..8ed6d3c6 100644 --- a/test/profilers/execution_profiler.rb +++ b/test/profilers/execution_profiler.rb @@ -7,7 +7,6 @@ report = MemoryProfiler.report do PublicSuffix.domain("www.example.com") - PublicSuffix.domain("a.b.ide.kyoto.jp") end report.pretty_print diff --git a/test/profilers/execution_profiler_jp.rb b/test/profilers/execution_profiler_jp.rb new file mode 100644 index 00000000..f1f4833b --- /dev/null +++ b/test/profilers/execution_profiler_jp.rb @@ -0,0 +1,13 @@ +$LOAD_PATH.unshift File.expand_path("../../lib", __dir__) + +require "memory_profiler" +require "public_suffix" + +PublicSuffix::List.default + +report = MemoryProfiler.report do + PublicSuffix.domain("a.b.ide.kyoto.jp") +end + +report.pretty_print +# report.pretty_print(to_file: 'profiler-%s-%d.txt' % [ARGV[0], Time.now.to_i]) From dec53e624d4aa08517be6b7261cf4191d7ac2a91 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 23 Jan 2017 18:54:28 -0800 Subject: [PATCH 202/450] Add more profilers --- .../{execution_profiler.rb => domain_profiler.rb} | 1 - .../{execution_profiler_jp.rb => find_profiler.rb} | 3 +-- test/profilers/find_profiler_jp.rb | 12 ++++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) rename test/profilers/{execution_profiler.rb => domain_profiler.rb} (74%) rename test/profilers/{execution_profiler_jp.rb => find_profiler.rb} (61%) create mode 100644 test/profilers/find_profiler_jp.rb diff --git a/test/profilers/execution_profiler.rb b/test/profilers/domain_profiler.rb similarity index 74% rename from test/profilers/execution_profiler.rb rename to test/profilers/domain_profiler.rb index 8ed6d3c6..1ed10500 100644 --- a/test/profilers/execution_profiler.rb +++ b/test/profilers/domain_profiler.rb @@ -10,4 +10,3 @@ end report.pretty_print -# report.pretty_print(to_file: 'profiler-%s-%d.txt' % [ARGV[0], Time.now.to_i]) diff --git a/test/profilers/execution_profiler_jp.rb b/test/profilers/find_profiler.rb similarity index 61% rename from test/profilers/execution_profiler_jp.rb rename to test/profilers/find_profiler.rb index f1f4833b..53d28ebc 100644 --- a/test/profilers/execution_profiler_jp.rb +++ b/test/profilers/find_profiler.rb @@ -6,8 +6,7 @@ PublicSuffix::List.default report = MemoryProfiler.report do - PublicSuffix.domain("a.b.ide.kyoto.jp") + PublicSuffix::List.default.find("www.example.com") end report.pretty_print -# report.pretty_print(to_file: 'profiler-%s-%d.txt' % [ARGV[0], Time.now.to_i]) diff --git a/test/profilers/find_profiler_jp.rb b/test/profilers/find_profiler_jp.rb new file mode 100644 index 00000000..65c13fea --- /dev/null +++ b/test/profilers/find_profiler_jp.rb @@ -0,0 +1,12 @@ +$LOAD_PATH.unshift File.expand_path("../../lib", __dir__) + +require "memory_profiler" +require "public_suffix" + +PublicSuffix::List.default + +report = MemoryProfiler.report do + PublicSuffix::List.default.find("a.b.ide.kyoto.jp") +end + +report.pretty_print From 6f99ea0a3c2921cf451ce35f53a86f6980347870 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 7 Jan 2017 21:55:07 +0100 Subject: [PATCH 203/450] Change lookup algorithm to Hash The Hash doesn't require manual reindexing when new rules are added. Moreover, the Hash-based algorithm has almost O(1) lookup time. Actually, the lookup time is O(k), where k is the number of parts in the input string. find("www.example.com") -> k = 2 find("www.example.com") -> k = 3 find("www.subdomain.example.com") -> k = 4 It's fair to consider that the average number of parts is 3, and hostnames longer than 5 parts are quite uncommon. Note that the Hash-based lookup is highly influenced by whatever underlying Hash implementation is provided by the programming language. A Perfect Hash would be preferable in terms of lookup time as it offers real O(1) lookup time complexity (whereas a dynamic Hash is avg O(1)), however a Perfect Hash would require a computation of a perfect hashing function, without considering that it would not allow the flexibility of adding/removing rules at runtime. --- lib/public_suffix/list.rb | 85 +++++++++++++-------------------------- test/unit/list_test.rb | 42 +------------------ 2 files changed, 31 insertions(+), 96 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 549d35c6..3cc411c0 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -90,7 +90,7 @@ def self.parse(input, private_domains: true) next else - list.add(Rule.factory(line, private: section == 2), reindex: false) + list.add(Rule.factory(line, private: section == 2)) end end @@ -102,34 +102,9 @@ def self.parse(input, private_domains: true) # # @yield [self] Yields on self. # @yieldparam [PublicSuffix::List] self The newly created instance. - # def initialize - @rules = [] + @rules = {} yield(self) if block_given? - reindex! - end - - - # Creates a naive index for +@rules+. Just a hash that will tell - # us where the elements of +@rules+ are relative to its first - # {PublicSuffix::Rule::Base#labels} element. - # - # For instance if @rules[5] and @rules[4] are the only elements of the list - # where Rule#labels.first is 'us' @indexes['us'] #=> [5,4], that way in - # select we can avoid mapping every single rule against the candidate domain. - def reindex! - @indexes = {} - @rules.each_with_index do |rule, index| - tld = Domain.name_to_labels(rule.value).last - @indexes[tld] ||= [] - @indexes[tld] << index - end - end - - # Gets the naive index, a hash that with the keys being the first label of - # every rule pointing to an array of integers (indexes of the rules in @rules). - def indexes - @indexes.dup end @@ -139,9 +114,7 @@ def indexes # {PublicSuffix::List} and each +PublicSuffix::Rule::*+ # in list one is available in list two, in the same order. # - # @param [PublicSuffix::List] other - # The List to compare. - # + # @param other [PublicSuffix::List] The List to compare. # @return [Boolean] def ==(other) return false unless other.is_a?(List) @@ -150,31 +123,22 @@ def ==(other) alias eql? == # Iterates each rule in the list. - def each(*args, &block) - @rules.each(*args, &block) + def each(&block) + @rules.each_value(&block) end # Adds the given object to the list and optionally refreshes the rule index. # - # @param [PublicSuffix::Rule::*] rule - # The rule to add to the list. - # @param [Boolean] reindex - # Set to true to recreate the rule index - # after the rule has been added to the list. - # + # @param rule [PublicSuffix::Rule::*] The rule to add to the list. # @return [self] - # - # @see #reindex! - # - def add(rule, reindex: true) - @rules << rule - reindex! if reindex + def add(rule) + @rules[rule.value] = rule self end alias << add - # Gets the number of elements in the list. + # Gets the number of rules in the list. # # @return [Integer] def size @@ -188,12 +152,11 @@ def empty? @rules.empty? end - # Removes all elements. + # Removes all rules. # # @return [self] def clear @rules.clear - reindex! self end @@ -217,8 +180,8 @@ def clear # which directly match the labels of the prevailing rule (joined by dots). # 7. The registered domain is the public suffix plus one additional label. # - # @param name [String, #to_s] The domain name. - # @param [PublicSuffix::Rule::*] default The default rule to return in case no rule matches. + # @param name [String, #to_s] The domain name + # @param default [PublicSuffix::Rule::*] The default rule to return in case no rule matches # @return [PublicSuffix::Rule::*] def find(name, default: default_rule, **options) rule = select(name, **options).inject do |l, r| @@ -240,17 +203,27 @@ def find(name, default: default_rule, **options) # but different data structures may not be able to do it, and instead would return only the # match. For this reason, you should rely on {#find}. # - # @param [String, #to_s] name The domain name. - # @param [Boolean] ignore_private + # @param name [String, #to_s] The domain name + # @param ignore_private [Boolean] # @return [Array] def select(name, ignore_private: false) name = name.to_s - indices = (@indexes[Domain.name_to_labels(name).last] || []) - finder = @rules.values_at(*indices).lazy - finder = finder.select { |rule| rule.match?(name) } - finder = finder.select { |rule| !rule.private } if ignore_private - finder.to_a + parts = name.split(".").reverse! + index = 0 + query = parts[index] + rules = [] + + loop do + match = @rules[query] + rules << match if !match.nil? && (ignore_private == false || match.private == false) + + index += 1 + break if index >= parts.size + query = parts[index] + "." + query + end + + rules end private :select diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 15d3e6ca..9af4efce 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -16,10 +16,6 @@ def test_initialize assert_equal 0, @list.size end - def test_initialize_indexes - assert_equal({}, @list.indexes) - end - def test_equality_with_self list = PublicSuffix::List.new @@ -57,8 +53,8 @@ def test_each_with_block def test_add - assert_equal @list, @list.add(PublicSuffix::Rule.factory("")) - assert_equal @list, @list << PublicSuffix::Rule.factory("") + assert_equal @list, @list.add(PublicSuffix::Rule.factory("foo")) + assert_equal @list, @list << PublicSuffix::Rule.factory("bar") assert_equal 2, @list.size end @@ -72,13 +68,6 @@ def test_add_should_recreate_index assert_equal PublicSuffix::Rule.factory("net"), @list.find("google.net") end - def test_add_should_not_duplicate_indices - @list = PublicSuffix::List.parse("com") - @list.add(PublicSuffix::Rule.factory("net")) - - assert_equal @list.indexes["com"], [0] - end - def test_empty? assert @list.empty? @list.add(PublicSuffix::Rule.factory("")) @@ -231,33 +220,6 @@ def test_self_parse assert_equal true, list.find("blogspot.com").private end - def test_self_parse_indexes - list = PublicSuffix::List.parse(< [0, 3], "uk" => [1, 2] }, list.indexes) - end - private From f88e617d730eb7a7ff6c4dbf58feafd3d5d6a4ab Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 7 Jan 2017 22:55:37 +0100 Subject: [PATCH 204/450] Experiment with different hostname-to-names algorithms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ➜ publicsuffix-ruby git:(thesis-hash) ✗ ruby benchmarks/bm_parts.rb Warming up -------------------------------------- tokenizer1 26.384k i/100ms tokenizer2 26.571k i/100ms tokenizer3 32.293k i/100ms tokenizer4 27.595k i/100ms Calculating ------------------------------------- tokenizer1 310.488k (± 6.6%) i/s - 1.557M in 5.035961s tokenizer2 308.801k (± 8.3%) i/s - 1.541M in 5.027643s tokenizer3 378.716k (± 5.3%) i/s - 1.905M in 5.045422s tokenizer4 305.493k (± 9.6%) i/s - 1.518M in 5.018550s Comparison: tokenizer3: 378716.5 i/s tokenizer1: 310488.3 i/s - 1.22x slower tokenizer2: 308800.6 i/s - 1.23x slower tokenizer4: 305493.5 i/s - 1.24x slower --- benchmarks/bm_names.rb | 91 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 benchmarks/bm_names.rb diff --git a/benchmarks/bm_names.rb b/benchmarks/bm_names.rb new file mode 100644 index 00000000..36b2bce3 --- /dev/null +++ b/benchmarks/bm_names.rb @@ -0,0 +1,91 @@ +require 'benchmark/ips' + +STRING = "www.subdomain.example.com" +ARRAY = %w( + com + example.com + subdomain.example.com + www.subdomain.example.com +) + +def tokenizer1(string) + parts = string.split(".").reverse! + index = 0 + query = parts[index] + names = [] + + loop do + names << query + + index += 1 + break if index >= parts.size + query = parts[index] + "." + query + end + names +end + +def tokenizer2(string) + parts = string.split(".") + index = parts.size - 1 + query = parts[index] + names = [] + + loop do + names << query + + index -= 1 + break if index < 0 + query = parts[index] + "." + query + end + names +end + +def tokenizer3(string) + isx = string.size + idx = string.size - 1 + names = [] + + loop do + isx = string.rindex(".", isx - 1) || -1 + names << string[isx + 1, idx - isx] + + break if isx <= 0 + end + names +end + +def tokenizer4(string) + isx = string.size + idx = string.size - 1 + names = [] + + loop do + isx = string.rindex(".", isx - 1) || -1 + names << string[(isx+1)..idx] + + break if isx <= 0 + end + names +end + +(x = tokenizer1(STRING)) == ARRAY or fail("tokenizer1 failed: #{x.inspect}") +(x = tokenizer2(STRING)) == ARRAY or fail("tokenizer2 failed: #{x.inspect}") +(x = tokenizer3(STRING)) == ARRAY or fail("tokenizer3 failed: #{x.inspect}") +(x = tokenizer4(STRING)) == ARRAY or fail("tokenizer4 failed: #{x.inspect}") + +Benchmark.ips do |x| + x.report("tokenizer1") do + tokenizer1(STRING).is_a?(Array) + end + x.report("tokenizer2") do + tokenizer2(STRING).is_a?(Array) + end + x.report("tokenizer3") do + tokenizer3(STRING).is_a?(Array) + end + x.report("tokenizer4") do + tokenizer4(STRING).is_a?(Array) + end + + x.compare! +end From d97e513057f0e35bb828970dd1d973202e0de8ef Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 Jan 2017 21:02:34 -0800 Subject: [PATCH 205/450] Naive index vs Hash benchmarks (benchmarks) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After I finally realize why the benchmarks were still using the old code, and fixing the issue in 5ed8d00, here's the new benchmarks that compare the existing implementation with the new lookup based on Hash. Using the naive indexing: ➜ publicsuffix-ruby git:(master) ruby benchmarks/bm_find.rb Rehearsal ------------------------------------------------------------- NAME_SHORT 1.550000 0.010000 1.560000 ( 1.563616) NAME_SHORT (noprivate) 2.060000 0.020000 2.080000 ( 2.117548) NAME_MEDIUM 1.720000 0.020000 1.740000 ( 1.760489) NAME_MEDIUM (noprivate) 2.430000 0.020000 2.450000 ( 2.649166) NAME_LONG 1.630000 0.000000 1.630000 ( 1.643268) NAME_LONG (noprivate) 2.210000 0.020000 2.230000 ( 2.262352) NAME_WILD 0.600000 0.000000 0.600000 ( 0.601043) NAME_WILD (noprivate) 1.320000 0.070000 1.390000 ( 1.475682) NAME_EXCP 0.940000 0.060000 1.000000 ( 1.071000) NAME_EXCP (noprivate) 1.120000 0.010000 1.130000 ( 1.136978) IAAA 0.690000 0.000000 0.690000 ( 0.694769) IAAA (noprivate) 1.010000 0.010000 1.020000 ( 1.011105) IZZZ 0.560000 0.000000 0.560000 ( 0.569191) IZZZ (noprivate) 0.900000 0.000000 0.900000 ( 0.895128) PAAA 7.310000 0.090000 7.400000 ( 8.036596) PAAA (noprivate) 7.910000 0.080000 7.990000 ( 8.450394) PZZZ 1.060000 0.000000 1.060000 ( 1.109186) PZZZ (noprivate) 1.390000 0.010000 1.400000 ( 1.411946) JP 50.590000 0.390000 50.980000 ( 52.698865) JP (noprivate) 49.840000 0.230000 50.070000 ( 50.385524) IT 9.440000 0.020000 9.460000 ( 9.502403) IT (noprivate) 9.940000 0.030000 9.970000 ( 10.008055) COM 8.610000 0.030000 8.640000 ( 8.657849) COM (noprivate) 9.330000 0.130000 9.460000 ( 9.700029) -------------------------------------------------- total: 175.410000sec user system total real NAME_SHORT 1.580000 0.000000 1.580000 ( 1.588811) NAME_SHORT (noprivate) 2.000000 0.010000 2.010000 ( 2.024544) NAME_MEDIUM 1.960000 0.020000 1.980000 ( 2.012659) NAME_MEDIUM (noprivate) 2.150000 0.020000 2.170000 ( 2.193273) NAME_LONG 1.660000 0.000000 1.660000 ( 1.666938) NAME_LONG (noprivate) 2.010000 0.000000 2.010000 ( 2.018177) NAME_WILD 0.600000 0.000000 0.600000 ( 0.601061) NAME_WILD (noprivate) 0.920000 0.000000 0.920000 ( 0.920315) NAME_EXCP 0.700000 0.010000 0.710000 ( 0.708406) NAME_EXCP (noprivate) 1.260000 0.010000 1.270000 ( 1.298971) IAAA 0.810000 0.010000 0.820000 ( 0.829160) IAAA (noprivate) 1.180000 0.000000 1.180000 ( 1.207569) IZZZ 0.640000 0.010000 0.650000 ( 0.646752) IZZZ (noprivate) 1.020000 0.000000 1.020000 ( 1.037327) PAAA 6.180000 0.020000 6.200000 ( 6.227082) PAAA (noprivate) 6.970000 0.050000 7.020000 ( 7.089971) PZZZ 0.930000 0.000000 0.930000 ( 0.937254) PZZZ (noprivate) 1.310000 0.010000 1.320000 ( 1.324235) JP 47.930000 0.200000 48.130000 ( 48.440196) JP (noprivate) 48.440000 0.260000 48.700000 ( 49.110888) IT 9.660000 0.090000 9.750000 ( 9.874755) IT (noprivate) 9.950000 0.070000 10.020000 ( 10.163920) COM 7.930000 0.020000 7.950000 ( 7.986893) COM (noprivate) 8.170000 0.010000 8.180000 ( 8.186619) Using Hash: ➜ publicsuffix-ruby git:(thesis-hash) ruby benchmarks/bm_find.rb Rehearsal ------------------------------------------------------------- NAME_SHORT 0.310000 0.000000 0.310000 ( 0.363447) NAME_SHORT (noprivate) 0.360000 0.000000 0.360000 ( 0.402509) NAME_MEDIUM 0.320000 0.000000 0.320000 ( 0.317237) NAME_MEDIUM (noprivate) 0.410000 0.000000 0.410000 ( 0.413092) NAME_LONG 0.400000 0.000000 0.400000 ( 0.396608) NAME_LONG (noprivate) 0.510000 0.000000 0.510000 ( 0.510915) NAME_WILD 0.390000 0.000000 0.390000 ( 0.393804) NAME_WILD (noprivate) 0.510000 0.010000 0.520000 ( 0.507487) NAME_EXCP 0.400000 0.000000 0.400000 ( 0.401723) NAME_EXCP (noprivate) 0.520000 0.000000 0.520000 ( 0.525549) IAAA 0.240000 0.000000 0.240000 ( 0.244243) IAAA (noprivate) 0.360000 0.000000 0.360000 ( 0.359558) IZZZ 0.250000 0.000000 0.250000 ( 0.249716) IZZZ (noprivate) 0.360000 0.000000 0.360000 ( 0.356862) PAAA 0.440000 0.000000 0.440000 ( 0.445464) PAAA (noprivate) 0.590000 0.000000 0.590000 ( 0.591834) PZZZ 0.450000 0.000000 0.450000 ( 0.446044) PZZZ (noprivate) 0.520000 0.000000 0.520000 ( 0.524458) JP 0.320000 0.000000 0.320000 ( 0.327063) JP (noprivate) 0.430000 0.000000 0.430000 ( 0.430906) IT 0.270000 0.000000 0.270000 ( 0.265015) IT (noprivate) 0.340000 0.000000 0.340000 ( 0.345299) COM 0.250000 0.000000 0.250000 ( 0.244028) COM (noprivate) 0.340000 0.010000 0.350000 ( 0.343862) ---------------------------------------------------- total: 9.310000sec user system total real NAME_SHORT 0.220000 0.000000 0.220000 ( 0.221509) NAME_SHORT (noprivate) 0.320000 0.000000 0.320000 ( 0.329044) NAME_MEDIUM 0.290000 0.000000 0.290000 ( 0.296088) NAME_MEDIUM (noprivate) 0.390000 0.000000 0.390000 ( 0.393592) NAME_LONG 0.420000 0.000000 0.420000 ( 0.419251) NAME_LONG (noprivate) 0.500000 0.000000 0.500000 ( 0.499873) NAME_WILD 0.420000 0.000000 0.420000 ( 0.421002) NAME_WILD (noprivate) 0.480000 0.000000 0.480000 ( 0.485180) NAME_EXCP 0.400000 0.000000 0.400000 ( 0.401010) NAME_EXCP (noprivate) 0.510000 0.000000 0.510000 ( 0.506889) IAAA 0.250000 0.000000 0.250000 ( 0.257035) IAAA (noprivate) 0.350000 0.000000 0.350000 ( 0.352895) IZZZ 0.250000 0.000000 0.250000 ( 0.250804) IZZZ (noprivate) 0.350000 0.010000 0.360000 ( 0.352272) PAAA 0.440000 0.000000 0.440000 ( 0.444238) PAAA (noprivate) 0.540000 0.000000 0.540000 ( 0.549019) PZZZ 0.440000 0.000000 0.440000 ( 0.449137) PZZZ (noprivate) 0.550000 0.000000 0.550000 ( 0.559688) JP 0.330000 0.000000 0.330000 ( 0.337413) JP (noprivate) 0.450000 0.010000 0.460000 ( 0.458545) IT 0.240000 0.000000 0.240000 ( 0.247337) IT (noprivate) 0.350000 0.000000 0.350000 ( 0.351233) COM 0.260000 0.000000 0.260000 ( 0.261882) COM (noprivate) 0.340000 0.000000 0.340000 ( 0.347857) --- test/.empty | 1 + 1 file changed, 1 insertion(+) create mode 100644 test/.empty diff --git a/test/.empty b/test/.empty new file mode 100644 index 00000000..9ae9e762 --- /dev/null +++ b/test/.empty @@ -0,0 +1 @@ +# This is an empty file I use to force a non-empty commit when I only need to store notes From 4bce5ae764cf65bb6050b79af34fd3a590be59bf Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 Jan 2017 21:35:43 -0800 Subject: [PATCH 206/450] Naive index vs Hash benchmarks (profilers) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using the naive indexing: ➜ publicsuffix-ruby git:(master) ruby test/profilers/execution_profiler.rb Total allocated: 204162 bytes (4420 objects) Total retained: 0 bytes (0 objects) allocated memory by gem ----------------------------------- 204002 publicsuffix-ruby/lib 160 other allocated memory by class ----------------------------------- 177036 String 18416 Array 2560 Hash 2134 Regexp 1168 RubyVM::Env 1120 MatchData 800 Proc 576 Enumerator::Lazy 96 Enumerator::Generator 96 Enumerator::Yielder 80 PublicSuffix::Domain 80 PublicSuffix::Rule::Wildcard allocated objects by gem ----------------------------------- 4416 publicsuffix-ruby/lib 4 other allocated objects by class ----------------------------------- 4332 String 32 Array 16 Hash 10 Proc 10 RubyVM::Env 4 Enumerator::Lazy 4 MatchData 4 Regexp 2 Enumerator::Generator 2 Enumerator::Yielder 2 PublicSuffix::Domain 2 PublicSuffix::Rule::Wildcard retained memory by gem ----------------------------------- NO DATA retained memory by file ----------------------------------- NO DATA retained memory by location ----------------------------------- NO DATA retained memory by class ----------------------------------- NO DATA retained objects by gem ----------------------------------- NO DATA retained objects by file ----------------------------------- NO DATA retained objects by location ----------------------------------- NO DATA retained objects by class ----------------------------------- NO DATA Using Hash: ➜ publicsuffix-ruby git:(thesis-hash) ruby test/profilers/execution_profiler.rb Total allocated: 15170 bytes (160 objects) Total retained: 0 bytes (0 objects) allocated memory by gem ----------------------------------- 15010 publicsuffix-ruby/lib 160 other allocated memory by class ----------------------------------- 8076 String 2560 Hash 2134 Regexp 1120 Array 1120 MatchData 80 PublicSuffix::Domain 80 PublicSuffix::Rule::Wildcard allocated objects by gem ----------------------------------- 156 publicsuffix-ruby/lib 4 other allocated objects by class ----------------------------------- 108 String 24 Array 16 Hash 4 MatchData 4 Regexp 2 PublicSuffix::Domain 2 PublicSuffix::Rule::Wildcard retained memory by gem ----------------------------------- NO DATA retained memory by file ----------------------------------- NO DATA retained memory by location ----------------------------------- NO DATA retained memory by class ----------------------------------- NO DATA retained objects by gem ----------------------------------- NO DATA retained objects by file ----------------------------------- NO DATA retained objects by location ----------------------------------- NO DATA retained objects by class ----------------------------------- NO DATA --- test/.empty | 1 + 1 file changed, 1 insertion(+) diff --git a/test/.empty b/test/.empty index 9ae9e762..47eacd25 100644 --- a/test/.empty +++ b/test/.empty @@ -1 +1,2 @@ # This is an empty file I use to force a non-empty commit when I only need to store notes +. \ No newline at end of file From b2feb27597309870b10a511913e6262ac93e7c1a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 22 Jan 2017 22:09:15 -0800 Subject: [PATCH 207/450] Move benchmarks to the correct folder --- {benchmarks => test/benchmarks}/bm_names.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {benchmarks => test/benchmarks}/bm_names.rb (100%) diff --git a/benchmarks/bm_names.rb b/test/benchmarks/bm_names.rb similarity index 100% rename from benchmarks/bm_names.rb rename to test/benchmarks/bm_names.rb From 1c4f0ca30ffb8e1c0dfc2a0a4c6f0d76c54725e2 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 23 Jan 2017 18:49:45 -0800 Subject: [PATCH 208/450] Optimize space by removing duplicate rule value MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the rule is stored, we can remove the value from the Rule as the value if effectively the key of the Hash. ➜ publicsuffix-ruby git:(before) ruby test/profilers/initialization_profiler.rb Total allocated: 5882690 bytes (52219 objects) Total retained: 1375819 bytes (24188 objects) ➜ publicsuffix-ruby git:(before) ruby test/profilers/execution_profiler.rb Total allocated: 15170 bytes (160 objects) Total retained: 0 bytes (0 objects) ➜ publicsuffix-ruby git:(after) ✗ ruby test/profilers/initialization_profiler.rb Total allocated: 6205130 bytes (60280 objects) Total retained: 1052404 bytes (16127 objects) ➜ publicsuffix-ruby git:(after) ✗ ruby test/profilers/execution_profiler.rb Total allocated: 15330 bytes (164 objects) Total retained: 0 bytes (0 objects) compared to master ➜ publicsuffix-ruby git:(master) ruby test/profilers/initialization_profiler.rb Total allocated: 6525758 bytes (72086 objects) Total retained: 1020387 bytes (19234 objects) ➜ publicsuffix-ruby git:(master) ruby test/profilers/execution_profiler.rb Total allocated: 204162 bytes (4420 objects) Total retained: 0 bytes (0 objects) Execution time is unchanged. ➜ publicsuffix-ruby git:(before) ruby test/benchmarks/bm_find.rb user system total real NAME_SHORT 0.260000 0.000000 0.260000 ( 0.262684) NAME_SHORT (noprivate) 0.370000 0.010000 0.380000 ( 0.372534) NAME_MEDIUM 0.330000 0.000000 0.330000 ( 0.335683) NAME_MEDIUM (noprivate) 0.490000 0.000000 0.490000 ( 0.494590) NAME_LONG 0.510000 0.010000 0.520000 ( 0.519750) NAME_LONG (noprivate) 0.590000 0.000000 0.590000 ( 0.594626) NAME_WILD 0.480000 0.000000 0.480000 ( 0.490432) NAME_WILD (noprivate) 0.580000 0.010000 0.590000 ( 0.594776) NAME_EXCP 0.460000 0.000000 0.460000 ( 0.470119) NAME_EXCP (noprivate) 0.590000 0.010000 0.600000 ( 0.601316) IAAA 0.300000 0.000000 0.300000 ( 0.305301) IAAA (noprivate) 0.400000 0.000000 0.400000 ( 0.410586) IZZZ 0.280000 0.000000 0.280000 ( 0.283711) IZZZ (noprivate) 0.400000 0.010000 0.410000 ( 0.408137) PAAA 0.490000 0.000000 0.490000 ( 0.501869) PAAA (noprivate) 0.600000 0.000000 0.600000 ( 0.612187) PZZZ 0.510000 0.010000 0.520000 ( 0.519206) PZZZ (noprivate) 0.590000 0.000000 0.590000 ( 0.600264) JP 0.390000 0.000000 0.390000 ( 0.404432) JP (noprivate) 0.540000 0.010000 0.550000 ( 0.558351) IT 0.290000 0.000000 0.290000 ( 0.298931) IT (noprivate) 0.410000 0.000000 0.410000 ( 0.420742) COM 0.290000 0.010000 0.300000 ( 0.300935) COM (noprivate) 0.400000 0.000000 0.400000 ( 0.409309) ➜ publicsuffix-ruby git:(after) ✗ ruby test/benchmarks/bm_find.rb user system total real NAME_SHORT 0.320000 0.000000 0.320000 ( 0.320201) NAME_SHORT (noprivate) 0.430000 0.000000 0.430000 ( 0.443678) NAME_MEDIUM 0.380000 0.000000 0.380000 ( 0.388169) NAME_MEDIUM (noprivate) 0.490000 0.010000 0.500000 ( 0.491073) NAME_LONG 0.480000 0.000000 0.480000 ( 0.483376) NAME_LONG (noprivate) 0.620000 0.010000 0.630000 ( 0.634896) NAME_WILD 0.570000 0.020000 0.590000 ( 0.628489) NAME_WILD (noprivate) 0.700000 0.030000 0.730000 ( 0.769070) NAME_EXCP 0.580000 0.020000 0.600000 ( 0.618683) NAME_EXCP (noprivate) 0.740000 0.030000 0.770000 ( 0.799244) IAAA 0.410000 0.030000 0.440000 ( 0.474761) IAAA (noprivate) 0.550000 0.040000 0.590000 ( 0.645329) IZZZ 0.380000 0.020000 0.400000 ( 0.432898) IZZZ (noprivate) 0.520000 0.020000 0.540000 ( 0.579073) PAAA 0.680000 0.040000 0.720000 ( 0.760276) PAAA (noprivate) 0.720000 0.020000 0.740000 ( 0.773864) PZZZ 0.700000 0.040000 0.740000 ( 0.782113) PZZZ (noprivate) 0.650000 0.010000 0.660000 ( 0.664647) JP 0.470000 0.000000 0.470000 ( 0.478473) JP (noprivate) 0.580000 0.010000 0.590000 ( 0.589827) IT 0.360000 0.000000 0.360000 ( 0.379309) IT (noprivate) 0.450000 0.010000 0.460000 ( 0.471794) COM 0.330000 0.010000 0.340000 ( 0.334253) COM (noprivate) 0.530000 0.030000 0.560000 ( 0.592813) --- lib/public_suffix/list.rb | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 3cc411c0..c8075f64 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -124,7 +124,11 @@ def ==(other) # Iterates each rule in the list. def each(&block) - @rules.each_value(&block) + Enumerator.new do |y| + @rules.each do |key, node| + y << node_to_rule(node, key) + end + end.each(&block) end @@ -133,7 +137,8 @@ def each(&block) # @param rule [PublicSuffix::Rule::*] The rule to add to the list. # @return [self] def add(rule) - @rules[rule.value] = rule + @rules[rule.value] = rule_to_node(rule) + self end alias << add @@ -216,7 +221,9 @@ def select(name, ignore_private: false) loop do match = @rules[query] - rules << match if !match.nil? && (ignore_private == false || match.private == false) + if !match.nil? && (ignore_private == false || match.private == false) + rules << node_to_rule(match, query) + end index += 1 break if index >= parts.size @@ -241,5 +248,20 @@ def default_rule attr_reader :rules + + private + + def node_to_rule(node, value) + node.clone.tap do |r| + r.instance_variable_set(:@value, value) + end + end + + def rule_to_node(rule) + rule.clone.tap do |r| + r.instance_variable_set(:@value, nil) + end + end + end end From ac39e08719c7f3ba2499da189dd3ac23f85a4481 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 23 Jan 2017 18:57:39 -0800 Subject: [PATCH 209/450] Allocation comparison with master is way lowe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using the new benchmarks introduced in dec53e6, the allocation is clearly lower even during execution time. ➜ publicsuffix-ruby git:(master) ✗ ruby test/profilers/find_profiler.rb Total allocated: 31472 bytes (691 objects) Total retained: 0 bytes (0 objects) ➜ publicsuffix-ruby git:(master) ✗ ruby test/profilers/domain_profiler.rb Total allocated: 37410 bytes (744 objects) Total retained: 0 bytes (0 objects) vs ➜ publicsuffix-ruby git:(thesis-hash) ruby test/profilers/find_profiler.rb Total allocated: 1264 bytes (22 objects) Total retained: 0 bytes (0 objects) ➜ publicsuffix-ruby git:(thesis-hash) ruby test/profilers/domain_profiler.rb Total allocated: 7202 bytes (75 objects) Total retained: 0 bytes (0 objects) --- test/.empty | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/.empty b/test/.empty index 47eacd25..e3220151 100644 --- a/test/.empty +++ b/test/.empty @@ -1,2 +1,2 @@ # This is an empty file I use to force a non-empty commit when I only need to store notes -. \ No newline at end of file +.. \ No newline at end of file From 24ad179eb8dd1bb5f93f2ac53b7ba0020d9a9148 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 23 Jan 2017 19:35:47 -0800 Subject: [PATCH 210/450] Restructure Rule initialization .new now takes all parameters, as you would create a completely new instance when you have the data. A new method called .build is used to create a new Rule from a rule content. --- lib/public_suffix/list.rb | 11 ++--- lib/public_suffix/rule.rb | 52 +++++++++++++--------- test/unit/rule_test.rb | 90 +++++++++++++++++++-------------------- 3 files changed, 83 insertions(+), 70 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index c8075f64..550d66b0 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -126,7 +126,7 @@ def ==(other) def each(&block) Enumerator.new do |y| @rules.each do |key, node| - y << node_to_rule(node, key) + y << entry_to_rule(node, key) end end.each(&block) end @@ -137,7 +137,7 @@ def each(&block) # @param rule [PublicSuffix::Rule::*] The rule to add to the list. # @return [self] def add(rule) - @rules[rule.value] = rule_to_node(rule) + @rules[rule.value] = rule_to_entry(rule) self end @@ -222,7 +222,7 @@ def select(name, ignore_private: false) loop do match = @rules[query] if !match.nil? && (ignore_private == false || match.private == false) - rules << node_to_rule(match, query) + rules << entry_to_rule(match, query) end index += 1 @@ -251,17 +251,18 @@ def default_rule private - def node_to_rule(node, value) + def entry_to_rule(node, value) node.clone.tap do |r| r.instance_variable_set(:@value, value) end end - def rule_to_node(rule) + def rule_to_entry(rule) rule.clone.tap do |r| r.instance_variable_set(:@value, nil) end end + end end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 458a8867..208a5387 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -106,13 +106,21 @@ class Base attr_reader :private - # Initializes a new rule with name and value. - # If value is +nil+, name also becomes the value for this rule. + # Initializes a new rule from the content. # - # @param value [String] the value of the rule - def initialize(value, private: false) + # @param content [String] the content of the rule + # @param private [Boolean] + def self.build(content, private: false) + new(value: content, private: private) + end + + # Initializes a new rule. + # + # @param value [String] + # @param private [Boolean] + def initialize(value:, length: nil, private: false) @value = value.to_s - @length = @value.count(DOT) + 1 + @length = length || @value.count(DOT) + 1 @private = private end @@ -204,15 +212,21 @@ def parts # Wildcard represents a wildcard rule (e.g. *.co.uk). class Wildcard < Base - # Initializes a new rule from +definition+. + # Initializes a new rule from the content. # - # The wildcard "*" is removed from the value, - # as it's common for each wildcard rule. + # @param content [String] the content of the rule + # @param private [Boolean] + def self.build(content, private: false) + new(value: content.to_s[2..-1], private: private) + end + + # Initializes a new rule. # - # @param definition [String] the rule as defined in the PSL - def initialize(definition, private: false) - super(definition.to_s[2..-1], private: private) - @length += 1 # * counts as 1 + # @param value [String] + # @param private [Boolean] + def initialize(value:, length: nil, private: false) + super(value: value, length: length, private: private) + length or @length += 1 # * counts as 1 end # Gets the original rule definition. @@ -245,14 +259,12 @@ def parts # Exception represents an exception rule (e.g. !parliament.uk). class Exception < Base - # Initializes a new rule from +definition+. - # - # The bang ! is removed from the value, - # as it's common for each exception rule. + # Initializes a new rule from the content. # - # @param definition [String] the rule as defined in the PSL - def initialize(definition, private: false) - super(definition.to_s[1..-1], private: private) + # @param content [String] the content of the rule + # @param private [Boolean] + def self.build(content, private: false) + new(value: content.to_s[1..-1], private: private) end # Gets the original rule definition. @@ -314,7 +326,7 @@ def self.factory(content, private: false) Exception else Normal - end.new(content, private: private) + end.build(content, private: private) end # The default rule to use if no rule match. diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index 4ffb1d75..ed1c1320 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -26,7 +26,7 @@ def test_factory_should_return_rule_wildcard def test_default_returns_default_wildcard default = PublicSuffix::Rule.default - assert_equal PublicSuffix::Rule::Wildcard.new("*"), default + assert_equal PublicSuffix::Rule::Wildcard.build("*"), default assert_equal %w( example tldnotlisted ), default.decompose("example.tldnotlisted") assert_equal %w( www.example tldnotlisted ), default.decompose("www.example.tldnotlisted") end @@ -45,24 +45,24 @@ def setup def test_initialize - rule = @klass.new("verona.it") - assert_instance_of @klass, rule - assert_equal "verona.it", rule.value + rule = @klass.new(value: "verona.it") + assert_instance_of @klass, rule + assert_equal "verona.it", rule.value end def test_equality_with_self - rule = PublicSuffix::Rule::Base.new("foo") + rule = PublicSuffix::Rule::Base.new(value: "foo") assert_equal rule, rule end # rubocop:disable Style/SingleLineMethods def test_equality_with_internals - assert_equal @klass.new("foo"), @klass.new("foo") - refute_equal @klass.new("foo"), @klass.new("bar") - refute_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("foo") - refute_equal @klass.new("foo"), PublicSuffix::Rule::Test.new("bar") - refute_equal @klass.new("foo"), Class.new { def name; foo; end }.new + assert_equal @klass.new(value: "foo"), @klass.new(value: "foo") + refute_equal @klass.new(value: "foo"), @klass.new(value: "bar") + refute_equal @klass.new(value: "foo"), PublicSuffix::Rule::Test.new(value: "foo") + refute_equal @klass.new(value: "foo"), PublicSuffix::Rule::Test.new(value: "bar") + refute_equal @klass.new(value: "foo"), Class.new { def name; foo; end }.new end # rubocop:enable Style/SingleLineMethods @@ -106,11 +106,11 @@ def test_match def test_parts - assert_raises(NotImplementedError) { @klass.new("com").parts } + assert_raises(NotImplementedError) { @klass.new(value: "com").parts } end def test_decompose - assert_raises(NotImplementedError) { @klass.new("com").decompose("google.com") } + assert_raises(NotImplementedError) { @klass.new(value: "com").decompose("google.com") } end end @@ -123,8 +123,8 @@ def setup end - def test_initialize - rule = @klass.new("verona.it") + def test_build + rule = @klass.build("verona.it") assert_instance_of @klass, rule assert_equal "verona.it", rule.value assert_equal "verona.it", rule.rule @@ -132,21 +132,21 @@ def test_initialize def test_length - assert_equal 1, @klass.new("com").length - assert_equal 2, @klass.new("co.com").length - assert_equal 3, @klass.new("mx.co.com").length + assert_equal 1, @klass.build("com").length + assert_equal 2, @klass.build("co.com").length + assert_equal 3, @klass.build("mx.co.com").length end def test_parts - assert_equal %w(com), @klass.new("com").parts - assert_equal %w(co com), @klass.new("co.com").parts - assert_equal %w(mx co com), @klass.new("mx.co.com").parts + assert_equal %w(com), @klass.build("com").parts + assert_equal %w(co com), @klass.build("co.com").parts + assert_equal %w(mx co com), @klass.build("mx.co.com").parts end def test_decompose - assert_equal [nil, nil], @klass.new("com").decompose("com") - assert_equal %w( example com ), @klass.new("com").decompose("example.com") - assert_equal %w( foo.example com ), @klass.new("com").decompose("foo.example.com") + assert_equal [nil, nil], @klass.build("com").decompose("com") + assert_equal %w( example com ), @klass.build("com").decompose("example.com") + assert_equal %w( foo.example com ), @klass.build("com").decompose("foo.example.com") end end @@ -160,27 +160,27 @@ def setup def test_initialize - rule = @klass.new("!british-library.uk") - assert_instance_of @klass, rule - assert_equal "british-library.uk", rule.value - assert_equal "!british-library.uk", rule.rule + rule = @klass.build("!british-library.uk") + assert_instance_of @klass, rule + assert_equal "british-library.uk", rule.value + assert_equal "!british-library.uk", rule.rule end def test_length - assert_equal 2, @klass.new("!british-library.uk").length - assert_equal 3, @klass.new("!foo.british-library.uk").length + assert_equal 2, @klass.build("!british-library.uk").length + assert_equal 3, @klass.build("!foo.british-library.uk").length end def test_parts - assert_equal %w( uk ), @klass.new("!british-library.uk").parts - assert_equal %w( tokyo jp ), @klass.new("!metro.tokyo.jp").parts + assert_equal %w( uk ), @klass.build("!british-library.uk").parts + assert_equal %w( tokyo jp ), @klass.build("!metro.tokyo.jp").parts end def test_decompose - assert_equal [nil, nil], @klass.new("!british-library.uk").decompose("uk") - assert_equal %w( british-library uk ), @klass.new("!british-library.uk").decompose("british-library.uk") - assert_equal %w( foo.british-library uk ), @klass.new("!british-library.uk").decompose("foo.british-library.uk") + assert_equal [nil, nil], @klass.build("!british-library.uk").decompose("uk") + assert_equal %w( british-library uk ), @klass.build("!british-library.uk").decompose("british-library.uk") + assert_equal %w( foo.british-library uk ), @klass.build("!british-library.uk").decompose("foo.british-library.uk") end end @@ -194,27 +194,27 @@ def setup def test_initialize - rule = @klass.new("*.aichi.jp") - assert_instance_of @klass, rule - assert_equal "aichi.jp", rule.value - assert_equal "*.aichi.jp", rule.rule + rule = @klass.build("*.aichi.jp") + assert_instance_of @klass, rule + assert_equal "aichi.jp", rule.value + assert_equal "*.aichi.jp", rule.rule end def test_length - assert_equal 2, @klass.new("*.uk").length - assert_equal 3, @klass.new("*.co.uk").length + assert_equal 2, @klass.build("*.uk").length + assert_equal 3, @klass.build("*.co.uk").length end def test_parts - assert_equal %w( uk ), @klass.new("*.uk").parts - assert_equal %w( co uk ), @klass.new("*.co.uk").parts + assert_equal %w( uk ), @klass.build("*.uk").parts + assert_equal %w( co uk ), @klass.build("*.co.uk").parts end def test_decompose - assert_equal [nil, nil], @klass.new("*.do").decompose("nic.do") - assert_equal %w( google co.uk ), @klass.new("*.uk").decompose("google.co.uk") - assert_equal %w( foo.google co.uk ), @klass.new("*.uk").decompose("foo.google.co.uk") + assert_equal [nil, nil], @klass.build("*.do").decompose("nic.do") + assert_equal %w( google co.uk ), @klass.build("*.uk").decompose("google.co.uk") + assert_equal %w( foo.google co.uk ), @klass.build("*.uk").decompose("foo.google.co.uk") end end From d363dbe98089b9a4dcc9a893bc220447a73959de Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 23 Jan 2017 19:36:39 -0800 Subject: [PATCH 211/450] Introduce Entry internal object Better distinguish between a Rule (public API) and an Entry (internal API). --- lib/public_suffix/list.rb | 11 +++-------- lib/public_suffix/rule.rb | 3 +++ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 550d66b0..203fab9a 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -251,18 +251,13 @@ def default_rule private - def entry_to_rule(node, value) - node.clone.tap do |r| - r.instance_variable_set(:@value, value) - end + def entry_to_rule(entry, value) + entry.type.new(value: value, length: entry.length, private: entry.private) end def rule_to_entry(rule) - rule.clone.tap do |r| - r.instance_variable_set(:@value, nil) - end + Rule::Entry.new(rule.class, rule.length, rule.private) end - end end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 208a5387..acb0adc6 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -19,6 +19,9 @@ module PublicSuffix # module Rule + # @api internal + Entry = Struct.new(:type, :length, :private) + # = Abstract rule class # # This represent the base class for a Rule definition From b7fec8b02068d5fe3ae505055bf53c4fa69afe89 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 28 Jan 2017 13:14:59 -0800 Subject: [PATCH 212/450] Simplify reference to list path --- lib/public_suffix/list.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 549d35c6..31c81236 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -37,7 +37,7 @@ module PublicSuffix # class List - DEFAULT_LIST_PATH = File.join(File.dirname(__FILE__), "..", "..", "data", "list.txt") + DEFAULT_LIST_PATH = File.expand_path("../../data/list.txt", __dir__) # Gets the default rule list. # From 582efe5a21971456527d15c1f1524baa71c6716d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 12:16:22 +0100 Subject: [PATCH 213/450] Change bm_find.rb benchmark to not run on private rules Just keep it simple. The difference is not very noticeable. There is now a separate benchmark to check extensively on all rules. --- test/benchmarks/bm_find.rb | 36 ------------ test/benchmarks/bm_find_all.rb | 102 +++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+), 36 deletions(-) create mode 100644 test/benchmarks/bm_find_all.rb diff --git a/test/benchmarks/bm_find.rb b/test/benchmarks/bm_find.rb index 0bcfd42c..0074f1d0 100644 --- a/test/benchmarks/bm_find.rb +++ b/test/benchmarks/bm_find.rb @@ -27,76 +27,40 @@ x.report("NAME_SHORT") do TIMES.times { PublicSuffixList.find(NAME_SHORT) != nil } end - x.report("NAME_SHORT (noprivate)") do - TIMES.times { PublicSuffixList.find(NAME_SHORT, ignore_private: true) != nil } - end x.report("NAME_MEDIUM") do TIMES.times { PublicSuffixList.find(NAME_MEDIUM) != nil } end - x.report("NAME_MEDIUM (noprivate)") do - TIMES.times { PublicSuffixList.find(NAME_MEDIUM, ignore_private: true) != nil } - end x.report("NAME_LONG") do TIMES.times { PublicSuffixList.find(NAME_LONG) != nil } end - x.report("NAME_LONG (noprivate)") do - TIMES.times { PublicSuffixList.find(NAME_LONG, ignore_private: true) != nil } - end x.report("NAME_WILD") do TIMES.times { PublicSuffixList.find(NAME_WILD) != nil } end - x.report("NAME_WILD (noprivate)") do - TIMES.times { PublicSuffixList.find(NAME_WILD, ignore_private: true) != nil } - end x.report("NAME_EXCP") do TIMES.times { PublicSuffixList.find(NAME_EXCP) != nil } end - x.report("NAME_EXCP (noprivate)") do - TIMES.times { PublicSuffixList.find(NAME_EXCP, ignore_private: true) != nil } - end x.report("IAAA") do TIMES.times { PublicSuffixList.find(IAAA) != nil } end - x.report("IAAA (noprivate)") do - TIMES.times { PublicSuffixList.find(IAAA, ignore_private: true) != nil } - end x.report("IZZZ") do TIMES.times { PublicSuffixList.find(IZZZ) != nil } end - x.report("IZZZ (noprivate)") do - TIMES.times { PublicSuffixList.find(IZZZ, ignore_private: true) != nil } - end x.report("PAAA") do TIMES.times { PublicSuffixList.find(PAAA) != nil } end - x.report("PAAA (noprivate)") do - TIMES.times { PublicSuffixList.find(PAAA, ignore_private: true) != nil } - end x.report("PZZZ") do TIMES.times { PublicSuffixList.find(PZZZ) != nil } end - x.report("PZZZ (noprivate)") do - TIMES.times { PublicSuffixList.find(PZZZ, ignore_private: true) != nil } - end x.report("JP") do TIMES.times { PublicSuffixList.find(JP) != nil } end - x.report("JP (noprivate)") do - TIMES.times { PublicSuffixList.find(JP, ignore_private: true) != nil } - end x.report("IT") do TIMES.times { PublicSuffixList.find(IT) != nil } end - x.report("IT (noprivate)") do - TIMES.times { PublicSuffixList.find(IT, ignore_private: true) != nil } - end x.report("COM") do TIMES.times { PublicSuffixList.find(COM) != nil } end - x.report("COM (noprivate)") do - TIMES.times { PublicSuffixList.find(COM, ignore_private: true) != nil } - end end diff --git a/test/benchmarks/bm_find_all.rb b/test/benchmarks/bm_find_all.rb new file mode 100644 index 00000000..0bcfd42c --- /dev/null +++ b/test/benchmarks/bm_find_all.rb @@ -0,0 +1,102 @@ +require 'benchmark' +require_relative "../../lib/public_suffix" + +NAME_SHORT = "example.de" +NAME_MEDIUM = "www.subdomain.example.de" +NAME_LONG = "one.two.three.four.five.example.de" +NAME_WILD = "one.two.three.four.five.example.bd" +NAME_EXCP = "one.two.three.four.five.www.ck" + +IAAA = "www.example.ac" +IZZZ = "www.example.zone" + +PAAA = "one.two.three.four.five.example.beep.pl" +PZZZ = "one.two.three.four.five.example.now.sh" + +JP = "www.yokoshibahikari.chiba.jp" +IT = "www.example.it" +COM = "www.example.com" + +TIMES = (ARGV.first || 50_000).to_i + +# Initialize +PublicSuffixList = PublicSuffix::List.default +PublicSuffixList.find("example.com") + +Benchmark.bmbm(25) do |x| + x.report("NAME_SHORT") do + TIMES.times { PublicSuffixList.find(NAME_SHORT) != nil } + end + x.report("NAME_SHORT (noprivate)") do + TIMES.times { PublicSuffixList.find(NAME_SHORT, ignore_private: true) != nil } + end + x.report("NAME_MEDIUM") do + TIMES.times { PublicSuffixList.find(NAME_MEDIUM) != nil } + end + x.report("NAME_MEDIUM (noprivate)") do + TIMES.times { PublicSuffixList.find(NAME_MEDIUM, ignore_private: true) != nil } + end + x.report("NAME_LONG") do + TIMES.times { PublicSuffixList.find(NAME_LONG) != nil } + end + x.report("NAME_LONG (noprivate)") do + TIMES.times { PublicSuffixList.find(NAME_LONG, ignore_private: true) != nil } + end + x.report("NAME_WILD") do + TIMES.times { PublicSuffixList.find(NAME_WILD) != nil } + end + x.report("NAME_WILD (noprivate)") do + TIMES.times { PublicSuffixList.find(NAME_WILD, ignore_private: true) != nil } + end + x.report("NAME_EXCP") do + TIMES.times { PublicSuffixList.find(NAME_EXCP) != nil } + end + x.report("NAME_EXCP (noprivate)") do + TIMES.times { PublicSuffixList.find(NAME_EXCP, ignore_private: true) != nil } + end + + x.report("IAAA") do + TIMES.times { PublicSuffixList.find(IAAA) != nil } + end + x.report("IAAA (noprivate)") do + TIMES.times { PublicSuffixList.find(IAAA, ignore_private: true) != nil } + end + x.report("IZZZ") do + TIMES.times { PublicSuffixList.find(IZZZ) != nil } + end + x.report("IZZZ (noprivate)") do + TIMES.times { PublicSuffixList.find(IZZZ, ignore_private: true) != nil } + end + + x.report("PAAA") do + TIMES.times { PublicSuffixList.find(PAAA) != nil } + end + x.report("PAAA (noprivate)") do + TIMES.times { PublicSuffixList.find(PAAA, ignore_private: true) != nil } + end + x.report("PZZZ") do + TIMES.times { PublicSuffixList.find(PZZZ) != nil } + end + x.report("PZZZ (noprivate)") do + TIMES.times { PublicSuffixList.find(PZZZ, ignore_private: true) != nil } + end + + x.report("JP") do + TIMES.times { PublicSuffixList.find(JP) != nil } + end + x.report("JP (noprivate)") do + TIMES.times { PublicSuffixList.find(JP, ignore_private: true) != nil } + end + x.report("IT") do + TIMES.times { PublicSuffixList.find(IT) != nil } + end + x.report("IT (noprivate)") do + TIMES.times { PublicSuffixList.find(IT, ignore_private: true) != nil } + end + x.report("COM") do + TIMES.times { PublicSuffixList.find(COM) != nil } + end + x.report("COM (noprivate)") do + TIMES.times { PublicSuffixList.find(COM, ignore_private: true) != nil } + end +end From 740d78c7565ce53ab72fb79bc2bdc97afc4d8492 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 13:48:04 +0100 Subject: [PATCH 214/450] Work around some limitations of ObjectSpace.memsize_of A very simple memory profiles that checks the full size of a variable by serializing into a binary file. Yes, I know this is very rough, but there are cases where ObjectSpace.memsize_of doesn't cooperate, and this is one of the possible workarounds. --- test/profilers/object_binsize.rb | 57 ++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 test/profilers/object_binsize.rb diff --git a/test/profilers/object_binsize.rb b/test/profilers/object_binsize.rb new file mode 100644 index 00000000..ea7c9ce5 --- /dev/null +++ b/test/profilers/object_binsize.rb @@ -0,0 +1,57 @@ +require 'tempfile' + +# A very simple memory profiles that checks the full size of a variable +# by serializing into a binary file. +# +# Yes, I know this is very rough, but there are cases where ObjectSpace.memsize_of +# doesn't cooperate, and this is one of the possible workarounds. +# +# For certain cases, it works (TM). +class ObjectBinsize + + def measure(var, label: nil) + dump(var, label: label) + end + + def report(var, label: nil, padding: 10) + file = measure(var, label: label) + + size = format_integer(file.size) + name = label || File.basename(file.path) + printf("%#{padding}s %s\n", size, name) + end + + private + + def dump(var, **args) + file = Tempfile.new(args[:label].to_s) + file.write(Marshal.dump(var)) + file + ensure + file.close + end + + def format_integer(int) + int.to_s.reverse.gsub(/...(?=.)/, '\&,').reverse + end + +end + +if __FILE__ == $0 && ENV["DEMO"] == "1" + prof = ObjectBinsize.new + + prof.report(nil, label: "nil") + prof.report(false, label: "false") + prof.report(true, label: "true") + prof.report(0, label: "integer") + prof.report("", label: "empty string") + prof.report({}, label: "empty hash") + prof.report({}, label: "empty array") + + prof.report({ foo: "1" }, label: "hash 1 item (symbol)") + prof.report({ foo: "1", bar: 2 }, label: "hash 2 items (symbol)") + prof.report({ "foo" => "1" }, label: "hash 1 item (string)") + prof.report({ "foo" => "1", "bar" => 2 }, label: "hash 2 items (string)") + + prof.report("big string" * 200, label: "big string * 200") +end From c3e05d5f417c1cf55b9c9952a816736dfe7e6b00 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 13:48:46 +0100 Subject: [PATCH 215/450] Fix outdated namespace --- test/psl_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/psl_test.rb b/test/psl_test.rb index fc591ae6..81d3f9eb 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -7,7 +7,7 @@ class PslTest < Minitest::Test ROOT = File.expand_path("../../", __FILE__) - # rubocop:disable Lint/Eval + # rubocop:disable Security/Eval def self.tests File.readlines(File.join(ROOT, "test/tests.txt")).map do |line| line = line.strip From 4d9852138ea7ee344f6e1f4c8ef41ee2f6788723 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 15:56:51 +0100 Subject: [PATCH 216/450] Measure the list size --- test/profilers/list_profsize.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 test/profilers/list_profsize.rb diff --git a/test/profilers/list_profsize.rb b/test/profilers/list_profsize.rb new file mode 100644 index 00000000..065a36b9 --- /dev/null +++ b/test/profilers/list_profsize.rb @@ -0,0 +1,11 @@ +$LOAD_PATH.unshift File.expand_path("../../lib", __dir__) + +require_relative "object_binsize" +require "public_suffix" + +PublicSuffix::List.default + +prof = ObjectBinsize.new +prof.report(PublicSuffix::List.default, label: "PublicSuffix::List size") +prof.report(PublicSuffix::List.default.instance_variable_get(:@rules), label: "Size of rules") +prof.report(PublicSuffix::List.default.instance_variable_get(:@indexes), label: "Size of indexes") From fff973974a8e1ec6e82baad561739aeffc8718d9 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 19:52:34 +0100 Subject: [PATCH 217/450] Cleanup docs --- lib/public_suffix/list.rb | 40 +++++++++++++++++---------------------- lib/public_suffix/rule.rb | 6 +++--- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 31c81236..5fab614f 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -102,7 +102,6 @@ def self.parse(input, private_domains: true) # # @yield [self] Yields on self. # @yieldparam [PublicSuffix::List] self The newly created instance. - # def initialize @rules = [] yield(self) if block_given? @@ -139,9 +138,7 @@ def indexes # {PublicSuffix::List} and each +PublicSuffix::Rule::*+ # in list one is available in list two, in the same order. # - # @param [PublicSuffix::List] other - # The List to compare. - # + # @param other [PublicSuffix::List] the List to compare # @return [Boolean] def ==(other) return false unless other.is_a?(List) @@ -157,16 +154,12 @@ def each(*args, &block) # Adds the given object to the list and optionally refreshes the rule index. # - # @param [PublicSuffix::Rule::*] rule - # The rule to add to the list. - # @param [Boolean] reindex - # Set to true to recreate the rule index - # after the rule has been added to the list. - # - # @return [self] - # # @see #reindex! # + # @param rule [PublicSuffix::Rule::*] the rule to add to the list + # @param reindex [Boolean] Set to true to recreate the rule index + # after the rule has been added to the list. + # @return [self] def add(rule, reindex: true) @rules << rule reindex! if reindex @@ -217,8 +210,8 @@ def clear # which directly match the labels of the prevailing rule (joined by dots). # 7. The registered domain is the public suffix plus one additional label. # - # @param name [String, #to_s] The domain name. - # @param [PublicSuffix::Rule::*] default The default rule to return in case no rule matches. + # @param name [#to_s] the hostname + # @param default [PublicSuffix::Rule::*] the default rule to return in case no rule matches # @return [PublicSuffix::Rule::*] def find(name, default: default_rule, **options) rule = select(name, **options).inject do |l, r| @@ -230,18 +223,19 @@ def find(name, default: default_rule, **options) # Selects all the rules matching given domain. # - # If `ignore_private` is set to true, the algorithm will skip the rules that are flagged as private domain. - # Note that the rules will still be part of the loop. If you frequently need to access lists - # ignoring the private domains, you should create a list that doesn't include these domains setting the + # If `ignore_private` is set to true, the algorithm will skip the rules that are flagged as + # private domain. Note that the rules will still be part of the loop. + # If you frequently need to access lists ignoring the private domains, + # you should create a list that doesn't include these domains setting the # `private_domains: false` option when calling {.parse}. # - # Note that this method is currently private, as you should not rely on it. Instead, the public - # interface is {#find}. The current internal algorithm allows to return all matching rules, - # but different data structures may not be able to do it, and instead would return only the - # match. For this reason, you should rely on {#find}. + # Note that this method is currently private, as you should not rely on it. Instead, + # the public interface is {#find}. The current internal algorithm allows to return all + # matching rules, but different data structures may not be able to do it, and instead would + # return only the match. For this reason, you should rely on {#find}. # - # @param [String, #to_s] name The domain name. - # @param [Boolean] ignore_private + # @param name [#to_s] the hostname + # @param ignore_private [Boolean] # @return [Array] def select(name, ignore_private: false) name = name.to_s diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 458a8867..f8573cf7 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -141,12 +141,12 @@ def ==(other) # @see https://publicsuffix.org/list/ # # @example - # Rule.factory("com").match?("example.com") + # PublicSuffix::Rule.factory("com").match?("example.com") # # => true - # Rule.factory("com").match?("example.net") + # PublicSuffix::Rule.factory("com").match?("example.net") # # => false # - # @param name [String, #to_s] The domain name to check. + # @param name [String] the domain name to check # @return [Boolean] def match?(name) # Note: it works because of the assumption there are no From 482f5342561e4c98a59c8793f1e5ddcd9462b37a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 21:38:22 +0100 Subject: [PATCH 218/450] The Hash implementation has no longer indexes --- test/profilers/list_profsize.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/test/profilers/list_profsize.rb b/test/profilers/list_profsize.rb index 065a36b9..890b7575 100644 --- a/test/profilers/list_profsize.rb +++ b/test/profilers/list_profsize.rb @@ -8,4 +8,3 @@ prof = ObjectBinsize.new prof.report(PublicSuffix::List.default, label: "PublicSuffix::List size") prof.report(PublicSuffix::List.default.instance_variable_get(:@rules), label: "Size of rules") -prof.report(PublicSuffix::List.default.instance_variable_get(:@indexes), label: "Size of indexes") From 8f241cc897312335e8ea6184f242063ad496cf77 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 21:42:38 +0100 Subject: [PATCH 219/450] Add # of rules in the benchmark info --- test/profilers/list_profsize.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/profilers/list_profsize.rb b/test/profilers/list_profsize.rb index 065a36b9..8bff1ea9 100644 --- a/test/profilers/list_profsize.rb +++ b/test/profilers/list_profsize.rb @@ -3,7 +3,8 @@ require_relative "object_binsize" require "public_suffix" -PublicSuffix::List.default +list = PublicSuffix::List.default +puts "#{list.size} rules:" prof = ObjectBinsize.new prof.report(PublicSuffix::List.default, label: "PublicSuffix::List size") From dd828218f04510db7440e0a283216a6c2ffe3671 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 21:45:26 +0100 Subject: [PATCH 220/450] Make ObjectBinsize run the demo by default --- test/profilers/object_binsize.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/profilers/object_binsize.rb b/test/profilers/object_binsize.rb index ea7c9ce5..dc60bdb4 100644 --- a/test/profilers/object_binsize.rb +++ b/test/profilers/object_binsize.rb @@ -37,7 +37,7 @@ def format_integer(int) end -if __FILE__ == $0 && ENV["DEMO"] == "1" +if __FILE__ == $0 prof = ObjectBinsize.new prof.report(nil, label: "nil") From c6560dce166c64d8e903d0c8b5d5435d721795ad Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 22:27:59 +0100 Subject: [PATCH 221/450] Dropped support for Ruby < 2.1 It doesn't support keyword arguments with no default, and proper memory profiling. --- .travis.yml | 1 - CHANGELOG.md | 1 + Gemfile | 2 +- public_suffix.gemspec | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index d13db2e5..f63ea840 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: ruby rvm: - - 2.0 - 2.1 - 2.2 - 2.3.3 diff --git a/CHANGELOG.md b/CHANGELOG.md index ec8be7fa..b2d8a52d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ #### master +- CHANGED: Dropped support for Ruby < 2.1 - CHANGED: `PublicSuffix::List#rules` is now protected. You should not rely on it as the internal rule representation is subject to change to optimize performances. - CHANGED: Removed `PublicSuffix::List.clear`, it was an unnecessary accessor method. Use `PublicSuffix::List.default = nil` if you **really** need to reset the default list. You shouldn't. - CHANGED: `PublicSuffix::List#select` is now private. You should not use it, instead use ``PublicSuffix::List#find`. diff --git a/Gemfile b/Gemfile index 087b2788..db22b745 100644 --- a/Gemfile +++ b/Gemfile @@ -7,4 +7,4 @@ gem "minitest" gem "minitest-reporters" gem "rubocop", require: false -gem "memory_profiler", require: false if !RUBY_VERSION.start_with?("2.0") +gem "memory_profiler", require: false diff --git a/public_suffix.gemspec b/public_suffix.gemspec index 62b931b1..44bfccf1 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |s| s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.licenses = ["MIT"] - s.required_ruby_version = ">= 2.0" + s.required_ruby_version = ">= 2.1" s.require_paths = ["lib"] s.files = `git ls-files`.split("\n") From f1abbd35b765a9e10b8c9ec94e3e59bbb29b4d45 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 9 Feb 2017 23:47:40 +0100 Subject: [PATCH 222/450] Remove unnecessary string allocations --- lib/public_suffix/list.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 264cf974..4051c29a 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -196,7 +196,7 @@ def find(name, default: default_rule, **options) def select(name, ignore_private: false) name = name.to_s - parts = name.split(".").reverse! + parts = name.split(DOT).reverse! index = 0 query = parts[index] rules = [] @@ -209,7 +209,7 @@ def select(name, ignore_private: false) index += 1 break if index >= parts.size - query = parts[index] + "." + query + query = parts[index] + DOT + query end rules From 7b600f3a97fddb2709cb8dfacbeca388f3fdf7c9 Mon Sep 17 00:00:00 2001 From: Benjamin Borowski Date: Fri, 24 Mar 2017 17:34:13 -0700 Subject: [PATCH 223/450] [DOCS] corrects param name in List#parse --- lib/public_suffix/list.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 4051c29a..04e53a98 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -64,7 +64,7 @@ def self.default=(value) # See http://publicsuffix.org/format/ for more details about input format. # # @param string [#each_line] The list to parse. - # @param private_domain [Boolean] whether to ignore the private domains section. + # @param private_domains [Boolean] whether to ignore the private domains section. # @return [Array] def self.parse(input, private_domains: true) comment_token = "//".freeze From 52b2343e04901e589894f453596f7e949976e226 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 10 Apr 2017 23:56:25 +0200 Subject: [PATCH 224/450] Update list --- CHANGELOG.md | 3 +- data/list.txt | 231 +++++++++++++++++++++++++++++++++++++------------- 2 files changed, 173 insertions(+), 61 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2d8a52d..7065a76b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,11 @@ #### master +- CHANGED: Updated definitions. - CHANGED: Dropped support for Ruby < 2.1 - CHANGED: `PublicSuffix::List#rules` is now protected. You should not rely on it as the internal rule representation is subject to change to optimize performances. - CHANGED: Removed `PublicSuffix::List.clear`, it was an unnecessary accessor method. Use `PublicSuffix::List.default = nil` if you **really** need to reset the default list. You shouldn't. -- CHANGED: `PublicSuffix::List#select` is now private. You should not use it, instead use ``PublicSuffix::List#find`. +- CHANGED: `PublicSuffix::List#select` is now private. You should not use it, instead use `PublicSuffix::List#find`. - CHANGED: `PublicSuffix::List` no longer implements Enumerable. Instead, use `#each` to loop over, or get an Enumerator. #### Release 2.0.5 diff --git a/data/list.txt b/data/list.txt index c4fc8b3a..f16e9ef6 100644 --- a/data/list.txt +++ b/data/list.txt @@ -171,7 +171,7 @@ it.ao // aq : https://en.wikipedia.org/wiki/.aq aq -// ar : https://nic.ar/normativa-vigente.xhtml +// ar : https://nic.ar/nic-argentina/normativa-vigente ar com.ar edu.ar @@ -179,6 +179,7 @@ gob.ar gov.ar int.ar mil.ar +musica.ar net.ar org.ar tur.ar @@ -5280,6 +5281,9 @@ net.om org.om pro.om +// onion : https://tools.ietf.org/html/rfc7686 +onion + // org : https://en.wikipedia.org/wiki/.org org @@ -5861,38 +5865,6 @@ store.st // su : https://en.wikipedia.org/wiki/.su su -adygeya.su -arkhangelsk.su -balashov.su -bashkiria.su -bryansk.su -dagestan.su -grozny.su -ivanovo.su -kalmykia.su -kaluga.su -karelia.su -khakassia.su -krasnodar.su -kurgan.su -lenug.su -mordovia.su -msk.su -murmansk.su -nalchik.su -nov.su -obninsk.su -penza.su -pokrovsk.su -sochi.su -spb.su -togliatti.su -troitsk.su -tula.su -tuva.su -vladikavkaz.su -vladimir.su -vologda.su // sv : http://www.svnet.org.sv/niveldos.pdf sv @@ -6760,6 +6732,12 @@ yt // xn--o3cw4h ("Thai", Thai) : TH // http://www.thnic.co.th ไทย +ศึกษา.ไทย +ธุรกิจ.ไทย +รัฐบาล.ไทย +ทหาร.ไทย +เน็ต.ไทย +องค์กร.ไทย // xn--pgbs0dh ("Tunisia", Arabic) : TN // http://nic.tn @@ -6822,11 +6800,16 @@ net.zm org.zm sch.zm -// zw : https://en.wikipedia.org/wiki/.zw -*.zw - +// zw : https://www.potraz.gov.zw/ +// Confirmed by registry 2017-01-25 +zw +ac.zw +co.zw +gov.zw +mil.zw +org.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2016-11-29T01:06:51Z +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2017-02-23T00:46:09Z // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7758,9 +7741,6 @@ dvag // dvr : 2016-05-26 Hughes Satellite Systems Corporation dvr -// dwg : 2015-07-23 Autodesk, Inc. -dwg - // earth : 2014-12-04 Interlink Co., Ltd. earth @@ -8328,9 +8308,6 @@ ieee // ifm : 2014-01-30 ifm electronic gmbh ifm -// iinet : 2014-07-03 Connect West Pty. Ltd. -iinet - // ikano : 2015-07-09 Ikano S.A. ikano @@ -8898,9 +8875,6 @@ mtr // mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC mutual -// mutuelle : 2015-06-18 Fédération Nationale de la Mutualité Française -mutuelle - // nab : 2015-08-20 National Australia Bank Limited nab @@ -9399,6 +9373,9 @@ room // rsvp : 2014-05-08 Charleston Road Registry Inc. rsvp +// rugby : 2016-12-15 World Rugby Strategic Developments Limited +rugby + // ruhr : 2013-10-02 regiodot GmbH & Co. KG ruhr @@ -9825,9 +9802,6 @@ theater // theatre : 2015-05-07 theatre -// theguardian : 2015-04-30 Guardian News and Media Limited -theguardian - // tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America tiaa @@ -9975,7 +9949,7 @@ ventures // verisign : 2015-08-13 VeriSign, Inc. verisign -// versicherung : 2014-03-20 dotversicherung-registry GmbH +// versicherung : 2014-03-20 versicherung // vet : 2014-03-06 @@ -10200,9 +10174,6 @@ xin // xn--4gbrim : 2013-10-04 Suhub Electronic Establishment موقع -// xn--4gq48lf9j : 2015-07-31 Wal-Mart Stores, Inc. -一号店 - // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center 公益 @@ -10263,7 +10234,7 @@ xin // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD 삼성 -// xn--czr694b : 2014-01-16 Dot Trademark TLD Holding Company Limted +// xn--czr694b : 2014-01-16 Dot Trademark TLD Holding Company Limited 商标 // xn--czrs0t : 2013-12-19 Wild Island, LLC @@ -10320,7 +10291,7 @@ xin // xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry संगठन -// xn--imr513n : 2014-12-11 Dot Trademark TLD Holding Company Limted +// xn--imr513n : 2014-12-11 Dot Trademark TLD Holding Company Limited 餐厅 // xn--io0a7i : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) @@ -10550,7 +10521,7 @@ elasticbeanstalk.cn-north-1.amazonaws.com.cn // Amazon S3 : https://aws.amazon.com/s3/ // Submitted by Luke Wells -*.s3.amazonaws.com +s3.amazonaws.com s3-ap-northeast-1.amazonaws.com s3-ap-northeast-2.amazonaws.com s3-ap-south-1.amazonaws.com @@ -10559,6 +10530,7 @@ s3-ap-southeast-2.amazonaws.com s3-ca-central-1.amazonaws.com s3-eu-central-1.amazonaws.com s3-eu-west-1.amazonaws.com +s3-eu-west-2.amazonaws.com s3-external-1.amazonaws.com s3-fips-us-gov-west-1.amazonaws.com s3-sa-east-1.amazonaws.com @@ -10571,6 +10543,7 @@ s3.ap-south-1.amazonaws.com s3.cn-north-1.amazonaws.com.cn s3.ca-central-1.amazonaws.com s3.eu-central-1.amazonaws.com +s3.eu-west-2.amazonaws.com s3.us-east-2.amazonaws.com s3.dualstack.ap-northeast-1.amazonaws.com s3.dualstack.ap-northeast-2.amazonaws.com @@ -10580,6 +10553,7 @@ s3.dualstack.ap-southeast-2.amazonaws.com s3.dualstack.ca-central-1.amazonaws.com s3.dualstack.eu-central-1.amazonaws.com s3.dualstack.eu-west-1.amazonaws.com +s3.dualstack.eu-west-2.amazonaws.com s3.dualstack.sa-east-1.amazonaws.com s3.dualstack.us-east-1.amazonaws.com s3.dualstack.us-east-2.amazonaws.com @@ -10595,6 +10569,7 @@ s3-website.ap-northeast-2.amazonaws.com s3-website.ap-south-1.amazonaws.com s3-website.ca-central-1.amazonaws.com s3-website.eu-central-1.amazonaws.com +s3-website.eu-west-2.amazonaws.com s3-website.us-east-2.amazonaws.com // Amune : https://amune.org/ @@ -10625,6 +10600,11 @@ myasustor.com // Submitted by Andreas Weise myfritz.net +// AW AdvisorWebsites.com Software Inc : https://advisorwebsites.com +// Submitted by James Kennedy +*.awdev.ca +*.advisor.ws + // backplane : https://www.backplane.io // Submitted by Anthony Voutas backplaneapp.io @@ -10715,6 +10695,10 @@ xenapponazure.com // Submitted by Leon Rowland virtueeldomein.nl +// Cloud66 : https://www.cloud66.com/ +// Submitted by Khash Sajadi +c66.me + // cloudControl : https://www.cloudcontrol.com/ // Submitted by Tobias Wilken cloudcontrolled.com @@ -10789,6 +10773,7 @@ cyon.site // Daplie, Inc : https://daplie.com // Submitted by AJ ONeal daplie.me +localhost.daplie.me // Dansk.net : http://www.dansk.net/ // Submitted by Anani Voule @@ -11197,25 +11182,113 @@ us.eu.org // Submitted by Michal Kralik eu-1.evennode.com eu-2.evennode.com +eu-3.evennode.com us-1.evennode.com us-2.evennode.com +us-3.evennode.com // Facebook, Inc. // Submitted by Peter Ruibal apps.fbsbx.com -// Fastly Inc. http://www.fastly.com/ -// Submitted by Vladimir Vuksan +// FAITID : https://faitid.org/ +// Submitted by Maxim Alzoba +// https://www.flexireg.net/stat_info +ru.net +adygeya.ru +bashkiria.ru +bir.ru +cbg.ru +com.ru +dagestan.ru +grozny.ru +kalmykia.ru +kustanai.ru +marine.ru +mordovia.ru +msk.ru +mytis.ru +nalchik.ru +nov.ru +pyatigorsk.ru +spb.ru +vladikavkaz.ru +vladimir.ru +abkhazia.su +adygeya.su +aktyubinsk.su +arkhangelsk.su +armenia.su +ashgabad.su +azerbaijan.su +balashov.su +bashkiria.su +bryansk.su +bukhara.su +chimkent.su +dagestan.su +east-kazakhstan.su +exnet.su +georgia.su +grozny.su +ivanovo.su +jambyl.su +kalmykia.su +kaluga.su +karacol.su +karaganda.su +karelia.su +khakassia.su +krasnodar.su +kurgan.su +kustanai.su +lenug.su +mangyshlak.su +mordovia.su +msk.su +murmansk.su +nalchik.su +navoi.su +north-kazakhstan.su +nov.su +obninsk.su +penza.su +pokrovsk.su +sochi.su +spb.su +tashkent.su +termez.su +togliatti.su +troitsk.su +tselinograd.su +tula.su +tuva.su +vladikavkaz.su +vladimir.su +vologda.su + +// Fastly Inc. : http://www.fastly.com/ +// Submitted by Fastly Security +fastlylb.net +map.fastlylb.net +freetls.fastly.net +map.fastly.net +a.prod.fastly.net +global.prod.fastly.net a.ssl.fastly.net b.ssl.fastly.net global.ssl.fastly.net -a.prod.fastly.net -global.prod.fastly.net // Featherhead : https://featherhead.xyz/ // Submitted by Simon Menke fhapp.xyz +// Fedora : https://fedoraproject.org/ +// submitted by Patrick Uiterwijk +fedorainfracloud.org +fedorapeople.org +cloud.fedoraproject.org + // Firebase, Inc. // Submitted by Chris Raynor firebaseapp.com @@ -11379,6 +11452,10 @@ hepforge.org herokuapp.com herokussl.com +// Ici la Lune : http://www.icilalune.com/ +// Submitted by Simon Morvan +moonscale.net + // iki.fi // Submitted by Hannu Aronsson iki.fi @@ -11417,6 +11494,10 @@ se.leg.br sp.leg.br to.leg.br +// IPiFony Systems, Inc. : https://www.ipifony.com/ +// Submitted by Matthew Hardeman +ipifony.net + // Joyent : https://www.joyent.com/ // Submitted by Brian Bennett *.triton.zone @@ -11569,6 +11650,10 @@ zapto.org // Submitted by Matthew Brown nyc.mn +// Octopodal Solutions, LLC. : https://ulterius.io/ +// Submitted by Andrew Sampson +cya.gg + // One Fold Media : http://www.onefoldmedia.com/ // Submitted by Eddie Jones nid.io @@ -11648,6 +11733,11 @@ dev-myqnapcloud.com alpha-myqnapcloud.com myqnapcloud.com +// Qutheory LLC : http://qutheory.io +// Submitted by Jonas Schwartz +vapor.cloud +vaporcloud.io + // Rackmaze LLC : https://www.rackmaze.com // Submitted by Kirill Pertsev rackmaze.com @@ -11689,6 +11779,10 @@ my-firewall.org myfirewall.org spdns.org +// SensioLabs, SAS : https://sensiolabs.com/ +// Submitted by Fabien Potencier +*.sensiosite.cloud + // Service Online LLC : http://drs.ua/ // Submitted by Serhii Bulakh biz.ua @@ -11736,6 +11830,10 @@ spacekit.io // Submitted by Lina He stackspace.space +// Storj Labs Inc. : https://storj.io/ +// Submitted by Philip Hutchins +storj.farm + // Synology, Inc. : https://www.synology.com/ // Submitted by Rony Weng diskstation.me @@ -11751,6 +11849,7 @@ familyds.org i234.me myds.me synology.me +vpnplus.to // TAIFUN Software AG : http://taifun-software.de // Submitted by Bjoern Henke @@ -11794,6 +11893,10 @@ syno-ds.de synology-diskstation.de synology-ds.de +// Uberspace : https://uberspace.de +// Submitted by Moritz Werner +uber.space + // UDR Limited : http://www.udr.hk.com // Submitted by registry hk.com @@ -11809,10 +11912,18 @@ lib.de.us // Submitted by Simon Kissel router.management +// Western Digital Technologies, Inc : https://www.wdc.com +// Submitted by Jung Jin +remotewd.com + // Wikimedia Labs : https://wikitech.wikimedia.org // Submitted by Yuvi Panda wmflabs.org +// XS4ALL Internet bv: https://www.xs4all.nl/ +// Submitted by Daniel Mostertman +xs4all.space + // Yola : https://www.yola.com/ // Submitted by Stefano Rivera yolasite.com From 578737c116814926fd227860e22d59420cb79204 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 11 Apr 2017 00:09:50 +0200 Subject: [PATCH 225/450] Rubocop 0.48.1 is buggy --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index db22b745..60c9db7b 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,6 @@ gemspec gem "coveralls", require: false gem "minitest" gem "minitest-reporters" -gem "rubocop", require: false +gem "rubocop", "0.47.1", require: false gem "memory_profiler", require: false From bb12e7150dba37f36c033dbdcc4ea3372d1b828b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Go=C5=9Bcicki?= Date: Fri, 9 Jun 2017 16:30:03 +0200 Subject: [PATCH 226/450] Improve and correct documentation --- README.md | 12 ++++++++++++ lib/public_suffix.rb | 26 +++++++++++++++----------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index dda5a65f..06c1b994 100644 --- a/README.md +++ b/README.md @@ -87,8 +87,20 @@ PublicSuffix.valid?("www.google.com") # Explicitly forbidden, it is listed as a private domain PublicSuffix.valid?("blogspot.com") # => false + +# Unknown/not-listed TLD domains are valid by default +PublicSuffix.valid?("example.tldnotlisted") +=> true +``` + +Strict validation (without applying the default * rule): + +```ruby +PublicSuffix.valid?("example.tldnotlisted", default_rule: nil) +=> false ``` + ## Fully Qualified Domain Names This library automatically recognizes Fully Qualified Domain Names. A FQDN is a domain name that end with a trailing dot. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index ba96e860..7b79dd3b 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -28,27 +28,31 @@ module PublicSuffix # # @example Parse a valid domain # PublicSuffix.parse("google.com") - # # => # + # # => # # # @example Parse a valid subdomain # PublicSuffix.parse("www.google.com") - # # => # + # # => # # # @example Parse a fully qualified domain # PublicSuffix.parse("google.com.") - # # => # + # # => # # # @example Parse a fully qualified domain (subdomain) # PublicSuffix.parse("www.google.com.") - # # => # + # # => # # - # @example Parse an invalid domain + # @example Parse an invalid (unlisted) domain # PublicSuffix.parse("x.yz") - # # => PublicSuffix::DomainInvalid + # # => # + # + # @example Parse an invalid (unlisted) domain with strict checking (without applying the default * rule) + # PublicSuffix.parse("x.yz", default_rule: nil) + # # => PublicSuffix::DomainInvalid: `x.yz` is not a valid domain # # @example Parse an URL (not supported, only domains) # PublicSuffix.parse("http://www.google.com") - # # => PublicSuffix::DomainInvalid + # # => PublicSuffix::DomainInvalid: http://www.google.com is not expected to contain a scheme # # # @param [String, #to_s] name The domain name or fully qualified domain name to parse. @@ -95,11 +99,11 @@ def self.parse(name, list: List.default, default_rule: list.default_rule, ignore # PublicSuffix.valid?("example.tldnotlisted") # # => true # - # @example Validate a not-allowed domain - # PublicSuffix.valid?("example.do") - # # => false - # PublicSuffix.valid?("www.example.do") + # @example Validate a not-listed domain with strict checking (without applying the default * rule) + # PublicSuffix.valid?("example.tldnotlisted") # # => true + # PublicSuffix.valid?("example.tldnotlisted", default_rule: nil) + # # => false # # @example Validate a fully qualified domain # PublicSuffix.valid?("google.com.") From 66698da9b13253598f832bd6e3b0a34d24be167d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 10 Jun 2017 11:54:54 +0200 Subject: [PATCH 227/450] Create README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 06c1b994..2a3da4a1 100644 --- a/README.md +++ b/README.md @@ -90,14 +90,14 @@ PublicSuffix.valid?("blogspot.com") # Unknown/not-listed TLD domains are valid by default PublicSuffix.valid?("example.tldnotlisted") -=> true +# => true ``` Strict validation (without applying the default * rule): ```ruby PublicSuffix.valid?("example.tldnotlisted", default_rule: nil) -=> false +# => false ``` From 16a502f64a231d8878385280bc6b472932e89b7a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 28 Jun 2017 11:24:58 +0200 Subject: [PATCH 228/450] Add PSL license info to the README (closes GH-137) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2a3da4a1..c2d9b5d2 100644 --- a/README.md +++ b/README.md @@ -198,3 +198,5 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. ## License Copyright (c) 2009-2017 Simone Carletti. This is Free Software distributed under the MIT license. + +The [Public Suffix List source](https://publicsuffix.org/list/) is subject to the terms of the Mozilla Public License, v. 2.0. From 6f175d66f56673e90991e620e4a8d6b7ff82f84e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 4 Aug 2017 14:34:32 +0200 Subject: [PATCH 229/450] Fix rubocop new preferences --- .rubocop.yml | 11 +++++++++++ .rubocop_defaults.yml | 28 ++++++++++++++++++---------- Gemfile | 2 +- test/unit/list_test.rb | 8 ++++---- 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index b00938f5..38af0d32 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -19,3 +19,14 @@ Style/ClassAndModuleChildren: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' +# Dear Rubocop, I don't want to use String#strip_heredoc +Layout/IndentHeredoc: + Enabled: false + +Style/WordArray: + Enabled: false + MinSize: 3 + +Style/SymbolArray: + Enabled: false + MinSize: 3 diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index 007efbeb..86a8e810 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -80,17 +80,23 @@ Style/Documentation: # Double empty lines are useful to separate conceptually different methods # in the same class or module. -Style/EmptyLines: +Layout/EmptyLines: Enabled: false # In most cases, a space is nice. Sometimes, it's not. # Just be consistent with the rest of the surrounding code. -Style/EmptyLinesAroundClassBody: +Layout/EmptyLinesAroundClassBody: Enabled: false # In most cases, a space is nice. Sometimes, it's not. # Just be consistent with the rest of the surrounding code. -Style/EmptyLinesAroundModuleBody: +Layout/EmptyLinesAroundModuleBody: + Enabled: false + +# This is quite buggy, as it doesn't recognize double lines. +# Double empty lines are useful to separate conceptually different methods +# in the same class or module. +Layout/EmptyLineBetweenDefs: Enabled: false # I personally don't care about the format style. @@ -109,16 +115,16 @@ Style/HashSyntax: # Array indentation should be considered like MultilineMethodCallIndentation indentation # and use 4 spaces instead of 2. -Style/IndentArray: +Layout/IndentArray: IndentationWidth: 4 # Hash indentation should be considered like MultilineMethodCallIndentation indentation # and use 4 spaces instead of 2. -Style/IndentHash: +Layout/IndentHash: IndentationWidth: 4 # Multi-line differs from standard indentation, they are indented twice. -Style/MultilineMethodCallIndentation: +Layout/MultilineMethodCallIndentation: EnforcedStyle: indented IndentationWidth: 4 @@ -126,6 +132,11 @@ Style/MultilineMethodCallIndentation: Style/NegatedIf: Enabled: false +# For years, %w() has been the de-facto standard. A lot of libraries are using (). +# Switching to [] would be a nightmare. +Style/PercentLiteralDelimiters: + Enabled: false + # There are cases were the inline rescue is ok. We can either downgrade the severity, # or rely on the developer judgement on a case-by-case basis. Style/RescueModifier: @@ -139,7 +150,7 @@ Style/RescueModifier: # # %w( foo bar ) # -Style/SpaceInsidePercentLiteralDelimiters: +Layout/SpaceInsidePercentLiteralDelimiters: Enabled: false # Hate It or Love It, I prefer double quotes as this is more consistent @@ -161,6 +172,3 @@ Style/TrivialAccessors: # end # IgnoreClassMethods: true - -Style/WordArray: - Enabled: false diff --git a/Gemfile b/Gemfile index 60c9db7b..db22b745 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,6 @@ gemspec gem "coveralls", require: false gem "minitest" gem "minitest-reporters" -gem "rubocop", "0.47.1", require: false +gem "rubocop", require: false gem "memory_profiler", require: false diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 9af4efce..874c5ccc 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -173,16 +173,16 @@ def test_select_ignore_private def test_self_default_getter PublicSuffix::List.default = nil - assert_nil PublicSuffix::List.class_eval { @default } + assert_nil(PublicSuffix::List.class_eval { @default }) PublicSuffix::List.default - refute_nil PublicSuffix::List.class_eval { @default } + refute_nil(PublicSuffix::List.class_eval { @default }) end def test_self_default_setter PublicSuffix::List.default - refute_nil PublicSuffix::List.class_eval { @default } + refute_nil(PublicSuffix::List.class_eval { @default }) PublicSuffix::List.default = nil - assert_nil PublicSuffix::List.class_eval { @default } + assert_nil(PublicSuffix::List.class_eval { @default }) end def test_self_parse From 97ef80be856c7f5a0b2762dbb57c297d65253584 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 4 Aug 2017 14:47:47 +0200 Subject: [PATCH 230/450] Update definitions --- data/list.txt | 315 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 292 insertions(+), 23 deletions(-) diff --git a/data/list.txt b/data/list.txt index f16e9ef6..1258bdd8 100644 --- a/data/list.txt +++ b/data/list.txt @@ -407,6 +407,7 @@ arq.br art.br ato.br b.br +belem.br bio.br blog.br bmd.br @@ -415,6 +416,8 @@ cng.br cnt.br com.br coop.br +cri.br +def.br ecn.br eco.br edu.br @@ -425,6 +428,7 @@ etc.br eti.br far.br flog.br +floripa.br fm.br fnd.br fot.br @@ -432,9 +436,38 @@ fst.br g12.br ggf.br gov.br +// gov.br 26 states + df https://en.wikipedia.org/wiki/States_of_Brazil +ac.gov.br +al.gov.br +am.gov.br +ap.gov.br +ba.gov.br +ce.gov.br +df.gov.br +es.gov.br +go.gov.br +ma.gov.br +mg.gov.br +ms.gov.br +mt.gov.br +pa.gov.br +pb.gov.br +pe.gov.br +pi.gov.br +pr.gov.br +rj.gov.br +rn.gov.br +ro.gov.br +rr.gov.br +rs.gov.br +sc.gov.br +se.gov.br +sp.gov.br +to.gov.br imb.br ind.br inf.br +jampa.br jor.br jus.br leg.br @@ -450,6 +483,7 @@ not.br ntr.br odo.br org.br +poa.br ppg.br pro.br psc.br @@ -457,6 +491,7 @@ psi.br qsl.br radio.br rec.br +recife.br slg.br srv.br taxi.br @@ -466,6 +501,7 @@ trd.br tur.br tv.br vet.br +vix.br vlog.br wiki.br zlg.br @@ -4407,6 +4443,7 @@ name // nc : http://www.cctld.nc/ nc asso.nc +nom.nc // ne : https://en.wikipedia.org/wiki/.ne ne @@ -6556,6 +6593,9 @@ yt // xn--54b7fta0cc ("Bangla", Bangla) : BD বাংলা +// xn--90ae ("bg", Bulgarian) : BG +бг + // xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY // Operated by .by registry бел @@ -6591,6 +6631,34 @@ yt // https://www2.hkirc.hk/register/rules.jsp 香港 +// xn--2scrj9c ("Bharat", Kannada) : IN +// India +ಭಾರತ + +// xn--3hcrj9c ("Bharat", Oriya) : IN +// India +ଭାରତ + +// xn--45br5cyl ("Bharatam", Assamese) : IN +// India +ভাৰত + +// xn--h2breg3eve ("Bharatam", Sanskrit) : IN +// India +भारतम् + +// xn--h2brj9c8c ("Bharot", Santali) : IN +// India +भारोत + +// xn--mgbgu82a ("Bharat", Sindhi) : IN +// India +ڀارت + +// xn--rvc1e0am3e ("Bharatam", Malayalam) : IN +// India +ഭാരതം + // xn--h2brj9c ("Bharat", Devanagari) : IN // India भारत @@ -9046,9 +9114,6 @@ orange // organic : 2014-03-27 Afilias Limited organic -// orientexpress : 2015-02-05 -orientexpress - // origins : 2015-10-01 The Estée Lauder Companies Inc. origins @@ -10485,6 +10550,12 @@ zuerich // ===BEGIN PRIVATE DOMAINS=== // (Note: these are in alphabetical order by company name) +// 1GB LLC : https://www.1gb.ua/ +// Submitted by 1GB LLC +cc.ua +inf.ua +ltd.ua + // Agnat sp. z o.o. : https://domena.pl // Submitted by Przemyslaw Plewa beep.pl @@ -10502,7 +10573,7 @@ beep.pl // Submitted by Donavan Miller cloudfront.net -// Amazon Elastic Compute Cloud: https://aws.amazon.com/ec2/ +// Amazon Elastic Compute Cloud : https://aws.amazon.com/ec2/ // Submitted by Luke Wells *.compute.amazonaws.com *.compute-1.amazonaws.com @@ -10617,15 +10688,28 @@ betainabox.com // Submitted by Nathan O'Sullivan bnr.la +// Boomla : https://boomla.com +// Submitted by Tibor Halter +boomla.net + // Boxfuse : https://boxfuse.com // Submitted by Axel Fontaine boxfuse.io +// bplaced : https://www.bplaced.net/ +// Submitted by Miroslav Bozic +square7.ch +bplaced.com +bplaced.de +square7.de +bplaced.net +square7.net + // BrowserSafetyMark // Submitted by Dave Tharp browsersafetymark.io -// callidomus: https://www.callidomus.com/ +// callidomus : https://www.callidomus.com/ // Submitted by Marcus Popp mycd.eu @@ -10699,6 +10783,14 @@ virtueeldomein.nl // Submitted by Khash Sajadi c66.me +// CloudAccess.net : https://www.cloudaccess.net/ +// Submitted by Pawel Panek +jdevcloud.com +wpdevcloud.com +cloudaccess.host +freesite.host +cloudaccess.net + // cloudControl : https://www.cloudcontrol.com/ // Submitted by Tobias Wilken cloudcontrolled.com @@ -10737,11 +10829,7 @@ cloudns.us co.nl co.no -// Commerce Guys, SAS -// Submitted by Damien Tournoud -*.platform.sh - -// COSIMO GmbH http://www.cosimo.de +// COSIMO GmbH : http://www.cosimo.de // Submitted by Rene Marticke dyn.cosidns.de dynamisches-dns.de @@ -10791,6 +10879,10 @@ dedyn.io // Submitted by Norbert Auler dnshome.de +// DrayTek Corp. : https://www.draytek.com/ +// Submitted by Paul Fang +drayddns.com + // DreamHost : http://www.dreamhost.com/ // Submitted by Andrew Farmer dreamhosters.com @@ -11106,14 +11198,43 @@ dyn.home-webserver.de myhome-server.de ddnss.org +// Definima : http://www.definima.com/ +// Submitted by Maxence Bitterli +definima.net +definima.io + +// Dynu.com : https://www.dynu.com/ +// Submitted by Sue Ye +ddnsfree.com +ddnsgeek.com +giize.com +gleeze.com +kozow.com +loseyourip.com +ooguy.com +theworkpc.com +casacam.net +dynu.net +accesscam.org +camdvr.org +freeddns.org +mywire.org +webredirect.org +myddns.rocks +blogsite.xyz + // dynv6 : https://dynv6.com -// Submitted by Dominik Menke 2016-01-18 +// Submitted by Dominik Menke dynv6.net // E4YOU spol. s.r.o. : https://e4you.cz/ // Submitted by Vladimir Dudr e4.cz +// Enalean SAS: https://www.enalean.com +// Submitted by Thomas Cottier +mytuleap.com + // Enonic : http://enonic.com/ // Submitted by Erik Kaareng-Sunde enonic.io @@ -11183,9 +11304,19 @@ us.eu.org eu-1.evennode.com eu-2.evennode.com eu-3.evennode.com +eu-4.evennode.com us-1.evennode.com us-2.evennode.com us-3.evennode.com +us-4.evennode.com + +// eDirect Corp. : https://hosting.url.com.tw/ +// Submitted by C.S. chang +twmail.cc +twmail.net +twmail.org +mymailer.com.tw +url.tw // Facebook, Inc. // Submitted by Peter Ruibal @@ -11289,6 +11420,10 @@ fedorainfracloud.org fedorapeople.org cloud.fedoraproject.org +// Filegear Inc. : https://www.filegear.com +// Submitted by Jason Zhu +filegear.me + // Firebase, Inc. // Submitted by Chris Raynor firebaseapp.com @@ -11296,6 +11431,7 @@ firebaseapp.com // Flynn : https://flynn.io // Submitted by Jonathan Rudenberg flynnhub.com +flynnhosting.net // Freebox : http://www.freebox.fr // Submitted by Romain Fliedel @@ -11326,11 +11462,6 @@ service.gov.uk // Submitted by Patrick Toomey github.io githubusercontent.com -githubcloud.com -*.api.githubcloud.com -*.ext.githubcloud.com -gist.githubcloud.com -*.githubcloudusercontent.com // GitLab, Inc. // Submitted by Alex Hanselka @@ -11428,6 +11559,7 @@ blogspot.tw blogspot.ug blogspot.vn cloudfunctions.net +cloud.goog codespot.com googleapis.com googlecode.com @@ -11464,6 +11596,10 @@ iki.fi biz.at info.at +// info.cx : http://info.cx +// Submitted by Jacob Slater +info.cx + // Interlegis : http://www.interlegis.leg.br // Submitted by Gabriel Ferreira ac.leg.br @@ -11519,10 +11655,40 @@ knightpoint.systems co.krd edu.krd +// LCube - Professional hosting e.K. : https://www.lcube-webhosting.de +// Submitted by Lars Laehn +git-repos.de +lcube-server.de +svn-repos.de + +// LiquidNet Ltd : http://www.liquidnetlimited.com/ +// Submitted by Victor Velchev +we.bs + +// Lukanet Ltd : https://lukanet.com +// Submitted by Anton Avramov +barsy.bg +barsyonline.com +barsy.de +barsy.eu +barsy.in +barsy.net +barsy.online +barsy.support + // Magento Commerce // Submitted by Damien Tournoud *.magentosite.cloud +// Mail.Ru Group : https://hb.cldmail.ru +// Submitted by Ilya Zaretskiy +hb.cldmail.ru + +// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ +// Submitted by Zdeněk Šustr +cloud.metacentrum.cz +custom.metacentrum.cz + // Meteor Development Group : https://www.meteor.com/hosting // Submitted by Pierre Carrier meteorapp.com @@ -11541,6 +11707,17 @@ cloudapp.net // Submitted by glob bmoattachments.org +// MSK-IX : https://www.msk-ix.ru/ +// Submitted by Khannanov Roman +net.ru +org.ru +pp.ru + +// Netlify : https://www.netlify.com +// Submitted by Jessica Parsons +bitballoon.com +netlify.com + // Neustar Inc. // Submitted by Trung Tran 4u.com @@ -11646,10 +11823,59 @@ sytes.net webhop.me zapto.org +// NodeArt : https://nodeart.io +// Submitted by Konstantin Nosov +stage.nodeart.io + +// Nodum B.V. : https://nodum.io/ +// Submitted by Wietse Wind +nodum.co +nodum.io + // NYC.mn : http://www.information.nyc.mn // Submitted by Matthew Brown nyc.mn +// NymNom : https://nymnom.com/ +// Submitted by Dave McCormack +nom.ae +nom.ai +nom.al +nym.by +nym.bz +nom.cl +nom.gd +nom.gl +nym.gr +nom.gt +nom.hn +nom.im +nym.kz +nym.la +nom.li +nym.li +nym.lt +nym.lu +nym.me +nom.mk +nym.mx +nom.nu +nym.nz +nym.pe +nym.pt +nom.pw +nom.qa +nom.rs +nom.si +nym.sk +nym.su +nym.sx +nym.tw +nom.ug +nom.uy +nom.vc +nom.vg + // Octopodal Solutions, LLC. : https://ulterius.io/ // Submitted by Andrew Sampson cya.gg @@ -11707,6 +11933,11 @@ mypep.link // Submitted by Frédéric VANNIÈRE on-web.fr +// Platform.sh : https://platform.sh +// Submitted by Nikola Kotur +*.platform.sh +*.platformsh.site + // prgmr.com : https://prgmr.com/ // Submitted by Sarah Newman xen.prgmr.com @@ -11733,6 +11964,10 @@ dev-myqnapcloud.com alpha-myqnapcloud.com myqnapcloud.com +// Quip : https://quip.com +// Submitted by Patrick Linehan +*.quipelements.com + // Qutheory LLC : http://qutheory.io // Submitted by Jonas Schwartz vapor.cloud @@ -11834,6 +12069,10 @@ stackspace.space // Submitted by Philip Hutchins storj.farm +// Sub 6 Limited: http://www.sub6.com +// Submitted by Dan Miller +temp-dns.com + // Synology, Inc. : https://www.synology.com/ // Submitted by Rony Weng diskstation.me @@ -11862,11 +12101,40 @@ gdynia.pl med.pl sopot.pl +// Thingdust AG : https://thingdust.com/ +// Submitted by Adrian Imboden +cust.dev.thingdust.io +cust.disrec.thingdust.io +cust.prod.thingdust.io +cust.testing.thingdust.io + // TownNews.com : http://www.townnews.com // Submitted by Dustin Ward bloxcms.com townnews-staging.com +// TrafficPlex GmbH : https://www.trafficplex.de/ +// Submitted by Phillipp Röll +12hp.at +2ix.at +4lima.at +lima-city.at +12hp.ch +2ix.ch +4lima.ch +lima-city.ch +trafficplex.cloud +de.cool +12hp.de +2ix.de +4lima.de +lima-city.de +1337.pictures +clan.rip +lima-city.rocks +webspace.rocks +lima.zone + // TransIP : htts://www.transip.nl // Submitted by Rory Breuk *.transurl.be @@ -11912,6 +12180,11 @@ lib.de.us // Submitted by Simon Kissel router.management +// WeDeploy by Liferay, Inc. : https://www.wedeploy.com +// Submitted by Henrique Vicente +wedeploy.io +wedeploy.me + // Western Digital Technologies, Inc : https://www.wdc.com // Submitted by Jung Jin remotewd.com @@ -11920,8 +12193,10 @@ remotewd.com // Submitted by Yuvi Panda wmflabs.org -// XS4ALL Internet bv: https://www.xs4all.nl/ +// XS4ALL Internet bv : https://www.xs4all.nl/ // Submitted by Daniel Mostertman +cistron.nl +demon.nl xs4all.space // Yola : https://www.yola.com/ @@ -11947,10 +12222,4 @@ za.org // Submitted by Olli Vanhoja now.sh -// 1GB LLC : https://www.1gb.ua/ -// Submitted by 1GB LLC -cc.ua -inf.ua -ltd.ua - // ===END PRIVATE DOMAINS=== From 995e9e56ea7248743901c9be680e6ce508012ea7 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 4 Aug 2017 14:51:13 +0200 Subject: [PATCH 231/450] Updated CHANGELOG information about GH-133 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7065a76b..2d51bfa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,19 @@ #### master +This new version includes a major redesign of the library internals, with the goal to drastically +improve the lookup time while reducing storage space. + +For this reason, several public methods that are no longer applicable have been deprecated +and/or removed. You can find more information at GH-133. + - CHANGED: Updated definitions. - CHANGED: Dropped support for Ruby < 2.1 - CHANGED: `PublicSuffix::List#rules` is now protected. You should not rely on it as the internal rule representation is subject to change to optimize performances. - CHANGED: Removed `PublicSuffix::List.clear`, it was an unnecessary accessor method. Use `PublicSuffix::List.default = nil` if you **really** need to reset the default list. You shouldn't. - CHANGED: `PublicSuffix::List#select` is now private. You should not use it, instead use `PublicSuffix::List#find`. - CHANGED: `PublicSuffix::List` no longer implements Enumerable. Instead, use `#each` to loop over, or get an Enumerator. +- CHANGED: Redesigned internal list storage and lookup algorithm to achieve O(1) lookup time (see GH-133). #### Release 2.0.5 From 3a8a8c59087c7ed1e8912dc0396d94ab9671fd84 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 4 Aug 2017 14:52:05 +0200 Subject: [PATCH 232/450] Release 3.0.0 --- CHANGELOG.md | 4 +++- lib/public_suffix/version.rb | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d51bfa6..ab62ddc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog -#### master + +#### Release 3.0.0 This new version includes a major redesign of the library internals, with the goal to drastically improve the lookup time while reducing storage space. @@ -16,6 +17,7 @@ and/or removed. You can find more information at GH-133. - CHANGED: `PublicSuffix::List` no longer implements Enumerable. Instead, use `#each` to loop over, or get an Enumerator. - CHANGED: Redesigned internal list storage and lookup algorithm to achieve O(1) lookup time (see GH-133). + #### Release 2.0.5 - CHANGED: Updated definitions. diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index bfb58afd..b422ab1a 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -6,5 +6,5 @@ module PublicSuffix # The current library version. - VERSION = "2.0.5".freeze + VERSION = "3.0.0".freeze end From a157c3d7f27f99f6662907ba26baa8c233d79b4b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 4 Aug 2017 15:03:10 +0200 Subject: [PATCH 233/450] Update Travis config --- .travis.yml | 21 ++++++++++----------- README.md | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index f63ea840..30d827b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,26 +1,25 @@ language: ruby rvm: + - 2.0 - 2.1 - 2.2 - - 2.3.3 - - 2.4.0 + - 2.3 + - 2.4 + - jruby-9.1.5.0 - ruby-head - - jruby-9.0.5.0 - - jruby-9.1.0.0 -before_install: - - gem update --system - - gem install bundler +env: + - COVERALL=1 cache: - bundler -env: - - COVERALL=1 - matrix: allow_failures: - rvm: ruby-head - - rvm: jruby-9.0.5.0 - rvm: jruby-9.1.0.0 + +before_install: + - rvm get latest + - gem install bundler \ No newline at end of file diff --git a/README.md b/README.md index c2d9b5d2..1e066822 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ## Requirements -- Ruby >= 2.0 +- Ruby >= 2.1 For an older versions of Ruby use a previous release. From dc7702db0a8a84ed272b3b900da33812029b43c1 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 4 Aug 2017 18:27:54 +0200 Subject: [PATCH 234/450] 2.0 is no longer supported --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 30d827b7..3542f984 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: ruby rvm: - - 2.0 - 2.1 - 2.2 - 2.3 @@ -22,4 +21,4 @@ matrix: before_install: - rvm get latest - - gem install bundler \ No newline at end of file + - gem install bundler From 03436a8da1d9dfa53f4bfc27d9398dfaab44ea9e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 31 Oct 2017 10:34:28 -0700 Subject: [PATCH 235/450] Fix wrong docs Closes GH-145 --- lib/public_suffix/list.rb | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 04e53a98..4bd432f8 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -51,9 +51,7 @@ def self.default(**options) # Sets the default rule list to +value+. # - # @param [PublicSuffix::List] value - # The new rule list. - # + # @param value [PublicSuffix::List] the new list # @return [PublicSuffix::List] def self.default=(value) @default = value @@ -63,9 +61,9 @@ def self.default=(value) # # See http://publicsuffix.org/format/ for more details about input format. # - # @param string [#each_line] The list to parse. - # @param private_domains [Boolean] whether to ignore the private domains section. - # @return [Array] + # @param string [#each_line] the list to parse + # @param private_domains [Boolean] whether to ignore the private domains section + # @return [PublicSuffix::List] def self.parse(input, private_domains: true) comment_token = "//".freeze private_token = "===BEGIN PRIVATE DOMAINS===".freeze From f1b3142078406a7480d2817f5657ac6b6e126d38 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 31 Oct 2017 10:56:05 -0700 Subject: [PATCH 236/450] Fix Rubocop offenses --- .rubocop_defaults.yml | 3 +++ test/unit/list_test.rb | 20 ++++++++++---------- test/unit/public_suffix_test.rb | 6 +++--- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index 86a8e810..1e73daac 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -6,6 +6,9 @@ AllCops: - 'tmp/**/*' - 'vendor/**/*' +Lint/RescueWithoutErrorClass: + Enabled: false + # [codesmell] Metrics/AbcSize: Enabled: false diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 874c5ccc..693945d1 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -28,10 +28,10 @@ def test_equality_with_internals end def test_each_without_block - list = PublicSuffix::List.parse(< Date: Wed, 8 Nov 2017 16:52:20 +0000 Subject: [PATCH 237/450] Improve performance and avoid allocation. --- lib/public_suffix/rule.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index f5d8169f..735ad725 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -165,7 +165,7 @@ def match?(name) # we need to properly walk the input and skip parts according # to wildcard component. diff = name.chomp(value) - diff.empty? || diff[-1] == DOT + diff.empty? || diff.end_with?(DOT) end # @abstract From 8a2baf19bbfe33e72b9db4a60cad9682da3310e6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 8 Nov 2017 12:02:18 -0500 Subject: [PATCH 238/450] Updated definitions --- CHANGELOG.md | 5 +++ data/list.txt | 103 ++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 88 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab62ddc1..1419f731 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### master + +- CHANGED: Updated definitions. + + #### Release 3.0.0 This new version includes a major redesign of the library internals, with the goal to drastically diff --git a/data/list.txt b/data/list.txt index 1258bdd8..ebd88d4c 100644 --- a/data/list.txt +++ b/data/list.txt @@ -399,24 +399,34 @@ tv.bo // br : http://registro.br/dominio/categoria.html // Submitted by registry br +abc.br adm.br adv.br agr.br +aju.br am.br +aparecida.br arq.br art.br ato.br b.br belem.br +bhz.br bio.br blog.br bmd.br +boavista.br +bsb.br +campinas.br +caxias.br cim.br cng.br cnt.br com.br +contagem.br coop.br cri.br +cuiaba.br def.br ecn.br eco.br @@ -427,14 +437,17 @@ esp.br etc.br eti.br far.br +feira.br flog.br floripa.br fm.br fnd.br +fortal.br fot.br fst.br g12.br ggf.br +goiania.br gov.br // gov.br 26 states + df https://en.wikipedia.org/wiki/States_of_Brazil ac.gov.br @@ -464,42 +477,65 @@ sc.gov.br se.gov.br sp.gov.br to.gov.br +gru.br imb.br ind.br inf.br +jab.br jampa.br +jdf.br +joinville.br jor.br jus.br leg.br lel.br +londrina.br +macapa.br +maceio.br mat.br med.br mil.br +morena.br mp.br mus.br +natal.br net.br +niteroi.br *.nom.br not.br ntr.br odo.br org.br +osasco.br +palmas.br poa.br ppg.br pro.br psc.br psi.br +pvh.br qsl.br radio.br rec.br recife.br +ribeirao.br +rio.br +riobranco.br +salvador.br +sampa.br +sjc.br slg.br +slz.br +sorocaba.br srv.br taxi.br teo.br +the.br tmp.br trd.br tur.br tv.br +udi.br vet.br vix.br vlog.br @@ -6472,6 +6508,17 @@ lib.wy.us pvt.k12.ma.us chtr.k12.ma.us paroch.k12.ma.us +// Merit Network, Inc. maintains the registry for =~ /(k12|cc|lib).mi.us/ and the following +// see also: http://domreg.merit.edu +// see also: whois -h whois.domreg.merit.edu help +ann-arbor.mi.us +cog.mi.us +dst.mi.us +eaton.mi.us +gen.mi.us +mus.mi.us +tec.mi.us +washtenaw.mi.us // uy : http://www.nic.org.uy/ uy @@ -7473,9 +7520,6 @@ cheap // chintai : 2015-06-11 CHINTAI Corporation chintai -// chloe : 2014-10-16 Richemont DNS Inc. -chloe - // christmas : 2013-11-21 Uniregistry, Corp. christmas @@ -8346,9 +8390,6 @@ how // hsbc : 2014-10-24 HSBC Holdings PLC hsbc -// htc : 2015-04-02 HTC corporation -htc - // hughes : 2015-07-30 Hughes Satellite Systems Corporation hughes @@ -8802,12 +8843,6 @@ mattel // mba : 2015-04-02 Lone Hollow, LLC mba -// mcd : 2015-07-30 McDonald’s Corporation -mcd - -// mcdonalds : 2015-07-30 McDonald’s Corporation -mcdonalds - // mckinsey : 2015-07-31 McKinsey Holdings, Inc. mckinsey @@ -8898,9 +8933,6 @@ money // monster : 2015-09-11 Monster Worldwide, Inc. monster -// montblanc : 2014-06-23 Richemont DNS Inc. -montblanc - // mopar : 2015-07-30 FCA US LLC. mopar @@ -9132,9 +9164,6 @@ ovh // page : 2014-12-04 Charleston Road Registry Inc. page -// pamperedchef : 2015-02-05 The Pampered Chef, Ltd. -pamperedchef - // panasonic : 2015-07-30 Panasonic Corporation panasonic @@ -10582,8 +10611,23 @@ us-east-1.amazonaws.com // Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/ // Submitted by Luke Wells -elasticbeanstalk.cn-north-1.amazonaws.com.cn -*.elasticbeanstalk.com +cn-north-1.eb.amazonaws.com.cn +elasticbeanstalk.com +ap-northeast-1.elasticbeanstalk.com +ap-northeast-2.elasticbeanstalk.com +ap-south-1.elasticbeanstalk.com +ap-southeast-1.elasticbeanstalk.com +ap-southeast-2.elasticbeanstalk.com +ca-central-1.elasticbeanstalk.com +eu-central-1.elasticbeanstalk.com +eu-west-1.elasticbeanstalk.com +eu-west-2.elasticbeanstalk.com +sa-east-1.elasticbeanstalk.com +us-east-1.elasticbeanstalk.com +us-east-2.elasticbeanstalk.com +us-gov-west-1.elasticbeanstalk.com +us-west-1.elasticbeanstalk.com +us-west-2.elasticbeanstalk.com // Amazon Elastic Load Balancing : https://aws.amazon.com/elasticloadbalancing/ // Submitted by Luke Wells @@ -10871,6 +10915,10 @@ firm.dk reg.dk store.dk +// Debian : https://www.debian.org/ +// Submitted by Peter Palfrader / Debian Sysadmin Team +debian.net + // deSEC : https://desec.io/ // Submitted by Peter Thomassen dedyn.io @@ -11398,6 +11446,10 @@ vladikavkaz.su vladimir.su vologda.su +// Fancy Bits, LLC : http://getchannels.com +// Submitted by Aman Gupta +channelsdvr.net + // Fastly Inc. : http://www.fastly.com/ // Submitted by Fastly Security fastlylb.net @@ -11448,6 +11500,7 @@ myfusion.cloud // Futureweb OG : http://www.futureweb.at // Submitted by Andreas Schnederle-Wagner +*.futurecms.at futurehosting.at futuremailing.at *.ex.ortsinfo.at @@ -11630,6 +11683,10 @@ se.leg.br sp.leg.br to.leg.br +// intermetrics GmbH : https://pixolino.com/ +// Submitted by Wolfgang Schwarz +pixolino.com + // IPiFony Systems, Inc. : https://www.ipifony.com/ // Submitted by Matthew Hardeman ipifony.net @@ -11953,6 +12010,7 @@ protonet.io // Publication Presse Communication SARL : https://ppcom.fr // Submitted by Yaacov Akiba Slama chirurgiens-dentistes-en-france.fr +byen.site // QA2 // Submitted by Daniel Dent (https://www.danieldent.com/) @@ -12180,10 +12238,15 @@ lib.de.us // Submitted by Simon Kissel router.management +// Virtual-Info : https://www.virtual-info.info/ +// Submitted by Adnan RIHAN +v-info.info + // WeDeploy by Liferay, Inc. : https://www.wedeploy.com // Submitted by Henrique Vicente wedeploy.io wedeploy.me +wedeploy.sh // Western Digital Technologies, Inc : https://www.wdc.com // Submitted by Jung Jin From d63f20c6ea6f8f3e80df679a820e8b6d1ae6d164 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 8 Nov 2017 12:03:01 -0500 Subject: [PATCH 239/450] Changelog for GH-146 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1419f731..a12ae918 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ #### master - CHANGED: Updated definitions. +- CHANGED: Improve performance and avoid allocation (GH-146). [Thanks @robholland] #### Release 3.0.0 From 0c0561d0fe0c8e1c5cd78c9b97e01595455103e3 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 8 Nov 2017 15:43:15 -0500 Subject: [PATCH 240/450] Release 3.0.1 --- CHANGELOG.md | 2 +- lib/public_suffix/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a12ae918..57cf3909 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog -#### master +#### Release 3.0.1 - CHANGED: Updated definitions. - CHANGED: Improve performance and avoid allocation (GH-146). [Thanks @robholland] diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index b422ab1a..252da920 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -6,5 +6,5 @@ module PublicSuffix # The current library version. - VERSION = "3.0.0".freeze + VERSION = "3.0.1".freeze end From 844f8989e744c9aafa41506b75848fb4bd985d13 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 12 Feb 2018 10:08:19 +0100 Subject: [PATCH 241/450] Update Rubocop --- .rubocop_defaults.yml | 11 ++++++++--- test/psl_test.rb | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index 1e73daac..a93d9e4e 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -6,9 +6,6 @@ AllCops: - 'tmp/**/*' - 'vendor/**/*' -Lint/RescueWithoutErrorClass: - Enabled: false - # [codesmell] Metrics/AbcSize: Enabled: false @@ -108,6 +105,11 @@ Layout/EmptyLineBetweenDefs: Style/FormatString: Enabled: false +# Annotated tokens (like %s) are a good thing, but in most cases we don't need them. +# %s is a simpler and straightforward version that works in almost all cases. So don't complain. +Style/FormatStringToken: + Enabled: false + # Prefer the latest Hash syntax Style/HashSyntax: Exclude: @@ -116,6 +118,9 @@ Style/HashSyntax: # that looks nicer with the old rocket syntax. - 'Rakefile' +Style/RescueStandardError: + Enabled: false + # Array indentation should be considered like MultilineMethodCallIndentation indentation # and use 4 spaces instead of 2. Layout/IndentArray: diff --git a/test/psl_test.rb b/test/psl_test.rb index 81d3f9eb..0ccc2fa8 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -24,7 +24,7 @@ def self.tests [input, output] end end - # rubocop:enable + # rubocop:enable Security/Eval def test_valid From 15d17398f26e4f867f470ab4cd599adc63e9be2e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 12 Feb 2018 10:09:18 +0100 Subject: [PATCH 242/450] Test against 2.5 (closes GH-148) --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 3542f984..e023d2eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ rvm: - 2.2 - 2.3 - 2.4 + - 2.5 - jruby-9.1.5.0 - ruby-head From da7b20b0d145838d92b9ea2b1c99a7aa5e6af7ae Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 12 Feb 2018 10:10:21 +0100 Subject: [PATCH 243/450] Update definitions --- CHANGELOG.md | 5 +++ data/list.txt | 100 +++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 96 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57cf3909..e9b4f4f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### master + +- CHANGED: Updated definitions. + + #### Release 3.0.1 - CHANGED: Updated definitions. diff --git a/data/list.txt b/data/list.txt index ebd88d4c..b2d261ec 100644 --- a/data/list.txt +++ b/data/list.txt @@ -384,27 +384,62 @@ org.bm // bn : https://en.wikipedia.org/wiki/.bn *.bn -// bo : http://www.nic.bo/ +// bo : https://nic.bo/delegacion2015.php#h-1.10 bo com.bo edu.bo -gov.bo gob.bo int.bo org.bo net.bo mil.bo tv.bo +web.bo +// Social Domains +academia.bo +agro.bo +arte.bo +blog.bo +bolivia.bo +ciencia.bo +cooperativa.bo +democracia.bo +deporte.bo +ecologia.bo +economia.bo +empresa.bo +indigena.bo +industria.bo +info.bo +medicina.bo +movimiento.bo +musica.bo +natural.bo +nombre.bo +noticias.bo +patria.bo +politica.bo +profesional.bo +plurinacional.bo +pueblo.bo +revista.bo +salud.bo +tecnologia.bo +tksat.bo +transporte.bo +wiki.bo // br : http://registro.br/dominio/categoria.html // Submitted by registry br +9guacu.br abc.br adm.br adv.br agr.br aju.br am.br +anani.br aparecida.br arq.br art.br @@ -417,6 +452,7 @@ blog.br bmd.br boavista.br bsb.br +campinagrande.br campinas.br caxias.br cim.br @@ -427,6 +463,7 @@ contagem.br coop.br cri.br cuiaba.br +curitiba.br def.br ecn.br eco.br @@ -444,6 +481,7 @@ fm.br fnd.br fortal.br fot.br +foz.br fst.br g12.br ggf.br @@ -492,6 +530,8 @@ lel.br londrina.br macapa.br maceio.br +manaus.br +maringa.br mat.br med.br mil.br @@ -521,8 +561,13 @@ recife.br ribeirao.br rio.br riobranco.br +riopreto.br salvador.br sampa.br +santamaria.br +santoandre.br +saobernardo.br +saogonca.br sjc.br slg.br slz.br @@ -3492,8 +3537,17 @@ uenohara.yamanashi.jp yamanakako.yamanashi.jp yamanashi.yamanashi.jp -// ke : http://www.kenic.or.ke/index.php?option=com_content&task=view&id=117&Itemid=145 -*.ke +// ke : http://www.kenic.or.ke/index.php/en/ke-domains/ke-domains +ke +ac.ke +co.ke +go.ke +info.ke +me.ke +mobi.ke +ne.ke +or.ke +sc.ke // kg : http://www.domain.kg/dmn_n.html kg @@ -10585,6 +10639,12 @@ cc.ua inf.ua ltd.ua +// AgileBits Inc : https://agilebits.com +// Submitted by Roustem Karimov +1password.ca +1password.com +1password.eu + // Agnat sp. z o.o. : https://domena.pl // Submitted by Przemyslaw Plewa beep.pl @@ -10596,7 +10656,7 @@ beep.pl // alwaysdata : https://www.alwaysdata.com // Submitted by Cyril -*.alwaysdata.net +alwaysdata.net // Amazon CloudFront : https://aws.amazon.com/cloudfront/ // Submitted by Donavan Miller @@ -10622,6 +10682,7 @@ ca-central-1.elasticbeanstalk.com eu-central-1.elasticbeanstalk.com eu-west-1.elasticbeanstalk.com eu-west-2.elasticbeanstalk.com +eu-west-3.elasticbeanstalk.com sa-east-1.elasticbeanstalk.com us-east-1.elasticbeanstalk.com us-east-2.elasticbeanstalk.com @@ -10646,6 +10707,7 @@ s3-ca-central-1.amazonaws.com s3-eu-central-1.amazonaws.com s3-eu-west-1.amazonaws.com s3-eu-west-2.amazonaws.com +s3-eu-west-3.amazonaws.com s3-external-1.amazonaws.com s3-fips-us-gov-west-1.amazonaws.com s3-sa-east-1.amazonaws.com @@ -10659,6 +10721,7 @@ s3.cn-north-1.amazonaws.com.cn s3.ca-central-1.amazonaws.com s3.eu-central-1.amazonaws.com s3.eu-west-2.amazonaws.com +s3.eu-west-3.amazonaws.com s3.us-east-2.amazonaws.com s3.dualstack.ap-northeast-1.amazonaws.com s3.dualstack.ap-northeast-2.amazonaws.com @@ -10669,6 +10732,7 @@ s3.dualstack.ca-central-1.amazonaws.com s3.dualstack.eu-central-1.amazonaws.com s3.dualstack.eu-west-1.amazonaws.com s3.dualstack.eu-west-2.amazonaws.com +s3.dualstack.eu-west-3.amazonaws.com s3.dualstack.sa-east-1.amazonaws.com s3.dualstack.us-east-1.amazonaws.com s3.dualstack.us-east-2.amazonaws.com @@ -10685,6 +10749,7 @@ s3-website.ap-south-1.amazonaws.com s3-website.ca-central-1.amazonaws.com s3-website.eu-central-1.amazonaws.com s3-website.eu-west-2.amazonaws.com +s3-website.eu-west-3.amazonaws.com s3-website.us-east-2.amazonaws.com // Amune : https://amune.org/ @@ -10873,6 +10938,11 @@ cloudns.us co.nl co.no +// Combell.com : https://www.combell.com +// Submitted by Thomas Wouters +webhosting.be +hosting-cluster.nl + // COSIMO GmbH : http://www.cosimo.de // Submitted by Rene Marticke dyn.cosidns.de @@ -11471,6 +11541,8 @@ fhapp.xyz fedorainfracloud.org fedorapeople.org cloud.fedoraproject.org +app.os.fedoraproject.org +app.os.stg.fedoraproject.org // Filegear Inc. : https://www.filegear.com // Submitted by Jason Zhu @@ -11494,10 +11566,6 @@ fbxos.fr freebox-os.fr freeboxos.fr -// Fusion Intranet : https://www.fusion-intranet.com -// Submitted by Matthias Burtscher -myfusion.cloud - // Futureweb OG : http://www.futureweb.at // Submitted by Andreas Schnederle-Wagner *.futurecms.at @@ -11783,6 +11851,10 @@ netlify.com // Submitted by Alan Shreve ngrok.io +// Nimbus Hosting Ltd. : https://www.nimbushosting.co.uk/ +// Submitted by Nicholas Ford +nh-serv.co.uk + // NFSN, Inc. : https://www.NearlyFreeSpeech.NET/ // Submitted by Jeff Wheelhouse nfshost.com @@ -12040,6 +12112,11 @@ rackmaze.net // Submitted by Tim Kramer rhcloud.com +// Resin.io : https://resin.io +// Submitted by Tim Perry +resindevice.io +devices.resinstaging.io + // RethinkDB : https://www.rethinkdb.com/ // Submitted by Chris Kastorff hzc.io @@ -12059,6 +12136,10 @@ sandcats.io logoip.de logoip.com +// Scry Security : http://www.scrysec.com +// Submitted by Shante Adam +scrysec.com + // Securepoint GmbH : https://www.securepoint.de // Submitted by Erik Anders firewall-gateway.com @@ -12074,6 +12155,7 @@ spdns.org // SensioLabs, SAS : https://sensiolabs.com/ // Submitted by Fabien Potencier +*.s5y.io *.sensiosite.cloud // Service Online LLC : http://drs.ua/ From 65ab7c92624bf868094f56b70d58f8a1bcd28d88 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 12 Feb 2018 10:11:39 +0100 Subject: [PATCH 244/450] Release 3.0.2 --- CHANGELOG.md | 2 +- LICENSE.txt | 2 +- README.md | 2 +- lib/public_suffix.rb | 2 +- lib/public_suffix/domain.rb | 2 +- lib/public_suffix/errors.rb | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- lib/public_suffix/version.rb | 4 ++-- test/acceptance_test.rb | 2 +- test/unit/public_suffix_test.rb | 6 +++--- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9b4f4f2..ccfeb32b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog -#### master +#### Release 3.0.2 - CHANGED: Updated definitions. diff --git a/LICENSE.txt b/LICENSE.txt index 81fe94d9..69e44dac 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2009-2017 Simone Carletti +Copyright (c) 2009-2018 Simone Carletti MIT License diff --git a/README.md b/README.md index 1e066822..a82c95a1 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,6 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. ## License -Copyright (c) 2009-2017 Simone Carletti. This is Free Software distributed under the MIT license. +Copyright (c) 2009-2018 Simone Carletti. This is Free Software distributed under the MIT license. The [Public Suffix List source](https://publicsuffix.org/list/) is subject to the terms of the Mozilla Public License, v. 2.0. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 7b79dd3b..c94eb66f 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2017 Simone Carletti +# Copyright (c) 2009-2018 Simone Carletti require_relative "public_suffix/domain" require_relative "public_suffix/version" diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 4c4edd44..147b88f3 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2017 Simone Carletti +# Copyright (c) 2009-2018 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index a636e76b..687befb4 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2017 Simone Carletti +# Copyright (c) 2009-2018 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 4bd432f8..697a213c 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2017 Simone Carletti +# Copyright (c) 2009-2018 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 735ad725..ec2ecd0c 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -2,7 +2,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2017 Simone Carletti +# Copyright (c) 2009-2018 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 252da920..3866d960 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -2,9 +2,9 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2017 Simone Carletti +# Copyright (c) 2009-2018 Simone Carletti module PublicSuffix # The current library version. - VERSION = "3.0.1".freeze + VERSION = "3.0.2".freeze end diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 147f41f0..ce53bb8f 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -32,7 +32,7 @@ def test_valid INVALID_CASES = [ - ["nic.ke", PublicSuffix::DomainNotAllowed], + ["nic.bd", PublicSuffix::DomainNotAllowed], [nil, PublicSuffix::DomainInvalid], ["", PublicSuffix::DomainInvalid], [" ", PublicSuffix::DomainInvalid], diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index a56cd0dc..a505ce1d 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -87,8 +87,8 @@ def test_self_parse_with_notlisted_name end def test_self_parse_with_unallowed_domain - error = assert_raises(PublicSuffix::DomainNotAllowed) { PublicSuffix.parse("example.ke") } - assert_match(/example\.ke/, error.message) + error = assert_raises(PublicSuffix::DomainNotAllowed) { PublicSuffix.parse("example.bd") } + assert_match(/example\.bd/, error.message) end def test_self_parse_with_uri @@ -128,7 +128,7 @@ def test_self_domain_with_notlisted_name end def test_self_domain_with_unallowed_name - assert_nil PublicSuffix.domain("example.ke") + assert_nil PublicSuffix.domain("example.bd") end def test_self_domain_with_blank_sld From 8bbd236f0ca8ec137cb071c7ecf6a52198d1c497 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 11 Jun 2018 07:51:30 +0200 Subject: [PATCH 245/450] Update docblock Closes GH-151 --- lib/public_suffix/domain.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 147b88f3..07ca8894 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -173,8 +173,6 @@ def subdomain # This method doesn't actually validate the domain. # It only checks whether the instance contains # a value for the {#tld} and {#sld} attributes. - # If you also want to validate the domain, - # use {#valid_domain?} instead. # # @example # From 8841e493dd5155e8416657e42e9a8504cad41887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20H=C3=BCbotter?= Date: Tue, 26 Jun 2018 11:41:27 +0200 Subject: [PATCH 246/450] Update .rubocop_defaults.yml (#153) Fix error "Error: The `Style/TrailingCommaInLiteral` cop no longer exists. Please use `Style/TrailingCommaInArrayLiteral` and/or `Style/TrailingCommaInHashLiteral` instead." --- .rubocop_defaults.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index a93d9e4e..4d07840d 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -168,7 +168,9 @@ Style/StringLiterals: # It's nice to be consistent. The trailing comma also allows easy reordering, # and doesn't cause a diff in Git when you add a line to the bottom. -Style/TrailingCommaInLiteral: +Style/TrailingCommaInArrayLiteral: + EnforcedStyleForMultiline: consistent_comma +Style/TrailingCommaInHashLiteral: EnforcedStyleForMultiline: consistent_comma Style/TrivialAccessors: From 4556aa4e660ff9e7b222bf0e7fe040bf2384a79a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 26 Jun 2018 11:44:46 +0200 Subject: [PATCH 247/450] Fix Rubocop new warnings --- .rubocop.yml | 4 ++++ lib/public_suffix/list.rb | 2 +- test/psl_test.rb | 2 +- test/test_helper.rb | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 38af0d32..5283089c 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -14,6 +14,10 @@ AllCops: - 'test/benchmarks/**/*' - 'test/profilers/**/*' +# I often use @_variable to avoid clashing. +Naming/MemoizedInstanceVariableName: + Enabled: false + Style/ClassAndModuleChildren: Exclude: - 'spec/**/*_spec.rb' diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 697a213c..605a9186 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -212,7 +212,7 @@ def select(name, ignore_private: false) rules end - private :select + private :select # rubocop:disable Style/AccessModifierDeclarations # Gets the default rule. # diff --git a/test/psl_test.rb b/test/psl_test.rb index 0ccc2fa8..004eb26e 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -5,7 +5,7 @@ # the definitions satisfies the test suite. class PslTest < Minitest::Test - ROOT = File.expand_path("../../", __FILE__) + ROOT = File.expand_path("..", __dir__) # rubocop:disable Security/Eval def self.tests diff --git a/test/test_helper.rb b/test/test_helper.rb index 943e7c79..55a9643b 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,5 +9,5 @@ Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true) -$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) +$LOAD_PATH.unshift File.expand_path("../lib", __dir__) require "public_suffix" From a9feb702b8ca79d363e86651c30cecd14f0167a2 Mon Sep 17 00:00:00 2001 From: William Montgomery Date: Wed, 15 Aug 2018 13:53:09 -0400 Subject: [PATCH 248/450] Update definitions (#154) --- data/list.txt | 1141 +++++++++++++++++++++++++++++++------------------ 1 file changed, 715 insertions(+), 426 deletions(-) diff --git a/data/list.txt b/data/list.txt index b2d261ec..f671831a 100644 --- a/data/list.txt +++ b/data/list.txt @@ -381,8 +381,13 @@ gov.bm net.bm org.bm -// bn : https://en.wikipedia.org/wiki/.bn -*.bn +// bn : http://www.bnnic.bn/faqs +bn +com.bn +edu.bn +gov.bn +net.bn +org.bn // bo : https://nic.bo/delegacion2015.php#h-1.10 bo @@ -395,7 +400,7 @@ net.bo mil.bo tv.bo web.bo -// Social Domains +// Social Domains academia.bo agro.bo arte.bo @@ -445,6 +450,7 @@ arq.br art.br ato.br b.br +barueri.br belem.br bhz.br bio.br @@ -1113,8 +1119,18 @@ mil.gt net.gt org.gt -// gu : http://gadao.gov.gu/registration.txt -*.gu +// gu : http://gadao.gov.gu/register.html +// University of Guam : https://www.uog.edu +// Submitted by uognoc@triton.uog.edu +gu +com.gu +edu.gu +gov.gu +guam.gu +info.gu +net.gu +org.gu +web.gu // gw : https://en.wikipedia.org/wiki/.gw gw @@ -1129,7 +1145,7 @@ gov.gy net.gy org.gy -// hk : https://www.hkdnr.hk +// hk : https://www.hkirc.hk // Submitted by registry hk com.hk @@ -1228,7 +1244,7 @@ tozsde.hu utazas.hu video.hu -// id : https://register.pandi.or.id/ +// id : https://pandi.id/en/domain/registration-requirements/ id ac.id biz.id @@ -1239,6 +1255,7 @@ mil.id my.id net.id or.id +ponpes.id sch.id web.id @@ -1340,10 +1357,8 @@ int.is it gov.it edu.it -// Reserved geo-names: -// http://www.nic.it/documenti/regolamenti-e-linee-guida/regolamento-assegnazione-versione-6.0.pdf -// There is also a list of reserved geo-names corresponding to Italian municipalities -// http://www.nic.it/documenti/appendice-c.pdf, but it is not included here. +// Reserved geo-names (regions and provinces): +// http://www.nic.it/sites/default/files/docs/Regulation_assignation_v7.1.pdf // Regions abr.it abruzzo.it @@ -1397,6 +1412,12 @@ sicily.it taa.it tos.it toscana.it +trentin-sud-tirol.it +trentin-süd-tirol.it +trentin-sudtirol.it +trentin-südtirol.it +trentin-sued-tirol.it +trentin-suedtirol.it trentino-a-adige.it trentino-aadige.it trentino-alto-adige.it @@ -1404,9 +1425,12 @@ trentino-altoadige.it trentino-s-tirol.it trentino-stirol.it trentino-sud-tirol.it +trentino-süd-tirol.it trentino-sudtirol.it +trentino-südtirol.it trentino-sued-tirol.it trentino-suedtirol.it +trentino.it trentinoa-adige.it trentinoaadige.it trentinoalto-adige.it @@ -1414,9 +1438,17 @@ trentinoaltoadige.it trentinos-tirol.it trentinostirol.it trentinosud-tirol.it +trentinosüd-tirol.it trentinosudtirol.it +trentinosüdtirol.it trentinosued-tirol.it trentinosuedtirol.it +trentinsud-tirol.it +trentinsüd-tirol.it +trentinsudtirol.it +trentinsüdtirol.it +trentinsued-tirol.it +trentinsuedtirol.it tuscany.it umb.it umbria.it @@ -1431,7 +1463,13 @@ valleaosta.it valled-aosta.it valledaosta.it vallee-aoste.it +vallée-aoste.it +vallee-d-aoste.it +vallée-d-aoste.it valleeaoste.it +valléeaoste.it +valleedaoste.it +valléedaoste.it vao.it vda.it ven.it @@ -1464,6 +1502,9 @@ at.it av.it avellino.it ba.it +balsan-sudtirol.it +balsan-südtirol.it +balsan-suedtirol.it balsan.it bari.it barletta-trani-andria.it @@ -1478,13 +1519,21 @@ bl.it bn.it bo.it bologna.it +bolzano-altoadige.it bolzano.it +bozen-sudtirol.it +bozen-südtirol.it +bozen-suedtirol.it bozen.it br.it brescia.it brindisi.it bs.it bt.it +bulsan-sudtirol.it +bulsan-südtirol.it +bulsan-suedtirol.it +bulsan.it bz.it ca.it cagliari.it @@ -1502,7 +1551,9 @@ catanzaro.it cb.it ce.it cesena-forli.it +cesena-forlì.it cesenaforli.it +cesenaforlì.it ch.it chieti.it ci.it @@ -1533,7 +1584,9 @@ florence.it fm.it foggia.it forli-cesena.it +forlì-cesena.it forlicesena.it +forlìcesena.it fr.it frosinone.it ge.it @@ -1664,6 +1717,7 @@ sp.it sr.it ss.it suedtirol.it +südtirol.it sv.it ta.it taranto.it @@ -1682,7 +1736,6 @@ trani-barletta-andria.it traniandriabarletta.it tranibarlettaandria.it trapani.it -trentino.it trento.it treviso.it trieste.it @@ -3645,8 +3698,16 @@ jeonnam.kr seoul.kr ulsan.kr -// kw : https://en.wikipedia.org/wiki/.kw -*.kw +// kw : https://www.nic.kw/policies/ +// Confirmed by registry +kw +com.kw +edu.kw +emb.kw +gov.kw +ind.kw +net.kw +org.kw // ky : http://www.icta.ky/da_ky_reg_dom.php // Confirmed by registry 2008-06-17 @@ -6152,9 +6213,6 @@ nc.tr // Used by government agencies of Northern Cyprus gov.nc.tr -// travel : https://en.wikipedia.org/wiki/.travel -travel - // tt : http://www.nic.tt/ tt co.tt @@ -6729,8 +6787,16 @@ yt ελ // xn--j6w193g ("Hong Kong", Chinese) : HK -// https://www2.hkirc.hk/register/rules.jsp +// https://www.hkirc.hk +// Submitted by registry +// https://www.hkirc.hk/content.jsp?id=30#!/34 香港 +公司.香港 +教育.香港 +政府.香港 +個人.香港 +網絡.香港 +組織.香港 // xn--2scrj9c ("Bharat", Kannada) : IN // India @@ -6764,6 +6830,10 @@ yt // India भारत +// xn--mgbbh1a ("Bharat", Kashmiri) : IN +// India +بارت + // xn--mgbbh1a71e ("Bharat", Arabic) : IN // India بھارت @@ -6978,7 +7048,10 @@ gov.zw mil.zw org.zw -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2017-02-23T00:46:09Z + +// newGTLDs +// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2018-05-08T19:40:37Z +// This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7004,13 +7077,13 @@ abc // able : 2015-06-25 Able Inc. able -// abogado : 2014-04-24 Top Level Domain Holdings Limited +// abogado : 2014-04-24 Minds + Machines Group Limited abogado // abudhabi : 2015-07-30 Abu Dhabi Systems and Information Centre abudhabi -// academy : 2013-11-07 Half Oaks, LLC +// academy : 2013-11-07 Binky Moon, LLC academy // accenture : 2014-08-15 Accenture plc @@ -7019,13 +7092,13 @@ accenture // accountant : 2014-11-20 dot Accountant Limited accountant -// accountants : 2014-03-20 Knob Town, LLC +// accountants : 2014-03-20 Binky Moon, LLC accountants // aco : 2015-01-08 ACO Severin Ahlmann GmbH & Co. KG aco -// active : 2014-05-01 The Active Network, Inc +// active : 2014-05-01 Active Network, LLC active // actor : 2013-12-12 United TLD Holdco Ltd. @@ -7058,7 +7131,7 @@ africa // agakhan : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) agakhan -// agency : 2013-11-14 Steel Falls, LLC +// agency : 2013-11-14 Binky Moon, LLC agency // aig : 2014-12-18 American International Group, Inc. @@ -7097,7 +7170,7 @@ allstate // ally : 2015-06-18 Ally Financial Inc. ally -// alsace : 2014-07-02 REGION D ALSACE +// alsace : 2014-07-02 Region Grand Est alsace // alstom : 2015-07-30 ALSTOM @@ -7133,10 +7206,10 @@ anquan // anz : 2015-07-31 Australia and New Zealand Banking Group Limited anz -// aol : 2015-09-17 AOL Inc. +// aol : 2015-09-17 Oath Inc. aol -// apartments : 2014-12-11 June Maple, LLC +// apartments : 2014-12-11 Binky Moon, LLC apartments // app : 2015-05-14 Charleston Road Registry Inc. @@ -7154,7 +7227,7 @@ arab // aramco : 2014-11-20 Aramco Services Company aramco -// archi : 2014-02-06 STARTING DOT LIMITED +// archi : 2014-02-06 Afilias plc archi // army : 2014-03-06 United TLD Holdco Ltd. @@ -7169,22 +7242,22 @@ arte // asda : 2015-07-31 Wal-Mart Stores, Inc. asda -// associates : 2014-03-06 Baxter Hill, LLC +// associates : 2014-03-06 Binky Moon, LLC associates // athleta : 2015-07-30 The Gap, Inc. athleta -// attorney : 2014-03-20 +// attorney : 2014-03-20 United TLD Holdco Ltd. attorney -// auction : 2014-03-20 +// auction : 2014-03-20 United TLD Holdco Ltd. auction // audi : 2015-05-21 AUDI Aktiengesellschaft audi -// audible : 2015-06-25 Amazon EU S.à r.l. +// audible : 2015-06-25 Amazon Registry Services, Inc. audible // audio : 2014-03-20 Uniregistry, Corp. @@ -7193,10 +7266,10 @@ audio // auspost : 2015-08-13 Australian Postal Corporation auspost -// author : 2014-12-18 Amazon EU S.à r.l. +// author : 2014-12-18 Amazon Registry Services, Inc. author -// auto : 2014-11-13 +// auto : 2014-11-13 Cars Registry Limited auto // autos : 2014-01-09 DERAutos, LLC @@ -7205,7 +7278,7 @@ autos // avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca avianca -// aws : 2015-06-25 Amazon EU S.à r.l. +// aws : 2015-06-25 Amazon Registry Services, Inc. aws // axa : 2013-12-19 AXA SA @@ -7226,7 +7299,7 @@ banamex // bananarepublic : 2015-07-31 The Gap, Inc. bananarepublic -// band : 2014-06-12 +// band : 2014-06-12 United TLD Holdco Ltd. band // bank : 2014-09-25 fTLD Registry Services LLC @@ -7247,7 +7320,7 @@ barclays // barefoot : 2015-06-11 Gallo Vineyards, Inc. barefoot -// bargains : 2013-11-14 Half Hallow, LLC +// bargains : 2013-11-14 Binky Moon, LLC bargains // baseball : 2015-10-29 MLB Advanced Media DH, LLC @@ -7283,7 +7356,7 @@ beats // beauty : 2015-12-03 L'Oréal beauty -// beer : 2014-01-09 Top Level Domain Holdings Limited +// beer : 2014-01-09 Minds + Machines Group Limited beer // bentley : 2014-12-18 Bentley Motors Limited @@ -7310,19 +7383,19 @@ bible // bid : 2013-12-19 dot Bid Limited bid -// bike : 2013-08-27 Grand Hollow, LLC +// bike : 2013-08-27 Binky Moon, LLC bike // bing : 2014-12-18 Microsoft Corporation bing -// bingo : 2014-12-04 Sand Cedar, LLC +// bingo : 2014-12-04 Binky Moon, LLC bingo -// bio : 2014-03-06 STARTING DOT LIMITED +// bio : 2014-03-06 Afilias plc bio -// black : 2014-01-16 Afilias Limited +// black : 2014-01-16 Afilias plc black // blackfriday : 2014-01-16 Uniregistry, Corp. @@ -7334,13 +7407,13 @@ blanco // blockbuster : 2015-07-30 Dish DBS Corporation blockbuster -// blog : 2015-05-14 +// blog : 2015-05-14 Knock Knock WHOIS There, LLC blog // bloomberg : 2014-07-17 Bloomberg IP Holdings LLC bloomberg -// blue : 2013-11-07 Afilias Limited +// blue : 2013-11-07 Afilias plc blue // bms : 2014-10-30 Bristol-Myers Squibb Company @@ -7361,7 +7434,7 @@ boats // boehringer : 2015-07-09 Boehringer Ingelheim International GmbH boehringer -// bofa : 2015-07-31 NMS Services, Inc. +// bofa : 2015-07-31 Bank of America Corporation bofa // bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br @@ -7373,28 +7446,25 @@ bond // boo : 2014-01-30 Charleston Road Registry Inc. boo -// book : 2015-08-27 Amazon EU S.à r.l. +// book : 2015-08-27 Amazon Registry Services, Inc. book // booking : 2015-07-16 Booking.com B.V. booking -// boots : 2015-01-08 THE BOOTS COMPANY PLC -boots - // bosch : 2015-06-18 Robert Bosch GMBH bosch // bostik : 2015-05-28 Bostik SA bostik -// boston : 2015-12-10 +// boston : 2015-12-10 Boston TLD Management, LLC boston -// bot : 2014-12-18 Amazon EU S.à r.l. +// bot : 2014-12-18 Amazon Registry Services, Inc. bot -// boutique : 2013-11-14 Over Galley, LLC +// boutique : 2013-11-14 Binky Moon, LLC boutique // box : 2015-11-12 NS1 Limited @@ -7409,7 +7479,7 @@ bridgestone // broadway : 2014-12-22 Celebrate Broadway, Inc. broadway -// broker : 2014-12-11 IG Group Holdings PLC +// broker : 2014-12-11 Dotbroker Registry Limited broker // brother : 2015-01-29 Brother Industries, Ltd. @@ -7418,7 +7488,7 @@ brother // brussels : 2014-02-06 DNS.be vzw brussels -// budapest : 2013-11-21 Top Level Domain Holdings Limited +// budapest : 2013-11-21 Minds + Machines Group Limited budapest // bugatti : 2015-07-23 Bugatti International SA @@ -7427,13 +7497,13 @@ bugatti // build : 2013-11-07 Plan Bee LLC build -// builders : 2013-11-07 Atomic Madison, LLC +// builders : 2013-11-07 Binky Moon, LLC builders -// business : 2013-11-07 Spring Cross, LLC +// business : 2013-11-07 Binky Moon, LLC business -// buy : 2014-12-18 Amazon EU S.à r.l. +// buy : 2014-12-18 Amazon Registry Services, Inc. buy // buzz : 2013-10-02 DOTSTRATEGY CO. @@ -7442,16 +7512,16 @@ buzz // bzh : 2014-02-27 Association www.bzh bzh -// cab : 2013-10-24 Half Sunset, LLC +// cab : 2013-10-24 Binky Moon, LLC cab -// cafe : 2015-02-11 Pioneer Canyon, LLC +// cafe : 2015-02-11 Binky Moon, LLC cafe // cal : 2014-07-24 Charleston Road Registry Inc. cal -// call : 2014-12-18 Amazon EU S.à r.l. +// call : 2014-12-18 Amazon Registry Services, Inc. call // calvinklein : 2015-07-30 PVH gTLD Holdings LLC @@ -7460,10 +7530,10 @@ calvinklein // cam : 2016-04-21 AC Webconnecting Holding B.V. cam -// camera : 2013-08-27 Atomic Maple, LLC +// camera : 2013-08-27 Binky Moon, LLC camera -// camp : 2013-11-07 Delta Dynamite, LLC +// camp : 2013-11-07 Binky Moon, LLC camp // cancerresearch : 2014-05-15 Australian Cancer Research Foundation @@ -7475,37 +7545,37 @@ canon // capetown : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry capetown -// capital : 2014-03-06 Delta Mill, LLC +// capital : 2014-03-06 Binky Moon, LLC capital // capitalone : 2015-08-06 Capital One Financial Corporation capitalone -// car : 2015-01-22 +// car : 2015-01-22 Cars Registry Limited car // caravan : 2013-12-12 Caravan International, Inc. caravan -// cards : 2013-12-05 Foggy Hollow, LLC +// cards : 2013-12-05 Binky Moon, LLC cards -// care : 2014-03-06 Goose Cross +// care : 2014-03-06 Binky Moon, LLC care // career : 2013-10-09 dotCareer LLC career -// careers : 2013-10-02 Wild Corner, LLC +// careers : 2013-10-02 Binky Moon, LLC careers -// cars : 2014-11-13 +// cars : 2014-11-13 Cars Registry Limited cars // cartier : 2014-06-23 Richemont DNS Inc. cartier -// casa : 2013-11-21 Top Level Domain Holdings Limited +// casa : 2013-11-21 Minds + Machines Group Limited casa // case : 2015-09-03 CNH Industrial N.V. @@ -7514,13 +7584,13 @@ case // caseih : 2015-09-03 CNH Industrial N.V. caseih -// cash : 2014-03-06 Delta Lake, LLC +// cash : 2014-03-06 Binky Moon, LLC cash -// casino : 2014-12-18 Binky Sky, LLC +// casino : 2014-12-18 Binky Moon, LLC casino -// catering : 2013-12-05 New Falls. LLC +// catering : 2013-12-05 Binky Moon, LLC catering // catholic : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) @@ -7541,7 +7611,7 @@ cbs // ceb : 2015-04-09 The Corporate Executive Board Company ceb -// center : 2013-11-07 Tin Mill, LLC +// center : 2013-11-07 Binky Moon, LLC center // ceo : 2013-11-07 CEOTLD Pty Ltd @@ -7553,7 +7623,7 @@ cern // cfa : 2014-08-28 CFA Institute cfa -// cfd : 2014-12-11 IG Group Holdings PLC +// cfd : 2014-12-11 DotCFD Registry Limited cfd // chanel : 2015-04-09 Chanel International B.V. @@ -7562,13 +7632,16 @@ chanel // channel : 2014-05-08 Charleston Road Registry Inc. channel -// chase : 2015-04-30 JPMorgan Chase & Co. +// charity : 2018-04-11 Corn Lake, LLC +charity + +// chase : 2015-04-30 JPMorgan Chase Bank, National Association chase -// chat : 2014-12-04 Sand Fields, LLC +// chat : 2014-12-04 Binky Moon, LLC chat -// cheap : 2013-11-14 Sand Cover, LLC +// cheap : 2013-11-14 Binky Moon, LLC cheap // chintai : 2015-06-11 CHINTAI Corporation @@ -7583,13 +7656,13 @@ chrome // chrysler : 2015-07-30 FCA US LLC. chrysler -// church : 2014-02-06 Holly Fields, LLC +// church : 2014-02-06 Binky Moon, LLC church // cipriani : 2015-02-19 Hotel Cipriani Srl cipriani -// circle : 2014-12-18 Amazon EU S.à r.l. +// circle : 2014-12-18 Amazon Registry Services, Inc. circle // cisco : 2014-12-22 Cisco Technology, Inc. @@ -7604,31 +7677,31 @@ citi // citic : 2014-01-09 CITIC Group Corporation citic -// city : 2014-05-29 Snow Sky, LLC +// city : 2014-05-29 Binky Moon, LLC city // cityeats : 2014-12-11 Lifestyle Domain Holdings, Inc. cityeats -// claims : 2014-03-20 Black Corner, LLC +// claims : 2014-03-20 Binky Moon, LLC claims -// cleaning : 2013-12-05 Fox Shadow, LLC +// cleaning : 2013-12-05 Binky Moon, LLC cleaning // click : 2014-06-05 Uniregistry, Corp. click -// clinic : 2014-03-20 Goose Park, LLC +// clinic : 2014-03-20 Binky Moon, LLC clinic // clinique : 2015-10-01 The Estée Lauder Companies Inc. clinique -// clothing : 2013-08-27 Steel Lake, LLC +// clothing : 2013-08-27 Binky Moon, LLC clothing -// cloud : 2015-04-16 ARUBA S.p.A. +// cloud : 2015-04-16 Aruba PEC S.p.A. cloud // club : 2013-11-08 .CLUB DOMAINS, LLC @@ -7637,19 +7710,19 @@ club // clubmed : 2015-06-25 Club Méditerranée S.A. clubmed -// coach : 2014-10-09 Koko Island, LLC +// coach : 2014-10-09 Binky Moon, LLC coach -// codes : 2013-10-31 Puff Willow, LLC +// codes : 2013-10-31 Binky Moon, LLC codes -// coffee : 2013-10-17 Trixy Cover, LLC +// coffee : 2013-10-17 Binky Moon, LLC coffee // college : 2014-01-16 XYZ.COM LLC college -// cologne : 2014-02-05 NetCologne Gesellschaft für Telekommunikation mbH +// cologne : 2014-02-05 punkt.wien GmbH cologne // comcast : 2015-07-23 Comcast IP Holdings I, LLC @@ -7658,64 +7731,64 @@ comcast // commbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA commbank -// community : 2013-12-05 Fox Orchard, LLC +// community : 2013-12-05 Binky Moon, LLC community -// company : 2013-11-07 Silver Avenue, LLC +// company : 2013-11-07 Binky Moon, LLC company // compare : 2015-10-08 iSelect Ltd compare -// computer : 2013-10-24 Pine Mill, LLC +// computer : 2013-10-24 Binky Moon, LLC computer // comsec : 2015-01-08 VeriSign, Inc. comsec -// condos : 2013-12-05 Pine House, LLC +// condos : 2013-12-05 Binky Moon, LLC condos -// construction : 2013-09-16 Fox Dynamite, LLC +// construction : 2013-09-16 Binky Moon, LLC construction -// consulting : 2013-12-05 +// consulting : 2013-12-05 United TLD Holdco Ltd. consulting // contact : 2015-01-08 Top Level Spectrum, Inc. contact -// contractors : 2013-09-10 Magic Woods, LLC +// contractors : 2013-09-10 Binky Moon, LLC contractors -// cooking : 2013-11-21 Top Level Domain Holdings Limited +// cooking : 2013-11-21 Minds + Machines Group Limited cooking // cookingchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. cookingchannel -// cool : 2013-11-14 Koko Lake, LLC +// cool : 2013-11-14 Binky Moon, LLC cool -// corsica : 2014-09-25 Collectivité Territoriale de Corse +// corsica : 2014-09-25 Collectivité de Corse corsica -// country : 2013-12-19 Top Level Domain Holdings Limited +// country : 2013-12-19 DotCountry LLC country -// coupon : 2015-02-26 Amazon EU S.à r.l. +// coupon : 2015-02-26 Amazon Registry Services, Inc. coupon -// coupons : 2015-03-26 Black Island, LLC +// coupons : 2015-03-26 Binky Moon, LLC coupons // courses : 2014-12-04 OPEN UNIVERSITIES AUSTRALIA PTY LTD courses -// credit : 2014-03-20 Snow Shadow, LLC +// credit : 2014-03-20 Binky Moon, LLC credit -// creditcard : 2014-03-20 Binky Frostbite, LLC +// creditcard : 2014-03-20 Binky Moon, LLC creditcard // creditunion : 2015-01-22 CUNA Performance Resources, LLC @@ -7733,7 +7806,7 @@ crs // cruise : 2015-12-10 Viking River Cruises (Bermuda) Ltd. cruise -// cruises : 2013-12-05 Spring Way, LLC +// cruises : 2013-12-05 Binky Moon, LLC cruises // csc : 2014-09-25 Alliance-One Services, Inc. @@ -7763,7 +7836,7 @@ data // date : 2014-11-20 dot Date Limited date -// dating : 2013-12-05 Pine Fest, LLC +// dating : 2013-12-05 Binky Moon, LLC dating // datsun : 2014-03-27 NISSAN MOTOR CO., LTD. @@ -7775,22 +7848,22 @@ day // dclk : 2014-11-20 Charleston Road Registry Inc. dclk -// dds : 2015-05-07 Top Level Domain Holdings Limited +// dds : 2015-05-07 Minds + Machines Group Limited dds -// deal : 2015-06-25 Amazon EU S.à r.l. +// deal : 2015-06-25 Amazon Registry Services, Inc. deal // dealer : 2014-12-22 Dealer Dot Com, Inc. dealer -// deals : 2014-05-22 Sand Sunset, LLC +// deals : 2014-05-22 Binky Moon, LLC deals -// degree : 2014-03-06 +// degree : 2014-03-06 United TLD Holdco Ltd. degree -// delivery : 2014-09-11 Steel Station, LLC +// delivery : 2014-09-11 Binky Moon, LLC delivery // dell : 2014-10-24 Dell Inc. @@ -7805,10 +7878,10 @@ delta // democrat : 2013-10-24 United TLD Holdco Ltd. democrat -// dental : 2014-03-20 Tin Birch, LLC +// dental : 2014-03-20 Binky Moon, LLC dental -// dentist : 2014-03-20 +// dentist : 2014-03-20 United TLD Holdco Ltd. dentist // desi : 2013-11-14 Desi Networks LLC @@ -7823,22 +7896,22 @@ dev // dhl : 2015-07-23 Deutsche Post AG dhl -// diamonds : 2013-09-22 John Edge, LLC +// diamonds : 2013-09-22 Binky Moon, LLC diamonds // diet : 2014-06-26 Uniregistry, Corp. diet -// digital : 2014-03-06 Dash Park, LLC +// digital : 2014-03-06 Binky Moon, LLC digital -// direct : 2014-04-10 Half Trail, LLC +// direct : 2014-04-10 Binky Moon, LLC direct -// directory : 2013-09-20 Extra Madison, LLC +// directory : 2013-09-20 Binky Moon, LLC directory -// discount : 2014-03-06 Holly Hill, LLC +// discount : 2014-03-06 Binky Moon, LLC discount // discover : 2015-07-23 Discover Financial Services @@ -7856,19 +7929,19 @@ dnp // docs : 2014-10-16 Charleston Road Registry Inc. docs -// doctor : 2016-06-02 Brice Trail, LLC +// doctor : 2016-06-02 Binky Moon, LLC doctor // dodge : 2015-07-30 FCA US LLC. dodge -// dog : 2014-12-04 Koko Mill, LLC +// dog : 2014-12-04 Binky Moon, LLC dog // doha : 2014-09-18 Communications Regulatory Authority (CRA) doha -// domains : 2013-10-17 Sugar Cross, LLC +// domains : 2013-10-17 Binky Moon, LLC domains // dot : 2015-05-21 Dish DBS Corporation @@ -7919,25 +7992,25 @@ eco // edeka : 2014-12-18 EDEKA Verband kaufmännischer Genossenschaften e.V. edeka -// education : 2013-11-07 Brice Way, LLC +// education : 2013-11-07 Binky Moon, LLC education -// email : 2013-10-31 Spring Madison, LLC +// email : 2013-10-31 Binky Moon, LLC email // emerck : 2014-04-03 Merck KGaA emerck -// energy : 2014-09-11 Binky Birch, LLC +// energy : 2014-09-11 Binky Moon, LLC energy // engineer : 2014-03-06 United TLD Holdco Ltd. engineer -// engineering : 2014-03-06 Romeo Canyon +// engineering : 2014-03-06 Binky Moon, LLC engineering -// enterprises : 2013-09-20 Snow Oaks, LLC +// enterprises : 2013-09-20 Binky Moon, LLC enterprises // epost : 2015-07-23 Deutsche Post AG @@ -7946,7 +8019,7 @@ epost // epson : 2014-12-04 Seiko Epson Corporation epson -// equipment : 2013-08-27 Corn Station, LLC +// equipment : 2013-08-27 Binky Moon, LLC equipment // ericsson : 2015-07-09 Telefonaktiebolaget L M Ericsson @@ -7958,7 +8031,7 @@ erni // esq : 2014-05-08 Charleston Road Registry Inc. esq -// estate : 2013-08-27 Trixy Park, LLC +// estate : 2013-08-27 Binky Moon, LLC estate // esurance : 2015-07-23 Esurance Insurance Company @@ -7973,22 +8046,22 @@ eurovision // eus : 2013-12-12 Puntueus Fundazioa eus -// events : 2013-12-05 Pioneer Maple, LLC +// events : 2013-12-05 Binky Moon, LLC events // everbank : 2014-05-15 EverBank everbank -// exchange : 2014-03-06 Spring Falls, LLC +// exchange : 2014-03-06 Binky Moon, LLC exchange -// expert : 2013-11-21 Magic Pass, LLC +// expert : 2013-11-21 Binky Moon, LLC expert -// exposed : 2013-12-05 Victor Beach, LLC +// exposed : 2013-12-05 Binky Moon, LLC exposed -// express : 2015-02-11 Sea Sunset, LLC +// express : 2015-02-11 Binky Moon, LLC express // extraspace : 2015-05-14 Extra Space Storage LLC @@ -7997,7 +8070,7 @@ extraspace // fage : 2014-12-18 Fage International S.A. fage -// fail : 2014-03-06 Atomic Pipe, LLC +// fail : 2014-03-06 Binky Moon, LLC fail // fairwinds : 2014-11-13 FairWinds Partners, LLC @@ -8006,25 +8079,25 @@ fairwinds // faith : 2014-11-20 dot Faith Limited faith -// family : 2015-04-02 +// family : 2015-04-02 United TLD Holdco Ltd. family -// fan : 2014-03-06 +// fan : 2014-03-06 Asiamix Digital Limited fan // fans : 2014-11-07 Asiamix Digital Limited fans -// farm : 2013-11-07 Just Maple, LLC +// farm : 2013-11-07 Binky Moon, LLC farm // farmers : 2015-07-09 Farmers Insurance Exchange farmers -// fashion : 2014-07-03 Top Level Domain Holdings Limited +// fashion : 2014-07-03 Minds + Machines Group Limited fashion -// fast : 2014-12-18 Amazon EU S.à r.l. +// fast : 2014-12-18 Amazon Registry Services, Inc. fast // fedex : 2015-08-06 Federal Express Corporation @@ -8045,7 +8118,7 @@ fiat // fidelity : 2015-07-30 Fidelity Brokerage Services LLC fidelity -// fido : 2015-08-06 Rogers Communications Partnership +// fido : 2015-08-06 Rogers Communications Canada Inc. fido // film : 2015-01-08 Motion Picture Domain Registry Pty Ltd @@ -8054,43 +8127,43 @@ film // final : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br final -// finance : 2014-03-20 Cotton Cypress, LLC +// finance : 2014-03-20 Binky Moon, LLC finance -// financial : 2014-03-06 Just Cover, LLC +// financial : 2014-03-06 Binky Moon, LLC financial -// fire : 2015-06-25 Amazon EU S.à r.l. +// fire : 2015-06-25 Amazon Registry Services, Inc. fire -// firestone : 2014-12-18 Bridgestone Corporation +// firestone : 2014-12-18 Bridgestone Licensing Services, Inc firestone // firmdale : 2014-03-27 Firmdale Holdings Limited firmdale -// fish : 2013-12-12 Fox Woods, LLC +// fish : 2013-12-12 Binky Moon, LLC fish -// fishing : 2013-11-21 Top Level Domain Holdings Limited +// fishing : 2013-11-21 Minds + Machines Group Limited fishing -// fit : 2014-11-07 Top Level Domain Holdings Limited +// fit : 2014-11-07 Minds + Machines Group Limited fit -// fitness : 2014-03-06 Brice Orchard, LLC +// fitness : 2014-03-06 Binky Moon, LLC fitness // flickr : 2015-04-02 Yahoo! Domain Services Inc. flickr -// flights : 2013-12-05 Fox Station, LLC +// flights : 2013-12-05 Binky Moon, LLC flights // flir : 2015-07-23 FLIR Systems, Inc. flir -// florist : 2013-11-07 Half Cypress, LLC +// florist : 2013-11-07 Binky Moon, LLC florist // flowers : 2014-10-09 Uniregistry, Corp. @@ -8108,28 +8181,28 @@ food // foodnetwork : 2015-07-02 Lifestyle Domain Holdings, Inc. foodnetwork -// football : 2014-12-18 Foggy Farms, LLC +// football : 2014-12-18 Binky Moon, LLC football // ford : 2014-11-13 Ford Motor Company ford -// forex : 2014-12-11 IG Group Holdings PLC +// forex : 2014-12-11 Dotforex Registry Limited forex -// forsale : 2014-05-22 +// forsale : 2014-05-22 United TLD Holdco Ltd. forsale // forum : 2015-04-02 Fegistry, LLC forum -// foundation : 2013-12-05 John Dale, LLC +// foundation : 2013-12-05 Binky Moon, LLC foundation // fox : 2015-09-11 FOX Registry, LLC fox -// free : 2015-12-10 Amazon EU S.à r.l. +// free : 2015-12-10 Amazon Registry Services, Inc. free // fresenius : 2015-07-30 Fresenius Immobilien-Verwaltungs-GmbH @@ -8156,25 +8229,25 @@ fujitsu // fujixerox : 2015-07-23 Xerox DNHC LLC fujixerox -// fun : 2016-01-14 +// fun : 2016-01-14 DotSpace Inc. fun -// fund : 2014-03-20 John Castle, LLC +// fund : 2014-03-20 Binky Moon, LLC fund -// furniture : 2014-03-20 Lone Fields, LLC +// furniture : 2014-03-20 Binky Moon, LLC furniture -// futbol : 2013-09-20 +// futbol : 2013-09-20 United TLD Holdco Ltd. futbol -// fyi : 2015-04-02 Silver Tigers, LLC +// fyi : 2015-04-02 Binky Moon, LLC fyi // gal : 2013-11-07 Asociación puntoGAL gal -// gallery : 2013-09-13 Sugar House, LLC +// gallery : 2013-09-13 Binky Moon, LLC gallery // gallo : 2015-06-11 Gallo Vineyards, Inc. @@ -8186,13 +8259,13 @@ gallup // game : 2015-05-28 Uniregistry, Corp. game -// games : 2015-05-28 +// games : 2015-05-28 United TLD Holdco Ltd. games // gap : 2015-07-31 The Gap, Inc. gap -// garden : 2014-06-26 Top Level Domain Holdings Limited +// garden : 2014-06-26 Minds + Machines Group Limited garden // gbiz : 2014-07-17 Charleston Road Registry Inc. @@ -8204,7 +8277,7 @@ gdn // gea : 2014-12-04 GEA Group Aktiengesellschaft gea -// gent : 2014-01-23 COMBELL GROUP NV/SA +// gent : 2014-01-23 COMBELL NV gent // genting : 2015-03-12 Resorts World Inc Pte. Ltd. @@ -8216,10 +8289,10 @@ george // ggee : 2014-01-09 GMO Internet, Inc. ggee -// gift : 2013-10-17 Uniregistry, Corp. +// gift : 2013-10-17 DotGift, LLC gift -// gifts : 2014-07-03 Goose Sky, LLC +// gifts : 2014-07-03 Binky Moon, LLC gifts // gives : 2014-03-06 United TLD Holdco Ltd. @@ -8231,13 +8304,13 @@ giving // glade : 2015-07-23 Johnson Shareholdings, Inc. glade -// glass : 2013-11-07 Black Cover, LLC +// glass : 2013-11-07 Binky Moon, LLC glass // gle : 2014-07-24 Charleston Road Registry Inc. gle -// global : 2014-04-17 Dot GLOBAL AS +// global : 2014-04-17 Dot Global Domain Registry Limited global // globo : 2013-12-19 Globo Comunicação e Participações S.A @@ -8246,10 +8319,10 @@ globo // gmail : 2014-05-01 Charleston Road Registry Inc. gmail -// gmbh : 2016-01-29 Extra Dynamite, LLC +// gmbh : 2016-01-29 Binky Moon, LLC gmbh -// gmo : 2014-01-09 GMO Internet, Inc. +// gmo : 2014-01-09 GMO Internet Pte. Ltd. gmo // gmx : 2014-04-24 1&1 Mail & Media GmbH @@ -8258,13 +8331,13 @@ gmx // godaddy : 2015-07-23 Go Daddy East, LLC godaddy -// gold : 2015-01-22 June Edge, LLC +// gold : 2015-01-22 Binky Moon, LLC gold // goldpoint : 2014-11-20 YODOBASHI CAMERA CO.,LTD. goldpoint -// golf : 2014-12-18 Lone falls, LLC +// golf : 2014-12-18 Binky Moon, LLC golf // goo : 2014-12-18 NTT Resonant Inc. @@ -8285,28 +8358,28 @@ google // gop : 2014-01-16 Republican State Leadership Committee, Inc. gop -// got : 2014-12-18 Amazon EU S.à r.l. +// got : 2014-12-18 Amazon Registry Services, Inc. got // grainger : 2015-05-07 Grainger Registry Services, LLC grainger -// graphics : 2013-09-13 Over Madison, LLC +// graphics : 2013-09-13 Binky Moon, LLC graphics -// gratis : 2014-03-20 Pioneer Tigers, LLC +// gratis : 2014-03-20 Binky Moon, LLC gratis -// green : 2014-05-08 Afilias Limited +// green : 2014-05-08 Afilias plc green -// gripe : 2014-03-06 Corn Sunset, LLC +// gripe : 2014-03-06 Binky Moon, LLC gripe // grocery : 2016-06-16 Wal-Mart Stores, Inc. grocery -// group : 2014-08-15 Romeo Town, LLC +// group : 2014-08-15 Binky Moon, LLC group // guardian : 2015-07-30 The Guardian Life Insurance Company of America @@ -8318,13 +8391,13 @@ gucci // guge : 2014-08-28 Charleston Road Registry Inc. guge -// guide : 2013-09-13 Snow Moon, LLC +// guide : 2013-09-13 Binky Moon, LLC guide // guitars : 2013-11-14 Uniregistry, Corp. guitars -// guru : 2013-08-27 Pioneer Cypress, LLC +// guru : 2013-08-27 Binky Moon, LLC guru // hair : 2015-12-03 L'Oréal @@ -8336,7 +8409,7 @@ hamburg // hangout : 2014-11-13 Charleston Road Registry Inc. hangout -// haus : 2013-12-05 +// haus : 2013-12-05 United TLD Holdco Ltd. haus // hbo : 2015-07-30 HBO Registry Services, Inc. @@ -8351,7 +8424,7 @@ hdfcbank // health : 2015-02-11 DotHealth, LLC health -// healthcare : 2014-06-12 Silver Glen, LLC +// healthcare : 2014-06-12 Binky Moon, LLC healthcare // help : 2014-06-26 Uniregistry, Corp. @@ -8378,22 +8451,22 @@ hisamitsu // hitachi : 2014-10-31 Hitachi, Ltd. hitachi -// hiv : 2014-03-13 +// hiv : 2014-03-13 Uniregistry, Corp. hiv // hkt : 2015-05-14 PCCW-HKT DataCom Services Limited hkt -// hockey : 2015-03-19 Half Willow, LLC +// hockey : 2015-03-19 Binky Moon, LLC hockey -// holdings : 2013-08-27 John Madison, LLC +// holdings : 2013-08-27 Binky Moon, LLC holdings -// holiday : 2013-11-07 Goose Woods, LLC +// holiday : 2013-11-07 Binky Moon, LLC holiday -// homedepot : 2015-04-02 Homer TLC, Inc. +// homedepot : 2015-04-02 Home Depot Product Authority, LLC homedepot // homegoods : 2015-07-16 The TJX Companies, Inc. @@ -8411,10 +8484,10 @@ honda // honeywell : 2015-07-23 Honeywell GTLD LLC honeywell -// horse : 2013-11-21 Top Level Domain Holdings Limited +// horse : 2013-11-21 Minds + Machines Group Limited horse -// hospital : 2016-10-20 Ruby Pike, LLC +// hospital : 2016-10-20 Binky Moon, LLC hospital // host : 2014-04-17 DotHost Inc. @@ -8423,7 +8496,7 @@ host // hosting : 2014-05-29 Uniregistry, Corp. hosting -// hot : 2015-08-27 Amazon EU S.à r.l. +// hot : 2015-08-27 Amazon Registry Services, Inc. hot // hoteles : 2015-03-05 Travel Reservations SRL @@ -8435,13 +8508,13 @@ hotels // hotmail : 2014-12-18 Microsoft Corporation hotmail -// house : 2013-11-07 Sugar Park, LLC +// house : 2013-11-07 Binky Moon, LLC house // how : 2014-01-23 Charleston Road Registry Inc. how -// hsbc : 2014-10-24 HSBC Holdings PLC +// hsbc : 2014-10-24 HSBC Global Services (UK) Limited hsbc // hughes : 2015-07-30 Hughes Satellite Systems Corporation @@ -8462,7 +8535,7 @@ icbc // ice : 2014-10-30 IntercontinentalExchange, Inc. ice -// icu : 2015-01-08 One.com A/S +// icu : 2015-01-08 ShortDot SA icu // ieee : 2015-07-23 IEEE Global LLC @@ -8477,16 +8550,19 @@ ikano // imamat : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) imamat -// imdb : 2015-06-25 Amazon EU S.à r.l. +// imdb : 2015-06-25 Amazon Registry Services, Inc. imdb -// immo : 2014-07-10 Auburn Bloom, LLC +// immo : 2014-07-10 Binky Moon, LLC immo // immobilien : 2013-11-07 United TLD Holdco Ltd. immobilien -// industries : 2013-12-05 Outer House, LLC +// inc : 2018-03-10 GTLD Limited +inc + +// industries : 2013-12-05 Binky Moon, LLC industries // infiniti : 2014-03-27 NISSAN MOTOR CO., LTD. @@ -8498,31 +8574,31 @@ ing // ink : 2013-12-05 Top Level Design, LLC ink -// institute : 2013-11-07 Outer Maple, LLC +// institute : 2013-11-07 Binky Moon, LLC institute // insurance : 2015-02-19 fTLD Registry Services LLC insurance -// insure : 2014-03-20 Pioneer Willow, LLC +// insure : 2014-03-20 Binky Moon, LLC insure // intel : 2015-08-06 Intel Corporation intel -// international : 2013-11-07 Wild Way, LLC +// international : 2013-11-07 Binky Moon, LLC international // intuit : 2015-07-30 Intuit Administrative Services, Inc. intuit -// investments : 2014-03-20 Holly Glen, LLC +// investments : 2014-03-20 Binky Moon, LLC investments // ipiranga : 2014-08-28 Ipiranga Produtos de Petroleo S.A. ipiranga -// irish : 2014-08-07 Dot-Irish LLC +// irish : 2014-08-07 Binky Moon, LLC irish // iselect : 2015-02-11 iSelect Ltd @@ -8546,9 +8622,6 @@ itv // iveco : 2015-09-03 CNH Industrial N.V. iveco -// iwc : 2014-06-23 Richemont DNS Inc. -iwc - // jaguar : 2014-11-13 Jaguar Land Rover Ltd jaguar @@ -8564,13 +8637,13 @@ jcp // jeep : 2015-07-30 FCA US LLC. jeep -// jetzt : 2014-01-09 +// jetzt : 2014-01-09 Binky Moon, LLC jetzt -// jewelry : 2015-03-05 Wild Bloom, LLC +// jewelry : 2015-03-05 Binky Moon, LLC jewelry -// jio : 2015-04-02 Affinity Names, Inc. +// jio : 2015-04-02 Reliance Industries Limited jio // jlc : 2014-12-04 Richemont DNS Inc. @@ -8588,13 +8661,13 @@ jnj // joburg : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry joburg -// jot : 2014-12-18 Amazon EU S.à r.l. +// jot : 2014-12-18 Amazon Registry Services, Inc. jot -// joy : 2014-12-18 Amazon EU S.à r.l. +// joy : 2014-12-18 Amazon Registry Services, Inc. joy -// jpmorgan : 2015-04-30 JPMorgan Chase & Co. +// jpmorgan : 2015-04-30 JPMorgan Chase Bank, National Association jpmorgan // jprs : 2014-09-18 Japan Registry Services Co., Ltd. @@ -8627,22 +8700,22 @@ kfh // kia : 2015-07-09 KIA MOTORS CORPORATION kia -// kim : 2013-09-23 Afilias Limited +// kim : 2013-09-23 Afilias plc kim // kinder : 2014-11-07 Ferrero Trading Lux S.A. kinder -// kindle : 2015-06-25 Amazon EU S.à r.l. +// kindle : 2015-06-25 Amazon Registry Services, Inc. kindle -// kitchen : 2013-09-20 Just Goodbye, LLC +// kitchen : 2013-09-20 Binky Moon, LLC kitchen // kiwi : 2013-09-20 DOT KIWI LIMITED kiwi -// koeln : 2014-01-09 NetCologne Gesellschaft für Telekommunikation mbH +// koeln : 2014-01-09 punkt.wien GmbH koeln // komatsu : 2015-01-08 Komatsu Ltd. @@ -8669,7 +8742,7 @@ kuokgroup // kyoto : 2014-11-07 Academic Institution: Kyoto Jyoho Gakuen kyoto -// lacaixa : 2014-01-09 CAIXA D'ESTALVIS I PENSIONS DE BARCELONA +// lacaixa : 2014-01-09 Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa” lacaixa // ladbrokes : 2015-08-06 LADBROKES INTERNATIONAL PLC @@ -8690,7 +8763,7 @@ lancia // lancome : 2015-07-23 L'Oréal lancome -// land : 2013-09-10 Pine Moon, LLC +// land : 2013-09-10 Binky Moon, LLC land // landrover : 2014-11-13 Jaguar Land Rover Ltd @@ -8714,13 +8787,13 @@ latrobe // law : 2015-01-22 Minds + Machines Group Limited law -// lawyer : 2014-03-20 +// lawyer : 2014-03-20 United TLD Holdco Ltd. lawyer // lds : 2014-03-20 IRI Domain Management, LLC ("Applicant") lds -// lease : 2014-03-06 Victor Trail, LLC +// lease : 2014-03-06 Binky Moon, LLC lease // leclerc : 2014-08-07 A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc @@ -8729,7 +8802,7 @@ leclerc // lefrak : 2015-07-16 LeFrak Organization, Inc. lefrak -// legal : 2014-10-16 Blue Falls, LLC +// legal : 2014-10-16 Binky Moon, LLC legal // lego : 2015-07-16 LEGO Juris A/S @@ -8738,7 +8811,7 @@ lego // lexus : 2015-04-23 TOYOTA MOTOR CORPORATION lexus -// lgbt : 2014-05-08 Afilias Limited +// lgbt : 2014-05-08 Afilias plc lgbt // liaison : 2014-10-02 Liaison Technologies, Incorporated @@ -8747,7 +8820,7 @@ liaison // lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG lidl -// life : 2014-02-06 Trixy Oaks, LLC +// life : 2014-02-06 Binky Moon, LLC life // lifeinsurance : 2015-01-15 American Council of Life Insurers @@ -8756,19 +8829,19 @@ lifeinsurance // lifestyle : 2014-12-11 Lifestyle Domain Holdings, Inc. lifestyle -// lighting : 2013-08-27 John McCook, LLC +// lighting : 2013-08-27 Binky Moon, LLC lighting -// like : 2014-12-18 Amazon EU S.à r.l. +// like : 2014-12-18 Amazon Registry Services, Inc. like // lilly : 2015-07-31 Eli Lilly and Company lilly -// limited : 2014-03-06 Big Fest, LLC +// limited : 2014-03-06 Binky Moon, LLC limited -// limo : 2013-10-17 Hidden Frostbite, LLC +// limo : 2013-10-17 Binky Moon, LLC limo // lincoln : 2014-11-13 Ford Motor Company @@ -8783,7 +8856,7 @@ link // lipsy : 2015-06-25 Lipsy Ltd lipsy -// live : 2014-12-04 +// live : 2014-12-04 United TLD Holdco Ltd. live // living : 2015-07-30 Lifestyle Domain Holdings, Inc. @@ -8792,10 +8865,13 @@ living // lixil : 2015-03-19 LIXIL Group Corporation lixil +// llc : 2017-12-14 Afilias plc +llc + // loan : 2014-11-20 dot Loan Limited loan -// loans : 2014-03-20 June Woods, LLC +// loans : 2014-03-20 Binky Moon, LLC loans // locker : 2015-06-04 Dish DBS Corporation @@ -8816,7 +8892,7 @@ london // lotte : 2014-11-07 Lotte Holdings Co., Ltd. lotte -// lotto : 2014-04-10 Afilias Limited +// lotto : 2014-04-10 Afilias plc lotto // love : 2014-12-22 Merchant Law Group LLP @@ -8828,10 +8904,10 @@ lpl // lplfinancial : 2015-07-30 LPL Holdings, Inc. lplfinancial -// ltd : 2014-09-25 Over Corner, LLC +// ltd : 2014-09-25 Binky Moon, LLC ltd -// ltda : 2014-04-17 DOMAIN ROBOT SERVICOS DE HOSPEDAGEM NA INTERNET LTDA +// ltda : 2014-04-17 InterNetX, Corp ltda // lundbeck : 2015-08-06 H. Lundbeck A/S @@ -8840,7 +8916,7 @@ lundbeck // lupin : 2014-11-07 LUPIN LIMITED lupin -// luxe : 2014-01-09 Top Level Domain Holdings Limited +// luxe : 2014-01-09 Minds + Machines Group Limited luxe // luxury : 2013-10-17 Luxury Partners, LLC @@ -8855,7 +8931,7 @@ madrid // maif : 2014-10-02 Mutuelle Assurance Instituteur France (MAIF) maif -// maison : 2013-12-05 Victor Frostbite, LLC +// maison : 2013-12-05 Binky Moon, LLC maison // makeup : 2015-01-15 L'Oréal @@ -8864,7 +8940,7 @@ makeup // man : 2014-12-04 MAN SE man -// management : 2013-11-07 John Goodbye, LLC +// management : 2013-11-07 Binky Moon, LLC management // mango : 2013-10-24 PUNTO FA S.L. @@ -8873,13 +8949,13 @@ mango // map : 2016-06-09 Charleston Road Registry Inc. map -// market : 2014-03-06 +// market : 2014-03-06 United TLD Holdco Ltd. market -// marketing : 2013-11-07 Fern Pass, LLC +// marketing : 2013-11-07 Binky Moon, LLC marketing -// markets : 2014-12-11 IG Group Holdings PLC +// markets : 2014-12-11 Dotmarkets Registry Limited markets // marriott : 2014-10-09 Marriott Worldwide Corporation @@ -8894,7 +8970,7 @@ maserati // mattel : 2015-08-06 Mattel Sites, Inc. mattel -// mba : 2015-04-02 Lone Hollow, LLC +// mba : 2015-04-02 Binky Moon, LLC mba // mckinsey : 2015-07-31 McKinsey Holdings, Inc. @@ -8903,10 +8979,10 @@ mckinsey // med : 2015-08-06 Medistry LLC med -// media : 2014-03-06 Grand Glen, LLC +// media : 2014-03-06 Binky Moon, LLC media -// meet : 2014-01-16 +// meet : 2014-01-16 Charleston Road Registry Inc. meet // melbourne : 2014-05-29 The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation @@ -8924,16 +9000,13 @@ men // menu : 2013-09-11 Wedding TLD2, LLC menu -// meo : 2014-11-07 PT Comunicacoes S.A. -meo - // merckmsd : 2016-07-14 MSD Registry Holdings, Inc. merckmsd // metlife : 2015-05-07 MetLife Services and Solutions, LLC metlife -// miami : 2013-12-19 Top Level Domain Holdings Limited +// miami : 2013-12-19 Minds + Machines Group Limited miami // microsoft : 2014-12-18 Microsoft Corporation @@ -8972,7 +9045,7 @@ moda // moe : 2013-11-13 Interlink Co., Ltd. moe -// moi : 2014-12-18 Amazon EU S.à r.l. +// moi : 2014-12-18 Amazon Registry Services, Inc. moi // mom : 2015-04-16 Uniregistry, Corp. @@ -8981,7 +9054,7 @@ mom // monash : 2013-09-30 Monash University monash -// money : 2014-10-16 Outer McCook, LLC +// money : 2014-10-16 Binky Moon, LLC money // monster : 2015-09-11 Monster Worldwide, Inc. @@ -8993,13 +9066,13 @@ mopar // mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") mormon -// mortgage : 2014-03-20 +// mortgage : 2014-03-20 United TLD Holdco Ltd. mortgage // moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) moscow -// moto : 2015-06-04 +// moto : 2015-06-04 Motorola Trademark Holdings, LLC moto // motorcycles : 2014-01-09 DERMotorcycles, LLC @@ -9008,7 +9081,7 @@ motorcycles // mov : 2014-01-30 Charleston Road Registry Inc. mov -// movie : 2015-02-05 New Frostbite, LLC +// movie : 2015-02-05 Binky Moon, LLC movie // movistar : 2014-10-16 Telefónica S.A. @@ -9020,9 +9093,6 @@ msd // mtn : 2014-12-04 MTN Dubai Limited mtn -// mtpc : 2014-11-20 Mitsubishi Tanabe Pharma Corporation -mtpc - // mtr : 2015-03-12 MTR Corporation Limited mtr @@ -9032,7 +9102,7 @@ mutual // nab : 2015-08-20 National Australia Bank Limited nab -// nadex : 2014-12-11 IG Group Holdings PLC +// nadex : 2014-12-11 Nadex Domains, Inc. nadex // nagoya : 2013-10-24 GMO Registry, Inc. @@ -9059,10 +9129,10 @@ netbank // netflix : 2015-06-18 Netflix, Inc. netflix -// network : 2013-11-14 Trixy Manor, LLC +// network : 2013-11-14 Binky Moon, LLC network -// neustar : 2013-12-05 NeuStar, Inc. +// neustar : 2013-12-05 Registry Services, LLC neustar // new : 2014-01-30 Charleston Road Registry Inc. @@ -9071,7 +9141,7 @@ new // newholland : 2015-09-03 CNH Industrial N.V. newholland -// news : 2014-12-18 +// news : 2014-12-18 United TLD Holdco Ltd. news // next : 2015-06-18 Next plc @@ -9119,7 +9189,7 @@ northwesternmutual // norton : 2014-12-04 Symantec Corporation norton -// now : 2015-06-25 Amazon EU S.à r.l. +// now : 2015-06-25 Amazon Registry Services, Inc. now // nowruz : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. @@ -9143,7 +9213,7 @@ nyc // obi : 2014-09-25 OBI Group Holding SE & Co. KGaA obi -// observer : 2015-04-30 +// observer : 2015-04-30 Top Level Spectrum, Inc. observer // off : 2015-07-23 Johnson Shareholdings, Inc. @@ -9152,7 +9222,7 @@ off // office : 2015-03-12 Microsoft Corporation office -// okinawa : 2013-12-05 BusinessRalliart Inc. +// okinawa : 2013-12-05 BRregistry, Inc. okinawa // olayan : 2015-05-14 Crescent Holding GmbH @@ -9197,13 +9267,13 @@ oracle // orange : 2015-03-12 Orange Brand Services Limited orange -// organic : 2014-03-27 Afilias Limited +// organic : 2014-03-27 Afilias plc organic // origins : 2015-10-01 The Estée Lauder Companies Inc. origins -// osaka : 2014-09-04 Interlink Co., Ltd. +// osaka : 2014-09-04 Osaka Registry Co., Ltd. osaka // otsuka : 2013-10-11 Otsuka Holdings Co., Ltd. @@ -9230,10 +9300,10 @@ paris // pars : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. pars -// partners : 2013-12-05 Magic Glen, LLC +// partners : 2013-12-05 Binky Moon, LLC partners -// parts : 2013-12-05 Sea Goodbye, LLC +// parts : 2013-12-05 Binky Moon, LLC parts // party : 2014-09-11 Blue Sky Registry Limited @@ -9242,7 +9312,7 @@ party // passagens : 2015-03-05 Travel Reservations SRL passagens -// pay : 2015-08-27 Amazon EU S.à r.l. +// pay : 2015-08-27 Amazon Registry Services, Inc. pay // pccw : 2015-05-14 PCCW Enterprises Limited @@ -9269,10 +9339,10 @@ phone // photo : 2013-11-14 Uniregistry, Corp. photo -// photography : 2013-09-20 Sugar Glen, LLC +// photography : 2013-09-20 Binky Moon, LLC photography -// photos : 2013-10-17 Sea Corner, LLC +// photos : 2013-10-17 Binky Moon, LLC photos // physio : 2014-05-01 PhysBiz Pty Ltd @@ -9287,28 +9357,28 @@ pics // pictet : 2014-06-26 Pictet Europe S.A. pictet -// pictures : 2014-03-06 Foggy Sky, LLC +// pictures : 2014-03-06 Binky Moon, LLC pictures // pid : 2015-01-08 Top Level Spectrum, Inc. pid -// pin : 2014-12-18 Amazon EU S.à r.l. +// pin : 2014-12-18 Amazon Registry Services, Inc. pin // ping : 2015-06-11 Ping Registry Provider, Inc. ping -// pink : 2013-10-01 Afilias Limited +// pink : 2013-10-01 Afilias plc pink // pioneer : 2015-07-16 Pioneer Corporation pioneer -// pizza : 2014-06-26 Foggy Moon, LLC +// pizza : 2014-06-26 Binky Moon, LLC pizza -// place : 2014-04-24 Snow Galley, LLC +// place : 2014-04-24 Binky Moon, LLC place // play : 2015-03-05 Charleston Road Registry Inc. @@ -9317,10 +9387,10 @@ play // playstation : 2015-07-02 Sony Computer Entertainment Inc. playstation -// plumbing : 2013-09-10 Spring Tigers, LLC +// plumbing : 2013-09-10 Binky Moon, LLC plumbing -// plus : 2015-02-05 Sugar Mill, LLC +// plus : 2015-02-05 Binky Moon, LLC plus // pnc : 2015-07-02 PNC Domain Co., LLC @@ -9329,7 +9399,7 @@ pnc // pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG pohl -// poker : 2014-07-03 Afilias Domains No. 5 Limited +// poker : 2014-07-03 Afilias plc poker // politie : 2015-08-20 Politie Nederland @@ -9347,13 +9417,13 @@ praxi // press : 2014-04-03 DotPress Inc. press -// prime : 2015-06-25 Amazon EU S.à r.l. +// prime : 2015-06-25 Amazon Registry Services, Inc. prime // prod : 2014-01-23 Charleston Road Registry Inc. prod -// productions : 2013-12-05 Magic Birch, LLC +// productions : 2013-12-05 Binky Moon, LLC productions // prof : 2014-07-24 Charleston Road Registry Inc. @@ -9362,16 +9432,16 @@ prof // progressive : 2015-07-23 Progressive Casualty Insurance Company progressive -// promo : 2014-12-18 +// promo : 2014-12-18 Afilias plc promo -// properties : 2013-12-05 Big Pass, LLC +// properties : 2013-12-05 Binky Moon, LLC properties // property : 2014-05-22 Uniregistry, Corp. property -// protection : 2015-04-23 +// protection : 2015-04-23 XYZ.COM LLC protection // pru : 2015-07-30 Prudential Financial, Inc. @@ -9407,7 +9477,7 @@ radio // raid : 2015-07-23 Johnson Shareholdings, Inc. raid -// read : 2014-12-18 Amazon EU S.à r.l. +// read : 2014-12-18 Amazon Registry Services, Inc. read // realestate : 2015-09-11 dotRealEstate LLC @@ -9419,10 +9489,10 @@ realtor // realty : 2015-03-19 Fegistry, LLC realty -// recipes : 2013-10-17 Grand Island, LLC +// recipes : 2013-10-17 Binky Moon, LLC recipes -// red : 2013-11-07 Afilias Limited +// red : 2013-11-07 Afilias plc red // redstone : 2014-10-31 Redstone Haute Couture Co., Ltd. @@ -9434,10 +9504,10 @@ redumbrella // rehab : 2014-03-06 United TLD Holdco Ltd. rehab -// reise : 2014-03-13 +// reise : 2014-03-13 Binky Moon, LLC reise -// reisen : 2014-03-06 New Cypress, LLC +// reisen : 2014-03-06 Binky Moon, LLC reisen // reit : 2014-09-04 National Association of Real Estate Investment Trusts, Inc. @@ -9449,16 +9519,16 @@ reliance // ren : 2013-12-12 Beijing Qianxiang Wangjing Technology Development Co., Ltd. ren -// rent : 2014-12-04 DERRent, LLC +// rent : 2014-12-04 XYZ.COM LLC rent -// rentals : 2013-12-05 Big Hollow,LLC +// rentals : 2013-12-05 Binky Moon, LLC rentals -// repair : 2013-11-07 Lone Sunset, LLC +// repair : 2013-11-07 Binky Moon, LLC repair -// report : 2013-12-05 Binky Glen, LLC +// report : 2013-12-05 Binky Moon, LLC report // republican : 2014-03-20 United TLD Holdco Ltd. @@ -9467,13 +9537,13 @@ republican // rest : 2013-12-19 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable rest -// restaurant : 2014-07-03 Snow Avenue, LLC +// restaurant : 2014-07-03 Binky Moon, LLC restaurant // review : 2014-11-20 dot Review Limited review -// reviews : 2013-09-13 +// reviews : 2013-09-13 United TLD Holdco Ltd. reviews // rexroth : 2015-06-18 Robert Bosch GMBH @@ -9506,16 +9576,16 @@ rmit // rocher : 2014-12-18 Ferrero Trading Lux S.A. rocher -// rocks : 2013-11-14 +// rocks : 2013-11-14 United TLD Holdco Ltd. rocks -// rodeo : 2013-12-19 Top Level Domain Holdings Limited +// rodeo : 2013-12-19 Minds + Machines Group Limited rodeo -// rogers : 2015-08-06 Rogers Communications Partnership +// rogers : 2015-08-06 Rogers Communications Canada Inc. rogers -// room : 2014-12-18 Amazon EU S.à r.l. +// room : 2014-12-18 Amazon Registry Services, Inc. room // rsvp : 2014-05-08 Charleston Road Registry Inc. @@ -9527,19 +9597,19 @@ rugby // ruhr : 2013-10-02 regiodot GmbH & Co. KG ruhr -// run : 2015-03-19 Snow Park, LLC +// run : 2015-03-19 Binky Moon, LLC run // rwe : 2015-04-02 RWE AG rwe -// ryukyu : 2014-01-09 BusinessRalliart Inc. +// ryukyu : 2014-01-09 BRregistry, Inc. ryukyu // saarland : 2013-12-12 dotSaarland GmbH saarland -// safe : 2014-12-18 Amazon EU S.à r.l. +// safe : 2014-12-18 Amazon Registry Services, Inc. safe // safety : 2015-01-08 Safety Registry Services, LLC. @@ -9548,10 +9618,10 @@ safety // sakura : 2014-12-18 SAKURA Internet Inc. sakura -// sale : 2014-10-16 +// sale : 2014-10-16 United TLD Holdco Ltd. sale -// salon : 2014-12-11 Outer Orchard, LLC +// salon : 2014-12-11 Binky Moon, LLC salon // samsclub : 2015-07-31 Wal-Mart Stores, Inc. @@ -9572,16 +9642,13 @@ sanofi // sap : 2014-03-27 SAP AG sap -// sapo : 2014-11-07 PT Comunicacoes S.A. -sapo - -// sarl : 2014-07-03 Delta Orchard, LLC +// sarl : 2014-07-03 Binky Moon, LLC sarl // sas : 2015-04-02 Research IP LLC sas -// save : 2015-06-25 Amazon EU S.à r.l. +// save : 2015-06-25 Amazon Registry Services, Inc. save // saxo : 2014-10-31 Saxo Bank A/S @@ -9608,10 +9675,10 @@ schmidt // scholarships : 2014-04-24 Scholarships.com, LLC scholarships -// school : 2014-12-18 Little Galley, LLC +// school : 2014-12-18 Binky Moon, LLC school -// schule : 2014-03-06 Outer Moon, LLC +// schule : 2014-03-06 Binky Moon, LLC schule // schwarz : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG @@ -9635,10 +9702,10 @@ search // seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal) seat -// secure : 2015-08-27 Amazon EU S.à r.l. +// secure : 2015-08-27 Amazon Registry Services, Inc. secure -// security : 2015-05-14 +// security : 2015-05-14 XYZ.COM LLC security // seek : 2014-12-04 Seek Limited @@ -9650,7 +9717,7 @@ select // sener : 2014-10-24 Sener Ingeniería y Sistemas, S.A. sener -// services : 2014-02-27 Fox Castle, LLC +// services : 2014-02-27 Binky Moon, LLC services // ses : 2015-07-23 SES @@ -9686,22 +9753,22 @@ shell // shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. shia -// shiksha : 2013-11-14 Afilias Limited +// shiksha : 2013-11-14 Afilias plc shiksha -// shoes : 2013-10-02 Binky Galley, LLC +// shoes : 2013-10-02 Binky Moon, LLC shoes // shop : 2016-04-08 GMO Registry, Inc. shop -// shopping : 2016-03-31 +// shopping : 2016-03-31 Binky Moon, LLC shopping // shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. shouji -// show : 2015-03-05 Snow Beach, LLC +// show : 2015-03-05 Binky Moon, LLC show // showtime : 2015-08-06 CBS Domains Inc. @@ -9710,25 +9777,25 @@ showtime // shriram : 2014-01-23 Shriram Capital Ltd. shriram -// silk : 2015-06-25 Amazon EU S.à r.l. +// silk : 2015-06-25 Amazon Registry Services, Inc. silk // sina : 2015-03-12 Sina Corporation sina -// singles : 2013-08-27 Fern Madison, LLC +// singles : 2013-08-27 Binky Moon, LLC singles // site : 2015-01-15 DotSite Inc. site -// ski : 2015-04-09 STARTING DOT LIMITED +// ski : 2015-04-09 Afilias plc ski // skin : 2015-01-15 L'Oréal skin -// sky : 2014-06-19 Sky IP International Ltd, a company incorporated in England and Wales, operating via its registered Swiss branch +// sky : 2014-06-19 Sky International AG sky // skype : 2014-12-18 Microsoft Corporation @@ -9740,13 +9807,13 @@ sling // smart : 2015-07-09 Smart Communications, Inc. (SMART) smart -// smile : 2014-12-18 Amazon EU S.à r.l. +// smile : 2014-12-18 Amazon Registry Services, Inc. smile // sncf : 2015-02-19 Société Nationale des Chemins de fer Francais S N C F sncf -// soccer : 2015-03-26 Foggy Shadow, LLC +// soccer : 2015-03-26 Binky Moon, LLC soccer // social : 2013-11-07 United TLD Holdco Ltd. @@ -9755,19 +9822,19 @@ social // softbank : 2015-07-02 SoftBank Corp. softbank -// software : 2014-03-20 +// software : 2014-03-20 United TLD Holdco Ltd. software // sohu : 2013-12-19 Sohu.com Limited sohu -// solar : 2013-11-07 Ruby Town, LLC +// solar : 2013-11-07 Binky Moon, LLC solar -// solutions : 2013-11-07 Silver Cover, LLC +// solutions : 2013-11-07 Binky Moon, LLC solutions -// song : 2015-02-26 Amazon EU S.à r.l. +// song : 2015-02-26 Amazon Registry Services, Inc. song // sony : 2015-01-08 Sony Corporation @@ -9782,13 +9849,16 @@ space // spiegel : 2014-02-05 SPIEGEL-Verlag Rudolf Augstein GmbH & Co. KG spiegel -// spot : 2015-02-26 Amazon EU S.à r.l. +// sport : 2017-11-16 Global Association of International Sports Federations (GAISF) +sport + +// spot : 2015-02-26 Amazon Registry Services, Inc. spot -// spreadbetting : 2014-12-11 IG Group Holdings PLC +// spreadbetting : 2014-12-11 Dotspreadbetting Registry Limited spreadbetting -// srl : 2015-05-07 mySRL GmbH +// srl : 2015-05-07 InterNetX, Corp srl // srt : 2015-07-30 FCA US LLC. @@ -9824,7 +9894,7 @@ stcgroup // stockholm : 2014-12-18 Stockholms kommun stockholm -// storage : 2014-12-22 Self Storage Company LLC +// storage : 2014-12-22 XYZ.COM LLC storage // store : 2015-04-09 DotStore Inc. @@ -9833,7 +9903,7 @@ store // stream : 2016-01-08 dot Stream Limited stream -// studio : 2015-02-11 +// studio : 2015-02-11 United TLD Holdco Ltd. studio // study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD @@ -9842,22 +9912,22 @@ study // style : 2014-12-04 Binky Moon, LLC style -// sucks : 2014-12-22 Vox Populi Registry Inc. +// sucks : 2014-12-22 Vox Populi Registry Ltd. sucks -// supplies : 2013-12-19 Atomic Fields, LLC +// supplies : 2013-12-19 Binky Moon, LLC supplies -// supply : 2013-12-19 Half Falls, LLC +// supply : 2013-12-19 Binky Moon, LLC supply -// support : 2013-10-24 Grand Orchard, LLC +// support : 2013-10-24 Binky Moon, LLC support -// surf : 2014-01-09 Top Level Domain Holdings Limited +// surf : 2014-01-09 Minds + Machines Group Limited surf -// surgery : 2014-03-20 Tin Avenue, LLC +// surgery : 2014-03-20 Binky Moon, LLC surgery // suzuki : 2014-02-20 SUZUKI MOTOR CORPORATION @@ -9878,7 +9948,7 @@ sydney // symantec : 2014-12-04 Symantec Corporation symantec -// systems : 2013-11-07 Dash Cypress, LLC +// systems : 2013-11-07 Binky Moon, LLC systems // tab : 2014-12-04 Tabcorp Holdings Limited @@ -9887,7 +9957,7 @@ tab // taipei : 2014-07-10 Taipei City Government taipei -// talk : 2015-04-09 Amazon EU S.à r.l. +// talk : 2015-04-09 Amazon Registry Services, Inc. talk // taobao : 2015-01-15 Alibaba Group Holding Limited @@ -9905,10 +9975,10 @@ tatar // tattoo : 2013-08-30 Uniregistry, Corp. tattoo -// tax : 2014-03-20 Storm Orchard, LLC +// tax : 2014-03-20 Binky Moon, LLC tax -// taxi : 2015-03-19 Pine Falls, LLC +// taxi : 2015-03-19 Binky Moon, LLC taxi // tci : 2014-09-12 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. @@ -9917,13 +9987,13 @@ tci // tdk : 2015-06-11 TDK Corporation tdk -// team : 2015-03-05 Atomic Lake, LLC +// team : 2015-03-05 Binky Moon, LLC team -// tech : 2015-01-30 Dot Tech LLC +// tech : 2015-01-30 Personals TLD Inc. tech -// technology : 2013-09-13 Auburn Falls +// technology : 2013-09-13 Binky Moon, LLC technology // telecity : 2015-02-19 TelecityGroup International Limited @@ -9935,19 +10005,19 @@ telefonica // temasek : 2014-08-07 Temasek Holdings (Private) Limited temasek -// tennis : 2014-12-04 Cotton Bloom, LLC +// tennis : 2014-12-04 Binky Moon, LLC tennis // teva : 2015-07-02 Teva Pharmaceutical Industries Limited teva -// thd : 2015-04-02 Homer TLC, Inc. +// thd : 2015-04-02 Home Depot Product Authority, LLC thd -// theater : 2015-03-19 Blue Tigers, LLC +// theater : 2015-03-19 Binky Moon, LLC theater -// theatre : 2015-05-07 +// theatre : 2015-05-07 XYZ.COM LLC theatre // tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America @@ -9956,16 +10026,16 @@ tiaa // tickets : 2015-02-05 Accent Media Limited tickets -// tienda : 2013-11-14 Victor Manor, LLC +// tienda : 2013-11-14 Binky Moon, LLC tienda // tiffany : 2015-01-30 Tiffany and Company tiffany -// tips : 2013-09-20 Corn Willow, LLC +// tips : 2013-09-20 Binky Moon, LLC tips -// tires : 2014-11-07 Dog Edge, LLC +// tires : 2014-11-07 Binky Moon, LLC tires // tirol : 2014-04-24 punkt Tirol GmbH @@ -9983,16 +10053,16 @@ tkmaxx // tmall : 2015-01-15 Alibaba Group Holding Limited tmall -// today : 2013-09-20 Pearl Woods, LLC +// today : 2013-09-20 Binky Moon, LLC today // tokyo : 2013-11-13 GMO Registry, Inc. tokyo -// tools : 2013-11-21 Pioneer North, LLC +// tools : 2013-11-21 Binky Moon, LLC tools -// top : 2014-03-20 Jiangsu Bangning Science & Technology Co.,Ltd. +// top : 2014-03-20 .TOP Registry top // toray : 2014-12-18 Toray Industries, Inc. @@ -10004,27 +10074,30 @@ toshiba // total : 2015-08-06 Total SA total -// tours : 2015-01-22 Sugar Station, LLC +// tours : 2015-01-22 Binky Moon, LLC tours -// town : 2014-03-06 Koko Moon, LLC +// town : 2014-03-06 Binky Moon, LLC town // toyota : 2015-04-23 TOYOTA MOTOR CORPORATION toyota -// toys : 2014-03-06 Pioneer Orchard, LLC +// toys : 2014-03-06 Binky Moon, LLC toys // trade : 2014-01-23 Elite Registry Limited trade -// trading : 2014-12-11 IG Group Holdings PLC +// trading : 2014-12-11 Dottrading Registry Limited trading -// training : 2013-11-07 Wild Willow, LLC +// training : 2013-11-07 Binky Moon, LLC training +// travel : Dog Beach, LLC +travel + // travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. travelchannel @@ -10034,7 +10107,7 @@ travelers // travelersinsurance : 2015-03-26 Travelers TLD, LLC travelersinsurance -// trust : 2014-10-16 +// trust : 2014-10-16 NCC Group Inc. trust // trv : 2015-03-26 Travelers TLD, LLC @@ -10046,10 +10119,10 @@ tube // tui : 2014-07-03 TUI AG tui -// tunes : 2015-02-26 Amazon EU S.à r.l. +// tunes : 2015-02-26 Amazon Registry Services, Inc. tunes -// tushu : 2014-12-18 Amazon EU S.à r.l. +// tushu : 2014-12-18 Amazon Registry Services, Inc. tushu // tvs : 2015-02-19 T V SUNDRAM IYENGAR & SONS LIMITED @@ -10067,7 +10140,7 @@ uconnect // unicom : 2015-10-15 China United Network Communications Corporation Limited unicom -// university : 2014-03-06 Little Station, LLC +// university : 2014-03-06 Binky Moon, LLC university // uno : 2013-09-11 Dot Latin LLC @@ -10079,7 +10152,7 @@ uol // ups : 2015-06-25 UPS Market Driver, Inc. ups -// vacations : 2013-12-05 Atomic Tigers, LLC +// vacations : 2013-12-05 Binky Moon, LLC vacations // vana : 2014-12-11 Lifestyle Domain Holdings, Inc. @@ -10091,22 +10164,22 @@ vanguard // vegas : 2014-01-16 Dot Vegas, Inc. vegas -// ventures : 2013-08-27 Binky Lake, LLC +// ventures : 2013-08-27 Binky Moon, LLC ventures // verisign : 2015-08-13 VeriSign, Inc. verisign -// versicherung : 2014-03-20 +// versicherung : 2014-03-20 TLD-BOX Registrydienstleistungen GmbH versicherung -// vet : 2014-03-06 +// vet : 2014-03-06 United TLD Holdco Ltd. vet -// viajes : 2013-10-17 Black Madison, LLC +// viajes : 2013-10-17 Binky Moon, LLC viajes -// video : 2014-10-16 +// video : 2014-10-16 United TLD Holdco Ltd. video // vig : 2015-05-14 VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe @@ -10115,10 +10188,10 @@ vig // viking : 2015-04-02 Viking River Cruises (Bermuda) Ltd. viking -// villas : 2013-12-05 New Sky, LLC +// villas : 2013-12-05 Binky Moon, LLC villas -// vin : 2015-06-18 Holly Shadow, LLC +// vin : 2015-06-18 Binky Moon, LLC vin // vip : 2015-01-22 Minds + Machines Group Limited @@ -10130,7 +10203,7 @@ virgin // visa : 2015-07-30 Visa Worldwide Pte. Limited visa -// vision : 2013-12-05 Koko Station, LLC +// vision : 2013-12-05 Binky Moon, LLC vision // vista : 2014-09-18 Vistaprint Limited @@ -10148,7 +10221,7 @@ vivo // vlaanderen : 2014-02-06 DNS.be vzw vlaanderen -// vodka : 2013-12-19 Top Level Domain Holdings Limited +// vodka : 2013-12-19 Minds + Machines Group Limited vodka // volkswagen : 2015-05-14 Volkswagen Group of America Inc. @@ -10166,7 +10239,7 @@ voting // voto : 2013-11-21 Monolith Registry LLC voto -// voyage : 2013-08-27 Ruby House, LLC +// voyage : 2013-08-27 Binky Moon, LLC voyage // vuelos : 2015-03-05 Travel Reservations SRL @@ -10181,25 +10254,25 @@ walmart // walter : 2014-11-13 Sandvik AB walter -// wang : 2013-10-24 Zodiac Leo Limited +// wang : 2013-10-24 Zodiac Wang Limited wang -// wanggou : 2014-12-18 Amazon EU S.à r.l. +// wanggou : 2014-12-18 Amazon Registry Services, Inc. wanggou // warman : 2015-06-18 Weir Group IP Limited warman -// watch : 2013-11-14 Sand Shadow, LLC +// watch : 2013-11-14 Binky Moon, LLC watch // watches : 2014-12-22 Richemont DNS Inc. watches -// weather : 2015-01-08 The Weather Channel, LLC +// weather : 2015-01-08 International Business Machines Corporation weather -// weatherchannel : 2015-03-12 The Weather Channel, LLC +// weatherchannel : 2015-03-12 International Business Machines Corporation weatherchannel // webcam : 2014-01-23 dot Webcam Limited @@ -10214,7 +10287,7 @@ website // wed : 2013-10-01 Atgron, Inc. wed -// wedding : 2014-04-24 Top Level Domain Holdings Limited +// wedding : 2014-04-24 Minds + Machines Group Limited wedding // weibo : 2015-03-05 Sina Corporation @@ -10241,7 +10314,7 @@ win // windows : 2014-12-18 Microsoft Corporation windows -// wine : 2015-06-18 June Station, LLC +// wine : 2015-06-18 Binky Moon, LLC wine // winners : 2015-07-16 The TJX Companies, Inc. @@ -10256,22 +10329,22 @@ wolterskluwer // woodside : 2015-07-09 Woodside Petroleum Limited woodside -// work : 2013-12-19 Top Level Domain Holdings Limited +// work : 2013-12-19 Minds + Machines Group Limited work -// works : 2013-11-14 Little Dynamite, LLC +// works : 2013-11-14 Binky Moon, LLC works -// world : 2014-06-12 Bitter Fields, LLC +// world : 2014-06-12 Binky Moon, LLC world -// wow : 2015-10-08 Amazon EU S.à r.l. +// wow : 2015-10-08 Amazon Registry Services, Inc. wow // wtc : 2013-12-19 World Trade Centers Association, Inc. wtc -// wtf : 2014-03-06 Hidden Way, LLC +// wtf : 2014-03-06 Binky Moon, LLC wtf // xbox : 2014-12-18 Microsoft Corporation @@ -10292,7 +10365,7 @@ xin // xn--11b4c3d : 2015-01-15 VeriSign Sarl कॉम -// xn--1ck2e1b : 2015-02-26 Amazon EU S.à r.l. +// xn--1ck2e1b : 2015-02-26 Amazon Registry Services, Inc. セール // xn--1qqw23a : 2014-01-09 Guangzhou YU Wei Information Technology Co., Ltd. @@ -10316,7 +10389,7 @@ xin // xn--42c2d9a : 2015-01-15 VeriSign Sarl คอม -// xn--45q11c : 2013-11-21 Zodiac Scorpio Limited +// xn--45q11c : 2013-11-21 Zodiac Gemini Ltd 八卦 // xn--4gbrim : 2013-10-04 Suhub Electronic Establishment @@ -10325,7 +10398,7 @@ xin // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center 公益 -// xn--55qx5d : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) +// xn--55qx5d : 2013-11-14 China Internet Network Information Center (CNNIC) 公司 // xn--5su34j936bgsg : 2015-09-03 Shangri‐La International Hotel Management Limited @@ -10334,7 +10407,7 @@ xin // xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited 网站 -// xn--6frz82g : 2013-09-23 Afilias Limited +// xn--6frz82g : 2013-09-23 Afilias plc 移动 // xn--6qq986b3xl : 2013-09-13 Tycoon Treasure Limited @@ -10367,7 +10440,7 @@ xin // xn--b4w605ferd : 2014-08-07 Temasek Holdings (Private) Limited 淡马锡 -// xn--bck1b9a5dre4c : 2015-02-26 Amazon EU S.à r.l. +// xn--bck1b9a5dre4c : 2015-02-26 Amazon Registry Services, Inc. ファッション // xn--c1avg : 2013-11-14 Public Interest Registry @@ -10376,7 +10449,7 @@ xin // xn--c2br7g : 2015-01-15 VeriSign Sarl नेट -// xn--cck2b3b : 2015-02-26 Amazon EU S.à r.l. +// xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc. ストア // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD @@ -10385,25 +10458,25 @@ xin // xn--czr694b : 2014-01-16 Dot Trademark TLD Holding Company Limited 商标 -// xn--czrs0t : 2013-12-19 Wild Island, LLC +// xn--czrs0t : 2013-12-19 Binky Moon, LLC 商店 -// xn--czru2d : 2013-11-21 Zodiac Capricorn Limited +// xn--czru2d : 2013-11-21 Zodiac Aquarius Limited 商城 // xn--d1acj3b : 2013-11-20 The Foundation for Network Initiatives “The Smart Internet” дети -// xn--eckvdtc9d : 2014-12-18 Amazon EU S.à r.l. +// xn--eckvdtc9d : 2014-12-18 Amazon Registry Services, Inc. ポイント -// xn--efvy88h : 2014-08-22 Xinhua News Agency Guangdong Branch 新华通讯社广东分社 +// xn--efvy88h : 2014-08-22 Guangzhou YU Wei Information Technology Co., Ltd. 新闻 // xn--estv75g : 2015-02-19 Industrial and Commercial Bank of China Limited 工行 -// xn--fct429k : 2015-04-09 Amazon EU S.à r.l. +// xn--fct429k : 2015-04-09 Amazon Registry Services, Inc. 家電 // xn--fhbei : 2015-01-15 VeriSign Sarl @@ -10415,7 +10488,7 @@ xin // xn--fiq64b : 2013-10-14 CITIC Group Corporation 中信 -// xn--fjq720a : 2014-05-22 Will Bloom, LLC +// xn--fjq720a : 2014-05-22 Binky Moon, LLC 娱乐 // xn--flw351e : 2014-07-31 Charleston Road Registry Inc. @@ -10427,13 +10500,13 @@ xin // xn--g2xx48c : 2015-01-30 Minds + Machines Group Limited 购物 -// xn--gckr3f0f : 2015-02-26 Amazon EU S.à r.l. +// xn--gckr3f0f : 2015-02-26 Amazon Registry Services, Inc. クラウド -// xn--gk3at1e : 2015-10-08 Amazon EU S.à r.l. +// xn--gk3at1e : 2015-10-08 Amazon Registry Services, Inc. 通販 -// xn--hxt814e : 2014-05-15 Zodiac Libra Limited +// xn--hxt814e : 2014-05-15 Zodiac Taurus Limited 网店 // xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry @@ -10442,7 +10515,7 @@ xin // xn--imr513n : 2014-12-11 Dot Trademark TLD Holding Company Limited 餐厅 -// xn--io0a7i : 2013-11-14 Computer Network Information Center of Chinese Academy of Sciences (China Internet Network Information Center) +// xn--io0a7i : 2013-11-14 China Internet Network Information Center (CNNIC) 网络 // xn--j1aef : 2015-01-15 VeriSign Sarl @@ -10451,7 +10524,7 @@ xin // xn--jlq61u9w7b : 2015-01-08 Nokia Corporation 诺基亚 -// xn--jvr189m : 2015-02-26 Amazon EU S.à r.l. +// xn--jvr189m : 2015-02-26 Amazon Registry Services, Inc. 食品 // xn--kcrx77d1x4a : 2014-11-07 Koninklijke Philips N.V. @@ -10511,6 +10584,9 @@ xin // xn--nyqy26a : 2014-11-07 Stable Tone Limited 健康 +// xn--otu796d : 2017-08-06 Dot Trademark TLD Holding Company Limited +招聘 + // xn--p1acf : 2013-12-12 Rusnames Limited рус @@ -10529,10 +10605,10 @@ xin // xn--rhqv96g : 2013-09-11 Stable Tone Limited 世界 -// xn--rovu88b : 2015-02-26 Amazon EU S.à r.l. +// xn--rovu88b : 2015-02-26 Amazon Registry Services, Inc. 書籍 -// xn--ses554g : 2014-01-16 +// xn--ses554g : 2014-01-16 KNET Co., Ltd. 网址 // xn--t60b56a : 2015-01-15 VeriSign Sarl @@ -10544,7 +10620,7 @@ xin // xn--tiq49xqyj : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) 天主教 -// xn--unup4y : 2013-07-14 Spring Fields, LLC +// xn--unup4y : 2013-07-14 Binky Moon, LLC 游戏 // xn--vermgensberater-ctb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG @@ -10553,7 +10629,7 @@ vermögensberater // xn--vermgensberatung-pwb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG vermögensberatung -// xn--vhquv : 2013-08-27 Dash McCook, LLC +// xn--vhquv : 2013-08-27 Binky Moon, LLC 企业 // xn--vuq861b : 2014-10-16 Beijing Tele-info Network Technology Co., Ltd. @@ -10571,9 +10647,6 @@ vermögensberatung // xn--zfr164b : 2013-11-08 China Organizational Name Administration Center 政务 -// xperia : 2015-05-14 Sony Mobile Communications AB -xperia - // xyz : 2013-12-05 XYZ.COM LLC xyz @@ -10583,7 +10656,7 @@ yachts // yahoo : 2015-04-02 Yahoo! Domain Services Inc. yahoo -// yamaxun : 2014-12-18 Amazon EU S.à r.l. +// yamaxun : 2014-12-18 Amazon Registry Services, Inc. yamaxun // yandex : 2014-04-10 YANDEX, LLC @@ -10592,13 +10665,13 @@ yandex // yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD. yodobashi -// yoga : 2014-05-29 Top Level Domain Holdings Limited +// yoga : 2014-05-29 Minds + Machines Group Limited yoga // yokohama : 2013-12-12 GMO Registry, Inc. yokohama -// you : 2015-04-09 Amazon EU S.à r.l. +// you : 2015-04-09 Amazon Registry Services, Inc. you // youtube : 2014-05-01 Charleston Road Registry Inc. @@ -10607,13 +10680,13 @@ youtube // yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. yun -// zappos : 2015-06-25 Amazon EU S.à r.l. +// zappos : 2015-06-25 Amazon Registry Services, Inc. zappos // zara : 2014-11-07 Industria de Diseño Textil, S.A. (INDITEX, S.A.) zara -// zero : 2014-12-18 Amazon EU S.à r.l. +// zero : 2014-12-18 Amazon Registry Services, Inc. zero // zip : 2014-05-08 Charleston Road Registry Inc. @@ -10622,7 +10695,7 @@ zip // zippo : 2015-07-02 Zadco Company zippo -// zone : 2013-11-14 Outer Falls, LLC +// zone : 2013-11-14 Binky Moon, LLC zone // zuerich : 2014-11-07 Kanton Zürich (Canton of Zurich) @@ -10639,12 +10712,6 @@ cc.ua inf.ua ltd.ua -// AgileBits Inc : https://agilebits.com -// Submitted by Roustem Karimov -1password.ca -1password.com -1password.eu - // Agnat sp. z o.o. : https://domena.pl // Submitted by Przemyslaw Plewa beep.pl @@ -10675,6 +10742,7 @@ cn-north-1.eb.amazonaws.com.cn elasticbeanstalk.com ap-northeast-1.elasticbeanstalk.com ap-northeast-2.elasticbeanstalk.com +ap-northeast-3.elasticbeanstalk.com ap-south-1.elasticbeanstalk.com ap-southeast-1.elasticbeanstalk.com ap-southeast-2.elasticbeanstalk.com @@ -10797,6 +10865,10 @@ betainabox.com // Submitted by Nathan O'Sullivan bnr.la +// Blackbaud, Inc. : https://www.blackbaud.com +// Submitted by Paul Crowder +blackbaudcdn.net + // Boomla : https://boomla.com // Submitted by Tibor Halter boomla.net @@ -10844,7 +10916,6 @@ no.com qc.com ru.com sa.com -se.com se.net uk.com uk.net @@ -10888,9 +10959,14 @@ xenapponazure.com // Submitted by Leon Rowland virtueeldomein.nl +// Clever Cloud : https://www.clever-cloud.com/ +// Submitted by Quentin Adam +cleverapps.io + // Cloud66 : https://www.cloud66.com/ // Submitted by Khash Sajadi c66.me +cloud66.ws // CloudAccess.net : https://www.cloudaccess.net/ // Submitted by Pawel Panek @@ -10908,6 +10984,10 @@ cloudcontrolapp.com // co.ca : http://registry.co.ca/ co.ca +// Co & Co : https://co-co.nl/ +// Submitted by Govert Versluis +*.otap.co + // i-registry s.r.o. : http://www.i-registry.cz/ // Submitted by Martin Semrad co.cz @@ -10934,6 +11014,14 @@ cloudns.pro cloudns.pw cloudns.us +// Cloudeity Inc : https://cloudeity.com +// Submitted by Stefan Dimitrov +cloudeity.net + +// CNPY : https://cnpy.gdn +// Submitted by Angelo Gladding +cnpy.gdn + // CoDNS B.V. co.nl co.no @@ -10977,6 +11065,15 @@ cyon.site daplie.me localhost.daplie.me +// Datto, Inc. : https://www.datto.com/ +// Submitted by Philipp Heckel +dattolocal.com +dattorelay.com +dattoweb.com +mydatto.com +dattolocal.net +mydatto.net + // Dansk.net : http://www.dansk.net/ // Submitted by Anani Voule biz.dk @@ -11321,6 +11418,10 @@ ddnss.org definima.net definima.io +// dnstrace.pro : https://dnstrace.pro/ +// Submitted by Chris Partridge +bci.dnstrace.pro + // Dynu.com : https://www.dynu.com/ // Submitted by Sue Ye ddnsfree.com @@ -11532,6 +11633,11 @@ a.ssl.fastly.net b.ssl.fastly.net global.ssl.fastly.net +// FASTVPS EESTI OU : https://fastvps.ru/ +// Submitted by Likhachev Vasiliy +fastpanel.direct +fastvps-server.com + // Featherhead : https://featherhead.xyz/ // Submitted by Simon Menke fhapp.xyz @@ -11566,9 +11672,15 @@ fbxos.fr freebox-os.fr freeboxos.fr +// freedesktop.org : https://www.freedesktop.org +// Submitted by Daniel Stone +freedesktop.org + // Futureweb OG : http://www.futureweb.at // Submitted by Andreas Schnederle-Wagner *.futurecms.at +*.ex.futurecms.at +*.in.futurecms.at futurehosting.at futuremailing.at *.ex.ortsinfo.at @@ -11694,6 +11806,7 @@ hashbang.sh // Hasura : https://hasura.io // Submitted by Shahidh K Muhammed +hasura.app hasura-app.io // Hepforge : https://www.hepforge.org @@ -11705,6 +11818,14 @@ hepforge.org herokuapp.com herokussl.com +// Hibernating Rhinos +// Submitted by Oren Eini +myravendb.com +ravendb.community +ravendb.me +development.run +ravendb.run + // Ici la Lune : http://www.icilalune.com/ // Submitted by Simon Morvan moonscale.net @@ -11759,6 +11880,19 @@ pixolino.com // Submitted by Matthew Hardeman ipifony.net +// IServ GmbH : https://iserv.eu +// Submitted by Kim-Alexander Brodowski +mein-iserv.de +test-iserv.de + +// Jino : https://www.jino.ru +// Submitted by Sergey Ulyashin +myjino.ru +*.hosting.myjino.ru +*.landing.myjino.ru +*.spectrum.myjino.ru +*.vps.myjino.ru + // Joyent : https://www.joyent.com/ // Submitted by Brian Bennett *.triton.zone @@ -11786,34 +11920,84 @@ git-repos.de lcube-server.de svn-repos.de +// Lightmaker Property Manager, Inc. : https://app.lmpm.com/ +// Submitted by Greg Holland +app.lmpm.com + +// Linki Tools UG : https://linki.tools +// Submitted by Paulo Matos +linkitools.space + +// linkyard ldt: https://www.linkyard.ch/ +// Submitted by Mario Siegenthaler +linkyard.cloud +linkyard-cloud.ch + // LiquidNet Ltd : http://www.liquidnetlimited.com/ // Submitted by Victor Velchev we.bs +// Lug.org.uk : https://lug.org.uk +// Submitted by Jon Spriggs +uklugs.org +glug.org.uk +lug.org.uk +lugs.org.uk + // Lukanet Ltd : https://lukanet.com // Submitted by Anton Avramov barsy.bg +barsy.co.uk +barsyonline.co.uk +barsycenter.com barsyonline.com +barsy.club barsy.de barsy.eu barsy.in +barsy.info +barsy.io +barsy.me +barsy.menu +barsy.mobi barsy.net barsy.online +barsy.org +barsy.pro +barsy.pub +barsy.shop +barsy.site barsy.support +barsy.uk // Magento Commerce // Submitted by Damien Tournoud *.magentosite.cloud +// May First - People Link : https://mayfirst.org/ +// Submitted by Jamie McClelland +mayfirst.info +mayfirst.org + // Mail.Ru Group : https://hb.cldmail.ru // Submitted by Ilya Zaretskiy hb.cldmail.ru +// Memset hosting : https://www.memset.com +// Submitted by Tom Whitwell +miniserver.com +memset.net + // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ // Submitted by Zdeněk Šustr cloud.metacentrum.cz custom.metacentrum.cz +// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ +// Submitted by Radim Janča +flt.cloud.muni.cz +usr.cloud.muni.cz + // Meteor Development Group : https://www.meteor.com/hosting // Submitted by Pierre Carrier meteorapp.com @@ -11822,12 +12006,17 @@ eu.meteorapp.com // Michau Enterprises Limited : http://www.co.pl/ co.pl -// Microsoft : http://microsoft.com -// Submitted by Barry Dorrans +// Microsoft Corporation : http://microsoft.com +// Submitted by Justin Luk +azurecontainer.io azurewebsites.net azure-mobile.net cloudapp.net +// Mozilla Corporation : https://mozilla.com +// Submitted by Ben Francis +mozilla-iot.org + // Mozilla Foundation : https://mozilla.org/ // Submitted by glob bmoattachments.org @@ -11859,6 +12048,34 @@ nh-serv.co.uk // Submitted by Jeff Wheelhouse nfshost.com +// Now-DNS : https://now-dns.com +// Submitted by Steve Russell +dnsking.ch +mypi.co +n4t.co +001www.com +ddnslive.com +myiphost.com +forumz.info +16-b.it +32-b.it +64-b.it +soundcast.me +tcp4.me +dnsup.net +hicam.net +now-dns.net +ownip.net +vpndns.net +dynserv.org +now-dns.org +x443.pw +now-dns.top +ntdll.top +freeddns.us +crafting.xyz +zapto.xyz + // nsupdate.info : https://www.nsupdate.info/ // Submitted by Thomas Waldmann nsupdate.info @@ -11961,6 +12178,10 @@ stage.nodeart.io nodum.co nodum.io +// Nucleos Inc. : https://nucleos.com +// Submitted by Piotr Zduniak +pcloud.host + // NYC.mn : http://www.information.nyc.mn // Submitted by Matthew Brown nyc.mn @@ -11968,25 +12189,32 @@ nyc.mn // NymNom : https://nymnom.com/ // Submitted by Dave McCormack nom.ae +nom.af nom.ai nom.al nym.by nym.bz nom.cl nom.gd +nom.ge nom.gl nym.gr nom.gt +nym.gy nom.hn +nym.ie nom.im +nom.ke nym.kz nym.la +nym.lc nom.li nym.li nym.lt nym.lu nym.me nom.mk +nym.mn nym.mx nom.nu nym.nz @@ -11994,11 +12222,14 @@ nym.pe nym.pt nom.pw nom.qa +nym.ro nom.rs nom.si nym.sk +nom.st nym.su nym.sx +nom.tj nym.tw nom.ug nom.uy @@ -12009,6 +12240,10 @@ nom.vg // Submitted by Andrew Sampson cya.gg +// Omnibond Systems, LLC. : https://www.omnibond.com +// Submitted by Cole Estep +cloudycluster.net + // One Fold Media : http://www.onefoldmedia.com/ // Submitted by Eddie Jones nid.io @@ -12025,9 +12260,14 @@ operaunite.com // Submitted by Duarte Santos outsystemscloud.com -// OwnProvider : http://www.ownprovider.com +// OwnProvider GmbH: http://www.ownprovider.com // Submitted by Jan Moennich ownprovider.com +own.pm + +// OX : http://www.ox.rs +// Submitted by Adam Grand +ox.rs // oy.lc // Submitted by Charly Coste @@ -12084,6 +12324,10 @@ protonet.io chirurgiens-dentistes-en-france.fr byen.site +// Russian Academy of Sciences +// Submitted by Tech Support +ras.ru + // QA2 // Submitted by Daniel Dent (https://www.danieldent.com/) qa2.com @@ -12136,6 +12380,10 @@ sandcats.io logoip.de logoip.com +// schokokeks.org GbR : https://schokokeks.org/ +// Submitted by Hanno Böck +schokokeks.net + // Scry Security : http://www.scrysec.com // Submitted by Shante Adam scrysec.com @@ -12201,14 +12449,18 @@ apps.lair.io // Submitted by Reza Akhavan spacekit.io -// Stackspace : https://www.stackspace.io/ -// Submitted by Lina He -stackspace.space +// SpeedPartner GmbH: https://www.speedpartner.de/ +// Submitted by Stefan Neufeind +customer.speedpartner.de // Storj Labs Inc. : https://storj.io/ // Submitted by Philip Hutchins storj.farm +// Studenten Net Twente : http://www.snt.utwente.nl/ +// Submitted by Silke Hofstra +utwente.io + // Sub 6 Limited: http://www.sub6.com // Submitted by Dan Miller temp-dns.com @@ -12241,6 +12493,10 @@ gdynia.pl med.pl sopot.pl +// The Gwiddle Foundation : https://gwiddlefoundation.org.uk +// Submitted by Joshua Bayfield +gwiddle.co.uk + // Thingdust AG : https://thingdust.com/ // Submitted by Adrian Imboden cust.dev.thingdust.io @@ -12275,7 +12531,7 @@ lima-city.rocks webspace.rocks lima.zone -// TransIP : htts://www.transip.nl +// TransIP : https://www.transip.nl // Submitted by Rory Breuk *.transurl.be *.transurl.eu @@ -12304,6 +12560,7 @@ synology-ds.de // Uberspace : https://uberspace.de // Submitted by Moritz Werner uber.space +*.uberspace.de // UDR Limited : http://www.udr.hk.com // Submitted by registry @@ -12312,10 +12569,19 @@ hk.org ltd.hk inc.hk +// United Gameserver GmbH : https://united-gameserver.de +// Submitted by Stefan Schwarz +virtualuser.de +virtual-user.de + // .US // Submitted by Ed Moore lib.de.us +// VeryPositive SIA : http://very.lv +// Submitted by Danko Aleksejevs +2038.io + // Viprinet Europe GmbH : http://www.viprinet.com // Submitted by Simon Kissel router.management @@ -12338,12 +12604,26 @@ remotewd.com // Submitted by Yuvi Panda wmflabs.org +// XenonCloud GbR: https://xenoncloud.net +// Submitted by Julian Uphoff +half.host + +// XnBay Technology : http://www.xnbay.com/ +// Submitted by XnBay Developer +xnbay.com +u2.xnbay.com +u2-local.xnbay.com + // XS4ALL Internet bv : https://www.xs4all.nl/ // Submitted by Daniel Mostertman cistron.nl demon.nl xs4all.space +// YesCourse Pty Ltd : https://yescourse.com +// Submitted by Atul Bhouraskar +official.academy + // Yola : https://www.yola.com/ // Submitted by Stefano Rivera yolasite.com @@ -12358,6 +12638,11 @@ ybo.review ybo.science ybo.trade +// Yunohost : https://yunohost.org +// Submitted by Valentin Grimaud +nohost.me +noho.st + // ZaNiC : http://www.za.net/ // Submitted by registry za.net @@ -12367,4 +12652,8 @@ za.org // Submitted by Olli Vanhoja now.sh +// Zone.id : https://zone.id/ +// Submitted by Su Hendro +zone.id + // ===END PRIVATE DOMAINS=== From 93aad6add34658f8c8609eb914443e7d17378068 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 15 Aug 2018 19:55:31 +0200 Subject: [PATCH 249/450] Release 3.0.3 --- CHANGELOG.md | 5 +++++ lib/public_suffix/version.rb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ccfeb32b..5df36bfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### Release 3.0.3 + +- CHANGED: Updated definitions. + + #### Release 3.0.2 - CHANGED: Updated definitions. diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 3866d960..85fc0e6e 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -6,5 +6,5 @@ module PublicSuffix # The current library version. - VERSION = "3.0.2".freeze + VERSION = "3.0.3".freeze end From 65e7b5fd3deb6dd46771c05b8c91da2d4d76f74f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 29 Oct 2018 16:06:33 +0100 Subject: [PATCH 250/450] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e023d2eb..8c0cdca6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ rvm: - ruby-head env: - - COVERALL=1 + - COVERAGE=1 cache: - bundler From 38b89a9fbb053090f509b89ea8ff69d6b28a79dd Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 29 Oct 2018 16:09:21 +0100 Subject: [PATCH 251/450] Switch to CodeCov --- Gemfile | 2 +- test/test_helper.rb | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index db22b745..4face3d3 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" gemspec -gem "coveralls", require: false +gem "codecov", require: false gem "minitest" gem "minitest-reporters" gem "rubocop", require: false diff --git a/test/test_helper.rb b/test/test_helper.rb index 55a9643b..1b389687 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,9 @@ -if ENV["COVERALL"] - require "coveralls" - Coveralls.wear! +if ENV["COVERAGE"] + require 'simplecov' + SimpleCov.start + + require 'codecov' + SimpleCov.formatter = SimpleCov::Formatter::Codecov end require "minitest/autorun" From f749c1ac7670828162f50770a9c0887e0366001a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 29 Oct 2018 16:13:17 +0100 Subject: [PATCH 252/450] Fix offenses --- lib/public_suffix.rb | 2 ++ lib/public_suffix/list.rb | 8 +++++--- test/psl_test.rb | 1 + test/test_helper.rb | 4 ++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index c94eb66f..4bdecb11 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -77,6 +77,7 @@ def self.parse(name, list: List.default, default_rule: list.default_rule, ignore if rule.decompose(what).last.nil? raise DomainNotAllowed, "`#{what}` is not allowed according to Registry policy" end + # rubocop:enable Style/IfUnlessModifier decompose(what, rule) @@ -169,6 +170,7 @@ def self.normalize(name) return DomainInvalid.new("Name is blank") if name.empty? return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") + name end diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 605a9186..69173f7e 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -81,6 +81,7 @@ def self.parse(input, private_domains: true) # include private domains or stop scanner when line.include?(private_token) break if !private_domains + section = 2 # skip comments @@ -116,6 +117,7 @@ def initialize # @return [Boolean] def ==(other) return false unless other.is_a?(List) + equal?(other) || @rules == other.rules end alias eql? == @@ -170,6 +172,7 @@ def clear def find(name, default: default_rule, **options) rule = select(name, **options).inject do |l, r| return r if r.class == Rule::Exception + l.length > r.length ? l : r end rule || default @@ -201,12 +204,11 @@ def select(name, ignore_private: false) loop do match = @rules[query] - if !match.nil? && (ignore_private == false || match.private == false) - rules << entry_to_rule(match, query) - end + rules << entry_to_rule(match, query) if !match.nil? && (ignore_private == false || match.private == false) index += 1 break if index >= parts.size + query = parts[index] + DOT + query end diff --git a/test/psl_test.rb b/test/psl_test.rb index 004eb26e..b1b2e5e6 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -13,6 +13,7 @@ def self.tests line = line.strip next if line.empty? next if line.start_with?("//") + input, output = line.split(", ") # handle the case of eval("null"), it must be eval("nil") diff --git a/test/test_helper.rb b/test/test_helper.rb index 1b389687..25bea200 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,8 +1,8 @@ if ENV["COVERAGE"] - require 'simplecov' + require "simplecov" SimpleCov.start - require 'codecov' + require "codecov" SimpleCov.formatter = SimpleCov::Formatter::Codecov end From 916d0133eb78619c99eef82b88d649cb5885d2bb Mon Sep 17 00:00:00 2001 From: Peter Cai <222655+pcai@users.noreply.github.com> Date: Thu, 25 Apr 2019 05:02:53 -0400 Subject: [PATCH 253/450] Fix typo in comment (#159) --- lib/public_suffix/domain.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 07ca8894..3f84bfac 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -43,7 +43,7 @@ def self.name_to_labels(name) # Initializes with a +tld+, +sld+ and +trd+. # @param [String] tld The TLD (extension) # @param [String] sld The SLD (domain) - # @param [String] tld The TRD (subdomain) + # @param [String] trd The TRD (subdomain) # # @yield [self] Yields on self. # @yieldparam [PublicSuffix::Domain] self The newly creates instance From f05f1565a0df49bbeea818008a57f966f20b95cf Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 25 Apr 2019 11:04:16 +0200 Subject: [PATCH 254/450] Make Travis happy --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8c0cdca6..da6e83cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ rvm: - 2.3 - 2.4 - 2.5 + - 2.6 - jruby-9.1.5.0 - ruby-head @@ -21,5 +22,5 @@ matrix: - rvm: jruby-9.1.0.0 before_install: - - rvm get latest + - gem update --system - gem install bundler From 1fb5578723ce41f8b21cd82818f5106fdfd2c0a9 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 25 Apr 2019 11:09:52 +0200 Subject: [PATCH 255/450] Upgrade Bundler --- .ruby-gemset | 2 +- lib/public_suffix/version.rb | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.ruby-gemset b/.ruby-gemset index 06070ae9..4dcdb08b 100644 --- a/.ruby-gemset +++ b/.ruby-gemset @@ -1 +1 @@ -publicsuffix \ No newline at end of file +-global \ No newline at end of file diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 85fc0e6e..c88cc01c 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -1,3 +1,6 @@ +# frozen_string_literal: true + +# # = Public Suffix # # Domain name parser based on the Public Suffix List. From 1f10154794530bf4a28f5213ed0dfc0e55b6eefc Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 25 Apr 2019 11:13:15 +0200 Subject: [PATCH 256/450] Minimum Ruby version is 2.3 --- .travis.yml | 2 -- CHANGELOG.md | 6 ++++++ public_suffix.gemspec | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index da6e83cd..e65f4f65 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ language: ruby rvm: - - 2.1 - - 2.2 - 2.3 - 2.4 - 2.5 diff --git a/CHANGELOG.md b/CHANGELOG.md index 5df36bfc..42207cae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog +#### master + +- CHANGED: Minimum Ruby version is 2.3 +- CHANGED: Upgraded to Bundler 2.x + + #### Release 3.0.3 - CHANGED: Updated definitions. diff --git a/public_suffix.gemspec b/public_suffix.gemspec index 44bfccf1..e4a6cd37 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |s| s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.licenses = ["MIT"] - s.required_ruby_version = ">= 2.1" + s.required_ruby_version = ">= 2.3" s.require_paths = ["lib"] s.files = `git ls-files`.split("\n") From 2803479f5a1eceec0f1416ea538aa0ca301b64e9 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 25 Apr 2019 11:20:07 +0200 Subject: [PATCH 257/450] Fix version mismatch --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e65f4f65..b676a52b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ cache: matrix: allow_failures: - rvm: ruby-head - - rvm: jruby-9.1.0.0 + - rvm: jruby-9.1.5.0 before_install: - gem update --system From d3ea96c432b0f0f59c6ca9170c610f97af3cc6f5 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 27 May 2019 10:00:28 +0200 Subject: [PATCH 258/450] Upgrade to Rubocop 0.70 --- .rubocop_defaults.yml | 9 ++------- Gemfile | 2 ++ Rakefile | 4 +++- bin/console | 1 + lib/public_suffix.rb | 8 +++++--- lib/public_suffix/domain.rb | 2 ++ lib/public_suffix/errors.rb | 2 ++ lib/public_suffix/list.rb | 6 ++++-- lib/public_suffix/rule.rb | 2 ++ lib/public_suffix/version.rb | 2 +- test/acceptance_test.rb | 2 ++ test/psl_test.rb | 2 ++ test/test_helper.rb | 2 ++ test/unit/domain_test.rb | 2 ++ test/unit/errors_test.rb | 2 ++ test/unit/list_test.rb | 2 ++ test/unit/public_suffix_test.rb | 2 ++ test/unit/rule_test.rb | 2 ++ 18 files changed, 40 insertions(+), 14 deletions(-) diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index 4d07840d..fa91f00b 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -63,11 +63,6 @@ Metrics/ParameterLists: Metrics/PerceivedComplexity: Enabled: false -# [codesmell] -# I don't really get the point of this cop. -Performance/RedundantMerge: - Enabled: false - # Do not use "and" or "or" in conditionals, but for readability we can use it # to chain executions. Just beware of operator order. Style/AndOr: @@ -123,12 +118,12 @@ Style/RescueStandardError: # Array indentation should be considered like MultilineMethodCallIndentation indentation # and use 4 spaces instead of 2. -Layout/IndentArray: +Layout/IndentFirstArrayElement: IndentationWidth: 4 # Hash indentation should be considered like MultilineMethodCallIndentation indentation # and use 4 spaces instead of 2. -Layout/IndentHash: +Layout/IndentFirstHashElement: IndentationWidth: 4 # Multi-line differs from standard indentation, they are indented twice. diff --git a/Gemfile b/Gemfile index 4face3d3..1339c9f9 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gemspec diff --git a/Rakefile b/Rakefile index d304b662..502270a4 100644 --- a/Rakefile +++ b/Rakefile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "bundler/gem_tasks" # By default, run tests and linter. @@ -39,7 +41,7 @@ desc "Downloads the Public Suffix List file from the repository and stores it lo task :"update-list" do require "net/http" - DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat".freeze + DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" File.open("data/list.txt", "w+") do |f| response = Net::HTTP.get_response(URI.parse(DEFINITION_URL)) diff --git a/bin/console b/bin/console index fd0f7392..c638bb43 100755 --- a/bin/console +++ b/bin/console @@ -1,4 +1,5 @@ #!/usr/bin/env ruby +# frozen_string_literal: true require "bundler/setup" require "public_suffix" diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 4bdecb11..b607cd31 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # = Public Suffix # # Domain name parser based on the Public Suffix List. @@ -20,9 +22,9 @@ # but was originally created to meet the needs of browser manufacturers. module PublicSuffix - DOT = ".".freeze - BANG = "!".freeze - STAR = "*".freeze + DOT = "." + BANG = "!" + STAR = "*" # Parses +name+ and returns the {PublicSuffix::Domain} instance. # diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 3f84bfac..352d110e 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # = Public Suffix # # Domain name parser based on the Public Suffix List. diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index 687befb4..244164b6 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # = Public Suffix # # Domain name parser based on the Public Suffix List. diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 69173f7e..c5077e35 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # = Public Suffix # # Domain name parser based on the Public Suffix List. @@ -65,8 +67,8 @@ def self.default=(value) # @param private_domains [Boolean] whether to ignore the private domains section # @return [PublicSuffix::List] def self.parse(input, private_domains: true) - comment_token = "//".freeze - private_token = "===BEGIN PRIVATE DOMAINS===".freeze + comment_token = "//" + private_token = "===BEGIN PRIVATE DOMAINS===" section = nil # 1 == ICANN, 2 == PRIVATE new do |list| diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index ec2ecd0c..93540210 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # = Public Suffix # # Domain name parser based on the Public Suffix List. diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index c88cc01c..03a08cce 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "3.0.3".freeze + VERSION = "3.0.3" end diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index ce53bb8f..660bdbc0 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" class AcceptanceTest < Minitest::Test diff --git a/test/psl_test.rb b/test/psl_test.rb index b1b2e5e6..20dc79a9 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" require "public_suffix" diff --git a/test/test_helper.rb b/test/test_helper.rb index 25bea200..1d5468c3 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + if ENV["COVERAGE"] require "simplecov" SimpleCov.start diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index 509ce1b5..968462d9 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" class PublicSuffix::DomainTest < Minitest::Test diff --git a/test/unit/errors_test.rb b/test/unit/errors_test.rb index 47ac592e..75099ba9 100644 --- a/test/unit/errors_test.rb +++ b/test/unit/errors_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" class ErrorsTest < Minitest::Test diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 693945d1..98529352 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" class PublicSuffix::ListTest < Minitest::Test diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index a505ce1d..48a85e0f 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" class PublicSuffixTest < Minitest::Test diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index ed1c1320..ea5ec8c0 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "test_helper" class PublicSuffix::RuleTest < Minitest::Test From 245836e3c1e5f82bf23d35579479ee8d6c2fcaca Mon Sep 17 00:00:00 2001 From: Guilherme Quirino Date: Mon, 27 May 2019 05:01:10 -0300 Subject: [PATCH 259/450] Update definitions list (#160) --- data/list.txt | 469 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 376 insertions(+), 93 deletions(-) diff --git a/data/list.txt b/data/list.txt index f671831a..c6d33bc8 100644 --- a/data/list.txt +++ b/data/list.txt @@ -155,8 +155,13 @@ mil.al net.al org.al -// am : https://en.wikipedia.org/wiki/.am +// am : https://www.amnic.net/policy/en/Policy_EN.pdf am +co.am +com.am +commune.am +net.am +org.am // ao : https://en.wikipedia.org/wiki/.ao // http://www.dns.ao/REGISTR.DOC @@ -551,6 +556,7 @@ niteroi.br not.br ntr.br odo.br +ong.br org.br osasco.br palmas.br @@ -580,6 +586,7 @@ slz.br sorocaba.br srv.br taxi.br +tc.br teo.br the.br tmp.br @@ -983,17 +990,16 @@ fm fo // fr : http://www.afnic.fr/ -// domaines descriptifs : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-descriptifs +// domaines descriptifs : https://www.afnic.fr/medias/documents/Cadre_legal/Afnic_Naming_Policy_12122016_VEN.pdf fr -com.fr asso.fr +com.fr +gouv.fr nom.fr prd.fr -presse.fr tm.fr -// domaines sectoriels : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-sectoriels +// domaines sectoriels : https://www.afnic.fr/en/products-and-services/the-fr-tld/sector-based-fr-domains-4.html aeroport.fr -assedic.fr avocat.fr avoues.fr cci.fr @@ -1001,7 +1007,6 @@ chambagri.fr chirurgiens-dentistes.fr experts-comptables.fr geometre-expert.fr -gouv.fr greta.fr huissier-justice.fr medecin.fr @@ -1413,9 +1418,9 @@ taa.it tos.it toscana.it trentin-sud-tirol.it -trentin-süd-tirol.it +trentin-süd-tirol.it trentin-sudtirol.it -trentin-südtirol.it +trentin-südtirol.it trentin-sued-tirol.it trentin-suedtirol.it trentino-a-adige.it @@ -1425,9 +1430,9 @@ trentino-altoadige.it trentino-s-tirol.it trentino-stirol.it trentino-sud-tirol.it -trentino-süd-tirol.it +trentino-süd-tirol.it trentino-sudtirol.it -trentino-südtirol.it +trentino-südtirol.it trentino-sued-tirol.it trentino-suedtirol.it trentino.it @@ -1438,15 +1443,15 @@ trentinoaltoadige.it trentinos-tirol.it trentinostirol.it trentinosud-tirol.it -trentinosüd-tirol.it +trentinosüd-tirol.it trentinosudtirol.it -trentinosüdtirol.it +trentinosüdtirol.it trentinosued-tirol.it trentinosuedtirol.it trentinsud-tirol.it -trentinsüd-tirol.it +trentinsüd-tirol.it trentinsudtirol.it -trentinsüdtirol.it +trentinsüdtirol.it trentinsued-tirol.it trentinsuedtirol.it tuscany.it @@ -1463,13 +1468,13 @@ valleaosta.it valled-aosta.it valledaosta.it vallee-aoste.it -vallée-aoste.it +vallée-aoste.it vallee-d-aoste.it -vallée-d-aoste.it +vallée-d-aoste.it valleeaoste.it -valléeaoste.it +valléeaoste.it valleedaoste.it -valléedaoste.it +valléedaoste.it vao.it vda.it ven.it @@ -1503,7 +1508,7 @@ av.it avellino.it ba.it balsan-sudtirol.it -balsan-südtirol.it +balsan-südtirol.it balsan-suedtirol.it balsan.it bari.it @@ -1522,7 +1527,7 @@ bologna.it bolzano-altoadige.it bolzano.it bozen-sudtirol.it -bozen-südtirol.it +bozen-südtirol.it bozen-suedtirol.it bozen.it br.it @@ -1531,7 +1536,7 @@ brindisi.it bs.it bt.it bulsan-sudtirol.it -bulsan-südtirol.it +bulsan-südtirol.it bulsan-suedtirol.it bulsan.it bz.it @@ -1551,9 +1556,9 @@ catanzaro.it cb.it ce.it cesena-forli.it -cesena-forlì.it +cesena-forlì.it cesenaforli.it -cesenaforlì.it +cesenaforlì.it ch.it chieti.it ci.it @@ -1584,9 +1589,9 @@ florence.it fm.it foggia.it forli-cesena.it -forlì-cesena.it +forlì-cesena.it forlicesena.it -forlìcesena.it +forlìcesena.it fr.it frosinone.it ge.it @@ -1717,7 +1722,7 @@ sp.it sr.it ss.it suedtirol.it -südtirol.it +südtirol.it sv.it ta.it taranto.it @@ -3789,10 +3794,18 @@ gov.lr org.lr net.lr -// ls : https://en.wikipedia.org/wiki/.ls +// ls : http://www.nic.ls/ +// Confirmed by registry ls +ac.ls +biz.ls co.ls +edu.ls +gov.ls +info.ls +net.ls org.ls +sc.ls // lt : https://en.wikipedia.org/wiki/.lt lt @@ -4650,9 +4663,6 @@ web.ni // ccTLD for the Netherlands nl -// BV.nl will be a registry for dutch BV's (besloten vennootschap) -bv.nl - // no : http://www.norid.no/regelverk/index.en.html // The Norwegian registry has declined to notify us of updates. The web pages // referenced below are the official source of the data. There is also an @@ -5882,17 +5892,15 @@ int.ru mil.ru test.ru -// rw : http://www.nic.rw/cgi-bin/policy.pl +// rw : https://www.ricta.org.rw/sites/default/files/resources/registry_registrar_contract_0.pdf rw -gov.rw -net.rw -edu.rw ac.rw -com.rw co.rw -int.rw +coop.rw +gov.rw mil.rw -gouv.rw +net.rw +org.rw // sa : http://www.nic.net.sa/ sa @@ -6182,34 +6190,33 @@ org.to edu.to mil.to -// subTLDs: https://www.nic.tr/forms/eng/policies.pdf -// and: https://www.nic.tr/forms/politikalar.pdf -// Submitted by +// tr : https://nic.tr/ +// https://nic.tr/forms/eng/policies.pdf +// https://nic.tr/index.php?USRACTN=PRICELST tr -com.tr -info.tr -biz.tr -net.tr -org.tr -web.tr -gen.tr -tv.tr av.tr -dr.tr bbs.tr -name.tr -tel.tr -gov.tr bel.tr -pol.tr +biz.tr +com.tr +dr.tr +edu.tr +gen.tr +gov.tr +info.tr mil.tr k12.tr -edu.tr kep.tr - +name.tr +net.tr +org.tr +pol.tr +tel.tr +tsk.tr +tv.tr +web.tr // Used by Northern Cyprus nc.tr - // Used by government agencies of Northern Cyprus gov.nc.tr @@ -7098,9 +7105,6 @@ accountants // aco : 2015-01-08 ACO Severin Ahlmann GmbH & Co. KG aco -// active : 2014-05-01 Active Network, LLC -active - // actor : 2013-12-12 United TLD Holdco Ltd. actor @@ -7401,9 +7405,6 @@ black // blackfriday : 2014-01-16 Uniregistry, Corp. blackfriday -// blanco : 2015-07-16 BLANCO GmbH + Co KG -blanco - // blockbuster : 2015-07-30 Dish DBS Corporation blockbuster @@ -7938,9 +7939,6 @@ dodge // dog : 2014-12-04 Binky Moon, LLC dog -// doha : 2014-09-18 Communications Regulatory Authority (CRA) -doha - // domains : 2013-10-17 Binky Moon, LLC domains @@ -8013,9 +8011,6 @@ engineering // enterprises : 2013-09-20 Binky Moon, LLC enterprises -// epost : 2015-07-23 Deutsche Post AG -epost - // epson : 2014-12-04 Seiko Epson Corporation epson @@ -8343,9 +8338,6 @@ golf // goo : 2014-12-18 NTT Resonant Inc. goo -// goodhands : 2015-07-31 Allstate Fire and Casualty Insurance Company -goodhands - // goodyear : 2015-07-02 The Goodyear Tire & Rubber Company goodyear @@ -8646,9 +8638,6 @@ jewelry // jio : 2015-04-02 Reliance Industries Limited jio -// jlc : 2014-12-04 Richemont DNS Inc. -jlc - // jll : 2015-04-02 Jones Lang LaSalle Incorporated jll @@ -9291,9 +9280,6 @@ page // panasonic : 2015-07-30 Panasonic Corporation panasonic -// panerai : 2014-11-07 Richemont DNS Inc. -panerai - // paris : 2014-01-30 City of Paris paris @@ -9846,9 +9832,6 @@ soy // space : 2014-04-03 DotSpace Inc. space -// spiegel : 2014-02-05 SPIEGEL-Verlag Rudolf Augstein GmbH & Co. KG -spiegel - // sport : 2017-11-16 Global Association of International Sports Federations (GAISF) sport @@ -9882,9 +9865,6 @@ statebank // statefarm : 2015-07-30 State Farm Mutual Automobile Insurance Company statefarm -// statoil : 2014-12-04 Statoil ASA -statoil - // stc : 2014-10-09 Saudi Telecom Company stc @@ -9996,9 +9976,6 @@ tech // technology : 2013-09-13 Binky Moon, LLC technology -// telecity : 2015-02-19 TelecityGroup International Limited -telecity - // telefonica : 2014-10-16 Telefónica S.A. telefonica @@ -10206,9 +10183,6 @@ visa // vision : 2013-12-05 Binky Moon, LLC vision -// vista : 2014-09-18 Vistaprint Limited -vista - // vistaprint : 2014-09-18 Vistaprint Limited vistaprint @@ -10692,9 +10666,6 @@ zero // zip : 2014-05-08 Charleston Road Registry Inc. zip -// zippo : 2015-07-02 Zadco Company -zippo - // zone : 2013-11-14 Binky Moon, LLC zone @@ -10716,6 +10687,10 @@ ltd.ua // Submitted by Przemyslaw Plewa beep.pl +// alboto.ca : http://alboto.ca +// Submitted by Anton Avramov +barsy.ca + // Alces Software Ltd : http://alces-software.com // Submitted by Mark J. Titorenko *.compute.estate @@ -10739,6 +10714,7 @@ us-east-1.amazonaws.com // Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/ // Submitted by Luke Wells cn-north-1.eb.amazonaws.com.cn +cn-northwest-1.eb.amazonaws.com.cn elasticbeanstalk.com ap-northeast-1.elasticbeanstalk.com ap-northeast-2.elasticbeanstalk.com @@ -10825,6 +10801,10 @@ s3-website.us-east-2.amazonaws.com t3l3p0rt.net tele.amune.org +// Apigee : https://apigee.com/ +// Submitted by Apigee Security Team +apigee.io + // Aptible : https://www.aptible.com/ // Submitted by Thomas Orozco on-aptible.com @@ -10844,6 +10824,12 @@ sweetpepper.org // Submitted by Vincent Tseng myasustor.com +// Automattic Inc. : https://automattic.com/ +// Submitted by Alex Concha +go-vip.co +go-vip.net +wpcomstaging.com + // AVM : https://avm.de // Submitted by Andreas Weise myfritz.net @@ -10853,10 +10839,18 @@ myfritz.net *.awdev.ca *.advisor.ws +// b-data GmbH : https://www.b-data.io +// Submitted by Olivier Benz +b-data.io + // backplane : https://www.backplane.io // Submitted by Anthony Voutas backplaneapp.io +// Banzai Cloud +// Submitted by Gabor Kozma +app.banzaicloud.io + // BetaInABox // Submitted by Adrian betainabox.com @@ -10890,10 +10884,22 @@ square7.net // Submitted by Dave Tharp browsersafetymark.io +// Bytemark Hosting : https://www.bytemark.co.uk +// Submitted by Paul Cammish +uk0.bigv.io +dh.bytemark.co.uk +vm.bytemark.co.uk + // callidomus : https://www.callidomus.com/ // Submitted by Marcus Popp mycd.eu +// Carrd : https://carrd.co +// Submitted by AJ +carrd.co +crd.co +uwu.ai + // CentralNic : http://www.centralnic.com/names/domains // Submitted by registry ae.org @@ -10955,6 +10961,10 @@ certmgr.org // Submitted by Alex Stoddard xenapponazure.com +// Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/ +// Submitted by Rishabh Nambiar +discourse.group + // ClearVox : http://www.clearvox.nl/ // Submitted by Leon Rowland virtueeldomein.nl @@ -10963,10 +10973,16 @@ virtueeldomein.nl // Submitted by Quentin Adam cleverapps.io +// Clerk : https://www.clerk.dev +// Submitted by Colin Sidoti +*.lcl.dev +*.stg.dev + // Cloud66 : https://www.cloud66.com/ // Submitted by Khash Sajadi c66.me cloud66.ws +cloud66.zone // CloudAccess.net : https://www.cloudaccess.net/ // Submitted by Pawel Panek @@ -10981,6 +10997,14 @@ cloudaccess.net cloudcontrolled.com cloudcontrolapp.com +// Cloudflare, Inc. : https://www.cloudflare.com/ +// Submitted by Jake Riesterer +workers.dev + +// Clovyr : https://clovyr.io +// Submitted by Patrick Nielsen +wnext.app + // co.ca : http://registry.co.ca/ co.ca @@ -11082,6 +11106,11 @@ firm.dk reg.dk store.dk +// dapps.earth : https://dapps.earth/ +// Submitted by Daniil Burdakov +*.dapps.earth +*.bzz.dapps.earth + // Debian : https://www.debian.org/ // Submitted by Peter Palfrader / Debian Sysadmin Team debian.net @@ -11094,6 +11123,11 @@ dedyn.io // Submitted by Norbert Auler dnshome.de +// DotArai : https://www.dotarai.com/ +// Submitted by Atsadawat Netcharadsang +online.th +shop.th + // DrayTek Corp. : https://www.draytek.com/ // Submitted by Paul Fang drayddns.com @@ -11454,6 +11488,11 @@ e4.cz // Submitted by Thomas Cottier mytuleap.com +// ECG Robotics, Inc: https://ecgrobotics.org +// Submitted by +onred.one +staging.onred.one + // Enonic : http://enonic.com/ // Submitted by Erik Kaareng-Sunde enonic.io @@ -11623,6 +11662,7 @@ channelsdvr.net // Fastly Inc. : http://www.fastly.com/ // Submitted by Fastly Security +fastly-terrarium.com fastlylb.net map.fastlylb.net freetls.fastly.net @@ -11650,9 +11690,19 @@ cloud.fedoraproject.org app.os.fedoraproject.org app.os.stg.fedoraproject.org +// Fermax : https://fermax.com/ +// submitted by Koen Van Isterdael +mydobiss.com + // Filegear Inc. : https://www.filegear.com // Submitted by Jason Zhu filegear.me +filegear-au.me +filegear-de.me +filegear-gb.me +filegear-ie.me +filegear-jp.me +filegear-sg.me // Firebase, Inc. // Submitted by Chris Raynor @@ -11691,6 +11741,15 @@ futuremailing.at // Submitted by David Illsley service.gov.uk +// Gehirn Inc. : https://www.gehirn.co.jp/ +// Submitted by Kohei YOSHIDA +gehirn.ne.jp +usercontent.jp + +// Gentlent, Limited : https://www.gentlent.com +// Submitted by Tom Klein +lab.ms + // GitHub, Inc. // Submitted by Patrick Toomey github.io @@ -11700,6 +11759,15 @@ githubusercontent.com // Submitted by Alex Hanselka gitlab.io +// Glitch, Inc : https://glitch.com +// Submitted by Mads Hartmann +glitch.me + +// GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/ +// Submitted by Tom Whitwell +cloudapps.digital +london.cloudapps.digital + // UKHomeOffice : https://www.gov.uk/government/organisations/home-office // Submitted by Jon Shanks homeoffice.gov.uk @@ -11715,6 +11783,8 @@ goip.de // Google, Inc. // Submitted by Eduardo Vela +run.app +a.run.app *.0emm.com appspot.com blogspot.ae @@ -11801,6 +11871,14 @@ publishproxy.com withgoogle.com withyoutube.com +// Hakaran group: http://hakaran.cz +// Submited by Arseniy Sokolov +fin.ci +free.hr +caa.li +ua.rs +conf.se + // Hashbang : https://hashbang.sh hashbang.sh @@ -11826,14 +11904,44 @@ ravendb.me development.run ravendb.run +// HOSTBIP REGISTRY : https://www.hostbip.com/ +// Submitted by Atanunu Igbunuroghene +bpl.biz +orx.biz +ng.city +ng.ink +biz.gl +col.ng +gen.ng +ltd.ng +sch.so + +// Häkkinen.fi +// Submitted by Eero Häkkinen +häkkinen.fi + // Ici la Lune : http://www.icilalune.com/ // Submitted by Simon Morvan +*.moonscale.io moonscale.net // iki.fi // Submitted by Hannu Aronsson iki.fi +// Individual Network Berlin e.V. : https://www.in-berlin.de/ +// Submitted by Christian Seitz +dyn-berlin.de +in-berlin.de +in-brb.de +in-butter.de +in-dsl.de +in-dsl.net +in-dsl.org +in-vpn.de +in-vpn.net +in-vpn.org + // info.at : http://www.info.at/ biz.at info.at @@ -11902,6 +12010,11 @@ myjino.ru // Submitted by Stefan Keim js.org +// KaasHosting : http://www.kaashosting.nl/ +// Submitted by Wouter Bakker +kaas.gg +khplay.nl + // Keyweb AG : https://www.keyweb.de // Submitted by Martin Dannehl keymachine.de @@ -11920,6 +12033,22 @@ git-repos.de lcube-server.de svn-repos.de +// Leadpages : https://www.leadpages.net +// Submitted by Greg Dallavalle +leadpages.co +lpages.co +lpusercontent.com + +// Lifetime Hosting : https://Lifetime.Hosting/ +// Submitted by Mike Fillator +co.business +co.education +co.events +co.financial +co.network +co.place +co.technology + // Lightmaker Property Manager, Inc. : https://app.lmpm.com/ // Submitted by Greg Holland app.lmpm.com @@ -11933,10 +12062,32 @@ linkitools.space linkyard.cloud linkyard-cloud.ch +// Linode : https://linode.com +// Submitted by +members.linode.com +nodebalancer.linode.com + // LiquidNet Ltd : http://www.liquidnetlimited.com/ // Submitted by Victor Velchev we.bs +// Log'in Line : https://www.loginline.com/ +// Submitted by Rémi Mach +loginline.app +loginline.dev +loginline.io +loginline.services +loginline.site + +// LubMAN UMCS Sp. z o.o : https://lubman.pl/ +// Submitted by Ireneusz Maliszewski +krasnik.pl +leczna.pl +lubartow.pl +lublin.pl +poniatowa.pl +swidnik.pl + // Lug.org.uk : https://lug.org.uk // Submitted by Jon Spriggs uklugs.org @@ -12027,6 +12178,30 @@ net.ru org.ru pp.ru +// Nabu Casa : https://www.nabucasa.com +// Submitted by Paulus Schoutsen +ui.nabu.casa + +// Names.of.London : https://names.of.london/ +// Submitted by James Stevens or +pony.club +of.fashion +on.fashion +of.football +in.london +of.london +for.men +and.mom +for.mom +for.one +for.sale +of.work +to.work + +// NCTU.ME : https://nctu.me/ +// Submitted by Tocknicsu +nctu.me + // Netlify : https://www.netlify.com // Submitted by Jessica Parsons bitballoon.com @@ -12307,6 +12482,14 @@ on-web.fr *.platform.sh *.platformsh.site +// Port53 : https://port53.io/ +// Submitted by Maximilian Schieder +dyn53.io + +// Positive Codes Technology Company : http://co.bn/faq.html +// Submitted by Zulfais +co.bn + // prgmr.com : https://prgmr.com/ // Submitted by Sarah Newman xen.prgmr.com @@ -12315,6 +12498,14 @@ xen.prgmr.com // Submitted by registry priv.at +// privacytools.io : https://www.privacytools.io/ +// Submitted by Jonah Aragon +prvcy.page + +// Protocol Labs : https://protocol.ai/ +// Submitted by Michael Burns +*.dweb.link + // Protonet GmbH : http://protonet.io // Submitted by Martin Meier protonet.io @@ -12324,6 +12515,10 @@ protonet.io chirurgiens-dentistes-en-france.fr byen.site +// Redstar Consultants : https://www.redstarconsultants.com/ +// Submitted by Jons Slemmer +instantcloud.cn + // Russian Academy of Sciences // Submitted by Tech Support ras.ru @@ -12352,10 +12547,29 @@ vaporcloud.io rackmaze.com rackmaze.net +// Rancher Labs, Inc : https://rancher.com +// Submitted by Vincent Fiduccia +*.on-rancher.cloud +*.on-rio.io + +// Read The Docs, Inc : https://www.readthedocs.org +// Submitted by David Fischer +readthedocs.io + // Red Hat, Inc. OpenShift : https://openshift.redhat.com/ // Submitted by Tim Kramer rhcloud.com +// Render : https://render.com +// Submitted by Anurag Goel +app.render.com +onrender.com + +// Repl.it : https://repl.it +// Submitted by Mason Clayton +repl.co +repl.run + // Resin.io : https://resin.io // Submitted by Tim Perry resindevice.io @@ -12371,6 +12585,10 @@ wellbeingzone.eu ptplus.fit wellbeingzone.co.uk +// Rochester Institute of Technology : http://www.rit.edu/ +// Submitted by Jennifer Herting +git-pages.rit.edu + // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia sandcats.io @@ -12420,6 +12638,10 @@ shiftedit.io // Submitted by Alex Bowers myshopblocks.com +// Siemens Mobility GmbH +// Submitted by Oliver Graebner +mo-siemens.io + // SinaAppEngine : http://sae.sina.com.cn/ // Submitted by SinaAppEngine 1kapp.com @@ -12428,12 +12650,20 @@ applinzi.com sinaapp.com vipsinaapp.com +// Siteleaf : https://www.siteleaf.com/ +// Submitted by Skylar Challand +siteleaf.net + // Skyhat : http://www.skyhat.io // Submitted by Shante Adam bounty-full.com alpha.bounty-full.com beta.bounty-full.com +// Stackhero : https://www.stackhero.io +// Submitted by Adrien Gillon +stackhero-network.com + // staticland : https://static.land // Submitted by Seth Vincent static.land @@ -12453,6 +12683,10 @@ spacekit.io // Submitted by Stefan Neufeind customer.speedpartner.de +// Standard Library : https://stdlib.com +// Submitted by Jacob Lee +api.stdlib.com + // Storj Labs Inc. : https://storj.io/ // Submitted by Philip Hutchins storj.farm @@ -12461,10 +12695,24 @@ storj.farm // Submitted by Silke Hofstra utwente.io +// Student-Run Computing Facility : https://www.srcf.net/ +// Submitted by Edwin Balani +soc.srcf.net +user.srcf.net + // Sub 6 Limited: http://www.sub6.com // Submitted by Dan Miller temp-dns.com +// Swisscom Application Cloud: https://developer.swisscom.com +// Submitted by Matthias.Winzeler +applicationcloud.io +scapp.io + +// Syncloud : https://syncloud.org +// Submitted by Boris Rybalkin +syncloud.it + // Synology, Inc. : https://www.synology.com/ // Submitted by Rony Weng diskstation.me @@ -12493,17 +12741,33 @@ gdynia.pl med.pl sopot.pl +// Teckids e.V. : https://www.teckids.org +// Submitted by Dominik George +edugit.org + +// Telebit : https://telebit.cloud +// Submitted by AJ ONeal +telebit.app +telebit.io +*.telebit.xyz + // The Gwiddle Foundation : https://gwiddlefoundation.org.uk // Submitted by Joshua Bayfield gwiddle.co.uk // Thingdust AG : https://thingdust.com/ // Submitted by Adrian Imboden +thingdustdata.com cust.dev.thingdust.io cust.disrec.thingdust.io cust.prod.thingdust.io cust.testing.thingdust.io +// Tlon.io : https://tlon.io +// Submitted by Mark Staarink +arvo.network +azimuth.network + // TownNews.com : http://www.townnews.com // Submitted by Dustin Ward bloxcms.com @@ -12590,6 +12854,14 @@ router.management // Submitted by Adnan RIHAN v-info.info +// Voorloper.com: https://voorloper.com +// Submitted by Nathan van Bakel +voorloper.cloud + +// Waffle Computer Inc., Ltd. : https://docs.waffleinfo.com +// Submitted by Masayuki Note +wafflecell.com + // WeDeploy by Liferay, Inc. : https://www.wedeploy.com // Submitted by Henrique Vicente wedeploy.io @@ -12652,6 +12924,17 @@ za.org // Submitted by Olli Vanhoja now.sh +// Zine EOOD : https://zine.bg/ +// Submitted by Martin Angelov +bss.design + +// Zitcom A/S : https://www.zitcom.dk +// Submitted by Emil Stahl +basicserver.io +virtualserver.io +site.builder.nu +enterprisecloud.nu + // Zone.id : https://zone.id/ // Submitted by Su Hendro zone.id From 22ce7d53267819984ada3dc5898b7f9dc4ba085c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 27 May 2019 10:07:20 +0200 Subject: [PATCH 260/450] Release 3.1.0 --- CHANGELOG.md | 3 ++- LICENSE.txt | 2 +- README.md | 2 +- lib/public_suffix.rb | 2 +- lib/public_suffix/domain.rb | 2 +- lib/public_suffix/errors.rb | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- lib/public_suffix/version.rb | 4 ++-- 9 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42207cae..198c9a29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,9 @@ # Changelog -#### master +#### Release 3.1.0 +- CHANGED: Updated definitions. - CHANGED: Minimum Ruby version is 2.3 - CHANGED: Upgraded to Bundler 2.x diff --git a/LICENSE.txt b/LICENSE.txt index 69e44dac..561dc171 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2009-2018 Simone Carletti +Copyright (c) 2009-2019 Simone Carletti MIT License diff --git a/README.md b/README.md index a82c95a1..18ab0098 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,6 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. ## License -Copyright (c) 2009-2018 Simone Carletti. This is Free Software distributed under the MIT license. +Copyright (c) 2009-2019 Simone Carletti. This is Free Software distributed under the MIT license. The [Public Suffix List source](https://publicsuffix.org/list/) is subject to the terms of the Mozilla Public License, v. 2.0. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index b607cd31..2fe83b59 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2018 Simone Carletti +# Copyright (c) 2009-2019 Simone Carletti require_relative "public_suffix/domain" require_relative "public_suffix/version" diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 352d110e..8ccac5ca 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2018 Simone Carletti +# Copyright (c) 2009-2019 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index 244164b6..0d3c6441 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2018 Simone Carletti +# Copyright (c) 2009-2019 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index c5077e35..c573b4cf 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2018 Simone Carletti +# Copyright (c) 2009-2019 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 93540210..525d337f 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2018 Simone Carletti +# Copyright (c) 2009-2019 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 03a08cce..1d649a3a 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -5,9 +5,9 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2018 Simone Carletti +# Copyright (c) 2009-2019 Simone Carletti module PublicSuffix # The current library version. - VERSION = "3.0.3" + VERSION = "3.1.0" end From 732a65132cfda3abd65a2f82f2d9fc8916821003 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 27 May 2019 10:09:17 +0200 Subject: [PATCH 261/450] Fix version in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 18ab0098..5d417ded 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ## Requirements -- Ruby >= 2.1 +- Ruby >= 2.3 For an older versions of Ruby use a previous release. From 34046e30a7c4829ba6854b21fe1c62626598ec72 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 25 Jun 2019 21:19:35 +0200 Subject: [PATCH 262/450] Update PSL --- CHANGELOG.md | 5 ++ data/list.txt | 192 ++++++++++++++++++++++++++++---------------------- 2 files changed, 113 insertions(+), 84 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 198c9a29..97b247da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### master + +- CHANGED: Updated definitions. + + #### Release 3.1.0 - CHANGED: Updated definitions. diff --git a/data/list.txt b/data/list.txt index c6d33bc8..38288008 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7057,9 +7057,9 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2018-05-08T19:40:37Z -// This list is auto-generated, don't edit it manually. +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-06-14T10:00:50-04:00 +// This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7105,7 +7105,7 @@ accountants // aco : 2015-01-08 ACO Severin Ahlmann GmbH & Co. KG aco -// actor : 2013-12-12 United TLD Holdco Ltd. +// actor : 2013-12-12 Dog Beach, LLC actor // adac : 2015-07-16 Allgemeiner Deutscher Automobil-Club e.V. (ADAC) @@ -7147,7 +7147,7 @@ aigo // airbus : 2015-07-30 Airbus S.A.S. airbus -// airforce : 2014-03-06 United TLD Holdco Ltd. +// airforce : 2014-03-06 Dog Beach, LLC airforce // airtel : 2014-10-24 Bharti Airtel Limited @@ -7231,10 +7231,10 @@ arab // aramco : 2014-11-20 Aramco Services Company aramco -// archi : 2014-02-06 Afilias plc +// archi : 2014-02-06 Afilias Limited archi -// army : 2014-03-06 United TLD Holdco Ltd. +// army : 2014-03-06 Dog Beach, LLC army // art : 2016-03-24 UK Creative Ideas Limited @@ -7252,10 +7252,10 @@ associates // athleta : 2015-07-30 The Gap, Inc. athleta -// attorney : 2014-03-20 United TLD Holdco Ltd. +// attorney : 2014-03-20 Dog Beach, LLC attorney -// auction : 2014-03-20 United TLD Holdco Ltd. +// auction : 2014-03-20 Dog Beach, LLC auction // audi : 2015-05-21 AUDI Aktiengesellschaft @@ -7291,7 +7291,7 @@ axa // azure : 2014-12-18 Microsoft Corporation azure -// baby : 2015-04-09 Johnson & Johnson Services, Inc. +// baby : 2015-04-09 XYZ.COM LLC baby // baidu : 2015-01-08 Baidu, Inc. @@ -7303,7 +7303,7 @@ banamex // bananarepublic : 2015-07-31 The Gap, Inc. bananarepublic -// band : 2014-06-12 United TLD Holdco Ltd. +// band : 2014-06-12 Dog Beach, LLC band // bank : 2014-09-25 fTLD Registry Services LLC @@ -7375,7 +7375,7 @@ best // bestbuy : 2015-07-31 BBY Solutions, Inc. bestbuy -// bet : 2015-05-07 Afilias plc +// bet : 2015-05-07 Afilias Limited bet // bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited @@ -7396,10 +7396,10 @@ bing // bingo : 2014-12-04 Binky Moon, LLC bingo -// bio : 2014-03-06 Afilias plc +// bio : 2014-03-06 Afilias Limited bio -// black : 2014-01-16 Afilias plc +// black : 2014-01-16 Afilias Limited black // blackfriday : 2014-01-16 Uniregistry, Corp. @@ -7414,7 +7414,7 @@ blog // bloomberg : 2014-07-17 Bloomberg IP Holdings LLC bloomberg -// blue : 2013-11-07 Afilias plc +// blue : 2013-11-07 Afilias Limited blue // bms : 2014-10-30 Bristol-Myers Squibb Company @@ -7441,7 +7441,7 @@ bofa // bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br bom -// bond : 2014-06-05 Bond University Limited +// bond : 2014-06-05 ShortDot SA bond // boo : 2014-01-30 Charleston Road Registry Inc. @@ -7468,7 +7468,7 @@ bot // boutique : 2013-11-14 Binky Moon, LLC boutique -// box : 2015-11-12 NS1 Limited +// box : 2015-11-12 .BOX INC. box // bradesco : 2014-12-18 Banco Bradesco S.A. @@ -7633,7 +7633,7 @@ chanel // channel : 2014-05-08 Charleston Road Registry Inc. channel -// charity : 2018-04-11 Corn Lake, LLC +// charity : 2018-04-11 Binky Moon, LLC charity // chase : 2015-04-30 JPMorgan Chase Bank, National Association @@ -7723,7 +7723,7 @@ coffee // college : 2014-01-16 XYZ.COM LLC college -// cologne : 2014-02-05 punkt.wien GmbH +// cologne : 2014-02-05 dotKoeln GmbH cologne // comcast : 2015-07-23 Comcast IP Holdings I, LLC @@ -7753,10 +7753,10 @@ condos // construction : 2013-09-16 Binky Moon, LLC construction -// consulting : 2013-12-05 United TLD Holdco Ltd. +// consulting : 2013-12-05 Dog Beach, LLC consulting -// contact : 2015-01-08 Top Level Spectrum, Inc. +// contact : 2015-01-08 Dog Beach, LLC contact // contractors : 2013-09-10 Binky Moon, LLC @@ -7786,6 +7786,9 @@ coupons // courses : 2014-12-04 OPEN UNIVERSITIES AUSTRALIA PTY LTD courses +// cpa : 2019-06-10 American Institute of Certified Public Accountants +cpa + // credit : 2014-03-20 Binky Moon, LLC credit @@ -7813,7 +7816,7 @@ cruises // csc : 2014-09-25 Alliance-One Services, Inc. csc -// cuisinella : 2014-04-03 SALM S.A.S. +// cuisinella : 2014-04-03 SCHMIDT GROUPE S.A.S. cuisinella // cymru : 2014-05-08 Nominet UK @@ -7828,7 +7831,7 @@ dabur // dad : 2014-01-23 Charleston Road Registry Inc. dad -// dance : 2013-10-24 United TLD Holdco Ltd. +// dance : 2013-10-24 Dog Beach, LLC dance // data : 2016-06-02 Dish DBS Corporation @@ -7855,13 +7858,13 @@ dds // deal : 2015-06-25 Amazon Registry Services, Inc. deal -// dealer : 2014-12-22 Dealer Dot Com, Inc. +// dealer : 2014-12-22 Intercap Registry Inc. dealer // deals : 2014-05-22 Binky Moon, LLC deals -// degree : 2014-03-06 United TLD Holdco Ltd. +// degree : 2014-03-06 Dog Beach, LLC degree // delivery : 2014-09-11 Binky Moon, LLC @@ -7876,13 +7879,13 @@ deloitte // delta : 2015-02-19 Delta Air Lines, Inc. delta -// democrat : 2013-10-24 United TLD Holdco Ltd. +// democrat : 2013-10-24 Dog Beach, LLC democrat // dental : 2014-03-20 Binky Moon, LLC dental -// dentist : 2014-03-20 United TLD Holdco Ltd. +// dentist : 2014-03-20 Dog Beach, LLC dentist // desi : 2013-11-14 Desi Networks LLC @@ -7975,7 +7978,7 @@ durban // dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG dvag -// dvr : 2016-05-26 Hughes Satellite Systems Corporation +// dvr : 2016-05-26 DISH Technologies L.L.C. dvr // earth : 2014-12-04 Interlink Co., Ltd. @@ -8002,7 +8005,7 @@ emerck // energy : 2014-09-11 Binky Moon, LLC energy -// engineer : 2014-03-06 United TLD Holdco Ltd. +// engineer : 2014-03-06 Dog Beach, LLC engineer // engineering : 2014-03-06 Binky Moon, LLC @@ -8074,13 +8077,13 @@ fairwinds // faith : 2014-11-20 dot Faith Limited faith -// family : 2015-04-02 United TLD Holdco Ltd. +// family : 2015-04-02 Dog Beach, LLC family -// fan : 2014-03-06 Asiamix Digital Limited +// fan : 2014-03-06 Dog Beach, LLC fan -// fans : 2014-11-07 Asiamix Digital Limited +// fans : 2014-11-07 Fans TLD Limited fans // farm : 2013-11-07 Binky Moon, LLC @@ -8185,7 +8188,7 @@ ford // forex : 2014-12-11 Dotforex Registry Limited forex -// forsale : 2014-05-22 United TLD Holdco Ltd. +// forsale : 2014-05-22 Dog Beach, LLC forsale // forum : 2015-04-02 Fegistry, LLC @@ -8233,7 +8236,7 @@ fund // furniture : 2014-03-20 Binky Moon, LLC furniture -// futbol : 2013-09-20 United TLD Holdco Ltd. +// futbol : 2013-09-20 Dog Beach, LLC futbol // fyi : 2015-04-02 Binky Moon, LLC @@ -8254,7 +8257,7 @@ gallup // game : 2015-05-28 Uniregistry, Corp. game -// games : 2015-05-28 United TLD Holdco Ltd. +// games : 2015-05-28 Dog Beach, LLC games // gap : 2015-07-31 The Gap, Inc. @@ -8263,6 +8266,9 @@ gap // garden : 2014-06-26 Minds + Machines Group Limited garden +// gay : 2019-05-23 Top Level Design, LLC +gay + // gbiz : 2014-07-17 Charleston Road Registry Inc. gbiz @@ -8290,7 +8296,7 @@ gift // gifts : 2014-07-03 Binky Moon, LLC gifts -// gives : 2014-03-06 United TLD Holdco Ltd. +// gives : 2014-03-06 Dog Beach, LLC gives // giving : 2014-11-13 Giving Limited @@ -8362,7 +8368,7 @@ graphics // gratis : 2014-03-20 Binky Moon, LLC gratis -// green : 2014-05-08 Afilias plc +// green : 2014-05-08 Afilias Limited green // gripe : 2014-03-06 Binky Moon, LLC @@ -8401,7 +8407,7 @@ hamburg // hangout : 2014-11-13 Charleston Road Registry Inc. hangout -// haus : 2013-12-05 United TLD Holdco Ltd. +// haus : 2013-12-05 Dog Beach, LLC haus // hbo : 2015-07-30 HBO Registry Services, Inc. @@ -8548,10 +8554,10 @@ imdb // immo : 2014-07-10 Binky Moon, LLC immo -// immobilien : 2013-11-07 United TLD Holdco Ltd. +// immobilien : 2013-11-07 Dog Beach, LLC immobilien -// inc : 2018-03-10 GTLD Limited +// inc : 2018-03-10 Intercap Registry Inc. inc // industries : 2013-12-05 Binky Moon, LLC @@ -8668,7 +8674,7 @@ juegos // juniper : 2015-07-30 JUNIPER NETWORKS, INC. juniper -// kaufen : 2013-11-07 United TLD Holdco Ltd. +// kaufen : 2013-11-07 Dog Beach, LLC kaufen // kddi : 2014-09-12 KDDI CORPORATION @@ -8689,7 +8695,7 @@ kfh // kia : 2015-07-09 KIA MOTORS CORPORATION kia -// kim : 2013-09-23 Afilias plc +// kim : 2013-09-23 Afilias Limited kim // kinder : 2014-11-07 Ferrero Trading Lux S.A. @@ -8704,7 +8710,7 @@ kitchen // kiwi : 2013-09-20 DOT KIWI LIMITED kiwi -// koeln : 2014-01-09 punkt.wien GmbH +// koeln : 2014-01-09 dotKoeln GmbH koeln // komatsu : 2015-01-08 Komatsu Ltd. @@ -8773,10 +8779,10 @@ latino // latrobe : 2014-06-16 La Trobe University latrobe -// law : 2015-01-22 Minds + Machines Group Limited +// law : 2015-01-22 LW TLD Limited law -// lawyer : 2014-03-20 United TLD Holdco Ltd. +// lawyer : 2014-03-20 Dog Beach, LLC lawyer // lds : 2014-03-20 IRI Domain Management, LLC ("Applicant") @@ -8800,7 +8806,7 @@ lego // lexus : 2015-04-23 TOYOTA MOTOR CORPORATION lexus -// lgbt : 2014-05-08 Afilias plc +// lgbt : 2014-05-08 Afilias Limited lgbt // liaison : 2014-10-02 Liaison Technologies, Incorporated @@ -8845,7 +8851,7 @@ link // lipsy : 2015-06-25 Lipsy Ltd lipsy -// live : 2014-12-04 United TLD Holdco Ltd. +// live : 2014-12-04 Dog Beach, LLC live // living : 2015-07-30 Lifestyle Domain Holdings, Inc. @@ -8854,7 +8860,7 @@ living // lixil : 2015-03-19 LIXIL Group Corporation lixil -// llc : 2017-12-14 Afilias plc +// llc : 2017-12-14 Afilias Limited llc // loan : 2014-11-20 dot Loan Limited @@ -8881,7 +8887,7 @@ london // lotte : 2014-11-07 Lotte Holdings Co., Ltd. lotte -// lotto : 2014-04-10 Afilias plc +// lotto : 2014-04-10 Afilias Limited lotto // love : 2014-12-22 Merchant Law Group LLP @@ -8938,7 +8944,7 @@ mango // map : 2016-06-09 Charleston Road Registry Inc. map -// market : 2014-03-06 United TLD Holdco Ltd. +// market : 2014-03-06 Dog Beach, LLC market // marketing : 2013-11-07 Binky Moon, LLC @@ -8986,7 +8992,7 @@ memorial // men : 2015-02-26 Exclusive Registry Limited men -// menu : 2013-09-11 Wedding TLD2, LLC +// menu : 2013-09-11 Dot Menu Registry, LLC menu // merckmsd : 2016-07-14 MSD Registry Holdings, Inc. @@ -9028,7 +9034,7 @@ mobile // mobily : 2014-12-18 GreenTech Consultancy Company W.L.L. mobily -// moda : 2013-11-07 United TLD Holdco Ltd. +// moda : 2013-11-07 Dog Beach, LLC moda // moe : 2013-11-13 Interlink Co., Ltd. @@ -9046,7 +9052,7 @@ monash // money : 2014-10-16 Binky Moon, LLC money -// monster : 2015-09-11 Monster Worldwide, Inc. +// monster : 2015-09-11 XYZ.COM LLC monster // mopar : 2015-07-30 FCA US LLC. @@ -9055,7 +9061,7 @@ mopar // mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") mormon -// mortgage : 2014-03-20 United TLD Holdco Ltd. +// mortgage : 2014-03-20 Dog Beach, LLC mortgage // moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) @@ -9103,7 +9109,7 @@ nationwide // natura : 2015-03-12 NATURA COSMÉTICOS S.A. natura -// navy : 2014-03-06 United TLD Holdco Ltd. +// navy : 2014-03-06 Dog Beach, LLC navy // nba : 2015-07-31 NBA REGISTRY, LLC @@ -9130,7 +9136,7 @@ new // newholland : 2015-09-03 CNH Industrial N.V. newholland -// news : 2014-12-18 United TLD Holdco Ltd. +// news : 2014-12-18 Dog Beach, LLC news // next : 2015-06-18 Next plc @@ -9160,7 +9166,7 @@ nike // nikon : 2015-05-21 NIKON CORPORATION nikon -// ninja : 2013-11-07 United TLD Holdco Ltd. +// ninja : 2013-11-07 Dog Beach, LLC ninja // nissan : 2014-03-27 NISSAN MOTOR CO., LTD. @@ -9244,7 +9250,7 @@ online // onyourside : 2015-07-23 Nationwide Mutual Insurance Company onyourside -// ooo : 2014-01-09 INFIBEAM INCORPORATION LIMITED +// ooo : 2014-01-09 INFIBEAM AVENUES LIMITED ooo // open : 2015-07-31 American Express Travel Related Services Company, Inc. @@ -9256,7 +9262,7 @@ oracle // orange : 2015-03-12 Orange Brand Services Limited orange -// organic : 2014-03-27 Afilias plc +// organic : 2014-03-27 Afilias Limited organic // origins : 2015-10-01 The Estée Lauder Companies Inc. @@ -9271,7 +9277,7 @@ otsuka // ott : 2015-06-04 Dish DBS Corporation ott -// ovh : 2014-01-16 OVH SAS +// ovh : 2014-01-16 MédiaBC ovh // page : 2014-12-04 Charleston Road Registry Inc. @@ -9304,7 +9310,7 @@ pay // pccw : 2015-05-14 PCCW Enterprises Limited pccw -// pet : 2015-05-07 Afilias plc +// pet : 2015-05-07 Afilias Limited pet // pfizer : 2015-09-11 Pfizer Inc. @@ -9355,7 +9361,7 @@ pin // ping : 2015-06-11 Ping Registry Provider, Inc. ping -// pink : 2013-10-01 Afilias plc +// pink : 2013-10-01 Afilias Limited pink // pioneer : 2015-07-16 Pioneer Corporation @@ -9370,7 +9376,7 @@ place // play : 2015-03-05 Charleston Road Registry Inc. play -// playstation : 2015-07-02 Sony Computer Entertainment Inc. +// playstation : 2015-07-02 Sony Interactive Entertainment Inc. playstation // plumbing : 2013-09-10 Binky Moon, LLC @@ -9385,7 +9391,7 @@ pnc // pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG pohl -// poker : 2014-07-03 Afilias plc +// poker : 2014-07-03 Afilias Limited poker // politie : 2015-08-20 Politie Nederland @@ -9418,7 +9424,7 @@ prof // progressive : 2015-07-23 Progressive Casualty Insurance Company progressive -// promo : 2014-12-18 Afilias plc +// promo : 2014-12-18 Afilias Limited promo // properties : 2013-12-05 Binky Moon, LLC @@ -9436,7 +9442,7 @@ pru // prudential : 2015-07-30 Prudential Financial, Inc. prudential -// pub : 2013-12-12 United TLD Holdco Ltd. +// pub : 2013-12-12 Dog Beach, LLC pub // pwc : 2015-10-29 PricewaterhouseCoopers LLP @@ -9478,7 +9484,7 @@ realty // recipes : 2013-10-17 Binky Moon, LLC recipes -// red : 2013-11-07 Afilias plc +// red : 2013-11-07 Afilias Limited red // redstone : 2014-10-31 Redstone Haute Couture Co., Ltd. @@ -9487,7 +9493,7 @@ redstone // redumbrella : 2015-03-26 Travelers TLD, LLC redumbrella -// rehab : 2014-03-06 United TLD Holdco Ltd. +// rehab : 2014-03-06 Dog Beach, LLC rehab // reise : 2014-03-13 Binky Moon, LLC @@ -9517,7 +9523,7 @@ repair // report : 2013-12-05 Binky Moon, LLC report -// republican : 2014-03-20 United TLD Holdco Ltd. +// republican : 2014-03-20 Dog Beach, LLC republican // rest : 2013-12-19 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable @@ -9529,7 +9535,7 @@ restaurant // review : 2014-11-20 dot Review Limited review -// reviews : 2013-09-13 United TLD Holdco Ltd. +// reviews : 2013-09-13 Dog Beach, LLC reviews // rexroth : 2015-06-18 Robert Bosch GMBH @@ -9553,7 +9559,7 @@ ril // rio : 2014-02-27 Empresa Municipal de Informática SA - IPLANRIO rio -// rip : 2014-07-10 United TLD Holdco Ltd. +// rip : 2014-07-10 Dog Beach, LLC rip // rmit : 2015-11-19 Royal Melbourne Institute of Technology @@ -9562,7 +9568,7 @@ rmit // rocher : 2014-12-18 Ferrero Trading Lux S.A. rocher -// rocks : 2013-11-14 United TLD Holdco Ltd. +// rocks : 2013-11-14 Dog Beach, LLC rocks // rodeo : 2013-12-19 Minds + Machines Group Limited @@ -9604,7 +9610,7 @@ safety // sakura : 2014-12-18 SAKURA Internet Inc. sakura -// sale : 2014-10-16 United TLD Holdco Ltd. +// sale : 2014-10-16 Dog Beach, LLC sale // salon : 2014-12-11 Binky Moon, LLC @@ -9655,7 +9661,7 @@ scb // schaeffler : 2015-08-06 Schaeffler Technologies AG & Co. KG schaeffler -// schmidt : 2014-04-03 SALM S.A.S. +// schmidt : 2014-04-03 SCHMIDT GROUPE S.A.S. schmidt // scholarships : 2014-04-24 Scholarships.com, LLC @@ -9739,7 +9745,7 @@ shell // shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. shia -// shiksha : 2013-11-14 Afilias plc +// shiksha : 2013-11-14 Afilias Limited shiksha // shoes : 2013-10-02 Binky Moon, LLC @@ -9775,7 +9781,7 @@ singles // site : 2015-01-15 DotSite Inc. site -// ski : 2015-04-09 Afilias plc +// ski : 2015-04-09 Afilias Limited ski // skin : 2015-01-15 L'Oréal @@ -9787,7 +9793,7 @@ sky // skype : 2014-12-18 Microsoft Corporation skype -// sling : 2015-07-30 Hughes Satellite Systems Corporation +// sling : 2015-07-30 DISH Technologies L.L.C. sling // smart : 2015-07-09 Smart Communications, Inc. (SMART) @@ -9802,13 +9808,13 @@ sncf // soccer : 2015-03-26 Binky Moon, LLC soccer -// social : 2013-11-07 United TLD Holdco Ltd. +// social : 2013-11-07 Dog Beach, LLC social -// softbank : 2015-07-02 SoftBank Corp. +// softbank : 2015-07-02 SoftBank Group Corp. softbank -// software : 2014-03-20 United TLD Holdco Ltd. +// software : 2014-03-20 Dog Beach, LLC software // sohu : 2013-12-19 Sohu.com Limited @@ -9883,7 +9889,7 @@ store // stream : 2016-01-08 dot Stream Limited stream -// studio : 2015-02-11 United TLD Holdco Ltd. +// studio : 2015-02-11 Dog Beach, LLC studio // study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD @@ -10147,16 +10153,16 @@ ventures // verisign : 2015-08-13 VeriSign, Inc. verisign -// versicherung : 2014-03-20 TLD-BOX Registrydienstleistungen GmbH +// versicherung : 2014-03-20 tldbox GmbH versicherung -// vet : 2014-03-06 United TLD Holdco Ltd. +// vet : 2014-03-06 Dog Beach, LLC vet // viajes : 2013-10-17 Binky Moon, LLC viajes -// video : 2014-10-16 United TLD Holdco Ltd. +// video : 2014-10-16 Dog Beach, LLC video // vig : 2015-05-14 VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe @@ -10381,7 +10387,7 @@ xin // xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited 网站 -// xn--6frz82g : 2013-09-23 Afilias plc +// xn--6frz82g : 2013-09-23 Afilias Limited 移动 // xn--6qq986b3xl : 2013-09-13 Tycoon Treasure Limited @@ -10847,6 +10853,10 @@ b-data.io // Submitted by Anthony Voutas backplaneapp.io +// Balena : https://www.balena.io +// Submitted by Petros Angelatos +balena-devices.com + // Banzai Cloud // Submitted by Gabor Kozma app.banzaicloud.io @@ -10997,6 +11007,10 @@ cloudaccess.net cloudcontrolled.com cloudcontrolapp.com +// Cloudera, Inc. : https://www.cloudera.com/ +// Submitted by Philip Langdale +cloudera.site + // Cloudflare, Inc. : https://www.cloudflare.com/ // Submitted by Jake Riesterer workers.dev @@ -11785,6 +11799,7 @@ goip.de // Submitted by Eduardo Vela run.app a.run.app +web.app *.0emm.com appspot.com blogspot.ae @@ -11993,6 +12008,10 @@ ipifony.net mein-iserv.de test-iserv.de +// I-O DATA DEVICE, INC. : http://www.iodata.com/ +// Submitted by Yuji Minagawa +iobb.net + // Jino : https://www.jino.ru // Submitted by Sergey Ulyashin myjino.ru @@ -12019,6 +12038,11 @@ khplay.nl // Submitted by Martin Dannehl keymachine.de +// KingHost : https://king.host +// Submitted by Felipe Keller Braz +kinghost.net +uni5.net + // KnightPoint Systems, LLC : http://www.knightpoint.com/ // Submitted by Roy Keene knightpoint.systems From ae7cf82a6f962739e696daacdf365a094e903fe8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 25 Jun 2019 21:25:30 +0200 Subject: [PATCH 263/450] Reinstate support to Ruby 2.1 and 2.2 Closes GH-161, Closes GH-162 --- .travis.yml | 7 +++++++ CHANGELOG.md | 3 ++- lib/public_suffix/version.rb | 2 +- public_suffix.gemspec | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b676a52b..89eec321 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,13 @@ cache: - bundler matrix: + include: + - rvm: 2.1 + before_install: + - gem install bundler -v '< 2.0' + - rvm: 2.2 + before_install: + - gem install bundler -v '< 2.0' allow_failures: - rvm: ruby-head - rvm: jruby-9.1.5.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 97b247da..aea88f78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ # Changelog -#### master +#### Release 3.1.1 - CHANGED: Updated definitions. +- CHANGED: Rolled back support for Ruby 2.3 (GH-161, GH-162) #### Release 3.1.0 diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 1d649a3a..e3130b90 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "3.1.0" + VERSION = "3.1.1" end diff --git a/public_suffix.gemspec b/public_suffix.gemspec index e4a6cd37..44bfccf1 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |s| s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.licenses = ["MIT"] - s.required_ruby_version = ">= 2.3" + s.required_ruby_version = ">= 2.1" s.require_paths = ["lib"] s.files = `git ls-files`.split("\n") From ed7c414746167c8d019b772fe82ae54d0c583608 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 25 Jun 2019 21:36:15 +0200 Subject: [PATCH 264/450] Release 3.1.1 From d6e4914a22d32bf2457def425eb97421c8812279 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 25 Jun 2019 21:38:11 +0200 Subject: [PATCH 265/450] Remove support for Ruby < 2.3 in major version --- .travis.yml | 7 ------- CHANGELOG.md | 7 +++++++ public_suffix.gemspec | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 89eec321..b676a52b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,13 +15,6 @@ cache: - bundler matrix: - include: - - rvm: 2.1 - before_install: - - gem install bundler -v '< 2.0' - - rvm: 2.2 - before_install: - - gem install bundler -v '< 2.0' allow_failures: - rvm: ruby-head - rvm: jruby-9.1.5.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index aea88f78..fcdfc3e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,18 @@ # Changelog +#### master + +- CHANGED: Minimum Ruby version is 2.3 + + #### Release 3.1.1 - CHANGED: Updated definitions. - CHANGED: Rolled back support for Ruby 2.3 (GH-161, GH-162) +IMPORTANT: 3.x is the latest version compatible with Ruby 2.1 and Ruby 2.2. + #### Release 3.1.0 diff --git a/public_suffix.gemspec b/public_suffix.gemspec index 44bfccf1..e4a6cd37 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |s| s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.licenses = ["MIT"] - s.required_ruby_version = ">= 2.1" + s.required_ruby_version = ">= 2.3" s.require_paths = ["lib"] s.files = `git ls-files`.split("\n") From 87343b898e0a836cfd51c5bd017ed4237d132bea Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 25 Jun 2019 21:40:14 +0200 Subject: [PATCH 266/450] Release 4.0.0 --- CHANGELOG.md | 2 +- lib/public_suffix/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fcdfc3e5..7d87918a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog -#### master +#### Release 4.0.0 - CHANGED: Minimum Ruby version is 2.3 diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index e3130b90..60524757 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "3.1.1" + VERSION = "4.0.0" end From 27d9ff95e8d2f9646b7d89a61a68eff7abea95a3 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 25 Jun 2019 21:45:57 +0200 Subject: [PATCH 267/450] Test Ruby 2.7 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index b676a52b..e5d76ec2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ rvm: - 2.4 - 2.5 - 2.6 + - 2.7 - jruby-9.1.5.0 - ruby-head From 3648a1c5bb15cd29f6aa9cf76f892e2b93067cae Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 26 Jun 2019 09:50:49 +0200 Subject: [PATCH 268/450] Create FUNDING.yml --- .github/FUNDING.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..085e1ac2 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: "rubygems/public_suffix" +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL From da7f5a86fb4245a7d9d565984422d19d7ce74327 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 9 Aug 2019 22:09:21 +0200 Subject: [PATCH 269/450] Add Tidelift link --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 5d417ded..9dbb2fb8 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,20 @@ PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](https://publicsuffix.org/). [![Build Status](https://travis-ci.org/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.org/weppos/publicsuffix-ruby) +[![Tidelift dependencies](https://tidelift.com/badges/github/weppos/publicsuffix-ruby)](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=readme) -## Requirements +## Links -- Ruby >= 2.3 +- [Homepage](https://simonecarletti.com/code/publicsuffix-ruby) +- [Repository](https://github.com/weppos/publicsuffix-ruby) +- [API Documentation](https://rubydoc.info/gems/public_suffix) +- [Introducing the Public Suffix List library for Ruby](https://simonecarletti.com/blog/2010/06/public-suffix-list-library-for-ruby/) + + +## Requirements -For an older versions of Ruby use a previous release. +PublicSuffix requires **Ruby >= 2.3**. For an older versions of Ruby use a previous release. ## Installation @@ -17,7 +24,7 @@ For an older versions of Ruby use a previous release. You can install the gem manually: ```shell -$ gem install public_suffix +gem install public_suffix ``` Or use Bundler and define it as a dependency in your `Gemfile`: @@ -173,21 +180,14 @@ Not convinced yet? Check out [this real world example](https://stackoverflow.com No. PublicSuffix comes with a bundled list. It does not make any HTTP requests to parse or validate a domain. -## Feedback and bug reports +## Support -If you use this library and find yourself missing any functionality, please [let me know](mailto:weppos@weppos.net). +Library documentation is auto-generated from the [README](https://github.com/weppos/publicsuffix-ruby/blob/master/README.md) and the source code, and it's available at https://rubydoc.info/gems/public_suffix. -Pull requests are very welcome! Please include tests and/or feature coverage for every patch, and create a topic branch for every separate change you make. +- The PublicSuffix bug tracker is here: https://github.com/weppos/publicsuffix-ruby/issues +- The PublicSuffix code repository is here: https://github.com/weppos/publicsuffix-ruby. Contributions are welcome! Please include tests and/or feature coverage for every patch, and create a topic branch for every separate change you make. -Report issues or feature requests to [GitHub Issues](https://github.com/weppos/publicsuffix-ruby/issues). - - -## More - -- [Homepage](https://simonecarletti.com/code/publicsuffix-ruby) -- [Repository](https://github.com/weppos/publicsuffix-ruby) -- [API Documentation](http://rubydoc.info/gems/public_suffix) -- [Introducing the Public Suffix List library for Ruby](https://simonecarletti.com/blog/2010/06/public-suffix-list-library-for-ruby/) +[Consider subscribing to Tidelift which provides Enterprise support for this project](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=readme) as part of the Tidelift Subscription. Tidelift subscriptions also help the maintainers by funding the project, which in turn allows us to ship releases, bugfixes, and security updates more often. ## Changelog From 76bb080b95fc36f8b60efb7b26d5c03f2f638db8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 9 Aug 2019 22:14:39 +0200 Subject: [PATCH 270/450] Updated definitions --- CHANGELOG.md | 5 +++ data/list.txt | 85 ++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 65 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d87918a..fc6bcd99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +#### Release 4.0.1 + +- CHANGED: Updated definitions. + + #### Release 4.0.0 - CHANGED: Minimum Ruby version is 2.3 diff --git a/data/list.txt b/data/list.txt index 38288008..5dbde2b0 100644 --- a/data/list.txt +++ b/data/list.txt @@ -240,6 +240,8 @@ vic.au wa.au // 3LDs act.edu.au +catholic.edu.au +eq.edu.au nsw.edu.au nt.edu.au qld.edu.au @@ -255,6 +257,9 @@ sa.gov.au tas.gov.au vic.gov.au wa.gov.au +// 4LDs +education.tas.edu.au +schools.nsw.edu.au // aw : https://en.wikipedia.org/wiki/.aw aw @@ -4334,8 +4339,6 @@ niepce.museum norfolk.museum north.museum nrw.museum -nuernberg.museum -nuremberg.museum nyc.museum nyny.museum oceanographic.museum @@ -7012,7 +7015,7 @@ xxx // ye : http://www.y.net.ye/services/domain_name.htm *.ye -// za : http://www.zadna.org.za/content/page/domain-information +// za : https://www.zadna.org.za/content/page/domain-information/ ac.za agric.za alt.za @@ -7024,6 +7027,7 @@ law.za mil.za net.za ngo.za +nic.za nis.za nom.za org.za @@ -7058,7 +7062,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-06-14T10:00:50-04:00 +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-08-08T16:16:58Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7423,9 +7427,6 @@ bms // bmw : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft bmw -// bnl : 2014-07-24 Banca Nazionale del Lavoro -bnl - // bnpparibas : 2014-05-29 BNP Paribas bnpparibas @@ -7738,7 +7739,7 @@ community // company : 2013-11-07 Binky Moon, LLC company -// compare : 2015-10-08 iSelect Ltd +// compare : 2015-10-08 Registry Services, LLC compare // computer : 2013-10-24 Binky Moon, LLC @@ -8083,7 +8084,7 @@ family // fan : 2014-03-06 Dog Beach, LLC fan -// fans : 2014-11-07 Fans TLD Limited +// fans : 2014-11-07 ZDNS International Limited fans // farm : 2013-11-07 Binky Moon, LLC @@ -8479,9 +8480,6 @@ homesense // honda : 2014-12-18 Honda Motor Co., Ltd. honda -// honeywell : 2015-07-23 Honeywell GTLD LLC -honeywell - // horse : 2013-11-21 Minds + Machines Group Limited horse @@ -8599,9 +8597,6 @@ ipiranga // irish : 2014-08-07 Binky Moon, LLC irish -// iselect : 2015-02-11 iSelect Ltd -iselect - // ismaili : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) ismaili @@ -9703,7 +9698,7 @@ security // seek : 2014-12-04 Seek Limited seek -// select : 2015-10-08 iSelect Ltd +// select : 2015-10-08 Registry Services, LLC select // sener : 2014-10-24 Sener Ingeniería y Sistemas, S.A. @@ -9862,9 +9857,6 @@ staples // star : 2015-01-08 Star India Private Limited star -// starhub : 2015-02-05 StarHub Ltd -starhub - // statebank : 2015-03-12 STATE BANK OF INDIA statebank @@ -10815,6 +10807,12 @@ apigee.io // Submitted by Thomas Orozco on-aptible.com +// ASEINet : https://www.aseinet.com/ +// Submitted by Asei SEKIGUCHI +user.aseinet.ne.jp +gv.vc +d.gv.vc + // Asociación Amigos de la Informática "Euskalamiga" : http://encounter.eus/ // Submitted by Hector Martin user.party.eus @@ -11013,6 +11011,7 @@ cloudera.site // Cloudflare, Inc. : https://www.cloudflare.com/ // Submitted by Jake Riesterer +trycloudflare.com workers.dev // Clovyr : https://clovyr.io @@ -11894,6 +11893,11 @@ caa.li ua.rs conf.se +// Handshake : https://handshake.org +// Submitted by Mike Damm +hs.zone +hs.run + // Hashbang : https://hashbang.sh hashbang.sh @@ -11924,11 +11928,13 @@ ravendb.run bpl.biz orx.biz ng.city -ng.ink biz.gl +ng.ink col.ng +firm.ng gen.ng ltd.ng +ng.school sch.so // Häkkinen.fi @@ -12007,6 +12013,7 @@ ipifony.net // Submitted by Kim-Alexander Brodowski mein-iserv.de test-iserv.de +iserv.dev // I-O DATA DEVICE, INC. : http://www.iodata.com/ // Submitted by Yuji Minagawa @@ -12063,6 +12070,10 @@ leadpages.co lpages.co lpusercontent.com +// Lelux.fi : https://lelux.fi/ +// Submitted by Lelux Admin +lelux.site + // Lifetime Hosting : https://Lifetime.Hosting/ // Submitted by Mike Fillator co.business @@ -12394,12 +12405,14 @@ nom.al nym.by nym.bz nom.cl +nym.ec nom.gd nom.ge nom.gl nym.gr nom.gt nym.gy +nym.hk nom.hn nym.ie nom.im @@ -12539,6 +12552,14 @@ protonet.io chirurgiens-dentistes-en-france.fr byen.site +// pubtls.org: https://www.pubtls.org +// Submitted by Kor Nielsen +pubtls.org + +// Qualifio : https://qualifio.com/ +// Submitted by Xavier De Cock +qualifioapp.com + // Redstar Consultants : https://www.redstarconsultants.com/ // Submitted by Jons Slemmer instantcloud.cn @@ -12643,11 +12664,6 @@ my-firewall.org myfirewall.org spdns.org -// SensioLabs, SAS : https://sensiolabs.com/ -// Submitted by Fabien Potencier -*.s5y.io -*.sensiosite.cloud - // Service Online LLC : http://drs.ua/ // Submitted by Serhii Bulakh biz.ua @@ -12662,6 +12678,10 @@ shiftedit.io // Submitted by Alex Bowers myshopblocks.com +// Shopit : https://www.shopitcommerce.com/ +// Submitted by Craig McMahon +shopitsite.com + // Siemens Mobility GmbH // Submitted by Oliver Graebner mo-siemens.io @@ -12733,6 +12753,11 @@ temp-dns.com applicationcloud.io scapp.io +// Symfony, SAS : https://symfony.com/ +// Submitted by Fabien Potencier +*.s5y.io +*.sensiosite.cloud + // Syncloud : https://syncloud.org // Submitted by Boris Rybalkin syncloud.it @@ -12886,6 +12911,10 @@ voorloper.cloud // Submitted by Masayuki Note wafflecell.com +// WebHare bv: https://www.webhare.com/ +// Submitted by Arnold Hendriks +*.webhare.dev + // WeDeploy by Liferay, Inc. : https://www.wedeploy.com // Submitted by Henrique Vicente wedeploy.io @@ -12916,6 +12945,12 @@ cistron.nl demon.nl xs4all.space +// Yandex.Cloud LLC: https://cloud.yandex.com +// Submitted by Alexander Lodin +yandexcloud.net +storage.yandexcloud.net +website.yandexcloud.net + // YesCourse Pty Ltd : https://yescourse.com // Submitted by Atul Bhouraskar official.academy From 1a17386d79be5a98041e85315f43f080046c8d9f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 9 Aug 2019 22:14:55 +0200 Subject: [PATCH 271/450] Release 4.0.1 --- lib/public_suffix/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 60524757..dee6386a 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "4.0.0" + VERSION = "4.0.1" end From e03a267b79929588fba7749b219c3c9ad8274971 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 23 Aug 2019 10:26:18 +0200 Subject: [PATCH 272/450] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc6bcd99..8b587eee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog +This project uses [Semantic Versioning 2.0.0](https://semver.org/). + #### Release 4.0.1 From 894cceb654a9c6c9deabdde2d1b598336e970649 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 23 Aug 2019 10:45:16 +0200 Subject: [PATCH 273/450] Create SECURITY.md --- SECURITY.md | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..25c27fed --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,101 @@ +# Security Policy + +## Supported Versions + +Security updates are provided only for the current minor version. + +If you are using a previous minor version, we recommend to upgrade to the current minor version. +This project uses [semantic versioning](https://semver.org/), therefore you can upgrade to a more recent minor version without incurring into breaking changes. + +Exceptionally, we may support previous minor versions upon request if there are significant reasons preventing to immediately switch the latest minor version. + +Older major versions are no longer supported. + + +## Reporting a Vulnerability + +To make a report, please email weppos@weppos.net. + +Please consider encrypting your report with GPG using the key (0x420da82a989398df)[https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x420da82a989398df] + +``` +-----BEGIN PGP PUBLIC KEY BLOCK----- + +xsBNBE/QiI0BCACtBbjJnJIzaLb4NfjaljzT/+dvodst+wyDRE8Vwc6ujwboZjr2 +0QwXScNzObPazyvkSZVh3g6PveneeSD0dSw2XDqKbbtLMg/Ss12yqXJfjavH/zjk +6Xq+nnbSnxBPzwFAAEaEFIc6H6BygJ7zHPP5WEY5QIMqifEAX//aBqHi4GXHJiHE +237Zqufdry23jBYjY7wGXAa11VsU9Iwqh6LPB9/hc1KtzjAuvvm5ufeT/iVjxGQX +te1OZZk6n8xSVYeLsn97PfgYs0yauhexwD9dG7FbRCB379JxPRn5akr391qXcVOG +ZA3yBXUSPOL6D1+TS1S0su5zbw2AEp4+z3SpABEBAAHNIlNpbW9uZSBDYXJsZXR0 +aSA8d2VwcG9zQGdtYWlsLmNvbT7CwHcEEwEKACEFAlXH0UQCGy8FCwkIBwMFFQoJ +CAsFFgIDAQACHgECF4AACgkQQg2oKpiTmN9BOQf/UHd+bmww71MkbS38KkowDu+0 +1VH35aL8sFcAMUSEA4I5oPWZoBtYYPGpALLxtrSNW+SCnmmeCQVfVmLedUVHwDZo +TS4qiynpqnz+Cnq4KRC8VMIyaFoiT5Vg6MLtau8hJtqZn1Wv68g0nXuprsCuf9vs +z7DDZ36z8em6OJQJQ/FQ4BGogzyYHa90cJnIM6BeLiRUUpFTl1tHLlw4JFUNi8sx +6VQ1/nhcr3OyskAix5TytRnJ8uIn22m25GGdTF2WQPNfkWJQVT4ZDbCxT20acRp0 +l3x1DAk3Eel8gOKzgOboB3bkI5/l1XZvNL0YWGZeyfp8I7ZqpXg/m4qLDkYU2cLA +egQTAQoAJAIbLwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCVf6KvAIZAQAKCRBC +DagqmJOY34ABB/9WbNAh0l07UN1ePfVm6Brg2Yt8k6Q2lIRUG2xAeQj/+Kx/4lAL +oY6F0jJ44kIDZqZdNA0QIqYzZRBV4iW+cQrsBUUyM+chiA3RuOsDG18sfvkyPvRy +ecOVubHCN+nK2GKy1oHQkCpVFIeetr0ugB/j+xNDKJ3Oa5dGBKF29ZH5Pxg7cqwH +cdkhBGMpPbBYq5pJtYGggqypELzFTG292StbtV837Eze+clWRTKtMBOHke/oKBCr +YYic2fmipGC9XUiqvMEMAKYq5WWWXIlcSVSnBDdxq41tXjKK4XMVgoOboZCcNFvh +0NxuDQATk1YruRZOS4SpBPXykEA1pK/zm3WmzSNTaW1vbmUgQ2FybGV0dGkgPHdl +cHBvc0B3ZXBwb3MubmV0PsLAeQQTAQIAIwUCT9CIjQIbLwcLCQgHAwIBBhUIAgkK +CwQWAgMBAh4BAheAAAoJEEINqCqYk5jfGWcH/Ax3EhAckGeCqNYE5BTx94bKB1LL +vUjeUoImMtGGFxQu2jNOAjtpuyjihm9uHBZ+dxaxHHrhE11f+0sDcwvW8qtKEzOs +GESr01VqTaVFS2JOEHhLphXseaLXJe32Osz0kHCZmrz1fCwv3b8QuWBifn8oVzcV +vrE7lGC6pGwaiUvMsvA++RUquTlNVlh8uRrqcQCU8Ne9lSoDWHlUJes5s4FoCh3R +oVBcKPsx3m/P9+GlEgTDqYP+WU3sfSfJYERH0r0NAYP96m2e7UQrqdgvMTVVDkPB +UB9efZzgkL7u9IAqmLU2klSGdEZnJ8t1AsjEyHXMztC7ICUhRFCeXHdTNhHCwHwE +EwEKACYCGy8HCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAUCVcfRaQIZAQAKCRBC +DagqmJOY31y1B/41I/SsWwDqJP/Y3LzzatGmIv/gy+LkJBBTr/NV0NYzKV2XJ1BG +ese2ZE4tKKdG4HDwF+IwFLBHcPZRv358IwwTRPnzeO23mxpTYAnRCdg/pcaYIJ9r +OxIOP+R52YbgGrNKcezVA+7TY9za072P7Bk85jTM2FNfqevaf/YQ4GRcGLQ3JI8N +tBUdvrOEETDpR0QFTr22Wv1C7UfPDsSf7ZUM7zJ38CmDji8JSlr6y75/LYSY50BB +8EHb03QxyePe98A3WzvOoqamiCIe9bRzH5IqRAtJYDX8cK4PZmp43bQhrjdjawCc +AU/OY9iz+zCw00+b6CNiRb59N+OwpNJh5iNNwsB5BBMBCgAjAhsvBwsJCAcDAgEG +FQgCCQoLBBYCAwECHgECF4AFAlX+iq0ACgkQQg2oKpiTmN/z2gf/VbcQHgTlXFYa +Sq/dE7S54uGFrdzHOV3IJyl+ByMwVoKn6zdpksRoyt7jPV3RonrUO7jEcrt7VKCU +2KC7/MZMDoUsn9BXXTtUk+uTCNh8qllR0Fo/FvWM9RJKmcDMKwAJwcKIgbfUBJGx +1N6pP2DUc+YCnEerRbnQ1DWJUM7BaOEN6bvPxuGblPst1l6S5VktFj3gZGYItHrs +pit5pesILP8K6B6VCNP2WXXYvYQo7yyYcG8WBWXin8/SdNwU68lUbfhhQVIKv6LU +h0wvgG97NsBPrFbij0K6O63FufnNr9WLMZhAzi0h6gNK2HKAyw9AZNKpPccwg+mX +Huc/4CPRlM0uU2ltb25lIENhcmxldHRpIDxzaW1vbmUuY2FybGV0dGlAZG5zaW1w +bGUuY29tPsLAdwQTAQoAIQUCVh4ipAIbLwULCQgHAwUVCgkICwUWAgMBAAIeAQIX +gAAKCRBCDagqmJOY329iCACpOY5SV7hwOZ8VqmRfxRoHQFQe9Owr+hD3eL0AKZaJ +V918dCPrrxbAmwwMAC8pS8J4CmrrTR27kxcUgVwcfyydFPrgST5pg+H7UTrBR045 +4Npw1+m99I2Pyyl3oaym4lKJFbp2c2DGODEzTg8kKfjk0cb8bd+MJrXqFyod1z5r +0pfexwaLVt1Hz+ZsmFIPO1ISHYBPV8OkpL8Kgb8WtY6REntgNjfcmtHNi0VWQ7+N +vgeYqdhscX8c9ROe26BiiiGXphRlAsCU/VLHOJkzoW3f9QLy4z01Xj/7OaD0JkHS +HrES1ye3ZDxnjnTRdh4U8ntJ+L+xnePcFQA2t0eCbPwIzSZTaW1vbmUgQ2FybGV0 +dGkgPHNpbW9uZUBjYXJsZXR0aS5uYW1lPsLAdwQTAQoAIQUCVf7gmwIbLwULCQgH +AwUVCgkICwUWAgMBAAIeAQIXgAAKCRBCDagqmJOY37L+B/45pWT3wgm43+kzHVOT +j63m4zmRb53TGZToRSxz3acyuVSuqU9Tv010F0ZV9ccb0NDeN+88s9tEisuoO0Rz +5vhC8AtwRUyR3ADE9pBtvvxT+4R9y8yYNTCIX45VPG9ZPp9+7i+XCdKtz30KIV7r +smktd2FrK16r/KUN8+03iZSgzQ9lsTmXK5L7zH/f3Tqhbfvybr4+M71KGnSoP+iP +vwfsoBb5rhijQLOykTb+VzdDpHQbupwxwm/3S4nsA4U6tonIywlJgBDSjgDjQj0i +Ez+Db2Wt59y6LoksRQogvJqm0nuxFUWMZc47zdhsRnqmxUYTNpKaJPWc6pfxsQPK +ZvTjzsBNBE/QiI0BCACsaNbG6kyKJBWL5jPhebsijk8PCfSHte1jNCA5l/NvaImZ +6ORq9f8S9MWlYxmzyUkVJaWrv+9p5zmjwcaegjerj6ggjPDEXlZG41Z4YE1/R8pf +wkSvrkLziBxZDB1aYplg8kgXkaIf2yi2FrMPSi04sjvQbBSCcIJeh6+vGK8tIJTn +e0tQbEvRorTwBAPAFlpx/bdk1wZYu11vFKbckhKWou7f8XSdn9ng9cY5uK+xBlFU +2ORgL1ygeIoY9uRvNZG2ncvCvxUPgOqbo31R8KPyvV4rNNvGBOfxQER9LbieBF2I +5I1gpyboGWKcXu1eV7tOpjtW6LHt+6NHhE6L1Lw1ABEBAAHCwX4EGAECAAkFAk/Q +iI0CGy4BKQkQQg2oKpiTmN/AXSAEGQECAAYFAk/QiI0ACgkQcBROh493BN9hdwf9 +GjiF1GcQN+3TZkXdr2WY0AlbcA/wBp6+ShnqcoU5XLuA0RY3+rWGuaSc2buLke6Y +2MhMAYcgmPdG+WTBoW5dWQGXBZ1IHYVR8HLGaF+Vate1MofE1BNHXhnilIMMfH4G +Tcr3Z3/FaSk9OdHlyiE/Jo7++8PQ+auHVyjtqry+/ysAnyr+lnCn+K4E0PQ1fYpP +fiawKtfSqk9h6HjjMyx9Adrz+ljXh+NyVqYZUfRytjgO+v+dAQmMczT1EawLTdX+ +trx1tHR549pEey7in5QKsje3GLH4zq4mCdWBlivQxmmmlvR07DysLADMbcpjKK2g +utfzygZHCU9hWGR3wbWZ7lXjB/0ZzutNaNYzSCkiC8PIWH1bG+TJO9pslHwP+aBJ +NGAmcwyOH9Bub2CSXikQFZNUmVRwtl7mN4bVAHI8zbMd6xdlX22yDgQei54dPXDw +UYsvGE4zmrD97he1EYcIOKMFHzlJNcWK+uR7lEq6mv7SFGnBr8qTYZRi1bySRgwd +UORuDV12GKTen9WectKtepW0fgYSz+udbDKQyyRef+7xGtCErWRL7f1qr8xm60da ++gSwyD/WkPTY8SP2mdq4u+6m4dWS26kKoENwuL7jUktl/C/EG7NmUKURbXG8lmeu +q59MIs/Fb3SgaO+zN2FZTYp6dyRJHbeEz55JdOu6F+6ihZYH +=j6Xr +-----END PGP PUBLIC KEY BLOCK----- +``` + + From 3d6b74cead4f72fbf980450ecb55ed33137bca21 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 23 Aug 2019 10:46:57 +0200 Subject: [PATCH 274/450] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 9dbb2fb8..edd3e377 100644 --- a/README.md +++ b/README.md @@ -190,6 +190,11 @@ Library documentation is auto-generated from the [README](https://github.com/wep [Consider subscribing to Tidelift which provides Enterprise support for this project](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=readme) as part of the Tidelift Subscription. Tidelift subscriptions also help the maintainers by funding the project, which in turn allows us to ship releases, bugfixes, and security updates more often. +## Security and Vulnerability Reporting + +Full information and description of our security policy please visit [`SECURITY.md`](SECURITY.md) + + ## Changelog See the [CHANGELOG.md](CHANGELOG.md) file for details. From 626883d914ad6a06d2fb3c9e0faa5e97426b718a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 27 Dec 2019 11:43:37 +0100 Subject: [PATCH 275/450] Release 4.0.2 --- .ruby-gemset | 1 - CHANGELOG.md | 5 + data/list.txt | 224 ++++++++++++++++++++++------------- lib/public_suffix/version.rb | 2 +- 4 files changed, 147 insertions(+), 85 deletions(-) delete mode 100644 .ruby-gemset diff --git a/.ruby-gemset b/.ruby-gemset deleted file mode 100644 index 4dcdb08b..00000000 --- a/.ruby-gemset +++ /dev/null @@ -1 +0,0 @@ --global \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b587eee..2b0e71b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +#### Release 4.0.2 + +- CHANGED: Updated definitions. + + #### Release 4.0.1 - CHANGED: Updated definitions. diff --git a/data/list.txt b/data/list.txt index 5dbde2b0..7f1854d8 100644 --- a/data/list.txt +++ b/data/list.txt @@ -241,7 +241,7 @@ wa.au // 3LDs act.edu.au catholic.edu.au -eq.edu.au +// eq.edu.au - Removed at the request of the Queensland Department of Education nsw.edu.au nt.edu.au qld.edu.au @@ -1368,7 +1368,7 @@ it gov.it edu.it // Reserved geo-names (regions and provinces): -// http://www.nic.it/sites/default/files/docs/Regulation_assignation_v7.1.pdf +// https://www.nic.it/sites/default/files/archivio/docs/Regulation_assignation_v7.1.pdf // Regions abr.it abruzzo.it @@ -5886,14 +5886,9 @@ gov.rs in.rs org.rs -// ru : https://cctld.ru/en/domains/domens_ru/reserved/ +// ru : https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf +// Submitted by George Georgievsky ru -ac.ru -edu.ru -gov.ru -int.ru -mil.ru -test.ru // rw : https://www.ricta.org.rw/sites/default/files/resources/registry_registrar_contract_0.pdf rw @@ -6038,15 +6033,28 @@ org.sn perso.sn univ.sn -// so : http://www.soregistry.com/ +// so : http://sonic.so/policies/ so com.so +edu.so +gov.so +me.so net.so org.so // sr : https://en.wikipedia.org/wiki/.sr sr +// ss : https://registry.nic.ss/ +// Submitted by registry +ss +biz.ss +com.ss +edu.ss +gov.ss +net.ss +org.ss + // st : http://www.nic.st/html/policyrules/ st co.st @@ -6789,6 +6797,9 @@ yt // xn--e1a4c ("eu", Cyrillic) : EU ею +// xn--mgbah1a3hjkrd ("Mauritania", Arabic) : MR +موريتانيا + // xn--node ("ge", Georgian Mkhedruli) : GE გე @@ -6942,7 +6953,8 @@ yt ак.срб // xn--p1ai ("rf", Russian-Cyrillic) : RU -// http://www.cctld.ru/en/docs/rulesrf.php +// https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf +// Submitted by George Georgievsky рф // xn--wgbl6a ("Qatar", Arabic) : QA @@ -7062,7 +7074,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-08-08T16:16:58Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-12-25T17:26:24Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7184,6 +7196,9 @@ alsace // alstom : 2015-07-30 ALSTOM alstom +// amazon : 2019-12-19 Amazon EU S.à r.l. +amazon + // americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc. americanexpress @@ -7283,7 +7298,7 @@ auto // autos : 2014-01-09 DERAutos, LLC autos -// avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca +// avianca : 2015-01-08 Avianca Holdings S.A. avianca // aws : 2015-06-25 Amazon Registry Services, Inc. @@ -7574,9 +7589,6 @@ careers // cars : 2014-11-13 Cars Registry Limited cars -// cartier : 2014-06-23 Richemont DNS Inc. -cartier - // casa : 2013-11-21 Minds + Machines Group Limited casa @@ -7655,9 +7667,6 @@ christmas // chrome : 2014-07-24 Charleston Road Registry Inc. chrome -// chrysler : 2015-07-30 FCA US LLC. -chrysler - // church : 2014-02-06 Binky Moon, LLC church @@ -7937,9 +7946,6 @@ docs // doctor : 2016-06-02 Binky Moon, LLC doctor -// dodge : 2015-07-30 FCA US LLC. -dodge - // dog : 2014-12-04 Binky Moon, LLC dog @@ -7967,9 +7973,6 @@ duck // dunlop : 2015-07-02 The Goodyear Tire & Rubber Company dunlop -// duns : 2015-08-06 The Dun & Bradstreet Corporation -duns - // dupont : 2015-06-25 E. I. du Pont de Nemours and Company dupont @@ -8048,9 +8051,6 @@ eus // events : 2013-12-05 Binky Moon, LLC events -// everbank : 2014-05-15 EverBank -everbank - // exchange : 2014-03-06 Binky Moon, LLC exchange @@ -8324,7 +8324,7 @@ gmail // gmbh : 2016-01-29 Binky Moon, LLC gmbh -// gmo : 2014-01-09 GMO Internet Pte. Ltd. +// gmo : 2014-01-09 GMO Internet, Inc. gmo // gmx : 2014-04-24 1&1 Mail & Media GmbH @@ -8735,9 +8735,6 @@ kyoto // lacaixa : 2014-01-09 Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa” lacaixa -// ladbrokes : 2015-08-06 LADBROKES INTERNATIONAL PLC -ladbrokes - // lamborghini : 2015-06-04 Automobili Lamborghini S.p.A. lamborghini @@ -8750,9 +8747,6 @@ lancaster // lancia : 2015-07-31 Fiat Chrysler Automobiles N.V. lancia -// lancome : 2015-07-23 L'Oréal -lancome - // land : 2013-09-10 Binky Moon, LLC land @@ -8858,6 +8852,9 @@ lixil // llc : 2017-12-14 Afilias Limited llc +// llp : 2019-08-26 Dot Registry LLC +llp + // loan : 2014-11-20 dot Loan Limited loan @@ -9026,9 +9023,6 @@ mma // mobile : 2016-06-02 Dish DBS Corporation mobile -// mobily : 2014-12-18 GreenTech Consultancy Company W.L.L. -mobily - // moda : 2013-11-07 Dog Beach, LLC moda @@ -9050,9 +9044,6 @@ money // monster : 2015-09-11 XYZ.COM LLC monster -// mopar : 2015-07-30 FCA US LLC. -mopar - // mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") mormon @@ -9074,9 +9065,6 @@ mov // movie : 2015-02-05 Binky Moon, LLC movie -// movistar : 2014-10-16 Telefónica S.A. -movistar - // msd : 2015-07-23 MSD Registry Holdings, Inc. msd @@ -9335,9 +9323,6 @@ photos // physio : 2014-05-01 PhysBiz Pty Ltd physio -// piaget : 2014-10-16 Richemont DNS Inc. -piaget - // pics : 2013-11-14 Uniregistry, Corp. pics @@ -9449,7 +9434,7 @@ qpon // quebec : 2013-12-19 PointQuébec Inc quebec -// quest : 2015-03-26 Quest ION Limited +// quest : 2015-03-26 XYZ.COM LLC quest // qvc : 2015-07-30 QVC, Inc. @@ -9503,7 +9488,7 @@ reit // reliance : 2015-04-02 Reliance Industries Limited reliance -// ren : 2013-12-12 Beijing Qianxiang Wangjing Technology Development Co., Ltd. +// ren : 2013-12-12 ZDNS International Limited ren // rent : 2014-12-04 XYZ.COM LLC @@ -9830,6 +9815,9 @@ sony // soy : 2014-01-23 Charleston Road Registry Inc. soy +// spa : 2019-09-19 Asia Spa and Wellness Promotion Council Limited +spa + // space : 2014-04-03 DotSpace Inc. space @@ -9845,9 +9833,6 @@ spreadbetting // srl : 2015-05-07 InterNetX, Corp srl -// srt : 2015-07-30 FCA US LLC. -srt - // stada : 2014-11-13 STADA Arzneimittel AG stada @@ -9974,9 +9959,6 @@ tech // technology : 2013-09-13 Binky Moon, LLC technology -// telefonica : 2014-10-16 Telefónica S.A. -telefonica - // temasek : 2014-08-07 Temasek Holdings (Private) Limited temasek @@ -10109,16 +10091,13 @@ ubank // ubs : 2014-12-11 UBS AG ubs -// uconnect : 2015-07-30 FCA US LLC. -uconnect - // unicom : 2015-10-15 China United Network Communications Corporation Limited unicom // university : 2014-03-06 Binky Moon, LLC university -// uno : 2013-09-11 Dot Latin LLC +// uno : 2013-09-11 DotSite Inc. uno // uol : 2014-05-01 UBN INTERNET LTDA. @@ -10232,9 +10211,6 @@ wang // wanggou : 2014-12-18 Amazon Registry Services, Inc. wanggou -// warman : 2015-06-18 Weir Group IP Limited -warman - // watch : 2013-11-14 Binky Moon, LLC watch @@ -10349,7 +10325,7 @@ xin // xn--3bst00m : 2013-09-13 Eagle Horizon Limited 集团 -// xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED +// xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED OY 在线 // xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd. @@ -10424,10 +10400,13 @@ xin // xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc. ストア +// xn--cckwcxetd : 2019-12-19 Amazon EU S.à r.l. +アマゾン + // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD 삼성 -// xn--czr694b : 2014-01-16 Dot Trademark TLD Holding Company Limited +// xn--czr694b : 2014-01-16 Internet DotTrademark Organisation Limited 商标 // xn--czrs0t : 2013-12-19 Binky Moon, LLC @@ -10454,7 +10433,7 @@ xin // xn--fhbei : 2015-01-15 VeriSign Sarl كوم -// xn--fiq228c5hs : 2013-09-08 TLD REGISTRY LIMITED +// xn--fiq228c5hs : 2013-09-08 TLD REGISTRY LIMITED OY 中文网 // xn--fiq64b : 2013-10-14 CITIC Group Corporation @@ -10484,7 +10463,7 @@ xin // xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry संगठन -// xn--imr513n : 2014-12-11 Dot Trademark TLD Holding Company Limited +// xn--imr513n : 2014-12-11 Internet DotTrademark Organisation Limited 餐厅 // xn--io0a7i : 2013-11-14 China Internet Network Information Center (CNNIC) @@ -10493,6 +10472,9 @@ xin // xn--j1aef : 2015-01-15 VeriSign Sarl ком +// xn--jlq480n2rg : 2019-12-19 Amazon EU S.à r.l. +亚马逊 + // xn--jlq61u9w7b : 2015-01-08 Nokia Corporation 诺基亚 @@ -10520,9 +10502,6 @@ xin // xn--mgbab2bd : 2013-10-31 CORE Association بازار -// xn--mgbb9fbpob : 2014-12-18 GreenTech Consultancy Company W.L.L. -موبايلي - // xn--mgbca7dzdo : 2015-07-30 Abu Dhabi Systems and Information Centre ابوظبي @@ -10556,7 +10535,7 @@ xin // xn--nyqy26a : 2014-11-07 Stable Tone Limited 健康 -// xn--otu796d : 2017-08-06 Dot Trademark TLD Holding Company Limited +// xn--otu796d : 2017-08-06 Internet DotTrademark Organisation Limited 招聘 // xn--p1acf : 2013-12-12 Rusnames Limited @@ -10631,7 +10610,7 @@ yahoo // yamaxun : 2014-12-18 Amazon Registry Services, Inc. yamaxun -// yandex : 2014-04-10 YANDEX, LLC +// yandex : 2014-04-10 Yandex Europe B.V. yandex // yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD. @@ -10681,6 +10660,12 @@ cc.ua inf.ua ltd.ua +// Adobe : https://www.adobe.com/ +// Submitted by Ian Boston +adobeaemcloud.com +adobeaemcloud.net +*.dev.adobeaemcloud.com + // Agnat sp. z o.o. : https://domena.pl // Submitted by Przemyslaw Plewa beep.pl @@ -10694,6 +10679,10 @@ barsy.ca *.compute.estate *.alces.network +// Altervista: https://www.altervista.org +// Submitted by Carlo Cannas +altervista.org + // alwaysdata : https://www.alwaysdata.com // Submitted by Cyril alwaysdata.net @@ -10794,6 +10783,10 @@ s3-website.eu-west-2.amazonaws.com s3-website.eu-west-3.amazonaws.com s3-website.us-east-2.amazonaws.com +// Amsterdam Wireless: https://www.amsterdamwireless.nl/ +// Submitted by Imre Jonk +amsw.nl + // Amune : https://amune.org/ // Submitted by Team Amune t3l3p0rt.net @@ -10828,12 +10821,6 @@ sweetpepper.org // Submitted by Vincent Tseng myasustor.com -// Automattic Inc. : https://automattic.com/ -// Submitted by Alex Concha -go-vip.co -go-vip.net -wpcomstaging.com - // AVM : https://avm.de // Submitted by Andreas Weise myfritz.net @@ -11068,6 +11055,15 @@ co.no webhosting.be hosting-cluster.nl +// Coordination Center for TLD RU and XN--P1AI : https://cctld.ru/en/domains/domens_ru/reserved/ +// Submitted by George Georgievsky +ac.ru +edu.ru +gov.ru +int.ru +mil.ru +test.ru + // COSIMO GmbH : http://www.cosimo.de // Submitted by Rene Marticke dyn.cosidns.de @@ -11092,6 +11088,14 @@ realm.cz // Submitted by Jonathan Rudenberg cupcake.is +// Customer OCI - Oracle Dyn https://cloud.oracle.com/home https://dyn.com/dns/ +// Submitted by Gregory Drake +// Note: This is intended to also include customer-oci.com due to wildcards implicitly including the current label +*.customer-oci.com +*.oci.customer-oci.com +*.ocp.customer-oci.com +*.ocs.customer-oci.com + // cyon GmbH : https://www.cyon.ch/ // Submitted by Dominic Luechinger cyon.link @@ -11124,6 +11128,14 @@ store.dk *.dapps.earth *.bzz.dapps.earth +// Dark, Inc. : https://darklang.com +// Submitted by Paul Biggar +builtwithdark.com + +// Datawire, Inc : https://www.datawire.io +// Submitted by Richard Li +edgestack.me + // Debian : https://www.debian.org/ // Submitted by Peter Palfrader / Debian Sysadmin Team debian.net @@ -11497,6 +11509,10 @@ dynv6.net // Submitted by Vladimir Dudr e4.cz +// En root‽ : https://en-root.org +// Submitted by Emmanuel Raviart +en-root.fr + // Enalean SAS: https://www.enalean.com // Submitted by Thomas Cottier mytuleap.com @@ -11726,6 +11742,10 @@ firebaseapp.com flynnhub.com flynnhosting.net +// Frederik Braun https://frederik-braun.com +// Submitted by Frederik Braun +0e.vc + // Freebox : http://www.freebox.fr // Submitted by Romain Fliedel freebox-os.com @@ -11759,8 +11779,9 @@ service.gov.uk gehirn.ne.jp usercontent.jp -// Gentlent, Limited : https://www.gentlent.com -// Submitted by Tom Klein +// Gentlent, Inc. : https://www.gentlent.com +// Submitted by Tom Klein +gentapps.com lab.ms // GitHub, Inc. @@ -11776,6 +11797,10 @@ gitlab.io // Submitted by Mads Hartmann glitch.me +// GMO Pepabo, Inc. : https://pepabo.com/ +// Submitted by dojineko +lolipop.io + // GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/ // Submitted by Tom Whitwell cloudapps.digital @@ -11801,6 +11826,7 @@ a.run.app web.app *.0emm.com appspot.com +*.r.appspot.com blogspot.ae blogspot.al blogspot.am @@ -11885,6 +11911,10 @@ publishproxy.com withgoogle.com withyoutube.com +// Group 53, LLC : https://www.group53.com +// Submitted by Tyler Todd +awsmppl.com + // Hakaran group: http://hakaran.cz // Submited by Arseniy Sokolov fin.ci @@ -11934,6 +11964,7 @@ col.ng firm.ng gen.ng ltd.ng +ngo.ng ng.school sch.so @@ -12054,6 +12085,10 @@ uni5.net // Submitted by Roy Keene knightpoint.systems +// KUROKU LTD : https://kuroku.ltd/ +// Submitted by DisposaBoy +oya.to + // .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf co.krd edu.krd @@ -12448,6 +12483,10 @@ nom.uy nom.vc nom.vg +// Observable, Inc. : https://observablehq.com +// Submitted by Mike Bostock +static.observableusercontent.com + // Octopodal Solutions, LLC. : https://ulterius.io/ // Submitted by Andrew Sampson cya.gg @@ -12468,6 +12507,10 @@ opencraft.hosting // Submitted by Yngve Pettersen operaunite.com +// Oursky Limited : https://skygear.io/ +// Submited by Skygear Developer +skygearapp.com + // OutSystems // Submitted by Duarte Santos outsystemscloud.com @@ -12510,6 +12553,10 @@ gotpantheon.com // Submitted by Steve Leung mypep.link +// Perspecta : https://perspecta.com/ +// Submitted by Kenneth Van Alstyne +perspecta.cloud + // Planet-Work : https://www.planet-work.com/ // Submitted by Frédéric VANNIÈRE on-web.fr @@ -12572,6 +12619,11 @@ ras.ru // Submitted by Daniel Dent (https://www.danieldent.com/) qa2.com +// QCX +// Submitted by Cassandra Beelen +qcx.io +*.sys.qcx.io + // QNAP System Inc : https://www.qnap.com // Submitted by Nick Chang dev-myqnapcloud.com @@ -12594,6 +12646,7 @@ rackmaze.net // Rancher Labs, Inc : https://rancher.com // Submitted by Vincent Fiduccia +*.on-k3s.io *.on-rancher.cloud *.on-rio.io @@ -12647,6 +12700,10 @@ logoip.com // Submitted by Hanno Böck schokokeks.net +// Scottish Government: https://www.gov.scot +// Submitted by Martin Ellis +gov.scot + // Scry Security : http://www.scrysec.com // Submitted by Shante Adam scrysec.com @@ -12778,6 +12835,7 @@ i234.me myds.me synology.me vpnplus.to +direct.quickconnect.to // TAIFUN Software AG : http://taifun-software.de // Submitted by Bjoern Henke @@ -12907,6 +12965,10 @@ v-info.info // Submitted by Nathan van Bakel voorloper.cloud +// V.UA Domain Administrator : https://domain.v.ua/ +// Submitted by Serhii Rostilo +v.ua + // Waffle Computer Inc., Ltd. : https://docs.waffleinfo.com // Submitted by Masayuki Note wafflecell.com @@ -12994,8 +13056,4 @@ virtualserver.io site.builder.nu enterprisecloud.nu -// Zone.id : https://zone.id/ -// Submitted by Su Hendro -zone.id - // ===END PRIVATE DOMAINS=== diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index dee6386a..058f77c7 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "4.0.1" + VERSION = "4.0.2" end From af3244f9cf1c558a4c6afd3e39a8ac46c7495c77 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 27 Dec 2019 11:49:54 +0100 Subject: [PATCH 276/450] Update rubocop --- .rubocop.yml | 2 +- .rubocop_defaults.yml | 46 +++++++++++++++++++++---------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 5283089c..05d702fc 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -24,7 +24,7 @@ Style/ClassAndModuleChildren: - 'test/**/*_test.rb' # Dear Rubocop, I don't want to use String#strip_heredoc -Layout/IndentHeredoc: +Layout/HeredocIndentation: Enabled: false Style/WordArray: diff --git a/.rubocop_defaults.yml b/.rubocop_defaults.yml index fa91f00b..a33b4da1 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_defaults.yml @@ -7,37 +7,52 @@ AllCops: - 'vendor/**/*' # [codesmell] -Metrics/AbcSize: +Layout/LineLength: Enabled: false Exclude: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' + Max: 100 -# [codesmell] -Metrics/BlockLength: - Enabled: false +# Array indentation should be considered like MultilineMethodCallIndentation indentation +# and use 4 spaces instead of 2. +Layout/FirstArrayElementIndentation: + IndentationWidth: 4 + +# Hash indentation should be considered like MultilineMethodCallIndentation indentation +# and use 4 spaces instead of 2. +Layout/FirstHashElementIndentation: + IndentationWidth: 4 + +# Multi-line differs from standard indentation, they are indented twice. +Layout/MultilineMethodCallIndentation: + EnforcedStyle: indented + IndentationWidth: 4 # [codesmell] -Metrics/CyclomaticComplexity: +Metrics/AbcSize: Enabled: false Exclude: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' # [codesmell] -Metrics/ClassLength: +Metrics/BlockLength: + Enabled: false + +# [codesmell] +Metrics/CyclomaticComplexity: Enabled: false Exclude: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' # [codesmell] -Metrics/LineLength: +Metrics/ClassLength: Enabled: false Exclude: - 'spec/**/*_spec.rb' - 'test/**/*_test.rb' - Max: 100 # [codesmell] Metrics/MethodLength: @@ -116,21 +131,6 @@ Style/HashSyntax: Style/RescueStandardError: Enabled: false -# Array indentation should be considered like MultilineMethodCallIndentation indentation -# and use 4 spaces instead of 2. -Layout/IndentFirstArrayElement: - IndentationWidth: 4 - -# Hash indentation should be considered like MultilineMethodCallIndentation indentation -# and use 4 spaces instead of 2. -Layout/IndentFirstHashElement: - IndentationWidth: 4 - -# Multi-line differs from standard indentation, they are indented twice. -Layout/MultilineMethodCallIndentation: - EnforcedStyle: indented - IndentationWidth: 4 - # unless is not always cool. Style/NegatedIf: Enabled: false From ec6bc1dc040cd1517fa2e5012eca658a3c908eb6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 27 Dec 2019 11:53:20 +0100 Subject: [PATCH 277/450] Experiment with https://keepachangelog.com/ --- CHANGELOG.md | 122 +++++++++++++++++++++++++++------------------------ 1 file changed, 64 insertions(+), 58 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b0e71b2..b36ceef0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,22 +3,28 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). -#### Release 4.0.2 +## 4.0.2 -- CHANGED: Updated definitions. +### Changed +- Updated definitions. -#### Release 4.0.1 -- CHANGED: Updated definitions. +## 4.0.1 +### Changed -#### Release 4.0.0 +- Updated definitions. -- CHANGED: Minimum Ruby version is 2.3 + +## 4.0.0 + +### Changed + +- Minimum Ruby version is 2.3 -#### Release 3.1.1 +## Release 3.1.1 - CHANGED: Updated definitions. - CHANGED: Rolled back support for Ruby 2.3 (GH-161, GH-162) @@ -26,30 +32,30 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). IMPORTANT: 3.x is the latest version compatible with Ruby 2.1 and Ruby 2.2. -#### Release 3.1.0 +## Release 3.1.0 - CHANGED: Updated definitions. - CHANGED: Minimum Ruby version is 2.3 - CHANGED: Upgraded to Bundler 2.x -#### Release 3.0.3 +## Release 3.0.3 - CHANGED: Updated definitions. -#### Release 3.0.2 +## Release 3.0.2 - CHANGED: Updated definitions. -#### Release 3.0.1 +## Release 3.0.1 - CHANGED: Updated definitions. - CHANGED: Improve performance and avoid allocation (GH-146). [Thanks @robholland] -#### Release 3.0.0 +## Release 3.0.0 This new version includes a major redesign of the library internals, with the goal to drastically improve the lookup time while reducing storage space. @@ -66,35 +72,35 @@ and/or removed. You can find more information at GH-133. - CHANGED: Redesigned internal list storage and lookup algorithm to achieve O(1) lookup time (see GH-133). -#### Release 2.0.5 +## Release 2.0.5 - CHANGED: Updated definitions. - CHANGED: Initialization performance improvements (GH-128). [Thanks @casperisfine] -#### Release 2.0.4 +## Release 2.0.4 - FIXED: Fix a bug that caused the GEM to be published with the wrong version number in the gemspec (GH-121). - CHANGED: Updated definitions. -#### Release 2.0.3 +## Release 2.0.3 - CHANGED: Updated definitions. -#### Release 2.0.2 +## Release 2.0.2 - CHANGED: Updated definitions. -#### Release 2.0.1 +## Release 2.0.1 - FIXED: Fix bug that prevented .valid? to reset the default rule -#### Release 2.0.0 +## Release 2.0.0 - NEW: Added PublicSuffix.domain # => sld.tld - NEW: Added the ability to disable the use of private domains either at runtime, in addition to the ability to not load the private domains section when reading the list (`private_domains: false`). This feature also superseded the `private_domains` class-level attribute, that is no longer available. @@ -111,97 +117,97 @@ and/or removed. You can find more information at GH-133. - REMOVED: Removed futile utility helpers such as `Domain#rule`, `Domain#is_a_domain?`, `Domain#is_a_subdomain?`, `Domain#valid?`. You can easily obtain the same result by having a custom method that reconstructs the logic, and/or calling `PublicSuffix.{domain|parse}(domain.to_s)`. -#### Release 1.5.3 +## Release 1.5.3 - FIXED: Don't duplicate rule indices when creating index (GH-77). [Thanks @ags] - CHANGED: Updated definitions. -#### Release 1.5.2 +## Release 1.5.2 - CHANGED: Updated definitions. -#### Release 1.5.1 +## Release 1.5.1 - FIXED: Ignore case for parsing and validating (GH-62) - CHANGED: Updated definitions. -#### Release 1.5.0 +## Release 1.5.0 - CHANGED: Dropped support for Ruby < 2.0 - CHANGED: Updated definitions. -#### Release 1.4.6 +## Release 1.4.6 - CHANGED: Updated definitions. -#### Release 1.4.5 +## Release 1.4.5 - CHANGED: Updated definitions. -#### Release 1.4.4 +## Release 1.4.4 - CHANGED: Updated definitions. -#### Release 1.4.3 +## Release 1.4.3 - CHANGED: Updated definitions. -#### Release 1.4.2 +## Release 1.4.2 - CHANGED: Updated definitions. -#### Release 1.4.1 +## Release 1.4.1 - CHANGED: Updated definitions. -#### Release 1.4.0 +## Release 1.4.0 - CHANGED: Moved the definitions in the lib folder. - CHANGED: Updated definitions. -#### Release 1.3.3 +## Release 1.3.3 - CHANGED: Updated definitions. -#### Release 1.3.2 +## Release 1.3.2 - CHANGED: Updated definitions. -#### Release 1.3.1 +## Release 1.3.1 - CHANGED: Updated definitions. -#### Release 1.3.0 +## Release 1.3.0 - NEW: Ability to skip Private Domains (GH-28). [Thanks @rb2k] - CHANGED: Updated definitions. -#### Release 1.2.1 +## Release 1.2.1 - CHANGED: Updated definitions. -#### Release 1.2.0 +## Release 1.2.0 - NEW: Allow a custom List on `PublicSuffix.parse` (GH-26). [Thanks @itspriddle] @@ -210,22 +216,22 @@ and/or removed. You can find more information at GH-133. - CHANGED: Updated definitions. -#### Release 1.1.3 +## Release 1.1.3 - CHANGED: Updated definitions. -#### Release 1.1.2 +## Release 1.1.2 - CHANGED: Updated definitions. -#### Release 1.1.1 +## Release 1.1.1 - CHANGED: Updated definitions. -#### Release 1.1.0 +## Release 1.1.0 - FIXED: #valid? and #parse consider URIs as valid domains (GH-15) @@ -234,17 +240,17 @@ and/or removed. You can find more information at GH-133. - CHANGED: Removed deprecatd PublicSuffixService::RuleList. -#### Release 1.0.0 +## Release 1.0.0 - CHANGED: Updated definitions. -#### Release 1.0.0.rc1 +## Release 1.0.0.rc1 The library is now known as PublicSuffix. -#### Release 0.9.1 +## Release 0.9.1 - CHANGED: Renamed PublicSuffixService::RuleList to PublicSuffixService::List. @@ -255,20 +261,20 @@ The library is now known as PublicSuffix. - CHANGED: Updated definitions. -#### Release 0.9.0 +## Release 0.9.0 - CHANGED: Minimum Ruby version increased to Ruby 1.8.7. - CHANGED: rake/gempackagetask is deprecated. Use rubygems/package_task instead. -#### Release 0.8.4 +## Release 0.8.4 - FIXED: Reverted bugfix for issue #12 for Ruby 1.8.6. This is the latest version compatible with Ruby 1.8.6. -#### Release 0.8.3 +## Release 0.8.3 - FIXED: Fixed ArgumentError: invalid byte sequence in US-ASCII with Ruby 1.9.2 (#12). @@ -277,7 +283,7 @@ The library is now known as PublicSuffix. - CHANGED: Renamed definitions.txt to definitions.dat. -#### Release 0.8.2 +## Release 0.8.2 - NEW: Added support for rubygems-test. @@ -286,19 +292,19 @@ The library is now known as PublicSuffix. - CHANGED: Updated definitions. -#### Release 0.8.1 +## Release 0.8.1 - FIXED: The files in the release 0.8.0 have wrong permission 600 and can't be loaded (#10). -#### Release 0.8.0 +## Release 0.8.0 - CHANGED: Update public suffix list to d1a5599b49fa 2010-10-25 15:10 +0100 (#9) - NEW: Add support for Fully Qualified Domain Names (#7) -#### Release 0.7.0 +## Release 0.7.0 - CHANGED: Using YARD to document the code instead of RDoc. @@ -307,7 +313,7 @@ The library is now known as PublicSuffix. - FIXED: PublicSuffixService.valid? should return false if the domain is not defined or not allowed (#4, #5) -#### Release 0.6.0 +## Release 0.6.0 - NEW: PublicSuffixService.parse raises DomainNotAllowed when trying to parse a domain name which exists, but is not allowed by the current definition list (#3) @@ -318,34 +324,34 @@ The library is now known as PublicSuffix. - CHANGED: Renamed PublicSuffixService::InvalidDomain to PublicSuffixService::DomainInvalid -#### Release 0.5.2 +## Release 0.5.2 - CHANGED: Update public suffix list to 248ea690d671 2010-09-16 18:02 +0100 -#### Release 0.5.1 +## Release 0.5.1 - CHANGED: Update public suffix list to 14dc66dd53c1 2010-09-15 17:09 +0100 -#### Release 0.5.0 +## Release 0.5.0 - CHANGED: Improve documentation for Domain#domain and Domain#subdomain (#1). - CHANGED: Performance improvements (#2). -#### Release 0.4.0 +## Release 0.4.0 - CHANGED: Rename library from DomainName to PublicSuffixService to reduce the probability of name conflicts. -#### Release 0.3.1 +## Release 0.3.1 - Deprecated DomainName library. -#### Release 0.3.0 +## Release 0.3.0 - CHANGED: DomainName#domain and DomainName#subdomain are no longer alias of Domain#sld and Domain#tld. @@ -356,7 +362,7 @@ The library is now known as PublicSuffix. - CHANGED: Refactoring the entire DomainName API. Removed the internal on-the-fly parsing. Added a bunch of new methods to check and validate the DomainName. -#### Release 0.2.0 +## Release 0.2.0 - NEW: DomainName#valid? @@ -367,6 +373,6 @@ The library is now known as PublicSuffix. - CHANGED: Make sure RuleList lookup is only performed once. -#### Release 0.1.0 +## Release 0.1.0 - Initial version From d076009df0160292dab73eadf13021f5da55761d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 5 Jan 2020 12:34:33 +0100 Subject: [PATCH 278/450] Update .travis.yml --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e5d76ec2..7a0526a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ rvm: - 2.5 - 2.6 - 2.7 - - jruby-9.1.5.0 - ruby-head env: @@ -18,7 +17,6 @@ cache: matrix: allow_failures: - rvm: ruby-head - - rvm: jruby-9.1.5.0 before_install: - gem update --system From bac3a1d05c26e5fc1a8dd7919fad4d8a4ca39163 Mon Sep 17 00:00:00 2001 From: Brian Hawley Date: Sun, 5 Jan 2020 10:36:01 -0800 Subject: [PATCH 279/450] Fix 2.7 deprecations and warnings (#168) Fixes GH-167 --- lib/public_suffix/list.rb | 2 +- test/test_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index c573b4cf..f281d1d3 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -48,7 +48,7 @@ class List # # @return [PublicSuffix::List] def self.default(**options) - @default ||= parse(File.read(DEFAULT_LIST_PATH), options) + @default ||= parse(File.read(DEFAULT_LIST_PATH), **options) end # Sets the default rule list to +value+. diff --git a/test/test_helper.rb b/test/test_helper.rb index 1d5468c3..4f8a4477 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -10,7 +10,7 @@ require "minitest/autorun" require "minitest/reporters" -require "mocha/setup" +require "mocha/minitest" Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true) From 41f54eab90e2c7088ed1cdce2eebb900e0197f15 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 5 Jan 2020 19:37:35 +0100 Subject: [PATCH 280/450] CHANGELOG for GH-167 See GH-167, GH-168 Thanks @BrianHawley --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b36ceef0..838de96c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## master + +### Fixed + +- Fixed 2.7 deprecations and warnings (GH-167). [Thanks @BrianHawley] + + ## 4.0.2 ### Changed From da650c860a552336113d73d77b25b724feb8e9c8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 5 Jan 2020 19:40:14 +0100 Subject: [PATCH 281/450] Welcome 2020 --- LICENSE.txt | 2 +- README.md | 2 +- lib/public_suffix.rb | 2 +- lib/public_suffix/domain.rb | 2 +- lib/public_suffix/errors.rb | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- lib/public_suffix/version.rb | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 561dc171..3bbd1121 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2009-2019 Simone Carletti +Copyright (c) 2009-2020 Simone Carletti MIT License diff --git a/README.md b/README.md index edd3e377..372a0192 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,6 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. ## License -Copyright (c) 2009-2019 Simone Carletti. This is Free Software distributed under the MIT license. +Copyright (c) 2009-2020 Simone Carletti. This is Free Software distributed under the MIT license. The [Public Suffix List source](https://publicsuffix.org/list/) is subject to the terms of the Mozilla Public License, v. 2.0. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 2fe83b59..01f880e3 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2019 Simone Carletti +# Copyright (c) 2009-2020 Simone Carletti require_relative "public_suffix/domain" require_relative "public_suffix/version" diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 8ccac5ca..3d65eac7 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2019 Simone Carletti +# Copyright (c) 2009-2020 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index 0d3c6441..2d5798de 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2019 Simone Carletti +# Copyright (c) 2009-2020 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index f281d1d3..1c7df366 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2019 Simone Carletti +# Copyright (c) 2009-2020 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 525d337f..b5a08f52 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2019 Simone Carletti +# Copyright (c) 2009-2020 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 058f77c7..1d31f62c 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -5,7 +5,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2019 Simone Carletti +# Copyright (c) 2009-2020 Simone Carletti module PublicSuffix # The current library version. From 84fc0d1895178aea481d00529697322f87a82fba Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 5 Jan 2020 19:41:20 +0100 Subject: [PATCH 282/450] Release 4.0.3 --- CHANGELOG.md | 2 +- lib/public_suffix/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 838de96c..5e337842 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). -## master +## 4.0.3 ### Fixed diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 1d31f62c..8f460a82 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "4.0.2" + VERSION = "4.0.3" end From c65e0e412cf7f1fb5fd66be5f9ce074c2428e30b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 31 Jan 2020 21:29:42 +0100 Subject: [PATCH 283/450] Move development dependencies from gemspec to Bundle --- Gemfile | 9 ++++++--- public_suffix.gemspec | 4 ---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 1339c9f9..fc390fc7 100644 --- a/Gemfile +++ b/Gemfile @@ -4,9 +4,12 @@ source "https://rubygems.org" gemspec +gem "rake" + gem "codecov", require: false +gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" -gem "rubocop", require: false - -gem "memory_profiler", require: false +gem "mocha" +gem "rubocop", "0.79.0", require: false +gem "yard" diff --git a/public_suffix.gemspec b/public_suffix.gemspec index e4a6cd37..6a490861 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -18,8 +18,4 @@ Gem::Specification.new do |s| s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") s.extra_rdoc_files = %w( LICENSE.txt ) - - s.add_development_dependency "rake" - s.add_development_dependency "mocha" - s.add_development_dependency "yard" end From c14c3ed5acf6045f9e616c6ece2569c0e8e345e1 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 31 Jan 2020 21:31:17 +0100 Subject: [PATCH 284/450] Sync up my Rubocop default file --- .rubocop.yml | 2 +- ...p_defaults.yml => .rubocop_opinionated.yml | 29 +-------- test/acceptance_test.rb | 58 +++++++++--------- test/unit/public_suffix_test.rb | 22 +++---- test/unit/rule_test.rb | 60 +++++++++---------- 5 files changed, 74 insertions(+), 97 deletions(-) rename .rubocop_defaults.yml => .rubocop_opinionated.yml (83%) diff --git a/.rubocop.yml b/.rubocop.yml index 05d702fc..af922f52 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,5 @@ inherit_from: - - .rubocop_defaults.yml + - .rubocop_opinionated.yml AllCops: Exclude: diff --git a/.rubocop_defaults.yml b/.rubocop_opinionated.yml similarity index 83% rename from .rubocop_defaults.yml rename to .rubocop_opinionated.yml index a33b4da1..b5b63253 100644 --- a/.rubocop_defaults.yml +++ b/.rubocop_opinionated.yml @@ -14,21 +14,6 @@ Layout/LineLength: - 'test/**/*_test.rb' Max: 100 -# Array indentation should be considered like MultilineMethodCallIndentation indentation -# and use 4 spaces instead of 2. -Layout/FirstArrayElementIndentation: - IndentationWidth: 4 - -# Hash indentation should be considered like MultilineMethodCallIndentation indentation -# and use 4 spaces instead of 2. -Layout/FirstHashElementIndentation: - IndentationWidth: 4 - -# Multi-line differs from standard indentation, they are indented twice. -Layout/MultilineMethodCallIndentation: - EnforcedStyle: indented - IndentationWidth: 4 - # [codesmell] Metrics/AbcSize: Enabled: false @@ -120,17 +105,6 @@ Style/FormatString: Style/FormatStringToken: Enabled: false -# Prefer the latest Hash syntax -Style/HashSyntax: - Exclude: - # But Rakefiles generally have some definition like - # :default => :test - # that looks nicer with the old rocket syntax. - - 'Rakefile' - -Style/RescueStandardError: - Enabled: false - # unless is not always cool. Style/NegatedIf: Enabled: false @@ -145,6 +119,9 @@ Style/PercentLiteralDelimiters: Style/RescueModifier: Enabled: false +Style/SymbolArray: + EnforcedStyle: brackets + # Sorry, but using trailing spaces helps readability. # # %w( foo bar ) diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 660bdbc0..2be719d7 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -5,14 +5,14 @@ class AcceptanceTest < Minitest::Test VALID_CASES = [ - ["example.com", "example.com", [nil, "example", "com"]], - ["foo.example.com", "example.com", ["foo", "example", "com"]], + ["example.com", "example.com", [nil, "example", "com"]], + ["foo.example.com", "example.com", ["foo", "example", "com"]], - ["verybritish.co.uk", "verybritish.co.uk", [nil, "verybritish", "co.uk"]], - ["foo.verybritish.co.uk", "verybritish.co.uk", ["foo", "verybritish", "co.uk"]], + ["verybritish.co.uk", "verybritish.co.uk", [nil, "verybritish", "co.uk"]], + ["foo.verybritish.co.uk", "verybritish.co.uk", ["foo", "verybritish", "co.uk"]], - ["parliament.uk", "parliament.uk", [nil, "parliament", "uk"]], - ["foo.parliament.uk", "parliament.uk", ["foo", "parliament", "uk"]], + ["parliament.uk", "parliament.uk", [nil, "parliament", "uk"]], + ["foo.parliament.uk", "parliament.uk", ["foo", "parliament", "uk"]], ].freeze def test_valid @@ -34,10 +34,10 @@ def test_valid INVALID_CASES = [ - ["nic.bd", PublicSuffix::DomainNotAllowed], - [nil, PublicSuffix::DomainInvalid], - ["", PublicSuffix::DomainInvalid], - [" ", PublicSuffix::DomainInvalid], + ["nic.bd", PublicSuffix::DomainNotAllowed], + [nil, PublicSuffix::DomainInvalid], + ["", PublicSuffix::DomainInvalid], + [" ", PublicSuffix::DomainInvalid], ].freeze def test_invalid @@ -49,16 +49,16 @@ def test_invalid REJECTED_CASES = [ - ["www. .com", true], - ["foo.co..uk", true], - ["goo,gle.com", true], - ["-google.com", true], - ["google-.com", true], - - # This case was covered in GH-15. - # I decided to cover this case because it's not easily reproducible with URI.parse - # and can lead to several false positives. - ["http://google.com", false], + ["www. .com", true], + ["foo.co..uk", true], + ["goo,gle.com", true], + ["-google.com", true], + ["google-.com", true], + + # This case was covered in GH-15. + # I decided to cover this case because it's not easily reproducible with URI.parse + # and can lead to several false positives. + ["http://google.com", false], ].freeze def test_rejected @@ -72,9 +72,9 @@ def test_rejected CASE_CASES = [ - ["Www.google.com", %w( www google com )], - ["www.Google.com", %w( www google com )], - ["www.google.Com", %w( www google com )], + ["Www.google.com", %w( www google com )], + ["www.Google.com", %w( www google com )], + ["www.google.Com", %w( www google com )], ].freeze def test_ignore_case @@ -90,10 +90,10 @@ def test_ignore_case INCLUDE_PRIVATE_CASES = [ - ["blogspot.com", true, "blogspot.com"], - ["blogspot.com", false, nil], - ["subdomain.blogspot.com", true, "blogspot.com"], - ["subdomain.blogspot.com", false, "subdomain.blogspot.com"], + ["blogspot.com", true, "blogspot.com"], + ["blogspot.com", false, nil], + ["subdomain.blogspot.com", true, "blogspot.com"], + ["subdomain.blogspot.com", false, "subdomain.blogspot.com"], ].freeze def test_ignore_private @@ -115,14 +115,14 @@ def test_ignore_private def valid_uri?(name) uri = URI.parse(name) !uri.host.nil? - rescue + rescue StandardError false end def valid_domain?(name) uri = URI.parse(name) !uri.host.nil? && uri.scheme.nil? - rescue + rescue StandardError false end diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index 48a85e0f..ba51e138 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -141,13 +141,13 @@ def test_self_domain_with_blank_sld def test_self_normalize [ - ["com", "com"], - ["example.com", "example.com"], - ["www.example.com", "www.example.com"], + ["com", "com"], + ["example.com", "example.com"], + ["www.example.com", "www.example.com"], - ["example.com.", "example.com"], # strip FQDN - [" example.com ", "example.com"], # strip spaces - ["Example.COM", "example.com"], # downcase + ["example.com.", "example.com"], # strip FQDN + [" example.com ", "example.com"], # strip spaces + ["Example.COM", "example.com"], # downcase ].each do |input, output| assert_equal output, PublicSuffix.normalize(input) end @@ -155,9 +155,9 @@ def test_self_normalize def test_normalize_blank [ - nil, - "", - " ", + nil, + "", + " ", ].each do |input| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error @@ -167,7 +167,7 @@ def test_normalize_blank def test_normalize_scheme [ - "https://google.com", + "https://google.com", ].each do |input| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error @@ -177,7 +177,7 @@ def test_normalize_scheme def test_normalize_leading_dot [ - ".google.com", + ".google.com", ].each do |input| error = PublicSuffix.normalize(input) assert_instance_of PublicSuffix::DomainInvalid, error diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index ea5ec8c0..d1cc6094 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -70,36 +70,36 @@ def test_equality_with_internals def test_match [ - # standard match - [PublicSuffix::Rule.factory("uk"), "uk", true], - [PublicSuffix::Rule.factory("uk"), "example.uk", true], - [PublicSuffix::Rule.factory("uk"), "example.co.uk", true], - [PublicSuffix::Rule.factory("co.uk"), "example.co.uk", true], - - # FIXME - # [PublicSuffix::Rule.factory("*.com"), "com", false], - [PublicSuffix::Rule.factory("*.com"), "example.com", true], - [PublicSuffix::Rule.factory("*.com"), "foo.example.com", true], - [PublicSuffix::Rule.factory("!example.com"), "com", false], - [PublicSuffix::Rule.factory("!example.com"), "example.com", true], - [PublicSuffix::Rule.factory("!example.com"), "foo.example.com", true], - - # TLD mismatch - [PublicSuffix::Rule.factory("gk"), "example.uk", false], - [PublicSuffix::Rule.factory("gk"), "example.co.uk", false], - [PublicSuffix::Rule.factory("co.uk"), "uk", false], - - # general mismatch - [PublicSuffix::Rule.factory("uk.co"), "example.co.uk", false], - [PublicSuffix::Rule.factory("go.uk"), "example.co.uk", false], - [PublicSuffix::Rule.factory("co.uk"), "uk", false], - - # partial matches/mismatches - [PublicSuffix::Rule.factory("co"), "example.co.uk", false], - [PublicSuffix::Rule.factory("example"), "example.uk", false], - [PublicSuffix::Rule.factory("le.it"), "example.it", false], - [PublicSuffix::Rule.factory("le.it"), "le.it", true], - [PublicSuffix::Rule.factory("le.it"), "foo.le.it", true], + # standard match + [PublicSuffix::Rule.factory("uk"), "uk", true], + [PublicSuffix::Rule.factory("uk"), "example.uk", true], + [PublicSuffix::Rule.factory("uk"), "example.co.uk", true], + [PublicSuffix::Rule.factory("co.uk"), "example.co.uk", true], + + # FIXME + # [PublicSuffix::Rule.factory("*.com"), "com", false], + [PublicSuffix::Rule.factory("*.com"), "example.com", true], + [PublicSuffix::Rule.factory("*.com"), "foo.example.com", true], + [PublicSuffix::Rule.factory("!example.com"), "com", false], + [PublicSuffix::Rule.factory("!example.com"), "example.com", true], + [PublicSuffix::Rule.factory("!example.com"), "foo.example.com", true], + + # TLD mismatch + [PublicSuffix::Rule.factory("gk"), "example.uk", false], + [PublicSuffix::Rule.factory("gk"), "example.co.uk", false], + [PublicSuffix::Rule.factory("co.uk"), "uk", false], + + # general mismatch + [PublicSuffix::Rule.factory("uk.co"), "example.co.uk", false], + [PublicSuffix::Rule.factory("go.uk"), "example.co.uk", false], + [PublicSuffix::Rule.factory("co.uk"), "uk", false], + + # partial matches/mismatches + [PublicSuffix::Rule.factory("co"), "example.co.uk", false], + [PublicSuffix::Rule.factory("example"), "example.uk", false], + [PublicSuffix::Rule.factory("le.it"), "example.it", false], + [PublicSuffix::Rule.factory("le.it"), "le.it", true], + [PublicSuffix::Rule.factory("le.it"), "foo.le.it", true], ].each do |rule, input, expected| assert_equal expected, rule.match?(input) From 9947cca9d84ff51e1c43af17c6127574490160a6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 31 Jan 2020 21:32:13 +0100 Subject: [PATCH 285/450] Update definitions --- CHANGELOG.md | 7 +++++++ data/list.txt | 25 ++++++++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e337842..24053ac2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## master + +### Changed + +- Updated definitions. + + ## 4.0.3 ### Fixed diff --git a/data/list.txt b/data/list.txt index 7f1854d8..6830093f 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7074,7 +7074,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-12-25T17:26:24Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-01-06T17:33:31Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8798,9 +8798,6 @@ lexus // lgbt : 2014-05-08 Afilias Limited lgbt -// liaison : 2014-10-02 Liaison Technologies, Incorporated -liaison - // lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG lidl @@ -10957,8 +10954,9 @@ certmgr.org xenapponazure.com // Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/ -// Submitted by Rishabh Nambiar +// Submitted by Rishabh Nambiar & Michael Brown discourse.group +discourse.team // ClearVox : http://www.clearvox.nl/ // Submitted by Leon Rowland @@ -11688,6 +11686,7 @@ vologda.su // Fancy Bits, LLC : http://getchannels.com // Submitted by Aman Gupta channelsdvr.net +u.channelsdvr.net // Fastly Inc. : http://www.fastly.com/ // Submitted by Fastly Security @@ -12607,6 +12606,10 @@ pubtls.org // Submitted by Xavier De Cock qualifioapp.com +// QuickBackend: https://www.quickbackend.com +// Submitted by Dani Biro +qbuser.com + // Redstar Consultants : https://www.redstarconsultants.com/ // Submitted by Jons Slemmer instantcloud.cn @@ -12721,6 +12724,10 @@ my-firewall.org myfirewall.org spdns.org +// Senseering GmbH : https://www.senseering.de +// Submitted by Felix Mönckemeyer +senseering.net + // Service Online LLC : http://drs.ua/ // Submitted by Serhii Bulakh biz.ua @@ -12991,6 +12998,14 @@ remotewd.com // Submitted by Yuvi Panda wmflabs.org +// WoltLab GmbH : https://www.woltlab.com +// Submitted by Tim Düsterhus +myforum.community +community-pro.de +diskussionsbereich.de +community-pro.net +meinforum.net + // XenonCloud GbR: https://xenoncloud.net // Submitted by Julian Uphoff half.host From 369b1770a2309888c2827c3ae58932a236ff046f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 31 Jan 2020 21:36:39 +0100 Subject: [PATCH 286/450] Update .gitignore --- .gitignore | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 9e5a30ab..85062928 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,8 @@ # Bundler -.bundle -Gemfile.lock -pkg/* - -# Rubinius -*.rbc +/.bundle +/Gemfile.lock +/pkg/* # YARD -.yardoc -yardoc/ +/.yardoc +/yardoc/ From b8f814579876a2f1c0a1a50e8f39121310a2f5e8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 15 Feb 2020 19:37:08 +0100 Subject: [PATCH 287/450] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 372a0192..7e30ee61 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](https://publicsuffix.org/). [![Build Status](https://travis-ci.org/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.org/weppos/publicsuffix-ruby) -[![Tidelift dependencies](https://tidelift.com/badges/github/weppos/publicsuffix-ruby)](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=readme) +[![Tidelift dependencies](https://tidelift.com/badges/package/rubygems/public_suffix)](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=readme) ## Links From 929532dcc1e3aa546c3ee4c55d113e7501ed34ae Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 15 Feb 2020 19:37:54 +0100 Subject: [PATCH 288/450] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7e30ee61..d250d945 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](https://publicsuffix.org/). [![Build Status](https://travis-ci.org/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.org/weppos/publicsuffix-ruby) -[![Tidelift dependencies](https://tidelift.com/badges/package/rubygems/public_suffix)](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=readme) +[![Tidelift dependencies](https://tidelift.com/badges/package/rubygems/public_suffix)](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=enterprise) ## Links From 16695da90b02220b41a6e88eac9d43e987692383 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 16 Feb 2020 15:46:35 +0100 Subject: [PATCH 289/450] Update SECURITY.md --- SECURITY.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SECURITY.md b/SECURITY.md index 25c27fed..f3291287 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -16,7 +16,7 @@ Older major versions are no longer supported. To make a report, please email weppos@weppos.net. -Please consider encrypting your report with GPG using the key (0x420da82a989398df)[https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x420da82a989398df] +Please consider encrypting your report with GPG using the key [0x420da82a989398df](https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x420da82a989398df). ``` -----BEGIN PGP PUBLIC KEY BLOCK----- @@ -99,3 +99,6 @@ q59MIs/Fb3SgaO+zN2FZTYp6dyRJHbeEz55JdOu6F+6ihZYH ``` +## Tracking Security Updates + +Information about security vulnerabilities are published in the [Security Advisories](https://github.com/weppos/publicsuffix-ruby/security/advisories) page. From ee03cb44103b87e2f0db33bc3e98603c08b7a362 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 19 Feb 2020 08:46:17 +0100 Subject: [PATCH 290/450] Update rubocop requirement from 0.79.0 to 0.80.0 (#169) Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.79.0...v0.80.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index fc390fc7..c52e1bc3 100644 --- a/Gemfile +++ b/Gemfile @@ -11,5 +11,5 @@ gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" gem "mocha" -gem "rubocop", "0.79.0", require: false +gem "rubocop", "0.80.0", require: false gem "yard" From c6dcdf6b276920bcbde5dbfaff4d6e93ae1bea82 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2020 09:52:32 +0100 Subject: [PATCH 291/450] Update rubocop requirement from 0.80.0 to 0.80.1 (#170) Updates the requirements on [rubocop](https://github.com/rubocop-hq/rubocop) to permit the latest version. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.80.0...v0.80.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index c52e1bc3..afa9a2cb 100644 --- a/Gemfile +++ b/Gemfile @@ -11,5 +11,5 @@ gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" gem "mocha" -gem "rubocop", "0.80.0", require: false +gem "rubocop", "0.80.1", require: false gem "yard" From da6e504132fdff07c6e1851406ae6fbdfb895fbd Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 5 Apr 2020 14:44:52 +0200 Subject: [PATCH 292/450] Update to Rubocop 0.81.0 --- .rubocop_opinionated.yml | 18 ++++++++++++++++++ Gemfile | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.rubocop_opinionated.yml b/.rubocop_opinionated.yml index b5b63253..f80a439b 100644 --- a/.rubocop_opinionated.yml +++ b/.rubocop_opinionated.yml @@ -154,3 +154,21 @@ Style/TrivialAccessors: # end # IgnoreClassMethods: true + +# New cops +# See https://docs.rubocop.org/en/latest/versioning/ + +Lint/RaiseException: + Enabled: true + +Lint/StructNewOverride: + Enabled: true + +Style/HashEachMethods: + Enabled: true + +Style/HashTransformKeys: + Enabled: true + +Style/HashTransformValues: + Enabled: true diff --git a/Gemfile b/Gemfile index afa9a2cb..b1b7333b 100644 --- a/Gemfile +++ b/Gemfile @@ -11,5 +11,5 @@ gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" gem "mocha" -gem "rubocop", "0.80.1", require: false +gem "rubocop", "0.81.0", require: false gem "yard" diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 1c7df366..321b59a7 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -216,7 +216,7 @@ def select(name, ignore_private: false) rules end - private :select # rubocop:disable Style/AccessModifierDeclarations + private :select # Gets the default rule. # diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index b5a08f52..d4c32ca1 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -22,7 +22,7 @@ module PublicSuffix module Rule # @api internal - Entry = Struct.new(:type, :length, :private) + Entry = Struct.new(:type, :length, :private) # rubocop:disable Lint/StructNewOverride # = Abstract rule class # From 167552c0b5871f1453b322810448cbc9feea58cf Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 5 Apr 2020 14:45:18 +0200 Subject: [PATCH 293/450] Update definitions --- data/list.txt | 108 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 74 insertions(+), 34 deletions(-) diff --git a/data/list.txt b/data/list.txt index 6830093f..f02a2de1 100644 --- a/data/list.txt +++ b/data/list.txt @@ -79,7 +79,6 @@ exchange.aero express.aero federation.aero flight.aero -freight.aero fuel.aero gliding.aero government.aero @@ -719,11 +718,13 @@ gouv.ci *.ck !www.ck -// cl : https://en.wikipedia.org/wiki/.cl +// cl : https://www.nic.cl +// Confirmed by .CL registry cl -gov.cl -gob.cl +aprendemas.cl co.cl +gob.cl +gov.cl mil.cl // cm : https://en.wikipedia.org/wiki/.cm plus bug 981927 @@ -982,8 +983,19 @@ fi // TODO: Check for updates (expected to be phased out around Q1/2009) aland.fi -// fj : https://en.wikipedia.org/wiki/.fj -*.fj +// fj : http://domains.fj/ +// Submitted by registry 2020-02-11 +fj +ac.fj +biz.fj +com.fj +gov.fj +info.fj +mil.fj +name.fj +net.fj +org.fj +pro.fj // fk : https://en.wikipedia.org/wiki/.fk *.fk @@ -6508,7 +6520,7 @@ k12.ok.us k12.or.us k12.pa.us k12.pr.us -k12.ri.us +// k12.ri.us Removed at request of Kim Cournoyer k12.sc.us // k12.sd.us Bug 934131 - Removed at request of James Booze k12.tn.us @@ -6795,8 +6807,13 @@ yt مصر // xn--e1a4c ("eu", Cyrillic) : EU +// https://eurid.eu ею +// xn--qxa6a ("eu", Greek) : EU +// https://eurid.eu +ευ + // xn--mgbah1a3hjkrd ("Mauritania", Arabic) : MR موريتانيا @@ -7074,7 +7091,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-01-06T17:33:31Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-04-02T18:20:31Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7196,7 +7213,7 @@ alsace // alstom : 2015-07-30 ALSTOM alstom -// amazon : 2019-12-19 Amazon EU S.à r.l. +// amazon : 2019-12-19 Amazon Registry Services, Inc. amazon // americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc. @@ -7376,7 +7393,7 @@ bcn // beats : 2015-05-14 Beats Electronics, LLC beats -// beauty : 2015-12-03 L'Oréal +// beauty : 2015-12-03 XYZ.COM LLC beauty // beer : 2014-01-09 Minds + Machines Group Limited @@ -7832,7 +7849,7 @@ cuisinella // cymru : 2014-05-08 Nominet UK cymru -// cyou : 2015-01-22 Beijing Gamease Age Digital Technology Co., Ltd. +// cyou : 2015-01-22 ShortDot SA cyou // dabur : 2014-02-06 Dabur India Limited @@ -8399,7 +8416,7 @@ guitars // guru : 2013-08-27 Binky Moon, LLC guru -// hair : 2015-12-03 L'Oréal +// hair : 2015-12-03 XYZ.COM LLC hair // hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH @@ -8918,7 +8935,7 @@ maif // maison : 2013-12-05 Binky Moon, LLC maison -// makeup : 2015-01-15 L'Oréal +// makeup : 2015-01-15 XYZ.COM LLC makeup // man : 2014-12-04 MAN SE @@ -9077,9 +9094,6 @@ mutual // nab : 2015-08-20 National Australia Bank Limited nab -// nadex : 2014-12-11 Nadex Domains, Inc. -nadex - // nagoya : 2013-10-24 GMO Registry, Inc. nagoya @@ -9761,7 +9775,7 @@ site // ski : 2015-04-09 Afilias Limited ski -// skin : 2015-01-15 L'Oréal +// skin : 2015-01-15 XYZ.COM LLC skin // sky : 2014-06-19 Sky International AG @@ -10049,7 +10063,7 @@ trading // training : 2013-11-07 Binky Moon, LLC training -// travel : Dog Beach, LLC +// travel : 2015-10-09 Dog Beach, LLC travel // travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. @@ -10157,9 +10171,6 @@ visa // vision : 2013-12-05 Binky Moon, LLC vision -// vistaprint : 2014-09-18 Vistaprint Limited -vistaprint - // viva : 2014-11-07 Saudi Telecom Company viva @@ -10337,7 +10348,7 @@ xin // xn--45q11c : 2013-11-21 Zodiac Gemini Ltd 八卦 -// xn--4gbrim : 2013-10-04 Suhub Electronic Establishment +// xn--4gbrim : 2013-10-04 Fans TLD Limited موقع // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center @@ -10397,7 +10408,7 @@ xin // xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc. ストア -// xn--cckwcxetd : 2019-12-19 Amazon EU S.à r.l. +// xn--cckwcxetd : 2019-12-19 Amazon Registry Services, Inc. アマゾン // xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD @@ -10421,9 +10432,6 @@ xin // xn--efvy88h : 2014-08-22 Guangzhou YU Wei Information Technology Co., Ltd. 新闻 -// xn--estv75g : 2015-02-19 Industrial and Commercial Bank of China Limited -工行 - // xn--fct429k : 2015-04-09 Amazon Registry Services, Inc. 家電 @@ -10469,7 +10477,7 @@ xin // xn--j1aef : 2015-01-15 VeriSign Sarl ком -// xn--jlq480n2rg : 2019-12-19 Amazon EU S.à r.l. +// xn--jlq480n2rg : 2019-12-19 Amazon Registry Services, Inc. 亚马逊 // xn--jlq61u9w7b : 2015-01-08 Nokia Corporation @@ -10532,7 +10540,7 @@ xin // xn--nyqy26a : 2014-11-07 Stable Tone Limited 健康 -// xn--otu796d : 2017-08-06 Internet DotTrademark Organisation Limited +// xn--otu796d : 2017-08-06 Jiang Yu Liang Cai Technology Company Limited 招聘 // xn--p1acf : 2013-12-12 Rusnames Limited @@ -11705,6 +11713,10 @@ global.ssl.fastly.net // Submitted by Likhachev Vasiliy fastpanel.direct fastvps-server.com +myfast.space +myfast.host +fastvps.site +fastvps.host // Featherhead : https://featherhead.xyz/ // Submitted by Simon Menke @@ -11718,6 +11730,13 @@ cloud.fedoraproject.org app.os.fedoraproject.org app.os.stg.fedoraproject.org +// FearWorks Media Ltd. : https://fearworksmedia.co.uk +// submitted by Keith Fairley +conn.uk +copro.uk +couk.me +ukco.me + // Fermax : https://fermax.com/ // submitted by Koen Van Isterdael mydobiss.com @@ -11738,7 +11757,6 @@ firebaseapp.com // Flynn : https://flynn.io // Submitted by Jonathan Rudenberg -flynnhub.com flynnhosting.net // Frederik Braun https://frederik-braun.com @@ -11910,6 +11928,10 @@ publishproxy.com withgoogle.com withyoutube.com +// Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za +// Submitted by Aaron Marais +graphox.us + // Group 53, LLC : https://www.group53.com // Submitted by Tyler Todd awsmppl.com @@ -12227,8 +12249,8 @@ eu.meteorapp.com co.pl // Microsoft Corporation : http://microsoft.com -// Submitted by Justin Luk -azurecontainer.io +// Submitted by Mostafa Elzeiny +*.azurecontainer.io azurewebsites.net azure-mobile.net cloudapp.net @@ -12431,12 +12453,13 @@ pcloud.host nyc.mn // NymNom : https://nymnom.com/ -// Submitted by Dave McCormack +// Submitted by NymNom nom.ae nom.af nom.ai nom.al nym.by +nom.bz nym.bz nom.cl nym.ec @@ -12458,6 +12481,7 @@ nom.li nym.li nym.lt nym.lu +nom.lv nym.me nom.mk nym.mn @@ -12565,6 +12589,12 @@ on-web.fr *.platform.sh *.platformsh.site +// Platter: https://platter.dev +// Submitted by Patrick Flor +platter-app.com +platter-app.dev +platterp.us + // Port53 : https://port53.io/ // Submitted by Maximilian Schieder dyn53.io @@ -12778,6 +12808,10 @@ static.land dev.static.land sites.static.land +// Sony Interactive Entertainment LLC : https://sie.com/ +// Submitted by David Coles +playstation-cloud.com + // SourceLair PC : https://www.sourcelair.com // Submitted by Antonis Kalipetis apps.lair.io @@ -12952,6 +12986,11 @@ inc.hk virtualuser.de virtual-user.de +// urown.net : https://urown.net +// Submitted by Hostmaster +urown.cloud +dnsupdate.info + // .US // Submitted by Ed Moore lib.de.us @@ -12995,8 +13034,10 @@ wedeploy.sh remotewd.com // Wikimedia Labs : https://wikitech.wikimedia.org -// Submitted by Yuvi Panda +// Submitted by Arturo Borrero Gonzalez wmflabs.org +toolforge.org +wmcloud.org // WoltLab GmbH : https://www.woltlab.com // Submitted by Tim Düsterhus @@ -13068,7 +13109,6 @@ bss.design // Submitted by Emil Stahl basicserver.io virtualserver.io -site.builder.nu enterprisecloud.nu // ===END PRIVATE DOMAINS=== From a98db48faf84bc011f36c0f5ca022f6e0fa11a16 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 5 Apr 2020 14:45:55 +0200 Subject: [PATCH 294/450] Release 4.0.3 --- CHANGELOG.md | 2 +- lib/public_suffix/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24053ac2..6e79a2e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). -## master +## 4.0.4 ### Changed diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 8f460a82..a8ed9030 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "4.0.3" + VERSION = "4.0.4" end From 8d034e34d77cbdbd5f0cc96c4f6a01331045f4e3 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 5 Apr 2020 14:48:49 +0200 Subject: [PATCH 295/450] Update Travis badge link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d250d945..12ec7a01 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](https://publicsuffix.org/). -[![Build Status](https://travis-ci.org/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.org/weppos/publicsuffix-ruby) +[![Build Status](https://travis-ci.com/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.com/weppos/publicsuffix-ruby) [![Tidelift dependencies](https://tidelift.com/badges/package/rubygems/public_suffix)](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=enterprise) From 6f650dad3dc69ac2e97578a182d20bba467ee4ff Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 7 Apr 2020 11:06:57 +0200 Subject: [PATCH 296/450] Create codecov.yml --- codecov.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 codecov.yml diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000..7ed2cca5 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,14 @@ +# https://docs.codecov.io/docs/coverage-configuration +coverage: + precision: 1 + round: down + +coverage: + status: + project: + default: false + patch: + default: false + +# https://docs.codecov.io/docs/pull-request-comments#section-requiring-changes +comment: off From 6465387297fb001b27a680fb5dd73d1d6b46281d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 9 May 2020 12:14:00 +0200 Subject: [PATCH 297/450] Update definitions --- CHANGELOG.md | 7 +++++++ data/list.txt | 44 ++++++++++++++++++++++++++++++++++++++------ 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e79a2e1..95244e80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## master + +### Changed + +- Updated definitions. + + ## 4.0.4 ### Changed diff --git a/data/list.txt b/data/list.txt index f02a2de1..9b3c983d 100644 --- a/data/list.txt +++ b/data/list.txt @@ -212,6 +212,7 @@ ac.at co.at gv.at or.at +sth.ac.at // au : https://en.wikipedia.org/wiki/.au // http://www.auda.org.au/ @@ -7091,7 +7092,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-04-02T18:20:31Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-05-06T16:23:34Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7240,7 +7241,7 @@ analytics // android : 2014-08-07 Charleston Road Registry Inc. android -// anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +// anquan : 2015-01-08 Beijing Qihu Keji Co., Ltd. anquan // anz : 2015-07-31 Australia and New Zealand Banking Group Limited @@ -9748,7 +9749,7 @@ shop // shopping : 2016-03-31 Binky Moon, LLC shopping -// shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +// shouji : 2015-01-08 Beijing Qihu Keji Co., Ltd. shouji // show : 2015-03-05 Binky Moon, LLC @@ -10312,7 +10313,7 @@ xerox // xfinity : 2015-07-09 Comcast IP Holdings I, LLC xfinity -// xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +// xihuan : 2015-01-08 Beijing Qihu Keji Co., Ltd. xihuan // xin : 2014-12-11 Elegant Leader Limited @@ -10633,7 +10634,7 @@ you // youtube : 2014-05-01 Charleston Road Registry Inc. youtube -// yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +// yun : 2015-01-08 Beijing Qihu Keji Co., Ltd. yun // zappos : 2015-06-25 Amazon Registry Services, Inc. @@ -10979,6 +10980,10 @@ cleverapps.io *.lcl.dev *.stg.dev +// Clic2000 : https://clic2000.fr +// Submitted by Mathilde Blanchemanche +clic2000.net + // Cloud66 : https://www.cloud66.com/ // Submitted by Khash Sajadi c66.me @@ -11094,6 +11099,10 @@ realm.cz // Submitted by Jonathan Rudenberg cupcake.is +// Curv UG : https://curv-labs.de/ +// Submitted by Marvin Wiesner +curv.dev + // Customer OCI - Oracle Dyn https://cloud.oracle.com/home https://dyn.com/dns/ // Submitted by Gregory Drake // Note: This is intended to also include customer-oci.com due to wildcards implicitly including the current label @@ -11129,6 +11138,10 @@ firm.dk reg.dk store.dk +// dappnode.io : https://dappnode.io/ +// Submitted by Abel Boldu / DAppNode Team +dyndns.dappnode.io + // dapps.earth : https://dapps.earth/ // Submitted by Daniil Burdakov *.dapps.earth @@ -11611,6 +11624,10 @@ twmail.org mymailer.com.tw url.tw +// Fabrica Technologies, Inc. : https://www.fabrica.dev/ +// Submitted by Eric Jiang +onfabrica.com + // Facebook, Inc. // Submitted by Peter Ruibal apps.fbsbx.com @@ -12062,8 +12079,9 @@ pixolino.com ipifony.net // IServ GmbH : https://iserv.eu -// Submitted by Kim-Alexander Brodowski +// Submitted by Kim-Alexander Brodowski mein-iserv.de +schulserver.de test-iserv.de iserv.dev @@ -12296,6 +12314,7 @@ nctu.me // Netlify : https://www.netlify.com // Submitted by Jessica Parsons bitballoon.com +netlify.app netlify.com // Neustar Inc. @@ -12776,6 +12795,10 @@ myshopblocks.com // Submitted by Craig McMahon shopitsite.com +// shopware AG : https://shopware.com +// Submitted by Jens Küper +shopware.store + // Siemens Mobility GmbH // Submitted by Oliver Graebner mo-siemens.io @@ -13039,6 +13062,11 @@ wmflabs.org toolforge.org wmcloud.org +// WISP : https://wisp.gg +// Submitted by Stepan Fedotov +panel.gg +daemon.panel.gg + // WoltLab GmbH : https://www.woltlab.com // Submitted by Tim Düsterhus myforum.community @@ -13111,4 +13139,8 @@ basicserver.io virtualserver.io enterprisecloud.nu +// Mintere : https://mintere.com/ +// Submitted by Ben Aubin +mintere.site + // ===END PRIVATE DOMAINS=== From db463e5f4285a0e7ff60637f3bbc10e9a7f7bbce Mon Sep 17 00:00:00 2001 From: Orien Madgwick <_@orien.io> Date: Sat, 9 May 2020 20:14:45 +1000 Subject: [PATCH 298/450] Add project metadata to the gemspec (#172) As per https://guides.rubygems.org/specification-reference/#metadata, add metadata to the gemspec file. This'll allow people to more easily access the source code, raise issues and read the changelog. These bug_tracker_uri, changelog_uri, documentation_uri, homepage_uri and source_code_uri links will appear on the rubygems page at https://rubygems.org/gems/public_suffix and be available via the rubygems API after the next release. --- public_suffix.gemspec | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/public_suffix.gemspec b/public_suffix.gemspec index 6a490861..ae552fc9 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -12,6 +12,14 @@ Gem::Specification.new do |s| s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." s.licenses = ["MIT"] + s.metadata = { + "bug_tracker_uri" => "https://github.com/weppos/publicsuffix-ruby/issues", + "changelog_uri" => "https://github.com/weppos/publicsuffix-ruby/blob/master/CHANGELOG.md", + "documentation_uri" => "https://rubydoc.info/gems/#{s.name}/#{s.version}", + "homepage_uri" => s.homepage, + "source_code_uri" => "https://github.com/weppos/publicsuffix-ruby/tree/v#{s.version}", + } + s.required_ruby_version = ">= 2.3" s.require_paths = ["lib"] From 8eb07f733a8965235c9c04f10408a5a0beacaae7 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 9 May 2020 12:24:04 +0200 Subject: [PATCH 299/450] Add CI workflow --- .github/workflows/tests.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..a995e871 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,26 @@ +name: Tests + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + + build: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v2 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.6 + + - name: Install dependencies + run: bundle install + + - name: Run tests + run: bundle exec rake From 8ce9f8ca2899424280746cedada3b5dacb4ac8df Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 9 May 2020 12:31:00 +0200 Subject: [PATCH 300/450] Update tests.yml --- .github/workflows/tests.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a995e871..be6716b6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,7 +9,16 @@ on: jobs: build: - runs-on: ubuntu-latest + strategy: + matrix: + ruby-version: + - "2.4" + - "2.5" + - "2.6" + - "2.7" + platform: [ubuntu-latest] + + runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v2 @@ -17,7 +26,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 2.6 + ruby-version: ${{ matrix.ruby-version }} - name: Install dependencies run: bundle install From 4fc6126de51eefd62027803fcc843877bdd90beb Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 9 May 2020 12:32:34 +0200 Subject: [PATCH 301/450] Update tests.yml --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index be6716b6..9515000d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,6 +12,7 @@ jobs: strategy: matrix: ruby-version: + - "2.3" - "2.4" - "2.5" - "2.6" From f0cc99e90a4ccfe2682e4f05d5888665c34d0b84 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sat, 9 May 2020 12:46:01 +0200 Subject: [PATCH 302/450] Release 4.0.5 --- CHANGELOG.md | 2 +- lib/public_suffix/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95244e80..96585863 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). -## master +## 4.0.5 ### Changed diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index a8ed9030..2d2003d9 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "4.0.4" + VERSION = "4.0.5" end From c101bd5ef6da1d400e7995ba09372291c73ae203 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Tue, 4 Aug 2020 05:49:46 -0700 Subject: [PATCH 303/450] Fix key duplication in codecov.yml (#175) --- codecov.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/codecov.yml b/codecov.yml index 7ed2cca5..b6959370 100644 --- a/codecov.yml +++ b/codecov.yml @@ -2,8 +2,6 @@ coverage: precision: 1 round: down - -coverage: status: project: default: false From 89c74b0446e2d267750b2c58307547fed6ff94c9 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 2 Sep 2020 11:21:34 +0200 Subject: [PATCH 304/450] Updated definitions --- data/list.txt | 390 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 312 insertions(+), 78 deletions(-) diff --git a/data/list.txt b/data/list.txt index 9b3c983d..9ca00ee5 100644 --- a/data/list.txt +++ b/data/list.txt @@ -258,7 +258,7 @@ tas.gov.au vic.gov.au wa.gov.au // 4LDs -education.tas.edu.au +// education.tas.edu.au - Removed at the request of the Department of Education Tasmania schools.nsw.edu.au // aw : https://en.wikipedia.org/wiki/.aw @@ -456,6 +456,7 @@ aju.br am.br anani.br aparecida.br +app.br arq.br art.br ato.br @@ -463,6 +464,7 @@ b.br barueri.br belem.br bhz.br +bib.br bio.br blog.br bmd.br @@ -477,14 +479,19 @@ cnt.br com.br contagem.br coop.br +coz.br cri.br cuiaba.br curitiba.br def.br +des.br +det.br +dev.br ecn.br eco.br edu.br emp.br +enf.br eng.br esp.br etc.br @@ -500,6 +507,7 @@ fot.br foz.br fst.br g12.br +geo.br ggf.br goiania.br gov.br @@ -543,6 +551,7 @@ jor.br jus.br leg.br lel.br +log.br londrina.br macapa.br maceio.br @@ -575,6 +584,7 @@ qsl.br radio.br rec.br recife.br +rep.br ribeirao.br rio.br riobranco.br @@ -585,6 +595,7 @@ santamaria.br santoandre.br saobernardo.br saogonca.br +seg.br sjc.br slg.br slz.br @@ -592,6 +603,7 @@ sorocaba.br srv.br taxi.br tc.br +tec.br teo.br the.br tmp.br @@ -1002,6 +1014,10 @@ pro.fj *.fk // fm : https://en.wikipedia.org/wiki/.fm +com.fm +edu.fm +net.fm +org.fm fm // fo : https://en.wikipedia.org/wiki/.fo @@ -1041,6 +1057,8 @@ ga gb // gd : https://en.wikipedia.org/wiki/.gd +edu.gd +gov.gd gd // ge : http://www.nic.net.ge/policy_en.pdf @@ -3785,7 +3803,7 @@ gov.lc // li : https://en.wikipedia.org/wiki/.li li -// lk : http://www.nic.lk/seclevpr.html +// lk : https://www.nic.lk/index.php/domain-registration/lk-domain-naming-structure lk gov.lk sch.lk @@ -6327,7 +6345,6 @@ cv.ua dn.ua dnepropetrovsk.ua dnipropetrovsk.ua -dominic.ua donetsk.ua dp.ua if.ua @@ -6919,11 +6936,11 @@ yt қаз // xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK -// http://nic.lk +// https://nic.lk ලංකා // xn--xkc2al3hye2a ("Ilangai", Tamil) : LK -// http://nic.lk +// https://nic.lk இலங்கை // xn--mgbc0a9azcg ("Morocco/al-Maghrib", Arabic) : MA @@ -7092,7 +7109,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-05-06T16:23:34Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-08-07T17:16:50Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7175,9 +7192,6 @@ agency // aig : 2014-12-18 American International Group, Inc. aig -// aigo : 2015-08-06 aigo Digital Technology Co,Ltd. -aigo - // airbus : 2015-07-30 Airbus S.A.S. airbus @@ -7301,7 +7315,7 @@ audi // audible : 2015-06-25 Amazon Registry Services, Inc. audible -// audio : 2014-03-20 Uniregistry, Corp. +// audio : 2014-03-20 UNR Corp. audio // auspost : 2015-08-13 Australian Postal Corporation @@ -7310,7 +7324,7 @@ auspost // author : 2014-12-18 Amazon Registry Services, Inc. author -// auto : 2014-11-13 Cars Registry Limited +// auto : 2014-11-13 XYZ.COM LLC auto // autos : 2014-01-09 DERAutos, LLC @@ -7439,7 +7453,7 @@ bio // black : 2014-01-16 Afilias Limited black -// blackfriday : 2014-01-16 Uniregistry, Corp. +// blackfriday : 2014-01-16 UNR Corp. blackfriday // blockbuster : 2015-07-30 Dish DBS Corporation @@ -7586,7 +7600,7 @@ capital // capitalone : 2015-08-06 Capital One Financial Corporation capitalone -// car : 2015-01-22 Cars Registry Limited +// car : 2015-01-22 XYZ.COM LLC car // caravan : 2013-12-12 Caravan International, Inc. @@ -7604,7 +7618,7 @@ career // careers : 2013-10-02 Binky Moon, LLC careers -// cars : 2014-11-13 Cars Registry Limited +// cars : 2014-11-13 XYZ.COM LLC cars // casa : 2013-11-21 Minds + Machines Group Limited @@ -7679,7 +7693,7 @@ cheap // chintai : 2015-06-11 CHINTAI Corporation chintai -// christmas : 2013-11-21 Uniregistry, Corp. +// christmas : 2013-11-21 UNR Corp. christmas // chrome : 2014-07-24 Charleston Road Registry Inc. @@ -7718,7 +7732,7 @@ claims // cleaning : 2013-12-05 Binky Moon, LLC cleaning -// click : 2014-06-05 Uniregistry, Corp. +// click : 2014-06-05 UNR Corp. click // clinic : 2014-03-20 Binky Moon, LLC @@ -7931,7 +7945,7 @@ dhl // diamonds : 2013-09-22 Binky Moon, LLC diamonds -// diet : 2014-06-26 Uniregistry, Corp. +// diet : 2014-06-26 UNR Corp. diet // digital : 2014-03-06 Binky Moon, LLC @@ -8054,9 +8068,6 @@ esq // estate : 2013-08-27 Binky Moon, LLC estate -// esurance : 2015-07-23 Esurance Insurance Company -esurance - // etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) etisalat @@ -8171,7 +8182,7 @@ fit // fitness : 2014-03-06 Binky Moon, LLC fitness -// flickr : 2015-04-02 Yahoo! Domain Services Inc. +// flickr : 2015-04-02 Flickr, Inc. flickr // flights : 2013-12-05 Binky Moon, LLC @@ -8183,7 +8194,7 @@ flir // florist : 2013-11-07 Binky Moon, LLC florist -// flowers : 2014-10-09 Uniregistry, Corp. +// flowers : 2014-10-09 UNR Corp. flowers // fly : 2014-05-08 Charleston Road Registry Inc. @@ -8273,7 +8284,7 @@ gallo // gallup : 2015-02-19 Gallup, Inc. gallup -// game : 2015-05-28 Uniregistry, Corp. +// game : 2015-05-28 UNR Corp. game // games : 2015-05-28 Dog Beach, LLC @@ -8411,7 +8422,7 @@ guge // guide : 2013-09-13 Binky Moon, LLC guide -// guitars : 2013-11-14 Uniregistry, Corp. +// guitars : 2013-11-14 UNR Corp. guitars // guru : 2013-08-27 Binky Moon, LLC @@ -8444,7 +8455,7 @@ health // healthcare : 2014-06-12 Binky Moon, LLC healthcare -// help : 2014-06-26 Uniregistry, Corp. +// help : 2014-06-26 UNR Corp. help // helsinki : 2015-02-05 City of Helsinki @@ -8459,7 +8470,7 @@ hermes // hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc. hgtv -// hiphop : 2014-03-06 Uniregistry, Corp. +// hiphop : 2014-03-06 UNR Corp. hiphop // hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc. @@ -8468,7 +8479,7 @@ hisamitsu // hitachi : 2014-10-31 Hitachi, Ltd. hitachi -// hiv : 2014-03-13 Uniregistry, Corp. +// hiv : 2014-03-13 UNR Corp. hiv // hkt : 2015-05-14 PCCW-HKT DataCom Services Limited @@ -8507,7 +8518,7 @@ hospital // host : 2014-04-17 DotHost Inc. host -// hosting : 2014-05-29 Uniregistry, Corp. +// hosting : 2014-05-29 UNR Corp. hosting // hot : 2015-08-27 Amazon Registry Services, Inc. @@ -8681,7 +8692,7 @@ jpmorgan // jprs : 2014-09-18 Japan Registry Services Co., Ltd. jprs -// juegos : 2014-03-20 Uniregistry, Corp. +// juegos : 2014-03-20 UNR Corp. juegos // juniper : 2015-07-30 JUNIPER NETWORKS, INC. @@ -8792,7 +8803,7 @@ law // lawyer : 2014-03-20 Dog Beach, LLC lawyer -// lds : 2014-03-20 IRI Domain Management, LLC ("Applicant") +// lds : 2014-03-20 IRI Domain Management, LLC lds // lease : 2014-03-06 Binky Moon, LLC @@ -8849,7 +8860,7 @@ lincoln // linde : 2014-12-04 Linde Aktiengesellschaft linde -// link : 2013-11-14 Uniregistry, Corp. +// link : 2013-11-14 UNR Corp. link // lipsy : 2015-06-25 Lipsy Ltd @@ -8867,7 +8878,7 @@ lixil // llc : 2017-12-14 Afilias Limited llc -// llp : 2019-08-26 Dot Registry LLC +// llp : 2019-08-26 UNR Corp. llp // loan : 2014-11-20 dot Loan Limited @@ -8885,7 +8896,7 @@ locus // loft : 2015-07-30 Annco, Inc. loft -// lol : 2015-01-30 Uniregistry, Corp. +// lol : 2015-01-30 UNR Corp. lol // london : 2013-11-14 Dot London Domains Limited @@ -9047,7 +9058,7 @@ moe // moi : 2014-12-18 Amazon Registry Services, Inc. moi -// mom : 2015-04-16 Uniregistry, Corp. +// mom : 2015-04-16 UNR Corp. mom // monash : 2013-09-30 Monash University @@ -9059,7 +9070,7 @@ money // monster : 2015-09-11 XYZ.COM LLC monster -// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") +// mormon : 2013-12-05 IRI Domain Management, LLC mormon // mortgage : 2014-03-20 Dog Beach, LLC @@ -9122,7 +9133,7 @@ netflix // network : 2013-11-14 Binky Moon, LLC network -// neustar : 2013-12-05 Registry Services, LLC +// neustar : 2013-12-05 NeuStar, Inc. neustar // new : 2014-01-30 Charleston Road Registry Inc. @@ -9323,7 +9334,7 @@ philips // phone : 2016-06-02 Dish DBS Corporation phone -// photo : 2013-11-14 Uniregistry, Corp. +// photo : 2013-11-14 UNR Corp. photo // photography : 2013-09-20 Binky Moon, LLC @@ -9335,7 +9346,7 @@ photos // physio : 2014-05-01 PhysBiz Pty Ltd physio -// pics : 2013-11-14 Uniregistry, Corp. +// pics : 2013-11-14 UNR Corp. pics // pictet : 2014-06-26 Pictet Europe S.A. @@ -9422,7 +9433,7 @@ promo // properties : 2013-12-05 Binky Moon, LLC properties -// property : 2014-05-22 Uniregistry, Corp. +// property : 2014-05-22 UNR Corp. property // protection : 2015-04-23 XYZ.COM LLC @@ -9542,9 +9553,6 @@ richardli // ricoh : 2014-11-20 Ricoh Company, Ltd. ricoh -// rightathome : 2015-07-23 Johnson Shareholdings, Inc. -rightathome - // ril : 2015-04-02 Reliance Industries Limited ril @@ -9674,9 +9682,6 @@ science // scjohnson : 2015-07-23 Johnson Shareholdings, Inc. scjohnson -// scor : 2014-10-31 SCOR SE -scor - // scot : 2014-01-23 Dot Scot Registry Limited scot @@ -9716,7 +9721,7 @@ sew // sex : 2014-11-13 ICM Registry SX LLC sex -// sexy : 2013-09-11 Uniregistry, Corp. +// sexy : 2013-09-11 UNR Corp. sexy // sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR @@ -9920,9 +9925,6 @@ swiss // sydney : 2014-09-18 State of New South Wales, Department of Premier and Cabinet sydney -// symantec : 2014-12-04 Symantec Corporation -symantec - // systems : 2013-11-07 Binky Moon, LLC systems @@ -9947,7 +9949,7 @@ tatamotors // tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" tatar -// tattoo : 2013-08-30 Uniregistry, Corp. +// tattoo : 2013-08-30 UNR Corp. tattoo // tax : 2014-03-20 Binky Moon, LLC @@ -10076,7 +10078,7 @@ travelers // travelersinsurance : 2015-03-26 Travelers TLD, LLC travelersinsurance -// trust : 2014-10-16 NCC Group Inc. +// trust : 2014-10-16 NCC Group Domain Services, Inc. trust // trv : 2015-03-26 Travelers TLD, LLC @@ -10490,9 +10492,6 @@ xin // xn--kcrx77d1x4a : 2014-11-07 Koninklijke Philips N.V. 飞利浦 -// xn--kpu716f : 2014-12-22 Richemont DNS Inc. -手表 - // xn--kput3i : 2014-02-13 Beijing RITT-Net Technology Development Co., Ltd 手机 @@ -10547,9 +10546,6 @@ xin // xn--p1acf : 2013-12-12 Rusnames Limited рус -// xn--pbt977c : 2014-12-22 Richemont DNS Inc. -珠宝 - // xn--pssy2u : 2015-01-15 VeriSign Sarl 大拿 @@ -10666,6 +10662,9 @@ cc.ua inf.ua ltd.ua +// 611coin : https://611project.org/ +611.to + // Adobe : https://www.adobe.com/ // Submitted by Ian Boston adobeaemcloud.com @@ -10685,6 +10684,16 @@ barsy.ca *.compute.estate *.alces.network +// all-inkl.com : https://all-inkl.com +// Submitted by Werner Kaltofen +kasserver.com + +// Algorithmia, Inc. : algorithmia.com +// Submitted by Eli Perelman +*.algorithmia.com +!teams.algorithmia.com +!test.algorithmia.com + // Altervista: https://www.altervista.org // Submitted by Carlo Cannas altervista.org @@ -10849,8 +10858,11 @@ backplaneapp.io balena-devices.com // Banzai Cloud -// Submitted by Gabor Kozma +// Submitted by Janos Matyas +*.banzai.cloud app.banzaicloud.io +*.backyards.banzaicloud.io + // BetaInABox // Submitted by Adrian @@ -10904,33 +10916,36 @@ uwu.ai // CentralNic : http://www.centralnic.com/names/domains // Submitted by registry ae.org -ar.com br.com cn.com com.de com.se de.com eu.com -gb.com gb.net -hu.com hu.net jp.net jpn.com -kr.com mex.com -no.com -qc.com ru.com sa.com se.net uk.com uk.net us.com -uy.com za.bz za.com +// No longer operated by CentralNic, these entries should be adopted and/or removed by current operators +// Submitted by Gavin Brown +ar.com +gb.com +hu.com +kr.com +no.com +qc.com +uy.com + // Africa.com Web Solutions Ltd : https://registry.africa.com // Submitted by Gavin Brown africa.com @@ -10942,6 +10957,7 @@ gr.com // Radix FZC : http://domains.in.net // Submitted by Gavin Brown in.net +web.in // US REGISTRY LLC : http://us.org // Submitted by Gavin Brown @@ -10951,6 +10967,21 @@ us.org // Submitted by Gavin Brown co.com +// Roar Domains LLC : https://roar.basketball/ +// Submitted by Gavin Brown +aus.basketball +nz.basketball + +// BRS Media : https://brsmedia.com/ +// Submitted by Gavin Brown +radio.am +radio.fm + +// Globe Hosting SRL : https://www.globehosting.com/ +// Submitted by Gavin Brown +co.ro +shop.ro + // c.la : http://www.c.la/ c.la @@ -11116,6 +11147,12 @@ curv.dev cyon.link cyon.site +// Danger Science Group: https://dangerscience.com/ +// Submitted by Skylar MacDonald +fnwk.site +folionetwork.site +platform0.app + // Daplie, Inc : https://daplie.com // Submitted by AJ ONeal daplie.me @@ -11163,6 +11200,10 @@ debian.net // Submitted by Peter Thomassen dedyn.io +// DNS Africa Ltd https://dns.business +// Submitted by Calvin Browne +jozi.biz + // DNShome : https://www.dnshome.de/ // Submitted by Norbert Auler dnshome.de @@ -11193,6 +11234,9 @@ drud.us // Submitted by Richard Harper duckdns.org +// bitbridge.net : Submitted by Craig Welch, abeliidev@gmail.com +bitbridge.net + // dy.fi : http://dy.fi/ // Submitted by Heikki Hannikainen dy.fi @@ -11728,12 +11772,11 @@ global.ssl.fastly.net // FASTVPS EESTI OU : https://fastvps.ru/ // Submitted by Likhachev Vasiliy -fastpanel.direct fastvps-server.com -myfast.space +fastvps.host myfast.host fastvps.site -fastvps.host +myfast.space // Featherhead : https://featherhead.xyz/ // Submitted by Simon Menke @@ -11772,6 +11815,12 @@ filegear-sg.me // Submitted by Chris Raynor firebaseapp.com +// fly.io: https://fly.io +// Submitted by Kurt Mackey +fly.dev +edgeapp.net +shw.io + // Flynn : https://flynn.io // Submitted by Jonathan Rudenberg flynnhosting.net @@ -11793,6 +11842,10 @@ freeboxos.fr // Submitted by Daniel Stone freedesktop.org +// FunkFeuer - Verein zur Förderung freier Netze : https://www.funkfeuer.at +// Submitted by Daniel A. Maierhofer +wien.funkfeuer.at + // Futureweb OG : http://www.futureweb.at // Submitted by Andreas Schnederle-Wagner *.futurecms.at @@ -11816,6 +11869,7 @@ usercontent.jp // Gentlent, Inc. : https://www.gentlent.com // Submitted by Tom Klein gentapps.com +gentlentapis.com lab.ms // GitHub, Inc. @@ -11827,6 +11881,10 @@ githubusercontent.com // Submitted by Alex Hanselka gitlab.io +// Gitplac.si - https://gitplac.si +// Submitted by Aljaž Starc +gitpage.si + // Glitch, Inc : https://glitch.com // Submitted by Mads Hartmann glitch.me @@ -11840,6 +11898,10 @@ lolipop.io cloudapps.digital london.cloudapps.digital +// GOV.UK Pay : https://www.payments.service.gov.uk/ +// Submitted by Richard Baker +pymnt.uk + // UKHomeOffice : https://www.gov.uk/government/organisations/home-office // Submitted by Jon Shanks homeoffice.gov.uk @@ -11847,7 +11909,6 @@ homeoffice.gov.uk // GlobeHosting, Inc. // Submitted by Zoltan Egresi ro.im -shop.ro // GoIP DNS Services : http://www.goip.de // Submitted by Christian Poulter @@ -12006,6 +12067,9 @@ ngo.ng ng.school sch.so +// HostyHosting (hostyhosting.com) +hostyhosting.io + // Häkkinen.fi // Submitted by Eero Häkkinen häkkinen.fi @@ -12074,6 +12138,10 @@ to.leg.br // Submitted by Wolfgang Schwarz pixolino.com +// Internet-Pro, LLP: https://netangels.ru/ +// Submited by Vasiliy Sheredeko +na4u.ru + // IPiFony Systems, Inc. : https://www.ipifony.com/ // Submitted by Matthew Hardeman ipifony.net @@ -12089,6 +12157,32 @@ iserv.dev // Submitted by Yuji Minagawa iobb.net +//Jelastic, Inc. : https://jelastic.com/ +// Submited by Ihor Kolodyuk +appengine.flow.ch +vip.jelastic.cloud +jele.cloud +jele.club +dopaas.com +hidora.com +jcloud.ik-server.com +demo.jelastic.com +paas.massivegrid.com +j.scaleforce.com.cy +jelastic.dogado.eu +fi.cloudplatform.fi +paas.datacenter.fi +jele.host +mircloud.host +jele.io +cloudjiffy.net +jls-sto1.elastx.net +jelastic.saveincloud.net +jelastic.regruhosting.ru +jele.site +jelastic.team +j.layershift.co.uk + // Jino : https://www.jino.ru // Submitted by Sergey Ulyashin myjino.ru @@ -12174,7 +12268,8 @@ linkyard-cloud.ch // Linode : https://linode.com // Submitted by members.linode.com -nodebalancer.linode.com +*.nodebalancer.linode.com +*.linodeobjects.com // LiquidNet Ltd : http://www.liquidnetlimited.com/ // Submitted by Victor Velchev @@ -12243,6 +12338,15 @@ mayfirst.org // Submitted by Ilya Zaretskiy hb.cldmail.ru +// mcpe.me : https://mcpe.me +// Submitted by Noa Heyl +mcpe.me + +// McHost : https://mchost.ru +// Submitted by Evgeniy Subbotin +mcdir.ru +vps.mcdir.ru + // Memset hosting : https://www.memset.com // Submitted by Tom Whitwell miniserver.com @@ -12250,7 +12354,7 @@ memset.net // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ // Submitted by Zdeněk Šustr -cloud.metacentrum.cz +*.cloud.metacentrum.cz custom.metacentrum.cz // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ @@ -12273,6 +12377,14 @@ azurewebsites.net azure-mobile.net cloudapp.net +// minion.systems : http://minion.systems +// Submitted by Robert Böttinger +csx.cc + +// MobileEducation, LLC : https://joinforte.com +// Submitted by Grayson Martin +forte.id + // Mozilla Corporation : https://mozilla.com // Submitted by Ben Francis mozilla-iot.org @@ -12287,6 +12399,19 @@ net.ru org.ru pp.ru +// Mythic Beasts : https://www.mythic-beasts.com +// Submitted by Paul Cammish +hostedpi.com +customer.mythic-beasts.com +lynx.mythic-beasts.com +ocelot.mythic-beasts.com +onza.mythic-beasts.com +sphinx.mythic-beasts.com +vs.mythic-beasts.com +x.mythic-beasts.com +yali.mythic-beasts.com +cust.retrosnub.co.uk + // Nabu Casa : https://www.nabucasa.com // Submitted by Paulus Schoutsen ui.nabu.casa @@ -12313,9 +12438,7 @@ nctu.me // Netlify : https://www.netlify.com // Submitted by Jessica Parsons -bitballoon.com netlify.app -netlify.com // Neustar Inc. // Submitted by Trung Tran @@ -12533,14 +12656,26 @@ static.observableusercontent.com // Submitted by Andrew Sampson cya.gg +// OMG.LOL : +// Submitted by Adam Newbold +omg.lol + // Omnibond Systems, LLC. : https://www.omnibond.com // Submitted by Cole Estep cloudycluster.net +// OmniWe Limited: https://omniwe.com +// Submitted by Vicary Archangel +omniwe.site + // One Fold Media : http://www.onefoldmedia.com/ // Submitted by Eddie Jones nid.io +// Open Social : https://www.getopensocial.com/ +// Submitted by Alexander Varwijk +opensocial.site + // OpenCraft GmbH : http://opencraft.com/ // Submitted by Sven Marnach opencraft.hosting @@ -12562,6 +12697,10 @@ outsystemscloud.com ownprovider.com own.pm +// OwO : https://whats-th.is/ +// Submitted by Dean Sheather +*.owo.codes + // OX : http://www.ox.rs // Submitted by Adam Grand ox.rs @@ -12578,6 +12717,17 @@ pgfog.com // Submitted by Jason Kriss pagefrontapp.com +// PageXL : https://pagexl.com +// Submitted by Yann Guichard +pagexl.com + +// pcarrier.ca Software Inc: https://pcarrier.ca/ +// Submitted by Pierre Carrier +bar0.net +bar1.net +bar2.net +rdv.to + // .pl domains (grandfathered) art.pl gliwice.pl @@ -12605,7 +12755,10 @@ on-web.fr // Platform.sh : https://platform.sh // Submitted by Nikola Kotur -*.platform.sh +bc.platform.sh +ent.platform.sh +eu.platform.sh +us.platform.sh *.platformsh.site // Platter: https://platter.dev @@ -12614,6 +12767,12 @@ platter-app.com platter-app.dev platterp.us +// Plesk : https://www.plesk.com/ +// Submitted by Anton Akhtyamov +pdns.page +plesk.page +pleskns.com + // Port53 : https://port53.io/ // Submitted by Maximilian Schieder dyn53.io @@ -12696,6 +12855,10 @@ vaporcloud.io rackmaze.com rackmaze.net +// Rakuten Games, Inc : https://dev.viberplay.io +// Submitted by Joshua Zhang +g.vbrplsbx.io + // Rancher Labs, Inc : https://rancher.com // Submitted by Vincent Fiduccia *.on-k3s.io @@ -12773,6 +12936,10 @@ my-firewall.org myfirewall.org spdns.org +// Seidat : https://www.seidat.com +// Submitted by Artem Kondratev +seidat.net + // Senseering GmbH : https://www.senseering.de // Submitted by Felix Mönckemeyer senseering.net @@ -12821,6 +12988,10 @@ bounty-full.com alpha.bounty-full.com beta.bounty-full.com +// Small Technology Foundation : https://small-tech.org +// Submitted by Aral Balkan +small-web.org + // Stackhero : https://www.stackhero.io // Submitted by Adrien Gillon stackhero-network.com @@ -12933,6 +13104,8 @@ cust.dev.thingdust.io cust.disrec.thingdust.io cust.prod.thingdust.io cust.testing.thingdust.io +*.firenet.ch +*.svc.firenet.ch // Tlon.io : https://tlon.io // Submitted by Mark Staarink @@ -13022,6 +13195,12 @@ lib.de.us // Submitted by Danko Aleksejevs 2038.io +// Vercel, Inc : https://vercel.com/ +// Submitted by Connor Davis +vercel.app +vercel.dev +now.sh + // Viprinet Europe GmbH : http://www.viprinet.com // Submitted by Simon Kissel router.management @@ -13034,6 +13213,49 @@ v-info.info // Submitted by Nathan van Bakel voorloper.cloud +// Voxel.sh DNS : https://voxel.sh/dns/ +// Submitted by Mia Rehlinger +neko.am +nyaa.am +be.ax +cat.ax +es.ax +eu.ax +gg.ax +mc.ax +us.ax +xy.ax +nl.ci +xx.gl +app.gp +blog.gt +de.gt +to.gt +be.gy +cc.hn +blog.kg +io.kg +jp.kg +tv.kg +uk.kg +us.kg +de.ls +at.md +de.md +jp.md +to.md +uwu.nu +indie.porn +vxl.sh +ch.tc +me.tc +we.tc +nyan.to +at.vg +blog.vu +dev.vu +me.vu + // V.UA Domain Administrator : https://domain.v.ua/ // Submitted by Serhii Rostilo v.ua @@ -13056,6 +13278,10 @@ wedeploy.sh // Submitted by Jung Jin remotewd.com +// WIARD Enterprises : https://wiardweb.com +// Submitted by Kidd Hustle +pages.wiardweb.com + // Wikimedia Labs : https://wikitech.wikimedia.org // Submitted by Arturo Borrero Gonzalez wmflabs.org @@ -13075,6 +13301,10 @@ diskussionsbereich.de community-pro.net meinforum.net +// www.com.vc : http://www.com.vc +// Submitted by Li Hui +cn.vu + // XenonCloud GbR: https://xenoncloud.net // Submitted by Julian Uphoff half.host @@ -13125,10 +13355,6 @@ noho.st za.net za.org -// Zeit, Inc. : https://zeit.domains/ -// Submitted by Olli Vanhoja -now.sh - // Zine EOOD : https://zine.bg/ // Submitted by Martin Angelov bss.design @@ -13143,4 +13369,12 @@ enterprisecloud.nu // Submitted by Ben Aubin mintere.site +// WP Engine : https://wpengine.com/ +// Submitted by Michael Smith +wpenginepowered.com + +// Impertrix Solutions : +// Submitted by Zhixiang Zhao +impertrixcdn.com +impertrix.com // ===END PRIVATE DOMAINS=== From c61d25e6e3155a879a0536706e7a7e62806ba1f9 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 2 Sep 2020 11:24:44 +0200 Subject: [PATCH 305/450] Update rubocop --- .rubocop_opinionated.yml | 19 +------------------ Gemfile | 2 +- test/psl_test.rb | 2 +- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/.rubocop_opinionated.yml b/.rubocop_opinionated.yml index f80a439b..401e684d 100644 --- a/.rubocop_opinionated.yml +++ b/.rubocop_opinionated.yml @@ -5,6 +5,7 @@ AllCops: # Exclude vendored folders - 'tmp/**/*' - 'vendor/**/*' + NewCops: enable # [codesmell] Layout/LineLength: @@ -154,21 +155,3 @@ Style/TrivialAccessors: # end # IgnoreClassMethods: true - -# New cops -# See https://docs.rubocop.org/en/latest/versioning/ - -Lint/RaiseException: - Enabled: true - -Lint/StructNewOverride: - Enabled: true - -Style/HashEachMethods: - Enabled: true - -Style/HashTransformKeys: - Enabled: true - -Style/HashTransformValues: - Enabled: true diff --git a/Gemfile b/Gemfile index b1b7333b..6ae68163 100644 --- a/Gemfile +++ b/Gemfile @@ -11,5 +11,5 @@ gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" gem "mocha" -gem "rubocop", "0.81.0", require: false +gem "rubocop", "~>0.90", require: false gem "yard" diff --git a/test/psl_test.rb b/test/psl_test.rb index 20dc79a9..fae398f7 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -38,7 +38,7 @@ def test_valid failures = [] self.class.tests.each do |input, output| # Punycode domains are not supported ATM - next if input =~ /xn\-\-/ + next if input =~ /xn--/ domain = PublicSuffix.domain(input) rescue nil failures << [input, output, domain] if output != domain From e3eedfd7cc06573ae85d8597dd4bd46c893d851d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 2 Sep 2020 11:26:17 +0200 Subject: [PATCH 306/450] Ignore rubocop cop --- test/acceptance_test.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 2be719d7..371bfe13 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -96,6 +96,7 @@ def test_ignore_case ["subdomain.blogspot.com", false, "subdomain.blogspot.com"], ].freeze + # rubocop:disable Style/CombinableLoops def test_ignore_private # test domain and parse INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| @@ -110,6 +111,7 @@ def test_ignore_private assert_equal !expected.nil?, PublicSuffix.valid?(given, ignore_private: ignore_private) end end + # rubocop:enable Style/CombinableLoops def valid_uri?(name) From a302119cd731ab490f321abfa7a2f9b168ad55cf Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 2 Sep 2020 11:29:33 +0200 Subject: [PATCH 307/450] Last release with 2.3 Prepare to remove 2.3. Some depds already no longer support it. This version will support it (without tests), then I'll prepare for a major bump and 2.3 removal. --- .github/workflows/tests.yml | 2 +- .travis.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9515000d..2de90583 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: ruby-version: - - "2.3" + # - "2.3" - "2.4" - "2.5" - "2.6" diff --git a/.travis.yml b/.travis.yml index 7a0526a7..30f78e82 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: ruby rvm: - - 2.3 + # - 2.3 - 2.4 - 2.5 - 2.6 From 2e0bee34176f902b416796d6dbc5a03c670e0a98 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 2 Sep 2020 11:26:40 +0200 Subject: [PATCH 308/450] Release 4.0.6 --- CHANGELOG.md | 7 +++++++ lib/public_suffix/version.rb | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96585863..4861d623 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## 4.0.6 + +### Changed + +- Updated definitions. + + ## 4.0.5 ### Changed diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 2d2003d9..c9f93f10 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,5 +9,5 @@ module PublicSuffix # The current library version. - VERSION = "4.0.5" + VERSION = "4.0.6" end From 0898e5a48ad0b1c604c2cc14bfe9a393dce180ad Mon Sep 17 00:00:00 2001 From: Christine Seeman <39634128+cseeman@users.noreply.github.com> Date: Wed, 2 Sep 2020 04:39:50 -0500 Subject: [PATCH 309/450] Add definitions section to README.md (#176) There are several acronyms used throughout this README file that would benefit from more information on them to put the code example and usage into better context, and allow a developer to just stay on this page without having to further search for these definitions. A section at the bottom has been added for definitions. --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 12ec7a01..17708edf 100644 --- a/README.md +++ b/README.md @@ -205,3 +205,13 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. Copyright (c) 2009-2020 Simone Carletti. This is Free Software distributed under the MIT license. The [Public Suffix List source](https://publicsuffix.org/list/) is subject to the terms of the Mozilla Public License, v. 2.0. + +## Definitions + +tld = Top level domain, this is in reference to the last segment of a domain, sometimes the part that is directly after the "dot" symbol. For example, `mozilla.org`, the `.org` portion is the tld. + +sld = Second level domain, a domain that is directly below a top-level domain. For example, in `https://www.mozilla.org/en-US/`, `mozilla` is the second-level domain of the .org tld. + +trd = Transit routing domain, or known as a subdomain. This is the part of the domain that is before the sld or root domain. For example, in `https://www.mozilla.org/en-US/`, `www` is the trd. + +FQDN = Fully Qualified Domain Names, are domain names that are written with the hostname and the domain name, and include the top-level domain, the format looks like `[hostname].[domain].[tld].` for ex. `[www].[mozilla].[org]`. From ba72b15aca34e3444eaf9a2341d9176d883c02b9 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 30 Sep 2020 09:03:54 +0200 Subject: [PATCH 310/450] Disable Lint/ConstantDefinitionInBlock in specs --- .rubocop_opinionated.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.rubocop_opinionated.yml b/.rubocop_opinionated.yml index 401e684d..25775f99 100644 --- a/.rubocop_opinionated.yml +++ b/.rubocop_opinionated.yml @@ -15,6 +15,11 @@ Layout/LineLength: - 'test/**/*_test.rb' Max: 100 +Lint/ConstantDefinitionInBlock: + Exclude: + - 'spec/**/*' + - 'test/**/*' + # [codesmell] Metrics/AbcSize: Enabled: false From 6fa975174410f64942559026d027621d1b837753 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 30 Sep 2020 09:05:23 +0200 Subject: [PATCH 311/450] Disable Lint/ConstantDefinitionInBlock in Rakefile --- .rubocop_opinionated.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.rubocop_opinionated.yml b/.rubocop_opinionated.yml index 25775f99..761e2c7d 100644 --- a/.rubocop_opinionated.yml +++ b/.rubocop_opinionated.yml @@ -17,6 +17,7 @@ Layout/LineLength: Lint/ConstantDefinitionInBlock: Exclude: + - 'Rakefile' - 'spec/**/*' - 'test/**/*' From d6c251aad4f6daf0d41dea9d921b1faa1bdb8849 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 6 Jan 2021 16:49:22 +0100 Subject: [PATCH 312/450] Create Dependabot config file (#178) Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: Simone Carletti --- .github/dependabot.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..1dbbb9ac --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: bundler + directory: "/" + schedule: + interval: daily + time: "04:00" + open-pull-requests-limit: 10 From c4c301231549f98b53bd987c9398b3a366aad815 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 6 Jan 2021 16:52:07 +0100 Subject: [PATCH 313/450] Use instance_of? instead of comparing classes --- lib/public_suffix/list.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 321b59a7..dc34f1a0 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -173,7 +173,7 @@ def clear # @return [PublicSuffix::Rule::*] def find(name, default: default_rule, **options) rule = select(name, **options).inject do |l, r| - return r if r.class == Rule::Exception + return r if r.instance_of?(Rule::Exception) l.length > r.length ? l : r end From db76aea35c5e10f4ec64f082f5b5b48d79210f65 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 30 Apr 2021 15:21:30 +0200 Subject: [PATCH 314/450] Disable Coverage --- .travis.yml | 3 - Gemfile | 1 - codecov.yml | 12 - data/list.txt | 608 ++++++++++++++++++++++++++++++++------------ test/test_helper.rb | 8 - 5 files changed, 451 insertions(+), 181 deletions(-) delete mode 100644 codecov.yml diff --git a/.travis.yml b/.travis.yml index 30f78e82..082548b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,9 +8,6 @@ rvm: - 2.7 - ruby-head -env: - - COVERAGE=1 - cache: - bundler diff --git a/Gemfile b/Gemfile index 6ae68163..8c679696 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,6 @@ gemspec gem "rake" -gem "codecov", require: false gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index b6959370..00000000 --- a/codecov.yml +++ /dev/null @@ -1,12 +0,0 @@ -# https://docs.codecov.io/docs/coverage-configuration -coverage: - precision: 1 - round: down - status: - project: - default: false - patch: - default: false - -# https://docs.codecov.io/docs/pull-request-comments#section-requiring-changes -comment: off diff --git a/data/list.txt b/data/list.txt index 9ca00ee5..bed1e1e0 100644 --- a/data/list.txt +++ b/data/list.txt @@ -907,16 +907,18 @@ org.do sld.do web.do -// dz : https://en.wikipedia.org/wiki/.dz +// dz : http://www.nic.dz/images/pdf_nic/charte.pdf dz +art.dz +asso.dz com.dz +edu.dz +gov.dz org.dz net.dz -gov.dz -edu.dz -asso.dz pol.dz -art.dz +soc.dz +tm.dz // ec : http://www.nic.ec/reg/paso1.asp // Submitted by registry @@ -1150,7 +1152,7 @@ gov.gr // gs : https://en.wikipedia.org/wiki/.gs gs -// gt : http://www.gt/politicas_de_registro.html +// gt : https://www.gt/sitio/registration_policy.php?lang=en gt com.gt edu.gt @@ -4592,15 +4594,17 @@ gob.mx edu.mx net.mx -// my : http://www.mynic.net.my/ +// my : http://www.mynic.my/ +// Available strings: https://mynic.my/resources/domains/buying-a-domain/ my +biz.my com.my -net.my -org.my -gov.my edu.my +gov.my mil.my name.my +net.my +org.my // mz : http://www.uem.mz/ // Submitted by registry @@ -4697,13 +4701,13 @@ web.ni // ccTLD for the Netherlands nl -// no : http://www.norid.no/regelverk/index.en.html -// The Norwegian registry has declined to notify us of updates. The web pages -// referenced below are the official source of the data. There is also an -// announce mailing list: -// https://postlister.uninett.no/sympa/info/norid-diskusjon +// no : https://www.norid.no/en/om-domenenavn/regelverk-for-no/ +// Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/ +// Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/ +// Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/ +// RSS feed: https://teknisk.norid.no/en/feed/ no -// Norid generic domains : http://www.norid.no/regelverk/vedlegg-c.en.html +// Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/ fhs.no vgs.no fylkesbibl.no @@ -4711,13 +4715,13 @@ folkebibl.no museum.no idrett.no priv.no -// Non-Norid generic domains : http://www.norid.no/regelverk/vedlegg-d.en.html +// Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/ mil.no stat.no dep.no kommune.no herad.no -// no geographical names : http://www.norid.no/regelverk/vedlegg-b.en.html +// Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/ // counties aa.no ah.no @@ -6083,8 +6087,10 @@ biz.ss com.ss edu.ss gov.ss +me.ss net.ss org.ss +sch.ss // st : http://www.nic.st/html/policyrules/ st @@ -6093,7 +6099,6 @@ com.st consulado.st edu.st embaixada.st -gov.st mil.st net.st org.st @@ -6803,6 +6808,9 @@ yt // xn--90ae ("bg", Bulgarian) : BG бг +// xn--mgbcpq6gpa1a ("albahrain", Arabic) : BH +البحرين + // xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY // Operated by .by registry бел @@ -6935,6 +6943,9 @@ yt // xn--80ao21a ("Kaz", Kazakh) : KZ қаз +// xn--q7ce6a ("Lao", Lao) : LA +ລາວ + // xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK // https://nic.lk ලංකා @@ -7060,7 +7071,13 @@ yt xxx // ye : http://www.y.net.ye/services/domain_name.htm -*.ye +ye +com.ye +edu.ye +gov.ye +net.ye +mil.ye +org.ye // za : https://www.zadna.org.za/content/page/domain-information/ ac.za @@ -7109,7 +7126,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2020-08-07T17:16:50Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-04-22T15:17:15Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7327,16 +7344,16 @@ author // auto : 2014-11-13 XYZ.COM LLC auto -// autos : 2014-01-09 DERAutos, LLC +// autos : 2014-01-09 XYZ.COM LLC autos // avianca : 2015-01-08 Avianca Holdings S.A. avianca -// aws : 2015-06-25 Amazon Registry Services, Inc. +// aws : 2015-06-25 AWS Registry LLC aws -// axa : 2013-12-19 AXA SA +// axa : 2013-12-19 AXA Group Operations SAS axa // azure : 2014-12-18 Microsoft Corporation @@ -7477,7 +7494,7 @@ bmw // bnpparibas : 2014-05-29 BNP Paribas bnpparibas -// boats : 2014-12-04 DERBoats, LLC +// boats : 2014-12-04 XYZ.COM LLC boats // boehringer : 2015-07-09 Boehringer Ingelheim International GmbH @@ -7516,7 +7533,7 @@ bot // boutique : 2013-11-14 Binky Moon, LLC boutique -// box : 2015-11-12 .BOX INC. +// box : 2015-11-12 Intercap Registry Inc. box // bradesco : 2014-12-18 Banco Bradesco S.A. @@ -7627,9 +7644,6 @@ casa // case : 2015-09-03 CNH Industrial N.V. case -// caseih : 2015-09-03 CNH Industrial N.V. -caseih - // cash : 2014-03-06 Binky Moon, LLC cash @@ -7654,9 +7668,6 @@ cbre // cbs : 2015-08-06 CBS Domains Inc. cbs -// ceb : 2015-04-09 The Corporate Executive Board Company -ceb - // center : 2013-11-07 Binky Moon, LLC center @@ -7669,7 +7680,7 @@ cern // cfa : 2014-08-28 CFA Institute cfa -// cfd : 2014-12-11 DotCFD Registry Limited +// cfd : 2014-12-11 ShortDot SA cfd // chanel : 2015-04-09 Chanel International B.V. @@ -7837,7 +7848,7 @@ credit // creditcard : 2014-03-20 Binky Moon, LLC creditcard -// creditunion : 2015-01-22 CUNA Performance Resources, LLC +// creditunion : 2015-01-22 DotCooperation LLC creditunion // cricket : 2014-10-09 dot Cricket Limited @@ -8254,9 +8265,6 @@ ftr // fujitsu : 2015-07-30 Fujitsu Limited fujitsu -// fujixerox : 2015-07-23 Xerox DNHC LLC -fujixerox - // fun : 2016-01-14 DotSpace Inc. fun @@ -8500,7 +8508,7 @@ homedepot // homegoods : 2015-07-16 The TJX Companies, Inc. homegoods -// homes : 2014-01-09 DERHomes, LLC +// homes : 2014-01-09 XYZ.COM LLC homes // homesense : 2015-07-16 The TJX Companies, Inc. @@ -8608,9 +8616,6 @@ insurance // insure : 2014-03-20 Binky Moon, LLC insure -// intel : 2015-08-06 Intel Corporation -intel - // international : 2013-11-07 Binky Moon, LLC international @@ -8641,9 +8646,6 @@ itau // itv : 2015-07-09 ITV Services Limited itv -// iveco : 2015-09-03 CNH Industrial N.V. -iveco - // jaguar : 2014-11-13 Jaguar Land Rover Ltd jaguar @@ -8653,9 +8655,6 @@ java // jcb : 2014-11-20 JCB Co., Ltd. jcb -// jcp : 2015-04-23 JCP Media, Inc. -jcp - // jeep : 2015-07-30 FCA US LLC. jeep @@ -8926,9 +8925,6 @@ ltda // lundbeck : 2015-08-06 H. Lundbeck A/S lundbeck -// lupin : 2014-11-07 LUPIN LIMITED -lupin - // luxe : 2014-01-09 Minds + Machines Group Limited luxe @@ -9016,9 +9012,6 @@ menu // merckmsd : 2016-07-14 MSD Registry Holdings, Inc. merckmsd -// metlife : 2015-05-07 MetLife Services and Solutions, LLC -metlife - // miami : 2013-12-19 Minds + Machines Group Limited miami @@ -9082,7 +9075,7 @@ moscow // moto : 2015-06-04 Motorola Trademark Holdings, LLC moto -// motorcycles : 2014-01-09 DERMotorcycles, LLC +// motorcycles : 2014-01-09 XYZ.COM LLC motorcycles // mov : 2014-01-30 Charleston Road Registry Inc. @@ -9109,9 +9102,6 @@ nab // nagoya : 2013-10-24 GMO Registry, Inc. nagoya -// nationwide : 2015-07-23 Nationwide Mutual Insurance Company -nationwide - // natura : 2015-03-12 NATURA COSMÉTICOS S.A. natura @@ -9139,9 +9129,6 @@ neustar // new : 2014-01-30 Charleston Road Registry Inc. new -// newholland : 2015-09-03 CNH Industrial N.V. -newholland - // news : 2014-12-18 Dog Beach, LLC news @@ -9187,7 +9174,7 @@ nokia // northwesternmutual : 2015-06-18 Northwestern Mutual Registry, LLC northwesternmutual -// norton : 2014-12-04 Symantec Corporation +// norton : 2014-12-04 NortonLifeLock Inc. norton // now : 2015-06-25 Amazon Registry Services, Inc. @@ -9214,7 +9201,7 @@ nyc // obi : 2014-09-25 OBI Group Holding SE & Co. KGaA obi -// observer : 2015-04-30 Top Level Spectrum, Inc. +// observer : 2015-04-30 Dog Beach, LLC observer // off : 2015-07-23 Johnson Shareholdings, Inc. @@ -9247,15 +9234,12 @@ one // ong : 2014-03-06 Public Interest Registry ong -// onl : 2013-09-16 I-Registry Ltd. +// onl : 2013-09-16 iRegistry GmbH onl // online : 2015-01-15 DotOnline Inc. online -// onyourside : 2015-07-23 Nationwide Mutual Insurance Company -onyourside - // ooo : 2014-01-09 INFIBEAM AVENUES LIMITED ooo @@ -9481,7 +9465,7 @@ realestate // realtor : 2014-05-29 Real Estate Domains LLC realtor -// realty : 2015-03-19 Fegistry, LLC +// realty : 2015-03-19 Dog Beach, LLC realty // recipes : 2013-10-17 Binky Moon, LLC @@ -9544,7 +9528,7 @@ reviews // rexroth : 2015-06-18 Robert Bosch GMBH rexroth -// rich : 2013-11-21 I-Registry Ltd. +// rich : 2013-11-21 iRegistry GmbH rich // richardli : 2015-05-14 Pacific Century Asset Management (HK) Limited @@ -9649,7 +9633,7 @@ saxo // sbi : 2015-03-12 STATE BANK OF INDIA sbi -// sbs : 2014-11-07 SPECIAL BROADCASTING SERVICE CORPORATION +// sbs : 2014-11-07 ShortDot SA sbs // sca : 2014-03-13 SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) @@ -9763,9 +9747,6 @@ show // showtime : 2015-08-06 CBS Domains Inc. showtime -// shriram : 2014-01-23 Shriram Capital Ltd. -shriram - // silk : 2015-06-25 Amazon Registry Services, Inc. silk @@ -9844,9 +9825,6 @@ sport // spot : 2015-02-26 Amazon Registry Services, Inc. spot -// spreadbetting : 2014-12-11 Dotspreadbetting Registry Limited -spreadbetting - // srl : 2015-05-07 InterNetX, Corp srl @@ -9994,7 +9972,7 @@ theatre // tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America tiaa -// tickets : 2015-02-05 Accent Media Limited +// tickets : 2015-02-05 XYZ.COM LLC tickets // tienda : 2013-11-14 Binky Moon, LLC @@ -10078,7 +10056,7 @@ travelers // travelersinsurance : 2015-03-26 Travelers TLD, LLC travelersinsurance -// trust : 2014-10-16 NCC Group Domain Services, Inc. +// trust : 2014-10-16 UNR Corp. trust // trv : 2015-03-26 Travelers TLD, LLC @@ -10225,7 +10203,7 @@ wanggou // watch : 2013-11-14 Binky Moon, LLC watch -// watches : 2014-12-22 Richemont DNS Inc. +// watches : 2014-12-22 Afilias Limited watches // weather : 2015-01-08 International Business Machines Corporation @@ -10243,9 +10221,6 @@ weber // website : 2014-04-03 DotWebsite Inc. website -// wed : 2013-10-01 Atgron, Inc. -wed - // wedding : 2014-04-24 Minds + Machines Group Limited wedding @@ -10456,7 +10431,7 @@ xin // xn--fzys8d69uvgm : 2015-05-14 PCCW Enterprises Limited 電訊盈科 -// xn--g2xx48c : 2015-01-30 Minds + Machines Group Limited +// xn--g2xx48c : 2015-01-30 Nawang Heli(Xiamen) Network Service Co., LTD. 购物 // xn--gckr3f0f : 2015-02-26 Amazon Registry Services, Inc. @@ -10603,7 +10578,7 @@ vermögensberatung // xyz : 2013-12-05 XYZ.COM LLC xyz -// yachts : 2014-01-09 DERYachts, LLC +// yachts : 2014-01-09 XYZ.COM LLC yachts // yahoo : 2015-04-02 Yahoo! Domain Services Inc. @@ -10665,6 +10640,14 @@ ltd.ua // 611coin : https://611project.org/ 611.to +// Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za +// Submitted by Aaron Marais +graphox.us + +// accesso Technology Group, plc. : https://accesso.com/ +// Submitted by accesso Team +*.devcdnaccesso.com + // Adobe : https://www.adobe.com/ // Submitted by Ian Boston adobeaemcloud.com @@ -10688,12 +10671,6 @@ barsy.ca // Submitted by Werner Kaltofen kasserver.com -// Algorithmia, Inc. : algorithmia.com -// Submitted by Eli Perelman -*.algorithmia.com -!teams.algorithmia.com -!test.algorithmia.com - // Altervista: https://www.altervista.org // Submitted by Carlo Cannas altervista.org @@ -10741,6 +10718,10 @@ us-west-2.elasticbeanstalk.com *.elb.amazonaws.com *.elb.amazonaws.com.cn +// Amazon Global Accelerator : https://aws.amazon.com/global-accelerator/ +// Submitted by Daniel Massaguer +awsglobalaccelerator.com + // Amazon S3 : https://aws.amazon.com/s3/ // Submitted by Luke Wells s3.amazonaws.com @@ -10811,6 +10792,11 @@ tele.amune.org // Submitted by Apigee Security Team apigee.io +// Appspace : https://www.appspace.com +// Submitted by Appspace Security Team +appspacehosted.com +appspaceusercontent.com + // Aptible : https://www.aptible.com/ // Submitted by Thomas Orozco on-aptible.com @@ -10876,10 +10862,18 @@ bnr.la // Submitted by Paul Crowder blackbaudcdn.net +// Blatech : http://www.blatech.net +// Submitted by Luke Bratch +of.je + // Boomla : https://boomla.com // Submitted by Tibor Halter boomla.net +// Boutir : https://www.boutir.com +// Submitted by Eric Ng Ka Ka +boutir.com + // Boxfuse : https://boxfuse.com // Submitted by Axel Fontaine boxfuse.io @@ -10903,6 +10897,10 @@ uk0.bigv.io dh.bytemark.co.uk vm.bytemark.co.uk +// Caf.js Labs LLC : https://www.cafjs.com +// Submitted by Antonio Lain +cafjs.com + // callidomus : https://www.callidomus.com/ // Submitted by Marcus Popp mycd.eu @@ -10977,11 +10975,6 @@ nz.basketball radio.am radio.fm -// Globe Hosting SRL : https://www.globehosting.com/ -// Submitted by Gavin Brown -co.ro -shop.ro - // c.la : http://www.c.la/ c.la @@ -10989,9 +10982,9 @@ c.la // Submitted by B. Blechschmidt certmgr.org -// Citrix : https://citrix.com -// Submitted by Alex Stoddard -xenapponazure.com +// Cityhost LLC : https://cityhost.ua +// Submitted by Maksym Rivtin +cx.ua // Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/ // Submitted by Rishabh Nambiar & Michael Brown @@ -11007,14 +11000,20 @@ virtueeldomein.nl cleverapps.io // Clerk : https://www.clerk.dev -// Submitted by Colin Sidoti +// Submitted by Colin Sidoti *.lcl.dev +*.lclstage.dev *.stg.dev +*.stgstage.dev // Clic2000 : https://clic2000.fr // Submitted by Mathilde Blanchemanche clic2000.net +// ClickRising : https://clickrising.com/ +// Submitted by Umut Gumeli +clickrising.net + // Cloud66 : https://www.cloud66.com/ // Submitted by Khash Sajadi c66.me @@ -11039,7 +11038,8 @@ cloudcontrolapp.com cloudera.site // Cloudflare, Inc. : https://www.cloudflare.com/ -// Submitted by Jake Riesterer +// Submitted by Cloudflare Team +pages.dev trycloudflare.com workers.dev @@ -11080,10 +11080,6 @@ cloudns.pro cloudns.pw cloudns.us -// Cloudeity Inc : https://cloudeity.com -// Submitted by Stefan Dimitrov -cloudeity.net - // CNPY : https://cnpy.gdn // Submitted by Angelo Gladding cnpy.gdn @@ -11134,6 +11130,11 @@ cupcake.is // Submitted by Marvin Wiesner curv.dev +// Curvegrid Inc. : https://www.curvegrid.com/ +// Submitted by Pierre Rousset +multibaas.app +multibaas.com + // Customer OCI - Oracle Dyn https://cloud.oracle.com/home https://dyn.com/dns/ // Submitted by Gregory Drake // Note: This is intended to also include customer-oci.com due to wildcards implicitly including the current label @@ -11196,6 +11197,11 @@ edgestack.me // Submitted by Peter Palfrader / Debian Sysadmin Team debian.net +// Deno Land Inc : https://deno.com/ +// Submitted by Luca Casonato +deno.dev +deno-staging.dev + // deSEC : https://desec.io/ // Submitted by Peter Thomassen dedyn.io @@ -11217,6 +11223,10 @@ shop.th // Submitted by Paul Fang drayddns.com +// DreamCommerce : https://shoper.pl/ +// Submitted by Konrad Kotarba +shoparena.pl + // DreamHost : http://www.dreamhost.com/ // Submitted by Andrew Farmer dreamhosters.com @@ -11234,6 +11244,10 @@ drud.us // Submitted by Richard Harper duckdns.org +// Bip : https://bip.sh +// Submitted by Joel Kennedy +bip.sh + // bitbridge.net : Submitted by Craig Welch, abeliidev@gmail.com bitbridge.net @@ -11540,6 +11554,10 @@ ddnss.org definima.net definima.io +// DigitalOcean : https://digitalocean.com/ +// Submitted by Braxton Huggins +ondigitalocean.app + // dnstrace.pro : https://dnstrace.pro/ // Submitted by Chris Partridge bci.dnstrace.pro @@ -11585,6 +11603,10 @@ mytuleap.com onred.one staging.onred.one +// One.com: https://www.one.com/ +// Submitted by Jacob Bunk Nielsen +service.one + // Enonic : http://enonic.com/ // Submitted by Erik Kaareng-Sunde enonic.io @@ -11649,6 +11671,10 @@ tr.eu.org uk.eu.org us.eu.org +// Eurobyte : https://eurobyte.ru +// Submitted by Evgeniy Subbotin +eurodir.ru + // Evennode : http://www.evennode.com/ // Submitted by Michal Kralik eu-1.evennode.com @@ -11759,6 +11785,7 @@ u.channelsdvr.net // Fastly Inc. : http://www.fastly.com/ // Submitted by Fastly Security +edgecompute.app fastly-terrarium.com fastlylb.net map.fastlylb.net @@ -11778,10 +11805,6 @@ myfast.host fastvps.site myfast.space -// Featherhead : https://featherhead.xyz/ -// Submitted by Simon Menke -fhapp.xyz - // Fedora : https://fedoraproject.org/ // submitted by Patrick Uiterwijk fedorainfracloud.org @@ -11801,6 +11824,10 @@ ukco.me // submitted by Koen Van Isterdael mydobiss.com +// FH Muenster : https://www.fh-muenster.de +// Submitted by Robin Naundorf +fh-muenster.io + // Filegear Inc. : https://www.filegear.com // Submitted by Jason Zhu filegear.me @@ -11815,6 +11842,14 @@ filegear-sg.me // Submitted by Chris Raynor firebaseapp.com +// Firewebkit : https://www.firewebkit.com +// Submitted by Majid Qureshi +fireweb.app + +// FLAP : https://www.flap.cloud +// Submitted by Louis Chemineau +flap.id + // fly.io: https://fly.io // Submitted by Kurt Mackey fly.dev @@ -11825,6 +11860,20 @@ shw.io // Submitted by Jonathan Rudenberg flynnhosting.net +// Forgerock : https://www.forgerock.com +// Submitted by Roderick Parr +forgeblocks.com +*.id.forgerock.io + +// Framer : https://www.framer.com +// Submitted by Koen Rouwhorst +framer.app +framercanvas.com + +// RavPage : https://www.ravpage.co.il +// Submitted by Roni Horowitz +ravpage.co.il + // Frederik Braun https://frederik-braun.com // Submitted by Frederik Braun 0e.vc @@ -11842,6 +11891,10 @@ freeboxos.fr // Submitted by Daniel Stone freedesktop.org +// freemyip.com : https://freemyip.com +// Submitted by Cadence +freemyip.com + // FunkFeuer - Verein zur Förderung freier Netze : https://www.funkfeuer.at // Submitted by Daniel A. Maierhofer wien.funkfeuer.at @@ -11871,6 +11924,15 @@ usercontent.jp gentapps.com gentlentapis.com lab.ms +cdn-edges.net + +// Ghost Foundation : https://ghost.org +// Submitted by Matt Hanley +ghost.io + +// GignoSystemJapan: http://gsj.bz +// Submitted by GignoSystemJapan +gsj.bz // GitHub, Inc. // Submitted by Patrick Toomey @@ -11883,18 +11945,24 @@ gitlab.io // Gitplac.si - https://gitplac.si // Submitted by Aljaž Starc +gitapp.si gitpage.si // Glitch, Inc : https://glitch.com // Submitted by Mads Hartmann glitch.me +// Globe Hosting SRL : https://www.globehosting.com/ +// Submitted by Gavin Brown +co.ro +shop.ro + // GMO Pepabo, Inc. : https://pepabo.com/ // Submitted by dojineko lolipop.io // GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/ -// Submitted by Tom Whitwell +// Submitted by Tom Whitwell cloudapps.digital london.cloudapps.digital @@ -11922,6 +11990,17 @@ web.app *.0emm.com appspot.com *.r.appspot.com +codespot.com +googleapis.com +googlecode.com +pagespeedmobilizer.com +publishproxy.com +withgoogle.com +withyoutube.com +*.gateway.dev +cloud.goog +translate.goog +cloudfunctions.net blogspot.ae blogspot.al blogspot.am @@ -11996,24 +12075,16 @@ blogspot.td blogspot.tw blogspot.ug blogspot.vn -cloudfunctions.net -cloud.goog -codespot.com -googleapis.com -googlecode.com -pagespeedmobilizer.com -publishproxy.com -withgoogle.com -withyoutube.com - -// Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za -// Submitted by Aaron Marais -graphox.us // Group 53, LLC : https://www.group53.com // Submitted by Tyler Todd awsmppl.com +// GünstigBestellen : https://günstigbestellen.de +// Submitted by Furkan Akkoc +günstigbestellen.de +günstigliefern.de + // Hakaran group: http://hakaran.cz // Submited by Arseniy Sokolov fin.ci @@ -12052,20 +12123,22 @@ ravendb.me development.run ravendb.run +// Hong Kong Productivity Council: https://www.hkpc.org/ +// Submitted by SECaaS Team +secaas.hk + // HOSTBIP REGISTRY : https://www.hostbip.com/ // Submitted by Atanunu Igbunuroghene -bpl.biz orx.biz -ng.city biz.gl -ng.ink col.ng firm.ng gen.ng ltd.ng ngo.ng -ng.school +edu.scot sch.so +org.yt // HostyHosting (hostyhosting.com) hostyhosting.io @@ -12083,6 +12156,19 @@ moonscale.net // Submitted by Hannu Aronsson iki.fi +// Impertrix Solutions : +// Submitted by Zhixiang Zhao +impertrixcdn.com +impertrix.com + +// Incsub, LLC: https://incsub.com/ +// Submitted by Aaron Edwards +smushcdn.com +wphostedmail.com +wpmucdn.com +tempurl.host +wpmudev.host + // Individual Network Berlin e.V. : https://www.in-berlin.de/ // Submitted by Christian Seitz dyn-berlin.de @@ -12142,6 +12228,10 @@ pixolino.com // Submited by Vasiliy Sheredeko na4u.ru +// iopsys software solutions AB : https://iopsys.eu/ +// Submitted by Roman Azarenko +iopsys.se + // IPiFony Systems, Inc. : https://www.ipifony.com/ // Submitted by Matthew Hardeman ipifony.net @@ -12157,31 +12247,91 @@ iserv.dev // Submitted by Yuji Minagawa iobb.net -//Jelastic, Inc. : https://jelastic.com/ +// Jelastic, Inc. : https://jelastic.com/ // Submited by Ihor Kolodyuk +mel.cloudlets.com.au +cloud.interhostsolutions.be +users.scale.virtualcloud.com.br +mycloud.by +alp1.ae.flow.ch appengine.flow.ch +es-1.axarnet.cloud +diadem.cloud vip.jelastic.cloud jele.cloud +it1.eur.aruba.jenv-aruba.cloud +it1.jenv-aruba.cloud +keliweb.cloud +cs.keliweb.cloud +oxa.cloud +tn.oxa.cloud +uk.oxa.cloud +primetel.cloud +uk.primetel.cloud +ca.reclaim.cloud +uk.reclaim.cloud +us.reclaim.cloud +ch.trendhosting.cloud +de.trendhosting.cloud jele.club +amscompute.com +clicketcloud.com dopaas.com hidora.com +paas.hosted-by-previder.com +rag-cloud.hosteur.com +rag-cloud-ch.hosteur.com jcloud.ik-server.com +jcloud-ver-jpc.ik-server.com demo.jelastic.com +kilatiron.com paas.massivegrid.com +jed.wafaicloud.com +lon.wafaicloud.com +ryd.wafaicloud.com j.scaleforce.com.cy jelastic.dogado.eu fi.cloudplatform.fi +demo.datacenter.fi paas.datacenter.fi jele.host mircloud.host +paas.beebyte.io +sekd1.beebyteapp.io jele.io +cloud-fr1.unispace.io +jc.neen.it +cloud.jelastic.open.tim.it +jcloud.kz +upaas.kazteleport.kz cloudjiffy.net +fra1-de.cloudjiffy.net +west1-us.cloudjiffy.net jls-sto1.elastx.net +jls-sto2.elastx.net +jls-sto3.elastx.net +faststacks.net +fr-1.paas.massivegrid.net +lon-1.paas.massivegrid.net +lon-2.paas.massivegrid.net +ny-1.paas.massivegrid.net +ny-2.paas.massivegrid.net +sg-1.paas.massivegrid.net jelastic.saveincloud.net +nordeste-idc.saveincloud.net +j.scaleforce.net +jelastic.tsukaeru.net +sdscloud.pl +unicloud.pl +mircloud.ru jelastic.regruhosting.ru +enscaled.sg jele.site jelastic.team +orangecloud.tn j.layershift.co.uk +phx.enscaled.us +mircloud.us // Jino : https://www.jino.ru // Submitted by Sergey Ulyashin @@ -12222,10 +12372,20 @@ knightpoint.systems // Submitted by DisposaBoy oya.to +// Katholieke Universiteit Leuven: https://www.kuleuven.be +// Submitted by Abuse KU Leuven +kuleuven.cloud +ezproxy.kuleuven.be + // .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf co.krd edu.krd +// Krellian Ltd. : https://krellian.com +// Submitted by Ben Francis +krellian.net +webthings.io + // LCube - Professional hosting e.K. : https://www.lcube-webhosting.de // Submitted by Lars Laehn git-repos.de @@ -12256,10 +12416,6 @@ co.technology // Submitted by Greg Holland app.lmpm.com -// Linki Tools UG : https://linki.tools -// Submitted by Paulo Matos -linkitools.space - // linkyard ldt: https://www.linkyard.ch/ // Submitted by Mario Siegenthaler linkyard.cloud @@ -12275,6 +12431,10 @@ members.linode.com // Submitted by Victor Velchev we.bs +// localzone.xyz +// Submitted by Kenny Niehage +localzone.xyz + // Log'in Line : https://www.loginline.com/ // Submitted by Rémi Mach loginline.app @@ -12283,6 +12443,10 @@ loginline.io loginline.services loginline.site +// Lõhmus Family, The +// Submitted by Heiki Lõhmus +lohmus.me + // LubMAN UMCS Sp. z o.o : https://lubman.pl/ // Submitted by Ireneusz Maliszewski krasnik.pl @@ -12294,7 +12458,6 @@ swidnik.pl // Lug.org.uk : https://lug.org.uk // Submitted by Jon Spriggs -uklugs.org glug.org.uk lug.org.uk lugs.org.uk @@ -12338,15 +12501,29 @@ mayfirst.org // Submitted by Ilya Zaretskiy hb.cldmail.ru +// Mail Transfer Platform : https://www.neupeer.com +// Submitted by Li Hui +cn.vu + +// Maze Play: https://www.mazeplay.com +// Submitted by Adam Humpherys +mazeplay.com + // mcpe.me : https://mcpe.me // Submitted by Noa Heyl mcpe.me // McHost : https://mchost.ru // Submitted by Evgeniy Subbotin +mcdir.me mcdir.ru +mcpre.ru vps.mcdir.ru +// Medicom Health : https://medicomhealth.com +// Submitted by Michael Olson +hra.health + // Memset hosting : https://www.memset.com // Submitted by Tom Whitwell miniserver.com @@ -12371,16 +12548,26 @@ eu.meteorapp.com co.pl // Microsoft Corporation : http://microsoft.com -// Submitted by Mostafa Elzeiny +// Submitted by Mitch Webster *.azurecontainer.io azurewebsites.net azure-mobile.net cloudapp.net +azurestaticapps.net +centralus.azurestaticapps.net +eastasia.azurestaticapps.net +eastus2.azurestaticapps.net +westeurope.azurestaticapps.net +westus2.azurestaticapps.net // minion.systems : http://minion.systems // Submitted by Robert Böttinger csx.cc +// Mintere : https://mintere.com/ +// Submitted by Ben Aubin +mintere.site + // MobileEducation, LLC : https://joinforte.com // Submitted by Grayson Martin forte.id @@ -12403,8 +12590,11 @@ pp.ru // Submitted by Paul Cammish hostedpi.com customer.mythic-beasts.com +caracal.mythic-beasts.com +fentiger.mythic-beasts.com lynx.mythic-beasts.com ocelot.mythic-beasts.com +oncilla.mythic-beasts.com onza.mythic-beasts.com sphinx.mythic-beasts.com vs.mythic-beasts.com @@ -12417,19 +12607,22 @@ cust.retrosnub.co.uk ui.nabu.casa // Names.of.London : https://names.of.london/ -// Submitted by James Stevens or +// Submitted by James Stevens or pony.club of.fashion -on.fashion -of.football in.london of.london +from.marketing +with.marketing for.men +repair.men and.mom for.mom for.one +under.one for.sale -of.work +that.win +from.work to.work // NCTU.ME : https://nctu.me/ @@ -12456,6 +12649,15 @@ nh-serv.co.uk // Submitted by Jeff Wheelhouse nfshost.com +// Northflank Ltd. : https://northflank.com/ +// Submitted by Marco Suter +*.northflank.app +*.code.run + +// Noticeable : https://noticeable.io +// Submitted by Laurent Pellegrino +noticeable.news + // Now-DNS : https://now-dns.com // Submitted by Steve Russell dnsking.ch @@ -12680,6 +12882,10 @@ opensocial.site // Submitted by Sven Marnach opencraft.hosting +// OpenResearch GmbH: https://openresearch.com/ +// Submitted by Philipp Schmid +orsites.com + // Opera Software, A.S.A. // Submitted by Yngve Pettersen operaunite.com @@ -12692,6 +12898,11 @@ skygearapp.com // Submitted by Duarte Santos outsystemscloud.com +// OVHcloud: https://ovhcloud.com +// Submitted by Vincent Cassé +*.webpaas.ovh.net +*.hosting.ovh.net + // OwnProvider GmbH: http://www.ownprovider.com // Submitted by Jan Moennich ownprovider.com @@ -12721,6 +12932,10 @@ pagefrontapp.com // Submitted by Yann Guichard pagexl.com +// Paywhirl, Inc : https://paywhirl.com/ +// Submitted by Daniel Netzer +*.paywhirl.com + // pcarrier.ca Software Inc: https://pcarrier.ca/ // Submitted by Pierre Carrier bar0.net @@ -12749,6 +12964,12 @@ mypep.link // Submitted by Kenneth Van Alstyne perspecta.cloud +// PE Ulyanov Kirill Sergeevich : https://airy.host +// Submitted by Kirill Ulyanov +lk3.ru +ra-ru.ru +zsew.ru + // Planet-Work : https://www.planet-work.com/ // Submitted by Frédéric VANNIÈRE on-web.fr @@ -12760,6 +12981,7 @@ ent.platform.sh eu.platform.sh us.platform.sh *.platformsh.site +*.tst.site // Platter: https://platter.dev // Submitted by Patrick Flor @@ -12810,6 +13032,15 @@ byen.site // Submitted by Kor Nielsen pubtls.org +// PythonAnywhere LLP: https://www.pythonanywhere.com +// Submitted by Giles Thomas +*.pythonanywhere.com +*.eu.pythonanywhere.com + +// QOTO, Org. +// Submitted by Jeffrey Phillips Freeman +qoto.io + // Qualifio : https://qualifio.com/ // Submitted by Xavier De Cock qualifioapp.com @@ -12818,6 +13049,10 @@ qualifioapp.com // Submitted by Dani Biro qbuser.com +// Rad Web Hosting: https://radwebhosting.com +// Submitted by Scott Claeys +cloudsite.builders + // Redstar Consultants : https://www.redstarconsultants.com/ // Submitted by Jons Slemmer instantcloud.cn @@ -12881,6 +13116,7 @@ onrender.com // Repl.it : https://repl.it // Submitted by Mason Clayton repl.co +id.repl.co repl.run // Resin.io : https://resin.io @@ -12895,13 +13131,25 @@ hzc.io // Revitalised Limited : http://www.revitalised.co.uk // Submitted by Jack Price wellbeingzone.eu -ptplus.fit wellbeingzone.co.uk // Rochester Institute of Technology : http://www.rit.edu/ // Submitted by Jennifer Herting git-pages.rit.edu +// Rusnames Limited: http://rusnames.ru/ +// Submitted by Sergey Zotov +биз.рус +ком.рус +крым.рус +мир.рус +мск.рус +орг.рус +самара.рус +сочи.рус +спб.рус +я.рус + // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia sandcats.io @@ -12918,6 +13166,7 @@ schokokeks.net // Scottish Government: https://www.gov.scot // Submitted by Martin Ellis gov.scot +service.gov.scot // Scry Security : http://www.scrysec.com // Submitted by Shante Adam @@ -12944,12 +13193,21 @@ seidat.net // Submitted by Felix Mönckemeyer senseering.net +// Service Magnet : https://myservicemagnet.com +// Submitted by Dave Sanders +magnet.page + // Service Online LLC : http://drs.ua/ // Submitted by Serhii Bulakh biz.ua co.ua pp.ua +// Shift Crypto AG : https://shiftcrypto.ch +// Submitted by alex +shiftcrypto.dev +shiftcrypto.io + // ShiftEdit : https://shiftedit.net/ // Submitted by Adam Jimenez shiftedit.io @@ -12958,6 +13216,10 @@ shiftedit.io // Submitted by Alex Bowers myshopblocks.com +// Shopify : https://www.shopify.com +// Submitted by Alex Richter +myshopify.com + // Shopit : https://www.shopitcommerce.com/ // Submitted by Craig McMahon shopitsite.com @@ -12992,6 +13254,14 @@ beta.bounty-full.com // Submitted by Aral Balkan small-web.org +// Snowplow Analytics : https://snowplowanalytics.com/ +// Submitted by Ian Streeter +try-snowplow.com + +// SourceHut : https://sourcehut.org +// Submitted by Drew DeVault +srht.site + // Stackhero : https://www.stackhero.io // Submitted by Adrien Gillon stackhero-network.com @@ -13002,6 +13272,13 @@ static.land dev.static.land sites.static.land +// Strategic System Consulting (eApps Hosting): https://www.eapps.com/ +// Submitted by Alex Oancea +vps-host.net +atl.jelastic.vps-host.net +njs.jelastic.vps-host.net +ric.jelastic.vps-host.net + // Sony Interactive Entertainment LLC : https://sie.com/ // Submitted by David Coles playstation-cloud.com @@ -13040,11 +13317,6 @@ user.srcf.net // Submitted by Dan Miller temp-dns.com -// Swisscom Application Cloud: https://developer.swisscom.com -// Submitted by Matthias.Winzeler -applicationcloud.io -scapp.io - // Symfony, SAS : https://symfony.com/ // Submitted by Fabien Potencier *.s5y.io @@ -13111,12 +13383,22 @@ cust.testing.thingdust.io // Submitted by Mark Staarink arvo.network azimuth.network +tlon.network + +// Tor Project, Inc. : https://torproject.org +// Submitted by Antoine Beaupré bloxcms.com townnews-staging.com +// TradableBits: https://tradablebits.com +// Submitted by Dmitry Khrisanov dmitry@tradablebits.com +tbits.me + // TrafficPlex GmbH : https://www.trafficplex.de/ // Submitted by Phillipp Röll 12hp.at @@ -13264,10 +13546,26 @@ v.ua // Submitted by Masayuki Note wafflecell.com +// WapBlog.ID : https://www.wapblog.id +// Submitted by Fajar Sodik +idnblogger.com +indowapblog.com +bloger.id +wblog.id +wbq.me +fastblog.net + // WebHare bv: https://www.webhare.com/ // Submitted by Arnold Hendriks *.webhare.dev +// WebHotelier Technologies Ltd: https://www.webhotelier.net/ +// Submitted by Apostolos Tsakpinis +reserve-online.net +reserve-online.com +bookonline.app +hotelwithflight.com + // WeDeploy by Liferay, Inc. : https://www.wedeploy.com // Submitted by Henrique Vicente wedeploy.io @@ -13295,15 +13593,23 @@ daemon.panel.gg // WoltLab GmbH : https://www.woltlab.com // Submitted by Tim Düsterhus +woltlab-demo.com myforum.community community-pro.de diskussionsbereich.de community-pro.net meinforum.net -// www.com.vc : http://www.com.vc -// Submitted by Li Hui -cn.vu +// WP Engine : https://wpengine.com/ +// Submitted by Michael Smith +// Submitted by Brandon DuRette +wpenginepowered.com +js.wpenginepowered.com + +// Wix.com, Inc. : https://www.wix.com +// Submitted by Shahar Talmi +wixsite.com +editorx.io // XenonCloud GbR: https://xenoncloud.net // Submitted by Julian Uphoff @@ -13365,16 +13671,4 @@ basicserver.io virtualserver.io enterprisecloud.nu -// Mintere : https://mintere.com/ -// Submitted by Ben Aubin -mintere.site - -// WP Engine : https://wpengine.com/ -// Submitted by Michael Smith -wpenginepowered.com - -// Impertrix Solutions : -// Submitted by Zhixiang Zhao -impertrixcdn.com -impertrix.com // ===END PRIVATE DOMAINS=== diff --git a/test/test_helper.rb b/test/test_helper.rb index 4f8a4477..d5907169 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,13 +1,5 @@ # frozen_string_literal: true -if ENV["COVERAGE"] - require "simplecov" - SimpleCov.start - - require "codecov" - SimpleCov.formatter = SimpleCov::Formatter::Codecov -end - require "minitest/autorun" require "minitest/reporters" require "mocha/minitest" From f03cec89b2cefbaa644c4a76545b04a40af30187 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 30 Apr 2021 15:21:54 +0200 Subject: [PATCH 315/450] Test with Ruby 3 --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 082548b0..8b146d40 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,11 @@ language: ruby rvm: - # - 2.3 - - 2.4 - - 2.5 - - 2.6 - - 2.7 + - "2.4" + - "2.5" + - "2.6" + - "2.7" + - "3.0" - ruby-head cache: From c50a052e89604a28a09ac4194f70957bf02db486 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 3 Dec 2021 10:18:42 +0100 Subject: [PATCH 316/450] CI: Remove EOL versions --- .github/workflows/tests.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2de90583..793e52d1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,9 +2,8 @@ name: Tests on: push: - branches: [ master ] pull_request: - branches: [ master ] + workflow_dispatch: jobs: @@ -12,11 +11,9 @@ jobs: strategy: matrix: ruby-version: - # - "2.3" - - "2.4" - - "2.5" - "2.6" - "2.7" + - "3.0" platform: [ubuntu-latest] runs-on: ${{ matrix.platform }} From 47bee57a1bc4b0834dd92dc72fe7690ab2af63c0 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 3 Dec 2021 10:20:31 +0100 Subject: [PATCH 317/450] Format --- .github/workflows/tests.yml | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 793e52d1..68e08b01 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,7 +6,6 @@ on: workflow_dispatch: jobs: - build: strategy: matrix: @@ -15,19 +14,14 @@ jobs: - "2.7" - "3.0" platform: [ubuntu-latest] - runs-on: ${{ matrix.platform }} steps: - - - uses: actions/checkout@v2 - - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby-version }} - - - name: Install dependencies - run: bundle install - - - name: Run tests - run: bundle exec rake + - uses: actions/checkout@v2 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + - name: Install dependencies + run: bundle install + - name: Run tests + run: bundle exec rake From 450825e80c579b70ac423206e57c13384051a31f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 3 Dec 2021 10:21:56 +0100 Subject: [PATCH 318/450] Replace Travis with GitHub Actions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 17708edf..40acd477 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ PublicSuffix is a Ruby domain name parser based on the [Public Suffix List](https://publicsuffix.org/). -[![Build Status](https://travis-ci.com/weppos/publicsuffix-ruby.svg?branch=master)](https://travis-ci.com/weppos/publicsuffix-ruby) +[![Build Status](https://github.com/weppos/publicsuffix-ruby/actions/workflows/tests.yml/badge.svg)](https://github.com/weppos/publicsuffix-ruby/actions/workflows/tests.yml) [![Tidelift dependencies](https://tidelift.com/badges/package/rubygems/public_suffix)](https://tidelift.com/subscription/pkg/rubygems-public-suffix?utm_source=rubygems-public-suffix&utm_medium=referral&utm_campaign=enterprise) From da31476e8b3e2014c47c7f427d3e44440747d454 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 3 Dec 2021 10:25:16 +0100 Subject: [PATCH 319/450] Delete .travis.yml --- .travis.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8b146d40..00000000 --- a/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -language: ruby - -rvm: - - "2.4" - - "2.5" - - "2.6" - - "2.7" - - "3.0" - - ruby-head - -cache: - - bundler - -matrix: - allow_failures: - - rvm: ruby-head - -before_install: - - gem update --system - - gem install bundler From 405c291c0eba7b0c42f276a30aad5f0a31d8613f Mon Sep 17 00:00:00 2001 From: Peter Goldstein Date: Mon, 10 Jan 2022 00:57:38 -0800 Subject: [PATCH 320/450] Add Ruby 3.1 to CI (#185) --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 68e08b01..a0f334ab 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,6 +13,7 @@ jobs: - "2.6" - "2.7" - "3.0" + - "3.1" platform: [ubuntu-latest] runs-on: ${{ matrix.platform }} steps: From 434f0bdbf9f4d10f0c580d5b443dbb118e4fc7d7 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 12 Apr 2022 09:19:25 +0200 Subject: [PATCH 321/450] Add release workflow --- .github/workflows/release.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..e3862e3b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,16 @@ +name: release + +on: + push: + tags: + - v*.*.* +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Release Gem + uses: cadwallion/publish-rubygems-action@8f9e0538302643309e4e43bf48cd34173ca48cfc + env: + RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }} + RELEASE_COMMAND: rake release From b741b4f063acba13e3b9a4b2ba98ca34d0e7e4fc Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 12 Apr 2022 09:37:48 +0200 Subject: [PATCH 322/450] Fixed YARD rake task Fixes #179 --- CHANGELOG.md | 7 +++++++ Rakefile | 1 + lib/public_suffix.rb | 22 ++++++++++------------ lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 20 ++++++++++---------- 5 files changed, 29 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4861d623..f9c81d9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## master + +### Fixes + +- Fixed YARD rake task (GH-179) + + ## 4.0.6 ### Changed diff --git a/Rakefile b/Rakefile index 502270a4..26a6c994 100644 --- a/Rakefile +++ b/Rakefile @@ -20,6 +20,7 @@ require "rubocop/rake_task" RuboCop::RakeTask.new +require "yard" require "yard/rake/yardoc_task" YARD::Rake::YardocTask.new(:yardoc) do |y| diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index 01f880e3..fe4cd828 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -57,15 +57,13 @@ module PublicSuffix # # => PublicSuffix::DomainInvalid: http://www.google.com is not expected to contain a scheme # # - # @param [String, #to_s] name The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} - # @param [Boolean] ignore_private + # @param name [#to_s] The domain name or fully qualified domain name to parse. + # @param list [PublicSuffix::List] The rule list to search, defaults to the default {PublicSuffix::List} + # @param ignore_private [Boolean] # @return [PublicSuffix::Domain] # - # @raise [PublicSuffix::DomainInvalid] - # If domain is not a valid domain. - # @raise [PublicSuffix::DomainNotAllowed] - # If a rule for +domain+ is found, but the rule doesn't allow +domain+. + # @raise [PublicSuffix::DomainInvalid] If domain is not a valid domain. + # @raise [PublicSuffix::DomainNotAllowed] If a rule for +domain+ is found, but the rule doesn't allow +domain+. def self.parse(name, list: List.default, default_rule: list.default_rule, ignore_private: false) what = normalize(name) raise what if what.is_a?(DomainInvalid) @@ -119,8 +117,8 @@ def self.parse(name, list: List.default, default_rule: list.default_rule, ignore # # => false # # - # @param [String, #to_s] name The domain name or fully qualified domain name to validate. - # @param [Boolean] ignore_private + # @param name [#to_s] The domain name or fully qualified domain name to validate. + # @param ignore_private [Boolean] # @return [Boolean] def self.valid?(name, list: List.default, default_rule: list.default_rule, ignore_private: false) what = normalize(name) @@ -135,9 +133,9 @@ def self.valid?(name, list: List.default, default_rule: list.default_rule, ignor # # This method doesn't raise. Instead, it returns nil if the domain is not valid for whatever reason. # - # @param [String, #to_s] name The domain name or fully qualified domain name to parse. - # @param [PublicSuffix::List] list The rule list to search, defaults to the default {PublicSuffix::List} - # @param [Boolean] ignore_private + # @param name [#to_s] The domain name or fully qualified domain name to parse. + # @param list [PublicSuffix::List] The rule list to search, defaults to the default {PublicSuffix::List} + # @param ignore_private [Boolean] # @return [String] def self.domain(name, **options) parse(name, **options).domain diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index dc34f1a0..84556d0f 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -63,7 +63,7 @@ def self.default=(value) # # See http://publicsuffix.org/format/ for more details about input format. # - # @param string [#each_line] the list to parse + # @param input [#each_line] the list to parse # @param private_domains [Boolean] whether to ignore the private domains section # @return [PublicSuffix::List] def self.parse(input, private_domains: true) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index d4c32ca1..4a946462 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -131,10 +131,9 @@ def initialize(value:, length: nil, private: false) # Checks whether this rule is equal to other. # - # @param [PublicSuffix::Rule::*] other The rule to compare - # @return [Boolean] - # Returns true if this rule and other are instances of the same class - # and has the same value, false otherwise. + # @param other [PublicSuffix::Rule::*] The rule to compare + # @return [Boolean] true if this rule and other are instances of the same class + # and has the same value, false otherwise. def ==(other) equal?(other) || (self.class == other.class && value == other.value) end @@ -176,7 +175,7 @@ def parts end # @abstract - # @param [String, #to_s] name The domain name to decompose + # @param domain [#to_s] The domain name to decompose # @return [Array] def decompose(*) raise NotImplementedError @@ -196,7 +195,7 @@ def rule # Decomposes the domain name according to rule properties. # - # @param [String, #to_s] name The domain name to decompose + # @param domain [#to_s] The domain name to decompose # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = parts.join('\.') @@ -228,6 +227,7 @@ def self.build(content, private: false) # Initializes a new rule. # # @param value [String] + # @param length [Integer] # @param private [Boolean] def initialize(value:, length: nil, private: false) super(value: value, length: length, private: private) @@ -243,7 +243,7 @@ def rule # Decomposes the domain name according to rule properties. # - # @param [String, #to_s] name The domain name to decompose + # @param domain [#to_s] The domain name to decompose # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = ([".*?"] + parts).join('\.') @@ -266,7 +266,7 @@ class Exception < Base # Initializes a new rule from the content. # - # @param content [String] the content of the rule + # @param content [#to_s] the content of the rule # @param private [Boolean] def self.build(content, private: false) new(value: content.to_s[1..-1], private: private) @@ -281,7 +281,7 @@ def rule # Decomposes the domain name according to rule properties. # - # @param [String, #to_s] name The domain name to decompose + # @param domain [#to_s] The domain name to decompose # @return [Array] The array with [trd + sld, tld]. def decompose(domain) suffix = parts.join('\.') @@ -321,7 +321,7 @@ def parts # PublicSuffix::Rule.factory("!congresodelalengua3.ar") # # => # # - # @param [String] content The rule content. + # @param content [#to_s] the content of the rule # @return [PublicSuffix::Rule::*] A rule instance. def self.factory(content, private: false) case content.to_s[0, 1] From f153a19c5b6c9d56f6f42cb6b58c9010cb83e408 Mon Sep 17 00:00:00 2001 From: William Montgomery <89461240+wmontgomery-splunk@users.noreply.github.com> Date: Tue, 12 Apr 2022 03:38:49 -0400 Subject: [PATCH 323/450] Update data list (#186) --- data/list.txt | 778 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 548 insertions(+), 230 deletions(-) diff --git a/data/list.txt b/data/list.txt index bed1e1e0..27cdda89 100644 --- a/data/list.txt +++ b/data/list.txt @@ -9,7 +9,7 @@ // ===BEGIN ICANN DOMAINS=== -// ac : https://en.wikipedia.org/wiki/.ac +// ac : http://nic.ac/rules.htm ac com.ac edu.ac @@ -175,17 +175,21 @@ it.ao // aq : https://en.wikipedia.org/wiki/.aq aq -// ar : https://nic.ar/nic-argentina/normativa-vigente +// ar : https://nic.ar/es/nic-argentina/normativa ar +bet.ar com.ar +coop.ar edu.ar gob.ar gov.ar int.ar mil.ar musica.ar +mutual.ar net.ar org.ar +senasa.ar tur.ar // arpa : https://en.wikipedia.org/wiki/.arpa @@ -734,7 +738,6 @@ gouv.ci // cl : https://www.nic.cl // Confirmed by .CL registry cl -aprendemas.cl co.cl gob.cl gov.cl @@ -839,7 +842,13 @@ gov.cu inf.cu // cv : https://en.wikipedia.org/wiki/.cv +// cv : http://www.dns.cv/tldcv_portal/do?com=DS;5446457100;111;+PAGE(4000018)+K-CAT-CODIGO(RDOM)+RCNT(100); <- registration rules cv +com.cv +edu.cv +int.cv +nome.cv +org.cv // cw : http://www.una.cw/cw_registry/ // Confirmed by registry 2013-03-26 @@ -856,6 +865,7 @@ gov.cx // cy : http://www.nic.cy/ // Submitted by registry Panayiotou Fotia +// namespace policies URL https://www.nic.cy/portal//sites/default/files/symfonia_gia_eggrafi.pdf cy ac.cy biz.cy @@ -863,10 +873,9 @@ com.cy ekloges.cy gov.cy ltd.cy -name.cy +mil.cy net.cy org.cy -parliament.cy press.cy pro.cy tm.cy @@ -1176,6 +1185,7 @@ org.gu web.gu // gw : https://en.wikipedia.org/wiki/.gw +// gw : https://nic.gw/regras/ gw // gy : https://en.wikipedia.org/wiki/.gy @@ -1356,7 +1366,7 @@ info int eu.int -// io : http://www.nic.io/rules.html +// io : http://www.nic.io/rules.htm // list of other 2nd level tlds ? io com.io @@ -3755,11 +3765,10 @@ org.kw // ky : http://www.icta.ky/da_ky_reg_dom.php // Confirmed by registry 2008-06-17 ky -edu.ky -gov.ky com.ky -org.ky +edu.ky net.ky +org.ky // kz : https://en.wikipedia.org/wiki/.kz // see also: http://www.nic.kz/rules/index.jsp @@ -5850,7 +5859,7 @@ com.ps org.ps net.ps -// pt : http://online.dns.pt/dns/start_dns +// pt : https://www.dns.pt/en/domain/pt-terms-and-conditions-registration-rules/ pt net.pt gov.pt @@ -6027,7 +6036,7 @@ gov.sg edu.sg per.sg -// sh : http://www.nic.sh/registrar.html +// sh : http://nic.sh/rules.htm sh com.sh net.sh @@ -6203,29 +6212,22 @@ gov.tm mil.tm edu.tm -// tn : https://en.wikipedia.org/wiki/.tn -// http://whois.ati.tn/ +// tn : http://www.registre.tn/fr/ +// https://whois.ati.tn/ tn com.tn ens.tn fin.tn gov.tn ind.tn +info.tn intl.tn +mincom.tn nat.tn net.tn org.tn -info.tn perso.tn tourism.tn -edunet.tn -rnrt.tn -rns.tn -rnu.tn -mincom.tn -agrinet.tn -defense.tn -turen.tn // to : https://en.wikipedia.org/wiki/.to // Submitted by registry @@ -6715,9 +6717,10 @@ mil.vc edu.vc // ve : https://registro.nic.ve/ -// Submitted by registry +// Submitted by registry nic@nic.ve and nicve@conatel.gob.ve ve arts.ve +bib.ve co.ve com.ve e12.ve @@ -6729,7 +6732,9 @@ info.ve int.ve mil.ve net.ve +nom.ve org.ve +rar.ve rec.ve store.ve tec.ve @@ -7126,7 +7131,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-04-22T15:17:15Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-02-18T15:13:38Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7152,7 +7157,7 @@ abc // able : 2015-06-25 Able Inc. able -// abogado : 2014-04-24 Minds + Machines Group Limited +// abogado : 2014-04-24 Registry Services, LLC abogado // abudhabi : 2015-07-30 Abu Dhabi Systems and Information Centre @@ -7191,9 +7196,6 @@ aeg // aetna : 2015-05-21 Aetna Life Insurance Company aetna -// afamilycompany : 2015-07-23 Johnson Shareholdings, Inc. -afamilycompany - // afl : 2014-10-02 Australian Football League afl @@ -7428,7 +7430,7 @@ beats // beauty : 2015-12-03 XYZ.COM LLC beauty -// beer : 2014-01-09 Minds + Machines Group Limited +// beer : 2014-01-09 Registry Services, LLC beer // bentley : 2014-12-18 Bentley Motors Limited @@ -7524,7 +7526,7 @@ bosch // bostik : 2015-05-28 Bostik SA bostik -// boston : 2015-12-10 Boston TLD Management, LLC +// boston : 2015-12-10 Registry Services, LLC boston // bot : 2014-12-18 Amazon Registry Services, Inc. @@ -7545,7 +7547,7 @@ bridgestone // broadway : 2014-12-22 Celebrate Broadway, Inc. broadway -// broker : 2014-12-11 Dotbroker Registry Limited +// broker : 2014-12-11 Dog Beach, LLC broker // brother : 2015-01-29 Brother Industries, Ltd. @@ -7554,9 +7556,6 @@ brother // brussels : 2014-02-06 DNS.be vzw brussels -// budapest : 2013-11-21 Minds + Machines Group Limited -budapest - // bugatti : 2015-07-23 Bugatti International SA bugatti @@ -7593,7 +7592,7 @@ call // calvinklein : 2015-07-30 PVH gTLD Holdings LLC calvinklein -// cam : 2016-04-21 AC Webconnecting Holding B.V. +// cam : 2016-04-21 Cam Connecting SARL cam // camera : 2013-08-27 Binky Moon, LLC @@ -7638,10 +7637,10 @@ careers // cars : 2014-11-13 XYZ.COM LLC cars -// casa : 2013-11-21 Minds + Machines Group Limited +// casa : 2013-11-21 Registry Services, LLC casa -// case : 2015-09-03 CNH Industrial N.V. +// case : 2015-09-03 Helium TLDs Ltd case // cash : 2014-03-06 Binky Moon, LLC @@ -7758,7 +7757,7 @@ clothing // cloud : 2015-04-16 Aruba PEC S.p.A. cloud -// club : 2013-11-08 .CLUB DOMAINS, LLC +// club : 2013-11-08 Registry Services, LLC club // clubmed : 2015-06-25 Club Méditerranée S.A. @@ -7815,7 +7814,7 @@ contact // contractors : 2013-09-10 Binky Moon, LLC contractors -// cooking : 2013-11-21 Minds + Machines Group Limited +// cooking : 2013-11-21 Registry Services, LLC cooking // cookingchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. @@ -7866,9 +7865,6 @@ cruise // cruises : 2013-12-05 Binky Moon, LLC cruises -// csc : 2014-09-25 Alliance-One Services, Inc. -csc - // cuisinella : 2014-04-03 SCHMIDT GROUPE S.A.S. cuisinella @@ -7905,7 +7901,7 @@ day // dclk : 2014-11-20 Charleston Road Registry Inc. dclk -// dds : 2015-05-07 Minds + Machines Group Limited +// dds : 2015-05-07 Registry Services, LLC dds // deal : 2015-06-25 Amazon Registry Services, Inc. @@ -7944,7 +7940,7 @@ dentist // desi : 2013-11-14 Desi Networks LLC desi -// design : 2014-11-07 Top Level Design, LLC +// design : 2014-11-07 Registry Services, LLC design // dev : 2014-10-16 Charleston Road Registry Inc. @@ -8010,13 +8006,10 @@ dtv // dubai : 2015-01-01 Dubai Smart Government Department dubai -// duck : 2015-07-23 Johnson Shareholdings, Inc. -duck - // dunlop : 2015-07-02 The Goodyear Tire & Rubber Company dunlop -// dupont : 2015-06-25 E. I. du Pont de Nemours and Company +// dupont : 2015-06-25 DuPont Specialty Products USA, LLC dupont // durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry @@ -8133,7 +8126,7 @@ farm // farmers : 2015-07-09 Farmers Insurance Exchange farmers -// fashion : 2014-07-03 Minds + Machines Group Limited +// fashion : 2014-07-03 Registry Services, LLC fashion // fast : 2014-12-18 Amazon Registry Services, Inc. @@ -8184,10 +8177,10 @@ firmdale // fish : 2013-12-12 Binky Moon, LLC fish -// fishing : 2013-11-21 Minds + Machines Group Limited +// fishing : 2013-11-21 Registry Services, LLC fishing -// fit : 2014-11-07 Minds + Machines Group Limited +// fit : 2014-11-07 Registry Services, LLC fit // fitness : 2014-03-06 Binky Moon, LLC @@ -8226,7 +8219,7 @@ football // ford : 2014-11-13 Ford Motor Company ford -// forex : 2014-12-11 Dotforex Registry Limited +// forex : 2014-12-11 Dog Beach, LLC forex // forsale : 2014-05-22 Dog Beach, LLC @@ -8265,7 +8258,7 @@ ftr // fujitsu : 2015-07-30 Fujitsu Limited fujitsu -// fun : 2016-01-14 DotSpace Inc. +// fun : 2016-01-14 Radix FZC fun // fund : 2014-03-20 Binky Moon, LLC @@ -8301,7 +8294,7 @@ games // gap : 2015-07-31 The Gap, Inc. gap -// garden : 2014-06-26 Minds + Machines Group Limited +// garden : 2014-06-26 Registry Services, LLC garden // gay : 2019-05-23 Top Level Design, LLC @@ -8340,9 +8333,6 @@ gives // giving : 2014-11-13 Giving Limited giving -// glade : 2015-07-23 Johnson Shareholdings, Inc. -glade - // glass : 2013-11-07 Binky Moon, LLC glass @@ -8517,13 +8507,13 @@ homesense // honda : 2014-12-18 Honda Motor Co., Ltd. honda -// horse : 2013-11-21 Minds + Machines Group Limited +// horse : 2013-11-21 Registry Services, LLC horse // hospital : 2016-10-20 Binky Moon, LLC hospital -// host : 2014-04-17 DotHost Inc. +// host : 2014-04-17 Radix FZC host // hosting : 2014-05-29 UNR Corp. @@ -8718,6 +8708,9 @@ kfh // kia : 2015-07-09 KIA MOTORS CORPORATION kia +// kids : 2021-08-13 DotKids Foundation Limited +kids + // kim : 2013-09-23 Afilias Limited kim @@ -8796,7 +8789,7 @@ latino // latrobe : 2014-06-16 La Trobe University latrobe -// law : 2015-01-22 LW TLD Limited +// law : 2015-01-22 Registry Services, LLC law // lawyer : 2014-03-20 Dog Beach, LLC @@ -8871,9 +8864,6 @@ live // living : 2015-07-30 Lifestyle Domain Holdings, Inc. living -// lixil : 2015-03-19 LIXIL Group Corporation -lixil - // llc : 2017-12-14 Afilias Limited llc @@ -8925,7 +8915,7 @@ ltda // lundbeck : 2015-08-06 H. Lundbeck A/S lundbeck -// luxe : 2014-01-09 Minds + Machines Group Limited +// luxe : 2014-01-09 Registry Services, LLC luxe // luxury : 2013-10-17 Luxury Partners, LLC @@ -8964,7 +8954,7 @@ market // marketing : 2013-11-07 Binky Moon, LLC marketing -// markets : 2014-12-11 Dotmarkets Registry Limited +// markets : 2014-12-11 Dog Beach, LLC markets // marriott : 2014-10-09 Marriott Worldwide Corporation @@ -9012,7 +9002,7 @@ menu // merckmsd : 2016-07-14 MSD Registry Holdings, Inc. merckmsd -// miami : 2013-12-19 Minds + Machines Group Limited +// miami : 2013-12-19 Registry Services, LLC miami // microsoft : 2014-12-18 Microsoft Corporation @@ -9093,6 +9083,9 @@ mtn // mtr : 2015-03-12 MTR Corporation Limited mtr +// music : 2021-05-04 DotMusic Limited +music + // mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC mutual @@ -9204,9 +9197,6 @@ obi // observer : 2015-04-30 Dog Beach, LLC observer -// off : 2015-07-23 Johnson Shareholdings, Inc. -off - // office : 2015-03-12 Microsoft Corporation office @@ -9237,7 +9227,7 @@ ong // onl : 2013-09-16 iRegistry GmbH onl -// online : 2015-01-15 DotOnline Inc. +// online : 2015-01-15 Radix FZC online // ooo : 2014-01-09 INFIBEAM AVENUES LIMITED @@ -9393,7 +9383,7 @@ pramerica // praxi : 2013-12-05 Praxi S.p.A. praxi -// press : 2014-04-03 DotPress Inc. +// press : 2014-04-03 Radix FZC press // prime : 2015-06-25 Amazon Registry Services, Inc. @@ -9444,18 +9434,12 @@ quebec // quest : 2015-03-26 XYZ.COM LLC quest -// qvc : 2015-07-30 QVC, Inc. -qvc - // racing : 2014-12-04 Premier Registry Limited racing // radio : 2016-07-21 European Broadcasting Union (EBU) radio -// raid : 2015-07-23 Johnson Shareholdings, Inc. -raid - // read : 2014-12-18 Amazon Registry Services, Inc. read @@ -9546,16 +9530,13 @@ rio // rip : 2014-07-10 Dog Beach, LLC rip -// rmit : 2015-11-19 Royal Melbourne Institute of Technology -rmit - // rocher : 2014-12-18 Ferrero Trading Lux S.A. rocher // rocks : 2013-11-14 Dog Beach, LLC rocks -// rodeo : 2013-12-19 Minds + Machines Group Limited +// rodeo : 2013-12-19 Registry Services, LLC rodeo // rogers : 2015-08-06 Rogers Communications Canada Inc. @@ -9663,9 +9644,6 @@ schwarz // science : 2014-09-11 dot Science Limited science -// scjohnson : 2015-07-23 Johnson Shareholdings, Inc. -scjohnson - // scot : 2014-01-23 Dot Scot Registry Limited scot @@ -9756,7 +9734,7 @@ sina // singles : 2013-08-27 Binky Moon, LLC singles -// site : 2015-01-15 DotSite Inc. +// site : 2015-01-15 Radix FZC site // ski : 2015-04-09 Afilias Limited @@ -9816,7 +9794,7 @@ soy // spa : 2019-09-19 Asia Spa and Wellness Promotion Council Limited spa -// space : 2014-04-03 DotSpace Inc. +// space : 2014-04-03 Radix FZC space // sport : 2017-11-16 Global Association of International Sports Federations (GAISF) @@ -9855,7 +9833,7 @@ stockholm // storage : 2014-12-22 XYZ.COM LLC storage -// store : 2015-04-09 DotStore Inc. +// store : 2015-04-09 Radix FZC store // stream : 2016-01-08 dot Stream Limited @@ -9882,7 +9860,7 @@ supply // support : 2013-10-24 Binky Moon, LLC support -// surf : 2014-01-09 Minds + Machines Group Limited +// surf : 2014-01-09 Registry Services, LLC surf // surgery : 2014-03-20 Binky Moon, LLC @@ -9894,9 +9872,6 @@ suzuki // swatch : 2015-01-08 The Swatch Group Ltd swatch -// swiftcover : 2015-07-23 Swiftcover Insurance Services Limited -swiftcover - // swiss : 2014-10-16 Swiss Confederation swiss @@ -9945,7 +9920,7 @@ tdk // team : 2015-03-05 Binky Moon, LLC team -// tech : 2015-01-30 Personals TLD Inc. +// tech : 2015-01-30 Radix FZC tech // technology : 2013-09-13 Binky Moon, LLC @@ -10038,7 +10013,7 @@ toys // trade : 2014-01-23 Elite Registry Limited trade -// trading : 2014-12-11 Dottrading Registry Limited +// trading : 2014-12-11 Dog Beach, LLC trading // training : 2013-11-07 Binky Moon, LLC @@ -10089,7 +10064,7 @@ unicom // university : 2014-03-06 Binky Moon, LLC university -// uno : 2013-09-11 DotSite Inc. +// uno : 2013-09-11 Radix FZC uno // uol : 2014-05-01 UBN INTERNET LTDA. @@ -10140,7 +10115,7 @@ villas // vin : 2015-06-18 Binky Moon, LLC vin -// vip : 2015-01-22 Minds + Machines Group Limited +// vip : 2015-01-22 Registry Services, LLC vip // virgin : 2014-09-25 Virgin Enterprises Limited @@ -10161,7 +10136,7 @@ vivo // vlaanderen : 2014-02-06 DNS.be vzw vlaanderen -// vodka : 2013-12-19 Minds + Machines Group Limited +// vodka : 2013-12-19 Registry Services, LLC vodka // volkswagen : 2015-05-14 Volkswagen Group of America Inc. @@ -10218,10 +10193,10 @@ webcam // weber : 2015-06-04 Saint-Gobain Weber SA weber -// website : 2014-04-03 DotWebsite Inc. +// website : 2014-04-03 Radix FZC website -// wedding : 2014-04-24 Minds + Machines Group Limited +// wedding : 2014-04-24 Registry Services, LLC wedding // weibo : 2015-03-05 Sina Corporation @@ -10263,7 +10238,7 @@ wolterskluwer // woodside : 2015-07-09 Woodside Petroleum Limited woodside -// work : 2013-12-19 Minds + Machines Group Limited +// work : 2013-12-19 Registry Services, LLC work // works : 2013-11-14 Binky Moon, LLC @@ -10314,9 +10289,6 @@ xin // xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED OY 在线 -// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd. -大众汽车 - // xn--3pxu8k : 2015-01-15 VeriSign Sarl 点看 @@ -10326,7 +10298,7 @@ xin // xn--45q11c : 2013-11-21 Zodiac Gemini Ltd 八卦 -// xn--4gbrim : 2013-10-04 Fans TLD Limited +// xn--4gbrim : 2013-10-04 Helium TLDs Ltd موقع // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center @@ -10581,7 +10553,7 @@ xyz // yachts : 2014-01-09 XYZ.COM LLC yachts -// yahoo : 2015-04-02 Yahoo! Domain Services Inc. +// yahoo : 2015-04-02 Oath Inc. yahoo // yamaxun : 2014-12-18 Amazon Registry Services, Inc. @@ -10593,7 +10565,7 @@ yandex // yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD. yodobashi -// yoga : 2014-05-29 Minds + Machines Group Limited +// yoga : 2014-05-29 Registry Services, LLC yoga // yokohama : 2013-12-12 GMO Registry, Inc. @@ -10649,15 +10621,22 @@ graphox.us *.devcdnaccesso.com // Adobe : https://www.adobe.com/ -// Submitted by Ian Boston +// Submitted by Ian Boston and Lars Trieloff adobeaemcloud.com -adobeaemcloud.net *.dev.adobeaemcloud.com +hlx.live +adobeaemcloud.net +hlx.page +hlx3.page // Agnat sp. z o.o. : https://domena.pl // Submitted by Przemyslaw Plewa beep.pl +// Aiven: https://aiven.io/ +// Submitted by Etienne Stalmans +aivencloud.com + // alboto.ca : http://alboto.ca // Submitted by Anton Avramov barsy.ca @@ -10779,10 +10758,6 @@ s3-website.eu-west-2.amazonaws.com s3-website.eu-west-3.amazonaws.com s3-website.us-east-2.amazonaws.com -// Amsterdam Wireless: https://www.amsterdamwireless.nl/ -// Submitted by Imre Jonk -amsw.nl - // Amune : https://amune.org/ // Submitted by Team Amune t3l3p0rt.net @@ -10792,11 +10767,19 @@ tele.amune.org // Submitted by Apigee Security Team apigee.io +// Apphud : https://apphud.com +// Submitted by Alexander Selivanov +siiites.com + // Appspace : https://www.appspace.com // Submitted by Appspace Security Team appspacehosted.com appspaceusercontent.com +// Appudo UG (haftungsbeschränkt) : https://www.appudo.com +// Submitted by Alexander Hochbaum +appudo.net + // Aptible : https://www.aptible.com/ // Submitted by Thomas Orozco on-aptible.com @@ -10822,15 +10805,31 @@ sweetpepper.org // Submitted by Vincent Tseng myasustor.com +// Atlassian : https://atlassian.com +// Submitted by Sam Smyth +cdn.prod.atlassian-dev.net + +// Authentick UG (haftungsbeschränkt) : https://authentick.net +// Submitted by Lukas Reschke +translated.page + // AVM : https://avm.de // Submitted by Andreas Weise myfritz.net +// AVStack Pte. Ltd. : https://avstack.io +// Submitted by Jasper Hugo +onavstack.net + // AW AdvisorWebsites.com Software Inc : https://advisorwebsites.com // Submitted by James Kennedy *.awdev.ca *.advisor.ws +// AZ.pl sp. z.o.o: https://az.pl +// Submitted by Krzysztof Wolski +ecommerce-shop.pl + // b-data GmbH : https://www.b-data.io // Submitted by Olivier Benz b-data.io @@ -10843,12 +10842,33 @@ backplaneapp.io // Submitted by Petros Angelatos balena-devices.com +// University of Banja Luka : https://unibl.org +// Domains for Republic of Srpska administrative entity. +// Submitted by Marko Ivanovic +rs.ba + // Banzai Cloud // Submitted by Janos Matyas *.banzai.cloud app.banzaicloud.io *.backyards.banzaicloud.io +// BASE, Inc. : https://binc.jp +// Submitted by Yuya NAGASAWA +base.ec +official.ec +buyshop.jp +fashionstore.jp +handcrafted.jp +kawaiishop.jp +supersale.jp +theshop.jp +shopselect.net +base.shop + +// Beget Ltd +// Submitted by Lev Nekrasov +*.beget.app // BetaInABox // Submitted by Adrian @@ -10858,6 +10878,10 @@ betainabox.com // Submitted by Nathan O'Sullivan bnr.la +// Bitbucket : http://bitbucket.org +// Submitted by Andy Ortlieb +bitbucket.io + // Blackbaud, Inc. : https://www.blackbaud.com // Submitted by Paul Crowder blackbaudcdn.net @@ -10866,6 +10890,10 @@ blackbaudcdn.net // Submitted by Luke Bratch of.je +// Blue Bite, LLC : https://bluebite.com +// Submitted by Joshua Weiss +bluebite.io + // Boomla : https://boomla.com // Submitted by Tibor Halter boomla.net @@ -10887,6 +10915,10 @@ square7.de bplaced.net square7.net +// Brendly : https://brendly.rs +// Submitted by Dusan Radovanovic +shop.brendly.rs + // BrowserSafetyMark // Submitted by Dave Tharp browsersafetymark.io @@ -10907,9 +10939,11 @@ mycd.eu // Carrd : https://carrd.co // Submitted by AJ +drr.ac +uwu.ai carrd.co crd.co -uwu.ai +ju.mp // CentralNic : http://www.centralnic.com/names/domains // Submitted by registry @@ -10937,7 +10971,6 @@ za.com // No longer operated by CentralNic, these entries should be adopted and/or removed by current operators // Submitted by Gavin Brown ar.com -gb.com hu.com kr.com no.com @@ -10991,25 +11024,19 @@ cx.ua discourse.group discourse.team -// ClearVox : http://www.clearvox.nl/ -// Submitted by Leon Rowland -virtueeldomein.nl - // Clever Cloud : https://www.clever-cloud.com/ // Submitted by Quentin Adam cleverapps.io // Clerk : https://www.clerk.dev // Submitted by Colin Sidoti +clerk.app +clerkstage.app *.lcl.dev *.lclstage.dev *.stg.dev *.stgstage.dev -// Clic2000 : https://clic2000.fr -// Submitted by Mathilde Blanchemanche -clic2000.net - // ClickRising : https://clickrising.com/ // Submitted by Umut Gumeli clickrising.net @@ -11034,8 +11061,8 @@ cloudcontrolled.com cloudcontrolapp.com // Cloudera, Inc. : https://www.cloudera.com/ -// Submitted by Philip Langdale -cloudera.site +// Submitted by Kedarnath Waikar +*.cloudera.site // Cloudflare, Inc. : https://www.cloudflare.com/ // Submitted by Cloudflare Team @@ -11084,6 +11111,10 @@ cloudns.us // Submitted by Angelo Gladding cnpy.gdn +// Codeberg e. V. : https://codeberg.org +// Submitted by Moritz Marquardt +codeberg.page + // CoDNS B.V. co.nl co.no @@ -11130,11 +11161,6 @@ cupcake.is // Submitted by Marvin Wiesner curv.dev -// Curvegrid Inc. : https://www.curvegrid.com/ -// Submitted by Pierre Rousset -multibaas.app -multibaas.com - // Customer OCI - Oracle Dyn https://cloud.oracle.com/home https://dyn.com/dns/ // Submitted by Gregory Drake // Note: This is intended to also include customer-oci.com due to wildcards implicitly including the current label @@ -11189,10 +11215,19 @@ dyndns.dappnode.io // Submitted by Paul Biggar builtwithdark.com +// DataDetect, LLC. : https://datadetect.com +// Submitted by Andrew Banchich +demo.datadetect.com +instance.datadetect.com + // Datawire, Inc : https://www.datawire.io // Submitted by Richard Li edgestack.me +// DDNS5 : https://ddns5.com +// Submitted by Cameron Elliott +ddns5.com + // Debian : https://www.debian.org/ // Submitted by Peter Palfrader / Debian Sysadmin Team debian.net @@ -11206,6 +11241,21 @@ deno-staging.dev // Submitted by Peter Thomassen dedyn.io +// Deta: https://www.deta.sh/ +// Submitted by Aavash Shrestha +deta.app +deta.dev + +// Diher Solutions : https://diher.solutions +// Submitted by Didi Hermawan +*.rss.my.id +*.diher.solutions + +// Discord Inc : https://discord.com +// Submitted by Sahn Lam +discordsays.com +discordsez.com + // DNS Africa Ltd https://dns.business // Submitted by Calvin Browne jozi.biz @@ -11554,10 +11604,14 @@ ddnss.org definima.net definima.io -// DigitalOcean : https://digitalocean.com/ -// Submitted by Braxton Huggins +// DigitalOcean App Platform : https://www.digitalocean.com/products/app-platform/ +// Submitted by Braxton Huggins ondigitalocean.app +// DigitalOcean Spaces : https://www.digitalocean.com/products/spaces/ +// Submitted by Robin H. Johnson +*.digitaloceanspaces.com + // dnstrace.pro : https://dnstrace.pro/ // Submitted by Chris Partridge bci.dnstrace.pro @@ -11590,6 +11644,16 @@ dynv6.net // Submitted by Vladimir Dudr e4.cz +// eero : https://eero.com/ +// Submitted by Yue Kang +eero.online +eero-stage.online + +// Elementor : Elementor Ltd. +// Submitted by Anton Barkan +elementor.cloud +elementor.cool + // En root‽ : https://en-root.org // Submitted by Emmanuel Raviart en-root.fr @@ -11597,20 +11661,16 @@ en-root.fr // Enalean SAS: https://www.enalean.com // Submitted by Thomas Cottier mytuleap.com +tuleap-partners.com // ECG Robotics, Inc: https://ecgrobotics.org // Submitted by onred.one staging.onred.one -// One.com: https://www.one.com/ -// Submitted by Jacob Bunk Nielsen -service.one - -// Enonic : http://enonic.com/ -// Submitted by Erik Kaareng-Sunde -enonic.io -customer.enonic.io +// encoway GmbH : https://www.encoway.de +// Submitted by Marcel Daus +eu.encoway.cloud // EU.org https://eu.org/ // Submitted by Pierre Beyssac @@ -11817,8 +11877,7 @@ app.os.stg.fedoraproject.org // submitted by Keith Fairley conn.uk copro.uk -couk.me -ukco.me +hosp.uk // Fermax : https://fermax.com/ // submitted by Koen Van Isterdael @@ -11850,6 +11909,11 @@ fireweb.app // Submitted by Louis Chemineau flap.id +// FlashDrive : https://flashdrive.io +// Submitted by Eric Chan +onflashdrive.app +fldrv.com + // fly.io: https://fly.io // Submitted by Kurt Mackey fly.dev @@ -11863,13 +11927,17 @@ flynnhosting.net // Forgerock : https://www.forgerock.com // Submitted by Roderick Parr forgeblocks.com -*.id.forgerock.io +id.forgerock.io // Framer : https://www.framer.com // Submitted by Koen Rouwhorst framer.app framercanvas.com +// Frusky MEDIA&PR : https://www.frusky.de +// Submitted by Victor Pupynin +*.frusky.de + // RavPage : https://www.ravpage.co.il // Submitted by Roni Horowitz ravpage.co.il @@ -11910,10 +11978,22 @@ futuremailing.at *.kunden.ortsinfo.at *.statics.cloud -// GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains -// Submitted by David Illsley +// GDS : https://www.gov.uk/service-manual/technology/managing-domain-names +// Submitted by Stephen Ford +independent-commission.uk +independent-inquest.uk +independent-inquiry.uk +independent-panel.uk +independent-review.uk +public-inquiry.uk +royal-commission.uk +campaign.gov.uk service.gov.uk +// CDDO : https://www.gov.uk/guidance/get-an-api-domain-on-govuk +// Submitted by Jamie Tanna +api.gov.uk + // Gehirn Inc. : https://www.gehirn.co.jp/ // Submitted by Kohei YOSHIDA gehirn.ne.jp @@ -11936,8 +12016,9 @@ gsj.bz // GitHub, Inc. // Submitted by Patrick Toomey -github.io githubusercontent.com +githubpreview.dev +github.io // GitLab, Inc. // Submitted by Alex Hanselka @@ -11952,14 +12033,123 @@ gitpage.si // Submitted by Mads Hartmann glitch.me +// Global NOG Alliance : https://nogalliance.org/ +// Submitted by Sander Steffann +nog.community + // Globe Hosting SRL : https://www.globehosting.com/ // Submitted by Gavin Brown co.ro shop.ro // GMO Pepabo, Inc. : https://pepabo.com/ -// Submitted by dojineko +// Submitted by Hosting Div lolipop.io +angry.jp +babyblue.jp +babymilk.jp +backdrop.jp +bambina.jp +bitter.jp +blush.jp +boo.jp +boy.jp +boyfriend.jp +but.jp +candypop.jp +capoo.jp +catfood.jp +cheap.jp +chicappa.jp +chillout.jp +chips.jp +chowder.jp +chu.jp +ciao.jp +cocotte.jp +coolblog.jp +cranky.jp +cutegirl.jp +daa.jp +deca.jp +deci.jp +digick.jp +egoism.jp +fakefur.jp +fem.jp +flier.jp +floppy.jp +fool.jp +frenchkiss.jp +girlfriend.jp +girly.jp +gloomy.jp +gonna.jp +greater.jp +hacca.jp +heavy.jp +her.jp +hiho.jp +hippy.jp +holy.jp +hungry.jp +icurus.jp +itigo.jp +jellybean.jp +kikirara.jp +kill.jp +kilo.jp +kuron.jp +littlestar.jp +lolitapunk.jp +lomo.jp +lovepop.jp +lovesick.jp +main.jp +mods.jp +mond.jp +mongolian.jp +moo.jp +namaste.jp +nikita.jp +nobushi.jp +noor.jp +oops.jp +parallel.jp +parasite.jp +pecori.jp +peewee.jp +penne.jp +pepper.jp +perma.jp +pigboat.jp +pinoko.jp +punyu.jp +pupu.jp +pussycat.jp +pya.jp +raindrop.jp +readymade.jp +sadist.jp +schoolbus.jp +secret.jp +staba.jp +stripper.jp +sub.jp +sunnyday.jp +thick.jp +tonkotsu.jp +under.jp +upper.jp +velvet.jp +verse.jp +versus.jp +vivian.jp +watson.jp +weblike.jp +whitesnow.jp +zombie.jp +heteml.net // GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/ // Submitted by Tom Whitwell @@ -12000,6 +12190,7 @@ withyoutube.com *.gateway.dev cloud.goog translate.goog +*.usercontent.goog cloudfunctions.net blogspot.ae blogspot.al @@ -12076,6 +12267,10 @@ blogspot.tw blogspot.ug blogspot.vn +// Goupile : https://goupile.fr +// Submitted by Niels Martignene +goupile.fr + // Group 53, LLC : https://www.group53.com // Submitted by Tyler Todd awsmppl.com @@ -12086,7 +12281,7 @@ günstigbestellen.de günstigliefern.de // Hakaran group: http://hakaran.cz -// Submited by Arseniy Sokolov +// Submitted by Arseniy Sokolov fin.ci free.hr caa.li @@ -12106,6 +12301,10 @@ hashbang.sh hasura.app hasura-app.io +// Heilbronn University of Applied Sciences - Faculty Informatics (GitLab Pages): https://www.hs-heilbronn.de +// Submitted by Richard Zowalla +pages.it.hs-heilbronn.de + // Hepforge : https://www.hepforge.org // Submitted by David Grellscheid hepforge.org @@ -12117,16 +12316,26 @@ herokussl.com // Hibernating Rhinos // Submitted by Oren Eini +ravendb.cloud myravendb.com ravendb.community ravendb.me development.run ravendb.run +// home.pl S.A.: https://home.pl +// Submitted by Krzysztof Wolski +homesklep.pl + // Hong Kong Productivity Council: https://www.hkpc.org/ // Submitted by SECaaS Team secaas.hk +// Hoplix : https://www.hoplix.com +// Submitted by Danilo De Franco +hoplix.shop + + // HOSTBIP REGISTRY : https://www.hostbip.com/ // Submitted by Atanunu Igbunuroghene orx.biz @@ -12225,7 +12434,7 @@ to.leg.br pixolino.com // Internet-Pro, LLP: https://netangels.ru/ -// Submited by Vasiliy Sheredeko +// Submitted by Vasiliy Sheredeko na4u.ru // iopsys software solutions AB : https://iopsys.eu/ @@ -12248,7 +12457,7 @@ iserv.dev iobb.net // Jelastic, Inc. : https://jelastic.com/ -// Submited by Ihor Kolodyuk +// Submitted by Ihor Kolodyuk mel.cloudlets.com.au cloud.interhostsolutions.be users.scale.virtualcloud.com.br @@ -12341,6 +12550,10 @@ myjino.ru *.spectrum.myjino.ru *.vps.myjino.ru +// Jotelulu S.L. : https://jotelulu.com +// Submitted by Daniel Fariña +jotelulu.cloud + // Joyent : https://www.joyent.com/ // Submitted by Brian Bennett *.triton.zone @@ -12355,6 +12568,14 @@ js.org kaas.gg khplay.nl +// Kakao : https://www.kakaocorp.com/ +// Submitted by JaeYoong Lee +ktistory.com + +// Kapsi : https://kapsi.fi +// Submitted by Tomi Juntunen +kapsi.fi + // Keyweb AG : https://www.keyweb.de // Submitted by Martin Dannehl keymachine.de @@ -12368,6 +12589,10 @@ uni5.net // Submitted by Roy Keene knightpoint.systems +// KoobinEvent, SL: https://www.koobin.com +// Submitted by Iván Oliva +koobin.events + // KUROKU LTD : https://kuroku.ltd/ // Submitted by DisposaBoy oya.to @@ -12426,6 +12651,7 @@ linkyard-cloud.ch members.linode.com *.nodebalancer.linode.com *.linodeobjects.com +ip.linodeusercontent.com // LiquidNet Ltd : http://www.liquidnetlimited.com/ // Submitted by Victor Velchev @@ -12443,6 +12669,10 @@ loginline.io loginline.services loginline.site +// Lokalized : https://lokalized.nl +// Submitted by Noah Taheij +servers.run + // Lõhmus Family, The // Submitted by Heiki Lõhmus lohmus.me @@ -12483,6 +12713,7 @@ barsy.online barsy.org barsy.pro barsy.pub +barsy.ro barsy.shop barsy.site barsy.support @@ -12520,6 +12751,11 @@ mcdir.ru mcpre.ru vps.mcdir.ru +// Mediatech : https://mediatech.by +// Submitted by Evgeniy Kozhuhovskiy +mediatech.by +mediatech.dev + // Medicom Health : https://medicomhealth.com // Submitted by Michael Olson hra.health @@ -12625,9 +12861,9 @@ that.win from.work to.work -// NCTU.ME : https://nctu.me/ -// Submitted by Tocknicsu -nctu.me +// Net at Work Gmbh : https://www.netatwork.de +// Submitted by Jan Jaeschke +cloud.nospamproxy.com // Netlify : https://www.netlify.com // Submitted by Jessica Parsons @@ -12649,10 +12885,18 @@ nh-serv.co.uk // Submitted by Jeff Wheelhouse nfshost.com +// Noop : https://noop.app +// Submitted by Nathaniel Schweinberg +*.developer.app +noop.app + // Northflank Ltd. : https://northflank.com/ // Submitted by Marco Suter *.northflank.app +*.build.run *.code.run +*.database.run +*.migration.run // Noticeable : https://noticeable.io // Submitted by Laurent Pellegrino @@ -12783,11 +13027,6 @@ zapto.org // Submitted by Konstantin Nosov stage.nodeart.io -// Nodum B.V. : https://nodum.io/ -// Submitted by Wietse Wind -nodum.co -nodum.io - // Nucleos Inc. : https://nucleos.com // Submitted by Piotr Zduniak pcloud.host @@ -12796,60 +13035,6 @@ pcloud.host // Submitted by Matthew Brown nyc.mn -// NymNom : https://nymnom.com/ -// Submitted by NymNom -nom.ae -nom.af -nom.ai -nom.al -nym.by -nom.bz -nym.bz -nom.cl -nym.ec -nom.gd -nom.ge -nom.gl -nym.gr -nom.gt -nym.gy -nym.hk -nom.hn -nym.ie -nom.im -nom.ke -nym.kz -nym.la -nym.lc -nom.li -nym.li -nym.lt -nym.lu -nom.lv -nym.me -nom.mk -nym.mn -nym.mx -nom.nu -nym.nz -nym.pe -nym.pt -nom.pw -nom.qa -nym.ro -nom.rs -nom.si -nym.sk -nom.st -nym.su -nym.sx -nom.tj -nym.tw -nom.ug -nom.uy -nom.vc -nom.vg - // Observable, Inc. : https://observablehq.com // Submitted by Mike Bostock static.observableusercontent.com @@ -12870,6 +13055,10 @@ cloudycluster.net // Submitted by Vicary Archangel omniwe.site +// One.com: https://www.one.com/ +// Submitted by Jacob Bunk Nielsen +service.one + // One Fold Media : http://www.onefoldmedia.com/ // Submitted by Eddie Jones nid.io @@ -12890,8 +13079,14 @@ orsites.com // Submitted by Yngve Pettersen operaunite.com -// Oursky Limited : https://skygear.io/ -// Submited by Skygear Developer +// Orange : https://www.orange.com +// Submitted by Alexandre Linte +tech.orange + +// Oursky Limited : https://authgear.com/, https://skygear.io/ +// Submitted by Authgear Team , Skygear Developer +authgear-staging.com +authgearapps.com skygearapp.com // OutSystems @@ -12967,8 +13162,6 @@ perspecta.cloud // PE Ulyanov Kirill Sergeevich : https://airy.host // Submitted by Kirill Ulyanov lk3.ru -ra-ru.ru -zsew.ru // Planet-Work : https://www.planet-work.com/ // Submitted by Frédéric VANNIÈRE @@ -12999,10 +13192,25 @@ pleskns.com // Submitted by Maximilian Schieder dyn53.io +// Porter : https://porter.run/ +// Submitted by Rudraksh MK +onporter.run + // Positive Codes Technology Company : http://co.bn/faq.html // Submitted by Zulfais co.bn +// Postman, Inc : https://postman.com +// Submitted by Rahul Dhawan +postman-echo.com +pstmn.io +mock.pstmn.io +httpbin.org + +//prequalifyme.today : https://prequalifyme.today +//Submitted by DeepakTiwari deepak@ivylead.io +prequalifyme.today + // prgmr.com : https://prgmr.com/ // Submitted by Sarah Newman xen.prgmr.com @@ -13034,8 +13242,8 @@ pubtls.org // PythonAnywhere LLP: https://www.pythonanywhere.com // Submitted by Giles Thomas -*.pythonanywhere.com -*.eu.pythonanywhere.com +pythonanywhere.com +eu.pythonanywhere.com // QOTO, Org. // Submitted by Jeffrey Phillips Freeman @@ -13053,6 +13261,10 @@ qbuser.com // Submitted by Scott Claeys cloudsite.builders +// Redgate Software: https://red-gate.com +// Submitted by Andrew Farries +instances.spawn.cc + // Redstar Consultants : https://www.redstarconsultants.com/ // Submitted by Jons Slemmer instantcloud.cn @@ -13133,10 +13345,22 @@ hzc.io wellbeingzone.eu wellbeingzone.co.uk +// Rico Developments Limited : https://adimo.co +// Submitted by Colin Brown +adimo.co.uk + +// Riseup Networks : https://riseup.net +// Submitted by Micah Anderson +itcouldbewor.se + // Rochester Institute of Technology : http://www.rit.edu/ // Submitted by Jennifer Herting git-pages.rit.edu +// Rocky Enterprise Software Foundation : https://resf.org +// Submitted by Neil Hanlon +rocky.page + // Rusnames Limited: http://rusnames.ru/ // Submitted by Sergey Zotov биз.рус @@ -13189,10 +13413,18 @@ spdns.org // Submitted by Artem Kondratev seidat.net +// Sellfy : https://sellfy.com +// Submitted by Yuriy Romadin +sellfy.store + // Senseering GmbH : https://www.senseering.de // Submitted by Felix Mönckemeyer senseering.net +// Sendmsg: https://www.sendmsg.co.il +// Submitted by Assaf Stern +minisite.ms + // Service Magnet : https://myservicemagnet.com // Submitted by Dave Sanders magnet.page @@ -13254,6 +13486,10 @@ beta.bounty-full.com // Submitted by Aral Balkan small-web.org +// Smoove.io : https://www.smoove.io/ +// Submitted by Dan Kozak +vp4.me + // Snowplow Analytics : https://snowplowanalytics.com/ // Submitted by Ian Streeter try-snowplow.com @@ -13266,12 +13502,22 @@ srht.site // Submitted by Adrien Gillon stackhero-network.com +// Staclar : https://staclar.com +// Submitted by Q Misell +musician.io +// Submitted by Matthias Merkel +novecore.site + // staticland : https://static.land // Submitted by Seth Vincent static.land dev.static.land sites.static.land +// Storebase : https://www.storebase.io +// Submitted by Tony Schirmer +storebase.store + // Strategic System Consulting (eApps Hosting): https://www.eapps.com/ // Submitted by Alex Oancea vps-host.net @@ -13296,6 +13542,28 @@ spacekit.io // Submitted by Stefan Neufeind customer.speedpartner.de +// Spreadshop (sprd.net AG) : https://www.spreadshop.com/ +// Submitted by Martin Breest +myspreadshop.at +myspreadshop.com.au +myspreadshop.be +myspreadshop.ca +myspreadshop.ch +myspreadshop.com +myspreadshop.de +myspreadshop.dk +myspreadshop.es +myspreadshop.fi +myspreadshop.fr +myspreadshop.ie +myspreadshop.it +myspreadshop.net +myspreadshop.nl +myspreadshop.no +myspreadshop.pl +myspreadshop.se +myspreadshop.co.uk + // Standard Library : https://stdlib.com // Submitted by Jacob Lee api.stdlib.com @@ -13317,6 +13585,13 @@ user.srcf.net // Submitted by Dan Miller temp-dns.com +// Supabase : https://supabase.io +// Submitted by Inian Parameshwaran +supabase.co +supabase.in +supabase.net +su.paba.se + // Symfony, SAS : https://symfony.com/ // Submitted by Fabien Potencier *.s5y.io @@ -13344,10 +13619,19 @@ synology.me vpnplus.to direct.quickconnect.to +// Tabit Technologies Ltd. : https://tabit.cloud/ +// Submitted by Oren Agiv +tabitorder.co.il + // TAIFUN Software AG : http://taifun-software.de // Submitted by Bjoern Henke taifun-dns.de +// Tailscale Inc. : https://www.tailscale.com +// Submitted by David Anderson +beta.tailscale.net +ts.net + // TASK geographical domains (www.task.gda.pl/uslugi/dns) gda.pl gdansk.pl @@ -13355,9 +13639,14 @@ gdynia.pl med.pl sopot.pl +// team.blue https://team.blue +// Submitted by Cedric Dubois +site.tb-hosting.com + // Teckids e.V. : https://www.teckids.org // Submitted by Dominik George -edugit.org +edugit.io +s3.teckids.org // Telebit : https://telebit.cloud // Submitted by AJ ONeal @@ -13371,13 +13660,21 @@ gwiddle.co.uk // Thingdust AG : https://thingdust.com/ // Submitted by Adrian Imboden +*.firenet.ch +*.svc.firenet.ch +reservd.com thingdustdata.com cust.dev.thingdust.io cust.disrec.thingdust.io cust.prod.thingdust.io cust.testing.thingdust.io -*.firenet.ch -*.svc.firenet.ch +reservd.dev.thingdust.io +reservd.disrec.thingdust.io +reservd.testing.thingdust.io + +// ticket i/O GmbH : https://ticket.io +// Submitted by Christian Franke +tickets.io // Tlon.io : https://tlon.io // Submitted by Mark Staarink @@ -13427,6 +13724,10 @@ lima.zone *.transurl.eu *.transurl.nl +// TransIP: https://www.transip.nl +// Submitted by Cedric Dubois +site.transip.me + // TuxFamily : http://tuxfamily.org // Submitted by TuxFamily administrators tuxfamily.org @@ -13447,6 +13748,14 @@ syno-ds.de synology-diskstation.de synology-ds.de +// Typedream : https://typedream.com +// Submitted by Putri Karunia +typedream.app + +// Typeform : https://www.typeform.com +// Submitted by Sergi Ferriz +pro.typeform.com + // Uberspace : https://uberspace.de // Submitted by Moritz Werner uber.space @@ -13464,6 +13773,10 @@ inc.hk virtualuser.de virtual-user.de +// Upli : https://upli.io +// Submitted by Lenny Bakkalian +upli.io + // urown.net : https://urown.net // Submitted by Hostmaster urown.cloud @@ -13526,7 +13839,6 @@ at.md de.md jp.md to.md -uwu.nu indie.porn vxl.sh ch.tc @@ -13542,19 +13854,14 @@ me.vu // Submitted by Serhii Rostilo v.ua +// Vultr Objects : https://www.vultr.com/products/object-storage/ +// Submitted by Niels Maumenee +*.vultrobjects.com + // Waffle Computer Inc., Ltd. : https://docs.waffleinfo.com // Submitted by Masayuki Note wafflecell.com -// WapBlog.ID : https://www.wapblog.id -// Submitted by Fajar Sodik -idnblogger.com -indowapblog.com -bloger.id -wblog.id -wbq.me -fastblog.net - // WebHare bv: https://www.webhare.com/ // Submitted by Arnold Hendriks *.webhare.dev @@ -13591,6 +13898,10 @@ wmcloud.org panel.gg daemon.panel.gg +// Wizard Zines : https://wizardzines.com +// Submitted by Julia Evans +messwithdns.com + // WoltLab GmbH : https://www.woltlab.com // Submitted by Tim Düsterhus woltlab-demo.com @@ -13600,6 +13911,12 @@ diskussionsbereich.de community-pro.net meinforum.net +// Woods Valldata : https://www.woodsvalldata.co.uk/ +// Submitted by Chris Whittle +affinitylottery.org.uk +raffleentry.org.uk +weeklylottery.org.uk + // WP Engine : https://wpengine.com/ // Submitted by Michael Smith // Submitted by Brandon DuRette @@ -13607,7 +13924,7 @@ wpenginepowered.com js.wpenginepowered.com // Wix.com, Inc. : https://www.wix.com -// Submitted by Shahar Talmi +// Submitted by Shahar Talmi wixsite.com editorx.io @@ -13653,6 +13970,7 @@ ybo.trade // Yunohost : https://yunohost.org // Submitted by Valentin Grimaud +ynh.fr nohost.me noho.st From 0028a2fa0fed18584014a7d68139fbb69e6b8047 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 12 Apr 2022 09:39:16 +0200 Subject: [PATCH 324/450] Update definitions --- CHANGELOG.md | 4 +++ data/list.txt | 87 ++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 69 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9c81d9d..4ad857d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). - Fixed YARD rake task (GH-179) +### Changed + +- Updated definitions. + ## 4.0.6 diff --git a/data/list.txt b/data/list.txt index 27cdda89..237e159c 100644 --- a/data/list.txt +++ b/data/list.txt @@ -22,8 +22,7 @@ org.ac ad nom.ad -// ae : https://en.wikipedia.org/wiki/.ae -// see also: "Domain Name Eligibility Policy" at http://www.aeda.ae/eng/aepolicy.php +// ae : https://tdra.gov.ae/en/aeda/ae-policies ae co.ae net.ae @@ -7131,7 +7130,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-02-18T15:13:38Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-03-27T15:13:38Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7334,7 +7333,7 @@ audi // audible : 2015-06-25 Amazon Registry Services, Inc. audible -// audio : 2014-03-20 UNR Corp. +// audio : 2014-03-20 XYZ.COM LLC audio // auspost : 2015-08-13 Australian Postal Corporation @@ -7703,7 +7702,7 @@ cheap // chintai : 2015-06-11 CHINTAI Corporation chintai -// christmas : 2013-11-21 UNR Corp. +// christmas : 2013-11-21 XYZ.COM LLC christmas // chrome : 2014-07-24 Charleston Road Registry Inc. @@ -7952,7 +7951,7 @@ dhl // diamonds : 2013-09-22 Binky Moon, LLC diamonds -// diet : 2014-06-26 UNR Corp. +// diet : 2014-06-26 XYZ.COM LLC diet // digital : 2014-03-06 Binky Moon, LLC @@ -8198,7 +8197,7 @@ flir // florist : 2013-11-07 Binky Moon, LLC florist -// flowers : 2014-10-09 UNR Corp. +// flowers : 2014-10-09 XYZ.COM LLC flowers // fly : 2014-05-08 Charleston Road Registry Inc. @@ -8285,7 +8284,7 @@ gallo // gallup : 2015-02-19 Gallup, Inc. gallup -// game : 2015-05-28 UNR Corp. +// game : 2015-05-28 XYZ.COM LLC game // games : 2015-05-28 Dog Beach, LLC @@ -8420,7 +8419,7 @@ guge // guide : 2013-09-13 Binky Moon, LLC guide -// guitars : 2013-11-14 UNR Corp. +// guitars : 2013-11-14 XYZ.COM LLC guitars // guru : 2013-08-27 Binky Moon, LLC @@ -8468,7 +8467,7 @@ hermes // hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc. hgtv -// hiphop : 2014-03-06 UNR Corp. +// hiphop : 2014-03-06 Dot Hip Hop, LLC hiphop // hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc. @@ -8516,7 +8515,7 @@ hospital // host : 2014-04-17 Radix FZC host -// hosting : 2014-05-29 UNR Corp. +// hosting : 2014-05-29 XYZ.COM LLC hosting // hot : 2015-08-27 Amazon Registry Services, Inc. @@ -8885,7 +8884,7 @@ locus // loft : 2015-07-30 Annco, Inc. loft -// lol : 2015-01-30 UNR Corp. +// lol : 2015-01-30 XYZ.COM LLC lol // london : 2013-11-14 Dot London Domains Limited @@ -9041,7 +9040,7 @@ moe // moi : 2014-12-18 Amazon Registry Services, Inc. moi -// mom : 2015-04-16 UNR Corp. +// mom : 2015-04-16 XYZ.COM LLC mom // monash : 2013-09-30 Monash University @@ -9320,7 +9319,7 @@ photos // physio : 2014-05-01 PhysBiz Pty Ltd physio -// pics : 2013-11-14 UNR Corp. +// pics : 2013-11-14 XYZ.COM LLC pics // pictet : 2014-06-26 Pictet Europe S.A. @@ -9995,7 +9994,7 @@ toray // toshiba : 2014-04-10 TOSHIBA Corporation toshiba -// total : 2015-08-06 Total SA +// total : 2015-08-06 TOTAL SE total // tours : 2015-01-22 Binky Moon, LLC @@ -10633,6 +10632,12 @@ hlx3.page // Submitted by Przemyslaw Plewa beep.pl +// Airkit : https://www.airkit.com/ +// Submitted by Grant Cooksey +airkitapps.com +airkitapps-au.com +airkitapps.eu + // Aiven: https://aiven.io/ // Submitted by Etienne Stalmans aivencloud.com @@ -11663,6 +11668,11 @@ en-root.fr mytuleap.com tuleap-partners.com +// Encoretivity AB: https://encore.dev +// Submitted by André Eriksson +encr.app +encoreapi.com + // ECG Robotics, Inc: https://ecgrobotics.org // Submitted by onred.one @@ -12657,6 +12667,10 @@ ip.linodeusercontent.com // Submitted by Victor Velchev we.bs +// Localcert : https://localcert.dev +// Submitted by Lann Martin +*.user.localcert.dev + // localzone.xyz // Submitted by Kenny Niehage localzone.xyz @@ -13383,6 +13397,34 @@ sandcats.io logoip.de logoip.com +// Scaleway : https://www.scaleway.com/ +// Submitted by Rémy Léone +fr-par-1.baremetal.scw.cloud +fr-par-2.baremetal.scw.cloud +nl-ams-1.baremetal.scw.cloud +fnc.fr-par.scw.cloud +functions.fnc.fr-par.scw.cloud +k8s.fr-par.scw.cloud +nodes.k8s.fr-par.scw.cloud +s3.fr-par.scw.cloud +s3-website.fr-par.scw.cloud +whm.fr-par.scw.cloud +priv.instances.scw.cloud +pub.instances.scw.cloud +k8s.scw.cloud +k8s.nl-ams.scw.cloud +nodes.k8s.nl-ams.scw.cloud +s3.nl-ams.scw.cloud +s3-website.nl-ams.scw.cloud +whm.nl-ams.scw.cloud +k8s.pl-waw.scw.cloud +nodes.k8s.pl-waw.scw.cloud +s3.pl-waw.scw.cloud +s3-website.pl-waw.scw.cloud +scalebook.scw.cloud +smartlabeling.scw.cloud +dedibox.fr + // schokokeks.org GbR : https://schokokeks.org/ // Submitted by Hanno Böck schokokeks.net @@ -13603,19 +13645,20 @@ syncloud.it // Synology, Inc. : https://www.synology.com/ // Submitted by Rony Weng -diskstation.me dscloud.biz -dscloud.me -dscloud.mobi +direct.quickconnect.cn dsmynas.com -dsmynas.net -dsmynas.org familyds.com -familyds.net -familyds.org +diskstation.me +dscloud.me i234.me myds.me synology.me +dscloud.mobi +dsmynas.net +familyds.net +dsmynas.org +familyds.org vpnplus.to direct.quickconnect.to From cfd33812c3e67c1268a115318264d660a7a05e55 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 12 Apr 2022 09:40:16 +0200 Subject: [PATCH 325/450] Update year --- LICENSE.txt | 2 +- README.md | 2 +- lib/public_suffix.rb | 2 +- lib/public_suffix/domain.rb | 2 +- lib/public_suffix/errors.rb | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- lib/public_suffix/version.rb | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 3bbd1121..fc7507ba 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2009-2020 Simone Carletti +Copyright (c) 2009-2022 Simone Carletti MIT License diff --git a/README.md b/README.md index 40acd477..0747354f 100644 --- a/README.md +++ b/README.md @@ -202,7 +202,7 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. ## License -Copyright (c) 2009-2020 Simone Carletti. This is Free Software distributed under the MIT license. +Copyright (c) 2009-2022 Simone Carletti. This is Free Software distributed under the MIT license. The [Public Suffix List source](https://publicsuffix.org/list/) is subject to the terms of the Mozilla Public License, v. 2.0. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index fe4cd828..c0f3fab6 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2020 Simone Carletti +# Copyright (c) 2009-2022 Simone Carletti require_relative "public_suffix/domain" require_relative "public_suffix/version" diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index 3d65eac7..f7a9c494 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2020 Simone Carletti +# Copyright (c) 2009-2022 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index 2d5798de..2fca2c13 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2020 Simone Carletti +# Copyright (c) 2009-2022 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 84556d0f..e11f071d 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2020 Simone Carletti +# Copyright (c) 2009-2022 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 4a946462..d41a4807 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2020 Simone Carletti +# Copyright (c) 2009-2022 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index c9f93f10..143b7d3f 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -5,7 +5,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2020 Simone Carletti +# Copyright (c) 2009-2022 Simone Carletti module PublicSuffix # The current library version. From 071ba4925c6d73dd9f06e454e34b63e5f8c7a04f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 12 Apr 2022 09:49:05 +0200 Subject: [PATCH 326/450] Release 4.0.7 --- CHANGELOG.md | 2 +- lib/public_suffix/version.rb | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ad857d5..b6178f56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). -## master +## 4.0.7 ### Fixes diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 143b7d3f..80d373f7 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -8,6 +8,8 @@ # Copyright (c) 2009-2022 Simone Carletti module PublicSuffix - # The current library version. - VERSION = "4.0.6" + + # @return [String] The current library version. + VERSION = "4.0.7" + end From f5e72549cea8f328237357ca9b3551dda7148f66 Mon Sep 17 00:00:00 2001 From: Olle Jonsson Date: Tue, 12 Apr 2022 13:25:44 +0200 Subject: [PATCH 327/450] CI: use bundler-cache (#187) This enables the ruby/setup-ruby Action's caching system. --- .github/workflows/tests.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a0f334ab..64772bfd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,12 +17,11 @@ jobs: platform: [ubuntu-latest] runs-on: ${{ matrix.platform }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby-version }} - - name: Install dependencies - run: bundle install + bundler-cache: true # 'bundle install' and cache gems - name: Run tests run: bundle exec rake From 2396b08c767317f51c1c8b7edddafdb50d05d713 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 14 Jul 2022 19:58:23 +0200 Subject: [PATCH 328/450] Update tests.yml --- .github/workflows/tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 64772bfd..ff4cf1fc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,5 +23,6 @@ jobs: with: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true # 'bundle install' and cache gems + - run: bundle exec rake rubocop - name: Run tests - run: bundle exec rake + run: bundle exec rake test From fb74b443c8435d009357383848cd89f80997fd7d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 14 Jul 2022 20:07:15 +0200 Subject: [PATCH 329/450] Update tests.yml --- .github/workflows/tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ff4cf1fc..02faef23 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,8 +14,7 @@ jobs: - "2.7" - "3.0" - "3.1" - platform: [ubuntu-latest] - runs-on: ${{ matrix.platform }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Ruby From 7e2008e1b5c8723f64527d0e3e8303f381bfad43 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 16:23:43 +0200 Subject: [PATCH 330/450] Setup autoupdate workflow --- .github/workflows/psl-update.yml | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/psl-update.yml diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml new file mode 100644 index 00000000..2127c184 --- /dev/null +++ b/.github/workflows/psl-update.yml @@ -0,0 +1,34 @@ +name: PSL Update + +on: + workflow_dispatch: + schedule: + - cron: '40 6 * * *' + +jobs: + update: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v3 + + - name: Set up Ruby + uses: actions/setup-ruby@v1 + with: + ruby-version: "3.1" + + - name: Update PSL + run: bundle exec rake update-list + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v4 + with: + title: PSL auto-update + commit-message: Updated list from source + reviewers: weppos + + - name: Check Pull Request + if: ${{ steps.cpr.outputs.pull-request-number }} + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" From a4a0f5a8697692ba2e8af4c3c1d2c1ff2402d51d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 16:25:47 +0200 Subject: [PATCH 331/450] Update release.yml --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e3862e3b..dcc45848 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,11 +4,12 @@ on: push: tags: - v*.*.* + jobs: release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Release Gem uses: cadwallion/publish-rubygems-action@8f9e0538302643309e4e43bf48cd34173ca48cfc env: From ff46557fa406ce2a11b4fa7b6eaf12175a3338c1 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 16:26:44 +0200 Subject: [PATCH 332/450] Update psl-update.yml --- .github/workflows/psl-update.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index 2127c184..6db3ce33 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -16,6 +16,7 @@ jobs: uses: actions/setup-ruby@v1 with: ruby-version: "3.1" + bundler-cache: true - name: Update PSL run: bundle exec rake update-list From b2e39326a53ed347fa1ba8e485cffe3f5f466951 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 16:28:54 +0200 Subject: [PATCH 333/450] Update psl-update.yml --- .github/workflows/psl-update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index 6db3ce33..8ca80b62 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v3 - name: Set up Ruby - uses: actions/setup-ruby@v1 + uses: ruby/setup-ruby@v1 with: ruby-version: "3.1" bundler-cache: true From 013e6d1f6e8a4d6b8c8f2316c0876a29a380465a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 16:33:44 +0200 Subject: [PATCH 334/450] psl-update: Ensure pull request exclude vendor --- .github/workflows/psl-update.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index 8ca80b62..e8accbda 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -21,6 +21,10 @@ jobs: - name: Update PSL run: bundle exec rake update-list + - name: Setup Pull Request + run: | + echo "vendor" >> .gitignore + - name: Create Pull Request uses: peter-evans/create-pull-request@v4 with: From bf4d0f8b7473915509dc4b822ed5c5b04a09e1be Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 16:37:43 +0200 Subject: [PATCH 335/450] psl-update: Avoid changes being committed --- .github/workflows/psl-update.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index e8accbda..7d596e3a 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -23,7 +23,9 @@ jobs: - name: Setup Pull Request run: | - echo "vendor" >> .gitignore + touch ~/.gitignore_global + echo "vendor" >> .gitignore_global + git config --global core.excludesfile ~/.gitignore_global - name: Create Pull Request uses: peter-evans/create-pull-request@v4 From 15d8497f18d986abb60ddff53bf1d99c502f796e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 16:43:21 +0200 Subject: [PATCH 336/450] psl-update: Avoid vendor changes being committed --- .github/workflows/psl-update.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index 7d596e3a..92b691ac 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -21,18 +21,14 @@ jobs: - name: Update PSL run: bundle exec rake update-list - - name: Setup Pull Request - run: | - touch ~/.gitignore_global - echo "vendor" >> .gitignore_global - git config --global core.excludesfile ~/.gitignore_global - - name: Create Pull Request uses: peter-evans/create-pull-request@v4 with: title: PSL auto-update commit-message: Updated list from source reviewers: weppos + add-paths: | + data/list.txt - name: Check Pull Request if: ${{ steps.cpr.outputs.pull-request-number }} From aa8ab9ab1415a5a398d8d14165264f4062384cea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 24 Jul 2022 16:44:50 +0200 Subject: [PATCH 337/450] Updated list from source (#193) Co-authored-by: weppos --- data/list.txt | 73 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 21 deletions(-) diff --git a/data/list.txt b/data/list.txt index 237e159c..1dc8fe37 100644 --- a/data/list.txt +++ b/data/list.txt @@ -1340,7 +1340,7 @@ tt.im tv.im // in : https://en.wikipedia.org/wiki/.in -// see also: https://registry.in/Policies +// see also: https://registry.in/policies // Please note, that nic.in is not an official eTLD, but used by most // government institutions. in @@ -7130,7 +7130,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-03-27T15:13:38Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-07-03T15:13:53Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7471,7 +7471,7 @@ bio // black : 2014-01-16 Afilias Limited black -// blackfriday : 2014-01-16 UNR Corp. +// blackfriday : 2014-01-16 Registry Services, LLC blackfriday // blockbuster : 2015-07-30 Dish DBS Corporation @@ -7687,7 +7687,7 @@ chanel // channel : 2014-05-08 Charleston Road Registry Inc. channel -// charity : 2018-04-11 Binky Moon, LLC +// charity : 2018-04-11 Public Interest Registry charity // chase : 2015-04-30 JPMorgan Chase Bank, National Association @@ -7834,7 +7834,7 @@ coupon // coupons : 2015-03-26 Binky Moon, LLC coupons -// courses : 2014-12-04 OPEN UNIVERSITIES AUSTRALIA PTY LTD +// courses : 2014-12-04 Registry Services, LLC courses // cpa : 2019-06-10 American Institute of Certified Public Accountants @@ -8020,7 +8020,7 @@ dvag // dvr : 2016-05-26 DISH Technologies L.L.C. dvr -// earth : 2014-12-04 Interlink Co., Ltd. +// earth : 2014-12-04 Interlink Systems Innovation Institute K.K. earth // eat : 2014-01-23 Charleston Road Registry Inc. @@ -8227,7 +8227,7 @@ forsale // forum : 2015-04-02 Fegistry, LLC forum -// foundation : 2013-12-05 Binky Moon, LLC +// foundation : 2013-12-05 Public Interest Registry foundation // fox : 2015-09-11 FOX Registry, LLC @@ -8308,7 +8308,7 @@ gdn // gea : 2014-12-04 GEA Group Aktiengesellschaft gea -// gent : 2014-01-23 COMBELL NV +// gent : 2014-01-23 Easyhost BV gent // genting : 2015-03-12 Resorts World Inc Pte. Ltd. @@ -8326,7 +8326,7 @@ gift // gifts : 2014-07-03 Binky Moon, LLC gifts -// gives : 2014-03-06 Dog Beach, LLC +// gives : 2014-03-06 Public Interest Registry gives // giving : 2014-11-13 Giving Limited @@ -8452,7 +8452,7 @@ health // healthcare : 2014-06-12 Binky Moon, LLC healthcare -// help : 2014-06-26 UNR Corp. +// help : 2014-06-26 Innovation service Limited help // helsinki : 2015-02-05 City of Helsinki @@ -8851,7 +8851,7 @@ lincoln // linde : 2014-12-04 Linde Aktiengesellschaft linde -// link : 2013-11-14 UNR Corp. +// link : 2013-11-14 Nova Registry Ltd link // lipsy : 2015-06-25 Lipsy Ltd @@ -8866,7 +8866,7 @@ living // llc : 2017-12-14 Afilias Limited llc -// llp : 2019-08-26 UNR Corp. +// llp : 2019-08-26 Intercap Registry Inc. llp // loan : 2014-11-20 dot Loan Limited @@ -9034,7 +9034,7 @@ mobile // moda : 2013-11-07 Dog Beach, LLC moda -// moe : 2013-11-13 Interlink Co., Ltd. +// moe : 2013-11-13 Interlink Systems Innovation Institute K.K. moe // moi : 2014-12-18 Amazon Registry Services, Inc. @@ -9307,7 +9307,7 @@ philips // phone : 2016-06-02 Dish DBS Corporation phone -// photo : 2013-11-14 UNR Corp. +// photo : 2013-11-14 Registry Services, LLC photo // photography : 2013-09-20 Binky Moon, LLC @@ -9550,7 +9550,7 @@ rsvp // rugby : 2016-12-15 World Rugby Strategic Developments Limited rugby -// ruhr : 2013-10-02 regiodot GmbH & Co. KG +// ruhr : 2013-10-02 dotSaarland GmbH ruhr // run : 2015-03-19 Binky Moon, LLC @@ -9841,7 +9841,7 @@ stream // studio : 2015-02-11 Dog Beach, LLC studio -// study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD +// study : 2014-12-11 Registry Services, LLC study // style : 2014-12-04 Binky Moon, LLC @@ -9901,7 +9901,7 @@ tatamotors // tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" tatar -// tattoo : 2013-08-30 UNR Corp. +// tattoo : 2013-08-30 Top Level Design, LLC tattoo // tax : 2014-03-20 Binky Moon, LLC @@ -12111,6 +12111,7 @@ kill.jp kilo.jp kuron.jp littlestar.jp +lolipopmc.jp lolitapunk.jp lomo.jp lovepop.jp @@ -12281,6 +12282,10 @@ blogspot.vn // Submitted by Niels Martignene goupile.fr +// Government of the Netherlands: https://www.government.nl +// Submitted by +gov.nl + // Group 53, LLC : https://www.group53.com // Submitted by Tyler Todd awsmppl.com @@ -12357,7 +12362,6 @@ ltd.ng ngo.ng edu.scot sch.so -org.yt // HostyHosting (hostyhosting.com) hostyhosting.io @@ -12375,6 +12379,11 @@ moonscale.net // Submitted by Hannu Aronsson iki.fi +// iliad italia: https://www.iliad.it +// Submitted by Marios Makassikis +ibxos.it +iliadboxos.it + // Impertrix Solutions : // Submitted by Zhixiang Zhao impertrixcdn.com @@ -12455,9 +12464,11 @@ iopsys.se // Submitted by Matthew Hardeman ipifony.net -// IServ GmbH : https://iserv.eu -// Submitted by Kim-Alexander Brodowski +// IServ GmbH : https://iserv.de +// Submitted by Mario Hoberg +iservschule.de mein-iserv.de +schulplattform.de schulserver.de test-iserv.de iserv.dev @@ -12779,6 +12790,10 @@ hra.health miniserver.com memset.net +// Messerli Informatik AG : https://www.messerli.ch/ +// Submitted by Ruben Schmidmeister +messerli.app + // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ // Submitted by Zdeněk Šustr *.cloud.metacentrum.cz @@ -12798,12 +12813,13 @@ eu.meteorapp.com co.pl // Microsoft Corporation : http://microsoft.com -// Submitted by Mitch Webster +// Submitted by Public Suffix List Admin *.azurecontainer.io azurewebsites.net azure-mobile.net cloudapp.net azurestaticapps.net +1.azurestaticapps.net centralus.azurestaticapps.net eastasia.azurestaticapps.net eastus2.azurestaticapps.net @@ -13388,6 +13404,12 @@ rocky.page спб.рус я.рус +// Salesforce.com, Inc. https://salesforce.com/ +// Submitted by Michael Biven +*.builder.code.com +*.dev-builder.code.com +*.stg-builder.code.com + // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia sandcats.io @@ -13811,6 +13833,15 @@ hk.org ltd.hk inc.hk +// UNIVERSAL DOMAIN REGISTRY : https://www.udr.org.yt/ +// see also: whois -h whois.udr.org.yt help +// Submitted by Atanunu Igbunuroghene +name.pm +sch.tf +biz.wf +sch.wf +org.yt + // United Gameserver GmbH : https://united-gameserver.de // Submitted by Stefan Schwarz virtualuser.de From 5e3379bd7403094d7da6b540a555eb09b298c05d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 16:58:31 +0200 Subject: [PATCH 338/450] Update rubocop --- .rubocop_opinionated.yml | 28 ---------------------------- Gemfile | 2 +- Rakefile | 6 +++--- lib/public_suffix.rb | 6 +++--- lib/public_suffix/list.rb | 8 ++++---- lib/public_suffix/rule.rb | 16 ++++++++-------- test/acceptance_test.rb | 14 +++++++------- test/psl_test.rb | 2 +- test/unit/domain_test.rb | 6 +++--- test/unit/list_test.rb | 2 +- test/unit/public_suffix_test.rb | 2 +- test/unit/rule_test.rb | 30 +++++++++++++++--------------- 12 files changed, 47 insertions(+), 75 deletions(-) diff --git a/.rubocop_opinionated.yml b/.rubocop_opinionated.yml index 761e2c7d..a9bc89bc 100644 --- a/.rubocop_opinionated.yml +++ b/.rubocop_opinionated.yml @@ -15,12 +15,6 @@ Layout/LineLength: - 'test/**/*_test.rb' Max: 100 -Lint/ConstantDefinitionInBlock: - Exclude: - - 'Rakefile' - - 'spec/**/*' - - 'test/**/*' - # [codesmell] Metrics/AbcSize: Enabled: false @@ -101,12 +95,6 @@ Layout/EmptyLinesAroundModuleBody: Layout/EmptyLineBetweenDefs: Enabled: false -# I personally don't care about the format style. -# In most cases I like to use %, but not at the point I want to enforce it -# as a convention in the entire code. -Style/FormatString: - Enabled: false - # Annotated tokens (like %s) are a good thing, but in most cases we don't need them. # %s is a simpler and straightforward version that works in almost all cases. So don't complain. Style/FormatStringToken: @@ -116,11 +104,6 @@ Style/FormatStringToken: Style/NegatedIf: Enabled: false -# For years, %w() has been the de-facto standard. A lot of libraries are using (). -# Switching to [] would be a nightmare. -Style/PercentLiteralDelimiters: - Enabled: false - # There are cases were the inline rescue is ok. We can either downgrade the severity, # or rely on the developer judgement on a case-by-case basis. Style/RescueModifier: @@ -129,17 +112,6 @@ Style/RescueModifier: Style/SymbolArray: EnforcedStyle: brackets -# Sorry, but using trailing spaces helps readability. -# -# %w( foo bar ) -# -# looks better to me than -# -# %w( foo bar ) -# -Layout/SpaceInsidePercentLiteralDelimiters: - Enabled: false - # Hate It or Love It, I prefer double quotes as this is more consistent # with several other programming languages and the output of puts and inspect. Style/StringLiterals: diff --git a/Gemfile b/Gemfile index 8c679696..b41c6f2e 100644 --- a/Gemfile +++ b/Gemfile @@ -10,5 +10,5 @@ gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" gem "mocha" -gem "rubocop", "~>0.90", require: false +gem "rubocop", require: false gem "yard" diff --git a/Rakefile b/Rakefile index 26a6c994..59b3b3b7 100644 --- a/Rakefile +++ b/Rakefile @@ -9,7 +9,7 @@ task default: [:test, :rubocop] require "rake/testtask" Rake::TestTask.new do |t| - t.libs = %w( lib test ) + t.libs = %w[lib test] t.pattern = "test/**/*_test.rb" t.verbose = !ENV["VERBOSE"].nil? t.warning = !ENV["WARNING"].nil? @@ -42,10 +42,10 @@ desc "Downloads the Public Suffix List file from the repository and stores it lo task :"update-list" do require "net/http" - DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" + definition_url = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" File.open("data/list.txt", "w+") do |f| - response = Net::HTTP.get_response(URI.parse(DEFINITION_URL)) + response = Net::HTTP.get_response(URI.parse(definition_url)) response.body f.write(response.body) end diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index c0f3fab6..e93ca0a6 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -68,7 +68,7 @@ def self.parse(name, list: List.default, default_rule: list.default_rule, ignore what = normalize(name) raise what if what.is_a?(DomainInvalid) - rule = list.find(what, default: default_rule, ignore_private: ignore_private) + rule = list.find(what, default: default_rule, ignore_private:) # rubocop:disable Style/IfUnlessModifier if rule.nil? @@ -124,7 +124,7 @@ def self.valid?(name, list: List.default, default_rule: list.default_rule, ignor what = normalize(name) return false if what.is_a?(DomainInvalid) - rule = list.find(what, default: default_rule, ignore_private: ignore_private) + rule = list.find(what, default: default_rule, ignore_private:) !rule.nil? && !rule.decompose(what).last.nil? end @@ -169,7 +169,7 @@ def self.normalize(name) return DomainInvalid.new("Name is blank") if name.empty? return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) - return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") + return DomainInvalid.new(format("%s is not expected to contain a scheme", name)) if name.include?("://") name end diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index e11f071d..e294afcc 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -87,7 +87,7 @@ def self.parse(input, private_domains: true) section = 2 # skip comments - when line.start_with?(comment_token) + when line.start_with?(comment_token) # rubocop:disable Lint/DuplicateBranch next else @@ -125,12 +125,12 @@ def ==(other) alias eql? == # Iterates each rule in the list. - def each(&block) + def each(&) Enumerator.new do |y| @rules.each do |key, node| y << entry_to_rule(node, key) end - end.each(&block) + end.each(&) end @@ -236,7 +236,7 @@ def default_rule private def entry_to_rule(entry, value) - entry.type.new(value: value, length: entry.length, private: entry.private) + entry.type.new(value:, length: entry.length, private: entry.private) end def rule_to_entry(rule) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index d41a4807..1c3636b2 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -116,7 +116,7 @@ class Base # @param content [String] the content of the rule # @param private [Boolean] def self.build(content, private: false) - new(value: content, private: private) + new(value: content, private:) end # Initializes a new rule. @@ -125,7 +125,7 @@ def self.build(content, private: false) # @param private [Boolean] def initialize(value:, length: nil, private: false) @value = value.to_s - @length = length || @value.count(DOT) + 1 + @length = length || (@value.count(DOT) + 1) @private = private end @@ -161,7 +161,7 @@ def ==(other) # @param name [String] the domain name to check # @return [Boolean] def match?(name) - # Note: it works because of the assumption there are no + # NOTE: it works because of the assumption there are no # rules like foo.*.com. If the assumption is incorrect, # we need to properly walk the input and skip parts according # to wildcard component. @@ -221,7 +221,7 @@ class Wildcard < Base # @param content [String] the content of the rule # @param private [Boolean] def self.build(content, private: false) - new(value: content.to_s[2..-1], private: private) + new(value: content.to_s[2..], private:) end # Initializes a new rule. @@ -230,7 +230,7 @@ def self.build(content, private: false) # @param length [Integer] # @param private [Boolean] def initialize(value:, length: nil, private: false) - super(value: value, length: length, private: private) + super(value:, length:, private:) length or @length += 1 # * counts as 1 end @@ -269,7 +269,7 @@ class Exception < Base # @param content [#to_s] the content of the rule # @param private [Boolean] def self.build(content, private: false) - new(value: content.to_s[1..-1], private: private) + new(value: content.to_s[1..], private:) end # Gets the original rule definition. @@ -299,7 +299,7 @@ def decompose(domain) # # @return [Array] def parts - @value.split(DOT)[1..-1] + @value.split(DOT)[1..] end end @@ -331,7 +331,7 @@ def self.factory(content, private: false) Exception else Normal - end.build(content, private: private) + end.build(content, private:) end # The default rule to use if no rule match. diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 371bfe13..1e299b73 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -64,7 +64,7 @@ def test_invalid def test_rejected REJECTED_CASES.each do |name, expected| assert_equal expected, PublicSuffix.valid?(name), - "Expected %s to be %s" % [name.inspect, expected.inspect] + format("Expected %s to be %s", name.inspect, expected.inspect) assert !valid_domain?(name), "#{name} expected to be invalid" end @@ -72,9 +72,9 @@ def test_rejected CASE_CASES = [ - ["Www.google.com", %w( www google com )], - ["www.Google.com", %w( www google com )], - ["www.google.Com", %w( www google com )], + ["Www.google.com", %w[www google com]], + ["www.Google.com", %w[www google com]], + ["www.google.Com", %w[www google com]], ].freeze def test_ignore_case @@ -101,14 +101,14 @@ def test_ignore_private # test domain and parse INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| if expected.nil? - assert_nil PublicSuffix.domain(given, ignore_private: ignore_private) + assert_nil PublicSuffix.domain(given, ignore_private:) else - assert_equal expected, PublicSuffix.domain(given, ignore_private: ignore_private) + assert_equal expected, PublicSuffix.domain(given, ignore_private:) end end # test valid? INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| - assert_equal !expected.nil?, PublicSuffix.valid?(given, ignore_private: ignore_private) + assert_equal !expected.nil?, PublicSuffix.valid?(given, ignore_private:) end end # rubocop:enable Style/CombinableLoops diff --git a/test/psl_test.rb b/test/psl_test.rb index fae398f7..919029b4 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -45,7 +45,7 @@ def test_valid end message = "The following #{failures.size} tests fail:\n" - failures.each { |i, o, d| message += "Expected %s to be %s, got %s\n" % [i.inspect, o.inspect, d.inspect] } + failures.each { |i, o, d| message += format("Expected %s to be %s, got %s\n", i.inspect, o.inspect, d.inspect) } assert_equal 0, failures.size, message end diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index 968462d9..f3ae4bed 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -10,15 +10,15 @@ def setup # Tokenizes given input into labels. def test_self_name_to_labels - assert_equal %w( someone spaces live com ), + assert_equal %w[someone spaces live com], PublicSuffix::Domain.name_to_labels("someone.spaces.live.com") - assert_equal %w( leontina23samiko wiki zoho com ), + assert_equal %w[leontina23samiko wiki zoho com], PublicSuffix::Domain.name_to_labels("leontina23samiko.wiki.zoho.com") end # Converts input into String. def test_self_name_to_labels_converts_input_to_string - assert_equal %w( someone spaces live com ), + assert_equal %w[someone spaces live com], PublicSuffix::Domain.name_to_labels(:"someone.spaces.live.com") end diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 98529352..3b0160e5 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -214,7 +214,7 @@ def test_self_parse assert_instance_of PublicSuffix::List, list assert_equal 4, list.size - rules = %w( com *.uk !british-library.uk blogspot.com ).map { |name| PublicSuffix::Rule.factory(name) } + rules = %w[com *.uk !british-library.uk blogspot.com].map { |name| PublicSuffix::Rule.factory(name) } assert_equal rules, list.each.to_a # private domains diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index ba51e138..a1e9b8e0 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -73,7 +73,7 @@ def test_self_parse_with_custom_list list = PublicSuffix::List.new list << PublicSuffix::Rule.factory("test") - domain = PublicSuffix.parse("www.example.test", list: list) + domain = PublicSuffix.parse("www.example.test", list:) assert_instance_of PublicSuffix::Domain, domain assert_equal "test", domain.tld assert_equal "example", domain.sld diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index d1cc6094..81d4522e 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -29,8 +29,8 @@ def test_factory_should_return_rule_wildcard def test_default_returns_default_wildcard default = PublicSuffix::Rule.default assert_equal PublicSuffix::Rule::Wildcard.build("*"), default - assert_equal %w( example tldnotlisted ), default.decompose("example.tldnotlisted") - assert_equal %w( www.example tldnotlisted ), default.decompose("www.example.tldnotlisted") + assert_equal %w[example tldnotlisted], default.decompose("example.tldnotlisted") + assert_equal %w[www.example tldnotlisted], default.decompose("www.example.tldnotlisted") end end @@ -140,15 +140,15 @@ def test_length end def test_parts - assert_equal %w(com), @klass.build("com").parts - assert_equal %w(co com), @klass.build("co.com").parts - assert_equal %w(mx co com), @klass.build("mx.co.com").parts + assert_equal %w[com], @klass.build("com").parts + assert_equal %w[co com], @klass.build("co.com").parts + assert_equal %w[mx co com], @klass.build("mx.co.com").parts end def test_decompose assert_equal [nil, nil], @klass.build("com").decompose("com") - assert_equal %w( example com ), @klass.build("com").decompose("example.com") - assert_equal %w( foo.example com ), @klass.build("com").decompose("foo.example.com") + assert_equal %w[example com], @klass.build("com").decompose("example.com") + assert_equal %w[foo.example com], @klass.build("com").decompose("foo.example.com") end end @@ -175,14 +175,14 @@ def test_length end def test_parts - assert_equal %w( uk ), @klass.build("!british-library.uk").parts - assert_equal %w( tokyo jp ), @klass.build("!metro.tokyo.jp").parts + assert_equal %w[uk], @klass.build("!british-library.uk").parts + assert_equal %w[tokyo jp], @klass.build("!metro.tokyo.jp").parts end def test_decompose assert_equal [nil, nil], @klass.build("!british-library.uk").decompose("uk") - assert_equal %w( british-library uk ), @klass.build("!british-library.uk").decompose("british-library.uk") - assert_equal %w( foo.british-library uk ), @klass.build("!british-library.uk").decompose("foo.british-library.uk") + assert_equal %w[british-library uk], @klass.build("!british-library.uk").decompose("british-library.uk") + assert_equal %w[foo.british-library uk], @klass.build("!british-library.uk").decompose("foo.british-library.uk") end end @@ -209,14 +209,14 @@ def test_length end def test_parts - assert_equal %w( uk ), @klass.build("*.uk").parts - assert_equal %w( co uk ), @klass.build("*.co.uk").parts + assert_equal %w[uk], @klass.build("*.uk").parts + assert_equal %w[co uk], @klass.build("*.co.uk").parts end def test_decompose assert_equal [nil, nil], @klass.build("*.do").decompose("nic.do") - assert_equal %w( google co.uk ), @klass.build("*.uk").decompose("google.co.uk") - assert_equal %w( foo.google co.uk ), @klass.build("*.uk").decompose("foo.google.co.uk") + assert_equal %w[google co.uk], @klass.build("*.uk").decompose("google.co.uk") + assert_equal %w[foo.google co.uk], @klass.build("*.uk").decompose("foo.google.co.uk") end end From 0a0ad7db94781a729f8f49d29230d3269d48705e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 17:11:27 +0200 Subject: [PATCH 339/450] Update workflowa --- .github/workflows/psl-update.yml | 3 ++- .github/workflows/release.yml | 5 +++-- .github/workflows/tests.yml | 10 ++++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index 92b691ac..f696f9a6 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -10,7 +10,8 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - name: Set up Ruby uses: ruby/setup-ruby@v1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dcc45848..d56ea13c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: release +name: Release on: push: @@ -9,7 +9,8 @@ jobs: release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - name: Release Gem uses: cadwallion/publish-rubygems-action@8f9e0538302643309e4e43bf48cd34173ca48cfc env: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 02faef23..506c52ad 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: jobs: - build: + test: strategy: matrix: ruby-version: @@ -16,12 +16,14 @@ jobs: - "3.1" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby-version }} - bundler-cache: true # 'bundle install' and cache gems - - run: bundle exec rake rubocop + bundler-cache: true + - name: Rubocop + run: bundle exec rake rubocop - name: Run tests run: bundle exec rake test From 40177710a97620c2b8af55c33100187861288721 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 17:23:39 +0200 Subject: [PATCH 340/450] Update tests.yml --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 506c52ad..415c19c2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,7 +23,7 @@ jobs: with: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true - - name: Rubocop - run: bundle exec rake rubocop +# - name: Rubocop +# run: bundle exec rake rubocop - name: Run tests run: bundle exec rake test From da5bbc7dc68d5dfe0df6c8a1d617e15b95e195ea Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 17:25:23 +0200 Subject: [PATCH 341/450] Revert "Update rubocop" This reverts commit 5e3379bd7403094d7da6b540a555eb09b298c05d. --- .rubocop_opinionated.yml | 28 ++++++++++++++++++++++++++++ Gemfile | 2 +- Rakefile | 6 +++--- lib/public_suffix.rb | 6 +++--- lib/public_suffix/list.rb | 8 ++++---- lib/public_suffix/rule.rb | 16 ++++++++-------- test/acceptance_test.rb | 14 +++++++------- test/psl_test.rb | 2 +- test/unit/domain_test.rb | 6 +++--- test/unit/list_test.rb | 2 +- test/unit/public_suffix_test.rb | 2 +- test/unit/rule_test.rb | 30 +++++++++++++++--------------- 12 files changed, 75 insertions(+), 47 deletions(-) diff --git a/.rubocop_opinionated.yml b/.rubocop_opinionated.yml index a9bc89bc..761e2c7d 100644 --- a/.rubocop_opinionated.yml +++ b/.rubocop_opinionated.yml @@ -15,6 +15,12 @@ Layout/LineLength: - 'test/**/*_test.rb' Max: 100 +Lint/ConstantDefinitionInBlock: + Exclude: + - 'Rakefile' + - 'spec/**/*' + - 'test/**/*' + # [codesmell] Metrics/AbcSize: Enabled: false @@ -95,6 +101,12 @@ Layout/EmptyLinesAroundModuleBody: Layout/EmptyLineBetweenDefs: Enabled: false +# I personally don't care about the format style. +# In most cases I like to use %, but not at the point I want to enforce it +# as a convention in the entire code. +Style/FormatString: + Enabled: false + # Annotated tokens (like %s) are a good thing, but in most cases we don't need them. # %s is a simpler and straightforward version that works in almost all cases. So don't complain. Style/FormatStringToken: @@ -104,6 +116,11 @@ Style/FormatStringToken: Style/NegatedIf: Enabled: false +# For years, %w() has been the de-facto standard. A lot of libraries are using (). +# Switching to [] would be a nightmare. +Style/PercentLiteralDelimiters: + Enabled: false + # There are cases were the inline rescue is ok. We can either downgrade the severity, # or rely on the developer judgement on a case-by-case basis. Style/RescueModifier: @@ -112,6 +129,17 @@ Style/RescueModifier: Style/SymbolArray: EnforcedStyle: brackets +# Sorry, but using trailing spaces helps readability. +# +# %w( foo bar ) +# +# looks better to me than +# +# %w( foo bar ) +# +Layout/SpaceInsidePercentLiteralDelimiters: + Enabled: false + # Hate It or Love It, I prefer double quotes as this is more consistent # with several other programming languages and the output of puts and inspect. Style/StringLiterals: diff --git a/Gemfile b/Gemfile index b41c6f2e..8c679696 100644 --- a/Gemfile +++ b/Gemfile @@ -10,5 +10,5 @@ gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" gem "mocha" -gem "rubocop", require: false +gem "rubocop", "~>0.90", require: false gem "yard" diff --git a/Rakefile b/Rakefile index 59b3b3b7..26a6c994 100644 --- a/Rakefile +++ b/Rakefile @@ -9,7 +9,7 @@ task default: [:test, :rubocop] require "rake/testtask" Rake::TestTask.new do |t| - t.libs = %w[lib test] + t.libs = %w( lib test ) t.pattern = "test/**/*_test.rb" t.verbose = !ENV["VERBOSE"].nil? t.warning = !ENV["WARNING"].nil? @@ -42,10 +42,10 @@ desc "Downloads the Public Suffix List file from the repository and stores it lo task :"update-list" do require "net/http" - definition_url = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" + DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" File.open("data/list.txt", "w+") do |f| - response = Net::HTTP.get_response(URI.parse(definition_url)) + response = Net::HTTP.get_response(URI.parse(DEFINITION_URL)) response.body f.write(response.body) end diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index e93ca0a6..c0f3fab6 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -68,7 +68,7 @@ def self.parse(name, list: List.default, default_rule: list.default_rule, ignore what = normalize(name) raise what if what.is_a?(DomainInvalid) - rule = list.find(what, default: default_rule, ignore_private:) + rule = list.find(what, default: default_rule, ignore_private: ignore_private) # rubocop:disable Style/IfUnlessModifier if rule.nil? @@ -124,7 +124,7 @@ def self.valid?(name, list: List.default, default_rule: list.default_rule, ignor what = normalize(name) return false if what.is_a?(DomainInvalid) - rule = list.find(what, default: default_rule, ignore_private:) + rule = list.find(what, default: default_rule, ignore_private: ignore_private) !rule.nil? && !rule.decompose(what).last.nil? end @@ -169,7 +169,7 @@ def self.normalize(name) return DomainInvalid.new("Name is blank") if name.empty? return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) - return DomainInvalid.new(format("%s is not expected to contain a scheme", name)) if name.include?("://") + return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") name end diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index e294afcc..e11f071d 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -87,7 +87,7 @@ def self.parse(input, private_domains: true) section = 2 # skip comments - when line.start_with?(comment_token) # rubocop:disable Lint/DuplicateBranch + when line.start_with?(comment_token) next else @@ -125,12 +125,12 @@ def ==(other) alias eql? == # Iterates each rule in the list. - def each(&) + def each(&block) Enumerator.new do |y| @rules.each do |key, node| y << entry_to_rule(node, key) end - end.each(&) + end.each(&block) end @@ -236,7 +236,7 @@ def default_rule private def entry_to_rule(entry, value) - entry.type.new(value:, length: entry.length, private: entry.private) + entry.type.new(value: value, length: entry.length, private: entry.private) end def rule_to_entry(rule) diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index 1c3636b2..d41a4807 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -116,7 +116,7 @@ class Base # @param content [String] the content of the rule # @param private [Boolean] def self.build(content, private: false) - new(value: content, private:) + new(value: content, private: private) end # Initializes a new rule. @@ -125,7 +125,7 @@ def self.build(content, private: false) # @param private [Boolean] def initialize(value:, length: nil, private: false) @value = value.to_s - @length = length || (@value.count(DOT) + 1) + @length = length || @value.count(DOT) + 1 @private = private end @@ -161,7 +161,7 @@ def ==(other) # @param name [String] the domain name to check # @return [Boolean] def match?(name) - # NOTE: it works because of the assumption there are no + # Note: it works because of the assumption there are no # rules like foo.*.com. If the assumption is incorrect, # we need to properly walk the input and skip parts according # to wildcard component. @@ -221,7 +221,7 @@ class Wildcard < Base # @param content [String] the content of the rule # @param private [Boolean] def self.build(content, private: false) - new(value: content.to_s[2..], private:) + new(value: content.to_s[2..-1], private: private) end # Initializes a new rule. @@ -230,7 +230,7 @@ def self.build(content, private: false) # @param length [Integer] # @param private [Boolean] def initialize(value:, length: nil, private: false) - super(value:, length:, private:) + super(value: value, length: length, private: private) length or @length += 1 # * counts as 1 end @@ -269,7 +269,7 @@ class Exception < Base # @param content [#to_s] the content of the rule # @param private [Boolean] def self.build(content, private: false) - new(value: content.to_s[1..], private:) + new(value: content.to_s[1..-1], private: private) end # Gets the original rule definition. @@ -299,7 +299,7 @@ def decompose(domain) # # @return [Array] def parts - @value.split(DOT)[1..] + @value.split(DOT)[1..-1] end end @@ -331,7 +331,7 @@ def self.factory(content, private: false) Exception else Normal - end.build(content, private:) + end.build(content, private: private) end # The default rule to use if no rule match. diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 1e299b73..371bfe13 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -64,7 +64,7 @@ def test_invalid def test_rejected REJECTED_CASES.each do |name, expected| assert_equal expected, PublicSuffix.valid?(name), - format("Expected %s to be %s", name.inspect, expected.inspect) + "Expected %s to be %s" % [name.inspect, expected.inspect] assert !valid_domain?(name), "#{name} expected to be invalid" end @@ -72,9 +72,9 @@ def test_rejected CASE_CASES = [ - ["Www.google.com", %w[www google com]], - ["www.Google.com", %w[www google com]], - ["www.google.Com", %w[www google com]], + ["Www.google.com", %w( www google com )], + ["www.Google.com", %w( www google com )], + ["www.google.Com", %w( www google com )], ].freeze def test_ignore_case @@ -101,14 +101,14 @@ def test_ignore_private # test domain and parse INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| if expected.nil? - assert_nil PublicSuffix.domain(given, ignore_private:) + assert_nil PublicSuffix.domain(given, ignore_private: ignore_private) else - assert_equal expected, PublicSuffix.domain(given, ignore_private:) + assert_equal expected, PublicSuffix.domain(given, ignore_private: ignore_private) end end # test valid? INCLUDE_PRIVATE_CASES.each do |given, ignore_private, expected| - assert_equal !expected.nil?, PublicSuffix.valid?(given, ignore_private:) + assert_equal !expected.nil?, PublicSuffix.valid?(given, ignore_private: ignore_private) end end # rubocop:enable Style/CombinableLoops diff --git a/test/psl_test.rb b/test/psl_test.rb index 919029b4..fae398f7 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -45,7 +45,7 @@ def test_valid end message = "The following #{failures.size} tests fail:\n" - failures.each { |i, o, d| message += format("Expected %s to be %s, got %s\n", i.inspect, o.inspect, d.inspect) } + failures.each { |i, o, d| message += "Expected %s to be %s, got %s\n" % [i.inspect, o.inspect, d.inspect] } assert_equal 0, failures.size, message end diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index f3ae4bed..968462d9 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -10,15 +10,15 @@ def setup # Tokenizes given input into labels. def test_self_name_to_labels - assert_equal %w[someone spaces live com], + assert_equal %w( someone spaces live com ), PublicSuffix::Domain.name_to_labels("someone.spaces.live.com") - assert_equal %w[leontina23samiko wiki zoho com], + assert_equal %w( leontina23samiko wiki zoho com ), PublicSuffix::Domain.name_to_labels("leontina23samiko.wiki.zoho.com") end # Converts input into String. def test_self_name_to_labels_converts_input_to_string - assert_equal %w[someone spaces live com], + assert_equal %w( someone spaces live com ), PublicSuffix::Domain.name_to_labels(:"someone.spaces.live.com") end diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 3b0160e5..98529352 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -214,7 +214,7 @@ def test_self_parse assert_instance_of PublicSuffix::List, list assert_equal 4, list.size - rules = %w[com *.uk !british-library.uk blogspot.com].map { |name| PublicSuffix::Rule.factory(name) } + rules = %w( com *.uk !british-library.uk blogspot.com ).map { |name| PublicSuffix::Rule.factory(name) } assert_equal rules, list.each.to_a # private domains diff --git a/test/unit/public_suffix_test.rb b/test/unit/public_suffix_test.rb index a1e9b8e0..ba51e138 100644 --- a/test/unit/public_suffix_test.rb +++ b/test/unit/public_suffix_test.rb @@ -73,7 +73,7 @@ def test_self_parse_with_custom_list list = PublicSuffix::List.new list << PublicSuffix::Rule.factory("test") - domain = PublicSuffix.parse("www.example.test", list:) + domain = PublicSuffix.parse("www.example.test", list: list) assert_instance_of PublicSuffix::Domain, domain assert_equal "test", domain.tld assert_equal "example", domain.sld diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index 81d4522e..d1cc6094 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -29,8 +29,8 @@ def test_factory_should_return_rule_wildcard def test_default_returns_default_wildcard default = PublicSuffix::Rule.default assert_equal PublicSuffix::Rule::Wildcard.build("*"), default - assert_equal %w[example tldnotlisted], default.decompose("example.tldnotlisted") - assert_equal %w[www.example tldnotlisted], default.decompose("www.example.tldnotlisted") + assert_equal %w( example tldnotlisted ), default.decompose("example.tldnotlisted") + assert_equal %w( www.example tldnotlisted ), default.decompose("www.example.tldnotlisted") end end @@ -140,15 +140,15 @@ def test_length end def test_parts - assert_equal %w[com], @klass.build("com").parts - assert_equal %w[co com], @klass.build("co.com").parts - assert_equal %w[mx co com], @klass.build("mx.co.com").parts + assert_equal %w(com), @klass.build("com").parts + assert_equal %w(co com), @klass.build("co.com").parts + assert_equal %w(mx co com), @klass.build("mx.co.com").parts end def test_decompose assert_equal [nil, nil], @klass.build("com").decompose("com") - assert_equal %w[example com], @klass.build("com").decompose("example.com") - assert_equal %w[foo.example com], @klass.build("com").decompose("foo.example.com") + assert_equal %w( example com ), @klass.build("com").decompose("example.com") + assert_equal %w( foo.example com ), @klass.build("com").decompose("foo.example.com") end end @@ -175,14 +175,14 @@ def test_length end def test_parts - assert_equal %w[uk], @klass.build("!british-library.uk").parts - assert_equal %w[tokyo jp], @klass.build("!metro.tokyo.jp").parts + assert_equal %w( uk ), @klass.build("!british-library.uk").parts + assert_equal %w( tokyo jp ), @klass.build("!metro.tokyo.jp").parts end def test_decompose assert_equal [nil, nil], @klass.build("!british-library.uk").decompose("uk") - assert_equal %w[british-library uk], @klass.build("!british-library.uk").decompose("british-library.uk") - assert_equal %w[foo.british-library uk], @klass.build("!british-library.uk").decompose("foo.british-library.uk") + assert_equal %w( british-library uk ), @klass.build("!british-library.uk").decompose("british-library.uk") + assert_equal %w( foo.british-library uk ), @klass.build("!british-library.uk").decompose("foo.british-library.uk") end end @@ -209,14 +209,14 @@ def test_length end def test_parts - assert_equal %w[uk], @klass.build("*.uk").parts - assert_equal %w[co uk], @klass.build("*.co.uk").parts + assert_equal %w( uk ), @klass.build("*.uk").parts + assert_equal %w( co uk ), @klass.build("*.co.uk").parts end def test_decompose assert_equal [nil, nil], @klass.build("*.do").decompose("nic.do") - assert_equal %w[google co.uk], @klass.build("*.uk").decompose("google.co.uk") - assert_equal %w[foo.google co.uk], @klass.build("*.uk").decompose("foo.google.co.uk") + assert_equal %w( google co.uk ), @klass.build("*.uk").decompose("google.co.uk") + assert_equal %w( foo.google co.uk ), @klass.build("*.uk").decompose("foo.google.co.uk") end end From 3696c1c10da46f93d03f11447300888343565a23 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 17:27:21 +0200 Subject: [PATCH 342/450] Restore Rubocop --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 415c19c2..506c52ad 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,7 +23,7 @@ jobs: with: ruby-version: ${{ matrix.ruby-version }} bundler-cache: true -# - name: Rubocop -# run: bundle exec rake rubocop + - name: Rubocop + run: bundle exec rake rubocop - name: Run tests run: bundle exec rake test From c36b40c5f6a23bddc937248f99cdde3e011cc1f5 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 17:35:59 +0200 Subject: [PATCH 343/450] Upgrade Rubocop --- .rubocop.yml | 1 + .rubocop_opinionated.yml | 28 ---------------------------- CHANGELOG.md | 7 +++++++ Gemfile | 2 +- README.md | 2 +- Rakefile | 6 +++--- lib/public_suffix.rb | 2 +- lib/public_suffix/rule.rb | 6 +++--- public_suffix.gemspec | 2 +- test/acceptance_test.rb | 8 ++++---- test/psl_test.rb | 2 +- test/unit/domain_test.rb | 6 +++--- test/unit/list_test.rb | 2 +- test/unit/rule_test.rb | 30 +++++++++++++++--------------- 14 files changed, 42 insertions(+), 62 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index af922f52..f9117f32 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -13,6 +13,7 @@ AllCops: # Other - 'test/benchmarks/**/*' - 'test/profilers/**/*' + TargetRubyVersion: 2.6 # I often use @_variable to avoid clashing. Naming/MemoizedInstanceVariableName: diff --git a/.rubocop_opinionated.yml b/.rubocop_opinionated.yml index 761e2c7d..a9bc89bc 100644 --- a/.rubocop_opinionated.yml +++ b/.rubocop_opinionated.yml @@ -15,12 +15,6 @@ Layout/LineLength: - 'test/**/*_test.rb' Max: 100 -Lint/ConstantDefinitionInBlock: - Exclude: - - 'Rakefile' - - 'spec/**/*' - - 'test/**/*' - # [codesmell] Metrics/AbcSize: Enabled: false @@ -101,12 +95,6 @@ Layout/EmptyLinesAroundModuleBody: Layout/EmptyLineBetweenDefs: Enabled: false -# I personally don't care about the format style. -# In most cases I like to use %, but not at the point I want to enforce it -# as a convention in the entire code. -Style/FormatString: - Enabled: false - # Annotated tokens (like %s) are a good thing, but in most cases we don't need them. # %s is a simpler and straightforward version that works in almost all cases. So don't complain. Style/FormatStringToken: @@ -116,11 +104,6 @@ Style/FormatStringToken: Style/NegatedIf: Enabled: false -# For years, %w() has been the de-facto standard. A lot of libraries are using (). -# Switching to [] would be a nightmare. -Style/PercentLiteralDelimiters: - Enabled: false - # There are cases were the inline rescue is ok. We can either downgrade the severity, # or rely on the developer judgement on a case-by-case basis. Style/RescueModifier: @@ -129,17 +112,6 @@ Style/RescueModifier: Style/SymbolArray: EnforcedStyle: brackets -# Sorry, but using trailing spaces helps readability. -# -# %w( foo bar ) -# -# looks better to me than -# -# %w( foo bar ) -# -Layout/SpaceInsidePercentLiteralDelimiters: - Enabled: false - # Hate It or Love It, I prefer double quotes as this is more consistent # with several other programming languages and the output of puts and inspect. Style/StringLiterals: diff --git a/CHANGELOG.md b/CHANGELOG.md index b6178f56..8b1729f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## main + +### Changed + +- Minimum Ruby version is 2.6 + + ## 4.0.7 ### Fixes diff --git a/Gemfile b/Gemfile index 8c679696..b41c6f2e 100644 --- a/Gemfile +++ b/Gemfile @@ -10,5 +10,5 @@ gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" gem "mocha" -gem "rubocop", "~>0.90", require: false +gem "rubocop", require: false gem "yard" diff --git a/README.md b/README.md index 0747354f..4cf31e3a 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ## Requirements -PublicSuffix requires **Ruby >= 2.3**. For an older versions of Ruby use a previous release. +PublicSuffix requires **Ruby >= 2.6**. For an older versions of Ruby use a previous release. ## Installation diff --git a/Rakefile b/Rakefile index 26a6c994..59b3b3b7 100644 --- a/Rakefile +++ b/Rakefile @@ -9,7 +9,7 @@ task default: [:test, :rubocop] require "rake/testtask" Rake::TestTask.new do |t| - t.libs = %w( lib test ) + t.libs = %w[lib test] t.pattern = "test/**/*_test.rb" t.verbose = !ENV["VERBOSE"].nil? t.warning = !ENV["WARNING"].nil? @@ -42,10 +42,10 @@ desc "Downloads the Public Suffix List file from the repository and stores it lo task :"update-list" do require "net/http" - DEFINITION_URL = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" + definition_url = "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat" File.open("data/list.txt", "w+") do |f| - response = Net::HTTP.get_response(URI.parse(DEFINITION_URL)) + response = Net::HTTP.get_response(URI.parse(definition_url)) response.body f.write(response.body) end diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index c0f3fab6..a4ed1403 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -169,7 +169,7 @@ def self.normalize(name) return DomainInvalid.new("Name is blank") if name.empty? return DomainInvalid.new("Name starts with a dot") if name.start_with?(DOT) - return DomainInvalid.new("%s is not expected to contain a scheme" % name) if name.include?("://") + return DomainInvalid.new(format("%s is not expected to contain a scheme", name)) if name.include?("://") name end diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index d41a4807..c89304e6 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -221,7 +221,7 @@ class Wildcard < Base # @param content [String] the content of the rule # @param private [Boolean] def self.build(content, private: false) - new(value: content.to_s[2..-1], private: private) + new(value: content.to_s[2..], private: private) end # Initializes a new rule. @@ -269,7 +269,7 @@ class Exception < Base # @param content [#to_s] the content of the rule # @param private [Boolean] def self.build(content, private: false) - new(value: content.to_s[1..-1], private: private) + new(value: content.to_s[1..], private: private) end # Gets the original rule definition. @@ -299,7 +299,7 @@ def decompose(domain) # # @return [Array] def parts - @value.split(DOT)[1..-1] + @value.split(DOT)[1..] end end diff --git a/public_suffix.gemspec b/public_suffix.gemspec index ae552fc9..cbf035c1 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |s| "source_code_uri" => "https://github.com/weppos/publicsuffix-ruby/tree/v#{s.version}", } - s.required_ruby_version = ">= 2.3" + s.required_ruby_version = ">= 2.6" s.require_paths = ["lib"] s.files = `git ls-files`.split("\n") diff --git a/test/acceptance_test.rb b/test/acceptance_test.rb index 371bfe13..6e114f45 100644 --- a/test/acceptance_test.rb +++ b/test/acceptance_test.rb @@ -64,7 +64,7 @@ def test_invalid def test_rejected REJECTED_CASES.each do |name, expected| assert_equal expected, PublicSuffix.valid?(name), - "Expected %s to be %s" % [name.inspect, expected.inspect] + format("Expected %s to be %s", name.inspect, expected.inspect) assert !valid_domain?(name), "#{name} expected to be invalid" end @@ -72,9 +72,9 @@ def test_rejected CASE_CASES = [ - ["Www.google.com", %w( www google com )], - ["www.Google.com", %w( www google com )], - ["www.google.Com", %w( www google com )], + ["Www.google.com", %w[www google com]], + ["www.Google.com", %w[www google com]], + ["www.google.Com", %w[www google com]], ].freeze def test_ignore_case diff --git a/test/psl_test.rb b/test/psl_test.rb index fae398f7..919029b4 100644 --- a/test/psl_test.rb +++ b/test/psl_test.rb @@ -45,7 +45,7 @@ def test_valid end message = "The following #{failures.size} tests fail:\n" - failures.each { |i, o, d| message += "Expected %s to be %s, got %s\n" % [i.inspect, o.inspect, d.inspect] } + failures.each { |i, o, d| message += format("Expected %s to be %s, got %s\n", i.inspect, o.inspect, d.inspect) } assert_equal 0, failures.size, message end diff --git a/test/unit/domain_test.rb b/test/unit/domain_test.rb index 968462d9..f3ae4bed 100644 --- a/test/unit/domain_test.rb +++ b/test/unit/domain_test.rb @@ -10,15 +10,15 @@ def setup # Tokenizes given input into labels. def test_self_name_to_labels - assert_equal %w( someone spaces live com ), + assert_equal %w[someone spaces live com], PublicSuffix::Domain.name_to_labels("someone.spaces.live.com") - assert_equal %w( leontina23samiko wiki zoho com ), + assert_equal %w[leontina23samiko wiki zoho com], PublicSuffix::Domain.name_to_labels("leontina23samiko.wiki.zoho.com") end # Converts input into String. def test_self_name_to_labels_converts_input_to_string - assert_equal %w( someone spaces live com ), + assert_equal %w[someone spaces live com], PublicSuffix::Domain.name_to_labels(:"someone.spaces.live.com") end diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 98529352..3b0160e5 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -214,7 +214,7 @@ def test_self_parse assert_instance_of PublicSuffix::List, list assert_equal 4, list.size - rules = %w( com *.uk !british-library.uk blogspot.com ).map { |name| PublicSuffix::Rule.factory(name) } + rules = %w[com *.uk !british-library.uk blogspot.com].map { |name| PublicSuffix::Rule.factory(name) } assert_equal rules, list.each.to_a # private domains diff --git a/test/unit/rule_test.rb b/test/unit/rule_test.rb index d1cc6094..81d4522e 100644 --- a/test/unit/rule_test.rb +++ b/test/unit/rule_test.rb @@ -29,8 +29,8 @@ def test_factory_should_return_rule_wildcard def test_default_returns_default_wildcard default = PublicSuffix::Rule.default assert_equal PublicSuffix::Rule::Wildcard.build("*"), default - assert_equal %w( example tldnotlisted ), default.decompose("example.tldnotlisted") - assert_equal %w( www.example tldnotlisted ), default.decompose("www.example.tldnotlisted") + assert_equal %w[example tldnotlisted], default.decompose("example.tldnotlisted") + assert_equal %w[www.example tldnotlisted], default.decompose("www.example.tldnotlisted") end end @@ -140,15 +140,15 @@ def test_length end def test_parts - assert_equal %w(com), @klass.build("com").parts - assert_equal %w(co com), @klass.build("co.com").parts - assert_equal %w(mx co com), @klass.build("mx.co.com").parts + assert_equal %w[com], @klass.build("com").parts + assert_equal %w[co com], @klass.build("co.com").parts + assert_equal %w[mx co com], @klass.build("mx.co.com").parts end def test_decompose assert_equal [nil, nil], @klass.build("com").decompose("com") - assert_equal %w( example com ), @klass.build("com").decompose("example.com") - assert_equal %w( foo.example com ), @klass.build("com").decompose("foo.example.com") + assert_equal %w[example com], @klass.build("com").decompose("example.com") + assert_equal %w[foo.example com], @klass.build("com").decompose("foo.example.com") end end @@ -175,14 +175,14 @@ def test_length end def test_parts - assert_equal %w( uk ), @klass.build("!british-library.uk").parts - assert_equal %w( tokyo jp ), @klass.build("!metro.tokyo.jp").parts + assert_equal %w[uk], @klass.build("!british-library.uk").parts + assert_equal %w[tokyo jp], @klass.build("!metro.tokyo.jp").parts end def test_decompose assert_equal [nil, nil], @klass.build("!british-library.uk").decompose("uk") - assert_equal %w( british-library uk ), @klass.build("!british-library.uk").decompose("british-library.uk") - assert_equal %w( foo.british-library uk ), @klass.build("!british-library.uk").decompose("foo.british-library.uk") + assert_equal %w[british-library uk], @klass.build("!british-library.uk").decompose("british-library.uk") + assert_equal %w[foo.british-library uk], @klass.build("!british-library.uk").decompose("foo.british-library.uk") end end @@ -209,14 +209,14 @@ def test_length end def test_parts - assert_equal %w( uk ), @klass.build("*.uk").parts - assert_equal %w( co uk ), @klass.build("*.co.uk").parts + assert_equal %w[uk], @klass.build("*.uk").parts + assert_equal %w[co uk], @klass.build("*.co.uk").parts end def test_decompose assert_equal [nil, nil], @klass.build("*.do").decompose("nic.do") - assert_equal %w( google co.uk ), @klass.build("*.uk").decompose("google.co.uk") - assert_equal %w( foo.google co.uk ), @klass.build("*.uk").decompose("foo.google.co.uk") + assert_equal %w[google co.uk], @klass.build("*.uk").decompose("google.co.uk") + assert_equal %w[foo.google co.uk], @klass.build("*.uk").decompose("foo.google.co.uk") end end From 585e678539ba97be5916bb143d684d248b6215ba Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 17:38:13 +0200 Subject: [PATCH 344/450] Upgrade Rubocop to 1.x --- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index e11f071d..033a17ad 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -87,7 +87,7 @@ def self.parse(input, private_domains: true) section = 2 # skip comments - when line.start_with?(comment_token) + when line.start_with?(comment_token) # rubocop:disable Lint/DuplicateBranch next else diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index c89304e6..dfe93add 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -125,7 +125,7 @@ def self.build(content, private: false) # @param private [Boolean] def initialize(value:, length: nil, private: false) @value = value.to_s - @length = length || @value.count(DOT) + 1 + @length = length || (@value.count(DOT) + 1) @private = private end @@ -161,7 +161,7 @@ def ==(other) # @param name [String] the domain name to check # @return [Boolean] def match?(name) - # Note: it works because of the assumption there are no + # NOTE: it works because of the assumption there are no # rules like foo.*.com. If the assumption is incorrect, # we need to properly walk the input and skip parts according # to wildcard component. From 3e32063a8808030a284bc5afeb8b7dce86215db5 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Sun, 24 Jul 2022 17:40:02 +0200 Subject: [PATCH 345/450] Release 5.0.0 --- CHANGELOG.md | 4 +++- lib/public_suffix/version.rb | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b1729f0..611c4b51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,14 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). -## main +## 5.0.0 ### Changed - Minimum Ruby version is 2.6 +- Updated definitions. + ## 4.0.7 diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 80d373f7..1ab5e3fa 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -10,6 +10,6 @@ module PublicSuffix # @return [String] The current library version. - VERSION = "4.0.7" + VERSION = "5.0.0" end From a9612d1af76de81de55baa3130b73fdcd2549a0b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 10:32:03 +0200 Subject: [PATCH 346/450] Updated list from source (#194) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 1dc8fe37..b5a89c65 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7130,7 +7130,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-07-03T15:13:53Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-07-28T15:14:54Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8779,7 +8779,7 @@ lanxess // lasalle : 2015-04-02 Jones Lang LaSalle Incorporated lasalle -// lat : 2014-10-16 ECOM-LAC Federaciòn de Latinoamèrica y el Caribe para Internet y el Comercio Electrònico +// lat : 2014-10-16 XYZ.COM LLC lat // latino : 2015-07-30 Dish DBS Corporation From 94262be478b7f9ea7c831b3fffe19e1405002e0d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 6 Aug 2022 12:29:48 +0200 Subject: [PATCH 347/450] Updated list from source (#195) Co-authored-by: weppos --- data/list.txt | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/data/list.txt b/data/list.txt index b5a89c65..80f05c4f 100644 --- a/data/list.txt +++ b/data/list.txt @@ -1344,18 +1344,47 @@ tv.im // Please note, that nic.in is not an official eTLD, but used by most // government institutions. in +5g.in +6g.in +ac.in +ai.in +am.in +bihar.in +biz.in +business.in +ca.in +cn.in co.in +com.in +coop.in +cs.in +delhi.in +dr.in +edu.in +er.in firm.in -net.in -org.in gen.in +gov.in +gujarat.in ind.in +info.in +int.in +internet.in +io.in +me.in +mil.in +net.in nic.in -ac.in -edu.in +org.in +pg.in +post.in +pro.in res.in -gov.in -mil.in +travel.in +tv.in +uk.in +up.in +us.in // info : https://en.wikipedia.org/wiki/.info info From 2d0c186f4e59203cf27d8f72ac1299d0b1e088c5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Aug 2022 19:23:38 +0200 Subject: [PATCH 348/450] Updated list from source (#196) Co-authored-by: weppos --- data/list.txt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 80f05c4f..950568c3 100644 --- a/data/list.txt +++ b/data/list.txt @@ -1315,7 +1315,9 @@ web.id ie gov.ie -// il : http://www.isoc.org.il/domains/ +// il : http://www.isoc.org.il/domains/ +// see also: https://en.isoc.org.il/il-cctld/registration-rules +// ISOC-IL (operated by .il Registry) il ac.il co.il @@ -1325,6 +1327,16 @@ k12.il muni.il net.il org.il +// xn--4dbrk0ce ("Israel", Hebrew) : IL +ישראל +// xn--4dbgdty6c.xn--4dbrk0ce. +אקדמיה.ישראל +// xn--5dbhl8d.xn--4dbrk0ce. +ישוב.ישראל +// xn--8dbq2a.xn--4dbrk0ce. +צהל.ישראל +// xn--hebda8b.xn--4dbrk0ce. +ממשל.ישראל // im : https://www.nic.im/ // Submitted by registry From d4077ae56e729dfd8ebeefd48b4b485da4114ed4 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Mon, 22 Aug 2022 10:04:45 +0200 Subject: [PATCH 349/450] Update dependabot.yml --- .github/dependabot.yml | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1dbbb9ac..bd44088d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,8 +1,19 @@ version: 2 updates: -- package-ecosystem: bundler - directory: "/" - schedule: - interval: daily - time: "04:00" - open-pull-requests-limit: 10 + - package-ecosystem: bundler + directory: "/" + schedule: + interval: daily + time: "04:00" + open-pull-requests-limit: 10 + labels: + - dependencies + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + time: "04:00" + open-pull-requests-limit: 10 + labels: + - dependencies From c62a0c81a4f1ecdf971455eaf80f4a60bb6941fa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 15:36:32 +0200 Subject: [PATCH 350/450] Updated list from source (#198) Co-authored-by: weppos --- data/list.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/data/list.txt b/data/list.txt index 950568c3..626c7993 100644 --- a/data/list.txt +++ b/data/list.txt @@ -10912,6 +10912,10 @@ theshop.jp shopselect.net base.shop +// BeagleBoard.org Foundation : https://beagleboard.org +// Submitted by Jason Kridner +beagleboard.io + // Beget Ltd // Submitted by Lev Nekrasov *.beget.app @@ -11690,6 +11694,11 @@ dynv6.net // Submitted by Vladimir Dudr e4.cz +// Easypanel : https://easypanel.io +// Submitted by Andrei Canta +easypanel.app +easypanel.host + // eero : https://eero.com/ // Submitted by Yue Kang eero.online @@ -11984,6 +11993,10 @@ id.forgerock.io // Submitted by Koen Rouwhorst framer.app framercanvas.com +framer.media +framer.photos +framer.website +framer.wiki // Frusky MEDIA&PR : https://www.frusky.de // Submitted by Victor Pupynin @@ -13595,6 +13608,10 @@ small-web.org // Submitted by Dan Kozak vp4.me +// Snowflake Inc : https://www.snowflake.com/ +// Submitted by Faith Olapade +streamlitapp.com + // Snowplow Analytics : https://snowplowanalytics.com/ // Submitted by Ian Streeter try-snowplow.com From f86639f22588cf1fdc5e119386efc17271358a65 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 4 Sep 2022 10:39:42 +0200 Subject: [PATCH 351/450] Updated list from source (#199) Co-authored-by: weppos --- data/list.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/list.txt b/data/list.txt index 626c7993..73e7e375 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-07-28T15:14:54Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-09-03T15:15:24Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7680,7 +7680,7 @@ cars // casa : 2013-11-21 Registry Services, LLC casa -// case : 2015-09-03 Helium TLDs Ltd +// case : 2015-09-03 Digity, LLC case // cash : 2014-03-06 Binky Moon, LLC @@ -8370,7 +8370,7 @@ gifts // gives : 2014-03-06 Public Interest Registry gives -// giving : 2014-11-13 Giving Limited +// giving : 2014-11-13 Public Interest Registry giving // glass : 2013-11-07 Binky Moon, LLC From c101e0bf31c94e56f76c81719b63e71870ed483b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Sep 2022 13:41:28 +0200 Subject: [PATCH 352/450] Updated list from source (#200) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 73e7e375..01f17b82 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-09-03T15:15:24Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-09-15T15:17:34Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7866,7 +7866,7 @@ cool // corsica : 2014-09-25 Collectivité de Corse corsica -// country : 2013-12-19 DotCountry LLC +// country : 2013-12-19 Internet Naming Company LLC country // coupon : 2015-02-26 Amazon Registry Services, Inc. From 4ebb6eac076327805803c168812901231953e4ef Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Sep 2022 09:51:04 +0200 Subject: [PATCH 353/450] Updated list from source (#201) Co-authored-by: weppos --- data/list.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/data/list.txt b/data/list.txt index 01f17b82..c0345b41 100644 --- a/data/list.txt +++ b/data/list.txt @@ -10804,6 +10804,52 @@ s3-website.eu-west-2.amazonaws.com s3-website.eu-west-3.amazonaws.com s3-website.us-east-2.amazonaws.com +// AWS Cloud9 : https://aws.amazon.com/cloud9/ +// Submitted by: AWS Security +// Reference: 2b6dfa9a-3a7f-4367-b2e7-0321e77c0d59 +vfs.cloud9.af-south-1.amazonaws.com +webview-assets.cloud9.af-south-1.amazonaws.com +vfs.cloud9.ap-east-1.amazonaws.com +webview-assets.cloud9.ap-east-1.amazonaws.com +vfs.cloud9.ap-northeast-1.amazonaws.com +webview-assets.cloud9.ap-northeast-1.amazonaws.com +vfs.cloud9.ap-northeast-2.amazonaws.com +webview-assets.cloud9.ap-northeast-2.amazonaws.com +vfs.cloud9.ap-northeast-3.amazonaws.com +webview-assets.cloud9.ap-northeast-3.amazonaws.com +vfs.cloud9.ap-south-1.amazonaws.com +webview-assets.cloud9.ap-south-1.amazonaws.com +vfs.cloud9.ap-southeast-1.amazonaws.com +webview-assets.cloud9.ap-southeast-1.amazonaws.com +vfs.cloud9.ap-southeast-2.amazonaws.com +webview-assets.cloud9.ap-southeast-2.amazonaws.com +vfs.cloud9.ca-central-1.amazonaws.com +webview-assets.cloud9.ca-central-1.amazonaws.com +vfs.cloud9.eu-central-1.amazonaws.com +webview-assets.cloud9.eu-central-1.amazonaws.com +vfs.cloud9.eu-north-1.amazonaws.com +webview-assets.cloud9.eu-north-1.amazonaws.com +vfs.cloud9.eu-south-1.amazonaws.com +webview-assets.cloud9.eu-south-1.amazonaws.com +vfs.cloud9.eu-west-1.amazonaws.com +webview-assets.cloud9.eu-west-1.amazonaws.com +vfs.cloud9.eu-west-2.amazonaws.com +webview-assets.cloud9.eu-west-2.amazonaws.com +vfs.cloud9.eu-west-3.amazonaws.com +webview-assets.cloud9.eu-west-3.amazonaws.com +vfs.cloud9.me-south-1.amazonaws.com +webview-assets.cloud9.me-south-1.amazonaws.com +vfs.cloud9.sa-east-1.amazonaws.com +webview-assets.cloud9.sa-east-1.amazonaws.com +vfs.cloud9.us-east-1.amazonaws.com +webview-assets.cloud9.us-east-1.amazonaws.com +vfs.cloud9.us-east-2.amazonaws.com +webview-assets.cloud9.us-east-2.amazonaws.com +vfs.cloud9.us-west-1.amazonaws.com +webview-assets.cloud9.us-west-1.amazonaws.com +vfs.cloud9.us-west-2.amazonaws.com +webview-assets.cloud9.us-west-2.amazonaws.com + // Amune : https://amune.org/ // Submitted by Team Amune t3l3p0rt.net From c495417e018a0d1800ddadb1a20b9c207a213cfc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 09:43:13 +0200 Subject: [PATCH 354/450] Updated list from source (#202) Co-authored-by: weppos --- data/list.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/data/list.txt b/data/list.txt index c0345b41..5676a31c 100644 --- a/data/list.txt +++ b/data/list.txt @@ -12920,6 +12920,7 @@ azure-mobile.net cloudapp.net azurestaticapps.net 1.azurestaticapps.net +2.azurestaticapps.net centralus.azurestaticapps.net eastasia.azurestaticapps.net eastus2.azurestaticapps.net From c870183bfc5c03cd456937225c0cd433662d0061 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 23:39:47 +0200 Subject: [PATCH 355/450] Updated list from source (#203) Co-authored-by: weppos --- data/list.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 5676a31c..00e52627 100644 --- a/data/list.txt +++ b/data/list.txt @@ -10660,6 +10660,10 @@ graphox.us // Submitted by accesso Team *.devcdnaccesso.com +// Acorn Labs : https://acorn.io +// Submitted by Craig Jellick +*.on-acorn.io + // Adobe : https://www.adobe.com/ // Submitted by Ian Boston and Lars Trieloff adobeaemcloud.com @@ -13457,7 +13461,9 @@ app.render.com onrender.com // Repl.it : https://repl.it -// Submitted by Mason Clayton +// Submitted by Lincoln Bergeson +firewalledreplit.co +id.firewalledreplit.co repl.co id.repl.co repl.run From 02b372a322aa481a720ae5b7c54a264e92a59703 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 8 Oct 2022 18:16:39 +0200 Subject: [PATCH 356/450] Updated list from source (#204) Co-authored-by: weppos --- data/list.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 00e52627..b2e1d864 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-09-15T15:17:34Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-07T15:19:57Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7641,9 +7641,6 @@ camera // camp : 2013-11-07 Binky Moon, LLC camp -// cancerresearch : 2014-05-15 Australian Cancer Research Foundation -cancerresearch - // canon : 2014-09-12 Canon Inc. canon From dae655275a56b3b0d8af39476183b555594fd6e8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 09:30:57 +0200 Subject: [PATCH 357/450] Updated list from source (#205) Co-authored-by: weppos --- data/list.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index b2e1d864..0aecac59 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-07T15:19:57Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-11T15:20:33Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7596,9 +7596,6 @@ brother // brussels : 2014-02-06 DNS.be vzw brussels -// bugatti : 2015-07-23 Bugatti International SA -bugatti - // build : 2013-11-07 Plan Bee LLC build From a3c6422b71383449491e5cc221bb229860878ab3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 10:16:17 +0200 Subject: [PATCH 358/450] Updated list from source (#206) Co-authored-by: weppos --- data/list.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/list.txt b/data/list.txt index 0aecac59..8df22023 100644 --- a/data/list.txt +++ b/data/list.txt @@ -11961,6 +11961,10 @@ a.ssl.fastly.net b.ssl.fastly.net global.ssl.fastly.net +// Fastmail : https://www.fastmail.com/ +// Submitted by Marc Bradshaw +*.user.fm + // FASTVPS EESTI OU : https://fastvps.ru/ // Submitted by Likhachev Vasiliy fastvps-server.com From 3dc11d8b35224f218cc26e30c9e890a92a14bafb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 14 Oct 2022 09:58:15 +0200 Subject: [PATCH 359/450] Updated list from source (#207) Co-authored-by: weppos --- data/list.txt | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/data/list.txt b/data/list.txt index 8df22023..69262733 100644 --- a/data/list.txt +++ b/data/list.txt @@ -12975,25 +12975,6 @@ cust.retrosnub.co.uk // Submitted by Paulus Schoutsen ui.nabu.casa -// Names.of.London : https://names.of.london/ -// Submitted by James Stevens or -pony.club -of.fashion -in.london -of.london -from.marketing -with.marketing -for.men -repair.men -and.mom -for.mom -for.one -under.one -for.sale -that.win -from.work -to.work - // Net at Work Gmbh : https://www.netatwork.de // Submitted by Jan Jaeschke cloud.nospamproxy.com @@ -13190,7 +13171,26 @@ omniwe.site // One.com: https://www.one.com/ // Submitted by Jacob Bunk Nielsen +123hjemmeside.dk +123hjemmeside.no +123homepage.it +123kotisivu.fi +123minsida.se +123miweb.es +123paginaweb.pt +123sait.ru +123siteweb.fr +123webseite.at +123webseite.de +123website.be +123website.ch +123website.lu +123website.nl service.one +simplesite.com +simplesite.com.br +simplesite.gr +simplesite.pl // One Fold Media : http://www.onefoldmedia.com/ // Submitted by Eddie Jones From 2f606fdc91931c62f16f0ae926f0009f08f8b2e0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 16 Oct 2022 14:36:46 +0200 Subject: [PATCH 360/450] Updated list from source (#208) Co-authored-by: weppos --- data/list.txt | 161 +++++++++++++++++++++++++++----------------------- 1 file changed, 87 insertions(+), 74 deletions(-) diff --git a/data/list.txt b/data/list.txt index 69262733..88924a9d 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-11T15:20:33Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-15T15:17:51Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7389,7 +7389,7 @@ auto // autos : 2014-01-09 XYZ.COM LLC autos -// avianca : 2015-01-08 Avianca Holdings S.A. +// avianca : 2015-01-08 Avianca Inc. avianca // aws : 2015-06-25 AWS Registry LLC @@ -10702,51 +10702,49 @@ altervista.org // Submitted by Cyril alwaysdata.net -// Amazon CloudFront : https://aws.amazon.com/cloudfront/ +// Amazon : https://www.amazon.com/ +// Submitted by AWS Security +// Subsections of Amazon/subsidiaries will appear until "concludes" tag + +// Amazon CloudFront // Submitted by Donavan Miller +// Reference: 54144616-fd49-4435-8535-19c6a601bdb3 cloudfront.net -// Amazon Elastic Compute Cloud : https://aws.amazon.com/ec2/ +// Amazon EC2 // Submitted by Luke Wells +// Reference: 4c38fa71-58ac-4768-99e5-689c1767e537 *.compute.amazonaws.com *.compute-1.amazonaws.com *.compute.amazonaws.com.cn us-east-1.amazonaws.com -// Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/ -// Submitted by Luke Wells -cn-north-1.eb.amazonaws.com.cn -cn-northwest-1.eb.amazonaws.com.cn -elasticbeanstalk.com -ap-northeast-1.elasticbeanstalk.com -ap-northeast-2.elasticbeanstalk.com -ap-northeast-3.elasticbeanstalk.com -ap-south-1.elasticbeanstalk.com -ap-southeast-1.elasticbeanstalk.com -ap-southeast-2.elasticbeanstalk.com -ca-central-1.elasticbeanstalk.com -eu-central-1.elasticbeanstalk.com -eu-west-1.elasticbeanstalk.com -eu-west-2.elasticbeanstalk.com -eu-west-3.elasticbeanstalk.com -sa-east-1.elasticbeanstalk.com -us-east-1.elasticbeanstalk.com -us-east-2.elasticbeanstalk.com -us-gov-west-1.elasticbeanstalk.com -us-west-1.elasticbeanstalk.com -us-west-2.elasticbeanstalk.com - -// Amazon Elastic Load Balancing : https://aws.amazon.com/elasticloadbalancing/ -// Submitted by Luke Wells -*.elb.amazonaws.com -*.elb.amazonaws.com.cn - -// Amazon Global Accelerator : https://aws.amazon.com/global-accelerator/ -// Submitted by Daniel Massaguer -awsglobalaccelerator.com - -// Amazon S3 : https://aws.amazon.com/s3/ +// Amazon S3 // Submitted by Luke Wells +// Reference: d068bd97-f0a9-4838-a6d8-954b622ef4ae +s3.cn-north-1.amazonaws.com.cn +s3.dualstack.ap-northeast-1.amazonaws.com +s3.dualstack.ap-northeast-2.amazonaws.com +s3.ap-northeast-2.amazonaws.com +s3-website.ap-northeast-2.amazonaws.com +s3.dualstack.ap-south-1.amazonaws.com +s3.ap-south-1.amazonaws.com +s3-website.ap-south-1.amazonaws.com +s3.dualstack.ap-southeast-1.amazonaws.com +s3.dualstack.ap-southeast-2.amazonaws.com +s3.dualstack.ca-central-1.amazonaws.com +s3.ca-central-1.amazonaws.com +s3-website.ca-central-1.amazonaws.com +s3.dualstack.eu-central-1.amazonaws.com +s3.eu-central-1.amazonaws.com +s3-website.eu-central-1.amazonaws.com +s3.dualstack.eu-west-1.amazonaws.com +s3.dualstack.eu-west-2.amazonaws.com +s3.eu-west-2.amazonaws.com +s3-website.eu-west-2.amazonaws.com +s3.dualstack.eu-west-3.amazonaws.com +s3.eu-west-3.amazonaws.com +s3-website.eu-west-3.amazonaws.com s3.amazonaws.com s3-ap-northeast-1.amazonaws.com s3-ap-northeast-2.amazonaws.com @@ -10761,48 +10759,25 @@ s3-eu-west-3.amazonaws.com s3-external-1.amazonaws.com s3-fips-us-gov-west-1.amazonaws.com s3-sa-east-1.amazonaws.com -s3-us-gov-west-1.amazonaws.com s3-us-east-2.amazonaws.com +s3-us-gov-west-1.amazonaws.com s3-us-west-1.amazonaws.com s3-us-west-2.amazonaws.com -s3.ap-northeast-2.amazonaws.com -s3.ap-south-1.amazonaws.com -s3.cn-north-1.amazonaws.com.cn -s3.ca-central-1.amazonaws.com -s3.eu-central-1.amazonaws.com -s3.eu-west-2.amazonaws.com -s3.eu-west-3.amazonaws.com -s3.us-east-2.amazonaws.com -s3.dualstack.ap-northeast-1.amazonaws.com -s3.dualstack.ap-northeast-2.amazonaws.com -s3.dualstack.ap-south-1.amazonaws.com -s3.dualstack.ap-southeast-1.amazonaws.com -s3.dualstack.ap-southeast-2.amazonaws.com -s3.dualstack.ca-central-1.amazonaws.com -s3.dualstack.eu-central-1.amazonaws.com -s3.dualstack.eu-west-1.amazonaws.com -s3.dualstack.eu-west-2.amazonaws.com -s3.dualstack.eu-west-3.amazonaws.com -s3.dualstack.sa-east-1.amazonaws.com -s3.dualstack.us-east-1.amazonaws.com -s3.dualstack.us-east-2.amazonaws.com -s3-website-us-east-1.amazonaws.com -s3-website-us-west-1.amazonaws.com -s3-website-us-west-2.amazonaws.com s3-website-ap-northeast-1.amazonaws.com s3-website-ap-southeast-1.amazonaws.com s3-website-ap-southeast-2.amazonaws.com s3-website-eu-west-1.amazonaws.com s3-website-sa-east-1.amazonaws.com -s3-website.ap-northeast-2.amazonaws.com -s3-website.ap-south-1.amazonaws.com -s3-website.ca-central-1.amazonaws.com -s3-website.eu-central-1.amazonaws.com -s3-website.eu-west-2.amazonaws.com -s3-website.eu-west-3.amazonaws.com +s3-website-us-east-1.amazonaws.com +s3-website-us-west-1.amazonaws.com +s3-website-us-west-2.amazonaws.com +s3.dualstack.sa-east-1.amazonaws.com +s3.dualstack.us-east-1.amazonaws.com +s3.dualstack.us-east-2.amazonaws.com +s3.us-east-2.amazonaws.com s3-website.us-east-2.amazonaws.com -// AWS Cloud9 : https://aws.amazon.com/cloud9/ +// AWS Cloud9 // Submitted by: AWS Security // Reference: 2b6dfa9a-3a7f-4367-b2e7-0321e77c0d59 vfs.cloud9.af-south-1.amazonaws.com @@ -10848,6 +10823,49 @@ webview-assets.cloud9.us-west-1.amazonaws.com vfs.cloud9.us-west-2.amazonaws.com webview-assets.cloud9.us-west-2.amazonaws.com +// AWS Elastic Beanstalk +// Submitted by Luke Wells +// Reference: aa202394-43a0-4857-b245-8db04549137e +cn-north-1.eb.amazonaws.com.cn +cn-northwest-1.eb.amazonaws.com.cn +elasticbeanstalk.com +ap-northeast-1.elasticbeanstalk.com +ap-northeast-2.elasticbeanstalk.com +ap-northeast-3.elasticbeanstalk.com +ap-south-1.elasticbeanstalk.com +ap-southeast-1.elasticbeanstalk.com +ap-southeast-2.elasticbeanstalk.com +ca-central-1.elasticbeanstalk.com +eu-central-1.elasticbeanstalk.com +eu-west-1.elasticbeanstalk.com +eu-west-2.elasticbeanstalk.com +eu-west-3.elasticbeanstalk.com +sa-east-1.elasticbeanstalk.com +us-east-1.elasticbeanstalk.com +us-east-2.elasticbeanstalk.com +us-gov-west-1.elasticbeanstalk.com +us-west-1.elasticbeanstalk.com +us-west-2.elasticbeanstalk.com + +// (AWS) Elastic Load Balancing +// Submitted by Luke Wells +// Reference: 12a3d528-1bac-4433-a359-a395867ffed2 +*.elb.amazonaws.com.cn +*.elb.amazonaws.com + +// AWS Global Accelerator +// Submitted by Daniel Massaguer +// Reference: d916759d-a08b-4241-b536-4db887383a6a +awsglobalaccelerator.com + +// eero +// Submitted by Yue Kang +// Reference: 264afe70-f62c-4c02-8ab9-b5281ed24461 +eero.online +eero-stage.online + +// concludes Amazon + // Amune : https://amune.org/ // Submitted by Team Amune t3l3p0rt.net @@ -11743,11 +11761,6 @@ e4.cz easypanel.app easypanel.host -// eero : https://eero.com/ -// Submitted by Yue Kang -eero.online -eero-stage.online - // Elementor : Elementor Ltd. // Submitted by Anton Barkan elementor.cloud From 7fc5e5f46f54b7a341ea3670a4542a0a4c76f439 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Oct 2022 09:42:42 +0200 Subject: [PATCH 361/450] Updated list from source (#209) Co-authored-by: weppos --- data/list.txt | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/data/list.txt b/data/list.txt index 88924a9d..15a9acea 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-15T15:17:51Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-20T15:22:15Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7341,7 +7341,7 @@ arab // aramco : 2014-11-20 Aramco Services Company aramco -// archi : 2014-02-06 Afilias Limited +// archi : 2014-02-06 Identity Digital Limited archi // army : 2014-03-06 Dog Beach, LLC @@ -7485,7 +7485,7 @@ best // bestbuy : 2015-07-31 BBY Solutions, Inc. bestbuy -// bet : 2015-05-07 Afilias Limited +// bet : 2015-05-07 Identity Digital Limited bet // bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited @@ -7506,10 +7506,10 @@ bing // bingo : 2014-12-04 Binky Moon, LLC bingo -// bio : 2014-03-06 Afilias Limited +// bio : 2014-03-06 Identity Digital Limited bio -// black : 2014-01-16 Afilias Limited +// black : 2014-01-16 Identity Digital Limited black // blackfriday : 2014-01-16 Registry Services, LLC @@ -7524,7 +7524,7 @@ blog // bloomberg : 2014-07-17 Bloomberg IP Holdings LLC bloomberg -// blue : 2013-11-07 Afilias Limited +// blue : 2013-11-07 Identity Digital Limited blue // bms : 2014-10-30 Bristol-Myers Squibb Company @@ -8430,7 +8430,7 @@ graphics // gratis : 2014-03-20 Binky Moon, LLC gratis -// green : 2014-05-08 Afilias Limited +// green : 2014-05-08 Identity Digital Limited green // gripe : 2014-03-06 Binky Moon, LLC @@ -8745,7 +8745,7 @@ kia // kids : 2021-08-13 DotKids Foundation Limited kids -// kim : 2013-09-23 Afilias Limited +// kim : 2013-09-23 Identity Digital Limited kim // kinder : 2014-11-07 Ferrero Trading Lux S.A. @@ -8850,7 +8850,7 @@ lego // lexus : 2015-04-23 TOYOTA MOTOR CORPORATION lexus -// lgbt : 2014-05-08 Afilias Limited +// lgbt : 2014-05-08 Identity Digital Limited lgbt // lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG @@ -8898,7 +8898,7 @@ live // living : 2015-07-30 Lifestyle Domain Holdings, Inc. living -// llc : 2017-12-14 Afilias Limited +// llc : 2017-12-14 Identity Digital Limited llc // llp : 2019-08-26 Intercap Registry Inc. @@ -8928,7 +8928,7 @@ london // lotte : 2014-11-07 Lotte Holdings Co., Ltd. lotte -// lotto : 2014-04-10 Afilias Limited +// lotto : 2014-04-10 Identity Digital Limited lotto // love : 2014-12-22 Merchant Law Group LLP @@ -9276,7 +9276,7 @@ oracle // orange : 2015-03-12 Orange Brand Services Limited orange -// organic : 2014-03-27 Afilias Limited +// organic : 2014-03-27 Identity Digital Limited organic // origins : 2015-10-01 The Estée Lauder Companies Inc. @@ -9324,7 +9324,7 @@ pay // pccw : 2015-05-14 PCCW Enterprises Limited pccw -// pet : 2015-05-07 Afilias Limited +// pet : 2015-05-07 Identity Digital Limited pet // pfizer : 2015-09-11 Pfizer Inc. @@ -9372,7 +9372,7 @@ pin // ping : 2015-06-11 Ping Registry Provider, Inc. ping -// pink : 2013-10-01 Afilias Limited +// pink : 2013-10-01 Identity Digital Limited pink // pioneer : 2015-07-16 Pioneer Corporation @@ -9402,7 +9402,7 @@ pnc // pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG pohl -// poker : 2014-07-03 Afilias Limited +// poker : 2014-07-03 Identity Digital Limited poker // politie : 2015-08-20 Politie Nederland @@ -9435,7 +9435,7 @@ prof // progressive : 2015-07-23 Progressive Casualty Insurance Company progressive -// promo : 2014-12-18 Afilias Limited +// promo : 2014-12-18 Identity Digital Limited promo // properties : 2013-12-05 Binky Moon, LLC @@ -9489,7 +9489,7 @@ realty // recipes : 2013-10-17 Binky Moon, LLC recipes -// red : 2013-11-07 Afilias Limited +// red : 2013-11-07 Identity Digital Limited red // redstone : 2014-10-31 Redstone Haute Couture Co., Ltd. @@ -9738,7 +9738,7 @@ shell // shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. shia -// shiksha : 2013-11-14 Afilias Limited +// shiksha : 2013-11-14 Identity Digital Limited shiksha // shoes : 2013-10-02 Binky Moon, LLC @@ -9771,7 +9771,7 @@ singles // site : 2015-01-15 Radix FZC site -// ski : 2015-04-09 Afilias Limited +// ski : 2015-04-09 Identity Digital Limited ski // skin : 2015-01-15 XYZ.COM LLC @@ -10212,7 +10212,7 @@ wanggou // watch : 2013-11-14 Binky Moon, LLC watch -// watches : 2014-12-22 Afilias Limited +// watches : 2014-12-22 Identity Digital Limited watches // weather : 2015-01-08 International Business Machines Corporation @@ -10347,7 +10347,7 @@ xin // xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited 网站 -// xn--6frz82g : 2013-09-23 Afilias Limited +// xn--6frz82g : 2013-09-23 Identity Digital Limited 移动 // xn--6qq986b3xl : 2013-09-13 Tycoon Treasure Limited From aac50a4f645c8f43cb38327c7bb2077d1ac6cfe7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 31 Oct 2022 09:04:00 +0100 Subject: [PATCH 362/450] Updated list from source (#210) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 15a9acea..025cf472 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-20T15:22:15Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-29T15:16:24Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7776,7 +7776,7 @@ claims // cleaning : 2013-12-05 Binky Moon, LLC cleaning -// click : 2014-06-05 UNR Corp. +// click : 2014-06-05 Internet Naming Company LLC click // clinic : 2014-03-20 Binky Moon, LLC From b88102ce181cd2f324b09defae8acf1115dfa234 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 3 Nov 2022 10:02:07 +0100 Subject: [PATCH 363/450] Updated list from source (#211) Co-authored-by: weppos --- data/list.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data/list.txt b/data/list.txt index 025cf472..8c63c5b8 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-10-29T15:16:24Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-11-02T15:17:39Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8511,7 +8511,7 @@ hisamitsu // hitachi : 2014-10-31 Hitachi, Ltd. hitachi -// hiv : 2014-03-13 UNR Corp. +// hiv : 2014-03-13 Internet Naming Company LLC hiv // hkt : 2015-05-14 PCCW-HKT DataCom Services Limited @@ -8715,7 +8715,7 @@ jpmorgan // jprs : 2014-09-18 Japan Registry Services Co., Ltd. jprs -// juegos : 2014-03-20 UNR Corp. +// juegos : 2014-03-20 Internet Naming Company LLC juegos // juniper : 2015-07-30 JUNIPER NETWORKS, INC. @@ -9441,7 +9441,7 @@ promo // properties : 2013-12-05 Binky Moon, LLC properties -// property : 2014-05-22 UNR Corp. +// property : 2014-05-22 Internet Naming Company LLC property // protection : 2015-04-23 XYZ.COM LLC @@ -9717,7 +9717,7 @@ sew // sex : 2014-11-13 ICM Registry SX LLC sex -// sexy : 2013-09-11 UNR Corp. +// sexy : 2013-09-11 Internet Naming Company LLC sexy // sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR @@ -10065,7 +10065,7 @@ travelers // travelersinsurance : 2015-03-26 Travelers TLD, LLC travelersinsurance -// trust : 2014-10-16 UNR Corp. +// trust : 2014-10-16 Internet Naming Company LLC trust // trv : 2015-03-26 Travelers TLD, LLC From d002043776580616bc47dc7630c977949e6dc683 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 3 Nov 2022 10:09:42 +0100 Subject: [PATCH 364/450] Lock mocha dependency Wait until issue https://github.com/freerange/mocha/issues/581 is addressed. --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index b41c6f2e..0c4ae09a 100644 --- a/Gemfile +++ b/Gemfile @@ -9,6 +9,6 @@ gem "rake" gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" -gem "mocha" +gem "mocha", "~> 1.16.0" gem "rubocop", require: false gem "yard" From dce8d774d2bdc77e69ebcb38b3ea4726f8d3f4e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Nov 2022 12:09:50 +0100 Subject: [PATCH 365/450] Update mocha requirement from ~> 1.16.0 to ~> 2.0.1 (#212) Updates the requirements on [mocha](https://github.com/freerange/mocha) to permit the latest version. - [Release notes](https://github.com/freerange/mocha/releases) - [Changelog](https://github.com/freerange/mocha/blob/main/RELEASE.md) - [Commits](https://github.com/freerange/mocha/compare/v1.16.0...v2.0.1) --- updated-dependencies: - dependency-name: mocha dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 0c4ae09a..56a042bb 100644 --- a/Gemfile +++ b/Gemfile @@ -9,6 +9,6 @@ gem "rake" gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" -gem "mocha", "~> 1.16.0" +gem "mocha", "~> 2.0.1" gem "rubocop", require: false gem "yard" From 3e89be08dc05a5e412c5f7e45fb65e4f77e82bfb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 5 Nov 2022 09:48:14 +0100 Subject: [PATCH 366/450] Updated list from source (#213) Co-authored-by: weppos --- data/list.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 8c63c5b8..91a50a39 100644 --- a/data/list.txt +++ b/data/list.txt @@ -12447,7 +12447,6 @@ herokussl.com // Hibernating Rhinos // Submitted by Oren Eini ravendb.cloud -myravendb.com ravendb.community ravendb.me development.run From b847179c1febb628095f1736505ccbeb43384fae Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Nov 2022 10:22:51 +0100 Subject: [PATCH 367/450] Updated list from source (#214) Co-authored-by: weppos --- data/list.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 91a50a39..9fb3bc8e 100644 --- a/data/list.txt +++ b/data/list.txt @@ -10702,6 +10702,10 @@ altervista.org // Submitted by Cyril alwaysdata.net +// Amaze Software : https://amaze.co +// Submitted by Domain Admin +myamaze.net + // Amazon : https://www.amazon.com/ // Submitted by AWS Security // Subsections of Amazon/subsidiaries will appear until "concludes" tag @@ -13840,10 +13844,6 @@ telebit.app telebit.io *.telebit.xyz -// The Gwiddle Foundation : https://gwiddlefoundation.org.uk -// Submitted by Joshua Bayfield -gwiddle.co.uk - // Thingdust AG : https://thingdust.com/ // Submitted by Adrian Imboden *.firenet.ch From 126f5554d7fb34f65b127c6d627a88212e92ffaf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 09:40:25 +0100 Subject: [PATCH 368/450] Bump cadwallion/publish-rubygems-action (#215) Bumps [cadwallion/publish-rubygems-action](https://github.com/cadwallion/publish-rubygems-action) from 8f9e0538302643309e4e43bf48cd34173ca48cfc to d9474d9633f4674e59afb0c343f2dafe25181328. - [Release notes](https://github.com/cadwallion/publish-rubygems-action/releases) - [Commits](https://github.com/cadwallion/publish-rubygems-action/compare/8f9e0538302643309e4e43bf48cd34173ca48cfc...d9474d9633f4674e59afb0c343f2dafe25181328) --- updated-dependencies: - dependency-name: cadwallion/publish-rubygems-action dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d56ea13c..c9a49e62 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Release Gem - uses: cadwallion/publish-rubygems-action@8f9e0538302643309e4e43bf48cd34173ca48cfc + uses: cadwallion/publish-rubygems-action@d9474d9633f4674e59afb0c343f2dafe25181328 env: RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }} RELEASE_COMMAND: rake release From 5b8a29e7a357a429cce4f8465b6a19d572e24887 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 09:06:20 +0100 Subject: [PATCH 369/450] Updated list from source (#216) Co-authored-by: weppos --- data/list.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 9fb3bc8e..18aa2ba5 100644 --- a/data/list.txt +++ b/data/list.txt @@ -13878,10 +13878,6 @@ pages.torproject.net bloxcms.com townnews-staging.com -// TradableBits: https://tradablebits.com -// Submitted by Dmitry Khrisanov dmitry@tradablebits.com -tbits.me - // TrafficPlex GmbH : https://www.trafficplex.de/ // Submitted by Phillipp Röll 12hp.at From 0432e0750fa7dfcee20daf2bc44a2c40d92256b5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 23 Nov 2022 08:55:14 +0100 Subject: [PATCH 370/450] Updated list from source (#217) Co-authored-by: weppos --- data/list.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 18aa2ba5..fdcefb01 100644 --- a/data/list.txt +++ b/data/list.txt @@ -11182,8 +11182,11 @@ cloudcontrolapp.com // Cloudflare, Inc. : https://www.cloudflare.com/ // Submitted by Cloudflare Team -pages.dev +cf-ipfs.com +cloudflare-ipfs.com trycloudflare.com +pages.dev +r2.dev workers.dev // Clovyr : https://clovyr.io @@ -13812,6 +13815,8 @@ direct.quickconnect.to // Tabit Technologies Ltd. : https://tabit.cloud/ // Submitted by Oren Agiv tabitorder.co.il +mytabit.co.il +mytabit.com // TAIFUN Software AG : http://taifun-software.de // Submitted by Bjoern Henke From e237cf567af411a8506c409f86db1f0ef7f08212 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Nov 2022 13:34:48 +0100 Subject: [PATCH 371/450] Updated list from source (#219) Co-authored-by: weppos --- data/list.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/list.txt b/data/list.txt index fdcefb01..6737e895 100644 --- a/data/list.txt +++ b/data/list.txt @@ -10658,6 +10658,10 @@ graphox.us // Submitted by Craig Jellick *.on-acorn.io +// ActiveTrail: https://www.activetrail.biz/ +// Submitted by Ofer Kalaora +activetrail.biz + // Adobe : https://www.adobe.com/ // Submitted by Ian Boston and Lars Trieloff adobeaemcloud.com From f4daa1a179e16702c2fc24b944e0db656659a84b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Nov 2022 09:22:11 +0100 Subject: [PATCH 372/450] Updated list from source (#220) Co-authored-by: weppos --- data/list.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 6737e895..60d72fd0 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-11-02T15:17:39Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-11-29T15:14:18Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7221,9 +7221,6 @@ aco // actor : 2013-12-12 Dog Beach, LLC actor -// adac : 2015-07-16 Allgemeiner Deutscher Automobil-Club e.V. (ADAC) -adac - // ads : 2014-12-04 Charleston Road Registry Inc. ads From 89857402ffc990a5877f609e5a6cf26a63c4d86d Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 7 Dec 2022 15:35:34 +0100 Subject: [PATCH 373/450] Release 5.0.1 --- CHANGELOG.md | 6 ++++++ lib/public_suffix/version.rb | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 611c4b51..15071101 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## 5.0.1 + +### Changed + +- Updated definitions. + ## 5.0.0 diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 1ab5e3fa..2c99198a 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -10,6 +10,6 @@ module PublicSuffix # @return [String] The current library version. - VERSION = "5.0.0" + VERSION = "5.0.1" end From 3fe461275c5a1cacf840154beb514a5af2f2e883 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 11:21:01 +0100 Subject: [PATCH 374/450] Updated list from source (#222) Co-authored-by: weppos --- data/list.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 60d72fd0..54988c71 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-11-29T15:14:18Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-12-07T15:13:11Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -10461,9 +10461,6 @@ xin // xn--jlq480n2rg : 2019-12-19 Amazon Registry Services, Inc. 亚马逊 -// xn--jlq61u9w7b : 2015-01-08 Nokia Corporation -诺基亚 - // xn--jvr189m : 2015-02-26 Amazon Registry Services, Inc. 食品 From bc53ab7ef1f11ed649bd47f1c26b802fdd79efed Mon Sep 17 00:00:00 2001 From: Peter Goldstein Date: Thu, 26 Jan 2023 10:22:31 -0500 Subject: [PATCH 375/450] Add Ruby 3.2 to the CI matrix (#223) --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 506c52ad..37e621a9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,6 +14,7 @@ jobs: - "2.7" - "3.0" - "3.1" + - "3.2" runs-on: ubuntu-latest steps: - name: Checkout From 668bda53f8270ff96324e8dd70893613c9c98687 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 11:07:10 +0100 Subject: [PATCH 376/450] Updated list from source (#224) Co-authored-by: weppos --- data/list.txt | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/data/list.txt b/data/list.txt index 54988c71..cca531fb 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7171,7 +7171,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2022-12-07T15:13:11Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-01-30T09:23:24Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8913,9 +8913,6 @@ locker // locus : 2015-06-25 Locus Analytics LLC locus -// loft : 2015-07-30 Annco, Inc. -loft - // lol : 2015-01-30 XYZ.COM LLC lol @@ -9702,9 +9699,6 @@ sener // services : 2014-02-27 Binky Moon, LLC services -// ses : 2015-07-23 SES -ses - // seven : 2015-08-06 Seven West Media Ltd seven @@ -9789,7 +9783,7 @@ smart // smile : 2014-12-18 Amazon Registry Services, Inc. smile -// sncf : 2015-02-19 Société Nationale des Chemins de fer Francais S N C F +// sncf : 2015-02-19 Société Nationale SNCF sncf // soccer : 2015-03-26 Binky Moon, LLC @@ -10026,7 +10020,7 @@ toray // toshiba : 2014-04-10 TOSHIBA Corporation toshiba -// total : 2015-08-06 TOTAL SE +// total : 2015-08-06 TotalEnergies SE total // tours : 2015-01-22 Binky Moon, LLC From 3f811b328bd747a3a0e8878ffab2cad2411f32a9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 14:04:25 +0100 Subject: [PATCH 377/450] Updated list from source (#225) Co-authored-by: weppos --- data/list.txt | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index cca531fb..543eee03 100644 --- a/data/list.txt +++ b/data/list.txt @@ -380,11 +380,29 @@ org.bi // biz : https://en.wikipedia.org/wiki/.biz biz -// bj : https://en.wikipedia.org/wiki/.bj +// bj : https://nic.bj/bj-suffixes.txt +// submitted by registry bj -asso.bj -barreau.bj -gouv.bj +africa.bj +agro.bj +architectes.bj +assur.bj +avocats.bj +co.bj +com.bj +eco.bj +econo.bj +edu.bj +info.bj +loisirs.bj +money.bj +net.bj +org.bj +ote.bj +resto.bj +restaurant.bj +tourism.bj +univ.bj // bm : http://www.bermudanic.bm/dnr-text.txt bm From 69a78ae5b52c66fd043d2e3b1b934b111ba0ef4a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Feb 2023 09:50:02 +0100 Subject: [PATCH 378/450] Updated list from source (#226) Co-authored-by: weppos --- data/list.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/data/list.txt b/data/list.txt index 543eee03..6e698c99 100644 --- a/data/list.txt +++ b/data/list.txt @@ -10677,6 +10677,11 @@ adobeaemcloud.net hlx.page hlx3.page +// Adobe Developer Platform : https://developer.adobe.com +// Submitted by Jesse MacFadyen +adobeio-static.net +adobeioruntime.net + // Agnat sp. z o.o. : https://domena.pl // Submitted by Przemyslaw Plewa beep.pl @@ -10935,6 +10940,10 @@ cdn.prod.atlassian-dev.net // Submitted by Lukas Reschke translated.page +// Autocode : https://autocode.com +// Submitted by Jacob Lee +autocode.dev + // AVM : https://avm.de // Submitted by Andreas Weise myfritz.net @@ -11063,6 +11072,11 @@ cafjs.com // Submitted by Marcus Popp mycd.eu +// Canva Pty Ltd : https://canva.com/ +// Submitted by Joel Aquilina +canva-apps.cn +canva-apps.com + // Carrd : https://carrd.co // Submitted by AJ drr.ac @@ -11980,6 +11994,7 @@ u.channelsdvr.net // Fastly Inc. : http://www.fastly.com/ // Submitted by Fastly Security edgecompute.app +fastly-edge.com fastly-terrarium.com fastlylb.net map.fastlylb.net @@ -13690,6 +13705,9 @@ vp4.me // Snowflake Inc : https://www.snowflake.com/ // Submitted by Faith Olapade +snowflake.app +privatelink.snowflake.app +streamlit.app streamlitapp.com // Snowplow Analytics : https://snowplowanalytics.com/ @@ -13965,6 +13983,10 @@ hk.org ltd.hk inc.hk +// UK Intis Telecom LTD : https://it.com +// Submitted by ITComdomains +it.com + // UNIVERSAL DOMAIN REGISTRY : https://www.udr.org.yt/ // see also: whois -h whois.udr.org.yt help // Submitted by Atanunu Igbunuroghene From d9d921e12433a855c8d9412574275d1f8096d380 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 21:01:36 +0100 Subject: [PATCH 379/450] Updated list from source (#227) Co-authored-by: weppos --- data/list.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/data/list.txt b/data/list.txt index 6e698c99..3cb68387 100644 --- a/data/list.txt +++ b/data/list.txt @@ -10696,6 +10696,24 @@ airkitapps.eu // Submitted by Etienne Stalmans aivencloud.com +// Akamai : https://www.akamai.com/ +// Submitted by Akamai Team +akadns.net +akamai.net +akamai-staging.net +akamaiedge.net +akamaiedge-staging.net +akamaihd.net +akamaihd-staging.net +akamaiorigin.net +akamaiorigin-staging.net +akamaized.net +akamaized-staging.net +edgekey.net +edgekey-staging.net +edgesuite.net +edgesuite-staging.net + // alboto.ca : http://alboto.ca // Submitted by Anton Avramov barsy.ca From f0f0ac69c5aa7e5f5facaa0dd5f547ff9dd079de Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Feb 2023 13:55:35 +0100 Subject: [PATCH 380/450] Updated list from source (#228) Co-authored-by: weppos --- data/list.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 3cb68387..fcdecb55 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7189,7 +7189,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-01-30T09:23:24Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-02-15T15:49:53Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -9471,7 +9471,7 @@ pub // pwc : 2015-10-29 PricewaterhouseCoopers LLP pwc -// qpon : 2013-11-14 dotCOOL, Inc. +// qpon : 2013-11-14 dotQPON LLC qpon // quebec : 2013-12-19 PointQuébec Inc @@ -12985,6 +12985,7 @@ cloudapp.net azurestaticapps.net 1.azurestaticapps.net 2.azurestaticapps.net +3.azurestaticapps.net centralus.azurestaticapps.net eastasia.azurestaticapps.net eastus2.azurestaticapps.net From bb3cbc4e254ced35c3506a1aecfa5e4406b2e351 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 23 Feb 2023 16:22:44 +0100 Subject: [PATCH 381/450] Updated list from source (#229) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index fcdecb55..510b5b2d 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7189,7 +7189,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-02-15T15:49:53Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-02-22T15:15:03Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8388,7 +8388,7 @@ glass // gle : 2014-07-24 Charleston Road Registry Inc. gle -// global : 2014-04-17 Dot Global Domain Registry Limited +// global : 2014-04-17 Identity Digital Limited global // globo : 2013-12-19 Globo Comunicação e Participações S.A From f332e64a82230608fc0d7a60b86cffaa9661ba50 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 10:33:42 +0100 Subject: [PATCH 382/450] Updated list from source (#231) Co-authored-by: weppos --- data/list.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/data/list.txt b/data/list.txt index 510b5b2d..c1ce3740 100644 --- a/data/list.txt +++ b/data/list.txt @@ -13572,6 +13572,56 @@ rocky.page спб.рус я.рус +// SAKURA Internet Inc. : https://www.sakura.ad.jp/ +// Submitted by Internet Service Department +180r.com +dojin.com +sakuratan.com +sakuraweb.com +x0.com +2-d.jp +bona.jp +crap.jp +daynight.jp +eek.jp +flop.jp +halfmoon.jp +jeez.jp +matrix.jp +mimoza.jp +ivory.ne.jp +mail-box.ne.jp +mints.ne.jp +mokuren.ne.jp +opal.ne.jp +sakura.ne.jp +sumomo.ne.jp +topaz.ne.jp +netgamers.jp +nyanta.jp +o0o0.jp +rdy.jp +rgr.jp +rulez.jp +s3.isk01.sakurastorage.jp +s3.isk02.sakurastorage.jp +saloon.jp +sblo.jp +skr.jp +tank.jp +uh-oh.jp +undo.jp +rs.webaccel.jp +user.webaccel.jp +websozai.jp +xii.jp +squares.net +jpn.org +kirara.st +x0.to +from.tv +sakura.tv + // Salesforce.com, Inc. https://salesforce.com/ // Submitted by Michael Biven *.builder.code.com From 33daaef189bf31b2b903cb8b8501ea96d30fd666 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 09:28:28 +0100 Subject: [PATCH 383/450] Updated list from source (#232) Co-authored-by: weppos --- data/list.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/data/list.txt b/data/list.txt index c1ce3740..3b920e67 100644 --- a/data/list.txt +++ b/data/list.txt @@ -12527,6 +12527,10 @@ ngo.ng edu.scot sch.so +// HostFly : https://www.ie.ua +// Submitted by Bohdan Dub +ie.ua + // HostyHosting (hostyhosting.com) hostyhosting.io @@ -13052,7 +13056,19 @@ netlify.app // ngrok : https://ngrok.com/ // Submitted by Alan Shreve +ngrok.app +ngrok-free.app +ngrok.dev +ngrok-free.dev ngrok.io +ap.ngrok.io +au.ngrok.io +eu.ngrok.io +in.ngrok.io +jp.ngrok.io +sa.ngrok.io +us.ngrok.io +ngrok.pizza // Nimbus Hosting Ltd. : https://www.nimbushosting.co.uk/ // Submitted by Nicholas Ford From 5af597aecc476f00afc43256c3151335d4afb530 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 10:28:29 +0100 Subject: [PATCH 384/450] Updated list from source (#233) Co-authored-by: weppos --- data/list.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 3b920e67..4fa60bcb 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7189,7 +7189,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-02-22T15:15:03Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-03-08T15:15:40Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8967,9 +8967,6 @@ luxe // luxury : 2013-10-17 Luxury Partners, LLC luxury -// macys : 2015-07-31 Macys, Inc. -macys - // madrid : 2014-05-01 Comunidad de Madrid madrid From 207e29bf4238e940aecfb3c4b958fdafa540451b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 09:57:08 +0100 Subject: [PATCH 385/450] Updated list from source (#235) Co-authored-by: weppos --- data/list.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 4fa60bcb..9d0dfc04 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7189,7 +7189,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-03-08T15:15:40Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-03-18T15:13:13Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8898,9 +8898,6 @@ limo // lincoln : 2014-11-13 Ford Motor Company lincoln -// linde : 2014-12-04 Linde Aktiengesellschaft -linde - // link : 2013-11-14 Nova Registry Ltd link From c3671ed6b0329ee5c545be55f174241f338931f1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Apr 2023 16:27:03 +0200 Subject: [PATCH 386/450] Updated list from source (#236) Co-authored-by: weppos --- data/list.txt | 568 ++------------------------------------------------ 1 file changed, 12 insertions(+), 556 deletions(-) diff --git a/data/list.txt b/data/list.txt index 9d0dfc04..ffa1ee3f 100644 --- a/data/list.txt +++ b/data/list.txt @@ -1051,8 +1051,7 @@ fm // fo : https://en.wikipedia.org/wiki/.fo fo -// fr : http://www.afnic.fr/ -// domaines descriptifs : https://www.afnic.fr/medias/documents/Cadre_legal/Afnic_Naming_Policy_12122016_VEN.pdf +// fr : https://www.afnic.fr/ https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf fr asso.fr com.fr @@ -1060,7 +1059,7 @@ gouv.fr nom.fr prd.fr tm.fr -// domaines sectoriels : https://www.afnic.fr/en/products-and-services/the-fr-tld/sector-based-fr-domains-4.html +// Former "domaines sectoriels", still registration suffixes aeroport.fr avocat.fr avoues.fr @@ -4070,555 +4069,8 @@ ac.mu co.mu or.mu -// museum : http://about.museum/naming/ -// http://index.museum/ +// museum : https://welcome.museum/wp-content/uploads/2018/05/20180525-Registration-Policy-MUSEUM-EN_VF-2.pdf https://welcome.museum/buy-your-dot-museum-2/ museum -academy.museum -agriculture.museum -air.museum -airguard.museum -alabama.museum -alaska.museum -amber.museum -ambulance.museum -american.museum -americana.museum -americanantiques.museum -americanart.museum -amsterdam.museum -and.museum -annefrank.museum -anthro.museum -anthropology.museum -antiques.museum -aquarium.museum -arboretum.museum -archaeological.museum -archaeology.museum -architecture.museum -art.museum -artanddesign.museum -artcenter.museum -artdeco.museum -arteducation.museum -artgallery.museum -arts.museum -artsandcrafts.museum -asmatart.museum -assassination.museum -assisi.museum -association.museum -astronomy.museum -atlanta.museum -austin.museum -australia.museum -automotive.museum -aviation.museum -axis.museum -badajoz.museum -baghdad.museum -bahn.museum -bale.museum -baltimore.museum -barcelona.museum -baseball.museum -basel.museum -baths.museum -bauern.museum -beauxarts.museum -beeldengeluid.museum -bellevue.museum -bergbau.museum -berkeley.museum -berlin.museum -bern.museum -bible.museum -bilbao.museum -bill.museum -birdart.museum -birthplace.museum -bonn.museum -boston.museum -botanical.museum -botanicalgarden.museum -botanicgarden.museum -botany.museum -brandywinevalley.museum -brasil.museum -bristol.museum -british.museum -britishcolumbia.museum -broadcast.museum -brunel.museum -brussel.museum -brussels.museum -bruxelles.museum -building.museum -burghof.museum -bus.museum -bushey.museum -cadaques.museum -california.museum -cambridge.museum -can.museum -canada.museum -capebreton.museum -carrier.museum -cartoonart.museum -casadelamoneda.museum -castle.museum -castres.museum -celtic.museum -center.museum -chattanooga.museum -cheltenham.museum -chesapeakebay.museum -chicago.museum -children.museum -childrens.museum -childrensgarden.museum -chiropractic.museum -chocolate.museum -christiansburg.museum -cincinnati.museum -cinema.museum -circus.museum -civilisation.museum -civilization.museum -civilwar.museum -clinton.museum -clock.museum -coal.museum -coastaldefence.museum -cody.museum -coldwar.museum -collection.museum -colonialwilliamsburg.museum -coloradoplateau.museum -columbia.museum -columbus.museum -communication.museum -communications.museum -community.museum -computer.museum -computerhistory.museum -comunicações.museum -contemporary.museum -contemporaryart.museum -convent.museum -copenhagen.museum -corporation.museum -correios-e-telecomunicações.museum -corvette.museum -costume.museum -countryestate.museum -county.museum -crafts.museum -cranbrook.museum -creation.museum -cultural.museum -culturalcenter.museum -culture.museum -cyber.museum -cymru.museum -dali.museum -dallas.museum -database.museum -ddr.museum -decorativearts.museum -delaware.museum -delmenhorst.museum -denmark.museum -depot.museum -design.museum -detroit.museum -dinosaur.museum -discovery.museum -dolls.museum -donostia.museum -durham.museum -eastafrica.museum -eastcoast.museum -education.museum -educational.museum -egyptian.museum -eisenbahn.museum -elburg.museum -elvendrell.museum -embroidery.museum -encyclopedic.museum -england.museum -entomology.museum -environment.museum -environmentalconservation.museum -epilepsy.museum -essex.museum -estate.museum -ethnology.museum -exeter.museum -exhibition.museum -family.museum -farm.museum -farmequipment.museum -farmers.museum -farmstead.museum -field.museum -figueres.museum -filatelia.museum -film.museum -fineart.museum -finearts.museum -finland.museum -flanders.museum -florida.museum -force.museum -fortmissoula.museum -fortworth.museum -foundation.museum -francaise.museum -frankfurt.museum -franziskaner.museum -freemasonry.museum -freiburg.museum -fribourg.museum -frog.museum -fundacio.museum -furniture.museum -gallery.museum -garden.museum -gateway.museum -geelvinck.museum -gemological.museum -geology.museum -georgia.museum -giessen.museum -glas.museum -glass.museum -gorge.museum -grandrapids.museum -graz.museum -guernsey.museum -halloffame.museum -hamburg.museum -handson.museum -harvestcelebration.museum -hawaii.museum -health.museum -heimatunduhren.museum -hellas.museum -helsinki.museum -hembygdsforbund.museum -heritage.museum -histoire.museum -historical.museum -historicalsociety.museum -historichouses.museum -historisch.museum -historisches.museum -history.museum -historyofscience.museum -horology.museum -house.museum -humanities.museum -illustration.museum -imageandsound.museum -indian.museum -indiana.museum -indianapolis.museum -indianmarket.museum -intelligence.museum -interactive.museum -iraq.museum -iron.museum -isleofman.museum -jamison.museum -jefferson.museum -jerusalem.museum -jewelry.museum -jewish.museum -jewishart.museum -jfk.museum -journalism.museum -judaica.museum -judygarland.museum -juedisches.museum -juif.museum -karate.museum -karikatur.museum -kids.museum -koebenhavn.museum -koeln.museum -kunst.museum -kunstsammlung.museum -kunstunddesign.museum -labor.museum -labour.museum -lajolla.museum -lancashire.museum -landes.museum -lans.museum -läns.museum -larsson.museum -lewismiller.museum -lincoln.museum -linz.museum -living.museum -livinghistory.museum -localhistory.museum -london.museum -losangeles.museum -louvre.museum -loyalist.museum -lucerne.museum -luxembourg.museum -luzern.museum -mad.museum -madrid.museum -mallorca.museum -manchester.museum -mansion.museum -mansions.museum -manx.museum -marburg.museum -maritime.museum -maritimo.museum -maryland.museum -marylhurst.museum -media.museum -medical.museum -medizinhistorisches.museum -meeres.museum -memorial.museum -mesaverde.museum -michigan.museum -midatlantic.museum -military.museum -mill.museum -miners.museum -mining.museum -minnesota.museum -missile.museum -missoula.museum -modern.museum -moma.museum -money.museum -monmouth.museum -monticello.museum -montreal.museum -moscow.museum -motorcycle.museum -muenchen.museum -muenster.museum -mulhouse.museum -muncie.museum -museet.museum -museumcenter.museum -museumvereniging.museum -music.museum -national.museum -nationalfirearms.museum -nationalheritage.museum -nativeamerican.museum -naturalhistory.museum -naturalhistorymuseum.museum -naturalsciences.museum -nature.museum -naturhistorisches.museum -natuurwetenschappen.museum -naumburg.museum -naval.museum -nebraska.museum -neues.museum -newhampshire.museum -newjersey.museum -newmexico.museum -newport.museum -newspaper.museum -newyork.museum -niepce.museum -norfolk.museum -north.museum -nrw.museum -nyc.museum -nyny.museum -oceanographic.museum -oceanographique.museum -omaha.museum -online.museum -ontario.museum -openair.museum -oregon.museum -oregontrail.museum -otago.museum -oxford.museum -pacific.museum -paderborn.museum -palace.museum -paleo.museum -palmsprings.museum -panama.museum -paris.museum -pasadena.museum -pharmacy.museum -philadelphia.museum -philadelphiaarea.museum -philately.museum -phoenix.museum -photography.museum -pilots.museum -pittsburgh.museum -planetarium.museum -plantation.museum -plants.museum -plaza.museum -portal.museum -portland.museum -portlligat.museum -posts-and-telecommunications.museum -preservation.museum -presidio.museum -press.museum -project.museum -public.museum -pubol.museum -quebec.museum -railroad.museum -railway.museum -research.museum -resistance.museum -riodejaneiro.museum -rochester.museum -rockart.museum -roma.museum -russia.museum -saintlouis.museum -salem.museum -salvadordali.museum -salzburg.museum -sandiego.museum -sanfrancisco.museum -santabarbara.museum -santacruz.museum -santafe.museum -saskatchewan.museum -satx.museum -savannahga.museum -schlesisches.museum -schoenbrunn.museum -schokoladen.museum -school.museum -schweiz.museum -science.museum -scienceandhistory.museum -scienceandindustry.museum -sciencecenter.museum -sciencecenters.museum -science-fiction.museum -sciencehistory.museum -sciences.museum -sciencesnaturelles.museum -scotland.museum -seaport.museum -settlement.museum -settlers.museum -shell.museum -sherbrooke.museum -sibenik.museum -silk.museum -ski.museum -skole.museum -society.museum -sologne.museum -soundandvision.museum -southcarolina.museum -southwest.museum -space.museum -spy.museum -square.museum -stadt.museum -stalbans.museum -starnberg.museum -state.museum -stateofdelaware.museum -station.museum -steam.museum -steiermark.museum -stjohn.museum -stockholm.museum -stpetersburg.museum -stuttgart.museum -suisse.museum -surgeonshall.museum -surrey.museum -svizzera.museum -sweden.museum -sydney.museum -tank.museum -tcm.museum -technology.museum -telekommunikation.museum -television.museum -texas.museum -textile.museum -theater.museum -time.museum -timekeeping.museum -topology.museum -torino.museum -touch.museum -town.museum -transport.museum -tree.museum -trolley.museum -trust.museum -trustee.museum -uhren.museum -ulm.museum -undersea.museum -university.museum -usa.museum -usantiques.museum -usarts.museum -uscountryestate.museum -usculture.museum -usdecorativearts.museum -usgarden.museum -ushistory.museum -ushuaia.museum -uslivinghistory.museum -utah.museum -uvic.museum -valley.museum -vantaa.museum -versailles.museum -viking.museum -village.museum -virginia.museum -virtual.museum -virtuel.museum -vlaanderen.museum -volkenkunde.museum -wales.museum -wallonie.museum -war.museum -washingtondc.museum -watchandclock.museum -watch-and-clock.museum -western.museum -westfalen.museum -whaling.museum -wildlife.museum -williamsburg.museum -windmill.museum -workshop.museum -york.museum -yorkshire.museum -yosemite.museum -youth.museum -zoological.museum -zoology.museum -ירושלים.museum -иком.museum // mv : https://en.wikipedia.org/wiki/.mv // "mv" included because, contra Wikipedia, google.mv exists. @@ -5861,7 +5313,7 @@ zarow.pl zgora.pl zgorzelec.pl -// pm : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +// pm : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf pm // pn : http://www.government.pn/PnRegistry/policies.htm @@ -5959,7 +5411,7 @@ net.qa org.qa sch.qa -// re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs +// re : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf re asso.re com.re @@ -6216,7 +5668,7 @@ td // http://www.telnic.org/ tel -// tf : https://en.wikipedia.org/wiki/.tf +// tf : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf tf // tg : https://en.wikipedia.org/wiki/.tg @@ -6835,7 +6287,7 @@ edu.vu net.vu org.vu -// wf : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +// wf : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf wf // ws : https://en.wikipedia.org/wiki/.ws @@ -6847,7 +6299,7 @@ org.ws gov.ws edu.ws -// yt : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +// yt : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf yt // IDN ccTLDs @@ -13459,6 +12911,10 @@ qoto.io // Submitted by Xavier De Cock qualifioapp.com +// Quality Unit: https://qualityunit.com +// Submitted by Vasyl Tsalko +ladesk.com + // QuickBackend: https://www.quickbackend.com // Submitted by Dani Biro qbuser.com From 5919f4b0271002ccf44aaf89215c3fc758ab3db3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 20:09:12 +0200 Subject: [PATCH 387/450] Updated list from source (#238) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index ffa1ee3f..d9f0c71d 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6641,7 +6641,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-03-18T15:13:13Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-04-14T15:13:16Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8755,7 +8755,7 @@ ovh // page : 2014-12-04 Charleston Road Registry Inc. page -// panasonic : 2015-07-30 Panasonic Corporation +// panasonic : 2015-07-30 Panasonic Holdings Corporation panasonic // paris : 2014-01-30 City of Paris From f8d9f8fb4cd030044565048062400877caafd9cd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Apr 2023 11:05:46 +0200 Subject: [PATCH 388/450] Updated list from source (#239) Co-authored-by: weppos --- data/list.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/data/list.txt b/data/list.txt index d9f0c71d..73b57930 100644 --- a/data/list.txt +++ b/data/list.txt @@ -5876,6 +5876,7 @@ kiev.ua kirovograd.ua km.ua kr.ua +kropyvnytskyi.ua krym.ua ks.ua kv.ua From 907df69a6d2767717d3b81cebcb450a2527e0ea2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Apr 2023 12:13:43 +0200 Subject: [PATCH 389/450] Bump peter-evans/create-pull-request from 4 to 5 (#237) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v4...v5) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/psl-update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index f696f9a6..c18df819 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -23,7 +23,7 @@ jobs: run: bundle exec rake update-list - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v5 with: title: PSL auto-update commit-message: Updated list from source From cdb1cd25e6a4a22450dc949c92c12f33339ca71c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 5 May 2023 11:09:38 +0200 Subject: [PATCH 390/450] Updated list from source (#240) Co-authored-by: weppos --- data/list.txt | 58 +++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/data/list.txt b/data/list.txt index 73b57930..5a8a3512 100644 --- a/data/list.txt +++ b/data/list.txt @@ -5146,52 +5146,60 @@ turystyka.pl // Government domains gov.pl ap.gov.pl +griw.gov.pl ic.gov.pl is.gov.pl -us.gov.pl kmpsp.gov.pl +konsulat.gov.pl kppsp.gov.pl -kwpsp.gov.pl -psp.gov.pl -wskr.gov.pl kwp.gov.pl +kwpsp.gov.pl +mup.gov.pl mw.gov.pl -ug.gov.pl -um.gov.pl -umig.gov.pl -ugim.gov.pl -upow.gov.pl -uw.gov.pl -starostwo.gov.pl +oia.gov.pl +oirm.gov.pl +oke.gov.pl +oow.gov.pl +oschr.gov.pl +oum.gov.pl pa.gov.pl +pinb.gov.pl +piw.gov.pl po.gov.pl +pr.gov.pl +psp.gov.pl psse.gov.pl pup.gov.pl rzgw.gov.pl sa.gov.pl +sdn.gov.pl +sko.gov.pl so.gov.pl sr.gov.pl -wsa.gov.pl -sko.gov.pl +starostwo.gov.pl +ug.gov.pl +ugim.gov.pl +um.gov.pl +umig.gov.pl +upow.gov.pl +uppo.gov.pl +us.gov.pl +uw.gov.pl uzs.gov.pl +wif.gov.pl wiih.gov.pl winb.gov.pl -pinb.gov.pl wios.gov.pl witd.gov.pl -wzmiuw.gov.pl -piw.gov.pl wiw.gov.pl -griw.gov.pl -wif.gov.pl -oum.gov.pl -sdn.gov.pl -zp.gov.pl -uppo.gov.pl -mup.gov.pl +wkz.gov.pl +wsa.gov.pl +wskr.gov.pl +wsse.gov.pl wuoz.gov.pl -konsulat.gov.pl -oirm.gov.pl +wzmiuw.gov.pl +zp.gov.pl +zpisdn.gov.pl // pl regional domains (http://www.dns.pl/english/index.html) augustow.pl babia-gora.pl From 37dac97f32fae77cecd93eaed4b28b7f5cab3d9c Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Fri, 12 May 2023 05:28:10 -0300 Subject: [PATCH 391/450] README: Document how to add a custom domain to the list (#221) --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4cf31e3a..9ba532ce 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,13 @@ PublicSuffix.domain("something.blogspot.com") # => "blogspot.com" ``` +## Add domain to list + +If you want to manually add a domain to the list just run: + +```ruby +PublicSuffix::List.default << PublicSuffix::Rule.factory('onmicrosoft.com') +``` ## What is the Public Suffix List? @@ -214,4 +221,4 @@ sld = Second level domain, a domain that is directly below a top-level domain. F trd = Transit routing domain, or known as a subdomain. This is the part of the domain that is before the sld or root domain. For example, in `https://www.mozilla.org/en-US/`, `www` is the trd. -FQDN = Fully Qualified Domain Names, are domain names that are written with the hostname and the domain name, and include the top-level domain, the format looks like `[hostname].[domain].[tld].` for ex. `[www].[mozilla].[org]`. +FQDN = Fully Qualified Domain Names, are domain names that are written with the hostname and the domain name, and include the top-level domain, the format looks like `[hostname].[domain].[tld].` for ex. `[www].[mozilla].[org]`. From 3d5b07e2cb0a5cb372af1158d4cc42c2d171f2cd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Jun 2023 11:59:09 +0200 Subject: [PATCH 392/450] Updated list from source (#241) Co-authored-by: weppos --- data/list.txt | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/data/list.txt b/data/list.txt index 5a8a3512..0bdca718 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6650,7 +6650,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-04-14T15:13:16Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-06-07T15:13:30Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -6658,9 +6658,6 @@ aaa // aarp : 2015-05-21 AARP aarp -// abarth : 2015-07-30 Fiat Chrysler Automobiles N.V. -abarth - // abb : 2014-10-24 ABB Ltd abb @@ -6739,9 +6736,6 @@ airtel // akdn : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) akdn -// alfaromeo : 2015-07-31 Fiat Chrysler Automobiles N.V. -alfaromeo - // alibaba : 2015-01-15 Alibaba Group Holding Limited alibaba @@ -7654,9 +7648,6 @@ ferrari // ferrero : 2014-12-18 Ferrero Trading Lux S.A. ferrero -// fiat : 2015-07-31 Fiat Chrysler Automobiles N.V. -fiat - // fidelity : 2015-07-30 Fidelity Brokerage Services LLC fidelity @@ -8275,9 +8266,6 @@ lamer // lancaster : 2015-02-12 LANCASTER lancaster -// lancia : 2015-07-31 Fiat Chrysler Automobiles N.V. -lancia - // land : 2013-09-10 Binky Moon, LLC land @@ -8464,9 +8452,6 @@ marriott // marshalls : 2015-07-16 The TJX Companies, Inc. marshalls -// maserati : 2015-07-31 Fiat Chrysler Automobiles N.V. -maserati - // mattel : 2015-08-06 Mattel Sites, Inc. mattel @@ -10027,7 +10012,7 @@ vermögensberatung // xn--vhquv : 2013-08-27 Binky Moon, LLC 企业 -// xn--vuq861b : 2014-10-16 Beijing Tele-info Network Technology Co., Ltd. +// xn--vuq861b : 2014-10-16 Beijing Tele-info Technology Co., Ltd. 信息 // xn--w4r85el8fhu5dnra : 2015-04-30 Kerry Trading Co. Limited From baa3784a6403a9fd828b6cfaa32ac78010c6d488 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 09:40:10 +0200 Subject: [PATCH 393/450] Updated list from source (#242) Co-authored-by: weppos --- data/list.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 0bdca718..0dfc8d6d 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6650,7 +6650,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-06-07T15:13:30Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-06-10T15:11:57Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8689,10 +8689,10 @@ office // okinawa : 2013-12-05 BRregistry, Inc. okinawa -// olayan : 2015-05-14 Crescent Holding GmbH +// olayan : 2015-05-14 Competrol (Luxembourg) Sarl olayan -// olayangroup : 2015-05-14 Crescent Holding GmbH +// olayangroup : 2015-05-14 Competrol (Luxembourg) Sarl olayangroup // oldnavy : 2015-07-31 The Gap, Inc. @@ -9925,7 +9925,7 @@ xin // xn--mgba3a3ejt : 2014-11-20 Aramco Services Company ارامكو -// xn--mgba7c0bbn0a : 2015-05-14 Crescent Holding GmbH +// xn--mgba7c0bbn0a : 2015-05-14 Competrol (Luxembourg) Sarl العليان // xn--mgbaakc7dvf : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) From 1dc447d1ae3f19e52bb408fd23b56ee9b91ad30f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 14 Jun 2023 14:12:38 +0200 Subject: [PATCH 394/450] Updated list from source (#243) Co-authored-by: weppos --- data/list.txt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/data/list.txt b/data/list.txt index 0dfc8d6d..f6c82d29 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6273,20 +6273,23 @@ k12.vi net.vi org.vi -// vn : https://www.dot.vn/vnnic/vnnic/domainregistration.jsp +// vn : https://www.vnnic.vn/en/domain/cctld-vn vn +ac.vn +ai.vn +biz.vn com.vn -net.vn -org.vn edu.vn gov.vn -int.vn -ac.vn -biz.vn +health.vn +id.vn info.vn +int.vn +io.vn name.vn +net.vn +org.vn pro.vn -health.vn // vu : https://en.wikipedia.org/wiki/.vu // http://www.vunic.vu/ From 76e85e0d37193020f5bde0741116317b12a6dcb6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 15 Jun 2023 09:59:58 +0200 Subject: [PATCH 395/450] Updated list from source (#244) Co-authored-by: weppos --- data/list.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/data/list.txt b/data/list.txt index f6c82d29..4f5c1e68 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6653,7 +6653,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-06-10T15:11:57Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-06-14T15:13:06Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7801,7 +7801,7 @@ gap // garden : 2014-06-26 Registry Services, LLC garden -// gay : 2019-05-23 Top Level Design, LLC +// gay : 2019-05-23 Registry Services, LLC gay // gbiz : 2014-07-17 Charleston Road Registry Inc. @@ -8098,7 +8098,7 @@ infiniti // ing : 2014-01-23 Charleston Road Registry Inc. ing -// ink : 2013-12-05 Top Level Design, LLC +// ink : 2013-12-05 Registry Services, LLC ink // institute : 2013-11-07 Binky Moon, LLC @@ -9388,7 +9388,7 @@ tatamotors // tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" tatar -// tattoo : 2013-08-30 Top Level Design, LLC +// tattoo : 2013-08-30 Registry Services, LLC tattoo // tax : 2014-03-20 Binky Moon, LLC @@ -9697,7 +9697,7 @@ whoswho // wien : 2013-10-28 punkt.wien GmbH wien -// wiki : 2013-11-07 Top Level Design, LLC +// wiki : 2013-11-07 Registry Services, LLC wiki // williamhill : 2014-03-13 William Hill Organization Limited From 3cc407c82f7ceeb4b67161abeadb7afc7521434a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 17:44:09 +0200 Subject: [PATCH 396/450] Updated list from source (#245) Co-authored-by: weppos --- data/list.txt | 82 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 68 insertions(+), 14 deletions(-) diff --git a/data/list.txt b/data/list.txt index 4f5c1e68..b6324243 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6274,6 +6274,7 @@ net.vi org.vi // vn : https://www.vnnic.vn/en/domain/cctld-vn +// https://vnnic.vn/sites/default/files/tailieu/vn.cctld.domains.txt vn ac.vn ai.vn @@ -6291,6 +6292,71 @@ net.vn org.vn pro.vn +// vn geographical names +angiang.vn +bacgiang.vn +backan.vn +baclieu.vn +bacninh.vn +baria-vungtau.vn +bentre.vn +binhdinh.vn +binhduong.vn +binhphuoc.vn +binhthuan.vn +camau.vn +cantho.vn +caobang.vn +daklak.vn +daknong.vn +danang.vn +dienbien.vn +dongnai.vn +dongthap.vn +gialai.vn +hagiang.vn +haiduong.vn +haiphong.vn +hanam.vn +hanoi.vn +hatinh.vn +haugiang.vn +hoabinh.vn +hungyen.vn +khanhhoa.vn +kiengiang.vn +kontum.vn +laichau.vn +lamdong.vn +langson.vn +laocai.vn +longan.vn +namdinh.vn +nghean.vn +ninhbinh.vn +ninhthuan.vn +phutho.vn +phuyen.vn +quangbinh.vn +quangnam.vn +quangngai.vn +quangninh.vn +quangtri.vn +soctrang.vn +sonla.vn +tayninh.vn +thaibinh.vn +thainguyen.vn +thanhhoa.vn +thanhphohochiminh.vn +thuathienhue.vn +tiengiang.vn +travinh.vn +tuyenquang.vn +vinhlong.vn +vinhphuc.vn +yenbai.vn + // vu : https://en.wikipedia.org/wiki/.vu // http://www.vunic.vu/ vu @@ -6653,7 +6719,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-06-14T15:13:06Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-06-16T15:12:40Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -7324,9 +7390,6 @@ contractors // cooking : 2013-11-21 Registry Services, LLC cooking -// cookingchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. -cookingchannel - // cool : 2013-11-14 Binky Moon, LLC cool @@ -7714,9 +7777,6 @@ foo // food : 2016-04-21 Lifestyle Domain Holdings, Inc. food -// foodnetwork : 2015-07-02 Lifestyle Domain Holdings, Inc. -foodnetwork - // football : 2014-12-18 Binky Moon, LLC football @@ -7951,7 +8011,7 @@ hdfc // hdfcbank : 2015-02-12 HDFC Bank Limited hdfcbank -// health : 2015-02-11 DotHealth, LLC +// health : 2015-02-11 Registry Services, LLC health // healthcare : 2014-06-12 Binky Moon, LLC @@ -7969,9 +8029,6 @@ here // hermes : 2014-07-10 HERMES INTERNATIONAL hermes -// hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc. -hgtv - // hiphop : 2014-03-06 Dot Hip Hop, LLC hiphop @@ -9508,9 +9565,6 @@ training // travel : 2015-10-09 Dog Beach, LLC travel -// travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. -travelchannel - // travelers : 2015-03-26 Travelers TLD, LLC travelers From 58a964ec33de896b4d9746eed6379d82404f318e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 11:11:48 +0200 Subject: [PATCH 397/450] Updated list from source (#247) Co-authored-by: weppos --- data/list.txt | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index b6324243..2822ead2 100644 --- a/data/list.txt +++ b/data/list.txt @@ -10311,49 +10311,79 @@ s3.dualstack.us-east-2.amazonaws.com s3.us-east-2.amazonaws.com s3-website.us-east-2.amazonaws.com +// Analytics on AWS +// Submitted by AWS Security +// Reference: c02c3a80-f8a0-4fd2-b719-48ea8b7c28de +analytics-gateway.ap-northeast-1.amazonaws.com +analytics-gateway.eu-west-1.amazonaws.com +analytics-gateway.us-east-1.amazonaws.com +analytics-gateway.us-east-2.amazonaws.com +analytics-gateway.us-west-2.amazonaws.com + // AWS Cloud9 // Submitted by: AWS Security -// Reference: 2b6dfa9a-3a7f-4367-b2e7-0321e77c0d59 +// Reference: 05c44955-977c-4b57-938a-f2af92733f9f +webview-assets.aws-cloud9.af-south-1.amazonaws.com vfs.cloud9.af-south-1.amazonaws.com webview-assets.cloud9.af-south-1.amazonaws.com +webview-assets.aws-cloud9.ap-east-1.amazonaws.com vfs.cloud9.ap-east-1.amazonaws.com webview-assets.cloud9.ap-east-1.amazonaws.com +webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com vfs.cloud9.ap-northeast-1.amazonaws.com webview-assets.cloud9.ap-northeast-1.amazonaws.com +webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com vfs.cloud9.ap-northeast-2.amazonaws.com webview-assets.cloud9.ap-northeast-2.amazonaws.com +webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com vfs.cloud9.ap-northeast-3.amazonaws.com webview-assets.cloud9.ap-northeast-3.amazonaws.com +webview-assets.aws-cloud9.ap-south-1.amazonaws.com vfs.cloud9.ap-south-1.amazonaws.com webview-assets.cloud9.ap-south-1.amazonaws.com +webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com vfs.cloud9.ap-southeast-1.amazonaws.com webview-assets.cloud9.ap-southeast-1.amazonaws.com +webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com vfs.cloud9.ap-southeast-2.amazonaws.com webview-assets.cloud9.ap-southeast-2.amazonaws.com +webview-assets.aws-cloud9.ca-central-1.amazonaws.com vfs.cloud9.ca-central-1.amazonaws.com webview-assets.cloud9.ca-central-1.amazonaws.com +webview-assets.aws-cloud9.eu-central-1.amazonaws.com vfs.cloud9.eu-central-1.amazonaws.com webview-assets.cloud9.eu-central-1.amazonaws.com +webview-assets.aws-cloud9.eu-north-1.amazonaws.com vfs.cloud9.eu-north-1.amazonaws.com webview-assets.cloud9.eu-north-1.amazonaws.com +webview-assets.aws-cloud9.eu-south-1.amazonaws.com vfs.cloud9.eu-south-1.amazonaws.com webview-assets.cloud9.eu-south-1.amazonaws.com +webview-assets.aws-cloud9.eu-west-1.amazonaws.com vfs.cloud9.eu-west-1.amazonaws.com webview-assets.cloud9.eu-west-1.amazonaws.com +webview-assets.aws-cloud9.eu-west-2.amazonaws.com vfs.cloud9.eu-west-2.amazonaws.com webview-assets.cloud9.eu-west-2.amazonaws.com +webview-assets.aws-cloud9.eu-west-3.amazonaws.com vfs.cloud9.eu-west-3.amazonaws.com webview-assets.cloud9.eu-west-3.amazonaws.com +webview-assets.aws-cloud9.me-south-1.amazonaws.com vfs.cloud9.me-south-1.amazonaws.com webview-assets.cloud9.me-south-1.amazonaws.com +webview-assets.aws-cloud9.sa-east-1.amazonaws.com vfs.cloud9.sa-east-1.amazonaws.com webview-assets.cloud9.sa-east-1.amazonaws.com +webview-assets.aws-cloud9.us-east-1.amazonaws.com vfs.cloud9.us-east-1.amazonaws.com webview-assets.cloud9.us-east-1.amazonaws.com +webview-assets.aws-cloud9.us-east-2.amazonaws.com vfs.cloud9.us-east-2.amazonaws.com webview-assets.cloud9.us-east-2.amazonaws.com +webview-assets.aws-cloud9.us-west-1.amazonaws.com vfs.cloud9.us-west-1.amazonaws.com webview-assets.cloud9.us-west-1.amazonaws.com +webview-assets.aws-cloud9.us-west-2.amazonaws.com vfs.cloud9.us-west-2.amazonaws.com webview-assets.cloud9.us-west-2.amazonaws.com From d673b2a8b9274edd32f02f320ebf324c73edc934 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 09:43:14 +0200 Subject: [PATCH 398/450] Updated list from source (#248) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 2822ead2..21c0fa21 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6719,7 +6719,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-06-16T15:12:40Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-07-01T15:13:06Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -9340,7 +9340,7 @@ spa // space : 2014-04-03 Radix FZC space -// sport : 2017-11-16 Global Association of International Sports Federations (GAISF) +// sport : 2017-11-16 SportAccord sport // spot : 2015-02-26 Amazon Registry Services, Inc. From 2b46c083fb1a7fadace0815581150c57f5064557 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 11:08:18 +0200 Subject: [PATCH 399/450] Updated list from source (#249) Co-authored-by: weppos --- data/list.txt | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/data/list.txt b/data/list.txt index 21c0fa21..a667c911 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6719,7 +6719,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-07-01T15:13:06Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-07-08T15:13:18Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -8083,9 +8083,6 @@ hosting // hot : 2015-08-27 Amazon Registry Services, Inc. hot -// hoteles : 2015-03-05 Travel Reservations SRL -hoteles - // hotels : 2016-04-07 Booking.com B.V. hotels @@ -8827,9 +8824,6 @@ parts // party : 2014-09-11 Blue Sky Registry Limited party -// passagens : 2015-03-05 Travel Reservations SRL -passagens - // pay : 2015-08-27 Amazon Registry Services, Inc. pay @@ -9697,9 +9691,6 @@ voto // voyage : 2013-08-27 Binky Moon, LLC voyage -// vuelos : 2015-03-05 Travel Reservations SRL -vuelos - // wales : 2014-05-08 Nominet UK wales From fe724c261ab2a37232d1e79cab2f02493d25be9a Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 11 Jul 2023 10:40:40 +0200 Subject: [PATCH 400/450] Update year --- LICENSE.txt | 2 +- README.md | 2 +- lib/public_suffix.rb | 2 +- lib/public_suffix/domain.rb | 2 +- lib/public_suffix/errors.rb | 2 +- lib/public_suffix/list.rb | 2 +- lib/public_suffix/rule.rb | 2 +- lib/public_suffix/version.rb | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index fc7507ba..0909dd41 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2009-2022 Simone Carletti +Copyright (c) 2009-2023 Simone Carletti MIT License diff --git a/README.md b/README.md index 9ba532ce..dc611d34 100644 --- a/README.md +++ b/README.md @@ -209,7 +209,7 @@ See the [CHANGELOG.md](CHANGELOG.md) file for details. ## License -Copyright (c) 2009-2022 Simone Carletti. This is Free Software distributed under the MIT license. +Copyright (c) 2009-2023 Simone Carletti. This is Free Software distributed under the MIT license. The [Public Suffix List source](https://publicsuffix.org/list/) is subject to the terms of the Mozilla Public License, v. 2.0. diff --git a/lib/public_suffix.rb b/lib/public_suffix.rb index a4ed1403..b36dfbe7 100644 --- a/lib/public_suffix.rb +++ b/lib/public_suffix.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2022 Simone Carletti +# Copyright (c) 2009-2023 Simone Carletti require_relative "public_suffix/domain" require_relative "public_suffix/version" diff --git a/lib/public_suffix/domain.rb b/lib/public_suffix/domain.rb index f7a9c494..5cfb06a3 100644 --- a/lib/public_suffix/domain.rb +++ b/lib/public_suffix/domain.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2022 Simone Carletti +# Copyright (c) 2009-2023 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/errors.rb b/lib/public_suffix/errors.rb index 2fca2c13..7414ffd4 100644 --- a/lib/public_suffix/errors.rb +++ b/lib/public_suffix/errors.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2022 Simone Carletti +# Copyright (c) 2009-2023 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/list.rb b/lib/public_suffix/list.rb index 033a17ad..4bb4f1bd 100644 --- a/lib/public_suffix/list.rb +++ b/lib/public_suffix/list.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2022 Simone Carletti +# Copyright (c) 2009-2023 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/rule.rb b/lib/public_suffix/rule.rb index dfe93add..520e08c2 100644 --- a/lib/public_suffix/rule.rb +++ b/lib/public_suffix/rule.rb @@ -4,7 +4,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2022 Simone Carletti +# Copyright (c) 2009-2023 Simone Carletti module PublicSuffix diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 2c99198a..a32f55ed 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -5,7 +5,7 @@ # # Domain name parser based on the Public Suffix List. # -# Copyright (c) 2009-2022 Simone Carletti +# Copyright (c) 2009-2023 Simone Carletti module PublicSuffix From d5739ad732912551110f8bb0c264de02d029c55c Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 11 Jul 2023 10:41:42 +0200 Subject: [PATCH 401/450] Release 5.0.2 --- CHANGELOG.md | 6 ++++++ lib/public_suffix/version.rb | 3 +-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15071101..8256b082 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## 5.0.2 + +### Changed + +- Updated definitions. + ## 5.0.1 ### Changed diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index a32f55ed..1635263d 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -# # = Public Suffix # # Domain name parser based on the Public Suffix List. @@ -10,6 +9,6 @@ module PublicSuffix # @return [String] The current library version. - VERSION = "5.0.1" + VERSION = "5.0.2" end From 0b06867e341c6fd547b8b47145163582b48c34be Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 11 Jul 2023 10:45:37 +0200 Subject: [PATCH 402/450] Fix Ruby release workflow --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c9a49e62..ba43e1e0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - name: Release Gem - uses: cadwallion/publish-rubygems-action@d9474d9633f4674e59afb0c343f2dafe25181328 + uses: cadwallion/publish-rubygems-action@94a6f4cd5350581749c569b5001eecc864e3ad0b env: RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }} RELEASE_COMMAND: rake release From 1ac1ae4154ca62e9c5565a5121b84ac4a0c74af6 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 11 Jul 2023 10:47:30 +0200 Subject: [PATCH 403/450] Release 5.0.3 --- CHANGELOG.md | 6 ++++++ lib/public_suffix/version.rb | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8256b082..829033c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## 5.0.3 + +### Fixed + +- Fixed automated release workflow. + ## 5.0.2 ### Changed diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 1635263d..41d0b26c 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -8,7 +8,7 @@ module PublicSuffix - # @return [String] The current library version. - VERSION = "5.0.2" + # @return [String] the current library version + VERSION = "5.0.3" end From 6e1d94c7b67d77280fec9dcac7bd1bcad577673e Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Wed, 12 Jul 2023 14:35:11 +0200 Subject: [PATCH 404/450] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 085e1ac2..5064fbd5 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,6 @@ # These are supported funding model platforms -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: [weppos] patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username From 57e4d8102dde6615c86bb15c80021a0fb9c668b3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Jul 2023 13:46:28 +0200 Subject: [PATCH 405/450] Updated list from source (#250) Co-authored-by: weppos --- data/list.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/data/list.txt b/data/list.txt index a667c911..0c7305dd 100644 --- a/data/list.txt +++ b/data/list.txt @@ -12167,7 +12167,6 @@ iobb.net // Submitted by Ihor Kolodyuk mel.cloudlets.com.au cloud.interhostsolutions.be -users.scale.virtualcloud.com.br mycloud.by alp1.ae.flow.ch appengine.flow.ch @@ -12191,9 +12190,7 @@ ch.trendhosting.cloud de.trendhosting.cloud jele.club amscompute.com -clicketcloud.com dopaas.com -hidora.com paas.hosted-by-previder.com rag-cloud.hosteur.com rag-cloud-ch.hosteur.com @@ -13395,6 +13392,10 @@ myspreadshop.co.uk // Submitted by Jacob Lee api.stdlib.com +// Storipress : https://storipress.com +// Submitted by Benno Liu +storipress.app + // Storj Labs Inc. : https://storj.io/ // Submitted by Philip Hutchins storj.farm From 00a8ec3d2741bcb37b5b55d5ecee0cfa246101ca Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Tue, 18 Jul 2023 13:52:36 +0200 Subject: [PATCH 406/450] Fix spacing --- test/unit/list_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/list_test.rb b/test/unit/list_test.rb index 3b0160e5..0b087379 100644 --- a/test/unit/list_test.rb +++ b/test/unit/list_test.rb @@ -56,7 +56,7 @@ def test_each_with_block def test_add assert_equal @list, @list.add(PublicSuffix::Rule.factory("foo")) - assert_equal @list, @list << PublicSuffix::Rule.factory("bar") + assert_equal @list, @list << PublicSuffix::Rule.factory("bar") assert_equal 2, @list.size end From 462b68079ed6a84cc7a7e66d20151f52ccb42976 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jul 2023 09:50:41 +0200 Subject: [PATCH 407/450] Update mocha requirement from ~> 2.0.1 to ~> 2.1.0 (#251) Updates the requirements on [mocha](https://github.com/freerange/mocha) to permit the latest version. - [Changelog](https://github.com/freerange/mocha/blob/main/RELEASE.md) - [Commits](https://github.com/freerange/mocha/compare/v2.0.1...v2.1.0) --- updated-dependencies: - dependency-name: mocha dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 56a042bb..10e134c0 100644 --- a/Gemfile +++ b/Gemfile @@ -9,6 +9,6 @@ gem "rake" gem "memory_profiler", require: false gem "minitest" gem "minitest-reporters" -gem "mocha", "~> 2.0.1" +gem "mocha", "~> 2.1.0" gem "rubocop", require: false gem "yard" From 66e252d6df4f0741aa50ed967504727107a81a18 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 30 Jul 2023 11:47:22 +0200 Subject: [PATCH 408/450] Updated list from source (#252) Co-authored-by: weppos --- data/list.txt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/data/list.txt b/data/list.txt index 0c7305dd..36a7aa52 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6719,7 +6719,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-07-08T15:13:18Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-07-28T15:13:22Z // This list is auto-generated, don't edit it manually. // aaa : 2015-02-26 American Automobile Association, Inc. aaa @@ -9490,9 +9490,6 @@ tickets // tienda : 2013-11-14 Binky Moon, LLC tienda -// tiffany : 2015-01-30 Tiffany and Company -tiffany - // tips : 2013-09-20 Binky Moon, LLC tips @@ -9856,10 +9853,10 @@ xin // xn--80aqecdr1a : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) католик -// xn--80asehdb : 2013-07-14 CORE Association +// xn--80asehdb : 2023-07-14 CORE Association онлайн -// xn--80aswg : 2013-07-14 CORE Association +// xn--80aswg : 2023-07-14 CORE Association сайт // xn--8y0a063a : 2015-03-26 China United Network Communications Corporation Limited @@ -9997,7 +9994,7 @@ xin // xn--mxtq1m : 2014-03-06 Net-Chinese Co., Ltd. 政府 -// xn--ngbc5azd : 2013-07-13 International Domain Registry Pty. Ltd. +// xn--ngbc5azd : 2023-07-13 International Domain Registry Pty. Ltd. شبكة // xn--ngbe9e0a : 2014-12-04 Kuwait Finance House @@ -10048,7 +10045,7 @@ xin // xn--tiq49xqyj : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) 天主教 -// xn--unup4y : 2013-07-14 Binky Moon, LLC +// xn--unup4y : 2023-07-14 Binky Moon, LLC 游戏 // xn--vermgensberater-ctb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG From 650faaeb04e233302ad83790a507f33744ad2543 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 4 Aug 2023 10:56:17 +0200 Subject: [PATCH 409/450] Updated list from source (#253) Co-authored-by: weppos --- data/list.txt | 2271 ++++++++++++++++++++++++------------------------- 1 file changed, 1134 insertions(+), 1137 deletions(-) diff --git a/data/list.txt b/data/list.txt index 36a7aa52..73d17448 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6719,3408 +6719,3405 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-07-28T15:13:22Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-02T15:12:00Z // This list is auto-generated, don't edit it manually. -// aaa : 2015-02-26 American Automobile Association, Inc. +// aaa : American Automobile Association, Inc. aaa -// aarp : 2015-05-21 AARP +// aarp : AARP aarp -// abb : 2014-10-24 ABB Ltd +// abb : ABB Ltd abb -// abbott : 2014-07-24 Abbott Laboratories, Inc. +// abbott : Abbott Laboratories, Inc. abbott -// abbvie : 2015-07-30 AbbVie Inc. +// abbvie : AbbVie Inc. abbvie -// abc : 2015-07-30 Disney Enterprises, Inc. +// abc : Disney Enterprises, Inc. abc -// able : 2015-06-25 Able Inc. +// able : Able Inc. able -// abogado : 2014-04-24 Registry Services, LLC +// abogado : Registry Services, LLC abogado -// abudhabi : 2015-07-30 Abu Dhabi Systems and Information Centre +// abudhabi : Abu Dhabi Systems and Information Centre abudhabi -// academy : 2013-11-07 Binky Moon, LLC +// academy : Binky Moon, LLC academy -// accenture : 2014-08-15 Accenture plc +// accenture : Accenture plc accenture -// accountant : 2014-11-20 dot Accountant Limited +// accountant : dot Accountant Limited accountant -// accountants : 2014-03-20 Binky Moon, LLC +// accountants : Binky Moon, LLC accountants -// aco : 2015-01-08 ACO Severin Ahlmann GmbH & Co. KG +// aco : ACO Severin Ahlmann GmbH & Co. KG aco -// actor : 2013-12-12 Dog Beach, LLC +// actor : Dog Beach, LLC actor -// ads : 2014-12-04 Charleston Road Registry Inc. +// ads : Charleston Road Registry Inc. ads -// adult : 2014-10-16 ICM Registry AD LLC +// adult : ICM Registry AD LLC adult -// aeg : 2015-03-19 Aktiebolaget Electrolux +// aeg : Aktiebolaget Electrolux aeg -// aetna : 2015-05-21 Aetna Life Insurance Company +// aetna : Aetna Life Insurance Company aetna -// afl : 2014-10-02 Australian Football League +// afl : Australian Football League afl -// africa : 2014-03-24 ZA Central Registry NPC trading as Registry.Africa +// africa : ZA Central Registry NPC trading as Registry.Africa africa -// agakhan : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) +// agakhan : Fondation Aga Khan (Aga Khan Foundation) agakhan -// agency : 2013-11-14 Binky Moon, LLC +// agency : Binky Moon, LLC agency -// aig : 2014-12-18 American International Group, Inc. +// aig : American International Group, Inc. aig -// airbus : 2015-07-30 Airbus S.A.S. +// airbus : Airbus S.A.S. airbus -// airforce : 2014-03-06 Dog Beach, LLC +// airforce : Dog Beach, LLC airforce -// airtel : 2014-10-24 Bharti Airtel Limited +// airtel : Bharti Airtel Limited airtel -// akdn : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) +// akdn : Fondation Aga Khan (Aga Khan Foundation) akdn -// alibaba : 2015-01-15 Alibaba Group Holding Limited +// alibaba : Alibaba Group Holding Limited alibaba -// alipay : 2015-01-15 Alibaba Group Holding Limited +// alipay : Alibaba Group Holding Limited alipay -// allfinanz : 2014-07-03 Allfinanz Deutsche Vermögensberatung Aktiengesellschaft +// allfinanz : Allfinanz Deutsche Vermögensberatung Aktiengesellschaft allfinanz -// allstate : 2015-07-31 Allstate Fire and Casualty Insurance Company +// allstate : Allstate Fire and Casualty Insurance Company allstate -// ally : 2015-06-18 Ally Financial Inc. +// ally : Ally Financial Inc. ally -// alsace : 2014-07-02 Region Grand Est +// alsace : Region Grand Est alsace -// alstom : 2015-07-30 ALSTOM +// alstom : ALSTOM alstom -// amazon : 2019-12-19 Amazon Registry Services, Inc. +// amazon : Amazon Registry Services, Inc. amazon -// americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc. +// americanexpress : American Express Travel Related Services Company, Inc. americanexpress -// americanfamily : 2015-07-23 AmFam, Inc. +// americanfamily : AmFam, Inc. americanfamily -// amex : 2015-07-31 American Express Travel Related Services Company, Inc. +// amex : American Express Travel Related Services Company, Inc. amex -// amfam : 2015-07-23 AmFam, Inc. +// amfam : AmFam, Inc. amfam -// amica : 2015-05-28 Amica Mutual Insurance Company +// amica : Amica Mutual Insurance Company amica -// amsterdam : 2014-07-24 Gemeente Amsterdam +// amsterdam : Gemeente Amsterdam amsterdam -// analytics : 2014-12-18 Campus IP LLC +// analytics : Campus IP LLC analytics -// android : 2014-08-07 Charleston Road Registry Inc. +// android : Charleston Road Registry Inc. android -// anquan : 2015-01-08 Beijing Qihu Keji Co., Ltd. +// anquan : Beijing Qihu Keji Co., Ltd. anquan -// anz : 2015-07-31 Australia and New Zealand Banking Group Limited +// anz : Australia and New Zealand Banking Group Limited anz -// aol : 2015-09-17 Oath Inc. +// aol : Oath Inc. aol -// apartments : 2014-12-11 Binky Moon, LLC +// apartments : Binky Moon, LLC apartments -// app : 2015-05-14 Charleston Road Registry Inc. +// app : Charleston Road Registry Inc. app -// apple : 2015-05-14 Apple Inc. +// apple : Apple Inc. apple -// aquarelle : 2014-07-24 Aquarelle.com +// aquarelle : Aquarelle.com aquarelle -// arab : 2015-11-12 League of Arab States +// arab : League of Arab States arab -// aramco : 2014-11-20 Aramco Services Company +// aramco : Aramco Services Company aramco -// archi : 2014-02-06 Identity Digital Limited +// archi : Identity Digital Limited archi -// army : 2014-03-06 Dog Beach, LLC +// army : Dog Beach, LLC army -// art : 2016-03-24 UK Creative Ideas Limited +// art : UK Creative Ideas Limited art -// arte : 2014-12-11 Association Relative à la Télévision Européenne G.E.I.E. +// arte : Association Relative à la Télévision Européenne G.E.I.E. arte -// asda : 2015-07-31 Wal-Mart Stores, Inc. +// asda : Wal-Mart Stores, Inc. asda -// associates : 2014-03-06 Binky Moon, LLC +// associates : Binky Moon, LLC associates -// athleta : 2015-07-30 The Gap, Inc. +// athleta : The Gap, Inc. athleta -// attorney : 2014-03-20 Dog Beach, LLC +// attorney : Dog Beach, LLC attorney -// auction : 2014-03-20 Dog Beach, LLC +// auction : Dog Beach, LLC auction -// audi : 2015-05-21 AUDI Aktiengesellschaft +// audi : AUDI Aktiengesellschaft audi -// audible : 2015-06-25 Amazon Registry Services, Inc. +// audible : Amazon Registry Services, Inc. audible -// audio : 2014-03-20 XYZ.COM LLC +// audio : XYZ.COM LLC audio -// auspost : 2015-08-13 Australian Postal Corporation +// auspost : Australian Postal Corporation auspost -// author : 2014-12-18 Amazon Registry Services, Inc. +// author : Amazon Registry Services, Inc. author -// auto : 2014-11-13 XYZ.COM LLC +// auto : XYZ.COM LLC auto -// autos : 2014-01-09 XYZ.COM LLC +// autos : XYZ.COM LLC autos -// avianca : 2015-01-08 Avianca Inc. +// avianca : Avianca Inc. avianca -// aws : 2015-06-25 AWS Registry LLC +// aws : AWS Registry LLC aws -// axa : 2013-12-19 AXA Group Operations SAS +// axa : AXA Group Operations SAS axa -// azure : 2014-12-18 Microsoft Corporation +// azure : Microsoft Corporation azure -// baby : 2015-04-09 XYZ.COM LLC +// baby : XYZ.COM LLC baby -// baidu : 2015-01-08 Baidu, Inc. +// baidu : Baidu, Inc. baidu -// banamex : 2015-07-30 Citigroup Inc. +// banamex : Citigroup Inc. banamex -// bananarepublic : 2015-07-31 The Gap, Inc. +// bananarepublic : The Gap, Inc. bananarepublic -// band : 2014-06-12 Dog Beach, LLC +// band : Dog Beach, LLC band -// bank : 2014-09-25 fTLD Registry Services LLC +// bank : fTLD Registry Services LLC bank -// bar : 2013-12-12 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable +// bar : Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable bar -// barcelona : 2014-07-24 Municipi de Barcelona +// barcelona : Municipi de Barcelona barcelona -// barclaycard : 2014-11-20 Barclays Bank PLC +// barclaycard : Barclays Bank PLC barclaycard -// barclays : 2014-11-20 Barclays Bank PLC +// barclays : Barclays Bank PLC barclays -// barefoot : 2015-06-11 Gallo Vineyards, Inc. +// barefoot : Gallo Vineyards, Inc. barefoot -// bargains : 2013-11-14 Binky Moon, LLC +// bargains : Binky Moon, LLC bargains -// baseball : 2015-10-29 MLB Advanced Media DH, LLC +// baseball : MLB Advanced Media DH, LLC baseball -// basketball : 2015-08-20 Fédération Internationale de Basketball (FIBA) +// basketball : Fédération Internationale de Basketball (FIBA) basketball -// bauhaus : 2014-04-17 Werkhaus GmbH +// bauhaus : Werkhaus GmbH bauhaus -// bayern : 2014-01-23 Bayern Connect GmbH +// bayern : Bayern Connect GmbH bayern -// bbc : 2014-12-18 British Broadcasting Corporation +// bbc : British Broadcasting Corporation bbc -// bbt : 2015-07-23 BB&T Corporation +// bbt : BB&T Corporation bbt -// bbva : 2014-10-02 BANCO BILBAO VIZCAYA ARGENTARIA, S.A. +// bbva : BANCO BILBAO VIZCAYA ARGENTARIA, S.A. bbva -// bcg : 2015-04-02 The Boston Consulting Group, Inc. +// bcg : The Boston Consulting Group, Inc. bcg -// bcn : 2014-07-24 Municipi de Barcelona +// bcn : Municipi de Barcelona bcn -// beats : 2015-05-14 Beats Electronics, LLC +// beats : Beats Electronics, LLC beats -// beauty : 2015-12-03 XYZ.COM LLC +// beauty : XYZ.COM LLC beauty -// beer : 2014-01-09 Registry Services, LLC +// beer : Registry Services, LLC beer -// bentley : 2014-12-18 Bentley Motors Limited +// bentley : Bentley Motors Limited bentley -// berlin : 2013-10-31 dotBERLIN GmbH & Co. KG +// berlin : dotBERLIN GmbH & Co. KG berlin -// best : 2013-12-19 BestTLD Pty Ltd +// best : BestTLD Pty Ltd best -// bestbuy : 2015-07-31 BBY Solutions, Inc. +// bestbuy : BBY Solutions, Inc. bestbuy -// bet : 2015-05-07 Identity Digital Limited +// bet : Identity Digital Limited bet -// bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited +// bharti : Bharti Enterprises (Holding) Private Limited bharti -// bible : 2014-06-19 American Bible Society +// bible : American Bible Society bible -// bid : 2013-12-19 dot Bid Limited +// bid : dot Bid Limited bid -// bike : 2013-08-27 Binky Moon, LLC +// bike : Binky Moon, LLC bike -// bing : 2014-12-18 Microsoft Corporation +// bing : Microsoft Corporation bing -// bingo : 2014-12-04 Binky Moon, LLC +// bingo : Binky Moon, LLC bingo -// bio : 2014-03-06 Identity Digital Limited +// bio : Identity Digital Limited bio -// black : 2014-01-16 Identity Digital Limited +// black : Identity Digital Limited black -// blackfriday : 2014-01-16 Registry Services, LLC +// blackfriday : Registry Services, LLC blackfriday -// blockbuster : 2015-07-30 Dish DBS Corporation +// blockbuster : Dish DBS Corporation blockbuster -// blog : 2015-05-14 Knock Knock WHOIS There, LLC +// blog : Knock Knock WHOIS There, LLC blog -// bloomberg : 2014-07-17 Bloomberg IP Holdings LLC +// bloomberg : Bloomberg IP Holdings LLC bloomberg -// blue : 2013-11-07 Identity Digital Limited +// blue : Identity Digital Limited blue -// bms : 2014-10-30 Bristol-Myers Squibb Company +// bms : Bristol-Myers Squibb Company bms -// bmw : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft +// bmw : Bayerische Motoren Werke Aktiengesellschaft bmw -// bnpparibas : 2014-05-29 BNP Paribas +// bnpparibas : BNP Paribas bnpparibas -// boats : 2014-12-04 XYZ.COM LLC +// boats : XYZ.COM LLC boats -// boehringer : 2015-07-09 Boehringer Ingelheim International GmbH +// boehringer : Boehringer Ingelheim International GmbH boehringer -// bofa : 2015-07-31 Bank of America Corporation +// bofa : Bank of America Corporation bofa -// bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br +// bom : Núcleo de Informação e Coordenação do Ponto BR - NIC.br bom -// bond : 2014-06-05 ShortDot SA +// bond : ShortDot SA bond -// boo : 2014-01-30 Charleston Road Registry Inc. +// boo : Charleston Road Registry Inc. boo -// book : 2015-08-27 Amazon Registry Services, Inc. +// book : Amazon Registry Services, Inc. book -// booking : 2015-07-16 Booking.com B.V. +// booking : Booking.com B.V. booking -// bosch : 2015-06-18 Robert Bosch GMBH +// bosch : Robert Bosch GMBH bosch -// bostik : 2015-05-28 Bostik SA +// bostik : Bostik SA bostik -// boston : 2015-12-10 Registry Services, LLC +// boston : Registry Services, LLC boston -// bot : 2014-12-18 Amazon Registry Services, Inc. +// bot : Amazon Registry Services, Inc. bot -// boutique : 2013-11-14 Binky Moon, LLC +// boutique : Binky Moon, LLC boutique -// box : 2015-11-12 Intercap Registry Inc. +// box : Intercap Registry Inc. box -// bradesco : 2014-12-18 Banco Bradesco S.A. +// bradesco : Banco Bradesco S.A. bradesco -// bridgestone : 2014-12-18 Bridgestone Corporation +// bridgestone : Bridgestone Corporation bridgestone -// broadway : 2014-12-22 Celebrate Broadway, Inc. +// broadway : Celebrate Broadway, Inc. broadway -// broker : 2014-12-11 Dog Beach, LLC +// broker : Dog Beach, LLC broker -// brother : 2015-01-29 Brother Industries, Ltd. +// brother : Brother Industries, Ltd. brother -// brussels : 2014-02-06 DNS.be vzw +// brussels : DNS.be vzw brussels -// build : 2013-11-07 Plan Bee LLC +// build : Plan Bee LLC build -// builders : 2013-11-07 Binky Moon, LLC +// builders : Binky Moon, LLC builders -// business : 2013-11-07 Binky Moon, LLC +// business : Binky Moon, LLC business -// buy : 2014-12-18 Amazon Registry Services, Inc. +// buy : Amazon Registry Services, Inc. buy -// buzz : 2013-10-02 DOTSTRATEGY CO. +// buzz : DOTSTRATEGY CO. buzz -// bzh : 2014-02-27 Association www.bzh +// bzh : Association www.bzh bzh -// cab : 2013-10-24 Binky Moon, LLC +// cab : Binky Moon, LLC cab -// cafe : 2015-02-11 Binky Moon, LLC +// cafe : Binky Moon, LLC cafe -// cal : 2014-07-24 Charleston Road Registry Inc. +// cal : Charleston Road Registry Inc. cal -// call : 2014-12-18 Amazon Registry Services, Inc. +// call : Amazon Registry Services, Inc. call -// calvinklein : 2015-07-30 PVH gTLD Holdings LLC +// calvinklein : PVH gTLD Holdings LLC calvinklein -// cam : 2016-04-21 Cam Connecting SARL +// cam : Cam Connecting SARL cam -// camera : 2013-08-27 Binky Moon, LLC +// camera : Binky Moon, LLC camera -// camp : 2013-11-07 Binky Moon, LLC +// camp : Binky Moon, LLC camp -// canon : 2014-09-12 Canon Inc. +// canon : Canon Inc. canon -// capetown : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry +// capetown : ZA Central Registry NPC trading as ZA Central Registry capetown -// capital : 2014-03-06 Binky Moon, LLC +// capital : Binky Moon, LLC capital -// capitalone : 2015-08-06 Capital One Financial Corporation +// capitalone : Capital One Financial Corporation capitalone -// car : 2015-01-22 XYZ.COM LLC +// car : XYZ.COM LLC car -// caravan : 2013-12-12 Caravan International, Inc. +// caravan : Caravan International, Inc. caravan -// cards : 2013-12-05 Binky Moon, LLC +// cards : Binky Moon, LLC cards -// care : 2014-03-06 Binky Moon, LLC +// care : Binky Moon, LLC care -// career : 2013-10-09 dotCareer LLC +// career : dotCareer LLC career -// careers : 2013-10-02 Binky Moon, LLC +// careers : Binky Moon, LLC careers -// cars : 2014-11-13 XYZ.COM LLC +// cars : XYZ.COM LLC cars -// casa : 2013-11-21 Registry Services, LLC +// casa : Registry Services, LLC casa -// case : 2015-09-03 Digity, LLC +// case : Digity, LLC case -// cash : 2014-03-06 Binky Moon, LLC +// cash : Binky Moon, LLC cash -// casino : 2014-12-18 Binky Moon, LLC +// casino : Binky Moon, LLC casino -// catering : 2013-12-05 Binky Moon, LLC +// catering : Binky Moon, LLC catering -// catholic : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +// catholic : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) catholic -// cba : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA +// cba : COMMONWEALTH BANK OF AUSTRALIA cba -// cbn : 2014-08-22 The Christian Broadcasting Network, Inc. +// cbn : The Christian Broadcasting Network, Inc. cbn -// cbre : 2015-07-02 CBRE, Inc. +// cbre : CBRE, Inc. cbre -// cbs : 2015-08-06 CBS Domains Inc. +// cbs : CBS Domains Inc. cbs -// center : 2013-11-07 Binky Moon, LLC +// center : Binky Moon, LLC center -// ceo : 2013-11-07 CEOTLD Pty Ltd +// ceo : CEOTLD Pty Ltd ceo -// cern : 2014-06-05 European Organization for Nuclear Research ("CERN") +// cern : European Organization for Nuclear Research ("CERN") cern -// cfa : 2014-08-28 CFA Institute +// cfa : CFA Institute cfa -// cfd : 2014-12-11 ShortDot SA +// cfd : ShortDot SA cfd -// chanel : 2015-04-09 Chanel International B.V. +// chanel : Chanel International B.V. chanel -// channel : 2014-05-08 Charleston Road Registry Inc. +// channel : Charleston Road Registry Inc. channel -// charity : 2018-04-11 Public Interest Registry +// charity : Public Interest Registry charity -// chase : 2015-04-30 JPMorgan Chase Bank, National Association +// chase : JPMorgan Chase Bank, National Association chase -// chat : 2014-12-04 Binky Moon, LLC +// chat : Binky Moon, LLC chat -// cheap : 2013-11-14 Binky Moon, LLC +// cheap : Binky Moon, LLC cheap -// chintai : 2015-06-11 CHINTAI Corporation +// chintai : CHINTAI Corporation chintai -// christmas : 2013-11-21 XYZ.COM LLC +// christmas : XYZ.COM LLC christmas -// chrome : 2014-07-24 Charleston Road Registry Inc. +// chrome : Charleston Road Registry Inc. chrome -// church : 2014-02-06 Binky Moon, LLC +// church : Binky Moon, LLC church -// cipriani : 2015-02-19 Hotel Cipriani Srl +// cipriani : Hotel Cipriani Srl cipriani -// circle : 2014-12-18 Amazon Registry Services, Inc. +// circle : Amazon Registry Services, Inc. circle -// cisco : 2014-12-22 Cisco Technology, Inc. +// cisco : Cisco Technology, Inc. cisco -// citadel : 2015-07-23 Citadel Domain LLC +// citadel : Citadel Domain LLC citadel -// citi : 2015-07-30 Citigroup Inc. +// citi : Citigroup Inc. citi -// citic : 2014-01-09 CITIC Group Corporation +// citic : CITIC Group Corporation citic -// city : 2014-05-29 Binky Moon, LLC +// city : Binky Moon, LLC city -// cityeats : 2014-12-11 Lifestyle Domain Holdings, Inc. +// cityeats : Lifestyle Domain Holdings, Inc. cityeats -// claims : 2014-03-20 Binky Moon, LLC +// claims : Binky Moon, LLC claims -// cleaning : 2013-12-05 Binky Moon, LLC +// cleaning : Binky Moon, LLC cleaning -// click : 2014-06-05 Internet Naming Company LLC +// click : Internet Naming Company LLC click -// clinic : 2014-03-20 Binky Moon, LLC +// clinic : Binky Moon, LLC clinic -// clinique : 2015-10-01 The Estée Lauder Companies Inc. +// clinique : The Estée Lauder Companies Inc. clinique -// clothing : 2013-08-27 Binky Moon, LLC +// clothing : Binky Moon, LLC clothing -// cloud : 2015-04-16 Aruba PEC S.p.A. +// cloud : Aruba PEC S.p.A. cloud -// club : 2013-11-08 Registry Services, LLC +// club : Registry Services, LLC club -// clubmed : 2015-06-25 Club Méditerranée S.A. +// clubmed : Club Méditerranée S.A. clubmed -// coach : 2014-10-09 Binky Moon, LLC +// coach : Binky Moon, LLC coach -// codes : 2013-10-31 Binky Moon, LLC +// codes : Binky Moon, LLC codes -// coffee : 2013-10-17 Binky Moon, LLC +// coffee : Binky Moon, LLC coffee -// college : 2014-01-16 XYZ.COM LLC +// college : XYZ.COM LLC college -// cologne : 2014-02-05 dotKoeln GmbH +// cologne : dotKoeln GmbH cologne -// comcast : 2015-07-23 Comcast IP Holdings I, LLC +// comcast : Comcast IP Holdings I, LLC comcast -// commbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA +// commbank : COMMONWEALTH BANK OF AUSTRALIA commbank -// community : 2013-12-05 Binky Moon, LLC +// community : Binky Moon, LLC community -// company : 2013-11-07 Binky Moon, LLC +// company : Binky Moon, LLC company -// compare : 2015-10-08 Registry Services, LLC +// compare : Registry Services, LLC compare -// computer : 2013-10-24 Binky Moon, LLC +// computer : Binky Moon, LLC computer -// comsec : 2015-01-08 VeriSign, Inc. +// comsec : VeriSign, Inc. comsec -// condos : 2013-12-05 Binky Moon, LLC +// condos : Binky Moon, LLC condos -// construction : 2013-09-16 Binky Moon, LLC +// construction : Binky Moon, LLC construction -// consulting : 2013-12-05 Dog Beach, LLC +// consulting : Dog Beach, LLC consulting -// contact : 2015-01-08 Dog Beach, LLC +// contact : Dog Beach, LLC contact -// contractors : 2013-09-10 Binky Moon, LLC +// contractors : Binky Moon, LLC contractors -// cooking : 2013-11-21 Registry Services, LLC +// cooking : Registry Services, LLC cooking -// cool : 2013-11-14 Binky Moon, LLC +// cool : Binky Moon, LLC cool -// corsica : 2014-09-25 Collectivité de Corse +// corsica : Collectivité de Corse corsica -// country : 2013-12-19 Internet Naming Company LLC +// country : Internet Naming Company LLC country -// coupon : 2015-02-26 Amazon Registry Services, Inc. +// coupon : Amazon Registry Services, Inc. coupon -// coupons : 2015-03-26 Binky Moon, LLC +// coupons : Binky Moon, LLC coupons -// courses : 2014-12-04 Registry Services, LLC +// courses : Registry Services, LLC courses -// cpa : 2019-06-10 American Institute of Certified Public Accountants +// cpa : American Institute of Certified Public Accountants cpa -// credit : 2014-03-20 Binky Moon, LLC +// credit : Binky Moon, LLC credit -// creditcard : 2014-03-20 Binky Moon, LLC +// creditcard : Binky Moon, LLC creditcard -// creditunion : 2015-01-22 DotCooperation LLC +// creditunion : DotCooperation LLC creditunion -// cricket : 2014-10-09 dot Cricket Limited +// cricket : dot Cricket Limited cricket -// crown : 2014-10-24 Crown Equipment Corporation +// crown : Crown Equipment Corporation crown -// crs : 2014-04-03 Federated Co-operatives Limited +// crs : Federated Co-operatives Limited crs -// cruise : 2015-12-10 Viking River Cruises (Bermuda) Ltd. +// cruise : Viking River Cruises (Bermuda) Ltd. cruise -// cruises : 2013-12-05 Binky Moon, LLC +// cruises : Binky Moon, LLC cruises -// cuisinella : 2014-04-03 SCHMIDT GROUPE S.A.S. +// cuisinella : SCHMIDT GROUPE S.A.S. cuisinella -// cymru : 2014-05-08 Nominet UK +// cymru : Nominet UK cymru -// cyou : 2015-01-22 ShortDot SA +// cyou : ShortDot SA cyou -// dabur : 2014-02-06 Dabur India Limited +// dabur : Dabur India Limited dabur -// dad : 2014-01-23 Charleston Road Registry Inc. +// dad : Charleston Road Registry Inc. dad -// dance : 2013-10-24 Dog Beach, LLC +// dance : Dog Beach, LLC dance -// data : 2016-06-02 Dish DBS Corporation +// data : Dish DBS Corporation data -// date : 2014-11-20 dot Date Limited +// date : dot Date Limited date -// dating : 2013-12-05 Binky Moon, LLC +// dating : Binky Moon, LLC dating -// datsun : 2014-03-27 NISSAN MOTOR CO., LTD. +// datsun : NISSAN MOTOR CO., LTD. datsun -// day : 2014-01-30 Charleston Road Registry Inc. +// day : Charleston Road Registry Inc. day -// dclk : 2014-11-20 Charleston Road Registry Inc. +// dclk : Charleston Road Registry Inc. dclk -// dds : 2015-05-07 Registry Services, LLC +// dds : Registry Services, LLC dds -// deal : 2015-06-25 Amazon Registry Services, Inc. +// deal : Amazon Registry Services, Inc. deal -// dealer : 2014-12-22 Intercap Registry Inc. +// dealer : Intercap Registry Inc. dealer -// deals : 2014-05-22 Binky Moon, LLC +// deals : Binky Moon, LLC deals -// degree : 2014-03-06 Dog Beach, LLC +// degree : Dog Beach, LLC degree -// delivery : 2014-09-11 Binky Moon, LLC +// delivery : Binky Moon, LLC delivery -// dell : 2014-10-24 Dell Inc. +// dell : Dell Inc. dell -// deloitte : 2015-07-31 Deloitte Touche Tohmatsu +// deloitte : Deloitte Touche Tohmatsu deloitte -// delta : 2015-02-19 Delta Air Lines, Inc. +// delta : Delta Air Lines, Inc. delta -// democrat : 2013-10-24 Dog Beach, LLC +// democrat : Dog Beach, LLC democrat -// dental : 2014-03-20 Binky Moon, LLC +// dental : Binky Moon, LLC dental -// dentist : 2014-03-20 Dog Beach, LLC +// dentist : Dog Beach, LLC dentist -// desi : 2013-11-14 Desi Networks LLC +// desi : Desi Networks LLC desi -// design : 2014-11-07 Registry Services, LLC +// design : Registry Services, LLC design -// dev : 2014-10-16 Charleston Road Registry Inc. +// dev : Charleston Road Registry Inc. dev -// dhl : 2015-07-23 Deutsche Post AG +// dhl : Deutsche Post AG dhl -// diamonds : 2013-09-22 Binky Moon, LLC +// diamonds : Binky Moon, LLC diamonds -// diet : 2014-06-26 XYZ.COM LLC +// diet : XYZ.COM LLC diet -// digital : 2014-03-06 Binky Moon, LLC +// digital : Binky Moon, LLC digital -// direct : 2014-04-10 Binky Moon, LLC +// direct : Binky Moon, LLC direct -// directory : 2013-09-20 Binky Moon, LLC +// directory : Binky Moon, LLC directory -// discount : 2014-03-06 Binky Moon, LLC +// discount : Binky Moon, LLC discount -// discover : 2015-07-23 Discover Financial Services +// discover : Discover Financial Services discover -// dish : 2015-07-30 Dish DBS Corporation +// dish : Dish DBS Corporation dish -// diy : 2015-11-05 Lifestyle Domain Holdings, Inc. +// diy : Lifestyle Domain Holdings, Inc. diy -// dnp : 2013-12-13 Dai Nippon Printing Co., Ltd. +// dnp : Dai Nippon Printing Co., Ltd. dnp -// docs : 2014-10-16 Charleston Road Registry Inc. +// docs : Charleston Road Registry Inc. docs -// doctor : 2016-06-02 Binky Moon, LLC +// doctor : Binky Moon, LLC doctor -// dog : 2014-12-04 Binky Moon, LLC +// dog : Binky Moon, LLC dog -// domains : 2013-10-17 Binky Moon, LLC +// domains : Binky Moon, LLC domains -// dot : 2015-05-21 Dish DBS Corporation +// dot : Dish DBS Corporation dot -// download : 2014-11-20 dot Support Limited +// download : dot Support Limited download -// drive : 2015-03-05 Charleston Road Registry Inc. +// drive : Charleston Road Registry Inc. drive -// dtv : 2015-06-04 Dish DBS Corporation +// dtv : Dish DBS Corporation dtv -// dubai : 2015-01-01 Dubai Smart Government Department +// dubai : Dubai Smart Government Department dubai -// dunlop : 2015-07-02 The Goodyear Tire & Rubber Company +// dunlop : The Goodyear Tire & Rubber Company dunlop -// dupont : 2015-06-25 DuPont Specialty Products USA, LLC +// dupont : DuPont Specialty Products USA, LLC dupont -// durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry +// durban : ZA Central Registry NPC trading as ZA Central Registry durban -// dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG +// dvag : Deutsche Vermögensberatung Aktiengesellschaft DVAG dvag -// dvr : 2016-05-26 DISH Technologies L.L.C. +// dvr : DISH Technologies L.L.C. dvr -// earth : 2014-12-04 Interlink Systems Innovation Institute K.K. +// earth : Interlink Systems Innovation Institute K.K. earth -// eat : 2014-01-23 Charleston Road Registry Inc. +// eat : Charleston Road Registry Inc. eat -// eco : 2016-07-08 Big Room Inc. +// eco : Big Room Inc. eco -// edeka : 2014-12-18 EDEKA Verband kaufmännischer Genossenschaften e.V. +// edeka : EDEKA Verband kaufmännischer Genossenschaften e.V. edeka -// education : 2013-11-07 Binky Moon, LLC +// education : Binky Moon, LLC education -// email : 2013-10-31 Binky Moon, LLC +// email : Binky Moon, LLC email -// emerck : 2014-04-03 Merck KGaA +// emerck : Merck KGaA emerck -// energy : 2014-09-11 Binky Moon, LLC +// energy : Binky Moon, LLC energy -// engineer : 2014-03-06 Dog Beach, LLC +// engineer : Dog Beach, LLC engineer -// engineering : 2014-03-06 Binky Moon, LLC +// engineering : Binky Moon, LLC engineering -// enterprises : 2013-09-20 Binky Moon, LLC +// enterprises : Binky Moon, LLC enterprises -// epson : 2014-12-04 Seiko Epson Corporation +// epson : Seiko Epson Corporation epson -// equipment : 2013-08-27 Binky Moon, LLC +// equipment : Binky Moon, LLC equipment -// ericsson : 2015-07-09 Telefonaktiebolaget L M Ericsson +// ericsson : Telefonaktiebolaget L M Ericsson ericsson -// erni : 2014-04-03 ERNI Group Holding AG +// erni : ERNI Group Holding AG erni -// esq : 2014-05-08 Charleston Road Registry Inc. +// esq : Charleston Road Registry Inc. esq -// estate : 2013-08-27 Binky Moon, LLC +// estate : Binky Moon, LLC estate -// etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +// etisalat : Emirates Telecommunications Corporation (trading as Etisalat) etisalat -// eurovision : 2014-04-24 European Broadcasting Union (EBU) +// eurovision : European Broadcasting Union (EBU) eurovision -// eus : 2013-12-12 Puntueus Fundazioa +// eus : Puntueus Fundazioa eus -// events : 2013-12-05 Binky Moon, LLC +// events : Binky Moon, LLC events -// exchange : 2014-03-06 Binky Moon, LLC +// exchange : Binky Moon, LLC exchange -// expert : 2013-11-21 Binky Moon, LLC +// expert : Binky Moon, LLC expert -// exposed : 2013-12-05 Binky Moon, LLC +// exposed : Binky Moon, LLC exposed -// express : 2015-02-11 Binky Moon, LLC +// express : Binky Moon, LLC express -// extraspace : 2015-05-14 Extra Space Storage LLC +// extraspace : Extra Space Storage LLC extraspace -// fage : 2014-12-18 Fage International S.A. +// fage : Fage International S.A. fage -// fail : 2014-03-06 Binky Moon, LLC +// fail : Binky Moon, LLC fail -// fairwinds : 2014-11-13 FairWinds Partners, LLC +// fairwinds : FairWinds Partners, LLC fairwinds -// faith : 2014-11-20 dot Faith Limited +// faith : dot Faith Limited faith -// family : 2015-04-02 Dog Beach, LLC +// family : Dog Beach, LLC family -// fan : 2014-03-06 Dog Beach, LLC +// fan : Dog Beach, LLC fan -// fans : 2014-11-07 ZDNS International Limited +// fans : ZDNS International Limited fans -// farm : 2013-11-07 Binky Moon, LLC +// farm : Binky Moon, LLC farm -// farmers : 2015-07-09 Farmers Insurance Exchange +// farmers : Farmers Insurance Exchange farmers -// fashion : 2014-07-03 Registry Services, LLC +// fashion : Registry Services, LLC fashion -// fast : 2014-12-18 Amazon Registry Services, Inc. +// fast : Amazon Registry Services, Inc. fast -// fedex : 2015-08-06 Federal Express Corporation +// fedex : Federal Express Corporation fedex -// feedback : 2013-12-19 Top Level Spectrum, Inc. +// feedback : Top Level Spectrum, Inc. feedback -// ferrari : 2015-07-31 Fiat Chrysler Automobiles N.V. +// ferrari : Fiat Chrysler Automobiles N.V. ferrari -// ferrero : 2014-12-18 Ferrero Trading Lux S.A. +// ferrero : Ferrero Trading Lux S.A. ferrero -// fidelity : 2015-07-30 Fidelity Brokerage Services LLC +// fidelity : Fidelity Brokerage Services LLC fidelity -// fido : 2015-08-06 Rogers Communications Canada Inc. +// fido : Rogers Communications Canada Inc. fido -// film : 2015-01-08 Motion Picture Domain Registry Pty Ltd +// film : Motion Picture Domain Registry Pty Ltd film -// final : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br +// final : Núcleo de Informação e Coordenação do Ponto BR - NIC.br final -// finance : 2014-03-20 Binky Moon, LLC +// finance : Binky Moon, LLC finance -// financial : 2014-03-06 Binky Moon, LLC +// financial : Binky Moon, LLC financial -// fire : 2015-06-25 Amazon Registry Services, Inc. +// fire : Amazon Registry Services, Inc. fire -// firestone : 2014-12-18 Bridgestone Licensing Services, Inc +// firestone : Bridgestone Licensing Services, Inc firestone -// firmdale : 2014-03-27 Firmdale Holdings Limited +// firmdale : Firmdale Holdings Limited firmdale -// fish : 2013-12-12 Binky Moon, LLC +// fish : Binky Moon, LLC fish -// fishing : 2013-11-21 Registry Services, LLC +// fishing : Registry Services, LLC fishing -// fit : 2014-11-07 Registry Services, LLC +// fit : Registry Services, LLC fit -// fitness : 2014-03-06 Binky Moon, LLC +// fitness : Binky Moon, LLC fitness -// flickr : 2015-04-02 Flickr, Inc. +// flickr : Flickr, Inc. flickr -// flights : 2013-12-05 Binky Moon, LLC +// flights : Binky Moon, LLC flights -// flir : 2015-07-23 FLIR Systems, Inc. +// flir : FLIR Systems, Inc. flir -// florist : 2013-11-07 Binky Moon, LLC +// florist : Binky Moon, LLC florist -// flowers : 2014-10-09 XYZ.COM LLC +// flowers : XYZ.COM LLC flowers -// fly : 2014-05-08 Charleston Road Registry Inc. +// fly : Charleston Road Registry Inc. fly -// foo : 2014-01-23 Charleston Road Registry Inc. +// foo : Charleston Road Registry Inc. foo -// food : 2016-04-21 Lifestyle Domain Holdings, Inc. +// food : Lifestyle Domain Holdings, Inc. food -// football : 2014-12-18 Binky Moon, LLC +// football : Binky Moon, LLC football -// ford : 2014-11-13 Ford Motor Company +// ford : Ford Motor Company ford -// forex : 2014-12-11 Dog Beach, LLC +// forex : Dog Beach, LLC forex -// forsale : 2014-05-22 Dog Beach, LLC +// forsale : Dog Beach, LLC forsale -// forum : 2015-04-02 Fegistry, LLC +// forum : Fegistry, LLC forum -// foundation : 2013-12-05 Public Interest Registry +// foundation : Public Interest Registry foundation -// fox : 2015-09-11 FOX Registry, LLC +// fox : FOX Registry, LLC fox -// free : 2015-12-10 Amazon Registry Services, Inc. +// free : Amazon Registry Services, Inc. free -// fresenius : 2015-07-30 Fresenius Immobilien-Verwaltungs-GmbH +// fresenius : Fresenius Immobilien-Verwaltungs-GmbH fresenius -// frl : 2014-05-15 FRLregistry B.V. +// frl : FRLregistry B.V. frl -// frogans : 2013-12-19 OP3FT +// frogans : OP3FT frogans -// frontdoor : 2015-07-02 Lifestyle Domain Holdings, Inc. +// frontdoor : Lifestyle Domain Holdings, Inc. frontdoor -// frontier : 2015-02-05 Frontier Communications Corporation +// frontier : Frontier Communications Corporation frontier -// ftr : 2015-07-16 Frontier Communications Corporation +// ftr : Frontier Communications Corporation ftr -// fujitsu : 2015-07-30 Fujitsu Limited +// fujitsu : Fujitsu Limited fujitsu -// fun : 2016-01-14 Radix FZC +// fun : Radix FZC fun -// fund : 2014-03-20 Binky Moon, LLC +// fund : Binky Moon, LLC fund -// furniture : 2014-03-20 Binky Moon, LLC +// furniture : Binky Moon, LLC furniture -// futbol : 2013-09-20 Dog Beach, LLC +// futbol : Dog Beach, LLC futbol -// fyi : 2015-04-02 Binky Moon, LLC +// fyi : Binky Moon, LLC fyi -// gal : 2013-11-07 Asociación puntoGAL +// gal : Asociación puntoGAL gal -// gallery : 2013-09-13 Binky Moon, LLC +// gallery : Binky Moon, LLC gallery -// gallo : 2015-06-11 Gallo Vineyards, Inc. +// gallo : Gallo Vineyards, Inc. gallo -// gallup : 2015-02-19 Gallup, Inc. +// gallup : Gallup, Inc. gallup -// game : 2015-05-28 XYZ.COM LLC +// game : XYZ.COM LLC game -// games : 2015-05-28 Dog Beach, LLC +// games : Dog Beach, LLC games -// gap : 2015-07-31 The Gap, Inc. +// gap : The Gap, Inc. gap -// garden : 2014-06-26 Registry Services, LLC +// garden : Registry Services, LLC garden -// gay : 2019-05-23 Registry Services, LLC +// gay : Registry Services, LLC gay -// gbiz : 2014-07-17 Charleston Road Registry Inc. +// gbiz : Charleston Road Registry Inc. gbiz -// gdn : 2014-07-31 Joint Stock Company "Navigation-information systems" +// gdn : Joint Stock Company "Navigation-information systems" gdn -// gea : 2014-12-04 GEA Group Aktiengesellschaft +// gea : GEA Group Aktiengesellschaft gea -// gent : 2014-01-23 Easyhost BV +// gent : Easyhost BV gent -// genting : 2015-03-12 Resorts World Inc Pte. Ltd. +// genting : Resorts World Inc Pte. Ltd. genting -// george : 2015-07-31 Wal-Mart Stores, Inc. +// george : Wal-Mart Stores, Inc. george -// ggee : 2014-01-09 GMO Internet, Inc. +// ggee : GMO Internet, Inc. ggee -// gift : 2013-10-17 DotGift, LLC +// gift : DotGift, LLC gift -// gifts : 2014-07-03 Binky Moon, LLC +// gifts : Binky Moon, LLC gifts -// gives : 2014-03-06 Public Interest Registry +// gives : Public Interest Registry gives -// giving : 2014-11-13 Public Interest Registry +// giving : Public Interest Registry giving -// glass : 2013-11-07 Binky Moon, LLC +// glass : Binky Moon, LLC glass -// gle : 2014-07-24 Charleston Road Registry Inc. +// gle : Charleston Road Registry Inc. gle -// global : 2014-04-17 Identity Digital Limited +// global : Identity Digital Limited global -// globo : 2013-12-19 Globo Comunicação e Participações S.A +// globo : Globo Comunicação e Participações S.A globo -// gmail : 2014-05-01 Charleston Road Registry Inc. +// gmail : Charleston Road Registry Inc. gmail -// gmbh : 2016-01-29 Binky Moon, LLC +// gmbh : Binky Moon, LLC gmbh -// gmo : 2014-01-09 GMO Internet, Inc. +// gmo : GMO Internet, Inc. gmo -// gmx : 2014-04-24 1&1 Mail & Media GmbH +// gmx : 1&1 Mail & Media GmbH gmx -// godaddy : 2015-07-23 Go Daddy East, LLC +// godaddy : Go Daddy East, LLC godaddy -// gold : 2015-01-22 Binky Moon, LLC +// gold : Binky Moon, LLC gold -// goldpoint : 2014-11-20 YODOBASHI CAMERA CO.,LTD. +// goldpoint : YODOBASHI CAMERA CO.,LTD. goldpoint -// golf : 2014-12-18 Binky Moon, LLC +// golf : Binky Moon, LLC golf -// goo : 2014-12-18 NTT Resonant Inc. +// goo : NTT Resonant Inc. goo -// goodyear : 2015-07-02 The Goodyear Tire & Rubber Company +// goodyear : The Goodyear Tire & Rubber Company goodyear -// goog : 2014-11-20 Charleston Road Registry Inc. +// goog : Charleston Road Registry Inc. goog -// google : 2014-07-24 Charleston Road Registry Inc. +// google : Charleston Road Registry Inc. google -// gop : 2014-01-16 Republican State Leadership Committee, Inc. +// gop : Republican State Leadership Committee, Inc. gop -// got : 2014-12-18 Amazon Registry Services, Inc. +// got : Amazon Registry Services, Inc. got -// grainger : 2015-05-07 Grainger Registry Services, LLC +// grainger : Grainger Registry Services, LLC grainger -// graphics : 2013-09-13 Binky Moon, LLC +// graphics : Binky Moon, LLC graphics -// gratis : 2014-03-20 Binky Moon, LLC +// gratis : Binky Moon, LLC gratis -// green : 2014-05-08 Identity Digital Limited +// green : Identity Digital Limited green -// gripe : 2014-03-06 Binky Moon, LLC +// gripe : Binky Moon, LLC gripe -// grocery : 2016-06-16 Wal-Mart Stores, Inc. +// grocery : Wal-Mart Stores, Inc. grocery -// group : 2014-08-15 Binky Moon, LLC +// group : Binky Moon, LLC group -// guardian : 2015-07-30 The Guardian Life Insurance Company of America +// guardian : The Guardian Life Insurance Company of America guardian -// gucci : 2014-11-13 Guccio Gucci S.p.a. +// gucci : Guccio Gucci S.p.a. gucci -// guge : 2014-08-28 Charleston Road Registry Inc. +// guge : Charleston Road Registry Inc. guge -// guide : 2013-09-13 Binky Moon, LLC +// guide : Binky Moon, LLC guide -// guitars : 2013-11-14 XYZ.COM LLC +// guitars : XYZ.COM LLC guitars -// guru : 2013-08-27 Binky Moon, LLC +// guru : Binky Moon, LLC guru -// hair : 2015-12-03 XYZ.COM LLC +// hair : XYZ.COM LLC hair -// hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH +// hamburg : Hamburg Top-Level-Domain GmbH hamburg -// hangout : 2014-11-13 Charleston Road Registry Inc. +// hangout : Charleston Road Registry Inc. hangout -// haus : 2013-12-05 Dog Beach, LLC +// haus : Dog Beach, LLC haus -// hbo : 2015-07-30 HBO Registry Services, Inc. +// hbo : HBO Registry Services, Inc. hbo -// hdfc : 2015-07-30 HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED +// hdfc : HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED hdfc -// hdfcbank : 2015-02-12 HDFC Bank Limited +// hdfcbank : HDFC Bank Limited hdfcbank -// health : 2015-02-11 Registry Services, LLC +// health : Registry Services, LLC health -// healthcare : 2014-06-12 Binky Moon, LLC +// healthcare : Binky Moon, LLC healthcare -// help : 2014-06-26 Innovation service Limited +// help : Innovation service Limited help -// helsinki : 2015-02-05 City of Helsinki +// helsinki : City of Helsinki helsinki -// here : 2014-02-06 Charleston Road Registry Inc. +// here : Charleston Road Registry Inc. here -// hermes : 2014-07-10 HERMES INTERNATIONAL +// hermes : HERMES INTERNATIONAL hermes -// hiphop : 2014-03-06 Dot Hip Hop, LLC +// hiphop : Dot Hip Hop, LLC hiphop -// hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc. +// hisamitsu : Hisamitsu Pharmaceutical Co.,Inc. hisamitsu -// hitachi : 2014-10-31 Hitachi, Ltd. +// hitachi : Hitachi, Ltd. hitachi -// hiv : 2014-03-13 Internet Naming Company LLC +// hiv : Internet Naming Company LLC hiv -// hkt : 2015-05-14 PCCW-HKT DataCom Services Limited +// hkt : PCCW-HKT DataCom Services Limited hkt -// hockey : 2015-03-19 Binky Moon, LLC +// hockey : Binky Moon, LLC hockey -// holdings : 2013-08-27 Binky Moon, LLC +// holdings : Binky Moon, LLC holdings -// holiday : 2013-11-07 Binky Moon, LLC +// holiday : Binky Moon, LLC holiday -// homedepot : 2015-04-02 Home Depot Product Authority, LLC +// homedepot : Home Depot Product Authority, LLC homedepot -// homegoods : 2015-07-16 The TJX Companies, Inc. +// homegoods : The TJX Companies, Inc. homegoods -// homes : 2014-01-09 XYZ.COM LLC +// homes : XYZ.COM LLC homes -// homesense : 2015-07-16 The TJX Companies, Inc. +// homesense : The TJX Companies, Inc. homesense -// honda : 2014-12-18 Honda Motor Co., Ltd. +// honda : Honda Motor Co., Ltd. honda -// horse : 2013-11-21 Registry Services, LLC +// horse : Registry Services, LLC horse -// hospital : 2016-10-20 Binky Moon, LLC +// hospital : Binky Moon, LLC hospital -// host : 2014-04-17 Radix FZC +// host : Radix FZC host -// hosting : 2014-05-29 XYZ.COM LLC +// hosting : XYZ.COM LLC hosting -// hot : 2015-08-27 Amazon Registry Services, Inc. +// hot : Amazon Registry Services, Inc. hot -// hotels : 2016-04-07 Booking.com B.V. +// hotels : Booking.com B.V. hotels -// hotmail : 2014-12-18 Microsoft Corporation +// hotmail : Microsoft Corporation hotmail -// house : 2013-11-07 Binky Moon, LLC +// house : Binky Moon, LLC house -// how : 2014-01-23 Charleston Road Registry Inc. +// how : Charleston Road Registry Inc. how -// hsbc : 2014-10-24 HSBC Global Services (UK) Limited +// hsbc : HSBC Global Services (UK) Limited hsbc -// hughes : 2015-07-30 Hughes Satellite Systems Corporation +// hughes : Hughes Satellite Systems Corporation hughes -// hyatt : 2015-07-30 Hyatt GTLD, L.L.C. +// hyatt : Hyatt GTLD, L.L.C. hyatt -// hyundai : 2015-07-09 Hyundai Motor Company +// hyundai : Hyundai Motor Company hyundai -// ibm : 2014-07-31 International Business Machines Corporation +// ibm : International Business Machines Corporation ibm -// icbc : 2015-02-19 Industrial and Commercial Bank of China Limited +// icbc : Industrial and Commercial Bank of China Limited icbc -// ice : 2014-10-30 IntercontinentalExchange, Inc. +// ice : IntercontinentalExchange, Inc. ice -// icu : 2015-01-08 ShortDot SA +// icu : ShortDot SA icu -// ieee : 2015-07-23 IEEE Global LLC +// ieee : IEEE Global LLC ieee -// ifm : 2014-01-30 ifm electronic gmbh +// ifm : ifm electronic gmbh ifm -// ikano : 2015-07-09 Ikano S.A. +// ikano : Ikano S.A. ikano -// imamat : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) +// imamat : Fondation Aga Khan (Aga Khan Foundation) imamat -// imdb : 2015-06-25 Amazon Registry Services, Inc. +// imdb : Amazon Registry Services, Inc. imdb -// immo : 2014-07-10 Binky Moon, LLC +// immo : Binky Moon, LLC immo -// immobilien : 2013-11-07 Dog Beach, LLC +// immobilien : Dog Beach, LLC immobilien -// inc : 2018-03-10 Intercap Registry Inc. +// inc : Intercap Registry Inc. inc -// industries : 2013-12-05 Binky Moon, LLC +// industries : Binky Moon, LLC industries -// infiniti : 2014-03-27 NISSAN MOTOR CO., LTD. +// infiniti : NISSAN MOTOR CO., LTD. infiniti -// ing : 2014-01-23 Charleston Road Registry Inc. +// ing : Charleston Road Registry Inc. ing -// ink : 2013-12-05 Registry Services, LLC +// ink : Registry Services, LLC ink -// institute : 2013-11-07 Binky Moon, LLC +// institute : Binky Moon, LLC institute -// insurance : 2015-02-19 fTLD Registry Services LLC +// insurance : fTLD Registry Services LLC insurance -// insure : 2014-03-20 Binky Moon, LLC +// insure : Binky Moon, LLC insure -// international : 2013-11-07 Binky Moon, LLC +// international : Binky Moon, LLC international -// intuit : 2015-07-30 Intuit Administrative Services, Inc. +// intuit : Intuit Administrative Services, Inc. intuit -// investments : 2014-03-20 Binky Moon, LLC +// investments : Binky Moon, LLC investments -// ipiranga : 2014-08-28 Ipiranga Produtos de Petroleo S.A. +// ipiranga : Ipiranga Produtos de Petroleo S.A. ipiranga -// irish : 2014-08-07 Binky Moon, LLC +// irish : Binky Moon, LLC irish -// ismaili : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) +// ismaili : Fondation Aga Khan (Aga Khan Foundation) ismaili -// ist : 2014-08-28 Istanbul Metropolitan Municipality +// ist : Istanbul Metropolitan Municipality ist -// istanbul : 2014-08-28 Istanbul Metropolitan Municipality +// istanbul : Istanbul Metropolitan Municipality istanbul -// itau : 2014-10-02 Itau Unibanco Holding S.A. +// itau : Itau Unibanco Holding S.A. itau -// itv : 2015-07-09 ITV Services Limited +// itv : ITV Services Limited itv -// jaguar : 2014-11-13 Jaguar Land Rover Ltd +// jaguar : Jaguar Land Rover Ltd jaguar -// java : 2014-06-19 Oracle Corporation +// java : Oracle Corporation java -// jcb : 2014-11-20 JCB Co., Ltd. +// jcb : JCB Co., Ltd. jcb -// jeep : 2015-07-30 FCA US LLC. +// jeep : FCA US LLC. jeep -// jetzt : 2014-01-09 Binky Moon, LLC +// jetzt : Binky Moon, LLC jetzt -// jewelry : 2015-03-05 Binky Moon, LLC +// jewelry : Binky Moon, LLC jewelry -// jio : 2015-04-02 Reliance Industries Limited +// jio : Reliance Industries Limited jio -// jll : 2015-04-02 Jones Lang LaSalle Incorporated +// jll : Jones Lang LaSalle Incorporated jll -// jmp : 2015-03-26 Matrix IP LLC +// jmp : Matrix IP LLC jmp -// jnj : 2015-06-18 Johnson & Johnson Services, Inc. +// jnj : Johnson & Johnson Services, Inc. jnj -// joburg : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry +// joburg : ZA Central Registry NPC trading as ZA Central Registry joburg -// jot : 2014-12-18 Amazon Registry Services, Inc. +// jot : Amazon Registry Services, Inc. jot -// joy : 2014-12-18 Amazon Registry Services, Inc. +// joy : Amazon Registry Services, Inc. joy -// jpmorgan : 2015-04-30 JPMorgan Chase Bank, National Association +// jpmorgan : JPMorgan Chase Bank, National Association jpmorgan -// jprs : 2014-09-18 Japan Registry Services Co., Ltd. +// jprs : Japan Registry Services Co., Ltd. jprs -// juegos : 2014-03-20 Internet Naming Company LLC +// juegos : Internet Naming Company LLC juegos -// juniper : 2015-07-30 JUNIPER NETWORKS, INC. +// juniper : JUNIPER NETWORKS, INC. juniper -// kaufen : 2013-11-07 Dog Beach, LLC +// kaufen : Dog Beach, LLC kaufen -// kddi : 2014-09-12 KDDI CORPORATION +// kddi : KDDI CORPORATION kddi -// kerryhotels : 2015-04-30 Kerry Trading Co. Limited +// kerryhotels : Kerry Trading Co. Limited kerryhotels -// kerrylogistics : 2015-04-09 Kerry Trading Co. Limited +// kerrylogistics : Kerry Trading Co. Limited kerrylogistics -// kerryproperties : 2015-04-09 Kerry Trading Co. Limited +// kerryproperties : Kerry Trading Co. Limited kerryproperties -// kfh : 2014-12-04 Kuwait Finance House +// kfh : Kuwait Finance House kfh -// kia : 2015-07-09 KIA MOTORS CORPORATION +// kia : KIA MOTORS CORPORATION kia -// kids : 2021-08-13 DotKids Foundation Limited +// kids : DotKids Foundation Limited kids -// kim : 2013-09-23 Identity Digital Limited +// kim : Identity Digital Limited kim -// kinder : 2014-11-07 Ferrero Trading Lux S.A. +// kinder : Ferrero Trading Lux S.A. kinder -// kindle : 2015-06-25 Amazon Registry Services, Inc. +// kindle : Amazon Registry Services, Inc. kindle -// kitchen : 2013-09-20 Binky Moon, LLC +// kitchen : Binky Moon, LLC kitchen -// kiwi : 2013-09-20 DOT KIWI LIMITED +// kiwi : DOT KIWI LIMITED kiwi -// koeln : 2014-01-09 dotKoeln GmbH +// koeln : dotKoeln GmbH koeln -// komatsu : 2015-01-08 Komatsu Ltd. +// komatsu : Komatsu Ltd. komatsu -// kosher : 2015-08-20 Kosher Marketing Assets LLC +// kosher : Kosher Marketing Assets LLC kosher -// kpmg : 2015-04-23 KPMG International Cooperative (KPMG International Genossenschaft) +// kpmg : KPMG International Cooperative (KPMG International Genossenschaft) kpmg -// kpn : 2015-01-08 Koninklijke KPN N.V. +// kpn : Koninklijke KPN N.V. kpn -// krd : 2013-12-05 KRG Department of Information Technology +// krd : KRG Department of Information Technology krd -// kred : 2013-12-19 KredTLD Pty Ltd +// kred : KredTLD Pty Ltd kred -// kuokgroup : 2015-04-09 Kerry Trading Co. Limited +// kuokgroup : Kerry Trading Co. Limited kuokgroup -// kyoto : 2014-11-07 Academic Institution: Kyoto Jyoho Gakuen +// kyoto : Academic Institution: Kyoto Jyoho Gakuen kyoto -// lacaixa : 2014-01-09 Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa” +// lacaixa : Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa” lacaixa -// lamborghini : 2015-06-04 Automobili Lamborghini S.p.A. +// lamborghini : Automobili Lamborghini S.p.A. lamborghini -// lamer : 2015-10-01 The Estée Lauder Companies Inc. +// lamer : The Estée Lauder Companies Inc. lamer -// lancaster : 2015-02-12 LANCASTER +// lancaster : LANCASTER lancaster -// land : 2013-09-10 Binky Moon, LLC +// land : Binky Moon, LLC land -// landrover : 2014-11-13 Jaguar Land Rover Ltd +// landrover : Jaguar Land Rover Ltd landrover -// lanxess : 2015-07-30 LANXESS Corporation +// lanxess : LANXESS Corporation lanxess -// lasalle : 2015-04-02 Jones Lang LaSalle Incorporated +// lasalle : Jones Lang LaSalle Incorporated lasalle -// lat : 2014-10-16 XYZ.COM LLC +// lat : XYZ.COM LLC lat -// latino : 2015-07-30 Dish DBS Corporation +// latino : Dish DBS Corporation latino -// latrobe : 2014-06-16 La Trobe University +// latrobe : La Trobe University latrobe -// law : 2015-01-22 Registry Services, LLC +// law : Registry Services, LLC law -// lawyer : 2014-03-20 Dog Beach, LLC +// lawyer : Dog Beach, LLC lawyer -// lds : 2014-03-20 IRI Domain Management, LLC +// lds : IRI Domain Management, LLC lds -// lease : 2014-03-06 Binky Moon, LLC +// lease : Binky Moon, LLC lease -// leclerc : 2014-08-07 A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc +// leclerc : A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc leclerc -// lefrak : 2015-07-16 LeFrak Organization, Inc. +// lefrak : LeFrak Organization, Inc. lefrak -// legal : 2014-10-16 Binky Moon, LLC +// legal : Binky Moon, LLC legal -// lego : 2015-07-16 LEGO Juris A/S +// lego : LEGO Juris A/S lego -// lexus : 2015-04-23 TOYOTA MOTOR CORPORATION +// lexus : TOYOTA MOTOR CORPORATION lexus -// lgbt : 2014-05-08 Identity Digital Limited +// lgbt : Identity Digital Limited lgbt -// lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG +// lidl : Schwarz Domains und Services GmbH & Co. KG lidl -// life : 2014-02-06 Binky Moon, LLC +// life : Binky Moon, LLC life -// lifeinsurance : 2015-01-15 American Council of Life Insurers +// lifeinsurance : American Council of Life Insurers lifeinsurance -// lifestyle : 2014-12-11 Lifestyle Domain Holdings, Inc. +// lifestyle : Lifestyle Domain Holdings, Inc. lifestyle -// lighting : 2013-08-27 Binky Moon, LLC +// lighting : Binky Moon, LLC lighting -// like : 2014-12-18 Amazon Registry Services, Inc. +// like : Amazon Registry Services, Inc. like -// lilly : 2015-07-31 Eli Lilly and Company +// lilly : Eli Lilly and Company lilly -// limited : 2014-03-06 Binky Moon, LLC +// limited : Binky Moon, LLC limited -// limo : 2013-10-17 Binky Moon, LLC +// limo : Binky Moon, LLC limo -// lincoln : 2014-11-13 Ford Motor Company +// lincoln : Ford Motor Company lincoln -// link : 2013-11-14 Nova Registry Ltd +// link : Nova Registry Ltd link -// lipsy : 2015-06-25 Lipsy Ltd +// lipsy : Lipsy Ltd lipsy -// live : 2014-12-04 Dog Beach, LLC +// live : Dog Beach, LLC live -// living : 2015-07-30 Lifestyle Domain Holdings, Inc. +// living : Lifestyle Domain Holdings, Inc. living -// llc : 2017-12-14 Identity Digital Limited +// llc : Identity Digital Limited llc -// llp : 2019-08-26 Intercap Registry Inc. +// llp : Intercap Registry Inc. llp -// loan : 2014-11-20 dot Loan Limited +// loan : dot Loan Limited loan -// loans : 2014-03-20 Binky Moon, LLC +// loans : Binky Moon, LLC loans -// locker : 2015-06-04 Dish DBS Corporation +// locker : Dish DBS Corporation locker -// locus : 2015-06-25 Locus Analytics LLC +// locus : Locus Analytics LLC locus -// lol : 2015-01-30 XYZ.COM LLC +// lol : XYZ.COM LLC lol -// london : 2013-11-14 Dot London Domains Limited +// london : Dot London Domains Limited london -// lotte : 2014-11-07 Lotte Holdings Co., Ltd. +// lotte : Lotte Holdings Co., Ltd. lotte -// lotto : 2014-04-10 Identity Digital Limited +// lotto : Identity Digital Limited lotto -// love : 2014-12-22 Merchant Law Group LLP +// love : Merchant Law Group LLP love -// lpl : 2015-07-30 LPL Holdings, Inc. +// lpl : LPL Holdings, Inc. lpl -// lplfinancial : 2015-07-30 LPL Holdings, Inc. +// lplfinancial : LPL Holdings, Inc. lplfinancial -// ltd : 2014-09-25 Binky Moon, LLC +// ltd : Binky Moon, LLC ltd -// ltda : 2014-04-17 InterNetX, Corp +// ltda : InterNetX, Corp ltda -// lundbeck : 2015-08-06 H. Lundbeck A/S +// lundbeck : H. Lundbeck A/S lundbeck -// luxe : 2014-01-09 Registry Services, LLC +// luxe : Registry Services, LLC luxe -// luxury : 2013-10-17 Luxury Partners, LLC +// luxury : Luxury Partners, LLC luxury -// madrid : 2014-05-01 Comunidad de Madrid +// madrid : Comunidad de Madrid madrid -// maif : 2014-10-02 Mutuelle Assurance Instituteur France (MAIF) +// maif : Mutuelle Assurance Instituteur France (MAIF) maif -// maison : 2013-12-05 Binky Moon, LLC +// maison : Binky Moon, LLC maison -// makeup : 2015-01-15 XYZ.COM LLC +// makeup : XYZ.COM LLC makeup -// man : 2014-12-04 MAN SE +// man : MAN SE man -// management : 2013-11-07 Binky Moon, LLC +// management : Binky Moon, LLC management -// mango : 2013-10-24 PUNTO FA S.L. +// mango : PUNTO FA S.L. mango -// map : 2016-06-09 Charleston Road Registry Inc. +// map : Charleston Road Registry Inc. map -// market : 2014-03-06 Dog Beach, LLC +// market : Dog Beach, LLC market -// marketing : 2013-11-07 Binky Moon, LLC +// marketing : Binky Moon, LLC marketing -// markets : 2014-12-11 Dog Beach, LLC +// markets : Dog Beach, LLC markets -// marriott : 2014-10-09 Marriott Worldwide Corporation +// marriott : Marriott Worldwide Corporation marriott -// marshalls : 2015-07-16 The TJX Companies, Inc. +// marshalls : The TJX Companies, Inc. marshalls -// mattel : 2015-08-06 Mattel Sites, Inc. +// mattel : Mattel Sites, Inc. mattel -// mba : 2015-04-02 Binky Moon, LLC +// mba : Binky Moon, LLC mba -// mckinsey : 2015-07-31 McKinsey Holdings, Inc. +// mckinsey : McKinsey Holdings, Inc. mckinsey -// med : 2015-08-06 Medistry LLC +// med : Medistry LLC med -// media : 2014-03-06 Binky Moon, LLC +// media : Binky Moon, LLC media -// meet : 2014-01-16 Charleston Road Registry Inc. +// meet : Charleston Road Registry Inc. meet -// melbourne : 2014-05-29 The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation +// melbourne : The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation melbourne -// meme : 2014-01-30 Charleston Road Registry Inc. +// meme : Charleston Road Registry Inc. meme -// memorial : 2014-10-16 Dog Beach, LLC +// memorial : Dog Beach, LLC memorial -// men : 2015-02-26 Exclusive Registry Limited +// men : Exclusive Registry Limited men -// menu : 2013-09-11 Dot Menu Registry, LLC +// menu : Dot Menu Registry, LLC menu -// merckmsd : 2016-07-14 MSD Registry Holdings, Inc. +// merckmsd : MSD Registry Holdings, Inc. merckmsd -// miami : 2013-12-19 Registry Services, LLC +// miami : Registry Services, LLC miami -// microsoft : 2014-12-18 Microsoft Corporation +// microsoft : Microsoft Corporation microsoft -// mini : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft +// mini : Bayerische Motoren Werke Aktiengesellschaft mini -// mint : 2015-07-30 Intuit Administrative Services, Inc. +// mint : Intuit Administrative Services, Inc. mint -// mit : 2015-07-02 Massachusetts Institute of Technology +// mit : Massachusetts Institute of Technology mit -// mitsubishi : 2015-07-23 Mitsubishi Corporation +// mitsubishi : Mitsubishi Corporation mitsubishi -// mlb : 2015-05-21 MLB Advanced Media DH, LLC +// mlb : MLB Advanced Media DH, LLC mlb -// mls : 2015-04-23 The Canadian Real Estate Association +// mls : The Canadian Real Estate Association mls -// mma : 2014-11-07 MMA IARD +// mma : MMA IARD mma -// mobile : 2016-06-02 Dish DBS Corporation +// mobile : Dish DBS Corporation mobile -// moda : 2013-11-07 Dog Beach, LLC +// moda : Dog Beach, LLC moda -// moe : 2013-11-13 Interlink Systems Innovation Institute K.K. +// moe : Interlink Systems Innovation Institute K.K. moe -// moi : 2014-12-18 Amazon Registry Services, Inc. +// moi : Amazon Registry Services, Inc. moi -// mom : 2015-04-16 XYZ.COM LLC +// mom : XYZ.COM LLC mom -// monash : 2013-09-30 Monash University +// monash : Monash University monash -// money : 2014-10-16 Binky Moon, LLC +// money : Binky Moon, LLC money -// monster : 2015-09-11 XYZ.COM LLC +// monster : XYZ.COM LLC monster -// mormon : 2013-12-05 IRI Domain Management, LLC +// mormon : IRI Domain Management, LLC mormon -// mortgage : 2014-03-20 Dog Beach, LLC +// mortgage : Dog Beach, LLC mortgage -// moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) +// moscow : Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) moscow -// moto : 2015-06-04 Motorola Trademark Holdings, LLC +// moto : Motorola Trademark Holdings, LLC moto -// motorcycles : 2014-01-09 XYZ.COM LLC +// motorcycles : XYZ.COM LLC motorcycles -// mov : 2014-01-30 Charleston Road Registry Inc. +// mov : Charleston Road Registry Inc. mov -// movie : 2015-02-05 Binky Moon, LLC +// movie : Binky Moon, LLC movie -// msd : 2015-07-23 MSD Registry Holdings, Inc. +// msd : MSD Registry Holdings, Inc. msd -// mtn : 2014-12-04 MTN Dubai Limited +// mtn : MTN Dubai Limited mtn -// mtr : 2015-03-12 MTR Corporation Limited +// mtr : MTR Corporation Limited mtr -// music : 2021-05-04 DotMusic Limited +// music : DotMusic Limited music -// mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC -mutual - -// nab : 2015-08-20 National Australia Bank Limited +// nab : National Australia Bank Limited nab -// nagoya : 2013-10-24 GMO Registry, Inc. +// nagoya : GMO Registry, Inc. nagoya -// natura : 2015-03-12 NATURA COSMÉTICOS S.A. +// natura : NATURA COSMÉTICOS S.A. natura -// navy : 2014-03-06 Dog Beach, LLC +// navy : Dog Beach, LLC navy -// nba : 2015-07-31 NBA REGISTRY, LLC +// nba : NBA REGISTRY, LLC nba -// nec : 2015-01-08 NEC Corporation +// nec : NEC Corporation nec -// netbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA +// netbank : COMMONWEALTH BANK OF AUSTRALIA netbank -// netflix : 2015-06-18 Netflix, Inc. +// netflix : Netflix, Inc. netflix -// network : 2013-11-14 Binky Moon, LLC +// network : Binky Moon, LLC network -// neustar : 2013-12-05 NeuStar, Inc. +// neustar : NeuStar, Inc. neustar -// new : 2014-01-30 Charleston Road Registry Inc. +// new : Charleston Road Registry Inc. new -// news : 2014-12-18 Dog Beach, LLC +// news : Dog Beach, LLC news -// next : 2015-06-18 Next plc +// next : Next plc next -// nextdirect : 2015-06-18 Next plc +// nextdirect : Next plc nextdirect -// nexus : 2014-07-24 Charleston Road Registry Inc. +// nexus : Charleston Road Registry Inc. nexus -// nfl : 2015-07-23 NFL Reg Ops LLC +// nfl : NFL Reg Ops LLC nfl -// ngo : 2014-03-06 Public Interest Registry +// ngo : Public Interest Registry ngo -// nhk : 2014-02-13 Japan Broadcasting Corporation (NHK) +// nhk : Japan Broadcasting Corporation (NHK) nhk -// nico : 2014-12-04 DWANGO Co., Ltd. +// nico : DWANGO Co., Ltd. nico -// nike : 2015-07-23 NIKE, Inc. +// nike : NIKE, Inc. nike -// nikon : 2015-05-21 NIKON CORPORATION +// nikon : NIKON CORPORATION nikon -// ninja : 2013-11-07 Dog Beach, LLC +// ninja : Dog Beach, LLC ninja -// nissan : 2014-03-27 NISSAN MOTOR CO., LTD. +// nissan : NISSAN MOTOR CO., LTD. nissan -// nissay : 2015-10-29 Nippon Life Insurance Company +// nissay : Nippon Life Insurance Company nissay -// nokia : 2015-01-08 Nokia Corporation +// nokia : Nokia Corporation nokia -// northwesternmutual : 2015-06-18 Northwestern Mutual Registry, LLC +// northwesternmutual : Northwestern Mutual Registry, LLC northwesternmutual -// norton : 2014-12-04 NortonLifeLock Inc. +// norton : NortonLifeLock Inc. norton -// now : 2015-06-25 Amazon Registry Services, Inc. +// now : Amazon Registry Services, Inc. now -// nowruz : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// nowruz : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. nowruz -// nowtv : 2015-05-14 Starbucks (HK) Limited +// nowtv : Starbucks (HK) Limited nowtv -// nra : 2014-05-22 NRA Holdings Company, INC. +// nra : NRA Holdings Company, INC. nra -// nrw : 2013-11-21 Minds + Machines GmbH +// nrw : Minds + Machines GmbH nrw -// ntt : 2014-10-31 NIPPON TELEGRAPH AND TELEPHONE CORPORATION +// ntt : NIPPON TELEGRAPH AND TELEPHONE CORPORATION ntt -// nyc : 2014-01-23 The City of New York by and through the New York City Department of Information Technology & Telecommunications +// nyc : The City of New York by and through the New York City Department of Information Technology & Telecommunications nyc -// obi : 2014-09-25 OBI Group Holding SE & Co. KGaA +// obi : OBI Group Holding SE & Co. KGaA obi -// observer : 2015-04-30 Dog Beach, LLC +// observer : Dog Beach, LLC observer -// office : 2015-03-12 Microsoft Corporation +// office : Microsoft Corporation office -// okinawa : 2013-12-05 BRregistry, Inc. +// okinawa : BRregistry, Inc. okinawa -// olayan : 2015-05-14 Competrol (Luxembourg) Sarl +// olayan : Competrol (Luxembourg) Sarl olayan -// olayangroup : 2015-05-14 Competrol (Luxembourg) Sarl +// olayangroup : Competrol (Luxembourg) Sarl olayangroup -// oldnavy : 2015-07-31 The Gap, Inc. +// oldnavy : The Gap, Inc. oldnavy -// ollo : 2015-06-04 Dish DBS Corporation +// ollo : Dish DBS Corporation ollo -// omega : 2015-01-08 The Swatch Group Ltd +// omega : The Swatch Group Ltd omega -// one : 2014-11-07 One.com A/S +// one : One.com A/S one -// ong : 2014-03-06 Public Interest Registry +// ong : Public Interest Registry ong -// onl : 2013-09-16 iRegistry GmbH +// onl : iRegistry GmbH onl -// online : 2015-01-15 Radix FZC +// online : Radix FZC online -// ooo : 2014-01-09 INFIBEAM AVENUES LIMITED +// ooo : INFIBEAM AVENUES LIMITED ooo -// open : 2015-07-31 American Express Travel Related Services Company, Inc. +// open : American Express Travel Related Services Company, Inc. open -// oracle : 2014-06-19 Oracle Corporation +// oracle : Oracle Corporation oracle -// orange : 2015-03-12 Orange Brand Services Limited +// orange : Orange Brand Services Limited orange -// organic : 2014-03-27 Identity Digital Limited +// organic : Identity Digital Limited organic -// origins : 2015-10-01 The Estée Lauder Companies Inc. +// origins : The Estée Lauder Companies Inc. origins -// osaka : 2014-09-04 Osaka Registry Co., Ltd. +// osaka : Osaka Registry Co., Ltd. osaka -// otsuka : 2013-10-11 Otsuka Holdings Co., Ltd. +// otsuka : Otsuka Holdings Co., Ltd. otsuka -// ott : 2015-06-04 Dish DBS Corporation +// ott : Dish DBS Corporation ott -// ovh : 2014-01-16 MédiaBC +// ovh : MédiaBC ovh -// page : 2014-12-04 Charleston Road Registry Inc. +// page : Charleston Road Registry Inc. page -// panasonic : 2015-07-30 Panasonic Holdings Corporation +// panasonic : Panasonic Holdings Corporation panasonic -// paris : 2014-01-30 City of Paris +// paris : City of Paris paris -// pars : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// pars : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. pars -// partners : 2013-12-05 Binky Moon, LLC +// partners : Binky Moon, LLC partners -// parts : 2013-12-05 Binky Moon, LLC +// parts : Binky Moon, LLC parts -// party : 2014-09-11 Blue Sky Registry Limited +// party : Blue Sky Registry Limited party -// pay : 2015-08-27 Amazon Registry Services, Inc. +// pay : Amazon Registry Services, Inc. pay -// pccw : 2015-05-14 PCCW Enterprises Limited +// pccw : PCCW Enterprises Limited pccw -// pet : 2015-05-07 Identity Digital Limited +// pet : Identity Digital Limited pet -// pfizer : 2015-09-11 Pfizer Inc. +// pfizer : Pfizer Inc. pfizer -// pharmacy : 2014-06-19 National Association of Boards of Pharmacy +// pharmacy : National Association of Boards of Pharmacy pharmacy -// phd : 2016-07-28 Charleston Road Registry Inc. +// phd : Charleston Road Registry Inc. phd -// philips : 2014-11-07 Koninklijke Philips N.V. +// philips : Koninklijke Philips N.V. philips -// phone : 2016-06-02 Dish DBS Corporation +// phone : Dish DBS Corporation phone -// photo : 2013-11-14 Registry Services, LLC +// photo : Registry Services, LLC photo -// photography : 2013-09-20 Binky Moon, LLC +// photography : Binky Moon, LLC photography -// photos : 2013-10-17 Binky Moon, LLC +// photos : Binky Moon, LLC photos -// physio : 2014-05-01 PhysBiz Pty Ltd +// physio : PhysBiz Pty Ltd physio -// pics : 2013-11-14 XYZ.COM LLC +// pics : XYZ.COM LLC pics -// pictet : 2014-06-26 Pictet Europe S.A. +// pictet : Pictet Europe S.A. pictet -// pictures : 2014-03-06 Binky Moon, LLC +// pictures : Binky Moon, LLC pictures -// pid : 2015-01-08 Top Level Spectrum, Inc. +// pid : Top Level Spectrum, Inc. pid -// pin : 2014-12-18 Amazon Registry Services, Inc. +// pin : Amazon Registry Services, Inc. pin -// ping : 2015-06-11 Ping Registry Provider, Inc. +// ping : Ping Registry Provider, Inc. ping -// pink : 2013-10-01 Identity Digital Limited +// pink : Identity Digital Limited pink -// pioneer : 2015-07-16 Pioneer Corporation +// pioneer : Pioneer Corporation pioneer -// pizza : 2014-06-26 Binky Moon, LLC +// pizza : Binky Moon, LLC pizza -// place : 2014-04-24 Binky Moon, LLC +// place : Binky Moon, LLC place -// play : 2015-03-05 Charleston Road Registry Inc. +// play : Charleston Road Registry Inc. play -// playstation : 2015-07-02 Sony Interactive Entertainment Inc. +// playstation : Sony Interactive Entertainment Inc. playstation -// plumbing : 2013-09-10 Binky Moon, LLC +// plumbing : Binky Moon, LLC plumbing -// plus : 2015-02-05 Binky Moon, LLC +// plus : Binky Moon, LLC plus -// pnc : 2015-07-02 PNC Domain Co., LLC +// pnc : PNC Domain Co., LLC pnc -// pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG +// pohl : Deutsche Vermögensberatung Aktiengesellschaft DVAG pohl -// poker : 2014-07-03 Identity Digital Limited +// poker : Identity Digital Limited poker -// politie : 2015-08-20 Politie Nederland +// politie : Politie Nederland politie -// porn : 2014-10-16 ICM Registry PN LLC +// porn : ICM Registry PN LLC porn -// pramerica : 2015-07-30 Prudential Financial, Inc. +// pramerica : Prudential Financial, Inc. pramerica -// praxi : 2013-12-05 Praxi S.p.A. +// praxi : Praxi S.p.A. praxi -// press : 2014-04-03 Radix FZC +// press : Radix FZC press -// prime : 2015-06-25 Amazon Registry Services, Inc. +// prime : Amazon Registry Services, Inc. prime -// prod : 2014-01-23 Charleston Road Registry Inc. +// prod : Charleston Road Registry Inc. prod -// productions : 2013-12-05 Binky Moon, LLC +// productions : Binky Moon, LLC productions -// prof : 2014-07-24 Charleston Road Registry Inc. +// prof : Charleston Road Registry Inc. prof -// progressive : 2015-07-23 Progressive Casualty Insurance Company +// progressive : Progressive Casualty Insurance Company progressive -// promo : 2014-12-18 Identity Digital Limited +// promo : Identity Digital Limited promo -// properties : 2013-12-05 Binky Moon, LLC +// properties : Binky Moon, LLC properties -// property : 2014-05-22 Internet Naming Company LLC +// property : Internet Naming Company LLC property -// protection : 2015-04-23 XYZ.COM LLC +// protection : XYZ.COM LLC protection -// pru : 2015-07-30 Prudential Financial, Inc. +// pru : Prudential Financial, Inc. pru -// prudential : 2015-07-30 Prudential Financial, Inc. +// prudential : Prudential Financial, Inc. prudential -// pub : 2013-12-12 Dog Beach, LLC +// pub : Dog Beach, LLC pub -// pwc : 2015-10-29 PricewaterhouseCoopers LLP +// pwc : PricewaterhouseCoopers LLP pwc -// qpon : 2013-11-14 dotQPON LLC +// qpon : dotQPON LLC qpon -// quebec : 2013-12-19 PointQuébec Inc +// quebec : PointQuébec Inc quebec -// quest : 2015-03-26 XYZ.COM LLC +// quest : XYZ.COM LLC quest -// racing : 2014-12-04 Premier Registry Limited +// racing : Premier Registry Limited racing -// radio : 2016-07-21 European Broadcasting Union (EBU) +// radio : European Broadcasting Union (EBU) radio -// read : 2014-12-18 Amazon Registry Services, Inc. +// read : Amazon Registry Services, Inc. read -// realestate : 2015-09-11 dotRealEstate LLC +// realestate : dotRealEstate LLC realestate -// realtor : 2014-05-29 Real Estate Domains LLC +// realtor : Real Estate Domains LLC realtor -// realty : 2015-03-19 Dog Beach, LLC +// realty : Dog Beach, LLC realty -// recipes : 2013-10-17 Binky Moon, LLC +// recipes : Binky Moon, LLC recipes -// red : 2013-11-07 Identity Digital Limited +// red : Identity Digital Limited red -// redstone : 2014-10-31 Redstone Haute Couture Co., Ltd. +// redstone : Redstone Haute Couture Co., Ltd. redstone -// redumbrella : 2015-03-26 Travelers TLD, LLC +// redumbrella : Travelers TLD, LLC redumbrella -// rehab : 2014-03-06 Dog Beach, LLC +// rehab : Dog Beach, LLC rehab -// reise : 2014-03-13 Binky Moon, LLC +// reise : Binky Moon, LLC reise -// reisen : 2014-03-06 Binky Moon, LLC +// reisen : Binky Moon, LLC reisen -// reit : 2014-09-04 National Association of Real Estate Investment Trusts, Inc. +// reit : National Association of Real Estate Investment Trusts, Inc. reit -// reliance : 2015-04-02 Reliance Industries Limited +// reliance : Reliance Industries Limited reliance -// ren : 2013-12-12 ZDNS International Limited +// ren : ZDNS International Limited ren -// rent : 2014-12-04 XYZ.COM LLC +// rent : XYZ.COM LLC rent -// rentals : 2013-12-05 Binky Moon, LLC +// rentals : Binky Moon, LLC rentals -// repair : 2013-11-07 Binky Moon, LLC +// repair : Binky Moon, LLC repair -// report : 2013-12-05 Binky Moon, LLC +// report : Binky Moon, LLC report -// republican : 2014-03-20 Dog Beach, LLC +// republican : Dog Beach, LLC republican -// rest : 2013-12-19 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable +// rest : Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable rest -// restaurant : 2014-07-03 Binky Moon, LLC +// restaurant : Binky Moon, LLC restaurant -// review : 2014-11-20 dot Review Limited +// review : dot Review Limited review -// reviews : 2013-09-13 Dog Beach, LLC +// reviews : Dog Beach, LLC reviews -// rexroth : 2015-06-18 Robert Bosch GMBH +// rexroth : Robert Bosch GMBH rexroth -// rich : 2013-11-21 iRegistry GmbH +// rich : iRegistry GmbH rich -// richardli : 2015-05-14 Pacific Century Asset Management (HK) Limited +// richardli : Pacific Century Asset Management (HK) Limited richardli -// ricoh : 2014-11-20 Ricoh Company, Ltd. +// ricoh : Ricoh Company, Ltd. ricoh -// ril : 2015-04-02 Reliance Industries Limited +// ril : Reliance Industries Limited ril -// rio : 2014-02-27 Empresa Municipal de Informática SA - IPLANRIO +// rio : Empresa Municipal de Informática SA - IPLANRIO rio -// rip : 2014-07-10 Dog Beach, LLC +// rip : Dog Beach, LLC rip -// rocher : 2014-12-18 Ferrero Trading Lux S.A. +// rocher : Ferrero Trading Lux S.A. rocher -// rocks : 2013-11-14 Dog Beach, LLC +// rocks : Dog Beach, LLC rocks -// rodeo : 2013-12-19 Registry Services, LLC +// rodeo : Registry Services, LLC rodeo -// rogers : 2015-08-06 Rogers Communications Canada Inc. +// rogers : Rogers Communications Canada Inc. rogers -// room : 2014-12-18 Amazon Registry Services, Inc. +// room : Amazon Registry Services, Inc. room -// rsvp : 2014-05-08 Charleston Road Registry Inc. +// rsvp : Charleston Road Registry Inc. rsvp -// rugby : 2016-12-15 World Rugby Strategic Developments Limited +// rugby : World Rugby Strategic Developments Limited rugby -// ruhr : 2013-10-02 dotSaarland GmbH +// ruhr : dotSaarland GmbH ruhr -// run : 2015-03-19 Binky Moon, LLC +// run : Binky Moon, LLC run -// rwe : 2015-04-02 RWE AG +// rwe : RWE AG rwe -// ryukyu : 2014-01-09 BRregistry, Inc. +// ryukyu : BRregistry, Inc. ryukyu -// saarland : 2013-12-12 dotSaarland GmbH +// saarland : dotSaarland GmbH saarland -// safe : 2014-12-18 Amazon Registry Services, Inc. +// safe : Amazon Registry Services, Inc. safe -// safety : 2015-01-08 Safety Registry Services, LLC. +// safety : Safety Registry Services, LLC. safety -// sakura : 2014-12-18 SAKURA Internet Inc. +// sakura : SAKURA Internet Inc. sakura -// sale : 2014-10-16 Dog Beach, LLC +// sale : Dog Beach, LLC sale -// salon : 2014-12-11 Binky Moon, LLC +// salon : Binky Moon, LLC salon -// samsclub : 2015-07-31 Wal-Mart Stores, Inc. +// samsclub : Wal-Mart Stores, Inc. samsclub -// samsung : 2014-04-03 SAMSUNG SDS CO., LTD +// samsung : SAMSUNG SDS CO., LTD samsung -// sandvik : 2014-11-13 Sandvik AB +// sandvik : Sandvik AB sandvik -// sandvikcoromant : 2014-11-07 Sandvik AB +// sandvikcoromant : Sandvik AB sandvikcoromant -// sanofi : 2014-10-09 Sanofi +// sanofi : Sanofi sanofi -// sap : 2014-03-27 SAP AG +// sap : SAP AG sap -// sarl : 2014-07-03 Binky Moon, LLC +// sarl : Binky Moon, LLC sarl -// sas : 2015-04-02 Research IP LLC +// sas : Research IP LLC sas -// save : 2015-06-25 Amazon Registry Services, Inc. +// save : Amazon Registry Services, Inc. save -// saxo : 2014-10-31 Saxo Bank A/S +// saxo : Saxo Bank A/S saxo -// sbi : 2015-03-12 STATE BANK OF INDIA +// sbi : STATE BANK OF INDIA sbi -// sbs : 2014-11-07 ShortDot SA +// sbs : ShortDot SA sbs -// sca : 2014-03-13 SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) +// sca : SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) sca -// scb : 2014-02-20 The Siam Commercial Bank Public Company Limited ("SCB") +// scb : The Siam Commercial Bank Public Company Limited ("SCB") scb -// schaeffler : 2015-08-06 Schaeffler Technologies AG & Co. KG +// schaeffler : Schaeffler Technologies AG & Co. KG schaeffler -// schmidt : 2014-04-03 SCHMIDT GROUPE S.A.S. +// schmidt : SCHMIDT GROUPE S.A.S. schmidt -// scholarships : 2014-04-24 Scholarships.com, LLC +// scholarships : Scholarships.com, LLC scholarships -// school : 2014-12-18 Binky Moon, LLC +// school : Binky Moon, LLC school -// schule : 2014-03-06 Binky Moon, LLC +// schule : Binky Moon, LLC schule -// schwarz : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG +// schwarz : Schwarz Domains und Services GmbH & Co. KG schwarz -// science : 2014-09-11 dot Science Limited +// science : dot Science Limited science -// scot : 2014-01-23 Dot Scot Registry Limited +// scot : Dot Scot Registry Limited scot -// search : 2016-06-09 Charleston Road Registry Inc. +// search : Charleston Road Registry Inc. search -// seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal) +// seat : SEAT, S.A. (Sociedad Unipersonal) seat -// secure : 2015-08-27 Amazon Registry Services, Inc. +// secure : Amazon Registry Services, Inc. secure -// security : 2015-05-14 XYZ.COM LLC +// security : XYZ.COM LLC security -// seek : 2014-12-04 Seek Limited +// seek : Seek Limited seek -// select : 2015-10-08 Registry Services, LLC +// select : Registry Services, LLC select -// sener : 2014-10-24 Sener Ingeniería y Sistemas, S.A. +// sener : Sener Ingeniería y Sistemas, S.A. sener -// services : 2014-02-27 Binky Moon, LLC +// services : Binky Moon, LLC services -// seven : 2015-08-06 Seven West Media Ltd +// seven : Seven West Media Ltd seven -// sew : 2014-07-17 SEW-EURODRIVE GmbH & Co KG +// sew : SEW-EURODRIVE GmbH & Co KG sew -// sex : 2014-11-13 ICM Registry SX LLC +// sex : ICM Registry SX LLC sex -// sexy : 2013-09-11 Internet Naming Company LLC +// sexy : Internet Naming Company LLC sexy -// sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR +// sfr : Societe Francaise du Radiotelephone - SFR sfr -// shangrila : 2015-09-03 Shangri‐La International Hotel Management Limited +// shangrila : Shangri‐La International Hotel Management Limited shangrila -// sharp : 2014-05-01 Sharp Corporation +// sharp : Sharp Corporation sharp -// shaw : 2015-04-23 Shaw Cablesystems G.P. +// shaw : Shaw Cablesystems G.P. shaw -// shell : 2015-07-30 Shell Information Technology International Inc +// shell : Shell Information Technology International Inc shell -// shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// shia : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. shia -// shiksha : 2013-11-14 Identity Digital Limited +// shiksha : Identity Digital Limited shiksha -// shoes : 2013-10-02 Binky Moon, LLC +// shoes : Binky Moon, LLC shoes -// shop : 2016-04-08 GMO Registry, Inc. +// shop : GMO Registry, Inc. shop -// shopping : 2016-03-31 Binky Moon, LLC +// shopping : Binky Moon, LLC shopping -// shouji : 2015-01-08 Beijing Qihu Keji Co., Ltd. +// shouji : Beijing Qihu Keji Co., Ltd. shouji -// show : 2015-03-05 Binky Moon, LLC +// show : Binky Moon, LLC show -// showtime : 2015-08-06 CBS Domains Inc. +// showtime : CBS Domains Inc. showtime -// silk : 2015-06-25 Amazon Registry Services, Inc. +// silk : Amazon Registry Services, Inc. silk -// sina : 2015-03-12 Sina Corporation +// sina : Sina Corporation sina -// singles : 2013-08-27 Binky Moon, LLC +// singles : Binky Moon, LLC singles -// site : 2015-01-15 Radix FZC +// site : Radix FZC site -// ski : 2015-04-09 Identity Digital Limited +// ski : Identity Digital Limited ski -// skin : 2015-01-15 XYZ.COM LLC +// skin : XYZ.COM LLC skin -// sky : 2014-06-19 Sky International AG +// sky : Sky International AG sky -// skype : 2014-12-18 Microsoft Corporation +// skype : Microsoft Corporation skype -// sling : 2015-07-30 DISH Technologies L.L.C. +// sling : DISH Technologies L.L.C. sling -// smart : 2015-07-09 Smart Communications, Inc. (SMART) +// smart : Smart Communications, Inc. (SMART) smart -// smile : 2014-12-18 Amazon Registry Services, Inc. +// smile : Amazon Registry Services, Inc. smile -// sncf : 2015-02-19 Société Nationale SNCF +// sncf : Société Nationale SNCF sncf -// soccer : 2015-03-26 Binky Moon, LLC +// soccer : Binky Moon, LLC soccer -// social : 2013-11-07 Dog Beach, LLC +// social : Dog Beach, LLC social -// softbank : 2015-07-02 SoftBank Group Corp. +// softbank : SoftBank Group Corp. softbank -// software : 2014-03-20 Dog Beach, LLC +// software : Dog Beach, LLC software -// sohu : 2013-12-19 Sohu.com Limited +// sohu : Sohu.com Limited sohu -// solar : 2013-11-07 Binky Moon, LLC +// solar : Binky Moon, LLC solar -// solutions : 2013-11-07 Binky Moon, LLC +// solutions : Binky Moon, LLC solutions -// song : 2015-02-26 Amazon Registry Services, Inc. +// song : Amazon Registry Services, Inc. song -// sony : 2015-01-08 Sony Corporation +// sony : Sony Corporation sony -// soy : 2014-01-23 Charleston Road Registry Inc. +// soy : Charleston Road Registry Inc. soy -// spa : 2019-09-19 Asia Spa and Wellness Promotion Council Limited +// spa : Asia Spa and Wellness Promotion Council Limited spa -// space : 2014-04-03 Radix FZC +// space : Radix FZC space -// sport : 2017-11-16 SportAccord +// sport : SportAccord sport -// spot : 2015-02-26 Amazon Registry Services, Inc. +// spot : Amazon Registry Services, Inc. spot -// srl : 2015-05-07 InterNetX, Corp +// srl : InterNetX, Corp srl -// stada : 2014-11-13 STADA Arzneimittel AG +// stada : STADA Arzneimittel AG stada -// staples : 2015-07-30 Staples, Inc. +// staples : Staples, Inc. staples -// star : 2015-01-08 Star India Private Limited +// star : Star India Private Limited star -// statebank : 2015-03-12 STATE BANK OF INDIA +// statebank : STATE BANK OF INDIA statebank -// statefarm : 2015-07-30 State Farm Mutual Automobile Insurance Company +// statefarm : State Farm Mutual Automobile Insurance Company statefarm -// stc : 2014-10-09 Saudi Telecom Company +// stc : Saudi Telecom Company stc -// stcgroup : 2014-10-09 Saudi Telecom Company +// stcgroup : Saudi Telecom Company stcgroup -// stockholm : 2014-12-18 Stockholms kommun +// stockholm : Stockholms kommun stockholm -// storage : 2014-12-22 XYZ.COM LLC +// storage : XYZ.COM LLC storage -// store : 2015-04-09 Radix FZC +// store : Radix FZC store -// stream : 2016-01-08 dot Stream Limited +// stream : dot Stream Limited stream -// studio : 2015-02-11 Dog Beach, LLC +// studio : Dog Beach, LLC studio -// study : 2014-12-11 Registry Services, LLC +// study : Registry Services, LLC study -// style : 2014-12-04 Binky Moon, LLC +// style : Binky Moon, LLC style -// sucks : 2014-12-22 Vox Populi Registry Ltd. +// sucks : Vox Populi Registry Ltd. sucks -// supplies : 2013-12-19 Binky Moon, LLC +// supplies : Binky Moon, LLC supplies -// supply : 2013-12-19 Binky Moon, LLC +// supply : Binky Moon, LLC supply -// support : 2013-10-24 Binky Moon, LLC +// support : Binky Moon, LLC support -// surf : 2014-01-09 Registry Services, LLC +// surf : Registry Services, LLC surf -// surgery : 2014-03-20 Binky Moon, LLC +// surgery : Binky Moon, LLC surgery -// suzuki : 2014-02-20 SUZUKI MOTOR CORPORATION +// suzuki : SUZUKI MOTOR CORPORATION suzuki -// swatch : 2015-01-08 The Swatch Group Ltd +// swatch : The Swatch Group Ltd swatch -// swiss : 2014-10-16 Swiss Confederation +// swiss : Swiss Confederation swiss -// sydney : 2014-09-18 State of New South Wales, Department of Premier and Cabinet +// sydney : State of New South Wales, Department of Premier and Cabinet sydney -// systems : 2013-11-07 Binky Moon, LLC +// systems : Binky Moon, LLC systems -// tab : 2014-12-04 Tabcorp Holdings Limited +// tab : Tabcorp Holdings Limited tab -// taipei : 2014-07-10 Taipei City Government +// taipei : Taipei City Government taipei -// talk : 2015-04-09 Amazon Registry Services, Inc. +// talk : Amazon Registry Services, Inc. talk -// taobao : 2015-01-15 Alibaba Group Holding Limited +// taobao : Alibaba Group Holding Limited taobao -// target : 2015-07-31 Target Domain Holdings, LLC +// target : Target Domain Holdings, LLC target -// tatamotors : 2015-03-12 Tata Motors Ltd +// tatamotors : Tata Motors Ltd tatamotors -// tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" +// tatar : Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" tatar -// tattoo : 2013-08-30 Registry Services, LLC +// tattoo : Registry Services, LLC tattoo -// tax : 2014-03-20 Binky Moon, LLC +// tax : Binky Moon, LLC tax -// taxi : 2015-03-19 Binky Moon, LLC +// taxi : Binky Moon, LLC taxi -// tci : 2014-09-12 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// tci : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. tci -// tdk : 2015-06-11 TDK Corporation +// tdk : TDK Corporation tdk -// team : 2015-03-05 Binky Moon, LLC +// team : Binky Moon, LLC team -// tech : 2015-01-30 Radix FZC +// tech : Radix FZC tech -// technology : 2013-09-13 Binky Moon, LLC +// technology : Binky Moon, LLC technology -// temasek : 2014-08-07 Temasek Holdings (Private) Limited +// temasek : Temasek Holdings (Private) Limited temasek -// tennis : 2014-12-04 Binky Moon, LLC +// tennis : Binky Moon, LLC tennis -// teva : 2015-07-02 Teva Pharmaceutical Industries Limited +// teva : Teva Pharmaceutical Industries Limited teva -// thd : 2015-04-02 Home Depot Product Authority, LLC +// thd : Home Depot Product Authority, LLC thd -// theater : 2015-03-19 Binky Moon, LLC +// theater : Binky Moon, LLC theater -// theatre : 2015-05-07 XYZ.COM LLC +// theatre : XYZ.COM LLC theatre -// tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America +// tiaa : Teachers Insurance and Annuity Association of America tiaa -// tickets : 2015-02-05 XYZ.COM LLC +// tickets : XYZ.COM LLC tickets -// tienda : 2013-11-14 Binky Moon, LLC +// tienda : Binky Moon, LLC tienda -// tips : 2013-09-20 Binky Moon, LLC +// tips : Binky Moon, LLC tips -// tires : 2014-11-07 Binky Moon, LLC +// tires : Binky Moon, LLC tires -// tirol : 2014-04-24 punkt Tirol GmbH +// tirol : punkt Tirol GmbH tirol -// tjmaxx : 2015-07-16 The TJX Companies, Inc. +// tjmaxx : The TJX Companies, Inc. tjmaxx -// tjx : 2015-07-16 The TJX Companies, Inc. +// tjx : The TJX Companies, Inc. tjx -// tkmaxx : 2015-07-16 The TJX Companies, Inc. +// tkmaxx : The TJX Companies, Inc. tkmaxx -// tmall : 2015-01-15 Alibaba Group Holding Limited +// tmall : Alibaba Group Holding Limited tmall -// today : 2013-09-20 Binky Moon, LLC +// today : Binky Moon, LLC today -// tokyo : 2013-11-13 GMO Registry, Inc. +// tokyo : GMO Registry, Inc. tokyo -// tools : 2013-11-21 Binky Moon, LLC +// tools : Binky Moon, LLC tools -// top : 2014-03-20 .TOP Registry +// top : .TOP Registry top -// toray : 2014-12-18 Toray Industries, Inc. +// toray : Toray Industries, Inc. toray -// toshiba : 2014-04-10 TOSHIBA Corporation +// toshiba : TOSHIBA Corporation toshiba -// total : 2015-08-06 TotalEnergies SE +// total : TotalEnergies SE total -// tours : 2015-01-22 Binky Moon, LLC +// tours : Binky Moon, LLC tours -// town : 2014-03-06 Binky Moon, LLC +// town : Binky Moon, LLC town -// toyota : 2015-04-23 TOYOTA MOTOR CORPORATION +// toyota : TOYOTA MOTOR CORPORATION toyota -// toys : 2014-03-06 Binky Moon, LLC +// toys : Binky Moon, LLC toys -// trade : 2014-01-23 Elite Registry Limited +// trade : Elite Registry Limited trade -// trading : 2014-12-11 Dog Beach, LLC +// trading : Dog Beach, LLC trading -// training : 2013-11-07 Binky Moon, LLC +// training : Binky Moon, LLC training -// travel : 2015-10-09 Dog Beach, LLC +// travel : Dog Beach, LLC travel -// travelers : 2015-03-26 Travelers TLD, LLC +// travelers : Travelers TLD, LLC travelers -// travelersinsurance : 2015-03-26 Travelers TLD, LLC +// travelersinsurance : Travelers TLD, LLC travelersinsurance -// trust : 2014-10-16 Internet Naming Company LLC +// trust : Internet Naming Company LLC trust -// trv : 2015-03-26 Travelers TLD, LLC +// trv : Travelers TLD, LLC trv -// tube : 2015-06-11 Latin American Telecom LLC +// tube : Latin American Telecom LLC tube -// tui : 2014-07-03 TUI AG +// tui : TUI AG tui -// tunes : 2015-02-26 Amazon Registry Services, Inc. +// tunes : Amazon Registry Services, Inc. tunes -// tushu : 2014-12-18 Amazon Registry Services, Inc. +// tushu : Amazon Registry Services, Inc. tushu -// tvs : 2015-02-19 T V SUNDRAM IYENGAR & SONS LIMITED +// tvs : T V SUNDRAM IYENGAR & SONS LIMITED tvs -// ubank : 2015-08-20 National Australia Bank Limited +// ubank : National Australia Bank Limited ubank -// ubs : 2014-12-11 UBS AG +// ubs : UBS AG ubs -// unicom : 2015-10-15 China United Network Communications Corporation Limited +// unicom : China United Network Communications Corporation Limited unicom -// university : 2014-03-06 Binky Moon, LLC +// university : Binky Moon, LLC university -// uno : 2013-09-11 Radix FZC +// uno : Radix FZC uno -// uol : 2014-05-01 UBN INTERNET LTDA. +// uol : UBN INTERNET LTDA. uol -// ups : 2015-06-25 UPS Market Driver, Inc. +// ups : UPS Market Driver, Inc. ups -// vacations : 2013-12-05 Binky Moon, LLC +// vacations : Binky Moon, LLC vacations -// vana : 2014-12-11 Lifestyle Domain Holdings, Inc. +// vana : Lifestyle Domain Holdings, Inc. vana -// vanguard : 2015-09-03 The Vanguard Group, Inc. +// vanguard : The Vanguard Group, Inc. vanguard -// vegas : 2014-01-16 Dot Vegas, Inc. +// vegas : Dot Vegas, Inc. vegas -// ventures : 2013-08-27 Binky Moon, LLC +// ventures : Binky Moon, LLC ventures -// verisign : 2015-08-13 VeriSign, Inc. +// verisign : VeriSign, Inc. verisign -// versicherung : 2014-03-20 tldbox GmbH +// versicherung : tldbox GmbH versicherung -// vet : 2014-03-06 Dog Beach, LLC +// vet : Dog Beach, LLC vet -// viajes : 2013-10-17 Binky Moon, LLC +// viajes : Binky Moon, LLC viajes -// video : 2014-10-16 Dog Beach, LLC +// video : Dog Beach, LLC video -// vig : 2015-05-14 VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe +// vig : VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe vig -// viking : 2015-04-02 Viking River Cruises (Bermuda) Ltd. +// viking : Viking River Cruises (Bermuda) Ltd. viking -// villas : 2013-12-05 Binky Moon, LLC +// villas : Binky Moon, LLC villas -// vin : 2015-06-18 Binky Moon, LLC +// vin : Binky Moon, LLC vin -// vip : 2015-01-22 Registry Services, LLC +// vip : Registry Services, LLC vip -// virgin : 2014-09-25 Virgin Enterprises Limited +// virgin : Virgin Enterprises Limited virgin -// visa : 2015-07-30 Visa Worldwide Pte. Limited +// visa : Visa Worldwide Pte. Limited visa -// vision : 2013-12-05 Binky Moon, LLC +// vision : Binky Moon, LLC vision -// viva : 2014-11-07 Saudi Telecom Company +// viva : Saudi Telecom Company viva -// vivo : 2015-07-31 Telefonica Brasil S.A. +// vivo : Telefonica Brasil S.A. vivo -// vlaanderen : 2014-02-06 DNS.be vzw +// vlaanderen : DNS.be vzw vlaanderen -// vodka : 2013-12-19 Registry Services, LLC +// vodka : Registry Services, LLC vodka -// volkswagen : 2015-05-14 Volkswagen Group of America Inc. +// volkswagen : Volkswagen Group of America Inc. volkswagen -// volvo : 2015-11-12 Volvo Holding Sverige Aktiebolag +// volvo : Volvo Holding Sverige Aktiebolag volvo -// vote : 2013-11-21 Monolith Registry LLC +// vote : Monolith Registry LLC vote -// voting : 2013-11-13 Valuetainment Corp. +// voting : Valuetainment Corp. voting -// voto : 2013-11-21 Monolith Registry LLC +// voto : Monolith Registry LLC voto -// voyage : 2013-08-27 Binky Moon, LLC +// voyage : Binky Moon, LLC voyage -// wales : 2014-05-08 Nominet UK +// wales : Nominet UK wales -// walmart : 2015-07-31 Wal-Mart Stores, Inc. +// walmart : Wal-Mart Stores, Inc. walmart -// walter : 2014-11-13 Sandvik AB +// walter : Sandvik AB walter -// wang : 2013-10-24 Zodiac Wang Limited +// wang : Zodiac Wang Limited wang -// wanggou : 2014-12-18 Amazon Registry Services, Inc. +// wanggou : Amazon Registry Services, Inc. wanggou -// watch : 2013-11-14 Binky Moon, LLC +// watch : Binky Moon, LLC watch -// watches : 2014-12-22 Identity Digital Limited +// watches : Identity Digital Limited watches -// weather : 2015-01-08 International Business Machines Corporation +// weather : International Business Machines Corporation weather -// weatherchannel : 2015-03-12 International Business Machines Corporation +// weatherchannel : International Business Machines Corporation weatherchannel -// webcam : 2014-01-23 dot Webcam Limited +// webcam : dot Webcam Limited webcam -// weber : 2015-06-04 Saint-Gobain Weber SA +// weber : Saint-Gobain Weber SA weber -// website : 2014-04-03 Radix FZC +// website : Radix FZC website -// wedding : 2014-04-24 Registry Services, LLC +// wedding : Registry Services, LLC wedding -// weibo : 2015-03-05 Sina Corporation +// weibo : Sina Corporation weibo -// weir : 2015-01-29 Weir Group IP Limited +// weir : Weir Group IP Limited weir -// whoswho : 2014-02-20 Who's Who Registry +// whoswho : Who's Who Registry whoswho -// wien : 2013-10-28 punkt.wien GmbH +// wien : punkt.wien GmbH wien -// wiki : 2013-11-07 Registry Services, LLC +// wiki : Registry Services, LLC wiki -// williamhill : 2014-03-13 William Hill Organization Limited +// williamhill : William Hill Organization Limited williamhill -// win : 2014-11-20 First Registry Limited +// win : First Registry Limited win -// windows : 2014-12-18 Microsoft Corporation +// windows : Microsoft Corporation windows -// wine : 2015-06-18 Binky Moon, LLC +// wine : Binky Moon, LLC wine -// winners : 2015-07-16 The TJX Companies, Inc. +// winners : The TJX Companies, Inc. winners -// wme : 2014-02-13 William Morris Endeavor Entertainment, LLC +// wme : William Morris Endeavor Entertainment, LLC wme -// wolterskluwer : 2015-08-06 Wolters Kluwer N.V. +// wolterskluwer : Wolters Kluwer N.V. wolterskluwer -// woodside : 2015-07-09 Woodside Petroleum Limited +// woodside : Woodside Petroleum Limited woodside -// work : 2013-12-19 Registry Services, LLC +// work : Registry Services, LLC work -// works : 2013-11-14 Binky Moon, LLC +// works : Binky Moon, LLC works -// world : 2014-06-12 Binky Moon, LLC +// world : Binky Moon, LLC world -// wow : 2015-10-08 Amazon Registry Services, Inc. +// wow : Amazon Registry Services, Inc. wow -// wtc : 2013-12-19 World Trade Centers Association, Inc. +// wtc : World Trade Centers Association, Inc. wtc -// wtf : 2014-03-06 Binky Moon, LLC +// wtf : Binky Moon, LLC wtf -// xbox : 2014-12-18 Microsoft Corporation +// xbox : Microsoft Corporation xbox -// xerox : 2014-10-24 Xerox DNHC LLC +// xerox : Xerox DNHC LLC xerox -// xfinity : 2015-07-09 Comcast IP Holdings I, LLC +// xfinity : Comcast IP Holdings I, LLC xfinity -// xihuan : 2015-01-08 Beijing Qihu Keji Co., Ltd. +// xihuan : Beijing Qihu Keji Co., Ltd. xihuan -// xin : 2014-12-11 Elegant Leader Limited +// xin : Elegant Leader Limited xin -// xn--11b4c3d : 2015-01-15 VeriSign Sarl +// xn--11b4c3d : VeriSign Sarl कॉम -// xn--1ck2e1b : 2015-02-26 Amazon Registry Services, Inc. +// xn--1ck2e1b : Amazon Registry Services, Inc. セール -// xn--1qqw23a : 2014-01-09 Guangzhou YU Wei Information Technology Co., Ltd. +// xn--1qqw23a : Guangzhou YU Wei Information Technology Co., Ltd. 佛山 -// xn--30rr7y : 2014-06-12 Excellent First Limited +// xn--30rr7y : Excellent First Limited 慈善 -// xn--3bst00m : 2013-09-13 Eagle Horizon Limited +// xn--3bst00m : Eagle Horizon Limited 集团 -// xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED OY +// xn--3ds443g : TLD REGISTRY LIMITED OY 在线 -// xn--3pxu8k : 2015-01-15 VeriSign Sarl +// xn--3pxu8k : VeriSign Sarl 点看 -// xn--42c2d9a : 2015-01-15 VeriSign Sarl +// xn--42c2d9a : VeriSign Sarl คอม -// xn--45q11c : 2013-11-21 Zodiac Gemini Ltd +// xn--45q11c : Zodiac Gemini Ltd 八卦 -// xn--4gbrim : 2013-10-04 Helium TLDs Ltd +// xn--4gbrim : Helium TLDs Ltd موقع -// xn--55qw42g : 2013-11-08 China Organizational Name Administration Center +// xn--55qw42g : China Organizational Name Administration Center 公益 -// xn--55qx5d : 2013-11-14 China Internet Network Information Center (CNNIC) +// xn--55qx5d : China Internet Network Information Center (CNNIC) 公司 -// xn--5su34j936bgsg : 2015-09-03 Shangri‐La International Hotel Management Limited +// xn--5su34j936bgsg : Shangri‐La International Hotel Management Limited 香格里拉 -// xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited +// xn--5tzm5g : Global Website TLD Asia Limited 网站 -// xn--6frz82g : 2013-09-23 Identity Digital Limited +// xn--6frz82g : Identity Digital Limited 移动 -// xn--6qq986b3xl : 2013-09-13 Tycoon Treasure Limited +// xn--6qq986b3xl : Tycoon Treasure Limited 我爱你 -// xn--80adxhks : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) +// xn--80adxhks : Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) москва -// xn--80aqecdr1a : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +// xn--80aqecdr1a : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) католик -// xn--80asehdb : 2023-07-14 CORE Association +// xn--80asehdb : CORE Association онлайн -// xn--80aswg : 2023-07-14 CORE Association +// xn--80aswg : CORE Association сайт -// xn--8y0a063a : 2015-03-26 China United Network Communications Corporation Limited +// xn--8y0a063a : China United Network Communications Corporation Limited 联通 -// xn--9dbq2a : 2015-01-15 VeriSign Sarl +// xn--9dbq2a : VeriSign Sarl קום -// xn--9et52u : 2014-06-12 RISE VICTORY LIMITED +// xn--9et52u : RISE VICTORY LIMITED 时尚 -// xn--9krt00a : 2015-03-12 Sina Corporation +// xn--9krt00a : Sina Corporation 微博 -// xn--b4w605ferd : 2014-08-07 Temasek Holdings (Private) Limited +// xn--b4w605ferd : Temasek Holdings (Private) Limited 淡马锡 -// xn--bck1b9a5dre4c : 2015-02-26 Amazon Registry Services, Inc. +// xn--bck1b9a5dre4c : Amazon Registry Services, Inc. ファッション -// xn--c1avg : 2013-11-14 Public Interest Registry +// xn--c1avg : Public Interest Registry орг -// xn--c2br7g : 2015-01-15 VeriSign Sarl +// xn--c2br7g : VeriSign Sarl नेट -// xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc. +// xn--cck2b3b : Amazon Registry Services, Inc. ストア -// xn--cckwcxetd : 2019-12-19 Amazon Registry Services, Inc. +// xn--cckwcxetd : Amazon Registry Services, Inc. アマゾン -// xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD +// xn--cg4bki : SAMSUNG SDS CO., LTD 삼성 -// xn--czr694b : 2014-01-16 Internet DotTrademark Organisation Limited +// xn--czr694b : Internet DotTrademark Organisation Limited 商标 -// xn--czrs0t : 2013-12-19 Binky Moon, LLC +// xn--czrs0t : Binky Moon, LLC 商店 -// xn--czru2d : 2013-11-21 Zodiac Aquarius Limited +// xn--czru2d : Zodiac Aquarius Limited 商城 -// xn--d1acj3b : 2013-11-20 The Foundation for Network Initiatives “The Smart Internet” +// xn--d1acj3b : The Foundation for Network Initiatives “The Smart Internet” дети -// xn--eckvdtc9d : 2014-12-18 Amazon Registry Services, Inc. +// xn--eckvdtc9d : Amazon Registry Services, Inc. ポイント -// xn--efvy88h : 2014-08-22 Guangzhou YU Wei Information Technology Co., Ltd. +// xn--efvy88h : Guangzhou YU Wei Information Technology Co., Ltd. 新闻 -// xn--fct429k : 2015-04-09 Amazon Registry Services, Inc. +// xn--fct429k : Amazon Registry Services, Inc. 家電 -// xn--fhbei : 2015-01-15 VeriSign Sarl +// xn--fhbei : VeriSign Sarl كوم -// xn--fiq228c5hs : 2013-09-08 TLD REGISTRY LIMITED OY +// xn--fiq228c5hs : TLD REGISTRY LIMITED OY 中文网 -// xn--fiq64b : 2013-10-14 CITIC Group Corporation +// xn--fiq64b : CITIC Group Corporation 中信 -// xn--fjq720a : 2014-05-22 Binky Moon, LLC +// xn--fjq720a : Binky Moon, LLC 娱乐 -// xn--flw351e : 2014-07-31 Charleston Road Registry Inc. +// xn--flw351e : Charleston Road Registry Inc. 谷歌 -// xn--fzys8d69uvgm : 2015-05-14 PCCW Enterprises Limited +// xn--fzys8d69uvgm : PCCW Enterprises Limited 電訊盈科 -// xn--g2xx48c : 2015-01-30 Nawang Heli(Xiamen) Network Service Co., LTD. +// xn--g2xx48c : Nawang Heli(Xiamen) Network Service Co., LTD. 购物 -// xn--gckr3f0f : 2015-02-26 Amazon Registry Services, Inc. +// xn--gckr3f0f : Amazon Registry Services, Inc. クラウド -// xn--gk3at1e : 2015-10-08 Amazon Registry Services, Inc. +// xn--gk3at1e : Amazon Registry Services, Inc. 通販 -// xn--hxt814e : 2014-05-15 Zodiac Taurus Limited +// xn--hxt814e : Zodiac Taurus Limited 网店 -// xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry +// xn--i1b6b1a6a2e : Public Interest Registry संगठन -// xn--imr513n : 2014-12-11 Internet DotTrademark Organisation Limited +// xn--imr513n : Internet DotTrademark Organisation Limited 餐厅 -// xn--io0a7i : 2013-11-14 China Internet Network Information Center (CNNIC) +// xn--io0a7i : China Internet Network Information Center (CNNIC) 网络 -// xn--j1aef : 2015-01-15 VeriSign Sarl +// xn--j1aef : VeriSign Sarl ком -// xn--jlq480n2rg : 2019-12-19 Amazon Registry Services, Inc. +// xn--jlq480n2rg : Amazon Registry Services, Inc. 亚马逊 -// xn--jvr189m : 2015-02-26 Amazon Registry Services, Inc. +// xn--jvr189m : Amazon Registry Services, Inc. 食品 -// xn--kcrx77d1x4a : 2014-11-07 Koninklijke Philips N.V. +// xn--kcrx77d1x4a : Koninklijke Philips N.V. 飞利浦 -// xn--kput3i : 2014-02-13 Beijing RITT-Net Technology Development Co., Ltd +// xn--kput3i : Beijing RITT-Net Technology Development Co., Ltd 手机 -// xn--mgba3a3ejt : 2014-11-20 Aramco Services Company +// xn--mgba3a3ejt : Aramco Services Company ارامكو -// xn--mgba7c0bbn0a : 2015-05-14 Competrol (Luxembourg) Sarl +// xn--mgba7c0bbn0a : Competrol (Luxembourg) Sarl العليان -// xn--mgbaakc7dvf : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +// xn--mgbaakc7dvf : Emirates Telecommunications Corporation (trading as Etisalat) اتصالات -// xn--mgbab2bd : 2013-10-31 CORE Association +// xn--mgbab2bd : CORE Association بازار -// xn--mgbca7dzdo : 2015-07-30 Abu Dhabi Systems and Information Centre +// xn--mgbca7dzdo : Abu Dhabi Systems and Information Centre ابوظبي -// xn--mgbi4ecexp : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +// xn--mgbi4ecexp : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) كاثوليك -// xn--mgbt3dhd : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// xn--mgbt3dhd : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. همراه -// xn--mk1bu44c : 2015-01-15 VeriSign Sarl +// xn--mk1bu44c : VeriSign Sarl 닷컴 -// xn--mxtq1m : 2014-03-06 Net-Chinese Co., Ltd. +// xn--mxtq1m : Net-Chinese Co., Ltd. 政府 -// xn--ngbc5azd : 2023-07-13 International Domain Registry Pty. Ltd. +// xn--ngbc5azd : International Domain Registry Pty. Ltd. شبكة -// xn--ngbe9e0a : 2014-12-04 Kuwait Finance House +// xn--ngbe9e0a : Kuwait Finance House بيتك -// xn--ngbrx : 2015-11-12 League of Arab States +// xn--ngbrx : League of Arab States عرب -// xn--nqv7f : 2013-11-14 Public Interest Registry +// xn--nqv7f : Public Interest Registry 机构 -// xn--nqv7fs00ema : 2013-11-14 Public Interest Registry +// xn--nqv7fs00ema : Public Interest Registry 组织机构 -// xn--nyqy26a : 2014-11-07 Stable Tone Limited +// xn--nyqy26a : Stable Tone Limited 健康 -// xn--otu796d : 2017-08-06 Jiang Yu Liang Cai Technology Company Limited +// xn--otu796d : Jiang Yu Liang Cai Technology Company Limited 招聘 -// xn--p1acf : 2013-12-12 Rusnames Limited +// xn--p1acf : Rusnames Limited рус -// xn--pssy2u : 2015-01-15 VeriSign Sarl +// xn--pssy2u : VeriSign Sarl 大拿 -// xn--q9jyb4c : 2013-09-17 Charleston Road Registry Inc. +// xn--q9jyb4c : Charleston Road Registry Inc. みんな -// xn--qcka1pmc : 2014-07-31 Charleston Road Registry Inc. +// xn--qcka1pmc : Charleston Road Registry Inc. グーグル -// xn--rhqv96g : 2013-09-11 Stable Tone Limited +// xn--rhqv96g : Stable Tone Limited 世界 -// xn--rovu88b : 2015-02-26 Amazon Registry Services, Inc. +// xn--rovu88b : Amazon Registry Services, Inc. 書籍 -// xn--ses554g : 2014-01-16 KNET Co., Ltd. +// xn--ses554g : KNET Co., Ltd. 网址 -// xn--t60b56a : 2015-01-15 VeriSign Sarl +// xn--t60b56a : VeriSign Sarl 닷넷 -// xn--tckwe : 2015-01-15 VeriSign Sarl +// xn--tckwe : VeriSign Sarl コム -// xn--tiq49xqyj : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +// xn--tiq49xqyj : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) 天主教 -// xn--unup4y : 2023-07-14 Binky Moon, LLC +// xn--unup4y : Binky Moon, LLC 游戏 -// xn--vermgensberater-ctb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG +// xn--vermgensberater-ctb : Deutsche Vermögensberatung Aktiengesellschaft DVAG vermögensberater -// xn--vermgensberatung-pwb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG +// xn--vermgensberatung-pwb : Deutsche Vermögensberatung Aktiengesellschaft DVAG vermögensberatung -// xn--vhquv : 2013-08-27 Binky Moon, LLC +// xn--vhquv : Binky Moon, LLC 企业 -// xn--vuq861b : 2014-10-16 Beijing Tele-info Technology Co., Ltd. +// xn--vuq861b : Beijing Tele-info Technology Co., Ltd. 信息 -// xn--w4r85el8fhu5dnra : 2015-04-30 Kerry Trading Co. Limited +// xn--w4r85el8fhu5dnra : Kerry Trading Co. Limited 嘉里大酒店 -// xn--w4rs40l : 2015-07-30 Kerry Trading Co. Limited +// xn--w4rs40l : Kerry Trading Co. Limited 嘉里 -// xn--xhq521b : 2013-11-14 Guangzhou YU Wei Information Technology Co., Ltd. +// xn--xhq521b : Guangzhou YU Wei Information Technology Co., Ltd. 广东 -// xn--zfr164b : 2013-11-08 China Organizational Name Administration Center +// xn--zfr164b : China Organizational Name Administration Center 政务 -// xyz : 2013-12-05 XYZ.COM LLC +// xyz : XYZ.COM LLC xyz -// yachts : 2014-01-09 XYZ.COM LLC +// yachts : XYZ.COM LLC yachts -// yahoo : 2015-04-02 Oath Inc. +// yahoo : Oath Inc. yahoo -// yamaxun : 2014-12-18 Amazon Registry Services, Inc. +// yamaxun : Amazon Registry Services, Inc. yamaxun -// yandex : 2014-04-10 Yandex Europe B.V. +// yandex : Yandex Europe B.V. yandex -// yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD. +// yodobashi : YODOBASHI CAMERA CO.,LTD. yodobashi -// yoga : 2014-05-29 Registry Services, LLC +// yoga : Registry Services, LLC yoga -// yokohama : 2013-12-12 GMO Registry, Inc. +// yokohama : GMO Registry, Inc. yokohama -// you : 2015-04-09 Amazon Registry Services, Inc. +// you : Amazon Registry Services, Inc. you -// youtube : 2014-05-01 Charleston Road Registry Inc. +// youtube : Charleston Road Registry Inc. youtube -// yun : 2015-01-08 Beijing Qihu Keji Co., Ltd. +// yun : Beijing Qihu Keji Co., Ltd. yun -// zappos : 2015-06-25 Amazon Registry Services, Inc. +// zappos : Amazon Registry Services, Inc. zappos -// zara : 2014-11-07 Industria de Diseño Textil, S.A. (INDITEX, S.A.) +// zara : Industria de Diseño Textil, S.A. (INDITEX, S.A.) zara -// zero : 2014-12-18 Amazon Registry Services, Inc. +// zero : Amazon Registry Services, Inc. zero -// zip : 2014-05-08 Charleston Road Registry Inc. +// zip : Charleston Road Registry Inc. zip -// zone : 2013-11-14 Binky Moon, LLC +// zone : Binky Moon, LLC zone -// zuerich : 2014-11-07 Kanton Zürich (Canton of Zurich) +// zuerich : Kanton Zürich (Canton of Zurich) zuerich From 48d47599eeabda4973f12a38c3b4a79fc896eff4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 6 Aug 2023 14:20:23 +0200 Subject: [PATCH 410/450] Updated list from source (#254) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 73d17448..77c96a8d 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6719,7 +6719,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-02T15:12:00Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-05T15:11:20Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. aaa @@ -8986,7 +8986,7 @@ realestate // realtor : Real Estate Domains LLC realtor -// realty : Dog Beach, LLC +// realty : Internet Naming Company LLC realty // recipes : Binky Moon, LLC From 9e50afb50534ed351fca022b2eed220e531adfa2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 16:53:35 +0200 Subject: [PATCH 411/450] Updated list from source (#255) Co-authored-by: weppos --- data/list.txt | 1137 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1133 insertions(+), 4 deletions(-) diff --git a/data/list.txt b/data/list.txt index 77c96a8d..5f3c6714 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6719,3405 +6719,4534 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-05T15:11:20Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-09T15:14:39Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. +// https://www.iana.org/domains/root/db/aaa.html aaa // aarp : AARP +// https://www.iana.org/domains/root/db/aarp.html aarp // abb : ABB Ltd +// https://www.iana.org/domains/root/db/abb.html abb // abbott : Abbott Laboratories, Inc. +// https://www.iana.org/domains/root/db/abbott.html abbott // abbvie : AbbVie Inc. +// https://www.iana.org/domains/root/db/abbvie.html abbvie // abc : Disney Enterprises, Inc. +// https://www.iana.org/domains/root/db/abc.html abc // able : Able Inc. +// https://www.iana.org/domains/root/db/able.html able // abogado : Registry Services, LLC +// https://www.iana.org/domains/root/db/abogado.html abogado // abudhabi : Abu Dhabi Systems and Information Centre +// https://www.iana.org/domains/root/db/abudhabi.html abudhabi // academy : Binky Moon, LLC +// https://www.iana.org/domains/root/db/academy.html academy // accenture : Accenture plc +// https://www.iana.org/domains/root/db/accenture.html accenture // accountant : dot Accountant Limited +// https://www.iana.org/domains/root/db/accountant.html accountant // accountants : Binky Moon, LLC +// https://www.iana.org/domains/root/db/accountants.html accountants // aco : ACO Severin Ahlmann GmbH & Co. KG +// https://www.iana.org/domains/root/db/aco.html aco // actor : Dog Beach, LLC +// https://www.iana.org/domains/root/db/actor.html actor // ads : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/ads.html ads // adult : ICM Registry AD LLC +// https://www.iana.org/domains/root/db/adult.html adult // aeg : Aktiebolaget Electrolux +// https://www.iana.org/domains/root/db/aeg.html aeg // aetna : Aetna Life Insurance Company +// https://www.iana.org/domains/root/db/aetna.html aetna // afl : Australian Football League +// https://www.iana.org/domains/root/db/afl.html afl // africa : ZA Central Registry NPC trading as Registry.Africa +// https://www.iana.org/domains/root/db/africa.html africa // agakhan : Fondation Aga Khan (Aga Khan Foundation) +// https://www.iana.org/domains/root/db/agakhan.html agakhan // agency : Binky Moon, LLC +// https://www.iana.org/domains/root/db/agency.html agency // aig : American International Group, Inc. +// https://www.iana.org/domains/root/db/aig.html aig // airbus : Airbus S.A.S. +// https://www.iana.org/domains/root/db/airbus.html airbus // airforce : Dog Beach, LLC +// https://www.iana.org/domains/root/db/airforce.html airforce // airtel : Bharti Airtel Limited +// https://www.iana.org/domains/root/db/airtel.html airtel // akdn : Fondation Aga Khan (Aga Khan Foundation) +// https://www.iana.org/domains/root/db/akdn.html akdn // alibaba : Alibaba Group Holding Limited +// https://www.iana.org/domains/root/db/alibaba.html alibaba // alipay : Alibaba Group Holding Limited +// https://www.iana.org/domains/root/db/alipay.html alipay // allfinanz : Allfinanz Deutsche Vermögensberatung Aktiengesellschaft +// https://www.iana.org/domains/root/db/allfinanz.html allfinanz // allstate : Allstate Fire and Casualty Insurance Company +// https://www.iana.org/domains/root/db/allstate.html allstate // ally : Ally Financial Inc. +// https://www.iana.org/domains/root/db/ally.html ally // alsace : Region Grand Est +// https://www.iana.org/domains/root/db/alsace.html alsace // alstom : ALSTOM +// https://www.iana.org/domains/root/db/alstom.html alstom // amazon : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/amazon.html amazon // americanexpress : American Express Travel Related Services Company, Inc. +// https://www.iana.org/domains/root/db/americanexpress.html americanexpress // americanfamily : AmFam, Inc. +// https://www.iana.org/domains/root/db/americanfamily.html americanfamily // amex : American Express Travel Related Services Company, Inc. +// https://www.iana.org/domains/root/db/amex.html amex // amfam : AmFam, Inc. +// https://www.iana.org/domains/root/db/amfam.html amfam // amica : Amica Mutual Insurance Company +// https://www.iana.org/domains/root/db/amica.html amica // amsterdam : Gemeente Amsterdam +// https://www.iana.org/domains/root/db/amsterdam.html amsterdam // analytics : Campus IP LLC +// https://www.iana.org/domains/root/db/analytics.html analytics // android : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/android.html android // anquan : Beijing Qihu Keji Co., Ltd. +// https://www.iana.org/domains/root/db/anquan.html anquan // anz : Australia and New Zealand Banking Group Limited +// https://www.iana.org/domains/root/db/anz.html anz // aol : Oath Inc. +// https://www.iana.org/domains/root/db/aol.html aol // apartments : Binky Moon, LLC +// https://www.iana.org/domains/root/db/apartments.html apartments // app : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/app.html app // apple : Apple Inc. +// https://www.iana.org/domains/root/db/apple.html apple // aquarelle : Aquarelle.com +// https://www.iana.org/domains/root/db/aquarelle.html aquarelle // arab : League of Arab States +// https://www.iana.org/domains/root/db/arab.html arab // aramco : Aramco Services Company +// https://www.iana.org/domains/root/db/aramco.html aramco // archi : Identity Digital Limited +// https://www.iana.org/domains/root/db/archi.html archi // army : Dog Beach, LLC +// https://www.iana.org/domains/root/db/army.html army // art : UK Creative Ideas Limited +// https://www.iana.org/domains/root/db/art.html art // arte : Association Relative à la Télévision Européenne G.E.I.E. +// https://www.iana.org/domains/root/db/arte.html arte // asda : Wal-Mart Stores, Inc. +// https://www.iana.org/domains/root/db/asda.html asda // associates : Binky Moon, LLC +// https://www.iana.org/domains/root/db/associates.html associates // athleta : The Gap, Inc. +// https://www.iana.org/domains/root/db/athleta.html athleta // attorney : Dog Beach, LLC +// https://www.iana.org/domains/root/db/attorney.html attorney // auction : Dog Beach, LLC +// https://www.iana.org/domains/root/db/auction.html auction // audi : AUDI Aktiengesellschaft +// https://www.iana.org/domains/root/db/audi.html audi // audible : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/audible.html audible // audio : XYZ.COM LLC +// https://www.iana.org/domains/root/db/audio.html audio // auspost : Australian Postal Corporation +// https://www.iana.org/domains/root/db/auspost.html auspost // author : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/author.html author // auto : XYZ.COM LLC +// https://www.iana.org/domains/root/db/auto.html auto // autos : XYZ.COM LLC +// https://www.iana.org/domains/root/db/autos.html autos // avianca : Avianca Inc. +// https://www.iana.org/domains/root/db/avianca.html avianca // aws : AWS Registry LLC +// https://www.iana.org/domains/root/db/aws.html aws // axa : AXA Group Operations SAS +// https://www.iana.org/domains/root/db/axa.html axa // azure : Microsoft Corporation +// https://www.iana.org/domains/root/db/azure.html azure // baby : XYZ.COM LLC +// https://www.iana.org/domains/root/db/baby.html baby // baidu : Baidu, Inc. +// https://www.iana.org/domains/root/db/baidu.html baidu // banamex : Citigroup Inc. +// https://www.iana.org/domains/root/db/banamex.html banamex // bananarepublic : The Gap, Inc. +// https://www.iana.org/domains/root/db/bananarepublic.html bananarepublic // band : Dog Beach, LLC +// https://www.iana.org/domains/root/db/band.html band // bank : fTLD Registry Services LLC +// https://www.iana.org/domains/root/db/bank.html bank // bar : Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable +// https://www.iana.org/domains/root/db/bar.html bar // barcelona : Municipi de Barcelona +// https://www.iana.org/domains/root/db/barcelona.html barcelona // barclaycard : Barclays Bank PLC +// https://www.iana.org/domains/root/db/barclaycard.html barclaycard // barclays : Barclays Bank PLC +// https://www.iana.org/domains/root/db/barclays.html barclays // barefoot : Gallo Vineyards, Inc. +// https://www.iana.org/domains/root/db/barefoot.html barefoot // bargains : Binky Moon, LLC +// https://www.iana.org/domains/root/db/bargains.html bargains // baseball : MLB Advanced Media DH, LLC +// https://www.iana.org/domains/root/db/baseball.html baseball // basketball : Fédération Internationale de Basketball (FIBA) +// https://www.iana.org/domains/root/db/basketball.html basketball // bauhaus : Werkhaus GmbH +// https://www.iana.org/domains/root/db/bauhaus.html bauhaus // bayern : Bayern Connect GmbH +// https://www.iana.org/domains/root/db/bayern.html bayern // bbc : British Broadcasting Corporation +// https://www.iana.org/domains/root/db/bbc.html bbc // bbt : BB&T Corporation +// https://www.iana.org/domains/root/db/bbt.html bbt // bbva : BANCO BILBAO VIZCAYA ARGENTARIA, S.A. +// https://www.iana.org/domains/root/db/bbva.html bbva // bcg : The Boston Consulting Group, Inc. +// https://www.iana.org/domains/root/db/bcg.html bcg // bcn : Municipi de Barcelona +// https://www.iana.org/domains/root/db/bcn.html bcn // beats : Beats Electronics, LLC +// https://www.iana.org/domains/root/db/beats.html beats // beauty : XYZ.COM LLC +// https://www.iana.org/domains/root/db/beauty.html beauty // beer : Registry Services, LLC +// https://www.iana.org/domains/root/db/beer.html beer // bentley : Bentley Motors Limited +// https://www.iana.org/domains/root/db/bentley.html bentley // berlin : dotBERLIN GmbH & Co. KG +// https://www.iana.org/domains/root/db/berlin.html berlin // best : BestTLD Pty Ltd +// https://www.iana.org/domains/root/db/best.html best // bestbuy : BBY Solutions, Inc. +// https://www.iana.org/domains/root/db/bestbuy.html bestbuy // bet : Identity Digital Limited +// https://www.iana.org/domains/root/db/bet.html bet // bharti : Bharti Enterprises (Holding) Private Limited +// https://www.iana.org/domains/root/db/bharti.html bharti // bible : American Bible Society +// https://www.iana.org/domains/root/db/bible.html bible // bid : dot Bid Limited +// https://www.iana.org/domains/root/db/bid.html bid // bike : Binky Moon, LLC +// https://www.iana.org/domains/root/db/bike.html bike // bing : Microsoft Corporation +// https://www.iana.org/domains/root/db/bing.html bing // bingo : Binky Moon, LLC +// https://www.iana.org/domains/root/db/bingo.html bingo // bio : Identity Digital Limited +// https://www.iana.org/domains/root/db/bio.html bio // black : Identity Digital Limited +// https://www.iana.org/domains/root/db/black.html black // blackfriday : Registry Services, LLC +// https://www.iana.org/domains/root/db/blackfriday.html blackfriday // blockbuster : Dish DBS Corporation +// https://www.iana.org/domains/root/db/blockbuster.html blockbuster // blog : Knock Knock WHOIS There, LLC +// https://www.iana.org/domains/root/db/blog.html blog // bloomberg : Bloomberg IP Holdings LLC +// https://www.iana.org/domains/root/db/bloomberg.html bloomberg // blue : Identity Digital Limited +// https://www.iana.org/domains/root/db/blue.html blue // bms : Bristol-Myers Squibb Company +// https://www.iana.org/domains/root/db/bms.html bms // bmw : Bayerische Motoren Werke Aktiengesellschaft +// https://www.iana.org/domains/root/db/bmw.html bmw // bnpparibas : BNP Paribas +// https://www.iana.org/domains/root/db/bnpparibas.html bnpparibas // boats : XYZ.COM LLC +// https://www.iana.org/domains/root/db/boats.html boats // boehringer : Boehringer Ingelheim International GmbH +// https://www.iana.org/domains/root/db/boehringer.html boehringer // bofa : Bank of America Corporation +// https://www.iana.org/domains/root/db/bofa.html bofa // bom : Núcleo de Informação e Coordenação do Ponto BR - NIC.br +// https://www.iana.org/domains/root/db/bom.html bom // bond : ShortDot SA +// https://www.iana.org/domains/root/db/bond.html bond // boo : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/boo.html boo // book : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/book.html book // booking : Booking.com B.V. +// https://www.iana.org/domains/root/db/booking.html booking // bosch : Robert Bosch GMBH +// https://www.iana.org/domains/root/db/bosch.html bosch // bostik : Bostik SA +// https://www.iana.org/domains/root/db/bostik.html bostik // boston : Registry Services, LLC +// https://www.iana.org/domains/root/db/boston.html boston // bot : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/bot.html bot // boutique : Binky Moon, LLC +// https://www.iana.org/domains/root/db/boutique.html boutique // box : Intercap Registry Inc. +// https://www.iana.org/domains/root/db/box.html box // bradesco : Banco Bradesco S.A. +// https://www.iana.org/domains/root/db/bradesco.html bradesco // bridgestone : Bridgestone Corporation +// https://www.iana.org/domains/root/db/bridgestone.html bridgestone // broadway : Celebrate Broadway, Inc. +// https://www.iana.org/domains/root/db/broadway.html broadway // broker : Dog Beach, LLC +// https://www.iana.org/domains/root/db/broker.html broker // brother : Brother Industries, Ltd. +// https://www.iana.org/domains/root/db/brother.html brother // brussels : DNS.be vzw +// https://www.iana.org/domains/root/db/brussels.html brussels // build : Plan Bee LLC +// https://www.iana.org/domains/root/db/build.html build // builders : Binky Moon, LLC +// https://www.iana.org/domains/root/db/builders.html builders // business : Binky Moon, LLC +// https://www.iana.org/domains/root/db/business.html business // buy : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/buy.html buy // buzz : DOTSTRATEGY CO. +// https://www.iana.org/domains/root/db/buzz.html buzz // bzh : Association www.bzh +// https://www.iana.org/domains/root/db/bzh.html bzh // cab : Binky Moon, LLC +// https://www.iana.org/domains/root/db/cab.html cab // cafe : Binky Moon, LLC +// https://www.iana.org/domains/root/db/cafe.html cafe // cal : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/cal.html cal // call : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/call.html call // calvinklein : PVH gTLD Holdings LLC +// https://www.iana.org/domains/root/db/calvinklein.html calvinklein // cam : Cam Connecting SARL +// https://www.iana.org/domains/root/db/cam.html cam // camera : Binky Moon, LLC +// https://www.iana.org/domains/root/db/camera.html camera // camp : Binky Moon, LLC +// https://www.iana.org/domains/root/db/camp.html camp // canon : Canon Inc. +// https://www.iana.org/domains/root/db/canon.html canon // capetown : ZA Central Registry NPC trading as ZA Central Registry +// https://www.iana.org/domains/root/db/capetown.html capetown // capital : Binky Moon, LLC +// https://www.iana.org/domains/root/db/capital.html capital // capitalone : Capital One Financial Corporation +// https://www.iana.org/domains/root/db/capitalone.html capitalone // car : XYZ.COM LLC +// https://www.iana.org/domains/root/db/car.html car // caravan : Caravan International, Inc. +// https://www.iana.org/domains/root/db/caravan.html caravan // cards : Binky Moon, LLC +// https://www.iana.org/domains/root/db/cards.html cards // care : Binky Moon, LLC +// https://www.iana.org/domains/root/db/care.html care // career : dotCareer LLC +// https://www.iana.org/domains/root/db/career.html career // careers : Binky Moon, LLC +// https://www.iana.org/domains/root/db/careers.html careers // cars : XYZ.COM LLC +// https://www.iana.org/domains/root/db/cars.html cars // casa : Registry Services, LLC +// https://www.iana.org/domains/root/db/casa.html casa // case : Digity, LLC +// https://www.iana.org/domains/root/db/case.html case // cash : Binky Moon, LLC +// https://www.iana.org/domains/root/db/cash.html cash // casino : Binky Moon, LLC +// https://www.iana.org/domains/root/db/casino.html casino // catering : Binky Moon, LLC +// https://www.iana.org/domains/root/db/catering.html catering // catholic : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +// https://www.iana.org/domains/root/db/catholic.html catholic // cba : COMMONWEALTH BANK OF AUSTRALIA +// https://www.iana.org/domains/root/db/cba.html cba // cbn : The Christian Broadcasting Network, Inc. +// https://www.iana.org/domains/root/db/cbn.html cbn // cbre : CBRE, Inc. +// https://www.iana.org/domains/root/db/cbre.html cbre // cbs : CBS Domains Inc. +// https://www.iana.org/domains/root/db/cbs.html cbs // center : Binky Moon, LLC +// https://www.iana.org/domains/root/db/center.html center // ceo : CEOTLD Pty Ltd +// https://www.iana.org/domains/root/db/ceo.html ceo // cern : European Organization for Nuclear Research ("CERN") +// https://www.iana.org/domains/root/db/cern.html cern // cfa : CFA Institute +// https://www.iana.org/domains/root/db/cfa.html cfa // cfd : ShortDot SA +// https://www.iana.org/domains/root/db/cfd.html cfd // chanel : Chanel International B.V. +// https://www.iana.org/domains/root/db/chanel.html chanel // channel : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/channel.html channel // charity : Public Interest Registry +// https://www.iana.org/domains/root/db/charity.html charity // chase : JPMorgan Chase Bank, National Association +// https://www.iana.org/domains/root/db/chase.html chase // chat : Binky Moon, LLC +// https://www.iana.org/domains/root/db/chat.html chat // cheap : Binky Moon, LLC +// https://www.iana.org/domains/root/db/cheap.html cheap // chintai : CHINTAI Corporation +// https://www.iana.org/domains/root/db/chintai.html chintai // christmas : XYZ.COM LLC +// https://www.iana.org/domains/root/db/christmas.html christmas // chrome : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/chrome.html chrome // church : Binky Moon, LLC +// https://www.iana.org/domains/root/db/church.html church // cipriani : Hotel Cipriani Srl +// https://www.iana.org/domains/root/db/cipriani.html cipriani // circle : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/circle.html circle // cisco : Cisco Technology, Inc. +// https://www.iana.org/domains/root/db/cisco.html cisco // citadel : Citadel Domain LLC +// https://www.iana.org/domains/root/db/citadel.html citadel // citi : Citigroup Inc. +// https://www.iana.org/domains/root/db/citi.html citi // citic : CITIC Group Corporation +// https://www.iana.org/domains/root/db/citic.html citic // city : Binky Moon, LLC +// https://www.iana.org/domains/root/db/city.html city // cityeats : Lifestyle Domain Holdings, Inc. +// https://www.iana.org/domains/root/db/cityeats.html cityeats // claims : Binky Moon, LLC +// https://www.iana.org/domains/root/db/claims.html claims // cleaning : Binky Moon, LLC +// https://www.iana.org/domains/root/db/cleaning.html cleaning // click : Internet Naming Company LLC +// https://www.iana.org/domains/root/db/click.html click // clinic : Binky Moon, LLC +// https://www.iana.org/domains/root/db/clinic.html clinic // clinique : The Estée Lauder Companies Inc. +// https://www.iana.org/domains/root/db/clinique.html clinique // clothing : Binky Moon, LLC +// https://www.iana.org/domains/root/db/clothing.html clothing // cloud : Aruba PEC S.p.A. +// https://www.iana.org/domains/root/db/cloud.html cloud // club : Registry Services, LLC +// https://www.iana.org/domains/root/db/club.html club // clubmed : Club Méditerranée S.A. +// https://www.iana.org/domains/root/db/clubmed.html clubmed // coach : Binky Moon, LLC +// https://www.iana.org/domains/root/db/coach.html coach // codes : Binky Moon, LLC +// https://www.iana.org/domains/root/db/codes.html codes // coffee : Binky Moon, LLC +// https://www.iana.org/domains/root/db/coffee.html coffee // college : XYZ.COM LLC +// https://www.iana.org/domains/root/db/college.html college // cologne : dotKoeln GmbH +// https://www.iana.org/domains/root/db/cologne.html cologne // comcast : Comcast IP Holdings I, LLC +// https://www.iana.org/domains/root/db/comcast.html comcast // commbank : COMMONWEALTH BANK OF AUSTRALIA +// https://www.iana.org/domains/root/db/commbank.html commbank // community : Binky Moon, LLC +// https://www.iana.org/domains/root/db/community.html community // company : Binky Moon, LLC +// https://www.iana.org/domains/root/db/company.html company // compare : Registry Services, LLC +// https://www.iana.org/domains/root/db/compare.html compare // computer : Binky Moon, LLC +// https://www.iana.org/domains/root/db/computer.html computer // comsec : VeriSign, Inc. +// https://www.iana.org/domains/root/db/comsec.html comsec // condos : Binky Moon, LLC +// https://www.iana.org/domains/root/db/condos.html condos // construction : Binky Moon, LLC +// https://www.iana.org/domains/root/db/construction.html construction // consulting : Dog Beach, LLC +// https://www.iana.org/domains/root/db/consulting.html consulting // contact : Dog Beach, LLC +// https://www.iana.org/domains/root/db/contact.html contact // contractors : Binky Moon, LLC +// https://www.iana.org/domains/root/db/contractors.html contractors // cooking : Registry Services, LLC +// https://www.iana.org/domains/root/db/cooking.html cooking // cool : Binky Moon, LLC +// https://www.iana.org/domains/root/db/cool.html cool // corsica : Collectivité de Corse +// https://www.iana.org/domains/root/db/corsica.html corsica // country : Internet Naming Company LLC +// https://www.iana.org/domains/root/db/country.html country // coupon : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/coupon.html coupon // coupons : Binky Moon, LLC +// https://www.iana.org/domains/root/db/coupons.html coupons // courses : Registry Services, LLC +// https://www.iana.org/domains/root/db/courses.html courses // cpa : American Institute of Certified Public Accountants +// https://www.iana.org/domains/root/db/cpa.html cpa // credit : Binky Moon, LLC +// https://www.iana.org/domains/root/db/credit.html credit // creditcard : Binky Moon, LLC +// https://www.iana.org/domains/root/db/creditcard.html creditcard // creditunion : DotCooperation LLC +// https://www.iana.org/domains/root/db/creditunion.html creditunion // cricket : dot Cricket Limited +// https://www.iana.org/domains/root/db/cricket.html cricket // crown : Crown Equipment Corporation +// https://www.iana.org/domains/root/db/crown.html crown // crs : Federated Co-operatives Limited +// https://www.iana.org/domains/root/db/crs.html crs // cruise : Viking River Cruises (Bermuda) Ltd. +// https://www.iana.org/domains/root/db/cruise.html cruise // cruises : Binky Moon, LLC +// https://www.iana.org/domains/root/db/cruises.html cruises // cuisinella : SCHMIDT GROUPE S.A.S. +// https://www.iana.org/domains/root/db/cuisinella.html cuisinella // cymru : Nominet UK +// https://www.iana.org/domains/root/db/cymru.html cymru // cyou : ShortDot SA +// https://www.iana.org/domains/root/db/cyou.html cyou // dabur : Dabur India Limited +// https://www.iana.org/domains/root/db/dabur.html dabur // dad : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/dad.html dad // dance : Dog Beach, LLC +// https://www.iana.org/domains/root/db/dance.html dance // data : Dish DBS Corporation +// https://www.iana.org/domains/root/db/data.html data // date : dot Date Limited +// https://www.iana.org/domains/root/db/date.html date // dating : Binky Moon, LLC +// https://www.iana.org/domains/root/db/dating.html dating // datsun : NISSAN MOTOR CO., LTD. +// https://www.iana.org/domains/root/db/datsun.html datsun // day : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/day.html day // dclk : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/dclk.html dclk // dds : Registry Services, LLC +// https://www.iana.org/domains/root/db/dds.html dds // deal : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/deal.html deal // dealer : Intercap Registry Inc. +// https://www.iana.org/domains/root/db/dealer.html dealer // deals : Binky Moon, LLC +// https://www.iana.org/domains/root/db/deals.html deals // degree : Dog Beach, LLC +// https://www.iana.org/domains/root/db/degree.html degree // delivery : Binky Moon, LLC +// https://www.iana.org/domains/root/db/delivery.html delivery // dell : Dell Inc. +// https://www.iana.org/domains/root/db/dell.html dell // deloitte : Deloitte Touche Tohmatsu +// https://www.iana.org/domains/root/db/deloitte.html deloitte // delta : Delta Air Lines, Inc. +// https://www.iana.org/domains/root/db/delta.html delta // democrat : Dog Beach, LLC +// https://www.iana.org/domains/root/db/democrat.html democrat // dental : Binky Moon, LLC +// https://www.iana.org/domains/root/db/dental.html dental // dentist : Dog Beach, LLC +// https://www.iana.org/domains/root/db/dentist.html dentist // desi : Desi Networks LLC +// https://www.iana.org/domains/root/db/desi.html desi // design : Registry Services, LLC +// https://www.iana.org/domains/root/db/design.html design // dev : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/dev.html dev // dhl : Deutsche Post AG +// https://www.iana.org/domains/root/db/dhl.html dhl // diamonds : Binky Moon, LLC +// https://www.iana.org/domains/root/db/diamonds.html diamonds // diet : XYZ.COM LLC +// https://www.iana.org/domains/root/db/diet.html diet // digital : Binky Moon, LLC +// https://www.iana.org/domains/root/db/digital.html digital // direct : Binky Moon, LLC +// https://www.iana.org/domains/root/db/direct.html direct // directory : Binky Moon, LLC +// https://www.iana.org/domains/root/db/directory.html directory // discount : Binky Moon, LLC +// https://www.iana.org/domains/root/db/discount.html discount // discover : Discover Financial Services +// https://www.iana.org/domains/root/db/discover.html discover // dish : Dish DBS Corporation +// https://www.iana.org/domains/root/db/dish.html dish // diy : Lifestyle Domain Holdings, Inc. +// https://www.iana.org/domains/root/db/diy.html diy // dnp : Dai Nippon Printing Co., Ltd. +// https://www.iana.org/domains/root/db/dnp.html dnp // docs : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/docs.html docs // doctor : Binky Moon, LLC +// https://www.iana.org/domains/root/db/doctor.html doctor // dog : Binky Moon, LLC +// https://www.iana.org/domains/root/db/dog.html dog // domains : Binky Moon, LLC +// https://www.iana.org/domains/root/db/domains.html domains // dot : Dish DBS Corporation +// https://www.iana.org/domains/root/db/dot.html dot // download : dot Support Limited +// https://www.iana.org/domains/root/db/download.html download // drive : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/drive.html drive // dtv : Dish DBS Corporation +// https://www.iana.org/domains/root/db/dtv.html dtv // dubai : Dubai Smart Government Department +// https://www.iana.org/domains/root/db/dubai.html dubai // dunlop : The Goodyear Tire & Rubber Company +// https://www.iana.org/domains/root/db/dunlop.html dunlop // dupont : DuPont Specialty Products USA, LLC +// https://www.iana.org/domains/root/db/dupont.html dupont // durban : ZA Central Registry NPC trading as ZA Central Registry +// https://www.iana.org/domains/root/db/durban.html durban // dvag : Deutsche Vermögensberatung Aktiengesellschaft DVAG +// https://www.iana.org/domains/root/db/dvag.html dvag // dvr : DISH Technologies L.L.C. +// https://www.iana.org/domains/root/db/dvr.html dvr // earth : Interlink Systems Innovation Institute K.K. +// https://www.iana.org/domains/root/db/earth.html earth // eat : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/eat.html eat // eco : Big Room Inc. +// https://www.iana.org/domains/root/db/eco.html eco // edeka : EDEKA Verband kaufmännischer Genossenschaften e.V. +// https://www.iana.org/domains/root/db/edeka.html edeka // education : Binky Moon, LLC +// https://www.iana.org/domains/root/db/education.html education // email : Binky Moon, LLC +// https://www.iana.org/domains/root/db/email.html email // emerck : Merck KGaA +// https://www.iana.org/domains/root/db/emerck.html emerck // energy : Binky Moon, LLC +// https://www.iana.org/domains/root/db/energy.html energy // engineer : Dog Beach, LLC +// https://www.iana.org/domains/root/db/engineer.html engineer // engineering : Binky Moon, LLC +// https://www.iana.org/domains/root/db/engineering.html engineering // enterprises : Binky Moon, LLC +// https://www.iana.org/domains/root/db/enterprises.html enterprises // epson : Seiko Epson Corporation +// https://www.iana.org/domains/root/db/epson.html epson // equipment : Binky Moon, LLC +// https://www.iana.org/domains/root/db/equipment.html equipment // ericsson : Telefonaktiebolaget L M Ericsson +// https://www.iana.org/domains/root/db/ericsson.html ericsson // erni : ERNI Group Holding AG +// https://www.iana.org/domains/root/db/erni.html erni // esq : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/esq.html esq // estate : Binky Moon, LLC +// https://www.iana.org/domains/root/db/estate.html estate // etisalat : Emirates Telecommunications Corporation (trading as Etisalat) +// https://www.iana.org/domains/root/db/etisalat.html etisalat // eurovision : European Broadcasting Union (EBU) +// https://www.iana.org/domains/root/db/eurovision.html eurovision // eus : Puntueus Fundazioa +// https://www.iana.org/domains/root/db/eus.html eus // events : Binky Moon, LLC +// https://www.iana.org/domains/root/db/events.html events // exchange : Binky Moon, LLC +// https://www.iana.org/domains/root/db/exchange.html exchange // expert : Binky Moon, LLC +// https://www.iana.org/domains/root/db/expert.html expert // exposed : Binky Moon, LLC +// https://www.iana.org/domains/root/db/exposed.html exposed // express : Binky Moon, LLC +// https://www.iana.org/domains/root/db/express.html express // extraspace : Extra Space Storage LLC +// https://www.iana.org/domains/root/db/extraspace.html extraspace // fage : Fage International S.A. +// https://www.iana.org/domains/root/db/fage.html fage // fail : Binky Moon, LLC +// https://www.iana.org/domains/root/db/fail.html fail // fairwinds : FairWinds Partners, LLC +// https://www.iana.org/domains/root/db/fairwinds.html fairwinds // faith : dot Faith Limited +// https://www.iana.org/domains/root/db/faith.html faith // family : Dog Beach, LLC +// https://www.iana.org/domains/root/db/family.html family // fan : Dog Beach, LLC +// https://www.iana.org/domains/root/db/fan.html fan // fans : ZDNS International Limited +// https://www.iana.org/domains/root/db/fans.html fans // farm : Binky Moon, LLC +// https://www.iana.org/domains/root/db/farm.html farm // farmers : Farmers Insurance Exchange +// https://www.iana.org/domains/root/db/farmers.html farmers // fashion : Registry Services, LLC +// https://www.iana.org/domains/root/db/fashion.html fashion // fast : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/fast.html fast // fedex : Federal Express Corporation +// https://www.iana.org/domains/root/db/fedex.html fedex // feedback : Top Level Spectrum, Inc. +// https://www.iana.org/domains/root/db/feedback.html feedback // ferrari : Fiat Chrysler Automobiles N.V. +// https://www.iana.org/domains/root/db/ferrari.html ferrari // ferrero : Ferrero Trading Lux S.A. +// https://www.iana.org/domains/root/db/ferrero.html ferrero // fidelity : Fidelity Brokerage Services LLC +// https://www.iana.org/domains/root/db/fidelity.html fidelity // fido : Rogers Communications Canada Inc. +// https://www.iana.org/domains/root/db/fido.html fido // film : Motion Picture Domain Registry Pty Ltd +// https://www.iana.org/domains/root/db/film.html film // final : Núcleo de Informação e Coordenação do Ponto BR - NIC.br +// https://www.iana.org/domains/root/db/final.html final // finance : Binky Moon, LLC +// https://www.iana.org/domains/root/db/finance.html finance // financial : Binky Moon, LLC +// https://www.iana.org/domains/root/db/financial.html financial // fire : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/fire.html fire // firestone : Bridgestone Licensing Services, Inc +// https://www.iana.org/domains/root/db/firestone.html firestone // firmdale : Firmdale Holdings Limited +// https://www.iana.org/domains/root/db/firmdale.html firmdale // fish : Binky Moon, LLC +// https://www.iana.org/domains/root/db/fish.html fish // fishing : Registry Services, LLC +// https://www.iana.org/domains/root/db/fishing.html fishing // fit : Registry Services, LLC +// https://www.iana.org/domains/root/db/fit.html fit // fitness : Binky Moon, LLC +// https://www.iana.org/domains/root/db/fitness.html fitness // flickr : Flickr, Inc. +// https://www.iana.org/domains/root/db/flickr.html flickr // flights : Binky Moon, LLC +// https://www.iana.org/domains/root/db/flights.html flights // flir : FLIR Systems, Inc. +// https://www.iana.org/domains/root/db/flir.html flir // florist : Binky Moon, LLC +// https://www.iana.org/domains/root/db/florist.html florist // flowers : XYZ.COM LLC +// https://www.iana.org/domains/root/db/flowers.html flowers // fly : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/fly.html fly // foo : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/foo.html foo // food : Lifestyle Domain Holdings, Inc. +// https://www.iana.org/domains/root/db/food.html food // football : Binky Moon, LLC +// https://www.iana.org/domains/root/db/football.html football // ford : Ford Motor Company +// https://www.iana.org/domains/root/db/ford.html ford // forex : Dog Beach, LLC +// https://www.iana.org/domains/root/db/forex.html forex // forsale : Dog Beach, LLC +// https://www.iana.org/domains/root/db/forsale.html forsale // forum : Fegistry, LLC +// https://www.iana.org/domains/root/db/forum.html forum // foundation : Public Interest Registry +// https://www.iana.org/domains/root/db/foundation.html foundation // fox : FOX Registry, LLC +// https://www.iana.org/domains/root/db/fox.html fox // free : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/free.html free // fresenius : Fresenius Immobilien-Verwaltungs-GmbH +// https://www.iana.org/domains/root/db/fresenius.html fresenius // frl : FRLregistry B.V. +// https://www.iana.org/domains/root/db/frl.html frl // frogans : OP3FT +// https://www.iana.org/domains/root/db/frogans.html frogans // frontdoor : Lifestyle Domain Holdings, Inc. +// https://www.iana.org/domains/root/db/frontdoor.html frontdoor // frontier : Frontier Communications Corporation +// https://www.iana.org/domains/root/db/frontier.html frontier // ftr : Frontier Communications Corporation +// https://www.iana.org/domains/root/db/ftr.html ftr // fujitsu : Fujitsu Limited +// https://www.iana.org/domains/root/db/fujitsu.html fujitsu // fun : Radix FZC +// https://www.iana.org/domains/root/db/fun.html fun // fund : Binky Moon, LLC +// https://www.iana.org/domains/root/db/fund.html fund // furniture : Binky Moon, LLC +// https://www.iana.org/domains/root/db/furniture.html furniture // futbol : Dog Beach, LLC +// https://www.iana.org/domains/root/db/futbol.html futbol // fyi : Binky Moon, LLC +// https://www.iana.org/domains/root/db/fyi.html fyi // gal : Asociación puntoGAL +// https://www.iana.org/domains/root/db/gal.html gal // gallery : Binky Moon, LLC +// https://www.iana.org/domains/root/db/gallery.html gallery // gallo : Gallo Vineyards, Inc. +// https://www.iana.org/domains/root/db/gallo.html gallo // gallup : Gallup, Inc. +// https://www.iana.org/domains/root/db/gallup.html gallup // game : XYZ.COM LLC +// https://www.iana.org/domains/root/db/game.html game // games : Dog Beach, LLC +// https://www.iana.org/domains/root/db/games.html games // gap : The Gap, Inc. +// https://www.iana.org/domains/root/db/gap.html gap // garden : Registry Services, LLC +// https://www.iana.org/domains/root/db/garden.html garden // gay : Registry Services, LLC +// https://www.iana.org/domains/root/db/gay.html gay // gbiz : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/gbiz.html gbiz // gdn : Joint Stock Company "Navigation-information systems" +// https://www.iana.org/domains/root/db/gdn.html gdn // gea : GEA Group Aktiengesellschaft +// https://www.iana.org/domains/root/db/gea.html gea // gent : Easyhost BV +// https://www.iana.org/domains/root/db/gent.html gent // genting : Resorts World Inc Pte. Ltd. +// https://www.iana.org/domains/root/db/genting.html genting // george : Wal-Mart Stores, Inc. +// https://www.iana.org/domains/root/db/george.html george // ggee : GMO Internet, Inc. +// https://www.iana.org/domains/root/db/ggee.html ggee // gift : DotGift, LLC +// https://www.iana.org/domains/root/db/gift.html gift // gifts : Binky Moon, LLC +// https://www.iana.org/domains/root/db/gifts.html gifts // gives : Public Interest Registry +// https://www.iana.org/domains/root/db/gives.html gives // giving : Public Interest Registry +// https://www.iana.org/domains/root/db/giving.html giving // glass : Binky Moon, LLC +// https://www.iana.org/domains/root/db/glass.html glass // gle : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/gle.html gle // global : Identity Digital Limited +// https://www.iana.org/domains/root/db/global.html global // globo : Globo Comunicação e Participações S.A +// https://www.iana.org/domains/root/db/globo.html globo // gmail : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/gmail.html gmail // gmbh : Binky Moon, LLC +// https://www.iana.org/domains/root/db/gmbh.html gmbh // gmo : GMO Internet, Inc. +// https://www.iana.org/domains/root/db/gmo.html gmo // gmx : 1&1 Mail & Media GmbH +// https://www.iana.org/domains/root/db/gmx.html gmx // godaddy : Go Daddy East, LLC +// https://www.iana.org/domains/root/db/godaddy.html godaddy // gold : Binky Moon, LLC +// https://www.iana.org/domains/root/db/gold.html gold // goldpoint : YODOBASHI CAMERA CO.,LTD. +// https://www.iana.org/domains/root/db/goldpoint.html goldpoint // golf : Binky Moon, LLC +// https://www.iana.org/domains/root/db/golf.html golf // goo : NTT Resonant Inc. +// https://www.iana.org/domains/root/db/goo.html goo // goodyear : The Goodyear Tire & Rubber Company +// https://www.iana.org/domains/root/db/goodyear.html goodyear // goog : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/goog.html goog // google : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/google.html google // gop : Republican State Leadership Committee, Inc. +// https://www.iana.org/domains/root/db/gop.html gop // got : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/got.html got // grainger : Grainger Registry Services, LLC +// https://www.iana.org/domains/root/db/grainger.html grainger // graphics : Binky Moon, LLC +// https://www.iana.org/domains/root/db/graphics.html graphics // gratis : Binky Moon, LLC +// https://www.iana.org/domains/root/db/gratis.html gratis // green : Identity Digital Limited +// https://www.iana.org/domains/root/db/green.html green // gripe : Binky Moon, LLC +// https://www.iana.org/domains/root/db/gripe.html gripe // grocery : Wal-Mart Stores, Inc. +// https://www.iana.org/domains/root/db/grocery.html grocery // group : Binky Moon, LLC +// https://www.iana.org/domains/root/db/group.html group // guardian : The Guardian Life Insurance Company of America +// https://www.iana.org/domains/root/db/guardian.html guardian // gucci : Guccio Gucci S.p.a. +// https://www.iana.org/domains/root/db/gucci.html gucci // guge : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/guge.html guge // guide : Binky Moon, LLC +// https://www.iana.org/domains/root/db/guide.html guide // guitars : XYZ.COM LLC +// https://www.iana.org/domains/root/db/guitars.html guitars // guru : Binky Moon, LLC +// https://www.iana.org/domains/root/db/guru.html guru // hair : XYZ.COM LLC +// https://www.iana.org/domains/root/db/hair.html hair // hamburg : Hamburg Top-Level-Domain GmbH +// https://www.iana.org/domains/root/db/hamburg.html hamburg // hangout : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/hangout.html hangout // haus : Dog Beach, LLC +// https://www.iana.org/domains/root/db/haus.html haus // hbo : HBO Registry Services, Inc. +// https://www.iana.org/domains/root/db/hbo.html hbo // hdfc : HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED +// https://www.iana.org/domains/root/db/hdfc.html hdfc // hdfcbank : HDFC Bank Limited +// https://www.iana.org/domains/root/db/hdfcbank.html hdfcbank // health : Registry Services, LLC +// https://www.iana.org/domains/root/db/health.html health // healthcare : Binky Moon, LLC +// https://www.iana.org/domains/root/db/healthcare.html healthcare // help : Innovation service Limited +// https://www.iana.org/domains/root/db/help.html help // helsinki : City of Helsinki +// https://www.iana.org/domains/root/db/helsinki.html helsinki // here : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/here.html here // hermes : HERMES INTERNATIONAL +// https://www.iana.org/domains/root/db/hermes.html hermes // hiphop : Dot Hip Hop, LLC +// https://www.iana.org/domains/root/db/hiphop.html hiphop // hisamitsu : Hisamitsu Pharmaceutical Co.,Inc. +// https://www.iana.org/domains/root/db/hisamitsu.html hisamitsu // hitachi : Hitachi, Ltd. +// https://www.iana.org/domains/root/db/hitachi.html hitachi // hiv : Internet Naming Company LLC +// https://www.iana.org/domains/root/db/hiv.html hiv // hkt : PCCW-HKT DataCom Services Limited +// https://www.iana.org/domains/root/db/hkt.html hkt // hockey : Binky Moon, LLC +// https://www.iana.org/domains/root/db/hockey.html hockey // holdings : Binky Moon, LLC +// https://www.iana.org/domains/root/db/holdings.html holdings // holiday : Binky Moon, LLC +// https://www.iana.org/domains/root/db/holiday.html holiday // homedepot : Home Depot Product Authority, LLC +// https://www.iana.org/domains/root/db/homedepot.html homedepot // homegoods : The TJX Companies, Inc. +// https://www.iana.org/domains/root/db/homegoods.html homegoods // homes : XYZ.COM LLC +// https://www.iana.org/domains/root/db/homes.html homes // homesense : The TJX Companies, Inc. +// https://www.iana.org/domains/root/db/homesense.html homesense // honda : Honda Motor Co., Ltd. +// https://www.iana.org/domains/root/db/honda.html honda // horse : Registry Services, LLC +// https://www.iana.org/domains/root/db/horse.html horse // hospital : Binky Moon, LLC +// https://www.iana.org/domains/root/db/hospital.html hospital // host : Radix FZC +// https://www.iana.org/domains/root/db/host.html host // hosting : XYZ.COM LLC +// https://www.iana.org/domains/root/db/hosting.html hosting // hot : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/hot.html hot // hotels : Booking.com B.V. +// https://www.iana.org/domains/root/db/hotels.html hotels // hotmail : Microsoft Corporation +// https://www.iana.org/domains/root/db/hotmail.html hotmail // house : Binky Moon, LLC +// https://www.iana.org/domains/root/db/house.html house // how : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/how.html how // hsbc : HSBC Global Services (UK) Limited +// https://www.iana.org/domains/root/db/hsbc.html hsbc // hughes : Hughes Satellite Systems Corporation +// https://www.iana.org/domains/root/db/hughes.html hughes // hyatt : Hyatt GTLD, L.L.C. +// https://www.iana.org/domains/root/db/hyatt.html hyatt // hyundai : Hyundai Motor Company +// https://www.iana.org/domains/root/db/hyundai.html hyundai // ibm : International Business Machines Corporation +// https://www.iana.org/domains/root/db/ibm.html ibm // icbc : Industrial and Commercial Bank of China Limited +// https://www.iana.org/domains/root/db/icbc.html icbc // ice : IntercontinentalExchange, Inc. +// https://www.iana.org/domains/root/db/ice.html ice // icu : ShortDot SA +// https://www.iana.org/domains/root/db/icu.html icu // ieee : IEEE Global LLC +// https://www.iana.org/domains/root/db/ieee.html ieee // ifm : ifm electronic gmbh +// https://www.iana.org/domains/root/db/ifm.html ifm // ikano : Ikano S.A. +// https://www.iana.org/domains/root/db/ikano.html ikano // imamat : Fondation Aga Khan (Aga Khan Foundation) +// https://www.iana.org/domains/root/db/imamat.html imamat // imdb : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/imdb.html imdb // immo : Binky Moon, LLC +// https://www.iana.org/domains/root/db/immo.html immo // immobilien : Dog Beach, LLC +// https://www.iana.org/domains/root/db/immobilien.html immobilien // inc : Intercap Registry Inc. +// https://www.iana.org/domains/root/db/inc.html inc // industries : Binky Moon, LLC +// https://www.iana.org/domains/root/db/industries.html industries // infiniti : NISSAN MOTOR CO., LTD. +// https://www.iana.org/domains/root/db/infiniti.html infiniti // ing : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/ing.html ing // ink : Registry Services, LLC +// https://www.iana.org/domains/root/db/ink.html ink // institute : Binky Moon, LLC +// https://www.iana.org/domains/root/db/institute.html institute // insurance : fTLD Registry Services LLC +// https://www.iana.org/domains/root/db/insurance.html insurance // insure : Binky Moon, LLC +// https://www.iana.org/domains/root/db/insure.html insure // international : Binky Moon, LLC +// https://www.iana.org/domains/root/db/international.html international // intuit : Intuit Administrative Services, Inc. +// https://www.iana.org/domains/root/db/intuit.html intuit // investments : Binky Moon, LLC +// https://www.iana.org/domains/root/db/investments.html investments // ipiranga : Ipiranga Produtos de Petroleo S.A. +// https://www.iana.org/domains/root/db/ipiranga.html ipiranga // irish : Binky Moon, LLC +// https://www.iana.org/domains/root/db/irish.html irish // ismaili : Fondation Aga Khan (Aga Khan Foundation) +// https://www.iana.org/domains/root/db/ismaili.html ismaili // ist : Istanbul Metropolitan Municipality +// https://www.iana.org/domains/root/db/ist.html ist // istanbul : Istanbul Metropolitan Municipality +// https://www.iana.org/domains/root/db/istanbul.html istanbul // itau : Itau Unibanco Holding S.A. +// https://www.iana.org/domains/root/db/itau.html itau // itv : ITV Services Limited +// https://www.iana.org/domains/root/db/itv.html itv // jaguar : Jaguar Land Rover Ltd +// https://www.iana.org/domains/root/db/jaguar.html jaguar // java : Oracle Corporation +// https://www.iana.org/domains/root/db/java.html java // jcb : JCB Co., Ltd. +// https://www.iana.org/domains/root/db/jcb.html jcb // jeep : FCA US LLC. +// https://www.iana.org/domains/root/db/jeep.html jeep // jetzt : Binky Moon, LLC +// https://www.iana.org/domains/root/db/jetzt.html jetzt // jewelry : Binky Moon, LLC +// https://www.iana.org/domains/root/db/jewelry.html jewelry // jio : Reliance Industries Limited +// https://www.iana.org/domains/root/db/jio.html jio // jll : Jones Lang LaSalle Incorporated +// https://www.iana.org/domains/root/db/jll.html jll // jmp : Matrix IP LLC +// https://www.iana.org/domains/root/db/jmp.html jmp // jnj : Johnson & Johnson Services, Inc. +// https://www.iana.org/domains/root/db/jnj.html jnj // joburg : ZA Central Registry NPC trading as ZA Central Registry +// https://www.iana.org/domains/root/db/joburg.html joburg // jot : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/jot.html jot // joy : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/joy.html joy // jpmorgan : JPMorgan Chase Bank, National Association +// https://www.iana.org/domains/root/db/jpmorgan.html jpmorgan // jprs : Japan Registry Services Co., Ltd. +// https://www.iana.org/domains/root/db/jprs.html jprs // juegos : Internet Naming Company LLC +// https://www.iana.org/domains/root/db/juegos.html juegos // juniper : JUNIPER NETWORKS, INC. +// https://www.iana.org/domains/root/db/juniper.html juniper // kaufen : Dog Beach, LLC +// https://www.iana.org/domains/root/db/kaufen.html kaufen // kddi : KDDI CORPORATION +// https://www.iana.org/domains/root/db/kddi.html kddi // kerryhotels : Kerry Trading Co. Limited +// https://www.iana.org/domains/root/db/kerryhotels.html kerryhotels // kerrylogistics : Kerry Trading Co. Limited +// https://www.iana.org/domains/root/db/kerrylogistics.html kerrylogistics // kerryproperties : Kerry Trading Co. Limited +// https://www.iana.org/domains/root/db/kerryproperties.html kerryproperties // kfh : Kuwait Finance House +// https://www.iana.org/domains/root/db/kfh.html kfh // kia : KIA MOTORS CORPORATION +// https://www.iana.org/domains/root/db/kia.html kia // kids : DotKids Foundation Limited +// https://www.iana.org/domains/root/db/kids.html kids // kim : Identity Digital Limited +// https://www.iana.org/domains/root/db/kim.html kim // kinder : Ferrero Trading Lux S.A. +// https://www.iana.org/domains/root/db/kinder.html kinder // kindle : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/kindle.html kindle // kitchen : Binky Moon, LLC +// https://www.iana.org/domains/root/db/kitchen.html kitchen // kiwi : DOT KIWI LIMITED +// https://www.iana.org/domains/root/db/kiwi.html kiwi // koeln : dotKoeln GmbH +// https://www.iana.org/domains/root/db/koeln.html koeln // komatsu : Komatsu Ltd. +// https://www.iana.org/domains/root/db/komatsu.html komatsu // kosher : Kosher Marketing Assets LLC +// https://www.iana.org/domains/root/db/kosher.html kosher // kpmg : KPMG International Cooperative (KPMG International Genossenschaft) +// https://www.iana.org/domains/root/db/kpmg.html kpmg // kpn : Koninklijke KPN N.V. +// https://www.iana.org/domains/root/db/kpn.html kpn // krd : KRG Department of Information Technology +// https://www.iana.org/domains/root/db/krd.html krd // kred : KredTLD Pty Ltd +// https://www.iana.org/domains/root/db/kred.html kred // kuokgroup : Kerry Trading Co. Limited +// https://www.iana.org/domains/root/db/kuokgroup.html kuokgroup // kyoto : Academic Institution: Kyoto Jyoho Gakuen +// https://www.iana.org/domains/root/db/kyoto.html kyoto // lacaixa : Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa” +// https://www.iana.org/domains/root/db/lacaixa.html lacaixa // lamborghini : Automobili Lamborghini S.p.A. +// https://www.iana.org/domains/root/db/lamborghini.html lamborghini // lamer : The Estée Lauder Companies Inc. +// https://www.iana.org/domains/root/db/lamer.html lamer // lancaster : LANCASTER +// https://www.iana.org/domains/root/db/lancaster.html lancaster // land : Binky Moon, LLC +// https://www.iana.org/domains/root/db/land.html land // landrover : Jaguar Land Rover Ltd +// https://www.iana.org/domains/root/db/landrover.html landrover // lanxess : LANXESS Corporation +// https://www.iana.org/domains/root/db/lanxess.html lanxess // lasalle : Jones Lang LaSalle Incorporated +// https://www.iana.org/domains/root/db/lasalle.html lasalle // lat : XYZ.COM LLC +// https://www.iana.org/domains/root/db/lat.html lat // latino : Dish DBS Corporation +// https://www.iana.org/domains/root/db/latino.html latino // latrobe : La Trobe University +// https://www.iana.org/domains/root/db/latrobe.html latrobe // law : Registry Services, LLC +// https://www.iana.org/domains/root/db/law.html law // lawyer : Dog Beach, LLC +// https://www.iana.org/domains/root/db/lawyer.html lawyer // lds : IRI Domain Management, LLC +// https://www.iana.org/domains/root/db/lds.html lds // lease : Binky Moon, LLC +// https://www.iana.org/domains/root/db/lease.html lease // leclerc : A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc +// https://www.iana.org/domains/root/db/leclerc.html leclerc // lefrak : LeFrak Organization, Inc. +// https://www.iana.org/domains/root/db/lefrak.html lefrak // legal : Binky Moon, LLC +// https://www.iana.org/domains/root/db/legal.html legal // lego : LEGO Juris A/S +// https://www.iana.org/domains/root/db/lego.html lego // lexus : TOYOTA MOTOR CORPORATION +// https://www.iana.org/domains/root/db/lexus.html lexus // lgbt : Identity Digital Limited +// https://www.iana.org/domains/root/db/lgbt.html lgbt // lidl : Schwarz Domains und Services GmbH & Co. KG +// https://www.iana.org/domains/root/db/lidl.html lidl // life : Binky Moon, LLC +// https://www.iana.org/domains/root/db/life.html life // lifeinsurance : American Council of Life Insurers +// https://www.iana.org/domains/root/db/lifeinsurance.html lifeinsurance // lifestyle : Lifestyle Domain Holdings, Inc. +// https://www.iana.org/domains/root/db/lifestyle.html lifestyle // lighting : Binky Moon, LLC +// https://www.iana.org/domains/root/db/lighting.html lighting // like : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/like.html like // lilly : Eli Lilly and Company +// https://www.iana.org/domains/root/db/lilly.html lilly // limited : Binky Moon, LLC +// https://www.iana.org/domains/root/db/limited.html limited // limo : Binky Moon, LLC +// https://www.iana.org/domains/root/db/limo.html limo // lincoln : Ford Motor Company +// https://www.iana.org/domains/root/db/lincoln.html lincoln // link : Nova Registry Ltd +// https://www.iana.org/domains/root/db/link.html link // lipsy : Lipsy Ltd +// https://www.iana.org/domains/root/db/lipsy.html lipsy // live : Dog Beach, LLC +// https://www.iana.org/domains/root/db/live.html live // living : Lifestyle Domain Holdings, Inc. +// https://www.iana.org/domains/root/db/living.html living // llc : Identity Digital Limited +// https://www.iana.org/domains/root/db/llc.html llc // llp : Intercap Registry Inc. +// https://www.iana.org/domains/root/db/llp.html llp // loan : dot Loan Limited +// https://www.iana.org/domains/root/db/loan.html loan // loans : Binky Moon, LLC +// https://www.iana.org/domains/root/db/loans.html loans // locker : Dish DBS Corporation +// https://www.iana.org/domains/root/db/locker.html locker // locus : Locus Analytics LLC +// https://www.iana.org/domains/root/db/locus.html locus // lol : XYZ.COM LLC +// https://www.iana.org/domains/root/db/lol.html lol // london : Dot London Domains Limited +// https://www.iana.org/domains/root/db/london.html london // lotte : Lotte Holdings Co., Ltd. +// https://www.iana.org/domains/root/db/lotte.html lotte // lotto : Identity Digital Limited +// https://www.iana.org/domains/root/db/lotto.html lotto // love : Merchant Law Group LLP +// https://www.iana.org/domains/root/db/love.html love // lpl : LPL Holdings, Inc. +// https://www.iana.org/domains/root/db/lpl.html lpl // lplfinancial : LPL Holdings, Inc. +// https://www.iana.org/domains/root/db/lplfinancial.html lplfinancial // ltd : Binky Moon, LLC +// https://www.iana.org/domains/root/db/ltd.html ltd // ltda : InterNetX, Corp +// https://www.iana.org/domains/root/db/ltda.html ltda // lundbeck : H. Lundbeck A/S +// https://www.iana.org/domains/root/db/lundbeck.html lundbeck // luxe : Registry Services, LLC +// https://www.iana.org/domains/root/db/luxe.html luxe // luxury : Luxury Partners, LLC +// https://www.iana.org/domains/root/db/luxury.html luxury // madrid : Comunidad de Madrid +// https://www.iana.org/domains/root/db/madrid.html madrid // maif : Mutuelle Assurance Instituteur France (MAIF) +// https://www.iana.org/domains/root/db/maif.html maif // maison : Binky Moon, LLC +// https://www.iana.org/domains/root/db/maison.html maison // makeup : XYZ.COM LLC +// https://www.iana.org/domains/root/db/makeup.html makeup // man : MAN SE +// https://www.iana.org/domains/root/db/man.html man // management : Binky Moon, LLC +// https://www.iana.org/domains/root/db/management.html management // mango : PUNTO FA S.L. +// https://www.iana.org/domains/root/db/mango.html mango // map : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/map.html map // market : Dog Beach, LLC +// https://www.iana.org/domains/root/db/market.html market // marketing : Binky Moon, LLC +// https://www.iana.org/domains/root/db/marketing.html marketing // markets : Dog Beach, LLC +// https://www.iana.org/domains/root/db/markets.html markets // marriott : Marriott Worldwide Corporation +// https://www.iana.org/domains/root/db/marriott.html marriott // marshalls : The TJX Companies, Inc. +// https://www.iana.org/domains/root/db/marshalls.html marshalls // mattel : Mattel Sites, Inc. +// https://www.iana.org/domains/root/db/mattel.html mattel // mba : Binky Moon, LLC +// https://www.iana.org/domains/root/db/mba.html mba // mckinsey : McKinsey Holdings, Inc. +// https://www.iana.org/domains/root/db/mckinsey.html mckinsey // med : Medistry LLC +// https://www.iana.org/domains/root/db/med.html med // media : Binky Moon, LLC +// https://www.iana.org/domains/root/db/media.html media // meet : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/meet.html meet // melbourne : The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation +// https://www.iana.org/domains/root/db/melbourne.html melbourne // meme : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/meme.html meme // memorial : Dog Beach, LLC +// https://www.iana.org/domains/root/db/memorial.html memorial // men : Exclusive Registry Limited +// https://www.iana.org/domains/root/db/men.html men // menu : Dot Menu Registry, LLC +// https://www.iana.org/domains/root/db/menu.html menu // merckmsd : MSD Registry Holdings, Inc. +// https://www.iana.org/domains/root/db/merckmsd.html merckmsd // miami : Registry Services, LLC +// https://www.iana.org/domains/root/db/miami.html miami // microsoft : Microsoft Corporation +// https://www.iana.org/domains/root/db/microsoft.html microsoft // mini : Bayerische Motoren Werke Aktiengesellschaft +// https://www.iana.org/domains/root/db/mini.html mini // mint : Intuit Administrative Services, Inc. +// https://www.iana.org/domains/root/db/mint.html mint // mit : Massachusetts Institute of Technology +// https://www.iana.org/domains/root/db/mit.html mit // mitsubishi : Mitsubishi Corporation +// https://www.iana.org/domains/root/db/mitsubishi.html mitsubishi // mlb : MLB Advanced Media DH, LLC +// https://www.iana.org/domains/root/db/mlb.html mlb // mls : The Canadian Real Estate Association +// https://www.iana.org/domains/root/db/mls.html mls // mma : MMA IARD +// https://www.iana.org/domains/root/db/mma.html mma // mobile : Dish DBS Corporation +// https://www.iana.org/domains/root/db/mobile.html mobile // moda : Dog Beach, LLC +// https://www.iana.org/domains/root/db/moda.html moda // moe : Interlink Systems Innovation Institute K.K. +// https://www.iana.org/domains/root/db/moe.html moe // moi : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/moi.html moi // mom : XYZ.COM LLC +// https://www.iana.org/domains/root/db/mom.html mom // monash : Monash University +// https://www.iana.org/domains/root/db/monash.html monash // money : Binky Moon, LLC +// https://www.iana.org/domains/root/db/money.html money // monster : XYZ.COM LLC +// https://www.iana.org/domains/root/db/monster.html monster // mormon : IRI Domain Management, LLC +// https://www.iana.org/domains/root/db/mormon.html mormon // mortgage : Dog Beach, LLC +// https://www.iana.org/domains/root/db/mortgage.html mortgage // moscow : Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) +// https://www.iana.org/domains/root/db/moscow.html moscow // moto : Motorola Trademark Holdings, LLC +// https://www.iana.org/domains/root/db/moto.html moto // motorcycles : XYZ.COM LLC +// https://www.iana.org/domains/root/db/motorcycles.html motorcycles // mov : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/mov.html mov // movie : Binky Moon, LLC +// https://www.iana.org/domains/root/db/movie.html movie // msd : MSD Registry Holdings, Inc. +// https://www.iana.org/domains/root/db/msd.html msd // mtn : MTN Dubai Limited +// https://www.iana.org/domains/root/db/mtn.html mtn // mtr : MTR Corporation Limited +// https://www.iana.org/domains/root/db/mtr.html mtr // music : DotMusic Limited +// https://www.iana.org/domains/root/db/music.html music // nab : National Australia Bank Limited +// https://www.iana.org/domains/root/db/nab.html nab // nagoya : GMO Registry, Inc. +// https://www.iana.org/domains/root/db/nagoya.html nagoya // natura : NATURA COSMÉTICOS S.A. +// https://www.iana.org/domains/root/db/natura.html natura // navy : Dog Beach, LLC +// https://www.iana.org/domains/root/db/navy.html navy // nba : NBA REGISTRY, LLC +// https://www.iana.org/domains/root/db/nba.html nba // nec : NEC Corporation +// https://www.iana.org/domains/root/db/nec.html nec // netbank : COMMONWEALTH BANK OF AUSTRALIA +// https://www.iana.org/domains/root/db/netbank.html netbank // netflix : Netflix, Inc. +// https://www.iana.org/domains/root/db/netflix.html netflix // network : Binky Moon, LLC +// https://www.iana.org/domains/root/db/network.html network // neustar : NeuStar, Inc. +// https://www.iana.org/domains/root/db/neustar.html neustar // new : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/new.html new // news : Dog Beach, LLC +// https://www.iana.org/domains/root/db/news.html news // next : Next plc +// https://www.iana.org/domains/root/db/next.html next // nextdirect : Next plc +// https://www.iana.org/domains/root/db/nextdirect.html nextdirect // nexus : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/nexus.html nexus // nfl : NFL Reg Ops LLC +// https://www.iana.org/domains/root/db/nfl.html nfl // ngo : Public Interest Registry +// https://www.iana.org/domains/root/db/ngo.html ngo // nhk : Japan Broadcasting Corporation (NHK) +// https://www.iana.org/domains/root/db/nhk.html nhk // nico : DWANGO Co., Ltd. +// https://www.iana.org/domains/root/db/nico.html nico // nike : NIKE, Inc. +// https://www.iana.org/domains/root/db/nike.html nike // nikon : NIKON CORPORATION +// https://www.iana.org/domains/root/db/nikon.html nikon // ninja : Dog Beach, LLC +// https://www.iana.org/domains/root/db/ninja.html ninja // nissan : NISSAN MOTOR CO., LTD. +// https://www.iana.org/domains/root/db/nissan.html nissan // nissay : Nippon Life Insurance Company +// https://www.iana.org/domains/root/db/nissay.html nissay // nokia : Nokia Corporation +// https://www.iana.org/domains/root/db/nokia.html nokia -// northwesternmutual : Northwestern Mutual Registry, LLC -northwesternmutual - // norton : NortonLifeLock Inc. +// https://www.iana.org/domains/root/db/norton.html norton // now : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/now.html now // nowruz : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// https://www.iana.org/domains/root/db/nowruz.html nowruz // nowtv : Starbucks (HK) Limited +// https://www.iana.org/domains/root/db/nowtv.html nowtv // nra : NRA Holdings Company, INC. +// https://www.iana.org/domains/root/db/nra.html nra // nrw : Minds + Machines GmbH +// https://www.iana.org/domains/root/db/nrw.html nrw // ntt : NIPPON TELEGRAPH AND TELEPHONE CORPORATION +// https://www.iana.org/domains/root/db/ntt.html ntt // nyc : The City of New York by and through the New York City Department of Information Technology & Telecommunications +// https://www.iana.org/domains/root/db/nyc.html nyc // obi : OBI Group Holding SE & Co. KGaA +// https://www.iana.org/domains/root/db/obi.html obi // observer : Dog Beach, LLC +// https://www.iana.org/domains/root/db/observer.html observer // office : Microsoft Corporation +// https://www.iana.org/domains/root/db/office.html office // okinawa : BRregistry, Inc. +// https://www.iana.org/domains/root/db/okinawa.html okinawa // olayan : Competrol (Luxembourg) Sarl +// https://www.iana.org/domains/root/db/olayan.html olayan // olayangroup : Competrol (Luxembourg) Sarl +// https://www.iana.org/domains/root/db/olayangroup.html olayangroup // oldnavy : The Gap, Inc. +// https://www.iana.org/domains/root/db/oldnavy.html oldnavy // ollo : Dish DBS Corporation +// https://www.iana.org/domains/root/db/ollo.html ollo // omega : The Swatch Group Ltd +// https://www.iana.org/domains/root/db/omega.html omega // one : One.com A/S +// https://www.iana.org/domains/root/db/one.html one // ong : Public Interest Registry +// https://www.iana.org/domains/root/db/ong.html ong // onl : iRegistry GmbH +// https://www.iana.org/domains/root/db/onl.html onl // online : Radix FZC +// https://www.iana.org/domains/root/db/online.html online // ooo : INFIBEAM AVENUES LIMITED +// https://www.iana.org/domains/root/db/ooo.html ooo // open : American Express Travel Related Services Company, Inc. +// https://www.iana.org/domains/root/db/open.html open // oracle : Oracle Corporation +// https://www.iana.org/domains/root/db/oracle.html oracle // orange : Orange Brand Services Limited +// https://www.iana.org/domains/root/db/orange.html orange // organic : Identity Digital Limited +// https://www.iana.org/domains/root/db/organic.html organic // origins : The Estée Lauder Companies Inc. +// https://www.iana.org/domains/root/db/origins.html origins // osaka : Osaka Registry Co., Ltd. +// https://www.iana.org/domains/root/db/osaka.html osaka // otsuka : Otsuka Holdings Co., Ltd. +// https://www.iana.org/domains/root/db/otsuka.html otsuka // ott : Dish DBS Corporation +// https://www.iana.org/domains/root/db/ott.html ott // ovh : MédiaBC +// https://www.iana.org/domains/root/db/ovh.html ovh // page : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/page.html page // panasonic : Panasonic Holdings Corporation +// https://www.iana.org/domains/root/db/panasonic.html panasonic // paris : City of Paris +// https://www.iana.org/domains/root/db/paris.html paris // pars : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// https://www.iana.org/domains/root/db/pars.html pars // partners : Binky Moon, LLC +// https://www.iana.org/domains/root/db/partners.html partners // parts : Binky Moon, LLC +// https://www.iana.org/domains/root/db/parts.html parts // party : Blue Sky Registry Limited +// https://www.iana.org/domains/root/db/party.html party // pay : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/pay.html pay // pccw : PCCW Enterprises Limited +// https://www.iana.org/domains/root/db/pccw.html pccw // pet : Identity Digital Limited +// https://www.iana.org/domains/root/db/pet.html pet // pfizer : Pfizer Inc. +// https://www.iana.org/domains/root/db/pfizer.html pfizer // pharmacy : National Association of Boards of Pharmacy +// https://www.iana.org/domains/root/db/pharmacy.html pharmacy // phd : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/phd.html phd // philips : Koninklijke Philips N.V. +// https://www.iana.org/domains/root/db/philips.html philips // phone : Dish DBS Corporation +// https://www.iana.org/domains/root/db/phone.html phone // photo : Registry Services, LLC +// https://www.iana.org/domains/root/db/photo.html photo // photography : Binky Moon, LLC +// https://www.iana.org/domains/root/db/photography.html photography // photos : Binky Moon, LLC +// https://www.iana.org/domains/root/db/photos.html photos // physio : PhysBiz Pty Ltd +// https://www.iana.org/domains/root/db/physio.html physio // pics : XYZ.COM LLC +// https://www.iana.org/domains/root/db/pics.html pics // pictet : Pictet Europe S.A. +// https://www.iana.org/domains/root/db/pictet.html pictet // pictures : Binky Moon, LLC +// https://www.iana.org/domains/root/db/pictures.html pictures // pid : Top Level Spectrum, Inc. +// https://www.iana.org/domains/root/db/pid.html pid // pin : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/pin.html pin // ping : Ping Registry Provider, Inc. +// https://www.iana.org/domains/root/db/ping.html ping // pink : Identity Digital Limited +// https://www.iana.org/domains/root/db/pink.html pink // pioneer : Pioneer Corporation +// https://www.iana.org/domains/root/db/pioneer.html pioneer // pizza : Binky Moon, LLC +// https://www.iana.org/domains/root/db/pizza.html pizza // place : Binky Moon, LLC +// https://www.iana.org/domains/root/db/place.html place // play : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/play.html play // playstation : Sony Interactive Entertainment Inc. +// https://www.iana.org/domains/root/db/playstation.html playstation // plumbing : Binky Moon, LLC +// https://www.iana.org/domains/root/db/plumbing.html plumbing // plus : Binky Moon, LLC +// https://www.iana.org/domains/root/db/plus.html plus // pnc : PNC Domain Co., LLC +// https://www.iana.org/domains/root/db/pnc.html pnc // pohl : Deutsche Vermögensberatung Aktiengesellschaft DVAG +// https://www.iana.org/domains/root/db/pohl.html pohl // poker : Identity Digital Limited +// https://www.iana.org/domains/root/db/poker.html poker // politie : Politie Nederland +// https://www.iana.org/domains/root/db/politie.html politie // porn : ICM Registry PN LLC +// https://www.iana.org/domains/root/db/porn.html porn // pramerica : Prudential Financial, Inc. +// https://www.iana.org/domains/root/db/pramerica.html pramerica // praxi : Praxi S.p.A. +// https://www.iana.org/domains/root/db/praxi.html praxi // press : Radix FZC +// https://www.iana.org/domains/root/db/press.html press // prime : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/prime.html prime // prod : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/prod.html prod // productions : Binky Moon, LLC +// https://www.iana.org/domains/root/db/productions.html productions // prof : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/prof.html prof // progressive : Progressive Casualty Insurance Company +// https://www.iana.org/domains/root/db/progressive.html progressive // promo : Identity Digital Limited +// https://www.iana.org/domains/root/db/promo.html promo // properties : Binky Moon, LLC +// https://www.iana.org/domains/root/db/properties.html properties // property : Internet Naming Company LLC +// https://www.iana.org/domains/root/db/property.html property // protection : XYZ.COM LLC +// https://www.iana.org/domains/root/db/protection.html protection // pru : Prudential Financial, Inc. +// https://www.iana.org/domains/root/db/pru.html pru // prudential : Prudential Financial, Inc. +// https://www.iana.org/domains/root/db/prudential.html prudential // pub : Dog Beach, LLC +// https://www.iana.org/domains/root/db/pub.html pub // pwc : PricewaterhouseCoopers LLP +// https://www.iana.org/domains/root/db/pwc.html pwc // qpon : dotQPON LLC +// https://www.iana.org/domains/root/db/qpon.html qpon // quebec : PointQuébec Inc +// https://www.iana.org/domains/root/db/quebec.html quebec // quest : XYZ.COM LLC +// https://www.iana.org/domains/root/db/quest.html quest // racing : Premier Registry Limited +// https://www.iana.org/domains/root/db/racing.html racing // radio : European Broadcasting Union (EBU) +// https://www.iana.org/domains/root/db/radio.html radio // read : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/read.html read // realestate : dotRealEstate LLC +// https://www.iana.org/domains/root/db/realestate.html realestate // realtor : Real Estate Domains LLC +// https://www.iana.org/domains/root/db/realtor.html realtor // realty : Internet Naming Company LLC +// https://www.iana.org/domains/root/db/realty.html realty // recipes : Binky Moon, LLC +// https://www.iana.org/domains/root/db/recipes.html recipes // red : Identity Digital Limited +// https://www.iana.org/domains/root/db/red.html red // redstone : Redstone Haute Couture Co., Ltd. +// https://www.iana.org/domains/root/db/redstone.html redstone // redumbrella : Travelers TLD, LLC +// https://www.iana.org/domains/root/db/redumbrella.html redumbrella // rehab : Dog Beach, LLC +// https://www.iana.org/domains/root/db/rehab.html rehab // reise : Binky Moon, LLC +// https://www.iana.org/domains/root/db/reise.html reise // reisen : Binky Moon, LLC +// https://www.iana.org/domains/root/db/reisen.html reisen // reit : National Association of Real Estate Investment Trusts, Inc. +// https://www.iana.org/domains/root/db/reit.html reit // reliance : Reliance Industries Limited +// https://www.iana.org/domains/root/db/reliance.html reliance // ren : ZDNS International Limited +// https://www.iana.org/domains/root/db/ren.html ren // rent : XYZ.COM LLC +// https://www.iana.org/domains/root/db/rent.html rent // rentals : Binky Moon, LLC +// https://www.iana.org/domains/root/db/rentals.html rentals // repair : Binky Moon, LLC +// https://www.iana.org/domains/root/db/repair.html repair // report : Binky Moon, LLC +// https://www.iana.org/domains/root/db/report.html report // republican : Dog Beach, LLC +// https://www.iana.org/domains/root/db/republican.html republican // rest : Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable +// https://www.iana.org/domains/root/db/rest.html rest // restaurant : Binky Moon, LLC +// https://www.iana.org/domains/root/db/restaurant.html restaurant // review : dot Review Limited +// https://www.iana.org/domains/root/db/review.html review // reviews : Dog Beach, LLC +// https://www.iana.org/domains/root/db/reviews.html reviews // rexroth : Robert Bosch GMBH +// https://www.iana.org/domains/root/db/rexroth.html rexroth // rich : iRegistry GmbH +// https://www.iana.org/domains/root/db/rich.html rich // richardli : Pacific Century Asset Management (HK) Limited +// https://www.iana.org/domains/root/db/richardli.html richardli // ricoh : Ricoh Company, Ltd. +// https://www.iana.org/domains/root/db/ricoh.html ricoh // ril : Reliance Industries Limited +// https://www.iana.org/domains/root/db/ril.html ril // rio : Empresa Municipal de Informática SA - IPLANRIO +// https://www.iana.org/domains/root/db/rio.html rio // rip : Dog Beach, LLC +// https://www.iana.org/domains/root/db/rip.html rip // rocher : Ferrero Trading Lux S.A. +// https://www.iana.org/domains/root/db/rocher.html rocher // rocks : Dog Beach, LLC +// https://www.iana.org/domains/root/db/rocks.html rocks // rodeo : Registry Services, LLC +// https://www.iana.org/domains/root/db/rodeo.html rodeo // rogers : Rogers Communications Canada Inc. +// https://www.iana.org/domains/root/db/rogers.html rogers // room : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/room.html room // rsvp : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/rsvp.html rsvp // rugby : World Rugby Strategic Developments Limited +// https://www.iana.org/domains/root/db/rugby.html rugby // ruhr : dotSaarland GmbH +// https://www.iana.org/domains/root/db/ruhr.html ruhr // run : Binky Moon, LLC +// https://www.iana.org/domains/root/db/run.html run // rwe : RWE AG +// https://www.iana.org/domains/root/db/rwe.html rwe // ryukyu : BRregistry, Inc. +// https://www.iana.org/domains/root/db/ryukyu.html ryukyu // saarland : dotSaarland GmbH +// https://www.iana.org/domains/root/db/saarland.html saarland // safe : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/safe.html safe // safety : Safety Registry Services, LLC. +// https://www.iana.org/domains/root/db/safety.html safety // sakura : SAKURA Internet Inc. +// https://www.iana.org/domains/root/db/sakura.html sakura // sale : Dog Beach, LLC +// https://www.iana.org/domains/root/db/sale.html sale // salon : Binky Moon, LLC +// https://www.iana.org/domains/root/db/salon.html salon // samsclub : Wal-Mart Stores, Inc. +// https://www.iana.org/domains/root/db/samsclub.html samsclub // samsung : SAMSUNG SDS CO., LTD +// https://www.iana.org/domains/root/db/samsung.html samsung // sandvik : Sandvik AB +// https://www.iana.org/domains/root/db/sandvik.html sandvik // sandvikcoromant : Sandvik AB +// https://www.iana.org/domains/root/db/sandvikcoromant.html sandvikcoromant // sanofi : Sanofi +// https://www.iana.org/domains/root/db/sanofi.html sanofi // sap : SAP AG +// https://www.iana.org/domains/root/db/sap.html sap // sarl : Binky Moon, LLC +// https://www.iana.org/domains/root/db/sarl.html sarl // sas : Research IP LLC +// https://www.iana.org/domains/root/db/sas.html sas // save : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/save.html save // saxo : Saxo Bank A/S +// https://www.iana.org/domains/root/db/saxo.html saxo // sbi : STATE BANK OF INDIA +// https://www.iana.org/domains/root/db/sbi.html sbi // sbs : ShortDot SA +// https://www.iana.org/domains/root/db/sbs.html sbs // sca : SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) +// https://www.iana.org/domains/root/db/sca.html sca // scb : The Siam Commercial Bank Public Company Limited ("SCB") +// https://www.iana.org/domains/root/db/scb.html scb // schaeffler : Schaeffler Technologies AG & Co. KG +// https://www.iana.org/domains/root/db/schaeffler.html schaeffler // schmidt : SCHMIDT GROUPE S.A.S. +// https://www.iana.org/domains/root/db/schmidt.html schmidt // scholarships : Scholarships.com, LLC +// https://www.iana.org/domains/root/db/scholarships.html scholarships // school : Binky Moon, LLC +// https://www.iana.org/domains/root/db/school.html school // schule : Binky Moon, LLC +// https://www.iana.org/domains/root/db/schule.html schule // schwarz : Schwarz Domains und Services GmbH & Co. KG +// https://www.iana.org/domains/root/db/schwarz.html schwarz // science : dot Science Limited +// https://www.iana.org/domains/root/db/science.html science // scot : Dot Scot Registry Limited +// https://www.iana.org/domains/root/db/scot.html scot // search : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/search.html search // seat : SEAT, S.A. (Sociedad Unipersonal) +// https://www.iana.org/domains/root/db/seat.html seat // secure : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/secure.html secure // security : XYZ.COM LLC +// https://www.iana.org/domains/root/db/security.html security // seek : Seek Limited +// https://www.iana.org/domains/root/db/seek.html seek // select : Registry Services, LLC +// https://www.iana.org/domains/root/db/select.html select // sener : Sener Ingeniería y Sistemas, S.A. +// https://www.iana.org/domains/root/db/sener.html sener // services : Binky Moon, LLC +// https://www.iana.org/domains/root/db/services.html services // seven : Seven West Media Ltd +// https://www.iana.org/domains/root/db/seven.html seven // sew : SEW-EURODRIVE GmbH & Co KG +// https://www.iana.org/domains/root/db/sew.html sew // sex : ICM Registry SX LLC +// https://www.iana.org/domains/root/db/sex.html sex // sexy : Internet Naming Company LLC +// https://www.iana.org/domains/root/db/sexy.html sexy // sfr : Societe Francaise du Radiotelephone - SFR +// https://www.iana.org/domains/root/db/sfr.html sfr // shangrila : Shangri‐La International Hotel Management Limited +// https://www.iana.org/domains/root/db/shangrila.html shangrila // sharp : Sharp Corporation +// https://www.iana.org/domains/root/db/sharp.html sharp // shaw : Shaw Cablesystems G.P. +// https://www.iana.org/domains/root/db/shaw.html shaw // shell : Shell Information Technology International Inc +// https://www.iana.org/domains/root/db/shell.html shell // shia : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// https://www.iana.org/domains/root/db/shia.html shia // shiksha : Identity Digital Limited +// https://www.iana.org/domains/root/db/shiksha.html shiksha // shoes : Binky Moon, LLC +// https://www.iana.org/domains/root/db/shoes.html shoes // shop : GMO Registry, Inc. +// https://www.iana.org/domains/root/db/shop.html shop // shopping : Binky Moon, LLC +// https://www.iana.org/domains/root/db/shopping.html shopping // shouji : Beijing Qihu Keji Co., Ltd. +// https://www.iana.org/domains/root/db/shouji.html shouji // show : Binky Moon, LLC +// https://www.iana.org/domains/root/db/show.html show // showtime : CBS Domains Inc. +// https://www.iana.org/domains/root/db/showtime.html showtime // silk : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/silk.html silk // sina : Sina Corporation +// https://www.iana.org/domains/root/db/sina.html sina // singles : Binky Moon, LLC +// https://www.iana.org/domains/root/db/singles.html singles // site : Radix FZC +// https://www.iana.org/domains/root/db/site.html site // ski : Identity Digital Limited +// https://www.iana.org/domains/root/db/ski.html ski // skin : XYZ.COM LLC +// https://www.iana.org/domains/root/db/skin.html skin // sky : Sky International AG +// https://www.iana.org/domains/root/db/sky.html sky // skype : Microsoft Corporation +// https://www.iana.org/domains/root/db/skype.html skype // sling : DISH Technologies L.L.C. +// https://www.iana.org/domains/root/db/sling.html sling // smart : Smart Communications, Inc. (SMART) +// https://www.iana.org/domains/root/db/smart.html smart // smile : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/smile.html smile // sncf : Société Nationale SNCF +// https://www.iana.org/domains/root/db/sncf.html sncf // soccer : Binky Moon, LLC +// https://www.iana.org/domains/root/db/soccer.html soccer // social : Dog Beach, LLC +// https://www.iana.org/domains/root/db/social.html social // softbank : SoftBank Group Corp. +// https://www.iana.org/domains/root/db/softbank.html softbank // software : Dog Beach, LLC +// https://www.iana.org/domains/root/db/software.html software // sohu : Sohu.com Limited +// https://www.iana.org/domains/root/db/sohu.html sohu // solar : Binky Moon, LLC +// https://www.iana.org/domains/root/db/solar.html solar // solutions : Binky Moon, LLC +// https://www.iana.org/domains/root/db/solutions.html solutions // song : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/song.html song // sony : Sony Corporation +// https://www.iana.org/domains/root/db/sony.html sony // soy : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/soy.html soy // spa : Asia Spa and Wellness Promotion Council Limited +// https://www.iana.org/domains/root/db/spa.html spa // space : Radix FZC +// https://www.iana.org/domains/root/db/space.html space // sport : SportAccord +// https://www.iana.org/domains/root/db/sport.html sport // spot : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/spot.html spot // srl : InterNetX, Corp +// https://www.iana.org/domains/root/db/srl.html srl // stada : STADA Arzneimittel AG +// https://www.iana.org/domains/root/db/stada.html stada // staples : Staples, Inc. +// https://www.iana.org/domains/root/db/staples.html staples // star : Star India Private Limited +// https://www.iana.org/domains/root/db/star.html star // statebank : STATE BANK OF INDIA +// https://www.iana.org/domains/root/db/statebank.html statebank // statefarm : State Farm Mutual Automobile Insurance Company +// https://www.iana.org/domains/root/db/statefarm.html statefarm // stc : Saudi Telecom Company +// https://www.iana.org/domains/root/db/stc.html stc // stcgroup : Saudi Telecom Company +// https://www.iana.org/domains/root/db/stcgroup.html stcgroup // stockholm : Stockholms kommun +// https://www.iana.org/domains/root/db/stockholm.html stockholm // storage : XYZ.COM LLC +// https://www.iana.org/domains/root/db/storage.html storage // store : Radix FZC +// https://www.iana.org/domains/root/db/store.html store // stream : dot Stream Limited +// https://www.iana.org/domains/root/db/stream.html stream // studio : Dog Beach, LLC +// https://www.iana.org/domains/root/db/studio.html studio // study : Registry Services, LLC +// https://www.iana.org/domains/root/db/study.html study // style : Binky Moon, LLC +// https://www.iana.org/domains/root/db/style.html style // sucks : Vox Populi Registry Ltd. +// https://www.iana.org/domains/root/db/sucks.html sucks // supplies : Binky Moon, LLC +// https://www.iana.org/domains/root/db/supplies.html supplies // supply : Binky Moon, LLC +// https://www.iana.org/domains/root/db/supply.html supply // support : Binky Moon, LLC +// https://www.iana.org/domains/root/db/support.html support // surf : Registry Services, LLC +// https://www.iana.org/domains/root/db/surf.html surf // surgery : Binky Moon, LLC +// https://www.iana.org/domains/root/db/surgery.html surgery // suzuki : SUZUKI MOTOR CORPORATION +// https://www.iana.org/domains/root/db/suzuki.html suzuki // swatch : The Swatch Group Ltd +// https://www.iana.org/domains/root/db/swatch.html swatch // swiss : Swiss Confederation +// https://www.iana.org/domains/root/db/swiss.html swiss // sydney : State of New South Wales, Department of Premier and Cabinet +// https://www.iana.org/domains/root/db/sydney.html sydney // systems : Binky Moon, LLC +// https://www.iana.org/domains/root/db/systems.html systems // tab : Tabcorp Holdings Limited +// https://www.iana.org/domains/root/db/tab.html tab // taipei : Taipei City Government +// https://www.iana.org/domains/root/db/taipei.html taipei // talk : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/talk.html talk // taobao : Alibaba Group Holding Limited +// https://www.iana.org/domains/root/db/taobao.html taobao // target : Target Domain Holdings, LLC +// https://www.iana.org/domains/root/db/target.html target // tatamotors : Tata Motors Ltd +// https://www.iana.org/domains/root/db/tatamotors.html tatamotors // tatar : Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" +// https://www.iana.org/domains/root/db/tatar.html tatar // tattoo : Registry Services, LLC +// https://www.iana.org/domains/root/db/tattoo.html tattoo // tax : Binky Moon, LLC +// https://www.iana.org/domains/root/db/tax.html tax // taxi : Binky Moon, LLC +// https://www.iana.org/domains/root/db/taxi.html taxi // tci : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// https://www.iana.org/domains/root/db/tci.html tci // tdk : TDK Corporation +// https://www.iana.org/domains/root/db/tdk.html tdk // team : Binky Moon, LLC +// https://www.iana.org/domains/root/db/team.html team // tech : Radix FZC +// https://www.iana.org/domains/root/db/tech.html tech // technology : Binky Moon, LLC +// https://www.iana.org/domains/root/db/technology.html technology // temasek : Temasek Holdings (Private) Limited +// https://www.iana.org/domains/root/db/temasek.html temasek // tennis : Binky Moon, LLC +// https://www.iana.org/domains/root/db/tennis.html tennis // teva : Teva Pharmaceutical Industries Limited +// https://www.iana.org/domains/root/db/teva.html teva // thd : Home Depot Product Authority, LLC +// https://www.iana.org/domains/root/db/thd.html thd // theater : Binky Moon, LLC +// https://www.iana.org/domains/root/db/theater.html theater // theatre : XYZ.COM LLC +// https://www.iana.org/domains/root/db/theatre.html theatre // tiaa : Teachers Insurance and Annuity Association of America +// https://www.iana.org/domains/root/db/tiaa.html tiaa // tickets : XYZ.COM LLC +// https://www.iana.org/domains/root/db/tickets.html tickets // tienda : Binky Moon, LLC +// https://www.iana.org/domains/root/db/tienda.html tienda // tips : Binky Moon, LLC +// https://www.iana.org/domains/root/db/tips.html tips // tires : Binky Moon, LLC +// https://www.iana.org/domains/root/db/tires.html tires // tirol : punkt Tirol GmbH +// https://www.iana.org/domains/root/db/tirol.html tirol // tjmaxx : The TJX Companies, Inc. +// https://www.iana.org/domains/root/db/tjmaxx.html tjmaxx // tjx : The TJX Companies, Inc. +// https://www.iana.org/domains/root/db/tjx.html tjx // tkmaxx : The TJX Companies, Inc. +// https://www.iana.org/domains/root/db/tkmaxx.html tkmaxx // tmall : Alibaba Group Holding Limited +// https://www.iana.org/domains/root/db/tmall.html tmall // today : Binky Moon, LLC +// https://www.iana.org/domains/root/db/today.html today // tokyo : GMO Registry, Inc. +// https://www.iana.org/domains/root/db/tokyo.html tokyo // tools : Binky Moon, LLC +// https://www.iana.org/domains/root/db/tools.html tools // top : .TOP Registry +// https://www.iana.org/domains/root/db/top.html top // toray : Toray Industries, Inc. +// https://www.iana.org/domains/root/db/toray.html toray // toshiba : TOSHIBA Corporation +// https://www.iana.org/domains/root/db/toshiba.html toshiba // total : TotalEnergies SE +// https://www.iana.org/domains/root/db/total.html total // tours : Binky Moon, LLC +// https://www.iana.org/domains/root/db/tours.html tours // town : Binky Moon, LLC +// https://www.iana.org/domains/root/db/town.html town // toyota : TOYOTA MOTOR CORPORATION +// https://www.iana.org/domains/root/db/toyota.html toyota // toys : Binky Moon, LLC +// https://www.iana.org/domains/root/db/toys.html toys // trade : Elite Registry Limited +// https://www.iana.org/domains/root/db/trade.html trade // trading : Dog Beach, LLC +// https://www.iana.org/domains/root/db/trading.html trading // training : Binky Moon, LLC +// https://www.iana.org/domains/root/db/training.html training // travel : Dog Beach, LLC +// https://www.iana.org/domains/root/db/travel.html travel // travelers : Travelers TLD, LLC +// https://www.iana.org/domains/root/db/travelers.html travelers // travelersinsurance : Travelers TLD, LLC +// https://www.iana.org/domains/root/db/travelersinsurance.html travelersinsurance // trust : Internet Naming Company LLC +// https://www.iana.org/domains/root/db/trust.html trust // trv : Travelers TLD, LLC +// https://www.iana.org/domains/root/db/trv.html trv // tube : Latin American Telecom LLC +// https://www.iana.org/domains/root/db/tube.html tube // tui : TUI AG +// https://www.iana.org/domains/root/db/tui.html tui // tunes : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/tunes.html tunes // tushu : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/tushu.html tushu // tvs : T V SUNDRAM IYENGAR & SONS LIMITED +// https://www.iana.org/domains/root/db/tvs.html tvs // ubank : National Australia Bank Limited +// https://www.iana.org/domains/root/db/ubank.html ubank // ubs : UBS AG +// https://www.iana.org/domains/root/db/ubs.html ubs // unicom : China United Network Communications Corporation Limited +// https://www.iana.org/domains/root/db/unicom.html unicom // university : Binky Moon, LLC +// https://www.iana.org/domains/root/db/university.html university // uno : Radix FZC +// https://www.iana.org/domains/root/db/uno.html uno // uol : UBN INTERNET LTDA. +// https://www.iana.org/domains/root/db/uol.html uol // ups : UPS Market Driver, Inc. +// https://www.iana.org/domains/root/db/ups.html ups // vacations : Binky Moon, LLC +// https://www.iana.org/domains/root/db/vacations.html vacations // vana : Lifestyle Domain Holdings, Inc. +// https://www.iana.org/domains/root/db/vana.html vana // vanguard : The Vanguard Group, Inc. +// https://www.iana.org/domains/root/db/vanguard.html vanguard // vegas : Dot Vegas, Inc. +// https://www.iana.org/domains/root/db/vegas.html vegas // ventures : Binky Moon, LLC +// https://www.iana.org/domains/root/db/ventures.html ventures // verisign : VeriSign, Inc. +// https://www.iana.org/domains/root/db/verisign.html verisign // versicherung : tldbox GmbH +// https://www.iana.org/domains/root/db/versicherung.html versicherung // vet : Dog Beach, LLC +// https://www.iana.org/domains/root/db/vet.html vet // viajes : Binky Moon, LLC +// https://www.iana.org/domains/root/db/viajes.html viajes // video : Dog Beach, LLC +// https://www.iana.org/domains/root/db/video.html video // vig : VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe +// https://www.iana.org/domains/root/db/vig.html vig // viking : Viking River Cruises (Bermuda) Ltd. +// https://www.iana.org/domains/root/db/viking.html viking // villas : Binky Moon, LLC +// https://www.iana.org/domains/root/db/villas.html villas // vin : Binky Moon, LLC +// https://www.iana.org/domains/root/db/vin.html vin // vip : Registry Services, LLC +// https://www.iana.org/domains/root/db/vip.html vip // virgin : Virgin Enterprises Limited +// https://www.iana.org/domains/root/db/virgin.html virgin // visa : Visa Worldwide Pte. Limited +// https://www.iana.org/domains/root/db/visa.html visa // vision : Binky Moon, LLC +// https://www.iana.org/domains/root/db/vision.html vision // viva : Saudi Telecom Company +// https://www.iana.org/domains/root/db/viva.html viva // vivo : Telefonica Brasil S.A. +// https://www.iana.org/domains/root/db/vivo.html vivo // vlaanderen : DNS.be vzw +// https://www.iana.org/domains/root/db/vlaanderen.html vlaanderen // vodka : Registry Services, LLC +// https://www.iana.org/domains/root/db/vodka.html vodka // volkswagen : Volkswagen Group of America Inc. +// https://www.iana.org/domains/root/db/volkswagen.html volkswagen // volvo : Volvo Holding Sverige Aktiebolag +// https://www.iana.org/domains/root/db/volvo.html volvo // vote : Monolith Registry LLC +// https://www.iana.org/domains/root/db/vote.html vote // voting : Valuetainment Corp. +// https://www.iana.org/domains/root/db/voting.html voting // voto : Monolith Registry LLC +// https://www.iana.org/domains/root/db/voto.html voto // voyage : Binky Moon, LLC +// https://www.iana.org/domains/root/db/voyage.html voyage // wales : Nominet UK +// https://www.iana.org/domains/root/db/wales.html wales // walmart : Wal-Mart Stores, Inc. +// https://www.iana.org/domains/root/db/walmart.html walmart // walter : Sandvik AB +// https://www.iana.org/domains/root/db/walter.html walter // wang : Zodiac Wang Limited +// https://www.iana.org/domains/root/db/wang.html wang // wanggou : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/wanggou.html wanggou // watch : Binky Moon, LLC +// https://www.iana.org/domains/root/db/watch.html watch // watches : Identity Digital Limited +// https://www.iana.org/domains/root/db/watches.html watches // weather : International Business Machines Corporation +// https://www.iana.org/domains/root/db/weather.html weather // weatherchannel : International Business Machines Corporation +// https://www.iana.org/domains/root/db/weatherchannel.html weatherchannel // webcam : dot Webcam Limited +// https://www.iana.org/domains/root/db/webcam.html webcam // weber : Saint-Gobain Weber SA +// https://www.iana.org/domains/root/db/weber.html weber // website : Radix FZC +// https://www.iana.org/domains/root/db/website.html website // wedding : Registry Services, LLC +// https://www.iana.org/domains/root/db/wedding.html wedding // weibo : Sina Corporation +// https://www.iana.org/domains/root/db/weibo.html weibo // weir : Weir Group IP Limited +// https://www.iana.org/domains/root/db/weir.html weir // whoswho : Who's Who Registry +// https://www.iana.org/domains/root/db/whoswho.html whoswho // wien : punkt.wien GmbH +// https://www.iana.org/domains/root/db/wien.html wien // wiki : Registry Services, LLC +// https://www.iana.org/domains/root/db/wiki.html wiki // williamhill : William Hill Organization Limited +// https://www.iana.org/domains/root/db/williamhill.html williamhill // win : First Registry Limited +// https://www.iana.org/domains/root/db/win.html win // windows : Microsoft Corporation +// https://www.iana.org/domains/root/db/windows.html windows // wine : Binky Moon, LLC +// https://www.iana.org/domains/root/db/wine.html wine // winners : The TJX Companies, Inc. +// https://www.iana.org/domains/root/db/winners.html winners // wme : William Morris Endeavor Entertainment, LLC +// https://www.iana.org/domains/root/db/wme.html wme // wolterskluwer : Wolters Kluwer N.V. +// https://www.iana.org/domains/root/db/wolterskluwer.html wolterskluwer // woodside : Woodside Petroleum Limited +// https://www.iana.org/domains/root/db/woodside.html woodside // work : Registry Services, LLC +// https://www.iana.org/domains/root/db/work.html work // works : Binky Moon, LLC +// https://www.iana.org/domains/root/db/works.html works // world : Binky Moon, LLC +// https://www.iana.org/domains/root/db/world.html world // wow : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/wow.html wow // wtc : World Trade Centers Association, Inc. +// https://www.iana.org/domains/root/db/wtc.html wtc // wtf : Binky Moon, LLC +// https://www.iana.org/domains/root/db/wtf.html wtf // xbox : Microsoft Corporation +// https://www.iana.org/domains/root/db/xbox.html xbox // xerox : Xerox DNHC LLC +// https://www.iana.org/domains/root/db/xerox.html xerox // xfinity : Comcast IP Holdings I, LLC +// https://www.iana.org/domains/root/db/xfinity.html xfinity // xihuan : Beijing Qihu Keji Co., Ltd. +// https://www.iana.org/domains/root/db/xihuan.html xihuan // xin : Elegant Leader Limited +// https://www.iana.org/domains/root/db/xin.html xin // xn--11b4c3d : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--11b4c3d.html कॉम // xn--1ck2e1b : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--1ck2e1b.html セール // xn--1qqw23a : Guangzhou YU Wei Information Technology Co., Ltd. +// https://www.iana.org/domains/root/db/xn--1qqw23a.html 佛山 // xn--30rr7y : Excellent First Limited +// https://www.iana.org/domains/root/db/xn--30rr7y.html 慈善 // xn--3bst00m : Eagle Horizon Limited +// https://www.iana.org/domains/root/db/xn--3bst00m.html 集团 // xn--3ds443g : TLD REGISTRY LIMITED OY +// https://www.iana.org/domains/root/db/xn--3ds443g.html 在线 // xn--3pxu8k : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--3pxu8k.html 点看 // xn--42c2d9a : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--42c2d9a.html คอม // xn--45q11c : Zodiac Gemini Ltd +// https://www.iana.org/domains/root/db/xn--45q11c.html 八卦 // xn--4gbrim : Helium TLDs Ltd +// https://www.iana.org/domains/root/db/xn--4gbrim.html موقع // xn--55qw42g : China Organizational Name Administration Center +// https://www.iana.org/domains/root/db/xn--55qw42g.html 公益 // xn--55qx5d : China Internet Network Information Center (CNNIC) +// https://www.iana.org/domains/root/db/xn--55qx5d.html 公司 // xn--5su34j936bgsg : Shangri‐La International Hotel Management Limited +// https://www.iana.org/domains/root/db/xn--5su34j936bgsg.html 香格里拉 // xn--5tzm5g : Global Website TLD Asia Limited +// https://www.iana.org/domains/root/db/xn--5tzm5g.html 网站 // xn--6frz82g : Identity Digital Limited +// https://www.iana.org/domains/root/db/xn--6frz82g.html 移动 // xn--6qq986b3xl : Tycoon Treasure Limited +// https://www.iana.org/domains/root/db/xn--6qq986b3xl.html 我爱你 // xn--80adxhks : Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) +// https://www.iana.org/domains/root/db/xn--80adxhks.html москва // xn--80aqecdr1a : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +// https://www.iana.org/domains/root/db/xn--80aqecdr1a.html католик // xn--80asehdb : CORE Association +// https://www.iana.org/domains/root/db/xn--80asehdb.html онлайн // xn--80aswg : CORE Association +// https://www.iana.org/domains/root/db/xn--80aswg.html сайт // xn--8y0a063a : China United Network Communications Corporation Limited +// https://www.iana.org/domains/root/db/xn--8y0a063a.html 联通 // xn--9dbq2a : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--9dbq2a.html קום // xn--9et52u : RISE VICTORY LIMITED +// https://www.iana.org/domains/root/db/xn--9et52u.html 时尚 // xn--9krt00a : Sina Corporation +// https://www.iana.org/domains/root/db/xn--9krt00a.html 微博 // xn--b4w605ferd : Temasek Holdings (Private) Limited +// https://www.iana.org/domains/root/db/xn--b4w605ferd.html 淡马锡 // xn--bck1b9a5dre4c : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--bck1b9a5dre4c.html ファッション // xn--c1avg : Public Interest Registry +// https://www.iana.org/domains/root/db/xn--c1avg.html орг // xn--c2br7g : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--c2br7g.html नेट // xn--cck2b3b : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--cck2b3b.html ストア // xn--cckwcxetd : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--cckwcxetd.html アマゾン // xn--cg4bki : SAMSUNG SDS CO., LTD +// https://www.iana.org/domains/root/db/xn--cg4bki.html 삼성 // xn--czr694b : Internet DotTrademark Organisation Limited +// https://www.iana.org/domains/root/db/xn--czr694b.html 商标 // xn--czrs0t : Binky Moon, LLC +// https://www.iana.org/domains/root/db/xn--czrs0t.html 商店 // xn--czru2d : Zodiac Aquarius Limited +// https://www.iana.org/domains/root/db/xn--czru2d.html 商城 // xn--d1acj3b : The Foundation for Network Initiatives “The Smart Internet” +// https://www.iana.org/domains/root/db/xn--d1acj3b.html дети // xn--eckvdtc9d : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--eckvdtc9d.html ポイント // xn--efvy88h : Guangzhou YU Wei Information Technology Co., Ltd. +// https://www.iana.org/domains/root/db/xn--efvy88h.html 新闻 // xn--fct429k : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--fct429k.html 家電 // xn--fhbei : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--fhbei.html كوم // xn--fiq228c5hs : TLD REGISTRY LIMITED OY +// https://www.iana.org/domains/root/db/xn--fiq228c5hs.html 中文网 // xn--fiq64b : CITIC Group Corporation +// https://www.iana.org/domains/root/db/xn--fiq64b.html 中信 // xn--fjq720a : Binky Moon, LLC +// https://www.iana.org/domains/root/db/xn--fjq720a.html 娱乐 // xn--flw351e : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/xn--flw351e.html 谷歌 // xn--fzys8d69uvgm : PCCW Enterprises Limited +// https://www.iana.org/domains/root/db/xn--fzys8d69uvgm.html 電訊盈科 // xn--g2xx48c : Nawang Heli(Xiamen) Network Service Co., LTD. +// https://www.iana.org/domains/root/db/xn--g2xx48c.html 购物 // xn--gckr3f0f : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--gckr3f0f.html クラウド // xn--gk3at1e : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--gk3at1e.html 通販 // xn--hxt814e : Zodiac Taurus Limited +// https://www.iana.org/domains/root/db/xn--hxt814e.html 网店 // xn--i1b6b1a6a2e : Public Interest Registry +// https://www.iana.org/domains/root/db/xn--i1b6b1a6a2e.html संगठन // xn--imr513n : Internet DotTrademark Organisation Limited +// https://www.iana.org/domains/root/db/xn--imr513n.html 餐厅 // xn--io0a7i : China Internet Network Information Center (CNNIC) +// https://www.iana.org/domains/root/db/xn--io0a7i.html 网络 // xn--j1aef : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--j1aef.html ком // xn--jlq480n2rg : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--jlq480n2rg.html 亚马逊 // xn--jvr189m : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--jvr189m.html 食品 // xn--kcrx77d1x4a : Koninklijke Philips N.V. +// https://www.iana.org/domains/root/db/xn--kcrx77d1x4a.html 飞利浦 // xn--kput3i : Beijing RITT-Net Technology Development Co., Ltd +// https://www.iana.org/domains/root/db/xn--kput3i.html 手机 // xn--mgba3a3ejt : Aramco Services Company +// https://www.iana.org/domains/root/db/xn--mgba3a3ejt.html ارامكو // xn--mgba7c0bbn0a : Competrol (Luxembourg) Sarl +// https://www.iana.org/domains/root/db/xn--mgba7c0bbn0a.html العليان // xn--mgbaakc7dvf : Emirates Telecommunications Corporation (trading as Etisalat) +// https://www.iana.org/domains/root/db/xn--mgbaakc7dvf.html اتصالات // xn--mgbab2bd : CORE Association +// https://www.iana.org/domains/root/db/xn--mgbab2bd.html بازار // xn--mgbca7dzdo : Abu Dhabi Systems and Information Centre +// https://www.iana.org/domains/root/db/xn--mgbca7dzdo.html ابوظبي // xn--mgbi4ecexp : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +// https://www.iana.org/domains/root/db/xn--mgbi4ecexp.html كاثوليك // xn--mgbt3dhd : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +// https://www.iana.org/domains/root/db/xn--mgbt3dhd.html همراه // xn--mk1bu44c : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--mk1bu44c.html 닷컴 // xn--mxtq1m : Net-Chinese Co., Ltd. +// https://www.iana.org/domains/root/db/xn--mxtq1m.html 政府 // xn--ngbc5azd : International Domain Registry Pty. Ltd. +// https://www.iana.org/domains/root/db/xn--ngbc5azd.html شبكة // xn--ngbe9e0a : Kuwait Finance House +// https://www.iana.org/domains/root/db/xn--ngbe9e0a.html بيتك // xn--ngbrx : League of Arab States +// https://www.iana.org/domains/root/db/xn--ngbrx.html عرب // xn--nqv7f : Public Interest Registry +// https://www.iana.org/domains/root/db/xn--nqv7f.html 机构 // xn--nqv7fs00ema : Public Interest Registry +// https://www.iana.org/domains/root/db/xn--nqv7fs00ema.html 组织机构 // xn--nyqy26a : Stable Tone Limited +// https://www.iana.org/domains/root/db/xn--nyqy26a.html 健康 // xn--otu796d : Jiang Yu Liang Cai Technology Company Limited +// https://www.iana.org/domains/root/db/xn--otu796d.html 招聘 // xn--p1acf : Rusnames Limited +// https://www.iana.org/domains/root/db/xn--p1acf.html рус // xn--pssy2u : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--pssy2u.html 大拿 // xn--q9jyb4c : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/xn--q9jyb4c.html みんな // xn--qcka1pmc : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/xn--qcka1pmc.html グーグル // xn--rhqv96g : Stable Tone Limited +// https://www.iana.org/domains/root/db/xn--rhqv96g.html 世界 // xn--rovu88b : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/xn--rovu88b.html 書籍 // xn--ses554g : KNET Co., Ltd. +// https://www.iana.org/domains/root/db/xn--ses554g.html 网址 // xn--t60b56a : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--t60b56a.html 닷넷 // xn--tckwe : VeriSign Sarl +// https://www.iana.org/domains/root/db/xn--tckwe.html コム // xn--tiq49xqyj : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +// https://www.iana.org/domains/root/db/xn--tiq49xqyj.html 天主教 // xn--unup4y : Binky Moon, LLC +// https://www.iana.org/domains/root/db/xn--unup4y.html 游戏 // xn--vermgensberater-ctb : Deutsche Vermögensberatung Aktiengesellschaft DVAG +// https://www.iana.org/domains/root/db/xn--vermgensberater-ctb.html vermögensberater // xn--vermgensberatung-pwb : Deutsche Vermögensberatung Aktiengesellschaft DVAG +// https://www.iana.org/domains/root/db/xn--vermgensberatung-pwb.html vermögensberatung // xn--vhquv : Binky Moon, LLC +// https://www.iana.org/domains/root/db/xn--vhquv.html 企业 // xn--vuq861b : Beijing Tele-info Technology Co., Ltd. +// https://www.iana.org/domains/root/db/xn--vuq861b.html 信息 // xn--w4r85el8fhu5dnra : Kerry Trading Co. Limited +// https://www.iana.org/domains/root/db/xn--w4r85el8fhu5dnra.html 嘉里大酒店 // xn--w4rs40l : Kerry Trading Co. Limited +// https://www.iana.org/domains/root/db/xn--w4rs40l.html 嘉里 // xn--xhq521b : Guangzhou YU Wei Information Technology Co., Ltd. +// https://www.iana.org/domains/root/db/xn--xhq521b.html 广东 // xn--zfr164b : China Organizational Name Administration Center +// https://www.iana.org/domains/root/db/xn--zfr164b.html 政务 // xyz : XYZ.COM LLC +// https://www.iana.org/domains/root/db/xyz.html xyz // yachts : XYZ.COM LLC +// https://www.iana.org/domains/root/db/yachts.html yachts // yahoo : Oath Inc. +// https://www.iana.org/domains/root/db/yahoo.html yahoo // yamaxun : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/yamaxun.html yamaxun // yandex : Yandex Europe B.V. +// https://www.iana.org/domains/root/db/yandex.html yandex // yodobashi : YODOBASHI CAMERA CO.,LTD. +// https://www.iana.org/domains/root/db/yodobashi.html yodobashi // yoga : Registry Services, LLC +// https://www.iana.org/domains/root/db/yoga.html yoga // yokohama : GMO Registry, Inc. +// https://www.iana.org/domains/root/db/yokohama.html yokohama // you : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/you.html you // youtube : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/youtube.html youtube // yun : Beijing Qihu Keji Co., Ltd. +// https://www.iana.org/domains/root/db/yun.html yun // zappos : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/zappos.html zappos // zara : Industria de Diseño Textil, S.A. (INDITEX, S.A.) +// https://www.iana.org/domains/root/db/zara.html zara // zero : Amazon Registry Services, Inc. +// https://www.iana.org/domains/root/db/zero.html zero // zip : Charleston Road Registry Inc. +// https://www.iana.org/domains/root/db/zip.html zip // zone : Binky Moon, LLC +// https://www.iana.org/domains/root/db/zone.html zone // zuerich : Kanton Zürich (Canton of Zurich) +// https://www.iana.org/domains/root/db/zuerich.html zuerich From 251ae70c9d17248cec74dcdbf749a0ac4bdc65b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 25 Aug 2023 13:57:40 +0200 Subject: [PATCH 412/450] Updated list from source (#256) Co-authored-by: weppos --- data/list.txt | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/data/list.txt b/data/list.txt index 5f3c6714..14c5f58a 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6719,7 +6719,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-09T15:14:39Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-23T15:12:42Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -8189,7 +8189,7 @@ ftr // https://www.iana.org/domains/root/db/fujitsu.html fujitsu -// fun : Radix FZC +// fun : Radix FZC DMCC // https://www.iana.org/domains/root/db/fun.html fun @@ -8525,7 +8525,7 @@ horse // https://www.iana.org/domains/root/db/hospital.html hospital -// host : Radix FZC +// host : Radix FZC DMCC // https://www.iana.org/domains/root/db/host.html host @@ -8997,7 +8997,7 @@ loan // https://www.iana.org/domains/root/db/loans.html loans -// locker : Dish DBS Corporation +// locker : Orange Domains LLC // https://www.iana.org/domains/root/db/locker.html locker @@ -9445,7 +9445,7 @@ ong // https://www.iana.org/domains/root/db/onl.html onl -// online : Radix FZC +// online : Radix FZC DMCC // https://www.iana.org/domains/root/db/online.html online @@ -9649,7 +9649,7 @@ pramerica // https://www.iana.org/domains/root/db/praxi.html praxi -// press : Radix FZC +// press : Radix FZC DMCC // https://www.iana.org/domains/root/db/press.html press @@ -10113,7 +10113,7 @@ sina // https://www.iana.org/domains/root/db/singles.html singles -// site : Radix FZC +// site : Radix FZC DMCC // https://www.iana.org/domains/root/db/site.html site @@ -10193,7 +10193,7 @@ soy // https://www.iana.org/domains/root/db/spa.html spa -// space : Radix FZC +// space : Radix FZC DMCC // https://www.iana.org/domains/root/db/space.html space @@ -10245,7 +10245,7 @@ stockholm // https://www.iana.org/domains/root/db/storage.html storage -// store : Radix FZC +// store : Radix FZC DMCC // https://www.iana.org/domains/root/db/store.html store @@ -10361,7 +10361,7 @@ tdk // https://www.iana.org/domains/root/db/team.html team -// tech : Radix FZC +// tech : Radix FZC DMCC // https://www.iana.org/domains/root/db/tech.html tech @@ -10545,7 +10545,7 @@ unicom // https://www.iana.org/domains/root/db/university.html university -// uno : Radix FZC +// uno : Radix FZC DMCC // https://www.iana.org/domains/root/db/uno.html uno @@ -10713,7 +10713,7 @@ webcam // https://www.iana.org/domains/root/db/weber.html weber -// website : Radix FZC +// website : Radix FZC DMCC // https://www.iana.org/domains/root/db/website.html website From 35009413316a02760b7ac112385ce964239be17a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 27 Aug 2023 13:55:16 +0200 Subject: [PATCH 413/450] Updated list from source (#257) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 14c5f58a..34836b2b 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6719,7 +6719,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-23T15:12:42Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-26T15:11:08Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -9401,7 +9401,7 @@ nyc // https://www.iana.org/domains/root/db/obi.html obi -// observer : Dog Beach, LLC +// observer : Fegistry, LLC // https://www.iana.org/domains/root/db/observer.html observer From 4883fbdbb8e98b82531f92498b846bf9348f817c Mon Sep 17 00:00:00 2001 From: Masafumi Koba <473530+ybiquitous@users.noreply.github.com> Date: Thu, 31 Aug 2023 17:11:14 +0900 Subject: [PATCH 414/450] Reduce gem size (#258) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current published gem includes test files or build files that are actually unneeded. This change removes such files from a published gem. In addition, this removes `test_files` from the gemspec since it is no longer supported. See https://guides.rubygems.org/specification-reference/ Verification: ```console $ bundle exec rake build && gem unpack pkg/*.gem public_suffix 5.0.3 built to pkg/public_suffix-5.0.3.gem. Unpacked gem: '/Users/masafumi.koba/git/ybiquitous/publicsuffix-ruby/public_suffix-5.0.3' $ tree public_suffix-* public_suffix-5.0.3/ ├── .yardopts ├── 2.0-Upgrade.md ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── SECURITY.md ├── data/ │   └── list.txt └── lib/ ├── public_suffix/ │   ├── domain.rb │   ├── errors.rb │   ├── list.rb │   ├── rule.rb │   └── version.rb └── public_suffix.rb 4 directories, 13 files ``` --- public_suffix.gemspec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/public_suffix.gemspec b/public_suffix.gemspec index cbf035c1..6a9ebdf2 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -23,7 +23,6 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 2.6" s.require_paths = ["lib"] - s.files = `git ls-files`.split("\n") - s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") + s.files = `git ls-files -z`.split("\x0").reject { |f| (File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ .git .rubocop Gemfile Rakefile]) } s.extra_rdoc_files = %w( LICENSE.txt ) end From b0bde494206353204b2c08581f50eb0d3dbad4af Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 31 Aug 2023 10:32:04 +0200 Subject: [PATCH 415/450] Update SECURITY.md --- SECURITY.md | 80 ----------------------------------------------------- 1 file changed, 80 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index f3291287..bd0283be 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -18,86 +18,6 @@ To make a report, please email weppos@weppos.net. Please consider encrypting your report with GPG using the key [0x420da82a989398df](https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x420da82a989398df). -``` ------BEGIN PGP PUBLIC KEY BLOCK----- - -xsBNBE/QiI0BCACtBbjJnJIzaLb4NfjaljzT/+dvodst+wyDRE8Vwc6ujwboZjr2 -0QwXScNzObPazyvkSZVh3g6PveneeSD0dSw2XDqKbbtLMg/Ss12yqXJfjavH/zjk -6Xq+nnbSnxBPzwFAAEaEFIc6H6BygJ7zHPP5WEY5QIMqifEAX//aBqHi4GXHJiHE -237Zqufdry23jBYjY7wGXAa11VsU9Iwqh6LPB9/hc1KtzjAuvvm5ufeT/iVjxGQX -te1OZZk6n8xSVYeLsn97PfgYs0yauhexwD9dG7FbRCB379JxPRn5akr391qXcVOG -ZA3yBXUSPOL6D1+TS1S0su5zbw2AEp4+z3SpABEBAAHNIlNpbW9uZSBDYXJsZXR0 -aSA8d2VwcG9zQGdtYWlsLmNvbT7CwHcEEwEKACEFAlXH0UQCGy8FCwkIBwMFFQoJ -CAsFFgIDAQACHgECF4AACgkQQg2oKpiTmN9BOQf/UHd+bmww71MkbS38KkowDu+0 -1VH35aL8sFcAMUSEA4I5oPWZoBtYYPGpALLxtrSNW+SCnmmeCQVfVmLedUVHwDZo -TS4qiynpqnz+Cnq4KRC8VMIyaFoiT5Vg6MLtau8hJtqZn1Wv68g0nXuprsCuf9vs -z7DDZ36z8em6OJQJQ/FQ4BGogzyYHa90cJnIM6BeLiRUUpFTl1tHLlw4JFUNi8sx -6VQ1/nhcr3OyskAix5TytRnJ8uIn22m25GGdTF2WQPNfkWJQVT4ZDbCxT20acRp0 -l3x1DAk3Eel8gOKzgOboB3bkI5/l1XZvNL0YWGZeyfp8I7ZqpXg/m4qLDkYU2cLA -egQTAQoAJAIbLwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCVf6KvAIZAQAKCRBC -DagqmJOY34ABB/9WbNAh0l07UN1ePfVm6Brg2Yt8k6Q2lIRUG2xAeQj/+Kx/4lAL -oY6F0jJ44kIDZqZdNA0QIqYzZRBV4iW+cQrsBUUyM+chiA3RuOsDG18sfvkyPvRy -ecOVubHCN+nK2GKy1oHQkCpVFIeetr0ugB/j+xNDKJ3Oa5dGBKF29ZH5Pxg7cqwH -cdkhBGMpPbBYq5pJtYGggqypELzFTG292StbtV837Eze+clWRTKtMBOHke/oKBCr -YYic2fmipGC9XUiqvMEMAKYq5WWWXIlcSVSnBDdxq41tXjKK4XMVgoOboZCcNFvh -0NxuDQATk1YruRZOS4SpBPXykEA1pK/zm3WmzSNTaW1vbmUgQ2FybGV0dGkgPHdl -cHBvc0B3ZXBwb3MubmV0PsLAeQQTAQIAIwUCT9CIjQIbLwcLCQgHAwIBBhUIAgkK -CwQWAgMBAh4BAheAAAoJEEINqCqYk5jfGWcH/Ax3EhAckGeCqNYE5BTx94bKB1LL -vUjeUoImMtGGFxQu2jNOAjtpuyjihm9uHBZ+dxaxHHrhE11f+0sDcwvW8qtKEzOs -GESr01VqTaVFS2JOEHhLphXseaLXJe32Osz0kHCZmrz1fCwv3b8QuWBifn8oVzcV -vrE7lGC6pGwaiUvMsvA++RUquTlNVlh8uRrqcQCU8Ne9lSoDWHlUJes5s4FoCh3R -oVBcKPsx3m/P9+GlEgTDqYP+WU3sfSfJYERH0r0NAYP96m2e7UQrqdgvMTVVDkPB -UB9efZzgkL7u9IAqmLU2klSGdEZnJ8t1AsjEyHXMztC7ICUhRFCeXHdTNhHCwHwE -EwEKACYCGy8HCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAUCVcfRaQIZAQAKCRBC -DagqmJOY31y1B/41I/SsWwDqJP/Y3LzzatGmIv/gy+LkJBBTr/NV0NYzKV2XJ1BG -ese2ZE4tKKdG4HDwF+IwFLBHcPZRv358IwwTRPnzeO23mxpTYAnRCdg/pcaYIJ9r -OxIOP+R52YbgGrNKcezVA+7TY9za072P7Bk85jTM2FNfqevaf/YQ4GRcGLQ3JI8N -tBUdvrOEETDpR0QFTr22Wv1C7UfPDsSf7ZUM7zJ38CmDji8JSlr6y75/LYSY50BB -8EHb03QxyePe98A3WzvOoqamiCIe9bRzH5IqRAtJYDX8cK4PZmp43bQhrjdjawCc -AU/OY9iz+zCw00+b6CNiRb59N+OwpNJh5iNNwsB5BBMBCgAjAhsvBwsJCAcDAgEG -FQgCCQoLBBYCAwECHgECF4AFAlX+iq0ACgkQQg2oKpiTmN/z2gf/VbcQHgTlXFYa -Sq/dE7S54uGFrdzHOV3IJyl+ByMwVoKn6zdpksRoyt7jPV3RonrUO7jEcrt7VKCU -2KC7/MZMDoUsn9BXXTtUk+uTCNh8qllR0Fo/FvWM9RJKmcDMKwAJwcKIgbfUBJGx -1N6pP2DUc+YCnEerRbnQ1DWJUM7BaOEN6bvPxuGblPst1l6S5VktFj3gZGYItHrs -pit5pesILP8K6B6VCNP2WXXYvYQo7yyYcG8WBWXin8/SdNwU68lUbfhhQVIKv6LU -h0wvgG97NsBPrFbij0K6O63FufnNr9WLMZhAzi0h6gNK2HKAyw9AZNKpPccwg+mX -Huc/4CPRlM0uU2ltb25lIENhcmxldHRpIDxzaW1vbmUuY2FybGV0dGlAZG5zaW1w -bGUuY29tPsLAdwQTAQoAIQUCVh4ipAIbLwULCQgHAwUVCgkICwUWAgMBAAIeAQIX -gAAKCRBCDagqmJOY329iCACpOY5SV7hwOZ8VqmRfxRoHQFQe9Owr+hD3eL0AKZaJ -V918dCPrrxbAmwwMAC8pS8J4CmrrTR27kxcUgVwcfyydFPrgST5pg+H7UTrBR045 -4Npw1+m99I2Pyyl3oaym4lKJFbp2c2DGODEzTg8kKfjk0cb8bd+MJrXqFyod1z5r -0pfexwaLVt1Hz+ZsmFIPO1ISHYBPV8OkpL8Kgb8WtY6REntgNjfcmtHNi0VWQ7+N -vgeYqdhscX8c9ROe26BiiiGXphRlAsCU/VLHOJkzoW3f9QLy4z01Xj/7OaD0JkHS -HrES1ye3ZDxnjnTRdh4U8ntJ+L+xnePcFQA2t0eCbPwIzSZTaW1vbmUgQ2FybGV0 -dGkgPHNpbW9uZUBjYXJsZXR0aS5uYW1lPsLAdwQTAQoAIQUCVf7gmwIbLwULCQgH -AwUVCgkICwUWAgMBAAIeAQIXgAAKCRBCDagqmJOY37L+B/45pWT3wgm43+kzHVOT -j63m4zmRb53TGZToRSxz3acyuVSuqU9Tv010F0ZV9ccb0NDeN+88s9tEisuoO0Rz -5vhC8AtwRUyR3ADE9pBtvvxT+4R9y8yYNTCIX45VPG9ZPp9+7i+XCdKtz30KIV7r -smktd2FrK16r/KUN8+03iZSgzQ9lsTmXK5L7zH/f3Tqhbfvybr4+M71KGnSoP+iP -vwfsoBb5rhijQLOykTb+VzdDpHQbupwxwm/3S4nsA4U6tonIywlJgBDSjgDjQj0i -Ez+Db2Wt59y6LoksRQogvJqm0nuxFUWMZc47zdhsRnqmxUYTNpKaJPWc6pfxsQPK -ZvTjzsBNBE/QiI0BCACsaNbG6kyKJBWL5jPhebsijk8PCfSHte1jNCA5l/NvaImZ -6ORq9f8S9MWlYxmzyUkVJaWrv+9p5zmjwcaegjerj6ggjPDEXlZG41Z4YE1/R8pf -wkSvrkLziBxZDB1aYplg8kgXkaIf2yi2FrMPSi04sjvQbBSCcIJeh6+vGK8tIJTn -e0tQbEvRorTwBAPAFlpx/bdk1wZYu11vFKbckhKWou7f8XSdn9ng9cY5uK+xBlFU -2ORgL1ygeIoY9uRvNZG2ncvCvxUPgOqbo31R8KPyvV4rNNvGBOfxQER9LbieBF2I -5I1gpyboGWKcXu1eV7tOpjtW6LHt+6NHhE6L1Lw1ABEBAAHCwX4EGAECAAkFAk/Q -iI0CGy4BKQkQQg2oKpiTmN/AXSAEGQECAAYFAk/QiI0ACgkQcBROh493BN9hdwf9 -GjiF1GcQN+3TZkXdr2WY0AlbcA/wBp6+ShnqcoU5XLuA0RY3+rWGuaSc2buLke6Y -2MhMAYcgmPdG+WTBoW5dWQGXBZ1IHYVR8HLGaF+Vate1MofE1BNHXhnilIMMfH4G -Tcr3Z3/FaSk9OdHlyiE/Jo7++8PQ+auHVyjtqry+/ysAnyr+lnCn+K4E0PQ1fYpP -fiawKtfSqk9h6HjjMyx9Adrz+ljXh+NyVqYZUfRytjgO+v+dAQmMczT1EawLTdX+ -trx1tHR549pEey7in5QKsje3GLH4zq4mCdWBlivQxmmmlvR07DysLADMbcpjKK2g -utfzygZHCU9hWGR3wbWZ7lXjB/0ZzutNaNYzSCkiC8PIWH1bG+TJO9pslHwP+aBJ -NGAmcwyOH9Bub2CSXikQFZNUmVRwtl7mN4bVAHI8zbMd6xdlX22yDgQei54dPXDw -UYsvGE4zmrD97he1EYcIOKMFHzlJNcWK+uR7lEq6mv7SFGnBr8qTYZRi1bySRgwd -UORuDV12GKTen9WectKtepW0fgYSz+udbDKQyyRef+7xGtCErWRL7f1qr8xm60da -+gSwyD/WkPTY8SP2mdq4u+6m4dWS26kKoENwuL7jUktl/C/EG7NmUKURbXG8lmeu -q59MIs/Fb3SgaO+zN2FZTYp6dyRJHbeEz55JdOu6F+6ihZYH -=j6Xr ------END PGP PUBLIC KEY BLOCK----- -``` - ## Tracking Security Updates From e05b7a25fb3a06e106069b53aa362f110f53ae5b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 31 Aug 2023 10:35:34 +0200 Subject: [PATCH 416/450] Update SECURITY.md --- SECURITY.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SECURITY.md b/SECURITY.md index bd0283be..5cbbec71 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -16,7 +16,8 @@ Older major versions are no longer supported. To make a report, please email weppos@weppos.net. -Please consider encrypting your report with GPG using the key [0x420da82a989398df](https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x420da82a989398df). +> [!IMPORTANT] +> Please consider encrypting your report with GPG using the key [0x420da82a989398df](https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x420da82a989398df). ## Tracking Security Updates From 2a84a64893e1812f1b77c8344460b4c4de85fe85 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 31 Aug 2023 10:46:33 +0200 Subject: [PATCH 417/450] Reorganize public_suffix.gemspec --- public_suffix.gemspec | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/public_suffix.gemspec b/public_suffix.gemspec index 6a9ebdf2..c6b7e003 100644 --- a/public_suffix.gemspec +++ b/public_suffix.gemspec @@ -1,16 +1,18 @@ -# -*- encoding: utf-8 -*- -$LOAD_PATH.push File.expand_path("../lib", __FILE__) -require "public_suffix/version" +# frozen_string_literal: true + +require_relative "lib/public_suffix/version" Gem::Specification.new do |s| - s.name = "public_suffix" - s.version = PublicSuffix::VERSION - s.authors = ["Simone Carletti"] - s.email = ["weppos@weppos.net"] - s.homepage = "https://simonecarletti.com/code/publicsuffix-ruby" - s.summary = "Domain name parser based on the Public Suffix List." + s.name = "public_suffix" + s.version = PublicSuffix::VERSION + s.authors = ["Simone Carletti"] + s.email = ["weppos@weppos.net"] + + s.summary = "Domain name parser based on the Public Suffix List." s.description = "PublicSuffix can parse and decompose a domain name into top level domain, domain and subdomains." - s.licenses = ["MIT"] + s.homepage = "https://simonecarletti.com/code/publicsuffix-ruby" + s.licenses = ["MIT"] + s.required_ruby_version = ">= 2.6" s.metadata = { "bug_tracker_uri" => "https://github.com/weppos/publicsuffix-ruby/issues", @@ -20,9 +22,12 @@ Gem::Specification.new do |s| "source_code_uri" => "https://github.com/weppos/publicsuffix-ruby/tree/v#{s.version}", } - s.required_ruby_version = ">= 2.6" - - s.require_paths = ["lib"] - s.files = `git ls-files -z`.split("\x0").reject { |f| (File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ .git .rubocop Gemfile Rakefile]) } + s.files = Dir.chdir(__dir__) do + `git ls-files -z`.split("\x0").reject do |f| + (File.expand_path(f) == __FILE__) || + f.start_with?(*%w[bin/ test/ .git .rubocop Gemfile Rakefile]) + end + end + s.require_paths = ["lib"] s.extra_rdoc_files = %w( LICENSE.txt ) end From 26e0fee05dd8d304d752084155240eee2b7645f8 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Thu, 31 Aug 2023 10:48:21 +0200 Subject: [PATCH 418/450] CHANGELOG for GH-259 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 829033c1..a5c88558 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). +## main + +### Changed + +- Reduced .gem file size (GH-259). [Thanks @ybiquitous] + ## 5.0.3 ### Fixed From 06169907a630648563b2835cee305fa150845273 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 10:52:36 +0200 Subject: [PATCH 419/450] Bump actions/checkout from 3 to 4 (#260) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/psl-update.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/tests.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index c18df819..e39bd20c 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ba43e1e0..3b818e0c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Release Gem uses: cadwallion/publish-rubygems-action@94a6f4cd5350581749c569b5001eecc864e3ad0b env: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 37e621a9..721ac8fd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: From 772982539db3fffca66c1c7d8dd9b8b6747a4867 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 18 Sep 2023 11:13:38 +0200 Subject: [PATCH 420/450] Updated list from source (#261) Co-authored-by: weppos --- data/list.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/list.txt b/data/list.txt index 34836b2b..027d7bc0 100644 --- a/data/list.txt +++ b/data/list.txt @@ -14886,6 +14886,8 @@ js.wpenginepowered.com // Submitted by Shahar Talmi wixsite.com editorx.io +wixstudio.io +wix.run // XenonCloud GbR: https://xenoncloud.net // Submitted by Julian Uphoff From 892f94d0ab29798d631ac3c1ffffa518664fe442 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 20 Sep 2023 09:15:44 +0200 Subject: [PATCH 421/450] Updated list from source (#262) Co-authored-by: weppos --- data/list.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 027d7bc0..260c5c44 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6031,7 +6031,6 @@ k12.ca.us k12.co.us k12.ct.us k12.dc.us -k12.de.us k12.fl.us k12.ga.us k12.gu.us From 8eda27214157d2f57ea87eb7a65e02f9ac126f63 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 09:26:06 +0200 Subject: [PATCH 422/450] Updated list from source (#263) Co-authored-by: weppos --- data/list.txt | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/data/list.txt b/data/list.txt index 260c5c44..7440fd6a 100644 --- a/data/list.txt +++ b/data/list.txt @@ -1059,22 +1059,11 @@ gouv.fr nom.fr prd.fr tm.fr -// Former "domaines sectoriels", still registration suffixes -aeroport.fr -avocat.fr +// Other SLDs now selfmanaged out of AFNIC range. Former "domaines sectoriels", still registration suffixes avoues.fr cci.fr -chambagri.fr -chirurgiens-dentistes.fr -experts-comptables.fr -geometre-expert.fr greta.fr huissier-justice.fr -medecin.fr -notaires.fr -pharmacien.fr -port.fr -veterinaire.fr // ga : https://en.wikipedia.org/wiki/.ga ga @@ -14421,6 +14410,20 @@ bounty-full.com alpha.bounty-full.com beta.bounty-full.com +// Smallregistry by Promopixel SARL: https://www.smallregistry.net +// Former AFNIC's SLDs +// Submitted by Jérôme Lipowicz +aeroport.fr +avocat.fr +chambagri.fr +chirurgiens-dentistes.fr +experts-comptables.fr +medecin.fr +notaires.fr +pharmacien.fr +port.fr +veterinaire.fr + // Small Technology Foundation : https://small-tech.org // Submitted by Aral Balkan small-web.org From df92b8c26532f39593fdd3a8222cec6d0f57b208 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 2 Oct 2023 12:08:52 +0200 Subject: [PATCH 423/450] Updated list from source (#264) Co-authored-by: weppos --- data/list.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 7440fd6a..456b8aea 100644 --- a/data/list.txt +++ b/data/list.txt @@ -5881,6 +5881,7 @@ kyiv.ua lg.ua lt.ua lugansk.ua +luhansk.ua lutsk.ua lv.ua lviv.ua @@ -5904,11 +5905,13 @@ te.ua ternopil.ua uz.ua uzhgorod.ua +uzhhorod.ua vinnica.ua vinnytsia.ua vn.ua volyn.ua yalta.ua +zakarpattia.ua zaporizhzhe.ua zaporizhzhia.ua zhitomir.ua @@ -6707,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-08-26T15:11:08Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-09-30T15:11:25Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -7405,7 +7408,7 @@ cbs // https://www.iana.org/domains/root/db/center.html center -// ceo : CEOTLD Pty Ltd +// ceo : XYZ.COM LLC // https://www.iana.org/domains/root/db/ceo.html ceo From 07ddcab21ef5d186bafccd250235c6b01186a3bf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 10:05:27 +0200 Subject: [PATCH 424/450] Updated list from source (#266) Co-authored-by: weppos --- data/list.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 456b8aea..013d1c11 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-09-30T15:11:25Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-10-18T15:13:37Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -9672,7 +9672,7 @@ promo // https://www.iana.org/domains/root/db/properties.html properties -// property : Internet Naming Company LLC +// property : Digital Property Infrastructure Limited // https://www.iana.org/domains/root/db/property.html property From df3819309113a608f654f74f7ba2e7cb39e70c29 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 10:01:54 +0100 Subject: [PATCH 425/450] Updated list from source (#267) Co-authored-by: weppos --- data/list.txt | 541 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 507 insertions(+), 34 deletions(-) diff --git a/data/list.txt b/data/list.txt index 013d1c11..807559aa 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-10-18T15:13:37Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-11-03T15:13:18Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -7400,10 +7400,6 @@ cbn // https://www.iana.org/domains/root/db/cbre.html cbre -// cbs : CBS Domains Inc. -// https://www.iana.org/domains/root/db/cbs.html -cbs - // center : Binky Moon, LLC // https://www.iana.org/domains/root/db/center.html center @@ -7492,10 +7488,6 @@ citic // https://www.iana.org/domains/root/db/city.html city -// cityeats : Lifestyle Domain Holdings, Inc. -// https://www.iana.org/domains/root/db/cityeats.html -cityeats - // claims : Binky Moon, LLC // https://www.iana.org/domains/root/db/claims.html claims @@ -7760,10 +7752,6 @@ dental // https://www.iana.org/domains/root/db/dentist.html dentist -// desi : Desi Networks LLC -// https://www.iana.org/domains/root/db/desi.html -desi - // design : Registry Services, LLC // https://www.iana.org/domains/root/db/design.html design @@ -8164,10 +8152,6 @@ frl // https://www.iana.org/domains/root/db/frogans.html frogans -// frontdoor : Lifestyle Domain Holdings, Inc. -// https://www.iana.org/domains/root/db/frontdoor.html -frontdoor - // frontier : Frontier Communications Corporation // https://www.iana.org/domains/root/db/frontier.html frontier @@ -8780,10 +8764,6 @@ kids // https://www.iana.org/domains/root/db/kim.html kim -// kinder : Ferrero Trading Lux S.A. -// https://www.iana.org/domains/root/db/kinder.html -kinder - // kindle : Amazon Registry Services, Inc. // https://www.iana.org/domains/root/db/kindle.html kindle @@ -9836,10 +9816,6 @@ rio // https://www.iana.org/domains/root/db/rip.html rip -// rocher : Ferrero Trading Lux S.A. -// https://www.iana.org/domains/root/db/rocher.html -rocher - // rocks : Dog Beach, LLC // https://www.iana.org/domains/root/db/rocks.html rocks @@ -10088,10 +10064,6 @@ shouji // https://www.iana.org/domains/root/db/show.html show -// showtime : CBS Domains Inc. -// https://www.iana.org/domains/root/db/showtime.html -showtime - // silk : Amazon Registry Services, Inc. // https://www.iana.org/domains/root/db/silk.html silk @@ -11345,11 +11317,78 @@ myamaze.net // Submitted by AWS Security // Subsections of Amazon/subsidiaries will appear until "concludes" tag +// Amazon API Gateway +// Submitted by AWS Security +// Reference: 4d863337-ff98-4501-a6f2-361eba8445d6 +execute-api.cn-north-1.amazonaws.com.cn +execute-api.cn-northwest-1.amazonaws.com.cn +execute-api.af-south-1.amazonaws.com +execute-api.ap-east-1.amazonaws.com +execute-api.ap-northeast-1.amazonaws.com +execute-api.ap-northeast-2.amazonaws.com +execute-api.ap-northeast-3.amazonaws.com +execute-api.ap-south-1.amazonaws.com +execute-api.ap-south-2.amazonaws.com +execute-api.ap-southeast-1.amazonaws.com +execute-api.ap-southeast-2.amazonaws.com +execute-api.ap-southeast-3.amazonaws.com +execute-api.ap-southeast-4.amazonaws.com +execute-api.ca-central-1.amazonaws.com +execute-api.eu-central-1.amazonaws.com +execute-api.eu-central-2.amazonaws.com +execute-api.eu-north-1.amazonaws.com +execute-api.eu-south-1.amazonaws.com +execute-api.eu-south-2.amazonaws.com +execute-api.eu-west-1.amazonaws.com +execute-api.eu-west-2.amazonaws.com +execute-api.eu-west-3.amazonaws.com +execute-api.il-central-1.amazonaws.com +execute-api.me-central-1.amazonaws.com +execute-api.me-south-1.amazonaws.com +execute-api.sa-east-1.amazonaws.com +execute-api.us-east-1.amazonaws.com +execute-api.us-east-2.amazonaws.com +execute-api.us-gov-east-1.amazonaws.com +execute-api.us-gov-west-1.amazonaws.com +execute-api.us-west-1.amazonaws.com +execute-api.us-west-2.amazonaws.com + // Amazon CloudFront // Submitted by Donavan Miller // Reference: 54144616-fd49-4435-8535-19c6a601bdb3 cloudfront.net +// Amazon Cognito +// Submitted by AWS Security +// Reference: 7bee1013-f456-47df-bfe8-03c78d946d61 +auth.af-south-1.amazoncognito.com +auth.ap-northeast-1.amazoncognito.com +auth.ap-northeast-2.amazoncognito.com +auth.ap-northeast-3.amazoncognito.com +auth.ap-south-1.amazoncognito.com +auth.ap-southeast-1.amazoncognito.com +auth.ap-southeast-2.amazoncognito.com +auth.ap-southeast-3.amazoncognito.com +auth.ca-central-1.amazoncognito.com +auth.eu-central-1.amazoncognito.com +auth.eu-north-1.amazoncognito.com +auth.eu-south-1.amazoncognito.com +auth.eu-west-1.amazoncognito.com +auth.eu-west-2.amazoncognito.com +auth.eu-west-3.amazoncognito.com +auth.il-central-1.amazoncognito.com +auth.me-south-1.amazoncognito.com +auth.sa-east-1.amazoncognito.com +auth.us-east-1.amazoncognito.com +auth-fips.us-east-1.amazoncognito.com +auth.us-east-2.amazoncognito.com +auth-fips.us-east-2.amazoncognito.com +auth-fips.us-gov-west-1.amazoncognito.com +auth.us-west-1.amazoncognito.com +auth-fips.us-west-1.amazoncognito.com +auth.us-west-2.amazoncognito.com +auth-fips.us-west-2.amazoncognito.com + // Amazon EC2 // Submitted by Luke Wells // Reference: 4c38fa71-58ac-4768-99e5-689c1767e537 @@ -11358,47 +11397,307 @@ cloudfront.net *.compute.amazonaws.com.cn us-east-1.amazonaws.com +// Amazon EMR +// Submitted by AWS Security +// Reference: 597f3f8e-9283-4e48-8e32-7ee25a1ff6ab +emrappui-prod.cn-north-1.amazonaws.com.cn +emrnotebooks-prod.cn-north-1.amazonaws.com.cn +emrstudio-prod.cn-north-1.amazonaws.com.cn +emrappui-prod.cn-northwest-1.amazonaws.com.cn +emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn +emrstudio-prod.cn-northwest-1.amazonaws.com.cn +emrappui-prod.af-south-1.amazonaws.com +emrnotebooks-prod.af-south-1.amazonaws.com +emrstudio-prod.af-south-1.amazonaws.com +emrappui-prod.ap-east-1.amazonaws.com +emrnotebooks-prod.ap-east-1.amazonaws.com +emrstudio-prod.ap-east-1.amazonaws.com +emrappui-prod.ap-northeast-1.amazonaws.com +emrnotebooks-prod.ap-northeast-1.amazonaws.com +emrstudio-prod.ap-northeast-1.amazonaws.com +emrappui-prod.ap-northeast-2.amazonaws.com +emrnotebooks-prod.ap-northeast-2.amazonaws.com +emrstudio-prod.ap-northeast-2.amazonaws.com +emrappui-prod.ap-northeast-3.amazonaws.com +emrnotebooks-prod.ap-northeast-3.amazonaws.com +emrstudio-prod.ap-northeast-3.amazonaws.com +emrappui-prod.ap-south-1.amazonaws.com +emrnotebooks-prod.ap-south-1.amazonaws.com +emrstudio-prod.ap-south-1.amazonaws.com +emrappui-prod.ap-southeast-1.amazonaws.com +emrnotebooks-prod.ap-southeast-1.amazonaws.com +emrstudio-prod.ap-southeast-1.amazonaws.com +emrappui-prod.ap-southeast-2.amazonaws.com +emrnotebooks-prod.ap-southeast-2.amazonaws.com +emrstudio-prod.ap-southeast-2.amazonaws.com +emrappui-prod.ap-southeast-3.amazonaws.com +emrnotebooks-prod.ap-southeast-3.amazonaws.com +emrstudio-prod.ap-southeast-3.amazonaws.com +emrappui-prod.ca-central-1.amazonaws.com +emrnotebooks-prod.ca-central-1.amazonaws.com +emrstudio-prod.ca-central-1.amazonaws.com +emrappui-prod.eu-central-1.amazonaws.com +emrnotebooks-prod.eu-central-1.amazonaws.com +emrstudio-prod.eu-central-1.amazonaws.com +emrappui-prod.eu-north-1.amazonaws.com +emrnotebooks-prod.eu-north-1.amazonaws.com +emrstudio-prod.eu-north-1.amazonaws.com +emrappui-prod.eu-south-1.amazonaws.com +emrnotebooks-prod.eu-south-1.amazonaws.com +emrstudio-prod.eu-south-1.amazonaws.com +emrappui-prod.eu-west-1.amazonaws.com +emrnotebooks-prod.eu-west-1.amazonaws.com +emrstudio-prod.eu-west-1.amazonaws.com +emrappui-prod.eu-west-2.amazonaws.com +emrnotebooks-prod.eu-west-2.amazonaws.com +emrstudio-prod.eu-west-2.amazonaws.com +emrappui-prod.eu-west-3.amazonaws.com +emrnotebooks-prod.eu-west-3.amazonaws.com +emrstudio-prod.eu-west-3.amazonaws.com +emrappui-prod.me-central-1.amazonaws.com +emrnotebooks-prod.me-central-1.amazonaws.com +emrstudio-prod.me-central-1.amazonaws.com +emrappui-prod.me-south-1.amazonaws.com +emrnotebooks-prod.me-south-1.amazonaws.com +emrstudio-prod.me-south-1.amazonaws.com +emrappui-prod.sa-east-1.amazonaws.com +emrnotebooks-prod.sa-east-1.amazonaws.com +emrstudio-prod.sa-east-1.amazonaws.com +emrappui-prod.us-east-1.amazonaws.com +emrnotebooks-prod.us-east-1.amazonaws.com +emrstudio-prod.us-east-1.amazonaws.com +emrappui-prod.us-east-2.amazonaws.com +emrnotebooks-prod.us-east-2.amazonaws.com +emrstudio-prod.us-east-2.amazonaws.com +emrappui-prod.us-gov-east-1.amazonaws.com +emrnotebooks-prod.us-gov-east-1.amazonaws.com +emrstudio-prod.us-gov-east-1.amazonaws.com +emrappui-prod.us-gov-west-1.amazonaws.com +emrnotebooks-prod.us-gov-west-1.amazonaws.com +emrstudio-prod.us-gov-west-1.amazonaws.com +emrappui-prod.us-west-1.amazonaws.com +emrnotebooks-prod.us-west-1.amazonaws.com +emrstudio-prod.us-west-1.amazonaws.com +emrappui-prod.us-west-2.amazonaws.com +emrnotebooks-prod.us-west-2.amazonaws.com +emrstudio-prod.us-west-2.amazonaws.com + +// Amazon Managed Workflows for Apache Airflow +// Submitted by AWS Security +// Reference: 4ab55e6f-90c0-4a8d-b6a0-52ca5dbb1c2e +*.cn-north-1.airflow.amazonaws.com.cn +*.cn-northwest-1.airflow.amazonaws.com.cn +*.ap-northeast-1.airflow.amazonaws.com +*.ap-northeast-2.airflow.amazonaws.com +*.ap-south-1.airflow.amazonaws.com +*.ap-southeast-1.airflow.amazonaws.com +*.ap-southeast-2.airflow.amazonaws.com +*.ca-central-1.airflow.amazonaws.com +*.eu-central-1.airflow.amazonaws.com +*.eu-north-1.airflow.amazonaws.com +*.eu-west-1.airflow.amazonaws.com +*.eu-west-2.airflow.amazonaws.com +*.eu-west-3.airflow.amazonaws.com +*.sa-east-1.airflow.amazonaws.com +*.us-east-1.airflow.amazonaws.com +*.us-east-2.airflow.amazonaws.com +*.us-west-2.airflow.amazonaws.com + // Amazon S3 -// Submitted by Luke Wells -// Reference: d068bd97-f0a9-4838-a6d8-954b622ef4ae +// Submitted by AWS Security +// Reference: 0e801048-08f2-4064-9cb8-e7373e0b57f4 +s3.dualstack.cn-north-1.amazonaws.com.cn +s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn +s3-website.dualstack.cn-north-1.amazonaws.com.cn s3.cn-north-1.amazonaws.com.cn +s3-accesspoint.cn-north-1.amazonaws.com.cn +s3-deprecated.cn-north-1.amazonaws.com.cn +s3-object-lambda.cn-north-1.amazonaws.com.cn +s3-website.cn-north-1.amazonaws.com.cn +s3.dualstack.cn-northwest-1.amazonaws.com.cn +s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn +s3.cn-northwest-1.amazonaws.com.cn +s3-accesspoint.cn-northwest-1.amazonaws.com.cn +s3-object-lambda.cn-northwest-1.amazonaws.com.cn +s3-website.cn-northwest-1.amazonaws.com.cn +s3.dualstack.af-south-1.amazonaws.com +s3-accesspoint.dualstack.af-south-1.amazonaws.com +s3-website.dualstack.af-south-1.amazonaws.com +s3.af-south-1.amazonaws.com +s3-accesspoint.af-south-1.amazonaws.com +s3-object-lambda.af-south-1.amazonaws.com +s3-website.af-south-1.amazonaws.com +s3.dualstack.ap-east-1.amazonaws.com +s3-accesspoint.dualstack.ap-east-1.amazonaws.com +s3.ap-east-1.amazonaws.com +s3-accesspoint.ap-east-1.amazonaws.com +s3-object-lambda.ap-east-1.amazonaws.com +s3-website.ap-east-1.amazonaws.com s3.dualstack.ap-northeast-1.amazonaws.com +s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com +s3-website.dualstack.ap-northeast-1.amazonaws.com +s3.ap-northeast-1.amazonaws.com +s3-accesspoint.ap-northeast-1.amazonaws.com +s3-object-lambda.ap-northeast-1.amazonaws.com +s3-website.ap-northeast-1.amazonaws.com s3.dualstack.ap-northeast-2.amazonaws.com +s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com +s3-website.dualstack.ap-northeast-2.amazonaws.com s3.ap-northeast-2.amazonaws.com +s3-accesspoint.ap-northeast-2.amazonaws.com +s3-object-lambda.ap-northeast-2.amazonaws.com s3-website.ap-northeast-2.amazonaws.com +s3.dualstack.ap-northeast-3.amazonaws.com +s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com +s3-website.dualstack.ap-northeast-3.amazonaws.com +s3.ap-northeast-3.amazonaws.com +s3-accesspoint.ap-northeast-3.amazonaws.com +s3-object-lambda.ap-northeast-3.amazonaws.com +s3-website.ap-northeast-3.amazonaws.com s3.dualstack.ap-south-1.amazonaws.com +s3-accesspoint.dualstack.ap-south-1.amazonaws.com +s3-website.dualstack.ap-south-1.amazonaws.com s3.ap-south-1.amazonaws.com +s3-accesspoint.ap-south-1.amazonaws.com +s3-object-lambda.ap-south-1.amazonaws.com s3-website.ap-south-1.amazonaws.com +s3.dualstack.ap-south-2.amazonaws.com +s3-accesspoint.dualstack.ap-south-2.amazonaws.com +s3.ap-south-2.amazonaws.com +s3-accesspoint.ap-south-2.amazonaws.com +s3-object-lambda.ap-south-2.amazonaws.com +s3-website.ap-south-2.amazonaws.com s3.dualstack.ap-southeast-1.amazonaws.com +s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com +s3-website.dualstack.ap-southeast-1.amazonaws.com +s3.ap-southeast-1.amazonaws.com +s3-accesspoint.ap-southeast-1.amazonaws.com +s3-object-lambda.ap-southeast-1.amazonaws.com +s3-website.ap-southeast-1.amazonaws.com s3.dualstack.ap-southeast-2.amazonaws.com +s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com +s3-website.dualstack.ap-southeast-2.amazonaws.com +s3.ap-southeast-2.amazonaws.com +s3-accesspoint.ap-southeast-2.amazonaws.com +s3-object-lambda.ap-southeast-2.amazonaws.com +s3-website.ap-southeast-2.amazonaws.com +s3.dualstack.ap-southeast-3.amazonaws.com +s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com +s3.ap-southeast-3.amazonaws.com +s3-accesspoint.ap-southeast-3.amazonaws.com +s3-object-lambda.ap-southeast-3.amazonaws.com +s3-website.ap-southeast-3.amazonaws.com +s3.dualstack.ap-southeast-4.amazonaws.com +s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com +s3.ap-southeast-4.amazonaws.com +s3-accesspoint.ap-southeast-4.amazonaws.com +s3-object-lambda.ap-southeast-4.amazonaws.com +s3-website.ap-southeast-4.amazonaws.com s3.dualstack.ca-central-1.amazonaws.com +s3-accesspoint.dualstack.ca-central-1.amazonaws.com +s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com +s3-fips.dualstack.ca-central-1.amazonaws.com +s3-website.dualstack.ca-central-1.amazonaws.com s3.ca-central-1.amazonaws.com +s3-accesspoint.ca-central-1.amazonaws.com +s3-accesspoint-fips.ca-central-1.amazonaws.com +s3-fips.ca-central-1.amazonaws.com +s3-object-lambda.ca-central-1.amazonaws.com s3-website.ca-central-1.amazonaws.com s3.dualstack.eu-central-1.amazonaws.com +s3-accesspoint.dualstack.eu-central-1.amazonaws.com +s3-website.dualstack.eu-central-1.amazonaws.com s3.eu-central-1.amazonaws.com +s3-accesspoint.eu-central-1.amazonaws.com +s3-object-lambda.eu-central-1.amazonaws.com s3-website.eu-central-1.amazonaws.com +s3.dualstack.eu-central-2.amazonaws.com +s3-accesspoint.dualstack.eu-central-2.amazonaws.com +s3.eu-central-2.amazonaws.com +s3-accesspoint.eu-central-2.amazonaws.com +s3-object-lambda.eu-central-2.amazonaws.com +s3-website.eu-central-2.amazonaws.com +s3.dualstack.eu-north-1.amazonaws.com +s3-accesspoint.dualstack.eu-north-1.amazonaws.com +s3.eu-north-1.amazonaws.com +s3-accesspoint.eu-north-1.amazonaws.com +s3-object-lambda.eu-north-1.amazonaws.com +s3-website.eu-north-1.amazonaws.com +s3.dualstack.eu-south-1.amazonaws.com +s3-accesspoint.dualstack.eu-south-1.amazonaws.com +s3-website.dualstack.eu-south-1.amazonaws.com +s3.eu-south-1.amazonaws.com +s3-accesspoint.eu-south-1.amazonaws.com +s3-object-lambda.eu-south-1.amazonaws.com +s3-website.eu-south-1.amazonaws.com +s3.dualstack.eu-south-2.amazonaws.com +s3-accesspoint.dualstack.eu-south-2.amazonaws.com +s3.eu-south-2.amazonaws.com +s3-accesspoint.eu-south-2.amazonaws.com +s3-object-lambda.eu-south-2.amazonaws.com +s3-website.eu-south-2.amazonaws.com s3.dualstack.eu-west-1.amazonaws.com +s3-accesspoint.dualstack.eu-west-1.amazonaws.com +s3-website.dualstack.eu-west-1.amazonaws.com +s3.eu-west-1.amazonaws.com +s3-accesspoint.eu-west-1.amazonaws.com +s3-deprecated.eu-west-1.amazonaws.com +s3-object-lambda.eu-west-1.amazonaws.com +s3-website.eu-west-1.amazonaws.com s3.dualstack.eu-west-2.amazonaws.com +s3-accesspoint.dualstack.eu-west-2.amazonaws.com s3.eu-west-2.amazonaws.com +s3-accesspoint.eu-west-2.amazonaws.com +s3-object-lambda.eu-west-2.amazonaws.com s3-website.eu-west-2.amazonaws.com s3.dualstack.eu-west-3.amazonaws.com +s3-accesspoint.dualstack.eu-west-3.amazonaws.com +s3-website.dualstack.eu-west-3.amazonaws.com s3.eu-west-3.amazonaws.com +s3-accesspoint.eu-west-3.amazonaws.com +s3-object-lambda.eu-west-3.amazonaws.com s3-website.eu-west-3.amazonaws.com +s3.dualstack.il-central-1.amazonaws.com +s3-accesspoint.dualstack.il-central-1.amazonaws.com +s3.il-central-1.amazonaws.com +s3-accesspoint.il-central-1.amazonaws.com +s3-object-lambda.il-central-1.amazonaws.com +s3-website.il-central-1.amazonaws.com +s3.dualstack.me-central-1.amazonaws.com +s3-accesspoint.dualstack.me-central-1.amazonaws.com +s3.me-central-1.amazonaws.com +s3-accesspoint.me-central-1.amazonaws.com +s3-object-lambda.me-central-1.amazonaws.com +s3-website.me-central-1.amazonaws.com +s3.dualstack.me-south-1.amazonaws.com +s3-accesspoint.dualstack.me-south-1.amazonaws.com +s3.me-south-1.amazonaws.com +s3-accesspoint.me-south-1.amazonaws.com +s3-object-lambda.me-south-1.amazonaws.com +s3-website.me-south-1.amazonaws.com s3.amazonaws.com +s3-1.amazonaws.com +s3-ap-east-1.amazonaws.com s3-ap-northeast-1.amazonaws.com s3-ap-northeast-2.amazonaws.com +s3-ap-northeast-3.amazonaws.com s3-ap-south-1.amazonaws.com s3-ap-southeast-1.amazonaws.com s3-ap-southeast-2.amazonaws.com s3-ca-central-1.amazonaws.com s3-eu-central-1.amazonaws.com +s3-eu-north-1.amazonaws.com s3-eu-west-1.amazonaws.com s3-eu-west-2.amazonaws.com s3-eu-west-3.amazonaws.com s3-external-1.amazonaws.com +s3-fips-us-gov-east-1.amazonaws.com s3-fips-us-gov-west-1.amazonaws.com +mrap.accesspoint.s3-global.amazonaws.com +s3-me-south-1.amazonaws.com s3-sa-east-1.amazonaws.com s3-us-east-2.amazonaws.com +s3-us-gov-east-1.amazonaws.com s3-us-gov-west-1.amazonaws.com s3-us-west-1.amazonaws.com s3-us-west-2.amazonaws.com @@ -11408,23 +11707,182 @@ s3-website-ap-southeast-2.amazonaws.com s3-website-eu-west-1.amazonaws.com s3-website-sa-east-1.amazonaws.com s3-website-us-east-1.amazonaws.com +s3-website-us-gov-west-1.amazonaws.com s3-website-us-west-1.amazonaws.com s3-website-us-west-2.amazonaws.com s3.dualstack.sa-east-1.amazonaws.com +s3-accesspoint.dualstack.sa-east-1.amazonaws.com +s3-website.dualstack.sa-east-1.amazonaws.com +s3.sa-east-1.amazonaws.com +s3-accesspoint.sa-east-1.amazonaws.com +s3-object-lambda.sa-east-1.amazonaws.com +s3-website.sa-east-1.amazonaws.com s3.dualstack.us-east-1.amazonaws.com +s3-accesspoint.dualstack.us-east-1.amazonaws.com +s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com +s3-fips.dualstack.us-east-1.amazonaws.com +s3-website.dualstack.us-east-1.amazonaws.com +s3.us-east-1.amazonaws.com +s3-accesspoint.us-east-1.amazonaws.com +s3-accesspoint-fips.us-east-1.amazonaws.com +s3-deprecated.us-east-1.amazonaws.com +s3-fips.us-east-1.amazonaws.com +s3-object-lambda.us-east-1.amazonaws.com +s3-website.us-east-1.amazonaws.com s3.dualstack.us-east-2.amazonaws.com +s3-accesspoint.dualstack.us-east-2.amazonaws.com +s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com +s3-fips.dualstack.us-east-2.amazonaws.com s3.us-east-2.amazonaws.com +s3-accesspoint.us-east-2.amazonaws.com +s3-accesspoint-fips.us-east-2.amazonaws.com +s3-deprecated.us-east-2.amazonaws.com +s3-fips.us-east-2.amazonaws.com +s3-object-lambda.us-east-2.amazonaws.com s3-website.us-east-2.amazonaws.com +s3.dualstack.us-gov-east-1.amazonaws.com +s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com +s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com +s3-fips.dualstack.us-gov-east-1.amazonaws.com +s3.us-gov-east-1.amazonaws.com +s3-accesspoint.us-gov-east-1.amazonaws.com +s3-accesspoint-fips.us-gov-east-1.amazonaws.com +s3-fips.us-gov-east-1.amazonaws.com +s3-object-lambda.us-gov-east-1.amazonaws.com +s3-website.us-gov-east-1.amazonaws.com +s3.dualstack.us-gov-west-1.amazonaws.com +s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com +s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com +s3-fips.dualstack.us-gov-west-1.amazonaws.com +s3.us-gov-west-1.amazonaws.com +s3-accesspoint.us-gov-west-1.amazonaws.com +s3-accesspoint-fips.us-gov-west-1.amazonaws.com +s3-fips.us-gov-west-1.amazonaws.com +s3-object-lambda.us-gov-west-1.amazonaws.com +s3-website.us-gov-west-1.amazonaws.com +s3.dualstack.us-west-1.amazonaws.com +s3-accesspoint.dualstack.us-west-1.amazonaws.com +s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com +s3-fips.dualstack.us-west-1.amazonaws.com +s3-website.dualstack.us-west-1.amazonaws.com +s3.us-west-1.amazonaws.com +s3-accesspoint.us-west-1.amazonaws.com +s3-accesspoint-fips.us-west-1.amazonaws.com +s3-fips.us-west-1.amazonaws.com +s3-object-lambda.us-west-1.amazonaws.com +s3-website.us-west-1.amazonaws.com +s3.dualstack.us-west-2.amazonaws.com +s3-accesspoint.dualstack.us-west-2.amazonaws.com +s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com +s3-fips.dualstack.us-west-2.amazonaws.com +s3-website.dualstack.us-west-2.amazonaws.com +s3.us-west-2.amazonaws.com +s3-accesspoint.us-west-2.amazonaws.com +s3-accesspoint-fips.us-west-2.amazonaws.com +s3-deprecated.us-west-2.amazonaws.com +s3-fips.us-west-2.amazonaws.com +s3-object-lambda.us-west-2.amazonaws.com +s3-website.us-west-2.amazonaws.com + +// Amazon SageMaker Notebook Instances +// Submitted by AWS Security +// Reference: fe8c9e94-5a22-486d-8750-991a3a9b13c6 +notebook.af-south-1.sagemaker.aws +notebook.ap-east-1.sagemaker.aws +notebook.ap-northeast-1.sagemaker.aws +notebook.ap-northeast-2.sagemaker.aws +notebook.ap-northeast-3.sagemaker.aws +notebook.ap-south-1.sagemaker.aws +notebook.ap-south-2.sagemaker.aws +notebook.ap-southeast-1.sagemaker.aws +notebook.ap-southeast-2.sagemaker.aws +notebook.ap-southeast-3.sagemaker.aws +notebook.ap-southeast-4.sagemaker.aws +notebook.ca-central-1.sagemaker.aws +notebook.eu-central-1.sagemaker.aws +notebook.eu-central-2.sagemaker.aws +notebook.eu-north-1.sagemaker.aws +notebook.eu-south-1.sagemaker.aws +notebook.eu-south-2.sagemaker.aws +notebook.eu-west-1.sagemaker.aws +notebook.eu-west-2.sagemaker.aws +notebook.eu-west-3.sagemaker.aws +notebook.il-central-1.sagemaker.aws +notebook.me-central-1.sagemaker.aws +notebook.me-south-1.sagemaker.aws +notebook.sa-east-1.sagemaker.aws +notebook.us-east-1.sagemaker.aws +notebook-fips.us-east-1.sagemaker.aws +notebook.us-east-2.sagemaker.aws +notebook-fips.us-east-2.sagemaker.aws +notebook.us-gov-east-1.sagemaker.aws +notebook-fips.us-gov-east-1.sagemaker.aws +notebook.us-gov-west-1.sagemaker.aws +notebook-fips.us-gov-west-1.sagemaker.aws +notebook.us-west-1.sagemaker.aws +notebook.us-west-2.sagemaker.aws +notebook-fips.us-west-2.sagemaker.aws +notebook.cn-north-1.sagemaker.com.cn +notebook.cn-northwest-1.sagemaker.com.cn + +// Amazon SageMaker Studio +// Submitted by AWS Security +// Reference: 057ee397-6bf8-4f20-b807-d7bc145ac980 +studio.af-south-1.sagemaker.aws +studio.ap-east-1.sagemaker.aws +studio.ap-northeast-1.sagemaker.aws +studio.ap-northeast-2.sagemaker.aws +studio.ap-northeast-3.sagemaker.aws +studio.ap-south-1.sagemaker.aws +studio.ap-southeast-1.sagemaker.aws +studio.ap-southeast-2.sagemaker.aws +studio.ap-southeast-3.sagemaker.aws +studio.ca-central-1.sagemaker.aws +studio.eu-central-1.sagemaker.aws +studio.eu-north-1.sagemaker.aws +studio.eu-south-1.sagemaker.aws +studio.eu-west-1.sagemaker.aws +studio.eu-west-2.sagemaker.aws +studio.eu-west-3.sagemaker.aws +studio.il-central-1.sagemaker.aws +studio.me-central-1.sagemaker.aws +studio.me-south-1.sagemaker.aws +studio.sa-east-1.sagemaker.aws +studio.us-east-1.sagemaker.aws +studio.us-east-2.sagemaker.aws +studio.us-gov-east-1.sagemaker.aws +studio-fips.us-gov-east-1.sagemaker.aws +studio.us-gov-west-1.sagemaker.aws +studio-fips.us-gov-west-1.sagemaker.aws +studio.us-west-1.sagemaker.aws +studio.us-west-2.sagemaker.aws +studio.cn-north-1.sagemaker.com.cn +studio.cn-northwest-1.sagemaker.com.cn // Analytics on AWS // Submitted by AWS Security -// Reference: c02c3a80-f8a0-4fd2-b719-48ea8b7c28de +// Reference: 955f9f40-a495-4e73-ae85-67b77ac9cadd analytics-gateway.ap-northeast-1.amazonaws.com +analytics-gateway.ap-northeast-2.amazonaws.com +analytics-gateway.ap-south-1.amazonaws.com +analytics-gateway.ap-southeast-1.amazonaws.com +analytics-gateway.ap-southeast-2.amazonaws.com +analytics-gateway.eu-central-1.amazonaws.com analytics-gateway.eu-west-1.amazonaws.com analytics-gateway.us-east-1.amazonaws.com analytics-gateway.us-east-2.amazonaws.com analytics-gateway.us-west-2.amazonaws.com +// AWS Amplify +// Submitted by AWS Security +// Reference: 5ecce854-c033-4fc4-a755-1a9916d9a9bb +*.amplifyapp.com + +// AWS App Runner +// Submitted by AWS Security +// Reference: 6828c008-ba5d-442f-ade5-48da4e7c2316 +*.awsapprunner.com + // AWS Cloud9 // Submitted by: AWS Security // Reference: 05c44955-977c-4b57-938a-f2af92733f9f @@ -11493,25 +11951,33 @@ vfs.cloud9.us-west-2.amazonaws.com webview-assets.cloud9.us-west-2.amazonaws.com // AWS Elastic Beanstalk -// Submitted by Luke Wells -// Reference: aa202394-43a0-4857-b245-8db04549137e +// Submitted by AWS Security +// Reference: bb5a965c-dec3-4967-aa22-e306ad064797 cn-north-1.eb.amazonaws.com.cn cn-northwest-1.eb.amazonaws.com.cn elasticbeanstalk.com +af-south-1.elasticbeanstalk.com +ap-east-1.elasticbeanstalk.com ap-northeast-1.elasticbeanstalk.com ap-northeast-2.elasticbeanstalk.com ap-northeast-3.elasticbeanstalk.com ap-south-1.elasticbeanstalk.com ap-southeast-1.elasticbeanstalk.com ap-southeast-2.elasticbeanstalk.com +ap-southeast-3.elasticbeanstalk.com ca-central-1.elasticbeanstalk.com eu-central-1.elasticbeanstalk.com +eu-north-1.elasticbeanstalk.com +eu-south-1.elasticbeanstalk.com eu-west-1.elasticbeanstalk.com eu-west-2.elasticbeanstalk.com eu-west-3.elasticbeanstalk.com +il-central-1.elasticbeanstalk.com +me-south-1.elasticbeanstalk.com sa-east-1.elasticbeanstalk.com us-east-1.elasticbeanstalk.com us-east-2.elasticbeanstalk.com +us-gov-east-1.elasticbeanstalk.com us-gov-west-1.elasticbeanstalk.com us-west-1.elasticbeanstalk.com us-west-2.elasticbeanstalk.com @@ -13619,6 +14085,10 @@ azurestaticapps.net 1.azurestaticapps.net 2.azurestaticapps.net 3.azurestaticapps.net +4.azurestaticapps.net +5.azurestaticapps.net +6.azurestaticapps.net +7.azurestaticapps.net centralus.azurestaticapps.net eastasia.azurestaticapps.net eastus2.azurestaticapps.net @@ -13699,6 +14169,9 @@ sa.ngrok.io us.ngrok.io ngrok.pizza +// Nicolaus Copernicus University in Torun - MSK TORMAN (https://www.man.torun.pl) +torun.pl + // Nimbus Hosting Ltd. : https://www.nimbushosting.co.uk/ // Submitted by Nicholas Ford nh-serv.co.uk From d8b853af46ca5ee34d2626f7162f22690b8ee642 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Nov 2023 09:19:46 +0100 Subject: [PATCH 426/450] Updated list from source (#269) Co-authored-by: weppos --- data/list.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 807559aa..fff6e9a4 100644 --- a/data/list.txt +++ b/data/list.txt @@ -13240,7 +13240,7 @@ freemyip.com // Submitted by Daniel A. Maierhofer wien.funkfeuer.at -// Futureweb OG : http://www.futureweb.at +// Futureweb GmbH : https://www.futureweb.at // Submitted by Andreas Schnederle-Wagner *.futurecms.at *.ex.futurecms.at From a3118263c211590959d57142d659cb5d83d68e72 Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 17 Nov 2023 13:38:35 +0100 Subject: [PATCH 427/450] Release 5.0.4 --- CHANGELOG.md | 3 ++- lib/public_suffix/version.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5c88558..34a4e678 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,12 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). -## main +## 5.0.4 ### Changed - Reduced .gem file size (GH-259). [Thanks @ybiquitous] +- Updated definitions. ## 5.0.3 diff --git a/lib/public_suffix/version.rb b/lib/public_suffix/version.rb index 41d0b26c..a819359f 100644 --- a/lib/public_suffix/version.rb +++ b/lib/public_suffix/version.rb @@ -9,6 +9,6 @@ module PublicSuffix # @return [String] the current library version - VERSION = "5.0.3" + VERSION = "5.0.4" end From a86b1e5a302bb7f7a36f59a3dec2980b19901a3f Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 17 Nov 2023 13:43:01 +0100 Subject: [PATCH 428/450] Update release.yml --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b818e0c..8d5a4478 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,7 @@ name: Release on: + workflow_dispatch: push: tags: - v*.*.* From d500f0765bfbe4bddbbf9e6ffee1d311b586c31b Mon Sep 17 00:00:00 2001 From: Simone Carletti Date: Fri, 17 Nov 2023 13:43:15 +0100 Subject: [PATCH 429/450] Update release.yml --- .github/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8d5a4478..51ee554c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,8 +10,7 @@ jobs: release: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - name: Release Gem uses: cadwallion/publish-rubygems-action@94a6f4cd5350581749c569b5001eecc864e3ad0b env: From 30639a3ec2d263d183df804a555b32fa6010995b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 12:15:27 +0100 Subject: [PATCH 430/450] Updated list from source (#270) Co-authored-by: weppos --- data/list.txt | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/data/list.txt b/data/list.txt index fff6e9a4..30d71f37 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-11-03T15:13:18Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-11-18T15:11:52Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -7928,10 +7928,6 @@ esq // https://www.iana.org/domains/root/db/estate.html estate -// etisalat : Emirates Telecommunications Corporation (trading as Etisalat) -// https://www.iana.org/domains/root/db/etisalat.html -etisalat - // eurovision : European Broadcasting Union (EBU) // https://www.iana.org/domains/root/db/eurovision.html eurovision @@ -11012,10 +11008,6 @@ xin // https://www.iana.org/domains/root/db/xn--mgba7c0bbn0a.html العليان -// xn--mgbaakc7dvf : Emirates Telecommunications Corporation (trading as Etisalat) -// https://www.iana.org/domains/root/db/xn--mgbaakc7dvf.html -اتصالات - // xn--mgbab2bd : CORE Association // https://www.iana.org/domains/root/db/xn--mgbab2bd.html بازار From b57b9e071e0beaeaf64db968e52ed50517168f3c Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Mon, 20 Nov 2023 10:13:30 -0300 Subject: [PATCH 431/450] chore(changelog): fix wrong linked pull request (#271) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34a4e678..56f1acb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ This project uses [Semantic Versioning 2.0.0](https://semver.org/). ### Changed -- Reduced .gem file size (GH-259). [Thanks @ybiquitous] +- Reduced .gem file size (GH-258). [Thanks @ybiquitous] - Updated definitions. ## 5.0.3 From 1a707b3482beab88cbbcc5811ce6dba9dc43afb9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Nov 2023 10:50:42 +0100 Subject: [PATCH 432/450] Updated list from source (#272) Co-authored-by: weppos --- data/list.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/data/list.txt b/data/list.txt index 30d71f37..1c8d99f8 100644 --- a/data/list.txt +++ b/data/list.txt @@ -7752,6 +7752,10 @@ dental // https://www.iana.org/domains/root/db/dentist.html dentist +// desi +// https://www.iana.org/domains/root/db/desi.html +desi + // design : Registry Services, LLC // https://www.iana.org/domains/root/db/design.html design @@ -10676,6 +10680,10 @@ weber // https://www.iana.org/domains/root/db/website.html website +// wed +// https://www.iana.org/domains/root/db/wed.html +wed + // wedding : Registry Services, LLC // https://www.iana.org/domains/root/db/wedding.html wedding @@ -13185,7 +13193,7 @@ shw.io // Submitted by Jonathan Rudenberg flynnhosting.net -// Forgerock : https://www.forgerock.com +// Forgerock : https://www.forgerock.com // Submitted by Roderick Parr forgeblocks.com id.forgerock.io @@ -14879,7 +14887,7 @@ alpha.bounty-full.com beta.bounty-full.com // Smallregistry by Promopixel SARL: https://www.smallregistry.net -// Former AFNIC's SLDs +// Former AFNIC's SLDs // Submitted by Jérôme Lipowicz aeroport.fr avocat.fr From 0bdaf0f1e9d2c5ef8dca5c8fc35acadba1cbfe13 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 11:28:11 +0100 Subject: [PATCH 433/450] Updated list from source (#273) Co-authored-by: weppos --- data/list.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/data/list.txt b/data/list.txt index 1c8d99f8..13c5192a 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-11-18T15:11:52Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-11-21T15:13:47Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -10608,10 +10608,6 @@ vlaanderen // https://www.iana.org/domains/root/db/vodka.html vodka -// volkswagen : Volkswagen Group of America Inc. -// https://www.iana.org/domains/root/db/volkswagen.html -volkswagen - // volvo : Volvo Holding Sverige Aktiebolag // https://www.iana.org/domains/root/db/volvo.html volvo From 3a60e5e4ef085590a11ce704b8f596b928b51dab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 11:19:24 +0100 Subject: [PATCH 434/450] Updated list from source (#274) Co-authored-by: weppos --- data/list.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/data/list.txt b/data/list.txt index 13c5192a..79248a73 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-11-21T15:13:47Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-12-06T15:14:09Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -7800,7 +7800,7 @@ discover // https://www.iana.org/domains/root/db/dish.html dish -// diy : Lifestyle Domain Holdings, Inc. +// diy : Internet Naming Company LLC // https://www.iana.org/domains/root/db/diy.html diy @@ -8104,7 +8104,7 @@ fly // https://www.iana.org/domains/root/db/foo.html foo -// food : Lifestyle Domain Holdings, Inc. +// food : Internet Naming Company LLC // https://www.iana.org/domains/root/db/food.html food @@ -8312,7 +8312,7 @@ goldpoint // https://www.iana.org/domains/root/db/golf.html golf -// goo : NTT Resonant Inc. +// goo : NTT DOCOMO, INC. // https://www.iana.org/domains/root/db/goo.html goo @@ -8908,7 +8908,7 @@ life // https://www.iana.org/domains/root/db/lifeinsurance.html lifeinsurance -// lifestyle : Lifestyle Domain Holdings, Inc. +// lifestyle : Internet Naming Company LLC // https://www.iana.org/domains/root/db/lifestyle.html lifestyle @@ -8948,7 +8948,7 @@ lipsy // https://www.iana.org/domains/root/db/live.html live -// living : Lifestyle Domain Holdings, Inc. +// living : Internet Naming Company LLC // https://www.iana.org/domains/root/db/living.html living @@ -10524,7 +10524,7 @@ ups // https://www.iana.org/domains/root/db/vacations.html vacations -// vana : Lifestyle Domain Holdings, Inc. +// vana : Internet Naming Company LLC // https://www.iana.org/domains/root/db/vana.html vana From 26d0eb90e7666718a1e4b00e60609aad283a9f44 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 18:45:24 +0100 Subject: [PATCH 435/450] Updated list from source (#275) Co-authored-by: weppos --- data/list.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/data/list.txt b/data/list.txt index 79248a73..d9143702 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-12-06T15:14:09Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-12-12T15:13:54Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -9928,10 +9928,6 @@ sbi // https://www.iana.org/domains/root/db/sbs.html sbs -// sca : SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) -// https://www.iana.org/domains/root/db/sca.html -sca - // scb : The Siam Commercial Bank Public Company Limited ("SCB") // https://www.iana.org/domains/root/db/scb.html scb From 74189a3f2025f63df3ab6c5764792733bf273722 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 11:54:29 +0100 Subject: [PATCH 436/450] Updated list from source (#276) Co-authored-by: weppos --- data/list.txt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/data/list.txt b/data/list.txt index d9143702..6d6af67d 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-12-12T15:13:54Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-01-06T15:12:04Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -8720,7 +8720,7 @@ jpmorgan // https://www.iana.org/domains/root/db/jprs.html jprs -// juegos : Internet Naming Company LLC +// juegos : Dog Beach, LLC // https://www.iana.org/domains/root/db/juegos.html juegos @@ -13426,10 +13426,6 @@ london.cloudapps.digital // Submitted by Richard Baker pymnt.uk -// UKHomeOffice : https://www.gov.uk/government/organisations/home-office -// Submitted by Jon Shanks -homeoffice.gov.uk - // GlobeHosting, Inc. // Submitted by Zoltan Egresi ro.im From d7bd1be8d5e5f0a133cae4baf9dd0e57cb5837f8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 10:24:40 +0100 Subject: [PATCH 437/450] Updated list from source (#277) Co-authored-by: weppos --- data/list.txt | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/data/list.txt b/data/list.txt index 6d6af67d..988e11d2 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-01-06T15:12:04Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-01-23T15:14:10Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -7016,10 +7016,6 @@ baidu // https://www.iana.org/domains/root/db/banamex.html banamex -// bananarepublic : The Gap, Inc. -// https://www.iana.org/domains/root/db/bananarepublic.html -bananarepublic - // band : Dog Beach, LLC // https://www.iana.org/domains/root/db/band.html band @@ -9392,10 +9388,6 @@ olayan // https://www.iana.org/domains/root/db/olayangroup.html olayangroup -// oldnavy : The Gap, Inc. -// https://www.iana.org/domains/root/db/oldnavy.html -oldnavy - // ollo : Dish DBS Corporation // https://www.iana.org/domains/root/db/ollo.html ollo From 65c71b23b54c2c100d019fbbe732816769fab2d8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:45:26 +0100 Subject: [PATCH 438/450] Updated list from source (#278) Co-authored-by: weppos --- data/list.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/data/list.txt b/data/list.txt index 988e11d2..7f20b319 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-01-23T15:14:10Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-01-24T15:14:29Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -8160,7 +8160,7 @@ ftr // https://www.iana.org/domains/root/db/fujitsu.html fujitsu -// fun : Radix FZC DMCC +// fun : Radix Technologies Inc. // https://www.iana.org/domains/root/db/fun.html fun @@ -8496,7 +8496,7 @@ horse // https://www.iana.org/domains/root/db/hospital.html hospital -// host : Radix FZC DMCC +// host : Radix Technologies Inc. // https://www.iana.org/domains/root/db/host.html host @@ -9408,7 +9408,7 @@ ong // https://www.iana.org/domains/root/db/onl.html onl -// online : Radix FZC DMCC +// online : Radix Technologies Inc. // https://www.iana.org/domains/root/db/online.html online @@ -9612,7 +9612,7 @@ pramerica // https://www.iana.org/domains/root/db/praxi.html praxi -// press : Radix FZC DMCC +// press : Radix Technologies Inc. // https://www.iana.org/domains/root/db/press.html press @@ -10064,7 +10064,7 @@ sina // https://www.iana.org/domains/root/db/singles.html singles -// site : Radix FZC DMCC +// site : Radix Technologies Inc. // https://www.iana.org/domains/root/db/site.html site @@ -10144,7 +10144,7 @@ soy // https://www.iana.org/domains/root/db/spa.html spa -// space : Radix FZC DMCC +// space : Radix Technologies Inc. // https://www.iana.org/domains/root/db/space.html space @@ -10196,7 +10196,7 @@ stockholm // https://www.iana.org/domains/root/db/storage.html storage -// store : Radix FZC DMCC +// store : Radix Technologies Inc. // https://www.iana.org/domains/root/db/store.html store @@ -10312,7 +10312,7 @@ tdk // https://www.iana.org/domains/root/db/team.html team -// tech : Radix FZC DMCC +// tech : Radix Technologies Inc. // https://www.iana.org/domains/root/db/tech.html tech @@ -10496,7 +10496,7 @@ unicom // https://www.iana.org/domains/root/db/university.html university -// uno : Radix FZC DMCC +// uno : Radix Technologies Inc. // https://www.iana.org/domains/root/db/uno.html uno @@ -10660,7 +10660,7 @@ webcam // https://www.iana.org/domains/root/db/weber.html weber -// website : Radix FZC DMCC +// website : Radix Technologies Inc. // https://www.iana.org/domains/root/db/website.html website From 629f05ce26194ff6f4e912f199c67ea40f2008f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:36:02 +0100 Subject: [PATCH 439/450] Updated list from source (#279) Co-authored-by: weppos --- data/list.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/data/list.txt b/data/list.txt index 7f20b319..7bd88865 100644 --- a/data/list.txt +++ b/data/list.txt @@ -11230,8 +11230,10 @@ activetrail.biz // Submitted by Ian Boston and Lars Trieloff adobeaemcloud.com *.dev.adobeaemcloud.com +aem.live hlx.live adobeaemcloud.net +aem.page hlx.page hlx3.page @@ -13006,10 +13008,6 @@ url.tw // Submitted by Eric Jiang onfabrica.com -// Facebook, Inc. -// Submitted by Peter Ruibal -apps.fbsbx.com - // FAITID : https://faitid.org/ // Submitted by Maxim Alzoba // https://www.flexireg.net/stat_info @@ -14037,6 +14035,11 @@ memset.net // Submitted by Ruben Schmidmeister messerli.app +// Meta Platforms, Inc. : https://meta.com/ +// Submitted by Jacob Cordero +atmeta.com +apps.fbsbx.com + // MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ // Submitted by Zdeněk Šustr *.cloud.metacentrum.cz @@ -14725,10 +14728,11 @@ from.tv sakura.tv // Salesforce.com, Inc. https://salesforce.com/ -// Submitted by Michael Biven +// Submitted by Michael Biven and Aaron Romeo *.builder.code.com *.dev-builder.code.com *.stg-builder.code.com +*.001.test.code-builder-stg.platform.salesforce.com // Sandstorm Development Group, Inc. : https://sandcats.io/ // Submitted by Asheesh Laroia From 94662e07e856f56c49b3ebdca2b60b9d5dc6d1a3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 12:42:19 +0100 Subject: [PATCH 440/450] Updated list from source (#280) Co-authored-by: weppos --- data/list.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 7bd88865..d36c3c7e 100644 --- a/data/list.txt +++ b/data/list.txt @@ -12107,6 +12107,10 @@ beagleboard.io // Submitted by Lev Nekrasov *.beget.app +// Besties : https://besties.house +// Submitted by Hazel Cora +pages.gay + // BetaInABox // Submitted by Adrian betainabox.com @@ -14466,7 +14470,8 @@ on-web.fr // Platform.sh : https://platform.sh // Submitted by Nikola Kotur -bc.platform.sh +*.upsun.app +upsunapp.com ent.platform.sh eu.platform.sh us.platform.sh From ada7d78df88f84438c486c55a678c1ba3a95ea9e Mon Sep 17 00:00:00 2001 From: Masato Nakamura Date: Thu, 1 Feb 2024 00:55:27 +0900 Subject: [PATCH 441/450] Add Ruby 3.3 to CI matrix (#281) --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 721ac8fd..9f2cf14d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,6 +15,7 @@ jobs: - "3.0" - "3.1" - "3.2" + - "3.3" runs-on: ubuntu-latest steps: - name: Checkout From 30b3c88f4c7a43813a89e361df0d30f5cb5ebb8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 10:05:32 +0100 Subject: [PATCH 442/450] Bump peter-evans/create-pull-request from 5 to 6 (#282) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/psl-update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/psl-update.yml b/.github/workflows/psl-update.yml index e39bd20c..7c867eb2 100644 --- a/.github/workflows/psl-update.yml +++ b/.github/workflows/psl-update.yml @@ -23,7 +23,7 @@ jobs: run: bundle exec rake update-list - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 + uses: peter-evans/create-pull-request@v6 with: title: PSL auto-update commit-message: Updated list from source From 6a3e2717c672933c71f7fc658200d8fb68bd31df Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 09:42:31 +0100 Subject: [PATCH 443/450] Updated list from source (#283) Co-authored-by: weppos <5387+weppos@users.noreply.github.com> --- data/list.txt | 76 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 68 insertions(+), 8 deletions(-) diff --git a/data/list.txt b/data/list.txt index d36c3c7e..79e5d191 100644 --- a/data/list.txt +++ b/data/list.txt @@ -11201,6 +11201,12 @@ zuerich // ===BEGIN PRIVATE DOMAINS=== // (Note: these are in alphabetical order by company name) +// 12CHARS: https://12chars.com +// Submitted by Kenny Niehage +12chars.dev +12chars.it +12chars.pro + // 1GB LLC : https://www.1gb.ua/ // Submitted by 1GB LLC cc.ua @@ -11305,7 +11311,7 @@ myamaze.net // Amazon API Gateway // Submitted by AWS Security -// Reference: 4d863337-ff98-4501-a6f2-361eba8445d6 +// Reference: 9e37648f-a66c-4655-9ab1-5981f8737197 execute-api.cn-north-1.amazonaws.com.cn execute-api.cn-northwest-1.amazonaws.com.cn execute-api.af-south-1.amazonaws.com @@ -11320,6 +11326,7 @@ execute-api.ap-southeast-2.amazonaws.com execute-api.ap-southeast-3.amazonaws.com execute-api.ap-southeast-4.amazonaws.com execute-api.ca-central-1.amazonaws.com +execute-api.ca-west-1.amazonaws.com execute-api.eu-central-1.amazonaws.com execute-api.eu-central-2.amazonaws.com execute-api.eu-north-1.amazonaws.com @@ -11491,7 +11498,7 @@ emrstudio-prod.us-west-2.amazonaws.com // Amazon S3 // Submitted by AWS Security -// Reference: 0e801048-08f2-4064-9cb8-e7373e0b57f4 +// Reference: cd5c8b3a-67b7-4b40-9236-c87ce81a3d10 s3.dualstack.cn-north-1.amazonaws.com.cn s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn s3-website.dualstack.cn-north-1.amazonaws.com.cn @@ -11590,6 +11597,16 @@ s3-accesspoint-fips.ca-central-1.amazonaws.com s3-fips.ca-central-1.amazonaws.com s3-object-lambda.ca-central-1.amazonaws.com s3-website.ca-central-1.amazonaws.com +s3.dualstack.ca-west-1.amazonaws.com +s3-accesspoint.dualstack.ca-west-1.amazonaws.com +s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com +s3-fips.dualstack.ca-west-1.amazonaws.com +s3-website.dualstack.ca-west-1.amazonaws.com +s3.ca-west-1.amazonaws.com +s3-accesspoint.ca-west-1.amazonaws.com +s3-accesspoint-fips.ca-west-1.amazonaws.com +s3-fips.ca-west-1.amazonaws.com +s3-website.ca-west-1.amazonaws.com s3.dualstack.eu-central-1.amazonaws.com s3-accesspoint.dualstack.eu-central-1.amazonaws.com s3-website.dualstack.eu-central-1.amazonaws.com @@ -11772,7 +11789,7 @@ s3-website.us-west-2.amazonaws.com // Amazon SageMaker Notebook Instances // Submitted by AWS Security -// Reference: fe8c9e94-5a22-486d-8750-991a3a9b13c6 +// Reference: ce8ae0b1-0070-496d-be88-37c31837af9d notebook.af-south-1.sagemaker.aws notebook.ap-east-1.sagemaker.aws notebook.ap-northeast-1.sagemaker.aws @@ -11785,6 +11802,9 @@ notebook.ap-southeast-2.sagemaker.aws notebook.ap-southeast-3.sagemaker.aws notebook.ap-southeast-4.sagemaker.aws notebook.ca-central-1.sagemaker.aws +notebook-fips.ca-central-1.sagemaker.aws +notebook.ca-west-1.sagemaker.aws +notebook-fips.ca-west-1.sagemaker.aws notebook.eu-central-1.sagemaker.aws notebook.eu-central-2.sagemaker.aws notebook.eu-north-1.sagemaker.aws @@ -11871,7 +11891,7 @@ analytics-gateway.us-west-2.amazonaws.com // AWS Cloud9 // Submitted by: AWS Security -// Reference: 05c44955-977c-4b57-938a-f2af92733f9f +// Reference: 30717f72-4007-4f0f-8ed4-864c6f2efec9 webview-assets.aws-cloud9.af-south-1.amazonaws.com vfs.cloud9.af-south-1.amazonaws.com webview-assets.cloud9.af-south-1.amazonaws.com @@ -11917,6 +11937,8 @@ webview-assets.cloud9.eu-west-2.amazonaws.com webview-assets.aws-cloud9.eu-west-3.amazonaws.com vfs.cloud9.eu-west-3.amazonaws.com webview-assets.cloud9.eu-west-3.amazonaws.com +webview-assets.aws-cloud9.il-central-1.amazonaws.com +vfs.cloud9.il-central-1.amazonaws.com webview-assets.aws-cloud9.me-south-1.amazonaws.com vfs.cloud9.me-south-1.amazonaws.com webview-assets.cloud9.me-south-1.amazonaws.com @@ -11979,6 +12001,11 @@ us-west-2.elasticbeanstalk.com // Reference: d916759d-a08b-4241-b536-4db887383a6a awsglobalaccelerator.com +// AWS re:Post Private +// Submitted by AWS Security +// Reference: 83385945-225f-416e-9aa0-ad0632bfdcee +*.private.repost.aws + // eero // Submitted by Yue Kang // Reference: 264afe70-f62c-4c02-8ab9-b5281ed24461 @@ -11996,6 +12023,10 @@ tele.amune.org // Submitted by Apigee Security Team apigee.io +// Apis Networks: https://apisnetworks.com +// Submitted by Matt Saladna +panel.dev + // Apphud : https://apphud.com // Submitted by Alexander Selivanov siiites.com @@ -12156,6 +12187,10 @@ square7.de bplaced.net square7.net +// Brave : https://brave.com +// Submitted by Andrea Brancaleoni +*.s.brave.io + // Brendly : https://brendly.rs // Submitted by Dusan Radovanovic shop.brendly.rs @@ -13169,6 +13204,10 @@ flap.id onflashdrive.app fldrv.com +// FlutterFlow : https://flutterflow.io +// Submitted by Anton Emelyanov +flutterflow.app + // fly.io: https://fly.io // Submitted by Kurt Mackey fly.dev @@ -13237,6 +13276,10 @@ futuremailing.at *.kunden.ortsinfo.at *.statics.cloud +// GCom Internet : https://www.gcom.net.au +// Submitted by Leo Julius +aliases121.com + // GDS : https://www.gov.uk/service-manual/technology/managing-domain-names // Submitted by Stephen Ford independent-commission.uk @@ -13430,8 +13473,7 @@ goip.de // Google, Inc. // Submitted by Eduardo Vela -run.app -a.run.app +*.run.app web.app *.0emm.com appspot.com @@ -13586,6 +13628,12 @@ ravendb.run // Submitted by Krzysztof Wolski homesklep.pl +// Homebase : https://homebase.id/ +// Submitted by Jason Babo +*.kin.one +*.id.pub +*.kin.pub + // Hong Kong Productivity Council: https://www.hkpc.org/ // Submitted by SECaaS Team secaas.hk @@ -14064,10 +14112,15 @@ co.pl // Microsoft Corporation : http://microsoft.com // Submitted by Public Suffix List Admin +// Managed by Corporate Domains +// Microsoft Azure : https://home.azure *.azurecontainer.io +*.cloudapp.azure.com +azure-api.net +azureedge.net +azurefd.net azurewebsites.net azure-mobile.net -cloudapp.net azurestaticapps.net 1.azurestaticapps.net 2.azurestaticapps.net @@ -14081,6 +14134,10 @@ eastasia.azurestaticapps.net eastus2.azurestaticapps.net westeurope.azurestaticapps.net westus2.azurestaticapps.net +cloudapp.net +trafficmanager.net +blob.core.windows.net +servicebus.windows.net // minion.systems : http://minion.systems // Submitted by Robert Böttinger @@ -14490,6 +14547,10 @@ pdns.page plesk.page pleskns.com +// Pley AB : https://www.pley.com/ +// Submitted by Henning Pohl +pley.games + // Port53 : https://port53.io/ // Submitted by Maximilian Schieder dyn53.io @@ -15254,7 +15315,6 @@ de.gt to.gt be.gy cc.hn -blog.kg io.kg jp.kg tv.kg From 149a8443416dab873fc6f1486926920f5f31ac5a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 10:28:39 +0100 Subject: [PATCH 444/450] Updated list from source (#284) Co-authored-by: weppos <5387+weppos@users.noreply.github.com> --- data/list.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/data/list.txt b/data/list.txt index 79e5d191..e12925a1 100644 --- a/data/list.txt +++ b/data/list.txt @@ -11216,6 +11216,11 @@ ltd.ua // 611coin : https://611project.org/ 611.to +// A2 Hosting +// Submitted by Tyler Hall +a2hosted.com +cpserver.com + // Aaron Marais' Gitlab pages: https://lab.aaronleem.co.za // Submitted by Aaron Marais graphox.us @@ -14814,6 +14819,7 @@ logoip.com fr-par-1.baremetal.scw.cloud fr-par-2.baremetal.scw.cloud nl-ams-1.baremetal.scw.cloud +cockpit.fr-par.scw.cloud fnc.fr-par.scw.cloud functions.fnc.fr-par.scw.cloud k8s.fr-par.scw.cloud @@ -14824,11 +14830,13 @@ whm.fr-par.scw.cloud priv.instances.scw.cloud pub.instances.scw.cloud k8s.scw.cloud +cockpit.nl-ams.scw.cloud k8s.nl-ams.scw.cloud nodes.k8s.nl-ams.scw.cloud s3.nl-ams.scw.cloud s3-website.nl-ams.scw.cloud whm.nl-ams.scw.cloud +cockpit.pl-waw.scw.cloud k8s.pl-waw.scw.cloud nodes.k8s.pl-waw.scw.cloud s3.pl-waw.scw.cloud @@ -15467,6 +15475,10 @@ noho.st za.net za.org +// ZAP-Hosting GmbH & Co. KG : https://zap-hosting.com +// Submitted by Julian Alker +zap.cloud + // Zine EOOD : https://zine.bg/ // Submitted by Martin Angelov bss.design From 4fc38de7c5d9a2daa843bf09e31090483dfda37e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 09:21:27 +0100 Subject: [PATCH 445/450] Updated list from source (#285) Co-authored-by: weppos <5387+weppos@users.noreply.github.com> --- data/list.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/data/list.txt b/data/list.txt index e12925a1..be79353f 100644 --- a/data/list.txt +++ b/data/list.txt @@ -12458,6 +12458,13 @@ curv.dev *.ocp.customer-oci.com *.ocs.customer-oci.com +// Cyclic Software : https://www.cyclic.sh +// Submitted by Kam Lasater +cyclic.app +cyclic.cloud +cyclic-app.com +cyclic.co.in + // cyon GmbH : https://www.cyon.ch/ // Submitted by Dominic Luechinger cyon.link From a245df3b7f04a0ea1d4aa259f7a08821174bad83 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 11:18:00 +0100 Subject: [PATCH 446/450] Updated list from source (#286) Co-authored-by: weppos <5387+weppos@users.noreply.github.com> --- data/list.txt | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/data/list.txt b/data/list.txt index be79353f..66ba2237 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-01-24T15:14:29Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-02-08T15:13:14Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -7540,10 +7540,6 @@ college // https://www.iana.org/domains/root/db/cologne.html cologne -// comcast : Comcast IP Holdings I, LLC -// https://www.iana.org/domains/root/db/comcast.html -comcast - // commbank : COMMONWEALTH BANK OF AUSTRALIA // https://www.iana.org/domains/root/db/commbank.html commbank @@ -10756,10 +10752,6 @@ xbox // https://www.iana.org/domains/root/db/xerox.html xerox -// xfinity : Comcast IP Holdings I, LLC -// https://www.iana.org/domains/root/db/xfinity.html -xfinity - // xihuan : Beijing Qihu Keji Co., Ltd. // https://www.iana.org/domains/root/db/xihuan.html xihuan From 42cad0ac7a6c1ac5c7c0890e3c4335d518e0bd1e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 09:39:44 +0100 Subject: [PATCH 447/450] Updated list from source (#287) Co-authored-by: weppos <5387+weppos@users.noreply.github.com> --- data/list.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/list.txt b/data/list.txt index 66ba2237..2edd8f41 100644 --- a/data/list.txt +++ b/data/list.txt @@ -12426,6 +12426,10 @@ feste-ip.net knx-server.net static-access.net +// cPanel L.L.C. : https://www.cpanel.net/ +// Submitted by Dustin Scherer +*.cprapid.com + // Craynic, s.r.o. : http://www.craynic.com/ // Submitted by Ales Krajnik realm.cz From f8555d33329b67b2e41414c3873a308b9bcb0917 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 3 Mar 2024 14:38:04 +0100 Subject: [PATCH 448/450] Updated list from source (#288) Co-authored-by: weppos <5387+weppos@users.noreply.github.com> --- data/list.txt | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) diff --git a/data/list.txt b/data/list.txt index 2edd8f41..fe9cafdc 100644 --- a/data/list.txt +++ b/data/list.txt @@ -11229,6 +11229,10 @@ graphox.us // Submitted by Ofer Kalaora activetrail.biz +// Adaptable.io : https://adaptable.io +// Submitted by Mark Terrel +adaptable.app + // Adobe : https://www.adobe.com/ // Submitted by Ian Boston and Lars Trieloff adobeaemcloud.com @@ -12041,6 +12045,10 @@ appudo.net // Submitted by Thomas Orozco on-aptible.com +// Aquapal : https://aquapal.net/ +// Submitted by Aki Ueno +f5.si + // ASEINet : https://www.aseinet.com/ // Submitted by Asei SEKIGUCHI user.aseinet.ne.jp @@ -12405,6 +12413,10 @@ co.no webhosting.be hosting-cluster.nl +// Convex : https://convex.dev/ +// Submitted by James Cowling +convex.site + // Coordination Center for TLD RU and XN--P1AI : https://cctld.ru/en/domains/domens_ru/reserved/ // Submitted by George Georgievsky ac.ru @@ -12434,6 +12446,10 @@ static-access.net // Submitted by Ales Krajnik realm.cz +// Crisp IM SAS : https://crisp.chat/ +// Submitted by Baptiste Jamin +on.crisp.email + // Cryptonomic : https://cryptonomic.net/ // Submitted by Andrew Cady *.cryptonomic.net @@ -12941,6 +12957,10 @@ e4.cz easypanel.app easypanel.host +// EasyWP : https://www.easywp.com +// Submitted by +*.ewp.live + // Elementor : Elementor Ltd. // Submitted by Anton Barkan elementor.cloud @@ -14159,6 +14179,10 @@ mintere.site // Submitted by Grayson Martin forte.id +// MODX Systems LLC : https://modx.com +// Submitted by Elizabeth Southwell +modx.dev + // Mozilla Corporation : https://mozilla.com // Submitted by Ben Francis mozilla-iot.org @@ -14220,6 +14244,7 @@ jp.ngrok.io sa.ngrok.io us.ngrok.io ngrok.pizza +ngrok.pro // Nicolaus Copernicus University in Torun - MSK TORMAN (https://www.man.torun.pl) torun.pl @@ -14635,6 +14660,8 @@ qbuser.com // Rad Web Hosting: https://radwebhosting.com // Submitted by Scott Claeys cloudsite.builders +myradweb.net +servername.us // Redgate Software: https://red-gate.com // Submitted by Andrew Farries @@ -14701,11 +14728,40 @@ app.render.com onrender.com // Repl.it : https://repl.it -// Submitted by Lincoln Bergeson +// Submitted by Lincoln Bergeson +replit.app +id.replit.app firewalledreplit.co id.firewalledreplit.co repl.co id.repl.co +replit.dev +archer.replit.dev +bones.replit.dev +canary.replit.dev +global.replit.dev +hacker.replit.dev +id.replit.dev +janeway.replit.dev +kim.replit.dev +kira.replit.dev +kirk.replit.dev +odo.replit.dev +paris.replit.dev +picard.replit.dev +pike.replit.dev +prerelease.replit.dev +reed.replit.dev +riker.replit.dev +sisko.replit.dev +spock.replit.dev +staging.replit.dev +sulu.replit.dev +tarpit.replit.dev +teams.replit.dev +tucker.replit.dev +wesley.replit.dev +worf.replit.dev repl.run // Resin.io : https://resin.io @@ -14988,6 +15044,14 @@ srht.site // Submitted by Adrien Gillon stackhero-network.com +// STACKIT : https://www.stackit.de/en/ +// Submitted by STACKIT-DNS Team (Simon Stier) +runs.onstackit.cloud +stackit.gg +stackit.rocks +stackit.run +stackit.zone + // Staclar : https://staclar.com // Submitted by Q Misell musician.io @@ -15054,6 +15118,19 @@ myspreadshop.co.uk // Submitted by Jacob Lee api.stdlib.com +// stereosense GmbH : https://www.involve.me +// Submitted by Florian Burmann +feedback.ac +forms.ac +assessments.cx +calculators.cx +funnels.cx +paynow.cx +quizzes.cx +researched.cx +tests.cx +surveys.so + // Storipress : https://storipress.com // Submitted by Benno Liu storipress.app @@ -15062,6 +15139,12 @@ storipress.app // Submitted by Philip Hutchins storj.farm +// Streak : https://streak.com +// Submitted by Blake Kadatz +streak-link.com +streaklinks.com +streakusercontent.com + // Studenten Net Twente : http://www.snt.utwente.nl/ // Submitted by Silke Hofstra utwente.io @@ -15124,6 +15207,7 @@ taifun-dns.de // Submitted by David Anderson beta.tailscale.net ts.net +*.c.ts.net // TASK geographical domains (www.task.gda.pl/uslugi/dns) gda.pl @@ -15359,6 +15443,11 @@ v.ua // Submitted by Masayuki Note wafflecell.com +// Webflow, Inc. : https://www.webflow.com +// Submitted by Webflow Security Team +webflow.io +webflowtest.io + // WebHare bv: https://www.webhare.com/ // Submitted by Arnold Hendriks *.webhare.dev From a82ae303f5c0ab45300c2bb82d1ac0e7a8f4196c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:32:10 +0100 Subject: [PATCH 449/450] Updated list from source (#289) Co-authored-by: weppos <5387+weppos@users.noreply.github.com> --- data/list.txt | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/data/list.txt b/data/list.txt index fe9cafdc..11448bcf 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-02-08T15:13:14Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-03-06T15:14:58Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -8356,10 +8356,6 @@ grocery // https://www.iana.org/domains/root/db/group.html group -// guardian : The Guardian Life Insurance Company of America -// https://www.iana.org/domains/root/db/guardian.html -guardian - // gucci : Guccio Gucci S.p.a. // https://www.iana.org/domains/root/db/gucci.html gucci @@ -12221,7 +12217,9 @@ mycd.eu // Canva Pty Ltd : https://canva.com/ // Submitted by Joel Aquilina canva-apps.cn +*.my.canvasite.cn canva-apps.com +*.my.canva.site // Carrd : https://carrd.co // Submitted by AJ @@ -13482,6 +13480,10 @@ whitesnow.jp zombie.jp heteml.net +// GoDaddy Registry : https://registry.godaddy +// Submitted by Rohan Durrant +graphic.design + // GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/ // Submitted by Tom Whitwell cloudapps.digital @@ -13739,7 +13741,7 @@ biz.at info.at // info.cx : http://info.cx -// Submitted by Jacob Slater +// Submitted by June Slater info.cx // Interlegis : http://www.interlegis.leg.br @@ -13788,6 +13790,10 @@ iopsys.se // Submitted by Matthew Hardeman ipifony.net +// ir.md : https://nic.ir.md +// Submitted by Ali Soizi +ir.md + // IServ GmbH : https://iserv.de // Submitted by Mario Hoberg iservschule.de @@ -14143,7 +14149,7 @@ co.pl // Managed by Corporate Domains // Microsoft Azure : https://home.azure *.azurecontainer.io -*.cloudapp.azure.com +cloudapp.azure.com azure-api.net azureedge.net azurefd.net @@ -14257,6 +14263,10 @@ nh-serv.co.uk // Submitted by Jeff Wheelhouse nfshost.com +// NFT.Storage : https://nft.storage/ +// Submitted by Vasco Santos or +ipfs.nftstorage.link + // Noop : https://noop.app // Submitted by Nathaniel Schweinberg *.developer.app From b3577660b4e8d6745cf60f713c633a99736bee65 Mon Sep 17 00:00:00 2001 From: abhishekk1903 <104617979+abhishekk1903@users.noreply.github.com> Date: Tue, 2 Apr 2024 06:40:31 +0000 Subject: [PATCH 450/450] Updated list from source --- data/list.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/data/list.txt b/data/list.txt index 11448bcf..21df7744 100644 --- a/data/list.txt +++ b/data/list.txt @@ -6710,7 +6710,7 @@ org.zw // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-03-06T15:14:58Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-03-28T15:13:37Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -6988,10 +6988,6 @@ auto // https://www.iana.org/domains/root/db/autos.html autos -// avianca : Avianca Inc. -// https://www.iana.org/domains/root/db/avianca.html -avianca - // aws : AWS Registry LLC // https://www.iana.org/domains/root/db/aws.html aws