@blinkk/root-cms 3.1.1 → 3.1.3
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 +1 -1
- package/dist/{chunk-GXV4UQ6Z.js → chunk-4G7S2LJH.js} +2 -2
- package/dist/core/plugin.d.ts +1 -1
- package/dist/core/translations.d.ts +19 -4
- package/dist/plugin.js +34 -4
- package/dist/shared/translation-languages.d.ts +67 -0
- package/dist/ui/AIPage-VOTAEVJE.js +1 -0
- package/dist/ui/AssetsPage-EWGRMRPJ.js +1 -0
- package/dist/ui/{CollectionPage-CU3VDEXA.js → CollectionPage-N5JIAUDS.js} +1 -1
- package/dist/ui/ComparePage-JDPVU2VA.js +1 -0
- package/dist/ui/{DataPage-XIXFKXDN.js → DataPage-37D4CMLZ.js} +1 -1
- package/dist/ui/{DataSourcePage-ORIEQH3Y.js → DataSourcePage-LX5ASYQN.js} +1 -1
- package/dist/ui/DocTranslationsPage-V5M4KB7X.js +1 -0
- package/dist/ui/DocumentPage-SURTQJPG.js +1 -0
- package/dist/ui/{EditDataSourcePage-HIGZZQJC.js → EditDataSourcePage-O7DOV5LX.js} +1 -1
- package/dist/ui/{EditReleasePage-KUHBU2HQ.js → EditReleasePage-NDYTKGXY.js} +1 -1
- package/dist/ui/{EmbeddedAIPage-CJWZE5FC.js → EmbeddedAIPage-RJOUIPF2.js} +1 -1
- package/dist/ui/EmbeddedDocumentPage-SLEULNNI.js +1 -0
- package/dist/ui/LogsPage-ZGBP3I35.js +1 -0
- package/dist/ui/{NewDataSourcePage-7TUUE6ZL.js → NewDataSourcePage-GQONTMP4.js} +1 -1
- package/dist/ui/NewReleasePage-7ZKXHDTD.js +1 -0
- package/dist/ui/{NotFoundPage-AW6UC6II.js → NotFoundPage-WXEZQZK6.js} +1 -1
- package/dist/ui/ProjectPage-F7W7X6YO.js +1 -0
- package/dist/ui/{ReleasePage-W2R3DIFX.js → ReleasePage-ZKMNYPML.js} +1 -1
- package/dist/ui/{ReleasesPage-HBBUGE7D.js → ReleasesPage-JHCE6AEJ.js} +1 -1
- package/dist/ui/SettingsPage-MWCPZPGE.js +1 -0
- package/dist/ui/SidebarToolsPage-API53RRR.js +1 -0
- package/dist/ui/TaskPage-73NLAR4J.js +1 -0
- package/dist/ui/TasksPage-IKPW2OQO.js +1 -0
- package/dist/ui/{TranslationsArbPage-AJLM5VSD.js → TranslationsArbPage-QVN66DIW.js} +1 -1
- package/dist/ui/TranslationsEditPage-ZOELF5PK.js +1 -0
- package/dist/ui/{TranslationsPage-HPYAJQ4Q.js → TranslationsPage-NGGZB4L6.js} +32 -32
- package/dist/ui/{chunk-3T4ZWQR4.js → chunk-2EPQJUGM.js} +1 -1
- package/dist/ui/{chunk-2KSMCQ6H.js → chunk-2RAVKX2Z.js} +1 -1
- package/dist/ui/{chunk-B6M55OFE.js → chunk-4FGASIIX.js} +1 -1
- package/dist/ui/chunk-AAHM6RYJ.js +1 -0
- package/dist/ui/{chunk-OXVYTSIZ.js → chunk-BOER3EAW.js} +1 -1
- package/dist/ui/{chunk-GU24U5RM.js → chunk-BT2NTAW2.js} +1 -1
- package/dist/ui/chunk-BUNR5EU3.js +1 -0
- package/dist/ui/{chunk-O5P3CPJ4.js → chunk-BW2MKGNP.js} +1 -1
- package/dist/ui/chunk-C2BLMTPR.js +3 -0
- package/dist/ui/{chunk-RAXWL656.js → chunk-DIFPCF7I.js} +1 -1
- package/dist/ui/{chunk-R6B3W5AJ.js → chunk-DS27MO63.js} +1 -1
- package/dist/ui/{chunk-MZTOPPWQ.js → chunk-ENQKSLGJ.js} +1 -1
- package/dist/ui/chunk-FXIR2RBE.js +1 -0
- package/dist/ui/chunk-G5ZZDHWA.js +1 -0
- package/dist/ui/{chunk-76ZGLKLT.js → chunk-GT5EQSEX.js} +1 -1
- package/dist/ui/{chunk-AZCGXQTL.js → chunk-IOR72US3.js} +1 -1
- package/dist/ui/{chunk-XT5FNJCX.js → chunk-MSYTAJBV.js} +1 -1
- package/dist/ui/{chunk-E76ECIOX.js → chunk-NJMNOITA.js} +1 -1
- package/dist/ui/chunk-NSI5JSVV.js +1 -0
- package/dist/ui/{chunk-OWQL5DVE.js → chunk-PPYM4O5N.js} +1 -1
- package/dist/ui/{chunk-WKF7CSWS.js → chunk-QF3GPZTI.js} +1 -1
- package/dist/ui/{chunk-TDUBSLEC.js → chunk-T77VOWHP.js} +1 -1
- package/dist/ui/chunk-TOGLZDK3.js +1 -0
- package/dist/ui/{chunk-V4CTOC6E.js → chunk-TPJCPCRR.js} +1 -1
- package/dist/ui/{chunk-GQ5IRK43.js → chunk-TVYAZN2Q.js} +1 -1
- package/dist/ui/chunk-UPDL6UXI.js +1 -0
- package/dist/ui/{chunk-764W6634.js → chunk-VPHBKJ3I.js} +1 -1
- package/dist/ui/{chunk-U7PWJV6F.js → chunk-W6LP22IK.js} +1 -1
- package/dist/ui/{chunk-WXT7LTQM.js → chunk-WYJJZTCI.js} +1 -1
- package/dist/ui/chunk-Y3MCFLQU.js +141 -0
- package/dist/ui/chunk-YUU6LWQK.js +1 -0
- package/dist/ui/chunk-Z6DBYLIM.js +1 -0
- package/dist/ui/chunk-ZMS6NIGG.js +1 -0
- package/dist/ui/ui.css +1 -1
- package/dist/ui/ui.js +1 -1
- package/package.json +3 -3
- package/dist/ui/AIPage-EL6DQYII.js +0 -1
- package/dist/ui/AssetsPage-5S6PNMF6.js +0 -1
- package/dist/ui/ComparePage-FTZLYO2O.js +0 -1
- package/dist/ui/DocTranslationsPage-4OVBIPSG.js +0 -1
- package/dist/ui/DocumentPage-3JPFJF3E.js +0 -1
- package/dist/ui/EmbeddedDocumentPage-6XQHYIAO.js +0 -1
- package/dist/ui/LogsPage-4DVGYXZY.js +0 -1
- package/dist/ui/NewReleasePage-6UT36HDW.js +0 -1
- package/dist/ui/ProjectPage-US5FJGFK.js +0 -1
- package/dist/ui/SettingsPage-7JQQILUV.js +0 -1
- package/dist/ui/SidebarToolsPage-MIYXKHF2.js +0 -1
- package/dist/ui/TaskPage-JYUQEGRB.js +0 -1
- package/dist/ui/TasksPage-4VFQF243.js +0 -1
- package/dist/ui/TranslationsEditPage-RTTGTIGI.js +0 -1
- package/dist/ui/chunk-5AVRMJVW.js +0 -1
- package/dist/ui/chunk-FFHV5S6A.js +0 -1
- package/dist/ui/chunk-FSVNOZ6F.js +0 -1
- package/dist/ui/chunk-GDXNSFLE.js +0 -1
- package/dist/ui/chunk-M3T56ZRP.js +0 -1
- package/dist/ui/chunk-MXGHX55S.js +0 -141
- package/dist/ui/chunk-QEE7XS6O.js +0 -1
- package/dist/ui/chunk-SRX7EWL4.js +0 -1
- package/dist/ui/chunk-TFB3VGWP.js +0 -1
- package/dist/ui/chunk-YLSRRNSE.js +0 -1
- package/dist/ui/chunk-ZN2Y5OUF.js +0 -3
- /package/dist/ui/{chunk-E76ECIOX.js.LEGAL.txt → chunk-NJMNOITA.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-MXGHX55S.js.LEGAL.txt → chunk-Y3MCFLQU.js.LEGAL.txt} +0 -0
package/dist/ui/ui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ti,c as ni}from"./chunk-GDXNSFLE.js";import{b as wt}from"./chunk-N3JSLTMV.js";import{b as Ot}from"./chunk-GU24U5RM.js";import{a as _t,b as It,c as Tt,e as vt,f as St,g as bt,h as Rt,i as Pt,t as Nt}from"./chunk-MXGHX55S.js";import{b as Zn,d as ii}from"./chunk-WFQU7V3W.js";import{b as yt}from"./chunk-RAXWL656.js";import"./chunk-QEE7XS6O.js";import{b as At}from"./chunk-WXT7LTQM.js";import"./chunk-OXVYTSIZ.js";import"./chunk-3E6CASIN.js";import"./chunk-FBSBL476.js";import"./chunk-HO3W4RVG.js";import"./chunk-3T4ZWQR4.js";import"./chunk-E76ECIOX.js";import"./chunk-344GZOGG.js";import"./chunk-5AVRMJVW.js";import"./chunk-MZTOPPWQ.js";import"./chunk-CAY5NM4Z.js";import"./chunk-XT5FNJCX.js";import{b as ht,c as Et,f as kt,g as Ct}from"./chunk-TDUBSLEC.js";import{f as Qn}from"./chunk-OWQL5DVE.js";import{a as Xn}from"./chunk-JTIQBW33.js";import{a as qn,b as $n}from"./chunk-R6B3W5AJ.js";import"./chunk-AZCGXQTL.js";import"./chunk-FJLNXXE3.js";import"./chunk-76ZGLKLT.js";import{b as zn}from"./chunk-D3UIZHRK.js";import{b as In}from"./chunk-HARRKJFZ.js";import"./chunk-JS6TK4OP.js";import"./chunk-JDW4UORS.js";import"./chunk-YDO2EDVY.js";import"./chunk-5MV6XVGA.js";import"./chunk-TFB3VGWP.js";import"./chunk-ZN2Y5OUF.js";import"./chunk-W5DOO6ID.js";import"./chunk-NSOTG64N.js";import"./chunk-J5E457OI.js";import{d as Tn}from"./chunk-QHJOTXYB.js";import"./chunk-O5P3CPJ4.js";import"./chunk-KRNQ6L35.js";import{b as ei}from"./chunk-FSVNOZ6F.js";import{c as Ln,d as Mn,p as Un,v as xn}from"./chunk-VD6G5NV4.js";import{a as Fn,b as Gn,c as m,d as Hn,e as Wn}from"./chunk-YLSRRNSE.js";import{$a as jn,Ab as ft,B as gn,Cc as Jn,Fb as mt,Ga as a,a as Q,c as Z,da as _n,g as ee,hb as Kn,ib as Bn,j as mn,ob as pt,vc as Yn,yc as gt}from"./chunk-LROR6N3B.js";import{g as fn,k as fr}from"./chunk-KUCVLANF.js";import{a as Vn}from"./chunk-7SK47HHZ.js";import{A as Nn,B as dt,C as ut,D as S,E as B,F as On,G as Dn,H as te,a as En,b as wn,d as at,e as Te,f as yn,h as vn,i as y,j as Sn,k as bn,l as An,m as Rn,n as kn,p as Ee,q as we,r as Pn,s as ye,t as $,u as j,v as K,w as Cn,x as O,y as ct,z as lt}from"./chunk-DTMZLUNY.js";import"./chunk-PVAE643M.js";var mr="firebase",gr="12.2.1";te(mr,gr,"app");function yi(){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 vi=yi,Si=new we("auth","Firebase",yi());var Pe=new Nn("@firebase/auth");function _r(n,...e){Pe.logLevel<=lt.WARN&&Pe.warn(`Auth (${B}): ${n}`,...e)}function Se(n,...e){Pe.logLevel<=lt.ERROR&&Pe.error(`Auth (${B}): ${n}`,...e)}function v(n,...e){throw rn(n,...e)}function A(n,...e){return rn(n,...e)}function bi(n,e,t){let i={...vi(),[e]:t};return new we("auth","Firebase",i).create(e,{appName:n.name})}function x(n){return bi(n,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function rn(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 Si.create(n,...e)}function u(n,e,...t){if(!n)throw rn(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 Vt(){return typeof self<"u"&&self.location?.href||""}function Ir(){return ri()==="http:"||ri()==="https:"}function ri(){return typeof self<"u"&&self.location?.protocol||null}function Tr(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(Ir()||An()||"connection"in navigator)?navigator.onLine:!0}function Er(){if(typeof navigator>"u")return null;let n=navigator;return n.languages&&n.languages[0]||n.language||null}var V=class{constructor(e,t){this.shortDelay=e,this.longDelay=t,P(t>e,"Short delay should be less than long delay!"),this.isMobile=Sn()||Rn()}get(){return Tr()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function sn(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 wr={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 yr=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],vr=new V(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 Ai(n,r,async()=>{let s={},o={};i&&(e==="GET"?o=i:s={body:JSON.stringify(i)});let c=$({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 bn()||(d.referrerPolicy="no-referrer"),n.emulatorConfig&&Te(n.emulatorConfig.host)&&(d.credentials="include"),Ce.fetch()(await Ri(n,n.config.apiHost,t,c),d)})}async function Ai(n,e,t){n._canInitEmulator=!1;let i={...wr,...e};try{let r=new Ft(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 bi(n,h,d);v(n,h)}}catch(r){if(r instanceof Ee)throw r;v(n,"network-request-failed",{message:String(r)})}}async function z(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 Ri(n,e,t,i){let r=`${e}${t}?${i}`,s=n,o=s.config.emulator?sn(n.config,r):`${n.config.apiScheme}://${r}`;return yr.includes(t)&&(await s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o}function Sr(n){switch(n){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}var Ft=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((t,i)=>{this.timer=setTimeout(()=>i(A(this.auth,"network-request-failed")),vr.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=A(n,e,i);return r.customData._tokenResponse=t,r}function si(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 Sr(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 ki(n,e){return E(n,"GET","/v2/recaptchaConfig",I(n,e))}async function br(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 Pi(n,e=!1){let t=O(n),i=await t.getIdToken(e),r=on(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 on(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=En(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 oi(n){let e=on(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&&Ar(i)&&n.auth.currentUser===n&&await n.auth.signOut(),i}}function Ar({code:n}){return n==="auth/user-disabled"||n==="auth/user-token-expired"}var Gt=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 De(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?Ni(r.providerUserInfo):[],o=Rr(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 Ci(n){let e=O(n);await De(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}function Rr(n,e){return[...n.filter(i=>!e.some(r=>r.providerId===i.providerId)),...e]}function Ni(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 kr(n,e){let t=await Ai(n,{},async()=>{let i=$({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:r,apiKey:s}=n.config,o=await Ri(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 Pr(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):oi(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){u(e.length!==0,"internal-error");let t=oi(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 kr(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 D(n,e){u(typeof n=="string"||typeof n>"u","internal-error",{appName:e})}var L=class n{constructor({uid:e,auth:t,stsTokenManager:i,...r}){this.providerId="firebase",this.proactiveRefresh=new Gt(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 Pi(this,e)}reload(){return Ci(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 De(this),await this.auth._persistUserIfCurrent(this),i&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(S(this.auth.app))return Promise.reject(x(this.auth));let e=await this.getIdToken();return await ce(this,br(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 q=se.fromJSON(this.name,M);u(typeof p=="string",e,"internal-error"),D(i,e.name),D(r,e.name),u(typeof f=="boolean",e,"internal-error"),u(typeof T=="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 U=new n({uid:p,auth:e,email:r,emailVerified:f,displayName:i,isAnonymous:T,photoURL:o,phoneNumber:s,tenantId:c,stsTokenManager:q,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 De(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?Ni(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 ai=new Map;function k(n){P(n instanceof Function,"Expected a class definition");let e=ai.get(n);return e?(P(e instanceof n,"Instance stored in cache mismatched with class"),e):(e=new n,ai.set(n,e),e)}var Le=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){}};Le.type="NONE";var Ht=Le;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?L._fromGetAccountInfoResponse(this.auth,t,e):null}return L._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(Ht),e,i);let r=(await Promise.all(t.map(async d=>{if(await d._isAvailable())return d}))).filter(d=>d),s=r[0]||k(Ht),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 L._fromGetAccountInfoResponse(e,f,h)}else p=L._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 ci(n){let e=n.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(Mi(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(Oi(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(xi(e))return"Blackberry";if(Vi(e))return"Webos";if(Di(e))return"Safari";if((e.includes("chrome/")||Li(e))&&!e.includes("edge/"))return"Chrome";if(Ui(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 Oi(n=y()){return/firefox\//i.test(n)}function Di(n=y()){let e=n.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function Li(n=y()){return/crios\//i.test(n)}function Mi(n=y()){return/iemobile/i.test(n)}function Ui(n=y()){return/android/i.test(n)}function xi(n=y()){return/blackberry/i.test(n)}function Vi(n=y()){return/webos/i.test(n)}function an(n=y()){return/iphone|ipad|ipod/i.test(n)||/macintosh/i.test(n)&&/mobile/i.test(n)}function Cr(n=y()){return an(n)&&!!window.navigator?.standalone}function Nr(){return kn()&&document.documentMode===10}function Fi(n=y()){return an(n)||Ui(n)||Vi(n)||xi(n)||/windows phone/i.test(n)||Mi(n)}function Gi(n,e=[]){let t;switch(n){case"Browser":t=ci(y());break;case"Worker":t=`${ci(y())}-${n}`;break;default:t=n}let i=e.length?e.join(","):"FirebaseCore-web";return`${t}/JsCore/${B}/${i}`}var Wt=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 Or(n,e={}){return E(n,"GET","/v2/passwordPolicy",I(n,e))}var Dr=6,zt=class{constructor(e){let t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??Dr,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 qt=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 Wt(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=Si,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 L._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 De(e)}catch(t){if(t?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=Er()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(S(this.app))return Promise.reject(x(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(x(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(x(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 Or(this),t=new zt(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 Pr(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=Gi(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&&_r(`Error while retrieving App Check token: ${e.error}`),e?.token}};function X(n){return O(n)}var Ue=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=Cn(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 Lr(n){et=n}function Hi(n){return et.loadJS(n)}function Mr(){return et.recaptchaEnterpriseScript}function Ur(){return et.gapiScript}function Wi(n){return`__${n}${Math.floor(Math.random()*1e6)}`}var $t=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 xr="recaptcha-enterprise",oe="NO_RECAPTCHA",xe=class{constructor(e){this.type=xr,this.auth=X(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)=>{ki(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;si(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 $t().execute("siteKey",{action:"verify"}):new Promise((s,o)=>{i(this.auth).then(c=>{if(!t&&si(window.grecaptcha))r(c,s,o);else{if(typeof window>"u"){o(new Error("RecaptchaVerifier is only supported in browser"));return}let l=Mr();l.length!==0&&(l+=c),Hi(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 Vr(n){let e=X(n),t=await ki(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 zi(n,e){let t=ut(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 Fr(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 qi(n,e,t){let i=X(n);u(/^https?:\/\//.test(e),i,"invalid-emulator-scheme");let r=!!t?.disableWarnings,s=$i(e),{host:o,port:c}=Gr(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)?(yn(`${s}//${o}${l}`),vn("Auth",!0)):r||Hr()}function $i(n){let e=n.indexOf(":");return e<0?"":n.substr(0,e+1)}function Gr(n){let e=$i(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:li(i.substr(s.length+1))}}else{let[s,o]=i.split(":");return{host:s,port:li(o)}}}function li(n){if(!n)return null;let e=Number(n);return isNaN(e)?null:e}function Hr(){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 F=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 Wr(n,e){return E(n,"POST","/v1/accounts:signUp",e)}async function zr(n,e){return z(n,"POST","/v1/accounts:signInWithPassword",I(n,e))}async function qr(n,e){return z(n,"POST","/v1/accounts:signInWithEmailLink",I(n,e))}async function $r(n,e){return z(n,"POST","/v1/accounts:signInWithEmailLink",I(n,e))}var de=class n extends F{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",zr,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return qr(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",Wr,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return $r(e,{idToken:t,email:this._email,oobCode:this._password});default:v(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}};async function Y(n,e){return z(n,"POST","/v1/accounts:signInWithIdp",I(n,e))}var jr="http://localhost",G=class n extends F{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 Y(e,t)}_linkToIdToken(e,t){let i=this.buildRequest();return i.idToken=t,Y(e,i)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,Y(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=$(t)}return e}};async function di(n,e){return E(n,"POST","/v1/accounts:sendVerificationCode",I(n,e))}async function Kr(n,e){return z(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,e))}async function Br(n,e){let t=await z(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,e));if(t.temporaryProof)throw ie(n,"account-exists-with-different-credential",t);return t}var Yr={USER_NOT_FOUND:"user-not-found"};async function Jr(n,e){let t={...e,operation:"REAUTH"};return z(n,"POST","/v1/accounts:signInWithPhoneNumber",I(n,t),Yr)}var ue=class n extends F{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 Kr(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return Br(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return Jr(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 Xr(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 Qr(n){let e=j(K(n)).link,t=e?j(K(e)).deep_link_id:null,i=j(K(n)).deep_link_id;return(i?j(K(i)).link:null)||i||t||e||n}var Ve=class n{constructor(e){let t=j(K(e)),i=t.apiKey??null,r=t.oobCode??null,s=Xr(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=Qr(e);try{return new n(t)}catch{return null}}};var J=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)}};J.PROVIDER_ID="password";J.EMAIL_PASSWORD_SIGN_IN_METHOD="password";J.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 H=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 H{constructor(){super("facebook.com")}static credential(e){return G._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 H{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return G._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 H{constructor(){super("github.com")}static credential(e){return G._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 H{constructor(){super("twitter.com")}static credential(e,t){return G._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 L._fromIdTokenResponse(e,i,r),o=ui(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=ui(i);return new n({user:e,providerId:r,_tokenResponse:i,operationType:t})}};function ui(n){return n.providerId?n.providerId:"phoneNumber"in n?"phone":null}var Kt=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"?Kt._fromErrorAndOperation(n,s,e,i):s})}async function Zr(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 es(n,e,t=!1){let{auth:i}=n;if(S(i.app))return Promise.reject(x(i));let r="reauthenticate";try{let s=await ce(n,ji(i,r,e,n),t);u(s.idToken,i,"internal-error");let o=on(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 ts(n,e,t=!1){if(S(n.app))return Promise.reject(x(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 Ki(n,e,t,i){return O(n).onIdTokenChanged(e,t,i)}function Bi(n,e,t){return O(n).beforeAuthStateChanged(e,t)}function hi(n,e){return E(n,"POST","/v2/accounts/mfaEnrollment:start",I(n,e))}function ns(n,e){return E(n,"POST","/v2/accounts/mfaEnrollment:finalize",I(n,e))}function is(n,e){return E(n,"POST","/v2/accounts/mfaEnrollment:start",I(n,e))}function rs(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 ss=1e3,os=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=Fi(),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);Nr()&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(r,os):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)})},ss)}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 Yi=We;var as=1e3;function Lt(n){let e=n.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),t=RegExp(`${e}=([^;]+)`);return document.cookie.match(t)?.[1]??null}function Mt(n){return`${window.location.protocol==="http:"?"__dev_":"__HOST-"}FIREBASE_${n.split(":")[3]}`}var Bt=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=Mt(e);return window.cookieStore?(await window.cookieStore.get(t))?.value:Lt(t)}async _remove(e){if(!this._isAvailable()||!await this._get(e))return;let i=Mt(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=Mt(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=Lt(i),s=setInterval(()=>{let c=Lt(i);c!==r&&(t(c),r=c)},as),o=()=>clearInterval(s);this.listenerUnsubscribes.set(t,o)}_removeListener(e,t){let i=this.listenerUnsubscribes.get(t);i&&(i(),this.listenerUnsubscribes.delete(t))}};Bt.type="COOKIE";var ze=class extends He{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}};ze.type="SESSION";var cn=ze;function cs(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 cs(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 ln(n="",e=10){let t="";for(let i=0;i<e;i++)t+=Math.floor(Math.random()*10);return n+t}var Yt=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=ln("",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 R(){return window}function ls(n){R().location.href=n}function Ji(){return typeof R().WorkerGlobalScope<"u"&&typeof R().importScripts=="function"}async function ds(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}function us(){return navigator?.serviceWorker?.controller||null}function hs(){return Ji()?self:null}var Xi="firebaseLocalStorageDb",ps=1,$e="firebaseLocalStorage",Qi="fbase_key",W=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 fs(){let n=indexedDB.deleteDatabase(Xi);return new W(n).toPromise()}function Jt(){let n=indexedDB.open(Xi,ps);return new Promise((e,t)=>{n.addEventListener("error",()=>{t(n.error)}),n.addEventListener("upgradeneeded",()=>{let i=n.result;try{i.createObjectStore($e,{keyPath:Qi})}catch(r){t(r)}}),n.addEventListener("success",async()=>{let i=n.result;i.objectStoreNames.contains($e)?e(i):(i.close(),await fs(),e(await Jt()))})})}async function pi(n,e,t){let i=tt(n,!0).put({[Qi]:e,value:t});return new W(i).toPromise()}async function ms(n,e){let t=tt(n,!1).get(e),i=await new W(t).toPromise();return i===void 0?null:i.value}function fi(n,e){let t=tt(n,!0).delete(e);return new W(t).toPromise()}var gs=800,_s=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 Jt(),this.db)}async _withRetries(e){let t=0;for(;;)try{let i=await this._openDb();return await e(i)}catch(i){if(t++>_s)throw i;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Ji()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=qe._getInstance(hs()),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 ds(),!this.activeServiceWorker)return;this.sender=new Yt(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||us()!==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 Jt();return await pi(e,Ge,"1"),await fi(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=>pi(i,e,t)),this.localCache[e]=t,this.notifyServiceWorker(e)))}async _get(e){let t=await this._withRetries(i=>ms(i,e));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(t=>fi(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 W(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(),gs)}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 Zi=je;function mi(n,e){return E(n,"POST","/v2/accounts/mfaSignIn:start",I(n,e))}function Is(n,e){return E(n,"POST","/v2/accounts/mfaSignIn:finalize",I(n,e))}function Ts(n,e){return E(n,"POST","/v2/accounts/mfaSignIn:finalize",I(n,e))}var Ra=Wi("rcb"),ka=new V(3e4,6e4);var Ae="recaptcha";async function Es(n,e,t){if(!n._getRecaptchaConfig())try{await Vr(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 Ut(d,h,t);return hi(d,p)}return hi(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 Ut(h,p,t);return mi(h,f)}return mi(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 Ut(l,d,t);return di(l,h)}return di(l,d)},"PHONE_PROVIDER").catch(l=>Promise.reject(l))).sessionInfo}}finally{t?._reset()}}async function Ut(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=X(e)}verifyPhoneNumber(e,t){return Es(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 ws(n,e){return e?k(e):(u(n._popupRedirectResolver,n,"argument-error"),n._popupRedirectResolver)}var Ie=class extends F{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Y(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Y(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Y(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 ys(n){return ts(n.auth,new Ie(n),n.bypassAuthState)}function vs(n){let{auth:e,user:t}=n;return u(t,e,"internal-error"),es(t,new Ie(n),n.bypassAuthState)}async function Ss(n){let{auth:e,user:t}=n;return u(t,e,"internal-error"),Zr(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 ys;case"linkViaPopup":case"linkViaRedirect":return Ss;case"reauthViaPopup":case"reauthViaRedirect":return vs;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 bs=new V(2e3,1e4);var Xt=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=ln();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(A(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(A(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(A(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,bs.get())};e()}};Xt.currentPopupAction=null;var As="pendingRedirect",Re=new Map,Qt=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=Re.get(this.auth._key());if(!e){try{let i=await Rs(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 Rs(n,e){let t=Cs(e),i=Ps(n);if(!await i._isAvailable())return!1;let r=await i._get(t)==="true";return await i._remove(t),r}function ks(n,e){Re.set(n._key(),e)}function Ps(n){return k(n._redirectPersistence)}function Cs(n){return be(As,n.config.apiKey,n.name)}async function Ns(n,e,t=!1){if(S(n.app))return Promise.reject(x(n));let i=X(n),r=ws(i,e),o=await new Qt(i,r,t).execute();return o&&!t&&(delete o.user._redirectEventId,await i._persistUserIfCurrent(o.user),await i._setRedirectUser(null,e)),o}var Os=600*1e3,Zt=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||!Ds(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!er(e)){let i=e.error.code?.split("auth/")[1]||"internal-error";t.onError(A(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>=Os&&this.cachedEventUids.clear(),this.cachedEventUids.has(gi(e))}saveEventToCache(e){this.cachedEventUids.add(gi(e)),this.lastProcessedEventTime=Date.now()}};function gi(n){return[n.type,n.eventId,n.sessionId,n.tenantId].filter(e=>e).join("-")}function er({type:n,error:e}){return n==="unknown"&&e?.code==="auth/no-auth-event"}function Ds(n){switch(n.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return er(n);default:return!1}}async function Ls(n,e={}){return E(n,"GET","/v1/projects",e)}var Ms=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Us=/^https?/;async function xs(n){if(n.config.emulator)return;let{authorizedDomains:e}=await Ls(n);for(let t of e)try{if(Vs(t))return}catch{}v(n,"unauthorized-domain")}function Vs(n){let e=Vt(),{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(!Us.test(t))return!1;if(Ms.test(n))return i===n;let r=n.replace(/\./g,"\\.");return new RegExp("^(.+\\."+r+"|"+r+")$","i").test(i)}var Fs=new V(3e4,6e4);function _i(){let n=R().___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 Gs(n){return new Promise((e,t)=>{function i(){_i(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{_i(),t(A(n,"network-request-failed"))},timeout:Fs.get()})}if(R().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else if(R().gapi?.load)i();else{let r=Wi("iframefcb");return R()[r]=()=>{gapi.load?i():t(A(n,"network-request-failed"))},Hi(`${Ur()}?onload=${r}`).catch(s=>t(s))}}).catch(e=>{throw ke=null,e})}var ke=null;function Hs(n){return ke=ke||Gs(n),ke}var Ws=new V(5e3,15e3),zs="__/auth/iframe",qs="emulator/auth/iframe",$s={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 Ks(n){let e=n.config;u(e.authDomain,n,"auth-domain-config-required");let t=e.emulator?sn(e,qs):`https://${n.config.authDomain}/${zs}`,i={apiKey:e.apiKey,appName:n.name,v:B},r=js.get(n.config.apiHost);r&&(i.eid=r);let s=n._getFrameworks();return s.length&&(i.fw=s.join(",")),`${t}?${$(i).slice(1)}`}async function Bs(n){let e=await Hs(n),t=R().gapi;return u(t,n,"internal-error"),e.open({where:document.body,url:Ks(n),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:$s,dontclear:!0},i=>new Promise(async(r,s)=>{await i.restyle({setHideOnLeave:!1});let o=A(n,"network-request-failed"),c=R().setTimeout(()=>{s(o)},Ws.get());function l(){R().clearTimeout(c),r(i)}i.ping(l).then(l,()=>{s(o)})}))}var Ys={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},Js=500,Xs=600,Qs="_blank",Zs="http://localhost",Be=class{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch{}}};function eo(n,e,t,i=Js,r=Xs){let s=Math.max((window.screen.availHeight-r)/2,0).toString(),o=Math.max((window.screen.availWidth-i)/2,0).toString(),c="",l={...Ys,width:i.toString(),height:r.toString(),top:s,left:o},d=y().toLowerCase();t&&(c=Li(d)?Qs:t),Oi(d)&&(e=e||Zs,l.scrollbars="yes");let h=Object.entries(l).reduce((f,[T,C])=>`${f}${T}=${C},`,"");if(Cr(d)&&c!=="_self")return to(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 to(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 no="__/auth/handler",io="emulator/auth/handler",ro=encodeURIComponent("fac");async function Ii(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:B,eventId:r};if(e instanceof Fe){e.setDefaultLanguage(n.languageCode),o.providerId=e.providerId||"",Pn(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(let[h,p]of Object.entries(s||{}))o[h]=p}if(e instanceof H){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?`#${ro}=${encodeURIComponent(l)}`:"";return`${so(n)}?${$(c).slice(1)}${d}`}function so({config:n}){return n.emulator?sn(n,io):`https://${n.authDomain}/${no}`}var xt="webStorageSupport",en=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=cn,this._completeRedirectFn=Ns,this._overrideRedirectResult=ks}async _openPopup(e,t,i,r){P(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()");let s=await Ii(e,t,i,Vt(),r);return eo(e,s,ln())}async _openRedirect(e,t,i,r){await this._originValidation(e);let s=await Ii(e,t,i,Vt(),r);return ls(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 Bs(e),i=new Zt(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(xt,{type:xt},r=>{let s=r?.[0]?.[xt];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]=xs(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return Fi()||Di()||an()}},tr=en,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")}}},tn=class n extends Ye{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new n(e)}_finalizeEnroll(e,t,i){return ns(e,{idToken:t,displayName:i,phoneVerificationInfo:this.credential._makeVerificationRequest()})}_finalizeSignIn(e,t){return Is(e,{mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()})}},Je=class{constructor(){}static assertion(e){return tn._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 is(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"),rs(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 Ts(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 Ti="@firebase/auth",Ei="1.11.0";var nn=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 oo(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 ao(n){dt(new ct("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:Gi(n)},d=new qt(i,r,s,l);return Fr(d,t),d},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,i)=>{e.getProvider("auth-internal").initialize()})),dt(new ct("auth-internal",e=>{let t=X(e.getProvider("auth").getImmediate());return(i=>new nn(i))(t)},"PRIVATE").setInstantiationMode("EXPLICIT")),te(Ti,Ei,oo(n)),te(Ti,Ei,"esm2020")}var co=300,lo=at("authIdTokenMaxAge")||co,wi=null,uo=n=>async e=>{let t=e&&await e.getIdTokenResult(),i=t&&(new Date().getTime()-Date.parse(t.issuedAtTime))/1e3;if(i&&i>lo)return;let r=t?.token;wi!==r&&(wi=r,await fetch(n,{method:r?"POST":"DELETE",headers:r?{Authorization:`Bearer ${r}`}:{}}))};function dn(n=Dn()){let e=ut(n,"auth");if(e.isInitialized())return e.getImmediate();let t=zi(n,{popupRedirectResolver:tr,persistence:[Zi,Yi,cn]}),i=at("authTokenSyncURL");if(i&&typeof isSecureContext=="boolean"&&isSecureContext){let s=new URL(i,location.origin);if(location.origin===s.origin){let o=uo(s.toString());Bi(t,o,()=>o(t.currentUser)),Ki(t,c=>o(c))}}let r=wn("auth");return r&&qi(t,`http://${r}`),t}function ho(){return document.getElementsByTagName("head")?.[0]??document}Lr({loadJS(n){return new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=e,i.onerror=r=>{let s=A("internal-error");s.customData=r,t(s)},i.type="text/javascript",i.charset="UTF-8",ho().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="});ao("Browser");fr();mn();mn();var hn="root::cms:recentViews",po=5,un="rootcms:recentViewsChange";function ir(){try{let n=window.localStorage.getItem(hn);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 fo(n){try{window.localStorage.setItem(hn,JSON.stringify(n))}catch(e){console.error("failed to persist recent views:",e)}window.dispatchEvent(new CustomEvent(un))}function nr(){return ir().sort((n,e)=>e.viewedAt-n.viewedAt)}function rr(n){if(!n.url)return;let e=ir().filter(i=>i.url!==n.url),t=[{...n,viewedAt:Date.now()},...e].slice(0,po);fo(t)}function sr(){let[n,e]=Q(()=>nr());return Z(()=>{let t=()=>e(nr()),i=r=>{r.key===hn&&t()};return window.addEventListener(un,t),window.addEventListener("storage",i),()=>{window.removeEventListener(un,t),window.removeEventListener("storage",i)}},[]),n}function or(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 ar(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 mo(n){return n==="collection"?a(mt,{size:16}):n==="data-source"?a(pt,{size:16}):a(gt,{size:16})}function go(n){return n==="collection"?a(mt,{size:16}):n==="data-source"?a(pt,{size:16}):n==="release"?a(gt,{size:16}):a(ft,{size:16})}function _o(n){return n==="collection"?"Collection":n==="data-source"?"Data source":"Release"}function Io(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 cr(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=ar(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(ft,{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:mo(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:_o(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(Kn,{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:Io(t.kind)}),a("span",{className:"GlobalSearchAction__subIcon",children:go(t.kind)})]})]})]})})}return null}function To(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 Eo(){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 wo(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 yo(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 vo(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 So(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 bo(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 Ao(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 Ro(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 ko(n){return{id:"__last-indexed__",title:"",description:"",keywords:"__internal__",onTrigger:()=>{},meta:{kind:"footer",lastIndexed:n}}}function Po(){return{id:"__syntax-tips__",title:"",description:"",keywords:"__internal__",onTrigger:()=>{},meta:{kind:"tips"}}}function Co(n){let{query:e,onQueryChange:t}=n,i=Hn(),r=e.trim(),{hits:s,loading:o,status:c}=ti(e),{hits:l,loading:d}=ni(e),h=sr(),[p,f]=Q([]);Z(()=>{let _=!1;return zn().then(N=>{_||f(N)}).catch(N=>{console.error("failed to list data sources:",N)}),()=>{_=!0}},[]);let{releases:T}=$n(),C=ee(()=>[...Eo(),...wo(p),...yo(T)],[p,T]);Z(()=>{let _=or(i.url);_&&rr(_)},[i.url]);let M=_=>i.route(_),q=ee(()=>{if(!r)return h.length===0?[]:[it("recent","Recently viewed"),...h.map(w=>Ro(w,()=>M(w.url)))];let _=[],N=vo(C,r);if(N.length>0){_.push(it("static","Jump to"));for(let w of N)_.push(Ao(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(bo(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(So(w,()=>M(ot)))}}return _},[r,s,l,C,h,i]),U=To(c),st=ee(()=>{if(q.length===0)return q;let _=[...q];return r&&_.push(Po()),U&&r&&_.push(ko(U)),_},[q,U,r]),pn=o||d,pr=ee(()=>pn?"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',[pn,r]);return a(ei,{actions:st,shortcut:["mod + K"],onQueryChange:t,searchPlaceholder:"Search docs, collections, releases\u2026",searchIcon:a(Jn,{size:18}),nothingFoundMessage:pr,filter:(_,N)=>N,actionComponent:cr,limit:50,cleanQueryOnClose:!0,withinPortal:!0,children:n.children})}function lr(n){let[e,t]=Q("");return a(Co,{query:e,onQueryChange:t,children:n.children})}function dr(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(Bn,{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(_n,{color:"dark",leftIcon:a(Yn,{size:16}),onClick:()=>window.location.reload(),children:"Reload page"}),t&&a("code",{className:"RouteLoadError__error",children:t})]})}var No=3,Oo=250,ur="root::lazyRoute::reloadedAt",Do=60*1e3;function Lo(n){return new Promise(e=>setTimeout(e,n))}function Mo(n){try{let e=Number(window.sessionStorage.getItem(ur)||0);if(Date.now()-e<Do)return!1;window.sessionStorage.setItem(ur,String(Date.now()))}catch{return!1}return n(),!0}async function Uo(n,e){let t=e?.attempts??No,i=e?.retryDelayMs??Oo,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 Lo(i*o)}return console.error("failed to import route component:",s),Mo(r)?new Promise(()=>{}):()=>a(dr,{error:s})}function g(n){return Wn(()=>Uo(n).then(e=>({default:e})))}var hr=g(()=>import("./AIPage-EL6DQYII.js").then(n=>n.AIPage)),xo=g(()=>import("./AssetsPage-5S6PNMF6.js").then(n=>n.AssetsPage)),Vo=g(()=>import("./CollectionPage-CU3VDEXA.js").then(n=>n.CollectionPage)),Fo=g(()=>import("./ComparePage-FTZLYO2O.js").then(n=>n.ComparePage)),Go=g(()=>import("./DataPage-XIXFKXDN.js").then(n=>n.DataPage)),Ho=g(()=>import("./DataSourcePage-ORIEQH3Y.js").then(n=>n.DataSourcePage)),Wo=g(()=>import("./DocTranslationsPage-4OVBIPSG.js").then(n=>n.DocTranslationsPage)),zo=g(()=>import("./DocumentPage-3JPFJF3E.js").then(n=>n.DocumentPage)),qo=g(()=>import("./EditDataSourcePage-HIGZZQJC.js").then(n=>n.EditDataSourcePage)),$o=g(()=>import("./EmbeddedAIPage-CJWZE5FC.js").then(n=>n.EmbeddedAIPage)),jo=g(()=>import("./EmbeddedDocumentPage-6XQHYIAO.js").then(n=>n.EmbeddedDocumentPage)),Ko=g(()=>import("./EditReleasePage-KUHBU2HQ.js").then(n=>n.EditReleasePage)),Bo=g(()=>import("./LogsPage-4DVGYXZY.js").then(n=>n.LogsPage)),Yo=g(()=>import("./NewDataSourcePage-7TUUE6ZL.js").then(n=>n.NewDataSourcePage)),Jo=g(()=>import("./NewReleasePage-6UT36HDW.js").then(n=>n.NewReleasePage)),Xo=g(()=>import("./NotFoundPage-AW6UC6II.js").then(n=>n.NotFoundPage)),Qo=g(()=>import("./ProjectPage-US5FJGFK.js").then(n=>n.ProjectPage)),Zo=g(()=>import("./ReleasePage-W2R3DIFX.js").then(n=>n.ReleasePage)),ea=g(()=>import("./ReleasesPage-HBBUGE7D.js").then(n=>n.ReleasesPage)),ta=g(()=>import("./SettingsPage-7JQQILUV.js").then(n=>n.SettingsPage)),na=g(()=>import("./SidebarToolsPage-MIYXKHF2.js").then(n=>n.SidebarToolsPage)),ia=g(()=>import("./TaskPage-JYUQEGRB.js").then(n=>n.TaskPage)),ra=g(()=>import("./TasksPage-4VFQF243.js").then(n=>n.TasksPage)),sa=g(()=>import("./TranslationsArbPage-AJLM5VSD.js").then(n=>n.TranslationsArbPage)),oa=g(()=>import("./TranslationsEditPage-RTTGTIGI.js").then(n=>n.TranslationsEditPage)),aa=g(()=>import("./TranslationsPage-HPYAJQ4Q.js").then(n=>n.TranslationsPage));function ca(){return a(gn,{theme:{fontFamily:"Inter, sans-serif",fontSizes:{xs:12,sm:14,md:16,lg:18,xl:20}},children:a(Tn,{children:a(Xn.Provider,{value:window.firebase,children:a(Qn,{children:a(Zn,{children:a(qn,{children:a(ii,{children:a(In,{modals:{[ht.id]:ht,[_t.id]:_t,[It.id]:It,[Tt.id]:Tt,[Et.id]:Et,[yt.id]:yt,[wt.id]:wt,[vt.id]:vt,[St.id]:St,[bt.id]:bt,[Rt.id]:Rt,[kt.id]:kt,[At.id]:At,[Pt.id]:Pt,[Nt.id]:Nt,[Ot.id]:Ot,[Ct.id]:Ct},children:a(Fn,{children:a(lr,{children:a(Gn,{children:[a(m,{path:"/cms",component:Qo}),a(m,{path:"/cms/ai",component:hr}),a(m,{path:"/cms/ai/chat/:chatId",component:hr}),a(m,{path:"/cms/assets",component:xo}),a(m,{path:"/cms/compare",component:Fo}),a(m,{path:"/cms/content/:collection?",component:Vo}),a(m,{path:"/cms/content/:collection/:slug",component:zo}),a(m,{path:"/cms/embed/content/:collection/:slug",component:jo}),a(m,{path:"/cms/embed/ai",component:$o}),a(m,{path:"/cms/data",component:Go}),a(m,{path:"/cms/data/new",component:Yo}),a(m,{path:"/cms/data/:id",component:Ho}),a(m,{path:"/cms/data/:id/edit",component:qo}),a(m,{path:"/cms/logs",component:Bo}),a(m,{path:"/cms/releases",component:ea}),a(m,{path:"/cms/releases/new",component:Jo}),a(m,{path:"/cms/releases/:id",component:Zo}),a(m,{path:"/cms/releases/:id/edit",component:Ko}),a(m,{path:"/cms/settings",component:ta}),a(m,{path:"/cms/tasks",component:ra}),a(m,{path:"/cms/tasks/:id",component:ia}),a(m,{path:"/cms/tools/:id",component:na}),a(m,{path:"/cms/translations",component:aa}),a(m,{path:"/cms/translations/arb",component:sa}),a(m,{path:"/cms/translations/:hash",component:oa}),a(m,{path:"/cms/translations/:collection/:slug",component:Wo}),a(m,{default:!0,component:Xo})]})})})})})})})})})})})}function la(){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 da(){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}`)})}da();var rt=document.getElementById("root");function ua(n){return(n?.code||"")==="auth/invalid-api-key"?"Firebase API key is invalid.":n?.message||"An unknown startup error occurred."}function ha(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=ua(n),e.append(t,i),rt.append(e)}try{let n=On(window.__ROOT_CTX.firebaseConfig),e=window.__ROOT_CTX.firebaseConfig.databaseId||"(default)",t=Mn(n,{experimentalForceLongPolling:!0,useFetchStreams:!1},e),i=dn(n),r=Vn(n);i.onAuthStateChanged(s=>{if(!s){la();return}window.firebase={app:n,auth:i,db:t,storage:r,user:s},rt.innerHTML="",fn(a(ca,{}),rt),pa(s),fa(s,t)})}catch(n){ha(n)}async function pa(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 fa(n,e){if(!n.email)return;let t=window.__ROOT_CTX.rootConfig.projectId,i=Ln(e,"Projects",t,"UserProfiles",n.email);try{await Un(i,{email:n.email,displayName:n.displayName||"",photoURL:n.photoURL||"",uid:n.uid,lastSignedInAt:xn()},{merge:!0})}catch(r){console.error("failed to save user profile:",r)}}
|
|
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)}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blinkk/root-cms",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.3",
|
|
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.3"
|
|
161
161
|
},
|
|
162
162
|
"peerDependencies": {
|
|
163
|
-
"@blinkk/root": "3.1.
|
|
163
|
+
"@blinkk/root": "3.1.3",
|
|
164
164
|
"firebase-admin": ">=11",
|
|
165
165
|
"firebase-functions": ">=4"
|
|
166
166
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as o}from"./chunk-2KSMCQ6H.js";import"./chunk-HO3W4RVG.js";import"./chunk-3T4ZWQR4.js";import"./chunk-E76ECIOX.js";import"./chunk-344GZOGG.js";import"./chunk-YDO2EDVY.js";import"./chunk-5MV6XVGA.js";import{a as i}from"./chunk-FFHV5S6A.js";import{a}from"./chunk-P2Z66DHV.js";import"./chunk-FSVNOZ6F.js";import"./chunk-VD6G5NV4.js";import"./chunk-YLSRRNSE.js";import{Ga as t}from"./chunk-LROR6N3B.js";import"./chunk-KUCVLANF.js";import"./chunk-7SK47HHZ.js";import"./chunk-DTMZLUNY.js";import"./chunk-PVAE643M.js";function n(r){return a("AI"),t(i,{children:t(o,{variant:"page",initialChatId:r.chatId})})}export{n as AIPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as p}from"./chunk-U7PWJV6F.js";import{a as i}from"./chunk-5AVRMJVW.js";import"./chunk-MZTOPPWQ.js";import"./chunk-CAY5NM4Z.js";import{a as n}from"./chunk-XT5FNJCX.js";import"./chunk-TFB3VGWP.js";import"./chunk-ZN2Y5OUF.js";import"./chunk-W5DOO6ID.js";import"./chunk-NSOTG64N.js";import"./chunk-J5E457OI.js";import"./chunk-QHJOTXYB.js";import{a as d}from"./chunk-O5P3CPJ4.js";import"./chunk-KRNQ6L35.js";import{a as g}from"./chunk-FFHV5S6A.js";import{a as m}from"./chunk-P2Z66DHV.js";import"./chunk-FSVNOZ6F.js";import"./chunk-VD6G5NV4.js";import{d as o}from"./chunk-YLSRRNSE.js";import{Ga as e,a as t,c as r,j as h}from"./chunk-LROR6N3B.js";import"./chunk-KUCVLANF.js";import"./chunk-7SK47HHZ.js";import"./chunk-DTMZLUNY.js";import"./chunk-PVAE643M.js";h();function k(){m("Asset Library");let[l,u]=p("folder",""),{query:c,route:f}=o(),[a]=t(c.asset||"");return r(()=>{if(a){let s=new URL(window.location.href);s.searchParams.delete("asset"),f(s.pathname+s.search,!0)}},[]),e(g,{children:e("div",{className:"AssetsPage","data-testid":"assets-page",children:[e("div",{className:"AssetsPage__header",children:[e(n,{size:"h1",children:"Asset Library"}),e(d,{as:"p",children:"The asset library can be used to store and organize files used throughout the project. Replacing a file in the asset library automatically updates all draft docs that use it (requires re-publishing)."})]}),e(i,{className:"AssetsPage__browser",mode:"manage",folder:l,onFolderChange:u,initialAssetId:a})]})})}export{k as AssetsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as s}from"./chunk-QEE7XS6O.js";import"./chunk-3T4ZWQR4.js";import"./chunk-E76ECIOX.js";import"./chunk-5MV6XVGA.js";import"./chunk-TFB3VGWP.js";import"./chunk-ZN2Y5OUF.js";import"./chunk-O5P3CPJ4.js";import"./chunk-KRNQ6L35.js";import{a as m}from"./chunk-FFHV5S6A.js";import{a as d}from"./chunk-P2Z66DHV.js";import"./chunk-FSVNOZ6F.js";import"./chunk-VD6G5NV4.js";import{d as t}from"./chunk-YLSRRNSE.js";import{Ga as a,g as i,j as p}from"./chunk-LROR6N3B.js";import"./chunk-KUCVLANF.js";import"./chunk-7SK47HHZ.js";import"./chunk-DTMZLUNY.js";import"./chunk-PVAE643M.js";p();function h(){let{query:r}=t();d("Compare");let o=i(()=>n(r.left||""),[r.left]),e=i(()=>n(r.right||""),[r.right]);return a(m,{children:a("div",{className:"ComparePage",children:o&&e?a(s,{className:"ComparePage__diff",left:o,right:e}):a("div",{className:"ComparePage__error",children:"Invalid params, double check query params."})})})}function n(r){let[o,e]=String(r).split("@");return o&&e?{docId:o,versionId:e}:null}export{h as ComparePage};
|