@jitsu/js 1.10.3 → 1.11.0-beta.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/dist/jitsu-no-ext.cjs.js +129 -85
- package/dist/jitsu-no-ext.es.js +129 -85
- package/dist/jitsu.cjs.js +130 -100
- package/dist/jitsu.es.js +130 -100
- package/dist/web/p.js.txt +130 -105
- package/package.json +21 -18
- package/LICENSE +0 -21
package/dist/jitsu-no-ext.cjs.js
CHANGED
|
@@ -128,11 +128,86 @@ function loadScript(src, options) {
|
|
|
128
128
|
|
|
129
129
|
const internalDestinationPlugins = {};
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
var name = "@jitsu/js";
|
|
132
|
+
var version = "1.11.0-beta.0";
|
|
133
|
+
var description = "";
|
|
134
|
+
var author = "Jitsu Dev Team <dev@jitsu.com>";
|
|
135
|
+
var main = "dist/jitsu.cjs.js";
|
|
136
|
+
var files = [
|
|
137
|
+
"dist"
|
|
138
|
+
];
|
|
139
|
+
var module$1 = "dist/jitsu.es.js";
|
|
140
|
+
var types = "dist/jitsu.d.ts";
|
|
141
|
+
var publishConfig = {
|
|
142
|
+
access: "public"
|
|
143
|
+
};
|
|
144
|
+
var license = "MIT";
|
|
145
|
+
var scripts = {
|
|
146
|
+
clean: "rm -rf ./dist ./compiled",
|
|
147
|
+
"test:node": "vitest run",
|
|
148
|
+
"test:playwright": "playwright test ./__tests__/playwright",
|
|
149
|
+
test: "pnpm run test:node",
|
|
150
|
+
"//typecheck": "Build is required because types are generated during build",
|
|
151
|
+
typecheck: "pnpm run build",
|
|
152
|
+
build: "pnpm run clean && tsc -p . && rollup -c",
|
|
153
|
+
"//build-deps": "Required by turbo ^build-deps - builds dist/ for workspace packages that import this",
|
|
154
|
+
"build-deps": "pnpm run build"
|
|
155
|
+
};
|
|
156
|
+
var devDependencies = {
|
|
157
|
+
"@jitsu/common-config": "workspace:*",
|
|
158
|
+
tslib: "catalog:",
|
|
159
|
+
"@playwright/test": "1.39.0",
|
|
160
|
+
"@rollup/plugin-commonjs": "^28.0.2",
|
|
161
|
+
"rollup-plugin-dts": "^6.2.1",
|
|
162
|
+
"@rollup/plugin-json": "^5.0.1",
|
|
163
|
+
"@rollup/plugin-multi-entry": "^6.0.0",
|
|
164
|
+
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
165
|
+
"@rollup/plugin-replace": "^5.0.1",
|
|
166
|
+
"@rollup/plugin-terser": "^0.1.0",
|
|
167
|
+
"@segment/analytics-next": "^1.75.0",
|
|
168
|
+
"@types/chalk": "^2.2.0",
|
|
169
|
+
"@types/node": "catalog:",
|
|
170
|
+
"@vitest/ui": "catalog:",
|
|
171
|
+
chalk: "^4.1.2",
|
|
172
|
+
"cookie-parser": "^1.4.7",
|
|
173
|
+
ejs: "^3.1.8",
|
|
174
|
+
express: "^4.21.2",
|
|
175
|
+
"node-fetch-commonjs": "^3.3.2",
|
|
176
|
+
"node-forge": "^1.3.1",
|
|
177
|
+
"raw-loader": "^4.0.2",
|
|
178
|
+
rollup: "^3.29.5",
|
|
179
|
+
typescript: "catalog:",
|
|
180
|
+
vitest: "catalog:",
|
|
181
|
+
jsondiffpatch: "workspace:*"
|
|
182
|
+
};
|
|
183
|
+
var peerDependencies = {
|
|
184
|
+
"@jitsu/protocols": "workspace:*"
|
|
185
|
+
};
|
|
186
|
+
var dependencies = {
|
|
187
|
+
analytics: "0.8.9"
|
|
188
|
+
};
|
|
189
|
+
var pkg = {
|
|
190
|
+
name: name,
|
|
191
|
+
version: version,
|
|
192
|
+
description: description,
|
|
193
|
+
author: author,
|
|
194
|
+
main: main,
|
|
195
|
+
files: files,
|
|
196
|
+
module: module$1,
|
|
197
|
+
types: types,
|
|
198
|
+
publishConfig: publishConfig,
|
|
199
|
+
license: license,
|
|
200
|
+
"private": false,
|
|
201
|
+
scripts: scripts,
|
|
202
|
+
devDependencies: devDependencies,
|
|
203
|
+
peerDependencies: peerDependencies,
|
|
204
|
+
dependencies: dependencies
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const jitsuVersion = pkg.version ;
|
|
132
208
|
const jitsuLibraryName = "@jitsu/js";
|
|
133
209
|
|
|
134
|
-
const publicSuffixes = "myshopify.com,ac,com.ac,edu.ac,gov.ac,net.ac,mil.ac,org.ac,ad,nom.ad,ae,co.ae,net.ae,org.ae,sch.ae,ac.ae,gov.ae,mil.ae,aero,af,gov.af,com.af,org.af,net.af,edu.af,ag,com.ag,org.ag,net.ag,co.ag,nom.ag,ai,off.ai,com.ai,net.ai,org.ai,al,com.al,edu.al,gov.al,mil.al,net.al,org.al,am,co.am,com.am,commune.am,net.am,org.am,ao,ed.ao,gv.ao,og.ao,co.ao,pb.ao,it.ao,aq,ar,bet.ar,com.ar,coop.ar,edu.ar,gob.ar,gov.ar,int.ar,mil.ar,musica.ar,mutual.ar,net.ar,org.ar,senasa.ar,tur.ar,arpa,e164.arpa,in-addr.arpa,ip6.arpa,iris.arpa,uri.arpa,urn.arpa,as,gov.as,asia,at,ac.at,co.at,gv.at,or.at,sth.ac.at,au,com.au,net.au,org.au,edu.au,gov.au,asn.au,id.au,act.au,nsw.au,nt.au,qld.au,sa.au,tas.au,vic.au,wa.au,aw,com.aw,ax,az,com.az,net.az,int.az,gov.az,org.az,edu.az,info.az,pp.az,mil.az,name.az,pro.az,biz.az,ba,com.ba,edu.ba,gov.ba,mil.ba,net.ba,org.ba,bb,biz.bb,co.bb,com.bb,edu.bb,gov.bb,info.bb,net.bb,org.bb,store.bb,tv.bb,bd,be,ac.be,bf,gov.bf,bg,a.bg,b.bg,c.bg,d.bg,e.bg,f.bg,g.bg,h.bg,i.bg,j.bg,k.bg,l.bg,m.bg,n.bg,o.bg,p.bg,q.bg,r.bg,s.bg,t.bg,u.bg,v.bg,w.bg,x.bg,y.bg,z.bg,0.bg,1.bg,2.bg,3.bg,4.bg,5.bg,6.bg,7.bg,8.bg,9.bg,bh,com.bh,edu.bh,net.bh,org.bh,gov.bh,bi,co.bi,com.bi,edu.bi,or.bi,org.bi,biz,bj,africa.bj,agro.bj,architectes.bj,assur.bj,avocats.bj,co.bj,com.bj,eco.bj,econo.bj,edu.bj,info.bj,loisirs.bj,money.bj,net.bj,org.bj,ote.bj,resto.bj,restaurant.bj,tourism.bj,univ.bj,bm,com.bm,edu.bm,gov.bm,net.bm,org.bm,bn,com.bn,edu.bn,gov.bn,net.bn,org.bn,bo,com.bo,edu.bo,gob.bo,int.bo,org.bo,net.bo,mil.bo,tv.bo,web.bo,br,9guacu.br,abc.br,adm.br,adv.br,agr.br,aju.br,am.br,anani.br,aparecida.br,app.br,arq.br,art.br,ato.br,b.br,barueri.br,belem.br,bhz.br,bib.br,bio.br,blog.br,bmd.br,boavista.br,bsb.br,campinagrande.br,campinas.br,caxias.br,cim.br,cng.br,cnt.br,com.br,contagem.br,coop.br,coz.br,cri.br,cuiaba.br,curitiba.br,def.br,des.br,det.br,dev.br,ecn.br,eco.br,edu.br,emp.br,enf.br,eng.br,esp.br,etc.br,eti.br,far.br,feira.br,flog.br,floripa.br,fm.br,fnd.br,fortal.br,fot.br,foz.br,fst.br,g12.br,geo.br,ggf.br,goiania.br,gov.br,gru.br,imb.br,ind.br,inf.br,jab.br,jampa.br,jdf.br,joinville.br,jor.br,jus.br,leg.br,lel.br,log.br,londrina.br,macapa.br,maceio.br,manaus.br,maringa.br,mat.br,med.br,mil.br,morena.br,mp.br,mus.br,natal.br,net.br,niteroi.br,nom.br,not.br,ntr.br,odo.br,ong.br,org.br,osasco.br,palmas.br,poa.br,ppg.br,pro.br,psc.br,psi.br,pvh.br,qsl.br,radio.br,rec.br,recife.br,rep.br,ribeirao.br,rio.br,riobranco.br,riopreto.br,salvador.br,sampa.br,santamaria.br,santoandre.br,saobernardo.br,saogonca.br,seg.br,sjc.br,slg.br,slz.br,sorocaba.br,srv.br,taxi.br,tc.br,tec.br,teo.br,the.br,tmp.br,trd.br,tur.br,tv.br,udi.br,vet.br,vix.br,vlog.br,wiki.br,zlg.br,bs,com.bs,net.bs,org.bs,edu.bs,gov.bs,bt,com.bt,edu.bt,gov.bt,net.bt,org.bt,bv,bw,co.bw,org.bw,by,gov.by,mil.by,com.by,of.by,bz,com.bz,net.bz,org.bz,edu.bz,gov.bz,ca,ab.ca,bc.ca,mb.ca,nb.ca,nf.ca,nl.ca,ns.ca,nt.ca,nu.ca,on.ca,pe.ca,qc.ca,sk.ca,yk.ca,gc.ca,cat,cc,cd,gov.cd,cf,cg,ch,ci,org.ci,or.ci,com.ci,co.ci,edu.ci,ed.ci,ac.ci,net.ci,go.ci,asso.ci,aéroport.ci,int.ci,presse.ci,md.ci,gouv.ci,ck,cl,co.cl,gob.cl,gov.cl,mil.cl,cm,co.cm,com.cm,gov.cm,net.cm,cn,ac.cn,com.cn,edu.cn,gov.cn,net.cn,org.cn,mil.cn,co,arts.co,com.co,edu.co,firm.co,gov.co,info.co,int.co,mil.co,net.co,nom.co,org.co,rec.co,web.co,com,coop,cr,ac.cr,co.cr,ed.cr,fi.cr,go.cr,or.cr,sa.cr,cu,com.cu,edu.cu,org.cu,net.cu,gov.cu,inf.cu,cv,com.cv,edu.cv,int.cv,nome.cv,org.cv,cw,com.cw,edu.cw,net.cw,org.cw,cx,gov.cx,cy,ac.cy,biz.cy,com.cy,ekloges.cy,gov.cy,ltd.cy,mil.cy,net.cy,org.cy,press.cy,pro.cy,tm.cy,cz,de,dj,dk,dm,com.dm,net.dm,org.dm,edu.dm,gov.dm,do,art.do,com.do,edu.do,gob.do,gov.do,mil.do,net.do,org.do,sld.do,web.do,dz,art.dz,asso.dz,com.dz,edu.dz,gov.dz,org.dz,net.dz,pol.dz,soc.dz,tm.dz,ec,com.ec,info.ec,net.ec,fin.ec,k12.ec,med.ec,pro.ec,org.ec,edu.ec,gov.ec,gob.ec,mil.ec,edu,ee,edu.ee,gov.ee,riik.ee,lib.ee,med.ee,com.ee,pri.ee,aip.ee,org.ee,fie.ee,eg,com.eg,edu.eg,eun.eg,gov.eg,mil.eg,name.eg,net.eg,org.eg,sci.eg,er,es,com.es,nom.es,org.es,gob.es,edu.es,et,com.et,gov.et,org.et,edu.et,biz.et,name.et,info.et,net.et,eu,fi,aland.fi,fj,ac.fj,biz.fj,com.fj,gov.fj,info.fj,mil.fj,name.fj,net.fj,org.fj,pro.fj,fk,com.fm,edu.fm,net.fm,org.fm,fm,fo,fr,asso.fr,com.fr,gouv.fr,nom.fr,prd.fr,tm.fr,aeroport.fr,avocat.fr,avoues.fr,cci.fr,chambagri.fr,chirurgiens-dentistes.fr,experts-comptables.fr,geometre-expert.fr,greta.fr,huissier-justice.fr,medecin.fr,notaires.fr,pharmacien.fr,port.fr,veterinaire.fr,ga,gb,edu.gd,gov.gd,gd,ge,com.ge,edu.ge,gov.ge,org.ge,mil.ge,net.ge,pvt.ge,gf,gg,co.gg,net.gg,org.gg,gh,com.gh,edu.gh,gov.gh,org.gh,mil.gh,gi,com.gi,ltd.gi,gov.gi,mod.gi,edu.gi,org.gi,gl,co.gl,com.gl,edu.gl,net.gl,org.gl,gm,gn,ac.gn,com.gn,edu.gn,gov.gn,org.gn,net.gn,gov,gp,com.gp,net.gp,mobi.gp,edu.gp,org.gp,asso.gp,gq,gr,com.gr,edu.gr,net.gr,org.gr,gov.gr,gs,gt,com.gt,edu.gt,gob.gt,ind.gt,mil.gt,net.gt,org.gt,gu,com.gu,edu.gu,gov.gu,guam.gu,info.gu,net.gu,org.gu,web.gu,gw,gy,co.gy,com.gy,edu.gy,gov.gy,net.gy,org.gy,hk,com.hk,edu.hk,gov.hk,idv.hk,net.hk,org.hk,hm,hn,com.hn,edu.hn,org.hn,net.hn,mil.hn,gob.hn,hr,iz.hr,from.hr,name.hr,com.hr,ht,com.ht,shop.ht,firm.ht,info.ht,adult.ht,net.ht,pro.ht,org.ht,med.ht,art.ht,coop.ht,pol.ht,asso.ht,edu.ht,rel.ht,gouv.ht,perso.ht,hu,co.hu,info.hu,org.hu,priv.hu,sport.hu,tm.hu,2000.hu,agrar.hu,bolt.hu,casino.hu,city.hu,erotica.hu,erotika.hu,film.hu,forum.hu,games.hu,hotel.hu,ingatlan.hu,jogasz.hu,konyvelo.hu,lakas.hu,media.hu,news.hu,reklam.hu,sex.hu,shop.hu,suli.hu,szex.hu,tozsde.hu,utazas.hu,video.hu,id,ac.id,biz.id,co.id,desa.id,go.id,mil.id,my.id,net.id,or.id,ponpes.id,sch.id,web.id,ie,gov.ie,il,ac.il,co.il,gov.il,idf.il,k12.il,muni.il,net.il,org.il,im,ac.im,co.im,com.im,ltd.co.im,net.im,org.im,plc.co.im,tt.im,tv.im,in,5g.in,6g.in,ac.in,ai.in,am.in,bihar.in,biz.in,business.in,ca.in,cn.in,co.in,com.in,coop.in,cs.in,delhi.in,dr.in,edu.in,er.in,firm.in,gen.in,gov.in,gujarat.in,ind.in,info.in,int.in,internet.in,io.in,me.in,mil.in,net.in,nic.in,org.in,pg.in,post.in,pro.in,res.in,travel.in,tv.in,uk.in,up.in,us.in,info,int,eu.int,io,com.io,iq,gov.iq,edu.iq,mil.iq,com.iq,org.iq,net.iq,ir,ac.ir,co.ir,gov.ir,id.ir,net.ir,org.ir,sch.ir,is,net.is,com.is,edu.is,gov.is,org.is,int.is,it,gov.it,edu.it,je,co.je,net.je,org.je,jm,jo,com.jo,org.jo,net.jo,edu.jo,sch.jo,gov.jo,mil.jo,name.jo,jobs,jp,ac.jp,ad.jp,co.jp,ed.jp,go.jp,gr.jp,lg.jp,ne.jp,or.jp,ke,ac.ke,co.ke,go.ke,info.ke,me.ke,mobi.ke,ne.ke,or.ke,sc.ke,kg,org.kg,net.kg,com.kg,edu.kg,gov.kg,mil.kg,kh,ki,edu.ki,biz.ki,net.ki,org.ki,gov.ki,info.ki,com.ki,km,org.km,nom.km,gov.km,prd.km,tm.km,edu.km,mil.km,ass.km,com.km,kn,net.kn,org.kn,edu.kn,gov.kn,kp,com.kp,edu.kp,gov.kp,org.kp,rep.kp,tra.kp,kr,ac.kr,co.kr,es.kr,go.kr,hs.kr,kg.kr,mil.kr,ms.kr,ne.kr,or.kr,pe.kr,re.kr,sc.kr,kw,com.kw,edu.kw,emb.kw,gov.kw,ind.kw,net.kw,org.kw,ky,com.ky,edu.ky,net.ky,org.ky,kz,org.kz,edu.kz,net.kz,gov.kz,mil.kz,com.kz,la,int.la,net.la,info.la,edu.la,gov.la,per.la,com.la,org.la,lb,com.lb,edu.lb,gov.lb,net.lb,org.lb,lc,com.lc,net.lc,co.lc,org.lc,edu.lc,gov.lc,li,lk,gov.lk,sch.lk,net.lk,int.lk,com.lk,org.lk,edu.lk,ngo.lk,soc.lk,web.lk,ltd.lk,assn.lk,grp.lk,hotel.lk,ac.lk,lr,com.lr,edu.lr,gov.lr,org.lr,net.lr,ls,ac.ls,biz.ls,co.ls,edu.ls,gov.ls,info.ls,net.ls,org.ls,sc.ls,lt,gov.lt,lu,lv,com.lv,edu.lv,gov.lv,org.lv,mil.lv,id.lv,net.lv,asn.lv,conf.lv,ly,com.ly,net.ly,gov.ly,plc.ly,edu.ly,sch.ly,med.ly,org.ly,id.ly,ma,co.ma,net.ma,gov.ma,org.ma,ac.ma,press.ma,mc,tm.mc,asso.mc,md,me,co.me,net.me,org.me,edu.me,ac.me,gov.me,its.me,priv.me,mg,org.mg,nom.mg,gov.mg,prd.mg,tm.mg,edu.mg,mil.mg,com.mg,co.mg,mh,mil,mk,com.mk,org.mk,net.mk,edu.mk,gov.mk,inf.mk,name.mk,ml,com.ml,edu.ml,gouv.ml,gov.ml,net.ml,org.ml,presse.ml,mm,mn,gov.mn,edu.mn,org.mn,mo,com.mo,net.mo,org.mo,edu.mo,gov.mo,mobi,mp,mq,mr,gov.mr,ms,com.ms,edu.ms,gov.ms,net.ms,org.ms,mt,com.mt,edu.mt,net.mt,org.mt,mu,com.mu,net.mu,org.mu,gov.mu,ac.mu,co.mu,or.mu,museum,mv,aero.mv,biz.mv,com.mv,coop.mv,edu.mv,gov.mv,info.mv,int.mv,mil.mv,museum.mv,name.mv,net.mv,org.mv,pro.mv,mw,ac.mw,biz.mw,co.mw,com.mw,coop.mw,edu.mw,gov.mw,int.mw,museum.mw,net.mw,org.mw,mx,com.mx,org.mx,gob.mx,edu.mx,net.mx,my,biz.my,com.my,edu.my,gov.my,mil.my,name.my,net.my,org.my,mz,ac.mz,adv.mz,co.mz,edu.mz,gov.mz,mil.mz,net.mz,org.mz,na,info.na,pro.na,name.na,school.na,or.na,dr.na,us.na,mx.na,ca.na,in.na,cc.na,tv.na,ws.na,mobi.na,co.na,com.na,org.na,name,nc,asso.nc,nom.nc,ne,net,nf,com.nf,net.nf,per.nf,rec.nf,web.nf,arts.nf,firm.nf,info.nf,other.nf,store.nf,ng,com.ng,edu.ng,gov.ng,i.ng,mil.ng,mobi.ng,name.ng,net.ng,org.ng,sch.ng,ni,ac.ni,biz.ni,co.ni,com.ni,edu.ni,gob.ni,in.ni,info.ni,int.ni,mil.ni,net.ni,nom.ni,org.ni,web.ni,nl,no,fhs.no,vgs.no,fylkesbibl.no,folkebibl.no,museum.no,idrett.no,priv.no,mil.no,stat.no,dep.no,kommune.no,herad.no,np,nr,biz.nr,info.nr,gov.nr,edu.nr,org.nr,net.nr,com.nr,nu,nz,ac.nz,co.nz,cri.nz,geek.nz,gen.nz,govt.nz,health.nz,iwi.nz,kiwi.nz,maori.nz,mil.nz,māori.nz,net.nz,org.nz,parliament.nz,school.nz,om,co.om,com.om,edu.om,gov.om,med.om,museum.om,net.om,org.om,pro.om,onion,org,pa,ac.pa,gob.pa,com.pa,org.pa,sld.pa,edu.pa,net.pa,ing.pa,abo.pa,med.pa,nom.pa,pe,edu.pe,gob.pe,nom.pe,mil.pe,org.pe,com.pe,net.pe,pf,com.pf,org.pf,edu.pf,pg,ph,com.ph,net.ph,org.ph,gov.ph,edu.ph,ngo.ph,mil.ph,i.ph,pk,com.pk,net.pk,edu.pk,org.pk,fam.pk,biz.pk,web.pk,gov.pk,gob.pk,gok.pk,gon.pk,gop.pk,gos.pk,info.pk,pl,com.pl,net.pl,org.pl,aid.pl,agro.pl,atm.pl,auto.pl,biz.pl,edu.pl,gmina.pl,gsm.pl,info.pl,mail.pl,miasta.pl,media.pl,mil.pl,nieruchomosci.pl,nom.pl,pc.pl,powiat.pl,priv.pl,realestate.pl,rel.pl,sex.pl,shop.pl,sklep.pl,sos.pl,szkola.pl,targi.pl,tm.pl,tourism.pl,travel.pl,turystyka.pl,pm,pn,gov.pn,co.pn,org.pn,edu.pn,net.pn,post,pr,com.pr,net.pr,org.pr,gov.pr,edu.pr,isla.pr,pro.pr,biz.pr,info.pr,name.pr,est.pr,prof.pr,ac.pr,pro,aaa.pro,aca.pro,acct.pro,avocat.pro,bar.pro,cpa.pro,eng.pro,jur.pro,law.pro,med.pro,recht.pro,ps,edu.ps,gov.ps,sec.ps,plo.ps,com.ps,org.ps,net.ps,pt,net.pt,gov.pt,org.pt,edu.pt,int.pt,publ.pt,com.pt,nome.pt,pw,co.pw,ne.pw,or.pw,ed.pw,go.pw,belau.pw,py,com.py,coop.py,edu.py,gov.py,mil.py,net.py,org.py,qa,com.qa,edu.qa,gov.qa,mil.qa,name.qa,net.qa,org.qa,sch.qa,re,asso.re,com.re,nom.re,ro,arts.ro,com.ro,firm.ro,info.ro,nom.ro,nt.ro,org.ro,rec.ro,store.ro,tm.ro,www.ro,rs,ac.rs,co.rs,edu.rs,gov.rs,in.rs,org.rs,ru,rw,ac.rw,co.rw,coop.rw,gov.rw,mil.rw,net.rw,org.rw,sa,com.sa,net.sa,org.sa,gov.sa,med.sa,pub.sa,edu.sa,sch.sa,sb,com.sb,edu.sb,gov.sb,net.sb,org.sb,sc,com.sc,gov.sc,net.sc,org.sc,edu.sc,sd,com.sd,net.sd,org.sd,edu.sd,med.sd,tv.sd,gov.sd,info.sd,se,a.se,ac.se,b.se,bd.se,brand.se,c.se,d.se,e.se,f.se,fh.se,fhsk.se,fhv.se,g.se,h.se,i.se,k.se,komforb.se,kommunalforbund.se,komvux.se,l.se,lanbib.se,m.se,n.se,naturbruksgymn.se,o.se,org.se,p.se,parti.se,pp.se,press.se,r.se,s.se,t.se,tm.se,u.se,w.se,x.se,y.se,z.se,sg,com.sg,net.sg,org.sg,gov.sg,edu.sg,per.sg,sh,com.sh,net.sh,gov.sh,org.sh,mil.sh,si,sj,sk,sl,com.sl,net.sl,edu.sl,gov.sl,org.sl,sm,sn,art.sn,com.sn,edu.sn,gouv.sn,org.sn,perso.sn,univ.sn,so,com.so,edu.so,gov.so,me.so,net.so,org.so,sr,ss,biz.ss,com.ss,edu.ss,gov.ss,me.ss,net.ss,org.ss,sch.ss,st,co.st,com.st,consulado.st,edu.st,embaixada.st,mil.st,net.st,org.st,principe.st,saotome.st,store.st,su,sv,com.sv,edu.sv,gob.sv,org.sv,red.sv,sx,gov.sx,sy,edu.sy,gov.sy,net.sy,mil.sy,com.sy,org.sy,sz,co.sz,ac.sz,org.sz,tc,td,tel,tf,tg,th,ac.th,co.th,go.th,in.th,mi.th,net.th,or.th,tj,ac.tj,biz.tj,co.tj,com.tj,edu.tj,go.tj,gov.tj,int.tj,mil.tj,name.tj,net.tj,nic.tj,org.tj,test.tj,web.tj,tk,tl,gov.tl,tm,com.tm,co.tm,org.tm,net.tm,nom.tm,gov.tm,mil.tm,edu.tm,tn,com.tn,ens.tn,fin.tn,gov.tn,ind.tn,info.tn,intl.tn,mincom.tn,nat.tn,net.tn,org.tn,perso.tn,tourism.tn,to,com.to,gov.to,net.to,org.to,edu.to,mil.to,tr,av.tr,bbs.tr,bel.tr,biz.tr,com.tr,dr.tr,edu.tr,gen.tr,gov.tr,info.tr,mil.tr,k12.tr,kep.tr,name.tr,net.tr,org.tr,pol.tr,tel.tr,tsk.tr,tv.tr,web.tr,nc.tr,tt,co.tt,com.tt,org.tt,net.tt,biz.tt,info.tt,pro.tt,int.tt,coop.tt,jobs.tt,mobi.tt,travel.tt,museum.tt,aero.tt,name.tt,gov.tt,edu.tt,tv,tw,edu.tw,gov.tw,mil.tw,com.tw,net.tw,org.tw,idv.tw,game.tw,ebiz.tw,club.tw,tz,ac.tz,co.tz,go.tz,hotel.tz,info.tz,me.tz,mil.tz,mobi.tz,ne.tz,or.tz,sc.tz,tv.tz,ua,com.ua,edu.ua,gov.ua,in.ua,net.ua,org.ua,ug,co.ug,or.ug,ac.ug,sc.ug,go.ug,ne.ug,com.ug,org.ug,uk,ac.uk,co.uk,gov.uk,ltd.uk,me.uk,net.uk,nhs.uk,org.uk,plc.uk,police.uk,us,dni.us,fed.us,isa.us,kids.us,nsn.us,ak.us,al.us,ar.us,as.us,az.us,ca.us,co.us,ct.us,dc.us,de.us,fl.us,ga.us,gu.us,hi.us,ia.us,id.us,il.us,in.us,ks.us,ky.us,la.us,ma.us,md.us,me.us,mi.us,mn.us,mo.us,ms.us,mt.us,nc.us,nd.us,ne.us,nh.us,nj.us,nm.us,nv.us,ny.us,oh.us,ok.us,or.us,pa.us,pr.us,ri.us,sc.us,sd.us,tn.us,tx.us,ut.us,vi.us,vt.us,va.us,wa.us,wi.us,wv.us,wy.us,uy,com.uy,edu.uy,gub.uy,mil.uy,net.uy,org.uy,uz,co.uz,com.uz,net.uz,org.uz,va,vc,com.vc,net.vc,org.vc,gov.vc,mil.vc,edu.vc,ve,arts.ve,bib.ve,co.ve,com.ve,e12.ve,edu.ve,firm.ve,gob.ve,gov.ve,info.ve,int.ve,mil.ve,net.ve,nom.ve,org.ve,rar.ve,rec.ve,store.ve,tec.ve,web.ve,vg,vi,co.vi,com.vi,k12.vi,net.vi,org.vi,vn,ac.vn,ai.vn,biz.vn,com.vn,edu.vn,gov.vn,health.vn,id.vn,info.vn,int.vn,io.vn,name.vn,net.vn,org.vn,pro.vn,vu,com.vu,edu.vu,net.vu,org.vu,wf,ws,com.ws,net.ws,org.ws,gov.ws,edu.ws,yt,ye,com.ye,edu.ye,gov.ye,net.ye,mil.ye,org.ye,ac.za,agric.za,alt.za,co.za,edu.za,gov.za,grondar.za,law.za,mil.za,net.za,ngo.za,nic.za,nis.za,nom.za,org.za,school.za,tm.za,web.za,zm,ac.zm,biz.zm,co.zm,com.zm,edu.zm,gov.zm,info.zm,mil.zm,net.zm,org.zm,sch.zm,zw,ac.zw,co.zw,gov.zw,mil.zw,org.zw".split(",");
|
|
135
|
-
//convert to Map
|
|
210
|
+
const publicSuffixes = "webflow.io,vercel.app,myshopify.com,ac,com.ac,edu.ac,gov.ac,net.ac,mil.ac,org.ac,ad,nom.ad,ae,co.ae,net.ae,org.ae,sch.ae,ac.ae,gov.ae,mil.ae,aero,af,gov.af,com.af,org.af,net.af,edu.af,ag,com.ag,org.ag,net.ag,co.ag,nom.ag,ai,off.ai,com.ai,net.ai,org.ai,al,com.al,edu.al,gov.al,mil.al,net.al,org.al,am,co.am,com.am,commune.am,net.am,org.am,ao,ed.ao,gv.ao,og.ao,co.ao,pb.ao,it.ao,aq,ar,bet.ar,com.ar,coop.ar,edu.ar,gob.ar,gov.ar,int.ar,mil.ar,musica.ar,mutual.ar,net.ar,org.ar,senasa.ar,tur.ar,arpa,e164.arpa,in-addr.arpa,ip6.arpa,iris.arpa,uri.arpa,urn.arpa,as,gov.as,asia,at,ac.at,co.at,gv.at,or.at,sth.ac.at,au,com.au,net.au,org.au,edu.au,gov.au,asn.au,id.au,act.au,nsw.au,nt.au,qld.au,sa.au,tas.au,vic.au,wa.au,aw,com.aw,ax,az,com.az,net.az,int.az,gov.az,org.az,edu.az,info.az,pp.az,mil.az,name.az,pro.az,biz.az,ba,com.ba,edu.ba,gov.ba,mil.ba,net.ba,org.ba,bb,biz.bb,co.bb,com.bb,edu.bb,gov.bb,info.bb,net.bb,org.bb,store.bb,tv.bb,bd,be,ac.be,bf,gov.bf,bg,a.bg,b.bg,c.bg,d.bg,e.bg,f.bg,g.bg,h.bg,i.bg,j.bg,k.bg,l.bg,m.bg,n.bg,o.bg,p.bg,q.bg,r.bg,s.bg,t.bg,u.bg,v.bg,w.bg,x.bg,y.bg,z.bg,0.bg,1.bg,2.bg,3.bg,4.bg,5.bg,6.bg,7.bg,8.bg,9.bg,bh,com.bh,edu.bh,net.bh,org.bh,gov.bh,bi,co.bi,com.bi,edu.bi,or.bi,org.bi,biz,bj,africa.bj,agro.bj,architectes.bj,assur.bj,avocats.bj,co.bj,com.bj,eco.bj,econo.bj,edu.bj,info.bj,loisirs.bj,money.bj,net.bj,org.bj,ote.bj,resto.bj,restaurant.bj,tourism.bj,univ.bj,bm,com.bm,edu.bm,gov.bm,net.bm,org.bm,bn,com.bn,edu.bn,gov.bn,net.bn,org.bn,bo,com.bo,edu.bo,gob.bo,int.bo,org.bo,net.bo,mil.bo,tv.bo,web.bo,br,9guacu.br,abc.br,adm.br,adv.br,agr.br,aju.br,am.br,anani.br,aparecida.br,app.br,arq.br,art.br,ato.br,b.br,barueri.br,belem.br,bhz.br,bib.br,bio.br,blog.br,bmd.br,boavista.br,bsb.br,campinagrande.br,campinas.br,caxias.br,cim.br,cng.br,cnt.br,com.br,contagem.br,coop.br,coz.br,cri.br,cuiaba.br,curitiba.br,def.br,des.br,det.br,dev.br,ecn.br,eco.br,edu.br,emp.br,enf.br,eng.br,esp.br,etc.br,eti.br,far.br,feira.br,flog.br,floripa.br,fm.br,fnd.br,fortal.br,fot.br,foz.br,fst.br,g12.br,geo.br,ggf.br,goiania.br,gov.br,gru.br,imb.br,ind.br,inf.br,jab.br,jampa.br,jdf.br,joinville.br,jor.br,jus.br,leg.br,lel.br,log.br,londrina.br,macapa.br,maceio.br,manaus.br,maringa.br,mat.br,med.br,mil.br,morena.br,mp.br,mus.br,natal.br,net.br,niteroi.br,nom.br,not.br,ntr.br,odo.br,ong.br,org.br,osasco.br,palmas.br,poa.br,ppg.br,pro.br,psc.br,psi.br,pvh.br,qsl.br,radio.br,rec.br,recife.br,rep.br,ribeirao.br,rio.br,riobranco.br,riopreto.br,salvador.br,sampa.br,santamaria.br,santoandre.br,saobernardo.br,saogonca.br,seg.br,sjc.br,slg.br,slz.br,sorocaba.br,srv.br,taxi.br,tc.br,tec.br,teo.br,the.br,tmp.br,trd.br,tur.br,tv.br,udi.br,vet.br,vix.br,vlog.br,wiki.br,zlg.br,bs,com.bs,net.bs,org.bs,edu.bs,gov.bs,bt,com.bt,edu.bt,gov.bt,net.bt,org.bt,bv,bw,co.bw,org.bw,by,gov.by,mil.by,com.by,of.by,bz,com.bz,net.bz,org.bz,edu.bz,gov.bz,ca,ab.ca,bc.ca,mb.ca,nb.ca,nf.ca,nl.ca,ns.ca,nt.ca,nu.ca,on.ca,pe.ca,qc.ca,sk.ca,yk.ca,gc.ca,cat,cc,cd,gov.cd,cf,cg,ch,ci,org.ci,or.ci,com.ci,co.ci,edu.ci,ed.ci,ac.ci,net.ci,go.ci,asso.ci,aéroport.ci,int.ci,presse.ci,md.ci,gouv.ci,ck,cl,co.cl,gob.cl,gov.cl,mil.cl,cm,co.cm,com.cm,gov.cm,net.cm,cn,ac.cn,com.cn,edu.cn,gov.cn,net.cn,org.cn,mil.cn,co,arts.co,com.co,edu.co,firm.co,gov.co,info.co,int.co,mil.co,net.co,nom.co,org.co,rec.co,web.co,com,coop,cr,ac.cr,co.cr,ed.cr,fi.cr,go.cr,or.cr,sa.cr,cu,com.cu,edu.cu,org.cu,net.cu,gov.cu,inf.cu,cv,com.cv,edu.cv,int.cv,nome.cv,org.cv,cw,com.cw,edu.cw,net.cw,org.cw,cx,gov.cx,cy,ac.cy,biz.cy,com.cy,ekloges.cy,gov.cy,ltd.cy,mil.cy,net.cy,org.cy,press.cy,pro.cy,tm.cy,cz,de,dj,dk,dm,com.dm,net.dm,org.dm,edu.dm,gov.dm,do,art.do,com.do,edu.do,gob.do,gov.do,mil.do,net.do,org.do,sld.do,web.do,dz,art.dz,asso.dz,com.dz,edu.dz,gov.dz,org.dz,net.dz,pol.dz,soc.dz,tm.dz,ec,com.ec,info.ec,net.ec,fin.ec,k12.ec,med.ec,pro.ec,org.ec,edu.ec,gov.ec,gob.ec,mil.ec,edu,ee,edu.ee,gov.ee,riik.ee,lib.ee,med.ee,com.ee,pri.ee,aip.ee,org.ee,fie.ee,eg,com.eg,edu.eg,eun.eg,gov.eg,mil.eg,name.eg,net.eg,org.eg,sci.eg,er,es,com.es,nom.es,org.es,gob.es,edu.es,et,com.et,gov.et,org.et,edu.et,biz.et,name.et,info.et,net.et,eu,fi,aland.fi,fj,ac.fj,biz.fj,com.fj,gov.fj,info.fj,mil.fj,name.fj,net.fj,org.fj,pro.fj,fk,com.fm,edu.fm,net.fm,org.fm,fm,fo,fr,asso.fr,com.fr,gouv.fr,nom.fr,prd.fr,tm.fr,aeroport.fr,avocat.fr,avoues.fr,cci.fr,chambagri.fr,chirurgiens-dentistes.fr,experts-comptables.fr,geometre-expert.fr,greta.fr,huissier-justice.fr,medecin.fr,notaires.fr,pharmacien.fr,port.fr,veterinaire.fr,ga,gb,edu.gd,gov.gd,gd,ge,com.ge,edu.ge,gov.ge,org.ge,mil.ge,net.ge,pvt.ge,gf,gg,co.gg,net.gg,org.gg,gh,com.gh,edu.gh,gov.gh,org.gh,mil.gh,gi,com.gi,ltd.gi,gov.gi,mod.gi,edu.gi,org.gi,gl,co.gl,com.gl,edu.gl,net.gl,org.gl,gm,gn,ac.gn,com.gn,edu.gn,gov.gn,org.gn,net.gn,gov,gp,com.gp,net.gp,mobi.gp,edu.gp,org.gp,asso.gp,gq,gr,com.gr,edu.gr,net.gr,org.gr,gov.gr,gs,gt,com.gt,edu.gt,gob.gt,ind.gt,mil.gt,net.gt,org.gt,gu,com.gu,edu.gu,gov.gu,guam.gu,info.gu,net.gu,org.gu,web.gu,gw,gy,co.gy,com.gy,edu.gy,gov.gy,net.gy,org.gy,hk,com.hk,edu.hk,gov.hk,idv.hk,net.hk,org.hk,hm,hn,com.hn,edu.hn,org.hn,net.hn,mil.hn,gob.hn,hr,iz.hr,from.hr,name.hr,com.hr,ht,com.ht,shop.ht,firm.ht,info.ht,adult.ht,net.ht,pro.ht,org.ht,med.ht,art.ht,coop.ht,pol.ht,asso.ht,edu.ht,rel.ht,gouv.ht,perso.ht,hu,co.hu,info.hu,org.hu,priv.hu,sport.hu,tm.hu,2000.hu,agrar.hu,bolt.hu,casino.hu,city.hu,erotica.hu,erotika.hu,film.hu,forum.hu,games.hu,hotel.hu,ingatlan.hu,jogasz.hu,konyvelo.hu,lakas.hu,media.hu,news.hu,reklam.hu,sex.hu,shop.hu,suli.hu,szex.hu,tozsde.hu,utazas.hu,video.hu,id,ac.id,biz.id,co.id,desa.id,go.id,mil.id,my.id,net.id,or.id,ponpes.id,sch.id,web.id,ie,gov.ie,il,ac.il,co.il,gov.il,idf.il,k12.il,muni.il,net.il,org.il,im,ac.im,co.im,com.im,ltd.co.im,net.im,org.im,plc.co.im,tt.im,tv.im,in,5g.in,6g.in,ac.in,ai.in,am.in,bihar.in,biz.in,business.in,ca.in,cn.in,co.in,com.in,coop.in,cs.in,delhi.in,dr.in,edu.in,er.in,firm.in,gen.in,gov.in,gujarat.in,ind.in,info.in,int.in,internet.in,io.in,me.in,mil.in,net.in,nic.in,org.in,pg.in,post.in,pro.in,res.in,travel.in,tv.in,uk.in,up.in,us.in,info,int,eu.int,io,com.io,iq,gov.iq,edu.iq,mil.iq,com.iq,org.iq,net.iq,ir,ac.ir,co.ir,gov.ir,id.ir,net.ir,org.ir,sch.ir,is,net.is,com.is,edu.is,gov.is,org.is,int.is,it,gov.it,edu.it,je,co.je,net.je,org.je,jm,jo,com.jo,org.jo,net.jo,edu.jo,sch.jo,gov.jo,mil.jo,name.jo,jobs,jp,ac.jp,ad.jp,co.jp,ed.jp,go.jp,gr.jp,lg.jp,ne.jp,or.jp,ke,ac.ke,co.ke,go.ke,info.ke,me.ke,mobi.ke,ne.ke,or.ke,sc.ke,kg,org.kg,net.kg,com.kg,edu.kg,gov.kg,mil.kg,kh,ki,edu.ki,biz.ki,net.ki,org.ki,gov.ki,info.ki,com.ki,km,org.km,nom.km,gov.km,prd.km,tm.km,edu.km,mil.km,ass.km,com.km,kn,net.kn,org.kn,edu.kn,gov.kn,kp,com.kp,edu.kp,gov.kp,org.kp,rep.kp,tra.kp,kr,ac.kr,co.kr,es.kr,go.kr,hs.kr,kg.kr,mil.kr,ms.kr,ne.kr,or.kr,pe.kr,re.kr,sc.kr,kw,com.kw,edu.kw,emb.kw,gov.kw,ind.kw,net.kw,org.kw,ky,com.ky,edu.ky,net.ky,org.ky,kz,org.kz,edu.kz,net.kz,gov.kz,mil.kz,com.kz,la,int.la,net.la,info.la,edu.la,gov.la,per.la,com.la,org.la,lb,com.lb,edu.lb,gov.lb,net.lb,org.lb,lc,com.lc,net.lc,co.lc,org.lc,edu.lc,gov.lc,li,lk,gov.lk,sch.lk,net.lk,int.lk,com.lk,org.lk,edu.lk,ngo.lk,soc.lk,web.lk,ltd.lk,assn.lk,grp.lk,hotel.lk,ac.lk,lr,com.lr,edu.lr,gov.lr,org.lr,net.lr,ls,ac.ls,biz.ls,co.ls,edu.ls,gov.ls,info.ls,net.ls,org.ls,sc.ls,lt,gov.lt,lu,lv,com.lv,edu.lv,gov.lv,org.lv,mil.lv,id.lv,net.lv,asn.lv,conf.lv,ly,com.ly,net.ly,gov.ly,plc.ly,edu.ly,sch.ly,med.ly,org.ly,id.ly,ma,co.ma,net.ma,gov.ma,org.ma,ac.ma,press.ma,mc,tm.mc,asso.mc,md,me,co.me,net.me,org.me,edu.me,ac.me,gov.me,its.me,priv.me,mg,org.mg,nom.mg,gov.mg,prd.mg,tm.mg,edu.mg,mil.mg,com.mg,co.mg,mh,mil,mk,com.mk,org.mk,net.mk,edu.mk,gov.mk,inf.mk,name.mk,ml,com.ml,edu.ml,gouv.ml,gov.ml,net.ml,org.ml,presse.ml,mm,mn,gov.mn,edu.mn,org.mn,mo,com.mo,net.mo,org.mo,edu.mo,gov.mo,mobi,mp,mq,mr,gov.mr,ms,com.ms,edu.ms,gov.ms,net.ms,org.ms,mt,com.mt,edu.mt,net.mt,org.mt,mu,com.mu,net.mu,org.mu,gov.mu,ac.mu,co.mu,or.mu,museum,mv,aero.mv,biz.mv,com.mv,coop.mv,edu.mv,gov.mv,info.mv,int.mv,mil.mv,museum.mv,name.mv,net.mv,org.mv,pro.mv,mw,ac.mw,biz.mw,co.mw,com.mw,coop.mw,edu.mw,gov.mw,int.mw,museum.mw,net.mw,org.mw,mx,com.mx,org.mx,gob.mx,edu.mx,net.mx,my,biz.my,com.my,edu.my,gov.my,mil.my,name.my,net.my,org.my,mz,ac.mz,adv.mz,co.mz,edu.mz,gov.mz,mil.mz,net.mz,org.mz,na,info.na,pro.na,name.na,school.na,or.na,dr.na,us.na,mx.na,ca.na,in.na,cc.na,tv.na,ws.na,mobi.na,co.na,com.na,org.na,name,nc,asso.nc,nom.nc,ne,net,nf,com.nf,net.nf,per.nf,rec.nf,web.nf,arts.nf,firm.nf,info.nf,other.nf,store.nf,ng,com.ng,edu.ng,gov.ng,i.ng,mil.ng,mobi.ng,name.ng,net.ng,org.ng,sch.ng,ni,ac.ni,biz.ni,co.ni,com.ni,edu.ni,gob.ni,in.ni,info.ni,int.ni,mil.ni,net.ni,nom.ni,org.ni,web.ni,nl,no,fhs.no,vgs.no,fylkesbibl.no,folkebibl.no,museum.no,idrett.no,priv.no,mil.no,stat.no,dep.no,kommune.no,herad.no,np,nr,biz.nr,info.nr,gov.nr,edu.nr,org.nr,net.nr,com.nr,nu,nz,ac.nz,co.nz,cri.nz,geek.nz,gen.nz,govt.nz,health.nz,iwi.nz,kiwi.nz,maori.nz,mil.nz,māori.nz,net.nz,org.nz,parliament.nz,school.nz,om,co.om,com.om,edu.om,gov.om,med.om,museum.om,net.om,org.om,pro.om,onion,org,pa,ac.pa,gob.pa,com.pa,org.pa,sld.pa,edu.pa,net.pa,ing.pa,abo.pa,med.pa,nom.pa,pe,edu.pe,gob.pe,nom.pe,mil.pe,org.pe,com.pe,net.pe,pf,com.pf,org.pf,edu.pf,pg,ph,com.ph,net.ph,org.ph,gov.ph,edu.ph,ngo.ph,mil.ph,i.ph,pk,com.pk,net.pk,edu.pk,org.pk,fam.pk,biz.pk,web.pk,gov.pk,gob.pk,gok.pk,gon.pk,gop.pk,gos.pk,info.pk,pl,com.pl,net.pl,org.pl,aid.pl,agro.pl,atm.pl,auto.pl,biz.pl,edu.pl,gmina.pl,gsm.pl,info.pl,mail.pl,miasta.pl,media.pl,mil.pl,nieruchomosci.pl,nom.pl,pc.pl,powiat.pl,priv.pl,realestate.pl,rel.pl,sex.pl,shop.pl,sklep.pl,sos.pl,szkola.pl,targi.pl,tm.pl,tourism.pl,travel.pl,turystyka.pl,pm,pn,gov.pn,co.pn,org.pn,edu.pn,net.pn,post,pr,com.pr,net.pr,org.pr,gov.pr,edu.pr,isla.pr,pro.pr,biz.pr,info.pr,name.pr,est.pr,prof.pr,ac.pr,pro,aaa.pro,aca.pro,acct.pro,avocat.pro,bar.pro,cpa.pro,eng.pro,jur.pro,law.pro,med.pro,recht.pro,ps,edu.ps,gov.ps,sec.ps,plo.ps,com.ps,org.ps,net.ps,pt,net.pt,gov.pt,org.pt,edu.pt,int.pt,publ.pt,com.pt,nome.pt,pw,co.pw,ne.pw,or.pw,ed.pw,go.pw,belau.pw,py,com.py,coop.py,edu.py,gov.py,mil.py,net.py,org.py,qa,com.qa,edu.qa,gov.qa,mil.qa,name.qa,net.qa,org.qa,sch.qa,re,asso.re,com.re,nom.re,ro,arts.ro,com.ro,firm.ro,info.ro,nom.ro,nt.ro,org.ro,rec.ro,store.ro,tm.ro,www.ro,rs,ac.rs,co.rs,edu.rs,gov.rs,in.rs,org.rs,ru,rw,ac.rw,co.rw,coop.rw,gov.rw,mil.rw,net.rw,org.rw,sa,com.sa,net.sa,org.sa,gov.sa,med.sa,pub.sa,edu.sa,sch.sa,sb,com.sb,edu.sb,gov.sb,net.sb,org.sb,sc,com.sc,gov.sc,net.sc,org.sc,edu.sc,sd,com.sd,net.sd,org.sd,edu.sd,med.sd,tv.sd,gov.sd,info.sd,se,a.se,ac.se,b.se,bd.se,brand.se,c.se,d.se,e.se,f.se,fh.se,fhsk.se,fhv.se,g.se,h.se,i.se,k.se,komforb.se,kommunalforbund.se,komvux.se,l.se,lanbib.se,m.se,n.se,naturbruksgymn.se,o.se,org.se,p.se,parti.se,pp.se,press.se,r.se,s.se,t.se,tm.se,u.se,w.se,x.se,y.se,z.se,sg,com.sg,net.sg,org.sg,gov.sg,edu.sg,per.sg,sh,com.sh,net.sh,gov.sh,org.sh,mil.sh,si,sj,sk,sl,com.sl,net.sl,edu.sl,gov.sl,org.sl,sm,sn,art.sn,com.sn,edu.sn,gouv.sn,org.sn,perso.sn,univ.sn,so,com.so,edu.so,gov.so,me.so,net.so,org.so,sr,ss,biz.ss,com.ss,edu.ss,gov.ss,me.ss,net.ss,org.ss,sch.ss,st,co.st,com.st,consulado.st,edu.st,embaixada.st,mil.st,net.st,org.st,principe.st,saotome.st,store.st,su,sv,com.sv,edu.sv,gob.sv,org.sv,red.sv,sx,gov.sx,sy,edu.sy,gov.sy,net.sy,mil.sy,com.sy,org.sy,sz,co.sz,ac.sz,org.sz,tc,td,tel,tf,tg,th,ac.th,co.th,go.th,in.th,mi.th,net.th,or.th,tj,ac.tj,biz.tj,co.tj,com.tj,edu.tj,go.tj,gov.tj,int.tj,mil.tj,name.tj,net.tj,nic.tj,org.tj,test.tj,web.tj,tk,tl,gov.tl,tm,com.tm,co.tm,org.tm,net.tm,nom.tm,gov.tm,mil.tm,edu.tm,tn,com.tn,ens.tn,fin.tn,gov.tn,ind.tn,info.tn,intl.tn,mincom.tn,nat.tn,net.tn,org.tn,perso.tn,tourism.tn,to,com.to,gov.to,net.to,org.to,edu.to,mil.to,tr,av.tr,bbs.tr,bel.tr,biz.tr,com.tr,dr.tr,edu.tr,gen.tr,gov.tr,info.tr,mil.tr,k12.tr,kep.tr,name.tr,net.tr,org.tr,pol.tr,tel.tr,tsk.tr,tv.tr,web.tr,nc.tr,tt,co.tt,com.tt,org.tt,net.tt,biz.tt,info.tt,pro.tt,int.tt,coop.tt,jobs.tt,mobi.tt,travel.tt,museum.tt,aero.tt,name.tt,gov.tt,edu.tt,tv,tw,edu.tw,gov.tw,mil.tw,com.tw,net.tw,org.tw,idv.tw,game.tw,ebiz.tw,club.tw,tz,ac.tz,co.tz,go.tz,hotel.tz,info.tz,me.tz,mil.tz,mobi.tz,ne.tz,or.tz,sc.tz,tv.tz,ua,com.ua,edu.ua,gov.ua,in.ua,net.ua,org.ua,ug,co.ug,or.ug,ac.ug,sc.ug,go.ug,ne.ug,com.ug,org.ug,uk,ac.uk,co.uk,gov.uk,ltd.uk,me.uk,net.uk,nhs.uk,org.uk,plc.uk,police.uk,us,dni.us,fed.us,isa.us,kids.us,nsn.us,ak.us,al.us,ar.us,as.us,az.us,ca.us,co.us,ct.us,dc.us,de.us,fl.us,ga.us,gu.us,hi.us,ia.us,id.us,il.us,in.us,ks.us,ky.us,la.us,ma.us,md.us,me.us,mi.us,mn.us,mo.us,ms.us,mt.us,nc.us,nd.us,ne.us,nh.us,nj.us,nm.us,nv.us,ny.us,oh.us,ok.us,or.us,pa.us,pr.us,ri.us,sc.us,sd.us,tn.us,tx.us,ut.us,vi.us,vt.us,va.us,wa.us,wi.us,wv.us,wy.us,uy,com.uy,edu.uy,gub.uy,mil.uy,net.uy,org.uy,uz,co.uz,com.uz,net.uz,org.uz,va,vc,com.vc,net.vc,org.vc,gov.vc,mil.vc,edu.vc,ve,arts.ve,bib.ve,co.ve,com.ve,e12.ve,edu.ve,firm.ve,gob.ve,gov.ve,info.ve,int.ve,mil.ve,net.ve,nom.ve,org.ve,rar.ve,rec.ve,store.ve,tec.ve,web.ve,vg,vi,co.vi,com.vi,k12.vi,net.vi,org.vi,vn,ac.vn,ai.vn,biz.vn,com.vn,edu.vn,gov.vn,health.vn,id.vn,info.vn,int.vn,io.vn,name.vn,net.vn,org.vn,pro.vn,vu,com.vu,edu.vu,net.vu,org.vu,wf,ws,com.ws,net.ws,org.ws,gov.ws,edu.ws,yt,ye,com.ye,edu.ye,gov.ye,net.ye,mil.ye,org.ye,ac.za,agric.za,alt.za,co.za,edu.za,gov.za,grondar.za,law.za,mil.za,net.za,ngo.za,nic.za,nis.za,nom.za,org.za,school.za,tm.za,web.za,zm,ac.zm,biz.zm,co.zm,com.zm,edu.zm,gov.zm,info.zm,mil.zm,net.zm,org.zm,sch.zm,zw,ac.zw,co.zw,gov.zw,mil.zw,org.zw".split(",");
|
|
136
211
|
const _publicSuffixesMap = {};
|
|
137
212
|
publicSuffixes.forEach(tld => {
|
|
138
213
|
_publicSuffixesMap[tld] = true;
|
|
@@ -619,7 +694,6 @@ function create(options) {
|
|
|
619
694
|
return new DiffPatcher(options);
|
|
620
695
|
}
|
|
621
696
|
|
|
622
|
-
/* global analytics */
|
|
623
697
|
var __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
624
698
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
625
699
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -631,9 +705,7 @@ var __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _argu
|
|
|
631
705
|
};
|
|
632
706
|
const diff = create();
|
|
633
707
|
const defaultConfig = {
|
|
634
|
-
/* Your segment writeKey */
|
|
635
708
|
writeKey: null,
|
|
636
|
-
/* Disable anonymous MTU */
|
|
637
709
|
host: null,
|
|
638
710
|
debug: false,
|
|
639
711
|
fetch: null,
|
|
@@ -654,7 +726,6 @@ const defaultConfig = {
|
|
|
654
726
|
consentCategories: {},
|
|
655
727
|
},
|
|
656
728
|
};
|
|
657
|
-
// mergeConfig merges newConfig into currentConfig also making sure that all undefined values are replaced with defaultConfig values
|
|
658
729
|
const mergeConfig = (current, newConfig) => {
|
|
659
730
|
for (const key of Object.keys(defaultConfig)) {
|
|
660
731
|
const value = newConfig[key];
|
|
@@ -664,16 +735,12 @@ const mergeConfig = (current, newConfig) => {
|
|
|
664
735
|
}
|
|
665
736
|
else if (typeof value === "undefined") {
|
|
666
737
|
if (newConfig.hasOwnProperty("privacy") || !current.hasOwnProperty("privacy")) {
|
|
667
|
-
// explicitly set to undefined - reset to default
|
|
668
|
-
// or was not set at all - set to default
|
|
669
738
|
current.privacy = Object.assign(Object.assign({}, defaultConfig.privacy), { consentCategories: Object.assign({}, defaultConfig.privacy.consentCategories) });
|
|
670
739
|
}
|
|
671
740
|
}
|
|
672
741
|
}
|
|
673
742
|
else if (typeof value === "undefined") {
|
|
674
743
|
if (newConfig.hasOwnProperty(key) || !current.hasOwnProperty(key)) {
|
|
675
|
-
// explicitly set to undefined - reset to default
|
|
676
|
-
// or was not set at all - set to default
|
|
677
744
|
current[key] = defaultConfig[key];
|
|
678
745
|
}
|
|
679
746
|
}
|
|
@@ -742,6 +809,18 @@ function getClientIds(runtime, customCookieCapture) {
|
|
|
742
809
|
}, {});
|
|
743
810
|
return Object.assign(Object.assign({}, clientIds), getGa4Ids(runtime));
|
|
744
811
|
}
|
|
812
|
+
function parseGa4SessionId(cookieValue) {
|
|
813
|
+
if (typeof cookieValue !== "string") {
|
|
814
|
+
return undefined;
|
|
815
|
+
}
|
|
816
|
+
if (cookieValue.startsWith("GA1") || cookieValue.startsWith("GS1")) {
|
|
817
|
+
return cookieValue.split(".")[2];
|
|
818
|
+
}
|
|
819
|
+
else {
|
|
820
|
+
const match = cookieValue.match(/^GS\d+\.\d+\.(?:[\w_-]+[$])*s(\d+)(?:$|[$])/);
|
|
821
|
+
return match ? match[1] : undefined;
|
|
822
|
+
}
|
|
823
|
+
}
|
|
745
824
|
function getGa4Ids(runtime) {
|
|
746
825
|
var _a;
|
|
747
826
|
const allCookies = runtime.getCookies();
|
|
@@ -750,14 +829,11 @@ function getGa4Ids(runtime) {
|
|
|
750
829
|
const sessionIds = gaSessionCookies.length > 0
|
|
751
830
|
? Object.fromEntries(gaSessionCookies
|
|
752
831
|
.map(([key, value]) => {
|
|
753
|
-
|
|
832
|
+
const sessionId = parseGa4SessionId(value);
|
|
833
|
+
if (!sessionId) {
|
|
754
834
|
return null;
|
|
755
835
|
}
|
|
756
|
-
|
|
757
|
-
if (parts.length < 3) {
|
|
758
|
-
return null;
|
|
759
|
-
}
|
|
760
|
-
return [key.substring("_ga_".length), parts[2]];
|
|
836
|
+
return [key.substring("_ga_".length), sessionId];
|
|
761
837
|
})
|
|
762
838
|
.filter(v => v !== null))
|
|
763
839
|
: undefined;
|
|
@@ -820,11 +896,9 @@ const cookieStorage = (cookieDomain, key2cookie) => {
|
|
|
820
896
|
const cookieName = key2cookie(key) || key;
|
|
821
897
|
const result = getCookie(cookieName);
|
|
822
898
|
if (key === "__anon_id") {
|
|
823
|
-
//anonymous id must always be a string, so we don't parse it to preserve its exact value
|
|
824
899
|
return result;
|
|
825
900
|
}
|
|
826
901
|
if (typeof result === "undefined" && key === "__user_id") {
|
|
827
|
-
//backward compatibility with old jitsu cookie. get user id if from traits
|
|
828
902
|
const traits = parse(getCookie(key2cookie("__user_traits") || "__eventn_id_usr")) || {};
|
|
829
903
|
return traits.internal_id || traits.user_id || traits.id || traits.userId;
|
|
830
904
|
}
|
|
@@ -981,6 +1055,15 @@ const emptyRuntime = (config) => ({
|
|
|
981
1055
|
return undefined;
|
|
982
1056
|
},
|
|
983
1057
|
});
|
|
1058
|
+
function deepCopy(o) {
|
|
1059
|
+
if (typeof o !== "object") {
|
|
1060
|
+
return o;
|
|
1061
|
+
}
|
|
1062
|
+
if (!o) {
|
|
1063
|
+
return o;
|
|
1064
|
+
}
|
|
1065
|
+
return JSON.parse(JSON.stringify(o));
|
|
1066
|
+
}
|
|
984
1067
|
function deepMerge(target, source) {
|
|
985
1068
|
if (typeof source !== "object" || source === null) {
|
|
986
1069
|
return source;
|
|
@@ -996,10 +1079,6 @@ function deepMerge(target, source) {
|
|
|
996
1079
|
function isInBrowser() {
|
|
997
1080
|
return typeof document !== "undefined" && typeof window !== "undefined";
|
|
998
1081
|
}
|
|
999
|
-
/**
|
|
1000
|
-
* Fixes a weird bug in analytics URL where path
|
|
1001
|
-
* of https://test.com becomes //test.com
|
|
1002
|
-
*/
|
|
1003
1082
|
function fixPath(path) {
|
|
1004
1083
|
if (path.indexOf("//") === 0 && path.lastIndexOf("/") === 1) {
|
|
1005
1084
|
return "/";
|
|
@@ -1007,16 +1086,30 @@ function fixPath(path) {
|
|
|
1007
1086
|
return path;
|
|
1008
1087
|
}
|
|
1009
1088
|
const hashRegex = /#.*$/;
|
|
1010
|
-
/**
|
|
1011
|
-
* for compatibility with path produced by analytics.js
|
|
1012
|
-
* @param url
|
|
1013
|
-
*/
|
|
1014
1089
|
function urlPath(url) {
|
|
1015
1090
|
const regex = /(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g;
|
|
1016
1091
|
const matches = regex.exec(url);
|
|
1017
1092
|
const pathMatch = matches && matches[3] ? matches[3].split("?")[0].replace(hashRegex, "") : "";
|
|
1018
1093
|
return "/" + pathMatch;
|
|
1019
1094
|
}
|
|
1095
|
+
function canonicalUrl() {
|
|
1096
|
+
if (!isInBrowser())
|
|
1097
|
+
return;
|
|
1098
|
+
const tags = document.getElementsByTagName("link");
|
|
1099
|
+
for (var i = 0, tag; (tag = tags[i]); i++) {
|
|
1100
|
+
if (tag.getAttribute("rel") === "canonical") {
|
|
1101
|
+
return tag.getAttribute("href");
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
function analyticsJsUrl() {
|
|
1106
|
+
if (!isInBrowser())
|
|
1107
|
+
return;
|
|
1108
|
+
const canonical = canonicalUrl();
|
|
1109
|
+
if (!canonical)
|
|
1110
|
+
return window.location.href.replace(hashRegex, "");
|
|
1111
|
+
return canonical.match(/\?/) ? canonical : canonical + window.location.search;
|
|
1112
|
+
}
|
|
1020
1113
|
function adjustPayload(payload, config, storage, s2s) {
|
|
1021
1114
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
1022
1115
|
const runtime = config.runtime || (isInBrowser() ? windowRuntime(config) : emptyRuntime(config));
|
|
@@ -1025,7 +1118,10 @@ function adjustPayload(payload, config, storage, s2s) {
|
|
|
1025
1118
|
const query = parsedUrl ? parseQuery(parsedUrl.search) : {};
|
|
1026
1119
|
const properties = payload.properties || {};
|
|
1027
1120
|
if (payload.type === "page" && (properties.url || url)) {
|
|
1028
|
-
|
|
1121
|
+
let targetUrl = url || properties.url;
|
|
1122
|
+
if (properties.url && properties.url !== analyticsJsUrl()) {
|
|
1123
|
+
targetUrl = properties.url;
|
|
1124
|
+
}
|
|
1029
1125
|
properties.url = targetUrl.replace(hashRegex, "");
|
|
1030
1126
|
properties.path = fixPath(urlPath(targetUrl));
|
|
1031
1127
|
}
|
|
@@ -1081,15 +1177,18 @@ function processDestinations(destinations, method, originalEvent, debug, analyti
|
|
|
1081
1177
|
return __awaiter$1(this, void 0, void 0, function* () {
|
|
1082
1178
|
const promises = [];
|
|
1083
1179
|
for (const destination of destinations) {
|
|
1084
|
-
let newEvents = [
|
|
1180
|
+
let newEvents = [];
|
|
1085
1181
|
if (destination.newEvents) {
|
|
1086
1182
|
try {
|
|
1087
|
-
newEvents = destination.newEvents.map(e => e === "same" ? originalEvent : isDiff(e) ? diff.patch(originalEvent, e.__diff) : e);
|
|
1183
|
+
newEvents = destination.newEvents.map(e => e === "same" ? deepCopy(originalEvent) : isDiff(e) ? diff.patch(deepCopy(originalEvent), e.__diff) : e);
|
|
1088
1184
|
}
|
|
1089
1185
|
catch (e) {
|
|
1090
1186
|
console.error(`[JITSU] Error applying '${destination.id}' changes to event: ${e === null || e === void 0 ? void 0 : e.message}`, e);
|
|
1091
1187
|
}
|
|
1092
1188
|
}
|
|
1189
|
+
else {
|
|
1190
|
+
newEvents = [deepCopy(originalEvent)];
|
|
1191
|
+
}
|
|
1093
1192
|
const credentials = Object.assign(Object.assign({}, destination.credentials), destination.options);
|
|
1094
1193
|
if (destination.deviceOptions.type === "internal-plugin") {
|
|
1095
1194
|
const plugin = internalDestinationPlugins[destination.deviceOptions.name];
|
|
@@ -1181,7 +1280,6 @@ function getErrorHandler(opts) {
|
|
|
1181
1280
|
}
|
|
1182
1281
|
else if (configuredHandler === "rethrow") {
|
|
1183
1282
|
return (msg, ...args) => {
|
|
1184
|
-
//ignore args, not clear what to do with them
|
|
1185
1283
|
throw new Error(msg);
|
|
1186
1284
|
};
|
|
1187
1285
|
}
|
|
@@ -1204,7 +1302,6 @@ function send(method, payload, jitsuConfig, instance, store) {
|
|
|
1204
1302
|
const url = s2s ? `${jitsuConfig.host}/api/s/s2s/${method}` : `${jitsuConfig.host}/api/s/${method}`;
|
|
1205
1303
|
const fetch = jitsuConfig.fetch || globalThis.fetch;
|
|
1206
1304
|
if (!fetch) {
|
|
1207
|
-
//don't run it through error handler since error is critical and should be addressed
|
|
1208
1305
|
throw new Error("Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope");
|
|
1209
1306
|
}
|
|
1210
1307
|
const abortController = jitsuConfig.fetchTimeoutMs ? new AbortController() : undefined;
|
|
@@ -1260,7 +1357,6 @@ function send(method, payload, jitsuConfig, instance, store) {
|
|
|
1260
1357
|
console.warn(`[JITSU] ${payload.type} responded with list of ${responseJson.destinations.length} destinations. However, this code is running in server-to-server mode, so destinations will be ignored`, jitsuConfig.debug ? JSON.stringify(responseJson.destinations, null, 2) : undefined);
|
|
1261
1358
|
}
|
|
1262
1359
|
else {
|
|
1263
|
-
//double protection, ingest should not return destinations in s2s mode
|
|
1264
1360
|
if (isInBrowser()) {
|
|
1265
1361
|
if (jitsuConfig.debug) {
|
|
1266
1362
|
console.log(`[JITSU] Processing device destinations: `, JSON.stringify(responseJson.destinations, null, 2));
|
|
@@ -1273,23 +1369,14 @@ function send(method, payload, jitsuConfig, instance, store) {
|
|
|
1273
1369
|
});
|
|
1274
1370
|
}
|
|
1275
1371
|
const controllingTraits = ["$doNotSend"];
|
|
1276
|
-
/**
|
|
1277
|
-
* Remove all members of traits that controls identify/group behavior (see analytics.d.ts), and should not be recorded. Returns
|
|
1278
|
-
* copy of the object with these members removed.
|
|
1279
|
-
*
|
|
1280
|
-
* Do not modify traits object, but creates one
|
|
1281
|
-
* @param traits
|
|
1282
|
-
*/
|
|
1283
1372
|
function stripControllingTraits(traits) {
|
|
1284
1373
|
const res = Object.assign({}, traits);
|
|
1285
|
-
// see Traits definition in analytics.d.ts. We cannot define const here, so here's a little code duplication
|
|
1286
1374
|
for (const key of controllingTraits) {
|
|
1287
1375
|
delete res[key];
|
|
1288
1376
|
}
|
|
1289
1377
|
return res;
|
|
1290
1378
|
}
|
|
1291
1379
|
const jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {
|
|
1292
|
-
// just to make sure that all undefined values are replaced with defaultConfig values
|
|
1293
1380
|
mergeConfig(jitsuOptions, jitsuOptions);
|
|
1294
1381
|
return {
|
|
1295
1382
|
name: "jitsu",
|
|
@@ -1351,7 +1438,6 @@ const jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {
|
|
|
1351
1438
|
if (((_a = config.privacy) === null || _a === void 0 ? void 0 : _a.dontSend) || ((_b = config.privacy) === null || _b === void 0 ? void 0 : _b.disableUserIds)) {
|
|
1352
1439
|
return;
|
|
1353
1440
|
}
|
|
1354
|
-
// Store traits in cache to be able to use them in page and track events that run asynchronously with current identify.
|
|
1355
1441
|
storage.setItem("__user_id", payload.userId);
|
|
1356
1442
|
const doNotSend = (_c = payload.traits) === null || _c === void 0 ? void 0 : _c.$doNotSend;
|
|
1357
1443
|
if (payload.traits && typeof payload.traits === "object") {
|
|
@@ -1371,7 +1457,6 @@ const jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {
|
|
|
1371
1457
|
}
|
|
1372
1458
|
},
|
|
1373
1459
|
methods: {
|
|
1374
|
-
//analytics doesn't support group as a base method, so we need to add it manually
|
|
1375
1460
|
configure(newOptions) {
|
|
1376
1461
|
var _a, _b, _c, _d;
|
|
1377
1462
|
const idsWasDisabled = ((_a = jitsuOptions.privacy) === null || _a === void 0 ? void 0 : _a.disableUserIds) || ((_b = jitsuOptions.privacy) === null || _b === void 0 ? void 0 : _b.dontSend);
|
|
@@ -1397,7 +1482,6 @@ const jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {
|
|
|
1397
1482
|
return;
|
|
1398
1483
|
}
|
|
1399
1484
|
if (typeof groupId === "number") {
|
|
1400
|
-
//fix potential issues with group id being used incorrectly
|
|
1401
1485
|
groupId = groupId + "";
|
|
1402
1486
|
}
|
|
1403
1487
|
const instance = this.instance;
|
|
@@ -1504,9 +1588,6 @@ const emptyAnalytics = {
|
|
|
1504
1588
|
function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
1505
1589
|
var _a, _b, _c;
|
|
1506
1590
|
const storageCache = {};
|
|
1507
|
-
// AnalyticsInstance's storage is async somewhere inside. So if we make 'page' call right after 'identify' call
|
|
1508
|
-
// 'page' call will load traits from storage before 'identify' call had a change to save them.
|
|
1509
|
-
// to avoid that we use in-memory cache for storage
|
|
1510
1591
|
const cachingStorageWrapper = (persistentStorage) => ({
|
|
1511
1592
|
setItem(key, val) {
|
|
1512
1593
|
var _a, _b;
|
|
@@ -1559,24 +1640,17 @@ function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
|
1559
1640
|
}
|
|
1560
1641
|
}, identify: (...args) => {
|
|
1561
1642
|
if (args[0] && typeof args[0] !== "object" && typeof args[0] !== "string") {
|
|
1562
|
-
//fix the quirk of analytics.js: if you pass number as first argument, it will be converted to string
|
|
1563
1643
|
args[0] = args[0] + "";
|
|
1564
1644
|
}
|
|
1565
|
-
//analytics.js sets userId and traits asynchronously, so if
|
|
1566
|
-
//we want them to be available immediately after identify call in subsequent page() calls,
|
|
1567
|
-
//we need to put them into storage manually
|
|
1568
1645
|
const storage = analytics.storage;
|
|
1569
1646
|
const storageWrapper = cachingStorageWrapper(storage);
|
|
1570
1647
|
if (typeof args[0] === "string") {
|
|
1571
|
-
//first argument is user id
|
|
1572
1648
|
storageWrapper.setItem("__user_id", args[0]);
|
|
1573
1649
|
}
|
|
1574
1650
|
else if (typeof args[0] === "object") {
|
|
1575
|
-
//first argument is traits
|
|
1576
1651
|
storageWrapper.setItem("__user_traits", args[0]);
|
|
1577
1652
|
}
|
|
1578
1653
|
if (args.length === 2 && typeof args[1] === "object") {
|
|
1579
|
-
//first argument is user id, second is traits
|
|
1580
1654
|
storageWrapper.setItem("__user_traits", args[1]);
|
|
1581
1655
|
}
|
|
1582
1656
|
return analytics.identify(...args);
|
|
@@ -1603,8 +1677,6 @@ function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
|
1603
1677
|
if (opts.debug) {
|
|
1604
1678
|
console.log("[JITSU DEBUG] Setting anonymous id to " + id);
|
|
1605
1679
|
}
|
|
1606
|
-
//Workaround for analytics.js bug. Underlying setAnonymousId doesn't set the id immediately,
|
|
1607
|
-
//so we got to it manually here. See https://github.com/jitsucom/jitsu/issues/1060
|
|
1608
1680
|
storage.setItem("__anon_id", id);
|
|
1609
1681
|
const userState = analytics.user();
|
|
1610
1682
|
if (userState) {
|
|
@@ -1648,8 +1720,6 @@ function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
|
1648
1720
|
results.push(yield plugin["group"](groupId, traits, options, callback));
|
|
1649
1721
|
}
|
|
1650
1722
|
}
|
|
1651
|
-
//It's incorrect at many levels. First, it's not a dispatched event. Second, we take a first result
|
|
1652
|
-
//However, since returned values are used for debugging purposes only, it's ok
|
|
1653
1723
|
return results[0];
|
|
1654
1724
|
});
|
|
1655
1725
|
},
|
|
@@ -1661,10 +1731,6 @@ function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
|
1661
1731
|
}
|
|
1662
1732
|
return a;
|
|
1663
1733
|
}
|
|
1664
|
-
/**
|
|
1665
|
-
* Fix common mistakes in jitsu configuration
|
|
1666
|
-
* @param opts
|
|
1667
|
-
*/
|
|
1668
1734
|
function fixOptions(opts) {
|
|
1669
1735
|
var _a, _b;
|
|
1670
1736
|
return Object.assign(Object.assign({}, opts), { host: ((_a = opts.host) !== null && _a !== void 0 ? _a : "").indexOf("https://") !== 0 && ((_b = opts.host) !== null && _b !== void 0 ? _b : "").indexOf("http://") !== 0
|
|
@@ -1676,28 +1742,6 @@ function jitsuAnalytics(_opts) {
|
|
|
1676
1742
|
const inBrowser = isInBrowser();
|
|
1677
1743
|
const rt = opts.runtime || (inBrowser ? windowRuntime(opts) : emptyRuntime(opts));
|
|
1678
1744
|
return createUnderlyingAnalyticsInstance(opts, rt);
|
|
1679
|
-
// if (inBrowser) {
|
|
1680
|
-
// const fetch = opts.fetch || globalThis.fetch;
|
|
1681
|
-
// if (!fetch) {
|
|
1682
|
-
// throw new Error(
|
|
1683
|
-
// "Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope"
|
|
1684
|
-
// );
|
|
1685
|
-
// }
|
|
1686
|
-
// const url = `${opts.host}/api/s/cfg`;
|
|
1687
|
-
// const authHeader = {};
|
|
1688
|
-
// const debugHeader = opts.debug ? { "X-Enable-Debug": "true" } : {};
|
|
1689
|
-
// fetch(url)
|
|
1690
|
-
// .then(res => res.json())
|
|
1691
|
-
// .then(res => {
|
|
1692
|
-
// result.loaded(createUnderlyingAnalyticsInstance(opts, rt, []));
|
|
1693
|
-
// })
|
|
1694
|
-
// .catch(e => {
|
|
1695
|
-
// console.warn(`[JITSU] error getting device-destinations from ${url}`, e);
|
|
1696
|
-
// result.loaded(createUnderlyingAnalyticsInstance(opts, rt));
|
|
1697
|
-
// });
|
|
1698
|
-
// } else {
|
|
1699
|
-
// result.loaded(createUnderlyingAnalyticsInstance(opts, rt));
|
|
1700
|
-
// }
|
|
1701
1745
|
}
|
|
1702
1746
|
|
|
1703
1747
|
exports.createInMemoryStorage = createInMemoryStorage;
|