@blinkk/root-cms 3.0.1-beta.7 → 3.0.1-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/app.js +12 -4
- package/dist/{chunk-B6B2R5K5.js → chunk-N46HXEG5.js} +116 -25
- package/dist/plugin.js +159 -11
- package/dist/richtext.js +98 -3
- package/dist/ui/signin.js +1 -1
- package/dist/ui/ui.js +303 -266
- package/dist/ui/ui.js.LEGAL.txt +8 -0
- package/package.json +5 -3
package/dist/ui/signin.js
CHANGED
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
<clipPath id="clip0_6083_34804">
|
|
13
13
|
<rect width="24" height="24" fill="white"/>
|
|
14
14
|
</clipPath>
|
|
15
|
-
</defs>`,_.innerText="Preview backend running in this workspace."),_.setAttribute("id",f)}document.readyState==="loading"?window.addEventListener("DOMContentLoaded",l):l()}function S(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function cr(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(S())}function ur(){return typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"}function lr(){let t=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof t=="object"&&t.id!==void 0}function dr(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function hr(){let t=S();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}function fr(){try{return typeof indexedDB=="object"}catch{return!1}}function pr(){return new Promise((t,e)=>{try{let n=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{e(i.error?.message||"")}}catch(n){e(n)}})}var hs="FirebaseError",P=class t extends Error{constructor(e,n,r){super(n),this.code=e,this.customData=r,this.name=hs,Object.setPrototypeOf(this,t.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,V.prototype.create)}},V=class{constructor(e,n,r){this.service=e,this.serviceName=n,this.errors=r}create(e,...n){let r=n[0]||{},i=`${this.service}/${e}`,s=this.errors[e],o=s?fs(s,r):"Error",a=`${this.serviceName}: ${o} (${i}).`;return new P(i,a,r)}};function fs(t,e){return t.replace(ps,(n,r)=>{let i=e[r];return i!=null?String(i):`<${r}?>`})}var ps=/\{\$([^}]+)}/g;function _r(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function z(t,e){if(t===e)return!0;let n=Object.keys(t),r=Object.keys(e);for(let i of n){if(!r.includes(i))return!1;let s=t[i],o=e[i];if(nr(s)&&nr(o)){if(!z(s,o))return!1}else if(s!==o)return!1}for(let i of r)if(!n.includes(i))return!1;return!0}function nr(t){return t!==null&&typeof t=="object"}function ue(t){let e=[];for(let[n,r]of Object.entries(t))Array.isArray(r)?r.forEach(i=>{e.push(encodeURIComponent(n)+"="+encodeURIComponent(i))}):e.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}function le(t){let e={};return t.replace(/^\?/,"").split("&").forEach(r=>{if(r){let[i,s]=r.split("=");e[decodeURIComponent(i)]=decodeURIComponent(s)}}),e}function de(t){let e=t.indexOf("?");if(!e)return"";let n=t.indexOf("#",e);return t.substring(e,n>0?n:void 0)}function mr(t,e){let n=new Wt(t,e);return n.subscribe.bind(n)}var Wt=class{constructor(e,n){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=n,this.task.then(()=>{e(this)}).catch(r=>{this.error(r)})}next(e){this.forEachObserver(n=>{n.next(e)})}error(e){this.forEachObserver(n=>{n.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,n,r){let i;if(e===void 0&&n===void 0&&r===void 0)throw new Error("Missing Observer.");_s(e,["next","error","complete"])?i=e:i={next:e,error:n,complete:r},i.next===void 0&&(i.next=Vt),i.error===void 0&&(i.error=Vt),i.complete===void 0&&(i.complete=Vt);let s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch{}}),this.observers.push(i),s}unsubscribeOne(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let n=0;n<this.observers.length;n++)this.sendOne(n,e)}sendOne(e,n){this.task.then(()=>{if(this.observers!==void 0&&this.observers[e]!==void 0)try{n(this.observers[e])}catch(r){typeof console<"u"&&console.error&&console.error(r)}})}close(e){this.finalized||(this.finalized=!0,e!==void 0&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}};function _s(t,e){if(typeof t!="object"||t===null)return!1;for(let n of e)if(n in t&&typeof t[n]=="function")return!0;return!1}function Vt(){}var Lc=14400*1e3;function j(t){return t&&t._delegate?t._delegate:t}var M=class{constructor(e,n,r){this.name=e,this.instanceFactory=n,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}};var Y="[DEFAULT]";var qt=class{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){let r=new je;if(this.instancesDeferred.set(n,r),this.isInitialized(n)||this.shouldAutoInitialize())try{let i=this.getOrInitializeService({instanceIdentifier:n});i&&r.resolve(i)}catch{}}return this.instancesDeferred.get(n).promise}getImmediate(e){let n=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(this.isInitialized(n)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:n})}catch(i){if(r)return null;throw i}else{if(r)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(gs(e))try{this.getOrInitializeService({instanceIdentifier:Y})}catch{}for(let[n,r]of this.instancesDeferred.entries()){let i=this.normalizeInstanceIdentifier(n);try{let s=this.getOrInitializeService({instanceIdentifier:i});r.resolve(s)}catch{}}}}clearInstance(e=Y){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){let e=Array.from(this.instances.values());await Promise.all([...e.filter(n=>"INTERNAL"in n).map(n=>n.INTERNAL.delete()),...e.filter(n=>"_delete"in n).map(n=>n._delete())])}isComponentSet(){return this.component!=null}isInitialized(e=Y){return this.instances.has(e)}getOptions(e=Y){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:n={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let i=this.getOrInitializeService({instanceIdentifier:r,options:n});for(let[s,o]of this.instancesDeferred.entries()){let a=this.normalizeInstanceIdentifier(s);r===a&&o.resolve(i)}return i}onInit(e,n){let r=this.normalizeInstanceIdentifier(n),i=this.onInitCallbacks.get(r)??new Set;i.add(e),this.onInitCallbacks.set(r,i);let s=this.instances.get(r);return s&&e(s,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,n){let r=this.onInitCallbacks.get(n);if(r)for(let i of r)try{i(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:ms(e),options:n}),this.instances.set(e,r),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=Y){return this.component?this.component.multipleInstances?e:Y:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}};function ms(t){return t===Y?void 0:t}function gs(t){return t.instantiationMode==="EAGER"}var Ge=class{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let n=new qt(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}};var Is=[],E;(function(t){t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT"})(E||(E={}));var ys={debug:E.DEBUG,verbose:E.VERBOSE,info:E.INFO,warn:E.WARN,error:E.ERROR,silent:E.SILENT},Es=E.INFO,vs={[E.DEBUG]:"log",[E.VERBOSE]:"log",[E.INFO]:"info",[E.WARN]:"warn",[E.ERROR]:"error"},ws=(t,e,...n)=>{if(e<t.logLevel)return;let r=new Date().toISOString(),i=vs[e];if(i)console[i](`[${r}] ${t.name}:`,...n);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)},he=class{constructor(e){this.name=e,this._logLevel=Es,this._logHandler=ws,this._userLogHandler=null,Is.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in E))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?ys[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,E.DEBUG,...e),this._logHandler(this,E.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,E.VERBOSE,...e),this._logHandler(this,E.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,E.INFO,...e),this._logHandler(this,E.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,E.WARN,...e),this._logHandler(this,E.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,E.ERROR,...e),this._logHandler(this,E.ERROR,...e)}};var bs=(t,e)=>e.some(n=>t instanceof n),gr,Ir;function Ts(){return gr||(gr=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function As(){return Ir||(Ir=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var yr=new WeakMap,Kt=new WeakMap,Er=new WeakMap,Gt=new WeakMap,Yt=new WeakMap;function Ss(t){let e=new Promise((n,r)=>{let i=()=>{t.removeEventListener("success",s),t.removeEventListener("error",o)},s=()=>{n(x(t.result)),i()},o=()=>{r(t.error),i()};t.addEventListener("success",s),t.addEventListener("error",o)});return e.then(n=>{n instanceof IDBCursor&&yr.set(n,t)}).catch(()=>{}),Yt.set(e,t),e}function ks(t){if(Kt.has(t))return;let e=new Promise((n,r)=>{let i=()=>{t.removeEventListener("complete",s),t.removeEventListener("error",o),t.removeEventListener("abort",o)},s=()=>{n(),i()},o=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",s),t.addEventListener("error",o),t.addEventListener("abort",o)});Kt.set(t,e)}var Jt={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return Kt.get(t);if(e==="objectStoreNames")return t.objectStoreNames||Er.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return x(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function vr(t){Jt=t(Jt)}function Cs(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){let r=t.call(Ke(this),e,...n);return Er.set(r,e.sort?e.sort():[e]),x(r)}:As().includes(t)?function(...e){return t.apply(Ke(this),e),x(yr.get(this))}:function(...e){return x(t.apply(Ke(this),e))}}function Rs(t){return typeof t=="function"?Cs(t):(t instanceof IDBTransaction&&ks(t),bs(t,Ts())?new Proxy(t,Jt):t)}function x(t){if(t instanceof IDBRequest)return Ss(t);if(Gt.has(t))return Gt.get(t);let e=Rs(t);return e!==t&&(Gt.set(t,e),Yt.set(e,t)),e}var Ke=t=>Yt.get(t);function br(t,e,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){let o=indexedDB.open(t,e),a=x(o);return r&&o.addEventListener("upgradeneeded",u=>{r(x(o.result),u.oldVersion,u.newVersion,x(o.transaction),u)}),n&&o.addEventListener("blocked",u=>n(u.oldVersion,u.newVersion,u)),a.then(u=>{s&&u.addEventListener("close",()=>s()),i&&u.addEventListener("versionchange",c=>i(c.oldVersion,c.newVersion,c))}).catch(()=>{}),a}var Ps=["get","getKey","getAll","getAllKeys","count"],Ns=["put","add","delete","clear"],Xt=new Map;function wr(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Xt.get(e))return Xt.get(e);let n=e.replace(/FromIndex$/,""),r=e!==n,i=Ns.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||Ps.includes(n)))return;let s=async function(o,...a){let u=this.transaction(o,i?"readwrite":"readonly"),c=u.store;return r&&(c=c.index(a.shift())),(await Promise.all([c[n](...a),i&&u.done]))[0]};return Xt.set(e,s),s}vr(t=>({...t,get:(e,n,r)=>wr(e,n)||t.get(e,n,r),has:(e,n)=>!!wr(e,n)||t.has(e,n)}));var Zt=class{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(n=>{if(Os(n)){let r=n.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(n=>n).join(" ")}};function Os(t){return t.getComponent()?.type==="VERSION"}var en="@firebase/app",Tr="0.14.2";var H=new he("@firebase/app"),Ds="@firebase/app-compat",Ls="@firebase/analytics-compat",Ms="@firebase/analytics",xs="@firebase/app-check-compat",Us="@firebase/app-check",Fs="@firebase/auth",Vs="@firebase/auth-compat",Hs="@firebase/database",Ws="@firebase/data-connect",Bs="@firebase/database-compat",$s="@firebase/functions",zs="@firebase/functions-compat",js="@firebase/installations",qs="@firebase/installations-compat",Gs="@firebase/messaging",Ks="@firebase/messaging-compat",Js="@firebase/performance",Ys="@firebase/performance-compat",Xs="@firebase/remote-config",Qs="@firebase/remote-config-compat",Zs="@firebase/storage",eo="@firebase/storage-compat",to="@firebase/firestore",no="@firebase/ai",ro="@firebase/firestore-compat",io="firebase",so="12.2.0";var tn="[DEFAULT]",oo={[en]:"fire-core",[Ds]:"fire-core-compat",[Ms]:"fire-analytics",[Ls]:"fire-analytics-compat",[Us]:"fire-app-check",[xs]:"fire-app-check-compat",[Fs]:"fire-auth",[Vs]:"fire-auth-compat",[Hs]:"fire-rtdb",[Ws]:"fire-data-connect",[Bs]:"fire-rtdb-compat",[$s]:"fire-fn",[zs]:"fire-fn-compat",[js]:"fire-iid",[qs]:"fire-iid-compat",[Gs]:"fire-fcm",[Ks]:"fire-fcm-compat",[Js]:"fire-perf",[Ys]:"fire-perf-compat",[Xs]:"fire-rc",[Qs]:"fire-rc-compat",[Zs]:"fire-gcs",[eo]:"fire-gcs-compat",[to]:"fire-fst",[ro]:"fire-fst-compat",[no]:"fire-vertex","fire-js":"fire-js",[io]:"fire-js-all"};var Je=new Map,ao=new Map,nn=new Map;function Ar(t,e){try{t.container.addComponent(e)}catch(n){H.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function fe(t){let e=t.name;if(nn.has(e))return H.debug(`There were multiple attempts to register component ${e}.`),!1;nn.set(e,t);for(let n of Je.values())Ar(n,t);for(let n of ao.values())Ar(n,t);return!0}function an(t,e){let n=t.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),t.container.getProvider(e)}function N(t){return t==null?!1:t.settings!==void 0}var co={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},q=new V("app","Firebase",co);var rn=class{constructor(e,n,r){this._isDeleted=!1,this._options={...e},this._config={...n},this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new M("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw q.create("app-deleted",{appName:this._name})}};var pe=so;function cn(t,e={}){let n=t;typeof e!="object"&&(e={name:e});let r={name:tn,automaticDataCollectionEnabled:!0,...e},i=r.name;if(typeof i!="string"||!i)throw q.create("bad-app-name",{appName:String(i)});if(n||(n=zt()),!n)throw q.create("no-options");let s=Je.get(i);if(s){if(z(n,s.options)&&z(r,s.config))return s;throw q.create("duplicate-app",{appName:i})}let o=new Ge(i);for(let u of nn.values())o.addComponent(u);let a=new rn(n,r,o);return Je.set(i,a),a}function Rr(t=tn){let e=Je.get(t);if(!e&&t===tn&&zt())return cn();if(!e)throw q.create("no-app",{appName:t});return e}function G(t,e,n){let r=oo[t]??t;n&&(r+=`-${n}`);let i=r.match(/\s|\//),s=e.match(/\s|\//);if(i||s){let o=[`Unable to register library "${r}" with version "${e}":`];i&&o.push(`library name "${r}" contains illegal characters (whitespace or "/")`),i&&s&&o.push("and"),s&&o.push(`version name "${e}" contains illegal characters (whitespace or "/")`),H.warn(o.join(" "));return}fe(new M(`${r}-version`,()=>({library:r,version:e}),"VERSION"))}var uo="firebase-heartbeat-database",lo=1,be="firebase-heartbeat-store",Qt=null;function Pr(){return Qt||(Qt=br(uo,lo,{upgrade:(t,e)=>{switch(e){case 0:try{t.createObjectStore(be)}catch(n){console.warn(n)}}}}).catch(t=>{throw q.create("idb-open",{originalErrorMessage:t.message})})),Qt}async function ho(t){try{let n=(await Pr()).transaction(be),r=await n.objectStore(be).get(Nr(t));return await n.done,r}catch(e){if(e instanceof P)H.warn(e.message);else{let n=q.create("idb-get",{originalErrorMessage:e?.message});H.warn(n.message)}}}async function Sr(t,e){try{let r=(await Pr()).transaction(be,"readwrite");await r.objectStore(be).put(e,Nr(t)),await r.done}catch(n){if(n instanceof P)H.warn(n.message);else{let r=q.create("idb-set",{originalErrorMessage:n?.message});H.warn(r.message)}}}function Nr(t){return`${t.name}!${t.options.appId}`}var fo=1024,po=30,sn=class{constructor(e){this.container=e,this._heartbeatsCache=null;let n=this.container.getProvider("app").getImmediate();this._storage=new on(n),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}async triggerHeartbeat(){try{let n=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),r=kr();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===r||this._heartbeatsCache.heartbeats.some(i=>i.date===r))return;if(this._heartbeatsCache.heartbeats.push({date:r,agent:n}),this._heartbeatsCache.heartbeats.length>po){let i=mo(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(i,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){H.warn(e)}}async getHeartbeatsHeader(){try{if(this._heartbeatsCache===null&&await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null||this._heartbeatsCache.heartbeats.length===0)return"";let e=kr(),{heartbeatsToSend:n,unsentEntries:r}=_o(this._heartbeatsCache.heartbeats),i=Bt(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=e,r.length>0?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}catch(e){return H.warn(e),""}}};function kr(){return new Date().toISOString().substring(0,10)}function _o(t,e=fo){let n=[],r=t.slice();for(let i of t){let s=n.find(o=>o.agent===i.agent);if(s){if(s.dates.push(i.date),Cr(n)>e){s.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),Cr(n)>e){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}var on=class{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return fr()?pr().then(()=>!0).catch(()=>!1):!1}async read(){if(await this._canUseIndexedDBPromise){let n=await ho(this.app);return n?.heartbeats?n:{heartbeats:[]}}else return{heartbeats:[]}}async overwrite(e){if(await this._canUseIndexedDBPromise){let r=await this.read();return Sr(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return}async add(e){if(await this._canUseIndexedDBPromise){let r=await this.read();return Sr(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}else return}};function Cr(t){return Bt(JSON.stringify({version:2,heartbeats:t})).length}function mo(t){if(t.length===0)return-1;let e=0,n=t[0].date;for(let r=1;r<t.length;r++)t[r].date<n&&(n=t[r].date,e=r);return e}function go(t){fe(new M("platform-logger",e=>new Zt(e),"PRIVATE")),fe(new M("heartbeat",e=>new sn(e),"PRIVATE")),G(en,Tr,t),G(en,Tr,"esm2020"),G("fire-js","")}go("");var Io="firebase",yo="12.2.1";G(Io,yo,"app");function Yr(){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 Xr=Yr,Qr=new V("auth","Firebase",Yr());var nt=new he("@firebase/auth");function Eo(t,...e){nt.logLevel<=E.WARN&&nt.warn(`Auth (${pe}): ${t}`,...e)}function Xe(t,...e){nt.logLevel<=E.ERROR&&nt.error(`Auth (${pe}): ${t}`,...e)}function R(t,...e){throw Dn(t,...e)}function O(t,...e){return Dn(t,...e)}function On(t,e,n){let r={...Xr(),[e]:n};return new V("auth","Firebase",r).create(e,{appName:t.name})}function X(t){return On(t,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function vo(t,e,n){let r=n;if(!(e instanceof r))throw r.name!==e.constructor.name&&R(t,"argument-error"),On(t,"argument-error",`Type of ${e.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function Dn(t,...e){if(typeof t!="string"){let n=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=t.name),t._errorFactory.create(n,...r)}return Qr.create(t,...e)}function p(t,e,...n){if(!t)throw Dn(e,...n)}function U(t){let e="INTERNAL ASSERTION FAILED: "+t;throw Xe(e),new Error(e)}function B(t,e){t||U(e)}function pn(){return typeof self<"u"&&self.location?.href||""}function wo(){return Or()==="http:"||Or()==="https:"}function Or(){return typeof self<"u"&&self.location?.protocol||null}function bo(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(wo()||lr()||"connection"in navigator)?navigator.onLine:!0}function To(){if(typeof navigator>"u")return null;let t=navigator;return t.languages&&t.languages[0]||t.language||null}var Q=class{constructor(e,n){this.shortDelay=e,this.longDelay=n,B(n>e,"Short delay should be less than long delay!"),this.isMobile=cr()||dr()}get(){return bo()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function Ln(t,e){B(t.emulator,"Emulator should always be set here");let{url:n}=t.emulator;return e?`${n}${e.startsWith("/")?e.slice(1):e}`:n}var rt=class{static initialize(e,n,r){this.fetchImpl=e,n&&(this.headersImpl=n),r&&(this.responseImpl=r)}static fetch(){if(this.fetchImpl)return this.fetchImpl;if(typeof self<"u"&&"fetch"in self)return self.fetch;if(typeof globalThis<"u"&&globalThis.fetch)return globalThis.fetch;if(typeof fetch<"u")return fetch;U("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;U("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;U("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var Ao={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 So=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],ko=new Q(3e4,6e4);function A(t,e){return t.tenantId&&!e.tenantId?{...e,tenantId:t.tenantId}:e}async function k(t,e,n,r,i={}){return Zr(t,i,async()=>{let s={},o={};r&&(e==="GET"?o=r:s={body:JSON.stringify(r)});let a=ue({key:t.config.apiKey,...o}).slice(1),u=await t._getAdditionalHeaders();u["Content-Type"]="application/json",t.languageCode&&(u["X-Firebase-Locale"]=t.languageCode);let c={method:e,headers:u,...s};return ur()||(c.referrerPolicy="no-referrer"),t.emulatorConfig&&we(t.emulatorConfig.host)&&(c.credentials="include"),rt.fetch()(await ei(t,t.config.apiHost,n,a),c)})}async function Zr(t,e,n){t._canInitEmulator=!1;let r={...Ao,...e};try{let i=new _n(t),s=await Promise.race([n(),i.promise]);i.clearNetworkTimeout();let o=await s.json();if("needConfirmation"in o)throw Ae(t,"account-exists-with-different-credential",o);if(s.ok&&!("errorMessage"in o))return o;{let a=s.ok?o.errorMessage:o.error.message,[u,c]=a.split(" : ");if(u==="FEDERATED_USER_ID_ALREADY_LINKED")throw Ae(t,"credential-already-in-use",o);if(u==="EMAIL_EXISTS")throw Ae(t,"email-already-in-use",o);if(u==="USER_DISABLED")throw Ae(t,"user-disabled",o);let d=r[u]||u.toLowerCase().replace(/[_\s]+/g,"-");if(c)throw On(t,d,c);R(t,d)}}catch(i){if(i instanceof P)throw i;R(t,"network-request-failed",{message:String(i)})}}async function ie(t,e,n,r,i={}){let s=await k(t,e,n,r,i);return"mfaPendingCredential"in s&&R(t,"multi-factor-auth-required",{_serverResponse:s}),s}async function ei(t,e,n,r){let i=`${e}${n}?${r}`,s=t,o=s.config.emulator?Ln(t.config,i):`${t.config.apiScheme}://${i}`;return So.includes(n)&&(await s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o}function Co(t){switch(t){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}var _n=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((n,r)=>{this.timer=setTimeout(()=>r(O(this.auth,"network-request-failed")),ko.get())})}};function Ae(t,e,n){let r={appName:t.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);let i=O(t,e,r);return i.customData._tokenResponse=n,i}function Dr(t){return t!==void 0&&t.enterprise!==void 0}var it=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 n of this.recaptchaEnforcementState)if(n.provider&&n.provider===e)return Co(n.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 ti(t,e){return k(t,"GET","/v2/recaptchaConfig",A(t,e))}async function Ro(t,e){return k(t,"POST","/v1/accounts:delete",e)}async function st(t,e){return k(t,"POST","/v1/accounts:lookup",e)}function Se(t){if(t)try{let e=new Date(Number(t));if(!isNaN(e.getTime()))return e.toUTCString()}catch{}}async function ni(t,e=!1){let n=j(t),r=await n.getIdToken(e),i=Mn(r);p(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");let s=typeof i.firebase=="object"?i.firebase:void 0,o=s?.sign_in_provider;return{claims:i,token:r,authTime:Se(un(i.auth_time)),issuedAtTime:Se(un(i.iat)),expirationTime:Se(un(i.exp)),signInProvider:o||null,signInSecondFactor:s?.sign_in_second_factor||null}}function un(t){return Number(t)*1e3}function Mn(t){let[e,n,r]=t.split(".");if(e===void 0||n===void 0||r===void 0)return Xe("JWT malformed, contained fewer than 3 sections"),null;try{let i=qe(n);return i?JSON.parse(i):(Xe("Failed to decode base64 JWT payload"),null)}catch(i){return Xe("Caught error parsing JWT payload as JSON",i?.toString()),null}}function Lr(t){let e=Mn(t);return p(e,"internal-error"),p(typeof e.exp<"u","internal-error"),p(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}async function Pe(t,e,n=!1){if(n)return e;try{return await e}catch(r){throw r instanceof P&&Po(r)&&t.auth.currentUser===t&&await t.auth.signOut(),r}}function Po({code:t}){return t==="auth/user-disabled"||t==="auth/user-token-expired"}var mn=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 n=this.errorBackoff;return this.errorBackoff=Math.min(this.errorBackoff*2,96e4),n}else{this.errorBackoff=3e4;let r=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5;return Math.max(0,r)}}schedule(e=!1){if(!this.isRunning)return;let n=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},n)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}};var Ne=class{constructor(e,n){this.createdAt=e,this.lastLoginAt=n,this._initializeTime()}_initializeTime(){this.lastSignInTime=Se(this.lastLoginAt),this.creationTime=Se(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};async function ot(t){let e=t.auth,n=await t.getIdToken(),r=await Pe(t,st(e,{idToken:n}));p(r?.users.length,e,"internal-error");let i=r.users[0];t._notifyReloadListener(i);let s=i.providerUserInfo?.length?ii(i.providerUserInfo):[],o=No(t.providerData,s),a=t.isAnonymous,u=!(t.email&&i.passwordHash)&&!o?.length,c=a?u:!1,d={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:o,metadata:new Ne(i.createdAt,i.lastLoginAt),isAnonymous:c};Object.assign(t,d)}async function ri(t){let e=j(t);await ot(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}function No(t,e){return[...t.filter(r=>!e.some(i=>i.providerId===r.providerId)),...e]}function ii(t){return t.map(({providerId:e,...n})=>({providerId:e,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}))}async function Oo(t,e){let n=await Zr(t,{},async()=>{let r=ue({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:i,apiKey:s}=t.config,o=await ei(t,i,"/v1/token",`key=${s}`),a=await t._getAdditionalHeaders();a["Content-Type"]="application/x-www-form-urlencoded";let u={method:"POST",headers:a,body:r};return t.emulatorConfig&&we(t.emulatorConfig.host)&&(u.credentials="include"),rt.fetch()(o,u)});return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}async function Do(t,e){return k(t,"POST","/v2/accounts:revokeToken",A(t,e))}var ke=class t{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){p(e.idToken,"internal-error"),p(typeof e.idToken<"u","internal-error"),p(typeof e.refreshToken<"u","internal-error");let n="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):Lr(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,n)}updateFromIdToken(e){p(e.length!==0,"internal-error");let n=Lr(e);this.updateTokensAndExpiration(e,null,n)}async getToken(e,n=!1){return!n&&this.accessToken&&!this.isExpired?this.accessToken:(p(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null)}clearRefreshToken(){this.refreshToken=null}async refresh(e,n){let{accessToken:r,refreshToken:i,expiresIn:s}=await Oo(e,n);this.updateTokensAndExpiration(r,i,Number(s))}updateTokensAndExpiration(e,n,r){this.refreshToken=n||null,this.accessToken=e||null,this.expirationTime=Date.now()+r*1e3}static fromJSON(e,n){let{refreshToken:r,accessToken:i,expirationTime:s}=n,o=new t;return r&&(p(typeof r=="string","internal-error",{appName:e}),o.refreshToken=r),i&&(p(typeof i=="string","internal-error",{appName:e}),o.accessToken=i),s&&(p(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 t,this.toJSON())}_performRefresh(){return U("not implemented")}};function K(t,e){p(typeof t=="string"||typeof t>"u","internal-error",{appName:e})}var J=class t{constructor({uid:e,auth:n,stsTokenManager:r,...i}){this.providerId="firebase",this.proactiveRefresh=new mn(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new Ne(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){let n=await Pe(this,this.stsTokenManager.getToken(this.auth,e));return p(n,this.auth,"internal-error"),this.accessToken!==n&&(this.accessToken=n,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),n}getIdTokenResult(e){return ni(this,e)}reload(){return ri(this)}_assign(e){this!==e&&(p(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(n=>({...n})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let n=new t({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return n.metadata._copy(this.metadata),n}_onReload(e){p(!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,n=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),n&&await ot(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(N(this.auth.app))return Promise.reject(X(this.auth));let e=await this.getIdToken();return await Pe(this,Ro(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,n){let r=n.displayName??void 0,i=n.email??void 0,s=n.phoneNumber??void 0,o=n.photoURL??void 0,a=n.tenantId??void 0,u=n._redirectEventId??void 0,c=n.createdAt??void 0,d=n.lastLoginAt??void 0,{uid:l,emailVerified:h,isAnonymous:f,providerData:_,stsTokenManager:v}=n;p(l&&v,e,"internal-error");let I=ke.fromJSON(this.name,v);p(typeof l=="string",e,"internal-error"),K(r,e.name),K(i,e.name),p(typeof h=="boolean",e,"internal-error"),p(typeof f=="boolean",e,"internal-error"),K(s,e.name),K(o,e.name),K(a,e.name),K(u,e.name),K(c,e.name),K(d,e.name);let m=new t({uid:l,auth:e,email:i,emailVerified:h,displayName:r,isAnonymous:f,photoURL:o,phoneNumber:s,tenantId:a,stsTokenManager:I,createdAt:c,lastLoginAt:d});return _&&Array.isArray(_)&&(m.providerData=_.map(g=>({...g}))),u&&(m._redirectEventId=u),m}static async _fromIdTokenResponse(e,n,r=!1){let i=new ke;i.updateFromServerResponse(n);let s=new t({uid:n.localId,auth:e,stsTokenManager:i,isAnonymous:r});return await ot(s),s}static async _fromGetAccountInfoResponse(e,n,r){let i=n.users[0];p(i.localId!==void 0,"internal-error");let s=i.providerUserInfo!==void 0?ii(i.providerUserInfo):[],o=!(i.email&&i.passwordHash)&&!s?.length,a=new ke;a.updateFromIdToken(r);let u=new t({uid:i.localId,auth:e,stsTokenManager:a,isAnonymous:o}),c={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:s,metadata:new Ne(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash)&&!s?.length};return Object.assign(u,c),u}};var Mr=new Map;function W(t){B(t instanceof Function,"Expected a class definition");let e=Mr.get(t);return e?(B(e instanceof t,"Instance stored in cache mismatched with class"),e):(e=new t,Mr.set(t,e),e)}var at=class{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,n){this.storage[e]=n}async _get(e){let n=this.storage[e];return n===void 0?null:n}async _remove(e){delete this.storage[e]}_addListener(e,n){}_removeListener(e,n){}};at.type="NONE";var gn=at;function Qe(t,e,n){return`firebase:${t}:${e}:${n}`}var ct=class t{constructor(e,n,r){this.persistence=e,this.auth=n,this.userKey=r;let{config:i,name:s}=this.auth;this.fullUserKey=Qe(this.userKey,i.apiKey,s),this.fullPersistenceKey=Qe("persistence",i.apiKey,s),this.boundEventHandler=n._onStorageEvent.bind(n),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 n=await st(this.auth,{idToken:e}).catch(()=>{});return n?J._fromGetAccountInfoResponse(this.auth,n,e):null}return J._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 n=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,n)return this.setCurrentUser(n)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,n,r="authUser"){if(!n.length)return new t(W(gn),e,r);let i=(await Promise.all(n.map(async c=>{if(await c._isAvailable())return c}))).filter(c=>c),s=i[0]||W(gn),o=Qe(r,e.config.apiKey,e.name),a=null;for(let c of n)try{let d=await c._get(o);if(d){let l;if(typeof d=="string"){let h=await st(e,{idToken:d}).catch(()=>{});if(!h)break;l=await J._fromGetAccountInfoResponse(e,h,d)}else l=J._fromJSON(e,d);c!==s&&(a=l),s=c;break}}catch{}let u=i.filter(c=>c._shouldAllowMigration);return!s._shouldAllowMigration||!u.length?new t(s,e,r):(s=u[0],a&&await s._set(o,a.toJSON()),await Promise.all(n.map(async c=>{if(c!==s)try{await c._remove(o)}catch{}})),new t(s,e,r))}};function xr(t){let e=t.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(ci(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(si(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(li(e))return"Blackberry";if(di(e))return"Webos";if(oi(e))return"Safari";if((e.includes("chrome/")||ai(e))&&!e.includes("edge/"))return"Chrome";if(ui(e))return"Android";{let n=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,r=t.match(n);if(r?.length===2)return r[1]}return"Other"}function si(t=S()){return/firefox\//i.test(t)}function oi(t=S()){let e=t.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function ai(t=S()){return/crios\//i.test(t)}function ci(t=S()){return/iemobile/i.test(t)}function ui(t=S()){return/android/i.test(t)}function li(t=S()){return/blackberry/i.test(t)}function di(t=S()){return/webos/i.test(t)}function xn(t=S()){return/iphone|ipad|ipod/i.test(t)||/macintosh/i.test(t)&&/mobile/i.test(t)}function Lo(t=S()){return xn(t)&&!!window.navigator?.standalone}function Mo(){return hr()&&document.documentMode===10}function hi(t=S()){return xn(t)||ui(t)||di(t)||li(t)||/windows phone/i.test(t)||ci(t)}function fi(t,e=[]){let n;switch(t){case"Browser":n=xr(S());break;case"Worker":n=`${xr(S())}-${t}`;break;default:n=t}let r=e.length?e.join(","):"FirebaseCore-web";return`${n}/JsCore/${pe}/${r}`}var In=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,n){let r=s=>new Promise((o,a)=>{try{let u=e(s);o(u)}catch(u){a(u)}});r.onAbort=n,this.queue.push(r);let i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;let n=[];try{for(let r of this.queue)await r(e),r.onAbort&&n.push(r.onAbort)}catch(r){n.reverse();for(let i of n)try{i()}catch{}throw this.auth._errorFactory.create("login-blocked",{originalMessage:r?.message})}}};async function xo(t,e={}){return k(t,"GET","/v2/passwordPolicy",A(t,e))}var Uo=6,yn=class{constructor(e){let n=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=n.minPasswordLength??Uo,n.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=n.maxPasswordLength),n.containsLowercaseCharacter!==void 0&&(this.customStrengthOptions.containsLowercaseLetter=n.containsLowercaseCharacter),n.containsUppercaseCharacter!==void 0&&(this.customStrengthOptions.containsUppercaseLetter=n.containsUppercaseCharacter),n.containsNumericCharacter!==void 0&&(this.customStrengthOptions.containsNumericCharacter=n.containsNumericCharacter),n.containsNonAlphanumericCharacter!==void 0&&(this.customStrengthOptions.containsNonAlphanumericCharacter=n.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 n={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,n),this.validatePasswordCharacterOptions(e,n),n.isValid&&(n.isValid=n.meetsMinPasswordLength??!0),n.isValid&&(n.isValid=n.meetsMaxPasswordLength??!0),n.isValid&&(n.isValid=n.containsLowercaseLetter??!0),n.isValid&&(n.isValid=n.containsUppercaseLetter??!0),n.isValid&&(n.isValid=n.containsNumericCharacter??!0),n.isValid&&(n.isValid=n.containsNonAlphanumericCharacter??!0),n}validatePasswordLengthOptions(e,n){let r=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;r&&(n.meetsMinPasswordLength=e.length>=r),i&&(n.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,n){this.updatePasswordCharacterOptionsStatuses(n,!1,!1,!1,!1);let r;for(let i=0;i<e.length;i++)r=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(n,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,n,r,i,s){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=n)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=s))}};var En=class{constructor(e,n,r,i){this.app=e,this.heartbeatServiceProvider=n,this.appCheckServiceProvider=r,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new ut(this),this.idTokenSubscription=new ut(this),this.beforeStateQueue=new In(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=Qr,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion,this._persistenceManagerAvailable=new Promise(s=>this._resolvePersistenceManagerAvailable=s)}_initializeWithPersistence(e,n){return n&&(this._popupRedirectResolver=W(n)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await ct.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch{}await this.initializeCurrentUser(n),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 n=await st(this,{idToken:e}),r=await J._fromGetAccountInfoResponse(this,n,e);await this.directlySetCurrentUser(r)}catch(n){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",n),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(N(this.app)){let s=this.app.settings.authIdToken;return s?new Promise(o=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(s).then(o,o))}):this.directlySetCurrentUser(null)}let n=await this.assertedPersistence.getCurrentUser(),r=n,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let s=this.redirectUser?._redirectEventId,o=r?._redirectEventId,a=await this.tryRedirectSignIn(e);(!s||s===o)&&a?.user&&(r=a.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(r)}catch(s){r=n,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return p(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)}async tryRedirectSignIn(e){let n=null;try{n=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch{await this._setRedirectUser(null)}return n}async reloadAndSetCurrentUserOrClear(e){try{await ot(e)}catch(n){if(n?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=To()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(N(this.app))return Promise.reject(X(this));let n=e?j(e):null;return n&&p(n.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(n&&n._clone(this))}async _updateCurrentUser(e,n=!1){if(!this._deleted)return e&&p(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),n||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return N(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 N(this.app)?Promise.reject(X(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(W(e))})}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();let n=this._getPasswordPolicyInternal();return n.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):n.validatePassword(e)}_getPasswordPolicyInternal(){return this.tenantId===null?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){let e=await xo(this),n=new yn(e);this.tenantId===null?this._projectPasswordPolicy=n:this._tenantPasswordPolicies[this.tenantId]=n}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new V("auth","Firebase",e())}onAuthStateChanged(e,n,r){return this.registerStateListener(this.authStateSubscription,e,n,r)}beforeAuthStateChanged(e,n){return this.beforeStateQueue.pushCallback(e,n)}onIdTokenChanged(e,n,r){return this.registerStateListener(this.idTokenSubscription,e,n,r)}authStateReady(){return new Promise((e,n)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},n)}})}async revokeAccessToken(e){if(this.currentUser){let n=await this.currentUser.getIdToken(),r={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:n};this.tenantId!=null&&(r.tenantId=this.tenantId),await Do(this,r)}}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,n){let r=await this.getOrInitRedirectPersistenceManager(n);return e===null?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let n=e&&W(e)||this._popupRedirectResolver;p(n,this,"argument-error"),this.redirectPersistenceManager=await ct.create(this,[W(n._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,n,r,i){if(this._deleted)return()=>{};let s=typeof n=="function"?n:n.next.bind(n),o=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(p(a,this,"internal-error"),a.then(()=>{o||s(this.currentUser)}),typeof n=="function"){let u=e.addObserver(n,r,i);return()=>{o=!0,u()}}else{let u=e.addObserver(n);return()=>{o=!0,u()}}}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 p(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=fi(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 n=await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();n&&(e["X-Firebase-Client"]=n);let r=await this._getAppCheckToken();return r&&(e["X-Firebase-AppCheck"]=r),e}async _getAppCheckToken(){if(N(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&Eo(`Error while retrieving App Check token: ${e.error}`),e?.token}};function se(t){return j(t)}var ut=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=mr(n=>this.observer=n)}get next(){return p(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var kt={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Fo(t){kt=t}function pi(t){return kt.loadJS(t)}function Vo(){return kt.recaptchaEnterpriseScript}function Ho(){return kt.gapiScript}function _i(t){return`__${t}${Math.floor(Math.random()*1e6)}`}var vn=class{constructor(){this.enterprise=new wn}ready(e){e()}execute(e,n){return Promise.resolve("token")}render(e,n){return""}},wn=class{ready(e){e()}execute(e,n){return Promise.resolve("token")}render(e,n){return""}};var Wo="recaptcha-enterprise",Ce="NO_RECAPTCHA",lt=class{constructor(e){this.type=Wo,this.auth=se(e)}async verify(e="verify",n=!1){async function r(s){if(!n){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)=>{ti(s,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(u=>{if(u.recaptchaKey===void 0)a(new Error("recaptcha Enterprise site key undefined"));else{let c=new it(u);return s.tenantId==null?s._agentRecaptchaConfig=c:s._tenantRecaptchaConfigs[s.tenantId]=c,o(c.siteKey)}}).catch(u=>{a(u)})})}function i(s,o,a){let u=window.grecaptcha;Dr(u)?u.enterprise.ready(()=>{u.enterprise.execute(s,{action:e}).then(c=>{o(c)}).catch(()=>{o(Ce)})}):a(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new vn().execute("siteKey",{action:"verify"}):new Promise((s,o)=>{r(this.auth).then(a=>{if(!n&&Dr(window.grecaptcha))i(a,s,o);else{if(typeof window>"u"){o(new Error("RecaptchaVerifier is only supported in browser"));return}let u=Vo();u.length!==0&&(u+=a),pi(u).then(()=>{i(a,s,o)}).catch(c=>{o(c)})}}).catch(a=>{o(a)})})}};async function Te(t,e,n,r=!1,i=!1){let s=new lt(t),o;if(i)o=Ce;else try{o=await s.verify(n)}catch{o=await s.verify(n,!0)}let a={...e};if(n==="mfaSmsEnrollment"||n==="mfaSmsSignIn"){if("phoneEnrollmentInfo"in a){let u=a.phoneEnrollmentInfo.phoneNumber,c=a.phoneEnrollmentInfo.recaptchaToken;Object.assign(a,{phoneEnrollmentInfo:{phoneNumber:u,recaptchaToken:c,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in a){let u=a.phoneSignInInfo.recaptchaToken;Object.assign(a,{phoneSignInInfo:{recaptchaToken:u,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return a}return r?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 Re(t,e,n,r,i){if(i==="EMAIL_PASSWORD_PROVIDER")if(t._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){let s=await Te(t,e,n,n==="getOobCode");return r(t,s)}else return r(t,e).catch(async s=>{if(s.code==="auth/missing-recaptcha-token"){console.log(`${n} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let o=await Te(t,e,n,n==="getOobCode");return r(t,o)}else return Promise.reject(s)});else if(i==="PHONE_PROVIDER")if(t._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let s=await Te(t,e,n);return r(t,s).catch(async o=>{if(t._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 ${n} flow.`);let a=await Te(t,e,n,!1,!0);return r(t,a)}return Promise.reject(o)})}else{let s=await Te(t,e,n,!1,!0);return r(t,s)}else return Promise.reject(i+" provider is not supported.")}async function Bo(t){let e=se(t),n=await ti(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),r=new it(n);e.tenantId==null?e._agentRecaptchaConfig=r:e._tenantRecaptchaConfigs[e.tenantId]=r,r.isAnyProviderEnabled()&&new lt(e).verify()}function mi(t,e){let n=an(t,"auth");if(n.isInitialized()){let i=n.getImmediate(),s=n.getOptions();if(z(s,e??{}))return i;R(i,"already-initialized")}return n.initialize({options:e})}function $o(t,e){let n=e?.persistence||[],r=(Array.isArray(n)?n:[n]).map(W);e?.errorMap&&t._updateErrorMap(e.errorMap),t._initializeWithPersistence(r,e?.popupRedirectResolver)}function gi(t,e,n){let r=se(t);p(/^https?:\/\//.test(e),r,"invalid-emulator-scheme");let i=!!n?.disableWarnings,s=Ii(e),{host:o,port:a}=zo(e),u=a===null?"":`:${a}`,c={url:`${s}//${o}${u}/`},d=Object.freeze({host:o,port:a,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});if(!r._canInitEmulator){p(r.config.emulator&&r.emulatorConfig,r,"emulator-config-failed"),p(z(c,r.config.emulator)&&z(d,r.emulatorConfig),r,"emulator-config-failed");return}r.config.emulator=c,r.emulatorConfig=d,r.settings.appVerificationDisabledForTesting=!0,we(o)?(or(`${s}//${o}${u}`),ar("Auth",!0)):i||jo()}function Ii(t){let e=t.indexOf(":");return e<0?"":t.substr(0,e+1)}function zo(t){let e=Ii(t),n=/(\/\/)?([^?#/]+)/.exec(t.substr(e.length));if(!n)return{host:"",port:null};let r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){let s=i[1];return{host:s,port:Ur(r.substr(s.length+1))}}else{let[s,o]=r.split(":");return{host:s,port:Ur(o)}}}function Ur(t){if(!t)return null;let e=Number(t);return isNaN(e)?null:e}function jo(){function t(){let e=document.createElement("p"),n=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",n.position="fixed",n.width="100%",n.backgroundColor="#ffffff",n.border=".1em solid #000000",n.color="#b50000",n.bottom="0px",n.left="0px",n.margin="0px",n.zIndex="10000",n.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",t):t())}var Z=class{constructor(e,n){this.providerId=e,this.signInMethod=n}toJSON(){return U("not implemented")}_getIdTokenResponse(e){return U("not implemented")}_linkToIdToken(e,n){return U("not implemented")}_getReauthenticationResolver(e){return U("not implemented")}};async function qo(t,e){return k(t,"POST","/v1/accounts:signUp",e)}async function Go(t,e){return ie(t,"POST","/v1/accounts:signInWithPassword",A(t,e))}async function Ko(t,e){return ie(t,"POST","/v1/accounts:signInWithEmailLink",A(t,e))}async function Jo(t,e){return ie(t,"POST","/v1/accounts:signInWithEmailLink",A(t,e))}var Oe=class t extends Z{constructor(e,n,r,i=null){super("password",r),this._email=e,this._password=n,this._tenantId=i}static _fromEmailAndPassword(e,n){return new t(e,n,"password")}static _fromEmailAndCode(e,n,r=null){return new t(e,n,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let n=typeof e=="string"?JSON.parse(e):e;if(n?.email&&n?.password){if(n.signInMethod==="password")return this._fromEmailAndPassword(n.email,n.password);if(n.signInMethod==="emailLink")return this._fromEmailAndCode(n.email,n.password,n.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":let n={returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return Re(e,n,"signInWithPassword",Go,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Ko(e,{email:this._email,oobCode:this._password});default:R(e,"internal-error")}}async _linkToIdToken(e,n){switch(this.signInMethod){case"password":let r={idToken:n,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return Re(e,r,"signUpPassword",qo,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Jo(e,{idToken:n,email:this._email,oobCode:this._password});default:R(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}};async function _e(t,e){return ie(t,"POST","/v1/accounts:signInWithIdp",A(t,e))}var Yo="http://localhost",ee=class t extends Z{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let n=new t(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(n.idToken=e.idToken),e.accessToken&&(n.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(n.nonce=e.nonce),e.pendingToken&&(n.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(n.accessToken=e.oauthToken,n.secret=e.oauthTokenSecret):R("argument-error"),n}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 n=typeof e=="string"?JSON.parse(e):e,{providerId:r,signInMethod:i,...s}=n;if(!r||!i)return null;let o=new t(r,i);return o.idToken=s.idToken||void 0,o.accessToken=s.accessToken||void 0,o.secret=s.secret,o.nonce=s.nonce,o.pendingToken=s.pendingToken||null,o}_getIdTokenResponse(e){let n=this.buildRequest();return _e(e,n)}_linkToIdToken(e,n){let r=this.buildRequest();return r.idToken=n,_e(e,r)}_getReauthenticationResolver(e){let n=this.buildRequest();return n.autoCreate=!1,_e(e,n)}buildRequest(){let e={requestUri:Yo,returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{let n={};this.idToken&&(n.id_token=this.idToken),this.accessToken&&(n.access_token=this.accessToken),this.secret&&(n.oauth_token_secret=this.secret),n.providerId=this.providerId,this.nonce&&!this.pendingToken&&(n.nonce=this.nonce),e.postBody=ue(n)}return e}};async function Fr(t,e){return k(t,"POST","/v1/accounts:sendVerificationCode",A(t,e))}async function Xo(t,e){return ie(t,"POST","/v1/accounts:signInWithPhoneNumber",A(t,e))}async function Qo(t,e){let n=await ie(t,"POST","/v1/accounts:signInWithPhoneNumber",A(t,e));if(n.temporaryProof)throw Ae(t,"account-exists-with-different-credential",n);return n}var Zo={USER_NOT_FOUND:"user-not-found"};async function ea(t,e){let n={...e,operation:"REAUTH"};return ie(t,"POST","/v1/accounts:signInWithPhoneNumber",A(t,n),Zo)}var De=class t extends Z{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,n){return new t({verificationId:e,verificationCode:n})}static _fromTokenResponse(e,n){return new t({phoneNumber:e,temporaryProof:n})}_getIdTokenResponse(e){return Xo(e,this._makeVerificationRequest())}_linkToIdToken(e,n){return Qo(e,{idToken:n,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return ea(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:n,verificationId:r,verificationCode:i}=this.params;return e&&n?{temporaryProof:e,phoneNumber:n}:{sessionInfo:r,code:i}}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:n,verificationCode:r,phoneNumber:i,temporaryProof:s}=e;return!r&&!n&&!i&&!s?null:new t({verificationId:n,verificationCode:r,phoneNumber:i,temporaryProof:s})}};function ta(t){switch(t){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 na(t){let e=le(de(t)).link,n=e?le(de(e)).deep_link_id:null,r=le(de(t)).deep_link_id;return(r?le(de(r)).link:null)||r||n||e||t}var dt=class t{constructor(e){let n=le(de(e)),r=n.apiKey??null,i=n.oobCode??null,s=ta(n.mode??null);p(r&&i&&s,"argument-error"),this.apiKey=r,this.operation=s,this.code=i,this.continueUrl=n.continueUrl??null,this.languageCode=n.lang??null,this.tenantId=n.tenantId??null}static parseLink(e){let n=na(e);try{return new t(n)}catch{return null}}};var me=class t{constructor(){this.providerId=t.PROVIDER_ID}static credential(e,n){return Oe._fromEmailAndPassword(e,n)}static credentialWithLink(e,n){let r=dt.parseLink(n);return p(r,"argument-error"),Oe._fromEmailAndCode(e,r.code,r.tenantId)}};me.PROVIDER_ID="password";me.EMAIL_PASSWORD_SIGN_IN_METHOD="password";me.EMAIL_LINK_SIGN_IN_METHOD="emailLink";var Le=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 te=class extends Le{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}};var Me=class t extends te{constructor(){super("facebook.com")}static credential(e){return ee._fromParams({providerId:t.PROVIDER_ID,signInMethod:t.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return t.credentialFromTaggedObject(e)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return t.credential(e.oauthAccessToken)}catch{return null}}};Me.FACEBOOK_SIGN_IN_METHOD="facebook.com";Me.PROVIDER_ID="facebook.com";var ne=class t extends te{constructor(){super("google.com"),this.addScope("profile")}static credential(e,n){return ee._fromParams({providerId:t.PROVIDER_ID,signInMethod:t.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:n})}static credentialFromResult(e){return t.credentialFromTaggedObject(e)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:n,oauthAccessToken:r}=e;if(!n&&!r)return null;try{return t.credential(n,r)}catch{return null}}};ne.GOOGLE_SIGN_IN_METHOD="google.com";ne.PROVIDER_ID="google.com";var xe=class t extends te{constructor(){super("github.com")}static credential(e){return ee._fromParams({providerId:t.PROVIDER_ID,signInMethod:t.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return t.credentialFromTaggedObject(e)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return t.credential(e.oauthAccessToken)}catch{return null}}};xe.GITHUB_SIGN_IN_METHOD="github.com";xe.PROVIDER_ID="github.com";var Ue=class t extends te{constructor(){super("twitter.com")}static credential(e,n){return ee._fromParams({providerId:t.PROVIDER_ID,signInMethod:t.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:n})}static credentialFromResult(e){return t.credentialFromTaggedObject(e)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthAccessToken:n,oauthTokenSecret:r}=e;if(!n||!r)return null;try{return t.credential(n,r)}catch{return null}}};Ue.TWITTER_SIGN_IN_METHOD="twitter.com";Ue.PROVIDER_ID="twitter.com";var Fe=class t{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,n,r,i=!1){let s=await J._fromIdTokenResponse(e,r,i),o=Vr(r);return new t({user:s,providerId:o,_tokenResponse:r,operationType:n})}static async _forOperation(e,n,r){await e._updateTokensIfNecessary(r,!0);let i=Vr(r);return new t({user:e,providerId:i,_tokenResponse:r,operationType:n})}};function Vr(t){return t.providerId?t.providerId:"phoneNumber"in t?"phone":null}var bn=class t extends P{constructor(e,n,r,i){super(n.code,n.message),this.operationType=r,this.user=i,Object.setPrototypeOf(this,t.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:n.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,n,r,i){return new t(e,n,r,i)}};function yi(t,e,n,r){return(e==="reauthenticate"?n._getReauthenticationResolver(t):n._getIdTokenResponse(t)).catch(s=>{throw s.code==="auth/multi-factor-auth-required"?bn._fromErrorAndOperation(t,s,e,r):s})}async function ra(t,e,n=!1){let r=await Pe(t,e._linkToIdToken(t.auth,await t.getIdToken()),n);return Fe._forOperation(t,"link",r)}async function ia(t,e,n=!1){let{auth:r}=t;if(N(r.app))return Promise.reject(X(r));let i="reauthenticate";try{let s=await Pe(t,yi(r,i,e,t),n);p(s.idToken,r,"internal-error");let o=Mn(s.idToken);p(o,r,"internal-error");let{sub:a}=o;return p(t.uid===a,r,"user-mismatch"),Fe._forOperation(t,i,s)}catch(s){throw s?.code==="auth/user-not-found"&&R(r,"user-mismatch"),s}}async function sa(t,e,n=!1){if(N(t.app))return Promise.reject(X(t));let r="signIn",i=await yi(t,r,e),s=await Fe._fromIdTokenResponse(t,r,i);return n||await t._updateCurrentUser(s.user),s}function Ei(t,e,n,r){return j(t).onIdTokenChanged(e,n,r)}function vi(t,e,n){return j(t).beforeAuthStateChanged(e,n)}function Hr(t,e){return k(t,"POST","/v2/accounts/mfaEnrollment:start",A(t,e))}function oa(t,e){return k(t,"POST","/v2/accounts/mfaEnrollment:finalize",A(t,e))}function aa(t,e){return k(t,"POST","/v2/accounts/mfaEnrollment:start",A(t,e))}function ca(t,e){return k(t,"POST","/v2/accounts/mfaEnrollment:finalize",A(t,e))}var ht="__sak";var ft=class{constructor(e,n){this.storageRetriever=e,this.type=n}_isAvailable(){try{return this.storage?(this.storage.setItem(ht,"1"),this.storage.removeItem(ht),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,n){return this.storage.setItem(e,JSON.stringify(n)),Promise.resolve()}_get(e){let n=this.storage.getItem(e);return Promise.resolve(n?JSON.parse(n):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}};var ua=1e3,la=10,pt=class extends ft{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,n)=>this.onStorageEvent(e,n),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=hi(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(let n of Object.keys(this.listeners)){let r=this.storage.getItem(n),i=this.localCache[n];r!==i&&e(n,i,r)}}onStorageEvent(e,n=!1){if(!e.key){this.forAllChangedKeys((o,a,u)=>{this.notifyListeners(o,u)});return}let r=e.key;n?this.detachListener():this.stopPolling();let i=()=>{let o=this.storage.getItem(r);!n&&this.localCache[r]===o||this.notifyListeners(r,o)},s=this.storage.getItem(r);Mo()&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,la):i()}notifyListeners(e,n){this.localCache[e]=n;let r=this.listeners[e];if(r)for(let i of Array.from(r))i(n&&JSON.parse(n))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,n,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:n,newValue:r}),!0)})},ua)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,n){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(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),this.listeners[e].size===0&&delete this.listeners[e]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}async _set(e,n){await super._set(e,n),this.localCache[e]=JSON.stringify(n)}async _get(e){let n=await super._get(e);return this.localCache[e]=JSON.stringify(n),n}async _remove(e){await super._remove(e),delete this.localCache[e]}};pt.type="LOCAL";var wi=pt;var da=1e3;function ln(t){let e=t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),n=RegExp(`${e}=([^;]+)`);return document.cookie.match(n)?.[1]??null}function dn(t){return`${window.location.protocol==="http:"?"__dev_":"__HOST-"}FIREBASE_${t.split(":")[3]}`}var Tn=class{constructor(){this.type="COOKIE",this.listenerUnsubscribes=new Map}_getFinalTarget(e){if(typeof window===void 0)return e;let n=new URL(`${window.location.origin}/__cookies__`);return n.searchParams.set("finalTarget",e),n}async _isAvailable(){return typeof isSecureContext=="boolean"&&!isSecureContext||typeof navigator>"u"||typeof document>"u"?!1:navigator.cookieEnabled??!0}async _set(e,n){}async _get(e){if(!this._isAvailable())return null;let n=dn(e);return window.cookieStore?(await window.cookieStore.get(n))?.value:ln(n)}async _remove(e){if(!this._isAvailable()||!await this._get(e))return;let r=dn(e);document.cookie=`${r}=;Max-Age=34560000;Partitioned;Secure;SameSite=Strict;Path=/;Priority=High`,await fetch("/__cookies__",{method:"DELETE"}).catch(()=>{})}_addListener(e,n){if(!this._isAvailable())return;let r=dn(e);if(window.cookieStore){let a=(c=>{let d=c.changed.find(h=>h.name===r);d&&n(d.value),c.deleted.find(h=>h.name===r)&&n(null)}),u=()=>window.cookieStore.removeEventListener("change",a);return this.listenerUnsubscribes.set(n,u),window.cookieStore.addEventListener("change",a)}let i=ln(r),s=setInterval(()=>{let a=ln(r);a!==i&&(n(a),i=a)},da),o=()=>clearInterval(s);this.listenerUnsubscribes.set(n,o)}_removeListener(e,n){let r=this.listenerUnsubscribes.get(n);r&&(r(),this.listenerUnsubscribes.delete(n))}};Tn.type="COOKIE";var _t=class extends ft{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,n){}_removeListener(e,n){}};_t.type="SESSION";var Un=_t;function ha(t){return Promise.all(t.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(n){return{fulfilled:!1,reason:n}}}))}var mt=class t{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){let n=this.receivers.find(i=>i.isListeningto(e));if(n)return n;let r=new t(e);return this.receivers.push(r),r}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let n=e,{eventId:r,eventType:i,data:s}=n.data,o=this.handlersMap[i];if(!o?.size)return;n.ports[0].postMessage({status:"ack",eventId:r,eventType:i});let a=Array.from(o).map(async c=>c(n.origin,s)),u=await ha(a);n.ports[0].postMessage({status:"done",eventId:r,eventType:i,response:u})}_subscribe(e,n){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(n)}_unsubscribe(e,n){this.handlersMap[e]&&n&&this.handlersMap[e].delete(n),(!n||this.handlersMap[e].size===0)&&delete this.handlersMap[e],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}};mt.receivers=[];function Fn(t="",e=10){let n="";for(let r=0;r<e;r++)n+=Math.floor(Math.random()*10);return t+n}var An=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,n,r=50){let i=typeof MessageChannel<"u"?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let s,o;return new Promise((a,u)=>{let c=Fn("",20);i.port1.start();let d=setTimeout(()=>{u(new Error("unsupported_event"))},r);o={messageChannel:i,onMessage(l){let h=l;if(h.data.eventId===c)switch(h.data.status){case"ack":clearTimeout(d),s=setTimeout(()=>{u(new Error("timeout"))},3e3);break;case"done":clearTimeout(s),a(h.data.response);break;default:clearTimeout(d),clearTimeout(s),u(new Error("invalid_response"));break}}},this.handlers.add(o),i.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:c,data:n},[i.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})}};function F(){return window}function fa(t){F().location.href=t}function bi(){return typeof F().WorkerGlobalScope<"u"&&typeof F().importScripts=="function"}async function pa(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}function _a(){return navigator?.serviceWorker?.controller||null}function ma(){return bi()?self:null}var Ti="firebaseLocalStorageDb",ga=1,gt="firebaseLocalStorage",Ai="fbase_key",re=class{constructor(e){this.request=e}toPromise(){return new Promise((e,n)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{n(this.request.error)})})}};function Ct(t,e){return t.transaction([gt],e?"readwrite":"readonly").objectStore(gt)}function Ia(){let t=indexedDB.deleteDatabase(Ti);return new re(t).toPromise()}function Sn(){let t=indexedDB.open(Ti,ga);return new Promise((e,n)=>{t.addEventListener("error",()=>{n(t.error)}),t.addEventListener("upgradeneeded",()=>{let r=t.result;try{r.createObjectStore(gt,{keyPath:Ai})}catch(i){n(i)}}),t.addEventListener("success",async()=>{let r=t.result;r.objectStoreNames.contains(gt)?e(r):(r.close(),await Ia(),e(await Sn()))})})}async function Wr(t,e,n){let r=Ct(t,!0).put({[Ai]:e,value:n});return new re(r).toPromise()}async function ya(t,e){let n=Ct(t,!1).get(e),r=await new re(n).toPromise();return r===void 0?null:r.value}function Br(t,e){let n=Ct(t,!0).delete(e);return new re(n).toPromise()}var Ea=800,va=3,It=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 Sn(),this.db)}async _withRetries(e){let n=0;for(;;)try{let r=await this._openDb();return await e(r)}catch(r){if(n++>va)throw r;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return bi()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=mt._getInstance(ma()),this.receiver._subscribe("keyChanged",async(e,n)=>({keyProcessed:(await this._poll()).includes(n.key)})),this.receiver._subscribe("ping",async(e,n)=>["keyChanged"])}async initializeSender(){if(this.activeServiceWorker=await pa(),!this.activeServiceWorker)return;this.sender=new An(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||_a()!==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 Sn();return await Wr(e,ht,"1"),await Br(e,ht),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,n){return this._withPendingWrite(async()=>(await this._withRetries(r=>Wr(r,e,n)),this.localCache[e]=n,this.notifyServiceWorker(e)))}async _get(e){let n=await this._withRetries(r=>ya(r,e));return this.localCache[e]=n,n}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(n=>Br(n,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){let e=await this._withRetries(i=>{let s=Ct(i,!1).getAll();return new re(s).toPromise()});if(!e)return[];if(this.pendingWrites!==0)return[];let n=[],r=new Set;if(e.length!==0)for(let{fbase_key:i,value:s}of e)r.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),n.push(i));for(let i of Object.keys(this.localCache))this.localCache[i]&&!r.has(i)&&(this.notifyListeners(i,null),n.push(i));return n}notifyListeners(e,n){this.localCache[e]=n;let r=this.listeners[e];if(r)for(let i of Array.from(r))i(n)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),Ea)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,n){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),this.listeners[e].size===0&&delete this.listeners[e]),Object.keys(this.listeners).length===0&&this.stopPolling()}};It.type="LOCAL";var Si=It;function $r(t,e){return k(t,"POST","/v2/accounts/mfaSignIn:start",A(t,e))}function wa(t,e){return k(t,"POST","/v2/accounts/mfaSignIn:finalize",A(t,e))}function ba(t,e){return k(t,"POST","/v2/accounts/mfaSignIn:finalize",A(t,e))}var ou=_i("rcb"),au=new Q(3e4,6e4);var Ze="recaptcha";async function Ta(t,e,n){if(!t._getRecaptchaConfig())try{await Bo(t)}catch{console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let r;if(typeof e=="string"?r={phoneNumber:e}:r=e,"session"in r){let i=r.session;if("phoneNumber"in r){p(i.type==="enroll",t,"internal-error");let s={idToken:i.credential,phoneEnrollmentInfo:{phoneNumber:r.phoneNumber,clientType:"CLIENT_TYPE_WEB"}};return(await Re(t,s,"mfaSmsEnrollment",async(c,d)=>{if(d.phoneEnrollmentInfo.captchaResponse===Ce){p(n?.type===Ze,c,"argument-error");let l=await hn(c,d,n);return Hr(c,l)}return Hr(c,d)},"PHONE_PROVIDER").catch(c=>Promise.reject(c))).phoneSessionInfo.sessionInfo}else{p(i.type==="signin",t,"internal-error");let s=r.multiFactorHint?.uid||r.multiFactorUid;p(s,t,"missing-multi-factor-info");let o={mfaPendingCredential:i.credential,mfaEnrollmentId:s,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}};return(await Re(t,o,"mfaSmsSignIn",async(d,l)=>{if(l.phoneSignInInfo.captchaResponse===Ce){p(n?.type===Ze,d,"argument-error");let h=await hn(d,l,n);return $r(d,h)}return $r(d,l)},"PHONE_PROVIDER").catch(d=>Promise.reject(d))).phoneResponseInfo.sessionInfo}}else{let i={phoneNumber:r.phoneNumber,clientType:"CLIENT_TYPE_WEB"};return(await Re(t,i,"sendVerificationCode",async(u,c)=>{if(c.captchaResponse===Ce){p(n?.type===Ze,u,"argument-error");let d=await hn(u,c,n);return Fr(u,d)}return Fr(u,c)},"PHONE_PROVIDER").catch(u=>Promise.reject(u))).sessionInfo}}finally{n?._reset()}}async function hn(t,e,n){p(n.type===Ze,t,"argument-error");let r=await n.verify();p(typeof r=="string",t,"argument-error");let i={...e};if("phoneEnrollmentInfo"in i){let s=i.phoneEnrollmentInfo.phoneNumber,o=i.phoneEnrollmentInfo.captchaResponse,a=i.phoneEnrollmentInfo.clientType,u=i.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(i,{phoneEnrollmentInfo:{phoneNumber:s,recaptchaToken:r,captchaResponse:o,clientType:a,recaptchaVersion:u}}),i}else if("phoneSignInInfo"in i){let s=i.phoneSignInInfo.captchaResponse,o=i.phoneSignInInfo.clientType,a=i.phoneSignInInfo.recaptchaVersion;return Object.assign(i,{phoneSignInInfo:{recaptchaToken:r,captchaResponse:s,clientType:o,recaptchaVersion:a}}),i}else return Object.assign(i,{recaptchaToken:r}),i}var Ve=class t{constructor(e){this.providerId=t.PROVIDER_ID,this.auth=se(e)}verifyPhoneNumber(e,n){return Ta(this.auth,e,j(n))}static credential(e,n){return De._fromVerification(e,n)}static credentialFromResult(e){let n=e;return t.credentialFromTaggedObject(n)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{phoneNumber:n,temporaryProof:r}=e;return n&&r?De._fromTokenResponse(n,r):null}};Ve.PROVIDER_ID="phone";Ve.PHONE_SIGN_IN_METHOD="phone";function ki(t,e){return e?W(e):(p(t._popupRedirectResolver,t,"argument-error"),t._popupRedirectResolver)}var He=class extends Z{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return _e(e,this._buildIdpRequest())}_linkToIdToken(e,n){return _e(e,this._buildIdpRequest(n))}_getReauthenticationResolver(e){return _e(e,this._buildIdpRequest())}_buildIdpRequest(e){let n={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&&(n.idToken=e),n}};function Aa(t){return sa(t.auth,new He(t),t.bypassAuthState)}function Sa(t){let{auth:e,user:n}=t;return p(n,e,"internal-error"),ia(n,new He(t),t.bypassAuthState)}async function ka(t){let{auth:e,user:n}=t;return p(n,e,"internal-error"),ra(n,new He(t),t.bypassAuthState)}var yt=class{constructor(e,n,r,i,s=!1){this.auth=e,this.resolver=r,this.user=i,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(n)?n:[n]}execute(){return new Promise(async(e,n)=>{this.pendingPromise={resolve:e,reject:n};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(r){this.reject(r)}})}async onAuthEvent(e){let{urlResponse:n,sessionId:r,postBody:i,tenantId:s,error:o,type:a}=e;if(o){this.reject(o);return}let u={auth:this.auth,requestUri:n,sessionId:r,tenantId:s||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(u))}catch(c){this.reject(c)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Aa;case"linkViaPopup":case"linkViaRedirect":return ka;case"reauthViaPopup":case"reauthViaRedirect":return Sa;default:R(this.auth,"internal-error")}}resolve(e){B(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){B(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 Ca=new Q(2e3,1e4);async function Vn(t,e,n){if(N(t.app))return Promise.reject(O(t,"operation-not-supported-in-this-environment"));let r=se(t);vo(t,e,Le);let i=ki(r,n);return new Et(r,"signInViaPopup",e,i).executeNotNull()}var Et=class t extends yt{constructor(e,n,r,i,s){super(e,n,i,s),this.provider=r,this.authWindow=null,this.pollId=null,t.currentPopupAction&&t.currentPopupAction.cancel(),t.currentPopupAction=this}async executeNotNull(){let e=await this.execute();return p(e,this.auth,"internal-error"),e}async onExecution(){B(this.filter.length===1,"Popup operations only handle one event");let e=Fn();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(n=>{this.reject(n)}),this.resolver._isIframeWebStorageSupported(this.auth,n=>{n||this.reject(O(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(O(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,t.currentPopupAction=null}pollUserCancellation(){let e=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(O(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,Ca.get())};e()}};Et.currentPopupAction=null;var Ra="pendingRedirect",et=new Map,kn=class extends yt{constructor(e,n,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],n,void 0,r),this.eventId=null}async execute(){let e=et.get(this.auth._key());if(!e){try{let r=await Pa(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(r)}catch(n){e=()=>Promise.reject(n)}et.set(this.auth._key(),e)}return this.bypassAuthState||et.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 n=await this.auth._redirectUserForId(e.eventId);if(n)return this.user=n,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}};async function Pa(t,e){let n=Da(e),r=Oa(t);if(!await r._isAvailable())return!1;let i=await r._get(n)==="true";return await r._remove(n),i}function Na(t,e){et.set(t._key(),e)}function Oa(t){return W(t._redirectPersistence)}function Da(t){return Qe(Ra,t.config.apiKey,t.name)}async function La(t,e,n=!1){if(N(t.app))return Promise.reject(X(t));let r=se(t),i=ki(r,e),o=await new kn(r,i,n).execute();return o&&!n&&(delete o.user._redirectEventId,await r._persistUserIfCurrent(o.user),await r._setRedirectUser(null,e)),o}var Ma=600*1e3,Cn=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 n=!1;return this.consumers.forEach(r=>{this.isEventForConsumer(e,r)&&(n=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!xa(e)||(this.hasHandledPotentialRedirect=!0,n||(this.queuedRedirectEvent=e,n=!0)),n}sendToConsumer(e,n){if(e.error&&!Ci(e)){let r=e.error.code?.split("auth/")[1]||"internal-error";n.onError(O(this.auth,r))}else n.onAuthEvent(e)}isEventForConsumer(e,n){let r=n.eventId===null||!!e.eventId&&e.eventId===n.eventId;return n.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=Ma&&this.cachedEventUids.clear(),this.cachedEventUids.has(zr(e))}saveEventToCache(e){this.cachedEventUids.add(zr(e)),this.lastProcessedEventTime=Date.now()}};function zr(t){return[t.type,t.eventId,t.sessionId,t.tenantId].filter(e=>e).join("-")}function Ci({type:t,error:e}){return t==="unknown"&&e?.code==="auth/no-auth-event"}function xa(t){switch(t.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return Ci(t);default:return!1}}async function Ua(t,e={}){return k(t,"GET","/v1/projects",e)}var Fa=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Va=/^https?/;async function Ha(t){if(t.config.emulator)return;let{authorizedDomains:e}=await Ua(t);for(let n of e)try{if(Wa(n))return}catch{}R(t,"unauthorized-domain")}function Wa(t){let e=pn(),{protocol:n,hostname:r}=new URL(e);if(t.startsWith("chrome-extension://")){let o=new URL(t);return o.hostname===""&&r===""?n==="chrome-extension:"&&t.replace("chrome-extension://","")===e.replace("chrome-extension://",""):n==="chrome-extension:"&&o.hostname===r}if(!Va.test(n))return!1;if(Fa.test(t))return r===t;let i=t.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}var Ba=new Q(3e4,6e4);function jr(){let t=F().___jsl;if(t?.H){for(let e of Object.keys(t.H))if(t.H[e].r=t.H[e].r||[],t.H[e].L=t.H[e].L||[],t.H[e].r=[...t.H[e].L],t.CP)for(let n=0;n<t.CP.length;n++)t.CP[n]=null}}function $a(t){return new Promise((e,n)=>{function r(){jr(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{jr(),n(O(t,"network-request-failed"))},timeout:Ba.get()})}if(F().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else if(F().gapi?.load)r();else{let i=_i("iframefcb");return F()[i]=()=>{gapi.load?r():n(O(t,"network-request-failed"))},pi(`${Ho()}?onload=${i}`).catch(s=>n(s))}}).catch(e=>{throw tt=null,e})}var tt=null;function za(t){return tt=tt||$a(t),tt}var ja=new Q(5e3,15e3),qa="__/auth/iframe",Ga="emulator/auth/iframe",Ka={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Ja=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Ya(t){let e=t.config;p(e.authDomain,t,"auth-domain-config-required");let n=e.emulator?Ln(e,Ga):`https://${t.config.authDomain}/${qa}`,r={apiKey:e.apiKey,appName:t.name,v:pe},i=Ja.get(t.config.apiHost);i&&(r.eid=i);let s=t._getFrameworks();return s.length&&(r.fw=s.join(",")),`${n}?${ue(r).slice(1)}`}async function Xa(t){let e=await za(t),n=F().gapi;return p(n,t,"internal-error"),e.open({where:document.body,url:Ya(t),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Ka,dontclear:!0},r=>new Promise(async(i,s)=>{await r.restyle({setHideOnLeave:!1});let o=O(t,"network-request-failed"),a=F().setTimeout(()=>{s(o)},ja.get());function u(){F().clearTimeout(a),i(r)}r.ping(u).then(u,()=>{s(o)})}))}var Qa={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},Za=500,ec=600,tc="_blank",nc="http://localhost",vt=class{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch{}}};function rc(t,e,n,r=Za,i=ec){let s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-r)/2,0).toString(),a="",u={...Qa,width:r.toString(),height:i.toString(),top:s,left:o},c=S().toLowerCase();n&&(a=ai(c)?tc:n),si(c)&&(e=e||nc,u.scrollbars="yes");let d=Object.entries(u).reduce((h,[f,_])=>`${h}${f}=${_},`,"");if(Lo(c)&&a!=="_self")return ic(e||"",a),new vt(null);let l=window.open(e||"",a,d);p(l,t,"popup-blocked");try{l.focus()}catch{}return new vt(l)}function ic(t,e){let n=document.createElement("a");n.href=t,n.target=e;let r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}var sc="__/auth/handler",oc="emulator/auth/handler",ac=encodeURIComponent("fac");async function qr(t,e,n,r,i,s){p(t.config.authDomain,t,"auth-domain-config-required"),p(t.config.apiKey,t,"invalid-api-key");let o={apiKey:t.config.apiKey,appName:t.name,authType:n,redirectUrl:r,v:pe,eventId:i};if(e instanceof Le){e.setDefaultLanguage(t.languageCode),o.providerId=e.providerId||"",_r(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(let[d,l]of Object.entries(s||{}))o[d]=l}if(e instanceof te){let d=e.getScopes().filter(l=>l!=="");d.length>0&&(o.scopes=d.join(","))}t.tenantId&&(o.tid=t.tenantId);let a=o;for(let d of Object.keys(a))a[d]===void 0&&delete a[d];let u=await t._getAppCheckToken(),c=u?`#${ac}=${encodeURIComponent(u)}`:"";return`${cc(t)}?${ue(a).slice(1)}${c}`}function cc({config:t}){return t.emulator?Ln(t,oc):`https://${t.authDomain}/${sc}`}var fn="webStorageSupport",Rn=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Un,this._completeRedirectFn=La,this._overrideRedirectResult=Na}async _openPopup(e,n,r,i){B(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()");let s=await qr(e,n,r,pn(),i);return rc(e,s,Fn())}async _openRedirect(e,n,r,i){await this._originValidation(e);let s=await qr(e,n,r,pn(),i);return fa(s),new Promise(()=>{})}_initialize(e){let n=e._key();if(this.eventManagers[n]){let{manager:i,promise:s}=this.eventManagers[n];return i?Promise.resolve(i):(B(s,"If manager is not set, promise should be"),s)}let r=this.initAndGetManager(e);return this.eventManagers[n]={promise:r},r.catch(()=>{delete this.eventManagers[n]}),r}async initAndGetManager(e){let n=await Xa(e),r=new Cn(e);return n.register("authEvent",i=>(p(i?.authEvent,e,"invalid-auth-event"),{status:r.onEvent(i.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=n,r}_isIframeWebStorageSupported(e,n){this.iframes[e._key()].send(fn,{type:fn},i=>{let s=i?.[0]?.[fn];s!==void 0&&n(!!s),R(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let n=e._key();return this.originValidationPromises[n]||(this.originValidationPromises[n]=Ha(e)),this.originValidationPromises[n]}get _shouldInitProactively(){return hi()||oi()||xn()}},Ri=Rn,wt=class{constructor(e){this.factorId=e}_process(e,n,r){switch(n.type){case"enroll":return this._finalizeEnroll(e,n.credential,r);case"signin":return this._finalizeSignIn(e,n.credential);default:return U("unexpected MultiFactorSessionType")}}},Pn=class t extends wt{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new t(e)}_finalizeEnroll(e,n,r){return oa(e,{idToken:n,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()})}_finalizeSignIn(e,n){return wa(e,{mfaPendingCredential:n,phoneVerificationInfo:this.credential._makeVerificationRequest()})}},bt=class{constructor(){}static assertion(e){return Pn._fromCredential(e)}};bt.FACTOR_ID="phone";var Tt=class{static assertionForEnrollment(e,n){return At._fromSecret(e,n)}static assertionForSignIn(e,n){return At._fromEnrollmentId(e,n)}static async generateSecret(e){let n=e;p(typeof n.user?.auth<"u","internal-error");let r=await aa(n.user.auth,{idToken:n.credential,totpEnrollmentInfo:{}});return St._fromStartTotpMfaEnrollmentResponse(r,n.user.auth)}};Tt.FACTOR_ID="totp";var At=class t extends wt{constructor(e,n,r){super("totp"),this.otp=e,this.enrollmentId=n,this.secret=r}static _fromSecret(e,n){return new t(n,void 0,e)}static _fromEnrollmentId(e,n){return new t(n,e)}async _finalizeEnroll(e,n,r){return p(typeof this.secret<"u",e,"argument-error"),ca(e,{idToken:n,displayName:r,totpVerificationInfo:this.secret._makeTotpVerificationInfo(this.otp)})}async _finalizeSignIn(e,n){p(this.enrollmentId!==void 0&&this.otp!==void 0,e,"argument-error");let r={verificationCode:this.otp};return ba(e,{mfaPendingCredential:n,mfaEnrollmentId:this.enrollmentId,totpVerificationInfo:r})}},St=class t{constructor(e,n,r,i,s,o,a){this.sessionInfo=o,this.auth=a,this.secretKey=e,this.hashingAlgorithm=n,this.codeLength=r,this.codeIntervalSeconds=i,this.enrollmentCompletionDeadline=s}static _fromStartTotpMfaEnrollmentResponse(e,n){return new t(e.totpSessionInfo.sharedSecretKey,e.totpSessionInfo.hashingAlgorithm,e.totpSessionInfo.verificationCodeLength,e.totpSessionInfo.periodSec,new Date(e.totpSessionInfo.finalizeEnrollmentTime).toUTCString(),e.totpSessionInfo.sessionInfo,n)}_makeTotpVerificationInfo(e){return{sessionInfo:this.sessionInfo,verificationCode:e}}generateQrCodeUrl(e,n){let r=!1;return(Ye(e)||Ye(n))&&(r=!0),r&&(Ye(e)&&(e=this.auth.currentUser?.email||"unknownuser"),Ye(n)&&(n=this.auth.name)),`otpauth://totp/${n}:${e}?secret=${this.secretKey}&issuer=${n}&algorithm=${this.hashingAlgorithm}&digits=${this.codeLength}`}};function Ye(t){return typeof t>"u"||t?.length===0}var Gr="@firebase/auth",Kr="1.11.0";var Nn=class{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let n=this.auth.onIdTokenChanged(r=>{e(r?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,n),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let n=this.internalListeners.get(e);n&&(this.internalListeners.delete(e),n(),this.updateProactiveRefresh())}assertAuthConfigured(){p(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function uc(t){switch(t){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}function lc(t){fe(new M("auth",(e,{options:n})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),s=e.getProvider("app-check-internal"),{apiKey:o,authDomain:a}=r.options;p(o&&!o.includes(":"),"invalid-api-key",{appName:r.name});let u={apiKey:o,authDomain:a,clientPlatform:t,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:fi(t)},c=new En(r,i,s,u);return $o(c,n),c},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,n,r)=>{e.getProvider("auth-internal").initialize()})),fe(new M("auth-internal",e=>{let n=se(e.getProvider("auth").getImmediate());return(r=>new Nn(r))(n)},"PRIVATE").setInstantiationMode("EXPLICIT")),G(Gr,Kr,uc(t)),G(Gr,Kr,"esm2020")}var dc=300,hc=jt("authIdTokenMaxAge")||dc,Jr=null,fc=t=>async e=>{let n=e&&await e.getIdTokenResult(),r=n&&(new Date().getTime()-Date.parse(n.issuedAtTime))/1e3;if(r&&r>hc)return;let i=n?.token;Jr!==i&&(Jr=i,await fetch(t,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))};function Hn(t=Rr()){let e=an(t,"auth");if(e.isInitialized())return e.getImmediate();let n=mi(t,{popupRedirectResolver:Ri,persistence:[Si,wi,Un]}),r=jt("authTokenSyncURL");if(r&&typeof isSecureContext=="boolean"&&isSecureContext){let s=new URL(r,location.origin);if(location.origin===s.origin){let o=fc(s.toString());vi(n,o,()=>o(n.currentUser)),Ei(n,a=>o(a))}}let i=sr("auth");return i&&gi(n,`http://${i}`),n}function pc(){return document.getElementsByTagName("head")?.[0]??document}Fo({loadJS(t){return new Promise((e,n)=>{let r=document.createElement("script");r.setAttribute("src",t),r.onload=e,r.onerror=i=>{let s=O("internal-error");s.customData=i,n(s)},r.type="text/javascript",r.charset="UTF-8",pc().appendChild(r)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="});lc("Browser");var Dt,y,Li,_c,oe,Pi,Mi,xi,Ui,zn,Wn,Bn,mc,We={},Fi=[],gc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Lt=Array.isArray;function $(t,e){for(var n in e)t[n]=e[n];return t}function jn(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function Ic(t,e,n){var r,i,s,o={};for(s in e)s=="key"?r=e[s]:s=="ref"?i=e[s]:o[s]=e[s];if(arguments.length>2&&(o.children=arguments.length>3?Dt.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(s in t.defaultProps)o[s]===void 0&&(o[s]=t.defaultProps[s]);return Pt(t,o,r,i,null)}function Pt(t,e,n,r,i){var s={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Li,__i:-1,__u:0};return i==null&&y.vnode!=null&&y.vnode(s),s}function Ie(t){return t.children}function Nt(t,e){this.props=t,this.context=e}function ge(t,e){if(e==null)return t.__?ge(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?ge(t):null}function Vi(t){var e,n;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null){t.__e=t.__c.base=n.__e;break}return Vi(t)}}function Ni(t){(!t.__d&&(t.__d=!0)&&oe.push(t)&&!Ot.__r++||Pi!=y.debounceRendering)&&((Pi=y.debounceRendering)||Mi)(Ot)}function Ot(){for(var t,e,n,r,i,s,o,a=1;oe.length;)oe.length>a&&oe.sort(xi),t=oe.shift(),a=oe.length,t.__d&&(n=void 0,i=(r=(e=t).__v).__e,s=[],o=[],e.__P&&((n=$({},r)).__v=r.__v+1,y.vnode&&y.vnode(n),qn(e.__P,n,r,e.__n,e.__P.namespaceURI,32&r.__u?[i]:null,s,i??ge(r),!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,Bi(s,n,o),n.__e!=i&&Vi(n)));Ot.__r=0}function Hi(t,e,n,r,i,s,o,a,u,c,d){var l,h,f,_,v,I,m,g=r&&r.__k||Fi,C=e.length;for(u=yc(n,e,g,u,C),l=0;l<C;l++)(f=n.__k[l])!=null&&(h=f.__i==-1?We:g[f.__i]||We,f.__i=l,I=qn(t,f,h,i,s,o,a,u,c,d),_=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Gn(h.ref,null,f),d.push(f.ref,f.__c||_,f)),v==null&&_!=null&&(v=_),(m=!!(4&f.__u))||h.__k===f.__k?u=Wi(f,u,t,m):typeof f.type=="function"&&I!==void 0?u=I:_&&(u=_.nextSibling),f.__u&=-7);return n.__e=v,u}function yc(t,e,n,r,i){var s,o,a,u,c,d=n.length,l=d,h=0;for(t.__k=new Array(i),s=0;s<i;s++)(o=e[s])!=null&&typeof o!="boolean"&&typeof o!="function"?(u=s+h,(o=t.__k[s]=typeof o=="string"||typeof o=="number"||typeof o=="bigint"||o.constructor==String?Pt(null,o,null,null,null):Lt(o)?Pt(Ie,{children:o},null,null,null):o.constructor==null&&o.__b>0?Pt(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=t,o.__b=t.__b+1,a=null,(c=o.__i=Ec(o,n,u,l))!=-1&&(l--,(a=n[c])&&(a.__u|=2)),a==null||a.__v==null?(c==-1&&(i>d?h--:i<d&&h++),typeof o.type!="function"&&(o.__u|=4)):c!=u&&(c==u-1?h--:c==u+1?h++:(c>u?h--:h++,o.__u|=4))):t.__k[s]=null;if(l)for(s=0;s<d;s++)(a=n[s])!=null&&(2&a.__u)==0&&(a.__e==r&&(r=ge(a)),zi(a,a));return r}function Wi(t,e,n,r){var i,s;if(typeof t.type=="function"){for(i=t.__k,s=0;i&&s<i.length;s++)i[s]&&(i[s].__=t,e=Wi(i[s],e,n,r));return e}t.__e!=e&&(r&&(e&&t.type&&!e.parentNode&&(e=ge(t)),n.insertBefore(t.__e,e||null)),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function Ec(t,e,n,r){var i,s,o,a=t.key,u=t.type,c=e[n],d=c!=null&&(2&c.__u)==0;if(c===null&&t.key==null||d&&a==c.key&&u==c.type)return n;if(r>(d?1:0)){for(i=n-1,s=n+1;i>=0||s<e.length;)if((c=e[o=i>=0?i--:s++])!=null&&(2&c.__u)==0&&a==c.key&&u==c.type)return o}return-1}function Oi(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||gc.test(e)?n:n+"px"}function Rt(t,e,n,r,i){var s,o;e:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof r=="string"&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||Oi(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||Oi(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")s=e!=(e=e.replace(Ui,"$1")),o=e.toLowerCase(),e=o in t||e=="onFocusOut"||e=="onFocusIn"?o.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+s]=n,n?r?n.u=r.u:(n.u=zn,t.addEventListener(e,s?Bn:Wn,s)):t.removeEventListener(e,s?Bn:Wn,s);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function Di(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=zn++;else if(e.t<n.u)return;return n(y.event?y.event(e):e)}}}function qn(t,e,n,r,i,s,o,a,u,c){var d,l,h,f,_,v,I,m,g,C,D,$e,ye,Zn,ze,Ee,Ft,L=e.type;if(e.constructor!=null)return null;128&n.__u&&(u=!!(32&n.__u),s=[a=e.__e=n.__e]),(d=y.__b)&&d(e);e:if(typeof L=="function")try{if(m=e.props,g="prototype"in L&&L.prototype.render,C=(d=L.contextType)&&r[d.__c],D=d?C?C.props.value:d.__:r,n.__c?I=(l=e.__c=n.__c).__=l.__E:(g?e.__c=l=new L(m,D):(e.__c=l=new Nt(m,D),l.constructor=L,l.render=wc),C&&C.sub(l),l.props=m,l.state||(l.state={}),l.context=D,l.__n=r,h=l.__d=!0,l.__h=[],l._sb=[]),g&&l.__s==null&&(l.__s=l.state),g&&L.getDerivedStateFromProps!=null&&(l.__s==l.state&&(l.__s=$({},l.__s)),$(l.__s,L.getDerivedStateFromProps(m,l.__s))),f=l.props,_=l.state,l.__v=e,h)g&&L.getDerivedStateFromProps==null&&l.componentWillMount!=null&&l.componentWillMount(),g&&l.componentDidMount!=null&&l.__h.push(l.componentDidMount);else{if(g&&L.getDerivedStateFromProps==null&&m!==f&&l.componentWillReceiveProps!=null&&l.componentWillReceiveProps(m,D),!l.__e&&l.shouldComponentUpdate!=null&&l.shouldComponentUpdate(m,l.__s,D)===!1||e.__v==n.__v){for(e.__v!=n.__v&&(l.props=m,l.state=l.__s,l.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(ce){ce&&(ce.__=e)}),$e=0;$e<l._sb.length;$e++)l.__h.push(l._sb[$e]);l._sb=[],l.__h.length&&o.push(l);break e}l.componentWillUpdate!=null&&l.componentWillUpdate(m,l.__s,D),g&&l.componentDidUpdate!=null&&l.__h.push(function(){l.componentDidUpdate(f,_,v)})}if(l.context=D,l.props=m,l.__P=t,l.__e=!1,ye=y.__r,Zn=0,g){for(l.state=l.__s,l.__d=!1,ye&&ye(e),d=l.render(l.props,l.state,l.context),ze=0;ze<l._sb.length;ze++)l.__h.push(l._sb[ze]);l._sb=[]}else do l.__d=!1,ye&&ye(e),d=l.render(l.props,l.state,l.context),l.state=l.__s;while(l.__d&&++Zn<25);l.state=l.__s,l.getChildContext!=null&&(r=$($({},r),l.getChildContext())),g&&!h&&l.getSnapshotBeforeUpdate!=null&&(v=l.getSnapshotBeforeUpdate(f,_)),Ee=d,d!=null&&d.type===Ie&&d.key==null&&(Ee=$i(d.props.children)),a=Hi(t,Lt(Ee)?Ee:[Ee],e,n,r,i,s,o,a,u,c),l.base=e.__e,e.__u&=-161,l.__h.length&&o.push(l),I&&(l.__E=l.__=null)}catch(ce){if(e.__v=null,u||s!=null)if(ce.then){for(e.__u|=u?160:128;a&&a.nodeType==8&&a.nextSibling;)a=a.nextSibling;s[s.indexOf(a)]=null,e.__e=a}else{for(Ft=s.length;Ft--;)jn(s[Ft]);$n(e)}else e.__e=n.__e,e.__k=n.__k,ce.then||$n(e);y.__e(ce,e,n)}else s==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):a=e.__e=vc(n.__e,e,n,r,i,s,o,u,c);return(d=y.diffed)&&d(e),128&e.__u?void 0:a}function $n(t){t&&t.__c&&(t.__c.__e=!0),t&&t.__k&&t.__k.forEach($n)}function Bi(t,e,n){for(var r=0;r<n.length;r++)Gn(n[r],n[++r],n[++r]);y.__c&&y.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(s){s.call(i)})}catch(s){y.__e(s,i.__v)}})}function $i(t){return typeof t!="object"||t==null||t.__b&&t.__b>0?t:Lt(t)?t.map($i):$({},t)}function vc(t,e,n,r,i,s,o,a,u){var c,d,l,h,f,_,v,I=n.props,m=e.props,g=e.type;if(g=="svg"?i="http://www.w3.org/2000/svg":g=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),s!=null){for(c=0;c<s.length;c++)if((f=s[c])&&"setAttribute"in f==!!g&&(g?f.localName==g:f.nodeType==3)){t=f,s[c]=null;break}}if(t==null){if(g==null)return document.createTextNode(m);t=document.createElementNS(i,g,m.is&&m),a&&(y.__m&&y.__m(e,s),a=!1),s=null}if(g==null)I===m||a&&t.data==m||(t.data=m);else{if(s=s&&Dt.call(t.childNodes),I=n.props||We,!a&&s!=null)for(I={},c=0;c<t.attributes.length;c++)I[(f=t.attributes[c]).name]=f.value;for(c in I)if(f=I[c],c!="children"){if(c=="dangerouslySetInnerHTML")l=f;else if(!(c in m)){if(c=="value"&&"defaultValue"in m||c=="checked"&&"defaultChecked"in m)continue;Rt(t,c,null,f,i)}}for(c in m)f=m[c],c=="children"?h=f:c=="dangerouslySetInnerHTML"?d=f:c=="value"?_=f:c=="checked"?v=f:a&&typeof f!="function"||I[c]===f||Rt(t,c,f,I[c],i);if(d)a||l&&(d.__html==l.__html||d.__html==t.innerHTML)||(t.innerHTML=d.__html),e.__k=[];else if(l&&(t.innerHTML=""),Hi(e.type=="template"?t.content:t,Lt(h)?h:[h],e,n,r,g=="foreignObject"?"http://www.w3.org/1999/xhtml":i,s,o,s?s[0]:n.__k&&ge(n,0),a,u),s!=null)for(c=s.length;c--;)jn(s[c]);a||(c="value",g=="progress"&&_==null?t.removeAttribute("value"):_!=null&&(_!==t[c]||g=="progress"&&!_||g=="option"&&_!=I[c])&&Rt(t,c,_,I[c],i),c="checked",v!=null&&v!=t[c]&&Rt(t,c,v,I[c],i))}return t}function Gn(t,e,n){try{if(typeof t=="function"){var r=typeof t.__u=="function";r&&t.__u(),r&&e==null||(t.__u=t(e))}else t.current=e}catch(i){y.__e(i,n)}}function zi(t,e,n){var r,i;if(y.unmount&&y.unmount(t),(r=t.ref)&&(r.current&&r.current!=t.__e||Gn(r,null,e)),(r=t.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(s){y.__e(s,e)}r.base=r.__P=null}if(r=t.__k)for(i=0;i<r.length;i++)r[i]&&zi(r[i],e,n||typeof t.type!="function");n||jn(t.__e),t.__c=t.__=t.__e=void 0}function wc(t,e,n){return this.constructor(t,n)}function ji(t,e,n){var r,i,s,o;e==document&&(e=document.documentElement),y.__&&y.__(t,e),i=(r=typeof n=="function")?null:n&&n.__k||e.__k,s=[],o=[],qn(e,t=(!r&&n||e).__k=Ic(Ie,null,[t]),i||We,We,e.namespaceURI,!r&&n?[n]:i?null:e.firstChild?Dt.call(e.childNodes):null,s,!r&&n?n:i?i.__e:e.firstChild,r,o),Bi(s,t,o)}Dt=Fi.slice,y={__e:function(t,e,n,r){for(var i,s,o;e=e.__;)if((i=e.__c)&&!i.__)try{if((s=i.constructor)&&s.getDerivedStateFromError!=null&&(i.setState(s.getDerivedStateFromError(t)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,r||{}),o=i.__d),o)return i.__E=i}catch(a){t=a}throw t}},Li=0,_c=function(t){return t!=null&&t.constructor==null},Nt.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=$({},this.state),typeof t=="function"&&(t=t($({},n),this.props)),t&&$(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),Ni(this))},Nt.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Ni(this))},Nt.prototype.render=Ie,oe=[],Mi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,xi=function(t,e){return t.__v.__b-e.__v.__b},Ot.__r=0,Ui=/(PointerCapture)$|Capture$/i,zn=0,Wn=Di(!1),Bn=Di(!0),mc=0;var Be,b,Kn,qi,xt=0,es=[],T=y,Gi=T.__b,Ki=T.__r,Ji=T.diffed,Yi=T.__c,Xi=T.unmount,Qi=T.__;function Yn(t,e){T.__h&&T.__h(b,t,xt||e),xt=0;var n=b.__H||(b.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function Xn(t){return xt=1,bc(rs,t)}function bc(t,e,n){var r=Yn(Be++,2);if(r.t=t,!r.__c&&(r.__=[n?n(e):rs(void 0,e),function(a){var u=r.__N?r.__N[0]:r.__[0],c=r.t(u,a);u!==c&&(r.__N=[c,r.__[1]],r.__c.setState({}))}],r.__c=b,!b.__f)){var i=function(a,u,c){if(!r.__c.__H)return!0;var d=r.__c.__H.__.filter(function(h){return!!h.__c});if(d.every(function(h){return!h.__N}))return!s||s.call(this,a,u,c);var l=r.__c.props!==a;return d.forEach(function(h){if(h.__N){var f=h.__[0];h.__=h.__N,h.__N=void 0,f!==h.__[0]&&(l=!0)}}),s&&s.call(this,a,u,c)||l};b.__f=!0;var s=b.shouldComponentUpdate,o=b.componentWillUpdate;b.componentWillUpdate=function(a,u,c){if(this.__e){var d=s;s=void 0,i(a,u,c),s=d}o&&o.call(this,a,u,c)},b.shouldComponentUpdate=i}return r.__N||r.__}function ts(t,e){var n=Yn(Be++,3);!T.__s&&ns(n.__H,e)&&(n.__=t,n.u=e,b.__H.__h.push(n))}function Qn(t){return xt=5,Tc(function(){return{current:t}},[])}function Tc(t,e){var n=Yn(Be++,7);return ns(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function Ac(){for(var t;t=es.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(Mt),t.__H.__h.forEach(Jn),t.__H.__h=[]}catch(e){t.__H.__h=[],T.__e(e,t.__v)}}T.__b=function(t){b=null,Gi&&Gi(t)},T.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),Qi&&Qi(t,e)},T.__r=function(t){Ki&&Ki(t),Be=0;var e=(b=t.__c).__H;e&&(Kn===b?(e.__h=[],b.__h=[],e.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(e.__h.forEach(Mt),e.__h.forEach(Jn),e.__h=[],Be=0)),Kn=b},T.diffed=function(t){Ji&&Ji(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(es.push(e)!==1&&qi===T.requestAnimationFrame||((qi=T.requestAnimationFrame)||Sc)(Ac)),e.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),Kn=b=null},T.__c=function(t,e){e.some(function(n){try{n.__h.forEach(Mt),n.__h=n.__h.filter(function(r){return!r.__||Jn(r)})}catch(r){e.some(function(i){i.__h&&(i.__h=[])}),e=[],T.__e(r,n.__v)}}),Yi&&Yi(t,e)},T.unmount=function(t){Xi&&Xi(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.forEach(function(r){try{Mt(r)}catch(i){e=i}}),n.__H=void 0,e&&T.__e(e,n.__v))};var Zi=typeof requestAnimationFrame=="function";function Sc(t){var e,n=function(){clearTimeout(r),Zi&&cancelAnimationFrame(e),setTimeout(t)},r=setTimeout(n,35);Zi&&(e=requestAnimationFrame(n))}function Mt(t){var e=b,n=t.__c;typeof n=="function"&&(t.__c=void 0,n()),b=e}function Jn(t){var e=b;t.__c=t.__(),b=e}function ns(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function rs(t,e){return typeof e=="function"?e(t):e}var kc=0,Cl=Array.isArray;function w(t,e,n,r,i,s){e||(e={});var o,a,u=e;if("ref"in u)for(a in u={},e)a=="ref"?o=e[a]:u[a]=e[a];var c={type:t,props:u,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--kc,__i:-1,__u:0,__source:i,__self:s};if(typeof t=="function"&&(o=t.defaultProps))for(a in o)u[a]===void 0&&(u[a]=o[a]);return y.vnode&&y.vnode(c),c}function Cc(...t){return t.filter(e=>!!e).join(" ")||void 0}function ae(){let[t,e]=Xn(""),n=window.__ROOT_CTX.name,r=window.__ROOT_CTX.warning;function i(s){e(s)}return w("div",{className:"signin",children:[w("div",{className:"signin__headline",children:[n&&w("h1",{className:"signin__headline__title",children:n}),w("p",{className:"signin__headline__body",children:n?`Sign in to continue to ${n}`:"Sign in to continue"})]}),r&&w("div",{className:"signin__warning",children:r}),w(ae.Button,{onError:i}),t&&w("p",{className:"signin__error",children:t})]})}ae.Button=t=>{let[e,n]=Xn("idle"),r=Qn(0),i=Qn(null);ts(()=>{if(e!=="popup")return;let c=setInterval(()=>{i.current&&i.current.closed&&(i.current=null,n("idle"))},200);return()=>clearInterval(c)},[e]);async function s(c){try{return await c.json()}catch(d){console.error(d)}return{}}async function o(){if(e!=="idle")return;t.onError("");let c=++r.current;n("popup");function d(_){r.current===c&&n(_)}function l(_){r.current===c&&t.onError(_)}let h,f=window.open;window.open=function(..._){window.open=f;let v=f.apply(this,_);return i.current=v,v};try{let _=new ne;_.addScope("profile"),_.addScope("email"),h=await Vn(window.firebase.auth,_)}catch(_){let v=_?.code||"";if(v==="auth/popup-closed-by-user"||v==="auth/cancelled-popup-request"){d("idle");return}console.error(_),l(v==="auth/network-request-failed"?"Network error. Please check your connection and try again.":`Sign in failed: ${_?.message||"unknown error"}`),d("idle");return}d("verifying");try{let _=h.user,v=await _.getIdToken(),I=await fetch("/cms/login",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({idToken:v})}),m=await s(I);if(I.status===401){let g=_?.email||"(no email)";m.reason?l(`Login failed for: ${g}. Reason: ${m.reason}. If you believe this is a mistake, please contact a developer to help resolve the issue.`):l(`Login failed for: ${g}. If you believe this is a mistake, please contact a developer to help resolve the issue.`),d("idle");return}if(I.status!==200){console.error("login failed"),console.log(I.status,m),l("An unknown error has occurred."),d("idle");return}if(!m.success){console.error("login failed"),console.log(I.status,m),m.reason?l(`Login failed. Reason: ${m.reason}`):l("Login failed."),d("idle");return}d("redirecting"),Rc()}catch(_){console.error(_),l("An unexpected error occurred. Please try again."),d("idle")}}let a=e!=="idle",u=e==="popup"?"Signing in\u2026":e==="verifying"?"Authorizing\u2026":e==="redirecting"?"Redirecting\u2026":"Sign in with Google";return w("button",{className:Cc("signin__button",a&&"signin__button--busy"),onClick:o,disabled:a,children:[w("div",{className:"signin__button__icon",children:a?w(ae.Spinner,{}):w(ae.GLogo,{})}),w("div",{className:"signin__button__label",children:u})]})};ae.Spinner=()=>w("svg",{className:"signin__spinner",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:w("circle",{cx:"12",cy:"12",r:"10",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-dasharray":"50 14","stroke-linecap":"round"})});ae.GLogo=()=>w("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48 48",children:w("g",{children:[w("path",{fill:"#EA4335",d:"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"}),w("path",{fill:"#4285F4",d:"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"}),w("path",{fill:"#FBBC05",d:"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"}),w("path",{fill:"#34A853",d:"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"}),w("path",{fill:"none",d:"M0 0h48v48H0z"})]})});function Rc(){let e=new URLSearchParams(window.location.search).get("continue");(!e||!e.startsWith("/")||e.startsWith("/cms/login"))&&(e="/cms"),window.location.replace(e)}var Ut=document.getElementById("root");function Pc(t){return(t?.code||"")==="auth/invalid-api-key"?"Firebase API key is invalid.":t?.message||"An unknown startup error occurred."}function Nc(t){console.error(t),Ut.innerHTML="";let e=document.createElement("div");e.className="bootstrap bootstrap--error";let n=document.createElement("h1");n.className="bootstrap__error-title",n.textContent="Something went wrong";let r=document.createElement("p");r.className="bootstrap__error-message",r.textContent=Pc(t),e.append(n,r),Ut.append(e)}try{let t=cn(window.__ROOT_CTX.firebaseConfig),e=Hn(t);window.firebase={app:t,auth:e},Ut.innerHTML="",ji(w(ae,{}),Ut)}catch(t){Nc(t)}})();
|
|
15
|
+
</defs>`,_.innerText="Preview backend running in this workspace."),_.setAttribute("id",f)}document.readyState==="loading"?window.addEventListener("DOMContentLoaded",l):l()}function S(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function cr(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(S())}function ur(){return typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"}function lr(){let t=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof t=="object"&&t.id!==void 0}function dr(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function hr(){let t=S();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}function fr(){try{return typeof indexedDB=="object"}catch{return!1}}function pr(){return new Promise((t,e)=>{try{let n=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{e(i.error?.message||"")}}catch(n){e(n)}})}var hs="FirebaseError",P=class t extends Error{constructor(e,n,r){super(n),this.code=e,this.customData=r,this.name=hs,Object.setPrototypeOf(this,t.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,V.prototype.create)}},V=class{constructor(e,n,r){this.service=e,this.serviceName=n,this.errors=r}create(e,...n){let r=n[0]||{},i=`${this.service}/${e}`,s=this.errors[e],o=s?fs(s,r):"Error",a=`${this.serviceName}: ${o} (${i}).`;return new P(i,a,r)}};function fs(t,e){return t.replace(ps,(n,r)=>{let i=e[r];return i!=null?String(i):`<${r}?>`})}var ps=/\{\$([^}]+)}/g;function _r(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function z(t,e){if(t===e)return!0;let n=Object.keys(t),r=Object.keys(e);for(let i of n){if(!r.includes(i))return!1;let s=t[i],o=e[i];if(nr(s)&&nr(o)){if(!z(s,o))return!1}else if(s!==o)return!1}for(let i of r)if(!n.includes(i))return!1;return!0}function nr(t){return t!==null&&typeof t=="object"}function ue(t){let e=[];for(let[n,r]of Object.entries(t))Array.isArray(r)?r.forEach(i=>{e.push(encodeURIComponent(n)+"="+encodeURIComponent(i))}):e.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}function le(t){let e={};return t.replace(/^\?/,"").split("&").forEach(r=>{if(r){let[i,s]=r.split("=");e[decodeURIComponent(i)]=decodeURIComponent(s)}}),e}function de(t){let e=t.indexOf("?");if(!e)return"";let n=t.indexOf("#",e);return t.substring(e,n>0?n:void 0)}function mr(t,e){let n=new Wt(t,e);return n.subscribe.bind(n)}var Wt=class{constructor(e,n){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=n,this.task.then(()=>{e(this)}).catch(r=>{this.error(r)})}next(e){this.forEachObserver(n=>{n.next(e)})}error(e){this.forEachObserver(n=>{n.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,n,r){let i;if(e===void 0&&n===void 0&&r===void 0)throw new Error("Missing Observer.");_s(e,["next","error","complete"])?i=e:i={next:e,error:n,complete:r},i.next===void 0&&(i.next=Vt),i.error===void 0&&(i.error=Vt),i.complete===void 0&&(i.complete=Vt);let s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch{}}),this.observers.push(i),s}unsubscribeOne(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let n=0;n<this.observers.length;n++)this.sendOne(n,e)}sendOne(e,n){this.task.then(()=>{if(this.observers!==void 0&&this.observers[e]!==void 0)try{n(this.observers[e])}catch(r){typeof console<"u"&&console.error&&console.error(r)}})}close(e){this.finalized||(this.finalized=!0,e!==void 0&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}};function _s(t,e){if(typeof t!="object"||t===null)return!1;for(let n of e)if(n in t&&typeof t[n]=="function")return!0;return!1}function Vt(){}var Lc=14400*1e3;function j(t){return t&&t._delegate?t._delegate:t}var M=class{constructor(e,n,r){this.name=e,this.instanceFactory=n,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}};var Y="[DEFAULT]";var qt=class{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){let r=new je;if(this.instancesDeferred.set(n,r),this.isInitialized(n)||this.shouldAutoInitialize())try{let i=this.getOrInitializeService({instanceIdentifier:n});i&&r.resolve(i)}catch{}}return this.instancesDeferred.get(n).promise}getImmediate(e){let n=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(this.isInitialized(n)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:n})}catch(i){if(r)return null;throw i}else{if(r)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(gs(e))try{this.getOrInitializeService({instanceIdentifier:Y})}catch{}for(let[n,r]of this.instancesDeferred.entries()){let i=this.normalizeInstanceIdentifier(n);try{let s=this.getOrInitializeService({instanceIdentifier:i});r.resolve(s)}catch{}}}}clearInstance(e=Y){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){let e=Array.from(this.instances.values());await Promise.all([...e.filter(n=>"INTERNAL"in n).map(n=>n.INTERNAL.delete()),...e.filter(n=>"_delete"in n).map(n=>n._delete())])}isComponentSet(){return this.component!=null}isInitialized(e=Y){return this.instances.has(e)}getOptions(e=Y){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:n={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let i=this.getOrInitializeService({instanceIdentifier:r,options:n});for(let[s,o]of this.instancesDeferred.entries()){let a=this.normalizeInstanceIdentifier(s);r===a&&o.resolve(i)}return i}onInit(e,n){let r=this.normalizeInstanceIdentifier(n),i=this.onInitCallbacks.get(r)??new Set;i.add(e),this.onInitCallbacks.set(r,i);let s=this.instances.get(r);return s&&e(s,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,n){let r=this.onInitCallbacks.get(n);if(r)for(let i of r)try{i(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:ms(e),options:n}),this.instances.set(e,r),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=Y){return this.component?this.component.multipleInstances?e:Y:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}};function ms(t){return t===Y?void 0:t}function gs(t){return t.instantiationMode==="EAGER"}var Ge=class{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let n=new qt(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}};var Is=[],E;(function(t){t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT"})(E||(E={}));var ys={debug:E.DEBUG,verbose:E.VERBOSE,info:E.INFO,warn:E.WARN,error:E.ERROR,silent:E.SILENT},Es=E.INFO,vs={[E.DEBUG]:"log",[E.VERBOSE]:"log",[E.INFO]:"info",[E.WARN]:"warn",[E.ERROR]:"error"},ws=(t,e,...n)=>{if(e<t.logLevel)return;let r=new Date().toISOString(),i=vs[e];if(i)console[i](`[${r}] ${t.name}:`,...n);else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)},he=class{constructor(e){this.name=e,this._logLevel=Es,this._logHandler=ws,this._userLogHandler=null,Is.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in E))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?ys[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,E.DEBUG,...e),this._logHandler(this,E.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,E.VERBOSE,...e),this._logHandler(this,E.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,E.INFO,...e),this._logHandler(this,E.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,E.WARN,...e),this._logHandler(this,E.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,E.ERROR,...e),this._logHandler(this,E.ERROR,...e)}};var bs=(t,e)=>e.some(n=>t instanceof n),gr,Ir;function Ts(){return gr||(gr=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function As(){return Ir||(Ir=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var yr=new WeakMap,Kt=new WeakMap,Er=new WeakMap,Gt=new WeakMap,Yt=new WeakMap;function Ss(t){let e=new Promise((n,r)=>{let i=()=>{t.removeEventListener("success",s),t.removeEventListener("error",o)},s=()=>{n(x(t.result)),i()},o=()=>{r(t.error),i()};t.addEventListener("success",s),t.addEventListener("error",o)});return e.then(n=>{n instanceof IDBCursor&&yr.set(n,t)}).catch(()=>{}),Yt.set(e,t),e}function ks(t){if(Kt.has(t))return;let e=new Promise((n,r)=>{let i=()=>{t.removeEventListener("complete",s),t.removeEventListener("error",o),t.removeEventListener("abort",o)},s=()=>{n(),i()},o=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",s),t.addEventListener("error",o),t.addEventListener("abort",o)});Kt.set(t,e)}var Jt={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return Kt.get(t);if(e==="objectStoreNames")return t.objectStoreNames||Er.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return x(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function vr(t){Jt=t(Jt)}function Cs(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){let r=t.call(Ke(this),e,...n);return Er.set(r,e.sort?e.sort():[e]),x(r)}:As().includes(t)?function(...e){return t.apply(Ke(this),e),x(yr.get(this))}:function(...e){return x(t.apply(Ke(this),e))}}function Rs(t){return typeof t=="function"?Cs(t):(t instanceof IDBTransaction&&ks(t),bs(t,Ts())?new Proxy(t,Jt):t)}function x(t){if(t instanceof IDBRequest)return Ss(t);if(Gt.has(t))return Gt.get(t);let e=Rs(t);return e!==t&&(Gt.set(t,e),Yt.set(e,t)),e}var Ke=t=>Yt.get(t);function br(t,e,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){let o=indexedDB.open(t,e),a=x(o);return r&&o.addEventListener("upgradeneeded",u=>{r(x(o.result),u.oldVersion,u.newVersion,x(o.transaction),u)}),n&&o.addEventListener("blocked",u=>n(u.oldVersion,u.newVersion,u)),a.then(u=>{s&&u.addEventListener("close",()=>s()),i&&u.addEventListener("versionchange",c=>i(c.oldVersion,c.newVersion,c))}).catch(()=>{}),a}var Ps=["get","getKey","getAll","getAllKeys","count"],Ns=["put","add","delete","clear"],Xt=new Map;function wr(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Xt.get(e))return Xt.get(e);let n=e.replace(/FromIndex$/,""),r=e!==n,i=Ns.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||Ps.includes(n)))return;let s=async function(o,...a){let u=this.transaction(o,i?"readwrite":"readonly"),c=u.store;return r&&(c=c.index(a.shift())),(await Promise.all([c[n](...a),i&&u.done]))[0]};return Xt.set(e,s),s}vr(t=>({...t,get:(e,n,r)=>wr(e,n)||t.get(e,n,r),has:(e,n)=>!!wr(e,n)||t.has(e,n)}));var Zt=class{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(n=>{if(Os(n)){let r=n.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(n=>n).join(" ")}};function Os(t){return t.getComponent()?.type==="VERSION"}var en="@firebase/app",Tr="0.14.2";var H=new he("@firebase/app"),Ds="@firebase/app-compat",Ls="@firebase/analytics-compat",Ms="@firebase/analytics",xs="@firebase/app-check-compat",Us="@firebase/app-check",Fs="@firebase/auth",Vs="@firebase/auth-compat",Hs="@firebase/database",Ws="@firebase/data-connect",Bs="@firebase/database-compat",$s="@firebase/functions",zs="@firebase/functions-compat",js="@firebase/installations",qs="@firebase/installations-compat",Gs="@firebase/messaging",Ks="@firebase/messaging-compat",Js="@firebase/performance",Ys="@firebase/performance-compat",Xs="@firebase/remote-config",Qs="@firebase/remote-config-compat",Zs="@firebase/storage",eo="@firebase/storage-compat",to="@firebase/firestore",no="@firebase/ai",ro="@firebase/firestore-compat",io="firebase",so="12.2.0";var tn="[DEFAULT]",oo={[en]:"fire-core",[Ds]:"fire-core-compat",[Ms]:"fire-analytics",[Ls]:"fire-analytics-compat",[Us]:"fire-app-check",[xs]:"fire-app-check-compat",[Fs]:"fire-auth",[Vs]:"fire-auth-compat",[Hs]:"fire-rtdb",[Ws]:"fire-data-connect",[Bs]:"fire-rtdb-compat",[$s]:"fire-fn",[zs]:"fire-fn-compat",[js]:"fire-iid",[qs]:"fire-iid-compat",[Gs]:"fire-fcm",[Ks]:"fire-fcm-compat",[Js]:"fire-perf",[Ys]:"fire-perf-compat",[Xs]:"fire-rc",[Qs]:"fire-rc-compat",[Zs]:"fire-gcs",[eo]:"fire-gcs-compat",[to]:"fire-fst",[ro]:"fire-fst-compat",[no]:"fire-vertex","fire-js":"fire-js",[io]:"fire-js-all"};var Je=new Map,ao=new Map,nn=new Map;function Ar(t,e){try{t.container.addComponent(e)}catch(n){H.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function fe(t){let e=t.name;if(nn.has(e))return H.debug(`There were multiple attempts to register component ${e}.`),!1;nn.set(e,t);for(let n of Je.values())Ar(n,t);for(let n of ao.values())Ar(n,t);return!0}function an(t,e){let n=t.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),t.container.getProvider(e)}function N(t){return t==null?!1:t.settings!==void 0}var co={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},q=new V("app","Firebase",co);var rn=class{constructor(e,n,r){this._isDeleted=!1,this._options={...e},this._config={...n},this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new M("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw q.create("app-deleted",{appName:this._name})}};var pe=so;function cn(t,e={}){let n=t;typeof e!="object"&&(e={name:e});let r={name:tn,automaticDataCollectionEnabled:!0,...e},i=r.name;if(typeof i!="string"||!i)throw q.create("bad-app-name",{appName:String(i)});if(n||(n=zt()),!n)throw q.create("no-options");let s=Je.get(i);if(s){if(z(n,s.options)&&z(r,s.config))return s;throw q.create("duplicate-app",{appName:i})}let o=new Ge(i);for(let u of nn.values())o.addComponent(u);let a=new rn(n,r,o);return Je.set(i,a),a}function Rr(t=tn){let e=Je.get(t);if(!e&&t===tn&&zt())return cn();if(!e)throw q.create("no-app",{appName:t});return e}function G(t,e,n){let r=oo[t]??t;n&&(r+=`-${n}`);let i=r.match(/\s|\//),s=e.match(/\s|\//);if(i||s){let o=[`Unable to register library "${r}" with version "${e}":`];i&&o.push(`library name "${r}" contains illegal characters (whitespace or "/")`),i&&s&&o.push("and"),s&&o.push(`version name "${e}" contains illegal characters (whitespace or "/")`),H.warn(o.join(" "));return}fe(new M(`${r}-version`,()=>({library:r,version:e}),"VERSION"))}var uo="firebase-heartbeat-database",lo=1,be="firebase-heartbeat-store",Qt=null;function Pr(){return Qt||(Qt=br(uo,lo,{upgrade:(t,e)=>{switch(e){case 0:try{t.createObjectStore(be)}catch(n){console.warn(n)}}}}).catch(t=>{throw q.create("idb-open",{originalErrorMessage:t.message})})),Qt}async function ho(t){try{let n=(await Pr()).transaction(be),r=await n.objectStore(be).get(Nr(t));return await n.done,r}catch(e){if(e instanceof P)H.warn(e.message);else{let n=q.create("idb-get",{originalErrorMessage:e?.message});H.warn(n.message)}}}async function Sr(t,e){try{let r=(await Pr()).transaction(be,"readwrite");await r.objectStore(be).put(e,Nr(t)),await r.done}catch(n){if(n instanceof P)H.warn(n.message);else{let r=q.create("idb-set",{originalErrorMessage:n?.message});H.warn(r.message)}}}function Nr(t){return`${t.name}!${t.options.appId}`}var fo=1024,po=30,sn=class{constructor(e){this.container=e,this._heartbeatsCache=null;let n=this.container.getProvider("app").getImmediate();this._storage=new on(n),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}async triggerHeartbeat(){try{let n=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),r=kr();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===r||this._heartbeatsCache.heartbeats.some(i=>i.date===r))return;if(this._heartbeatsCache.heartbeats.push({date:r,agent:n}),this._heartbeatsCache.heartbeats.length>po){let i=mo(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(i,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){H.warn(e)}}async getHeartbeatsHeader(){try{if(this._heartbeatsCache===null&&await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null||this._heartbeatsCache.heartbeats.length===0)return"";let e=kr(),{heartbeatsToSend:n,unsentEntries:r}=_o(this._heartbeatsCache.heartbeats),i=Bt(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=e,r.length>0?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}catch(e){return H.warn(e),""}}};function kr(){return new Date().toISOString().substring(0,10)}function _o(t,e=fo){let n=[],r=t.slice();for(let i of t){let s=n.find(o=>o.agent===i.agent);if(s){if(s.dates.push(i.date),Cr(n)>e){s.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),Cr(n)>e){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}var on=class{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return fr()?pr().then(()=>!0).catch(()=>!1):!1}async read(){if(await this._canUseIndexedDBPromise){let n=await ho(this.app);return n?.heartbeats?n:{heartbeats:[]}}else return{heartbeats:[]}}async overwrite(e){if(await this._canUseIndexedDBPromise){let r=await this.read();return Sr(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return}async add(e){if(await this._canUseIndexedDBPromise){let r=await this.read();return Sr(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}else return}};function Cr(t){return Bt(JSON.stringify({version:2,heartbeats:t})).length}function mo(t){if(t.length===0)return-1;let e=0,n=t[0].date;for(let r=1;r<t.length;r++)t[r].date<n&&(n=t[r].date,e=r);return e}function go(t){fe(new M("platform-logger",e=>new Zt(e),"PRIVATE")),fe(new M("heartbeat",e=>new sn(e),"PRIVATE")),G(en,Tr,t),G(en,Tr,"esm2020"),G("fire-js","")}go("");var Io="firebase",yo="12.2.1";G(Io,yo,"app");function Yr(){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 Xr=Yr,Qr=new V("auth","Firebase",Yr());var nt=new he("@firebase/auth");function Eo(t,...e){nt.logLevel<=E.WARN&&nt.warn(`Auth (${pe}): ${t}`,...e)}function Xe(t,...e){nt.logLevel<=E.ERROR&&nt.error(`Auth (${pe}): ${t}`,...e)}function R(t,...e){throw Dn(t,...e)}function O(t,...e){return Dn(t,...e)}function On(t,e,n){let r={...Xr(),[e]:n};return new V("auth","Firebase",r).create(e,{appName:t.name})}function X(t){return On(t,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function vo(t,e,n){let r=n;if(!(e instanceof r))throw r.name!==e.constructor.name&&R(t,"argument-error"),On(t,"argument-error",`Type of ${e.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function Dn(t,...e){if(typeof t!="string"){let n=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=t.name),t._errorFactory.create(n,...r)}return Qr.create(t,...e)}function p(t,e,...n){if(!t)throw Dn(e,...n)}function U(t){let e="INTERNAL ASSERTION FAILED: "+t;throw Xe(e),new Error(e)}function B(t,e){t||U(e)}function pn(){return typeof self<"u"&&self.location?.href||""}function wo(){return Or()==="http:"||Or()==="https:"}function Or(){return typeof self<"u"&&self.location?.protocol||null}function bo(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(wo()||lr()||"connection"in navigator)?navigator.onLine:!0}function To(){if(typeof navigator>"u")return null;let t=navigator;return t.languages&&t.languages[0]||t.language||null}var Q=class{constructor(e,n){this.shortDelay=e,this.longDelay=n,B(n>e,"Short delay should be less than long delay!"),this.isMobile=cr()||dr()}get(){return bo()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function Ln(t,e){B(t.emulator,"Emulator should always be set here");let{url:n}=t.emulator;return e?`${n}${e.startsWith("/")?e.slice(1):e}`:n}var rt=class{static initialize(e,n,r){this.fetchImpl=e,n&&(this.headersImpl=n),r&&(this.responseImpl=r)}static fetch(){if(this.fetchImpl)return this.fetchImpl;if(typeof self<"u"&&"fetch"in self)return self.fetch;if(typeof globalThis<"u"&&globalThis.fetch)return globalThis.fetch;if(typeof fetch<"u")return fetch;U("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;U("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;U("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var Ao={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 So=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],ko=new Q(3e4,6e4);function A(t,e){return t.tenantId&&!e.tenantId?{...e,tenantId:t.tenantId}:e}async function k(t,e,n,r,i={}){return Zr(t,i,async()=>{let s={},o={};r&&(e==="GET"?o=r:s={body:JSON.stringify(r)});let a=ue({key:t.config.apiKey,...o}).slice(1),u=await t._getAdditionalHeaders();u["Content-Type"]="application/json",t.languageCode&&(u["X-Firebase-Locale"]=t.languageCode);let c={method:e,headers:u,...s};return ur()||(c.referrerPolicy="no-referrer"),t.emulatorConfig&&we(t.emulatorConfig.host)&&(c.credentials="include"),rt.fetch()(await ei(t,t.config.apiHost,n,a),c)})}async function Zr(t,e,n){t._canInitEmulator=!1;let r={...Ao,...e};try{let i=new _n(t),s=await Promise.race([n(),i.promise]);i.clearNetworkTimeout();let o=await s.json();if("needConfirmation"in o)throw Ae(t,"account-exists-with-different-credential",o);if(s.ok&&!("errorMessage"in o))return o;{let a=s.ok?o.errorMessage:o.error.message,[u,c]=a.split(" : ");if(u==="FEDERATED_USER_ID_ALREADY_LINKED")throw Ae(t,"credential-already-in-use",o);if(u==="EMAIL_EXISTS")throw Ae(t,"email-already-in-use",o);if(u==="USER_DISABLED")throw Ae(t,"user-disabled",o);let d=r[u]||u.toLowerCase().replace(/[_\s]+/g,"-");if(c)throw On(t,d,c);R(t,d)}}catch(i){if(i instanceof P)throw i;R(t,"network-request-failed",{message:String(i)})}}async function ie(t,e,n,r,i={}){let s=await k(t,e,n,r,i);return"mfaPendingCredential"in s&&R(t,"multi-factor-auth-required",{_serverResponse:s}),s}async function ei(t,e,n,r){let i=`${e}${n}?${r}`,s=t,o=s.config.emulator?Ln(t.config,i):`${t.config.apiScheme}://${i}`;return So.includes(n)&&(await s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o}function Co(t){switch(t){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}var _n=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((n,r)=>{this.timer=setTimeout(()=>r(O(this.auth,"network-request-failed")),ko.get())})}};function Ae(t,e,n){let r={appName:t.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);let i=O(t,e,r);return i.customData._tokenResponse=n,i}function Dr(t){return t!==void 0&&t.enterprise!==void 0}var it=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 n of this.recaptchaEnforcementState)if(n.provider&&n.provider===e)return Co(n.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 ti(t,e){return k(t,"GET","/v2/recaptchaConfig",A(t,e))}async function Ro(t,e){return k(t,"POST","/v1/accounts:delete",e)}async function st(t,e){return k(t,"POST","/v1/accounts:lookup",e)}function Se(t){if(t)try{let e=new Date(Number(t));if(!isNaN(e.getTime()))return e.toUTCString()}catch{}}async function ni(t,e=!1){let n=j(t),r=await n.getIdToken(e),i=Mn(r);p(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");let s=typeof i.firebase=="object"?i.firebase:void 0,o=s?.sign_in_provider;return{claims:i,token:r,authTime:Se(un(i.auth_time)),issuedAtTime:Se(un(i.iat)),expirationTime:Se(un(i.exp)),signInProvider:o||null,signInSecondFactor:s?.sign_in_second_factor||null}}function un(t){return Number(t)*1e3}function Mn(t){let[e,n,r]=t.split(".");if(e===void 0||n===void 0||r===void 0)return Xe("JWT malformed, contained fewer than 3 sections"),null;try{let i=qe(n);return i?JSON.parse(i):(Xe("Failed to decode base64 JWT payload"),null)}catch(i){return Xe("Caught error parsing JWT payload as JSON",i?.toString()),null}}function Lr(t){let e=Mn(t);return p(e,"internal-error"),p(typeof e.exp<"u","internal-error"),p(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}async function Pe(t,e,n=!1){if(n)return e;try{return await e}catch(r){throw r instanceof P&&Po(r)&&t.auth.currentUser===t&&await t.auth.signOut(),r}}function Po({code:t}){return t==="auth/user-disabled"||t==="auth/user-token-expired"}var mn=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 n=this.errorBackoff;return this.errorBackoff=Math.min(this.errorBackoff*2,96e4),n}else{this.errorBackoff=3e4;let r=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5;return Math.max(0,r)}}schedule(e=!1){if(!this.isRunning)return;let n=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},n)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}};var Ne=class{constructor(e,n){this.createdAt=e,this.lastLoginAt=n,this._initializeTime()}_initializeTime(){this.lastSignInTime=Se(this.lastLoginAt),this.creationTime=Se(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};async function ot(t){let e=t.auth,n=await t.getIdToken(),r=await Pe(t,st(e,{idToken:n}));p(r?.users.length,e,"internal-error");let i=r.users[0];t._notifyReloadListener(i);let s=i.providerUserInfo?.length?ii(i.providerUserInfo):[],o=No(t.providerData,s),a=t.isAnonymous,u=!(t.email&&i.passwordHash)&&!o?.length,c=a?u:!1,d={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:o,metadata:new Ne(i.createdAt,i.lastLoginAt),isAnonymous:c};Object.assign(t,d)}async function ri(t){let e=j(t);await ot(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}function No(t,e){return[...t.filter(r=>!e.some(i=>i.providerId===r.providerId)),...e]}function ii(t){return t.map(({providerId:e,...n})=>({providerId:e,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}))}async function Oo(t,e){let n=await Zr(t,{},async()=>{let r=ue({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:i,apiKey:s}=t.config,o=await ei(t,i,"/v1/token",`key=${s}`),a=await t._getAdditionalHeaders();a["Content-Type"]="application/x-www-form-urlencoded";let u={method:"POST",headers:a,body:r};return t.emulatorConfig&&we(t.emulatorConfig.host)&&(u.credentials="include"),rt.fetch()(o,u)});return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}async function Do(t,e){return k(t,"POST","/v2/accounts:revokeToken",A(t,e))}var ke=class t{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){p(e.idToken,"internal-error"),p(typeof e.idToken<"u","internal-error"),p(typeof e.refreshToken<"u","internal-error");let n="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):Lr(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,n)}updateFromIdToken(e){p(e.length!==0,"internal-error");let n=Lr(e);this.updateTokensAndExpiration(e,null,n)}async getToken(e,n=!1){return!n&&this.accessToken&&!this.isExpired?this.accessToken:(p(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null)}clearRefreshToken(){this.refreshToken=null}async refresh(e,n){let{accessToken:r,refreshToken:i,expiresIn:s}=await Oo(e,n);this.updateTokensAndExpiration(r,i,Number(s))}updateTokensAndExpiration(e,n,r){this.refreshToken=n||null,this.accessToken=e||null,this.expirationTime=Date.now()+r*1e3}static fromJSON(e,n){let{refreshToken:r,accessToken:i,expirationTime:s}=n,o=new t;return r&&(p(typeof r=="string","internal-error",{appName:e}),o.refreshToken=r),i&&(p(typeof i=="string","internal-error",{appName:e}),o.accessToken=i),s&&(p(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 t,this.toJSON())}_performRefresh(){return U("not implemented")}};function K(t,e){p(typeof t=="string"||typeof t>"u","internal-error",{appName:e})}var J=class t{constructor({uid:e,auth:n,stsTokenManager:r,...i}){this.providerId="firebase",this.proactiveRefresh=new mn(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new Ne(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){let n=await Pe(this,this.stsTokenManager.getToken(this.auth,e));return p(n,this.auth,"internal-error"),this.accessToken!==n&&(this.accessToken=n,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),n}getIdTokenResult(e){return ni(this,e)}reload(){return ri(this)}_assign(e){this!==e&&(p(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(n=>({...n})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let n=new t({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return n.metadata._copy(this.metadata),n}_onReload(e){p(!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,n=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),n&&await ot(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(N(this.auth.app))return Promise.reject(X(this.auth));let e=await this.getIdToken();return await Pe(this,Ro(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,n){let r=n.displayName??void 0,i=n.email??void 0,s=n.phoneNumber??void 0,o=n.photoURL??void 0,a=n.tenantId??void 0,u=n._redirectEventId??void 0,c=n.createdAt??void 0,d=n.lastLoginAt??void 0,{uid:l,emailVerified:h,isAnonymous:f,providerData:_,stsTokenManager:v}=n;p(l&&v,e,"internal-error");let I=ke.fromJSON(this.name,v);p(typeof l=="string",e,"internal-error"),K(r,e.name),K(i,e.name),p(typeof h=="boolean",e,"internal-error"),p(typeof f=="boolean",e,"internal-error"),K(s,e.name),K(o,e.name),K(a,e.name),K(u,e.name),K(c,e.name),K(d,e.name);let m=new t({uid:l,auth:e,email:i,emailVerified:h,displayName:r,isAnonymous:f,photoURL:o,phoneNumber:s,tenantId:a,stsTokenManager:I,createdAt:c,lastLoginAt:d});return _&&Array.isArray(_)&&(m.providerData=_.map(g=>({...g}))),u&&(m._redirectEventId=u),m}static async _fromIdTokenResponse(e,n,r=!1){let i=new ke;i.updateFromServerResponse(n);let s=new t({uid:n.localId,auth:e,stsTokenManager:i,isAnonymous:r});return await ot(s),s}static async _fromGetAccountInfoResponse(e,n,r){let i=n.users[0];p(i.localId!==void 0,"internal-error");let s=i.providerUserInfo!==void 0?ii(i.providerUserInfo):[],o=!(i.email&&i.passwordHash)&&!s?.length,a=new ke;a.updateFromIdToken(r);let u=new t({uid:i.localId,auth:e,stsTokenManager:a,isAnonymous:o}),c={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:s,metadata:new Ne(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash)&&!s?.length};return Object.assign(u,c),u}};var Mr=new Map;function W(t){B(t instanceof Function,"Expected a class definition");let e=Mr.get(t);return e?(B(e instanceof t,"Instance stored in cache mismatched with class"),e):(e=new t,Mr.set(t,e),e)}var at=class{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,n){this.storage[e]=n}async _get(e){let n=this.storage[e];return n===void 0?null:n}async _remove(e){delete this.storage[e]}_addListener(e,n){}_removeListener(e,n){}};at.type="NONE";var gn=at;function Qe(t,e,n){return`firebase:${t}:${e}:${n}`}var ct=class t{constructor(e,n,r){this.persistence=e,this.auth=n,this.userKey=r;let{config:i,name:s}=this.auth;this.fullUserKey=Qe(this.userKey,i.apiKey,s),this.fullPersistenceKey=Qe("persistence",i.apiKey,s),this.boundEventHandler=n._onStorageEvent.bind(n),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 n=await st(this.auth,{idToken:e}).catch(()=>{});return n?J._fromGetAccountInfoResponse(this.auth,n,e):null}return J._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 n=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,n)return this.setCurrentUser(n)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,n,r="authUser"){if(!n.length)return new t(W(gn),e,r);let i=(await Promise.all(n.map(async c=>{if(await c._isAvailable())return c}))).filter(c=>c),s=i[0]||W(gn),o=Qe(r,e.config.apiKey,e.name),a=null;for(let c of n)try{let d=await c._get(o);if(d){let l;if(typeof d=="string"){let h=await st(e,{idToken:d}).catch(()=>{});if(!h)break;l=await J._fromGetAccountInfoResponse(e,h,d)}else l=J._fromJSON(e,d);c!==s&&(a=l),s=c;break}}catch{}let u=i.filter(c=>c._shouldAllowMigration);return!s._shouldAllowMigration||!u.length?new t(s,e,r):(s=u[0],a&&await s._set(o,a.toJSON()),await Promise.all(n.map(async c=>{if(c!==s)try{await c._remove(o)}catch{}})),new t(s,e,r))}};function xr(t){let e=t.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(ci(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(si(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(li(e))return"Blackberry";if(di(e))return"Webos";if(oi(e))return"Safari";if((e.includes("chrome/")||ai(e))&&!e.includes("edge/"))return"Chrome";if(ui(e))return"Android";{let n=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,r=t.match(n);if(r?.length===2)return r[1]}return"Other"}function si(t=S()){return/firefox\//i.test(t)}function oi(t=S()){let e=t.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function ai(t=S()){return/crios\//i.test(t)}function ci(t=S()){return/iemobile/i.test(t)}function ui(t=S()){return/android/i.test(t)}function li(t=S()){return/blackberry/i.test(t)}function di(t=S()){return/webos/i.test(t)}function xn(t=S()){return/iphone|ipad|ipod/i.test(t)||/macintosh/i.test(t)&&/mobile/i.test(t)}function Lo(t=S()){return xn(t)&&!!window.navigator?.standalone}function Mo(){return hr()&&document.documentMode===10}function hi(t=S()){return xn(t)||ui(t)||di(t)||li(t)||/windows phone/i.test(t)||ci(t)}function fi(t,e=[]){let n;switch(t){case"Browser":n=xr(S());break;case"Worker":n=`${xr(S())}-${t}`;break;default:n=t}let r=e.length?e.join(","):"FirebaseCore-web";return`${n}/JsCore/${pe}/${r}`}var In=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,n){let r=s=>new Promise((o,a)=>{try{let u=e(s);o(u)}catch(u){a(u)}});r.onAbort=n,this.queue.push(r);let i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;let n=[];try{for(let r of this.queue)await r(e),r.onAbort&&n.push(r.onAbort)}catch(r){n.reverse();for(let i of n)try{i()}catch{}throw this.auth._errorFactory.create("login-blocked",{originalMessage:r?.message})}}};async function xo(t,e={}){return k(t,"GET","/v2/passwordPolicy",A(t,e))}var Uo=6,yn=class{constructor(e){let n=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=n.minPasswordLength??Uo,n.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=n.maxPasswordLength),n.containsLowercaseCharacter!==void 0&&(this.customStrengthOptions.containsLowercaseLetter=n.containsLowercaseCharacter),n.containsUppercaseCharacter!==void 0&&(this.customStrengthOptions.containsUppercaseLetter=n.containsUppercaseCharacter),n.containsNumericCharacter!==void 0&&(this.customStrengthOptions.containsNumericCharacter=n.containsNumericCharacter),n.containsNonAlphanumericCharacter!==void 0&&(this.customStrengthOptions.containsNonAlphanumericCharacter=n.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 n={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,n),this.validatePasswordCharacterOptions(e,n),n.isValid&&(n.isValid=n.meetsMinPasswordLength??!0),n.isValid&&(n.isValid=n.meetsMaxPasswordLength??!0),n.isValid&&(n.isValid=n.containsLowercaseLetter??!0),n.isValid&&(n.isValid=n.containsUppercaseLetter??!0),n.isValid&&(n.isValid=n.containsNumericCharacter??!0),n.isValid&&(n.isValid=n.containsNonAlphanumericCharacter??!0),n}validatePasswordLengthOptions(e,n){let r=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;r&&(n.meetsMinPasswordLength=e.length>=r),i&&(n.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,n){this.updatePasswordCharacterOptionsStatuses(n,!1,!1,!1,!1);let r;for(let i=0;i<e.length;i++)r=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(n,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,n,r,i,s){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=n)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=s))}};var En=class{constructor(e,n,r,i){this.app=e,this.heartbeatServiceProvider=n,this.appCheckServiceProvider=r,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new ut(this),this.idTokenSubscription=new ut(this),this.beforeStateQueue=new In(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=Qr,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion,this._persistenceManagerAvailable=new Promise(s=>this._resolvePersistenceManagerAvailable=s)}_initializeWithPersistence(e,n){return n&&(this._popupRedirectResolver=W(n)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await ct.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch{}await this.initializeCurrentUser(n),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 n=await st(this,{idToken:e}),r=await J._fromGetAccountInfoResponse(this,n,e);await this.directlySetCurrentUser(r)}catch(n){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",n),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(N(this.app)){let s=this.app.settings.authIdToken;return s?new Promise(o=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(s).then(o,o))}):this.directlySetCurrentUser(null)}let n=await this.assertedPersistence.getCurrentUser(),r=n,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let s=this.redirectUser?._redirectEventId,o=r?._redirectEventId,a=await this.tryRedirectSignIn(e);(!s||s===o)&&a?.user&&(r=a.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(r)}catch(s){r=n,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return p(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)}async tryRedirectSignIn(e){let n=null;try{n=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch{await this._setRedirectUser(null)}return n}async reloadAndSetCurrentUserOrClear(e){try{await ot(e)}catch(n){if(n?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=To()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(N(this.app))return Promise.reject(X(this));let n=e?j(e):null;return n&&p(n.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(n&&n._clone(this))}async _updateCurrentUser(e,n=!1){if(!this._deleted)return e&&p(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),n||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return N(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 N(this.app)?Promise.reject(X(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(W(e))})}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();let n=this._getPasswordPolicyInternal();return n.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):n.validatePassword(e)}_getPasswordPolicyInternal(){return this.tenantId===null?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){let e=await xo(this),n=new yn(e);this.tenantId===null?this._projectPasswordPolicy=n:this._tenantPasswordPolicies[this.tenantId]=n}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new V("auth","Firebase",e())}onAuthStateChanged(e,n,r){return this.registerStateListener(this.authStateSubscription,e,n,r)}beforeAuthStateChanged(e,n){return this.beforeStateQueue.pushCallback(e,n)}onIdTokenChanged(e,n,r){return this.registerStateListener(this.idTokenSubscription,e,n,r)}authStateReady(){return new Promise((e,n)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},n)}})}async revokeAccessToken(e){if(this.currentUser){let n=await this.currentUser.getIdToken(),r={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:n};this.tenantId!=null&&(r.tenantId=this.tenantId),await Do(this,r)}}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,n){let r=await this.getOrInitRedirectPersistenceManager(n);return e===null?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let n=e&&W(e)||this._popupRedirectResolver;p(n,this,"argument-error"),this.redirectPersistenceManager=await ct.create(this,[W(n._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,n,r,i){if(this._deleted)return()=>{};let s=typeof n=="function"?n:n.next.bind(n),o=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(p(a,this,"internal-error"),a.then(()=>{o||s(this.currentUser)}),typeof n=="function"){let u=e.addObserver(n,r,i);return()=>{o=!0,u()}}else{let u=e.addObserver(n);return()=>{o=!0,u()}}}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 p(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=fi(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 n=await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();n&&(e["X-Firebase-Client"]=n);let r=await this._getAppCheckToken();return r&&(e["X-Firebase-AppCheck"]=r),e}async _getAppCheckToken(){if(N(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&Eo(`Error while retrieving App Check token: ${e.error}`),e?.token}};function se(t){return j(t)}var ut=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=mr(n=>this.observer=n)}get next(){return p(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var kt={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Fo(t){kt=t}function pi(t){return kt.loadJS(t)}function Vo(){return kt.recaptchaEnterpriseScript}function Ho(){return kt.gapiScript}function _i(t){return`__${t}${Math.floor(Math.random()*1e6)}`}var vn=class{constructor(){this.enterprise=new wn}ready(e){e()}execute(e,n){return Promise.resolve("token")}render(e,n){return""}},wn=class{ready(e){e()}execute(e,n){return Promise.resolve("token")}render(e,n){return""}};var Wo="recaptcha-enterprise",Ce="NO_RECAPTCHA",lt=class{constructor(e){this.type=Wo,this.auth=se(e)}async verify(e="verify",n=!1){async function r(s){if(!n){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)=>{ti(s,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(u=>{if(u.recaptchaKey===void 0)a(new Error("recaptcha Enterprise site key undefined"));else{let c=new it(u);return s.tenantId==null?s._agentRecaptchaConfig=c:s._tenantRecaptchaConfigs[s.tenantId]=c,o(c.siteKey)}}).catch(u=>{a(u)})})}function i(s,o,a){let u=window.grecaptcha;Dr(u)?u.enterprise.ready(()=>{u.enterprise.execute(s,{action:e}).then(c=>{o(c)}).catch(()=>{o(Ce)})}):a(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new vn().execute("siteKey",{action:"verify"}):new Promise((s,o)=>{r(this.auth).then(a=>{if(!n&&Dr(window.grecaptcha))i(a,s,o);else{if(typeof window>"u"){o(new Error("RecaptchaVerifier is only supported in browser"));return}let u=Vo();u.length!==0&&(u+=a),pi(u).then(()=>{i(a,s,o)}).catch(c=>{o(c)})}}).catch(a=>{o(a)})})}};async function Te(t,e,n,r=!1,i=!1){let s=new lt(t),o;if(i)o=Ce;else try{o=await s.verify(n)}catch{o=await s.verify(n,!0)}let a={...e};if(n==="mfaSmsEnrollment"||n==="mfaSmsSignIn"){if("phoneEnrollmentInfo"in a){let u=a.phoneEnrollmentInfo.phoneNumber,c=a.phoneEnrollmentInfo.recaptchaToken;Object.assign(a,{phoneEnrollmentInfo:{phoneNumber:u,recaptchaToken:c,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in a){let u=a.phoneSignInInfo.recaptchaToken;Object.assign(a,{phoneSignInInfo:{recaptchaToken:u,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return a}return r?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 Re(t,e,n,r,i){if(i==="EMAIL_PASSWORD_PROVIDER")if(t._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){let s=await Te(t,e,n,n==="getOobCode");return r(t,s)}else return r(t,e).catch(async s=>{if(s.code==="auth/missing-recaptcha-token"){console.log(`${n} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let o=await Te(t,e,n,n==="getOobCode");return r(t,o)}else return Promise.reject(s)});else if(i==="PHONE_PROVIDER")if(t._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let s=await Te(t,e,n);return r(t,s).catch(async o=>{if(t._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 ${n} flow.`);let a=await Te(t,e,n,!1,!0);return r(t,a)}return Promise.reject(o)})}else{let s=await Te(t,e,n,!1,!0);return r(t,s)}else return Promise.reject(i+" provider is not supported.")}async function Bo(t){let e=se(t),n=await ti(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),r=new it(n);e.tenantId==null?e._agentRecaptchaConfig=r:e._tenantRecaptchaConfigs[e.tenantId]=r,r.isAnyProviderEnabled()&&new lt(e).verify()}function mi(t,e){let n=an(t,"auth");if(n.isInitialized()){let i=n.getImmediate(),s=n.getOptions();if(z(s,e??{}))return i;R(i,"already-initialized")}return n.initialize({options:e})}function $o(t,e){let n=e?.persistence||[],r=(Array.isArray(n)?n:[n]).map(W);e?.errorMap&&t._updateErrorMap(e.errorMap),t._initializeWithPersistence(r,e?.popupRedirectResolver)}function gi(t,e,n){let r=se(t);p(/^https?:\/\//.test(e),r,"invalid-emulator-scheme");let i=!!n?.disableWarnings,s=Ii(e),{host:o,port:a}=zo(e),u=a===null?"":`:${a}`,c={url:`${s}//${o}${u}/`},d=Object.freeze({host:o,port:a,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});if(!r._canInitEmulator){p(r.config.emulator&&r.emulatorConfig,r,"emulator-config-failed"),p(z(c,r.config.emulator)&&z(d,r.emulatorConfig),r,"emulator-config-failed");return}r.config.emulator=c,r.emulatorConfig=d,r.settings.appVerificationDisabledForTesting=!0,we(o)?(or(`${s}//${o}${u}`),ar("Auth",!0)):i||jo()}function Ii(t){let e=t.indexOf(":");return e<0?"":t.substr(0,e+1)}function zo(t){let e=Ii(t),n=/(\/\/)?([^?#/]+)/.exec(t.substr(e.length));if(!n)return{host:"",port:null};let r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){let s=i[1];return{host:s,port:Ur(r.substr(s.length+1))}}else{let[s,o]=r.split(":");return{host:s,port:Ur(o)}}}function Ur(t){if(!t)return null;let e=Number(t);return isNaN(e)?null:e}function jo(){function t(){let e=document.createElement("p"),n=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",n.position="fixed",n.width="100%",n.backgroundColor="#ffffff",n.border=".1em solid #000000",n.color="#b50000",n.bottom="0px",n.left="0px",n.margin="0px",n.zIndex="10000",n.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",t):t())}var Z=class{constructor(e,n){this.providerId=e,this.signInMethod=n}toJSON(){return U("not implemented")}_getIdTokenResponse(e){return U("not implemented")}_linkToIdToken(e,n){return U("not implemented")}_getReauthenticationResolver(e){return U("not implemented")}};async function qo(t,e){return k(t,"POST","/v1/accounts:signUp",e)}async function Go(t,e){return ie(t,"POST","/v1/accounts:signInWithPassword",A(t,e))}async function Ko(t,e){return ie(t,"POST","/v1/accounts:signInWithEmailLink",A(t,e))}async function Jo(t,e){return ie(t,"POST","/v1/accounts:signInWithEmailLink",A(t,e))}var Oe=class t extends Z{constructor(e,n,r,i=null){super("password",r),this._email=e,this._password=n,this._tenantId=i}static _fromEmailAndPassword(e,n){return new t(e,n,"password")}static _fromEmailAndCode(e,n,r=null){return new t(e,n,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let n=typeof e=="string"?JSON.parse(e):e;if(n?.email&&n?.password){if(n.signInMethod==="password")return this._fromEmailAndPassword(n.email,n.password);if(n.signInMethod==="emailLink")return this._fromEmailAndCode(n.email,n.password,n.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":let n={returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return Re(e,n,"signInWithPassword",Go,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Ko(e,{email:this._email,oobCode:this._password});default:R(e,"internal-error")}}async _linkToIdToken(e,n){switch(this.signInMethod){case"password":let r={idToken:n,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return Re(e,r,"signUpPassword",qo,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Jo(e,{idToken:n,email:this._email,oobCode:this._password});default:R(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}};async function _e(t,e){return ie(t,"POST","/v1/accounts:signInWithIdp",A(t,e))}var Yo="http://localhost",ee=class t extends Z{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let n=new t(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(n.idToken=e.idToken),e.accessToken&&(n.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(n.nonce=e.nonce),e.pendingToken&&(n.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(n.accessToken=e.oauthToken,n.secret=e.oauthTokenSecret):R("argument-error"),n}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 n=typeof e=="string"?JSON.parse(e):e,{providerId:r,signInMethod:i,...s}=n;if(!r||!i)return null;let o=new t(r,i);return o.idToken=s.idToken||void 0,o.accessToken=s.accessToken||void 0,o.secret=s.secret,o.nonce=s.nonce,o.pendingToken=s.pendingToken||null,o}_getIdTokenResponse(e){let n=this.buildRequest();return _e(e,n)}_linkToIdToken(e,n){let r=this.buildRequest();return r.idToken=n,_e(e,r)}_getReauthenticationResolver(e){let n=this.buildRequest();return n.autoCreate=!1,_e(e,n)}buildRequest(){let e={requestUri:Yo,returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{let n={};this.idToken&&(n.id_token=this.idToken),this.accessToken&&(n.access_token=this.accessToken),this.secret&&(n.oauth_token_secret=this.secret),n.providerId=this.providerId,this.nonce&&!this.pendingToken&&(n.nonce=this.nonce),e.postBody=ue(n)}return e}};async function Fr(t,e){return k(t,"POST","/v1/accounts:sendVerificationCode",A(t,e))}async function Xo(t,e){return ie(t,"POST","/v1/accounts:signInWithPhoneNumber",A(t,e))}async function Qo(t,e){let n=await ie(t,"POST","/v1/accounts:signInWithPhoneNumber",A(t,e));if(n.temporaryProof)throw Ae(t,"account-exists-with-different-credential",n);return n}var Zo={USER_NOT_FOUND:"user-not-found"};async function ea(t,e){let n={...e,operation:"REAUTH"};return ie(t,"POST","/v1/accounts:signInWithPhoneNumber",A(t,n),Zo)}var De=class t extends Z{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,n){return new t({verificationId:e,verificationCode:n})}static _fromTokenResponse(e,n){return new t({phoneNumber:e,temporaryProof:n})}_getIdTokenResponse(e){return Xo(e,this._makeVerificationRequest())}_linkToIdToken(e,n){return Qo(e,{idToken:n,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return ea(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:n,verificationId:r,verificationCode:i}=this.params;return e&&n?{temporaryProof:e,phoneNumber:n}:{sessionInfo:r,code:i}}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:n,verificationCode:r,phoneNumber:i,temporaryProof:s}=e;return!r&&!n&&!i&&!s?null:new t({verificationId:n,verificationCode:r,phoneNumber:i,temporaryProof:s})}};function ta(t){switch(t){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 na(t){let e=le(de(t)).link,n=e?le(de(e)).deep_link_id:null,r=le(de(t)).deep_link_id;return(r?le(de(r)).link:null)||r||n||e||t}var dt=class t{constructor(e){let n=le(de(e)),r=n.apiKey??null,i=n.oobCode??null,s=ta(n.mode??null);p(r&&i&&s,"argument-error"),this.apiKey=r,this.operation=s,this.code=i,this.continueUrl=n.continueUrl??null,this.languageCode=n.lang??null,this.tenantId=n.tenantId??null}static parseLink(e){let n=na(e);try{return new t(n)}catch{return null}}};var me=class t{constructor(){this.providerId=t.PROVIDER_ID}static credential(e,n){return Oe._fromEmailAndPassword(e,n)}static credentialWithLink(e,n){let r=dt.parseLink(n);return p(r,"argument-error"),Oe._fromEmailAndCode(e,r.code,r.tenantId)}};me.PROVIDER_ID="password";me.EMAIL_PASSWORD_SIGN_IN_METHOD="password";me.EMAIL_LINK_SIGN_IN_METHOD="emailLink";var Le=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 te=class extends Le{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}};var Me=class t extends te{constructor(){super("facebook.com")}static credential(e){return ee._fromParams({providerId:t.PROVIDER_ID,signInMethod:t.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return t.credentialFromTaggedObject(e)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return t.credential(e.oauthAccessToken)}catch{return null}}};Me.FACEBOOK_SIGN_IN_METHOD="facebook.com";Me.PROVIDER_ID="facebook.com";var ne=class t extends te{constructor(){super("google.com"),this.addScope("profile")}static credential(e,n){return ee._fromParams({providerId:t.PROVIDER_ID,signInMethod:t.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:n})}static credentialFromResult(e){return t.credentialFromTaggedObject(e)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:n,oauthAccessToken:r}=e;if(!n&&!r)return null;try{return t.credential(n,r)}catch{return null}}};ne.GOOGLE_SIGN_IN_METHOD="google.com";ne.PROVIDER_ID="google.com";var xe=class t extends te{constructor(){super("github.com")}static credential(e){return ee._fromParams({providerId:t.PROVIDER_ID,signInMethod:t.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return t.credentialFromTaggedObject(e)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return t.credential(e.oauthAccessToken)}catch{return null}}};xe.GITHUB_SIGN_IN_METHOD="github.com";xe.PROVIDER_ID="github.com";var Ue=class t extends te{constructor(){super("twitter.com")}static credential(e,n){return ee._fromParams({providerId:t.PROVIDER_ID,signInMethod:t.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:n})}static credentialFromResult(e){return t.credentialFromTaggedObject(e)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthAccessToken:n,oauthTokenSecret:r}=e;if(!n||!r)return null;try{return t.credential(n,r)}catch{return null}}};Ue.TWITTER_SIGN_IN_METHOD="twitter.com";Ue.PROVIDER_ID="twitter.com";var Fe=class t{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,n,r,i=!1){let s=await J._fromIdTokenResponse(e,r,i),o=Vr(r);return new t({user:s,providerId:o,_tokenResponse:r,operationType:n})}static async _forOperation(e,n,r){await e._updateTokensIfNecessary(r,!0);let i=Vr(r);return new t({user:e,providerId:i,_tokenResponse:r,operationType:n})}};function Vr(t){return t.providerId?t.providerId:"phoneNumber"in t?"phone":null}var bn=class t extends P{constructor(e,n,r,i){super(n.code,n.message),this.operationType=r,this.user=i,Object.setPrototypeOf(this,t.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:n.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,n,r,i){return new t(e,n,r,i)}};function yi(t,e,n,r){return(e==="reauthenticate"?n._getReauthenticationResolver(t):n._getIdTokenResponse(t)).catch(s=>{throw s.code==="auth/multi-factor-auth-required"?bn._fromErrorAndOperation(t,s,e,r):s})}async function ra(t,e,n=!1){let r=await Pe(t,e._linkToIdToken(t.auth,await t.getIdToken()),n);return Fe._forOperation(t,"link",r)}async function ia(t,e,n=!1){let{auth:r}=t;if(N(r.app))return Promise.reject(X(r));let i="reauthenticate";try{let s=await Pe(t,yi(r,i,e,t),n);p(s.idToken,r,"internal-error");let o=Mn(s.idToken);p(o,r,"internal-error");let{sub:a}=o;return p(t.uid===a,r,"user-mismatch"),Fe._forOperation(t,i,s)}catch(s){throw s?.code==="auth/user-not-found"&&R(r,"user-mismatch"),s}}async function sa(t,e,n=!1){if(N(t.app))return Promise.reject(X(t));let r="signIn",i=await yi(t,r,e),s=await Fe._fromIdTokenResponse(t,r,i);return n||await t._updateCurrentUser(s.user),s}function Ei(t,e,n,r){return j(t).onIdTokenChanged(e,n,r)}function vi(t,e,n){return j(t).beforeAuthStateChanged(e,n)}function Hr(t,e){return k(t,"POST","/v2/accounts/mfaEnrollment:start",A(t,e))}function oa(t,e){return k(t,"POST","/v2/accounts/mfaEnrollment:finalize",A(t,e))}function aa(t,e){return k(t,"POST","/v2/accounts/mfaEnrollment:start",A(t,e))}function ca(t,e){return k(t,"POST","/v2/accounts/mfaEnrollment:finalize",A(t,e))}var ht="__sak";var ft=class{constructor(e,n){this.storageRetriever=e,this.type=n}_isAvailable(){try{return this.storage?(this.storage.setItem(ht,"1"),this.storage.removeItem(ht),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,n){return this.storage.setItem(e,JSON.stringify(n)),Promise.resolve()}_get(e){let n=this.storage.getItem(e);return Promise.resolve(n?JSON.parse(n):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}};var ua=1e3,la=10,pt=class extends ft{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,n)=>this.onStorageEvent(e,n),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=hi(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(let n of Object.keys(this.listeners)){let r=this.storage.getItem(n),i=this.localCache[n];r!==i&&e(n,i,r)}}onStorageEvent(e,n=!1){if(!e.key){this.forAllChangedKeys((o,a,u)=>{this.notifyListeners(o,u)});return}let r=e.key;n?this.detachListener():this.stopPolling();let i=()=>{let o=this.storage.getItem(r);!n&&this.localCache[r]===o||this.notifyListeners(r,o)},s=this.storage.getItem(r);Mo()&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,la):i()}notifyListeners(e,n){this.localCache[e]=n;let r=this.listeners[e];if(r)for(let i of Array.from(r))i(n&&JSON.parse(n))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,n,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:n,newValue:r}),!0)})},ua)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,n){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(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),this.listeners[e].size===0&&delete this.listeners[e]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}async _set(e,n){await super._set(e,n),this.localCache[e]=JSON.stringify(n)}async _get(e){let n=await super._get(e);return this.localCache[e]=JSON.stringify(n),n}async _remove(e){await super._remove(e),delete this.localCache[e]}};pt.type="LOCAL";var wi=pt;var da=1e3;function ln(t){let e=t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),n=RegExp(`${e}=([^;]+)`);return document.cookie.match(n)?.[1]??null}function dn(t){return`${window.location.protocol==="http:"?"__dev_":"__HOST-"}FIREBASE_${t.split(":")[3]}`}var Tn=class{constructor(){this.type="COOKIE",this.listenerUnsubscribes=new Map}_getFinalTarget(e){if(typeof window===void 0)return e;let n=new URL(`${window.location.origin}/__cookies__`);return n.searchParams.set("finalTarget",e),n}async _isAvailable(){return typeof isSecureContext=="boolean"&&!isSecureContext||typeof navigator>"u"||typeof document>"u"?!1:navigator.cookieEnabled??!0}async _set(e,n){}async _get(e){if(!this._isAvailable())return null;let n=dn(e);return window.cookieStore?(await window.cookieStore.get(n))?.value:ln(n)}async _remove(e){if(!this._isAvailable()||!await this._get(e))return;let r=dn(e);document.cookie=`${r}=;Max-Age=34560000;Partitioned;Secure;SameSite=Strict;Path=/;Priority=High`,await fetch("/__cookies__",{method:"DELETE"}).catch(()=>{})}_addListener(e,n){if(!this._isAvailable())return;let r=dn(e);if(window.cookieStore){let a=(c=>{let d=c.changed.find(h=>h.name===r);d&&n(d.value),c.deleted.find(h=>h.name===r)&&n(null)}),u=()=>window.cookieStore.removeEventListener("change",a);return this.listenerUnsubscribes.set(n,u),window.cookieStore.addEventListener("change",a)}let i=ln(r),s=setInterval(()=>{let a=ln(r);a!==i&&(n(a),i=a)},da),o=()=>clearInterval(s);this.listenerUnsubscribes.set(n,o)}_removeListener(e,n){let r=this.listenerUnsubscribes.get(n);r&&(r(),this.listenerUnsubscribes.delete(n))}};Tn.type="COOKIE";var _t=class extends ft{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,n){}_removeListener(e,n){}};_t.type="SESSION";var Un=_t;function ha(t){return Promise.all(t.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(n){return{fulfilled:!1,reason:n}}}))}var mt=class t{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){let n=this.receivers.find(i=>i.isListeningto(e));if(n)return n;let r=new t(e);return this.receivers.push(r),r}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let n=e,{eventId:r,eventType:i,data:s}=n.data,o=this.handlersMap[i];if(!o?.size)return;n.ports[0].postMessage({status:"ack",eventId:r,eventType:i});let a=Array.from(o).map(async c=>c(n.origin,s)),u=await ha(a);n.ports[0].postMessage({status:"done",eventId:r,eventType:i,response:u})}_subscribe(e,n){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(n)}_unsubscribe(e,n){this.handlersMap[e]&&n&&this.handlersMap[e].delete(n),(!n||this.handlersMap[e].size===0)&&delete this.handlersMap[e],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}};mt.receivers=[];function Fn(t="",e=10){let n="";for(let r=0;r<e;r++)n+=Math.floor(Math.random()*10);return t+n}var An=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,n,r=50){let i=typeof MessageChannel<"u"?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let s,o;return new Promise((a,u)=>{let c=Fn("",20);i.port1.start();let d=setTimeout(()=>{u(new Error("unsupported_event"))},r);o={messageChannel:i,onMessage(l){let h=l;if(h.data.eventId===c)switch(h.data.status){case"ack":clearTimeout(d),s=setTimeout(()=>{u(new Error("timeout"))},3e3);break;case"done":clearTimeout(s),a(h.data.response);break;default:clearTimeout(d),clearTimeout(s),u(new Error("invalid_response"));break}}},this.handlers.add(o),i.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:c,data:n},[i.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})}};function F(){return window}function fa(t){F().location.href=t}function bi(){return typeof F().WorkerGlobalScope<"u"&&typeof F().importScripts=="function"}async function pa(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}function _a(){return navigator?.serviceWorker?.controller||null}function ma(){return bi()?self:null}var Ti="firebaseLocalStorageDb",ga=1,gt="firebaseLocalStorage",Ai="fbase_key",re=class{constructor(e){this.request=e}toPromise(){return new Promise((e,n)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{n(this.request.error)})})}};function Ct(t,e){return t.transaction([gt],e?"readwrite":"readonly").objectStore(gt)}function Ia(){let t=indexedDB.deleteDatabase(Ti);return new re(t).toPromise()}function Sn(){let t=indexedDB.open(Ti,ga);return new Promise((e,n)=>{t.addEventListener("error",()=>{n(t.error)}),t.addEventListener("upgradeneeded",()=>{let r=t.result;try{r.createObjectStore(gt,{keyPath:Ai})}catch(i){n(i)}}),t.addEventListener("success",async()=>{let r=t.result;r.objectStoreNames.contains(gt)?e(r):(r.close(),await Ia(),e(await Sn()))})})}async function Wr(t,e,n){let r=Ct(t,!0).put({[Ai]:e,value:n});return new re(r).toPromise()}async function ya(t,e){let n=Ct(t,!1).get(e),r=await new re(n).toPromise();return r===void 0?null:r.value}function Br(t,e){let n=Ct(t,!0).delete(e);return new re(n).toPromise()}var Ea=800,va=3,It=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 Sn(),this.db)}async _withRetries(e){let n=0;for(;;)try{let r=await this._openDb();return await e(r)}catch(r){if(n++>va)throw r;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return bi()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=mt._getInstance(ma()),this.receiver._subscribe("keyChanged",async(e,n)=>({keyProcessed:(await this._poll()).includes(n.key)})),this.receiver._subscribe("ping",async(e,n)=>["keyChanged"])}async initializeSender(){if(this.activeServiceWorker=await pa(),!this.activeServiceWorker)return;this.sender=new An(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||_a()!==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 Sn();return await Wr(e,ht,"1"),await Br(e,ht),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,n){return this._withPendingWrite(async()=>(await this._withRetries(r=>Wr(r,e,n)),this.localCache[e]=n,this.notifyServiceWorker(e)))}async _get(e){let n=await this._withRetries(r=>ya(r,e));return this.localCache[e]=n,n}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(n=>Br(n,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){let e=await this._withRetries(i=>{let s=Ct(i,!1).getAll();return new re(s).toPromise()});if(!e)return[];if(this.pendingWrites!==0)return[];let n=[],r=new Set;if(e.length!==0)for(let{fbase_key:i,value:s}of e)r.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),n.push(i));for(let i of Object.keys(this.localCache))this.localCache[i]&&!r.has(i)&&(this.notifyListeners(i,null),n.push(i));return n}notifyListeners(e,n){this.localCache[e]=n;let r=this.listeners[e];if(r)for(let i of Array.from(r))i(n)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),Ea)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,n){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),this.listeners[e].size===0&&delete this.listeners[e]),Object.keys(this.listeners).length===0&&this.stopPolling()}};It.type="LOCAL";var Si=It;function $r(t,e){return k(t,"POST","/v2/accounts/mfaSignIn:start",A(t,e))}function wa(t,e){return k(t,"POST","/v2/accounts/mfaSignIn:finalize",A(t,e))}function ba(t,e){return k(t,"POST","/v2/accounts/mfaSignIn:finalize",A(t,e))}var ou=_i("rcb"),au=new Q(3e4,6e4);var Ze="recaptcha";async function Ta(t,e,n){if(!t._getRecaptchaConfig())try{await Bo(t)}catch{console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let r;if(typeof e=="string"?r={phoneNumber:e}:r=e,"session"in r){let i=r.session;if("phoneNumber"in r){p(i.type==="enroll",t,"internal-error");let s={idToken:i.credential,phoneEnrollmentInfo:{phoneNumber:r.phoneNumber,clientType:"CLIENT_TYPE_WEB"}};return(await Re(t,s,"mfaSmsEnrollment",async(c,d)=>{if(d.phoneEnrollmentInfo.captchaResponse===Ce){p(n?.type===Ze,c,"argument-error");let l=await hn(c,d,n);return Hr(c,l)}return Hr(c,d)},"PHONE_PROVIDER").catch(c=>Promise.reject(c))).phoneSessionInfo.sessionInfo}else{p(i.type==="signin",t,"internal-error");let s=r.multiFactorHint?.uid||r.multiFactorUid;p(s,t,"missing-multi-factor-info");let o={mfaPendingCredential:i.credential,mfaEnrollmentId:s,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}};return(await Re(t,o,"mfaSmsSignIn",async(d,l)=>{if(l.phoneSignInInfo.captchaResponse===Ce){p(n?.type===Ze,d,"argument-error");let h=await hn(d,l,n);return $r(d,h)}return $r(d,l)},"PHONE_PROVIDER").catch(d=>Promise.reject(d))).phoneResponseInfo.sessionInfo}}else{let i={phoneNumber:r.phoneNumber,clientType:"CLIENT_TYPE_WEB"};return(await Re(t,i,"sendVerificationCode",async(u,c)=>{if(c.captchaResponse===Ce){p(n?.type===Ze,u,"argument-error");let d=await hn(u,c,n);return Fr(u,d)}return Fr(u,c)},"PHONE_PROVIDER").catch(u=>Promise.reject(u))).sessionInfo}}finally{n?._reset()}}async function hn(t,e,n){p(n.type===Ze,t,"argument-error");let r=await n.verify();p(typeof r=="string",t,"argument-error");let i={...e};if("phoneEnrollmentInfo"in i){let s=i.phoneEnrollmentInfo.phoneNumber,o=i.phoneEnrollmentInfo.captchaResponse,a=i.phoneEnrollmentInfo.clientType,u=i.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(i,{phoneEnrollmentInfo:{phoneNumber:s,recaptchaToken:r,captchaResponse:o,clientType:a,recaptchaVersion:u}}),i}else if("phoneSignInInfo"in i){let s=i.phoneSignInInfo.captchaResponse,o=i.phoneSignInInfo.clientType,a=i.phoneSignInInfo.recaptchaVersion;return Object.assign(i,{phoneSignInInfo:{recaptchaToken:r,captchaResponse:s,clientType:o,recaptchaVersion:a}}),i}else return Object.assign(i,{recaptchaToken:r}),i}var Ve=class t{constructor(e){this.providerId=t.PROVIDER_ID,this.auth=se(e)}verifyPhoneNumber(e,n){return Ta(this.auth,e,j(n))}static credential(e,n){return De._fromVerification(e,n)}static credentialFromResult(e){let n=e;return t.credentialFromTaggedObject(n)}static credentialFromError(e){return t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{phoneNumber:n,temporaryProof:r}=e;return n&&r?De._fromTokenResponse(n,r):null}};Ve.PROVIDER_ID="phone";Ve.PHONE_SIGN_IN_METHOD="phone";function ki(t,e){return e?W(e):(p(t._popupRedirectResolver,t,"argument-error"),t._popupRedirectResolver)}var He=class extends Z{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return _e(e,this._buildIdpRequest())}_linkToIdToken(e,n){return _e(e,this._buildIdpRequest(n))}_getReauthenticationResolver(e){return _e(e,this._buildIdpRequest())}_buildIdpRequest(e){let n={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&&(n.idToken=e),n}};function Aa(t){return sa(t.auth,new He(t),t.bypassAuthState)}function Sa(t){let{auth:e,user:n}=t;return p(n,e,"internal-error"),ia(n,new He(t),t.bypassAuthState)}async function ka(t){let{auth:e,user:n}=t;return p(n,e,"internal-error"),ra(n,new He(t),t.bypassAuthState)}var yt=class{constructor(e,n,r,i,s=!1){this.auth=e,this.resolver=r,this.user=i,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(n)?n:[n]}execute(){return new Promise(async(e,n)=>{this.pendingPromise={resolve:e,reject:n};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(r){this.reject(r)}})}async onAuthEvent(e){let{urlResponse:n,sessionId:r,postBody:i,tenantId:s,error:o,type:a}=e;if(o){this.reject(o);return}let u={auth:this.auth,requestUri:n,sessionId:r,tenantId:s||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(u))}catch(c){this.reject(c)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Aa;case"linkViaPopup":case"linkViaRedirect":return ka;case"reauthViaPopup":case"reauthViaRedirect":return Sa;default:R(this.auth,"internal-error")}}resolve(e){B(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){B(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 Ca=new Q(2e3,1e4);async function Vn(t,e,n){if(N(t.app))return Promise.reject(O(t,"operation-not-supported-in-this-environment"));let r=se(t);vo(t,e,Le);let i=ki(r,n);return new Et(r,"signInViaPopup",e,i).executeNotNull()}var Et=class t extends yt{constructor(e,n,r,i,s){super(e,n,i,s),this.provider=r,this.authWindow=null,this.pollId=null,t.currentPopupAction&&t.currentPopupAction.cancel(),t.currentPopupAction=this}async executeNotNull(){let e=await this.execute();return p(e,this.auth,"internal-error"),e}async onExecution(){B(this.filter.length===1,"Popup operations only handle one event");let e=Fn();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(n=>{this.reject(n)}),this.resolver._isIframeWebStorageSupported(this.auth,n=>{n||this.reject(O(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(O(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,t.currentPopupAction=null}pollUserCancellation(){let e=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(O(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,Ca.get())};e()}};Et.currentPopupAction=null;var Ra="pendingRedirect",et=new Map,kn=class extends yt{constructor(e,n,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],n,void 0,r),this.eventId=null}async execute(){let e=et.get(this.auth._key());if(!e){try{let r=await Pa(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(r)}catch(n){e=()=>Promise.reject(n)}et.set(this.auth._key(),e)}return this.bypassAuthState||et.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 n=await this.auth._redirectUserForId(e.eventId);if(n)return this.user=n,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}};async function Pa(t,e){let n=Da(e),r=Oa(t);if(!await r._isAvailable())return!1;let i=await r._get(n)==="true";return await r._remove(n),i}function Na(t,e){et.set(t._key(),e)}function Oa(t){return W(t._redirectPersistence)}function Da(t){return Qe(Ra,t.config.apiKey,t.name)}async function La(t,e,n=!1){if(N(t.app))return Promise.reject(X(t));let r=se(t),i=ki(r,e),o=await new kn(r,i,n).execute();return o&&!n&&(delete o.user._redirectEventId,await r._persistUserIfCurrent(o.user),await r._setRedirectUser(null,e)),o}var Ma=600*1e3,Cn=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 n=!1;return this.consumers.forEach(r=>{this.isEventForConsumer(e,r)&&(n=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!xa(e)||(this.hasHandledPotentialRedirect=!0,n||(this.queuedRedirectEvent=e,n=!0)),n}sendToConsumer(e,n){if(e.error&&!Ci(e)){let r=e.error.code?.split("auth/")[1]||"internal-error";n.onError(O(this.auth,r))}else n.onAuthEvent(e)}isEventForConsumer(e,n){let r=n.eventId===null||!!e.eventId&&e.eventId===n.eventId;return n.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=Ma&&this.cachedEventUids.clear(),this.cachedEventUids.has(zr(e))}saveEventToCache(e){this.cachedEventUids.add(zr(e)),this.lastProcessedEventTime=Date.now()}};function zr(t){return[t.type,t.eventId,t.sessionId,t.tenantId].filter(e=>e).join("-")}function Ci({type:t,error:e}){return t==="unknown"&&e?.code==="auth/no-auth-event"}function xa(t){switch(t.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return Ci(t);default:return!1}}async function Ua(t,e={}){return k(t,"GET","/v1/projects",e)}var Fa=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Va=/^https?/;async function Ha(t){if(t.config.emulator)return;let{authorizedDomains:e}=await Ua(t);for(let n of e)try{if(Wa(n))return}catch{}R(t,"unauthorized-domain")}function Wa(t){let e=pn(),{protocol:n,hostname:r}=new URL(e);if(t.startsWith("chrome-extension://")){let o=new URL(t);return o.hostname===""&&r===""?n==="chrome-extension:"&&t.replace("chrome-extension://","")===e.replace("chrome-extension://",""):n==="chrome-extension:"&&o.hostname===r}if(!Va.test(n))return!1;if(Fa.test(t))return r===t;let i=t.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}var Ba=new Q(3e4,6e4);function jr(){let t=F().___jsl;if(t?.H){for(let e of Object.keys(t.H))if(t.H[e].r=t.H[e].r||[],t.H[e].L=t.H[e].L||[],t.H[e].r=[...t.H[e].L],t.CP)for(let n=0;n<t.CP.length;n++)t.CP[n]=null}}function $a(t){return new Promise((e,n)=>{function r(){jr(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{jr(),n(O(t,"network-request-failed"))},timeout:Ba.get()})}if(F().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else if(F().gapi?.load)r();else{let i=_i("iframefcb");return F()[i]=()=>{gapi.load?r():n(O(t,"network-request-failed"))},pi(`${Ho()}?onload=${i}`).catch(s=>n(s))}}).catch(e=>{throw tt=null,e})}var tt=null;function za(t){return tt=tt||$a(t),tt}var ja=new Q(5e3,15e3),qa="__/auth/iframe",Ga="emulator/auth/iframe",Ka={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Ja=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Ya(t){let e=t.config;p(e.authDomain,t,"auth-domain-config-required");let n=e.emulator?Ln(e,Ga):`https://${t.config.authDomain}/${qa}`,r={apiKey:e.apiKey,appName:t.name,v:pe},i=Ja.get(t.config.apiHost);i&&(r.eid=i);let s=t._getFrameworks();return s.length&&(r.fw=s.join(",")),`${n}?${ue(r).slice(1)}`}async function Xa(t){let e=await za(t),n=F().gapi;return p(n,t,"internal-error"),e.open({where:document.body,url:Ya(t),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Ka,dontclear:!0},r=>new Promise(async(i,s)=>{await r.restyle({setHideOnLeave:!1});let o=O(t,"network-request-failed"),a=F().setTimeout(()=>{s(o)},ja.get());function u(){F().clearTimeout(a),i(r)}r.ping(u).then(u,()=>{s(o)})}))}var Qa={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},Za=500,ec=600,tc="_blank",nc="http://localhost",vt=class{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch{}}};function rc(t,e,n,r=Za,i=ec){let s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-r)/2,0).toString(),a="",u={...Qa,width:r.toString(),height:i.toString(),top:s,left:o},c=S().toLowerCase();n&&(a=ai(c)?tc:n),si(c)&&(e=e||nc,u.scrollbars="yes");let d=Object.entries(u).reduce((h,[f,_])=>`${h}${f}=${_},`,"");if(Lo(c)&&a!=="_self")return ic(e||"",a),new vt(null);let l=window.open(e||"",a,d);p(l,t,"popup-blocked");try{l.focus()}catch{}return new vt(l)}function ic(t,e){let n=document.createElement("a");n.href=t,n.target=e;let r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}var sc="__/auth/handler",oc="emulator/auth/handler",ac=encodeURIComponent("fac");async function qr(t,e,n,r,i,s){p(t.config.authDomain,t,"auth-domain-config-required"),p(t.config.apiKey,t,"invalid-api-key");let o={apiKey:t.config.apiKey,appName:t.name,authType:n,redirectUrl:r,v:pe,eventId:i};if(e instanceof Le){e.setDefaultLanguage(t.languageCode),o.providerId=e.providerId||"",_r(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(let[d,l]of Object.entries(s||{}))o[d]=l}if(e instanceof te){let d=e.getScopes().filter(l=>l!=="");d.length>0&&(o.scopes=d.join(","))}t.tenantId&&(o.tid=t.tenantId);let a=o;for(let d of Object.keys(a))a[d]===void 0&&delete a[d];let u=await t._getAppCheckToken(),c=u?`#${ac}=${encodeURIComponent(u)}`:"";return`${cc(t)}?${ue(a).slice(1)}${c}`}function cc({config:t}){return t.emulator?Ln(t,oc):`https://${t.authDomain}/${sc}`}var fn="webStorageSupport",Rn=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Un,this._completeRedirectFn=La,this._overrideRedirectResult=Na}async _openPopup(e,n,r,i){B(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()");let s=await qr(e,n,r,pn(),i);return rc(e,s,Fn())}async _openRedirect(e,n,r,i){await this._originValidation(e);let s=await qr(e,n,r,pn(),i);return fa(s),new Promise(()=>{})}_initialize(e){let n=e._key();if(this.eventManagers[n]){let{manager:i,promise:s}=this.eventManagers[n];return i?Promise.resolve(i):(B(s,"If manager is not set, promise should be"),s)}let r=this.initAndGetManager(e);return this.eventManagers[n]={promise:r},r.catch(()=>{delete this.eventManagers[n]}),r}async initAndGetManager(e){let n=await Xa(e),r=new Cn(e);return n.register("authEvent",i=>(p(i?.authEvent,e,"invalid-auth-event"),{status:r.onEvent(i.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=n,r}_isIframeWebStorageSupported(e,n){this.iframes[e._key()].send(fn,{type:fn},i=>{let s=i?.[0]?.[fn];s!==void 0&&n(!!s),R(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let n=e._key();return this.originValidationPromises[n]||(this.originValidationPromises[n]=Ha(e)),this.originValidationPromises[n]}get _shouldInitProactively(){return hi()||oi()||xn()}},Ri=Rn,wt=class{constructor(e){this.factorId=e}_process(e,n,r){switch(n.type){case"enroll":return this._finalizeEnroll(e,n.credential,r);case"signin":return this._finalizeSignIn(e,n.credential);default:return U("unexpected MultiFactorSessionType")}}},Pn=class t extends wt{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new t(e)}_finalizeEnroll(e,n,r){return oa(e,{idToken:n,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()})}_finalizeSignIn(e,n){return wa(e,{mfaPendingCredential:n,phoneVerificationInfo:this.credential._makeVerificationRequest()})}},bt=class{constructor(){}static assertion(e){return Pn._fromCredential(e)}};bt.FACTOR_ID="phone";var Tt=class{static assertionForEnrollment(e,n){return At._fromSecret(e,n)}static assertionForSignIn(e,n){return At._fromEnrollmentId(e,n)}static async generateSecret(e){let n=e;p(typeof n.user?.auth<"u","internal-error");let r=await aa(n.user.auth,{idToken:n.credential,totpEnrollmentInfo:{}});return St._fromStartTotpMfaEnrollmentResponse(r,n.user.auth)}};Tt.FACTOR_ID="totp";var At=class t extends wt{constructor(e,n,r){super("totp"),this.otp=e,this.enrollmentId=n,this.secret=r}static _fromSecret(e,n){return new t(n,void 0,e)}static _fromEnrollmentId(e,n){return new t(n,e)}async _finalizeEnroll(e,n,r){return p(typeof this.secret<"u",e,"argument-error"),ca(e,{idToken:n,displayName:r,totpVerificationInfo:this.secret._makeTotpVerificationInfo(this.otp)})}async _finalizeSignIn(e,n){p(this.enrollmentId!==void 0&&this.otp!==void 0,e,"argument-error");let r={verificationCode:this.otp};return ba(e,{mfaPendingCredential:n,mfaEnrollmentId:this.enrollmentId,totpVerificationInfo:r})}},St=class t{constructor(e,n,r,i,s,o,a){this.sessionInfo=o,this.auth=a,this.secretKey=e,this.hashingAlgorithm=n,this.codeLength=r,this.codeIntervalSeconds=i,this.enrollmentCompletionDeadline=s}static _fromStartTotpMfaEnrollmentResponse(e,n){return new t(e.totpSessionInfo.sharedSecretKey,e.totpSessionInfo.hashingAlgorithm,e.totpSessionInfo.verificationCodeLength,e.totpSessionInfo.periodSec,new Date(e.totpSessionInfo.finalizeEnrollmentTime).toUTCString(),e.totpSessionInfo.sessionInfo,n)}_makeTotpVerificationInfo(e){return{sessionInfo:this.sessionInfo,verificationCode:e}}generateQrCodeUrl(e,n){let r=!1;return(Ye(e)||Ye(n))&&(r=!0),r&&(Ye(e)&&(e=this.auth.currentUser?.email||"unknownuser"),Ye(n)&&(n=this.auth.name)),`otpauth://totp/${n}:${e}?secret=${this.secretKey}&issuer=${n}&algorithm=${this.hashingAlgorithm}&digits=${this.codeLength}`}};function Ye(t){return typeof t>"u"||t?.length===0}var Gr="@firebase/auth",Kr="1.11.0";var Nn=class{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let n=this.auth.onIdTokenChanged(r=>{e(r?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,n),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let n=this.internalListeners.get(e);n&&(this.internalListeners.delete(e),n(),this.updateProactiveRefresh())}assertAuthConfigured(){p(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function uc(t){switch(t){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}function lc(t){fe(new M("auth",(e,{options:n})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),s=e.getProvider("app-check-internal"),{apiKey:o,authDomain:a}=r.options;p(o&&!o.includes(":"),"invalid-api-key",{appName:r.name});let u={apiKey:o,authDomain:a,clientPlatform:t,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:fi(t)},c=new En(r,i,s,u);return $o(c,n),c},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,n,r)=>{e.getProvider("auth-internal").initialize()})),fe(new M("auth-internal",e=>{let n=se(e.getProvider("auth").getImmediate());return(r=>new Nn(r))(n)},"PRIVATE").setInstantiationMode("EXPLICIT")),G(Gr,Kr,uc(t)),G(Gr,Kr,"esm2020")}var dc=300,hc=jt("authIdTokenMaxAge")||dc,Jr=null,fc=t=>async e=>{let n=e&&await e.getIdTokenResult(),r=n&&(new Date().getTime()-Date.parse(n.issuedAtTime))/1e3;if(r&&r>hc)return;let i=n?.token;Jr!==i&&(Jr=i,await fetch(t,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))};function Hn(t=Rr()){let e=an(t,"auth");if(e.isInitialized())return e.getImmediate();let n=mi(t,{popupRedirectResolver:Ri,persistence:[Si,wi,Un]}),r=jt("authTokenSyncURL");if(r&&typeof isSecureContext=="boolean"&&isSecureContext){let s=new URL(r,location.origin);if(location.origin===s.origin){let o=fc(s.toString());vi(n,o,()=>o(n.currentUser)),Ei(n,a=>o(a))}}let i=sr("auth");return i&&gi(n,`http://${i}`),n}function pc(){return document.getElementsByTagName("head")?.[0]??document}Fo({loadJS(t){return new Promise((e,n)=>{let r=document.createElement("script");r.setAttribute("src",t),r.onload=e,r.onerror=i=>{let s=O("internal-error");s.customData=i,n(s)},r.type="text/javascript",r.charset="UTF-8",pc().appendChild(r)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="});lc("Browser");var Dt,y,Li,_c,oe,Pi,Mi,xi,Ui,zn,Wn,Bn,mc,We={},Fi=[],gc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Lt=Array.isArray;function $(t,e){for(var n in e)t[n]=e[n];return t}function jn(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function Ic(t,e,n){var r,i,s,o={};for(s in e)s=="key"?r=e[s]:s=="ref"?i=e[s]:o[s]=e[s];if(arguments.length>2&&(o.children=arguments.length>3?Dt.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(s in t.defaultProps)o[s]===void 0&&(o[s]=t.defaultProps[s]);return Pt(t,o,r,i,null)}function Pt(t,e,n,r,i){var s={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Li,__i:-1,__u:0};return i==null&&y.vnode!=null&&y.vnode(s),s}function Ie(t){return t.children}function Nt(t,e){this.props=t,this.context=e}function ge(t,e){if(e==null)return t.__?ge(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?ge(t):null}function Vi(t){var e,n;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null){t.__e=t.__c.base=n.__e;break}return Vi(t)}}function Ni(t){(!t.__d&&(t.__d=!0)&&oe.push(t)&&!Ot.__r++||Pi!=y.debounceRendering)&&((Pi=y.debounceRendering)||Mi)(Ot)}function Ot(){for(var t,e,n,r,i,s,o,a=1;oe.length;)oe.length>a&&oe.sort(xi),t=oe.shift(),a=oe.length,t.__d&&(n=void 0,i=(r=(e=t).__v).__e,s=[],o=[],e.__P&&((n=$({},r)).__v=r.__v+1,y.vnode&&y.vnode(n),qn(e.__P,n,r,e.__n,e.__P.namespaceURI,32&r.__u?[i]:null,s,i??ge(r),!!(32&r.__u),o),n.__v=r.__v,n.__.__k[n.__i]=n,Bi(s,n,o),n.__e!=i&&Vi(n)));Ot.__r=0}function Hi(t,e,n,r,i,s,o,a,u,c,d){var l,h,f,_,v,I,m,g=r&&r.__k||Fi,C=e.length;for(u=yc(n,e,g,u,C),l=0;l<C;l++)(f=n.__k[l])!=null&&(h=f.__i==-1?We:g[f.__i]||We,f.__i=l,I=qn(t,f,h,i,s,o,a,u,c,d),_=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&Gn(h.ref,null,f),d.push(f.ref,f.__c||_,f)),v==null&&_!=null&&(v=_),(m=!!(4&f.__u))||h.__k===f.__k?u=Wi(f,u,t,m):typeof f.type=="function"&&I!==void 0?u=I:_&&(u=_.nextSibling),f.__u&=-7);return n.__e=v,u}function yc(t,e,n,r,i){var s,o,a,u,c,d=n.length,l=d,h=0;for(t.__k=new Array(i),s=0;s<i;s++)(o=e[s])!=null&&typeof o!="boolean"&&typeof o!="function"?(u=s+h,(o=t.__k[s]=typeof o=="string"||typeof o=="number"||typeof o=="bigint"||o.constructor==String?Pt(null,o,null,null,null):Lt(o)?Pt(Ie,{children:o},null,null,null):o.constructor==null&&o.__b>0?Pt(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=t,o.__b=t.__b+1,a=null,(c=o.__i=Ec(o,n,u,l))!=-1&&(l--,(a=n[c])&&(a.__u|=2)),a==null||a.__v==null?(c==-1&&(i>d?h--:i<d&&h++),typeof o.type!="function"&&(o.__u|=4)):c!=u&&(c==u-1?h--:c==u+1?h++:(c>u?h--:h++,o.__u|=4))):t.__k[s]=null;if(l)for(s=0;s<d;s++)(a=n[s])!=null&&(2&a.__u)==0&&(a.__e==r&&(r=ge(a)),zi(a,a));return r}function Wi(t,e,n,r){var i,s;if(typeof t.type=="function"){for(i=t.__k,s=0;i&&s<i.length;s++)i[s]&&(i[s].__=t,e=Wi(i[s],e,n,r));return e}t.__e!=e&&(r&&(e&&t.type&&!e.parentNode&&(e=ge(t)),n.insertBefore(t.__e,e||null)),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function Ec(t,e,n,r){var i,s,o,a=t.key,u=t.type,c=e[n],d=c!=null&&(2&c.__u)==0;if(c===null&&t.key==null||d&&a==c.key&&u==c.type)return n;if(r>(d?1:0)){for(i=n-1,s=n+1;i>=0||s<e.length;)if((c=e[o=i>=0?i--:s++])!=null&&(2&c.__u)==0&&a==c.key&&u==c.type)return o}return-1}function Oi(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||gc.test(e)?n:n+"px"}function Rt(t,e,n,r,i){var s,o;e:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof r=="string"&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||Oi(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||Oi(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")s=e!=(e=e.replace(Ui,"$1")),o=e.toLowerCase(),e=o in t||e=="onFocusOut"||e=="onFocusIn"?o.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+s]=n,n?r?n.u=r.u:(n.u=zn,t.addEventListener(e,s?Bn:Wn,s)):t.removeEventListener(e,s?Bn:Wn,s);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function Di(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=zn++;else if(e.t<n.u)return;return n(y.event?y.event(e):e)}}}function qn(t,e,n,r,i,s,o,a,u,c){var d,l,h,f,_,v,I,m,g,C,D,$e,ye,Zn,ze,Ee,Ft,L=e.type;if(e.constructor!=null)return null;128&n.__u&&(u=!!(32&n.__u),s=[a=e.__e=n.__e]),(d=y.__b)&&d(e);e:if(typeof L=="function")try{if(m=e.props,g="prototype"in L&&L.prototype.render,C=(d=L.contextType)&&r[d.__c],D=d?C?C.props.value:d.__:r,n.__c?I=(l=e.__c=n.__c).__=l.__E:(g?e.__c=l=new L(m,D):(e.__c=l=new Nt(m,D),l.constructor=L,l.render=wc),C&&C.sub(l),l.props=m,l.state||(l.state={}),l.context=D,l.__n=r,h=l.__d=!0,l.__h=[],l._sb=[]),g&&l.__s==null&&(l.__s=l.state),g&&L.getDerivedStateFromProps!=null&&(l.__s==l.state&&(l.__s=$({},l.__s)),$(l.__s,L.getDerivedStateFromProps(m,l.__s))),f=l.props,_=l.state,l.__v=e,h)g&&L.getDerivedStateFromProps==null&&l.componentWillMount!=null&&l.componentWillMount(),g&&l.componentDidMount!=null&&l.__h.push(l.componentDidMount);else{if(g&&L.getDerivedStateFromProps==null&&m!==f&&l.componentWillReceiveProps!=null&&l.componentWillReceiveProps(m,D),!l.__e&&l.shouldComponentUpdate!=null&&l.shouldComponentUpdate(m,l.__s,D)===!1||e.__v==n.__v){for(e.__v!=n.__v&&(l.props=m,l.state=l.__s,l.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(ce){ce&&(ce.__=e)}),$e=0;$e<l._sb.length;$e++)l.__h.push(l._sb[$e]);l._sb=[],l.__h.length&&o.push(l);break e}l.componentWillUpdate!=null&&l.componentWillUpdate(m,l.__s,D),g&&l.componentDidUpdate!=null&&l.__h.push(function(){l.componentDidUpdate(f,_,v)})}if(l.context=D,l.props=m,l.__P=t,l.__e=!1,ye=y.__r,Zn=0,g){for(l.state=l.__s,l.__d=!1,ye&&ye(e),d=l.render(l.props,l.state,l.context),ze=0;ze<l._sb.length;ze++)l.__h.push(l._sb[ze]);l._sb=[]}else do l.__d=!1,ye&&ye(e),d=l.render(l.props,l.state,l.context),l.state=l.__s;while(l.__d&&++Zn<25);l.state=l.__s,l.getChildContext!=null&&(r=$($({},r),l.getChildContext())),g&&!h&&l.getSnapshotBeforeUpdate!=null&&(v=l.getSnapshotBeforeUpdate(f,_)),Ee=d,d!=null&&d.type===Ie&&d.key==null&&(Ee=$i(d.props.children)),a=Hi(t,Lt(Ee)?Ee:[Ee],e,n,r,i,s,o,a,u,c),l.base=e.__e,e.__u&=-161,l.__h.length&&o.push(l),I&&(l.__E=l.__=null)}catch(ce){if(e.__v=null,u||s!=null)if(ce.then){for(e.__u|=u?160:128;a&&a.nodeType==8&&a.nextSibling;)a=a.nextSibling;s[s.indexOf(a)]=null,e.__e=a}else{for(Ft=s.length;Ft--;)jn(s[Ft]);$n(e)}else e.__e=n.__e,e.__k=n.__k,ce.then||$n(e);y.__e(ce,e,n)}else s==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):a=e.__e=vc(n.__e,e,n,r,i,s,o,u,c);return(d=y.diffed)&&d(e),128&e.__u?void 0:a}function $n(t){t&&t.__c&&(t.__c.__e=!0),t&&t.__k&&t.__k.forEach($n)}function Bi(t,e,n){for(var r=0;r<n.length;r++)Gn(n[r],n[++r],n[++r]);y.__c&&y.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(s){s.call(i)})}catch(s){y.__e(s,i.__v)}})}function $i(t){return typeof t!="object"||t==null||t.__b&&t.__b>0?t:Lt(t)?t.map($i):$({},t)}function vc(t,e,n,r,i,s,o,a,u){var c,d,l,h,f,_,v,I=n.props,m=e.props,g=e.type;if(g=="svg"?i="http://www.w3.org/2000/svg":g=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),s!=null){for(c=0;c<s.length;c++)if((f=s[c])&&"setAttribute"in f==!!g&&(g?f.localName==g:f.nodeType==3)){t=f,s[c]=null;break}}if(t==null){if(g==null)return document.createTextNode(m);t=document.createElementNS(i,g,m.is&&m),a&&(y.__m&&y.__m(e,s),a=!1),s=null}if(g==null)I===m||a&&t.data==m||(t.data=m);else{if(s=s&&Dt.call(t.childNodes),I=n.props||We,!a&&s!=null)for(I={},c=0;c<t.attributes.length;c++)I[(f=t.attributes[c]).name]=f.value;for(c in I)if(f=I[c],c!="children"){if(c=="dangerouslySetInnerHTML")l=f;else if(!(c in m)){if(c=="value"&&"defaultValue"in m||c=="checked"&&"defaultChecked"in m)continue;Rt(t,c,null,f,i)}}for(c in m)f=m[c],c=="children"?h=f:c=="dangerouslySetInnerHTML"?d=f:c=="value"?_=f:c=="checked"?v=f:a&&typeof f!="function"||I[c]===f||Rt(t,c,f,I[c],i);if(d)a||l&&(d.__html==l.__html||d.__html==t.innerHTML)||(t.innerHTML=d.__html),e.__k=[];else if(l&&(t.innerHTML=""),Hi(e.type=="template"?t.content:t,Lt(h)?h:[h],e,n,r,g=="foreignObject"?"http://www.w3.org/1999/xhtml":i,s,o,s?s[0]:n.__k&&ge(n,0),a,u),s!=null)for(c=s.length;c--;)jn(s[c]);a||(c="value",g=="progress"&&_==null?t.removeAttribute("value"):_!=null&&(_!==t[c]||g=="progress"&&!_||g=="option"&&_!=I[c])&&Rt(t,c,_,I[c],i),c="checked",v!=null&&v!=t[c]&&Rt(t,c,v,I[c],i))}return t}function Gn(t,e,n){try{if(typeof t=="function"){var r=typeof t.__u=="function";r&&t.__u(),r&&e==null||(t.__u=t(e))}else t.current=e}catch(i){y.__e(i,n)}}function zi(t,e,n){var r,i;if(y.unmount&&y.unmount(t),(r=t.ref)&&(r.current&&r.current!=t.__e||Gn(r,null,e)),(r=t.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(s){y.__e(s,e)}r.base=r.__P=null}if(r=t.__k)for(i=0;i<r.length;i++)r[i]&&zi(r[i],e,n||typeof t.type!="function");n||jn(t.__e),t.__c=t.__=t.__e=void 0}function wc(t,e,n){return this.constructor(t,n)}function ji(t,e,n){var r,i,s,o;e==document&&(e=document.documentElement),y.__&&y.__(t,e),i=(r=typeof n=="function")?null:n&&n.__k||e.__k,s=[],o=[],qn(e,t=(!r&&n||e).__k=Ic(Ie,null,[t]),i||We,We,e.namespaceURI,!r&&n?[n]:i?null:e.firstChild?Dt.call(e.childNodes):null,s,!r&&n?n:i?i.__e:e.firstChild,r,o),Bi(s,t,o)}Dt=Fi.slice,y={__e:function(t,e,n,r){for(var i,s,o;e=e.__;)if((i=e.__c)&&!i.__)try{if((s=i.constructor)&&s.getDerivedStateFromError!=null&&(i.setState(s.getDerivedStateFromError(t)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,r||{}),o=i.__d),o)return i.__E=i}catch(a){t=a}throw t}},Li=0,_c=function(t){return t!=null&&t.constructor==null},Nt.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=$({},this.state),typeof t=="function"&&(t=t($({},n),this.props)),t&&$(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),Ni(this))},Nt.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Ni(this))},Nt.prototype.render=Ie,oe=[],Mi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,xi=function(t,e){return t.__v.__b-e.__v.__b},Ot.__r=0,Ui=/(PointerCapture)$|Capture$/i,zn=0,Wn=Di(!1),Bn=Di(!0),mc=0;var Be,b,Kn,qi,xt=0,es=[],T=y,Gi=T.__b,Ki=T.__r,Ji=T.diffed,Yi=T.__c,Xi=T.unmount,Qi=T.__;function Yn(t,e){T.__h&&T.__h(b,t,xt||e),xt=0;var n=b.__H||(b.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function Xn(t){return xt=1,bc(rs,t)}function bc(t,e,n){var r=Yn(Be++,2);if(r.t=t,!r.__c&&(r.__=[n?n(e):rs(void 0,e),function(a){var u=r.__N?r.__N[0]:r.__[0],c=r.t(u,a);u!==c&&(r.__N=[c,r.__[1]],r.__c.setState({}))}],r.__c=b,!b.__f)){var i=function(a,u,c){if(!r.__c.__H)return!0;var d=r.__c.__H.__.filter(function(h){return!!h.__c});if(d.every(function(h){return!h.__N}))return!s||s.call(this,a,u,c);var l=r.__c.props!==a;return d.forEach(function(h){if(h.__N){var f=h.__[0];h.__=h.__N,h.__N=void 0,f!==h.__[0]&&(l=!0)}}),s&&s.call(this,a,u,c)||l};b.__f=!0;var s=b.shouldComponentUpdate,o=b.componentWillUpdate;b.componentWillUpdate=function(a,u,c){if(this.__e){var d=s;s=void 0,i(a,u,c),s=d}o&&o.call(this,a,u,c)},b.shouldComponentUpdate=i}return r.__N||r.__}function ts(t,e){var n=Yn(Be++,3);!T.__s&&ns(n.__H,e)&&(n.__=t,n.u=e,b.__H.__h.push(n))}function Qn(t){return xt=5,Tc(function(){return{current:t}},[])}function Tc(t,e){var n=Yn(Be++,7);return ns(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function Ac(){for(var t;t=es.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(Mt),t.__H.__h.forEach(Jn),t.__H.__h=[]}catch(e){t.__H.__h=[],T.__e(e,t.__v)}}T.__b=function(t){b=null,Gi&&Gi(t)},T.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),Qi&&Qi(t,e)},T.__r=function(t){Ki&&Ki(t),Be=0;var e=(b=t.__c).__H;e&&(Kn===b?(e.__h=[],b.__h=[],e.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(e.__h.forEach(Mt),e.__h.forEach(Jn),e.__h=[],Be=0)),Kn=b},T.diffed=function(t){Ji&&Ji(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(es.push(e)!==1&&qi===T.requestAnimationFrame||((qi=T.requestAnimationFrame)||Sc)(Ac)),e.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),Kn=b=null},T.__c=function(t,e){e.some(function(n){try{n.__h.forEach(Mt),n.__h=n.__h.filter(function(r){return!r.__||Jn(r)})}catch(r){e.some(function(i){i.__h&&(i.__h=[])}),e=[],T.__e(r,n.__v)}}),Yi&&Yi(t,e)},T.unmount=function(t){Xi&&Xi(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.forEach(function(r){try{Mt(r)}catch(i){e=i}}),n.__H=void 0,e&&T.__e(e,n.__v))};var Zi=typeof requestAnimationFrame=="function";function Sc(t){var e,n=function(){clearTimeout(r),Zi&&cancelAnimationFrame(e),setTimeout(t)},r=setTimeout(n,35);Zi&&(e=requestAnimationFrame(n))}function Mt(t){var e=b,n=t.__c;typeof n=="function"&&(t.__c=void 0,n()),b=e}function Jn(t){var e=b;t.__c=t.__(),b=e}function ns(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function rs(t,e){return typeof e=="function"?e(t):e}var kc=0,Cl=Array.isArray;function w(t,e,n,r,i,s){e||(e={});var o,a,u=e;if("ref"in u)for(a in u={},e)a=="ref"?o=e[a]:u[a]=e[a];var c={type:t,props:u,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--kc,__i:-1,__u:0,__source:i,__self:s};if(typeof t=="function"&&(o=t.defaultProps))for(a in o)u[a]===void 0&&(u[a]=o[a]);return y.vnode&&y.vnode(c),c}function Cc(...t){return t.filter(e=>!!e).join(" ")||void 0}function ae(){let[t,e]=Xn(""),n=window.__ROOT_CTX.name,r=window.__ROOT_CTX.warning;function i(s){e(s)}return w("div",{className:"signin",children:[w("div",{className:"signin__headline",children:[n&&w("h1",{className:"signin__headline__title",children:n}),w("p",{className:"signin__headline__body",children:n?`Sign in to continue to ${n}`:"Sign in to continue"})]}),r&&w("div",{className:"signin__warning",children:r}),w(ae.Button,{onError:i}),t&&w("p",{className:"signin__error",children:t})]})}ae.Button=t=>{let[e,n]=Xn("idle"),r=Qn(0),i=Qn(null);ts(()=>{if(e!=="popup")return;let c=setInterval(()=>{i.current&&i.current.closed&&(i.current=null,n("idle"))},200);return()=>clearInterval(c)},[e]);async function s(c){try{return await c.json()}catch(d){console.error(d)}return{}}async function o(){if(e!=="idle")return;t.onError("");let c=++r.current;n("popup");function d(_){r.current===c&&n(_)}function l(_){r.current===c&&t.onError(_)}let h,f=window.open;window.open=function(..._){window.open=f;let v=f.apply(this,_);return i.current=v,v};try{let _=new ne;_.addScope("profile"),_.addScope("email"),h=await Vn(window.firebase.auth,_)}catch(_){let v=_?.code||"";if(v==="auth/popup-closed-by-user"||v==="auth/cancelled-popup-request"){d("idle");return}console.error(_),l(v==="auth/network-request-failed"?"Network error. Please check your connection and try again.":`Sign in failed: ${_?.message||"unknown error"}`),d("idle");return}d("verifying");try{let _=h.user,v=await _.getIdToken(),I=await fetch("/cms/login",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({idToken:v})}),m=await s(I);if(I.status===401){let g=_?.email||"(no email)";m.reason?l(`Login failed for: ${g}. Reason: ${m.reason}. If you believe this is a mistake, please contact a developer to help resolve the issue.`):l(`Login failed for: ${g}. If you believe this is a mistake, please contact a developer to help resolve the issue.`),d("idle");return}if(I.status!==200){console.error("login failed"),console.log(I.status,m),l("An unknown error has occurred."),d("idle");return}if(!m.success){console.error("login failed"),console.log(I.status,m),m.reason?l(`Login failed. Reason: ${m.reason}`):l("Login failed."),d("idle");return}d("redirecting"),Rc()}catch(_){console.error(_),l("An unexpected error occurred. Please try again."),d("idle")}}let a=e!=="idle",u=e==="popup"?"Signing in\u2026":e==="verifying"?"Authorizing\u2026":e==="redirecting"?"Redirecting\u2026":"Sign in with Google";return w("button",{className:Cc("signin__button",a&&"signin__button--busy"),onClick:o,disabled:a,children:[w("div",{className:"signin__button__icon",children:a?w(ae.Spinner,{}):w(ae.GLogo,{})}),w("div",{className:"signin__button__label",children:u})]})};ae.Spinner=()=>w("svg",{className:"signin__spinner",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:w("circle",{cx:"12",cy:"12",r:"10",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-dasharray":"50 14","stroke-linecap":"round"})});ae.GLogo=()=>w("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48 48",children:w("g",{children:[w("path",{fill:"#EA4335",d:"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"}),w("path",{fill:"#4285F4",d:"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"}),w("path",{fill:"#FBBC05",d:"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"}),w("path",{fill:"#34A853",d:"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"}),w("path",{fill:"none",d:"M0 0h48v48H0z"})]})});function Rc(){let e=new URLSearchParams(window.location.search).get("continue")||"",n="/cms";try{let r=new URL(e,window.location.origin);r.origin===window.location.origin&&!r.pathname.startsWith("/cms/login")&&(n=r.pathname+r.search+r.hash)}catch{}window.location.replace(n)}var Ut=document.getElementById("root");function Pc(t){return(t?.code||"")==="auth/invalid-api-key"?"Firebase API key is invalid.":t?.message||"An unknown startup error occurred."}function Nc(t){console.error(t),Ut.innerHTML="";let e=document.createElement("div");e.className="bootstrap bootstrap--error";let n=document.createElement("h1");n.className="bootstrap__error-title",n.textContent="Something went wrong";let r=document.createElement("p");r.className="bootstrap__error-message",r.textContent=Pc(t),e.append(n,r),Ut.append(e)}try{let t=cn(window.__ROOT_CTX.firebaseConfig),e=Hn(t);window.firebase={app:t,auth:e},Ut.innerHTML="",ji(w(ae,{}),Ut)}catch(t){Nc(t)}})();
|