dealpos 26.25.3 → 26.25.4
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/browser/{chunk-EB22L5MG.js → chunk-24YVW6IM.js} +1 -1
- package/browser/{chunk-KJI2VSCE.js → chunk-3DYCAJKA.js} +1 -1
- package/browser/chunk-3Q4IO7O2.js +1 -0
- package/browser/{chunk-OX7JTNLB.js → chunk-4QNH3VVG.js} +1 -1
- package/browser/{chunk-7JDR5UK5.js → chunk-5EFZWKFY.js} +1 -1
- package/browser/{chunk-4TDNCDZ5.js → chunk-5RQLI4U6.js} +1 -1
- package/browser/{chunk-ZBEFWZLN.js → chunk-5YAC2X2C.js} +1 -1
- package/browser/{chunk-NV4KQ5AP.js → chunk-6X3W376H.js} +1 -1
- package/browser/{chunk-YHQ3PZIB.js → chunk-7FZ62O5C.js} +1 -1
- package/browser/{chunk-HMNIVGWF.js → chunk-7KU7XP25.js} +1 -1
- package/browser/{chunk-5EFUTOGJ.js → chunk-7VRNI6TO.js} +1 -1
- package/browser/{chunk-DNFMNBT7.js → chunk-7XSHXCKL.js} +1 -1
- package/browser/{chunk-ZGZNFGJH.js → chunk-7ZKM33M6.js} +1 -1
- package/browser/{chunk-DR6CC5IS.js → chunk-AAYOZGVU.js} +1 -1
- package/browser/{chunk-DQXUTAZ3.js → chunk-APSXQBAL.js} +1 -1
- package/browser/{chunk-DRY7YIII.js → chunk-ASQ7VTDX.js} +1 -1
- package/browser/{chunk-SSNE4ZYY.js → chunk-B35MAMGE.js} +1 -1
- package/browser/{chunk-BPU7X6SU.js → chunk-B6CJXRRF.js} +1 -1
- package/browser/{chunk-MFVW6KNM.js → chunk-BCSE3LOS.js} +1 -1
- package/browser/{chunk-HRHUZI5N.js → chunk-BG2F4HQI.js} +1 -1
- package/browser/{chunk-U2QR3KFM.js → chunk-BRETRW2B.js} +1 -1
- package/browser/{chunk-OSYDRR5S.js → chunk-BS4B74AO.js} +1 -1
- package/browser/{chunk-LQWZG6Z5.js → chunk-BSDTBNHJ.js} +1 -1
- package/browser/{chunk-IRODJJZY.js → chunk-BXNC5D5F.js} +1 -1
- package/browser/{chunk-P7KILRLO.js → chunk-CGTMXGDA.js} +1 -1
- package/browser/{chunk-ZTU3ZWV3.js → chunk-EEXGGWJT.js} +1 -1
- package/browser/{chunk-KO3OL7WH.js → chunk-EG4JEDK5.js} +1 -1
- package/browser/{chunk-GBCRSIS2.js → chunk-EZTPN3GA.js} +1 -1
- package/browser/{chunk-B4RPAD3U.js → chunk-F64YIQRU.js} +1 -1
- package/browser/{chunk-RSYT4LMW.js → chunk-FARU2OQO.js} +1 -1
- package/browser/{chunk-CEBXIAEB.js → chunk-FHS3JC2L.js} +1 -1
- package/browser/{chunk-UQBPCBVO.js → chunk-FXVNWATU.js} +1 -1
- package/browser/{chunk-3I2AC6RS.js → chunk-GIEKQSSW.js} +1 -1
- package/browser/{chunk-AHN3BOQW.js → chunk-HCIMDSSR.js} +1 -1
- package/browser/{chunk-5HYCD6VG.js → chunk-HEGGHX5W.js} +1 -1
- package/browser/{chunk-3Q6UY7C7.js → chunk-HVTPC6IF.js} +1 -1
- package/browser/{chunk-JJMM5PNO.js → chunk-HX2BACYK.js} +1 -1
- package/browser/{chunk-CT7H2S3Q.js → chunk-IGDKUNPO.js} +1 -1
- package/browser/{chunk-EDRSAVZC.js → chunk-IRNATOLH.js} +1 -1
- package/browser/{chunk-6X55GUUJ.js → chunk-JTEDUPOB.js} +2 -2
- package/browser/{chunk-5LHBA2AH.js → chunk-JVMHIFA3.js} +1 -1
- package/browser/{chunk-NTDXAF4W.js → chunk-KRZU53O6.js} +1 -1
- package/browser/{chunk-KF2VGGVD.js → chunk-LAY77U44.js} +1 -1
- package/browser/{chunk-KVH6NDXW.js → chunk-LBOMNCBQ.js} +1 -1
- package/browser/{chunk-ST6ZW5YW.js → chunk-LHLEYTCP.js} +1 -1
- package/browser/{chunk-YPUBDKL3.js → chunk-LIH6T3NI.js} +2 -2
- package/browser/{chunk-XKQLLHKX.js → chunk-LJWZUBOF.js} +1 -1
- package/browser/{chunk-B33THSGQ.js → chunk-MCKVEPOG.js} +1 -1
- package/browser/{chunk-6V5BBVQF.js → chunk-MKPMVYCM.js} +1 -1
- package/browser/{chunk-3HCNR2FT.js → chunk-MU2UMINJ.js} +1 -1
- package/browser/{chunk-N2F6BFAW.js → chunk-MY6OKNIC.js} +1 -1
- package/browser/{chunk-HR7ZME7T.js → chunk-MZ2OR37H.js} +1 -1
- package/browser/{chunk-UTJQCPIG.js → chunk-N3XPRUPE.js} +1 -1
- package/browser/{chunk-FQSDCSMR.js → chunk-NRHAF53Y.js} +1 -1
- package/browser/{chunk-GQRJIDNT.js → chunk-NXJE7RDV.js} +1 -1
- package/browser/{chunk-G256T6ZB.js → chunk-O5BW5EJ5.js} +1 -1
- package/browser/{chunk-3MAV6YA2.js → chunk-OCUIXDUN.js} +1 -1
- package/browser/{chunk-CDL2GIND.js → chunk-P52YHVG6.js} +1 -1
- package/browser/{chunk-TFWFSXVC.js → chunk-PIUG7I7G.js} +1 -1
- package/browser/{chunk-CD7F3IO7.js → chunk-Q2UN6J53.js} +1 -1
- package/browser/{chunk-56LWA2W6.js → chunk-QDZ34UH4.js} +1 -1
- package/browser/{chunk-4MMRYYQW.js → chunk-QN7K27DB.js} +1 -1
- package/browser/{chunk-23ERF464.js → chunk-QTQRDHM2.js} +2 -2
- package/browser/{chunk-PLRTLRP3.js → chunk-R2QKENIY.js} +1 -1
- package/browser/{chunk-V26KEA74.js → chunk-RSCOETDX.js} +1 -1
- package/browser/{chunk-CRDLVGSR.js → chunk-RXWV3EAH.js} +1 -1
- package/browser/{chunk-RI7W26TS.js → chunk-S2REBHG4.js} +1 -1
- package/browser/{chunk-WS3YVSBF.js → chunk-S5F6RNP6.js} +1 -1
- package/browser/{chunk-E6MLI2MD.js → chunk-S5JUOLFP.js} +1 -1
- package/browser/{chunk-Q3WKN4YL.js → chunk-S7Z27WHD.js} +1 -1
- package/browser/{chunk-UPPWOKMS.js → chunk-SFERAN4E.js} +1 -1
- package/browser/{chunk-NKW66VWA.js → chunk-SOYMIIBT.js} +1 -1
- package/browser/{chunk-ORZFQWLF.js → chunk-TIWLXXNN.js} +1 -1
- package/browser/{chunk-ICJRTNWI.js → chunk-TQANAAHV.js} +1 -1
- package/browser/{chunk-NGIE2GVN.js → chunk-TU3KADTB.js} +1 -1
- package/browser/{chunk-OD6YUGAI.js → chunk-UC2EJLD7.js} +1 -1
- package/browser/{chunk-R4KNUQL3.js → chunk-UIYNK42J.js} +1 -1
- package/browser/{chunk-RFSRGIOO.js → chunk-UMNZNCNZ.js} +1 -1
- package/browser/{chunk-EML2BY3H.js → chunk-UQY6ELAZ.js} +2 -2
- package/browser/{chunk-Z5OKB5QO.js → chunk-UYQQRIBU.js} +2 -2
- package/browser/{chunk-BQ2GY6KT.js → chunk-UYUDEGLJ.js} +1 -1
- package/browser/{chunk-TVH2BCLM.js → chunk-V5OC2ZTR.js} +2 -2
- package/browser/{chunk-VPMOJP3Z.js → chunk-VFNP2ORS.js} +1 -1
- package/browser/{chunk-DQ5NHPD2.js → chunk-VW7FYM7T.js} +1 -1
- package/browser/{chunk-HZLIYW2L.js → chunk-W3H3UXJH.js} +1 -1
- package/browser/{chunk-HQ7NMUGY.js → chunk-WHBSJON4.js} +1 -1
- package/browser/{chunk-UXHPAQEI.js → chunk-WSB7BHYL.js} +1 -1
- package/browser/{chunk-ASP3DSUS.js → chunk-XD5D6JZF.js} +1 -1
- package/browser/{chunk-QPSQLL7K.js → chunk-XWDLAWJT.js} +1 -1
- package/browser/{chunk-LP6OM6DS.js → chunk-XZCRCFZO.js} +2 -2
- package/browser/{chunk-KWX5UNQM.js → chunk-YE6FBUX4.js} +1 -1
- package/browser/{chunk-Y3ZDLOD3.js → chunk-YEZEC2AK.js} +1 -1
- package/browser/{chunk-ZOT3CQUB.js → chunk-YKFWCAIJ.js} +1 -1
- package/browser/{chunk-O3BYBR2A.js → chunk-YTR2DDPO.js} +1 -1
- package/browser/{chunk-2EQ5OA2U.js → chunk-YY27OM6B.js} +1 -1
- package/browser/{chunk-AI4L6XS2.js → chunk-ZVDRQ7VN.js} +1 -1
- package/browser/{chunk-TN34D6IW.js → chunk-ZYOQEZYT.js} +1 -1
- package/browser/{chunk-ZR3AG5P6.js → chunk-ZZVRRX5K.js} +1 -1
- package/browser/index.html +2 -2
- package/browser/{main-AGERJZAN.js → main-IYOG7YNU.js} +1 -1
- package/package.json +1 -1
- package/browser/chunk-YJ3Z2AUU.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ae}from"./chunk-
|
|
1
|
+
import{a as ae}from"./chunk-TIWLXXNN.js";import{a as ne}from"./chunk-YBGXDESJ.js";import{a as Y,b as ee}from"./chunk-ZFSMBBTC.js";import{a as te,b as ie,c as oe}from"./chunk-7HKIQJO2.js";import{a as K}from"./chunk-HMY7DJXX.js";import{b as Q,c as X}from"./chunk-ZIR7IDMB.js";import{q as P}from"./chunk-FWVQ6CFL.js";import{Ab as f,Bb as n,Cb as a,Cc as S,Db as w,Dc as A,Ec as G,Lc as Z,Ma as F,Mb as _,Pb as u,Pc as W,Qc as s,Ra as r,Rb as d,Ya as y,ab as b,ac as H,bc as v,dc as B,ec as p,fc as x,gc as I,ha as O,hc as L,jd as $,ka as R,la as D,nd as q,pa as h,pd as J,qa as C,r as k,sd as M,tb as m,vb as g,wc as z,xb as N,yb as V,zb as j}from"./chunk-KYVLS64M.js";import{a as T,b as U}from"./chunk-KMHZKFQS.js";var re=class i{constructor(t){this.httpService=t}verifyEmail(t){let e={Email:t,EmailVerified:!0};return this.httpService.put("/api/v3/Customer/VerifyEmail",e)}verifyMobile(t){let e={Mobile:t,MobileVerified:!0};return this.httpService.put("/api/v3/Customer/VerifyMobile",e)}createSupplierByCustomerID(t){let e={CustomerID:t};return this.httpService.post("/api/Contact/CreateSupplierFromCustomer",e)}deleteCustomer(t){return this.httpService.post("/api/Contact/DeleteContact",{ID:t})}updateImage(t,e){return this.httpService.post("/api/Contact/UpdateContactImageURL",{ID:t,ImageURL:e})}mergeCustomer(t,e){let o={mergeTarget:t,deleted:e};return this.httpService.put(K.MergeCustomer,o)}static \u0275fac=function(e){return new(e||i)(R(P))};static \u0275prov=O({token:i,factory:i.\u0275fac})};var Ce=(i,t)=>({width:i,height:t});function ye(i,t){if(i&1){let e=_();n(0,"div",2),u("click",function(){h(e);let l=d();return C(l.disabled()?null:l.openUploadDialog())}),n(1,"div",3)(2,"div",4),w(3,"i",5),n(4,"div",6),p(5),a()()()()}if(i&2){let e=d();r(3),B(e.iconClass()),r(2),x(e.label())}}function be(i,t){if(i&1){let e=_();n(0,"button",9),u("click",function(l){h(e);let c=d(2);return C(c.onRemove(l))}),w(1,"i",10),a()}}function _e(i,t){if(i&1){let e=_();n(0,"img",7),u("click",function(l){h(e);let c=d();return C(c.onZoom(l))}),a(),m(1,be,2,0,"button",8)}if(i&2){let e=d();f("src",e.imageUrl(),F),r(),g(e.disabled()?-1:1)}}var pe=class i{dialog=D(oe);bigPicture=D(ne);image=s(null);iconClass=s("fa-solid fa-user-plus");width=s("100%");height=s("88px");cloudinaryFolder=s("");disabled=s(!1);label=s("Upload photo");imageChange=W();imageUrl=Z(()=>{let t=this.image();return t??t?.Thumbnail??t?.ImageURLClient??t?.url??null});openUploadDialog(){if(this.disabled())return;this.dialog.open(ae,{data:{currentProductImagesLength:this.image()?1:0,CloudinaryFolder:this.cloudinaryFolder(),maxNumberOfFiles:1}}).afterClosed().subscribe(e=>{e?.length&&this.imageChange.emit(e[0])})}onRemove(t){t.stopPropagation(),this.imageChange.emit(null)}onZoom(t){let e=this.imageUrl();e&&this.bigPicture.openBiggerPicture(t,e)}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=b({type:i,selectors:[["POS-photo-image-uploader"]],hostVars:8,hostBindings:function(e,o){e&2&&H("display","block")("width",o.width())("height",o.height()??"auto")("aspect-ratio",o.height()?"unset":"1")},inputs:{image:[1,"image"],iconClass:[1,"iconClass"],width:[1,"width"],height:[1,"height"],cloudinaryFolder:[1,"cloudinaryFolder"],disabled:[1,"disabled"],label:[1,"label"]},outputs:{imageChange:"imageChange"},decls:3,vars:10,consts:[[1,"uploader-wrapper",3,"ngStyle"],[1,"empty-state"],[1,"empty-state",3,"click"],[1,"d-flex","justify-content-center","align-items-center"],[1,"d-flex","flex-column","align-items-center","gap-4"],[1,"upload-icon","fa-xl","mb-3"],[1,"upload-label","text-center"],["matTooltip","Click to zoom","matTooltipPosition","above","alt","Uploaded photo",1,"preview-img",3,"click","src"],["type","button",1,"delete-btn"],["type","button",1,"delete-btn",3,"click"],[1,"fa","fa-xmark",2,"font-size","8px"]],template:function(e,o){e&1&&(n(0,"div",0),m(1,ye,6,3,"div",1),m(2,_e,2,2),a()),e&2&&(v("disabled",o.disabled())("has-image",!!o.imageUrl()),f("ngStyle",z(7,Ce,o.width(),o.height())),r(),g(o.imageUrl()?-1:1),r(),g(o.imageUrl()?2:-1))},dependencies:[M,$,ee,Y],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:block}.uploader-wrapper[_ngcontent-%COMP%]{position:relative;overflow:hidden;width:100%;border:1.5px dashed #d1d5db;border-radius:8px;background-color:#fafafa;transition:border-color .2s ease,background-color .2s ease;cursor:pointer}.uploader-wrapper[_ngcontent-%COMP%]:hover:not(.disabled){border-color:#6c757d;background-color:#f0f0f0}.uploader-wrapper.disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.5}.uploader-wrapper.has-image[_ngcontent-%COMP%]{border-style:solid;border-color:#dee2e6;background-color:#fff;cursor:default}.empty-state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:6px;padding:10px;color:#aaa;transition:color .2s ease}.empty-state[_ngcontent-%COMP%] .upload-label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;pointer-events:none}.uploader-wrapper[_ngcontent-%COMP%]:hover:not(.disabled) .empty-state[_ngcontent-%COMP%]{color:#6c757d}.preview-img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:contain;display:block;cursor:pointer}.delete-btn[_ngcontent-%COMP%]{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;border:none;background-color:#dc3545;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.85rem;cursor:pointer;opacity:0;transition:opacity .2s ease,transform .15s ease;z-index:2;padding:0}.delete-btn[_ngcontent-%COMP%]:hover{background-color:#c82333;transform:scale(1.1)}.uploader-wrapper[_ngcontent-%COMP%]:hover .delete-btn[_ngcontent-%COMP%]{opacity:1}'],changeDetection:0})};function ve(i,t){if(i&1&&(n(0,"tr")(1,"td",5),p(2),S(3,"date"),a(),n(4,"td",6),p(5),S(6,"number"),a(),n(7,"td",6),p(8),a()()),i&2){let e=t.$implicit;r(2),I(" ",G(3,5,e.ExpiryDate,"dd MMM yyyy")," "),r(3),x(A(6,8,e.Remaining)),r(2),v("text-danger",e.daysTo<=30),r(),I(" ",e.daysTo," days ")}}function xe(i,t){if(i&1&&(n(0,"div",2)(1,"table",3)(2,"thead",4)(3,"tr")(4,"th",5),p(5,"Date"),a(),n(6,"th",6),p(7,"Point"),a(),n(8,"th",6),p(9,"Days To"),a()()(),n(10,"tbody"),V(11,ve,9,10,"tr",null,N),a()()()),i&2){let e=d();r(11),j(e.points)}}function Me(i,t){if(i&1&&(n(0,"h5"),p(1),a()),i&2){let e=d();r(),L(" ",e.data.name," ",e.doesHavePoint?"has no upcoming point that will expire.":"does not have a point!"," ")}}var de=class i{constructor(t,e,o){this.dialogRef=t;this.data=e;this.config.title="Upcoming Point Expiry",this.config.customWidth="500px",this.config.cancelText="Close",this.config.hideOk=!0;let l=e.customerID;e.name&&(this.config.title=e.name+" "+this.config.title),this.doesHavePoint=e.doesHavePoint,o.post("/API/Loyalty/UpcomingPointExpiry",{CustomerID:l}).pipe(k(c=>[...c].map(E=>{let se=new Date,ce=new Date(E.ExpiryDate),me=Math.abs(ce-se),ge=Math.ceil(me/(1e3*60*60*24));return U(T({},E),{daysTo:ge})}))).subscribe(c=>this.points=c)}config=new Q;points;doesHavePoint;static \u0275fac=function(e){return new(e||i)(y(te),y(ie),y(P))};static \u0275cmp=b({type:i,selectors:[["POS-modal-expiry"]],decls:5,vars:2,consts:[[3,"onOk","onCancel","onClose","config"],[1,"container-fluid"],[1,"table-responsive",2,"max-height","300px"],["id","tableGrid",1,"table","border-bottom"],[1,"thead-light"],[1,"text-start"],[1,"text-end"]],template:function(e,o){e&1&&(n(0,"modal-material",0),u("onOk",function(){return o.dialogRef.close()})("onCancel",function(){return o.dialogRef.close()})("onClose",function(){return o.dialogRef.close()}),n(1,"content")(2,"div",1),m(3,xe,13,0,"div",2)(4,Me,2,2,"h5"),a()()()),e&2&&(f("config",o.config),r(3),g(o.points!=null&&o.points.length?3:4))},dependencies:[M,X,J,q],encapsulation:2})};export{re as a,pe as b,de as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as jt}from"./chunk-HMY7DJXX.js";import{c as zt}from"./chunk-HMNIVGWF.js";import{a as N}from"./chunk-DQ5NHPD2.js";import{q as $t}from"./chunk-FWVQ6CFL.js";import{G as Ut,Md as Bt,P as xt,_ as Ft,ca as Vt,ha as Ht,k as Mt,la as ce,m as xe,r as Fe,za as Wt}from"./chunk-KYVLS64M.js";import{a as g,b as O,e as ae,i as V,j as a}from"./chunk-KMHZKFQS.js";var qt=()=>{};var Kt=function(n){let e=[],t=0;for(let r=0;r<n.length;r++){let i=n.charCodeAt(r);i<128?e[t++]=i:i<2048?(e[t++]=i>>6|192,e[t++]=i&63|128):(i&64512)===55296&&r+1<n.length&&(n.charCodeAt(r+1)&64512)===56320?(i=65536+((i&1023)<<10)+(n.charCodeAt(++r)&1023),e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128)}return e},yr=function(n){let e=[],t=0,r=0;for(;t<n.length;){let i=n[t++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){let s=n[t++];e[r++]=String.fromCharCode((i&31)<<6|s&63)}else if(i>239&&i<365){let s=n[t++],o=n[t++],c=n[t++],u=((i&7)<<18|(s&63)<<12|(o&63)<<6|c&63)-65536;e[r++]=String.fromCharCode(55296+(u>>10)),e[r++]=String.fromCharCode(56320+(u&1023))}else{let s=n[t++],o=n[t++];e[r++]=String.fromCharCode((i&15)<<12|(s&63)<<6|o&63)}}return e.join("")},Jt={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:typeof atob=="function",encodeByteArray(n,e){if(!Array.isArray(n))throw Error("encodeByteArray takes an array as a parameter");this.init_();let t=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i<n.length;i+=3){let s=n[i],o=i+1<n.length,c=o?n[i+1]:0,u=i+2<n.length,l=u?n[i+2]:0,h=s>>2,p=(s&3)<<4|c>>4,m=(c&15)<<2|l>>6,I=l&63;u||(I=64,o||(m=64)),r.push(t[h],t[p],t[m],t[I])}return r.join("")},encodeString(n,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(n):this.encodeByteArray(Kt(n),e)},decodeString(n,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(n):yr(this.decodeStringToByteArray(n,e))},decodeStringToByteArray(n,e){this.init_();let t=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i<n.length;){let s=t[n.charAt(i++)],c=i<n.length?t[n.charAt(i)]:0;++i;let l=i<n.length?t[n.charAt(i)]:64;++i;let p=i<n.length?t[n.charAt(i)]:64;if(++i,s==null||c==null||l==null||p==null)throw new He;let m=s<<2|c>>4;if(r.push(m),l!==64){let I=c<<4&240|l>>2;if(r.push(I),p!==64){let F=l<<6&192|p;r.push(F)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let n=0;n<this.ENCODED_VALS.length;n++)this.byteToCharMap_[n]=this.ENCODED_VALS.charAt(n),this.charToByteMap_[this.byteToCharMap_[n]]=n,this.byteToCharMapWebSafe_[n]=this.ENCODED_VALS_WEBSAFE.charAt(n),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[n]]=n,n>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(n)]=n,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(n)]=n)}}},He=class extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}},Tr=function(n){let e=Kt(n);return Jt.encodeByteArray(e,!0)},Be=function(n){return Tr(n).replace(/\./g,"")},le=function(n){try{return Jt.decodeString(n,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function wr(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}var vr=()=>wr().__FIREBASE_DEFAULTS__,br=()=>{if(typeof process>"u"||typeof process.env>"u")return;let n=process.env.__FIREBASE_DEFAULTS__;if(n)return JSON.parse(n)},Ar=()=>{if(typeof document>"u")return;let n;try{n=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}let e=n&&le(n[1]);return e&&JSON.parse(e)},$e=()=>{try{return qt()||vr()||br()||Ar()}catch(n){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${n}`);return}},Yt=n=>$e()?.emulatorHosts?.[n];var ze=()=>$e()?.config,je=n=>$e()?.[`_${n}`];var ue=class{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),typeof e=="function"&&(this.promise.catch(()=>{}),e.length===1?e(t):e(t,r))}}};function _(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function Xt(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(_())}function Qt(){return typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"}function Zt(){let n=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof n=="object"&&n.id!==void 0}function en(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function tn(){let n=_();return n.indexOf("MSIE ")>=0||n.indexOf("Trident/")>=0}function nn(){try{return typeof indexedDB=="object"}catch(n){return!1}}function rn(){return new Promise((n,e)=>{try{let t=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),t||self.indexedDB.deleteDatabase(r),n(!0)},i.onupgradeneeded=()=>{t=!1},i.onerror=()=>{e(i.error?.message||"")}}catch(t){e(t)}})}var Sr="FirebaseError",E=class n extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name=Sr,Object.setPrototypeOf(this,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,S.prototype.create)}},S=class{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){let r=t[0]||{},i=`${this.service}/${e}`,s=this.errors[e],o=s?Rr(s,r):"Error",c=`${this.serviceName}: ${o} (${i}).`;return new E(i,c,r)}};function Rr(n,e){return n.replace(Pr,(t,r)=>{let i=e[r];return i!=null?String(i):`<${r}?>`})}var Pr=/\{\$([^}]+)}/g;function sn(n){for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e))return!1;return!0}function D(n,e){if(n===e)return!0;let t=Object.keys(n),r=Object.keys(e);for(let i of t){if(!r.includes(i))return!1;let s=n[i],o=e[i];if(Gt(s)&&Gt(o)){if(!D(s,o))return!1}else if(s!==o)return!1}for(let i of r)if(!t.includes(i))return!1;return!0}function Gt(n){return n!==null&&typeof n=="object"}function j(n){let e=[];for(let[t,r]of Object.entries(n))Array.isArray(r)?r.forEach(i=>{e.push(encodeURIComponent(t)+"="+encodeURIComponent(i))}):e.push(encodeURIComponent(t)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}function on(n,e){let t=new We(n,e);return t.subscribe.bind(t)}var We=class{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(r=>{this.error(r)})}next(e){this.forEachObserver(t=>{t.next(e)})}error(e){this.forEachObserver(t=>{t.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let i;if(e===void 0&&t===void 0&&r===void 0)throw new Error("Missing Observer.");kr(e,["next","error","complete"])?i=e:i={next:e,error:t,complete:r},i.next===void 0&&(i.next=Ve),i.error===void 0&&(i.error=Ve),i.complete===void 0&&(i.complete=Ve);let s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch(o){}}),this.observers.push(i),s}unsubscribeOne(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then(()=>{if(this.observers!==void 0&&this.observers[e]!==void 0)try{t(this.observers[e])}catch(r){typeof console<"u"&&console.error&&console.error(r)}})}close(e){this.finalized||(this.finalized=!0,e!==void 0&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}};function kr(n,e){if(typeof n!="object"||n===null)return!1;for(let t of e)if(t in n&&typeof n[t]=="function")return!0;return!1}function Ve(){}var Eo=14400*1e3;function H(n){return n&&n._delegate?n._delegate:n}function de(n){try{return(n.startsWith("http://")||n.startsWith("https://")?new URL(n).hostname:n).endsWith(".cloudworkstations.dev")}catch(e){return!1}}function an(n){return a(this,null,function*(){return(yield fetch(n,{credentials:"include"})).ok})}var w=class{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}};var W="[DEFAULT]";var qe=class{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){let r=new ue;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{let i=this.getOrInitializeService({instanceIdentifier:t});i&&r.resolve(i)}catch(i){}}return this.instancesDeferred.get(t).promise}getImmediate(e){let t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(this.isInitialized(t)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:t})}catch(i){if(r)return null;throw i}else{if(r)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(Or(e))try{this.getOrInitializeService({instanceIdentifier:W})}catch(t){}for(let[t,r]of this.instancesDeferred.entries()){let i=this.normalizeInstanceIdentifier(t);try{let s=this.getOrInitializeService({instanceIdentifier:i});r.resolve(s)}catch(s){}}}}clearInstance(e=W){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}delete(){return a(this,null,function*(){let e=Array.from(this.instances.values());yield Promise.all([...e.filter(t=>"INTERNAL"in t).map(t=>t.INTERNAL.delete()),...e.filter(t=>"_delete"in t).map(t=>t._delete())])})}isComponentSet(){return this.component!=null}isInitialized(e=W){return this.instances.has(e)}getOptions(e=W){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let i=this.getOrInitializeService({instanceIdentifier:r,options:t});for(let[s,o]of this.instancesDeferred.entries()){let c=this.normalizeInstanceIdentifier(s);r===c&&o.resolve(i)}return i}onInit(e,t){let r=this.normalizeInstanceIdentifier(t),i=this.onInitCallbacks.get(r)??new Set;i.add(e),this.onInitCallbacks.set(r,i);let s=this.instances.get(r);return s&&e(s,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){let r=this.onInitCallbacks.get(t);if(r)for(let i of r)try{i(e,t)}catch(s){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:Cr(e),options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(i){}return r||null}normalizeInstanceIdentifier(e=W){return this.component?this.component.multipleInstances?e:W:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}};function Cr(n){return n===W?void 0:n}function Or(n){return n.instantiationMode==="EAGER"}var he=class{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let t=new qe(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}};var Nr=[],f=(function(n){return n[n.DEBUG=0]="DEBUG",n[n.VERBOSE=1]="VERBOSE",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.SILENT=5]="SILENT",n})(f||{}),Dr={debug:f.DEBUG,verbose:f.VERBOSE,info:f.INFO,warn:f.WARN,error:f.ERROR,silent:f.SILENT},Lr=f.INFO,Mr={[f.DEBUG]:"log",[f.VERBOSE]:"log",[f.INFO]:"info",[f.WARN]:"warn",[f.ERROR]:"error"},Ur=(n,e,...t)=>{if(e<n.logLevel)return;let r=new Date().toISOString(),i=Mr[e];if(i)console[i](`[${r}] ${n.name}:`,...t);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)},q=class{constructor(e){this.name=e,this._logLevel=Lr,this._logHandler=Ur,this._userLogHandler=null,Nr.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in f))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?Dr[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,f.DEBUG,...e),this._logHandler(this,f.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,f.VERBOSE,...e),this._logHandler(this,f.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,f.INFO,...e),this._logHandler(this,f.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,f.WARN,...e),this._logHandler(this,f.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,f.ERROR,...e),this._logHandler(this,f.ERROR,...e)}};var xr=(n,e)=>e.some(t=>n instanceof t),cn,un;function Fr(){return cn||(cn=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Vr(){return un||(un=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var ln=new WeakMap,Ke=new WeakMap,dn=new WeakMap,Ge=new WeakMap,Ye=new WeakMap;function Hr(n){let e=new Promise((t,r)=>{let i=()=>{n.removeEventListener("success",s),n.removeEventListener("error",o)},s=()=>{t(v(n.result)),i()},o=()=>{r(n.error),i()};n.addEventListener("success",s),n.addEventListener("error",o)});return e.then(t=>{t instanceof IDBCursor&&ln.set(t,n)}).catch(()=>{}),Ye.set(e,n),e}function Wr(n){if(Ke.has(n))return;let e=new Promise((t,r)=>{let i=()=>{n.removeEventListener("complete",s),n.removeEventListener("error",o),n.removeEventListener("abort",o)},s=()=>{t(),i()},o=()=>{r(n.error||new DOMException("AbortError","AbortError")),i()};n.addEventListener("complete",s),n.addEventListener("error",o),n.addEventListener("abort",o)});Ke.set(n,e)}var Je={get(n,e,t){if(n instanceof IDBTransaction){if(e==="done")return Ke.get(n);if(e==="objectStoreNames")return n.objectStoreNames||dn.get(n);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return v(n[e])},set(n,e,t){return n[e]=t,!0},has(n,e){return n instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in n}};function hn(n){Je=n(Je)}function Br(n){return n===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){let r=n.call(fe(this),e,...t);return dn.set(r,e.sort?e.sort():[e]),v(r)}:Vr().includes(n)?function(...e){return n.apply(fe(this),e),v(ln.get(this))}:function(...e){return v(n.apply(fe(this),e))}}function $r(n){return typeof n=="function"?Br(n):(n instanceof IDBTransaction&&Wr(n),xr(n,Fr())?new Proxy(n,Je):n)}function v(n){if(n instanceof IDBRequest)return Hr(n);if(Ge.has(n))return Ge.get(n);let e=$r(n);return e!==n&&(Ge.set(n,e),Ye.set(e,n)),e}var fe=n=>Ye.get(n);function pn(n,e,{blocked:t,upgrade:r,blocking:i,terminated:s}={}){let o=indexedDB.open(n,e),c=v(o);return r&&o.addEventListener("upgradeneeded",u=>{r(v(o.result),u.oldVersion,u.newVersion,v(o.transaction),u)}),t&&o.addEventListener("blocked",u=>t(u.oldVersion,u.newVersion,u)),c.then(u=>{s&&u.addEventListener("close",()=>s()),i&&u.addEventListener("versionchange",l=>i(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}var zr=["get","getKey","getAll","getAllKeys","count"],jr=["put","add","delete","clear"],Xe=new Map;function fn(n,e){if(!(n instanceof IDBDatabase&&!(e in n)&&typeof e=="string"))return;if(Xe.get(e))return Xe.get(e);let t=e.replace(/FromIndex$/,""),r=e!==t,i=jr.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(i||zr.includes(t)))return;let s=function(o,...c){return a(this,null,function*(){let u=this.transaction(o,i?"readwrite":"readonly"),l=u.store;return r&&(l=l.index(c.shift())),(yield Promise.all([l[t](...c),i&&u.done]))[0]})};return Xe.set(e,s),s}hn(n=>O(g({},n),{get:(e,t,r)=>fn(e,t)||n.get(e,t,r),has:(e,t)=>!!fn(e,t)||n.has(e,t)}));var Ze=class{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(t=>{if(qr(t)){let r=t.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(t=>t).join(" ")}};function qr(n){return n.getComponent()?.type==="VERSION"}var et="@firebase/app",mn="0.14.13";var R=new q("@firebase/app"),Gr="@firebase/app-compat",Kr="@firebase/analytics-compat",Jr="@firebase/analytics",Yr="@firebase/app-check-compat",Xr="@firebase/app-check",Qr="@firebase/auth",Zr="@firebase/auth-compat",ei="@firebase/database",ti="@firebase/data-connect",ni="@firebase/database-compat",ri="@firebase/functions",ii="@firebase/functions-compat",si="@firebase/installations",oi="@firebase/installations-compat",ai="@firebase/messaging",ci="@firebase/messaging-compat",ui="@firebase/performance",li="@firebase/performance-compat",di="@firebase/remote-config",hi="@firebase/remote-config-compat",fi="@firebase/storage",pi="@firebase/storage-compat",mi="@firebase/firestore",gi="@firebase/ai",_i="@firebase/firestore-compat",Ii="firebase",Ei="12.14.0";var tt="[DEFAULT]",yi={[et]:"fire-core",[Gr]:"fire-core-compat",[Jr]:"fire-analytics",[Kr]:"fire-analytics-compat",[Xr]:"fire-app-check",[Yr]:"fire-app-check-compat",[Qr]:"fire-auth",[Zr]:"fire-auth-compat",[ei]:"fire-rtdb",[ti]:"fire-data-connect",[ni]:"fire-rtdb-compat",[ri]:"fire-fn",[ii]:"fire-fn-compat",[si]:"fire-iid",[oi]:"fire-iid-compat",[ai]:"fire-fcm",[ci]:"fire-fcm-compat",[ui]:"fire-perf",[li]:"fire-perf-compat",[di]:"fire-rc",[hi]:"fire-rc-compat",[fi]:"fire-gcs",[pi]:"fire-gcs-compat",[mi]:"fire-fst",[_i]:"fire-fst-compat",[gi]:"fire-vertex","fire-js":"fire-js",[Ii]:"fire-js-all"};var X=new Map,Ti=new Map,nt=new Map;function gn(n,e){try{n.container.addComponent(e)}catch(t){R.debug(`Component ${e.name} failed to register with FirebaseApp ${n.name}`,t)}}function G(n){let e=n.name;if(nt.has(e))return R.debug(`There were multiple attempts to register component ${e}.`),!1;nt.set(e,n);for(let t of X.values())gn(t,n);for(let t of Ti.values())gn(t,n);return!0}function ot(n,e){let t=n.container.getProvider("heartbeat").getImmediate({optional:!0});return t&&t.triggerHeartbeat(),n.container.getProvider(e)}function y(n){return n==null?!1:n.settings!==void 0}var wi={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},L=new S("app","Firebase",wi);var rt=class{constructor(e,t,r){this._isDeleted=!1,this._options=g({},e),this._config=g({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new w("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw L.create("app-deleted",{appName:this._name})}};var K=Ei;function at(n,e={}){let t=n;typeof e!="object"&&(e={name:e});let r=g({name:tt,automaticDataCollectionEnabled:!0},e),i=r.name;if(typeof i!="string"||!i)throw L.create("bad-app-name",{appName:String(i)});if(t||(t=ze()),!t)throw L.create("no-options");let s=X.get(i);if(s){if(D(t,s.options)&&D(r,s.config))return s;throw L.create("duplicate-app",{appName:i})}let o=new he(i);for(let u of nt.values())o.addComponent(u);let c=new rt(t,r,o);return X.set(i,c),c}function pe(n=tt){let e=X.get(n);if(!e&&n===tt&&ze())return at();if(!e)throw L.create("no-app",{appName:n});return e}function yn(){return Array.from(X.values())}function M(n,e,t){let r=yi[n]??n;t&&(r+=`-${t}`);let i=r.match(/\s|\//),s=e.match(/\s|\//);if(i||s){let o=[`Unable to register library "${r}" with version "${e}":`];i&&o.push(`library name "${r}" contains illegal characters (whitespace or "/")`),i&&s&&o.push("and"),s&&o.push(`version name "${e}" contains illegal characters (whitespace or "/")`),R.warn(o.join(" "));return}G(new w(`${r}-version`,()=>({library:r,version:e}),"VERSION"))}var vi="firebase-heartbeat-database",bi=1,Q="firebase-heartbeat-store",Qe=null;function Tn(){return Qe||(Qe=pn(vi,bi,{upgrade:(n,e)=>{switch(e){case 0:try{n.createObjectStore(Q)}catch(t){console.warn(t)}}}}).catch(n=>{throw L.create("idb-open",{originalErrorMessage:n.message})})),Qe}function Ai(n){return a(this,null,function*(){try{let t=(yield Tn()).transaction(Q),r=yield t.objectStore(Q).get(wn(n));return yield t.done,r}catch(e){if(e instanceof E)R.warn(e.message);else{let t=L.create("idb-get",{originalErrorMessage:e?.message});R.warn(t.message)}}})}function _n(n,e){return a(this,null,function*(){try{let r=(yield Tn()).transaction(Q,"readwrite");yield r.objectStore(Q).put(e,wn(n)),yield r.done}catch(t){if(t instanceof E)R.warn(t.message);else{let r=L.create("idb-set",{originalErrorMessage:t?.message});R.warn(r.message)}}})}function wn(n){return`${n.name}!${n.options.appId}`}var Si=1024,Ri=30,it=class{constructor(e){this.container=e,this._heartbeatsCache=null;let t=this.container.getProvider("app").getImmediate();this._storage=new st(t),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}triggerHeartbeat(){return a(this,null,function*(){try{let t=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),r=In();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=yield this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===r||this._heartbeatsCache.heartbeats.some(i=>i.date===r))return;if(this._heartbeatsCache.heartbeats.push({date:r,agent:t}),this._heartbeatsCache.heartbeats.length>Ri){let i=ki(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(i,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){R.warn(e)}})}getHeartbeatsHeader(){return a(this,null,function*(){try{if(this._heartbeatsCache===null&&(yield this._heartbeatsCachePromise),this._heartbeatsCache?.heartbeats==null||this._heartbeatsCache.heartbeats.length===0)return"";let e=In(),{heartbeatsToSend:t,unsentEntries:r}=Pi(this._heartbeatsCache.heartbeats),i=Be(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,r.length>0?(this._heartbeatsCache.heartbeats=r,yield this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}catch(e){return R.warn(e),""}})}};function In(){return new Date().toISOString().substring(0,10)}function Pi(n,e=Si){let t=[],r=n.slice();for(let i of n){let s=t.find(o=>o.agent===i.agent);if(s){if(s.dates.push(i.date),En(t)>e){s.dates.pop();break}}else if(t.push({agent:i.agent,dates:[i.date]}),En(t)>e){t.pop();break}r=r.slice(1)}return{heartbeatsToSend:t,unsentEntries:r}}var st=class{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}runIndexedDBEnvironmentCheck(){return a(this,null,function*(){return nn()?rn().then(()=>!0).catch(()=>!1):!1})}read(){return a(this,null,function*(){if(yield this._canUseIndexedDBPromise){let t=yield Ai(this.app);return t?.heartbeats?t:{heartbeats:[]}}else return{heartbeats:[]}})}overwrite(e){return a(this,null,function*(){if(yield this._canUseIndexedDBPromise){let r=yield this.read();return _n(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return})}add(e){return a(this,null,function*(){if(yield this._canUseIndexedDBPromise){let r=yield this.read();return _n(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}else return})}};function En(n){return Be(JSON.stringify({version:2,heartbeats:n})).length}function ki(n){if(n.length===0)return-1;let e=0,t=n[0].date;for(let r=1;r<n.length;r++)n[r].date<t&&(t=n[r].date,e=r);return e}function Ci(n){G(new w("platform-logger",e=>new Ze(e),"PRIVATE")),G(new w("heartbeat",e=>new it(e),"PRIVATE")),M(et,mn,n),M(et,mn,"esm2020"),M("fire-js","")}Ci("");function xn(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}var Fn=xn,Vn=new S("auth","Firebase",xn());var ye=new q("@firebase/auth");function Oi(n,...e){ye.logLevel<=f.WARN&&ye.warn(`Auth (${K}): ${n}`,...e)}function ge(n,...e){ye.logLevel<=f.ERROR&&ye.error(`Auth (${K}): ${n}`,...e)}function A(n,...e){throw bt(n,...e)}function T(n,...e){return bt(n,...e)}function vt(n,e,t){let r=O(g({},Fn()),{[e]:t});return new S("auth","Firebase",r).create(e,{appName:n.name})}function B(n){return vt(n,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function Ni(n,e,t){let r=t;if(!(e instanceof r))throw r.name!==e.constructor.name&&A(n,"argument-error"),vt(n,"argument-error",`Type of ${e.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function bt(n,...e){if(typeof n!="string"){let t=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=n.name),n._errorFactory.create(t,...r)}return Vn.create(n,...e)}function d(n,e,...t){if(!n)throw bt(e,...t)}function P(n){let e="INTERNAL ASSERTION FAILED: "+n;throw ge(e),new Error(e)}function C(n,e){n||P(e)}function lt(){return typeof self<"u"&&self.location?.href||""}function Di(){return vn()==="http:"||vn()==="https:"}function vn(){return typeof self<"u"&&self.location?.protocol||null}function Li(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(Di()||Zt()||"connection"in navigator)?navigator.onLine:!0}function Mi(){if(typeof navigator>"u")return null;let n=navigator;return n.languages&&n.languages[0]||n.language||null}var $=class{constructor(e,t){this.shortDelay=e,this.longDelay=t,C(t>e,"Short delay should be less than long delay!"),this.isMobile=Xt()||en()}get(){return Li()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function At(n,e){C(n.emulator,"Emulator should always be set here");let{url:t}=n.emulator;return e?`${t}${e.startsWith("/")?e.slice(1):e}`:t}var Te=class{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){if(this.fetchImpl)return this.fetchImpl;if(typeof self<"u"&&"fetch"in self)return self.fetch;if(typeof globalThis<"u"&&globalThis.fetch)return globalThis.fetch;if(typeof fetch<"u")return fetch;P("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){if(this.headersImpl)return this.headersImpl;if(typeof self<"u"&&"Headers"in self)return self.Headers;if(typeof globalThis<"u"&&globalThis.Headers)return globalThis.Headers;if(typeof Headers<"u")return Headers;P("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){if(this.responseImpl)return this.responseImpl;if(typeof self<"u"&&"Response"in self)return self.Response;if(typeof globalThis<"u"&&globalThis.Response)return globalThis.Response;if(typeof Response<"u")return Response;P("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var Ui={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"};var xi=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],Fi=new $(3e4,6e4);function St(n,e){return n.tenantId&&!e.tenantId?O(g({},e),{tenantId:n.tenantId}):e}function Y(s,o,c,u){return a(this,arguments,function*(n,e,t,r,i={}){return Hn(n,i,()=>a(null,null,function*(){let l={},h={};r&&(e==="GET"?h=r:l={body:JSON.stringify(r)});let p=j(g({key:n.config.apiKey},h)).slice(1),m=yield n._getAdditionalHeaders();m["Content-Type"]="application/json",n.languageCode&&(m["X-Firebase-Locale"]=n.languageCode);let I=g({method:e,headers:m},l);return Qt()||(I.referrerPolicy="no-referrer"),n.emulatorConfig&&de(n.emulatorConfig.host)&&(I.credentials="include"),Te.fetch()(yield Wn(n,n.config.apiHost,t,p),I)}))})}function Hn(n,e,t){return a(this,null,function*(){n._canInitEmulator=!1;let r=g(g({},Ui),e);try{let i=new dt(n),s=yield Promise.race([t(),i.promise]);i.clearNetworkTimeout();let o=yield s.json();if("needConfirmation"in o)throw me(n,"account-exists-with-different-credential",o);if(s.ok&&!("errorMessage"in o))return o;{let c=s.ok?o.errorMessage:o.error.message,[u,l]=c.split(" : ");if(u==="FEDERATED_USER_ID_ALREADY_LINKED")throw me(n,"credential-already-in-use",o);if(u==="EMAIL_EXISTS")throw me(n,"email-already-in-use",o);if(u==="USER_DISABLED")throw me(n,"user-disabled",o);let h=r[u]||u.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw vt(n,h,l);A(n,h)}}catch(i){if(i instanceof E)throw i;A(n,"network-request-failed",{message:String(i)})}})}function Vi(s,o,c,u){return a(this,arguments,function*(n,e,t,r,i={}){let l=yield Y(n,e,t,r,i);return"mfaPendingCredential"in l&&A(n,"multi-factor-auth-required",{_serverResponse:l}),l})}function Wn(n,e,t,r){return a(this,null,function*(){let i=`${e}${t}?${r}`,s=n,o=s.config.emulator?At(n.config,i):`${n.config.apiScheme}://${i}`;return xi.includes(t)&&(yield s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o})}var dt=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((t,r)=>{this.timer=setTimeout(()=>r(T(this.auth,"network-request-failed")),Fi.get())})}};function me(n,e,t){let r={appName:n.name};t.email&&(r.email=t.email),t.phoneNumber&&(r.phoneNumber=t.phoneNumber);let i=T(n,e,r);return i.customData._tokenResponse=t,i}function Hi(n,e){return a(this,null,function*(){return Y(n,"POST","/v1/accounts:delete",e)})}function we(n,e){return a(this,null,function*(){return Y(n,"POST","/v1/accounts:lookup",e)})}function Z(n){if(n)try{let e=new Date(Number(n));if(!isNaN(e.getTime()))return e.toUTCString()}catch(e){}}function Bn(n,e=!1){return a(this,null,function*(){let t=H(n),r=yield t.getIdToken(e),i=Rt(r);d(i&&i.exp&&i.auth_time&&i.iat,t.auth,"internal-error");let s=typeof i.firebase=="object"?i.firebase:void 0,o=s?.sign_in_provider;return{claims:i,token:r,authTime:Z(ct(i.auth_time)),issuedAtTime:Z(ct(i.iat)),expirationTime:Z(ct(i.exp)),signInProvider:o||null,signInSecondFactor:s?.sign_in_second_factor||null}})}function ct(n){return Number(n)*1e3}function Rt(n){let[e,t,r]=n.split(".");if(e===void 0||t===void 0||r===void 0)return ge("JWT malformed, contained fewer than 3 sections"),null;try{let i=le(t);return i?JSON.parse(i):(ge("Failed to decode base64 JWT payload"),null)}catch(i){return ge("Caught error parsing JWT payload as JSON",i?.toString()),null}}function bn(n){let e=Rt(n);return d(e,"internal-error"),d(typeof e.exp<"u","internal-error"),d(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}function te(n,e,t=!1){return a(this,null,function*(){if(t)return e;try{return yield e}catch(r){throw r instanceof E&&Wi(r)&&n.auth.currentUser===n&&(yield n.auth.signOut()),r}})}function Wi({code:n}){return n==="auth/user-disabled"||n==="auth/user-token-expired"}var ht=class{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,this.timerId!==null&&clearTimeout(this.timerId))}getInterval(e){if(e){let t=this.errorBackoff;return this.errorBackoff=Math.min(this.errorBackoff*2,96e4),t}else{this.errorBackoff=3e4;let r=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5;return Math.max(0,r)}}schedule(e=!1){if(!this.isRunning)return;let t=this.getInterval(e);this.timerId=setTimeout(()=>a(this,null,function*(){yield this.iteration()}),t)}iteration(){return a(this,null,function*(){try{yield this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()})}};var ne=class{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Z(this.lastLoginAt),this.creationTime=Z(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};function ve(n){return a(this,null,function*(){let e=n.auth,t=yield n.getIdToken(),r=yield te(n,we(e,{idToken:t}));d(r?.users.length,e,"internal-error");let i=r.users[0];n._notifyReloadListener(i);let s=i.providerUserInfo?.length?zn(i.providerUserInfo):[],o=Bi(n.providerData,s),c=n.isAnonymous,u=!(n.email&&i.passwordHash)&&!o?.length,l=c?u:!1,h={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:o,metadata:new ne(i.createdAt,i.lastLoginAt),isAnonymous:l};Object.assign(n,h)})}function $n(n){return a(this,null,function*(){let e=H(n);yield ve(e),yield e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)})}function Bi(n,e){return[...n.filter(r=>!e.some(i=>i.providerId===r.providerId)),...e]}function zn(n){return n.map(r=>{var i=r,{providerId:e}=i,t=ae(i,["providerId"]);return{providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}})}function $i(n,e){return a(this,null,function*(){let t=yield Hn(n,{},()=>a(null,null,function*(){let r=j({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:i,apiKey:s}=n.config,o=yield Wn(n,i,"/v1/token",`key=${s}`),c=yield n._getAdditionalHeaders();c["Content-Type"]="application/x-www-form-urlencoded";let u={method:"POST",headers:c,body:r};return n.emulatorConfig&&de(n.emulatorConfig.host)&&(u.credentials="include"),Te.fetch()(o,u)}));return{accessToken:t.access_token,expiresIn:t.expires_in,refreshToken:t.refresh_token}})}function zi(n,e){return a(this,null,function*(){return Y(n,"POST","/v2/accounts:revokeToken",St(n,e))})}var ee=class n{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){d(e.idToken,"internal-error"),d(typeof e.idToken<"u","internal-error"),d(typeof e.refreshToken<"u","internal-error");let t="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):bn(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){d(e.length!==0,"internal-error");let t=bn(e);this.updateTokensAndExpiration(e,null,t)}getToken(e,t=!1){return a(this,null,function*(){return!t&&this.accessToken&&!this.isExpired?this.accessToken:(d(this.refreshToken,e,"user-token-expired"),this.refreshToken?(yield this.refresh(e,this.refreshToken),this.accessToken):null)})}clearRefreshToken(){this.refreshToken=null}refresh(e,t){return a(this,null,function*(){let{accessToken:r,refreshToken:i,expiresIn:s}=yield $i(e,t);this.updateTokensAndExpiration(r,i,Number(s))})}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+r*1e3}static fromJSON(e,t){let{refreshToken:r,accessToken:i,expirationTime:s}=t,o=new n;return r&&(d(typeof r=="string","internal-error",{appName:e}),o.refreshToken=r),i&&(d(typeof i=="string","internal-error",{appName:e}),o.accessToken=i),s&&(d(typeof s=="number","internal-error",{appName:e}),o.expirationTime=s),o}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new n,this.toJSON())}_performRefresh(){return P("not implemented")}};function U(n,e){d(typeof n=="string"||typeof n>"u","internal-error",{appName:e})}var x=class n{constructor(s){var o=s,{uid:e,auth:t,stsTokenManager:r}=o,i=ae(o,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new ht(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new ne(i.createdAt||void 0,i.lastLoginAt||void 0)}getIdToken(e){return a(this,null,function*(){let t=yield te(this,this.stsTokenManager.getToken(this.auth,e));return d(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,yield this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t})}getIdTokenResult(e){return Bn(this,e)}reload(){return $n(this)}_assign(e){this!==e&&(d(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(t=>g({},t)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let t=new n(O(g({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){d(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}_updateTokensIfNecessary(e,t=!1){return a(this,null,function*(){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&(yield ve(this)),yield this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)})}delete(){return a(this,null,function*(){if(y(this.auth.app))return Promise.reject(B(this.auth));let e=yield this.getIdToken();return yield te(this,Hi(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()})}toJSON(){return O(g({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>g({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){let r=t.displayName??void 0,i=t.email??void 0,s=t.phoneNumber??void 0,o=t.photoURL??void 0,c=t.tenantId??void 0,u=t._redirectEventId??void 0,l=t.createdAt??void 0,h=t.lastLoginAt??void 0,{uid:p,emailVerified:m,isAnonymous:I,providerData:F,stsTokenManager:Lt}=t;d(p&&Lt,e,"internal-error");let Ir=ee.fromJSON(this.name,Lt);d(typeof p=="string",e,"internal-error"),U(r,e.name),U(i,e.name),d(typeof m=="boolean",e,"internal-error"),d(typeof I=="boolean",e,"internal-error"),U(s,e.name),U(o,e.name),U(c,e.name),U(u,e.name),U(l,e.name),U(h,e.name);let Ue=new n({uid:p,auth:e,email:i,emailVerified:m,displayName:r,isAnonymous:I,photoURL:o,phoneNumber:s,tenantId:c,stsTokenManager:Ir,createdAt:l,lastLoginAt:h});return F&&Array.isArray(F)&&(Ue.providerData=F.map(Er=>g({},Er))),u&&(Ue._redirectEventId=u),Ue}static _fromIdTokenResponse(e,t,r=!1){return a(this,null,function*(){let i=new ee;i.updateFromServerResponse(t);let s=new n({uid:t.localId,auth:e,stsTokenManager:i,isAnonymous:r});return yield ve(s),s})}static _fromGetAccountInfoResponse(e,t,r){return a(this,null,function*(){let i=t.users[0];d(i.localId!==void 0,"internal-error");let s=i.providerUserInfo!==void 0?zn(i.providerUserInfo):[],o=!(i.email&&i.passwordHash)&&!s?.length,c=new ee;c.updateFromIdToken(r);let u=new n({uid:i.localId,auth:e,stsTokenManager:c,isAnonymous:o}),l={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:s,metadata:new ne(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash)&&!s?.length};return Object.assign(u,l),u})}};var An=new Map;function k(n){C(n instanceof Function,"Expected a class definition");let e=An.get(n);return e?(C(e instanceof n,"Instance stored in cache mismatched with class"),e):(e=new n,An.set(n,e),e)}var ji=(()=>{class n{constructor(){this.type="NONE",this.storage={}}_isAvailable(){return a(this,null,function*(){return!0})}_set(t,r){return a(this,null,function*(){this.storage[t]=r})}_get(t){return a(this,null,function*(){let r=this.storage[t];return r===void 0?null:r})}_remove(t){return a(this,null,function*(){delete this.storage[t]})}_addListener(t,r){}_removeListener(t,r){}}return n.type="NONE",n})(),ft=ji;function _e(n,e,t){return`firebase:${n}:${e}:${t}`}var be=class n{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;let{config:i,name:s}=this.auth;this.fullUserKey=_e(this.userKey,i.apiKey,s),this.fullPersistenceKey=_e("persistence",i.apiKey,s),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}getCurrentUser(){return a(this,null,function*(){let e=yield this.persistence._get(this.fullUserKey);if(!e)return null;if(typeof e=="string"){let t=yield we(this.auth,{idToken:e}).catch(()=>{});return t?x._fromGetAccountInfoResponse(this.auth,t,e):null}return x._fromJSON(this.auth,e)})}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}setPersistence(e){return a(this,null,function*(){if(this.persistence===e)return;let t=yield this.getCurrentUser();if(yield this.removeCurrentUser(),this.persistence=e,t)return this.setCurrentUser(t)})}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static create(e,t,r="authUser"){return a(this,null,function*(){if(!t.length)return new n(k(ft),e,r);let i=(yield Promise.all(t.map(l=>a(null,null,function*(){if(yield l._isAvailable())return l})))).filter(l=>l),s=i[0]||k(ft),o=_e(r,e.config.apiKey,e.name),c=null;for(let l of t)try{let h=yield l._get(o);if(h){let p;if(typeof h=="string"){let m=yield we(e,{idToken:h}).catch(()=>{});if(!m)break;p=yield x._fromGetAccountInfoResponse(e,m,h)}else p=x._fromJSON(e,h);l!==s&&(c=p),s=l;break}}catch(h){}let u=i.filter(l=>l._shouldAllowMigration);return!s._shouldAllowMigration||!u.length?new n(s,e,r):(s=u[0],c&&(yield s._set(o,c.toJSON())),yield Promise.all(t.map(l=>a(null,null,function*(){if(l!==s)try{yield l._remove(o)}catch(h){}}))),new n(s,e,r))})}};function Sn(n){let e=n.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(Kn(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(jn(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Yn(e))return"Blackberry";if(Xn(e))return"Webos";if(qn(e))return"Safari";if((e.includes("chrome/")||Gn(e))&&!e.includes("edge/"))return"Chrome";if(Jn(e))return"Android";{let t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,r=n.match(t);if(r?.length===2)return r[1]}return"Other"}function jn(n=_()){return/firefox\//i.test(n)}function qn(n=_()){let e=n.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function Gn(n=_()){return/crios\//i.test(n)}function Kn(n=_()){return/iemobile/i.test(n)}function Jn(n=_()){return/android/i.test(n)}function Yn(n=_()){return/blackberry/i.test(n)}function Xn(n=_()){return/webos/i.test(n)}function Pt(n=_()){return/iphone|ipad|ipod/i.test(n)||/macintosh/i.test(n)&&/mobile/i.test(n)}function qi(n=_()){return Pt(n)&&!!window.navigator?.standalone}function Gi(){return tn()&&document.documentMode===10}function Qn(n=_()){return Pt(n)||Jn(n)||Xn(n)||Yn(n)||/windows phone/i.test(n)||Kn(n)}function Zn(n,e=[]){let t;switch(n){case"Browser":t=Sn(_());break;case"Worker":t=`${Sn(_())}-${n}`;break;default:t=n}let r=e.length?e.join(","):"FirebaseCore-web";return`${t}/JsCore/${K}/${r}`}var pt=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let r=s=>new Promise((o,c)=>{try{let u=e(s);o(u)}catch(u){c(u)}});r.onAbort=t,this.queue.push(r);let i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}runMiddleware(e){return a(this,null,function*(){if(this.auth.currentUser===e)return;let t=[];try{for(let r of this.queue)yield r(e),r.onAbort&&t.push(r.onAbort)}catch(r){t.reverse();for(let i of t)try{i()}catch(s){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:r?.message})}})}};function Ki(t){return a(this,arguments,function*(n,e={}){return Y(n,"GET","/v2/passwordPolicy",St(n,e))})}var Ji=6,mt=class{constructor(e){let t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??Ji,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),t.containsLowercaseCharacter!==void 0&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),t.containsUppercaseCharacter!==void 0&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),t.containsNumericCharacter!==void 0&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),t.containsNonAlphanumericCharacter!==void 0&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,this.enforcementState==="ENFORCEMENT_STATE_UNSPECIFIED"&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){let t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){let r=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),i&&(t.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,t){this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);let r;for(let i=0;i<e.length;i++)r=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(t,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,i,s){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=s))}};var gt=class{constructor(e,t,r,i){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Ae(this),this.idTokenSubscription=new Ae(this),this.beforeStateQueue=new pt(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Vn,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion,this._persistenceManagerAvailable=new Promise(s=>this._resolvePersistenceManagerAvailable=s)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=k(t)),this._initializationPromise=this.queue(()=>a(this,null,function*(){if(!this._deleted&&(this.persistenceManager=yield be.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{yield this._popupRedirectResolver._initialize(this)}catch(r){}yield this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,!this._deleted&&(this._isInitialized=!0)}})),this._initializationPromise}_onStorageEvent(){return a(this,null,function*(){if(this._deleted)return;let e=yield this.assertedPersistence.getCurrentUser();if(!(!this.currentUser&&!e)){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),yield this.currentUser.getIdToken();return}yield this._updateCurrentUser(e,!0)}})}initializeCurrentUserFromIdToken(e){return a(this,null,function*(){try{let t=yield we(this,{idToken:e}),r=yield x._fromGetAccountInfoResponse(this,t,e);yield this.directlySetCurrentUser(r)}catch(t){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",t),yield this.directlySetCurrentUser(null)}})}initializeCurrentUser(e){return a(this,null,function*(){if(y(this.app)){let s=this.app.settings.authIdToken;return s?new Promise(o=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(s).then(o,o))}):this.directlySetCurrentUser(null)}let t=yield this.assertedPersistence.getCurrentUser(),r=t,i=!1;if(e&&this.config.authDomain){yield this.getOrInitRedirectPersistenceManager();let s=this.redirectUser?._redirectEventId,o=r?._redirectEventId,c=yield this.tryRedirectSignIn(e);(!s||s===o)&&c?.user&&(r=c.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{yield this.beforeStateQueue.runMiddleware(r)}catch(s){r=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return d(this._popupRedirectResolver,this,"argument-error"),yield this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)})}tryRedirectSignIn(e){return a(this,null,function*(){let t=null;try{t=yield this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(r){yield this._setRedirectUser(null)}return t})}reloadAndSetCurrentUserOrClear(e){return a(this,null,function*(){try{yield ve(e)}catch(t){if(t?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)})}useDeviceLanguage(){this.languageCode=Mi()}_delete(){return a(this,null,function*(){this._deleted=!0})}updateCurrentUser(e){return a(this,null,function*(){if(y(this.app))return Promise.reject(B(this));let t=e?H(e):null;return t&&d(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))})}_updateCurrentUser(e,t=!1){return a(this,null,function*(){if(!this._deleted)return e&&d(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||(yield this.beforeStateQueue.runMiddleware(e)),this.queue(()=>a(this,null,function*(){yield this.directlySetCurrentUser(e),this.notifyAuthListeners()}))})}signOut(){return a(this,null,function*(){return y(this.app)?Promise.reject(B(this)):(yield this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&(yield this._setRedirectUser(null)),this._updateCurrentUser(null,!0))})}setPersistence(e){return y(this.app)?Promise.reject(B(this)):this.queue(()=>a(this,null,function*(){yield this.assertedPersistence.setPersistence(k(e))}))}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}validatePassword(e){return a(this,null,function*(){this._getPasswordPolicyInternal()||(yield this._updatePasswordPolicy());let t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)})}_getPasswordPolicyInternal(){return this.tenantId===null?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}_updatePasswordPolicy(){return a(this,null,function*(){let e=yield Ki(this),t=new mt(e);this.tenantId===null?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t})}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new S("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},t)}})}revokeAccessToken(e){return a(this,null,function*(){if(this.currentUser){let t=yield this.currentUser.getIdToken(),r={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:t};this.tenantId!=null&&(r.tenantId=this.tenantId),yield zi(this,r)}})}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}_setRedirectUser(e,t){return a(this,null,function*(){let r=yield this.getOrInitRedirectPersistenceManager(t);return e===null?r.removeCurrentUser():r.setCurrentUser(e)})}getOrInitRedirectPersistenceManager(e){return a(this,null,function*(){if(!this.redirectPersistenceManager){let t=e&&k(e)||this._popupRedirectResolver;d(t,this,"argument-error"),this.redirectPersistenceManager=yield be.create(this,[k(t._redirectPersistence)],"redirectUser"),this.redirectUser=yield this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager})}_redirectUserForId(e){return a(this,null,function*(){return this._isInitialized&&(yield this.queue(()=>a(this,null,function*(){}))),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null})}_persistUserIfCurrent(e){return a(this,null,function*(){if(e===this.currentUser)return this.queue(()=>a(this,null,function*(){return this.directlySetCurrentUser(e)}))})}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);let e=this.currentUser?.uid??null;this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,r,i){if(this._deleted)return()=>{};let s=typeof t=="function"?t:t.next.bind(t),o=!1,c=this._isInitialized?Promise.resolve():this._initializationPromise;if(d(c,this,"internal-error"),c.then(()=>{o||s(this.currentUser)}),typeof t=="function"){let u=e.addObserver(t,r,i);return()=>{o=!0,u()}}else{let u=e.addObserver(t);return()=>{o=!0,u()}}}directlySetCurrentUser(e){return a(this,null,function*(){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?yield this.assertedPersistence.setCurrentUser(e):yield this.assertedPersistence.removeCurrentUser()})}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return d(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=Zn(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}_getAdditionalHeaders(){return a(this,null,function*(){let e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);let t=yield this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();t&&(e["X-Firebase-Client"]=t);let r=yield this._getAppCheckToken();return r&&(e["X-Firebase-AppCheck"]=r),e})}_getAppCheckToken(){return a(this,null,function*(){if(y(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=yield this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&Oi(`Error while retrieving App Check token: ${e.error}`),e?.token})}};function De(n){return H(n)}var Ae=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=on(t=>this.observer=t)}get next(){return d(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var kt={loadJS(){return a(this,null,function*(){throw new Error("Unable to load external scripts")})},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Yi(n){kt=n}function Xi(n){return kt.loadJS(n)}function Qi(){return kt.gapiScript}function er(n){return`__${n}${Math.floor(Math.random()*1e6)}`}function tr(n,e){let t=ot(n,"auth");if(t.isInitialized()){let i=t.getImmediate(),s=t.getOptions();if(D(s,e??{}))return i;A(i,"already-initialized")}return t.initialize({options:e})}function Zi(n,e){let t=e?.persistence||[],r=(Array.isArray(t)?t:[t]).map(k);e?.errorMap&&n._updateErrorMap(e.errorMap),n._initializeWithPersistence(r,e?.popupRedirectResolver)}function nr(n,e,t){let r=De(n);d(/^https?:\/\//.test(e),r,"invalid-emulator-scheme");let i=!!t?.disableWarnings,s=rr(e),{host:o,port:c}=es(e),u=c===null?"":`:${c}`,l={url:`${s}//${o}${u}/`},h=Object.freeze({host:o,port:c,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});if(!r._canInitEmulator){d(r.config.emulator&&r.emulatorConfig,r,"emulator-config-failed"),d(D(l,r.config.emulator)&&D(h,r.emulatorConfig),r,"emulator-config-failed");return}r.config.emulator=l,r.emulatorConfig=h,r.settings.appVerificationDisabledForTesting=!0,de(o)?an(`${s}//${o}${u}`):i||ts()}function rr(n){let e=n.indexOf(":");return e<0?"":n.substr(0,e+1)}function es(n){let e=rr(n),t=/(\/\/)?([^?#/]+)/.exec(n.substr(e.length));if(!t)return{host:"",port:null};let r=t[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){let s=i[1];return{host:s,port:Rn(r.substr(s.length+1))}}else{let[s,o]=r.split(":");return{host:s,port:Rn(o)}}}function Rn(n){if(!n)return null;let e=Number(n);return isNaN(e)?null:e}function ts(){function n(){let e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}typeof console<"u"&&typeof console.info=="function"&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),typeof window<"u"&&typeof document<"u"&&(document.readyState==="loading"?window.addEventListener("DOMContentLoaded",n):n())}var re=class{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return P("not implemented")}_getIdTokenResponse(e){return P("not implemented")}_linkToIdToken(e,t){return P("not implemented")}_getReauthenticationResolver(e){return P("not implemented")}};function J(n,e){return a(this,null,function*(){return Vi(n,"POST","/v1/accounts:signInWithIdp",St(n,e))})}var ns="http://localhost",Se=class n extends re{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let t=new n(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):A("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){let c=typeof e=="string"?JSON.parse(e):e,{providerId:r,signInMethod:i}=c,s=ae(c,["providerId","signInMethod"]);if(!r||!i)return null;let o=new n(r,i);return o.idToken=s.idToken||void 0,o.accessToken=s.accessToken||void 0,o.secret=s.secret,o.nonce=s.nonce,o.pendingToken=s.pendingToken||null,o}_getIdTokenResponse(e){let t=this.buildRequest();return J(e,t)}_linkToIdToken(e,t){let r=this.buildRequest();return r.idToken=t,J(e,r)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,J(e,t)}buildRequest(){let e={requestUri:ns,returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{let t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=j(t)}return e}};var ie=class{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}};var Re=class extends ie{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}};var Le=(()=>{class n extends Re{constructor(){super("google.com"),this.addScope("profile")}static credential(t,r){return Se._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.GOOGLE_SIGN_IN_METHOD,idToken:t,accessToken:r})}static credentialFromResult(t){return n.credentialFromTaggedObject(t)}static credentialFromError(t){return n.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;let{oauthIdToken:r,oauthAccessToken:i}=t;if(!r&&!i)return null;try{return n.credential(r,i)}catch(s){return null}}}n.GOOGLE_SIGN_IN_METHOD="google.com",n.PROVIDER_ID="google.com";return n})();var se=class n{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static _fromIdTokenResponse(e,t,r,i=!1){return a(this,null,function*(){let s=yield x._fromIdTokenResponse(e,r,i),o=Pn(r);return new n({user:s,providerId:o,_tokenResponse:r,operationType:t})})}static _forOperation(e,t,r){return a(this,null,function*(){yield e._updateTokensIfNecessary(r,!0);let i=Pn(r);return new n({user:e,providerId:i,_tokenResponse:r,operationType:t})})}};function Pn(n){return n.providerId?n.providerId:"phoneNumber"in n?"phone":null}var _t=class n extends E{constructor(e,t,r,i){super(t.code,t.message),this.operationType=r,this.user=i,Object.setPrototypeOf(this,n.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,i){return new n(e,t,r,i)}};function ir(n,e,t,r){return(e==="reauthenticate"?t._getReauthenticationResolver(n):t._getIdTokenResponse(n)).catch(s=>{throw s.code==="auth/multi-factor-auth-required"?_t._fromErrorAndOperation(n,s,e,r):s})}function rs(n,e,t=!1){return a(this,null,function*(){let r=yield te(n,e._linkToIdToken(n.auth,yield n.getIdToken()),t);return se._forOperation(n,"link",r)})}function is(n,e,t=!1){return a(this,null,function*(){let{auth:r}=n;if(y(r.app))return Promise.reject(B(r));let i="reauthenticate";try{let s=yield te(n,ir(r,i,e,n),t);d(s.idToken,r,"internal-error");let o=Rt(s.idToken);d(o,r,"internal-error");let{sub:c}=o;return d(n.uid===c,r,"user-mismatch"),se._forOperation(n,i,s)}catch(s){throw s?.code==="auth/user-not-found"&&A(r,"user-mismatch"),s}})}function ss(n,e,t=!1){return a(this,null,function*(){if(y(n.app))return Promise.reject(B(n));let r="signIn",i=yield ir(n,r,e),s=yield se._fromIdTokenResponse(n,r,i);return t||(yield n._updateCurrentUser(s.user)),s})}function sr(n,e,t,r){return H(n).onIdTokenChanged(e,t,r)}function or(n,e,t){return H(n).beforeAuthStateChanged(e,t)}var Pe="__sak";var ke=class{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Pe,"1"),this.storage.removeItem(Pe),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){let t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}};var os=1e3,as=10,cs=(()=>{class n extends ke{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(t,r)=>this.onStorageEvent(t,r),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=Qn(),this._shouldAllowMigration=!0}forAllChangedKeys(t){for(let r of Object.keys(this.listeners)){let i=this.storage.getItem(r),s=this.localCache[r];i!==s&&t(r,s,i)}}onStorageEvent(t,r=!1){if(!t.key){this.forAllChangedKeys((c,u,l)=>{this.notifyListeners(c,l)});return}let i=t.key;r?this.detachListener():this.stopPolling();let s=()=>{let c=this.storage.getItem(i);!r&&this.localCache[i]===c||this.notifyListeners(i,c)},o=this.storage.getItem(i);Gi()&&o!==t.newValue&&t.newValue!==t.oldValue?setTimeout(s,as):s()}notifyListeners(t,r){this.localCache[t]=r;let i=this.listeners[t];if(i)for(let s of Array.from(i))s(r&&JSON.parse(r))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((t,r,i)=>{this.onStorageEvent(new StorageEvent("storage",{key:t,oldValue:r,newValue:i}),!0)})},os)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(t,r){Object.keys(this.listeners).length===0&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[t]||(this.listeners[t]=new Set,this.localCache[t]=this.storage.getItem(t)),this.listeners[t].add(r)}_removeListener(t,r){this.listeners[t]&&(this.listeners[t].delete(r),this.listeners[t].size===0&&delete this.listeners[t]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}_set(t,r){return a(this,null,function*(){yield V(n.prototype,this,"_set").call(this,t,r),this.localCache[t]=JSON.stringify(r)})}_get(t){return a(this,null,function*(){let r=yield V(n.prototype,this,"_get").call(this,t);return this.localCache[t]=JSON.stringify(r),r})}_remove(t){return a(this,null,function*(){yield V(n.prototype,this,"_remove").call(this,t),delete this.localCache[t]})}}return n.type="LOCAL",n})(),ar=cs;var us=(()=>{class n extends ke{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(t,r){}_removeListener(t,r){}}return n.type="SESSION",n})(),Ct=us;function ls(n){return Promise.all(n.map(e=>a(null,null,function*(){try{return{fulfilled:!0,value:yield e}}catch(t){return{fulfilled:!1,reason:t}}})))}var ds=(()=>{class n{constructor(t){this.eventTarget=t,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){let r=this.receivers.find(s=>s.isListeningto(t));if(r)return r;let i=new n(t);return this.receivers.push(i),i}isListeningto(t){return this.eventTarget===t}handleEvent(t){return a(this,null,function*(){let r=t,{eventId:i,eventType:s,data:o}=r.data,c=this.handlersMap[s];if(!c?.size)return;r.ports[0].postMessage({status:"ack",eventId:i,eventType:s});let u=Array.from(c).map(h=>a(this,null,function*(){return h(r.origin,o)})),l=yield ls(u);r.ports[0].postMessage({status:"done",eventId:i,eventType:s,response:l})})}_subscribe(t,r){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[t]||(this.handlersMap[t]=new Set),this.handlersMap[t].add(r)}_unsubscribe(t,r){this.handlersMap[t]&&r&&this.handlersMap[t].delete(r),(!r||this.handlersMap[t].size===0)&&delete this.handlersMap[t],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}n.receivers=[];return n})();function Ot(n="",e=10){let t="";for(let r=0;r<e;r++)t+=Math.floor(Math.random()*10);return n+t}var It=class{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}_send(e,t,r=50){return a(this,null,function*(){let i=typeof MessageChannel<"u"?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let s,o;return new Promise((c,u)=>{let l=Ot("",20);i.port1.start();let h=setTimeout(()=>{u(new Error("unsupported_event"))},r);o={messageChannel:i,onMessage(p){let m=p;if(m.data.eventId===l)switch(m.data.status){case"ack":clearTimeout(h),s=setTimeout(()=>{u(new Error("timeout"))},3e3);break;case"done":clearTimeout(s),c(m.data.response);break;default:clearTimeout(h),clearTimeout(s),u(new Error("invalid_response"));break}}},this.handlers.add(o),i.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:l,data:t},[i.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})})}};function b(){return window}function hs(n){b().location.href=n}function cr(){return typeof b().WorkerGlobalScope<"u"&&typeof b().importScripts=="function"}function fs(){return a(this,null,function*(){if(!navigator?.serviceWorker)return null;try{return(yield navigator.serviceWorker.ready).active}catch(n){return null}})}function ps(){return navigator?.serviceWorker?.controller||null}function ms(){return cr()?self:null}var ur="firebaseLocalStorageDb",gs=1,Ce="firebaseLocalStorage",lr="fbase_key",z=class{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}};function Me(n,e){return n.transaction([Ce],e?"readwrite":"readonly").objectStore(Ce)}function _s(){let n=indexedDB.deleteDatabase(ur);return new z(n).toPromise()}function dr(){let n=indexedDB.open(ur,gs);return new Promise((e,t)=>{n.addEventListener("error",()=>{t(n.error)}),n.addEventListener("upgradeneeded",()=>{let r=n.result;try{r.createObjectStore(Ce,{keyPath:lr})}catch(i){t(i)}}),n.addEventListener("success",()=>a(null,null,function*(){let r=n.result;r.objectStoreNames.contains(Ce)?e(r):(r.close(),yield _s(),e(yield dr()))}))})}function kn(n,e,t){return a(this,null,function*(){let r=Me(n,!0).put({[lr]:e,value:t});return new z(r).toPromise()})}function Is(n,e){return a(this,null,function*(){let t=Me(n,!1).get(e),r=yield new z(t).toPromise();return r===void 0?null:r.value})}function Cn(n,e){let t=Me(n,!0).delete(e);return new z(t).toPromise()}var Es=800,ys=3,Ts=(()=>{class n{constructor(){this.type="LOCAL",this.dbPromise=null,this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}_openDb(){return a(this,null,function*(){return this.dbPromise?this.dbPromise:(this.dbPromise=dr(),this.dbPromise.catch(()=>{this.dbPromise=null}),this.dbPromise)})}_withRetries(t){return a(this,null,function*(){let r=0;for(;;)try{let i=yield this._openDb();return yield t(i)}catch(i){if(r++>ys)throw i;this.dbPromise&&((yield this.dbPromise).close(),this.dbPromise=null)}})}initializeServiceWorkerMessaging(){return a(this,null,function*(){return cr()?this.initializeReceiver():this.initializeSender()})}initializeReceiver(){return a(this,null,function*(){this.receiver=ds._getInstance(ms()),this.receiver._subscribe("keyChanged",(t,r)=>a(this,null,function*(){return{keyProcessed:(yield this._poll()).includes(r.key)}})),this.receiver._subscribe("ping",(t,r)=>a(this,null,function*(){return["keyChanged"]}))})}initializeSender(){return a(this,null,function*(){if(this.activeServiceWorker=yield fs(),!this.activeServiceWorker)return;this.sender=new It(this.activeServiceWorker);let t=yield this.sender._send("ping",{},800);t&&t[0]?.fulfilled&&t[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)})}notifyServiceWorker(t){return a(this,null,function*(){if(!(!this.sender||!this.activeServiceWorker||ps()!==this.activeServiceWorker))try{yield this.sender._send("keyChanged",{key:t},this.serviceWorkerReceiverAvailable?800:50)}catch(r){}})}_isAvailable(){return a(this,null,function*(){try{return indexedDB?(yield this._withRetries(t=>a(this,null,function*(){yield kn(t,Pe,"1"),yield Cn(t,Pe)})),!0):!1}catch(t){}return!1})}_withPendingWrite(t){return a(this,null,function*(){this.pendingWrites++;try{yield t()}finally{this.pendingWrites--}})}_set(t,r){return a(this,null,function*(){return this._withPendingWrite(()=>a(this,null,function*(){return yield this._withRetries(i=>kn(i,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)}))})}_get(t){return a(this,null,function*(){let r=yield this._withRetries(i=>Is(i,t));return this.localCache[t]=r,r})}_remove(t){return a(this,null,function*(){return this._withPendingWrite(()=>a(this,null,function*(){return yield this._withRetries(r=>Cn(r,t)),delete this.localCache[t],this.notifyServiceWorker(t)}))})}_poll(){return a(this,null,function*(){let t=yield this._withRetries(s=>{let o=Me(s,!1).getAll();return new z(o).toPromise()});if(!t)return[];if(this.pendingWrites!==0)return[];let r=[],i=new Set;if(t.length!==0)for(let{fbase_key:s,value:o}of t)i.add(s),JSON.stringify(this.localCache[s])!==JSON.stringify(o)&&(this.notifyListeners(s,o),r.push(s));for(let s of Object.keys(this.localCache))this.localCache[s]&&!i.has(s)&&(this.notifyListeners(s,null),r.push(s));return r})}notifyListeners(t,r){this.localCache[t]=r;let i=this.listeners[t];if(i)for(let s of Array.from(i))s(r)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>a(this,null,function*(){return this._poll()}),Es)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(t,r){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[t]||(this.listeners[t]=new Set,this._get(t)),this.listeners[t].add(r)}_removeListener(t,r){this.listeners[t]&&(this.listeners[t].delete(r),this.listeners[t].size===0&&delete this.listeners[t]),Object.keys(this.listeners).length===0&&this.stopPolling()}}return n.type="LOCAL",n})(),hr=Ts;var Ko=er("rcb"),Jo=new $(3e4,6e4);function fr(n,e){return e?k(e):(d(n._popupRedirectResolver,n,"argument-error"),n._popupRedirectResolver)}var oe=class extends re{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return J(e,this._buildIdpRequest())}_linkToIdToken(e,t){return J(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return J(e,this._buildIdpRequest())}_buildIdpRequest(e){let t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}};function ws(n){return ss(n.auth,new oe(n),n.bypassAuthState)}function vs(n){let{auth:e,user:t}=n;return d(t,e,"internal-error"),is(t,new oe(n),n.bypassAuthState)}function bs(n){return a(this,null,function*(){let{auth:e,user:t}=n;return d(t,e,"internal-error"),rs(t,new oe(n),n.bypassAuthState)})}var Oe=class{constructor(e,t,r,i,s=!1){this.auth=e,this.resolver=r,this.user=i,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise((e,t)=>a(this,null,function*(){this.pendingPromise={resolve:e,reject:t};try{this.eventManager=yield this.resolver._initialize(this.auth),yield this.onExecution(),this.eventManager.registerConsumer(this)}catch(r){this.reject(r)}}))}onAuthEvent(e){return a(this,null,function*(){let{urlResponse:t,sessionId:r,postBody:i,tenantId:s,error:o,type:c}=e;if(o){this.reject(o);return}let u={auth:this.auth,requestUri:t,sessionId:r,tenantId:s||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(yield this.getIdpTask(c)(u))}catch(l){this.reject(l)}})}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return ws;case"linkViaPopup":case"linkViaRedirect":return bs;case"reauthViaPopup":case"reauthViaRedirect":return vs;default:A(this.auth,"internal-error")}}resolve(e){C(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){C(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}};var As=new $(2e3,1e4);function Nt(n,e,t){return a(this,null,function*(){if(y(n.app))return Promise.reject(T(n,"operation-not-supported-in-this-environment"));let r=De(n);Ni(n,e,ie);let i=fr(r,t);return new Ss(r,"signInViaPopup",e,i).executeNotNull()})}var Ss=(()=>{class n extends Oe{constructor(t,r,i,s,o){super(t,r,s,o),this.provider=i,this.authWindow=null,this.pollId=null,n.currentPopupAction&&n.currentPopupAction.cancel(),n.currentPopupAction=this}executeNotNull(){return a(this,null,function*(){let t=yield this.execute();return d(t,this.auth,"internal-error"),t})}onExecution(){return a(this,null,function*(){C(this.filter.length===1,"Popup operations only handle one event");let t=Ot();this.authWindow=yield this.resolver._openPopup(this.auth,this.provider,this.filter[0],t),this.authWindow.associatedEvent=t,this.resolver._originValidation(this.auth).catch(r=>{this.reject(r)}),this.resolver._isIframeWebStorageSupported(this.auth,r=>{r||this.reject(T(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()})}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(T(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,n.currentPopupAction=null}pollUserCancellation(){let t=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(T(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(t,As.get())};t()}}n.currentPopupAction=null;return n})(),Rs="pendingRedirect",Ie=new Map,Et=class n extends Oe{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}execute(){return a(this,null,function*(){let e=Ie.get(this.auth._key());if(!e){try{let r=(yield Ps(this.resolver,this.auth))?yield V(n.prototype,this,"execute").call(this):null;e=()=>Promise.resolve(r)}catch(t){e=()=>Promise.reject(t)}Ie.set(this.auth._key(),e)}return this.bypassAuthState||Ie.set(this.auth._key(),()=>Promise.resolve(null)),e()})}onAuthEvent(e){return a(this,null,function*(){if(e.type==="signInViaRedirect")return V(n.prototype,this,"onAuthEvent").call(this,e);if(e.type==="unknown"){this.resolve(null);return}if(e.eventId){let t=yield this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,V(n.prototype,this,"onAuthEvent").call(this,e);this.resolve(null)}})}onExecution(){return a(this,null,function*(){})}cleanUp(){}};function Ps(n,e){return a(this,null,function*(){let t=Os(e),r=Cs(n);if(!(yield r._isAvailable()))return!1;let i=(yield r._get(t))==="true";return yield r._remove(t),i})}function ks(n,e){Ie.set(n._key(),e)}function Cs(n){return k(n._redirectPersistence)}function Os(n){return _e(Rs,n.config.apiKey,n.name)}function Ns(n,e,t=!1){return a(this,null,function*(){if(y(n.app))return Promise.reject(B(n));let r=De(n),i=fr(r,e),o=yield new Et(r,i,t).execute();return o&&!t&&(delete o.user._redirectEventId,yield r._persistUserIfCurrent(o.user),yield r._setRedirectUser(null,e)),o})}var Ds=600*1e3,yt=class{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach(r=>{this.isEventForConsumer(e,r)&&(t=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!Ls(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!pr(e)){let r=e.error.code?.split("auth/")[1]||"internal-error";t.onError(T(this.auth,r))}else t.onAuthEvent(e)}isEventForConsumer(e,t){let r=t.eventId===null||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=Ds&&this.cachedEventUids.clear(),this.cachedEventUids.has(On(e))}saveEventToCache(e){this.cachedEventUids.add(On(e)),this.lastProcessedEventTime=Date.now()}};function On(n){return[n.type,n.eventId,n.sessionId,n.tenantId].filter(e=>e).join("-")}function pr({type:n,error:e}){return n==="unknown"&&e?.code==="auth/no-auth-event"}function Ls(n){switch(n.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return pr(n);default:return!1}}function Ms(t){return a(this,arguments,function*(n,e={}){return Y(n,"GET","/v1/projects",e)})}var Us=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,xs=/^https?/;function Fs(n){return a(this,null,function*(){if(n.config.emulator)return;let{authorizedDomains:e}=yield Ms(n);for(let t of e)try{if(Vs(t))return}catch(r){}A(n,"unauthorized-domain")})}function Vs(n){let e=lt(),{protocol:t,hostname:r}=new URL(e);if(n.startsWith("chrome-extension://")){let o=new URL(n);return o.hostname===""&&r===""?t==="chrome-extension:"&&n.replace("chrome-extension://","")===e.replace("chrome-extension://",""):t==="chrome-extension:"&&o.hostname===r}if(!xs.test(t))return!1;if(Us.test(n))return r===n;let i=n.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}var Hs=new $(3e4,6e4);function Nn(){let n=b().___jsl;if(n?.H){for(let e of Object.keys(n.H))if(n.H[e].r=n.H[e].r||[],n.H[e].L=n.H[e].L||[],n.H[e].r=[...n.H[e].L],n.CP)for(let t=0;t<n.CP.length;t++)n.CP[t]=null}}function Ws(n){return new Promise((e,t)=>{function r(){Nn(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Nn(),t(T(n,"network-request-failed"))},timeout:Hs.get()})}if(b().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else if(b().gapi?.load)r();else{let i=er("iframefcb");return b()[i]=()=>{gapi.load?r():t(T(n,"network-request-failed"))},Xi(`${Qi()}?onload=${i}`).catch(s=>t(s))}}).catch(e=>{throw Ee=null,e})}var Ee=null;function Bs(n){return Ee=Ee||Ws(n),Ee}var $s=new $(5e3,15e3),zs="__/auth/iframe",js="emulator/auth/iframe",qs={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Gs=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Ks(n){let e=n.config;d(e.authDomain,n,"auth-domain-config-required");let t=e.emulator?At(e,js):`https://${n.config.authDomain}/${zs}`,r={apiKey:e.apiKey,appName:n.name,v:K},i=Gs.get(n.config.apiHost);i&&(r.eid=i);let s=n._getFrameworks();return s.length&&(r.fw=s.join(",")),`${t}?${j(r).slice(1)}`}function Js(n){return a(this,null,function*(){let e=yield Bs(n),t=b().gapi;return d(t,n,"internal-error"),e.open({where:document.body,url:Ks(n),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:qs,dontclear:!0},r=>new Promise((i,s)=>a(null,null,function*(){yield r.restyle({setHideOnLeave:!1});let o=T(n,"network-request-failed"),c=b().setTimeout(()=>{s(o)},$s.get());function u(){b().clearTimeout(c),i(r)}r.ping(u).then(u,()=>{s(o)})})))})}var Ys={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},Xs=500,Qs=600,Zs="_blank",eo="http://localhost",Ne=class{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}};function to(n,e,t,r=Xs,i=Qs){let s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-r)/2,0).toString(),c="",u=O(g({},Ys),{width:r.toString(),height:i.toString(),top:s,left:o}),l=_().toLowerCase();t&&(c=Gn(l)?Zs:t),jn(l)&&(e=e||eo,u.scrollbars="yes");let h=Object.entries(u).reduce((m,[I,F])=>`${m}${I}=${F},`,"");if(qi(l)&&c!=="_self")return no(e||"",c),new Ne(null);let p=window.open(e||"",c,h);d(p,n,"popup-blocked");try{p.focus()}catch(m){}return new Ne(p)}function no(n,e){let t=document.createElement("a");t.href=n,t.target=e;let r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),t.dispatchEvent(r)}var ro="__/auth/handler",io="emulator/auth/handler",so=encodeURIComponent("fac");function Dn(n,e,t,r,i,s){return a(this,null,function*(){d(n.config.authDomain,n,"auth-domain-config-required"),d(n.config.apiKey,n,"invalid-api-key");let o={apiKey:n.config.apiKey,appName:n.name,authType:t,redirectUrl:r,v:K,eventId:i};if(e instanceof ie){e.setDefaultLanguage(n.languageCode),o.providerId=e.providerId||"",sn(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(let[h,p]of Object.entries(s||{}))o[h]=p}if(e instanceof Re){let h=e.getScopes().filter(p=>p!=="");h.length>0&&(o.scopes=h.join(","))}n.tenantId&&(o.tid=n.tenantId);let c=o;for(let h of Object.keys(c))c[h]===void 0&&delete c[h];let u=yield n._getAppCheckToken(),l=u?`#${so}=${encodeURIComponent(u)}`:"";return`${oo(n)}?${j(c).slice(1)}${l}`})}function oo({config:n}){return n.emulator?At(n,io):`https://${n.authDomain}/${ro}`}var ut="webStorageSupport",Tt=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Ct,this._completeRedirectFn=Ns,this._overrideRedirectResult=ks}_openPopup(e,t,r,i){return a(this,null,function*(){C(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()");let s=yield Dn(e,t,r,lt(),i);return to(e,s,Ot())})}_openRedirect(e,t,r,i){return a(this,null,function*(){yield this._originValidation(e);let s=yield Dn(e,t,r,lt(),i);return hs(s),new Promise(()=>{})})}_initialize(e){let t=e._key();if(this.eventManagers[t]){let{manager:i,promise:s}=this.eventManagers[t];return i?Promise.resolve(i):(C(s,"If manager is not set, promise should be"),s)}let r=this.initAndGetManager(e);return this.eventManagers[t]={promise:r},r.catch(()=>{delete this.eventManagers[t]}),r}initAndGetManager(e){return a(this,null,function*(){let t=yield Js(e),r=new yt(e);return t.register("authEvent",i=>(d(i?.authEvent,e,"invalid-auth-event"),{status:r.onEvent(i.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=t,r})}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(ut,{type:ut},i=>{let s=i?.[0]?.[ut];s!==void 0&&t(!!s),A(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Fs(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return Qn()||qn()||Pt()}},mr=Tt;var Ln="@firebase/auth",Mn="1.13.2";var wt=class{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}getToken(e){return a(this,null,function*(){return this.assertAuthConfigured(),yield this.auth._initializationPromise,this.auth.currentUser?{accessToken:yield this.auth.currentUser.getIdToken(e)}:null})}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let t=this.auth.onIdTokenChanged(r=>{e(r?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){d(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function ao(n){switch(n){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}function co(n){G(new w("auth",(e,{options:t})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),s=e.getProvider("app-check-internal"),{apiKey:o,authDomain:c}=r.options;d(o&&!o.includes(":"),"invalid-api-key",{appName:r.name});let u={apiKey:o,authDomain:c,clientPlatform:n,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:Zn(n)},l=new gt(r,i,s,u);return Zi(l,t),l},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),G(new w("auth-internal",e=>{let t=De(e.getProvider("auth").getImmediate());return(r=>new wt(r))(t)},"PRIVATE").setInstantiationMode("EXPLICIT")),M(Ln,Mn,ao(n)),M(Ln,Mn,"esm2020")}var uo=300,lo=je("authIdTokenMaxAge")||uo,Un=null,ho=n=>e=>a(null,null,function*(){let t=e&&(yield e.getIdTokenResult()),r=t&&(new Date().getTime()-Date.parse(t.issuedAtTime))/1e3;if(r&&r>lo)return;let i=t?.token;Un!==i&&(Un=i,yield fetch(n,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))});function Dt(n=pe()){let e=ot(n,"auth");if(e.isInitialized())return e.getImmediate();let t=tr(n,{popupRedirectResolver:mr,persistence:[hr,ar,Ct]}),r=je("authTokenSyncURL");if(r&&typeof isSecureContext=="boolean"&&isSecureContext){let s=new URL(r,location.origin);if(location.origin===s.origin){let o=ho(s.toString());or(t,o,()=>o(t.currentUser)),sr(t,c=>o(c))}}let i=Yt("auth");return i&&nr(t,`http://${i}`),t}function fo(){return document.getElementsByTagName("head")?.[0]??document}Yi({loadJS(n){return new Promise((e,t)=>{let r=document.createElement("script");r.setAttribute("src",n),r.onload=e,r.onerror=i=>{let s=T("internal-error");s.customData=i,t(s)},r.type="text/javascript",r.charset="UTF-8",fo().appendChild(r)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="});co("Browser");var po="firebase",mo="12.14.0";M(po,mo,"app");var go={apiKey:N.firebaseConfig.apiKey,authDomain:N.firebaseConfig.authDomain,projectId:N.firebaseConfig.projectId,storageBucket:N.firebaseConfig.storageBucket,messagingSenderId:N.firebaseConfig.messagingSenderId,appId:N.firebaseConfig.appId,measurementId:N.firebaseConfig.measurementId},gr=yn().length?pe():at(go);var _r=class n{auth=Dt(gr);http=ce($t);router=ce(Bt);authService=ce(zt);isLoading=Wt(!1);loginWithGoogle(e){if(e&&(e.preventDefault(),e.stopPropagation()),this.isLoading())return xe(()=>new Error("Login already in progress"));this.isLoading.set(!0);let t=new Le;return t.setCustomParameters({prompt:"select_account"}),Mt(Nt(this.auth,t)).pipe(Fe(r=>Le.credentialFromResult(r)?.idToken),Fe(r=>{if(!r)throw new Error("Failed to retrieve Google ID Token \u2014 the popup may have been cancelled.");return r}),Ft(r=>this.http.post(jt.LoginWithGoogle,{IDToken:r})),Vt(r=>{this.authService.saveLoginConfigToStorage(r);let i=this.authService.getRedirectUrl();this.router.navigate([i])}),Ut(r=>(this.logout(),console.error("Google Login Failed:",r),xe(()=>r))),xt(()=>this.isLoading.set(!1)))}logout(){this.auth.currentUser&&this.auth.signOut()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=Ht({token:n,factory:n.\u0275fac,providedIn:"root"})};export{_r as a};
|
|
1
|
+
import{a as jt}from"./chunk-HMY7DJXX.js";import{c as zt}from"./chunk-7KU7XP25.js";import{a as N}from"./chunk-VW7FYM7T.js";import{q as $t}from"./chunk-FWVQ6CFL.js";import{G as Ut,Md as Bt,P as xt,_ as Ft,ca as Vt,ha as Ht,k as Mt,la as ce,m as xe,r as Fe,za as Wt}from"./chunk-KYVLS64M.js";import{a as g,b as O,e as ae,i as V,j as a}from"./chunk-KMHZKFQS.js";var qt=()=>{};var Kt=function(n){let e=[],t=0;for(let r=0;r<n.length;r++){let i=n.charCodeAt(r);i<128?e[t++]=i:i<2048?(e[t++]=i>>6|192,e[t++]=i&63|128):(i&64512)===55296&&r+1<n.length&&(n.charCodeAt(r+1)&64512)===56320?(i=65536+((i&1023)<<10)+(n.charCodeAt(++r)&1023),e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128)}return e},yr=function(n){let e=[],t=0,r=0;for(;t<n.length;){let i=n[t++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){let s=n[t++];e[r++]=String.fromCharCode((i&31)<<6|s&63)}else if(i>239&&i<365){let s=n[t++],o=n[t++],c=n[t++],u=((i&7)<<18|(s&63)<<12|(o&63)<<6|c&63)-65536;e[r++]=String.fromCharCode(55296+(u>>10)),e[r++]=String.fromCharCode(56320+(u&1023))}else{let s=n[t++],o=n[t++];e[r++]=String.fromCharCode((i&15)<<12|(s&63)<<6|o&63)}}return e.join("")},Jt={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:typeof atob=="function",encodeByteArray(n,e){if(!Array.isArray(n))throw Error("encodeByteArray takes an array as a parameter");this.init_();let t=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i<n.length;i+=3){let s=n[i],o=i+1<n.length,c=o?n[i+1]:0,u=i+2<n.length,l=u?n[i+2]:0,h=s>>2,p=(s&3)<<4|c>>4,m=(c&15)<<2|l>>6,I=l&63;u||(I=64,o||(m=64)),r.push(t[h],t[p],t[m],t[I])}return r.join("")},encodeString(n,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(n):this.encodeByteArray(Kt(n),e)},decodeString(n,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(n):yr(this.decodeStringToByteArray(n,e))},decodeStringToByteArray(n,e){this.init_();let t=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i<n.length;){let s=t[n.charAt(i++)],c=i<n.length?t[n.charAt(i)]:0;++i;let l=i<n.length?t[n.charAt(i)]:64;++i;let p=i<n.length?t[n.charAt(i)]:64;if(++i,s==null||c==null||l==null||p==null)throw new He;let m=s<<2|c>>4;if(r.push(m),l!==64){let I=c<<4&240|l>>2;if(r.push(I),p!==64){let F=l<<6&192|p;r.push(F)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let n=0;n<this.ENCODED_VALS.length;n++)this.byteToCharMap_[n]=this.ENCODED_VALS.charAt(n),this.charToByteMap_[this.byteToCharMap_[n]]=n,this.byteToCharMapWebSafe_[n]=this.ENCODED_VALS_WEBSAFE.charAt(n),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[n]]=n,n>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(n)]=n,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(n)]=n)}}},He=class extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}},Tr=function(n){let e=Kt(n);return Jt.encodeByteArray(e,!0)},Be=function(n){return Tr(n).replace(/\./g,"")},le=function(n){try{return Jt.decodeString(n,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function wr(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}var vr=()=>wr().__FIREBASE_DEFAULTS__,br=()=>{if(typeof process>"u"||typeof process.env>"u")return;let n=process.env.__FIREBASE_DEFAULTS__;if(n)return JSON.parse(n)},Ar=()=>{if(typeof document>"u")return;let n;try{n=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}let e=n&&le(n[1]);return e&&JSON.parse(e)},$e=()=>{try{return qt()||vr()||br()||Ar()}catch(n){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${n}`);return}},Yt=n=>$e()?.emulatorHosts?.[n];var ze=()=>$e()?.config,je=n=>$e()?.[`_${n}`];var ue=class{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),typeof e=="function"&&(this.promise.catch(()=>{}),e.length===1?e(t):e(t,r))}}};function _(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function Xt(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(_())}function Qt(){return typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"}function Zt(){let n=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof n=="object"&&n.id!==void 0}function en(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function tn(){let n=_();return n.indexOf("MSIE ")>=0||n.indexOf("Trident/")>=0}function nn(){try{return typeof indexedDB=="object"}catch(n){return!1}}function rn(){return new Promise((n,e)=>{try{let t=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),t||self.indexedDB.deleteDatabase(r),n(!0)},i.onupgradeneeded=()=>{t=!1},i.onerror=()=>{e(i.error?.message||"")}}catch(t){e(t)}})}var Sr="FirebaseError",E=class n extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name=Sr,Object.setPrototypeOf(this,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,S.prototype.create)}},S=class{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){let r=t[0]||{},i=`${this.service}/${e}`,s=this.errors[e],o=s?Rr(s,r):"Error",c=`${this.serviceName}: ${o} (${i}).`;return new E(i,c,r)}};function Rr(n,e){return n.replace(Pr,(t,r)=>{let i=e[r];return i!=null?String(i):`<${r}?>`})}var Pr=/\{\$([^}]+)}/g;function sn(n){for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e))return!1;return!0}function D(n,e){if(n===e)return!0;let t=Object.keys(n),r=Object.keys(e);for(let i of t){if(!r.includes(i))return!1;let s=n[i],o=e[i];if(Gt(s)&&Gt(o)){if(!D(s,o))return!1}else if(s!==o)return!1}for(let i of r)if(!t.includes(i))return!1;return!0}function Gt(n){return n!==null&&typeof n=="object"}function j(n){let e=[];for(let[t,r]of Object.entries(n))Array.isArray(r)?r.forEach(i=>{e.push(encodeURIComponent(t)+"="+encodeURIComponent(i))}):e.push(encodeURIComponent(t)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}function on(n,e){let t=new We(n,e);return t.subscribe.bind(t)}var We=class{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(r=>{this.error(r)})}next(e){this.forEachObserver(t=>{t.next(e)})}error(e){this.forEachObserver(t=>{t.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let i;if(e===void 0&&t===void 0&&r===void 0)throw new Error("Missing Observer.");kr(e,["next","error","complete"])?i=e:i={next:e,error:t,complete:r},i.next===void 0&&(i.next=Ve),i.error===void 0&&(i.error=Ve),i.complete===void 0&&(i.complete=Ve);let s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch(o){}}),this.observers.push(i),s}unsubscribeOne(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then(()=>{if(this.observers!==void 0&&this.observers[e]!==void 0)try{t(this.observers[e])}catch(r){typeof console<"u"&&console.error&&console.error(r)}})}close(e){this.finalized||(this.finalized=!0,e!==void 0&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}};function kr(n,e){if(typeof n!="object"||n===null)return!1;for(let t of e)if(t in n&&typeof n[t]=="function")return!0;return!1}function Ve(){}var Eo=14400*1e3;function H(n){return n&&n._delegate?n._delegate:n}function de(n){try{return(n.startsWith("http://")||n.startsWith("https://")?new URL(n).hostname:n).endsWith(".cloudworkstations.dev")}catch(e){return!1}}function an(n){return a(this,null,function*(){return(yield fetch(n,{credentials:"include"})).ok})}var w=class{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}};var W="[DEFAULT]";var qe=class{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){let r=new ue;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{let i=this.getOrInitializeService({instanceIdentifier:t});i&&r.resolve(i)}catch(i){}}return this.instancesDeferred.get(t).promise}getImmediate(e){let t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(this.isInitialized(t)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:t})}catch(i){if(r)return null;throw i}else{if(r)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(Or(e))try{this.getOrInitializeService({instanceIdentifier:W})}catch(t){}for(let[t,r]of this.instancesDeferred.entries()){let i=this.normalizeInstanceIdentifier(t);try{let s=this.getOrInitializeService({instanceIdentifier:i});r.resolve(s)}catch(s){}}}}clearInstance(e=W){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}delete(){return a(this,null,function*(){let e=Array.from(this.instances.values());yield Promise.all([...e.filter(t=>"INTERNAL"in t).map(t=>t.INTERNAL.delete()),...e.filter(t=>"_delete"in t).map(t=>t._delete())])})}isComponentSet(){return this.component!=null}isInitialized(e=W){return this.instances.has(e)}getOptions(e=W){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let i=this.getOrInitializeService({instanceIdentifier:r,options:t});for(let[s,o]of this.instancesDeferred.entries()){let c=this.normalizeInstanceIdentifier(s);r===c&&o.resolve(i)}return i}onInit(e,t){let r=this.normalizeInstanceIdentifier(t),i=this.onInitCallbacks.get(r)??new Set;i.add(e),this.onInitCallbacks.set(r,i);let s=this.instances.get(r);return s&&e(s,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){let r=this.onInitCallbacks.get(t);if(r)for(let i of r)try{i(e,t)}catch(s){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:Cr(e),options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(i){}return r||null}normalizeInstanceIdentifier(e=W){return this.component?this.component.multipleInstances?e:W:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}};function Cr(n){return n===W?void 0:n}function Or(n){return n.instantiationMode==="EAGER"}var he=class{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let t=new qe(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}};var Nr=[],f=(function(n){return n[n.DEBUG=0]="DEBUG",n[n.VERBOSE=1]="VERBOSE",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.SILENT=5]="SILENT",n})(f||{}),Dr={debug:f.DEBUG,verbose:f.VERBOSE,info:f.INFO,warn:f.WARN,error:f.ERROR,silent:f.SILENT},Lr=f.INFO,Mr={[f.DEBUG]:"log",[f.VERBOSE]:"log",[f.INFO]:"info",[f.WARN]:"warn",[f.ERROR]:"error"},Ur=(n,e,...t)=>{if(e<n.logLevel)return;let r=new Date().toISOString(),i=Mr[e];if(i)console[i](`[${r}] ${n.name}:`,...t);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)},q=class{constructor(e){this.name=e,this._logLevel=Lr,this._logHandler=Ur,this._userLogHandler=null,Nr.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in f))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?Dr[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,f.DEBUG,...e),this._logHandler(this,f.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,f.VERBOSE,...e),this._logHandler(this,f.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,f.INFO,...e),this._logHandler(this,f.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,f.WARN,...e),this._logHandler(this,f.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,f.ERROR,...e),this._logHandler(this,f.ERROR,...e)}};var xr=(n,e)=>e.some(t=>n instanceof t),cn,un;function Fr(){return cn||(cn=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Vr(){return un||(un=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var ln=new WeakMap,Ke=new WeakMap,dn=new WeakMap,Ge=new WeakMap,Ye=new WeakMap;function Hr(n){let e=new Promise((t,r)=>{let i=()=>{n.removeEventListener("success",s),n.removeEventListener("error",o)},s=()=>{t(v(n.result)),i()},o=()=>{r(n.error),i()};n.addEventListener("success",s),n.addEventListener("error",o)});return e.then(t=>{t instanceof IDBCursor&&ln.set(t,n)}).catch(()=>{}),Ye.set(e,n),e}function Wr(n){if(Ke.has(n))return;let e=new Promise((t,r)=>{let i=()=>{n.removeEventListener("complete",s),n.removeEventListener("error",o),n.removeEventListener("abort",o)},s=()=>{t(),i()},o=()=>{r(n.error||new DOMException("AbortError","AbortError")),i()};n.addEventListener("complete",s),n.addEventListener("error",o),n.addEventListener("abort",o)});Ke.set(n,e)}var Je={get(n,e,t){if(n instanceof IDBTransaction){if(e==="done")return Ke.get(n);if(e==="objectStoreNames")return n.objectStoreNames||dn.get(n);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return v(n[e])},set(n,e,t){return n[e]=t,!0},has(n,e){return n instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in n}};function hn(n){Je=n(Je)}function Br(n){return n===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){let r=n.call(fe(this),e,...t);return dn.set(r,e.sort?e.sort():[e]),v(r)}:Vr().includes(n)?function(...e){return n.apply(fe(this),e),v(ln.get(this))}:function(...e){return v(n.apply(fe(this),e))}}function $r(n){return typeof n=="function"?Br(n):(n instanceof IDBTransaction&&Wr(n),xr(n,Fr())?new Proxy(n,Je):n)}function v(n){if(n instanceof IDBRequest)return Hr(n);if(Ge.has(n))return Ge.get(n);let e=$r(n);return e!==n&&(Ge.set(n,e),Ye.set(e,n)),e}var fe=n=>Ye.get(n);function pn(n,e,{blocked:t,upgrade:r,blocking:i,terminated:s}={}){let o=indexedDB.open(n,e),c=v(o);return r&&o.addEventListener("upgradeneeded",u=>{r(v(o.result),u.oldVersion,u.newVersion,v(o.transaction),u)}),t&&o.addEventListener("blocked",u=>t(u.oldVersion,u.newVersion,u)),c.then(u=>{s&&u.addEventListener("close",()=>s()),i&&u.addEventListener("versionchange",l=>i(l.oldVersion,l.newVersion,l))}).catch(()=>{}),c}var zr=["get","getKey","getAll","getAllKeys","count"],jr=["put","add","delete","clear"],Xe=new Map;function fn(n,e){if(!(n instanceof IDBDatabase&&!(e in n)&&typeof e=="string"))return;if(Xe.get(e))return Xe.get(e);let t=e.replace(/FromIndex$/,""),r=e!==t,i=jr.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(i||zr.includes(t)))return;let s=function(o,...c){return a(this,null,function*(){let u=this.transaction(o,i?"readwrite":"readonly"),l=u.store;return r&&(l=l.index(c.shift())),(yield Promise.all([l[t](...c),i&&u.done]))[0]})};return Xe.set(e,s),s}hn(n=>O(g({},n),{get:(e,t,r)=>fn(e,t)||n.get(e,t,r),has:(e,t)=>!!fn(e,t)||n.has(e,t)}));var Ze=class{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(t=>{if(qr(t)){let r=t.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(t=>t).join(" ")}};function qr(n){return n.getComponent()?.type==="VERSION"}var et="@firebase/app",mn="0.14.13";var R=new q("@firebase/app"),Gr="@firebase/app-compat",Kr="@firebase/analytics-compat",Jr="@firebase/analytics",Yr="@firebase/app-check-compat",Xr="@firebase/app-check",Qr="@firebase/auth",Zr="@firebase/auth-compat",ei="@firebase/database",ti="@firebase/data-connect",ni="@firebase/database-compat",ri="@firebase/functions",ii="@firebase/functions-compat",si="@firebase/installations",oi="@firebase/installations-compat",ai="@firebase/messaging",ci="@firebase/messaging-compat",ui="@firebase/performance",li="@firebase/performance-compat",di="@firebase/remote-config",hi="@firebase/remote-config-compat",fi="@firebase/storage",pi="@firebase/storage-compat",mi="@firebase/firestore",gi="@firebase/ai",_i="@firebase/firestore-compat",Ii="firebase",Ei="12.14.0";var tt="[DEFAULT]",yi={[et]:"fire-core",[Gr]:"fire-core-compat",[Jr]:"fire-analytics",[Kr]:"fire-analytics-compat",[Xr]:"fire-app-check",[Yr]:"fire-app-check-compat",[Qr]:"fire-auth",[Zr]:"fire-auth-compat",[ei]:"fire-rtdb",[ti]:"fire-data-connect",[ni]:"fire-rtdb-compat",[ri]:"fire-fn",[ii]:"fire-fn-compat",[si]:"fire-iid",[oi]:"fire-iid-compat",[ai]:"fire-fcm",[ci]:"fire-fcm-compat",[ui]:"fire-perf",[li]:"fire-perf-compat",[di]:"fire-rc",[hi]:"fire-rc-compat",[fi]:"fire-gcs",[pi]:"fire-gcs-compat",[mi]:"fire-fst",[_i]:"fire-fst-compat",[gi]:"fire-vertex","fire-js":"fire-js",[Ii]:"fire-js-all"};var X=new Map,Ti=new Map,nt=new Map;function gn(n,e){try{n.container.addComponent(e)}catch(t){R.debug(`Component ${e.name} failed to register with FirebaseApp ${n.name}`,t)}}function G(n){let e=n.name;if(nt.has(e))return R.debug(`There were multiple attempts to register component ${e}.`),!1;nt.set(e,n);for(let t of X.values())gn(t,n);for(let t of Ti.values())gn(t,n);return!0}function ot(n,e){let t=n.container.getProvider("heartbeat").getImmediate({optional:!0});return t&&t.triggerHeartbeat(),n.container.getProvider(e)}function y(n){return n==null?!1:n.settings!==void 0}var wi={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},L=new S("app","Firebase",wi);var rt=class{constructor(e,t,r){this._isDeleted=!1,this._options=g({},e),this._config=g({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new w("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw L.create("app-deleted",{appName:this._name})}};var K=Ei;function at(n,e={}){let t=n;typeof e!="object"&&(e={name:e});let r=g({name:tt,automaticDataCollectionEnabled:!0},e),i=r.name;if(typeof i!="string"||!i)throw L.create("bad-app-name",{appName:String(i)});if(t||(t=ze()),!t)throw L.create("no-options");let s=X.get(i);if(s){if(D(t,s.options)&&D(r,s.config))return s;throw L.create("duplicate-app",{appName:i})}let o=new he(i);for(let u of nt.values())o.addComponent(u);let c=new rt(t,r,o);return X.set(i,c),c}function pe(n=tt){let e=X.get(n);if(!e&&n===tt&&ze())return at();if(!e)throw L.create("no-app",{appName:n});return e}function yn(){return Array.from(X.values())}function M(n,e,t){let r=yi[n]??n;t&&(r+=`-${t}`);let i=r.match(/\s|\//),s=e.match(/\s|\//);if(i||s){let o=[`Unable to register library "${r}" with version "${e}":`];i&&o.push(`library name "${r}" contains illegal characters (whitespace or "/")`),i&&s&&o.push("and"),s&&o.push(`version name "${e}" contains illegal characters (whitespace or "/")`),R.warn(o.join(" "));return}G(new w(`${r}-version`,()=>({library:r,version:e}),"VERSION"))}var vi="firebase-heartbeat-database",bi=1,Q="firebase-heartbeat-store",Qe=null;function Tn(){return Qe||(Qe=pn(vi,bi,{upgrade:(n,e)=>{switch(e){case 0:try{n.createObjectStore(Q)}catch(t){console.warn(t)}}}}).catch(n=>{throw L.create("idb-open",{originalErrorMessage:n.message})})),Qe}function Ai(n){return a(this,null,function*(){try{let t=(yield Tn()).transaction(Q),r=yield t.objectStore(Q).get(wn(n));return yield t.done,r}catch(e){if(e instanceof E)R.warn(e.message);else{let t=L.create("idb-get",{originalErrorMessage:e?.message});R.warn(t.message)}}})}function _n(n,e){return a(this,null,function*(){try{let r=(yield Tn()).transaction(Q,"readwrite");yield r.objectStore(Q).put(e,wn(n)),yield r.done}catch(t){if(t instanceof E)R.warn(t.message);else{let r=L.create("idb-set",{originalErrorMessage:t?.message});R.warn(r.message)}}})}function wn(n){return`${n.name}!${n.options.appId}`}var Si=1024,Ri=30,it=class{constructor(e){this.container=e,this._heartbeatsCache=null;let t=this.container.getProvider("app").getImmediate();this._storage=new st(t),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}triggerHeartbeat(){return a(this,null,function*(){try{let t=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),r=In();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=yield this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===r||this._heartbeatsCache.heartbeats.some(i=>i.date===r))return;if(this._heartbeatsCache.heartbeats.push({date:r,agent:t}),this._heartbeatsCache.heartbeats.length>Ri){let i=ki(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(i,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){R.warn(e)}})}getHeartbeatsHeader(){return a(this,null,function*(){try{if(this._heartbeatsCache===null&&(yield this._heartbeatsCachePromise),this._heartbeatsCache?.heartbeats==null||this._heartbeatsCache.heartbeats.length===0)return"";let e=In(),{heartbeatsToSend:t,unsentEntries:r}=Pi(this._heartbeatsCache.heartbeats),i=Be(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,r.length>0?(this._heartbeatsCache.heartbeats=r,yield this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}catch(e){return R.warn(e),""}})}};function In(){return new Date().toISOString().substring(0,10)}function Pi(n,e=Si){let t=[],r=n.slice();for(let i of n){let s=t.find(o=>o.agent===i.agent);if(s){if(s.dates.push(i.date),En(t)>e){s.dates.pop();break}}else if(t.push({agent:i.agent,dates:[i.date]}),En(t)>e){t.pop();break}r=r.slice(1)}return{heartbeatsToSend:t,unsentEntries:r}}var st=class{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}runIndexedDBEnvironmentCheck(){return a(this,null,function*(){return nn()?rn().then(()=>!0).catch(()=>!1):!1})}read(){return a(this,null,function*(){if(yield this._canUseIndexedDBPromise){let t=yield Ai(this.app);return t?.heartbeats?t:{heartbeats:[]}}else return{heartbeats:[]}})}overwrite(e){return a(this,null,function*(){if(yield this._canUseIndexedDBPromise){let r=yield this.read();return _n(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return})}add(e){return a(this,null,function*(){if(yield this._canUseIndexedDBPromise){let r=yield this.read();return _n(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}else return})}};function En(n){return Be(JSON.stringify({version:2,heartbeats:n})).length}function ki(n){if(n.length===0)return-1;let e=0,t=n[0].date;for(let r=1;r<n.length;r++)n[r].date<t&&(t=n[r].date,e=r);return e}function Ci(n){G(new w("platform-logger",e=>new Ze(e),"PRIVATE")),G(new w("heartbeat",e=>new it(e),"PRIVATE")),M(et,mn,n),M(et,mn,"esm2020"),M("fire-js","")}Ci("");function xn(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}var Fn=xn,Vn=new S("auth","Firebase",xn());var ye=new q("@firebase/auth");function Oi(n,...e){ye.logLevel<=f.WARN&&ye.warn(`Auth (${K}): ${n}`,...e)}function ge(n,...e){ye.logLevel<=f.ERROR&&ye.error(`Auth (${K}): ${n}`,...e)}function A(n,...e){throw bt(n,...e)}function T(n,...e){return bt(n,...e)}function vt(n,e,t){let r=O(g({},Fn()),{[e]:t});return new S("auth","Firebase",r).create(e,{appName:n.name})}function B(n){return vt(n,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function Ni(n,e,t){let r=t;if(!(e instanceof r))throw r.name!==e.constructor.name&&A(n,"argument-error"),vt(n,"argument-error",`Type of ${e.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function bt(n,...e){if(typeof n!="string"){let t=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=n.name),n._errorFactory.create(t,...r)}return Vn.create(n,...e)}function d(n,e,...t){if(!n)throw bt(e,...t)}function P(n){let e="INTERNAL ASSERTION FAILED: "+n;throw ge(e),new Error(e)}function C(n,e){n||P(e)}function lt(){return typeof self<"u"&&self.location?.href||""}function Di(){return vn()==="http:"||vn()==="https:"}function vn(){return typeof self<"u"&&self.location?.protocol||null}function Li(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(Di()||Zt()||"connection"in navigator)?navigator.onLine:!0}function Mi(){if(typeof navigator>"u")return null;let n=navigator;return n.languages&&n.languages[0]||n.language||null}var $=class{constructor(e,t){this.shortDelay=e,this.longDelay=t,C(t>e,"Short delay should be less than long delay!"),this.isMobile=Xt()||en()}get(){return Li()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function At(n,e){C(n.emulator,"Emulator should always be set here");let{url:t}=n.emulator;return e?`${t}${e.startsWith("/")?e.slice(1):e}`:t}var Te=class{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){if(this.fetchImpl)return this.fetchImpl;if(typeof self<"u"&&"fetch"in self)return self.fetch;if(typeof globalThis<"u"&&globalThis.fetch)return globalThis.fetch;if(typeof fetch<"u")return fetch;P("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){if(this.headersImpl)return this.headersImpl;if(typeof self<"u"&&"Headers"in self)return self.Headers;if(typeof globalThis<"u"&&globalThis.Headers)return globalThis.Headers;if(typeof Headers<"u")return Headers;P("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){if(this.responseImpl)return this.responseImpl;if(typeof self<"u"&&"Response"in self)return self.Response;if(typeof globalThis<"u"&&globalThis.Response)return globalThis.Response;if(typeof Response<"u")return Response;P("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var Ui={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"};var xi=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],Fi=new $(3e4,6e4);function St(n,e){return n.tenantId&&!e.tenantId?O(g({},e),{tenantId:n.tenantId}):e}function Y(s,o,c,u){return a(this,arguments,function*(n,e,t,r,i={}){return Hn(n,i,()=>a(null,null,function*(){let l={},h={};r&&(e==="GET"?h=r:l={body:JSON.stringify(r)});let p=j(g({key:n.config.apiKey},h)).slice(1),m=yield n._getAdditionalHeaders();m["Content-Type"]="application/json",n.languageCode&&(m["X-Firebase-Locale"]=n.languageCode);let I=g({method:e,headers:m},l);return Qt()||(I.referrerPolicy="no-referrer"),n.emulatorConfig&&de(n.emulatorConfig.host)&&(I.credentials="include"),Te.fetch()(yield Wn(n,n.config.apiHost,t,p),I)}))})}function Hn(n,e,t){return a(this,null,function*(){n._canInitEmulator=!1;let r=g(g({},Ui),e);try{let i=new dt(n),s=yield Promise.race([t(),i.promise]);i.clearNetworkTimeout();let o=yield s.json();if("needConfirmation"in o)throw me(n,"account-exists-with-different-credential",o);if(s.ok&&!("errorMessage"in o))return o;{let c=s.ok?o.errorMessage:o.error.message,[u,l]=c.split(" : ");if(u==="FEDERATED_USER_ID_ALREADY_LINKED")throw me(n,"credential-already-in-use",o);if(u==="EMAIL_EXISTS")throw me(n,"email-already-in-use",o);if(u==="USER_DISABLED")throw me(n,"user-disabled",o);let h=r[u]||u.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw vt(n,h,l);A(n,h)}}catch(i){if(i instanceof E)throw i;A(n,"network-request-failed",{message:String(i)})}})}function Vi(s,o,c,u){return a(this,arguments,function*(n,e,t,r,i={}){let l=yield Y(n,e,t,r,i);return"mfaPendingCredential"in l&&A(n,"multi-factor-auth-required",{_serverResponse:l}),l})}function Wn(n,e,t,r){return a(this,null,function*(){let i=`${e}${t}?${r}`,s=n,o=s.config.emulator?At(n.config,i):`${n.config.apiScheme}://${i}`;return xi.includes(t)&&(yield s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o})}var dt=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((t,r)=>{this.timer=setTimeout(()=>r(T(this.auth,"network-request-failed")),Fi.get())})}};function me(n,e,t){let r={appName:n.name};t.email&&(r.email=t.email),t.phoneNumber&&(r.phoneNumber=t.phoneNumber);let i=T(n,e,r);return i.customData._tokenResponse=t,i}function Hi(n,e){return a(this,null,function*(){return Y(n,"POST","/v1/accounts:delete",e)})}function we(n,e){return a(this,null,function*(){return Y(n,"POST","/v1/accounts:lookup",e)})}function Z(n){if(n)try{let e=new Date(Number(n));if(!isNaN(e.getTime()))return e.toUTCString()}catch(e){}}function Bn(n,e=!1){return a(this,null,function*(){let t=H(n),r=yield t.getIdToken(e),i=Rt(r);d(i&&i.exp&&i.auth_time&&i.iat,t.auth,"internal-error");let s=typeof i.firebase=="object"?i.firebase:void 0,o=s?.sign_in_provider;return{claims:i,token:r,authTime:Z(ct(i.auth_time)),issuedAtTime:Z(ct(i.iat)),expirationTime:Z(ct(i.exp)),signInProvider:o||null,signInSecondFactor:s?.sign_in_second_factor||null}})}function ct(n){return Number(n)*1e3}function Rt(n){let[e,t,r]=n.split(".");if(e===void 0||t===void 0||r===void 0)return ge("JWT malformed, contained fewer than 3 sections"),null;try{let i=le(t);return i?JSON.parse(i):(ge("Failed to decode base64 JWT payload"),null)}catch(i){return ge("Caught error parsing JWT payload as JSON",i?.toString()),null}}function bn(n){let e=Rt(n);return d(e,"internal-error"),d(typeof e.exp<"u","internal-error"),d(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}function te(n,e,t=!1){return a(this,null,function*(){if(t)return e;try{return yield e}catch(r){throw r instanceof E&&Wi(r)&&n.auth.currentUser===n&&(yield n.auth.signOut()),r}})}function Wi({code:n}){return n==="auth/user-disabled"||n==="auth/user-token-expired"}var ht=class{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,this.timerId!==null&&clearTimeout(this.timerId))}getInterval(e){if(e){let t=this.errorBackoff;return this.errorBackoff=Math.min(this.errorBackoff*2,96e4),t}else{this.errorBackoff=3e4;let r=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5;return Math.max(0,r)}}schedule(e=!1){if(!this.isRunning)return;let t=this.getInterval(e);this.timerId=setTimeout(()=>a(this,null,function*(){yield this.iteration()}),t)}iteration(){return a(this,null,function*(){try{yield this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()})}};var ne=class{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Z(this.lastLoginAt),this.creationTime=Z(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};function ve(n){return a(this,null,function*(){let e=n.auth,t=yield n.getIdToken(),r=yield te(n,we(e,{idToken:t}));d(r?.users.length,e,"internal-error");let i=r.users[0];n._notifyReloadListener(i);let s=i.providerUserInfo?.length?zn(i.providerUserInfo):[],o=Bi(n.providerData,s),c=n.isAnonymous,u=!(n.email&&i.passwordHash)&&!o?.length,l=c?u:!1,h={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:o,metadata:new ne(i.createdAt,i.lastLoginAt),isAnonymous:l};Object.assign(n,h)})}function $n(n){return a(this,null,function*(){let e=H(n);yield ve(e),yield e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)})}function Bi(n,e){return[...n.filter(r=>!e.some(i=>i.providerId===r.providerId)),...e]}function zn(n){return n.map(r=>{var i=r,{providerId:e}=i,t=ae(i,["providerId"]);return{providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}})}function $i(n,e){return a(this,null,function*(){let t=yield Hn(n,{},()=>a(null,null,function*(){let r=j({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:i,apiKey:s}=n.config,o=yield Wn(n,i,"/v1/token",`key=${s}`),c=yield n._getAdditionalHeaders();c["Content-Type"]="application/x-www-form-urlencoded";let u={method:"POST",headers:c,body:r};return n.emulatorConfig&&de(n.emulatorConfig.host)&&(u.credentials="include"),Te.fetch()(o,u)}));return{accessToken:t.access_token,expiresIn:t.expires_in,refreshToken:t.refresh_token}})}function zi(n,e){return a(this,null,function*(){return Y(n,"POST","/v2/accounts:revokeToken",St(n,e))})}var ee=class n{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){d(e.idToken,"internal-error"),d(typeof e.idToken<"u","internal-error"),d(typeof e.refreshToken<"u","internal-error");let t="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):bn(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){d(e.length!==0,"internal-error");let t=bn(e);this.updateTokensAndExpiration(e,null,t)}getToken(e,t=!1){return a(this,null,function*(){return!t&&this.accessToken&&!this.isExpired?this.accessToken:(d(this.refreshToken,e,"user-token-expired"),this.refreshToken?(yield this.refresh(e,this.refreshToken),this.accessToken):null)})}clearRefreshToken(){this.refreshToken=null}refresh(e,t){return a(this,null,function*(){let{accessToken:r,refreshToken:i,expiresIn:s}=yield $i(e,t);this.updateTokensAndExpiration(r,i,Number(s))})}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+r*1e3}static fromJSON(e,t){let{refreshToken:r,accessToken:i,expirationTime:s}=t,o=new n;return r&&(d(typeof r=="string","internal-error",{appName:e}),o.refreshToken=r),i&&(d(typeof i=="string","internal-error",{appName:e}),o.accessToken=i),s&&(d(typeof s=="number","internal-error",{appName:e}),o.expirationTime=s),o}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new n,this.toJSON())}_performRefresh(){return P("not implemented")}};function U(n,e){d(typeof n=="string"||typeof n>"u","internal-error",{appName:e})}var x=class n{constructor(s){var o=s,{uid:e,auth:t,stsTokenManager:r}=o,i=ae(o,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new ht(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new ne(i.createdAt||void 0,i.lastLoginAt||void 0)}getIdToken(e){return a(this,null,function*(){let t=yield te(this,this.stsTokenManager.getToken(this.auth,e));return d(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,yield this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t})}getIdTokenResult(e){return Bn(this,e)}reload(){return $n(this)}_assign(e){this!==e&&(d(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(t=>g({},t)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let t=new n(O(g({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){d(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}_updateTokensIfNecessary(e,t=!1){return a(this,null,function*(){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&(yield ve(this)),yield this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)})}delete(){return a(this,null,function*(){if(y(this.auth.app))return Promise.reject(B(this.auth));let e=yield this.getIdToken();return yield te(this,Hi(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()})}toJSON(){return O(g({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>g({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){let r=t.displayName??void 0,i=t.email??void 0,s=t.phoneNumber??void 0,o=t.photoURL??void 0,c=t.tenantId??void 0,u=t._redirectEventId??void 0,l=t.createdAt??void 0,h=t.lastLoginAt??void 0,{uid:p,emailVerified:m,isAnonymous:I,providerData:F,stsTokenManager:Lt}=t;d(p&&Lt,e,"internal-error");let Ir=ee.fromJSON(this.name,Lt);d(typeof p=="string",e,"internal-error"),U(r,e.name),U(i,e.name),d(typeof m=="boolean",e,"internal-error"),d(typeof I=="boolean",e,"internal-error"),U(s,e.name),U(o,e.name),U(c,e.name),U(u,e.name),U(l,e.name),U(h,e.name);let Ue=new n({uid:p,auth:e,email:i,emailVerified:m,displayName:r,isAnonymous:I,photoURL:o,phoneNumber:s,tenantId:c,stsTokenManager:Ir,createdAt:l,lastLoginAt:h});return F&&Array.isArray(F)&&(Ue.providerData=F.map(Er=>g({},Er))),u&&(Ue._redirectEventId=u),Ue}static _fromIdTokenResponse(e,t,r=!1){return a(this,null,function*(){let i=new ee;i.updateFromServerResponse(t);let s=new n({uid:t.localId,auth:e,stsTokenManager:i,isAnonymous:r});return yield ve(s),s})}static _fromGetAccountInfoResponse(e,t,r){return a(this,null,function*(){let i=t.users[0];d(i.localId!==void 0,"internal-error");let s=i.providerUserInfo!==void 0?zn(i.providerUserInfo):[],o=!(i.email&&i.passwordHash)&&!s?.length,c=new ee;c.updateFromIdToken(r);let u=new n({uid:i.localId,auth:e,stsTokenManager:c,isAnonymous:o}),l={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:s,metadata:new ne(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash)&&!s?.length};return Object.assign(u,l),u})}};var An=new Map;function k(n){C(n instanceof Function,"Expected a class definition");let e=An.get(n);return e?(C(e instanceof n,"Instance stored in cache mismatched with class"),e):(e=new n,An.set(n,e),e)}var ji=(()=>{class n{constructor(){this.type="NONE",this.storage={}}_isAvailable(){return a(this,null,function*(){return!0})}_set(t,r){return a(this,null,function*(){this.storage[t]=r})}_get(t){return a(this,null,function*(){let r=this.storage[t];return r===void 0?null:r})}_remove(t){return a(this,null,function*(){delete this.storage[t]})}_addListener(t,r){}_removeListener(t,r){}}return n.type="NONE",n})(),ft=ji;function _e(n,e,t){return`firebase:${n}:${e}:${t}`}var be=class n{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;let{config:i,name:s}=this.auth;this.fullUserKey=_e(this.userKey,i.apiKey,s),this.fullPersistenceKey=_e("persistence",i.apiKey,s),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}getCurrentUser(){return a(this,null,function*(){let e=yield this.persistence._get(this.fullUserKey);if(!e)return null;if(typeof e=="string"){let t=yield we(this.auth,{idToken:e}).catch(()=>{});return t?x._fromGetAccountInfoResponse(this.auth,t,e):null}return x._fromJSON(this.auth,e)})}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}setPersistence(e){return a(this,null,function*(){if(this.persistence===e)return;let t=yield this.getCurrentUser();if(yield this.removeCurrentUser(),this.persistence=e,t)return this.setCurrentUser(t)})}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static create(e,t,r="authUser"){return a(this,null,function*(){if(!t.length)return new n(k(ft),e,r);let i=(yield Promise.all(t.map(l=>a(null,null,function*(){if(yield l._isAvailable())return l})))).filter(l=>l),s=i[0]||k(ft),o=_e(r,e.config.apiKey,e.name),c=null;for(let l of t)try{let h=yield l._get(o);if(h){let p;if(typeof h=="string"){let m=yield we(e,{idToken:h}).catch(()=>{});if(!m)break;p=yield x._fromGetAccountInfoResponse(e,m,h)}else p=x._fromJSON(e,h);l!==s&&(c=p),s=l;break}}catch(h){}let u=i.filter(l=>l._shouldAllowMigration);return!s._shouldAllowMigration||!u.length?new n(s,e,r):(s=u[0],c&&(yield s._set(o,c.toJSON())),yield Promise.all(t.map(l=>a(null,null,function*(){if(l!==s)try{yield l._remove(o)}catch(h){}}))),new n(s,e,r))})}};function Sn(n){let e=n.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(Kn(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(jn(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Yn(e))return"Blackberry";if(Xn(e))return"Webos";if(qn(e))return"Safari";if((e.includes("chrome/")||Gn(e))&&!e.includes("edge/"))return"Chrome";if(Jn(e))return"Android";{let t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,r=n.match(t);if(r?.length===2)return r[1]}return"Other"}function jn(n=_()){return/firefox\//i.test(n)}function qn(n=_()){let e=n.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function Gn(n=_()){return/crios\//i.test(n)}function Kn(n=_()){return/iemobile/i.test(n)}function Jn(n=_()){return/android/i.test(n)}function Yn(n=_()){return/blackberry/i.test(n)}function Xn(n=_()){return/webos/i.test(n)}function Pt(n=_()){return/iphone|ipad|ipod/i.test(n)||/macintosh/i.test(n)&&/mobile/i.test(n)}function qi(n=_()){return Pt(n)&&!!window.navigator?.standalone}function Gi(){return tn()&&document.documentMode===10}function Qn(n=_()){return Pt(n)||Jn(n)||Xn(n)||Yn(n)||/windows phone/i.test(n)||Kn(n)}function Zn(n,e=[]){let t;switch(n){case"Browser":t=Sn(_());break;case"Worker":t=`${Sn(_())}-${n}`;break;default:t=n}let r=e.length?e.join(","):"FirebaseCore-web";return`${t}/JsCore/${K}/${r}`}var pt=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let r=s=>new Promise((o,c)=>{try{let u=e(s);o(u)}catch(u){c(u)}});r.onAbort=t,this.queue.push(r);let i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}runMiddleware(e){return a(this,null,function*(){if(this.auth.currentUser===e)return;let t=[];try{for(let r of this.queue)yield r(e),r.onAbort&&t.push(r.onAbort)}catch(r){t.reverse();for(let i of t)try{i()}catch(s){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:r?.message})}})}};function Ki(t){return a(this,arguments,function*(n,e={}){return Y(n,"GET","/v2/passwordPolicy",St(n,e))})}var Ji=6,mt=class{constructor(e){let t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??Ji,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),t.containsLowercaseCharacter!==void 0&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),t.containsUppercaseCharacter!==void 0&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),t.containsNumericCharacter!==void 0&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),t.containsNonAlphanumericCharacter!==void 0&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,this.enforcementState==="ENFORCEMENT_STATE_UNSPECIFIED"&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){let t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){let r=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),i&&(t.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,t){this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);let r;for(let i=0;i<e.length;i++)r=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(t,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,i,s){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=s))}};var gt=class{constructor(e,t,r,i){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Ae(this),this.idTokenSubscription=new Ae(this),this.beforeStateQueue=new pt(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Vn,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion,this._persistenceManagerAvailable=new Promise(s=>this._resolvePersistenceManagerAvailable=s)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=k(t)),this._initializationPromise=this.queue(()=>a(this,null,function*(){if(!this._deleted&&(this.persistenceManager=yield be.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{yield this._popupRedirectResolver._initialize(this)}catch(r){}yield this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,!this._deleted&&(this._isInitialized=!0)}})),this._initializationPromise}_onStorageEvent(){return a(this,null,function*(){if(this._deleted)return;let e=yield this.assertedPersistence.getCurrentUser();if(!(!this.currentUser&&!e)){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),yield this.currentUser.getIdToken();return}yield this._updateCurrentUser(e,!0)}})}initializeCurrentUserFromIdToken(e){return a(this,null,function*(){try{let t=yield we(this,{idToken:e}),r=yield x._fromGetAccountInfoResponse(this,t,e);yield this.directlySetCurrentUser(r)}catch(t){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",t),yield this.directlySetCurrentUser(null)}})}initializeCurrentUser(e){return a(this,null,function*(){if(y(this.app)){let s=this.app.settings.authIdToken;return s?new Promise(o=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(s).then(o,o))}):this.directlySetCurrentUser(null)}let t=yield this.assertedPersistence.getCurrentUser(),r=t,i=!1;if(e&&this.config.authDomain){yield this.getOrInitRedirectPersistenceManager();let s=this.redirectUser?._redirectEventId,o=r?._redirectEventId,c=yield this.tryRedirectSignIn(e);(!s||s===o)&&c?.user&&(r=c.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{yield this.beforeStateQueue.runMiddleware(r)}catch(s){r=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return d(this._popupRedirectResolver,this,"argument-error"),yield this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)})}tryRedirectSignIn(e){return a(this,null,function*(){let t=null;try{t=yield this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(r){yield this._setRedirectUser(null)}return t})}reloadAndSetCurrentUserOrClear(e){return a(this,null,function*(){try{yield ve(e)}catch(t){if(t?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)})}useDeviceLanguage(){this.languageCode=Mi()}_delete(){return a(this,null,function*(){this._deleted=!0})}updateCurrentUser(e){return a(this,null,function*(){if(y(this.app))return Promise.reject(B(this));let t=e?H(e):null;return t&&d(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))})}_updateCurrentUser(e,t=!1){return a(this,null,function*(){if(!this._deleted)return e&&d(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||(yield this.beforeStateQueue.runMiddleware(e)),this.queue(()=>a(this,null,function*(){yield this.directlySetCurrentUser(e),this.notifyAuthListeners()}))})}signOut(){return a(this,null,function*(){return y(this.app)?Promise.reject(B(this)):(yield this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&(yield this._setRedirectUser(null)),this._updateCurrentUser(null,!0))})}setPersistence(e){return y(this.app)?Promise.reject(B(this)):this.queue(()=>a(this,null,function*(){yield this.assertedPersistence.setPersistence(k(e))}))}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}validatePassword(e){return a(this,null,function*(){this._getPasswordPolicyInternal()||(yield this._updatePasswordPolicy());let t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)})}_getPasswordPolicyInternal(){return this.tenantId===null?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}_updatePasswordPolicy(){return a(this,null,function*(){let e=yield Ki(this),t=new mt(e);this.tenantId===null?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t})}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new S("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},t)}})}revokeAccessToken(e){return a(this,null,function*(){if(this.currentUser){let t=yield this.currentUser.getIdToken(),r={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:t};this.tenantId!=null&&(r.tenantId=this.tenantId),yield zi(this,r)}})}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}_setRedirectUser(e,t){return a(this,null,function*(){let r=yield this.getOrInitRedirectPersistenceManager(t);return e===null?r.removeCurrentUser():r.setCurrentUser(e)})}getOrInitRedirectPersistenceManager(e){return a(this,null,function*(){if(!this.redirectPersistenceManager){let t=e&&k(e)||this._popupRedirectResolver;d(t,this,"argument-error"),this.redirectPersistenceManager=yield be.create(this,[k(t._redirectPersistence)],"redirectUser"),this.redirectUser=yield this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager})}_redirectUserForId(e){return a(this,null,function*(){return this._isInitialized&&(yield this.queue(()=>a(this,null,function*(){}))),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null})}_persistUserIfCurrent(e){return a(this,null,function*(){if(e===this.currentUser)return this.queue(()=>a(this,null,function*(){return this.directlySetCurrentUser(e)}))})}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);let e=this.currentUser?.uid??null;this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,r,i){if(this._deleted)return()=>{};let s=typeof t=="function"?t:t.next.bind(t),o=!1,c=this._isInitialized?Promise.resolve():this._initializationPromise;if(d(c,this,"internal-error"),c.then(()=>{o||s(this.currentUser)}),typeof t=="function"){let u=e.addObserver(t,r,i);return()=>{o=!0,u()}}else{let u=e.addObserver(t);return()=>{o=!0,u()}}}directlySetCurrentUser(e){return a(this,null,function*(){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?yield this.assertedPersistence.setCurrentUser(e):yield this.assertedPersistence.removeCurrentUser()})}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return d(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=Zn(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}_getAdditionalHeaders(){return a(this,null,function*(){let e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);let t=yield this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();t&&(e["X-Firebase-Client"]=t);let r=yield this._getAppCheckToken();return r&&(e["X-Firebase-AppCheck"]=r),e})}_getAppCheckToken(){return a(this,null,function*(){if(y(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=yield this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&Oi(`Error while retrieving App Check token: ${e.error}`),e?.token})}};function De(n){return H(n)}var Ae=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=on(t=>this.observer=t)}get next(){return d(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var kt={loadJS(){return a(this,null,function*(){throw new Error("Unable to load external scripts")})},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Yi(n){kt=n}function Xi(n){return kt.loadJS(n)}function Qi(){return kt.gapiScript}function er(n){return`__${n}${Math.floor(Math.random()*1e6)}`}function tr(n,e){let t=ot(n,"auth");if(t.isInitialized()){let i=t.getImmediate(),s=t.getOptions();if(D(s,e??{}))return i;A(i,"already-initialized")}return t.initialize({options:e})}function Zi(n,e){let t=e?.persistence||[],r=(Array.isArray(t)?t:[t]).map(k);e?.errorMap&&n._updateErrorMap(e.errorMap),n._initializeWithPersistence(r,e?.popupRedirectResolver)}function nr(n,e,t){let r=De(n);d(/^https?:\/\//.test(e),r,"invalid-emulator-scheme");let i=!!t?.disableWarnings,s=rr(e),{host:o,port:c}=es(e),u=c===null?"":`:${c}`,l={url:`${s}//${o}${u}/`},h=Object.freeze({host:o,port:c,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});if(!r._canInitEmulator){d(r.config.emulator&&r.emulatorConfig,r,"emulator-config-failed"),d(D(l,r.config.emulator)&&D(h,r.emulatorConfig),r,"emulator-config-failed");return}r.config.emulator=l,r.emulatorConfig=h,r.settings.appVerificationDisabledForTesting=!0,de(o)?an(`${s}//${o}${u}`):i||ts()}function rr(n){let e=n.indexOf(":");return e<0?"":n.substr(0,e+1)}function es(n){let e=rr(n),t=/(\/\/)?([^?#/]+)/.exec(n.substr(e.length));if(!t)return{host:"",port:null};let r=t[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){let s=i[1];return{host:s,port:Rn(r.substr(s.length+1))}}else{let[s,o]=r.split(":");return{host:s,port:Rn(o)}}}function Rn(n){if(!n)return null;let e=Number(n);return isNaN(e)?null:e}function ts(){function n(){let e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}typeof console<"u"&&typeof console.info=="function"&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),typeof window<"u"&&typeof document<"u"&&(document.readyState==="loading"?window.addEventListener("DOMContentLoaded",n):n())}var re=class{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return P("not implemented")}_getIdTokenResponse(e){return P("not implemented")}_linkToIdToken(e,t){return P("not implemented")}_getReauthenticationResolver(e){return P("not implemented")}};function J(n,e){return a(this,null,function*(){return Vi(n,"POST","/v1/accounts:signInWithIdp",St(n,e))})}var ns="http://localhost",Se=class n extends re{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let t=new n(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):A("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){let c=typeof e=="string"?JSON.parse(e):e,{providerId:r,signInMethod:i}=c,s=ae(c,["providerId","signInMethod"]);if(!r||!i)return null;let o=new n(r,i);return o.idToken=s.idToken||void 0,o.accessToken=s.accessToken||void 0,o.secret=s.secret,o.nonce=s.nonce,o.pendingToken=s.pendingToken||null,o}_getIdTokenResponse(e){let t=this.buildRequest();return J(e,t)}_linkToIdToken(e,t){let r=this.buildRequest();return r.idToken=t,J(e,r)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,J(e,t)}buildRequest(){let e={requestUri:ns,returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{let t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=j(t)}return e}};var ie=class{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}};var Re=class extends ie{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}};var Le=(()=>{class n extends Re{constructor(){super("google.com"),this.addScope("profile")}static credential(t,r){return Se._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.GOOGLE_SIGN_IN_METHOD,idToken:t,accessToken:r})}static credentialFromResult(t){return n.credentialFromTaggedObject(t)}static credentialFromError(t){return n.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;let{oauthIdToken:r,oauthAccessToken:i}=t;if(!r&&!i)return null;try{return n.credential(r,i)}catch(s){return null}}}n.GOOGLE_SIGN_IN_METHOD="google.com",n.PROVIDER_ID="google.com";return n})();var se=class n{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static _fromIdTokenResponse(e,t,r,i=!1){return a(this,null,function*(){let s=yield x._fromIdTokenResponse(e,r,i),o=Pn(r);return new n({user:s,providerId:o,_tokenResponse:r,operationType:t})})}static _forOperation(e,t,r){return a(this,null,function*(){yield e._updateTokensIfNecessary(r,!0);let i=Pn(r);return new n({user:e,providerId:i,_tokenResponse:r,operationType:t})})}};function Pn(n){return n.providerId?n.providerId:"phoneNumber"in n?"phone":null}var _t=class n extends E{constructor(e,t,r,i){super(t.code,t.message),this.operationType=r,this.user=i,Object.setPrototypeOf(this,n.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,i){return new n(e,t,r,i)}};function ir(n,e,t,r){return(e==="reauthenticate"?t._getReauthenticationResolver(n):t._getIdTokenResponse(n)).catch(s=>{throw s.code==="auth/multi-factor-auth-required"?_t._fromErrorAndOperation(n,s,e,r):s})}function rs(n,e,t=!1){return a(this,null,function*(){let r=yield te(n,e._linkToIdToken(n.auth,yield n.getIdToken()),t);return se._forOperation(n,"link",r)})}function is(n,e,t=!1){return a(this,null,function*(){let{auth:r}=n;if(y(r.app))return Promise.reject(B(r));let i="reauthenticate";try{let s=yield te(n,ir(r,i,e,n),t);d(s.idToken,r,"internal-error");let o=Rt(s.idToken);d(o,r,"internal-error");let{sub:c}=o;return d(n.uid===c,r,"user-mismatch"),se._forOperation(n,i,s)}catch(s){throw s?.code==="auth/user-not-found"&&A(r,"user-mismatch"),s}})}function ss(n,e,t=!1){return a(this,null,function*(){if(y(n.app))return Promise.reject(B(n));let r="signIn",i=yield ir(n,r,e),s=yield se._fromIdTokenResponse(n,r,i);return t||(yield n._updateCurrentUser(s.user)),s})}function sr(n,e,t,r){return H(n).onIdTokenChanged(e,t,r)}function or(n,e,t){return H(n).beforeAuthStateChanged(e,t)}var Pe="__sak";var ke=class{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Pe,"1"),this.storage.removeItem(Pe),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){let t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}};var os=1e3,as=10,cs=(()=>{class n extends ke{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(t,r)=>this.onStorageEvent(t,r),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=Qn(),this._shouldAllowMigration=!0}forAllChangedKeys(t){for(let r of Object.keys(this.listeners)){let i=this.storage.getItem(r),s=this.localCache[r];i!==s&&t(r,s,i)}}onStorageEvent(t,r=!1){if(!t.key){this.forAllChangedKeys((c,u,l)=>{this.notifyListeners(c,l)});return}let i=t.key;r?this.detachListener():this.stopPolling();let s=()=>{let c=this.storage.getItem(i);!r&&this.localCache[i]===c||this.notifyListeners(i,c)},o=this.storage.getItem(i);Gi()&&o!==t.newValue&&t.newValue!==t.oldValue?setTimeout(s,as):s()}notifyListeners(t,r){this.localCache[t]=r;let i=this.listeners[t];if(i)for(let s of Array.from(i))s(r&&JSON.parse(r))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((t,r,i)=>{this.onStorageEvent(new StorageEvent("storage",{key:t,oldValue:r,newValue:i}),!0)})},os)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(t,r){Object.keys(this.listeners).length===0&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[t]||(this.listeners[t]=new Set,this.localCache[t]=this.storage.getItem(t)),this.listeners[t].add(r)}_removeListener(t,r){this.listeners[t]&&(this.listeners[t].delete(r),this.listeners[t].size===0&&delete this.listeners[t]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}_set(t,r){return a(this,null,function*(){yield V(n.prototype,this,"_set").call(this,t,r),this.localCache[t]=JSON.stringify(r)})}_get(t){return a(this,null,function*(){let r=yield V(n.prototype,this,"_get").call(this,t);return this.localCache[t]=JSON.stringify(r),r})}_remove(t){return a(this,null,function*(){yield V(n.prototype,this,"_remove").call(this,t),delete this.localCache[t]})}}return n.type="LOCAL",n})(),ar=cs;var us=(()=>{class n extends ke{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(t,r){}_removeListener(t,r){}}return n.type="SESSION",n})(),Ct=us;function ls(n){return Promise.all(n.map(e=>a(null,null,function*(){try{return{fulfilled:!0,value:yield e}}catch(t){return{fulfilled:!1,reason:t}}})))}var ds=(()=>{class n{constructor(t){this.eventTarget=t,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){let r=this.receivers.find(s=>s.isListeningto(t));if(r)return r;let i=new n(t);return this.receivers.push(i),i}isListeningto(t){return this.eventTarget===t}handleEvent(t){return a(this,null,function*(){let r=t,{eventId:i,eventType:s,data:o}=r.data,c=this.handlersMap[s];if(!c?.size)return;r.ports[0].postMessage({status:"ack",eventId:i,eventType:s});let u=Array.from(c).map(h=>a(this,null,function*(){return h(r.origin,o)})),l=yield ls(u);r.ports[0].postMessage({status:"done",eventId:i,eventType:s,response:l})})}_subscribe(t,r){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[t]||(this.handlersMap[t]=new Set),this.handlersMap[t].add(r)}_unsubscribe(t,r){this.handlersMap[t]&&r&&this.handlersMap[t].delete(r),(!r||this.handlersMap[t].size===0)&&delete this.handlersMap[t],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}n.receivers=[];return n})();function Ot(n="",e=10){let t="";for(let r=0;r<e;r++)t+=Math.floor(Math.random()*10);return n+t}var It=class{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}_send(e,t,r=50){return a(this,null,function*(){let i=typeof MessageChannel<"u"?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let s,o;return new Promise((c,u)=>{let l=Ot("",20);i.port1.start();let h=setTimeout(()=>{u(new Error("unsupported_event"))},r);o={messageChannel:i,onMessage(p){let m=p;if(m.data.eventId===l)switch(m.data.status){case"ack":clearTimeout(h),s=setTimeout(()=>{u(new Error("timeout"))},3e3);break;case"done":clearTimeout(s),c(m.data.response);break;default:clearTimeout(h),clearTimeout(s),u(new Error("invalid_response"));break}}},this.handlers.add(o),i.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:l,data:t},[i.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})})}};function b(){return window}function hs(n){b().location.href=n}function cr(){return typeof b().WorkerGlobalScope<"u"&&typeof b().importScripts=="function"}function fs(){return a(this,null,function*(){if(!navigator?.serviceWorker)return null;try{return(yield navigator.serviceWorker.ready).active}catch(n){return null}})}function ps(){return navigator?.serviceWorker?.controller||null}function ms(){return cr()?self:null}var ur="firebaseLocalStorageDb",gs=1,Ce="firebaseLocalStorage",lr="fbase_key",z=class{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}};function Me(n,e){return n.transaction([Ce],e?"readwrite":"readonly").objectStore(Ce)}function _s(){let n=indexedDB.deleteDatabase(ur);return new z(n).toPromise()}function dr(){let n=indexedDB.open(ur,gs);return new Promise((e,t)=>{n.addEventListener("error",()=>{t(n.error)}),n.addEventListener("upgradeneeded",()=>{let r=n.result;try{r.createObjectStore(Ce,{keyPath:lr})}catch(i){t(i)}}),n.addEventListener("success",()=>a(null,null,function*(){let r=n.result;r.objectStoreNames.contains(Ce)?e(r):(r.close(),yield _s(),e(yield dr()))}))})}function kn(n,e,t){return a(this,null,function*(){let r=Me(n,!0).put({[lr]:e,value:t});return new z(r).toPromise()})}function Is(n,e){return a(this,null,function*(){let t=Me(n,!1).get(e),r=yield new z(t).toPromise();return r===void 0?null:r.value})}function Cn(n,e){let t=Me(n,!0).delete(e);return new z(t).toPromise()}var Es=800,ys=3,Ts=(()=>{class n{constructor(){this.type="LOCAL",this.dbPromise=null,this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}_openDb(){return a(this,null,function*(){return this.dbPromise?this.dbPromise:(this.dbPromise=dr(),this.dbPromise.catch(()=>{this.dbPromise=null}),this.dbPromise)})}_withRetries(t){return a(this,null,function*(){let r=0;for(;;)try{let i=yield this._openDb();return yield t(i)}catch(i){if(r++>ys)throw i;this.dbPromise&&((yield this.dbPromise).close(),this.dbPromise=null)}})}initializeServiceWorkerMessaging(){return a(this,null,function*(){return cr()?this.initializeReceiver():this.initializeSender()})}initializeReceiver(){return a(this,null,function*(){this.receiver=ds._getInstance(ms()),this.receiver._subscribe("keyChanged",(t,r)=>a(this,null,function*(){return{keyProcessed:(yield this._poll()).includes(r.key)}})),this.receiver._subscribe("ping",(t,r)=>a(this,null,function*(){return["keyChanged"]}))})}initializeSender(){return a(this,null,function*(){if(this.activeServiceWorker=yield fs(),!this.activeServiceWorker)return;this.sender=new It(this.activeServiceWorker);let t=yield this.sender._send("ping",{},800);t&&t[0]?.fulfilled&&t[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)})}notifyServiceWorker(t){return a(this,null,function*(){if(!(!this.sender||!this.activeServiceWorker||ps()!==this.activeServiceWorker))try{yield this.sender._send("keyChanged",{key:t},this.serviceWorkerReceiverAvailable?800:50)}catch(r){}})}_isAvailable(){return a(this,null,function*(){try{return indexedDB?(yield this._withRetries(t=>a(this,null,function*(){yield kn(t,Pe,"1"),yield Cn(t,Pe)})),!0):!1}catch(t){}return!1})}_withPendingWrite(t){return a(this,null,function*(){this.pendingWrites++;try{yield t()}finally{this.pendingWrites--}})}_set(t,r){return a(this,null,function*(){return this._withPendingWrite(()=>a(this,null,function*(){return yield this._withRetries(i=>kn(i,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)}))})}_get(t){return a(this,null,function*(){let r=yield this._withRetries(i=>Is(i,t));return this.localCache[t]=r,r})}_remove(t){return a(this,null,function*(){return this._withPendingWrite(()=>a(this,null,function*(){return yield this._withRetries(r=>Cn(r,t)),delete this.localCache[t],this.notifyServiceWorker(t)}))})}_poll(){return a(this,null,function*(){let t=yield this._withRetries(s=>{let o=Me(s,!1).getAll();return new z(o).toPromise()});if(!t)return[];if(this.pendingWrites!==0)return[];let r=[],i=new Set;if(t.length!==0)for(let{fbase_key:s,value:o}of t)i.add(s),JSON.stringify(this.localCache[s])!==JSON.stringify(o)&&(this.notifyListeners(s,o),r.push(s));for(let s of Object.keys(this.localCache))this.localCache[s]&&!i.has(s)&&(this.notifyListeners(s,null),r.push(s));return r})}notifyListeners(t,r){this.localCache[t]=r;let i=this.listeners[t];if(i)for(let s of Array.from(i))s(r)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>a(this,null,function*(){return this._poll()}),Es)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(t,r){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[t]||(this.listeners[t]=new Set,this._get(t)),this.listeners[t].add(r)}_removeListener(t,r){this.listeners[t]&&(this.listeners[t].delete(r),this.listeners[t].size===0&&delete this.listeners[t]),Object.keys(this.listeners).length===0&&this.stopPolling()}}return n.type="LOCAL",n})(),hr=Ts;var Ko=er("rcb"),Jo=new $(3e4,6e4);function fr(n,e){return e?k(e):(d(n._popupRedirectResolver,n,"argument-error"),n._popupRedirectResolver)}var oe=class extends re{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return J(e,this._buildIdpRequest())}_linkToIdToken(e,t){return J(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return J(e,this._buildIdpRequest())}_buildIdpRequest(e){let t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}};function ws(n){return ss(n.auth,new oe(n),n.bypassAuthState)}function vs(n){let{auth:e,user:t}=n;return d(t,e,"internal-error"),is(t,new oe(n),n.bypassAuthState)}function bs(n){return a(this,null,function*(){let{auth:e,user:t}=n;return d(t,e,"internal-error"),rs(t,new oe(n),n.bypassAuthState)})}var Oe=class{constructor(e,t,r,i,s=!1){this.auth=e,this.resolver=r,this.user=i,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise((e,t)=>a(this,null,function*(){this.pendingPromise={resolve:e,reject:t};try{this.eventManager=yield this.resolver._initialize(this.auth),yield this.onExecution(),this.eventManager.registerConsumer(this)}catch(r){this.reject(r)}}))}onAuthEvent(e){return a(this,null,function*(){let{urlResponse:t,sessionId:r,postBody:i,tenantId:s,error:o,type:c}=e;if(o){this.reject(o);return}let u={auth:this.auth,requestUri:t,sessionId:r,tenantId:s||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(yield this.getIdpTask(c)(u))}catch(l){this.reject(l)}})}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return ws;case"linkViaPopup":case"linkViaRedirect":return bs;case"reauthViaPopup":case"reauthViaRedirect":return vs;default:A(this.auth,"internal-error")}}resolve(e){C(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){C(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}};var As=new $(2e3,1e4);function Nt(n,e,t){return a(this,null,function*(){if(y(n.app))return Promise.reject(T(n,"operation-not-supported-in-this-environment"));let r=De(n);Ni(n,e,ie);let i=fr(r,t);return new Ss(r,"signInViaPopup",e,i).executeNotNull()})}var Ss=(()=>{class n extends Oe{constructor(t,r,i,s,o){super(t,r,s,o),this.provider=i,this.authWindow=null,this.pollId=null,n.currentPopupAction&&n.currentPopupAction.cancel(),n.currentPopupAction=this}executeNotNull(){return a(this,null,function*(){let t=yield this.execute();return d(t,this.auth,"internal-error"),t})}onExecution(){return a(this,null,function*(){C(this.filter.length===1,"Popup operations only handle one event");let t=Ot();this.authWindow=yield this.resolver._openPopup(this.auth,this.provider,this.filter[0],t),this.authWindow.associatedEvent=t,this.resolver._originValidation(this.auth).catch(r=>{this.reject(r)}),this.resolver._isIframeWebStorageSupported(this.auth,r=>{r||this.reject(T(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()})}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(T(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,n.currentPopupAction=null}pollUserCancellation(){let t=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(T(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(t,As.get())};t()}}n.currentPopupAction=null;return n})(),Rs="pendingRedirect",Ie=new Map,Et=class n extends Oe{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}execute(){return a(this,null,function*(){let e=Ie.get(this.auth._key());if(!e){try{let r=(yield Ps(this.resolver,this.auth))?yield V(n.prototype,this,"execute").call(this):null;e=()=>Promise.resolve(r)}catch(t){e=()=>Promise.reject(t)}Ie.set(this.auth._key(),e)}return this.bypassAuthState||Ie.set(this.auth._key(),()=>Promise.resolve(null)),e()})}onAuthEvent(e){return a(this,null,function*(){if(e.type==="signInViaRedirect")return V(n.prototype,this,"onAuthEvent").call(this,e);if(e.type==="unknown"){this.resolve(null);return}if(e.eventId){let t=yield this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,V(n.prototype,this,"onAuthEvent").call(this,e);this.resolve(null)}})}onExecution(){return a(this,null,function*(){})}cleanUp(){}};function Ps(n,e){return a(this,null,function*(){let t=Os(e),r=Cs(n);if(!(yield r._isAvailable()))return!1;let i=(yield r._get(t))==="true";return yield r._remove(t),i})}function ks(n,e){Ie.set(n._key(),e)}function Cs(n){return k(n._redirectPersistence)}function Os(n){return _e(Rs,n.config.apiKey,n.name)}function Ns(n,e,t=!1){return a(this,null,function*(){if(y(n.app))return Promise.reject(B(n));let r=De(n),i=fr(r,e),o=yield new Et(r,i,t).execute();return o&&!t&&(delete o.user._redirectEventId,yield r._persistUserIfCurrent(o.user),yield r._setRedirectUser(null,e)),o})}var Ds=600*1e3,yt=class{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach(r=>{this.isEventForConsumer(e,r)&&(t=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!Ls(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!pr(e)){let r=e.error.code?.split("auth/")[1]||"internal-error";t.onError(T(this.auth,r))}else t.onAuthEvent(e)}isEventForConsumer(e,t){let r=t.eventId===null||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=Ds&&this.cachedEventUids.clear(),this.cachedEventUids.has(On(e))}saveEventToCache(e){this.cachedEventUids.add(On(e)),this.lastProcessedEventTime=Date.now()}};function On(n){return[n.type,n.eventId,n.sessionId,n.tenantId].filter(e=>e).join("-")}function pr({type:n,error:e}){return n==="unknown"&&e?.code==="auth/no-auth-event"}function Ls(n){switch(n.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return pr(n);default:return!1}}function Ms(t){return a(this,arguments,function*(n,e={}){return Y(n,"GET","/v1/projects",e)})}var Us=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,xs=/^https?/;function Fs(n){return a(this,null,function*(){if(n.config.emulator)return;let{authorizedDomains:e}=yield Ms(n);for(let t of e)try{if(Vs(t))return}catch(r){}A(n,"unauthorized-domain")})}function Vs(n){let e=lt(),{protocol:t,hostname:r}=new URL(e);if(n.startsWith("chrome-extension://")){let o=new URL(n);return o.hostname===""&&r===""?t==="chrome-extension:"&&n.replace("chrome-extension://","")===e.replace("chrome-extension://",""):t==="chrome-extension:"&&o.hostname===r}if(!xs.test(t))return!1;if(Us.test(n))return r===n;let i=n.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}var Hs=new $(3e4,6e4);function Nn(){let n=b().___jsl;if(n?.H){for(let e of Object.keys(n.H))if(n.H[e].r=n.H[e].r||[],n.H[e].L=n.H[e].L||[],n.H[e].r=[...n.H[e].L],n.CP)for(let t=0;t<n.CP.length;t++)n.CP[t]=null}}function Ws(n){return new Promise((e,t)=>{function r(){Nn(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Nn(),t(T(n,"network-request-failed"))},timeout:Hs.get()})}if(b().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else if(b().gapi?.load)r();else{let i=er("iframefcb");return b()[i]=()=>{gapi.load?r():t(T(n,"network-request-failed"))},Xi(`${Qi()}?onload=${i}`).catch(s=>t(s))}}).catch(e=>{throw Ee=null,e})}var Ee=null;function Bs(n){return Ee=Ee||Ws(n),Ee}var $s=new $(5e3,15e3),zs="__/auth/iframe",js="emulator/auth/iframe",qs={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Gs=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Ks(n){let e=n.config;d(e.authDomain,n,"auth-domain-config-required");let t=e.emulator?At(e,js):`https://${n.config.authDomain}/${zs}`,r={apiKey:e.apiKey,appName:n.name,v:K},i=Gs.get(n.config.apiHost);i&&(r.eid=i);let s=n._getFrameworks();return s.length&&(r.fw=s.join(",")),`${t}?${j(r).slice(1)}`}function Js(n){return a(this,null,function*(){let e=yield Bs(n),t=b().gapi;return d(t,n,"internal-error"),e.open({where:document.body,url:Ks(n),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:qs,dontclear:!0},r=>new Promise((i,s)=>a(null,null,function*(){yield r.restyle({setHideOnLeave:!1});let o=T(n,"network-request-failed"),c=b().setTimeout(()=>{s(o)},$s.get());function u(){b().clearTimeout(c),i(r)}r.ping(u).then(u,()=>{s(o)})})))})}var Ys={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},Xs=500,Qs=600,Zs="_blank",eo="http://localhost",Ne=class{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}};function to(n,e,t,r=Xs,i=Qs){let s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-r)/2,0).toString(),c="",u=O(g({},Ys),{width:r.toString(),height:i.toString(),top:s,left:o}),l=_().toLowerCase();t&&(c=Gn(l)?Zs:t),jn(l)&&(e=e||eo,u.scrollbars="yes");let h=Object.entries(u).reduce((m,[I,F])=>`${m}${I}=${F},`,"");if(qi(l)&&c!=="_self")return no(e||"",c),new Ne(null);let p=window.open(e||"",c,h);d(p,n,"popup-blocked");try{p.focus()}catch(m){}return new Ne(p)}function no(n,e){let t=document.createElement("a");t.href=n,t.target=e;let r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),t.dispatchEvent(r)}var ro="__/auth/handler",io="emulator/auth/handler",so=encodeURIComponent("fac");function Dn(n,e,t,r,i,s){return a(this,null,function*(){d(n.config.authDomain,n,"auth-domain-config-required"),d(n.config.apiKey,n,"invalid-api-key");let o={apiKey:n.config.apiKey,appName:n.name,authType:t,redirectUrl:r,v:K,eventId:i};if(e instanceof ie){e.setDefaultLanguage(n.languageCode),o.providerId=e.providerId||"",sn(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(let[h,p]of Object.entries(s||{}))o[h]=p}if(e instanceof Re){let h=e.getScopes().filter(p=>p!=="");h.length>0&&(o.scopes=h.join(","))}n.tenantId&&(o.tid=n.tenantId);let c=o;for(let h of Object.keys(c))c[h]===void 0&&delete c[h];let u=yield n._getAppCheckToken(),l=u?`#${so}=${encodeURIComponent(u)}`:"";return`${oo(n)}?${j(c).slice(1)}${l}`})}function oo({config:n}){return n.emulator?At(n,io):`https://${n.authDomain}/${ro}`}var ut="webStorageSupport",Tt=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Ct,this._completeRedirectFn=Ns,this._overrideRedirectResult=ks}_openPopup(e,t,r,i){return a(this,null,function*(){C(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()");let s=yield Dn(e,t,r,lt(),i);return to(e,s,Ot())})}_openRedirect(e,t,r,i){return a(this,null,function*(){yield this._originValidation(e);let s=yield Dn(e,t,r,lt(),i);return hs(s),new Promise(()=>{})})}_initialize(e){let t=e._key();if(this.eventManagers[t]){let{manager:i,promise:s}=this.eventManagers[t];return i?Promise.resolve(i):(C(s,"If manager is not set, promise should be"),s)}let r=this.initAndGetManager(e);return this.eventManagers[t]={promise:r},r.catch(()=>{delete this.eventManagers[t]}),r}initAndGetManager(e){return a(this,null,function*(){let t=yield Js(e),r=new yt(e);return t.register("authEvent",i=>(d(i?.authEvent,e,"invalid-auth-event"),{status:r.onEvent(i.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=t,r})}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(ut,{type:ut},i=>{let s=i?.[0]?.[ut];s!==void 0&&t(!!s),A(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Fs(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return Qn()||qn()||Pt()}},mr=Tt;var Ln="@firebase/auth",Mn="1.13.2";var wt=class{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}getToken(e){return a(this,null,function*(){return this.assertAuthConfigured(),yield this.auth._initializationPromise,this.auth.currentUser?{accessToken:yield this.auth.currentUser.getIdToken(e)}:null})}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let t=this.auth.onIdTokenChanged(r=>{e(r?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){d(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function ao(n){switch(n){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}function co(n){G(new w("auth",(e,{options:t})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),s=e.getProvider("app-check-internal"),{apiKey:o,authDomain:c}=r.options;d(o&&!o.includes(":"),"invalid-api-key",{appName:r.name});let u={apiKey:o,authDomain:c,clientPlatform:n,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:Zn(n)},l=new gt(r,i,s,u);return Zi(l,t),l},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),G(new w("auth-internal",e=>{let t=De(e.getProvider("auth").getImmediate());return(r=>new wt(r))(t)},"PRIVATE").setInstantiationMode("EXPLICIT")),M(Ln,Mn,ao(n)),M(Ln,Mn,"esm2020")}var uo=300,lo=je("authIdTokenMaxAge")||uo,Un=null,ho=n=>e=>a(null,null,function*(){let t=e&&(yield e.getIdTokenResult()),r=t&&(new Date().getTime()-Date.parse(t.issuedAtTime))/1e3;if(r&&r>lo)return;let i=t?.token;Un!==i&&(Un=i,yield fetch(n,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))});function Dt(n=pe()){let e=ot(n,"auth");if(e.isInitialized())return e.getImmediate();let t=tr(n,{popupRedirectResolver:mr,persistence:[hr,ar,Ct]}),r=je("authTokenSyncURL");if(r&&typeof isSecureContext=="boolean"&&isSecureContext){let s=new URL(r,location.origin);if(location.origin===s.origin){let o=ho(s.toString());or(t,o,()=>o(t.currentUser)),sr(t,c=>o(c))}}let i=Yt("auth");return i&&nr(t,`http://${i}`),t}function fo(){return document.getElementsByTagName("head")?.[0]??document}Yi({loadJS(n){return new Promise((e,t)=>{let r=document.createElement("script");r.setAttribute("src",n),r.onload=e,r.onerror=i=>{let s=T("internal-error");s.customData=i,t(s)},r.type="text/javascript",r.charset="UTF-8",fo().appendChild(r)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="});co("Browser");var po="firebase",mo="12.14.0";M(po,mo,"app");var go={apiKey:N.firebaseConfig.apiKey,authDomain:N.firebaseConfig.authDomain,projectId:N.firebaseConfig.projectId,storageBucket:N.firebaseConfig.storageBucket,messagingSenderId:N.firebaseConfig.messagingSenderId,appId:N.firebaseConfig.appId,measurementId:N.firebaseConfig.measurementId},gr=yn().length?pe():at(go);var _r=class n{auth=Dt(gr);http=ce($t);router=ce(Bt);authService=ce(zt);isLoading=Wt(!1);loginWithGoogle(e){if(e&&(e.preventDefault(),e.stopPropagation()),this.isLoading())return xe(()=>new Error("Login already in progress"));this.isLoading.set(!0);let t=new Le;return t.setCustomParameters({prompt:"select_account"}),Mt(Nt(this.auth,t)).pipe(Fe(r=>Le.credentialFromResult(r)?.idToken),Fe(r=>{if(!r)throw new Error("Failed to retrieve Google ID Token \u2014 the popup may have been cancelled.");return r}),Ft(r=>this.http.post(jt.LoginWithGoogle,{IDToken:r})),Vt(r=>{this.authService.saveLoginConfigToStorage(r);let i=this.authService.getRedirectUrl();this.router.navigate([i])}),Ut(r=>(this.logout(),console.error("Google Login Failed:",r),xe(()=>r))),xt(()=>this.isLoading.set(!1)))}logout(){this.auth.currentUser&&this.auth.signOut()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=Ht({token:n,factory:n.\u0275fac,providedIn:"root"})};export{_r as a};
|