@jitsu/js 1.10.3 → 1.11.0-canary.20251124.3ff4617
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.es.js
CHANGED
|
@@ -126,11 +126,86 @@ function loadScript(src, options) {
|
|
|
126
126
|
|
|
127
127
|
const internalDestinationPlugins = {};
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
var name = "@jitsu/js";
|
|
130
|
+
var version = "1.11.0-canary.20251124.3ff4617";
|
|
131
|
+
var description = "";
|
|
132
|
+
var author = "Jitsu Dev Team <dev@jitsu.com>";
|
|
133
|
+
var main = "dist/jitsu.cjs.js";
|
|
134
|
+
var files = [
|
|
135
|
+
"dist"
|
|
136
|
+
];
|
|
137
|
+
var module = "dist/jitsu.es.js";
|
|
138
|
+
var types = "dist/jitsu.d.ts";
|
|
139
|
+
var publishConfig = {
|
|
140
|
+
access: "public"
|
|
141
|
+
};
|
|
142
|
+
var license = "MIT";
|
|
143
|
+
var scripts = {
|
|
144
|
+
clean: "rm -rf ./dist ./compiled",
|
|
145
|
+
"test:node": "vitest run",
|
|
146
|
+
"test:playwright": "playwright test ./__tests__/playwright",
|
|
147
|
+
test: "pnpm run test:node",
|
|
148
|
+
"//typecheck": "Build is required because types are generated during build",
|
|
149
|
+
typecheck: "pnpm run build",
|
|
150
|
+
build: "pnpm run clean && tsc -p . && rollup -c",
|
|
151
|
+
"//build-deps": "Required by turbo ^build-deps - builds dist/ for workspace packages that import this",
|
|
152
|
+
"build-deps": "pnpm run build"
|
|
153
|
+
};
|
|
154
|
+
var devDependencies = {
|
|
155
|
+
"@jitsu/common-config": "workspace:*",
|
|
156
|
+
tslib: "catalog:",
|
|
157
|
+
"@playwright/test": "1.39.0",
|
|
158
|
+
"@rollup/plugin-commonjs": "^28.0.2",
|
|
159
|
+
"rollup-plugin-dts": "^6.2.1",
|
|
160
|
+
"@rollup/plugin-json": "^5.0.1",
|
|
161
|
+
"@rollup/plugin-multi-entry": "^6.0.0",
|
|
162
|
+
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
163
|
+
"@rollup/plugin-replace": "^5.0.1",
|
|
164
|
+
"@rollup/plugin-terser": "^0.1.0",
|
|
165
|
+
"@segment/analytics-next": "^1.75.0",
|
|
166
|
+
"@types/chalk": "^2.2.0",
|
|
167
|
+
"@types/node": "catalog:",
|
|
168
|
+
"@vitest/ui": "catalog:",
|
|
169
|
+
chalk: "^4.1.2",
|
|
170
|
+
"cookie-parser": "^1.4.7",
|
|
171
|
+
ejs: "^3.1.8",
|
|
172
|
+
express: "^4.21.2",
|
|
173
|
+
"node-fetch-commonjs": "^3.3.2",
|
|
174
|
+
"node-forge": "^1.3.1",
|
|
175
|
+
"raw-loader": "^4.0.2",
|
|
176
|
+
rollup: "^3.29.5",
|
|
177
|
+
typescript: "catalog:",
|
|
178
|
+
vitest: "catalog:",
|
|
179
|
+
jsondiffpatch: "workspace:*"
|
|
180
|
+
};
|
|
181
|
+
var peerDependencies = {
|
|
182
|
+
"@jitsu/protocols": "workspace:*"
|
|
183
|
+
};
|
|
184
|
+
var dependencies = {
|
|
185
|
+
analytics: "0.8.9"
|
|
186
|
+
};
|
|
187
|
+
var pkg = {
|
|
188
|
+
name: name,
|
|
189
|
+
version: version,
|
|
190
|
+
description: description,
|
|
191
|
+
author: author,
|
|
192
|
+
main: main,
|
|
193
|
+
files: files,
|
|
194
|
+
module: module,
|
|
195
|
+
types: types,
|
|
196
|
+
publishConfig: publishConfig,
|
|
197
|
+
license: license,
|
|
198
|
+
"private": false,
|
|
199
|
+
scripts: scripts,
|
|
200
|
+
devDependencies: devDependencies,
|
|
201
|
+
peerDependencies: peerDependencies,
|
|
202
|
+
dependencies: dependencies
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
const jitsuVersion = pkg.version ;
|
|
130
206
|
const jitsuLibraryName = "@jitsu/js";
|
|
131
207
|
|
|
132
|
-
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(",");
|
|
133
|
-
//convert to Map
|
|
208
|
+
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(",");
|
|
134
209
|
const _publicSuffixesMap = {};
|
|
135
210
|
publicSuffixes.forEach(tld => {
|
|
136
211
|
_publicSuffixesMap[tld] = true;
|
|
@@ -617,7 +692,6 @@ function create(options) {
|
|
|
617
692
|
return new DiffPatcher(options);
|
|
618
693
|
}
|
|
619
694
|
|
|
620
|
-
/* global analytics */
|
|
621
695
|
var __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
622
696
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
623
697
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -629,9 +703,7 @@ var __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _argu
|
|
|
629
703
|
};
|
|
630
704
|
const diff = create();
|
|
631
705
|
const defaultConfig = {
|
|
632
|
-
/* Your segment writeKey */
|
|
633
706
|
writeKey: null,
|
|
634
|
-
/* Disable anonymous MTU */
|
|
635
707
|
host: null,
|
|
636
708
|
debug: false,
|
|
637
709
|
fetch: null,
|
|
@@ -652,7 +724,6 @@ const defaultConfig = {
|
|
|
652
724
|
consentCategories: {},
|
|
653
725
|
},
|
|
654
726
|
};
|
|
655
|
-
// mergeConfig merges newConfig into currentConfig also making sure that all undefined values are replaced with defaultConfig values
|
|
656
727
|
const mergeConfig = (current, newConfig) => {
|
|
657
728
|
for (const key of Object.keys(defaultConfig)) {
|
|
658
729
|
const value = newConfig[key];
|
|
@@ -662,16 +733,12 @@ const mergeConfig = (current, newConfig) => {
|
|
|
662
733
|
}
|
|
663
734
|
else if (typeof value === "undefined") {
|
|
664
735
|
if (newConfig.hasOwnProperty("privacy") || !current.hasOwnProperty("privacy")) {
|
|
665
|
-
// explicitly set to undefined - reset to default
|
|
666
|
-
// or was not set at all - set to default
|
|
667
736
|
current.privacy = Object.assign(Object.assign({}, defaultConfig.privacy), { consentCategories: Object.assign({}, defaultConfig.privacy.consentCategories) });
|
|
668
737
|
}
|
|
669
738
|
}
|
|
670
739
|
}
|
|
671
740
|
else if (typeof value === "undefined") {
|
|
672
741
|
if (newConfig.hasOwnProperty(key) || !current.hasOwnProperty(key)) {
|
|
673
|
-
// explicitly set to undefined - reset to default
|
|
674
|
-
// or was not set at all - set to default
|
|
675
742
|
current[key] = defaultConfig[key];
|
|
676
743
|
}
|
|
677
744
|
}
|
|
@@ -740,6 +807,18 @@ function getClientIds(runtime, customCookieCapture) {
|
|
|
740
807
|
}, {});
|
|
741
808
|
return Object.assign(Object.assign({}, clientIds), getGa4Ids(runtime));
|
|
742
809
|
}
|
|
810
|
+
function parseGa4SessionId(cookieValue) {
|
|
811
|
+
if (typeof cookieValue !== "string") {
|
|
812
|
+
return undefined;
|
|
813
|
+
}
|
|
814
|
+
if (cookieValue.startsWith("GA1") || cookieValue.startsWith("GS1")) {
|
|
815
|
+
return cookieValue.split(".")[2];
|
|
816
|
+
}
|
|
817
|
+
else {
|
|
818
|
+
const match = cookieValue.match(/^GS\d+\.\d+\.(?:[\w_-]+[$])*s(\d+)(?:$|[$])/);
|
|
819
|
+
return match ? match[1] : undefined;
|
|
820
|
+
}
|
|
821
|
+
}
|
|
743
822
|
function getGa4Ids(runtime) {
|
|
744
823
|
var _a;
|
|
745
824
|
const allCookies = runtime.getCookies();
|
|
@@ -748,14 +827,11 @@ function getGa4Ids(runtime) {
|
|
|
748
827
|
const sessionIds = gaSessionCookies.length > 0
|
|
749
828
|
? Object.fromEntries(gaSessionCookies
|
|
750
829
|
.map(([key, value]) => {
|
|
751
|
-
|
|
830
|
+
const sessionId = parseGa4SessionId(value);
|
|
831
|
+
if (!sessionId) {
|
|
752
832
|
return null;
|
|
753
833
|
}
|
|
754
|
-
|
|
755
|
-
if (parts.length < 3) {
|
|
756
|
-
return null;
|
|
757
|
-
}
|
|
758
|
-
return [key.substring("_ga_".length), parts[2]];
|
|
834
|
+
return [key.substring("_ga_".length), sessionId];
|
|
759
835
|
})
|
|
760
836
|
.filter(v => v !== null))
|
|
761
837
|
: undefined;
|
|
@@ -818,11 +894,9 @@ const cookieStorage = (cookieDomain, key2cookie) => {
|
|
|
818
894
|
const cookieName = key2cookie(key) || key;
|
|
819
895
|
const result = getCookie(cookieName);
|
|
820
896
|
if (key === "__anon_id") {
|
|
821
|
-
//anonymous id must always be a string, so we don't parse it to preserve its exact value
|
|
822
897
|
return result;
|
|
823
898
|
}
|
|
824
899
|
if (typeof result === "undefined" && key === "__user_id") {
|
|
825
|
-
//backward compatibility with old jitsu cookie. get user id if from traits
|
|
826
900
|
const traits = parse(getCookie(key2cookie("__user_traits") || "__eventn_id_usr")) || {};
|
|
827
901
|
return traits.internal_id || traits.user_id || traits.id || traits.userId;
|
|
828
902
|
}
|
|
@@ -979,6 +1053,15 @@ const emptyRuntime = (config) => ({
|
|
|
979
1053
|
return undefined;
|
|
980
1054
|
},
|
|
981
1055
|
});
|
|
1056
|
+
function deepCopy(o) {
|
|
1057
|
+
if (typeof o !== "object") {
|
|
1058
|
+
return o;
|
|
1059
|
+
}
|
|
1060
|
+
if (!o) {
|
|
1061
|
+
return o;
|
|
1062
|
+
}
|
|
1063
|
+
return JSON.parse(JSON.stringify(o));
|
|
1064
|
+
}
|
|
982
1065
|
function deepMerge(target, source) {
|
|
983
1066
|
if (typeof source !== "object" || source === null) {
|
|
984
1067
|
return source;
|
|
@@ -994,10 +1077,6 @@ function deepMerge(target, source) {
|
|
|
994
1077
|
function isInBrowser() {
|
|
995
1078
|
return typeof document !== "undefined" && typeof window !== "undefined";
|
|
996
1079
|
}
|
|
997
|
-
/**
|
|
998
|
-
* Fixes a weird bug in analytics URL where path
|
|
999
|
-
* of https://test.com becomes //test.com
|
|
1000
|
-
*/
|
|
1001
1080
|
function fixPath(path) {
|
|
1002
1081
|
if (path.indexOf("//") === 0 && path.lastIndexOf("/") === 1) {
|
|
1003
1082
|
return "/";
|
|
@@ -1005,16 +1084,30 @@ function fixPath(path) {
|
|
|
1005
1084
|
return path;
|
|
1006
1085
|
}
|
|
1007
1086
|
const hashRegex = /#.*$/;
|
|
1008
|
-
/**
|
|
1009
|
-
* for compatibility with path produced by analytics.js
|
|
1010
|
-
* @param url
|
|
1011
|
-
*/
|
|
1012
1087
|
function urlPath(url) {
|
|
1013
1088
|
const regex = /(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g;
|
|
1014
1089
|
const matches = regex.exec(url);
|
|
1015
1090
|
const pathMatch = matches && matches[3] ? matches[3].split("?")[0].replace(hashRegex, "") : "";
|
|
1016
1091
|
return "/" + pathMatch;
|
|
1017
1092
|
}
|
|
1093
|
+
function canonicalUrl() {
|
|
1094
|
+
if (!isInBrowser())
|
|
1095
|
+
return;
|
|
1096
|
+
const tags = document.getElementsByTagName("link");
|
|
1097
|
+
for (var i = 0, tag; (tag = tags[i]); i++) {
|
|
1098
|
+
if (tag.getAttribute("rel") === "canonical") {
|
|
1099
|
+
return tag.getAttribute("href");
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
function analyticsJsUrl() {
|
|
1104
|
+
if (!isInBrowser())
|
|
1105
|
+
return;
|
|
1106
|
+
const canonical = canonicalUrl();
|
|
1107
|
+
if (!canonical)
|
|
1108
|
+
return window.location.href.replace(hashRegex, "");
|
|
1109
|
+
return canonical.match(/\?/) ? canonical : canonical + window.location.search;
|
|
1110
|
+
}
|
|
1018
1111
|
function adjustPayload(payload, config, storage, s2s) {
|
|
1019
1112
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
1020
1113
|
const runtime = config.runtime || (isInBrowser() ? windowRuntime(config) : emptyRuntime(config));
|
|
@@ -1023,7 +1116,10 @@ function adjustPayload(payload, config, storage, s2s) {
|
|
|
1023
1116
|
const query = parsedUrl ? parseQuery(parsedUrl.search) : {};
|
|
1024
1117
|
const properties = payload.properties || {};
|
|
1025
1118
|
if (payload.type === "page" && (properties.url || url)) {
|
|
1026
|
-
|
|
1119
|
+
let targetUrl = url || properties.url;
|
|
1120
|
+
if (properties.url && properties.url !== analyticsJsUrl()) {
|
|
1121
|
+
targetUrl = properties.url;
|
|
1122
|
+
}
|
|
1027
1123
|
properties.url = targetUrl.replace(hashRegex, "");
|
|
1028
1124
|
properties.path = fixPath(urlPath(targetUrl));
|
|
1029
1125
|
}
|
|
@@ -1079,15 +1175,18 @@ function processDestinations(destinations, method, originalEvent, debug, analyti
|
|
|
1079
1175
|
return __awaiter$1(this, void 0, void 0, function* () {
|
|
1080
1176
|
const promises = [];
|
|
1081
1177
|
for (const destination of destinations) {
|
|
1082
|
-
let newEvents = [
|
|
1178
|
+
let newEvents = [];
|
|
1083
1179
|
if (destination.newEvents) {
|
|
1084
1180
|
try {
|
|
1085
|
-
newEvents = destination.newEvents.map(e => e === "same" ? originalEvent : isDiff(e) ? diff.patch(originalEvent, e.__diff) : e);
|
|
1181
|
+
newEvents = destination.newEvents.map(e => e === "same" ? deepCopy(originalEvent) : isDiff(e) ? diff.patch(deepCopy(originalEvent), e.__diff) : e);
|
|
1086
1182
|
}
|
|
1087
1183
|
catch (e) {
|
|
1088
1184
|
console.error(`[JITSU] Error applying '${destination.id}' changes to event: ${e === null || e === void 0 ? void 0 : e.message}`, e);
|
|
1089
1185
|
}
|
|
1090
1186
|
}
|
|
1187
|
+
else {
|
|
1188
|
+
newEvents = [deepCopy(originalEvent)];
|
|
1189
|
+
}
|
|
1091
1190
|
const credentials = Object.assign(Object.assign({}, destination.credentials), destination.options);
|
|
1092
1191
|
if (destination.deviceOptions.type === "internal-plugin") {
|
|
1093
1192
|
const plugin = internalDestinationPlugins[destination.deviceOptions.name];
|
|
@@ -1179,7 +1278,6 @@ function getErrorHandler(opts) {
|
|
|
1179
1278
|
}
|
|
1180
1279
|
else if (configuredHandler === "rethrow") {
|
|
1181
1280
|
return (msg, ...args) => {
|
|
1182
|
-
//ignore args, not clear what to do with them
|
|
1183
1281
|
throw new Error(msg);
|
|
1184
1282
|
};
|
|
1185
1283
|
}
|
|
@@ -1202,7 +1300,6 @@ function send(method, payload, jitsuConfig, instance, store) {
|
|
|
1202
1300
|
const url = s2s ? `${jitsuConfig.host}/api/s/s2s/${method}` : `${jitsuConfig.host}/api/s/${method}`;
|
|
1203
1301
|
const fetch = jitsuConfig.fetch || globalThis.fetch;
|
|
1204
1302
|
if (!fetch) {
|
|
1205
|
-
//don't run it through error handler since error is critical and should be addressed
|
|
1206
1303
|
throw new Error("Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope");
|
|
1207
1304
|
}
|
|
1208
1305
|
const abortController = jitsuConfig.fetchTimeoutMs ? new AbortController() : undefined;
|
|
@@ -1258,7 +1355,6 @@ function send(method, payload, jitsuConfig, instance, store) {
|
|
|
1258
1355
|
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);
|
|
1259
1356
|
}
|
|
1260
1357
|
else {
|
|
1261
|
-
//double protection, ingest should not return destinations in s2s mode
|
|
1262
1358
|
if (isInBrowser()) {
|
|
1263
1359
|
if (jitsuConfig.debug) {
|
|
1264
1360
|
console.log(`[JITSU] Processing device destinations: `, JSON.stringify(responseJson.destinations, null, 2));
|
|
@@ -1271,23 +1367,14 @@ function send(method, payload, jitsuConfig, instance, store) {
|
|
|
1271
1367
|
});
|
|
1272
1368
|
}
|
|
1273
1369
|
const controllingTraits = ["$doNotSend"];
|
|
1274
|
-
/**
|
|
1275
|
-
* Remove all members of traits that controls identify/group behavior (see analytics.d.ts), and should not be recorded. Returns
|
|
1276
|
-
* copy of the object with these members removed.
|
|
1277
|
-
*
|
|
1278
|
-
* Do not modify traits object, but creates one
|
|
1279
|
-
* @param traits
|
|
1280
|
-
*/
|
|
1281
1370
|
function stripControllingTraits(traits) {
|
|
1282
1371
|
const res = Object.assign({}, traits);
|
|
1283
|
-
// see Traits definition in analytics.d.ts. We cannot define const here, so here's a little code duplication
|
|
1284
1372
|
for (const key of controllingTraits) {
|
|
1285
1373
|
delete res[key];
|
|
1286
1374
|
}
|
|
1287
1375
|
return res;
|
|
1288
1376
|
}
|
|
1289
1377
|
const jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {
|
|
1290
|
-
// just to make sure that all undefined values are replaced with defaultConfig values
|
|
1291
1378
|
mergeConfig(jitsuOptions, jitsuOptions);
|
|
1292
1379
|
return {
|
|
1293
1380
|
name: "jitsu",
|
|
@@ -1349,7 +1436,6 @@ const jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {
|
|
|
1349
1436
|
if (((_a = config.privacy) === null || _a === void 0 ? void 0 : _a.dontSend) || ((_b = config.privacy) === null || _b === void 0 ? void 0 : _b.disableUserIds)) {
|
|
1350
1437
|
return;
|
|
1351
1438
|
}
|
|
1352
|
-
// Store traits in cache to be able to use them in page and track events that run asynchronously with current identify.
|
|
1353
1439
|
storage.setItem("__user_id", payload.userId);
|
|
1354
1440
|
const doNotSend = (_c = payload.traits) === null || _c === void 0 ? void 0 : _c.$doNotSend;
|
|
1355
1441
|
if (payload.traits && typeof payload.traits === "object") {
|
|
@@ -1369,7 +1455,6 @@ const jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {
|
|
|
1369
1455
|
}
|
|
1370
1456
|
},
|
|
1371
1457
|
methods: {
|
|
1372
|
-
//analytics doesn't support group as a base method, so we need to add it manually
|
|
1373
1458
|
configure(newOptions) {
|
|
1374
1459
|
var _a, _b, _c, _d;
|
|
1375
1460
|
const idsWasDisabled = ((_a = jitsuOptions.privacy) === null || _a === void 0 ? void 0 : _a.disableUserIds) || ((_b = jitsuOptions.privacy) === null || _b === void 0 ? void 0 : _b.dontSend);
|
|
@@ -1395,7 +1480,6 @@ const jitsuAnalyticsPlugin = (jitsuOptions = {}, storage) => {
|
|
|
1395
1480
|
return;
|
|
1396
1481
|
}
|
|
1397
1482
|
if (typeof groupId === "number") {
|
|
1398
|
-
//fix potential issues with group id being used incorrectly
|
|
1399
1483
|
groupId = groupId + "";
|
|
1400
1484
|
}
|
|
1401
1485
|
const instance = this.instance;
|
|
@@ -1502,9 +1586,6 @@ const emptyAnalytics = {
|
|
|
1502
1586
|
function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
1503
1587
|
var _a, _b, _c;
|
|
1504
1588
|
const storageCache = {};
|
|
1505
|
-
// AnalyticsInstance's storage is async somewhere inside. So if we make 'page' call right after 'identify' call
|
|
1506
|
-
// 'page' call will load traits from storage before 'identify' call had a change to save them.
|
|
1507
|
-
// to avoid that we use in-memory cache for storage
|
|
1508
1589
|
const cachingStorageWrapper = (persistentStorage) => ({
|
|
1509
1590
|
setItem(key, val) {
|
|
1510
1591
|
var _a, _b;
|
|
@@ -1557,24 +1638,17 @@ function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
|
1557
1638
|
}
|
|
1558
1639
|
}, identify: (...args) => {
|
|
1559
1640
|
if (args[0] && typeof args[0] !== "object" && typeof args[0] !== "string") {
|
|
1560
|
-
//fix the quirk of analytics.js: if you pass number as first argument, it will be converted to string
|
|
1561
1641
|
args[0] = args[0] + "";
|
|
1562
1642
|
}
|
|
1563
|
-
//analytics.js sets userId and traits asynchronously, so if
|
|
1564
|
-
//we want them to be available immediately after identify call in subsequent page() calls,
|
|
1565
|
-
//we need to put them into storage manually
|
|
1566
1643
|
const storage = analytics.storage;
|
|
1567
1644
|
const storageWrapper = cachingStorageWrapper(storage);
|
|
1568
1645
|
if (typeof args[0] === "string") {
|
|
1569
|
-
//first argument is user id
|
|
1570
1646
|
storageWrapper.setItem("__user_id", args[0]);
|
|
1571
1647
|
}
|
|
1572
1648
|
else if (typeof args[0] === "object") {
|
|
1573
|
-
//first argument is traits
|
|
1574
1649
|
storageWrapper.setItem("__user_traits", args[0]);
|
|
1575
1650
|
}
|
|
1576
1651
|
if (args.length === 2 && typeof args[1] === "object") {
|
|
1577
|
-
//first argument is user id, second is traits
|
|
1578
1652
|
storageWrapper.setItem("__user_traits", args[1]);
|
|
1579
1653
|
}
|
|
1580
1654
|
return analytics.identify(...args);
|
|
@@ -1601,8 +1675,6 @@ function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
|
1601
1675
|
if (opts.debug) {
|
|
1602
1676
|
console.log("[JITSU DEBUG] Setting anonymous id to " + id);
|
|
1603
1677
|
}
|
|
1604
|
-
//Workaround for analytics.js bug. Underlying setAnonymousId doesn't set the id immediately,
|
|
1605
|
-
//so we got to it manually here. See https://github.com/jitsucom/jitsu/issues/1060
|
|
1606
1678
|
storage.setItem("__anon_id", id);
|
|
1607
1679
|
const userState = analytics.user();
|
|
1608
1680
|
if (userState) {
|
|
@@ -1646,8 +1718,6 @@ function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
|
1646
1718
|
results.push(yield plugin["group"](groupId, traits, options, callback));
|
|
1647
1719
|
}
|
|
1648
1720
|
}
|
|
1649
|
-
//It's incorrect at many levels. First, it's not a dispatched event. Second, we take a first result
|
|
1650
|
-
//However, since returned values are used for debugging purposes only, it's ok
|
|
1651
1721
|
return results[0];
|
|
1652
1722
|
});
|
|
1653
1723
|
},
|
|
@@ -1659,10 +1729,6 @@ function createUnderlyingAnalyticsInstance(opts, rt, plugins = []) {
|
|
|
1659
1729
|
}
|
|
1660
1730
|
return a;
|
|
1661
1731
|
}
|
|
1662
|
-
/**
|
|
1663
|
-
* Fix common mistakes in jitsu configuration
|
|
1664
|
-
* @param opts
|
|
1665
|
-
*/
|
|
1666
1732
|
function fixOptions(opts) {
|
|
1667
1733
|
var _a, _b;
|
|
1668
1734
|
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
|
|
@@ -1674,28 +1740,6 @@ function jitsuAnalytics(_opts) {
|
|
|
1674
1740
|
const inBrowser = isInBrowser();
|
|
1675
1741
|
const rt = opts.runtime || (inBrowser ? windowRuntime(opts) : emptyRuntime(opts));
|
|
1676
1742
|
return createUnderlyingAnalyticsInstance(opts, rt);
|
|
1677
|
-
// if (inBrowser) {
|
|
1678
|
-
// const fetch = opts.fetch || globalThis.fetch;
|
|
1679
|
-
// if (!fetch) {
|
|
1680
|
-
// throw new Error(
|
|
1681
|
-
// "Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope"
|
|
1682
|
-
// );
|
|
1683
|
-
// }
|
|
1684
|
-
// const url = `${opts.host}/api/s/cfg`;
|
|
1685
|
-
// const authHeader = {};
|
|
1686
|
-
// const debugHeader = opts.debug ? { "X-Enable-Debug": "true" } : {};
|
|
1687
|
-
// fetch(url)
|
|
1688
|
-
// .then(res => res.json())
|
|
1689
|
-
// .then(res => {
|
|
1690
|
-
// result.loaded(createUnderlyingAnalyticsInstance(opts, rt, []));
|
|
1691
|
-
// })
|
|
1692
|
-
// .catch(e => {
|
|
1693
|
-
// console.warn(`[JITSU] error getting device-destinations from ${url}`, e);
|
|
1694
|
-
// result.loaded(createUnderlyingAnalyticsInstance(opts, rt));
|
|
1695
|
-
// });
|
|
1696
|
-
// } else {
|
|
1697
|
-
// result.loaded(createUnderlyingAnalyticsInstance(opts, rt));
|
|
1698
|
-
// }
|
|
1699
1743
|
}
|
|
1700
1744
|
|
|
1701
1745
|
export { createInMemoryStorage, emptyAnalytics, emptyRuntime, isInBrowser, jitsuAnalytics, jitsuAnalyticsPlugin, parseQuery, randomId, uuid, windowRuntime };
|