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.
- package/LICENSE +17 -20
- package/README.md +181 -112
- package/bin/update.js +12 -15
- package/{build-cjs/src → build}/config.d.ts +0 -0
- package/{build-esm/src → build}/config.js +0 -0
- package/build/config.js.map +1 -0
- package/{build-cjs/src → build}/from-url.d.ts +0 -0
- package/{build-esm/src → build}/from-url.js +1 -1
- package/build/from-url.js.map +1 -0
- package/build/main.d.ts +3 -0
- package/build/main.js +6 -0
- package/build/main.js.map +1 -0
- package/{build-cjs/src → build}/parse-domain.d.ts +9 -3
- package/{build-esm/src → build}/parse-domain.js +6 -6
- package/build/parse-domain.js.map +1 -0
- package/build/psl/build-tries.d.ts +4 -0
- package/{build-esm/src → build}/psl/build-tries.js +5 -20
- package/build/psl/build-tries.js.map +1 -0
- package/{build-cjs/src → build}/psl/fetch-psl.d.ts +0 -0
- package/{build-esm/src → build}/psl/fetch-psl.js +1 -1
- package/build/psl/fetch-psl.js.map +1 -0
- package/build/punycode.d.ts +1 -0
- package/build/punycode.js +4 -0
- package/build/punycode.js.map +1 -0
- package/{build-cjs/src → build}/sanitize.d.ts +28 -6
- package/build/sanitize.js +194 -0
- package/build/sanitize.js.map +1 -0
- package/{build-cjs/src → build}/scripts/update-psl-fixture.d.ts +0 -0
- package/build/scripts/update-psl-fixture.js +20 -0
- package/build/scripts/update-psl-fixture.js.map +1 -0
- package/{build-cjs/src → build}/scripts/update-tries.d.ts +0 -0
- package/{build-cjs/src → build}/scripts/update-tries.js +15 -23
- package/build/scripts/update-tries.js.map +1 -0
- package/build/serialized-tries.d.ts +3 -0
- package/build/serialized-tries.js +4 -0
- package/build/serialized-tries.js.map +1 -0
- package/{build-cjs/src → build}/smoke-test.d.ts +0 -0
- package/{build-esm/src → build}/smoke-test.js +6 -8
- package/build/smoke-test.js.map +1 -0
- package/{build-cjs/src → build}/trie/characters.d.ts +0 -0
- package/{build-esm/src → build}/trie/characters.js +0 -0
- package/build/trie/characters.js.map +1 -0
- package/build/trie/create-trie.d.ts +1 -0
- package/{build-esm/src → build}/trie/create-trie.js +1 -1
- package/build/trie/create-trie.js.map +1 -0
- package/build/trie/look-up.d.ts +3 -0
- package/{build-esm/src → build}/trie/look-up.js +1 -1
- package/build/trie/look-up.js.map +1 -0
- package/{build-cjs/src → build}/trie/nodes.d.ts +0 -0
- package/{build-esm/src → build}/trie/nodes.js +0 -0
- package/build/trie/nodes.js.map +1 -0
- package/{build-cjs/src → build}/trie/parse-trie.d.ts +1 -1
- package/{build-esm/src → build}/trie/parse-trie.js +2 -2
- package/build/trie/parse-trie.js.map +1 -0
- package/{build-cjs/src → build}/trie/serialize-trie.d.ts +1 -1
- package/{build-esm/src → build}/trie/serialize-trie.js +1 -1
- package/build/trie/serialize-trie.js.map +1 -0
- package/build/type-util.d.ts +3 -0
- package/build/type-util.js +2 -0
- package/{build-cjs/src → build}/type-util.js.map +1 -1
- package/{build-cjs/src → build}/update-tries.d.ts +0 -0
- package/{build-esm/src → build}/update-tries.js +3 -3
- package/build/update-tries.js.map +1 -0
- package/package.json +83 -85
- package/serialized-tries/icann.d.ts +3 -0
- package/serialized-tries/icann.js +1 -0
- package/serialized-tries/info.json +1 -0
- package/serialized-tries/private.d.ts +3 -0
- package/serialized-tries/private.js +1 -0
- package/build-cjs/serialized-tries/icann.json +0 -1
- package/build-cjs/serialized-tries/info.json +0 -1
- package/build-cjs/serialized-tries/private.json +0 -1
- package/build-cjs/src/config.js +0 -9
- package/build-cjs/src/config.js.map +0 -1
- package/build-cjs/src/from-url.js +0 -30
- package/build-cjs/src/from-url.js.map +0 -1
- package/build-cjs/src/main.d.ts +0 -3
- package/build-cjs/src/main.js +0 -11
- package/build-cjs/src/main.js.map +0 -1
- package/build-cjs/src/main.mjs +0 -11
- package/build-cjs/src/parse-domain.js +0 -95
- package/build-cjs/src/parse-domain.js.map +0 -1
- package/build-cjs/src/psl/build-tries.d.ts +0 -4
- package/build-cjs/src/psl/build-tries.js +0 -57
- package/build-cjs/src/psl/build-tries.js.map +0 -1
- package/build-cjs/src/psl/fetch-psl.js +0 -25
- package/build-cjs/src/psl/fetch-psl.js.map +0 -1
- package/build-cjs/src/sanitize.js +0 -131
- package/build-cjs/src/sanitize.js.map +0 -1
- package/build-cjs/src/scripts/update-psl-fixture.js +0 -28
- package/build-cjs/src/scripts/update-psl-fixture.js.map +0 -1
- package/build-cjs/src/scripts/update-tries.js.map +0 -1
- package/build-cjs/src/serialized-tries.d.ts +0 -3
- package/build-cjs/src/serialized-tries.js +0 -10
- package/build-cjs/src/serialized-tries.js.map +0 -1
- package/build-cjs/src/smoke-test.js +0 -61
- package/build-cjs/src/smoke-test.js.map +0 -1
- package/build-cjs/src/trie/characters.js +0 -10
- package/build-cjs/src/trie/characters.js.map +0 -1
- package/build-cjs/src/trie/create-trie.d.ts +0 -1
- package/build-cjs/src/trie/create-trie.js +0 -14
- package/build-cjs/src/trie/create-trie.js.map +0 -1
- package/build-cjs/src/trie/look-up.d.ts +0 -2
- package/build-cjs/src/trie/look-up.js +0 -34
- package/build-cjs/src/trie/look-up.js.map +0 -1
- package/build-cjs/src/trie/nodes.js +0 -24
- package/build-cjs/src/trie/nodes.js.map +0 -1
- package/build-cjs/src/trie/parse-trie.js +0 -56
- package/build-cjs/src/trie/parse-trie.js.map +0 -1
- package/build-cjs/src/trie/serialize-trie.js +0 -29
- package/build-cjs/src/trie/serialize-trie.js.map +0 -1
- package/build-cjs/src/type-util.d.ts +0 -3
- package/build-cjs/src/type-util.js +0 -3
- package/build-cjs/src/update-tries.js +0 -25
- package/build-cjs/src/update-tries.js.map +0 -1
- package/build-esm/serialized-tries/icann.json +0 -1
- package/build-esm/serialized-tries/info.json +0 -1
- package/build-esm/serialized-tries/private.json +0 -1
- package/build-esm/src/config.d.ts +0 -6
- package/build-esm/src/config.js.map +0 -1
- package/build-esm/src/from-url.d.ts +0 -2
- package/build-esm/src/from-url.js.map +0 -1
- package/build-esm/src/main.d.ts +0 -3
- package/build-esm/src/main.js +0 -4
- package/build-esm/src/main.js.map +0 -1
- package/build-esm/src/parse-domain.d.ts +0 -79
- package/build-esm/src/parse-domain.js.map +0 -1
- package/build-esm/src/psl/build-tries.d.ts +0 -4
- package/build-esm/src/psl/build-tries.js.map +0 -1
- package/build-esm/src/psl/fetch-psl.d.ts +0 -1
- package/build-esm/src/psl/fetch-psl.js.map +0 -1
- package/build-esm/src/sanitize.d.ts +0 -36
- package/build-esm/src/sanitize.js +0 -126
- package/build-esm/src/sanitize.js.map +0 -1
- package/build-esm/src/serialized-tries.d.ts +0 -3
- package/build-esm/src/serialized-tries.js +0 -4
- package/build-esm/src/serialized-tries.js.map +0 -1
- package/build-esm/src/smoke-test.d.ts +0 -1
- package/build-esm/src/smoke-test.js.map +0 -1
- package/build-esm/src/trie/characters.d.ts +0 -6
- package/build-esm/src/trie/characters.js.map +0 -1
- package/build-esm/src/trie/create-trie.d.ts +0 -1
- package/build-esm/src/trie/create-trie.js.map +0 -1
- package/build-esm/src/trie/look-up.d.ts +0 -2
- package/build-esm/src/trie/look-up.js.map +0 -1
- package/build-esm/src/trie/nodes.d.ts +0 -15
- package/build-esm/src/trie/nodes.js.map +0 -1
- package/build-esm/src/trie/parse-trie.d.ts +0 -1
- package/build-esm/src/trie/parse-trie.js.map +0 -1
- package/build-esm/src/trie/serialize-trie.d.ts +0 -2
- package/build-esm/src/trie/serialize-trie.js.map +0 -1
- package/build-esm/src/type-util.d.ts +0 -3
- package/build-esm/src/type-util.js +0 -1
- package/build-esm/src/type-util.js.map +0 -1
- package/build-esm/src/update-tries.d.ts +0 -4
- 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"
|
package/build-cjs/src/config.js
DELETED
|
@@ -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"}
|
package/build-cjs/src/main.d.ts
DELETED
|
@@ -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";
|
package/build-cjs/src/main.js
DELETED
|
@@ -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"}
|
package/build-cjs/src/main.mjs
DELETED
|
@@ -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,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,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;
|