@blinkk/root-cms 3.1.3 → 3.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +3 -5
- package/dist/{chunk-4VZTYUQ7.js → chunk-6CTCV2PN.js} +192 -14
- package/dist/{chunk-AFBSITEO.js → chunk-ETHWZSNM.js} +4 -0
- package/dist/chunk-MUXSUGFF.js +764 -0
- package/dist/cli.js +1 -1
- package/dist/client.js +1 -1
- package/dist/core/ai-tools.d.ts +82 -42
- package/dist/core/ai.d.ts +54 -218
- package/dist/core/plugin.d.ts +10 -4
- package/dist/core/schema.d.ts +88 -3
- package/dist/core.js +1 -1
- package/dist/functions.js +2 -3
- package/dist/plugin.js +43 -209
- package/dist/shared/ai/models.d.ts +110 -0
- package/dist/shared/ai/prompt-utils.d.ts +59 -0
- package/dist/ui/AIPage-25WICIOT.js +1 -0
- package/dist/ui/AssetsPage-WKTM2J2G.js +1 -0
- package/dist/ui/CollectionPage-5ZOVG7IG.js +1 -0
- package/dist/ui/ComparePage-DDIFYYTK.js +1 -0
- package/dist/ui/DataPage-RFNGSDDN.js +1 -0
- package/dist/ui/DataSourcePage-U46CDIH2.js +1 -0
- package/dist/ui/DocTranslationsPage-BFCM2PE3.js +1 -0
- package/dist/ui/DocumentPage-OTBXM55S.js +1 -0
- package/dist/ui/EditDataSourcePage-NKKIF6AD.js +1 -0
- package/dist/ui/EditReleasePage-TKNOUT7A.js +1 -0
- package/dist/ui/EmbeddedAIPage-4AX7VO3T.js +1 -0
- package/dist/ui/EmbeddedDocumentPage-2CNQJTW5.js +1 -0
- package/dist/ui/{ImageEditorDialog-GGS4VFEA.js → ImageEditorDialog-YDKOGVJV.js} +1 -1
- package/dist/ui/LogsPage-SCECIAZH.js +1 -0
- package/dist/ui/NewDataSourcePage-FAOPK2RZ.js +1 -0
- package/dist/ui/NewReleasePage-HD6T6UV2.js +1 -0
- package/dist/ui/{NotFoundPage-WXEZQZK6.js → NotFoundPage-JRYFUENW.js} +1 -1
- package/dist/ui/ProjectPage-2WIMWCSX.js +1 -0
- package/dist/ui/ReleasePage-GUMEMLF6.js +1 -0
- package/dist/ui/ReleasesPage-AW6PICTQ.js +1 -0
- package/dist/ui/SettingsPage-KFLNZ356.js +1 -0
- package/dist/ui/{SidebarToolsPage-API53RRR.js → SidebarToolsPage-3R7BQ2F7.js} +1 -1
- package/dist/ui/TaskPage-GZGPKIL5.js +1 -0
- package/dist/ui/TasksPage-G3GBTV3L.js +1 -0
- package/dist/ui/TranslationsArbPage-K272JEAA.js +2 -0
- package/dist/ui/TranslationsEditPage-XWXPNKRQ.js +1 -0
- package/dist/ui/{TranslationsPage-NGGZB4L6.js → TranslationsPage-7KUHVTLK.js} +1 -1
- package/dist/ui/ai-tools-7S4URTMT.js +1 -0
- package/dist/ui/{chunk-TVYAZN2Q.js → chunk-2FQMT5AB.js} +1 -1
- package/dist/ui/{chunk-J5E457OI.js → chunk-2PTLQRTU.js} +1 -1
- package/dist/ui/{chunk-UPDL6UXI.js → chunk-2RRM4HEQ.js} +1 -1
- package/dist/ui/{chunk-WYJJZTCI.js → chunk-34W6H4YG.js} +1 -1
- package/dist/ui/{chunk-4FGASIIX.js → chunk-44ZU5WMI.js} +1 -1
- package/dist/ui/{chunk-3E6CASIN.js → chunk-535JU7FU.js} +1 -1
- package/dist/ui/chunk-5KSGCGYY.js +1 -0
- package/dist/ui/{chunk-ZMS6NIGG.js → chunk-75NMQ3LW.js} +1 -1
- package/dist/ui/{chunk-Y3MCFLQU.js → chunk-7UHZS56B.js} +57 -57
- package/dist/ui/chunk-AAR7DBEN.js +110 -0
- package/dist/ui/{chunk-JS6TK4OP.js → chunk-ATTW36EM.js} +1 -1
- package/dist/ui/{chunk-DIFPCF7I.js → chunk-DWV5J2W7.js} +1 -1
- package/dist/ui/chunk-DZYYWCHX.js +3 -0
- package/dist/ui/chunk-F7RQT4XN.js +1 -0
- package/dist/ui/chunk-FVWSVOOY.js +1 -0
- package/dist/ui/chunk-GCSN3YEC.js +31 -0
- package/dist/ui/{chunk-CAY5NM4Z.js → chunk-H37RXS4R.js} +1 -1
- package/dist/ui/{chunk-JTIQBW33.js → chunk-HV3JJ5UT.js} +1 -1
- package/dist/ui/{chunk-MSYTAJBV.js → chunk-HXSB6YB2.js} +1 -1
- package/dist/ui/chunk-IGZDFHVM.js +1 -0
- package/dist/ui/chunk-ISUGBMXC.js +1 -0
- package/dist/ui/{chunk-G5ZZDHWA.js → chunk-JBLSUM6W.js} +1 -1
- package/dist/ui/{chunk-T77VOWHP.js → chunk-N5RJIILP.js} +1 -1
- package/dist/ui/{chunk-BW2MKGNP.js → chunk-NCZD5IWS.js} +1 -1
- package/dist/ui/chunk-NXWYS4HG.js +19 -0
- package/dist/ui/{chunk-FXIR2RBE.js → chunk-OWBT6YUM.js} +1 -1
- package/dist/ui/chunk-OWYV43BT.js +1 -0
- package/dist/ui/{chunk-QHJOTXYB.js → chunk-PIJ3E47R.js} +1 -1
- package/dist/ui/{chunk-ENQKSLGJ.js → chunk-PLYSJ7W5.js} +1 -1
- package/dist/ui/{chunk-FJLNXXE3.js → chunk-QFDU6FXP.js} +1 -1
- package/dist/ui/{chunk-P2Z66DHV.js → chunk-QLIIVG5Q.js} +1 -1
- package/dist/ui/{chunk-HARRKJFZ.js → chunk-QRAFYIAW.js} +1 -1
- package/dist/ui/{chunk-2EPQJUGM.js → chunk-QWB6MAPJ.js} +1 -1
- package/dist/ui/{chunk-W6LP22IK.js → chunk-RB23LLKL.js} +1 -1
- package/dist/ui/chunk-RN4XVVWD.js +1 -0
- package/dist/ui/{chunk-BOER3EAW.js → chunk-SYDHFYRC.js} +1 -1
- package/dist/ui/{chunk-NSI5JSVV.js → chunk-T5BJNOWE.js} +1 -1
- package/dist/ui/chunk-TNW2GNUR.js +1 -0
- package/dist/ui/{chunk-WFQU7V3W.js → chunk-UCYWQEAS.js} +1 -1
- package/dist/ui/{chunk-GT5EQSEX.js → chunk-UJX25CXD.js} +1 -1
- package/dist/ui/chunk-UPN3EMUS.js +1 -0
- package/dist/ui/{chunk-NJMNOITA.js → chunk-VPZHG7JL.js} +1 -1
- package/dist/ui/{chunk-BUNR5EU3.js → chunk-WASID5UU.js} +1 -1
- package/dist/ui/chunk-WC7KMPEQ.js +1 -0
- package/dist/ui/chunk-WRA24P66.js +7 -0
- package/dist/ui/{chunk-LROR6N3B.js.LEGAL.txt → chunk-WRA24P66.js.LEGAL.txt} +5 -1
- package/dist/ui/chunk-XACLTYBB.js +5 -0
- package/dist/ui/{chunk-VD6G5NV4.js → chunk-XOWWPE7X.js} +12 -12
- package/dist/ui/chunk-XUBZH4ON.js +1 -0
- package/dist/ui/{chunk-QF3GPZTI.js → chunk-Y5EOMMNI.js} +1 -1
- package/dist/ui/{chunk-NSOTG64N.js → chunk-YBHFGQ3Z.js} +1 -1
- package/dist/ui/chunk-YP6ZH3MT.js +1 -0
- package/dist/ui/{chunk-UUVAD4U4.js → chunk-Z3ZJJWFT.js} +1 -1
- package/dist/ui/ui.css +1 -1
- package/dist/ui/ui.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-4G7S2LJH.js +0 -1411
- package/dist/chunk-AJDMNTZQ.js +0 -187
- package/dist/ui/AIPage-VOTAEVJE.js +0 -1
- package/dist/ui/AssetsPage-EWGRMRPJ.js +0 -1
- package/dist/ui/CollectionPage-N5JIAUDS.js +0 -1
- package/dist/ui/ComparePage-JDPVU2VA.js +0 -1
- package/dist/ui/DataPage-37D4CMLZ.js +0 -1
- package/dist/ui/DataSourcePage-LX5ASYQN.js +0 -1
- package/dist/ui/DocTranslationsPage-V5M4KB7X.js +0 -1
- package/dist/ui/DocumentPage-SURTQJPG.js +0 -1
- package/dist/ui/EditDataSourcePage-O7DOV5LX.js +0 -1
- package/dist/ui/EditReleasePage-NDYTKGXY.js +0 -1
- package/dist/ui/EmbeddedAIPage-RJOUIPF2.js +0 -1
- package/dist/ui/EmbeddedDocumentPage-SLEULNNI.js +0 -1
- package/dist/ui/LogsPage-ZGBP3I35.js +0 -1
- package/dist/ui/NewDataSourcePage-GQONTMP4.js +0 -1
- package/dist/ui/NewReleasePage-7ZKXHDTD.js +0 -1
- package/dist/ui/ProjectPage-F7W7X6YO.js +0 -1
- package/dist/ui/ReleasePage-ZKMNYPML.js +0 -1
- package/dist/ui/ReleasesPage-JHCE6AEJ.js +0 -1
- package/dist/ui/SettingsPage-MWCPZPGE.js +0 -1
- package/dist/ui/TaskPage-73NLAR4J.js +0 -1
- package/dist/ui/TasksPage-IKPW2OQO.js +0 -1
- package/dist/ui/TranslationsArbPage-QVN66DIW.js +0 -2
- package/dist/ui/TranslationsEditPage-ZOELF5PK.js +0 -1
- package/dist/ui/ai-tools-4DWMFQS6.js +0 -1
- package/dist/ui/chunk-2RAVKX2Z.js +0 -19
- package/dist/ui/chunk-344GZOGG.js +0 -84
- package/dist/ui/chunk-4ISFTE2G.js +0 -5
- package/dist/ui/chunk-BT2NTAW2.js +0 -1
- package/dist/ui/chunk-C2BLMTPR.js +0 -3
- package/dist/ui/chunk-D3UIZHRK.js +0 -1
- package/dist/ui/chunk-DS27MO63.js +0 -1
- package/dist/ui/chunk-HO3W4RVG.js +0 -1
- package/dist/ui/chunk-IOR72US3.js +0 -1
- package/dist/ui/chunk-KRNQ6L35.js +0 -1
- package/dist/ui/chunk-LROR6N3B.js +0 -7
- package/dist/ui/chunk-N3JSLTMV.js +0 -1
- package/dist/ui/chunk-PPYM4O5N.js +0 -1
- package/dist/ui/chunk-TOGLZDK3.js +0 -1
- package/dist/ui/chunk-TPJCPCRR.js +0 -1
- package/dist/ui/chunk-VPHBKJ3I.js +0 -1
- package/dist/ui/chunk-YUU6LWQK.js +0 -1
- package/dist/ui/chunk-Z6DBYLIM.js +0 -1
- /package/dist/ui/{ImageEditorDialog-GGS4VFEA.js.LEGAL.txt → ImageEditorDialog-YDKOGVJV.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-Y3MCFLQU.js.LEGAL.txt → chunk-7UHZS56B.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-NJMNOITA.js.LEGAL.txt → chunk-VPZHG7JL.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-VD6G5NV4.js.LEGAL.txt → chunk-XOWWPE7X.js.LEGAL.txt} +0 -0
package/dist/ui/ui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ni,c as ii,d as oi}from"./chunk-ZMS6NIGG.js";import{b as yt}from"./chunk-N3JSLTMV.js";import{b as Lt}from"./chunk-BT2NTAW2.js";import{a as It,b as Tt,c as Et,e as St,f as bt,g as Rt,h as kt,i as Ct,t as Ot}from"./chunk-Y3MCFLQU.js";import{b as ei,d as ri}from"./chunk-WFQU7V3W.js";import{b as vt}from"./chunk-DIFPCF7I.js";import"./chunk-NSI5JSVV.js";import{b as At}from"./chunk-WYJJZTCI.js";import"./chunk-BOER3EAW.js";import"./chunk-3E6CASIN.js";import"./chunk-FBSBL476.js";import"./chunk-HO3W4RVG.js";import"./chunk-2EPQJUGM.js";import"./chunk-NJMNOITA.js";import"./chunk-344GZOGG.js";import"./chunk-G5ZZDHWA.js";import"./chunk-UPDL6UXI.js";import"./chunk-ENQKSLGJ.js";import"./chunk-CAY5NM4Z.js";import"./chunk-MSYTAJBV.js";import{b as pt,c as wt,f as Pt,g as Nt}from"./chunk-T77VOWHP.js";import{f as Zn}from"./chunk-PPYM4O5N.js";import{a as Qn}from"./chunk-JTIQBW33.js";import{a as $n,b as jn}from"./chunk-DS27MO63.js";import"./chunk-IOR72US3.js";import"./chunk-FJLNXXE3.js";import"./chunk-GT5EQSEX.js";import{b as zn}from"./chunk-D3UIZHRK.js";import{b as Tn}from"./chunk-HARRKJFZ.js";import"./chunk-JS6TK4OP.js";import"./chunk-JDW4UORS.js";import"./chunk-YDO2EDVY.js";import"./chunk-5MV6XVGA.js";import"./chunk-Z6DBYLIM.js";import"./chunk-C2BLMTPR.js";import"./chunk-W5DOO6ID.js";import"./chunk-NSOTG64N.js";import"./chunk-J5E457OI.js";import{d as En}from"./chunk-QHJOTXYB.js";import"./chunk-BW2MKGNP.js";import"./chunk-KRNQ6L35.js";import{a as ti,b as si}from"./chunk-FXIR2RBE.js";import"./chunk-AAHM6RYJ.js";import{c as Mn,d as Un,p as xn,v as Vn}from"./chunk-VD6G5NV4.js";import{a as Gn,b as Hn,c as m,d as Wn,e as qn}from"./chunk-BUNR5EU3.js";import{$a as Kn,Ab as mt,B as gn,Cc as Xn,Fb as gt,Ga as a,V as _n,a as x,c as V,da as In,g as ee,hb as Bn,ib as Yn,j as at,ob as ft,vc as Jn,yc as _t}from"./chunk-LROR6N3B.js";import{g as mn,k as Ir}from"./chunk-KUCVLANF.js";import{a as Fn}from"./chunk-7SK47HHZ.js";import{A as On,B as ut,C as ht,D as S,E as J,F as Ln,G as Dn,H as te,a as wn,b as yn,d as ct,e as Te,f as vn,h as Sn,i as y,j as bn,k as Rn,l as An,m as kn,n as Pn,p as Ee,q as we,r as Cn,s as ye,t as K,u as B,v as Y,w as Nn,x as O,y as lt,z as dt}from"./chunk-DTMZLUNY.js";import"./chunk-PVAE643M.js";var Tr="firebase",Er="12.2.1";te(Tr,Er,"app");function bi(){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 Ri=bi,Ai=new we("auth","Firebase",bi());var Pe=new On("@firebase/auth");function wr(n,...e){Pe.logLevel<=dt.WARN&&Pe.warn(`Auth (${J}): ${n}`,...e)}function Se(n,...e){Pe.logLevel<=dt.ERROR&&Pe.error(`Auth (${J}): ${n}`,...e)}function v(n,...e){throw sn(n,...e)}function R(n,...e){return sn(n,...e)}function ki(n,e,t){let i={...Ri(),[e]:t};return new we("auth","Firebase",i).create(e,{appName:n.name})}function F(n){return ki(n,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function sn(n,...e){if(typeof n!="string"){let t=e[0],i=[...e.slice(1)];return i[0]&&(i[0].appName=n.name),n._errorFactory.create(t,...i)}return Ai.create(n,...e)}function u(n,e,...t){if(!n)throw sn(e,...t)}function b(n){let e="INTERNAL ASSERTION FAILED: "+n;throw Se(e),new Error(e)}function P(n,e){n||b(e)}function Ft(){return typeof self<"u"&&self.location?.href||""}function yr(){return ai()==="http:"||ai()==="https:"}function ai(){return typeof self<"u"&&self.location?.protocol||null}function vr(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(yr()||An()||"connection"in navigator)?navigator.onLine:!0}function Sr(){if(typeof navigator>"u")return null;let n=navigator;return n.languages&&n.languages[0]||n.language||null}var G=class{constructor(e,t){this.shortDelay=e,this.longDelay=t,P(t>e,"Short delay should be less than long delay!"),this.isMobile=bn()||kn()}get(){return vr()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function on(n,e){P(n.emulator,"Emulator should always be set here");let{url:t}=n.emulator;return e?`${t}${e.startsWith("/")?e.slice(1):e}`:t}var Ce=class{static initialize(e,t,i){this.fetchImpl=e,t&&(this.headersImpl=t),i&&(this.responseImpl=i)}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;b("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;b("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;b("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var br={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 Rr=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],Ar=new G(3e4,6e4);function I(n,e){return n.tenantId&&!e.tenantId?{...e,tenantId:n.tenantId}:e}async function E(n,e,t,i,r={}){return Pi(n,r,async()=>{let s={},o={};i&&(e==="GET"?o=i:s={body:JSON.stringify(i)});let c=K({key:n.config.apiKey,...o}).slice(1),l=await n._getAdditionalHeaders();l["Content-Type"]="application/json",n.languageCode&&(l["X-Firebase-Locale"]=n.languageCode);let d={method:e,headers:l,...s};return Rn()||(d.referrerPolicy="no-referrer"),n.emulatorConfig&&Te(n.emulatorConfig.host)&&(d.credentials="include"),Ce.fetch()(await Ci(n,n.config.apiHost,t,c),d)})}async function Pi(n,e,t){n._canInitEmulator=!1;let i={...br,...e};try{let r=new Gt(n),s=await Promise.race([t(),r.promise]);r.clearNetworkTimeout();let o=await s.json();if("needConfirmation"in o)throw ie(n,"account-exists-with-different-credential",o);if(s.ok&&!("errorMessage"in o))return o;{let c=s.ok?o.errorMessage:o.error.message,[l,d]=c.split(" : ");if(l==="FEDERATED_USER_ID_ALREADY_LINKED")throw ie(n,"credential-already-in-use",o);if(l==="EMAIL_EXISTS")throw ie(n,"email-already-in-use",o);if(l==="USER_DISABLED")throw ie(n,"user-disabled",o);let h=i[l]||l.toLowerCase().replace(/[_\s]+/g,"-");if(d)throw ki(n,h,d);v(n,h)}}catch(r){if(r instanceof Ee)throw r;v(n,"network-request-failed",{message:String(r)})}}async function $(n,e,t,i,r={}){let s=await E(n,e,t,i,r);return"mfaPendingCredential"in s&&v(n,"multi-factor-auth-required",{_serverResponse:s}),s}async function Ci(n,e,t,i){let r=`${e}${t}?${i}`,s=n,o=s.config.emulator?on(n.config,r):`${n.config.apiScheme}://${r}`;return Rr.includes(t)&&(await s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o}function kr(n){switch(n){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}var Gt=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((t,i)=>{this.timer=setTimeout(()=>i(R(this.auth,"network-request-failed")),Ar.get())})}};function ie(n,e,t){let i={appName:n.name};t.email&&(i.email=t.email),t.phoneNumber&&(i.phoneNumber=t.phoneNumber);let r=R(n,e,i);return r.customData._tokenResponse=t,r}function ci(n){return n!==void 0&&n.enterprise!==void 0}var Ne=class{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],e.recaptchaKey===void 0)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||this.recaptchaEnforcementState.length===0)return null;for(let t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)return kr(t.enforcementState);return null}isProviderEnabled(e){return this.getProviderEnforcementState(e)==="ENFORCE"||this.getProviderEnforcementState(e)==="AUDIT"}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}};async function Ni(n,e){return E(n,"GET","/v2/recaptchaConfig",I(n,e))}async function Pr(n,e){return E(n,"POST","/v1/accounts:delete",e)}async function Oe(n,e){return E(n,"POST","/v1/accounts:lookup",e)}function re(n){if(n)try{let e=new Date(Number(n));if(!isNaN(e.getTime()))return e.toUTCString()}catch{}}async function Oi(n,e=!1){let t=O(n),i=await t.getIdToken(e),r=an(i);u(r&&r.exp&&r.auth_time&&r.iat,t.auth,"internal-error");let s=typeof r.firebase=="object"?r.firebase:void 0,o=s?.sign_in_provider;return{claims:r,token:i,authTime:re(Dt(r.auth_time)),issuedAtTime:re(Dt(r.iat)),expirationTime:re(Dt(r.exp)),signInProvider:o||null,signInSecondFactor:s?.sign_in_second_factor||null}}function Dt(n){return Number(n)*1e3}function an(n){let[e,t,i]=n.split(".");if(e===void 0||t===void 0||i===void 0)return Se("JWT malformed, contained fewer than 3 sections"),null;try{let r=wn(t);return r?JSON.parse(r):(Se("Failed to decode base64 JWT payload"),null)}catch(r){return Se("Caught error parsing JWT payload as JSON",r?.toString()),null}}function li(n){let e=an(n);return u(e,"internal-error"),u(typeof e.exp<"u","internal-error"),u(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}async function ce(n,e,t=!1){if(t)return e;try{return await e}catch(i){throw i instanceof Ee&&Cr(i)&&n.auth.currentUser===n&&await n.auth.signOut(),i}}function Cr({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 i=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5;return Math.max(0,i)}}schedule(e=!1){if(!this.isRunning)return;let t=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}};var le=class{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=re(this.lastLoginAt),this.creationTime=re(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};async function Le(n){let e=n.auth,t=await n.getIdToken(),i=await ce(n,Oe(e,{idToken:t}));u(i?.users.length,e,"internal-error");let r=i.users[0];n._notifyReloadListener(r);let s=r.providerUserInfo?.length?Di(r.providerUserInfo):[],o=Nr(n.providerData,s),c=n.isAnonymous,l=!(n.email&&r.passwordHash)&&!o?.length,d=c?l:!1,h={uid:r.localId,displayName:r.displayName||null,photoURL:r.photoUrl||null,email:r.email||null,emailVerified:r.emailVerified||!1,phoneNumber:r.phoneNumber||null,tenantId:r.tenantId||null,providerData:o,metadata:new le(r.createdAt,r.lastLoginAt),isAnonymous:d};Object.assign(n,h)}async function Li(n){let e=O(n);await Le(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}function Nr(n,e){return[...n.filter(i=>!e.some(r=>r.providerId===i.providerId)),...e]}function Di(n){return n.map(({providerId:e,...t})=>({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}async function Or(n,e){let t=await Pi(n,{},async()=>{let i=K({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:r,apiKey:s}=n.config,o=await Ci(n,r,"/v1/token",`key=${s}`),c=await n._getAdditionalHeaders();c["Content-Type"]="application/x-www-form-urlencoded";let l={method:"POST",headers:c,body:i};return n.emulatorConfig&&Te(n.emulatorConfig.host)&&(l.credentials="include"),Ce.fetch()(o,l)});return{accessToken:t.access_token,expiresIn:t.expires_in,refreshToken:t.refresh_token}}async function Lr(n,e){return E(n,"POST","/v2/accounts:revokeToken",I(n,e))}var se=class n{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){u(e.idToken,"internal-error"),u(typeof e.idToken<"u","internal-error"),u(typeof e.refreshToken<"u","internal-error");let t="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):li(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){u(e.length!==0,"internal-error");let t=li(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return!t&&this.accessToken&&!this.isExpired?this.accessToken:(u(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null)}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){let{accessToken:i,refreshToken:r,expiresIn:s}=await Or(e,t);this.updateTokensAndExpiration(i,r,Number(s))}updateTokensAndExpiration(e,t,i){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+i*1e3}static fromJSON(e,t){let{refreshToken:i,accessToken:r,expirationTime:s}=t,o=new n;return i&&(u(typeof i=="string","internal-error",{appName:e}),o.refreshToken=i),r&&(u(typeof r=="string","internal-error",{appName:e}),o.accessToken=r),s&&(u(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 b("not implemented")}};function L(n,e){u(typeof n=="string"||typeof n>"u","internal-error",{appName:e})}var D=class n{constructor({uid:e,auth:t,stsTokenManager:i,...r}){this.providerId="firebase",this.proactiveRefresh=new Ht(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=i,this.accessToken=i.accessToken,this.displayName=r.displayName||null,this.email=r.email||null,this.emailVerified=r.emailVerified||!1,this.phoneNumber=r.phoneNumber||null,this.photoURL=r.photoURL||null,this.isAnonymous=r.isAnonymous||!1,this.tenantId=r.tenantId||null,this.providerData=r.providerData?[...r.providerData]:[],this.metadata=new le(r.createdAt||void 0,r.lastLoginAt||void 0)}async getIdToken(e){let t=await ce(this,this.stsTokenManager.getToken(this.auth,e));return u(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return Oi(this,e)}reload(){return Li(this)}_assign(e){this!==e&&(u(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=>({...t})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let t=new n({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){u(!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()}async _updateTokensIfNecessary(e,t=!1){let i=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),i=!0),t&&await Le(this),await this.auth._persistUserIfCurrent(this),i&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(S(this.auth.app))return Promise.reject(F(this.auth));let e=await this.getIdToken();return await ce(this,Pr(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return{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=>({...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 i=t.displayName??void 0,r=t.email??void 0,s=t.phoneNumber??void 0,o=t.photoURL??void 0,c=t.tenantId??void 0,l=t._redirectEventId??void 0,d=t.createdAt??void 0,h=t.lastLoginAt??void 0,{uid:p,emailVerified:f,isAnonymous:T,providerData:C,stsTokenManager:M}=t;u(p&&M,e,"internal-error");let j=se.fromJSON(this.name,M);u(typeof p=="string",e,"internal-error"),L(i,e.name),L(r,e.name),u(typeof f=="boolean",e,"internal-error"),u(typeof T=="boolean",e,"internal-error"),L(s,e.name),L(o,e.name),L(c,e.name),L(l,e.name),L(d,e.name),L(h,e.name);let U=new n({uid:p,auth:e,email:r,emailVerified:f,displayName:i,isAnonymous:T,photoURL:o,phoneNumber:s,tenantId:c,stsTokenManager:j,createdAt:d,lastLoginAt:h});return C&&Array.isArray(C)&&(U.providerData=C.map(st=>({...st}))),l&&(U._redirectEventId=l),U}static async _fromIdTokenResponse(e,t,i=!1){let r=new se;r.updateFromServerResponse(t);let s=new n({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:i});return await Le(s),s}static async _fromGetAccountInfoResponse(e,t,i){let r=t.users[0];u(r.localId!==void 0,"internal-error");let s=r.providerUserInfo!==void 0?Di(r.providerUserInfo):[],o=!(r.email&&r.passwordHash)&&!s?.length,c=new se;c.updateFromIdToken(i);let l=new n({uid:r.localId,auth:e,stsTokenManager:c,isAnonymous:o}),d={uid:r.localId,displayName:r.displayName||null,photoURL:r.photoUrl||null,email:r.email||null,emailVerified:r.emailVerified||!1,phoneNumber:r.phoneNumber||null,tenantId:r.tenantId||null,providerData:s,metadata:new le(r.createdAt,r.lastLoginAt),isAnonymous:!(r.email&&r.passwordHash)&&!s?.length};return Object.assign(l,d),l}};var di=new Map;function k(n){P(n instanceof Function,"Expected a class definition");let e=di.get(n);return e?(P(e instanceof n,"Instance stored in cache mismatched with class"),e):(e=new n,di.set(n,e),e)}var De=class{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){let t=this.storage[e];return t===void 0?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}};De.type="NONE";var Wt=De;function be(n,e,t){return`firebase:${n}:${e}:${t}`}var Me=class n{constructor(e,t,i){this.persistence=e,this.auth=t,this.userKey=i;let{config:r,name:s}=this.auth;this.fullUserKey=be(this.userKey,r.apiKey,s),this.fullPersistenceKey=be("persistence",r.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())}async getCurrentUser(){let e=await this.persistence._get(this.fullUserKey);if(!e)return null;if(typeof e=="string"){let t=await Oe(this.auth,{idToken:e}).catch(()=>{});return t?D._fromGetAccountInfoResponse(this.auth,t,e):null}return D._fromJSON(this.auth,e)}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;let t=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,t)return this.setCurrentUser(t)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,i="authUser"){if(!t.length)return new n(k(Wt),e,i);let r=(await Promise.all(t.map(async d=>{if(await d._isAvailable())return d}))).filter(d=>d),s=r[0]||k(Wt),o=be(i,e.config.apiKey,e.name),c=null;for(let d of t)try{let h=await d._get(o);if(h){let p;if(typeof h=="string"){let f=await Oe(e,{idToken:h}).catch(()=>{});if(!f)break;p=await D._fromGetAccountInfoResponse(e,f,h)}else p=D._fromJSON(e,h);d!==s&&(c=p),s=d;break}}catch{}let l=r.filter(d=>d._shouldAllowMigration);return!s._shouldAllowMigration||!l.length?new n(s,e,i):(s=l[0],c&&await s._set(o,c.toJSON()),await Promise.all(t.map(async d=>{if(d!==s)try{await d._remove(o)}catch{}})),new n(s,e,i))}};function ui(n){let e=n.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(Vi(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(Mi(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Gi(e))return"Blackberry";if(Hi(e))return"Webos";if(Ui(e))return"Safari";if((e.includes("chrome/")||xi(e))&&!e.includes("edge/"))return"Chrome";if(Fi(e))return"Android";{let t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,i=n.match(t);if(i?.length===2)return i[1]}return"Other"}function Mi(n=y()){return/firefox\//i.test(n)}function Ui(n=y()){let e=n.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function xi(n=y()){return/crios\//i.test(n)}function Vi(n=y()){return/iemobile/i.test(n)}function Fi(n=y()){return/android/i.test(n)}function Gi(n=y()){return/blackberry/i.test(n)}function Hi(n=y()){return/webos/i.test(n)}function cn(n=y()){return/iphone|ipad|ipod/i.test(n)||/macintosh/i.test(n)&&/mobile/i.test(n)}function Dr(n=y()){return cn(n)&&!!window.navigator?.standalone}function Mr(){return Pn()&&document.documentMode===10}function Wi(n=y()){return cn(n)||Fi(n)||Hi(n)||Gi(n)||/windows phone/i.test(n)||Vi(n)}function zi(n,e=[]){let t;switch(n){case"Browser":t=ui(y());break;case"Worker":t=`${ui(y())}-${n}`;break;default:t=n}let i=e.length?e.join(","):"FirebaseCore-web";return`${t}/JsCore/${J}/${i}`}var zt=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let i=s=>new Promise((o,c)=>{try{let l=e(s);o(l)}catch(l){c(l)}});i.onAbort=t,this.queue.push(i);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;let t=[];try{for(let i of this.queue)await i(e),i.onAbort&&t.push(i.onAbort)}catch(i){t.reverse();for(let r of t)try{r()}catch{}throw this.auth._errorFactory.create("login-blocked",{originalMessage:i?.message})}}};async function Ur(n,e={}){return E(n,"GET","/v2/passwordPolicy",I(n,e))}var xr=6,qt=class{constructor(e){let t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??xr,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 i=this.customStrengthOptions.minPasswordLength,r=this.customStrengthOptions.maxPasswordLength;i&&(t.meetsMinPasswordLength=e.length>=i),r&&(t.meetsMaxPasswordLength=e.length<=r)}validatePasswordCharacterOptions(e,t){this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);let i;for(let r=0;r<e.length;r++)i=e.charAt(r),this.updatePasswordCharacterOptionsStatuses(t,i>="a"&&i<="z",i>="A"&&i<="Z",i>="0"&&i<="9",this.allowedNonAlphanumericCharacters.includes(i))}updatePasswordCharacterOptionsStatuses(e,t,i,r,s){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=i)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=r)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=s))}};var $t=class{constructor(e,t,i,r){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=i,this.config=r,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Ue(this),this.idTokenSubscription=new Ue(this),this.beforeStateQueue=new zt(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=Ai,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=r.sdkClientVersion,this._persistenceManagerAvailable=new Promise(s=>this._resolvePersistenceManagerAvailable=s)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=k(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await Me.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch{}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,!this._deleted&&(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;let e=await this.assertedPersistence.getCurrentUser();if(!(!this.currentUser&&!e)){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),await this.currentUser.getIdToken();return}await this._updateCurrentUser(e,!0)}}async initializeCurrentUserFromIdToken(e){try{let t=await Oe(this,{idToken:e}),i=await D._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(i)}catch(t){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",t),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(S(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=await this.assertedPersistence.getCurrentUser(),i=t,r=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let s=this.redirectUser?._redirectEventId,o=i?._redirectEventId,c=await this.tryRedirectSignIn(e);(!s||s===o)&&c?.user&&(i=c.user,r=!0)}if(!i)return this.directlySetCurrentUser(null);if(!i._redirectEventId){if(r)try{await this.beforeStateQueue.runMiddleware(i)}catch(s){i=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}return u(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch{await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Le(e)}catch(t){if(t?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=Sr()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(S(this.app))return Promise.reject(F(this));let t=e?O(e):null;return t&&u(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&u(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return S(this.app)?Promise.reject(F(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return S(this.app)?Promise.reject(F(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(k(e))})}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await 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]}async _updatePasswordPolicy(){let e=await Ur(this),t=new qt(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 we("auth","Firebase",e())}onAuthStateChanged(e,t,i){return this.registerStateListener(this.authStateSubscription,e,t,i)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,i){return this.registerStateListener(this.idTokenSubscription,e,t,i)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{let i=this.onAuthStateChanged(()=>{i(),e()},t)}})}async revokeAccessToken(e){if(this.currentUser){let t=await this.currentUser.getIdToken(),i={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:t};this.tenantId!=null&&(i.tenantId=this.tenantId),await Lr(this,i)}}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){let i=await this.getOrInitRedirectPersistenceManager(t);return e===null?i.removeCurrentUser():i.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let t=e&&k(e)||this._popupRedirectResolver;u(t,this,"argument-error"),this.redirectPersistenceManager=await Me.create(this,[k(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){return this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>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,i,r){if(this._deleted)return()=>{};let s=typeof t=="function"?t:t.next.bind(t),o=!1,c=this._isInitialized?Promise.resolve():this._initializationPromise;if(u(c,this,"internal-error"),c.then(()=>{o||s(this.currentUser)}),typeof t=="function"){let l=e.addObserver(t,i,r);return()=>{o=!0,l()}}else{let l=e.addObserver(t);return()=>{o=!0,l()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return u(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=zi(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){let e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);let t=await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();t&&(e["X-Firebase-Client"]=t);let i=await this._getAppCheckToken();return i&&(e["X-Firebase-AppCheck"]=i),e}async _getAppCheckToken(){if(S(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&wr(`Error while retrieving App Check token: ${e.error}`),e?.token}};function Z(n){return O(n)}var Ue=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=Nn(t=>this.observer=t)}get next(){return u(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var et={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Vr(n){et=n}function qi(n){return et.loadJS(n)}function Fr(){return et.recaptchaEnterpriseScript}function Gr(){return et.gapiScript}function $i(n){return`__${n}${Math.floor(Math.random()*1e6)}`}var jt=class{constructor(){this.enterprise=new Kt}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}},Kt=class{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}};var Hr="recaptcha-enterprise",oe="NO_RECAPTCHA",xe=class{constructor(e){this.type=Hr,this.auth=Z(e)}async verify(e="verify",t=!1){async function i(s){if(!t){if(s.tenantId==null&&s._agentRecaptchaConfig!=null)return s._agentRecaptchaConfig.siteKey;if(s.tenantId!=null&&s._tenantRecaptchaConfigs[s.tenantId]!==void 0)return s._tenantRecaptchaConfigs[s.tenantId].siteKey}return new Promise(async(o,c)=>{Ni(s,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(l=>{if(l.recaptchaKey===void 0)c(new Error("recaptcha Enterprise site key undefined"));else{let d=new Ne(l);return s.tenantId==null?s._agentRecaptchaConfig=d:s._tenantRecaptchaConfigs[s.tenantId]=d,o(d.siteKey)}}).catch(l=>{c(l)})})}function r(s,o,c){let l=window.grecaptcha;ci(l)?l.enterprise.ready(()=>{l.enterprise.execute(s,{action:e}).then(d=>{o(d)}).catch(()=>{o(oe)})}):c(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new jt().execute("siteKey",{action:"verify"}):new Promise((s,o)=>{i(this.auth).then(c=>{if(!t&&ci(window.grecaptcha))r(c,s,o);else{if(typeof window>"u"){o(new Error("RecaptchaVerifier is only supported in browser"));return}let l=Fr();l.length!==0&&(l+=c),qi(l).then(()=>{r(c,s,o)}).catch(d=>{o(d)})}}).catch(c=>{o(c)})})}};async function ne(n,e,t,i=!1,r=!1){let s=new xe(n),o;if(r)o=oe;else try{o=await s.verify(t)}catch{o=await s.verify(t,!0)}let c={...e};if(t==="mfaSmsEnrollment"||t==="mfaSmsSignIn"){if("phoneEnrollmentInfo"in c){let l=c.phoneEnrollmentInfo.phoneNumber,d=c.phoneEnrollmentInfo.recaptchaToken;Object.assign(c,{phoneEnrollmentInfo:{phoneNumber:l,recaptchaToken:d,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in c){let l=c.phoneSignInInfo.recaptchaToken;Object.assign(c,{phoneSignInInfo:{recaptchaToken:l,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return c}return i?Object.assign(c,{captchaResp:o}):Object.assign(c,{captchaResponse:o}),Object.assign(c,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(c,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),c}async function ae(n,e,t,i,r){if(r==="EMAIL_PASSWORD_PROVIDER")if(n._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){let s=await ne(n,e,t,t==="getOobCode");return i(n,s)}else return i(n,e).catch(async s=>{if(s.code==="auth/missing-recaptcha-token"){console.log(`${t} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let o=await ne(n,e,t,t==="getOobCode");return i(n,o)}else return Promise.reject(s)});else if(r==="PHONE_PROVIDER")if(n._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let s=await ne(n,e,t);return i(n,s).catch(async o=>{if(n._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")==="AUDIT"&&(o.code==="auth/missing-recaptcha-token"||o.code==="auth/invalid-app-credential")){console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${t} flow.`);let c=await ne(n,e,t,!1,!0);return i(n,c)}return Promise.reject(o)})}else{let s=await ne(n,e,t,!1,!0);return i(n,s)}else return Promise.reject(r+" provider is not supported.")}async function Wr(n){let e=Z(n),t=await Ni(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),i=new Ne(t);e.tenantId==null?e._agentRecaptchaConfig=i:e._tenantRecaptchaConfigs[e.tenantId]=i,i.isAnyProviderEnabled()&&new xe(e).verify()}function ji(n,e){let t=ht(n,"auth");if(t.isInitialized()){let r=t.getImmediate(),s=t.getOptions();if(ye(s,e??{}))return r;v(r,"already-initialized")}return t.initialize({options:e})}function zr(n,e){let t=e?.persistence||[],i=(Array.isArray(t)?t:[t]).map(k);e?.errorMap&&n._updateErrorMap(e.errorMap),n._initializeWithPersistence(i,e?.popupRedirectResolver)}function Ki(n,e,t){let i=Z(n);u(/^https?:\/\//.test(e),i,"invalid-emulator-scheme");let r=!!t?.disableWarnings,s=Bi(e),{host:o,port:c}=qr(e),l=c===null?"":`:${c}`,d={url:`${s}//${o}${l}/`},h=Object.freeze({host:o,port:c,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:r})});if(!i._canInitEmulator){u(i.config.emulator&&i.emulatorConfig,i,"emulator-config-failed"),u(ye(d,i.config.emulator)&&ye(h,i.emulatorConfig),i,"emulator-config-failed");return}i.config.emulator=d,i.emulatorConfig=h,i.settings.appVerificationDisabledForTesting=!0,Te(o)?(vn(`${s}//${o}${l}`),Sn("Auth",!0)):r||$r()}function Bi(n){let e=n.indexOf(":");return e<0?"":n.substr(0,e+1)}function qr(n){let e=Bi(n),t=/(\/\/)?([^?#/]+)/.exec(n.substr(e.length));if(!t)return{host:"",port:null};let i=t[2].split("@").pop()||"",r=/^(\[[^\]]+\])(:|$)/.exec(i);if(r){let s=r[1];return{host:s,port:hi(i.substr(s.length+1))}}else{let[s,o]=i.split(":");return{host:s,port:hi(o)}}}function hi(n){if(!n)return null;let e=Number(n);return isNaN(e)?null:e}function $r(){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 H=class{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return b("not implemented")}_getIdTokenResponse(e){return b("not implemented")}_linkToIdToken(e,t){return b("not implemented")}_getReauthenticationResolver(e){return b("not implemented")}};async function jr(n,e){return E(n,"POST","/v1/accounts:signUp",e)}async function Kr(n,e){return $(n,"POST","/v1/accounts:signInWithPassword",I(n,e))}async function Br(n,e){return $(n,"POST","/v1/accounts:signInWithEmailLink",I(n,e))}async function Yr(n,e){return $(n,"POST","/v1/accounts:signInWithEmailLink",I(n,e))}var de=class n extends H{constructor(e,t,i,r=null){super("password",i),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new n(e,t,"password")}static _fromEmailAndCode(e,t,i=null){return new n(e,t,"emailLink",i)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let t=typeof e=="string"?JSON.parse(e):e;if(t?.email&&t?.password){if(t.signInMethod==="password")return this._fromEmailAndPassword(t.email,t.password);if(t.signInMethod==="emailLink")return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":let t={returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return ae(e,t,"signInWithPassword",Kr,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Br(e,{email:this._email,oobCode:this._password});default:v(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":let i={idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return ae(e,i,"signUpPassword",jr,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Yr(e,{idToken:t,email:this._email,oobCode:this._password});default:v(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}};async function X(n,e){return $(n,"POST","/v1/accounts:signInWithIdp",I(n,e))}var Jr="http://localhost",W=class n extends H{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):v("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 t=typeof e=="string"?JSON.parse(e):e,{providerId:i,signInMethod:r,...s}=t;if(!i||!r)return null;let o=new n(i,r);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 X(e,t)}_linkToIdToken(e,t){let i=this.buildRequest();return i.idToken=t,X(e,i)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,X(e,t)}buildRequest(){let e={requestUri:Jr,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=K(t)}return e}};async function pi(n,e){return E(n,"POST","/v1/accounts:sendVerificationCode",I(n,e))}async function Xr(n,e){return $(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,e))}async function Qr(n,e){let t=await $(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,e));if(t.temporaryProof)throw ie(n,"account-exists-with-different-credential",t);return t}var Zr={USER_NOT_FOUND:"user-not-found"};async function es(n,e){let t={...e,operation:"REAUTH"};return $(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,t),Zr)}var ue=class n extends H{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new n({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new n({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return Xr(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return Qr(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return es(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:t,verificationId:i,verificationCode:r}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:i,code:r}}toJSON(){let e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){typeof e=="string"&&(e=JSON.parse(e));let{verificationId:t,verificationCode:i,phoneNumber:r,temporaryProof:s}=e;return!i&&!t&&!r&&!s?null:new n({verificationId:t,verificationCode:i,phoneNumber:r,temporaryProof:s})}};function ts(n){switch(n){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}function ns(n){let e=B(Y(n)).link,t=e?B(Y(e)).deep_link_id:null,i=B(Y(n)).deep_link_id;return(i?B(Y(i)).link:null)||i||t||e||n}var Ve=class n{constructor(e){let t=B(Y(e)),i=t.apiKey??null,r=t.oobCode??null,s=ts(t.mode??null);u(i&&r&&s,"argument-error"),this.apiKey=i,this.operation=s,this.code=r,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){let t=ns(e);try{return new n(t)}catch{return null}}};var Q=class n{constructor(){this.providerId=n.PROVIDER_ID}static credential(e,t){return de._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){let i=Ve.parseLink(t);return u(i,"argument-error"),de._fromEmailAndCode(e,i.code,i.tenantId)}};Q.PROVIDER_ID="password";Q.EMAIL_PASSWORD_SIGN_IN_METHOD="password";Q.EMAIL_LINK_SIGN_IN_METHOD="emailLink";var Fe=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 z=class extends Fe{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}};var he=class n extends z{constructor(){super("facebook.com")}static credential(e){return W._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return n.credentialFromTaggedObject(e)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return n.credential(e.oauthAccessToken)}catch{return null}}};he.FACEBOOK_SIGN_IN_METHOD="facebook.com";he.PROVIDER_ID="facebook.com";var pe=class n extends z{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return W._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return n.credentialFromTaggedObject(e)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:t,oauthAccessToken:i}=e;if(!t&&!i)return null;try{return n.credential(t,i)}catch{return null}}};pe.GOOGLE_SIGN_IN_METHOD="google.com";pe.PROVIDER_ID="google.com";var fe=class n extends z{constructor(){super("github.com")}static credential(e){return W._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return n.credentialFromTaggedObject(e)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return n.credential(e.oauthAccessToken)}catch{return null}}};fe.GITHUB_SIGN_IN_METHOD="github.com";fe.PROVIDER_ID="github.com";var me=class n extends z{constructor(){super("twitter.com")}static credential(e,t){return W._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return n.credentialFromTaggedObject(e)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthAccessToken:t,oauthTokenSecret:i}=e;if(!t||!i)return null;try{return n.credential(t,i)}catch{return null}}};me.TWITTER_SIGN_IN_METHOD="twitter.com";me.PROVIDER_ID="twitter.com";var ge=class n{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,i,r=!1){let s=await D._fromIdTokenResponse(e,i,r),o=fi(i);return new n({user:s,providerId:o,_tokenResponse:i,operationType:t})}static async _forOperation(e,t,i){await e._updateTokensIfNecessary(i,!0);let r=fi(i);return new n({user:e,providerId:r,_tokenResponse:i,operationType:t})}};function fi(n){return n.providerId?n.providerId:"phoneNumber"in n?"phone":null}var Bt=class n extends Ee{constructor(e,t,i,r){super(t.code,t.message),this.operationType=i,this.user=r,Object.setPrototypeOf(this,n.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:i}}static _fromErrorAndOperation(e,t,i,r){return new n(e,t,i,r)}};function Yi(n,e,t,i){return(e==="reauthenticate"?t._getReauthenticationResolver(n):t._getIdTokenResponse(n)).catch(s=>{throw s.code==="auth/multi-factor-auth-required"?Bt._fromErrorAndOperation(n,s,e,i):s})}async function is(n,e,t=!1){let i=await ce(n,e._linkToIdToken(n.auth,await n.getIdToken()),t);return ge._forOperation(n,"link",i)}async function rs(n,e,t=!1){let{auth:i}=n;if(S(i.app))return Promise.reject(F(i));let r="reauthenticate";try{let s=await ce(n,Yi(i,r,e,n),t);u(s.idToken,i,"internal-error");let o=an(s.idToken);u(o,i,"internal-error");let{sub:c}=o;return u(n.uid===c,i,"user-mismatch"),ge._forOperation(n,r,s)}catch(s){throw s?.code==="auth/user-not-found"&&v(i,"user-mismatch"),s}}async function ss(n,e,t=!1){if(S(n.app))return Promise.reject(F(n));let i="signIn",r=await Yi(n,i,e),s=await ge._fromIdTokenResponse(n,i,r);return t||await n._updateCurrentUser(s.user),s}function Ji(n,e,t,i){return O(n).onIdTokenChanged(e,t,i)}function Xi(n,e,t){return O(n).beforeAuthStateChanged(e,t)}function mi(n,e){return E(n,"POST","/v2/accounts/mfaEnrollment:start",I(n,e))}function os(n,e){return E(n,"POST","/v2/accounts/mfaEnrollment:finalize",I(n,e))}function as(n,e){return E(n,"POST","/v2/accounts/mfaEnrollment:start",I(n,e))}function cs(n,e){return E(n,"POST","/v2/accounts/mfaEnrollment:finalize",I(n,e))}var Ge="__sak";var He=class{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Ge,"1"),this.storage.removeItem(Ge),Promise.resolve(!0)):Promise.resolve(!1)}catch{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 ls=1e3,ds=10,We=class extends He{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=Wi(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(let t of Object.keys(this.listeners)){let i=this.storage.getItem(t),r=this.localCache[t];i!==r&&e(t,r,i)}}onStorageEvent(e,t=!1){if(!e.key){this.forAllChangedKeys((o,c,l)=>{this.notifyListeners(o,l)});return}let i=e.key;t?this.detachListener():this.stopPolling();let r=()=>{let o=this.storage.getItem(i);!t&&this.localCache[i]===o||this.notifyListeners(i,o)},s=this.storage.getItem(i);Mr()&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(r,ds):r()}notifyListeners(e,t){this.localCache[e]=t;let i=this.listeners[e];if(i)for(let r of Array.from(i))r(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,i)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:i}),!0)})},ls)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){Object.keys(this.listeners).length===0&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),this.listeners[e].size===0&&delete this.listeners[e]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){let t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}};We.type="LOCAL";var Qi=We;var us=1e3;function Mt(n){let e=n.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),t=RegExp(`${e}=([^;]+)`);return document.cookie.match(t)?.[1]??null}function Ut(n){return`${window.location.protocol==="http:"?"__dev_":"__HOST-"}FIREBASE_${n.split(":")[3]}`}var Yt=class{constructor(){this.type="COOKIE",this.listenerUnsubscribes=new Map}_getFinalTarget(e){if(typeof window===void 0)return e;let t=new URL(`${window.location.origin}/__cookies__`);return t.searchParams.set("finalTarget",e),t}async _isAvailable(){return typeof isSecureContext=="boolean"&&!isSecureContext||typeof navigator>"u"||typeof document>"u"?!1:navigator.cookieEnabled??!0}async _set(e,t){}async _get(e){if(!this._isAvailable())return null;let t=Ut(e);return window.cookieStore?(await window.cookieStore.get(t))?.value:Mt(t)}async _remove(e){if(!this._isAvailable()||!await this._get(e))return;let i=Ut(e);document.cookie=`${i}=;Max-Age=34560000;Partitioned;Secure;SameSite=Strict;Path=/;Priority=High`,await fetch("/__cookies__",{method:"DELETE"}).catch(()=>{})}_addListener(e,t){if(!this._isAvailable())return;let i=Ut(e);if(window.cookieStore){let c=(d=>{let h=d.changed.find(f=>f.name===i);h&&t(h.value),d.deleted.find(f=>f.name===i)&&t(null)}),l=()=>window.cookieStore.removeEventListener("change",c);return this.listenerUnsubscribes.set(t,l),window.cookieStore.addEventListener("change",c)}let r=Mt(i),s=setInterval(()=>{let c=Mt(i);c!==r&&(t(c),r=c)},us),o=()=>clearInterval(s);this.listenerUnsubscribes.set(t,o)}_removeListener(e,t){let i=this.listenerUnsubscribes.get(t);i&&(i(),this.listenerUnsubscribes.delete(t))}};Yt.type="COOKIE";var ze=class extends He{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}};ze.type="SESSION";var ln=ze;function hs(n){return Promise.all(n.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(t){return{fulfilled:!1,reason:t}}}))}var qe=class n{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){let t=this.receivers.find(r=>r.isListeningto(e));if(t)return t;let i=new n(e);return this.receivers.push(i),i}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let t=e,{eventId:i,eventType:r,data:s}=t.data,o=this.handlersMap[r];if(!o?.size)return;t.ports[0].postMessage({status:"ack",eventId:i,eventType:r});let c=Array.from(o).map(async d=>d(t.origin,s)),l=await hs(c);t.ports[0].postMessage({status:"done",eventId:i,eventType:r,response:l})}_subscribe(e,t){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),(!t||this.handlersMap[e].size===0)&&delete this.handlersMap[e],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}};qe.receivers=[];function dn(n="",e=10){let t="";for(let i=0;i<e;i++)t+=Math.floor(Math.random()*10);return n+t}var Jt=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)}async _send(e,t,i=50){let r=typeof MessageChannel<"u"?new MessageChannel:null;if(!r)throw new Error("connection_unavailable");let s,o;return new Promise((c,l)=>{let d=dn("",20);r.port1.start();let h=setTimeout(()=>{l(new Error("unsupported_event"))},i);o={messageChannel:r,onMessage(p){let f=p;if(f.data.eventId===d)switch(f.data.status){case"ack":clearTimeout(h),s=setTimeout(()=>{l(new Error("timeout"))},3e3);break;case"done":clearTimeout(s),c(f.data.response);break;default:clearTimeout(h),clearTimeout(s),l(new Error("invalid_response"));break}}},this.handlers.add(o),r.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:d,data:t},[r.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})}};function A(){return window}function ps(n){A().location.href=n}function Zi(){return typeof A().WorkerGlobalScope<"u"&&typeof A().importScripts=="function"}async function fs(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}function ms(){return navigator?.serviceWorker?.controller||null}function gs(){return Zi()?self:null}var er="firebaseLocalStorageDb",_s=1,$e="firebaseLocalStorage",tr="fbase_key",q=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 tt(n,e){return n.transaction([$e],e?"readwrite":"readonly").objectStore($e)}function Is(){let n=indexedDB.deleteDatabase(er);return new q(n).toPromise()}function Xt(){let n=indexedDB.open(er,_s);return new Promise((e,t)=>{n.addEventListener("error",()=>{t(n.error)}),n.addEventListener("upgradeneeded",()=>{let i=n.result;try{i.createObjectStore($e,{keyPath:tr})}catch(r){t(r)}}),n.addEventListener("success",async()=>{let i=n.result;i.objectStoreNames.contains($e)?e(i):(i.close(),await Is(),e(await Xt()))})})}async function gi(n,e,t){let i=tt(n,!0).put({[tr]:e,value:t});return new q(i).toPromise()}async function Ts(n,e){let t=tt(n,!1).get(e),i=await new q(t).toPromise();return i===void 0?null:i.value}function _i(n,e){let t=tt(n,!0).delete(e);return new q(t).toPromise()}var Es=800,ws=3,je=class{constructor(){this.type="LOCAL",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(()=>{},()=>{})}async _openDb(){return this.db?this.db:(this.db=await Xt(),this.db)}async _withRetries(e){let t=0;for(;;)try{let i=await this._openDb();return await e(i)}catch(i){if(t++>ws)throw i;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Zi()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=qe._getInstance(gs()),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){if(this.activeServiceWorker=await fs(),!this.activeServiceWorker)return;this.sender=new Jt(this.activeServiceWorker);let e=await this.sender._send("ping",{},800);e&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(!(!this.sender||!this.activeServiceWorker||ms()!==this.activeServiceWorker))try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{if(!indexedDB)return!1;let e=await Xt();return await gi(e,Ge,"1"),await _i(e,Ge),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite(async()=>(await this._withRetries(i=>gi(i,e,t)),this.localCache[e]=t,this.notifyServiceWorker(e)))}async _get(e){let t=await this._withRetries(i=>Ts(i,e));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(t=>_i(t,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){let e=await this._withRetries(r=>{let s=tt(r,!1).getAll();return new q(s).toPromise()});if(!e)return[];if(this.pendingWrites!==0)return[];let t=[],i=new Set;if(e.length!==0)for(let{fbase_key:r,value:s}of e)i.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(s)&&(this.notifyListeners(r,s),t.push(r));for(let r of Object.keys(this.localCache))this.localCache[r]&&!i.has(r)&&(this.notifyListeners(r,null),t.push(r));return t}notifyListeners(e,t){this.localCache[e]=t;let i=this.listeners[e];if(i)for(let r of Array.from(i))r(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),Es)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),this.listeners[e].size===0&&delete this.listeners[e]),Object.keys(this.listeners).length===0&&this.stopPolling()}};je.type="LOCAL";var nr=je;function Ii(n,e){return E(n,"POST","/v2/accounts/mfaSignIn:start",I(n,e))}function ys(n,e){return E(n,"POST","/v2/accounts/mfaSignIn:finalize",I(n,e))}function vs(n,e){return E(n,"POST","/v2/accounts/mfaSignIn:finalize",I(n,e))}var Na=$i("rcb"),Oa=new G(3e4,6e4);var Re="recaptcha";async function Ss(n,e,t){if(!n._getRecaptchaConfig())try{await Wr(n)}catch{console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let i;if(typeof e=="string"?i={phoneNumber:e}:i=e,"session"in i){let r=i.session;if("phoneNumber"in i){u(r.type==="enroll",n,"internal-error");let s={idToken:r.credential,phoneEnrollmentInfo:{phoneNumber:i.phoneNumber,clientType:"CLIENT_TYPE_WEB"}};return(await ae(n,s,"mfaSmsEnrollment",async(d,h)=>{if(h.phoneEnrollmentInfo.captchaResponse===oe){u(t?.type===Re,d,"argument-error");let p=await xt(d,h,t);return mi(d,p)}return mi(d,h)},"PHONE_PROVIDER").catch(d=>Promise.reject(d))).phoneSessionInfo.sessionInfo}else{u(r.type==="signin",n,"internal-error");let s=i.multiFactorHint?.uid||i.multiFactorUid;u(s,n,"missing-multi-factor-info");let o={mfaPendingCredential:r.credential,mfaEnrollmentId:s,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}};return(await ae(n,o,"mfaSmsSignIn",async(h,p)=>{if(p.phoneSignInInfo.captchaResponse===oe){u(t?.type===Re,h,"argument-error");let f=await xt(h,p,t);return Ii(h,f)}return Ii(h,p)},"PHONE_PROVIDER").catch(h=>Promise.reject(h))).phoneResponseInfo.sessionInfo}}else{let r={phoneNumber:i.phoneNumber,clientType:"CLIENT_TYPE_WEB"};return(await ae(n,r,"sendVerificationCode",async(l,d)=>{if(d.captchaResponse===oe){u(t?.type===Re,l,"argument-error");let h=await xt(l,d,t);return pi(l,h)}return pi(l,d)},"PHONE_PROVIDER").catch(l=>Promise.reject(l))).sessionInfo}}finally{t?._reset()}}async function xt(n,e,t){u(t.type===Re,n,"argument-error");let i=await t.verify();u(typeof i=="string",n,"argument-error");let r={...e};if("phoneEnrollmentInfo"in r){let s=r.phoneEnrollmentInfo.phoneNumber,o=r.phoneEnrollmentInfo.captchaResponse,c=r.phoneEnrollmentInfo.clientType,l=r.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(r,{phoneEnrollmentInfo:{phoneNumber:s,recaptchaToken:i,captchaResponse:o,clientType:c,recaptchaVersion:l}}),r}else if("phoneSignInInfo"in r){let s=r.phoneSignInInfo.captchaResponse,o=r.phoneSignInInfo.clientType,c=r.phoneSignInInfo.recaptchaVersion;return Object.assign(r,{phoneSignInInfo:{recaptchaToken:i,captchaResponse:s,clientType:o,recaptchaVersion:c}}),r}else return Object.assign(r,{recaptchaToken:i}),r}var _e=class n{constructor(e){this.providerId=n.PROVIDER_ID,this.auth=Z(e)}verifyPhoneNumber(e,t){return Ss(this.auth,e,O(t))}static credential(e,t){return ue._fromVerification(e,t)}static credentialFromResult(e){let t=e;return n.credentialFromTaggedObject(t)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{phoneNumber:t,temporaryProof:i}=e;return t&&i?ue._fromTokenResponse(t,i):null}};_e.PROVIDER_ID="phone";_e.PHONE_SIGN_IN_METHOD="phone";function bs(n,e){return e?k(e):(u(n._popupRedirectResolver,n,"argument-error"),n._popupRedirectResolver)}var Ie=class extends H{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return X(e,this._buildIdpRequest())}_linkToIdToken(e,t){return X(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return X(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 Rs(n){return ss(n.auth,new Ie(n),n.bypassAuthState)}function As(n){let{auth:e,user:t}=n;return u(t,e,"internal-error"),rs(t,new Ie(n),n.bypassAuthState)}async function ks(n){let{auth:e,user:t}=n;return u(t,e,"internal-error"),is(t,new Ie(n),n.bypassAuthState)}var Ke=class{constructor(e,t,i,r,s=!1){this.auth=e,this.resolver=i,this.user=r,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(i){this.reject(i)}})}async onAuthEvent(e){let{urlResponse:t,sessionId:i,postBody:r,tenantId:s,error:o,type:c}=e;if(o){this.reject(o);return}let l={auth:this.auth,requestUri:t,sessionId:i,tenantId:s||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(c)(l))}catch(d){this.reject(d)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Rs;case"linkViaPopup":case"linkViaRedirect":return ks;case"reauthViaPopup":case"reauthViaRedirect":return As;default:v(this.auth,"internal-error")}}resolve(e){P(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){P(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 Ps=new G(2e3,1e4);var Qt=class n extends Ke{constructor(e,t,i,r,s){super(e,t,r,s),this.provider=i,this.authWindow=null,this.pollId=null,n.currentPopupAction&&n.currentPopupAction.cancel(),n.currentPopupAction=this}async executeNotNull(){let e=await this.execute();return u(e,this.auth,"internal-error"),e}async onExecution(){P(this.filter.length===1,"Popup operations only handle one event");let e=dn();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(t=>{this.reject(t)}),this.resolver._isIframeWebStorageSupported(this.auth,t=>{t||this.reject(R(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(R(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 e=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(R(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,Ps.get())};e()}};Qt.currentPopupAction=null;var Cs="pendingRedirect",Ae=new Map,Zt=class extends Ke{constructor(e,t,i=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,i),this.eventId=null}async execute(){let e=Ae.get(this.auth._key());if(!e){try{let i=await Ns(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(i)}catch(t){e=()=>Promise.reject(t)}Ae.set(this.auth._key(),e)}return this.bypassAuthState||Ae.set(this.auth._key(),()=>Promise.resolve(null)),e()}async onAuthEvent(e){if(e.type==="signInViaRedirect")return super.onAuthEvent(e);if(e.type==="unknown"){this.resolve(null);return}if(e.eventId){let t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}};async function Ns(n,e){let t=Ds(e),i=Ls(n);if(!await i._isAvailable())return!1;let r=await i._get(t)==="true";return await i._remove(t),r}function Os(n,e){Ae.set(n._key(),e)}function Ls(n){return k(n._redirectPersistence)}function Ds(n){return be(Cs,n.config.apiKey,n.name)}async function Ms(n,e,t=!1){if(S(n.app))return Promise.reject(F(n));let i=Z(n),r=bs(i,e),o=await new Zt(i,r,t).execute();return o&&!t&&(delete o.user._redirectEventId,await i._persistUserIfCurrent(o.user),await i._setRedirectUser(null,e)),o}var Us=600*1e3,en=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(i=>{this.isEventForConsumer(e,i)&&(t=!0,this.sendToConsumer(e,i),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!xs(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!ir(e)){let i=e.error.code?.split("auth/")[1]||"internal-error";t.onError(R(this.auth,i))}else t.onAuthEvent(e)}isEventForConsumer(e,t){let i=t.eventId===null||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&i}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=Us&&this.cachedEventUids.clear(),this.cachedEventUids.has(Ti(e))}saveEventToCache(e){this.cachedEventUids.add(Ti(e)),this.lastProcessedEventTime=Date.now()}};function Ti(n){return[n.type,n.eventId,n.sessionId,n.tenantId].filter(e=>e).join("-")}function ir({type:n,error:e}){return n==="unknown"&&e?.code==="auth/no-auth-event"}function xs(n){switch(n.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return ir(n);default:return!1}}async function Vs(n,e={}){return E(n,"GET","/v1/projects",e)}var Fs=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Gs=/^https?/;async function Hs(n){if(n.config.emulator)return;let{authorizedDomains:e}=await Vs(n);for(let t of e)try{if(Ws(t))return}catch{}v(n,"unauthorized-domain")}function Ws(n){let e=Ft(),{protocol:t,hostname:i}=new URL(e);if(n.startsWith("chrome-extension://")){let o=new URL(n);return o.hostname===""&&i===""?t==="chrome-extension:"&&n.replace("chrome-extension://","")===e.replace("chrome-extension://",""):t==="chrome-extension:"&&o.hostname===i}if(!Gs.test(t))return!1;if(Fs.test(n))return i===n;let r=n.replace(/\./g,"\\.");return new RegExp("^(.+\\."+r+"|"+r+")$","i").test(i)}var zs=new G(3e4,6e4);function Ei(){let n=A().___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 qs(n){return new Promise((e,t)=>{function i(){Ei(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Ei(),t(R(n,"network-request-failed"))},timeout:zs.get()})}if(A().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else if(A().gapi?.load)i();else{let r=$i("iframefcb");return A()[r]=()=>{gapi.load?i():t(R(n,"network-request-failed"))},qi(`${Gr()}?onload=${r}`).catch(s=>t(s))}}).catch(e=>{throw ke=null,e})}var ke=null;function $s(n){return ke=ke||qs(n),ke}var js=new G(5e3,15e3),Ks="__/auth/iframe",Bs="emulator/auth/iframe",Ys={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Js=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Xs(n){let e=n.config;u(e.authDomain,n,"auth-domain-config-required");let t=e.emulator?on(e,Bs):`https://${n.config.authDomain}/${Ks}`,i={apiKey:e.apiKey,appName:n.name,v:J},r=Js.get(n.config.apiHost);r&&(i.eid=r);let s=n._getFrameworks();return s.length&&(i.fw=s.join(",")),`${t}?${K(i).slice(1)}`}async function Qs(n){let e=await $s(n),t=A().gapi;return u(t,n,"internal-error"),e.open({where:document.body,url:Xs(n),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Ys,dontclear:!0},i=>new Promise(async(r,s)=>{await i.restyle({setHideOnLeave:!1});let o=R(n,"network-request-failed"),c=A().setTimeout(()=>{s(o)},js.get());function l(){A().clearTimeout(c),r(i)}i.ping(l).then(l,()=>{s(o)})}))}var Zs={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},eo=500,to=600,no="_blank",io="http://localhost",Be=class{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch{}}};function ro(n,e,t,i=eo,r=to){let s=Math.max((window.screen.availHeight-r)/2,0).toString(),o=Math.max((window.screen.availWidth-i)/2,0).toString(),c="",l={...Zs,width:i.toString(),height:r.toString(),top:s,left:o},d=y().toLowerCase();t&&(c=xi(d)?no:t),Mi(d)&&(e=e||io,l.scrollbars="yes");let h=Object.entries(l).reduce((f,[T,C])=>`${f}${T}=${C},`,"");if(Dr(d)&&c!=="_self")return so(e||"",c),new Be(null);let p=window.open(e||"",c,h);u(p,n,"popup-blocked");try{p.focus()}catch{}return new Be(p)}function so(n,e){let t=document.createElement("a");t.href=n,t.target=e;let i=document.createEvent("MouseEvent");i.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),t.dispatchEvent(i)}var oo="__/auth/handler",ao="emulator/auth/handler",co=encodeURIComponent("fac");async function wi(n,e,t,i,r,s){u(n.config.authDomain,n,"auth-domain-config-required"),u(n.config.apiKey,n,"invalid-api-key");let o={apiKey:n.config.apiKey,appName:n.name,authType:t,redirectUrl:i,v:J,eventId:r};if(e instanceof Fe){e.setDefaultLanguage(n.languageCode),o.providerId=e.providerId||"",Cn(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(let[h,p]of Object.entries(s||{}))o[h]=p}if(e instanceof z){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 l=await n._getAppCheckToken(),d=l?`#${co}=${encodeURIComponent(l)}`:"";return`${lo(n)}?${K(c).slice(1)}${d}`}function lo({config:n}){return n.emulator?on(n,ao):`https://${n.authDomain}/${oo}`}var Vt="webStorageSupport",tn=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=ln,this._completeRedirectFn=Ms,this._overrideRedirectResult=Os}async _openPopup(e,t,i,r){P(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()");let s=await wi(e,t,i,Ft(),r);return ro(e,s,dn())}async _openRedirect(e,t,i,r){await this._originValidation(e);let s=await wi(e,t,i,Ft(),r);return ps(s),new Promise(()=>{})}_initialize(e){let t=e._key();if(this.eventManagers[t]){let{manager:r,promise:s}=this.eventManagers[t];return r?Promise.resolve(r):(P(s,"If manager is not set, promise should be"),s)}let i=this.initAndGetManager(e);return this.eventManagers[t]={promise:i},i.catch(()=>{delete this.eventManagers[t]}),i}async initAndGetManager(e){let t=await Qs(e),i=new en(e);return t.register("authEvent",r=>(u(r?.authEvent,e,"invalid-auth-event"),{status:i.onEvent(r.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:i},this.iframes[e._key()]=t,i}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(Vt,{type:Vt},r=>{let s=r?.[0]?.[Vt];s!==void 0&&t(!!s),v(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Hs(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return Wi()||Ui()||cn()}},rr=tn,Ye=class{constructor(e){this.factorId=e}_process(e,t,i){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,i);case"signin":return this._finalizeSignIn(e,t.credential);default:return b("unexpected MultiFactorSessionType")}}},nn=class n extends Ye{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new n(e)}_finalizeEnroll(e,t,i){return os(e,{idToken:t,displayName:i,phoneVerificationInfo:this.credential._makeVerificationRequest()})}_finalizeSignIn(e,t){return ys(e,{mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()})}},Je=class{constructor(){}static assertion(e){return nn._fromCredential(e)}};Je.FACTOR_ID="phone";var Xe=class{static assertionForEnrollment(e,t){return Qe._fromSecret(e,t)}static assertionForSignIn(e,t){return Qe._fromEnrollmentId(e,t)}static async generateSecret(e){let t=e;u(typeof t.user?.auth<"u","internal-error");let i=await as(t.user.auth,{idToken:t.credential,totpEnrollmentInfo:{}});return Ze._fromStartTotpMfaEnrollmentResponse(i,t.user.auth)}};Xe.FACTOR_ID="totp";var Qe=class n extends Ye{constructor(e,t,i){super("totp"),this.otp=e,this.enrollmentId=t,this.secret=i}static _fromSecret(e,t){return new n(t,void 0,e)}static _fromEnrollmentId(e,t){return new n(t,e)}async _finalizeEnroll(e,t,i){return u(typeof this.secret<"u",e,"argument-error"),cs(e,{idToken:t,displayName:i,totpVerificationInfo:this.secret._makeTotpVerificationInfo(this.otp)})}async _finalizeSignIn(e,t){u(this.enrollmentId!==void 0&&this.otp!==void 0,e,"argument-error");let i={verificationCode:this.otp};return vs(e,{mfaPendingCredential:t,mfaEnrollmentId:this.enrollmentId,totpVerificationInfo:i})}},Ze=class n{constructor(e,t,i,r,s,o,c){this.sessionInfo=o,this.auth=c,this.secretKey=e,this.hashingAlgorithm=t,this.codeLength=i,this.codeIntervalSeconds=r,this.enrollmentCompletionDeadline=s}static _fromStartTotpMfaEnrollmentResponse(e,t){return new n(e.totpSessionInfo.sharedSecretKey,e.totpSessionInfo.hashingAlgorithm,e.totpSessionInfo.verificationCodeLength,e.totpSessionInfo.periodSec,new Date(e.totpSessionInfo.finalizeEnrollmentTime).toUTCString(),e.totpSessionInfo.sessionInfo,t)}_makeTotpVerificationInfo(e){return{sessionInfo:this.sessionInfo,verificationCode:e}}generateQrCodeUrl(e,t){let i=!1;return(ve(e)||ve(t))&&(i=!0),i&&(ve(e)&&(e=this.auth.currentUser?.email||"unknownuser"),ve(t)&&(t=this.auth.name)),`otpauth://totp/${t}:${e}?secret=${this.secretKey}&issuer=${t}&algorithm=${this.hashingAlgorithm}&digits=${this.codeLength}`}};function ve(n){return typeof n>"u"||n?.length===0}var yi="@firebase/auth",vi="1.11.0";var rn=class{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let t=this.auth.onIdTokenChanged(i=>{e(i?.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(){u(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function uo(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 ho(n){ut(new lt("auth",(e,{options:t})=>{let i=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat"),s=e.getProvider("app-check-internal"),{apiKey:o,authDomain:c}=i.options;u(o&&!o.includes(":"),"invalid-api-key",{appName:i.name});let l={apiKey:o,authDomain:c,clientPlatform:n,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:zi(n)},d=new $t(i,r,s,l);return zr(d,t),d},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,i)=>{e.getProvider("auth-internal").initialize()})),ut(new lt("auth-internal",e=>{let t=Z(e.getProvider("auth").getImmediate());return(i=>new rn(i))(t)},"PRIVATE").setInstantiationMode("EXPLICIT")),te(yi,vi,uo(n)),te(yi,vi,"esm2020")}var po=300,fo=ct("authIdTokenMaxAge")||po,Si=null,mo=n=>async e=>{let t=e&&await e.getIdTokenResult(),i=t&&(new Date().getTime()-Date.parse(t.issuedAtTime))/1e3;if(i&&i>fo)return;let r=t?.token;Si!==r&&(Si=r,await fetch(n,{method:r?"POST":"DELETE",headers:r?{Authorization:`Bearer ${r}`}:{}}))};function un(n=Dn()){let e=ht(n,"auth");if(e.isInitialized())return e.getImmediate();let t=ji(n,{popupRedirectResolver:rr,persistence:[nr,Qi,ln]}),i=ct("authTokenSyncURL");if(i&&typeof isSecureContext=="boolean"&&isSecureContext){let s=new URL(i,location.origin);if(location.origin===s.origin){let o=mo(s.toString());Xi(t,o,()=>o(t.currentUser)),Ji(t,c=>o(c))}}let r=yn("auth");return r&&Ki(t,`http://${r}`),t}function go(){return document.getElementsByTagName("head")?.[0]??document}Vr({loadJS(n){return new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=e,i.onerror=r=>{let s=R("internal-error");s.customData=r,t(s)},i.type="text/javascript",i.charset="UTF-8",go().appendChild(i)})},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="});ho("Browser");Ir();at();at();var pn="root::cms:recentViews",_o=5,hn="rootcms:recentViewsChange";function or(){try{let n=window.localStorage.getItem(pn);if(!n)return[];let e=JSON.parse(n);return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&typeof t.url=="string"&&typeof t.label=="string"&&typeof t.kind=="string"):[]}catch{return[]}}function Io(n){try{window.localStorage.setItem(pn,JSON.stringify(n))}catch(e){console.error("failed to persist recent views:",e)}window.dispatchEvent(new CustomEvent(hn))}function sr(){return or().sort((n,e)=>e.viewedAt-n.viewedAt)}function ar(n){if(!n.url)return;let e=or().filter(i=>i.url!==n.url),t=[{...n,viewedAt:Date.now()},...e].slice(0,_o);Io(t)}function cr(){let[n,e]=x(()=>sr());return V(()=>{let t=()=>e(sr()),i=r=>{r.key===pn&&t()};return window.addEventListener(hn,t),window.addEventListener("storage",i),()=>{window.removeEventListener(hn,t),window.removeEventListener("storage",i)}},[]),n}function lr(n){let e=n.split("?")[0]||n;try{e=new URL(n,window.location.origin).pathname}catch{}e=e.replace(/\/+$/,"");let t=e.split("/").filter(Boolean);if(t.length===4&&t[0]==="cms"&&t[1]==="content"){let i=decodeURIComponent(t[2]),r=decodeURIComponent(t[3]);return{kind:"doc",url:`/cms/content/${t[2]}/${t[3]}`,label:`${i} / ${r}`,viewedAt:0}}if(t.length===3&&t[0]==="cms"&&t[1]==="content"){let i=decodeURIComponent(t[2]),r=window.__ROOT_CTX?.collections?.[i];return{kind:"collection",url:`/cms/content/${t[2]}`,label:r?.name||i,description:r?.description,viewedAt:0}}if(t.length===3&&t[0]==="cms"&&t[1]==="data"&&t[2]!=="new"){let i=decodeURIComponent(t[2]);return{kind:"data-source",url:`/cms/data/${t[2]}`,label:i,viewedAt:0}}if(t.length===3&&t[0]==="cms"&&t[1]==="releases"&&t[2]!=="new"){let i=decodeURIComponent(t[2]);return{kind:"release",url:`/cms/releases/${t[2]}`,label:i,viewedAt:0}}return null}function dr(n){let e=n.text||"",t=(n.terms||[]).filter(Boolean);if(!e)return[];if(!t.length)return[{kind:"text",value:e.slice(0,180)}];let i=e.toLowerCase(),r=[];for(let p of t){let f=p.toLowerCase();if(!f)continue;let T=0;for(;(T=i.indexOf(f,T))!==-1;)r.push({start:T,end:T+f.length}),T+=f.length}if(r.length===0)return[{kind:"text",value:e.slice(0,180)}];r.sort((p,f)=>p.start-f.start);let s=[];for(let p of r){let f=s[s.length-1];f&&p.start<=f.end?f.end=Math.max(f.end,p.end):s.push({...p})}let o=s[0],c=Math.max(0,o.start-60),l=Math.min(e.length,o.end+120),d=[];c>0&&d.push({kind:"text",value:"\u2026 "});let h=c;for(let p of s){if(p.end<=c||p.start>=l)continue;let f=Math.max(p.start,c),T=Math.min(p.end,l);f>h&&d.push({kind:"text",value:e.slice(h,f)}),d.push({kind:"mark",value:e.slice(f,T)}),h=T}return h<l&&d.push({kind:"text",value:e.slice(h,l)}),l<e.length&&d.push({kind:"text",value:" \u2026"}),d}function To(n){return n==="collection"?a(gt,{size:16}):n==="data-source"?a(ft,{size:16}):a(_t,{size:16})}function Eo(n){return n==="collection"?a(gt,{size:16}):n==="data-source"?a(ft,{size:16}):n==="release"?a(_t,{size:16}):a(mt,{size:16})}function wo(n){return n==="collection"?"Collection":n==="data-source"?"Data source":"Release"}function yo(n){return n==="collection"?"Collection":n==="data-source"?"Data source":n==="release"?"Release":"Doc"}function nt(n){let e=["GlobalSearchAction",n.className||"",n.hovered?"GlobalSearchAction--hovered":""].filter(Boolean).join(" ");return a("button",{type:"button",className:e,onMouseDown:t=>{t.preventDefault(),n.onTrigger()},children:n.children})}function ur(n){let e=n.action?.meta;if(!e)return null;if(e.kind==="header")return a("div",{className:"GlobalSearchAction GlobalSearchAction--header",children:e.label});if(e.kind==="footer")return a("div",{className:"GlobalSearchAction GlobalSearchAction--footer",children:["Last indexed ",e.lastIndexed]});if(e.kind==="tips")return a("div",{className:"GlobalSearchAction GlobalSearchAction--tips",children:[a("span",{className:"GlobalSearchAction__tipItem",children:[a("kbd",{className:"GlobalSearchAction__kbd",children:'"\u2026"'}),a("span",{children:"exact phrase"})]}),a("span",{className:"GlobalSearchAction__tipSep",children:"\xB7"}),a("span",{className:"GlobalSearchAction__tipItem",children:[a("kbd",{className:"GlobalSearchAction__kbd",children:"-word"}),a("span",{children:"exclude"})]}),a("span",{className:"GlobalSearchAction__tipSep",children:"\xB7"}),a("span",{className:"GlobalSearchAction__tipItem",children:[a("kbd",{className:"GlobalSearchAction__kbd",children:"coll/slug"}),a("span",{children:"jump by id"})]})]});if(e.kind==="field"){let t=e.hit,i=dr(t);return a(nt,{hovered:n.hovered,onTrigger:n.onTrigger,children:[a("div",{className:"GlobalSearchAction__crumbs",children:[a("span",{className:"GlobalSearchAction__docId",children:t.docId}),a("span",{className:"GlobalSearchAction__sep",children:a(Kn,{size:16})}),a("span",{className:"GlobalSearchAction__field",children:t.fieldLabel})]}),a("div",{className:"GlobalSearchAction__snippet",children:i.map((r,s)=>r.kind==="mark"?a("mark",{className:"GlobalSearchAction__mark",children:r.value},s):a("span",{children:r.value},s))})]})}if(e.kind==="doc"){let t=e.hit;return a(nt,{hovered:n.hovered,onTrigger:n.onTrigger,children:a("div",{className:"GlobalSearchAction__row",children:[a("div",{className:"GlobalSearchAction__icon",children:a(mt,{size:16})}),a("div",{className:"GlobalSearchAction__body",children:[a("div",{className:"GlobalSearchAction__title",children:t.slug}),a("div",{className:"GlobalSearchAction__sub",children:[a("span",{className:"GlobalSearchAction__tag",children:"Doc"}),a("span",{className:"GlobalSearchAction__subText",children:t.docId})]})]})]})})}if(e.kind==="target"){let t=e.target;return a(nt,{hovered:n.hovered,onTrigger:n.onTrigger,children:a("div",{className:"GlobalSearchAction__row",children:[a("div",{className:"GlobalSearchAction__icon",children:To(t.kind)}),a("div",{className:"GlobalSearchAction__body",children:[a("div",{className:"GlobalSearchAction__title",children:t.label}),a("div",{className:"GlobalSearchAction__sub",children:[a("span",{className:"GlobalSearchAction__tag",children:wo(t.kind)}),t.description&&a("span",{className:"GlobalSearchAction__subText",children:t.description})]})]})]})})}if(e.kind==="recent"){let t=e.view;return a(nt,{hovered:n.hovered,onTrigger:n.onTrigger,children:a("div",{className:"GlobalSearchAction__row",children:[a("div",{className:"GlobalSearchAction__icon GlobalSearchAction__icon--muted",children:a(Bn,{size:16})}),a("div",{className:"GlobalSearchAction__body",children:[a("div",{className:"GlobalSearchAction__title",children:t.label}),a("div",{className:"GlobalSearchAction__sub",children:[a("span",{className:"GlobalSearchAction__tag",children:yo(t.kind)}),a("span",{className:"GlobalSearchAction__subIcon",children:Eo(t.kind)})]})]})]})})}return null}function vo(n){if(!n?.lastRun)return null;let e=Date.now()-n.lastRun;return e<6e4?"just now":e<60*6e4?`${Math.floor(e/6e4)}m ago`:e<1440*6e4?`${Math.floor(e/(60*6e4))}h ago`:`${Math.floor(e/(1440*6e4))}d ago`}function So(){let n=window.__ROOT_CTX?.collections||{};return Object.entries(n).map(([e,t])=>{let i=t?.name||e,r=t?.description;return{kind:"collection",id:e,url:`/cms/content/${e}`,label:i,description:r,haystack:[e,i,r].filter(Boolean).join(" ").toLowerCase()}}).sort((e,t)=>e.label.localeCompare(t.label))}function bo(n){return n.map(e=>({kind:"data-source",id:e.id,url:`/cms/data/${e.id}`,label:e.id,description:e.description,haystack:[e.id,e.description].filter(Boolean).join(" ").toLowerCase()}))}function Ro(n){return n.map(e=>({kind:"release",id:e.id,url:`/cms/releases/${e.id}`,label:e.id,description:e.description,haystack:[e.id,e.description].filter(Boolean).join(" ").toLowerCase()}))}function Ao(n,e){let t=e.trim().toLowerCase();if(!t)return[];let i=[],r=[];for(let s of n)s.id.toLowerCase().startsWith(t)||s.label.toLowerCase().startsWith(t)?i.push(s):s.haystack.includes(t)&&r.push(s);return[...i,...r]}function ko(n,e){let t={kind:"field",hit:n};return{id:`field:${n.id}`,title:n.text||n.fieldLabel,description:`${n.collection} \xB7 ${n.slug} \xB7 ${n.fieldLabel}`,keywords:[n.collection,n.slug,n.fieldLabel],onTrigger:e,meta:t}}function Po(n,e){let t={kind:"doc",hit:n};return{id:`doc:${n.docId}`,title:n.slug,description:n.collection,keywords:[n.collection,n.slug,n.docId],onTrigger:e,meta:t}}function Co(n,e){let t={kind:"target",target:n};return{id:`${n.kind}:${n.id}`,title:n.label,description:n.description||n.id,keywords:[n.id,n.label,n.description||""],onTrigger:e,meta:t}}function No(n,e){let t={kind:"recent",view:n};return{id:`recent:${n.url}`,title:n.label,description:n.description||"",keywords:[n.label,n.description||"",n.url],onTrigger:e,meta:t}}function it(n,e){let t={kind:"header",label:e};return{id:`header:${n}`,title:e,description:"",keywords:"__internal__",onTrigger:()=>{},meta:t}}function Oo(n){return{id:"__last-indexed__",title:"",description:"",keywords:"__internal__",onTrigger:()=>{},meta:{kind:"footer",lastIndexed:n}}}function Lo(){return{id:"__syntax-tips__",title:"",description:"",keywords:"__internal__",onTrigger:()=>{},meta:{kind:"tips"}}}function Do(n){let{query:e,onQueryChange:t}=n,i=Wn(),r=e.trim(),{hits:s,loading:o,status:c}=ni(e),{hits:l,loading:d}=ii(e),h=cr(),[p,f]=x([]);V(()=>{let _=!1;return zn().then(N=>{_||f(N)}).catch(N=>{console.error("failed to list data sources:",N)}),()=>{_=!0}},[]);let{releases:T}=jn(),C=ee(()=>[...So(),...bo(p),...Ro(T)],[p,T]);V(()=>{let _=lr(i.url);_&&ar(_)},[i.url]);let M=_=>i.route(_),j=ee(()=>{if(!r)return h.length===0?[]:[it("recent","Recently viewed"),...h.map(w=>No(w,()=>M(w.url)))];let _=[],N=Ao(C,r);if(N.length>0){_.push(it("static","Jump to"));for(let w of N)_.push(Co(w,()=>M(w.url)))}if(l.length>0){_.push(it("docs","Documents"));for(let w of l){let ot=`/cms/content/${w.collection}/${encodeURIComponent(w.slug)}`;_.push(Po(w,()=>M(ot)))}}if(s.length>0){_.push(it("fields","Field matches"));for(let w of s){let ot=`/cms/content/${w.collection}/${encodeURIComponent(w.slug)}?deeplink=${encodeURIComponent(w.deepKey)}`;_.push(ko(w,()=>M(ot)))}}return _},[r,s,l,C,h,i]),U=vo(c),st=ee(()=>{if(j.length===0)return j;let _=[...j];return r&&_.push(Lo()),U&&r&&_.push(Oo(U)),_},[j,U,r]),fn=o||d,_r=ee(()=>fn?"Searching\u2026":r?'No results. Try fewer words, or "quotes" for an exact phrase.':'Type to search \xB7 "quotes" for exact match \xB7 -word to exclude',[fn,r]);return a(ti,{actions:st,shortcut:["mod + K"],onQueryChange:t,searchPlaceholder:"Search docs, collections, releases\u2026",searchIcon:a(Xn,{size:18}),nothingFoundMessage:_r,filter:(_,N)=>N,actionComponent:ur,limit:50,cleanQueryOnClose:!0,withinPortal:!0,children:n.children})}function hr(n){let[e,t]=x("");return a(Do,{query:e,onQueryChange:t,children:n.children})}at();function pr(n){let e=n.error,t=e instanceof Error?e.message:String(e||"");return a("div",{className:"RouteLoadError",children:[a("div",{className:"RouteLoadError__icon",children:a(Yn,{size:60})}),a("h2",{className:"RouteLoadError__title",children:"Page failed to load"}),a("p",{className:"RouteLoadError__body",children:"The CMS may have been updated since this page was first opened. Reload the page to fetch the latest version. If the problem persists, check your network connection and try again."}),a(In,{color:"dark",leftIcon:a(Jn,{size:16}),onClick:()=>window.location.reload(),children:"Reload page"}),t&&a("code",{className:"RouteLoadError__error",children:t})]})}function fr(n){let e=n.frame??!0,t=a("div",{className:qn("RouteLoading",e&&"RouteLoading--framed"),children:a(_n,{color:"gray",size:"xl"})});return e?a(si,{children:t}):t}var Mo=3,Uo=250,mr="root::lazyRoute::reloadedAt",xo=60*1e3;function Vo(n){return new Promise(e=>setTimeout(e,n))}function Fo(n){try{let e=Number(window.sessionStorage.getItem(mr)||0);if(Date.now()-e<xo)return!1;window.sessionStorage.setItem(mr,String(Date.now()))}catch{return!1}return n(),!0}async function Go(n,e){let t=e?.attempts??Mo,i=e?.retryDelayMs??Uo,r=e?.reload??(()=>window.location.reload()),s;for(let o=1;o<=t;o++)try{return await n()}catch(c){s=c,o<t&&await Vo(i*o)}return console.error("failed to import route component:",s),Fo(r)?new Promise(()=>{}):()=>a(pr,{error:s})}function g(n,e){let t=null,i=null;function r(){return i||(i=Go(n,e).then(s=>{t=s})),i}return function(o){let[,c]=x(t!==null);return V(()=>{if(t)return;let d=!1;return r().then(()=>{d||c(!0)}),()=>{d=!0}},[]),t?a(t,{...o}):(r(),a(fr,{frame:e?.frame}))}}var gr=g(()=>import("./AIPage-VOTAEVJE.js").then(n=>n.AIPage)),Ho=g(()=>import("./AssetsPage-EWGRMRPJ.js").then(n=>n.AssetsPage)),Wo=g(()=>import("./CollectionPage-N5JIAUDS.js").then(n=>n.CollectionPage)),zo=g(()=>import("./ComparePage-JDPVU2VA.js").then(n=>n.ComparePage)),qo=g(()=>import("./DataPage-37D4CMLZ.js").then(n=>n.DataPage)),$o=g(()=>import("./DataSourcePage-LX5ASYQN.js").then(n=>n.DataSourcePage)),jo=g(()=>import("./DocTranslationsPage-V5M4KB7X.js").then(n=>n.DocTranslationsPage)),Ko=g(()=>import("./DocumentPage-SURTQJPG.js").then(n=>n.DocumentPage)),Bo=g(()=>import("./EditDataSourcePage-O7DOV5LX.js").then(n=>n.EditDataSourcePage)),Yo=g(()=>import("./EmbeddedAIPage-RJOUIPF2.js").then(n=>n.EmbeddedAIPage),{frame:!1}),Jo=g(()=>import("./EmbeddedDocumentPage-SLEULNNI.js").then(n=>n.EmbeddedDocumentPage),{frame:!1}),Xo=g(()=>import("./EditReleasePage-NDYTKGXY.js").then(n=>n.EditReleasePage)),Qo=g(()=>import("./LogsPage-ZGBP3I35.js").then(n=>n.LogsPage)),Zo=g(()=>import("./NewDataSourcePage-GQONTMP4.js").then(n=>n.NewDataSourcePage)),ea=g(()=>import("./NewReleasePage-7ZKXHDTD.js").then(n=>n.NewReleasePage)),ta=g(()=>import("./NotFoundPage-WXEZQZK6.js").then(n=>n.NotFoundPage)),na=g(()=>import("./ProjectPage-F7W7X6YO.js").then(n=>n.ProjectPage)),ia=g(()=>import("./ReleasePage-ZKMNYPML.js").then(n=>n.ReleasePage)),ra=g(()=>import("./ReleasesPage-JHCE6AEJ.js").then(n=>n.ReleasesPage)),sa=g(()=>import("./SettingsPage-MWCPZPGE.js").then(n=>n.SettingsPage)),oa=g(()=>import("./SidebarToolsPage-API53RRR.js").then(n=>n.SidebarToolsPage)),aa=g(()=>import("./TaskPage-73NLAR4J.js").then(n=>n.TaskPage)),ca=g(()=>import("./TasksPage-IKPW2OQO.js").then(n=>n.TasksPage)),la=g(()=>import("./TranslationsArbPage-QVN66DIW.js").then(n=>n.TranslationsArbPage)),da=g(()=>import("./TranslationsEditPage-ZOELF5PK.js").then(n=>n.TranslationsEditPage)),ua=g(()=>import("./TranslationsPage-NGGZB4L6.js").then(n=>n.TranslationsPage));function ha(){return a(gn,{theme:{fontFamily:"Inter, sans-serif",fontSizes:{xs:12,sm:14,md:16,lg:18,xl:20}},children:a(En,{children:a(Qn.Provider,{value:window.firebase,children:a(Zn,{children:a(ei,{children:a($n,{children:a(ri,{children:a(Tn,{modals:{[pt.id]:pt,[It.id]:It,[Tt.id]:Tt,[Et.id]:Et,[wt.id]:wt,[vt.id]:vt,[yt.id]:yt,[St.id]:St,[bt.id]:bt,[Rt.id]:Rt,[kt.id]:kt,[Pt.id]:Pt,[At.id]:At,[Ct.id]:Ct,[Ot.id]:Ot,[Lt.id]:Lt,[Nt.id]:Nt},children:a(Gn,{children:a(hr,{children:a(Hn,{children:[a(m,{path:"/cms",component:na}),a(m,{path:"/cms/ai",component:gr}),a(m,{path:"/cms/ai/chat/:chatId",component:gr}),a(m,{path:"/cms/assets",component:Ho}),a(m,{path:"/cms/compare",component:zo}),a(m,{path:"/cms/content/:collection?",component:Wo}),a(m,{path:"/cms/content/:collection/:slug",component:Ko}),a(m,{path:"/cms/embed/content/:collection/:slug",component:Jo}),a(m,{path:"/cms/embed/ai",component:Yo}),a(m,{path:"/cms/data",component:qo}),a(m,{path:"/cms/data/new",component:Zo}),a(m,{path:"/cms/data/:id",component:$o}),a(m,{path:"/cms/data/:id/edit",component:Bo}),a(m,{path:"/cms/logs",component:Qo}),a(m,{path:"/cms/releases",component:ra}),a(m,{path:"/cms/releases/new",component:ea}),a(m,{path:"/cms/releases/:id",component:ia}),a(m,{path:"/cms/releases/:id/edit",component:Xo}),a(m,{path:"/cms/settings",component:sa}),a(m,{path:"/cms/tasks",component:ca}),a(m,{path:"/cms/tasks/:id",component:aa}),a(m,{path:"/cms/tools/:id",component:oa}),a(m,{path:"/cms/translations",component:ua}),a(m,{path:"/cms/translations/arb",component:la}),a(m,{path:"/cms/translations/:hash",component:da}),a(m,{path:"/cms/translations/:collection/:slug",component:jo}),a(m,{default:!0,component:ta})]})})})})})})})})})})})}function pa(){let n=window.location.pathname;window.location.search&&(n=`${n}?${window.location.search}`);let e=new URLSearchParams({continue:n});window.location.replace(`/cms/login?${e.toString()}`)}function fa(){window.addEventListener("keydown",n=>{if(!((n.metaKey||n.ctrlKey)&&n.shiftKey&&n.key.toLowerCase()==="d")||window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1")return;n.preventDefault();let i=`${window.location.pathname}${window.location.search}${window.location.hash}`;window.location.assign(`http://localhost:4007${i}`)})}fa();oi();var rt=document.getElementById("root");function ma(n){return(n?.code||"")==="auth/invalid-api-key"?"Firebase API key is invalid.":n?.message||"An unknown startup error occurred."}function ga(n){console.error(n),rt.innerHTML="";let e=document.createElement("div");e.className="bootstrap bootstrap--error";let t=document.createElement("h1");t.className="bootstrap__error-title",t.textContent="Something went wrong";let i=document.createElement("p");i.className="bootstrap__error-message",i.textContent=ma(n),e.append(t,i),rt.append(e)}try{let n=Ln(window.__ROOT_CTX.firebaseConfig),e=window.__ROOT_CTX.firebaseConfig.databaseId||"(default)",t=Un(n,{experimentalForceLongPolling:!0,useFetchStreams:!1},e),i=un(n),r=Fn(n);i.onAuthStateChanged(s=>{if(!s){pa();return}window.firebase={app:n,auth:i,db:t,storage:r,user:s},rt.innerHTML="",mn(a(ha,{}),rt),_a(s),Ia(s,t)})}catch(n){ga(n)}async function _a(n){let e=await n.getIdToken(),t=await fetch("/cms/login",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({idToken:e})});if(t.status!==200){console.error("login failed"),console.log(t);return}if(!(await t.json()).success){console.error("login failed"),console.log(t);return}}async function Ia(n,e){if(!n.email)return;let t=window.__ROOT_CTX.rootConfig.projectId,i=Mn(e,"Projects",t,"UserProfiles",n.email);try{await xn(i,{email:n.email,displayName:n.displayName||"",photoURL:n.photoURL||"",uid:n.uid,lastSignedInAt:Vn()},{merge:!0})}catch(r){console.error("failed to save user profile:",r)}}
|
|
1
|
+
import{a as ii,c as ri,d as ai}from"./chunk-75NMQ3LW.js";import{b as yt}from"./chunk-WC7KMPEQ.js";import{b as Lt}from"./chunk-XUBZH4ON.js";import"./chunk-F7RQT4XN.js";import{a as It,b as Tt,c as Et,e as St,f as bt,g as At,h as kt,i as Ct,t as Ot}from"./chunk-7UHZS56B.js";import{b as ei,d as si}from"./chunk-UCYWQEAS.js";import{b as vt}from"./chunk-DWV5J2W7.js";import"./chunk-T5BJNOWE.js";import{b as Rt}from"./chunk-34W6H4YG.js";import"./chunk-SYDHFYRC.js";import"./chunk-535JU7FU.js";import"./chunk-FBSBL476.js";import"./chunk-GCSN3YEC.js";import"./chunk-QWB6MAPJ.js";import"./chunk-VPZHG7JL.js";import"./chunk-AAR7DBEN.js";import"./chunk-JBLSUM6W.js";import"./chunk-2RRM4HEQ.js";import"./chunk-HXSB6YB2.js";import{b as pt,c as wt,f as Pt,g as Nt}from"./chunk-N5RJIILP.js";import{f as Zn}from"./chunk-UPN3EMUS.js";import{a as Qn}from"./chunk-HV3JJ5UT.js";import{a as $n,b as Kn}from"./chunk-TNW2GNUR.js";import"./chunk-FVWSVOOY.js";import"./chunk-QFDU6FXP.js";import"./chunk-JDW4UORS.js";import"./chunk-UJX25CXD.js";import{b as zn}from"./chunk-RN4XVVWD.js";import{b as Tn}from"./chunk-QRAFYIAW.js";import"./chunk-ATTW36EM.js";import"./chunk-YDO2EDVY.js";import"./chunk-5MV6XVGA.js";import"./chunk-PLYSJ7W5.js";import"./chunk-H37RXS4R.js";import"./chunk-W5DOO6ID.js";import"./chunk-YBHFGQ3Z.js";import"./chunk-2PTLQRTU.js";import{d as En}from"./chunk-PIJ3E47R.js";import"./chunk-NCZD5IWS.js";import{a as ti,b as ni,c as oi}from"./chunk-OWBT6YUM.js";import"./chunk-AAHM6RYJ.js";import"./chunk-ISUGBMXC.js";import"./chunk-DZYYWCHX.js";import{c as Mn,d as Un,p as xn,v as Vn}from"./chunk-XOWWPE7X.js";import{a as Gn,b as Hn,c as m,d as Wn,e as qn}from"./chunk-WASID5UU.js";import{B as gn,Cc as _t,Eb as mt,Ga as a,Gc as Xn,Jb as gt,V as _n,a as V,bb as jn,c as O,da as In,g as ee,j as at,kb as Bn,lb as Yn,sb as ft,zc as Jn}from"./chunk-WRA24P66.js";import{g as mn,k as Tr}from"./chunk-KUCVLANF.js";import{a as Fn}from"./chunk-7SK47HHZ.js";import{A as On,B as ut,C as ht,D as b,E as J,F as Ln,G as Dn,H as te,a as wn,b as yn,d as ct,e as Te,f as vn,h as Sn,i as v,j as bn,k as An,l as Rn,m as kn,n as Pn,p as Ee,q as we,r as Cn,s as ye,t as j,u as B,v as Y,w as Nn,x as L,y as lt,z as dt}from"./chunk-DTMZLUNY.js";import"./chunk-PVAE643M.js";var Er="firebase",wr="12.2.1";te(Er,wr,"app");function Ai(){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 Ri=Ai,ki=new we("auth","Firebase",Ai());var Pe=new On("@firebase/auth");function yr(n,...e){Pe.logLevel<=dt.WARN&&Pe.warn(`Auth (${J}): ${n}`,...e)}function Se(n,...e){Pe.logLevel<=dt.ERROR&&Pe.error(`Auth (${J}): ${n}`,...e)}function S(n,...e){throw sn(n,...e)}function R(n,...e){return sn(n,...e)}function Pi(n,e,t){let i={...Ri(),[e]:t};return new we("auth","Firebase",i).create(e,{appName:n.name})}function F(n){return Pi(n,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function sn(n,...e){if(typeof n!="string"){let t=e[0],i=[...e.slice(1)];return i[0]&&(i[0].appName=n.name),n._errorFactory.create(t,...i)}return ki.create(n,...e)}function u(n,e,...t){if(!n)throw sn(e,...t)}function A(n){let e="INTERNAL ASSERTION FAILED: "+n;throw Se(e),new Error(e)}function C(n,e){n||A(e)}function Ft(){return typeof self<"u"&&self.location?.href||""}function vr(){return ci()==="http:"||ci()==="https:"}function ci(){return typeof self<"u"&&self.location?.protocol||null}function Sr(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(vr()||Rn()||"connection"in navigator)?navigator.onLine:!0}function br(){if(typeof navigator>"u")return null;let n=navigator;return n.languages&&n.languages[0]||n.language||null}var G=class{constructor(e,t){this.shortDelay=e,this.longDelay=t,C(t>e,"Short delay should be less than long delay!"),this.isMobile=bn()||kn()}get(){return Sr()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function on(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 Ce=class{static initialize(e,t,i){this.fetchImpl=e,t&&(this.headersImpl=t),i&&(this.responseImpl=i)}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;A("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;A("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;A("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var Ar={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 Rr=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],kr=new G(3e4,6e4);function I(n,e){return n.tenantId&&!e.tenantId?{...e,tenantId:n.tenantId}:e}async function w(n,e,t,i,r={}){return Ci(n,r,async()=>{let s={},o={};i&&(e==="GET"?o=i:s={body:JSON.stringify(i)});let c=j({key:n.config.apiKey,...o}).slice(1),l=await n._getAdditionalHeaders();l["Content-Type"]="application/json",n.languageCode&&(l["X-Firebase-Locale"]=n.languageCode);let d={method:e,headers:l,...s};return An()||(d.referrerPolicy="no-referrer"),n.emulatorConfig&&Te(n.emulatorConfig.host)&&(d.credentials="include"),Ce.fetch()(await Ni(n,n.config.apiHost,t,c),d)})}async function Ci(n,e,t){n._canInitEmulator=!1;let i={...Ar,...e};try{let r=new Gt(n),s=await Promise.race([t(),r.promise]);r.clearNetworkTimeout();let o=await s.json();if("needConfirmation"in o)throw ie(n,"account-exists-with-different-credential",o);if(s.ok&&!("errorMessage"in o))return o;{let c=s.ok?o.errorMessage:o.error.message,[l,d]=c.split(" : ");if(l==="FEDERATED_USER_ID_ALREADY_LINKED")throw ie(n,"credential-already-in-use",o);if(l==="EMAIL_EXISTS")throw ie(n,"email-already-in-use",o);if(l==="USER_DISABLED")throw ie(n,"user-disabled",o);let h=i[l]||l.toLowerCase().replace(/[_\s]+/g,"-");if(d)throw Pi(n,h,d);S(n,h)}}catch(r){if(r instanceof Ee)throw r;S(n,"network-request-failed",{message:String(r)})}}async function $(n,e,t,i,r={}){let s=await w(n,e,t,i,r);return"mfaPendingCredential"in s&&S(n,"multi-factor-auth-required",{_serverResponse:s}),s}async function Ni(n,e,t,i){let r=`${e}${t}?${i}`,s=n,o=s.config.emulator?on(n.config,r):`${n.config.apiScheme}://${r}`;return Rr.includes(t)&&(await s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o}function Pr(n){switch(n){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}var Gt=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((t,i)=>{this.timer=setTimeout(()=>i(R(this.auth,"network-request-failed")),kr.get())})}};function ie(n,e,t){let i={appName:n.name};t.email&&(i.email=t.email),t.phoneNumber&&(i.phoneNumber=t.phoneNumber);let r=R(n,e,i);return r.customData._tokenResponse=t,r}function li(n){return n!==void 0&&n.enterprise!==void 0}var Ne=class{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],e.recaptchaKey===void 0)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||this.recaptchaEnforcementState.length===0)return null;for(let t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)return Pr(t.enforcementState);return null}isProviderEnabled(e){return this.getProviderEnforcementState(e)==="ENFORCE"||this.getProviderEnforcementState(e)==="AUDIT"}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}};async function Oi(n,e){return w(n,"GET","/v2/recaptchaConfig",I(n,e))}async function Cr(n,e){return w(n,"POST","/v1/accounts:delete",e)}async function Oe(n,e){return w(n,"POST","/v1/accounts:lookup",e)}function re(n){if(n)try{let e=new Date(Number(n));if(!isNaN(e.getTime()))return e.toUTCString()}catch{}}async function Li(n,e=!1){let t=L(n),i=await t.getIdToken(e),r=an(i);u(r&&r.exp&&r.auth_time&&r.iat,t.auth,"internal-error");let s=typeof r.firebase=="object"?r.firebase:void 0,o=s?.sign_in_provider;return{claims:r,token:i,authTime:re(Dt(r.auth_time)),issuedAtTime:re(Dt(r.iat)),expirationTime:re(Dt(r.exp)),signInProvider:o||null,signInSecondFactor:s?.sign_in_second_factor||null}}function Dt(n){return Number(n)*1e3}function an(n){let[e,t,i]=n.split(".");if(e===void 0||t===void 0||i===void 0)return Se("JWT malformed, contained fewer than 3 sections"),null;try{let r=wn(t);return r?JSON.parse(r):(Se("Failed to decode base64 JWT payload"),null)}catch(r){return Se("Caught error parsing JWT payload as JSON",r?.toString()),null}}function di(n){let e=an(n);return u(e,"internal-error"),u(typeof e.exp<"u","internal-error"),u(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}async function ce(n,e,t=!1){if(t)return e;try{return await e}catch(i){throw i instanceof Ee&&Nr(i)&&n.auth.currentUser===n&&await n.auth.signOut(),i}}function Nr({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 i=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5;return Math.max(0,i)}}schedule(e=!1){if(!this.isRunning)return;let t=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}};var le=class{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=re(this.lastLoginAt),this.creationTime=re(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};async function Le(n){let e=n.auth,t=await n.getIdToken(),i=await ce(n,Oe(e,{idToken:t}));u(i?.users.length,e,"internal-error");let r=i.users[0];n._notifyReloadListener(r);let s=r.providerUserInfo?.length?Mi(r.providerUserInfo):[],o=Or(n.providerData,s),c=n.isAnonymous,l=!(n.email&&r.passwordHash)&&!o?.length,d=c?l:!1,h={uid:r.localId,displayName:r.displayName||null,photoURL:r.photoUrl||null,email:r.email||null,emailVerified:r.emailVerified||!1,phoneNumber:r.phoneNumber||null,tenantId:r.tenantId||null,providerData:o,metadata:new le(r.createdAt,r.lastLoginAt),isAnonymous:d};Object.assign(n,h)}async function Di(n){let e=L(n);await Le(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}function Or(n,e){return[...n.filter(i=>!e.some(r=>r.providerId===i.providerId)),...e]}function Mi(n){return n.map(({providerId:e,...t})=>({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}async function Lr(n,e){let t=await Ci(n,{},async()=>{let i=j({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:r,apiKey:s}=n.config,o=await Ni(n,r,"/v1/token",`key=${s}`),c=await n._getAdditionalHeaders();c["Content-Type"]="application/x-www-form-urlencoded";let l={method:"POST",headers:c,body:i};return n.emulatorConfig&&Te(n.emulatorConfig.host)&&(l.credentials="include"),Ce.fetch()(o,l)});return{accessToken:t.access_token,expiresIn:t.expires_in,refreshToken:t.refresh_token}}async function Dr(n,e){return w(n,"POST","/v2/accounts:revokeToken",I(n,e))}var se=class n{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){u(e.idToken,"internal-error"),u(typeof e.idToken<"u","internal-error"),u(typeof e.refreshToken<"u","internal-error");let t="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):di(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){u(e.length!==0,"internal-error");let t=di(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return!t&&this.accessToken&&!this.isExpired?this.accessToken:(u(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null)}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){let{accessToken:i,refreshToken:r,expiresIn:s}=await Lr(e,t);this.updateTokensAndExpiration(i,r,Number(s))}updateTokensAndExpiration(e,t,i){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+i*1e3}static fromJSON(e,t){let{refreshToken:i,accessToken:r,expirationTime:s}=t,o=new n;return i&&(u(typeof i=="string","internal-error",{appName:e}),o.refreshToken=i),r&&(u(typeof r=="string","internal-error",{appName:e}),o.accessToken=r),s&&(u(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 A("not implemented")}};function D(n,e){u(typeof n=="string"||typeof n>"u","internal-error",{appName:e})}var M=class n{constructor({uid:e,auth:t,stsTokenManager:i,...r}){this.providerId="firebase",this.proactiveRefresh=new Ht(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=i,this.accessToken=i.accessToken,this.displayName=r.displayName||null,this.email=r.email||null,this.emailVerified=r.emailVerified||!1,this.phoneNumber=r.phoneNumber||null,this.photoURL=r.photoURL||null,this.isAnonymous=r.isAnonymous||!1,this.tenantId=r.tenantId||null,this.providerData=r.providerData?[...r.providerData]:[],this.metadata=new le(r.createdAt||void 0,r.lastLoginAt||void 0)}async getIdToken(e){let t=await ce(this,this.stsTokenManager.getToken(this.auth,e));return u(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return Li(this,e)}reload(){return Di(this)}_assign(e){this!==e&&(u(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=>({...t})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let t=new n({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){u(!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()}async _updateTokensIfNecessary(e,t=!1){let i=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),i=!0),t&&await Le(this),await this.auth._persistUserIfCurrent(this),i&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(b(this.auth.app))return Promise.reject(F(this.auth));let e=await this.getIdToken();return await ce(this,Cr(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return{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=>({...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 i=t.displayName??void 0,r=t.email??void 0,s=t.phoneNumber??void 0,o=t.photoURL??void 0,c=t.tenantId??void 0,l=t._redirectEventId??void 0,d=t.createdAt??void 0,h=t.lastLoginAt??void 0,{uid:p,emailVerified:f,isAnonymous:E,providerData:N,stsTokenManager:U}=t;u(p&&U,e,"internal-error");let K=se.fromJSON(this.name,U);u(typeof p=="string",e,"internal-error"),D(i,e.name),D(r,e.name),u(typeof f=="boolean",e,"internal-error"),u(typeof E=="boolean",e,"internal-error"),D(s,e.name),D(o,e.name),D(c,e.name),D(l,e.name),D(d,e.name),D(h,e.name);let x=new n({uid:p,auth:e,email:r,emailVerified:f,displayName:i,isAnonymous:E,photoURL:o,phoneNumber:s,tenantId:c,stsTokenManager:K,createdAt:d,lastLoginAt:h});return N&&Array.isArray(N)&&(x.providerData=N.map(st=>({...st}))),l&&(x._redirectEventId=l),x}static async _fromIdTokenResponse(e,t,i=!1){let r=new se;r.updateFromServerResponse(t);let s=new n({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:i});return await Le(s),s}static async _fromGetAccountInfoResponse(e,t,i){let r=t.users[0];u(r.localId!==void 0,"internal-error");let s=r.providerUserInfo!==void 0?Mi(r.providerUserInfo):[],o=!(r.email&&r.passwordHash)&&!s?.length,c=new se;c.updateFromIdToken(i);let l=new n({uid:r.localId,auth:e,stsTokenManager:c,isAnonymous:o}),d={uid:r.localId,displayName:r.displayName||null,photoURL:r.photoUrl||null,email:r.email||null,emailVerified:r.emailVerified||!1,phoneNumber:r.phoneNumber||null,tenantId:r.tenantId||null,providerData:s,metadata:new le(r.createdAt,r.lastLoginAt),isAnonymous:!(r.email&&r.passwordHash)&&!s?.length};return Object.assign(l,d),l}};var ui=new Map;function P(n){C(n instanceof Function,"Expected a class definition");let e=ui.get(n);return e?(C(e instanceof n,"Instance stored in cache mismatched with class"),e):(e=new n,ui.set(n,e),e)}var De=class{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){let t=this.storage[e];return t===void 0?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}};De.type="NONE";var Wt=De;function be(n,e,t){return`firebase:${n}:${e}:${t}`}var Me=class n{constructor(e,t,i){this.persistence=e,this.auth=t,this.userKey=i;let{config:r,name:s}=this.auth;this.fullUserKey=be(this.userKey,r.apiKey,s),this.fullPersistenceKey=be("persistence",r.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())}async getCurrentUser(){let e=await this.persistence._get(this.fullUserKey);if(!e)return null;if(typeof e=="string"){let t=await Oe(this.auth,{idToken:e}).catch(()=>{});return t?M._fromGetAccountInfoResponse(this.auth,t,e):null}return M._fromJSON(this.auth,e)}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;let t=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,t)return this.setCurrentUser(t)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,i="authUser"){if(!t.length)return new n(P(Wt),e,i);let r=(await Promise.all(t.map(async d=>{if(await d._isAvailable())return d}))).filter(d=>d),s=r[0]||P(Wt),o=be(i,e.config.apiKey,e.name),c=null;for(let d of t)try{let h=await d._get(o);if(h){let p;if(typeof h=="string"){let f=await Oe(e,{idToken:h}).catch(()=>{});if(!f)break;p=await M._fromGetAccountInfoResponse(e,f,h)}else p=M._fromJSON(e,h);d!==s&&(c=p),s=d;break}}catch{}let l=r.filter(d=>d._shouldAllowMigration);return!s._shouldAllowMigration||!l.length?new n(s,e,i):(s=l[0],c&&await s._set(o,c.toJSON()),await Promise.all(t.map(async d=>{if(d!==s)try{await d._remove(o)}catch{}})),new n(s,e,i))}};function hi(n){let e=n.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(Fi(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(Ui(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Hi(e))return"Blackberry";if(Wi(e))return"Webos";if(xi(e))return"Safari";if((e.includes("chrome/")||Vi(e))&&!e.includes("edge/"))return"Chrome";if(Gi(e))return"Android";{let t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,i=n.match(t);if(i?.length===2)return i[1]}return"Other"}function Ui(n=v()){return/firefox\//i.test(n)}function xi(n=v()){let e=n.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function Vi(n=v()){return/crios\//i.test(n)}function Fi(n=v()){return/iemobile/i.test(n)}function Gi(n=v()){return/android/i.test(n)}function Hi(n=v()){return/blackberry/i.test(n)}function Wi(n=v()){return/webos/i.test(n)}function cn(n=v()){return/iphone|ipad|ipod/i.test(n)||/macintosh/i.test(n)&&/mobile/i.test(n)}function Mr(n=v()){return cn(n)&&!!window.navigator?.standalone}function Ur(){return Pn()&&document.documentMode===10}function zi(n=v()){return cn(n)||Gi(n)||Wi(n)||Hi(n)||/windows phone/i.test(n)||Fi(n)}function qi(n,e=[]){let t;switch(n){case"Browser":t=hi(v());break;case"Worker":t=`${hi(v())}-${n}`;break;default:t=n}let i=e.length?e.join(","):"FirebaseCore-web";return`${t}/JsCore/${J}/${i}`}var zt=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let i=s=>new Promise((o,c)=>{try{let l=e(s);o(l)}catch(l){c(l)}});i.onAbort=t,this.queue.push(i);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;let t=[];try{for(let i of this.queue)await i(e),i.onAbort&&t.push(i.onAbort)}catch(i){t.reverse();for(let r of t)try{r()}catch{}throw this.auth._errorFactory.create("login-blocked",{originalMessage:i?.message})}}};async function xr(n,e={}){return w(n,"GET","/v2/passwordPolicy",I(n,e))}var Vr=6,qt=class{constructor(e){let t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??Vr,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 i=this.customStrengthOptions.minPasswordLength,r=this.customStrengthOptions.maxPasswordLength;i&&(t.meetsMinPasswordLength=e.length>=i),r&&(t.meetsMaxPasswordLength=e.length<=r)}validatePasswordCharacterOptions(e,t){this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);let i;for(let r=0;r<e.length;r++)i=e.charAt(r),this.updatePasswordCharacterOptionsStatuses(t,i>="a"&&i<="z",i>="A"&&i<="Z",i>="0"&&i<="9",this.allowedNonAlphanumericCharacters.includes(i))}updatePasswordCharacterOptionsStatuses(e,t,i,r,s){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=i)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=r)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=s))}};var $t=class{constructor(e,t,i,r){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=i,this.config=r,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Ue(this),this.idTokenSubscription=new Ue(this),this.beforeStateQueue=new zt(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=ki,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=r.sdkClientVersion,this._persistenceManagerAvailable=new Promise(s=>this._resolvePersistenceManagerAvailable=s)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=P(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await Me.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch{}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,!this._deleted&&(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;let e=await this.assertedPersistence.getCurrentUser();if(!(!this.currentUser&&!e)){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),await this.currentUser.getIdToken();return}await this._updateCurrentUser(e,!0)}}async initializeCurrentUserFromIdToken(e){try{let t=await Oe(this,{idToken:e}),i=await M._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(i)}catch(t){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",t),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(b(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=await this.assertedPersistence.getCurrentUser(),i=t,r=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let s=this.redirectUser?._redirectEventId,o=i?._redirectEventId,c=await this.tryRedirectSignIn(e);(!s||s===o)&&c?.user&&(i=c.user,r=!0)}if(!i)return this.directlySetCurrentUser(null);if(!i._redirectEventId){if(r)try{await this.beforeStateQueue.runMiddleware(i)}catch(s){i=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}return u(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch{await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Le(e)}catch(t){if(t?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=br()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(b(this.app))return Promise.reject(F(this));let t=e?L(e):null;return t&&u(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&u(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return b(this.app)?Promise.reject(F(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return b(this.app)?Promise.reject(F(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(P(e))})}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await 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]}async _updatePasswordPolicy(){let e=await xr(this),t=new qt(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 we("auth","Firebase",e())}onAuthStateChanged(e,t,i){return this.registerStateListener(this.authStateSubscription,e,t,i)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,i){return this.registerStateListener(this.idTokenSubscription,e,t,i)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{let i=this.onAuthStateChanged(()=>{i(),e()},t)}})}async revokeAccessToken(e){if(this.currentUser){let t=await this.currentUser.getIdToken(),i={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:t};this.tenantId!=null&&(i.tenantId=this.tenantId),await Dr(this,i)}}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){let i=await this.getOrInitRedirectPersistenceManager(t);return e===null?i.removeCurrentUser():i.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let t=e&&P(e)||this._popupRedirectResolver;u(t,this,"argument-error"),this.redirectPersistenceManager=await Me.create(this,[P(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){return this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>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,i,r){if(this._deleted)return()=>{};let s=typeof t=="function"?t:t.next.bind(t),o=!1,c=this._isInitialized?Promise.resolve():this._initializationPromise;if(u(c,this,"internal-error"),c.then(()=>{o||s(this.currentUser)}),typeof t=="function"){let l=e.addObserver(t,i,r);return()=>{o=!0,l()}}else{let l=e.addObserver(t);return()=>{o=!0,l()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return u(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=qi(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){let e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);let t=await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();t&&(e["X-Firebase-Client"]=t);let i=await this._getAppCheckToken();return i&&(e["X-Firebase-AppCheck"]=i),e}async _getAppCheckToken(){if(b(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&yr(`Error while retrieving App Check token: ${e.error}`),e?.token}};function Z(n){return L(n)}var Ue=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=Nn(t=>this.observer=t)}get next(){return u(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var et={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Fr(n){et=n}function $i(n){return et.loadJS(n)}function Gr(){return et.recaptchaEnterpriseScript}function Hr(){return et.gapiScript}function Ki(n){return`__${n}${Math.floor(Math.random()*1e6)}`}var Kt=class{constructor(){this.enterprise=new jt}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}},jt=class{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}};var Wr="recaptcha-enterprise",oe="NO_RECAPTCHA",xe=class{constructor(e){this.type=Wr,this.auth=Z(e)}async verify(e="verify",t=!1){async function i(s){if(!t){if(s.tenantId==null&&s._agentRecaptchaConfig!=null)return s._agentRecaptchaConfig.siteKey;if(s.tenantId!=null&&s._tenantRecaptchaConfigs[s.tenantId]!==void 0)return s._tenantRecaptchaConfigs[s.tenantId].siteKey}return new Promise(async(o,c)=>{Oi(s,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(l=>{if(l.recaptchaKey===void 0)c(new Error("recaptcha Enterprise site key undefined"));else{let d=new Ne(l);return s.tenantId==null?s._agentRecaptchaConfig=d:s._tenantRecaptchaConfigs[s.tenantId]=d,o(d.siteKey)}}).catch(l=>{c(l)})})}function r(s,o,c){let l=window.grecaptcha;li(l)?l.enterprise.ready(()=>{l.enterprise.execute(s,{action:e}).then(d=>{o(d)}).catch(()=>{o(oe)})}):c(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new Kt().execute("siteKey",{action:"verify"}):new Promise((s,o)=>{i(this.auth).then(c=>{if(!t&&li(window.grecaptcha))r(c,s,o);else{if(typeof window>"u"){o(new Error("RecaptchaVerifier is only supported in browser"));return}let l=Gr();l.length!==0&&(l+=c),$i(l).then(()=>{r(c,s,o)}).catch(d=>{o(d)})}}).catch(c=>{o(c)})})}};async function ne(n,e,t,i=!1,r=!1){let s=new xe(n),o;if(r)o=oe;else try{o=await s.verify(t)}catch{o=await s.verify(t,!0)}let c={...e};if(t==="mfaSmsEnrollment"||t==="mfaSmsSignIn"){if("phoneEnrollmentInfo"in c){let l=c.phoneEnrollmentInfo.phoneNumber,d=c.phoneEnrollmentInfo.recaptchaToken;Object.assign(c,{phoneEnrollmentInfo:{phoneNumber:l,recaptchaToken:d,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in c){let l=c.phoneSignInInfo.recaptchaToken;Object.assign(c,{phoneSignInInfo:{recaptchaToken:l,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return c}return i?Object.assign(c,{captchaResp:o}):Object.assign(c,{captchaResponse:o}),Object.assign(c,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(c,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),c}async function ae(n,e,t,i,r){if(r==="EMAIL_PASSWORD_PROVIDER")if(n._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){let s=await ne(n,e,t,t==="getOobCode");return i(n,s)}else return i(n,e).catch(async s=>{if(s.code==="auth/missing-recaptcha-token"){console.log(`${t} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let o=await ne(n,e,t,t==="getOobCode");return i(n,o)}else return Promise.reject(s)});else if(r==="PHONE_PROVIDER")if(n._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let s=await ne(n,e,t);return i(n,s).catch(async o=>{if(n._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")==="AUDIT"&&(o.code==="auth/missing-recaptcha-token"||o.code==="auth/invalid-app-credential")){console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${t} flow.`);let c=await ne(n,e,t,!1,!0);return i(n,c)}return Promise.reject(o)})}else{let s=await ne(n,e,t,!1,!0);return i(n,s)}else return Promise.reject(r+" provider is not supported.")}async function zr(n){let e=Z(n),t=await Oi(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),i=new Ne(t);e.tenantId==null?e._agentRecaptchaConfig=i:e._tenantRecaptchaConfigs[e.tenantId]=i,i.isAnyProviderEnabled()&&new xe(e).verify()}function ji(n,e){let t=ht(n,"auth");if(t.isInitialized()){let r=t.getImmediate(),s=t.getOptions();if(ye(s,e??{}))return r;S(r,"already-initialized")}return t.initialize({options:e})}function qr(n,e){let t=e?.persistence||[],i=(Array.isArray(t)?t:[t]).map(P);e?.errorMap&&n._updateErrorMap(e.errorMap),n._initializeWithPersistence(i,e?.popupRedirectResolver)}function Bi(n,e,t){let i=Z(n);u(/^https?:\/\//.test(e),i,"invalid-emulator-scheme");let r=!!t?.disableWarnings,s=Yi(e),{host:o,port:c}=$r(e),l=c===null?"":`:${c}`,d={url:`${s}//${o}${l}/`},h=Object.freeze({host:o,port:c,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:r})});if(!i._canInitEmulator){u(i.config.emulator&&i.emulatorConfig,i,"emulator-config-failed"),u(ye(d,i.config.emulator)&&ye(h,i.emulatorConfig),i,"emulator-config-failed");return}i.config.emulator=d,i.emulatorConfig=h,i.settings.appVerificationDisabledForTesting=!0,Te(o)?(vn(`${s}//${o}${l}`),Sn("Auth",!0)):r||Kr()}function Yi(n){let e=n.indexOf(":");return e<0?"":n.substr(0,e+1)}function $r(n){let e=Yi(n),t=/(\/\/)?([^?#/]+)/.exec(n.substr(e.length));if(!t)return{host:"",port:null};let i=t[2].split("@").pop()||"",r=/^(\[[^\]]+\])(:|$)/.exec(i);if(r){let s=r[1];return{host:s,port:pi(i.substr(s.length+1))}}else{let[s,o]=i.split(":");return{host:s,port:pi(o)}}}function pi(n){if(!n)return null;let e=Number(n);return isNaN(e)?null:e}function Kr(){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 H=class{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return A("not implemented")}_getIdTokenResponse(e){return A("not implemented")}_linkToIdToken(e,t){return A("not implemented")}_getReauthenticationResolver(e){return A("not implemented")}};async function jr(n,e){return w(n,"POST","/v1/accounts:signUp",e)}async function Br(n,e){return $(n,"POST","/v1/accounts:signInWithPassword",I(n,e))}async function Yr(n,e){return $(n,"POST","/v1/accounts:signInWithEmailLink",I(n,e))}async function Jr(n,e){return $(n,"POST","/v1/accounts:signInWithEmailLink",I(n,e))}var de=class n extends H{constructor(e,t,i,r=null){super("password",i),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new n(e,t,"password")}static _fromEmailAndCode(e,t,i=null){return new n(e,t,"emailLink",i)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let t=typeof e=="string"?JSON.parse(e):e;if(t?.email&&t?.password){if(t.signInMethod==="password")return this._fromEmailAndPassword(t.email,t.password);if(t.signInMethod==="emailLink")return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":let t={returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return ae(e,t,"signInWithPassword",Br,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Yr(e,{email:this._email,oobCode:this._password});default:S(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":let i={idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return ae(e,i,"signUpPassword",jr,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Jr(e,{idToken:t,email:this._email,oobCode:this._password});default:S(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}};async function X(n,e){return $(n,"POST","/v1/accounts:signInWithIdp",I(n,e))}var Xr="http://localhost",W=class n extends H{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):S("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 t=typeof e=="string"?JSON.parse(e):e,{providerId:i,signInMethod:r,...s}=t;if(!i||!r)return null;let o=new n(i,r);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 X(e,t)}_linkToIdToken(e,t){let i=this.buildRequest();return i.idToken=t,X(e,i)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,X(e,t)}buildRequest(){let e={requestUri:Xr,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}};async function fi(n,e){return w(n,"POST","/v1/accounts:sendVerificationCode",I(n,e))}async function Qr(n,e){return $(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,e))}async function Zr(n,e){let t=await $(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,e));if(t.temporaryProof)throw ie(n,"account-exists-with-different-credential",t);return t}var es={USER_NOT_FOUND:"user-not-found"};async function ts(n,e){let t={...e,operation:"REAUTH"};return $(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,t),es)}var ue=class n extends H{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new n({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new n({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return Qr(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return Zr(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return ts(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:t,verificationId:i,verificationCode:r}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:i,code:r}}toJSON(){let e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){typeof e=="string"&&(e=JSON.parse(e));let{verificationId:t,verificationCode:i,phoneNumber:r,temporaryProof:s}=e;return!i&&!t&&!r&&!s?null:new n({verificationId:t,verificationCode:i,phoneNumber:r,temporaryProof:s})}};function ns(n){switch(n){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}function is(n){let e=B(Y(n)).link,t=e?B(Y(e)).deep_link_id:null,i=B(Y(n)).deep_link_id;return(i?B(Y(i)).link:null)||i||t||e||n}var Ve=class n{constructor(e){let t=B(Y(e)),i=t.apiKey??null,r=t.oobCode??null,s=ns(t.mode??null);u(i&&r&&s,"argument-error"),this.apiKey=i,this.operation=s,this.code=r,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){let t=is(e);try{return new n(t)}catch{return null}}};var Q=class n{constructor(){this.providerId=n.PROVIDER_ID}static credential(e,t){return de._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){let i=Ve.parseLink(t);return u(i,"argument-error"),de._fromEmailAndCode(e,i.code,i.tenantId)}};Q.PROVIDER_ID="password";Q.EMAIL_PASSWORD_SIGN_IN_METHOD="password";Q.EMAIL_LINK_SIGN_IN_METHOD="emailLink";var Fe=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 z=class extends Fe{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}};var he=class n extends z{constructor(){super("facebook.com")}static credential(e){return W._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return n.credentialFromTaggedObject(e)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return n.credential(e.oauthAccessToken)}catch{return null}}};he.FACEBOOK_SIGN_IN_METHOD="facebook.com";he.PROVIDER_ID="facebook.com";var pe=class n extends z{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return W._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return n.credentialFromTaggedObject(e)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:t,oauthAccessToken:i}=e;if(!t&&!i)return null;try{return n.credential(t,i)}catch{return null}}};pe.GOOGLE_SIGN_IN_METHOD="google.com";pe.PROVIDER_ID="google.com";var fe=class n extends z{constructor(){super("github.com")}static credential(e){return W._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return n.credentialFromTaggedObject(e)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return n.credential(e.oauthAccessToken)}catch{return null}}};fe.GITHUB_SIGN_IN_METHOD="github.com";fe.PROVIDER_ID="github.com";var me=class n extends z{constructor(){super("twitter.com")}static credential(e,t){return W._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return n.credentialFromTaggedObject(e)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthAccessToken:t,oauthTokenSecret:i}=e;if(!t||!i)return null;try{return n.credential(t,i)}catch{return null}}};me.TWITTER_SIGN_IN_METHOD="twitter.com";me.PROVIDER_ID="twitter.com";var ge=class n{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,i,r=!1){let s=await M._fromIdTokenResponse(e,i,r),o=mi(i);return new n({user:s,providerId:o,_tokenResponse:i,operationType:t})}static async _forOperation(e,t,i){await e._updateTokensIfNecessary(i,!0);let r=mi(i);return new n({user:e,providerId:r,_tokenResponse:i,operationType:t})}};function mi(n){return n.providerId?n.providerId:"phoneNumber"in n?"phone":null}var Bt=class n extends Ee{constructor(e,t,i,r){super(t.code,t.message),this.operationType=i,this.user=r,Object.setPrototypeOf(this,n.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:i}}static _fromErrorAndOperation(e,t,i,r){return new n(e,t,i,r)}};function Ji(n,e,t,i){return(e==="reauthenticate"?t._getReauthenticationResolver(n):t._getIdTokenResponse(n)).catch(s=>{throw s.code==="auth/multi-factor-auth-required"?Bt._fromErrorAndOperation(n,s,e,i):s})}async function rs(n,e,t=!1){let i=await ce(n,e._linkToIdToken(n.auth,await n.getIdToken()),t);return ge._forOperation(n,"link",i)}async function ss(n,e,t=!1){let{auth:i}=n;if(b(i.app))return Promise.reject(F(i));let r="reauthenticate";try{let s=await ce(n,Ji(i,r,e,n),t);u(s.idToken,i,"internal-error");let o=an(s.idToken);u(o,i,"internal-error");let{sub:c}=o;return u(n.uid===c,i,"user-mismatch"),ge._forOperation(n,r,s)}catch(s){throw s?.code==="auth/user-not-found"&&S(i,"user-mismatch"),s}}async function os(n,e,t=!1){if(b(n.app))return Promise.reject(F(n));let i="signIn",r=await Ji(n,i,e),s=await ge._fromIdTokenResponse(n,i,r);return t||await n._updateCurrentUser(s.user),s}function Xi(n,e,t,i){return L(n).onIdTokenChanged(e,t,i)}function Qi(n,e,t){return L(n).beforeAuthStateChanged(e,t)}function gi(n,e){return w(n,"POST","/v2/accounts/mfaEnrollment:start",I(n,e))}function as(n,e){return w(n,"POST","/v2/accounts/mfaEnrollment:finalize",I(n,e))}function cs(n,e){return w(n,"POST","/v2/accounts/mfaEnrollment:start",I(n,e))}function ls(n,e){return w(n,"POST","/v2/accounts/mfaEnrollment:finalize",I(n,e))}var Ge="__sak";var He=class{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Ge,"1"),this.storage.removeItem(Ge),Promise.resolve(!0)):Promise.resolve(!1)}catch{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 ds=1e3,us=10,We=class extends He{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=zi(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(let t of Object.keys(this.listeners)){let i=this.storage.getItem(t),r=this.localCache[t];i!==r&&e(t,r,i)}}onStorageEvent(e,t=!1){if(!e.key){this.forAllChangedKeys((o,c,l)=>{this.notifyListeners(o,l)});return}let i=e.key;t?this.detachListener():this.stopPolling();let r=()=>{let o=this.storage.getItem(i);!t&&this.localCache[i]===o||this.notifyListeners(i,o)},s=this.storage.getItem(i);Ur()&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(r,us):r()}notifyListeners(e,t){this.localCache[e]=t;let i=this.listeners[e];if(i)for(let r of Array.from(i))r(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,i)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:i}),!0)})},ds)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){Object.keys(this.listeners).length===0&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),this.listeners[e].size===0&&delete this.listeners[e]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){let t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}};We.type="LOCAL";var Zi=We;var hs=1e3;function Mt(n){let e=n.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),t=RegExp(`${e}=([^;]+)`);return document.cookie.match(t)?.[1]??null}function Ut(n){return`${window.location.protocol==="http:"?"__dev_":"__HOST-"}FIREBASE_${n.split(":")[3]}`}var Yt=class{constructor(){this.type="COOKIE",this.listenerUnsubscribes=new Map}_getFinalTarget(e){if(typeof window===void 0)return e;let t=new URL(`${window.location.origin}/__cookies__`);return t.searchParams.set("finalTarget",e),t}async _isAvailable(){return typeof isSecureContext=="boolean"&&!isSecureContext||typeof navigator>"u"||typeof document>"u"?!1:navigator.cookieEnabled??!0}async _set(e,t){}async _get(e){if(!this._isAvailable())return null;let t=Ut(e);return window.cookieStore?(await window.cookieStore.get(t))?.value:Mt(t)}async _remove(e){if(!this._isAvailable()||!await this._get(e))return;let i=Ut(e);document.cookie=`${i}=;Max-Age=34560000;Partitioned;Secure;SameSite=Strict;Path=/;Priority=High`,await fetch("/__cookies__",{method:"DELETE"}).catch(()=>{})}_addListener(e,t){if(!this._isAvailable())return;let i=Ut(e);if(window.cookieStore){let c=(d=>{let h=d.changed.find(f=>f.name===i);h&&t(h.value),d.deleted.find(f=>f.name===i)&&t(null)}),l=()=>window.cookieStore.removeEventListener("change",c);return this.listenerUnsubscribes.set(t,l),window.cookieStore.addEventListener("change",c)}let r=Mt(i),s=setInterval(()=>{let c=Mt(i);c!==r&&(t(c),r=c)},hs),o=()=>clearInterval(s);this.listenerUnsubscribes.set(t,o)}_removeListener(e,t){let i=this.listenerUnsubscribes.get(t);i&&(i(),this.listenerUnsubscribes.delete(t))}};Yt.type="COOKIE";var ze=class extends He{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}};ze.type="SESSION";var ln=ze;function ps(n){return Promise.all(n.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(t){return{fulfilled:!1,reason:t}}}))}var qe=class n{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){let t=this.receivers.find(r=>r.isListeningto(e));if(t)return t;let i=new n(e);return this.receivers.push(i),i}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let t=e,{eventId:i,eventType:r,data:s}=t.data,o=this.handlersMap[r];if(!o?.size)return;t.ports[0].postMessage({status:"ack",eventId:i,eventType:r});let c=Array.from(o).map(async d=>d(t.origin,s)),l=await ps(c);t.ports[0].postMessage({status:"done",eventId:i,eventType:r,response:l})}_subscribe(e,t){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),(!t||this.handlersMap[e].size===0)&&delete this.handlersMap[e],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}};qe.receivers=[];function dn(n="",e=10){let t="";for(let i=0;i<e;i++)t+=Math.floor(Math.random()*10);return n+t}var Jt=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)}async _send(e,t,i=50){let r=typeof MessageChannel<"u"?new MessageChannel:null;if(!r)throw new Error("connection_unavailable");let s,o;return new Promise((c,l)=>{let d=dn("",20);r.port1.start();let h=setTimeout(()=>{l(new Error("unsupported_event"))},i);o={messageChannel:r,onMessage(p){let f=p;if(f.data.eventId===d)switch(f.data.status){case"ack":clearTimeout(h),s=setTimeout(()=>{l(new Error("timeout"))},3e3);break;case"done":clearTimeout(s),c(f.data.response);break;default:clearTimeout(h),clearTimeout(s),l(new Error("invalid_response"));break}}},this.handlers.add(o),r.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:d,data:t},[r.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})}};function k(){return window}function fs(n){k().location.href=n}function er(){return typeof k().WorkerGlobalScope<"u"&&typeof k().importScripts=="function"}async function ms(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}function gs(){return navigator?.serviceWorker?.controller||null}function _s(){return er()?self:null}var tr="firebaseLocalStorageDb",Is=1,$e="firebaseLocalStorage",nr="fbase_key",q=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 tt(n,e){return n.transaction([$e],e?"readwrite":"readonly").objectStore($e)}function Ts(){let n=indexedDB.deleteDatabase(tr);return new q(n).toPromise()}function Xt(){let n=indexedDB.open(tr,Is);return new Promise((e,t)=>{n.addEventListener("error",()=>{t(n.error)}),n.addEventListener("upgradeneeded",()=>{let i=n.result;try{i.createObjectStore($e,{keyPath:nr})}catch(r){t(r)}}),n.addEventListener("success",async()=>{let i=n.result;i.objectStoreNames.contains($e)?e(i):(i.close(),await Ts(),e(await Xt()))})})}async function _i(n,e,t){let i=tt(n,!0).put({[nr]:e,value:t});return new q(i).toPromise()}async function Es(n,e){let t=tt(n,!1).get(e),i=await new q(t).toPromise();return i===void 0?null:i.value}function Ii(n,e){let t=tt(n,!0).delete(e);return new q(t).toPromise()}var ws=800,ys=3,Ke=class{constructor(){this.type="LOCAL",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(()=>{},()=>{})}async _openDb(){return this.db?this.db:(this.db=await Xt(),this.db)}async _withRetries(e){let t=0;for(;;)try{let i=await this._openDb();return await e(i)}catch(i){if(t++>ys)throw i;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return er()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=qe._getInstance(_s()),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){if(this.activeServiceWorker=await ms(),!this.activeServiceWorker)return;this.sender=new Jt(this.activeServiceWorker);let e=await this.sender._send("ping",{},800);e&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(!(!this.sender||!this.activeServiceWorker||gs()!==this.activeServiceWorker))try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{if(!indexedDB)return!1;let e=await Xt();return await _i(e,Ge,"1"),await Ii(e,Ge),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite(async()=>(await this._withRetries(i=>_i(i,e,t)),this.localCache[e]=t,this.notifyServiceWorker(e)))}async _get(e){let t=await this._withRetries(i=>Es(i,e));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(t=>Ii(t,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){let e=await this._withRetries(r=>{let s=tt(r,!1).getAll();return new q(s).toPromise()});if(!e)return[];if(this.pendingWrites!==0)return[];let t=[],i=new Set;if(e.length!==0)for(let{fbase_key:r,value:s}of e)i.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(s)&&(this.notifyListeners(r,s),t.push(r));for(let r of Object.keys(this.localCache))this.localCache[r]&&!i.has(r)&&(this.notifyListeners(r,null),t.push(r));return t}notifyListeners(e,t){this.localCache[e]=t;let i=this.listeners[e];if(i)for(let r of Array.from(i))r(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),ws)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),this.listeners[e].size===0&&delete this.listeners[e]),Object.keys(this.listeners).length===0&&this.stopPolling()}};Ke.type="LOCAL";var ir=Ke;function Ti(n,e){return w(n,"POST","/v2/accounts/mfaSignIn:start",I(n,e))}function vs(n,e){return w(n,"POST","/v2/accounts/mfaSignIn:finalize",I(n,e))}function Ss(n,e){return w(n,"POST","/v2/accounts/mfaSignIn:finalize",I(n,e))}var La=Ki("rcb"),Da=new G(3e4,6e4);var Ae="recaptcha";async function bs(n,e,t){if(!n._getRecaptchaConfig())try{await zr(n)}catch{console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let i;if(typeof e=="string"?i={phoneNumber:e}:i=e,"session"in i){let r=i.session;if("phoneNumber"in i){u(r.type==="enroll",n,"internal-error");let s={idToken:r.credential,phoneEnrollmentInfo:{phoneNumber:i.phoneNumber,clientType:"CLIENT_TYPE_WEB"}};return(await ae(n,s,"mfaSmsEnrollment",async(d,h)=>{if(h.phoneEnrollmentInfo.captchaResponse===oe){u(t?.type===Ae,d,"argument-error");let p=await xt(d,h,t);return gi(d,p)}return gi(d,h)},"PHONE_PROVIDER").catch(d=>Promise.reject(d))).phoneSessionInfo.sessionInfo}else{u(r.type==="signin",n,"internal-error");let s=i.multiFactorHint?.uid||i.multiFactorUid;u(s,n,"missing-multi-factor-info");let o={mfaPendingCredential:r.credential,mfaEnrollmentId:s,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}};return(await ae(n,o,"mfaSmsSignIn",async(h,p)=>{if(p.phoneSignInInfo.captchaResponse===oe){u(t?.type===Ae,h,"argument-error");let f=await xt(h,p,t);return Ti(h,f)}return Ti(h,p)},"PHONE_PROVIDER").catch(h=>Promise.reject(h))).phoneResponseInfo.sessionInfo}}else{let r={phoneNumber:i.phoneNumber,clientType:"CLIENT_TYPE_WEB"};return(await ae(n,r,"sendVerificationCode",async(l,d)=>{if(d.captchaResponse===oe){u(t?.type===Ae,l,"argument-error");let h=await xt(l,d,t);return fi(l,h)}return fi(l,d)},"PHONE_PROVIDER").catch(l=>Promise.reject(l))).sessionInfo}}finally{t?._reset()}}async function xt(n,e,t){u(t.type===Ae,n,"argument-error");let i=await t.verify();u(typeof i=="string",n,"argument-error");let r={...e};if("phoneEnrollmentInfo"in r){let s=r.phoneEnrollmentInfo.phoneNumber,o=r.phoneEnrollmentInfo.captchaResponse,c=r.phoneEnrollmentInfo.clientType,l=r.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(r,{phoneEnrollmentInfo:{phoneNumber:s,recaptchaToken:i,captchaResponse:o,clientType:c,recaptchaVersion:l}}),r}else if("phoneSignInInfo"in r){let s=r.phoneSignInInfo.captchaResponse,o=r.phoneSignInInfo.clientType,c=r.phoneSignInInfo.recaptchaVersion;return Object.assign(r,{phoneSignInInfo:{recaptchaToken:i,captchaResponse:s,clientType:o,recaptchaVersion:c}}),r}else return Object.assign(r,{recaptchaToken:i}),r}var _e=class n{constructor(e){this.providerId=n.PROVIDER_ID,this.auth=Z(e)}verifyPhoneNumber(e,t){return bs(this.auth,e,L(t))}static credential(e,t){return ue._fromVerification(e,t)}static credentialFromResult(e){let t=e;return n.credentialFromTaggedObject(t)}static credentialFromError(e){return n.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{phoneNumber:t,temporaryProof:i}=e;return t&&i?ue._fromTokenResponse(t,i):null}};_e.PROVIDER_ID="phone";_e.PHONE_SIGN_IN_METHOD="phone";function As(n,e){return e?P(e):(u(n._popupRedirectResolver,n,"argument-error"),n._popupRedirectResolver)}var Ie=class extends H{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return X(e,this._buildIdpRequest())}_linkToIdToken(e,t){return X(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return X(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 Rs(n){return os(n.auth,new Ie(n),n.bypassAuthState)}function ks(n){let{auth:e,user:t}=n;return u(t,e,"internal-error"),ss(t,new Ie(n),n.bypassAuthState)}async function Ps(n){let{auth:e,user:t}=n;return u(t,e,"internal-error"),rs(t,new Ie(n),n.bypassAuthState)}var je=class{constructor(e,t,i,r,s=!1){this.auth=e,this.resolver=i,this.user=r,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(i){this.reject(i)}})}async onAuthEvent(e){let{urlResponse:t,sessionId:i,postBody:r,tenantId:s,error:o,type:c}=e;if(o){this.reject(o);return}let l={auth:this.auth,requestUri:t,sessionId:i,tenantId:s||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(c)(l))}catch(d){this.reject(d)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Rs;case"linkViaPopup":case"linkViaRedirect":return Ps;case"reauthViaPopup":case"reauthViaRedirect":return ks;default:S(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 Cs=new G(2e3,1e4);var Qt=class n extends je{constructor(e,t,i,r,s){super(e,t,r,s),this.provider=i,this.authWindow=null,this.pollId=null,n.currentPopupAction&&n.currentPopupAction.cancel(),n.currentPopupAction=this}async executeNotNull(){let e=await this.execute();return u(e,this.auth,"internal-error"),e}async onExecution(){C(this.filter.length===1,"Popup operations only handle one event");let e=dn();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(t=>{this.reject(t)}),this.resolver._isIframeWebStorageSupported(this.auth,t=>{t||this.reject(R(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(R(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 e=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(R(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,Cs.get())};e()}};Qt.currentPopupAction=null;var Ns="pendingRedirect",Re=new Map,Zt=class extends je{constructor(e,t,i=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,i),this.eventId=null}async execute(){let e=Re.get(this.auth._key());if(!e){try{let i=await Os(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(i)}catch(t){e=()=>Promise.reject(t)}Re.set(this.auth._key(),e)}return this.bypassAuthState||Re.set(this.auth._key(),()=>Promise.resolve(null)),e()}async onAuthEvent(e){if(e.type==="signInViaRedirect")return super.onAuthEvent(e);if(e.type==="unknown"){this.resolve(null);return}if(e.eventId){let t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}};async function Os(n,e){let t=Ms(e),i=Ds(n);if(!await i._isAvailable())return!1;let r=await i._get(t)==="true";return await i._remove(t),r}function Ls(n,e){Re.set(n._key(),e)}function Ds(n){return P(n._redirectPersistence)}function Ms(n){return be(Ns,n.config.apiKey,n.name)}async function Us(n,e,t=!1){if(b(n.app))return Promise.reject(F(n));let i=Z(n),r=As(i,e),o=await new Zt(i,r,t).execute();return o&&!t&&(delete o.user._redirectEventId,await i._persistUserIfCurrent(o.user),await i._setRedirectUser(null,e)),o}var xs=600*1e3,en=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(i=>{this.isEventForConsumer(e,i)&&(t=!0,this.sendToConsumer(e,i),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!Vs(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!rr(e)){let i=e.error.code?.split("auth/")[1]||"internal-error";t.onError(R(this.auth,i))}else t.onAuthEvent(e)}isEventForConsumer(e,t){let i=t.eventId===null||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&i}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=xs&&this.cachedEventUids.clear(),this.cachedEventUids.has(Ei(e))}saveEventToCache(e){this.cachedEventUids.add(Ei(e)),this.lastProcessedEventTime=Date.now()}};function Ei(n){return[n.type,n.eventId,n.sessionId,n.tenantId].filter(e=>e).join("-")}function rr({type:n,error:e}){return n==="unknown"&&e?.code==="auth/no-auth-event"}function Vs(n){switch(n.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return rr(n);default:return!1}}async function Fs(n,e={}){return w(n,"GET","/v1/projects",e)}var Gs=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Hs=/^https?/;async function Ws(n){if(n.config.emulator)return;let{authorizedDomains:e}=await Fs(n);for(let t of e)try{if(zs(t))return}catch{}S(n,"unauthorized-domain")}function zs(n){let e=Ft(),{protocol:t,hostname:i}=new URL(e);if(n.startsWith("chrome-extension://")){let o=new URL(n);return o.hostname===""&&i===""?t==="chrome-extension:"&&n.replace("chrome-extension://","")===e.replace("chrome-extension://",""):t==="chrome-extension:"&&o.hostname===i}if(!Hs.test(t))return!1;if(Gs.test(n))return i===n;let r=n.replace(/\./g,"\\.");return new RegExp("^(.+\\."+r+"|"+r+")$","i").test(i)}var qs=new G(3e4,6e4);function wi(){let n=k().___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 $s(n){return new Promise((e,t)=>{function i(){wi(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{wi(),t(R(n,"network-request-failed"))},timeout:qs.get()})}if(k().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else if(k().gapi?.load)i();else{let r=Ki("iframefcb");return k()[r]=()=>{gapi.load?i():t(R(n,"network-request-failed"))},$i(`${Hr()}?onload=${r}`).catch(s=>t(s))}}).catch(e=>{throw ke=null,e})}var ke=null;function Ks(n){return ke=ke||$s(n),ke}var js=new G(5e3,15e3),Bs="__/auth/iframe",Ys="emulator/auth/iframe",Js={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Xs=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Qs(n){let e=n.config;u(e.authDomain,n,"auth-domain-config-required");let t=e.emulator?on(e,Ys):`https://${n.config.authDomain}/${Bs}`,i={apiKey:e.apiKey,appName:n.name,v:J},r=Xs.get(n.config.apiHost);r&&(i.eid=r);let s=n._getFrameworks();return s.length&&(i.fw=s.join(",")),`${t}?${j(i).slice(1)}`}async function Zs(n){let e=await Ks(n),t=k().gapi;return u(t,n,"internal-error"),e.open({where:document.body,url:Qs(n),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Js,dontclear:!0},i=>new Promise(async(r,s)=>{await i.restyle({setHideOnLeave:!1});let o=R(n,"network-request-failed"),c=k().setTimeout(()=>{s(o)},js.get());function l(){k().clearTimeout(c),r(i)}i.ping(l).then(l,()=>{s(o)})}))}var eo={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},to=500,no=600,io="_blank",ro="http://localhost",Be=class{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch{}}};function so(n,e,t,i=to,r=no){let s=Math.max((window.screen.availHeight-r)/2,0).toString(),o=Math.max((window.screen.availWidth-i)/2,0).toString(),c="",l={...eo,width:i.toString(),height:r.toString(),top:s,left:o},d=v().toLowerCase();t&&(c=Vi(d)?io:t),Ui(d)&&(e=e||ro,l.scrollbars="yes");let h=Object.entries(l).reduce((f,[E,N])=>`${f}${E}=${N},`,"");if(Mr(d)&&c!=="_self")return oo(e||"",c),new Be(null);let p=window.open(e||"",c,h);u(p,n,"popup-blocked");try{p.focus()}catch{}return new Be(p)}function oo(n,e){let t=document.createElement("a");t.href=n,t.target=e;let i=document.createEvent("MouseEvent");i.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),t.dispatchEvent(i)}var ao="__/auth/handler",co="emulator/auth/handler",lo=encodeURIComponent("fac");async function yi(n,e,t,i,r,s){u(n.config.authDomain,n,"auth-domain-config-required"),u(n.config.apiKey,n,"invalid-api-key");let o={apiKey:n.config.apiKey,appName:n.name,authType:t,redirectUrl:i,v:J,eventId:r};if(e instanceof Fe){e.setDefaultLanguage(n.languageCode),o.providerId=e.providerId||"",Cn(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(let[h,p]of Object.entries(s||{}))o[h]=p}if(e instanceof z){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 l=await n._getAppCheckToken(),d=l?`#${lo}=${encodeURIComponent(l)}`:"";return`${uo(n)}?${j(c).slice(1)}${d}`}function uo({config:n}){return n.emulator?on(n,co):`https://${n.authDomain}/${ao}`}var Vt="webStorageSupport",tn=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=ln,this._completeRedirectFn=Us,this._overrideRedirectResult=Ls}async _openPopup(e,t,i,r){C(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()");let s=await yi(e,t,i,Ft(),r);return so(e,s,dn())}async _openRedirect(e,t,i,r){await this._originValidation(e);let s=await yi(e,t,i,Ft(),r);return fs(s),new Promise(()=>{})}_initialize(e){let t=e._key();if(this.eventManagers[t]){let{manager:r,promise:s}=this.eventManagers[t];return r?Promise.resolve(r):(C(s,"If manager is not set, promise should be"),s)}let i=this.initAndGetManager(e);return this.eventManagers[t]={promise:i},i.catch(()=>{delete this.eventManagers[t]}),i}async initAndGetManager(e){let t=await Zs(e),i=new en(e);return t.register("authEvent",r=>(u(r?.authEvent,e,"invalid-auth-event"),{status:i.onEvent(r.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:i},this.iframes[e._key()]=t,i}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(Vt,{type:Vt},r=>{let s=r?.[0]?.[Vt];s!==void 0&&t(!!s),S(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Ws(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return zi()||xi()||cn()}},sr=tn,Ye=class{constructor(e){this.factorId=e}_process(e,t,i){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,i);case"signin":return this._finalizeSignIn(e,t.credential);default:return A("unexpected MultiFactorSessionType")}}},nn=class n extends Ye{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new n(e)}_finalizeEnroll(e,t,i){return as(e,{idToken:t,displayName:i,phoneVerificationInfo:this.credential._makeVerificationRequest()})}_finalizeSignIn(e,t){return vs(e,{mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()})}},Je=class{constructor(){}static assertion(e){return nn._fromCredential(e)}};Je.FACTOR_ID="phone";var Xe=class{static assertionForEnrollment(e,t){return Qe._fromSecret(e,t)}static assertionForSignIn(e,t){return Qe._fromEnrollmentId(e,t)}static async generateSecret(e){let t=e;u(typeof t.user?.auth<"u","internal-error");let i=await cs(t.user.auth,{idToken:t.credential,totpEnrollmentInfo:{}});return Ze._fromStartTotpMfaEnrollmentResponse(i,t.user.auth)}};Xe.FACTOR_ID="totp";var Qe=class n extends Ye{constructor(e,t,i){super("totp"),this.otp=e,this.enrollmentId=t,this.secret=i}static _fromSecret(e,t){return new n(t,void 0,e)}static _fromEnrollmentId(e,t){return new n(t,e)}async _finalizeEnroll(e,t,i){return u(typeof this.secret<"u",e,"argument-error"),ls(e,{idToken:t,displayName:i,totpVerificationInfo:this.secret._makeTotpVerificationInfo(this.otp)})}async _finalizeSignIn(e,t){u(this.enrollmentId!==void 0&&this.otp!==void 0,e,"argument-error");let i={verificationCode:this.otp};return Ss(e,{mfaPendingCredential:t,mfaEnrollmentId:this.enrollmentId,totpVerificationInfo:i})}},Ze=class n{constructor(e,t,i,r,s,o,c){this.sessionInfo=o,this.auth=c,this.secretKey=e,this.hashingAlgorithm=t,this.codeLength=i,this.codeIntervalSeconds=r,this.enrollmentCompletionDeadline=s}static _fromStartTotpMfaEnrollmentResponse(e,t){return new n(e.totpSessionInfo.sharedSecretKey,e.totpSessionInfo.hashingAlgorithm,e.totpSessionInfo.verificationCodeLength,e.totpSessionInfo.periodSec,new Date(e.totpSessionInfo.finalizeEnrollmentTime).toUTCString(),e.totpSessionInfo.sessionInfo,t)}_makeTotpVerificationInfo(e){return{sessionInfo:this.sessionInfo,verificationCode:e}}generateQrCodeUrl(e,t){let i=!1;return(ve(e)||ve(t))&&(i=!0),i&&(ve(e)&&(e=this.auth.currentUser?.email||"unknownuser"),ve(t)&&(t=this.auth.name)),`otpauth://totp/${t}:${e}?secret=${this.secretKey}&issuer=${t}&algorithm=${this.hashingAlgorithm}&digits=${this.codeLength}`}};function ve(n){return typeof n>"u"||n?.length===0}var vi="@firebase/auth",Si="1.11.0";var rn=class{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let t=this.auth.onIdTokenChanged(i=>{e(i?.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(){u(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function ho(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 po(n){ut(new lt("auth",(e,{options:t})=>{let i=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat"),s=e.getProvider("app-check-internal"),{apiKey:o,authDomain:c}=i.options;u(o&&!o.includes(":"),"invalid-api-key",{appName:i.name});let l={apiKey:o,authDomain:c,clientPlatform:n,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:qi(n)},d=new $t(i,r,s,l);return qr(d,t),d},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,i)=>{e.getProvider("auth-internal").initialize()})),ut(new lt("auth-internal",e=>{let t=Z(e.getProvider("auth").getImmediate());return(i=>new rn(i))(t)},"PRIVATE").setInstantiationMode("EXPLICIT")),te(vi,Si,ho(n)),te(vi,Si,"esm2020")}var fo=300,mo=ct("authIdTokenMaxAge")||fo,bi=null,go=n=>async e=>{let t=e&&await e.getIdTokenResult(),i=t&&(new Date().getTime()-Date.parse(t.issuedAtTime))/1e3;if(i&&i>mo)return;let r=t?.token;bi!==r&&(bi=r,await fetch(n,{method:r?"POST":"DELETE",headers:r?{Authorization:`Bearer ${r}`}:{}}))};function un(n=Dn()){let e=ht(n,"auth");if(e.isInitialized())return e.getImmediate();let t=ji(n,{popupRedirectResolver:sr,persistence:[ir,Zi,ln]}),i=ct("authTokenSyncURL");if(i&&typeof isSecureContext=="boolean"&&isSecureContext){let s=new URL(i,location.origin);if(location.origin===s.origin){let o=go(s.toString());Qi(t,o,()=>o(t.currentUser)),Xi(t,c=>o(c))}}let r=yn("auth");return r&&Bi(t,`http://${r}`),t}function _o(){return document.getElementsByTagName("head")?.[0]??document}Fr({loadJS(n){return new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=e,i.onerror=r=>{let s=R("internal-error");s.customData=r,t(s)},i.type="text/javascript",i.charset="UTF-8",_o().appendChild(i)})},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="});po("Browser");Tr();at();at();var pn="root::cms:recentViews",Io=5,hn="rootcms:recentViewsChange";function ar(){try{let n=window.localStorage.getItem(pn);if(!n)return[];let e=JSON.parse(n);return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&typeof t.url=="string"&&typeof t.label=="string"&&typeof t.kind=="string"):[]}catch{return[]}}function To(n){try{window.localStorage.setItem(pn,JSON.stringify(n))}catch(e){console.error("failed to persist recent views:",e)}window.dispatchEvent(new CustomEvent(hn))}function or(){return ar().sort((n,e)=>e.viewedAt-n.viewedAt)}function cr(n){if(!n.url)return;let e=ar().filter(i=>i.url!==n.url),t=[{...n,viewedAt:Date.now()},...e].slice(0,Io);To(t)}function lr(){let[n,e]=V(()=>or());return O(()=>{let t=()=>e(or()),i=r=>{r.key===pn&&t()};return window.addEventListener(hn,t),window.addEventListener("storage",i),()=>{window.removeEventListener(hn,t),window.removeEventListener("storage",i)}},[]),n}function dr(n){let e=n.split("?")[0]||n;try{e=new URL(n,window.location.origin).pathname}catch{}e=e.replace(/\/+$/,"");let t=e.split("/").filter(Boolean);if(t.length===4&&t[0]==="cms"&&t[1]==="content"){let i=decodeURIComponent(t[2]),r=decodeURIComponent(t[3]);return{kind:"doc",url:`/cms/content/${t[2]}/${t[3]}`,label:`${i} / ${r}`,viewedAt:0}}if(t.length===3&&t[0]==="cms"&&t[1]==="content"){let i=decodeURIComponent(t[2]),r=window.__ROOT_CTX?.collections?.[i];return{kind:"collection",url:`/cms/content/${t[2]}`,label:r?.name||i,description:r?.description,viewedAt:0}}if(t.length===3&&t[0]==="cms"&&t[1]==="data"&&t[2]!=="new"){let i=decodeURIComponent(t[2]);return{kind:"data-source",url:`/cms/data/${t[2]}`,label:i,viewedAt:0}}if(t.length===3&&t[0]==="cms"&&t[1]==="releases"&&t[2]!=="new"){let i=decodeURIComponent(t[2]);return{kind:"release",url:`/cms/releases/${t[2]}`,label:i,viewedAt:0}}return null}function ur(n){let e=n.text||"",t=(n.terms||[]).filter(Boolean);if(!e)return[];if(!t.length)return[{kind:"text",value:e.slice(0,180)}];let i=e.toLowerCase(),r=[];for(let p of t){let f=p.toLowerCase();if(!f)continue;let E=0;for(;(E=i.indexOf(f,E))!==-1;)r.push({start:E,end:E+f.length}),E+=f.length}if(r.length===0)return[{kind:"text",value:e.slice(0,180)}];r.sort((p,f)=>p.start-f.start);let s=[];for(let p of r){let f=s[s.length-1];f&&p.start<=f.end?f.end=Math.max(f.end,p.end):s.push({...p})}let o=s[0],c=Math.max(0,o.start-60),l=Math.min(e.length,o.end+120),d=[];c>0&&d.push({kind:"text",value:"\u2026 "});let h=c;for(let p of s){if(p.end<=c||p.start>=l)continue;let f=Math.max(p.start,c),E=Math.min(p.end,l);f>h&&d.push({kind:"text",value:e.slice(h,f)}),d.push({kind:"mark",value:e.slice(f,E)}),h=E}return h<l&&d.push({kind:"text",value:e.slice(h,l)}),l<e.length&&d.push({kind:"text",value:" \u2026"}),d}function Eo(n){return n==="collection"?a(gt,{size:16}):n==="data-source"?a(ft,{size:16}):a(_t,{size:16})}function wo(n){return n==="collection"?a(gt,{size:16}):n==="data-source"?a(ft,{size:16}):n==="release"?a(_t,{size:16}):a(mt,{size:16})}function yo(n){return n==="collection"?"Collection":n==="data-source"?"Data source":"Release"}function vo(n){return n==="collection"?"Collection":n==="data-source"?"Data source":n==="release"?"Release":"Doc"}function nt(n){let e=["GlobalSearchAction",n.className||"",n.hovered?"GlobalSearchAction--hovered":""].filter(Boolean).join(" ");return a("button",{type:"button",className:e,onMouseDown:t=>{t.preventDefault(),n.onTrigger()},children:n.children})}function hr(n){let e=n.action?.meta;if(!e)return null;if(e.kind==="header")return a("div",{className:"GlobalSearchAction GlobalSearchAction--header",children:e.label});if(e.kind==="footer")return a("div",{className:"GlobalSearchAction GlobalSearchAction--footer",children:["Last indexed ",e.lastIndexed]});if(e.kind==="tips")return a("div",{className:"GlobalSearchAction GlobalSearchAction--tips",children:[a("span",{className:"GlobalSearchAction__tipItem",children:[a("kbd",{className:"GlobalSearchAction__kbd",children:'"\u2026"'}),a("span",{children:"exact phrase"})]}),a("span",{className:"GlobalSearchAction__tipSep",children:"\xB7"}),a("span",{className:"GlobalSearchAction__tipItem",children:[a("kbd",{className:"GlobalSearchAction__kbd",children:"-word"}),a("span",{children:"exclude"})]}),a("span",{className:"GlobalSearchAction__tipSep",children:"\xB7"}),a("span",{className:"GlobalSearchAction__tipItem",children:[a("kbd",{className:"GlobalSearchAction__kbd",children:"coll/slug"}),a("span",{children:"jump by id"})]})]});if(e.kind==="field"){let t=e.hit,i=ur(t);return a(nt,{hovered:n.hovered,onTrigger:n.onTrigger,children:[a("div",{className:"GlobalSearchAction__crumbs",children:[a("span",{className:"GlobalSearchAction__docId",children:t.docId}),a("span",{className:"GlobalSearchAction__sep",children:a(jn,{size:16})}),a("span",{className:"GlobalSearchAction__field",children:t.fieldLabel})]}),a("div",{className:"GlobalSearchAction__snippet",children:i.map((r,s)=>r.kind==="mark"?a("mark",{className:"GlobalSearchAction__mark",children:r.value},s):a("span",{children:r.value},s))})]})}if(e.kind==="doc"){let t=e.hit;return a(nt,{hovered:n.hovered,onTrigger:n.onTrigger,children:a("div",{className:"GlobalSearchAction__row",children:[a("div",{className:"GlobalSearchAction__icon",children:a(mt,{size:16})}),a("div",{className:"GlobalSearchAction__body",children:[a("div",{className:"GlobalSearchAction__title",children:t.slug}),a("div",{className:"GlobalSearchAction__sub",children:[a("span",{className:"GlobalSearchAction__tag",children:"Doc"}),a("span",{className:"GlobalSearchAction__subText",children:t.docId})]})]})]})})}if(e.kind==="target"){let t=e.target;return a(nt,{hovered:n.hovered,onTrigger:n.onTrigger,children:a("div",{className:"GlobalSearchAction__row",children:[a("div",{className:"GlobalSearchAction__icon",children:Eo(t.kind)}),a("div",{className:"GlobalSearchAction__body",children:[a("div",{className:"GlobalSearchAction__title",children:t.label}),a("div",{className:"GlobalSearchAction__sub",children:[a("span",{className:"GlobalSearchAction__tag",children:yo(t.kind)}),t.description&&a("span",{className:"GlobalSearchAction__subText",children:t.description})]})]})]})})}if(e.kind==="recent"){let t=e.view;return a(nt,{hovered:n.hovered,onTrigger:n.onTrigger,children:a("div",{className:"GlobalSearchAction__row",children:[a("div",{className:"GlobalSearchAction__icon GlobalSearchAction__icon--muted",children:a(Bn,{size:16})}),a("div",{className:"GlobalSearchAction__body",children:[a("div",{className:"GlobalSearchAction__title",children:t.label}),a("div",{className:"GlobalSearchAction__sub",children:[a("span",{className:"GlobalSearchAction__tag",children:vo(t.kind)}),a("span",{className:"GlobalSearchAction__subIcon",children:wo(t.kind)})]})]})]})})}return null}function So(n){if(!n?.lastRun)return null;let e=Date.now()-n.lastRun;return e<6e4?"just now":e<60*6e4?`${Math.floor(e/6e4)}m ago`:e<1440*6e4?`${Math.floor(e/(60*6e4))}h ago`:`${Math.floor(e/(1440*6e4))}d ago`}function bo(){let n=window.__ROOT_CTX?.collections||{};return Object.entries(n).map(([e,t])=>{let i=t?.name||e,r=t?.description;return{kind:"collection",id:e,url:`/cms/content/${e}`,label:i,description:r,haystack:[e,i,r].filter(Boolean).join(" ").toLowerCase()}}).sort((e,t)=>e.label.localeCompare(t.label))}function Ao(n){return n.map(e=>({kind:"data-source",id:e.id,url:`/cms/data/${e.id}`,label:e.id,description:e.description,haystack:[e.id,e.description].filter(Boolean).join(" ").toLowerCase()}))}function Ro(n){return n.map(e=>({kind:"release",id:e.id,url:`/cms/releases/${e.id}`,label:e.id,description:e.description,haystack:[e.id,e.description].filter(Boolean).join(" ").toLowerCase()}))}function ko(n,e){let t=e.trim().toLowerCase();if(!t)return[];let i=[],r=[];for(let s of n)s.id.toLowerCase().startsWith(t)||s.label.toLowerCase().startsWith(t)?i.push(s):s.haystack.includes(t)&&r.push(s);return[...i,...r]}function Po(n,e){let t={kind:"field",hit:n};return{id:`field:${n.id}`,title:n.text||n.fieldLabel,description:`${n.collection} \xB7 ${n.slug} \xB7 ${n.fieldLabel}`,keywords:[n.collection,n.slug,n.fieldLabel],onTrigger:e,meta:t}}function Co(n,e){let t={kind:"doc",hit:n};return{id:`doc:${n.docId}`,title:n.slug,description:n.collection,keywords:[n.collection,n.slug,n.docId],onTrigger:e,meta:t}}function No(n,e){let t={kind:"target",target:n};return{id:`${n.kind}:${n.id}`,title:n.label,description:n.description||n.id,keywords:[n.id,n.label,n.description||""],onTrigger:e,meta:t}}function Oo(n,e){let t={kind:"recent",view:n};return{id:`recent:${n.url}`,title:n.label,description:n.description||"",keywords:[n.label,n.description||"",n.url],onTrigger:e,meta:t}}function it(n,e){let t={kind:"header",label:e};return{id:`header:${n}`,title:e,description:"",keywords:"__internal__",onTrigger:()=>{},meta:t}}function Lo(n){return{id:"__last-indexed__",title:"",description:"",keywords:"__internal__",onTrigger:()=>{},meta:{kind:"footer",lastIndexed:n}}}function Do(){return{id:"__syntax-tips__",title:"",description:"",keywords:"__internal__",onTrigger:()=>{},meta:{kind:"tips"}}}function Mo(n){if(!(n instanceof HTMLElement))return!1;let e=n.tagName;return e==="INPUT"||e==="TEXTAREA"||e==="SELECT"?!0:n.isContentEditable}function Uo(n){let{query:e,onQueryChange:t}=n,i=Wn(),r=e.trim(),{hits:s,loading:o,status:c}=ii(e),{hits:l,loading:d}=ri(e),h=lr(),[p,f]=V([]);O(()=>{let _=!1;return zn().then(T=>{_||f(T)}).catch(T=>{console.error("failed to list data sources:",T)}),()=>{_=!0}},[]);let{releases:E}=Kn();O(()=>{let _=T=>{(T.metaKey||T.ctrlKey)&&!T.altKey&&!T.shiftKey&&(T.key.toLowerCase()==="k"||T.code==="KeyK")&&(Mo(T.target)||(T.preventDefault(),ti()))};return document.documentElement.addEventListener("keydown",_),()=>document.documentElement.removeEventListener("keydown",_)},[]);let N=ee(()=>[...bo(),...Ao(p),...Ro(E)],[p,E]);O(()=>{let _=dr(i.url);_&&cr(_)},[i.url]);let U=_=>i.route(_),K=ee(()=>{if(!r)return h.length===0?[]:[it("recent","Recently viewed"),...h.map(y=>Oo(y,()=>U(y.url)))];let _=[],T=ko(N,r);if(T.length>0){_.push(it("static","Jump to"));for(let y of T)_.push(No(y,()=>U(y.url)))}if(l.length>0){_.push(it("docs","Documents"));for(let y of l){let ot=`/cms/content/${y.collection}/${encodeURIComponent(y.slug)}`;_.push(Co(y,()=>U(ot)))}}if(s.length>0){_.push(it("fields","Field matches"));for(let y of s){let ot=`/cms/content/${y.collection}/${encodeURIComponent(y.slug)}?deeplink=${encodeURIComponent(y.deepKey)}`;_.push(Po(y,()=>U(ot)))}}return _},[r,s,l,N,h,i]),x=So(c),st=ee(()=>{if(K.length===0)return K;let _=[...K];return r&&_.push(Do()),x&&r&&_.push(Lo(x)),_},[K,x,r]),fn=o||d,Ir=ee(()=>fn?"Searching\u2026":r?'No results. Try fewer words, or "quotes" for an exact phrase.':'Type to search \xB7 "quotes" for exact match \xB7 -word to exclude',[fn,r]);return a(ni,{actions:st,shortcut:null,onQueryChange:t,searchPlaceholder:"Search docs, collections, releases\u2026",searchIcon:a(Xn,{size:18}),nothingFoundMessage:Ir,filter:(_,T)=>T,actionComponent:hr,limit:50,cleanQueryOnClose:!0,withinPortal:!0,children:n.children})}function pr(n){let[e,t]=V("");return a(Uo,{query:e,onQueryChange:t,children:n.children})}at();function fr(n){let e=n.error,t=e instanceof Error?e.message:String(e||"");return a("div",{className:"RouteLoadError",children:[a("div",{className:"RouteLoadError__icon",children:a(Yn,{size:60})}),a("h2",{className:"RouteLoadError__title",children:"Page failed to load"}),a("p",{className:"RouteLoadError__body",children:"The CMS may have been updated since this page was first opened. Reload the page to fetch the latest version. If the problem persists, check your network connection and try again."}),a(In,{color:"dark",leftIcon:a(Jn,{size:16}),onClick:()=>window.location.reload(),children:"Reload page"}),t&&a("code",{className:"RouteLoadError__error",children:t})]})}function mr(n){let e=n.frame??!0,t=a("div",{className:qn("RouteLoading",e&&"RouteLoading--framed"),children:a(_n,{color:"gray",size:"xl"})});return e?a(oi,{children:t}):t}var xo=3,Vo=250,gr="root::lazyRoute::reloadedAt",Fo=60*1e3;function Go(n){return new Promise(e=>setTimeout(e,n))}function Ho(n){try{let e=Number(window.sessionStorage.getItem(gr)||0);if(Date.now()-e<Fo)return!1;window.sessionStorage.setItem(gr,String(Date.now()))}catch{return!1}return n(),!0}async function Wo(n,e){let t=e?.attempts??xo,i=e?.retryDelayMs??Vo,r=e?.reload??(()=>window.location.reload()),s;for(let o=1;o<=t;o++)try{return await n()}catch(c){s=c,o<t&&await Go(i*o)}return console.error("failed to import route component:",s),Ho(r)?new Promise(()=>{}):()=>a(fr,{error:s})}function g(n,e){let t=null,i=null;function r(){return i||(i=Wo(n,e).then(s=>{t=s})),i}return function(o){let[,c]=V(t!==null);return O(()=>{if(t)return;let d=!1;return r().then(()=>{d||c(!0)}),()=>{d=!0}},[]),t?a(t,{...o}):(r(),a(mr,{frame:e?.frame}))}}var _r=g(()=>import("./AIPage-25WICIOT.js").then(n=>n.AIPage)),zo=g(()=>import("./AssetsPage-WKTM2J2G.js").then(n=>n.AssetsPage)),qo=g(()=>import("./CollectionPage-5ZOVG7IG.js").then(n=>n.CollectionPage)),$o=g(()=>import("./ComparePage-DDIFYYTK.js").then(n=>n.ComparePage)),Ko=g(()=>import("./DataPage-RFNGSDDN.js").then(n=>n.DataPage)),jo=g(()=>import("./DataSourcePage-U46CDIH2.js").then(n=>n.DataSourcePage)),Bo=g(()=>import("./DocTranslationsPage-BFCM2PE3.js").then(n=>n.DocTranslationsPage)),Yo=g(()=>import("./DocumentPage-OTBXM55S.js").then(n=>n.DocumentPage)),Jo=g(()=>import("./EditDataSourcePage-NKKIF6AD.js").then(n=>n.EditDataSourcePage)),Xo=g(()=>import("./EmbeddedAIPage-4AX7VO3T.js").then(n=>n.EmbeddedAIPage),{frame:!1}),Qo=g(()=>import("./EmbeddedDocumentPage-2CNQJTW5.js").then(n=>n.EmbeddedDocumentPage),{frame:!1}),Zo=g(()=>import("./EditReleasePage-TKNOUT7A.js").then(n=>n.EditReleasePage)),ea=g(()=>import("./LogsPage-SCECIAZH.js").then(n=>n.LogsPage)),ta=g(()=>import("./NewDataSourcePage-FAOPK2RZ.js").then(n=>n.NewDataSourcePage)),na=g(()=>import("./NewReleasePage-HD6T6UV2.js").then(n=>n.NewReleasePage)),ia=g(()=>import("./NotFoundPage-JRYFUENW.js").then(n=>n.NotFoundPage)),ra=g(()=>import("./ProjectPage-2WIMWCSX.js").then(n=>n.ProjectPage)),sa=g(()=>import("./ReleasePage-GUMEMLF6.js").then(n=>n.ReleasePage)),oa=g(()=>import("./ReleasesPage-AW6PICTQ.js").then(n=>n.ReleasesPage)),aa=g(()=>import("./SettingsPage-KFLNZ356.js").then(n=>n.SettingsPage)),ca=g(()=>import("./SidebarToolsPage-3R7BQ2F7.js").then(n=>n.SidebarToolsPage)),la=g(()=>import("./TaskPage-GZGPKIL5.js").then(n=>n.TaskPage)),da=g(()=>import("./TasksPage-G3GBTV3L.js").then(n=>n.TasksPage)),ua=g(()=>import("./TranslationsArbPage-K272JEAA.js").then(n=>n.TranslationsArbPage)),ha=g(()=>import("./TranslationsEditPage-XWXPNKRQ.js").then(n=>n.TranslationsEditPage)),pa=g(()=>import("./TranslationsPage-7KUHVTLK.js").then(n=>n.TranslationsPage));function fa(){return a(gn,{theme:{fontFamily:"Inter, sans-serif",fontSizes:{xs:12,sm:14,md:16,lg:18,xl:20}},children:a(En,{children:a(Qn.Provider,{value:window.firebase,children:a(Zn,{children:a(ei,{children:a($n,{children:a(si,{children:a(Tn,{modals:{[pt.id]:pt,[It.id]:It,[Tt.id]:Tt,[Et.id]:Et,[wt.id]:wt,[vt.id]:vt,[yt.id]:yt,[St.id]:St,[bt.id]:bt,[At.id]:At,[kt.id]:kt,[Pt.id]:Pt,[Rt.id]:Rt,[Ct.id]:Ct,[Ot.id]:Ot,[Lt.id]:Lt,[Nt.id]:Nt},children:a(Gn,{children:a(pr,{children:a(Hn,{children:[a(m,{path:"/cms",component:ra}),a(m,{path:"/cms/ai",component:_r}),a(m,{path:"/cms/ai/chat/:chatId",component:_r}),a(m,{path:"/cms/assets",component:zo}),a(m,{path:"/cms/compare",component:$o}),a(m,{path:"/cms/content/:collection?",component:qo}),a(m,{path:"/cms/content/:collection/:slug",component:Yo}),a(m,{path:"/cms/embed/content/:collection/:slug",component:Qo}),a(m,{path:"/cms/embed/ai",component:Xo}),a(m,{path:"/cms/data",component:Ko}),a(m,{path:"/cms/data/new",component:ta}),a(m,{path:"/cms/data/:id",component:jo}),a(m,{path:"/cms/data/:id/edit",component:Jo}),a(m,{path:"/cms/logs",component:ea}),a(m,{path:"/cms/releases",component:oa}),a(m,{path:"/cms/releases/new",component:na}),a(m,{path:"/cms/releases/:id",component:sa}),a(m,{path:"/cms/releases/:id/edit",component:Zo}),a(m,{path:"/cms/settings",component:aa}),a(m,{path:"/cms/tasks",component:da}),a(m,{path:"/cms/tasks/:id",component:la}),a(m,{path:"/cms/tools/:id",component:ca}),a(m,{path:"/cms/translations",component:pa}),a(m,{path:"/cms/translations/arb",component:ua}),a(m,{path:"/cms/translations/:hash",component:ha}),a(m,{path:"/cms/translations/:collection/:slug",component:Bo}),a(m,{default:!0,component:ia})]})})})})})})})})})})})}function ma(){let n=window.location.pathname;window.location.search&&(n=`${n}?${window.location.search}`);let e=new URLSearchParams({continue:n});window.location.replace(`/cms/login?${e.toString()}`)}function ga(){window.addEventListener("keydown",n=>{if(!((n.metaKey||n.ctrlKey)&&n.shiftKey&&n.key.toLowerCase()==="d")||window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1")return;n.preventDefault();let i=`${window.location.pathname}${window.location.search}${window.location.hash}`;window.location.assign(`http://localhost:4007${i}`)})}ga();ai();var rt=document.getElementById("root");function _a(n){return(n?.code||"")==="auth/invalid-api-key"?"Firebase API key is invalid.":n?.message||"An unknown startup error occurred."}function Ia(n){console.error(n),rt.innerHTML="";let e=document.createElement("div");e.className="bootstrap bootstrap--error";let t=document.createElement("h1");t.className="bootstrap__error-title",t.textContent="Something went wrong";let i=document.createElement("p");i.className="bootstrap__error-message",i.textContent=_a(n),e.append(t,i),rt.append(e)}try{let n=Ln(window.__ROOT_CTX.firebaseConfig),e=window.__ROOT_CTX.firebaseConfig.databaseId||"(default)",t=Un(n,{experimentalForceLongPolling:!0,useFetchStreams:!1},e),i=un(n),r=Fn(n);i.onAuthStateChanged(s=>{if(!s){ma();return}window.firebase={app:n,auth:i,db:t,storage:r,user:s},rt.innerHTML="",mn(a(fa,{}),rt),Ta(s),Ea(s,t)})}catch(n){Ia(n)}async function Ta(n){let e=await n.getIdToken(),t=await fetch("/cms/login",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({idToken:e})});if(t.status!==200){console.error("login failed"),console.log(t);return}if(!(await t.json()).success){console.error("login failed"),console.log(t);return}}async function Ea(n,e){if(!n.email)return;let t=window.__ROOT_CTX.rootConfig.projectId,i=Mn(e,"Projects",t,"UserProfiles",n.email);try{await xn(i,{email:n.email,displayName:n.displayName||"",photoURL:n.photoURL||"",uid:n.uid,lastSignedInAt:Vn()},{merge:!0})}catch(r){console.error("failed to save user profile:",r)}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blinkk/root-cms",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.5",
|
|
4
4
|
"author": "s@blinkk.com",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -157,10 +157,10 @@
|
|
|
157
157
|
"vite": "8.0.13",
|
|
158
158
|
"vitest": "4.1.6",
|
|
159
159
|
"yjs": "13.6.27",
|
|
160
|
-
"@blinkk/root": "3.1.
|
|
160
|
+
"@blinkk/root": "3.1.5"
|
|
161
161
|
},
|
|
162
162
|
"peerDependencies": {
|
|
163
|
-
"@blinkk/root": "3.1.
|
|
163
|
+
"@blinkk/root": "3.1.5",
|
|
164
164
|
"firebase-admin": ">=11",
|
|
165
165
|
"firebase-functions": ">=4"
|
|
166
166
|
},
|