@blinkk/root-cms 3.1.5 → 3.1.7

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