@blinkk/root-cms 3.0.6 → 3.1.2

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