parse-domain 3.0.4 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/LICENSE +17 -20
  2. package/README.md +181 -112
  3. package/bin/update.js +12 -15
  4. package/{build-cjs/src → build}/config.d.ts +0 -0
  5. package/{build-esm/src → build}/config.js +0 -0
  6. package/build/config.js.map +1 -0
  7. package/{build-cjs/src → build}/from-url.d.ts +0 -0
  8. package/{build-esm/src → build}/from-url.js +1 -1
  9. package/build/from-url.js.map +1 -0
  10. package/build/main.d.ts +3 -0
  11. package/build/main.js +6 -0
  12. package/build/main.js.map +1 -0
  13. package/{build-cjs/src → build}/parse-domain.d.ts +9 -3
  14. package/{build-esm/src → build}/parse-domain.js +6 -6
  15. package/build/parse-domain.js.map +1 -0
  16. package/build/psl/build-tries.d.ts +4 -0
  17. package/{build-esm/src → build}/psl/build-tries.js +5 -20
  18. package/build/psl/build-tries.js.map +1 -0
  19. package/{build-cjs/src → build}/psl/fetch-psl.d.ts +0 -0
  20. package/{build-esm/src → build}/psl/fetch-psl.js +1 -1
  21. package/build/psl/fetch-psl.js.map +1 -0
  22. package/build/punycode.d.ts +1 -0
  23. package/build/punycode.js +4 -0
  24. package/build/punycode.js.map +1 -0
  25. package/{build-cjs/src → build}/sanitize.d.ts +28 -6
  26. package/build/sanitize.js +194 -0
  27. package/build/sanitize.js.map +1 -0
  28. package/{build-cjs/src → build}/scripts/update-psl-fixture.d.ts +0 -0
  29. package/build/scripts/update-psl-fixture.js +20 -0
  30. package/build/scripts/update-psl-fixture.js.map +1 -0
  31. package/{build-cjs/src → build}/scripts/update-tries.d.ts +0 -0
  32. package/{build-cjs/src → build}/scripts/update-tries.js +15 -23
  33. package/build/scripts/update-tries.js.map +1 -0
  34. package/build/serialized-tries.d.ts +3 -0
  35. package/build/serialized-tries.js +4 -0
  36. package/build/serialized-tries.js.map +1 -0
  37. package/{build-cjs/src → build}/smoke-test.d.ts +0 -0
  38. package/{build-esm/src → build}/smoke-test.js +6 -8
  39. package/build/smoke-test.js.map +1 -0
  40. package/{build-cjs/src → build}/trie/characters.d.ts +0 -0
  41. package/{build-esm/src → build}/trie/characters.js +0 -0
  42. package/build/trie/characters.js.map +1 -0
  43. package/build/trie/create-trie.d.ts +1 -0
  44. package/{build-esm/src → build}/trie/create-trie.js +1 -1
  45. package/build/trie/create-trie.js.map +1 -0
  46. package/build/trie/look-up.d.ts +3 -0
  47. package/{build-esm/src → build}/trie/look-up.js +1 -1
  48. package/build/trie/look-up.js.map +1 -0
  49. package/{build-cjs/src → build}/trie/nodes.d.ts +0 -0
  50. package/{build-esm/src → build}/trie/nodes.js +0 -0
  51. package/build/trie/nodes.js.map +1 -0
  52. package/{build-cjs/src → build}/trie/parse-trie.d.ts +1 -1
  53. package/{build-esm/src → build}/trie/parse-trie.js +2 -2
  54. package/build/trie/parse-trie.js.map +1 -0
  55. package/{build-cjs/src → build}/trie/serialize-trie.d.ts +1 -1
  56. package/{build-esm/src → build}/trie/serialize-trie.js +1 -1
  57. package/build/trie/serialize-trie.js.map +1 -0
  58. package/build/type-util.d.ts +3 -0
  59. package/build/type-util.js +2 -0
  60. package/{build-cjs/src → build}/type-util.js.map +1 -1
  61. package/{build-cjs/src → build}/update-tries.d.ts +0 -0
  62. package/{build-esm/src → build}/update-tries.js +3 -3
  63. package/build/update-tries.js.map +1 -0
  64. package/package.json +83 -85
  65. package/serialized-tries/icann.d.ts +3 -0
  66. package/serialized-tries/icann.js +1 -0
  67. package/serialized-tries/info.json +1 -0
  68. package/serialized-tries/private.d.ts +3 -0
  69. package/serialized-tries/private.js +1 -0
  70. package/build-cjs/serialized-tries/icann.json +0 -1
  71. package/build-cjs/serialized-tries/info.json +0 -1
  72. package/build-cjs/serialized-tries/private.json +0 -1
  73. package/build-cjs/src/config.js +0 -9
  74. package/build-cjs/src/config.js.map +0 -1
  75. package/build-cjs/src/from-url.js +0 -30
  76. package/build-cjs/src/from-url.js.map +0 -1
  77. package/build-cjs/src/main.d.ts +0 -3
  78. package/build-cjs/src/main.js +0 -11
  79. package/build-cjs/src/main.js.map +0 -1
  80. package/build-cjs/src/main.mjs +0 -11
  81. package/build-cjs/src/parse-domain.js +0 -95
  82. package/build-cjs/src/parse-domain.js.map +0 -1
  83. package/build-cjs/src/psl/build-tries.d.ts +0 -4
  84. package/build-cjs/src/psl/build-tries.js +0 -57
  85. package/build-cjs/src/psl/build-tries.js.map +0 -1
  86. package/build-cjs/src/psl/fetch-psl.js +0 -25
  87. package/build-cjs/src/psl/fetch-psl.js.map +0 -1
  88. package/build-cjs/src/sanitize.js +0 -131
  89. package/build-cjs/src/sanitize.js.map +0 -1
  90. package/build-cjs/src/scripts/update-psl-fixture.js +0 -28
  91. package/build-cjs/src/scripts/update-psl-fixture.js.map +0 -1
  92. package/build-cjs/src/scripts/update-tries.js.map +0 -1
  93. package/build-cjs/src/serialized-tries.d.ts +0 -3
  94. package/build-cjs/src/serialized-tries.js +0 -10
  95. package/build-cjs/src/serialized-tries.js.map +0 -1
  96. package/build-cjs/src/smoke-test.js +0 -61
  97. package/build-cjs/src/smoke-test.js.map +0 -1
  98. package/build-cjs/src/trie/characters.js +0 -10
  99. package/build-cjs/src/trie/characters.js.map +0 -1
  100. package/build-cjs/src/trie/create-trie.d.ts +0 -1
  101. package/build-cjs/src/trie/create-trie.js +0 -14
  102. package/build-cjs/src/trie/create-trie.js.map +0 -1
  103. package/build-cjs/src/trie/look-up.d.ts +0 -2
  104. package/build-cjs/src/trie/look-up.js +0 -34
  105. package/build-cjs/src/trie/look-up.js.map +0 -1
  106. package/build-cjs/src/trie/nodes.js +0 -24
  107. package/build-cjs/src/trie/nodes.js.map +0 -1
  108. package/build-cjs/src/trie/parse-trie.js +0 -56
  109. package/build-cjs/src/trie/parse-trie.js.map +0 -1
  110. package/build-cjs/src/trie/serialize-trie.js +0 -29
  111. package/build-cjs/src/trie/serialize-trie.js.map +0 -1
  112. package/build-cjs/src/type-util.d.ts +0 -3
  113. package/build-cjs/src/type-util.js +0 -3
  114. package/build-cjs/src/update-tries.js +0 -25
  115. package/build-cjs/src/update-tries.js.map +0 -1
  116. package/build-esm/serialized-tries/icann.json +0 -1
  117. package/build-esm/serialized-tries/info.json +0 -1
  118. package/build-esm/serialized-tries/private.json +0 -1
  119. package/build-esm/src/config.d.ts +0 -6
  120. package/build-esm/src/config.js.map +0 -1
  121. package/build-esm/src/from-url.d.ts +0 -2
  122. package/build-esm/src/from-url.js.map +0 -1
  123. package/build-esm/src/main.d.ts +0 -3
  124. package/build-esm/src/main.js +0 -4
  125. package/build-esm/src/main.js.map +0 -1
  126. package/build-esm/src/parse-domain.d.ts +0 -79
  127. package/build-esm/src/parse-domain.js.map +0 -1
  128. package/build-esm/src/psl/build-tries.d.ts +0 -4
  129. package/build-esm/src/psl/build-tries.js.map +0 -1
  130. package/build-esm/src/psl/fetch-psl.d.ts +0 -1
  131. package/build-esm/src/psl/fetch-psl.js.map +0 -1
  132. package/build-esm/src/sanitize.d.ts +0 -36
  133. package/build-esm/src/sanitize.js +0 -126
  134. package/build-esm/src/sanitize.js.map +0 -1
  135. package/build-esm/src/serialized-tries.d.ts +0 -3
  136. package/build-esm/src/serialized-tries.js +0 -4
  137. package/build-esm/src/serialized-tries.js.map +0 -1
  138. package/build-esm/src/smoke-test.d.ts +0 -1
  139. package/build-esm/src/smoke-test.js.map +0 -1
  140. package/build-esm/src/trie/characters.d.ts +0 -6
  141. package/build-esm/src/trie/characters.js.map +0 -1
  142. package/build-esm/src/trie/create-trie.d.ts +0 -1
  143. package/build-esm/src/trie/create-trie.js.map +0 -1
  144. package/build-esm/src/trie/look-up.d.ts +0 -2
  145. package/build-esm/src/trie/look-up.js.map +0 -1
  146. package/build-esm/src/trie/nodes.d.ts +0 -15
  147. package/build-esm/src/trie/nodes.js.map +0 -1
  148. package/build-esm/src/trie/parse-trie.d.ts +0 -1
  149. package/build-esm/src/trie/parse-trie.js.map +0 -1
  150. package/build-esm/src/trie/serialize-trie.d.ts +0 -2
  151. package/build-esm/src/trie/serialize-trie.js.map +0 -1
  152. package/build-esm/src/type-util.d.ts +0 -3
  153. package/build-esm/src/type-util.js +0 -1
  154. package/build-esm/src/type-util.js.map +0 -1
  155. package/build-esm/src/update-tries.d.ts +0 -4
  156. package/build-esm/src/update-tries.js.map +0 -1
@@ -1 +0,0 @@
1
- "ua>cc,inf,ltd,cx,biz,co,pp,v<to>611,oya,rdv,vpnplus,quickconnect>direct<nyan<us>graphox,cloudns,drud,is-by,land-4-sale,stuff-4-sale,enscaled>phx<mircloud,freeddns,golffan,noip,pointto,platterp,de>lib<<com>devcdnaccesso>*<adobeaemcloud>dev>*<<kasserver,amazonaws>compute>*<compute-1>*<us-east-1>dualstack>s3<<elb>*<s3,s3-ap-northeast-1,s3-ap-northeast-2,s3-ap-south-1,s3-ap-southeast-1,s3-ap-southeast-2,s3-ca-central-1,s3-eu-central-1,s3-eu-west-1,s3-eu-west-2,s3-eu-west-3,s3-external-1,s3-fips-us-gov-west-1,s3-sa-east-1,s3-us-gov-west-1,s3-us-east-2,s3-us-west-1,s3-us-west-2,ap-northeast-2>s3,dualstack>s3<s3-website<ap-south-1>s3,dualstack>s3<s3-website<ca-central-1>s3,dualstack>s3<s3-website<eu-central-1>s3,dualstack>s3<s3-website<eu-west-2>s3,dualstack>s3<s3-website<eu-west-3>s3,dualstack>s3<s3-website<us-east-2>s3,dualstack>s3<s3-website<ap-northeast-1>dualstack>s3<<ap-southeast-1>dualstack>s3<<ap-southeast-2>dualstack>s3<<eu-west-1>dualstack>s3<<sa-east-1>dualstack>s3<<s3-website-us-east-1,s3-website-us-west-1,s3-website-us-west-2,s3-website-ap-northeast-1,s3-website-ap-southeast-1,s3-website-ap-southeast-2,s3-website-eu-west-1,s3-website-sa-east-1<elasticbeanstalk>ap-northeast-1,ap-northeast-2,ap-northeast-3,ap-south-1,ap-southeast-1,ap-southeast-2,ca-central-1,eu-central-1,eu-west-1,eu-west-2,eu-west-3,sa-east-1,us-east-1,us-east-2,us-gov-west-1,us-west-1,us-west-2<awsglobalaccelerator,appspacehosted,appspaceusercontent,on-aptible,myasustor,balena-devices,betainabox,boutir,bplaced,cafjs,br,cn,de,eu,jpn,mex,ru,sa,uk,us,za,ar,gb,hu,kr,no,qc,uy,africa,gr,co,jdevcloud,wpdevcloud,cloudcontrolled,cloudcontrolapp,trycloudflare,customer-oci>*,oci>*<ocp>*<ocs>*<<dattolocal,dattorelay,dattoweb,mydatto,builtwithdark,datadetect>demo,instance<ddns5,drayddns,dreamhosters,mydrobo,dyndns-at-home,dyndns-at-work,dyndns-blog,dyndns-free,dyndns-home,dyndns-ip,dyndns-mail,dyndns-office,dyndns-pics,dyndns-remote,dyndns-server,dyndns-web,dyndns-wiki,dyndns-work,blogdns,cechire,dnsalias,dnsdojo,doesntexist,dontexist,doomdns,dyn-o-saur,dynalias,est-a-la-maison,est-a-la-masion,est-le-patron,est-mon-blogueur,from-ak,from-al,from-ar,from-ca,from-ct,from-dc,from-de,from-fl,from-ga,from-hi,from-ia,from-id,from-il,from-in,from-ks,from-ky,from-ma,from-md,from-mi,from-mn,from-mo,from-ms,from-mt,from-nc,from-nd,from-ne,from-nh,from-nj,from-nm,from-nv,from-oh,from-ok,from-or,from-pa,from-pr,from-ri,from-sc,from-sd,from-tn,from-tx,from-ut,from-va,from-vt,from-wa,from-wi,from-wv,from-wy,getmyip,gotdns,hobby-site,homelinux,homeunix,iamallama,is-a-anarchist,is-a-blogger,is-a-bookkeeper,is-a-bulls-fan,is-a-caterer,is-a-chef,is-a-conservative,is-a-cpa,is-a-cubicle-slave,is-a-democrat,is-a-designer,is-a-doctor,is-a-financialadvisor,is-a-geek,is-a-green,is-a-guru,is-a-hard-worker,is-a-hunter,is-a-landscaper,is-a-lawyer,is-a-liberal,is-a-libertarian,is-a-llama,is-a-musician,is-a-nascarfan,is-a-nurse,is-a-painter,is-a-personaltrainer,is-a-photographer,is-a-player,is-a-republican,is-a-rockstar,is-a-socialist,is-a-student,is-a-teacher,is-a-techie,is-a-therapist,is-an-accountant,is-an-actor,is-an-actress,is-an-anarchist,is-an-artist,is-an-engineer,is-an-entertainer,is-certified,is-gone,is-into-anime,is-into-cars,is-into-cartoons,is-into-games,is-leet,is-not-certified,is-slick,is-uberleet,is-with-theband,isa-geek,isa-hockeynut,issmarterthanyou,likes-pie,likescandy,neat-url,saves-the-whales,selfip,sells-for-less,sells-for-u,servebbs,simple-url,space-to-rent,teaches-yoga,writesthisblog,ddnsfree,ddnsgeek,giize,gleeze,kozow,loseyourip,ooguy,theworkpc,elluciancrmadvance,elluciancrmadvise,elluciancrmrecruit,mytuleap,tuleap-partners,evennode>eu-1,eu-2,eu-3,eu-4,us-1,us-2,us-3,us-4<onfabrica,fbsbx>apps<fastly-terrarium,fastvps-server,mydobiss,firebaseapp,forgeblocks,framercanvas,freebox-os,freeboxos,freemyip,gentapps,gentlentapis,githubusercontent,0emm>*<appspot>r>*<<codespot,googleapis,googlecode,pagespeedmobilizer,publishproxy,withgoogle,withyoutube,blogspot,awsmppl,herokuapp,herokussl,myravendb,impertrixcdn,impertrix,smushcdn,wphostedmail,wpmucdn,pixolino,amscompute,clicketcloud,dopaas,hidora,hosted-by-previder>paas<hosteur>rag-cloud,rag-cloud-ch<ik-server>jcloud,jcloud-ver-jpc<jelastic>demo<kilatiron,massivegrid>paas<wafaicloud>jed,lon,ryd<joyent>cns>*<<lpusercontent,lmpm>app<linode>members,nodebalancer>*<<linodeobjects>*<barsycenter,barsyonline,mazeplay,miniserver,meteorapp>eu<hostedpi,mythic-beasts>customer,caracal,fentiger,lynx,ocelot,oncilla,onza,sphinx,vs,x,yali<4u,nfshost,001www,ddnslive,myiphost,blogsyte,ciscofreak,damnserver,ditchyourip,dnsiskinky,dynns,geekgalaxy,health-carereform,homesecuritymac,homesecuritypc,myactivedirectory,mysecuritycamera,net-freaks,onthewifi,point2this,quicksytes,securitytactics,serveexchange,servehumour,servep2p,servesarcasm,stufftoread,unusualperson,workisboring,3utilities,ddnsking,myvnc,servebeer,servecounterstrike,serveftp,servegame,servehalflife,servehttp,serveirc,servemp3,servepics,servequake,observableusercontent>static<orsites,operaunite,authgear-staging,authgearapps,skygearapp,outsystemscloud,ownprovider,pgfog,pagefrontapp,pagexl,paywhirl>*<gotpantheon,platter-app,pleskns,postman-echo,prgmr>xen<pythonanywhere>eu<qualifioapp,qbuser,qa2,dev-myqnapcloud,alpha-myqnapcloud,myqnapcloud,quipelements>*<rackmaze,rhcloud,render>app<onrender,logoip,scrysec,firewall-gateway,myshopblocks,myshopify,shopitsite,1kapp,appchizi,applinzi,sinaapp,vipsinaapp,bounty-full>alpha,beta<try-snowplow,stackhero-network,playstation-cloud,myspreadshop,stdlib>api<temp-dns,dsmynas,familyds,reservd,thingdustdata,bloxcms,townnews-staging,hk,wafflecell,idnblogger,indowapblog,reserve-online,hotelwithflight,remotewd,wiardweb>pages<woltlab-demo,wpenginepowered>js<wixsite,xnbay>u2,u2-local<yolasite<live>hlx<net>adobeaemcloud,alwaysdata,cloudfront,t3l3p0rt,appudo,atlassian-dev>prod>cdn<<myfritz,onavstack,blackbaudcdn,boomla,bplaced,square7,gb,hu,jp,se,uk,in,clic2000,clickrising,cloudaccess,cdn77-ssl,cdn77>r<feste-ip,knx-server,static-access,cryptonomic>*<dattolocal,mydatto,debian,bitbridge,at-band-camp,blogdns,broke-it,buyshouses,dnsalias,dnsdojo,does-it,dontexist,dynalias,dynathome,endofinternet,from-az,from-co,from-la,from-ny,gets-it,ham-radio-op,homeftp,homeip,homelinux,homeunix,in-the-band,is-a-chef,is-a-geek,isa-geek,kicks-ass,office-on-the,podzone,scrapper-site,selfip,sells-it,servebbs,serveftp,thruhere,webhop,definima,casacam,dynu,dynv6,twmail,ru,channelsdvr>u<fastlylb>map<fastly>freetls,map,prod>a,global<ssl>a,b,global<<edgeapp,flynnhosting,cdn-edges,cloudfunctions,moonscale,in-dsl,in-vpn,ipifony,iobb,cloudjiffy>fra1-de,west1-us<elastx>jls-sto1,jls-sto2,jls-sto3<faststacks,massivegrid>paas>fr-1,lon-1,lon-2,ny-1,ny-2,sg-1<<saveincloud>jelastic,nordeste-idc<scaleforce>j<tsukaeru>jelastic<kinghost,uni5,krellian,barsy,memset,azurewebsites,azure-mobile,cloudapp,azurestaticapps>centralus,eastasia,eastus2,westeurope,westus2<dnsup,hicam,now-dns,ownip,vpndns,eating-organic,mydissent,myeffect,mymediapc,mypsx,mysecuritycamera,nhlfan,no-ip,pgafan,privatizehealthinsurance,bounceme,ddns,redirectme,serveblog,serveminecraft,sytes,cloudycluster,ovh>webpaas>*<hosting>*<<bar0,bar1,bar2,rackmaze,schokokeks,firewall-gateway,seidat,senseering,siteleaf,vps-host>jelastic>atl,njs,ric<<myspreadshop,srcf>soc,user<supabase,dsmynas,familyds,torproject>pages<fastblog,reserve-online,community-pro,meinforum,yandexcloud>storage,website<za<page>hlx,hlx3,pdns,plesk,prvcy,magnet<pl>beep,ecommerce-shop,shoparena,homesklep,sdscloud,unicloud,krasnik,leczna,lubartow,lublin,poniatowa,swidnik,co,art,gliwice,krakow,poznan,wroc,zakopane,myspreadshop,gda,gdansk,gdynia,med,sopot<ca>barsy,awdev>*<co,blogspot,no-ip,myspreadshop<estate>compute>*<<network>alces>*<co,arvo,azimuth,tlon<org>altervista,amune>tele<pimienta,poivron,potager,sweetpepper,ae,us,certmgr,cdn77>c,rsc<cdn77-secure>origin>ssl<<cloudns,duckdns,tunk,dyndns>go,home<blogdns,blogsite,boldlygoingnowhere,dnsalias,dnsdojo,doesntexist,dontexist,doomdns,dvrdns,dynalias,endofinternet,endoftheinternet,from-me,game-host,gotdns,hobby-site,homedns,homeftp,homelinux,homeunix,is-a-bruinsfan,is-a-candidate,is-a-celticsfan,is-a-chef,is-a-geek,is-a-knight,is-a-linux-user,is-a-patsfan,is-a-soxfan,is-found,is-lost,is-saved,is-very-bad,is-very-evil,is-very-good,is-very-nice,is-very-sweet,isa-geek,kicks-ass,misconfused,podzone,readmyblog,selfip,sellsyourhome,servebbs,serveftp,servegame,stuff-4-sale,webhop,ddnss,accesscam,camdvr,freeddns,mywire,webredirect,eu>al,asso,at,au,be,bg,ca,cd,ch,cn,cy,cz,de,dk,edu,ee,es,fi,fr,gr,hr,hu,ie,il,in,int,is,it,jp,kr,lt,lu,lv,mc,me,mk,mt,my,net,ng,nl,no,nz,paris,pl,pt,q-a,ro,ru,se,si,sk,tr,uk,us<twmail,fedorainfracloud,fedorapeople,fedoraproject>cloud,os>app<stg>os>app<<<freedesktop,hepforge,in-dsl,in-vpn,js,barsy,mayfirst,mozilla-iot,bmoattachments,dynserv,now-dns,cable-modem,collegefan,couchpotatofries,mlbfan,mysecuritycamera,nflfan,read-books,ufcfan,hopto,myftp,no-ip,zapto,httpbin,pubtls,my-firewall,myfirewall,spdns,small-web,dsmynas,familyds,edugit,tuxfamily,diskstation,hk,wmflabs,toolforge,wmcloud,za<cn>com>amazonaws>compute>*<eb>cn-north-1,cn-northwest-1<elb>*<cn-north-1>s3<<<instantcloud<nl>amsw,virtueeldomein,co,hosting-cluster,blogspot,khplay,myspreadshop,transurl>*<cistron,demon<io>apigee,b-data,backplaneapp,banzaicloud>app,backyards>*<<bitbucket,bluebite,boxfuse,browsersafetymark,bigv>uk0<cleverapps,dappnode>dyndns<dedyn,drud,definima,fh-muenster,shw,forgerock>id<ghost,github,gitlab,lolipop,hasura-app,hostyhosting,moonscale>*<beebyte>paas<beebyteapp>sekd1<jele,unispace>cloud-fr1<webthings,loginline,barsy,azurecontainer>*<ngrok,nodeart>stage<nodum,nid,pantheonsite,dyn53,pstmn>mock<protonet,qoto,qcx>sys>*<<vaporcloud,vbrplsbx>g<on-k3s>*<on-rio>*<readthedocs,resindevice,resinstaging>devices<hzc,sandcats,shiftcrypto,shiftedit,mo-siemens,lair>apps<stolos>*<spacekit,utwente,s5y>*<telebit,thingdust>dev>cust,reservd<disrec>cust,reservd<prod>cust<testing>cust,reservd<<2038,wedeploy,editorx,basicserver,virtualserver<jp>ne>aseinet>user<gehirn<usercontent,blogspot<vc>gv>d<0e<eus>party>user<<ws>advisor>*<cloud66,dyndns,mypets<ba>rs,blogspot<cloud>banzai>*<elementor,statics>*<axarnet>es-1<diadem,jelastic>vip<jele,jenv-aruba>aruba>eur>it1<<it1<keliweb>cs<oxa>tn,uk<primetel>uk<reclaim>ca,uk,us<trendhosting>ch,de<jotelulu,kuleuven,linkyard,magentosite>*<perspecta,vapor,on-rancher>*<sensiosite>*<trafficplex,urown,voorloper<la>bnr,c<je>of<ch>square7,blogspot,flow>ae>alp1<appengine<linkyard-cloud,dnsking,gotdns,myspreadshop,firenet>*,svc>*<<12hp,2ix,4lima,lima-city<de>bplaced,square7,com,cosidns>dyn<dynamisches-dns,dnsupdater,internet-dns,l-o-g-i-n,dnshome,fuettertdasnetz,isteingeek,istmein,lebtimnetz,leitungsen,traeumtgerade,ddnss>dyn,dyndns<dyndns1,dyn-ip24,home-webserver>dyn<myhome-server,frusky>*<goip,blogspot,xn--gnstigbestellen-zvb,xn--gnstigliefern-wob,hs-heilbronn>it>pages<<dyn-berlin,in-berlin,in-brb,in-butter,in-dsl,in-vpn,mein-iserv,schulserver,test-iserv,keymachine,git-repos,lcube-server,svn-repos,barsy,logoip,firewall-gateway,my-gateway,my-router,spdns,speedpartner>customer<myspreadshop,taifun-dns,12hp,2ix,4lima,lima-city,dd-dns,dray-dns,draydns,dyn-vpn,dynvpn,mein-vigor,my-vigor,my-wan,syno-ds,synology-diskstation,synology-ds,uberspace>*<virtualuser,virtual-user,community-pro,diskussionsbereich<rs>brendly>shop<blogspot,ua,ox<uk>co>bytemark>dh,vm<blogspot,layershift>j<barsy,barsyonline,retrosnub>cust<nh-serv,no-ip,wellbeingzone,adimo,myspreadshop,gwiddle<conn,copro,hosp,gov>service,homeoffice<pymnt,org>glug,lug,lugs,affinitylottery,raffleentry,weeklylottery<barsy<eu>mycd,cloudns,dogado>jelastic<barsy,wellbeingzone,spdns,transurl>*<diskstation<ac>drr<ai>uwu<co>carrd,crd,otap>*<com>blogspot<leadpages,lpages,mypi,n4t,nodum,repl>id<supabase<mp>ju<se>com,blogspot,conf,iopsys,itcouldbewor,myspreadshop,paba>su<<bz>za,gsj<in>web,cloudns,blogspot,barsy,supabase<basketball>aus,nz<am>radio,blogspot,neko,nyaa<fm>radio<group>discourse<team>discourse,jelastic<app>clerk,clerkstage,wnext,platform0,ondigitalocean,edgecompute,fireweb,framer,run>a<web,hasura,loginline,netlify,developer>*<noop,northflank>*<telebit,vercel,bookonline<dev>lcl>*<lclstage>*<stg>*<stgstage>*<pages,workers,curv,deno,deno-staging,fly,githubpreview,gateway>*<iserv,loginline,mediatech,platter-app,shiftcrypto,vercel,webhare>*<<me>c66,daplie>localhost<edgestack,couk,ukco,filegear,filegear-au,filegear-de,filegear-gb,filegear-ie,filegear-jp,filegear-sg,glitch,ravendb,lohmus,barsy,mcpe,mcdir,nctu,soundcast,tcp4,brasilia,ddns,dnsfor,hopto,loginto,noip,webhop,vp4,diskstation,dscloud,i234,myds,synology,tbits,wbq,wedeploy,yombo,nohost<zone>cloud66,hs,triton>*<lima<host>cloudaccess,freesite,fastvps,myfast,tempurl,wpmudev,jele,mircloud,pcloud,half<site>cloudera>*<cyon,fnwk,folionetwork,fastvps,jele,lelux,loginline,barsy,mintere,omniwe,opensocial,platformsh>*<tst>*<byen,srht,novecore<cz>co,realm,e4,blogspot,metacentrum>cloud>*<custom<muni>cloud>flt,usr<<<asia>cloudns<biz>cloudns,jozi,dyndns,for-better,for-more,for-some,for-the,selfip,webhop,orx,mmafan,myftp,no-ip,dscloud<club>cloudns,jele,barsy,pony<cc>cloudns,ftpaccess,game-server,myphotos,scrapping,twmail,csx,fantasyleague<info>cloudns,dynamic-dns,dyndns,barrel-of-knowledge,barrell-of-knowledge,for-our,groks-the,groks-this,here-for-more,knowsitall,selfip,webhop,barsy,mayfirst,forumz,nsupdate,dvrcam,ilovecollege,no-ip,dnsupdate,v-info<pro>cloudns,dnstrace>bci<barsy<pw>cloudns,x443<gdn>cnpy<no>co,blogspot,myspreadshop<be>webhosting,blogspot,interhostsolutions>cloud<kuleuven>ezproxy<myspreadshop,transurl>*<<ru>ac,edu,gov,int,mil,test,eurodir,adygeya,bashkiria,bir,cbg,com,dagestan,grozny,kalmykia,kustanai,marine,mordovia,msk,mytis,nalchik,nov,pyatigorsk,spb,vladikavkaz,vladimir,blogspot,na4u,mircloud,regruhosting>jelastic<myjino>hosting>*<landing>*<spectrum>*<vps>*<<cldmail>hb<mcdir>vps<mcpre,net,org,pp,lk3,ras<is>cupcake,blogspot<link>cyon,mypep,dweb>*<<dk>biz,co,firm,reg,store,blogspot,myspreadshop<earth>dapps>*,bzz>*<<<id>my>rss>*<<flap,co>blogspot<forte,bloger,wblog<solutions>diher>*<<th>online,shop<sh>bip,hashbang,platform>bc,ent,eu,us<now,vxl,wedeploy<fi>dy,blogspot,xn--hkkinen-5wa,iki,cloudplatform>fi<datacenter>demo,paas<myspreadshop<tv>dyndns,better-than,on-the-web,worse-than<cx>ath,info<name>her>forgot<his>forgot<<nu>merseine,mine,shacknet,enterprisecloud<rocks>myddns,lima-city,webspace<xyz>blogsite,localzone,crafting,zapto,telebit>*<<online>eero,eero-stage,barsy<cool>elementor,de<fr>en-root,fbx-os,fbxos,freebox-os,freeboxos,blogspot,goupile,on-web,chirurgiens-dentistes-en-france,myspreadshop,ynh<one>onred>staging<service,for,under,homelink<tw>com>mymailer<url,blogspot<su>abkhazia,adygeya,aktyubinsk,arkhangelsk,armenia,ashgabad,azerbaijan,balashov,bashkiria,bryansk,bukhara,chimkent,dagestan,east-kazakhstan,exnet,georgia,grozny,ivanovo,jambyl,kalmykia,kaluga,karacol,karaganda,karelia,khakassia,krasnodar,kurgan,kustanai,lenug,mangyshlak,mordovia,msk,murmansk,nalchik,navoi,north-kazakhstan,nov,obninsk,penza,pokrovsk,sochi,spb,tashkent,termez,togliatti,troitsk,tselinograd,tula,tuva,vladikavkaz,vladimir,vologda<space>myfast,uber,xs4all<il>co>ravpage,blogspot,tabitorder<<at>funkfeuer>wien<futurecms>*,ex>*<in>*<<futurehosting,futuremailing,ortsinfo>ex>*<kunden>*<<co>blogspot<biz,info,priv,myspreadshop,12hp,2ix,4lima,lima-city<ms>lab,minisite<si>gitapp,gitpage,blogspot<community>nog,ravendb,myforum<ro>co,shop,blogspot,barsy<digital>cloudapps>london<<im>ro<goog>cloud,translate<ae>blogspot<al>blogspot<bg>blogspot,barsy<bj>blogspot<cf>blogspot<cl>blogspot<ke>co>blogspot<<nz>co>blogspot<<za>co>blogspot<<ar>com>blogspot<<au>com>blogspot,cloudlets>mel<myspreadshop<<br>com>blogspot,virtualcloud>scale>users<<<leg>ac,al,am,ap,ba,ce,df,es,go,ma,mg,ms,mt,pa,pb,pe,pi,pr,rj,rn,ro,rr,rs,sc,se,sp,to<<by>com>blogspot<mycloud,mediatech<cy>com>blogspot,scaleforce>j<<<ee>com>blogspot<<eg>com>blogspot<<es>com>blogspot<myspreadshop<mt>com>blogspot<<ng>com>blogspot<col,firm,gen,ltd,ngo<tr>com>blogspot<<uy>com>blogspot<<cv>blogspot<gr>blogspot<hk>blogspot,secaas,ltd,inc<hr>blogspot,free<hu>blogspot<ie>blogspot,myspreadshop<it>blogspot,neen>jc<tim>open>jelastic>cloud<<<16-b,32-b,64-b,myspreadshop,syncloud<kr>blogspot<li>blogspot,caa<lt>blogspot<lu>blogspot<md>blogspot,at,de,jp,to<mk>blogspot<mr>blogspot<mx>blogspot<my>blogspot<pe>blogspot<pt>blogspot<qa>blogspot<re>blogspot<sg>blogspot,enscaled<sk>blogspot<sn>blogspot<td>blogspot<ug>blogspot<vn>blogspot<ci>fin,nl<run>hs,development,ravendb,servers,code>*<repl<gl>biz,xx<scot>edu,gov>service<<so>sch<yt>org<kz>jcloud,kazteleport>upaas<<tn>orangecloud<gg>kaas,cya,panel>daemon<<systems>knightpoint<krd>co,edu<business>co<education>co<events>co<financial>co<place>co<technology>co<bs>we<services>loginline<menu>barsy<mobi>barsy,dscloud<pub>barsy<shop>barsy<support>barsy<vu>cn,blog,dev,me<health>hra<casa>nabu>ui<<fashion>of<london>in,of<marketing>from,with<men>for,repair<mom>and,for<sale>for<win>that<work>from,to<news>noticeable<top>now-dns,ntdll<ovh>nerdpol<mn>nyc<lol>omg<hosting>opencraft<pm>own<codes>owo>*<<lc>oy<bn>co<builders>cloudsite<edu>rit>git-pages<<xn--p1acf>xn--90amc,xn--j1aef,xn--j1ael8b,xn--h1ahn,xn--j1adp,xn--c1avg,xn--80aaa0cvac,xn--h1aliz,xn--90a1af,xn--41a<store>sellfy,shopware,storebase<land>static>dev,sites<<farm>storj<pictures>1337<rip>clan<management>router<ax>be,cat,es,eu,gg,mc,us,xy<gp>app<gt>blog,de,to<gy>be<hn>cc<kg>blog,io,jp,tv,uk,us<ls>de<porn>indie<tc>ch,me,we<vg>at<academy>official<faith>ybo<party>ybo<review>ybo<science>ybo<trade>ybo<st>noho<design>bss"
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PUBLIC_SUFFIX_URL = "https://publicsuffix.org/list/public_suffix_list.dat";
4
- exports.PUBLIC_SUFFIX_MARKER_ICANN_START = "// ===BEGIN ICANN DOMAINS===";
5
- exports.PUBLIC_SUFFIX_MARKER_ICANN_END = "// ===END ICANN DOMAINS===";
6
- exports.PUBLIC_SUFFIX_MARKER_PRIVATE_START = "// ===BEGIN PRIVATE DOMAINS===";
7
- exports.PUBLIC_SUFFIX_MARKER_PRIVATE_END = "// ===END PRIVATE DOMAINS===";
8
- exports.FETCH_PSL_EXPECTED_MIN_LENGTH = 214528;
9
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;AAAa,QAAA,iBAAiB,GAC7B,sDAAsD,CAAC;AAC3C,QAAA,gCAAgC,GAAG,8BAA8B,CAAC;AAClE,QAAA,8BAA8B,GAAG,4BAA4B,CAAC;AAC9D,QAAA,kCAAkC,GAC9C,gCAAgC,CAAC;AACrB,QAAA,gCAAgC,GAAG,8BAA8B,CAAC;AAClE,QAAA,6BAA6B,GAAG,MAAM,CAAC"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const urlPattern = /^[a-z][*+\-.a-z]+:\/\//i;
4
- exports.NO_HOSTNAME = Symbol("NO_HOSTNAME");
5
- exports.fromUrl = (urlLike) => {
6
- /* istanbul ignore next */
7
- if (typeof URL !== "function") {
8
- throw new Error("Looks like the new URL() constructor is not globally available in your environment. Please make sure to use a polyfill.");
9
- }
10
- // Extra check for non-TypeScript users
11
- if (typeof urlLike !== "string") {
12
- return exports.NO_HOSTNAME;
13
- }
14
- // URLs that start with // are protocol relative
15
- const url = urlLike.startsWith("//")
16
- ? `http:${urlLike}`
17
- : // URLs that start with / do not have a hostname section
18
- urlLike.startsWith("/")
19
- ? urlLike
20
- : urlPattern.test(urlLike)
21
- ? urlLike
22
- : `http://${urlLike}`;
23
- try {
24
- return new URL(url).hostname;
25
- }
26
- catch (_a) {
27
- return exports.NO_HOSTNAME;
28
- }
29
- };
30
- //# sourceMappingURL=from-url.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"from-url.js","sourceRoot":"","sources":["../../src/from-url.ts"],"names":[],"mappings":";;AAAA,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAEhC,QAAA,WAAW,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;AAEnD,QAAA,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE;IAC1C,0BAA0B;IAC1B,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC9B,MAAM,IAAI,KAAK,CACd,yHAAyH,CACzH,CAAC;KACF;IAED,uCAAuC;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAChC,OAAO,mBAAW,CAAC;KACnB;IAED,gDAAgD;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,QAAQ,OAAO,EAAE;QACnB,CAAC,CAAC,wDAAwD;YAC1D,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBACvB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC1B,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,UAAU,OAAO,EAAE,CAAC;IAEvB,IAAI;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;KAC7B;IAAC,WAAM;QACP,OAAO,mBAAW,CAAC;KACnB;AACF,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export { parseDomain, ParseResult, ParseResultType, ParseResultInvalid, ParseResultReserved, ParseResultNotListed, ParseResultListed, } from "./parse-domain";
2
- export { fromUrl, NO_HOSTNAME } from "./from-url";
3
- export { ValidationError, ValidationErrorType } from "./sanitize";
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var parse_domain_1 = require("./parse-domain");
4
- exports.parseDomain = parse_domain_1.parseDomain;
5
- exports.ParseResultType = parse_domain_1.ParseResultType;
6
- var from_url_1 = require("./from-url");
7
- exports.fromUrl = from_url_1.fromUrl;
8
- exports.NO_HOSTNAME = from_url_1.NO_HOSTNAME;
9
- var sanitize_1 = require("./sanitize");
10
- exports.ValidationErrorType = sanitize_1.ValidationErrorType;
11
- //# sourceMappingURL=main.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;AAAA,+CAQwB;AAPvB,qCAAA,WAAW,CAAA;AAEX,yCAAA,eAAe,CAAA;AAMhB,uCAAgD;AAAxC,6BAAA,OAAO,CAAA;AAAE,iCAAA,WAAW,CAAA;AAC5B,uCAAgE;AAAvC,yCAAA,mBAAmB,CAAA"}
@@ -1,11 +0,0 @@
1
- /* eslint-disable import/no-unresolved */
2
- import mainExports from "./main.js";
3
-
4
- // ./parse-domain.ts
5
- export const parseDomain = mainExports.parseDomain;
6
- export const ParseResultType = mainExports.ParseResultType;
7
- // ./from-url.ts
8
- export const fromUrl = mainExports.fromUrl;
9
- export const NO_HOSTNAME = mainExports.NO_HOSTNAME;
10
- // ./sanitize.ts
11
- export const ValidationErrorType = mainExports.ValidationErrorType;
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const serialized_tries_1 = require("./serialized-tries");
4
- const look_up_1 = require("./trie/look-up");
5
- const sanitize_1 = require("./sanitize");
6
- const parse_trie_1 = require("./trie/parse-trie");
7
- exports.RESERVED_TOP_LEVEL_DOMAINS = [
8
- "localhost",
9
- "local",
10
- "example",
11
- "invalid",
12
- "test",
13
- ];
14
- var ParseResultType;
15
- (function (ParseResultType) {
16
- /**
17
- * This parse result is returned in case the given hostname does not adhere to [RFC 1034](https://tools.ietf.org/html/rfc1034).
18
- */
19
- ParseResultType["Invalid"] = "INVALID";
20
- /**
21
- * This parse result is returned if the given hostname was an IPv4 or IPv6.
22
- */
23
- ParseResultType["Ip"] = "IP";
24
- /**
25
- * This parse result is returned when the given hostname
26
- * - is the root domain (the empty string `""`)
27
- * - belongs to the top-level domain `localhost`, `local`, `example`, `invalid` or `test`
28
- */
29
- ParseResultType["Reserved"] = "RESERVED";
30
- /**
31
- * This parse result is returned when the given hostname is valid and does not belong to a reserved top-level domain, but is not listed in the public suffix list.
32
- */
33
- ParseResultType["NotListed"] = "NOT_LISTED";
34
- /**
35
- * This parse result is returned when the given hostname belongs to a top-level domain that is listed in the public suffix list.
36
- */
37
- ParseResultType["Listed"] = "LISTED";
38
- })(ParseResultType = exports.ParseResultType || (exports.ParseResultType = {}));
39
- const getAtIndex = (array, index) => {
40
- return index >= 0 && index < array.length ? array[index] : undefined;
41
- };
42
- const splitLabelsIntoDomains = (labels, index) => {
43
- return {
44
- subDomains: labels.slice(0, Math.max(0, index)),
45
- domain: getAtIndex(labels, index),
46
- topLevelDomains: labels.slice(index + 1),
47
- };
48
- };
49
- let parsedIcannTrie;
50
- let parsedPrivateTrie;
51
- /**
52
- * Splits the given hostname in topLevelDomains, a domain and subDomains.
53
- */
54
- exports.parseDomain = (hostname) => {
55
- const sanitizationResult = sanitize_1.sanitize(hostname);
56
- if (sanitizationResult.type === sanitize_1.SanitizationResultType.Error) {
57
- return {
58
- type: ParseResultType.Invalid,
59
- hostname,
60
- errors: sanitizationResult.errors,
61
- };
62
- }
63
- if (sanitizationResult.type === sanitize_1.SanitizationResultType.ValidIp) {
64
- return {
65
- type: ParseResultType.Ip,
66
- hostname: sanitizationResult.ip,
67
- ipVersion: sanitizationResult.ipVersion,
68
- };
69
- }
70
- const { labels, domain } = sanitizationResult;
71
- if (hostname === "" ||
72
- exports.RESERVED_TOP_LEVEL_DOMAINS.includes(labels[labels.length - 1])) {
73
- return {
74
- type: ParseResultType.Reserved,
75
- hostname: domain,
76
- labels,
77
- };
78
- }
79
- // Parse the serialized trie lazily
80
- parsedIcannTrie = parsedIcannTrie !== null && parsedIcannTrie !== void 0 ? parsedIcannTrie : parse_trie_1.parseTrie(serialized_tries_1.icannTrie);
81
- parsedPrivateTrie = parsedPrivateTrie !== null && parsedPrivateTrie !== void 0 ? parsedPrivateTrie : parse_trie_1.parseTrie(serialized_tries_1.privateTrie);
82
- const icannTlds = look_up_1.lookUpTldsInTrie(labels, parsedIcannTrie);
83
- const privateTlds = look_up_1.lookUpTldsInTrie(labels, parsedPrivateTrie);
84
- if (icannTlds.length === 0 && privateTlds.length === 0) {
85
- return {
86
- type: ParseResultType.NotListed,
87
- hostname: domain,
88
- labels,
89
- };
90
- }
91
- const indexOfPublicSuffixDomain = labels.length - Math.max(privateTlds.length, icannTlds.length) - 1;
92
- const indexOfIcannDomain = labels.length - icannTlds.length - 1;
93
- return Object.assign({ type: ParseResultType.Listed, hostname: domain, labels, icann: splitLabelsIntoDomains(labels, indexOfIcannDomain) }, splitLabelsIntoDomains(labels, indexOfPublicSuffixDomain));
94
- };
95
- //# sourceMappingURL=parse-domain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-domain.js","sourceRoot":"","sources":["../../src/parse-domain.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare const buildTries: (psl: string) => {
2
- icannTrie: import("../trie/nodes").TrieRootNode;
3
- privateTrie: import("../trie/nodes").TrieRootNode;
4
- };
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const punycode_1 = require("punycode");
4
- const config_1 = require("../config");
5
- const create_trie_1 = require("../trie/create-trie");
6
- const matchNewLine = /\r?\n/u;
7
- const matchComment = /^\s*\/\//u;
8
- const matchWhitespace = /^\s*$/u;
9
- const extractByMarkers = (listContent, startMarker, endMarker) => {
10
- const start = listContent.indexOf(startMarker);
11
- const end = listContent.indexOf(endMarker);
12
- if (start === -1) {
13
- throw new Error(`Missing start marker ${startMarker} in public suffix list`);
14
- }
15
- if (end === -1) {
16
- throw new Error(`Missing end marker ${endMarker} in public suffix list`);
17
- }
18
- return listContent.slice(start, end);
19
- };
20
- const containsRule = (line) => matchComment.test(line) === false && matchWhitespace.test(line) === false;
21
- const normalizeRule = (rule) =>
22
- /*
23
- Users of parse-domain should only pass parsed hostnames (e.g. via new URL("...").hostname)
24
- to parseDomain(). This frees us from the burden of URL parsing.
25
- See also https://github.com/peerigon/parse-domain/issues/14
26
-
27
- The problem is that new URL("...").hostname will also translate all non-ASCII characters
28
- into punycode (e.g. 大分.jp becomes xn--kbrq7o.jp). This means for us that our serialized
29
- trie needs to use punyencoded hostnames.
30
-
31
- The downside of this is that punycode hostnames are bigger in terms of file size.
32
- However, that's still better than including a punycode library into the runtime code of parse-domain.
33
- Gzip is also very effective in removing duplicate characters.
34
- */
35
- punycode_1.toASCII(rule).toLowerCase();
36
- const parsePsl = (listContent) => {
37
- return {
38
- icann: extractByMarkers(listContent, config_1.PUBLIC_SUFFIX_MARKER_ICANN_START, config_1.PUBLIC_SUFFIX_MARKER_ICANN_END)
39
- .split(matchNewLine)
40
- .filter(containsRule)
41
- .map(normalizeRule),
42
- private: extractByMarkers(listContent, config_1.PUBLIC_SUFFIX_MARKER_PRIVATE_START, config_1.PUBLIC_SUFFIX_MARKER_PRIVATE_END)
43
- .split(matchNewLine)
44
- .filter(containsRule)
45
- .map(normalizeRule),
46
- };
47
- };
48
- exports.buildTries = (psl) => {
49
- const parsedPsl = parsePsl(psl);
50
- const icannTrie = create_trie_1.createTrieFromList(parsedPsl.icann);
51
- const privateTrie = create_trie_1.createTrieFromList(parsedPsl.private);
52
- return {
53
- icannTrie,
54
- privateTrie,
55
- };
56
- };
57
- //# sourceMappingURL=build-tries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-tries.js","sourceRoot":"","sources":["../../../src/psl/build-tries.ts"],"names":[],"mappings":";;AAAA,uCAAiC;AACjC,sCAKmB;AACnB,qDAAuD;AAEvD,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC,MAAM,gBAAgB,GAAG,CACxB,WAAmB,EACnB,WAAmB,EACnB,SAAiB,EAChB,EAAE;IACH,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;QACjB,MAAM,IAAI,KAAK,CACd,wBAAwB,WAAW,wBAAwB,CAC3D,CAAC;KACF;IACD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,wBAAwB,CAAC,CAAC;KACzE;IAED,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CACrC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;AAE3E,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE;AACtC;;;;;;;;;;;;EAYE;AACF,kBAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAE7B,MAAM,QAAQ,GAAG,CAAC,WAAmB,EAAE,EAAE;IACxC,OAAO;QACN,KAAK,EAAE,gBAAgB,CACtB,WAAW,EACX,yCAAgC,EAChC,uCAA8B,CAC9B;aACC,KAAK,CAAC,YAAY,CAAC;aACnB,MAAM,CAAC,YAAY,CAAC;aACpB,GAAG,CAAC,aAAa,CAAC;QACpB,OAAO,EAAE,gBAAgB,CACxB,WAAW,EACX,2CAAkC,EAClC,yCAAgC,CAChC;aACC,KAAK,CAAC,YAAY,CAAC;aACnB,MAAM,CAAC,YAAY,CAAC;aACpB,GAAG,CAAC,aAAa,CAAC;KACpB,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,gCAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,gCAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE1D,OAAO;QACN,SAAS;QACT,WAAW;KACX,CAAC;AACH,CAAC,CAAC"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const assert_1 = require("assert");
16
- const node_fetch_1 = __importDefault(require("node-fetch"));
17
- const config_1 = require("../config");
18
- exports.fetchPsl = () => __awaiter(void 0, void 0, void 0, function* () {
19
- const response = yield node_fetch_1.default(config_1.PUBLIC_SUFFIX_URL);
20
- const pslContent = yield response.text();
21
- // Sanity check
22
- assert_1.ok(pslContent.length >= config_1.FETCH_PSL_EXPECTED_MIN_LENGTH, "Public suffix list is shorter than expected");
23
- return pslContent;
24
- });
25
- //# sourceMappingURL=fetch-psl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-psl.js","sourceRoot":"","sources":["../../../src/psl/fetch-psl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,mCAA0B;AAC1B,4DAA+B;AAC/B,sCAA2E;AAE9D,QAAA,QAAQ,GAAG,GAAS,EAAE;IAClC,MAAM,QAAQ,GAAG,MAAM,oBAAK,CAAC,0BAAiB,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEzC,eAAe;IACf,WAAE,CACD,UAAU,CAAC,MAAM,IAAI,sCAA6B,EAClD,6CAA6C,CAC7C,CAAC;IAEF,OAAO,UAAU,CAAC;AACnB,CAAC,CAAA,CAAC"}
@@ -1,131 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- // eslint-disable-next-line import/default
7
- const is_ip_1 = __importDefault(require("is-ip"));
8
- // See https://en.wikipedia.org/wiki/Domain_name
9
- // See https://tools.ietf.org/html/rfc1034
10
- const LABEL_SEPARATOR = ".";
11
- const LABEL_ROOT = "";
12
- const LABEL_LENGTH_MIN = 1;
13
- const LABEL_LENGTH_MAX = 63;
14
- const DOMAIN_LENGTH_MAX = 253;
15
- var ValidationErrorType;
16
- (function (ValidationErrorType) {
17
- ValidationErrorType["NoHostname"] = "NO_HOSTNAME";
18
- ValidationErrorType["DomainMaxLength"] = "DOMAIN_MAX_LENGTH";
19
- ValidationErrorType["LabelMinLength"] = "LABEL_MIN_LENGTH";
20
- ValidationErrorType["LabelMaxLength"] = "LABEL_MAX_LENGTH";
21
- ValidationErrorType["LabelInvalidCharacter"] = "LABEL_INVALID_CHARACTER";
22
- })(ValidationErrorType = exports.ValidationErrorType || (exports.ValidationErrorType = {}));
23
- var SanitizationResultType;
24
- (function (SanitizationResultType) {
25
- SanitizationResultType["ValidIp"] = "VALID_IP";
26
- SanitizationResultType["ValidDomain"] = "VALID_DOMAIN";
27
- SanitizationResultType["Error"] = "ERROR";
28
- })(SanitizationResultType = exports.SanitizationResultType || (exports.SanitizationResultType = {}));
29
- const createNoHostnameError = (input) => {
30
- return {
31
- type: ValidationErrorType.NoHostname,
32
- message: `The given input ${String(input)} does not look like a hostname.`,
33
- column: 1,
34
- };
35
- };
36
- const createDomainMaxLengthError = (domain) => {
37
- const length = domain.length;
38
- return {
39
- type: ValidationErrorType.DomainMaxLength,
40
- message: `Domain "${domain}" is too long. Domain is ${length} octets long but should not be longer than ${DOMAIN_LENGTH_MAX}.`,
41
- column: length,
42
- };
43
- };
44
- const createLabelMinLengthError = (label, column) => {
45
- const length = label.length;
46
- return {
47
- type: ValidationErrorType.LabelMinLength,
48
- message: `Label "${label}" is too short. Label is ${length} octets long but should be at least ${LABEL_LENGTH_MIN}.`,
49
- column,
50
- };
51
- };
52
- const createLabelMaxLengthError = (label, column) => {
53
- const length = label.length;
54
- return {
55
- type: ValidationErrorType.LabelMaxLength,
56
- message: `Label "${label}" is too long. Label is ${length} octets long but should not be longer than ${LABEL_LENGTH_MAX}.`,
57
- column,
58
- };
59
- };
60
- const createLabelInvalidCharacterError = (label, invalidCharacter, column) => {
61
- return {
62
- type: ValidationErrorType.LabelInvalidCharacter,
63
- message: `Label "${label}" contains invalid character "${invalidCharacter}" at column ${column}.`,
64
- column,
65
- };
66
- };
67
- exports.sanitize = (input) => {
68
- // Extra check for non-TypeScript users
69
- if (typeof input !== "string") {
70
- return {
71
- type: SanitizationResultType.Error,
72
- errors: [createNoHostnameError(input)],
73
- };
74
- }
75
- const inputTrimmed = input.trim();
76
- // IPv6 addresses are surrounded by square brackets in URLs
77
- // See https://tools.ietf.org/html/rfc3986#section-3.2.2
78
- const inputTrimmedAsIp = inputTrimmed.replace(/^\[|]$/g, "");
79
- const ipVersion = is_ip_1.default.version(inputTrimmedAsIp);
80
- if (ipVersion !== undefined) {
81
- return {
82
- type: SanitizationResultType.ValidIp,
83
- ip: inputTrimmedAsIp,
84
- ipVersion,
85
- };
86
- }
87
- if (inputTrimmed.length > DOMAIN_LENGTH_MAX) {
88
- return {
89
- type: SanitizationResultType.Error,
90
- errors: [createDomainMaxLengthError(inputTrimmed)],
91
- };
92
- }
93
- const labels = inputTrimmed.split(LABEL_SEPARATOR);
94
- const lastLabel = labels[labels.length - 1];
95
- // If the last label is the special root label, ignore it
96
- if (lastLabel === LABEL_ROOT) {
97
- labels.pop();
98
- }
99
- const labelValidationErrors = [];
100
- let column = 1;
101
- for (const label of labels) {
102
- // According to https://tools.ietf.org/html/rfc6761 labels should
103
- // only contain ASCII letters, digits and hyphens (LDH).
104
- const invalidCharacter = /[^\d\-a-z]/iu.exec(label);
105
- if (invalidCharacter) {
106
- labelValidationErrors.push(createLabelInvalidCharacterError(label, invalidCharacter[0], invalidCharacter.index + 1));
107
- }
108
- else if (
109
- // We can use .length here to check for the octet size because
110
- // label can only contain ASCII LDH characters at this point.
111
- label.length < LABEL_LENGTH_MIN) {
112
- labelValidationErrors.push(createLabelMinLengthError(label, column));
113
- }
114
- else if (label.length > LABEL_LENGTH_MAX) {
115
- labelValidationErrors.push(createLabelMaxLengthError(label, column));
116
- }
117
- column += label.length + LABEL_SEPARATOR.length;
118
- }
119
- if (labelValidationErrors.length > 0) {
120
- return {
121
- type: SanitizationResultType.Error,
122
- errors: labelValidationErrors,
123
- };
124
- }
125
- return {
126
- type: SanitizationResultType.ValidDomain,
127
- domain: inputTrimmed,
128
- labels,
129
- };
130
- };
131
- //# sourceMappingURL=sanitize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/sanitize.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const path_1 = require("path");
16
- const fs_1 = __importDefault(require("fs"));
17
- const util_1 = require("util");
18
- const fetch_psl_1 = require("../psl/fetch-psl");
19
- // TODO: Replace this with fs promises once we removed Node 8
20
- const fs = {
21
- writeFile: util_1.promisify(fs_1.default.writeFile),
22
- };
23
- exports.done = (() => __awaiter(void 0, void 0, void 0, function* () {
24
- const pathToPslFixture = path_1.resolve(__dirname, "tests", "fixtures", "public-suffix-list.txt");
25
- const psl = yield fetch_psl_1.fetchPsl();
26
- yield fs.writeFile(pathToPslFixture, psl);
27
- }))();
28
- //# sourceMappingURL=update-psl-fixture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-psl-fixture.js","sourceRoot":"","sources":["../../../src/scripts/update-psl-fixture.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+BAA6B;AAC7B,4CAA4B;AAC5B,+BAA+B;AAC/B,gDAA0C;AAE1C,6DAA6D;AAC7D,MAAM,EAAE,GAAG;IACV,SAAS,EAAE,gBAAS,CAAC,YAAU,CAAC,SAAS,CAAC;CAC1C,CAAC;AAEW,QAAA,IAAI,GAAG,CAAC,GAAS,EAAE;IAC/B,MAAM,gBAAgB,GAAG,cAAO,CAC/B,SAAS,EACT,OAAO,EACP,UAAU,EACV,wBAAwB,CACxB,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,oBAAQ,EAAE,CAAC;IAE7B,MAAM,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-tries.js","sourceRoot":"","sources":["../../../src/scripts/update-tries.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+BAA6B;AAC7B,4CAA4B;AAC5B,+BAA+B;AAC/B,kDAAyD;AACzD,sCAA4C;AAG5C,6DAA6D;AAC7D,MAAM,EAAE,GAAG;IACV,SAAS,EAAE,gBAAS,CAAC,YAAU,CAAC,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAO,EAChC,mBAAmB,EACnB,qBAAqB,GAC+B,EAAE,EAAE;IACxD,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,CAAC,GAAG,CAChB,iBAAiB,CAAC,GAAG,CAAC,CAAO,eAAe,EAAE,EAAE;QAC/C,MAAM,eAAe,GAAG,cAAO,CAAC,SAAS,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QAC1E,MAAM,iBAAiB,GAAG,cAAO,CAChC,SAAS,EACT,eAAe,EACf,cAAc,CACd,CAAC;QACF,MAAM,kBAAkB,GAAG,cAAO,CACjC,SAAS,EACT,eAAe,EACf,WAAW,CACX,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,WAAW,eAAe,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,WAAW,iBAAiB,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,WAAW,kBAAkB,KAAK,CAAC,CAAC;QAEjD,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAClE,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACtE,EAAE,CAAC,SAAS,CACX,kBAAkB,EAClB,IAAI,CAAC,SAAS,CAAC;gBACd,SAAS,EAAE,IAAI,IAAI,EAAE;aACrB,CAAC,CACF;SACD,CAAC,CAAC;IACJ,CAAC,CAAA,CAAC,CACF,CAAC;AACH,CAAC,CAAA,CAAC;AAEW,QAAA,IAAI,GAAG,CAAC,GAAS,EAAE;IAC/B,OAAO,CAAC,IAAI,CAAC,oCAAoC,0BAAiB,KAAK,CAAC,CAAC;IAEzE,MAAM,iBAAiB,CAAC,MAAM,uCAAwB,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- import icannTrie from "../serialized-tries/icann.json";
2
- import privateTrie from "../serialized-tries/private.json";
3
- export { icannTrie, privateTrie };
@@ -1,10 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const icann_json_1 = __importDefault(require("../serialized-tries/icann.json"));
7
- exports.icannTrie = icann_json_1.default;
8
- const private_json_1 = __importDefault(require("../serialized-tries/private.json"));
9
- exports.privateTrie = private_json_1.default;
10
- //# sourceMappingURL=serialized-tries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialized-tries.js","sourceRoot":"","sources":["../../src/serialized-tries.ts"],"names":[],"mappings":";;;;;AAAA,gFAAuD;AAG/C,oBAHD,oBAAS,CAGC;AAFjB,oFAA2D;AAExC,sBAFZ,sBAAW,CAEY"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const assert_1 = require("assert");
4
- const main_1 = require("./main");
5
- exports.runSmokeTest = () => {
6
- assert_1.deepStrictEqual(main_1.parseDomain("www.example.com"), {
7
- hostname: "www.example.com",
8
- type: "LISTED",
9
- labels: ["www", "example", "com"],
10
- subDomains: ["www"],
11
- domain: "example",
12
- topLevelDomains: ["com"],
13
- icann: {
14
- subDomains: ["www"],
15
- domain: "example",
16
- topLevelDomains: ["com"],
17
- },
18
- });
19
- assert_1.deepStrictEqual(main_1.parseDomain("www.example.co.uk"), {
20
- hostname: "www.example.co.uk",
21
- type: "LISTED",
22
- labels: ["www", "example", "co", "uk"],
23
- subDomains: ["www"],
24
- domain: "example",
25
- topLevelDomains: ["co", "uk"],
26
- icann: {
27
- subDomains: ["www"],
28
- domain: "example",
29
- topLevelDomains: ["co", "uk"],
30
- },
31
- });
32
- assert_1.deepStrictEqual(main_1.parseDomain("www.example.cloudfront.net"), {
33
- hostname: "www.example.cloudfront.net",
34
- type: "LISTED",
35
- labels: ["www", "example", "cloudfront", "net"],
36
- subDomains: ["www"],
37
- domain: "example",
38
- topLevelDomains: ["cloudfront", "net"],
39
- icann: {
40
- subDomains: ["www", "example"],
41
- domain: "cloudfront",
42
- topLevelDomains: ["net"],
43
- },
44
- });
45
- // TODO: Use fromUrl once we dropped Node v8 support
46
- // deepStrictEqual(parseDomain(fromUrl("www.食狮.公司.cn")), {
47
- assert_1.deepStrictEqual(main_1.parseDomain("www.xn--85x722f.xn--55qx5d.cn"), {
48
- hostname: "www.xn--85x722f.xn--55qx5d.cn",
49
- type: "LISTED",
50
- labels: ["www", "xn--85x722f", "xn--55qx5d", "cn"],
51
- subDomains: ["www"],
52
- domain: "xn--85x722f",
53
- topLevelDomains: ["xn--55qx5d", "cn"],
54
- icann: {
55
- subDomains: ["www"],
56
- domain: "xn--85x722f",
57
- topLevelDomains: ["xn--55qx5d", "cn"],
58
- },
59
- });
60
- };
61
- //# sourceMappingURL=smoke-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smoke-test.js","sourceRoot":"","sources":["../../src/smoke-test.ts"],"names":[],"mappings":";;AAAA,mCAAuC;AACvC,iCAAmC;AAEtB,QAAA,YAAY,GAAG,GAAG,EAAE;IAChC,wBAAe,CAAC,kBAAW,CAAC,iBAAiB,CAAC,EAAE;QAC/C,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;QACjC,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,CAAC,KAAK,CAAC;QACxB,KAAK,EAAE;YACN,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,CAAC,KAAK,CAAC;SACxB;KACD,CAAC,CAAC;IACH,wBAAe,CAAC,kBAAW,CAAC,mBAAmB,CAAC,EAAE;QACjD,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;QACtC,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QAC7B,KAAK,EAAE;YACN,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;SAC7B;KACD,CAAC,CAAC;IACH,wBAAe,CAAC,kBAAW,CAAC,4BAA4B,CAAC,EAAE;QAC1D,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC;QAC/C,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC;QACtC,KAAK,EAAE;YACN,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;YAC9B,MAAM,EAAE,YAAY;YACpB,eAAe,EAAE,CAAC,KAAK,CAAC;SACxB;KACD,CAAC,CAAC;IACH,oDAAoD;IACpD,0DAA0D;IAC1D,wBAAe,CAAC,kBAAW,CAAC,+BAA+B,CAAC,EAAE;QAC7D,QAAQ,EAAE,+BAA+B;QACzC,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC;QAClD,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,aAAa;QACrB,eAAe,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;QACrC,KAAK,EAAE;YACN,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,eAAe,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;SACrC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // UP, SAME, DOWN, RESET should not be special regex characters in a character class.
4
- exports.UP = "<"; // one level up
5
- exports.SAME = ","; // same level
6
- exports.DOWN = ">"; // one level down
7
- exports.RESET = "|"; // reset level index and start new
8
- exports.WILDCARD = "*"; // as defined by publicsuffix.org
9
- exports.EXCEPTION = "!"; // as defined by publicsuffix.org
10
- //# sourceMappingURL=characters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"characters.js","sourceRoot":"","sources":["../../../src/trie/characters.ts"],"names":[],"mappings":";;AAAA,qFAAqF;AACxE,QAAA,EAAE,GAAG,GAAG,CAAC,CAAC,eAAe;AACzB,QAAA,IAAI,GAAG,GAAG,CAAC,CAAC,aAAa;AACzB,QAAA,IAAI,GAAG,GAAG,CAAC,CAAC,iBAAiB;AAC7B,QAAA,KAAK,GAAG,GAAG,CAAC,CAAC,kCAAkC;AAC/C,QAAA,QAAQ,GAAG,GAAG,CAAC,CAAC,iCAAiC;AACjD,QAAA,SAAS,GAAG,GAAG,CAAC,CAAC,iCAAiC"}
@@ -1 +0,0 @@
1
- export declare const createTrieFromList: (list: string[]) => import("./nodes").TrieRootNode;