@laboratoria/sdk-js 5.1.0-beta.3 → 5.1.0-beta.4
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.
@@ -1,2 +1,2 @@
|
|
1
1
|
/*! For license information please see laboratoria-sdk-esm.js.LICENSE.txt */
|
2
|
-
var e={560:function(e,t,n){var r;!function(i){function s(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,t,n,r,i,o){return s((a=s(s(t,e),s(r,o)))<<(c=i)|a>>>32-c,n);var a,c}function a(e,t,n,r,i,s,a){return o(t&n|~t&r,e,t,i,s,a)}function c(e,t,n,r,i,s,a){return o(t&r|n&~r,e,t,i,s,a)}function l(e,t,n,r,i,s,a){return o(t^n^r,e,t,i,s,a)}function u(e,t,n,r,i,s,a){return o(n^(t|~r),e,t,i,s,a)}function d(e,t){var n,r,i,o,d;e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;var h=1732584193,p=-271733879,f=-1732584194,m=271733878;for(n=0;n<e.length;n+=16)r=h,i=p,o=f,d=m,h=a(h,p,f,m,e[n],7,-680876936),m=a(m,h,p,f,e[n+1],12,-389564586),f=a(f,m,h,p,e[n+2],17,606105819),p=a(p,f,m,h,e[n+3],22,-1044525330),h=a(h,p,f,m,e[n+4],7,-176418897),m=a(m,h,p,f,e[n+5],12,1200080426),f=a(f,m,h,p,e[n+6],17,-1473231341),p=a(p,f,m,h,e[n+7],22,-45705983),h=a(h,p,f,m,e[n+8],7,1770035416),m=a(m,h,p,f,e[n+9],12,-1958414417),f=a(f,m,h,p,e[n+10],17,-42063),p=a(p,f,m,h,e[n+11],22,-1990404162),h=a(h,p,f,m,e[n+12],7,1804603682),m=a(m,h,p,f,e[n+13],12,-40341101),f=a(f,m,h,p,e[n+14],17,-1502002290),h=c(h,p=a(p,f,m,h,e[n+15],22,1236535329),f,m,e[n+1],5,-165796510),m=c(m,h,p,f,e[n+6],9,-1069501632),f=c(f,m,h,p,e[n+11],14,643717713),p=c(p,f,m,h,e[n],20,-373897302),h=c(h,p,f,m,e[n+5],5,-701558691),m=c(m,h,p,f,e[n+10],9,38016083),f=c(f,m,h,p,e[n+15],14,-660478335),p=c(p,f,m,h,e[n+4],20,-405537848),h=c(h,p,f,m,e[n+9],5,568446438),m=c(m,h,p,f,e[n+14],9,-1019803690),f=c(f,m,h,p,e[n+3],14,-187363961),p=c(p,f,m,h,e[n+8],20,1163531501),h=c(h,p,f,m,e[n+13],5,-1444681467),m=c(m,h,p,f,e[n+2],9,-51403784),f=c(f,m,h,p,e[n+7],14,1735328473),h=l(h,p=c(p,f,m,h,e[n+12],20,-1926607734),f,m,e[n+5],4,-378558),m=l(m,h,p,f,e[n+8],11,-2022574463),f=l(f,m,h,p,e[n+11],16,1839030562),p=l(p,f,m,h,e[n+14],23,-35309556),h=l(h,p,f,m,e[n+1],4,-1530992060),m=l(m,h,p,f,e[n+4],11,1272893353),f=l(f,m,h,p,e[n+7],16,-155497632),p=l(p,f,m,h,e[n+10],23,-1094730640),h=l(h,p,f,m,e[n+13],4,681279174),m=l(m,h,p,f,e[n],11,-358537222),f=l(f,m,h,p,e[n+3],16,-722521979),p=l(p,f,m,h,e[n+6],23,76029189),h=l(h,p,f,m,e[n+9],4,-640364487),m=l(m,h,p,f,e[n+12],11,-421815835),f=l(f,m,h,p,e[n+15],16,530742520),h=u(h,p=l(p,f,m,h,e[n+2],23,-995338651),f,m,e[n],6,-198630844),m=u(m,h,p,f,e[n+7],10,1126891415),f=u(f,m,h,p,e[n+14],15,-1416354905),p=u(p,f,m,h,e[n+5],21,-57434055),h=u(h,p,f,m,e[n+12],6,1700485571),m=u(m,h,p,f,e[n+3],10,-1894986606),f=u(f,m,h,p,e[n+10],15,-1051523),p=u(p,f,m,h,e[n+1],21,-2054922799),h=u(h,p,f,m,e[n+8],6,1873313359),m=u(m,h,p,f,e[n+15],10,-30611744),f=u(f,m,h,p,e[n+6],15,-1560198380),p=u(p,f,m,h,e[n+13],21,1309151649),h=u(h,p,f,m,e[n+4],6,-145523070),m=u(m,h,p,f,e[n+11],10,-1120210379),f=u(f,m,h,p,e[n+2],15,718787259),p=u(p,f,m,h,e[n+9],21,-343485551),h=s(h,r),p=s(p,i),f=s(f,o),m=s(m,d);return[h,p,f,m]}function h(e){var t,n="",r=32*e.length;for(t=0;t<r;t+=8)n+=String.fromCharCode(e[t>>5]>>>t%32&255);return n}function p(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t<n.length;t+=1)n[t]=0;var r=8*e.length;for(t=0;t<r;t+=8)n[t>>5]|=(255&e.charCodeAt(t/8))<<t%32;return n}function f(e){var t,n,r="0123456789abcdef",i="";for(n=0;n<e.length;n+=1)t=e.charCodeAt(n),i+=r.charAt(t>>>4&15)+r.charAt(15&t);return i}function m(e){return unescape(encodeURIComponent(e))}function g(e){return function(e){return h(d(p(e),8*e.length))}(m(e))}function y(e,t){return function(e,t){var n,r,i=p(e),s=[],o=[];for(s[15]=o[15]=void 0,i.length>16&&(i=d(i,8*e.length)),n=0;n<16;n+=1)s[n]=909522486^i[n],o[n]=1549556828^i[n];return r=d(s.concat(p(t)),512+8*t.length),h(d(o.concat(r),640))}(m(e),m(t))}function v(e,t,n){return t?n?y(t,e):f(y(t,e)):n?g(e):f(g(e))}void 0===(r=function(){return v}.call(t,n,t,e))||(e.exports=r)}()}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var r={};(()=>{n.d(r,{ri:()=>$r,xG:()=>Nr,p6:()=>Sr,o0:()=>Ar,bh:()=>Or,mr:()=>Cr,ut:()=>Pr,Pt:()=>Lr,z5:()=>Dr});const e=function(e){const t=[];let n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);i<128?t[n++]=i:i<2048?(t[n++]=i>>6|192,t[n++]=63&i|128):55296==(64512&i)&&r+1<e.length&&56320==(64512&e.charCodeAt(r+1))?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++r)),t[n++]=i>>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128)}return t},t={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let t=0;t<e.length;t+=3){const i=e[t],s=t+1<e.length,o=s?e[t+1]:0,a=t+2<e.length,c=a?e[t+2]:0,l=i>>2,u=(3&i)<<4|o>>4;let d=(15&o)<<2|c>>6,h=63&c;a||(h=64,s||(d=64)),r.push(n[l],n[u],n[d],n[h])}return r.join("")},encodeString(t,n){return this.HAS_NATIVE_SUPPORT&&!n?btoa(t):this.encodeByteArray(e(t),n)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n<e.length;){const i=e[n++];if(i<128)t[r++]=String.fromCharCode(i);else if(i>191&&i<224){const s=e[n++];t[r++]=String.fromCharCode((31&i)<<6|63&s)}else if(i>239&&i<365){const s=((7&i)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],o=e[n++];t[r++]=String.fromCharCode((15&i)<<12|(63&s)<<6|63&o)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let t=0;t<e.length;){const s=n[e.charAt(t++)],o=t<e.length?n[e.charAt(t)]:0;++t;const a=t<e.length?n[e.charAt(t)]:64;++t;const c=t<e.length?n[e.charAt(t)]:64;if(++t,null==s||null==o||null==a||null==c)throw new i;const l=s<<2|o>>4;if(r.push(l),64!==a){const e=o<<4&240|a>>2;if(r.push(e),64!==c){const e=a<<6&192|c;r.push(e)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class i extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const s=function(n){return function(n){const r=e(n);return t.encodeByteArray(r,!0)}(n).replace(/\./g,"")},o=function(e){try{return t.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null},a=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&o(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},c=()=>{var e;return null===(e=a())||void 0===e?void 0:e.config},l=e=>{var t;return null===(t=a())||void 0===t?void 0:t[`_${e}`]};class u{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,n)=>{t?this.reject(t):this.resolve(n),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,n))}}}function d(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}class h extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,h.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,p.prototype.create)}}class p{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},r=`${this.service}/${e}`,i=this.errors[e],s=i?function(e,t){return e.replace(f,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(i,n):"Error",o=`${this.serviceName}: ${s} (${r}).`;return new h(r,o,n)}}const f=/\{\$([^}]+)}/g;function m(e,t){if(e===t)return!0;const n=Object.keys(e),r=Object.keys(t);for(const i of n){if(!r.includes(i))return!1;const n=e[i],s=t[i];if(g(n)&&g(s)){if(!m(n,s))return!1}else if(n!==s)return!1}for(const e of r)if(!n.includes(e))return!1;return!0}function g(e){return null!==e&&"object"==typeof e}function y(e){const t=[];for(const[n,r]of Object.entries(e))Array.isArray(r)?r.forEach((e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))})):t.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return t.length?"&"+t.join("&"):""}function v(e){const t={};return e.replace(/^\?/,"").split("&").forEach((e=>{if(e){const[n,r]=e.split("=");t[decodeURIComponent(n)]=decodeURIComponent(r)}})),t}function b(e){const t=e.indexOf("?");if(!t)return"";const n=e.indexOf("#",t);return e.substring(t,n>0?n:void 0)}class _{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then((()=>{e(this)})).catch((e=>{this.error(e)}))}next(e){this.forEachObserver((t=>{t.next(e)}))}error(e){this.forEachObserver((t=>{t.error(e)})),this.close(e)}complete(){this.forEachObserver((e=>{e.complete()})),this.close()}subscribe(e,t,n){let r;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");r=function(e,t){if("object"!=typeof e||null===e)return!1;for(const t of["next","error","complete"])if(t in e&&"function"==typeof e[t])return!0;return!1}(e)?e:{next:e,error:t,complete:n},void 0===r.next&&(r.next=I),void 0===r.error&&(r.error=I),void 0===r.complete&&(r.complete=I);const i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(e){}})),this.observers.push(r),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then((()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}}))}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function I(){}function w(e){return e&&e._delegate?e._delegate:e}class T{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}const E="[DEFAULT]";class k{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new u;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:t});n&&e.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const n=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),r=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(r)return null;throw e}}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(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:E})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:n});t.resolve(e)}catch(e){}}}}clearInstance(e=E){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e=E){return this.instances.has(e)}getOptions(e=E){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const r=this.getOrInitializeService({instanceIdentifier:n,options:t});for(const[e,t]of this.instancesDeferred.entries())n===this.normalizeInstanceIdentifier(e)&&t.resolve(r);return r}onInit(e,t){var n;const r=this.normalizeInstanceIdentifier(t),i=null!==(n=this.onInitCallbacks.get(r))&&void 0!==n?n:new Set;i.add(e),this.onInitCallbacks.set(r,i);const s=this.instances.get(r);return s&&e(s,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){const n=this.onInitCallbacks.get(t);if(n)for(const r of n)try{r(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e,r===E?void 0:r),options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var r;return n||null}normalizeInstanceIdentifier(e=E){return this.component?this.component.multipleInstances?e:E:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class S{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.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);const t=new k(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const C=[];var A;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(A||(A={}));const R={debug:A.DEBUG,verbose:A.VERBOSE,info:A.INFO,warn:A.WARN,error:A.ERROR,silent:A.SILENT},O=A.INFO,P={[A.DEBUG]:"log",[A.VERBOSE]:"log",[A.INFO]:"info",[A.WARN]:"warn",[A.ERROR]:"error"},N=(e,t,...n)=>{if(t<e.logLevel)return;const r=(new Date).toISOString(),i=P[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${r}] ${e.name}:`,...n)};class D{constructor(e){this.name=e,this._logLevel=O,this._logHandler=N,this._userLogHandler=null,C.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in A))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?R[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)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,A.DEBUG,...e),this._logHandler(this,A.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,A.VERBOSE,...e),this._logHandler(this,A.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,A.INFO,...e),this._logHandler(this,A.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,A.WARN,...e),this._logHandler(this,A.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,A.ERROR,...e),this._logHandler(this,A.ERROR,...e)}}const L=(e,t)=>t.some((t=>e instanceof t));let $,M;const U=new WeakMap,j=new WeakMap,F=new WeakMap,x=new WeakMap,B=new WeakMap;let V={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return j.get(e);if("objectStoreNames"===t)return e.objectStoreNames||F.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return W(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function H(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(M||(M=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(z(this),e),W(U.get(this))}:function(...e){return W(t.apply(z(this),e))}:function(e,...n){const r=t.call(z(this),e,...n);return F.set(r,e.sort?e.sort():[e]),W(r)}:(e instanceof IDBTransaction&&function(e){if(j.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{t(),r()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)}));j.set(e,t)}(e),L(e,$||($=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,V):e);var t}function W(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{t(W(e.result)),r()},s=()=>{n(e.error),r()};e.addEventListener("success",i),e.addEventListener("error",s)}));return t.then((t=>{t instanceof IDBCursor&&U.set(t,e)})).catch((()=>{})),B.set(t,e),t}(e);if(x.has(e))return x.get(e);const t=H(e);return t!==e&&(x.set(e,t),B.set(t,e)),t}const z=e=>B.get(e),q=["get","getKey","getAll","getAllKeys","count"],K=["put","add","delete","clear"],G=new Map;function J(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(G.get(t))return G.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=K.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!q.includes(n))return;const s=async function(e,...t){const s=this.transaction(e,i?"readwrite":"readonly");let o=s.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&s.done]))[0]};return G.set(t,s),s}var Y;Y=V,V={...Y,get:(e,t,n)=>J(e,t)||Y.get(e,t,n),has:(e,t)=>!!J(e,t)||Y.has(e,t)};class X{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const Z="@firebase/app",Q="0.9.11",ee=new D("@firebase/app"),te="[DEFAULT]",ne={[Z]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},re=new Map,ie=new Map;function se(e,t){try{e.container.addComponent(t)}catch(n){ee.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function oe(e){const t=e.name;if(ie.has(t))return ee.debug(`There were multiple attempts to register component ${t}.`),!1;ie.set(t,e);for(const t of re.values())se(t,e);return!0}function ae(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}const ce=new p("app","Firebase",{"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","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}."});class le{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new T("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 ce.create("app-deleted",{appName:this._name})}}const ue="9.22.1";function de(e,t={}){let n=e;"object"!=typeof t&&(t={name:t});const r=Object.assign({name:te,automaticDataCollectionEnabled:!1},t),i=r.name;if("string"!=typeof i||!i)throw ce.create("bad-app-name",{appName:String(i)});if(n||(n=c()),!n)throw ce.create("no-options");const s=re.get(i);if(s){if(m(n,s.options)&&m(r,s.config))return s;throw ce.create("duplicate-app",{appName:i})}const o=new S(i);for(const e of ie.values())o.addComponent(e);const a=new le(n,r,o);return re.set(i,a),a}function he(e,t,n){var r;let i=null!==(r=ne[e])&&void 0!==r?r:e;n&&(i+=`-${n}`);const s=i.match(/\s|\//),o=t.match(/\s|\//);if(s||o){const e=[`Unable to register library "${i}" with version "${t}":`];return s&&e.push(`library name "${i}" contains illegal characters (whitespace or "/")`),s&&o&&e.push("and"),o&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void ee.warn(e.join(" "))}oe(new T(`${i}-version`,(()=>({library:i,version:t})),"VERSION"))}const pe="firebase-heartbeat-database",fe=1,me="firebase-heartbeat-store";let ge=null;function ye(){return ge||(ge=function(e,t,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const o=indexedDB.open(e,t),a=W(o);return r&&o.addEventListener("upgradeneeded",(e=>{r(W(o.result),e.oldVersion,e.newVersion,W(o.transaction),e)})),n&&o.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),a.then((e=>{s&&e.addEventListener("close",(()=>s())),i&&e.addEventListener("versionchange",(e=>i(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),a}(pe,fe,{upgrade:(e,t)=>{0===t&&e.createObjectStore(me)}}).catch((e=>{throw ce.create("idb-open",{originalErrorMessage:e.message})}))),ge}async function ve(e,t){try{const n=(await ye()).transaction(me,"readwrite"),r=n.objectStore(me);await r.put(t,be(e)),await n.done}catch(e){if(e instanceof h)ee.warn(e.message);else{const t=ce.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});ee.warn(t.message)}}}function be(e){return`${e.name}!${e.options.appId}`}class _e{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new we(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){const e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),t=Ie();if(null===this._heartbeatsCache&&(this._heartbeatsCache=await this._heartbeatsCachePromise),this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some((e=>e.date===t)))return this._heartbeatsCache.heartbeats.push({date:t,agent:e}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null===this._heartbeatsCache||0===this._heartbeatsCache.heartbeats.length)return"";const e=Ie(),{heartbeatsToSend:t,unsentEntries:n}=function(e,t=1024){const n=[];let r=e.slice();for(const i of e){const e=n.find((e=>e.agent===i.agent));if(e){if(e.dates.push(i.date),Te(n)>t){e.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),Te(n)>t){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}(this._heartbeatsCache.heartbeats),r=s(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),r}}function Ie(){return(new Date).toISOString().substring(0,10)}class we{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{var e;t((null===(e=i.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){return await this._canUseIndexedDBPromise&&await async function(e){try{const t=await ye();return await t.transaction(me).objectStore(me).get(be(e))}catch(e){if(e instanceof h)ee.warn(e.message);else{const t=ce.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});ee.warn(t.message)}}}(this.app)||{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return ve(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return ve(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function Te(e){return s(JSON.stringify({version:2,heartbeats:e})).length}function Ee(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}oe(new T("platform-logger",(e=>new X(e)),"PRIVATE")),oe(new T("heartbeat",(e=>new _e(e)),"PRIVATE")),he(Z,Q,""),he(Z,Q,"esm2017"),he("fire-js",""),he("firebase","9.22.1","app"),Object.create,Object.create;const ke=function(){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."}},Se=new p("auth","Firebase",{"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."}),Ce=new D("@firebase/auth");function Ae(e,...t){Ce.logLevel<=A.ERROR&&Ce.error(`Auth (${ue}): ${e}`,...t)}function Re(e,...t){throw Pe(e,...t)}function Oe(e,...t){return Pe(e,...t)}function Pe(e,...t){if("string"!=typeof e){const n=t[0],r=[...t.slice(1)];return r[0]&&(r[0].appName=e.name),e._errorFactory.create(n,...r)}return Se.create(e,...t)}function Ne(e,t,...n){if(!e)throw Pe(t,...n)}function De(e){const t="INTERNAL ASSERTION FAILED: "+e;throw Ae(t),new Error(t)}function Le(e,t){e||De(t)}function $e(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function Me(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}function Ue(){return!("undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&("http:"===Me()||"https:"===Me()||function(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}()||"connection"in navigator))||navigator.onLine}class je{constructor(e,t){this.shortDelay=e,this.longDelay=t,Le(t>e,"Short delay should be less than long delay!"),this.isMobile="undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(d())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return Ue()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function Fe(e,t){Le(e.emulator,"Emulator should always be set here");const{url:n}=e.emulator;return t?`${n}${t.startsWith("/")?t.slice(1):t}`:n}class xe{static initialize(e,t,n){this.fetchImpl=e,t&&(this.headersImpl=t),n&&(this.responseImpl=n)}static fetch(){return this.fetchImpl?this.fetchImpl:"undefined"!=typeof self&&"fetch"in self?self.fetch:void De("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"undefined"!=typeof self&&"Headers"in self?self.Headers:void De("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"undefined"!=typeof self&&"Response"in self?self.Response:void De("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}const Be={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",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",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"},Ve=new je(3e4,6e4);function He(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function We(e,t,n,r,i={}){return ze(e,i,(async()=>{let i={},s={};r&&("GET"===t?s=r:i={body:JSON.stringify(r)});const o=y(Object.assign({key:e.config.apiKey},s)).slice(1),a=await e._getAdditionalHeaders();return a["Content-Type"]="application/json",e.languageCode&&(a["X-Firebase-Locale"]=e.languageCode),xe.fetch()(Ke(e,e.config.apiHost,n,o),Object.assign({method:t,headers:a,referrerPolicy:"no-referrer"},i))}))}async function ze(e,t,n){e._canInitEmulator=!1;const r=Object.assign(Object.assign({},Be),t);try{const t=new Ge(e),i=await Promise.race([n(),t.promise]);t.clearNetworkTimeout();const s=await i.json();if("needConfirmation"in s)throw Je(e,"account-exists-with-different-credential",s);if(i.ok&&!("errorMessage"in s))return s;{const t=i.ok?s.errorMessage:s.error.message,[n,o]=t.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===n)throw Je(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===n)throw Je(e,"email-already-in-use",s);if("USER_DISABLED"===n)throw Je(e,"user-disabled",s);const a=r[n]||n.toLowerCase().replace(/[_\s]+/g,"-");if(o)throw function(e,t,n){const r=Object.assign(Object.assign({},ke()),{[t]:n});return new p("auth","Firebase",r).create(t,{appName:e.name})}(e,a,o);Re(e,a)}}catch(t){if(t instanceof h)throw t;Re(e,"network-request-failed",{message:String(t)})}}async function qe(e,t,n,r,i={}){const s=await We(e,t,n,r,i);return"mfaPendingCredential"in s&&Re(e,"multi-factor-auth-required",{_serverResponse:s}),s}function Ke(e,t,n,r){const i=`${t}${n}?${r}`;return e.config.emulator?Fe(e.config,i):`${e.config.apiScheme}://${i}`}class Ge{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise(((e,t)=>{this.timer=setTimeout((()=>t(Oe(this.auth,"network-request-failed"))),Ve.get())}))}clearNetworkTimeout(){clearTimeout(this.timer)}}function Je(e,t,n){const r={appName:e.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=Oe(e,t,r);return i.customData._tokenResponse=n,i}function Ye(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Xe(e){return 1e3*Number(e)}function Ze(e){const[t,n,r]=e.split(".");if(void 0===t||void 0===n||void 0===r)return Ae("JWT malformed, contained fewer than 3 sections"),null;try{const e=o(n);return e?JSON.parse(e):(Ae("Failed to decode base64 JWT payload"),null)}catch(e){return Ae("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}async function Qe(e,t,n=!1){if(n)return t;try{return await t}catch(t){throw t instanceof h&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class et{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,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){var t;if(e){const e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}{this.errorBackoff=3e4;const e=(null!==(t=this.user.stsTokenManager.expirationTime)&&void 0!==t?t:0)-Date.now()-3e5;return Math.max(0,e)}}schedule(e=!1){if(!this.isRunning)return;const t=this.getInterval(e);this.timerId=setTimeout((async()=>{await this.iteration()}),t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class tt{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ye(this.lastLoginAt),this.creationTime=Ye(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function nt(e){var t;const n=e.auth,r=await e.getIdToken(),i=await Qe(e,async function(e,t){return We(e,"POST","/v1/accounts:lookup",t)}(n,{idToken:r}));Ne(null==i?void 0:i.users.length,n,"internal-error");const s=i.users[0];e._notifyReloadListener(s);const o=(null===(t=s.providerUserInfo)||void 0===t?void 0:t.length)?s.providerUserInfo.map((e=>{var{providerId:t}=e,n=Ee(e,["providerId"]);return{providerId:t,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}})):[],a=(c=e.providerData,l=o,[...c.filter((e=>!l.some((t=>t.providerId===e.providerId)))),...l]);var c,l;const u=e.isAnonymous,d=!(e.email&&s.passwordHash||(null==a?void 0:a.length)),h=!!u&&d,p={uid:s.localId,displayName:s.displayName||null,photoURL:s.photoUrl||null,email:s.email||null,emailVerified:s.emailVerified||!1,phoneNumber:s.phoneNumber||null,tenantId:s.tenantId||null,providerData:a,metadata:new tt(s.createdAt,s.lastLoginAt),isAnonymous:h};Object.assign(e,p)}class rt{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){Ne(e.idToken,"internal-error"),Ne(void 0!==e.idToken,"internal-error"),Ne(void 0!==e.refreshToken,"internal-error");const t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):function(e){const t=Ze(e);return Ne(t,"internal-error"),Ne(void 0!==t.exp,"internal-error"),Ne(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}async getToken(e,t=!1){return Ne(!this.accessToken||this.refreshToken,e,"user-token-expired"),t||!this.accessToken||this.isExpired?this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){const{accessToken:n,refreshToken:r,expiresIn:i}=await async function(e,t){const n=await ze(e,{},(async()=>{const n=y({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:r,apiKey:i}=e.config,s=Ke(e,r,"/v1/token",`key=${i}`),o=await e._getAdditionalHeaders();return o["Content-Type"]="application/x-www-form-urlencoded",xe.fetch()(s,{method:"POST",headers:o,body:n})}));return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}(e,t);this.updateTokensAndExpiration(n,r,Number(i))}updateTokensAndExpiration(e,t,n){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(e,t){const{refreshToken:n,accessToken:r,expirationTime:i}=t,s=new rt;return n&&(Ne("string"==typeof n,"internal-error",{appName:e}),s.refreshToken=n),r&&(Ne("string"==typeof r,"internal-error",{appName:e}),s.accessToken=r),i&&(Ne("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}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 rt,this.toJSON())}_performRefresh(){return De("not implemented")}}function it(e,t){Ne("string"==typeof e||void 0===e,"internal-error",{appName:t})}class st{constructor(e){var{uid:t,auth:n,stsTokenManager:r}=e,i=Ee(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new et(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,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 tt(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){const t=await Qe(this,this.stsTokenManager.getToken(this.auth,e));return Ne(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return async function(e,t=!1){const n=w(e),r=await n.getIdToken(t),i=Ze(r);Ne(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");const s="object"==typeof i.firebase?i.firebase:void 0,o=null==s?void 0:s.sign_in_provider;return{claims:i,token:r,authTime:Ye(Xe(i.auth_time)),issuedAtTime:Ye(Xe(i.iat)),expirationTime:Ye(Xe(i.exp)),signInProvider:o||null,signInSecondFactor:(null==s?void 0:s.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const t=w(e);await nt(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(Ne(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((e=>Object.assign({},e))),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const t=new st(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){Ne(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let n=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),n=!0),t&&await nt(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){const e=await this.getIdToken();return await Qe(this,async function(e,t){return We(e,"POST","/v1/accounts:delete",t)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({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=>Object.assign({},e))),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var n,r,i,s,o,a,c,l;const u=null!==(n=t.displayName)&&void 0!==n?n:void 0,d=null!==(r=t.email)&&void 0!==r?r:void 0,h=null!==(i=t.phoneNumber)&&void 0!==i?i:void 0,p=null!==(s=t.photoURL)&&void 0!==s?s:void 0,f=null!==(o=t.tenantId)&&void 0!==o?o:void 0,m=null!==(a=t._redirectEventId)&&void 0!==a?a:void 0,g=null!==(c=t.createdAt)&&void 0!==c?c:void 0,y=null!==(l=t.lastLoginAt)&&void 0!==l?l:void 0,{uid:v,emailVerified:b,isAnonymous:_,providerData:I,stsTokenManager:w}=t;Ne(v&&w,e,"internal-error");const T=rt.fromJSON(this.name,w);Ne("string"==typeof v,e,"internal-error"),it(u,e.name),it(d,e.name),Ne("boolean"==typeof b,e,"internal-error"),Ne("boolean"==typeof _,e,"internal-error"),it(h,e.name),it(p,e.name),it(f,e.name),it(m,e.name),it(g,e.name),it(y,e.name);const E=new st({uid:v,auth:e,email:d,emailVerified:b,displayName:u,isAnonymous:_,photoURL:p,phoneNumber:h,tenantId:f,stsTokenManager:T,createdAt:g,lastLoginAt:y});return I&&Array.isArray(I)&&(E.providerData=I.map((e=>Object.assign({},e)))),m&&(E._redirectEventId=m),E}static async _fromIdTokenResponse(e,t,n=!1){const r=new rt;r.updateFromServerResponse(t);const i=new st({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:n});return await nt(i),i}}const ot=new Map;function at(e){Le(e instanceof Function,"Expected a class definition");let t=ot.get(e);return t?(Le(t instanceof e,"Instance stored in cache mismatched with class"),t):(t=new e,ot.set(e,t),t)}class ct{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){const t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}ct.type="NONE";const lt=ct;function ut(e,t,n){return`firebase:${e}:${t}:${n}`}class dt{constructor(e,t,n){this.persistence=e,this.auth=t,this.userKey=n;const{config:r,name:i}=this.auth;this.fullUserKey=ut(this.userKey,r.apiKey,i),this.fullPersistenceKey=ut("persistence",r.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){const e=await this.persistence._get(this.fullUserKey);return e?st._fromJSON(this.auth,e):null}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;const t=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,n="authUser"){if(!t.length)return new dt(at(lt),e,n);const r=(await Promise.all(t.map((async e=>{if(await e._isAvailable())return e})))).filter((e=>e));let i=r[0]||at(lt);const s=ut(n,e.config.apiKey,e.name);let o=null;for(const n of t)try{const t=await n._get(s);if(t){const r=st._fromJSON(e,t);n!==i&&(o=r),i=n;break}}catch(e){}const a=r.filter((e=>e._shouldAllowMigration));return i._shouldAllowMigration&&a.length?(i=a[0],o&&await i._set(s,o.toJSON()),await Promise.all(t.map((async e=>{if(e!==i)try{await e._remove(s)}catch(e){}}))),new dt(i,e,n)):new dt(i,e,n)}}function ht(e){const t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";if(gt(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(pt(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(vt(t))return"Blackberry";if(bt(t))return"Webos";if(ft(t))return"Safari";if((t.includes("chrome/")||mt(t))&&!t.includes("edge/"))return"Chrome";if(yt(t))return"Android";{const t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,n=e.match(t);if(2===(null==n?void 0:n.length))return n[1]}return"Other"}function pt(e=d()){return/firefox\//i.test(e)}function ft(e=d()){const t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function mt(e=d()){return/crios\//i.test(e)}function gt(e=d()){return/iemobile/i.test(e)}function yt(e=d()){return/android/i.test(e)}function vt(e=d()){return/blackberry/i.test(e)}function bt(e=d()){return/webos/i.test(e)}function _t(e=d()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function It(e=d()){return _t(e)||yt(e)||bt(e)||vt(e)||/windows phone/i.test(e)||gt(e)}function wt(e,t=[]){let n;switch(e){case"Browser":n=ht(d());break;case"Worker":n=`${ht(d())}-${e}`;break;default:n=e}const r=t.length?t.join(","):"FirebaseCore-web";return`${n}/JsCore/${ue}/${r}`}async function Tt(e,t){return We(e,"GET","/v2/recaptchaConfig",He(e,t))}function Et(e){return void 0!==e&&void 0!==e.enterprise}class kt{constructor(e){if(this.siteKey="",this.emailPasswordEnabled=!1,void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.emailPasswordEnabled=e.recaptchaEnforcementState.some((e=>"EMAIL_PASSWORD_PROVIDER"===e.provider&&"OFF"!==e.enforcementState))}}function St(e){return new Promise(((t,n)=>{const r=document.createElement("script");var i,s;r.setAttribute("src",e),r.onload=t,r.onerror=e=>{const t=Oe("internal-error");t.customData=e,n(t)},r.type="text/javascript",r.charset="UTF-8",(null!==(s=null===(i=document.getElementsByTagName("head"))||void 0===i?void 0:i[0])&&void 0!==s?s:document).appendChild(r)}))}function Ct(e){return`__${e}${Math.floor(1e6*Math.random())}`}class At{constructor(e){this.type="recaptcha-enterprise",this.auth=Nt(e)}async verify(e="verify",t=!1){function n(t,n,r){const i=window.grecaptcha;Et(i)?i.enterprise.ready((()=>{i.enterprise.execute(t,{action:e}).then((e=>{n(e)})).catch((()=>{n("NO_RECAPTCHA")}))})):r(Error("No reCAPTCHA enterprise script loaded."))}return new Promise(((e,r)=>{(async function(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise((async(t,n)=>{Tt(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then((r=>{if(void 0!==r.recaptchaKey){const n=new kt(r);return null==e.tenantId?e._agentRecaptchaConfig=n:e._tenantRecaptchaConfigs[e.tenantId]=n,t(n.siteKey)}n(new Error("recaptcha Enterprise site key undefined"))})).catch((e=>{n(e)}))}))})(this.auth).then((i=>{if(!t&&Et(window.grecaptcha))n(i,e,r);else{if("undefined"==typeof window)return void r(new Error("RecaptchaVerifier is only supported in browser"));St("https://www.google.com/recaptcha/enterprise.js?render="+i).then((()=>{n(i,e,r)})).catch((e=>{r(e)}))}})).catch((e=>{r(e)}))}))}}async function Rt(e,t,n,r=!1){const i=new At(e);let s;try{s=await i.verify(n)}catch(e){s=await i.verify(n,!0)}const o=Object.assign({},t);return r?Object.assign(o,{captchaResp:s}):Object.assign(o,{captchaResponse:s}),Object.assign(o,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(o,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),o}class Ot{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){const n=t=>new Promise(((n,r)=>{try{n(e(t))}catch(e){r(e)}}));n.onAbort=t,this.queue.push(n);const r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;const t=[];try{for(const n of this.queue)await n(e),n.onAbort&&t.push(n.onAbort)}catch(e){t.reverse();for(const e of t)try{e()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}class Pt{constructor(e,t,n,r){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=n,this.config=r,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Dt(this),this.idTokenSubscription=new Dt(this),this.beforeStateQueue=new Ot(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Se,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=r.sdkClientVersion}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=at(t)),this._initializationPromise=this.queue((async()=>{var n,r;if(!this._deleted&&(this.persistenceManager=await dt.create(this,e),!this._deleted)){if(null===(n=this._popupRedirectResolver)||void 0===n?void 0:n._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=(null===(r=this.currentUser)||void 0===r?void 0:r.uid)||null,this._deleted||(this._isInitialized=!0)}})),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const e=await this.assertedPersistence.getCurrentUser();return this.currentUser||e?this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(e,!0):void 0}async initializeCurrentUser(e){var t;const n=await this.assertedPersistence.getCurrentUser();let r=n,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const n=null===(t=this.redirectUser)||void 0===t?void 0:t._redirectEventId,s=null==r?void 0:r._redirectEventId,o=await this.tryRedirectSignIn(e);n&&n!==s||!(null==o?void 0:o.user)||(r=o.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(r)}catch(e){r=n,this._popupRedirectResolver._overrideRedirectResult(this,(()=>Promise.reject(e)))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return Ne(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 t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await nt(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){const t=e?w(e):null;return t&&Ne(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&Ne(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue((async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()}))}async signOut(){return await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0)}setPersistence(e){return this.queue((async()=>{await this.assertedPersistence.setPersistence(at(e))}))}async initializeRecaptchaConfig(){const e=await Tt(this,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),t=new kt(e);null==this.tenantId?this._agentRecaptchaConfig=t:this._tenantRecaptchaConfigs[this.tenantId]=t,t.emailPasswordEnabled&&new At(this).verify()}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new p("auth","Firebase",e())}onAuthStateChanged(e,t,n){return this.registerStateListener(this.authStateSubscription,e,t,n)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,n){return this.registerStateListener(this.idTokenSubscription,e,t,n)}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,t){const n=await this.getOrInitRedirectPersistenceManager(t);return null===e?n.removeCurrentUser():n.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){const t=e&&at(e)||this._popupRedirectResolver;Ne(t,this,"argument-error"),this.redirectPersistenceManager=await dt.create(this,[at(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){var t,n;return this._isInitialized&&await this.queue((async()=>{})),(null===(t=this._currentUser)||void 0===t?void 0:t._redirectEventId)===e?this._currentUser:(null===(n=this.redirectUser)||void 0===n?void 0:n._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(){var e,t;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const n=null!==(t=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==t?t:null;this.lastNotifiedUid!==n&&(this.lastNotifiedUid=n,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,n,r){if(this._deleted)return()=>{};const i="function"==typeof t?t:t.next.bind(t),s=this._isInitialized?Promise.resolve():this._initializationPromise;return Ne(s,this,"internal-error"),s.then((()=>i(this.currentUser))),"function"==typeof t?e.addObserver(t,n,r):e.addObserver(t)}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 Ne(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=wt(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e;const t={"X-Client-Version":this.clientVersion};this.app.options.appId&&(t["X-Firebase-gmpid"]=this.app.options.appId);const n=await(null===(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getHeartbeatsHeader());n&&(t["X-Firebase-Client"]=n);const r=await this._getAppCheckToken();return r&&(t["X-Firebase-AppCheck"]=r),t}async _getAppCheckToken(){var e;const t=await(null===(e=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getToken());return(null==t?void 0:t.error)&&function(e,...t){Ce.logLevel<=A.WARN&&Ce.warn(`Auth (${ue}): ${e}`,...t)}(`Error while retrieving App Check token: ${t.error}`),null==t?void 0:t.token}}function Nt(e){return w(e)}class Dt{constructor(e){this.auth=e,this.observer=null,this.addObserver=function(e,t){const n=new _(e,void 0);return n.subscribe.bind(n)}((e=>this.observer=e))}get next(){return Ne(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}function Lt(e){const t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function $t(e){if(!e)return null;const t=Number(e);return isNaN(t)?null:t}class Mt{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return De("not implemented")}_getIdTokenResponse(e){return De("not implemented")}_linkToIdToken(e,t){return De("not implemented")}_getReauthenticationResolver(e){return De("not implemented")}}async function Ut(e,t){return qe(e,"POST","/v1/accounts:signInWithPassword",He(e,t))}async function jt(e,t){return async function(e,t){return We(e,"POST","/v1/accounts:sendOobCode",He(e,t))}(e,t)}class Ft extends Mt{constructor(e,t,n,r=null){super("password",n),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new Ft(e,t,"password")}static _fromEmailAndCode(e,t,n=null){return new Ft(e,t,"emailLink",n)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e;if((null==t?void 0:t.email)&&(null==t?void 0:t.password)){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){var t;switch(this.signInMethod){case"password":const n={returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};if(null===(t=e._getRecaptchaConfig())||void 0===t?void 0:t.emailPasswordEnabled){const t=await Rt(e,n,"signInWithPassword");return Ut(e,t)}return Ut(e,n).catch((async t=>{if("auth/missing-recaptcha-token"===t.code){console.log("Sign-in with email address and password is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.");const t=await Rt(e,n,"signInWithPassword");return Ut(e,t)}return Promise.reject(t)}));case"emailLink":return async function(e,t){return qe(e,"POST","/v1/accounts:signInWithEmailLink",He(e,t))}(e,{email:this._email,oobCode:this._password});default:Re(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return async function(e,t){return We(e,"POST","/v1/accounts:update",t)}(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(e,t){return qe(e,"POST","/v1/accounts:signInWithEmailLink",He(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:Re(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function xt(e,t){return qe(e,"POST","/v1/accounts:signInWithIdp",He(e,t))}class Bt extends Mt{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new Bt(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):Re("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e,{providerId:n,signInMethod:r}=t,i=Ee(t,["providerId","signInMethod"]);if(!n||!r)return null;const s=new Bt(n,r);return s.idToken=i.idToken||void 0,s.accessToken=i.accessToken||void 0,s.secret=i.secret,s.nonce=i.nonce,s.pendingToken=i.pendingToken||null,s}_getIdTokenResponse(e){return xt(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,xt(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,xt(e,t)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=y(t)}return e}}const Vt={USER_NOT_FOUND:"user-not-found"};class Ht extends Mt{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Ht({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Ht({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function(e,t){return qe(e,"POST","/v1/accounts:signInWithPhoneNumber",He(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function(e,t){const n=await qe(e,"POST","/v1/accounts:signInWithPhoneNumber",He(e,t));if(n.temporaryProof)throw Je(e,"account-exists-with-different-credential",n);return n}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function(e,t){return qe(e,"POST","/v1/accounts:signInWithPhoneNumber",He(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),Vt)}(e,this._makeVerificationRequest())}_makeVerificationRequest(){const{temporaryProof:e,phoneNumber:t,verificationId:n,verificationCode:r}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:n,code:r}}toJSON(){const 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){"string"==typeof e&&(e=JSON.parse(e));const{verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}=e;return n||t||r||i?new Ht({verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}):null}}class Wt{constructor(e){var t,n,r,i,s,o;const a=v(b(e)),c=null!==(t=a.apiKey)&&void 0!==t?t:null,l=null!==(n=a.oobCode)&&void 0!==n?n:null,u=function(e){switch(e){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}}(null!==(r=a.mode)&&void 0!==r?r:null);Ne(c&&l&&u,"argument-error"),this.apiKey=c,this.operation=u,this.code=l,this.continueUrl=null!==(i=a.continueUrl)&&void 0!==i?i:null,this.languageCode=null!==(s=a.languageCode)&&void 0!==s?s:null,this.tenantId=null!==(o=a.tenantId)&&void 0!==o?o:null}static parseLink(e){const t=function(e){const t=v(b(e)).link,n=t?v(b(t)).deep_link_id:null,r=v(b(e)).deep_link_id;return(r?v(b(r)).link:null)||r||n||t||e}(e);try{return new Wt(t)}catch(e){return null}}}class zt{constructor(){this.providerId=zt.PROVIDER_ID}static credential(e,t){return Ft._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){const n=Wt.parseLink(t);return Ne(n,"argument-error"),Ft._fromEmailAndCode(e,n.code,n.tenantId)}}zt.PROVIDER_ID="password",zt.EMAIL_PASSWORD_SIGN_IN_METHOD="password",zt.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class qt{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}}class Kt extends qt{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Gt extends Kt{constructor(){super("facebook.com")}static credential(e){return Bt._fromParams({providerId:Gt.PROVIDER_ID,signInMethod:Gt.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Gt.credentialFromTaggedObject(e)}static credentialFromError(e){return Gt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Gt.credential(e.oauthAccessToken)}catch(e){return null}}}Gt.FACEBOOK_SIGN_IN_METHOD="facebook.com",Gt.PROVIDER_ID="facebook.com";class Jt extends Kt{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Bt._fromParams({providerId:Jt.PROVIDER_ID,signInMethod:Jt.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return Jt.credentialFromTaggedObject(e)}static credentialFromError(e){return Jt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:t,oauthAccessToken:n}=e;if(!t&&!n)return null;try{return Jt.credential(t,n)}catch(e){return null}}}Jt.GOOGLE_SIGN_IN_METHOD="google.com",Jt.PROVIDER_ID="google.com";class Yt extends Kt{constructor(){super("github.com")}static credential(e){return Bt._fromParams({providerId:Yt.PROVIDER_ID,signInMethod:Yt.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Yt.credentialFromTaggedObject(e)}static credentialFromError(e){return Yt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Yt.credential(e.oauthAccessToken)}catch(e){return null}}}Yt.GITHUB_SIGN_IN_METHOD="github.com",Yt.PROVIDER_ID="github.com";class Xt extends Kt{constructor(){super("twitter.com")}static credential(e,t){return Bt._fromParams({providerId:Xt.PROVIDER_ID,signInMethod:Xt.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Xt.credentialFromTaggedObject(e)}static credentialFromError(e){return Xt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthAccessToken:t,oauthTokenSecret:n}=e;if(!t||!n)return null;try{return Xt.credential(t,n)}catch(e){return null}}}Xt.TWITTER_SIGN_IN_METHOD="twitter.com",Xt.PROVIDER_ID="twitter.com";class Zt{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,n,r=!1){const i=await st._fromIdTokenResponse(e,n,r),s=Qt(n);return new Zt({user:i,providerId:s,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);const r=Qt(n);return new Zt({user:e,providerId:r,_tokenResponse:n,operationType:t})}}function Qt(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class en extends h{constructor(e,t,n,r){var i;super(t.code,t.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,en.prototype),this.customData={appName:e.name,tenantId:null!==(i=e.tenantId)&&void 0!==i?i:void 0,_serverResponse:t.customData._serverResponse,operationType:n}}static _fromErrorAndOperation(e,t,n,r){return new en(e,t,n,r)}}function tn(e,t,n,r){return("reauthenticate"===t?n._getReauthenticationResolver(e):n._getIdTokenResponse(e)).catch((n=>{if("auth/multi-factor-auth-required"===n.code)throw en._fromErrorAndOperation(e,n,t,r);throw n}))}async function nn(e,t,n=!1){const r="signIn",i=await tn(e,r,t),s=await Zt._fromIdTokenResponse(e,r,i);return n||await e._updateCurrentUser(s.user),s}new WeakMap;const rn="__sak";class sn{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(rn,"1"),this.storage.removeItem(rn),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){const t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class on extends sn{constructor(){super((()=>window.localStorage),"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.safariLocalStorageNotSynced=function(){const e=d();return ft(e)||_t(e)}()&&function(){try{return!(!window||window===window.top)}catch(e){return!1}}(),this.fallbackToPolling=It(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const t of Object.keys(this.listeners)){const n=this.storage.getItem(t),r=this.localCache[t];n!==r&&e(t,r,n)}}onStorageEvent(e,t=!1){if(!e.key)return void this.forAllChangedKeys(((e,t,n)=>{this.notifyListeners(e,n)}));const n=e.key;if(t?this.detachListener():this.stopPolling(),this.safariLocalStorageNotSynced){const r=this.storage.getItem(n);if(e.newValue!==r)null!==e.newValue?this.storage.setItem(n,e.newValue):this.storage.removeItem(n);else if(this.localCache[n]===e.newValue&&!t)return}const r=()=>{const e=this.storage.getItem(n);(t||this.localCache[n]!==e)&&this.notifyListeners(n,e)},i=this.storage.getItem(n);!function(){const e=d();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}()||10!==document.documentMode||i===e.newValue||e.newValue===e.oldValue?r():setTimeout(r,10)}notifyListeners(e,t){this.localCache[e]=t;const n=this.listeners[e];if(n)for(const e of Array.from(n))e(t?JSON.parse(t):t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((()=>{this.forAllChangedKeys(((e,t,n)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:n}),!0)}))}),1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){const t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}on.type="LOCAL";const an=on;class cn extends sn{constructor(){super((()=>window.sessionStorage),"SESSION")}_addListener(e,t){}_removeListener(e,t){}}cn.type="SESSION";const ln=cn;class un{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){const t=this.receivers.find((t=>t.isListeningto(e)));if(t)return t;const n=new un(e);return this.receivers.push(n),n}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const t=e,{eventId:n,eventType:r,data:i}=t.data,s=this.handlersMap[r];if(!(null==s?void 0:s.size))return;t.ports[0].postMessage({status:"ack",eventId:n,eventType:r});const o=Array.from(s).map((async e=>e(t.origin,i))),a=await function(e){return Promise.all(e.map((async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})))}(o);t.ports[0].postMessage({status:"done",eventId:n,eventType:r,response:a})}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function dn(e="",t=10){let n="";for(let e=0;e<t;e++)n+=Math.floor(10*Math.random());return e+n}un.receivers=[];class hn{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,n=50){const r="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!r)throw new Error("connection_unavailable");let i,s;return new Promise(((o,a)=>{const c=dn("",20);r.port1.start();const l=setTimeout((()=>{a(new Error("unsupported_event"))}),n);s={messageChannel:r,onMessage(e){const t=e;if(t.data.eventId===c)switch(t.data.status){case"ack":clearTimeout(l),i=setTimeout((()=>{a(new Error("timeout"))}),3e3);break;case"done":clearTimeout(i),o(t.data.response);break;default:clearTimeout(l),clearTimeout(i),a(new Error("invalid_response"))}}},this.handlers.add(s),r.port1.addEventListener("message",s.onMessage),this.target.postMessage({eventType:e,eventId:c,data:t},[r.port2])})).finally((()=>{s&&this.removeMessageHandler(s)}))}}function pn(){return window}function fn(){return void 0!==pn().WorkerGlobalScope&&"function"==typeof pn().importScripts}const mn="firebaseLocalStorageDb",gn="firebaseLocalStorage",yn="fbase_key";class vn{constructor(e){this.request=e}toPromise(){return new Promise(((e,t)=>{this.request.addEventListener("success",(()=>{e(this.request.result)})),this.request.addEventListener("error",(()=>{t(this.request.error)}))}))}}function bn(e,t){return e.transaction([gn],t?"readwrite":"readonly").objectStore(gn)}function _n(){const e=indexedDB.open(mn,1);return new Promise(((t,n)=>{e.addEventListener("error",(()=>{n(e.error)})),e.addEventListener("upgradeneeded",(()=>{const t=e.result;try{t.createObjectStore(gn,{keyPath:yn})}catch(e){n(e)}})),e.addEventListener("success",(async()=>{const n=e.result;n.objectStoreNames.contains(gn)?t(n):(n.close(),await function(){const e=indexedDB.deleteDatabase(mn);return new vn(e).toPromise()}(),t(await _n()))}))}))}async function In(e,t,n){const r=bn(e,!0).put({[yn]:t,value:n});return new vn(r).toPromise()}function wn(e,t){const n=bn(e,!0).delete(t);return new vn(n).toPromise()}class Tn{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=await _n()),this.db}async _withRetries(e){let t=0;for(;;)try{const t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return fn()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=un._getInstance(fn()?self:null),this.receiver._subscribe("keyChanged",(async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)}))),this.receiver._subscribe("ping",(async(e,t)=>["keyChanged"]))}async initializeSender(){var e,t;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),!this.activeServiceWorker)return;this.sender=new hn(this.activeServiceWorker);const n=await this.sender._send("ping",{},800);n&&(null===(e=n[0])||void 0===e?void 0:e.fulfilled)&&(null===(t=n[0])||void 0===t?void 0:t.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(t){}}async _isAvailable(){try{if(!indexedDB)return!1;const e=await _n();return await In(e,rn,"1"),await wn(e,rn),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite((async()=>(await this._withRetries((n=>In(n,e,t))),this.localCache[e]=t,this.notifyServiceWorker(e))))}async _get(e){const t=await this._withRetries((t=>async function(e,t){const n=bn(e,!1).get(t),r=await new vn(n).toPromise();return void 0===r?null:r.value}(t,e)));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite((async()=>(await this._withRetries((t=>wn(t,e))),delete this.localCache[e],this.notifyServiceWorker(e))))}async _poll(){const e=await this._withRetries((e=>{const t=bn(e,!1).getAll();return new vn(t).toPromise()}));if(!e)return[];if(0!==this.pendingWrites)return[];const t=[],n=new Set;for(const{fbase_key:r,value:i}of e)n.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(i)&&(this.notifyListeners(r,i),t.push(r));for(const e of Object.keys(this.localCache))this.localCache[e]&&!n.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;const n=this.listeners[e];if(n)for(const e of Array.from(n))e(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((async()=>this._poll()),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}Tn.type="LOCAL";const En=Tn;Ct("rcb"),new je(3e4,6e4);class kn{constructor(e){this.providerId=kn.PROVIDER_ID,this.auth=Nt(e)}verifyPhoneNumber(e,t){return async function(e,t,n){var r;const i=await n.verify();try{let s;if(Ne("string"==typeof i,e,"argument-error"),Ne("recaptcha"===n.type,e,"argument-error"),s="string"==typeof t?{phoneNumber:t}:t,"session"in s){const t=s.session;if("phoneNumber"in s){Ne("enroll"===t.type,e,"internal-error");const n=await function(e,t){return We(e,"POST","/v2/accounts/mfaEnrollment:start",He(e,t))}(e,{idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:s.phoneNumber,recaptchaToken:i}});return n.phoneSessionInfo.sessionInfo}{Ne("signin"===t.type,e,"internal-error");const n=(null===(r=s.multiFactorHint)||void 0===r?void 0:r.uid)||s.multiFactorUid;Ne(n,e,"missing-multi-factor-info");const o=await function(e,t){return We(e,"POST","/v2/accounts/mfaSignIn:start",He(e,t))}(e,{mfaPendingCredential:t.credential,mfaEnrollmentId:n,phoneSignInInfo:{recaptchaToken:i}});return o.phoneResponseInfo.sessionInfo}}{const{sessionInfo:t}=await async function(e,t){return We(e,"POST","/v1/accounts:sendVerificationCode",He(e,t))}(e,{phoneNumber:s.phoneNumber,recaptchaToken:i});return t}}finally{n._reset()}}(this.auth,e,w(t))}static credential(e,t){return Ht._fromVerification(e,t)}static credentialFromResult(e){const t=e;return kn.credentialFromTaggedObject(t)}static credentialFromError(e){return kn.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{phoneNumber:t,temporaryProof:n}=e;return t&&n?Ht._fromTokenResponse(t,n):null}}kn.PROVIDER_ID="phone",kn.PHONE_SIGN_IN_METHOD="phone";class Sn extends Mt{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return xt(e,this._buildIdpRequest())}_linkToIdToken(e,t){return xt(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return xt(e,this._buildIdpRequest())}_buildIdpRequest(e){const t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function Cn(e){return nn(e.auth,new Sn(e),e.bypassAuthState)}function An(e){const{auth:t,user:n}=e;return Ne(n,t,"internal-error"),async function(e,t,n=!1){const{auth:r}=e,i="reauthenticate";try{const s=await Qe(e,tn(r,i,t,e),n);Ne(s.idToken,r,"internal-error");const o=Ze(s.idToken);Ne(o,r,"internal-error");const{sub:a}=o;return Ne(e.uid===a,r,"user-mismatch"),Zt._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&Re(r,"user-mismatch"),e}}(n,new Sn(e),e.bypassAuthState)}async function Rn(e){const{auth:t,user:n}=e;return Ne(n,t,"internal-error"),async function(e,t,n=!1){const r=await Qe(e,t._linkToIdToken(e.auth,await e.getIdToken()),n);return Zt._forOperation(e,"link",r)}(n,new Sn(e),e.bypassAuthState)}class On{constructor(e,t,n,r,i=!1){this.auth=e,this.resolver=n,this.user=r,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise((async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}}))}async onAuthEvent(e){const{urlResponse:t,sessionId:n,postBody:r,tenantId:i,error:s,type:o}=e;if(s)return void this.reject(s);const a={auth:this.auth,requestUri:t,sessionId:n,tenantId:i||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(o)(a))}catch(e){this.reject(e)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Cn;case"linkViaPopup":case"linkViaRedirect":return Rn;case"reauthViaPopup":case"reauthViaRedirect":return An;default:Re(this.auth,"internal-error")}}resolve(e){Le(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){Le(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()}}const Pn=new je(2e3,1e4);class Nn extends On{constructor(e,t,n,r,i){super(e,t,r,i),this.provider=n,this.authWindow=null,this.pollId=null,Nn.currentPopupAction&&Nn.currentPopupAction.cancel(),Nn.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return Ne(e,this.auth,"internal-error"),e}async onExecution(){Le(1===this.filter.length,"Popup operations only handle one event");const e=dn();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch((e=>{this.reject(e)})),this.resolver._isIframeWebStorageSupported(this.auth,(e=>{e||this.reject(Oe(this.auth,"web-storage-unsupported"))})),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(Oe(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,Nn.currentPopupAction=null}pollUserCancellation(){const e=()=>{var t,n;(null===(n=null===(t=this.authWindow)||void 0===t?void 0:t.window)||void 0===n?void 0:n.closed)?this.pollId=window.setTimeout((()=>{this.pollId=null,this.reject(Oe(this.auth,"popup-closed-by-user"))}),8e3):this.pollId=window.setTimeout(e,Pn.get())};e()}}Nn.currentPopupAction=null;const Dn="pendingRedirect",Ln=new Map;class $n extends On{constructor(e,t,n=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,n),this.eventId=null}async execute(){let e=Ln.get(this.auth._key());if(!e){try{const t=await async function(e,t){const n=function(e){return ut(Dn,e.config.apiKey,e.name)}(t),r=function(e){return at(e._redirectPersistence)}(e);if(!await r._isAvailable())return!1;const i="true"===await r._get(n);return await r._remove(n),i}(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(t)}catch(t){e=()=>Promise.reject(t)}Ln.set(this.auth._key(),e)}return this.bypassAuthState||Ln.set(this.auth._key(),(()=>Promise.resolve(null))),e()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"!==e.type){if(e.eventId){const t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}function Mn(e,t){Ln.set(e._key(),t)}async function Un(e,t,n=!1){const r=Nt(e),i=function(e,t){return t?at(t):(Ne(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}(r,t),s=new $n(r,i,n),o=await s.execute();return o&&!n&&(delete o.user._redirectEventId,await r._persistUserIfCurrent(o.user),await r._setRedirectUser(null,t)),o}class jn{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach((n=>{this.isEventForConsumer(e,n)&&(t=!0,this.sendToConsumer(e,n),this.saveEventToCache(e))})),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return xn(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){var n;if(e.error&&!xn(e)){const r=(null===(n=e.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error";t.onError(Oe(this.auth,r))}else t.onAuthEvent(e)}isEventForConsumer(e,t){const n=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&n}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(Fn(e))}saveEventToCache(e){this.cachedEventUids.add(Fn(e)),this.lastProcessedEventTime=Date.now()}}function Fn(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter((e=>e)).join("-")}function xn({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}const Bn=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Vn=/^https?/;function Hn(e){const t=$e(),{protocol:n,hostname:r}=new URL(t);if(e.startsWith("chrome-extension://")){const i=new URL(e);return""===i.hostname&&""===r?"chrome-extension:"===n&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===n&&i.hostname===r}if(!Vn.test(n))return!1;if(Bn.test(e))return r===e;const i=e.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}const Wn=new je(3e4,6e4);function zn(){const e=pn().___jsl;if(null==e?void 0:e.H)for(const t of Object.keys(e.H))if(e.H[t].r=e.H[t].r||[],e.H[t].L=e.H[t].L||[],e.H[t].r=[...e.H[t].L],e.CP)for(let t=0;t<e.CP.length;t++)e.CP[t]=null}let qn=null;function Kn(e){return qn=qn||function(e){return new Promise(((t,n)=>{var r,i,s;function o(){zn(),gapi.load("gapi.iframes",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{zn(),n(Oe(e,"network-request-failed"))},timeout:Wn.get()})}if(null===(i=null===(r=pn().gapi)||void 0===r?void 0:r.iframes)||void 0===i?void 0:i.Iframe)t(gapi.iframes.getContext());else{if(!(null===(s=pn().gapi)||void 0===s?void 0:s.load)){const t=Ct("iframefcb");return pn()[t]=()=>{gapi.load?o():n(Oe(e,"network-request-failed"))},St(`https://apis.google.com/js/api.js?onload=${t}`).catch((e=>n(e)))}o()}})).catch((e=>{throw qn=null,e}))}(e),qn}const Gn=new je(5e3,15e3),Jn={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Yn=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Xn(e){const t=e.config;Ne(t.authDomain,e,"auth-domain-config-required");const n=t.emulator?Fe(t,"emulator/auth/iframe"):`https://${e.config.authDomain}/__/auth/iframe`,r={apiKey:t.apiKey,appName:e.name,v:ue},i=Yn.get(e.config.apiHost);i&&(r.eid=i);const s=e._getFrameworks();return s.length&&(r.fw=s.join(",")),`${n}?${y(r).slice(1)}`}const Zn={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Qn{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}const er=encodeURIComponent("fac");async function tr(e,t,n,r,i,s){Ne(e.config.authDomain,e,"auth-domain-config-required"),Ne(e.config.apiKey,e,"invalid-api-key");const o={apiKey:e.config.apiKey,appName:e.name,authType:n,redirectUrl:r,v:ue,eventId:i};if(t instanceof qt){t.setDefaultLanguage(e.languageCode),o.providerId=t.providerId||"",function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}(t.getCustomParameters())||(o.customParameters=JSON.stringify(t.getCustomParameters()));for(const[e,t]of Object.entries(s||{}))o[e]=t}if(t instanceof Kt){const e=t.getScopes().filter((e=>""!==e));e.length>0&&(o.scopes=e.join(","))}e.tenantId&&(o.tid=e.tenantId);const a=o;for(const e of Object.keys(a))void 0===a[e]&&delete a[e];const c=await e._getAppCheckToken(),l=c?`#${er}=${encodeURIComponent(c)}`:"";return`${function({config:e}){return e.emulator?Fe(e,"emulator/auth/handler"):`https://${e.authDomain}/__/auth/handler`}(e)}?${y(a).slice(1)}${l}`}const nr="webStorageSupport",rr=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=ln,this._completeRedirectFn=Un,this._overrideRedirectResult=Mn}async _openPopup(e,t,n,r){var i;return Le(null===(i=this.eventManagers[e._key()])||void 0===i?void 0:i.manager,"_initialize() not called before _openPopup()"),function(e,t,n,r=500,i=600){const s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-r)/2,0).toString();let a="";const c=Object.assign(Object.assign({},Zn),{width:r.toString(),height:i.toString(),top:s,left:o}),l=d().toLowerCase();n&&(a=mt(l)?"_blank":n),pt(l)&&(t=t||"http://localhost",c.scrollbars="yes");const u=Object.entries(c).reduce(((e,[t,n])=>`${e}${t}=${n},`),"");if(function(e=d()){var t;return _t(e)&&!!(null===(t=window.navigator)||void 0===t?void 0:t.standalone)}(l)&&"_self"!==a)return function(e,t){const n=document.createElement("a");n.href=e,n.target=t;const r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}(t||"",a),new Qn(null);const h=window.open(t||"",a,u);Ne(h,e,"popup-blocked");try{h.focus()}catch(e){}return new Qn(h)}(e,await tr(e,t,n,$e(),r),dn())}async _openRedirect(e,t,n,r){return await this._originValidation(e),i=await tr(e,t,n,$e(),r),pn().location.href=i,new Promise((()=>{}));var i}_initialize(e){const t=e._key();if(this.eventManagers[t]){const{manager:e,promise:n}=this.eventManagers[t];return e?Promise.resolve(e):(Le(n,"If manager is not set, promise should be"),n)}const n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch((()=>{delete this.eventManagers[t]})),n}async initAndGetManager(e){const t=await async function(e){const t=await Kn(e),n=pn().gapi;return Ne(n,e,"internal-error"),t.open({where:document.body,url:Xn(e),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Jn,dontclear:!0},(t=>new Promise((async(n,r)=>{await t.restyle({setHideOnLeave:!1});const i=Oe(e,"network-request-failed"),s=pn().setTimeout((()=>{r(i)}),Gn.get());function o(){pn().clearTimeout(s),n(t)}t.ping(o).then(o,(()=>{r(i)}))}))))}(e),n=new jn(e);return t.register("authEvent",(t=>(Ne(null==t?void 0:t.authEvent,e,"invalid-auth-event"),{status:n.onEvent(t.authEvent)?"ACK":"ERROR"})),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:n},this.iframes[e._key()]=t,n}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(nr,{type:nr},(n=>{var r;const i=null===(r=null==n?void 0:n[0])||void 0===r?void 0:r[nr];void 0!==i&&t(!!i),Re(e,"internal-error")}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){const t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=async function(e){if(e.config.emulator)return;const{authorizedDomains:t}=await async function(e,t={}){return We(e,"GET","/v1/projects",t)}(e);for(const e of t)try{if(Hn(e))return}catch(e){}Re(e,"unauthorized-domain")}(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return It()||ft()||_t()}};var ir="@firebase/auth",sr="0.23.2";class or{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.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;const t=this.auth.onIdTokenChanged((t=>{e((null==t?void 0:t.stsTokenManager.accessToken)||null)}));this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();const t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){Ne(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}const ar=l("authIdTokenMaxAge")||300;let cr=null;function lr(e=function(e=te){const t=re.get(e);if(!t&&e===te&&c())return de();if(!t)throw ce.create("no-app",{appName:e});return t}()){const t=ae(e,"auth");if(t.isInitialized())return t.getImmediate();const n=function(e,t){const n=ae(e,"auth");if(n.isInitialized()){const e=n.getImmediate();if(m(n.getOptions(),null!=t?t:{}))return e;Re(e,"already-initialized")}return n.initialize({options:t})}(e,{popupRedirectResolver:rr,persistence:[En,an,ln]}),r=l("authTokenSyncURL");if(r){const e=(i=r,async e=>{const t=e&&await e.getIdTokenResult(),n=t&&((new Date).getTime()-Date.parse(t.issuedAtTime))/1e3;if(n&&n>ar)return;const r=null==t?void 0:t.token;cr!==r&&(cr=r,await fetch(i,{method:r?"POST":"DELETE",headers:r?{Authorization:`Bearer ${r}`}:{}}))});!function(e,t,n){w(e).beforeAuthStateChanged(t,n)}(n,e,(()=>e(n.currentUser))),function(t,n,r,i){w(t).onIdTokenChanged((t=>e(t)),void 0,void 0)}(n)}var i;const s=(o="auth",null===(d=null===(u=a())||void 0===u?void 0:u.emulatorHosts)||void 0===d?void 0:d[o]);var o,u,d;return s&&function(e,t,n){const r=Nt(e);Ne(r._canInitEmulator,r,"emulator-config-failed"),Ne(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");const i=!!(null==n?void 0:n.disableWarnings),s=Lt(t),{host:o,port:a}=function(e){const t=Lt(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){const e=i[1];return{host:e,port:$t(r.substr(e.length+1))}}{const[e,t]=r.split(":");return{host:e,port:$t(t)}}}(t),c=null===a?"":`:${a}`;r.config.emulator={url:`${s}//${o}${c}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:o,port:a,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})}),i||function(){function e(){const e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(n,`http://${s}`),n}var ur;ur="Browser",oe(new T("auth",((e,{options:t})=>{const n=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal"),{apiKey:s,authDomain:o}=n.options;Ne(s&&!s.includes(":"),"invalid-api-key",{appName:n.name});const a={apiKey:s,authDomain:o,clientPlatform:ur,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:wt(ur)},c=new Pt(n,r,i,a);return function(e,t){const n=(null==t?void 0:t.persistence)||[],r=(Array.isArray(n)?n:[n]).map(at);(null==t?void 0:t.errorMap)&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver)}(c,t),c}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((e,t,n)=>{e.getProvider("auth-internal").initialize()}))),oe(new T("auth-internal",(e=>{return t=Nt(e.getProvider("auth").getImmediate()),new or(t);var t}),"PRIVATE").setInstantiationMode("EXPLICIT")),he(ir,sr,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";default:return}}(ur)),he(ir,sr,"esm2017");var dr=n(560),hr=n.n(dr);const pr=(e,t)=>async(n,r={})=>{const i=t?await t.getIdToken():null,s=await fetch(`${e}${n}`,{mode:"cors",...r,headers:{...i&&{authorization:`Bearer ${i}`},...r.body&&{"content-type":"application/json"},...r.headers},...r.body&&{body:JSON.stringify(r.body)}}),o=await s.json();if(s.status>202)throw Object.assign(new Error(o?.message||`HTTP Error ${s.status}`),{status:s.status,code:o?.code,body:o});return o},fr=(e,t)=>{const n=Array.isArray(t.inputProps);return Object.keys(e).reduce(((r,i)=>{if(n&&!t.inputProps.includes(i))return r;const{isRef:s,isScalar:o,isRequired:a}=t.properties[i]||{};return s&&o&&!a&&null===e[i]?r:{...r,[i]:e[i]}}),{})},mr=(e,t,n,r={},i={})=>{const s=(({primaryKey:e,properties:t,...n})=>({primaryKey:e||"id",properties:Object.keys(t||{}).reduce(((e,n)=>{const r=t[n]||{},{type:i,isScalar:s,isRequired:o,isRef:a=!1}="string"==typeof r.type?"array"===r.type?r.enum?{type:"string",isScalar:!1,isRequired:!1}:r.items?.$ref?{type:r.items.$ref.split("/").pop(),isScalar:!1,isRequired:!1,isRef:!0}:{type:r.items?.type,isScalar:!1,isRequired:!1}:{type:"date-time"===r.format?"date":r.type,isScalar:!0,isRequired:!0}:Array.isArray(r.type)?2===r.type.length?{type:"date-time"===r.format?"date":r.type[0],isScalar:!0,isRequired:!1}:{type:"json",isScalar:!0,isRequired:r.type.includes("null")}:r.$ref?{type:r.$ref.split("/").pop(),isScalar:!0,isRequired:!0,isRef:!0}:{type:r.anyOf[0].$ref.split("/").pop(),isScalar:!0,isRequired:!1,isRef:!0},c=r.inputType||("integer"===i?"number":i);return{...e,[n]:{...t[n],type:i,isScalar:s,isRequired:"boolean"==typeof r.isRequired?r.isRequired:o,isRef:a,inputType:c}}}),{}),...n}))(r),{primaryKey:o,properties:a}=s,c=(e=>{const t=e.properties||{},n=e.inputProps||Object.keys(t),r=(e,n)=>{const r=t[e]||{};if([null,void 0].includes(n)){if(!r.isRequired)return;return{id:"value-missing-validation-error"}}if(r.enum){if(r.enum.includes(n))return;return{id:"enum-validation-error",values:{enum:r.enum,value:n}}}switch(r.type){case"integer":if(r.isScalar&&("number"!=typeof n||Number.isNaN(n)))return{id:"invalid-number-validation-error"};break;case"date":case"boolean":break;default:if(r.isRequired&&!n)return{id:"value-missing-validation-error"}}};return{validate:e=>n.reduce(((t,n)=>{const i=r(n,e[n]);return i?{...t,[n]:i}:t}),{}),validateAttr:r}})(s),l=(e=>{const t=(n=e,[...n].reduce(((e,t)=>t===t.toUpperCase()?`${e}-${t.toLowerCase()}`:`${e}${t}`),""));var n;return(e,n)=>`/${t}${e?`/${encodeURIComponent(e)}`:""}${((e={})=>Object.keys(e).length?`?q=${JSON.stringify(e)}`:"")(n)}`})(n),u=(...n)=>pr(e,t.authUser)(...n),d=({data:e,...t})=>u(l(null,t),{method:"POST",body:fr(e,s)}),h=({data:e,...t})=>{const{where:n,...r}=t;return u(l(n[o],r),{method:"PUT",body:fr(e,s)})},p=e=>{if(!e)return e;const t=Object.keys(e).reduce(((t,n)=>{const r=a[n]||{},{type:s,isScalar:o,isRef:c,format:l,items:u}=r;if(c){const r=`${(d=s)[0].toLowerCase()}${d.slice(1)}`;return o?{...t,[n]:i[r].parse(e[n])}:{...t,[n]:"function"==typeof i[r]?.parse?e[n].map((e=>i[r].parse(e))):e[n]}}var d;return{...t,[n]:"date"===s&&e[n]?new Date(e[n]):e[n]}}),{});return"function"==typeof s.parse?s.parse(t):t},f=Object.keys(a||{}).reduce(((e,t)=>a[t].isRef&&a[t].isScalar&&a[t].isRequired?Object.assign(e,{all:e.all.concat(t),oneToOne:e.oneToOne.concat(t),requiredOneToOne:e.requiredOneToOne.concat(t)}):a[t].isRef&&a[t].isScalar?Object.assign(e,{all:e.all.concat(t),oneToOne:e.oneToOne.concat(t),optionalOneToOne:e.optionalOneToOne.concat(t)}):a[t].isRef?Object.assign(e,{all:e.all.concat(t),oneToMany:e.oneToMany.concat(t)}):e),{all:[],oneToOne:[],requiredOneToOne:[],optionalOneToOne:[],oneToMany:[]});return{get schema(){return s},get relations(){return f},parse:p,validateAttr:c.validateAttr,validate:c.validate,findMany:e=>u(l(null,e)).then((e=>e.map(p))),findById:(e,t)=>u(l(e,t)).then(p),create:d,update:h,upsert:e=>e.where[o]?h({where:e.where,data:e.update}):d({data:e.create}),delete:e=>u(l(e),{method:"DELETE"}),stats:()=>u(l("_stats"))}},gr=(e,t,n)=>Object.keys(n.properties).reduce(((r,i)=>{const s=n.properties[i].$ref.split("/").pop();return Object.assign(r,{[i]:mr(e,t,n.definitions[s].plural||`${i}s`,n.definitions[s],r)})}),{}),yr=(e,t)=>Object.keys(e.definitions).reduce(((n,r)=>({...n,[r]:t[r]?{...e.definitions[r],...t[r],properties:Object.keys(e.definitions[r].properties).reduce(((n,i)=>({...n,[i]:{...e.definitions[r].properties[i],...(t[r].properties||{})[i]}})),t[r].properties||{})}:e.definitions[r]})),{}),vr=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Country":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"incomeFilter":{"type":["integer","null"]},"canApply":{"type":"boolean","default":false},"capital":{"type":"array","items":{"type":"string"}},"timeZone":{"type":["string","null"]},"flag":{"type":["string","null"]},"currency":{"anyOf":[{"$ref":"#/definitions/Currency"},{"type":"null"}]},"contracts":{"type":"array","items":{"$ref":"#/definitions/Contract"}},"users":{"type":"array","items":{"$ref":"#/definitions/User"}},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}},"applicationNationalities":{"type":"array","items":{"$ref":"#/definitions/Application"}},"educationLevels":{"type":"array","items":{"$ref":"#/definitions/EducationLevel"}},"universities":{"type":"array","items":{"$ref":"#/definitions/University"}}}},"Currency":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"countries":{"type":"array","items":{"$ref":"#/definitions/Country"}}}},"User":{"type":"object","properties":{"uid":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":["string","null"]},"role":{"type":["string","null"],"enum":["staff","manager","finance","admin"]},"disabled":{"type":"boolean","default":false},"lang":{"type":["string","null"],"enum":["en","es","pt"]},"referralSource":{"type":["string","null"],"enum":["word_of_mouth","codigo_m","social","google","print","tv","radio","other"]},"identifiesAsFemale":{"type":["boolean","null"]},"dateOfBirth":{"type":["string","null"],"format":"date-time"},"identificationNumber":{"type":["string","null"]},"mobileNumber":{"type":["string","null"]},"github":{"type":["string","null"]},"linkedin":{"type":["string","null"]},"bio":{"type":["string","null"]},"country":{"anyOf":[{"$ref":"#/definitions/Country"},{"type":"null"}]},"signupCohort":{"anyOf":[{"$ref":"#/definitions/Cohort"},{"type":"null"}]},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}},"contractsAsCheckPilot":{"type":"array","items":{"$ref":"#/definitions/Contract"}},"contracts":{"type":"array","items":{"$ref":"#/definitions/Contract"}},"dropouts":{"type":"array","items":{"$ref":"#/definitions/Dropout"}},"gigs":{"type":"array","items":{"$ref":"#/definitions/Gig"}},"messages":{"type":"array","items":{"$ref":"#/definitions/Message"}},"students":{"type":"array","items":{"$ref":"#/definitions/Student"}},"activityLog":{"type":"array","items":{"$ref":"#/definitions/ActivityLogEntry"}},"authoredActivityLog":{"type":"array","items":{"$ref":"#/definitions/ActivityLogEntry"}}}},"Track":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"programs":{"type":"array","items":{"$ref":"#/definitions/Program"}}}},"Program":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"description":{"type":["string","null"]},"track":{"$ref":"#/definitions/Track"},"cohorts":{"type":"array","items":{"$ref":"#/definitions/Cohort"}},"stages":{"type":"array","items":{"$ref":"#/definitions/Stage"}}}},"Stage":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"order":{"type":"integer"},"program":{"$ref":"#/definitions/Program"},"cohorts":{"type":"array","items":{"$ref":"#/definitions/Cohort"}}}},"Cohort":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"name":{"type":"string"},"lang":{"type":["string","null"],"enum":["en","es","pt"]},"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"},"timeZone":{"type":["string","null"]},"startTime":{"type":["string","null"]},"endTime":{"type":["string","null"]},"legacySlug":{"type":"string"},"vacancies":{"type":["integer","null"]},"admissionStart":{"type":["string","null"],"format":"date-time"},"admissionEnd":{"type":["string","null"],"format":"date-time"},"admissionCountries":{"type":"array","items":{"type":"string"}},"placementStart":{"type":["string","null"],"format":"date-time"},"placementDuration":{"type":["integer","null"]},"program":{"$ref":"#/definitions/Program"},"stage":{"$ref":"#/definitions/Stage"},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}},"links":{"type":"array","items":{"$ref":"#/definitions/CohortLink"}},"dropouts":{"type":"array","items":{"$ref":"#/definitions/Dropout"}},"gigs":{"type":"array","items":{"$ref":"#/definitions/Gig"}},"students":{"type":"array","items":{"$ref":"#/definitions/Student"}},"signupUsers":{"type":"array","items":{"$ref":"#/definitions/User"}},"activityLog":{"type":"array","items":{"$ref":"#/definitions/ActivityLogEntry"}}}},"Student":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"legacyStudentCode":{"type":["string","null"]},"cohort":{"$ref":"#/definitions/Cohort"},"user":{"$ref":"#/definitions/User"}}},"CohortLink":{"type":"object","properties":{"id":{"type":"integer"},"url":{"type":"string"},"visibility":{"type":"string","enum":["public","members","staff","team","admin"]},"cohort":{"$ref":"#/definitions/Cohort"}}},"Dropout":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"date":{"type":"string","format":"date-time"},"reasonDetail":{"type":["string","null"]},"notes":{"type":["string","null"]},"staffSad":{"type":"boolean"},"covidRelated":{"type":["boolean","null"]},"reason":{"type":"string","enum":["dropout","noShow","invitedToLeave","changeCohort"]},"completedProjects":{"type":"integer"},"lastProject":{"type":["string","null"]},"cohort":{"$ref":"#/definitions/Cohort"},"user":{"$ref":"#/definitions/User"}}},"IscedLevel":{"type":"object","properties":{"id":{"type":"integer"},"label":{"type":"string"},"educationLevels":{"type":"array","items":{"$ref":"#/definitions/EducationLevel"}}}},"EducationLevel":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lang":{"type":"string","enum":["en","es","pt"]},"label":{"type":"string"},"country":{"$ref":"#/definitions/Country"},"iscedLevel":{"$ref":"#/definitions/IscedLevel"},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}}}},"University":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lang":{"type":"string","enum":["en","es","pt"]},"name":{"type":"string"},"filter":{"type":"boolean"},"country":{"$ref":"#/definitions/Country"},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}}}},"Application":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"dateOfBirth":{"type":"string","format":"date-time"},"isAllowedToWork":{"type":"boolean"},"hasValidIdDocument":{"type":"boolean"},"locality":{"type":["number","string","boolean","object","array","null"]},"householdSize":{"type":"integer"},"children":{"type":"integer"},"householdIncome":{"type":"integer"},"schoolType":{"type":["string","null"],"enum":["private","public","other"]},"educationSubject":{"type":["string","null"],"enum":["design_and_media","software_engineering","engineering","management_and_business","languages","science","health","social_sciences","arts","comms_and_advertising","education","cooking","tourism","economics_and_accounting","law","other"]},"isStudying":{"type":"boolean"},"workStatus":{"type":"string","enum":["never","not_now","yes"]},"isLookingForWork":{"type":["boolean","null"]},"monthsLookingForWork":{"type":["integer","null"]},"monthsUnemployed":{"type":["integer","null"]},"workRole":{"type":["string","null"],"enum":["waitress","promoter","manager","cashier","intern","operative","call_center","receptionist","sales_agent","assistant","professional","technical","consultant","other"]},"freelance":{"type":["boolean","null"]},"workFormal":{"type":["boolean","null"]},"workIncome":{"type":["integer","null"]},"failedFilters":{"type":"array","items":{"type":"string"}},"bypassFilters":{"type":"boolean","default":false},"isReady":{"type":"boolean","default":false},"isReturningApplicant":{"type":["boolean","null"]},"legacyAdmissionCohortSlug":{"type":["string","null"]},"cohort":{"$ref":"#/definitions/Cohort"},"user":{"$ref":"#/definitions/User"},"country":{"$ref":"#/definitions/Country"},"nationality":{"$ref":"#/definitions/Country"},"educationLevel":{"$ref":"#/definitions/EducationLevel"},"university":{"anyOf":[{"$ref":"#/definitions/University"},{"type":"null"}]},"challengeAssignments":{"type":"array","items":{"$ref":"#/definitions/ApplicationChallengeAssignment"}}}},"ApplicationChallenge":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"slug":{"type":"string"},"version":{"type":"string"},"trackId":{"type":"integer"},"langs":{"type":"array","enum":["en","es","pt"]},"json":{"type":"string"},"archived":{"type":"boolean","default":false},"assignments":{"type":"array","items":{"$ref":"#/definitions/ApplicationChallengeAssignment"}}}},"ApplicationChallengeAssignment":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"application":{"$ref":"#/definitions/Application"},"challenge":{"$ref":"#/definitions/ApplicationChallenge"}}},"ActivityLogEntry":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"type":{"type":"string","enum":["challenge","application_filter","application_filter_bypass","application_cohort_change"]},"data":{"type":["number","string","boolean","object","array","null"]},"path":{"type":"string"},"author":{"$ref":"#/definitions/User"},"user":{"$ref":"#/definitions/User"},"cohort":{"$ref":"#/definitions/Cohort"}}},"Contract":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"isEmployment":{"type":"boolean"},"feeAmount":{"type":"integer"},"hoursPerWeek":{"type":"integer"},"start":{"type":"string","format":"date-time"},"end":{"type":["string","null"],"format":"date-time"},"isTrial":{"type":"boolean","default":false},"source":{"type":["string","null"],"enum":["graduate","referral","jazzhr","web","linkedin","other"]},"checkPilot":{"anyOf":[{"$ref":"#/definitions/User"},{"type":"null"}]},"country":{"$ref":"#/definitions/Country"},"user":{"$ref":"#/definitions/User"},"gigs":{"type":"array","items":{"$ref":"#/definitions/Gig"}}}},"Gig":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"role":{"type":"string","enum":["bm","pdc","js","ux"]},"hoursPerWeek":{"type":"integer"},"start":{"type":"string","format":"date-time"},"end":{"type":["string","null"],"format":"date-time"},"cohort":{"$ref":"#/definitions/Cohort"},"contract":{"$ref":"#/definitions/Contract"},"user":{"$ref":"#/definitions/User"}}},"Message":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"key":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"transport":{"type":"string","enum":["mandrill","slack"]},"status":{"type":"string","default":"PENDING","enum":["PENDING","QUEUED","ERROR","SENT"]},"data":{"type":["number","string","boolean","object","array","null"]},"taskInfo":{"type":["number","string","boolean","object","array","null"]},"user":{"anyOf":[{"$ref":"#/definitions/User"},{"type":"null"}]},"logs":{"type":"array","items":{"$ref":"#/definitions/MessageLog"}}}},"MessageLog":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"statusText":{"type":["string","null"]},"message":{"$ref":"#/definitions/Message"}}}},"type":"object","properties":{"country":{"$ref":"#/definitions/Country"},"currency":{"$ref":"#/definitions/Currency"},"user":{"$ref":"#/definitions/User"},"track":{"$ref":"#/definitions/Track"},"program":{"$ref":"#/definitions/Program"},"stage":{"$ref":"#/definitions/Stage"},"cohort":{"$ref":"#/definitions/Cohort"},"student":{"$ref":"#/definitions/Student"},"cohortLink":{"$ref":"#/definitions/CohortLink"},"dropout":{"$ref":"#/definitions/Dropout"},"iscedLevel":{"$ref":"#/definitions/IscedLevel"},"educationLevel":{"$ref":"#/definitions/EducationLevel"},"university":{"$ref":"#/definitions/University"},"application":{"$ref":"#/definitions/Application"},"applicationChallenge":{"$ref":"#/definitions/ApplicationChallenge"},"applicationChallengeAssignment":{"$ref":"#/definitions/ApplicationChallengeAssignment"},"activityLogEntry":{"$ref":"#/definitions/ActivityLogEntry"},"contract":{"$ref":"#/definitions/Contract"},"gig":{"$ref":"#/definitions/Gig"},"message":{"$ref":"#/definitions/Message"},"messageLog":{"$ref":"#/definitions/MessageLog"}}}'),br={Country:{primaryKey:"code",plural:"countries",searchProps:["code","name","timeZone"],getOptionLabel:({code:e,name:t})=>`${e} / ${t}`},ActivityLogEntry:{plural:"activityLog"},User:{primaryKey:"uid",inputProps:["firstName","lastName","email","password","lang","identifiesAsFemale","dateOfBirth","country","identificationNumber","mobileNumber","github","linkedin","bio","role","signupCohort","disabled","referralSource"],searchProps:["firstName","lastName","email"],getOptionLabel:({firstName:e,lastName:t,email:n})=>`${e} ${t} (${n})`,properties:{email:{inputType:"email"},mobileNumber:{inputType:"phone"},bio:{inputType:"textarea"}},parse:e=>{const t=e.github?`https://github.com/${e.github}.png?size=`:`https://www.gravatar.com/avatar/${hr()(e.email)}?s=`;return{...e,fullName:`${e.firstName||""}${e.lastName?` ${e.lastName}`:""}`,avatar:e=>`${t}${e}`,isStaff:["staff","manager","finance","admin"].includes(e.role),isManager:["manager","finance","admin"].includes(e.role),isFinance:["finance","admin"].includes(e.role),isAdmin:"admin"===e.role}}},Track:{searchProps:["name"]},Program:{searchProps:["name"]},Stage:{searchProps:["name"]},Cohort:{inputProps:["program","stage","lang","name","start","end","timeZone","startTime","endTime","vacancies","admissionStart","admissionEnd","placementStart","admissionCountries"],searchProps:["name"],getOptionLabel:({id:e,name:t,stage:n})=>`${t}${n?` - ${n.name}`:""} (id: ${e})`,properties:{},parse:e=>{const t=Date.now();let n;if(e.placementStart){const r=e.placementDuration||270;new Date(+e.placementStart+24*r*60*60*1e3)<t?n="placement_ended":e.placementStart<t&&(n="placement_started")}!n&&e.end<t&&(n="ended"),!n&&e.start<t&&(n="started");const r=!!e.admissionEnd&&+e.admissionEnd+864e5;!n&&r&&r<t&&(n="admission_ended"),!n&&e.admissionStart&&e.admissionStart<t&&(n="admission_started"),!n&&e.admissionStart&&e.admissionEnd&&(n="planned"),n||(n="draft");const i=e.start>t&&e.vacancies?e.vacancies:e._count?.students||e.students?.length||0;return{...e,status:n,size:i}}},Student:{inputProps:["cohort","user"],searchProps:[]},Dropout:{inputProps:["cohort","user","date","reason","reasonDetail","lastProject","completedProjects","notes","staffSad","covidRelated"],searchProps:["user.uid","user.firstName","user.lastName","user.email","cohort.name"]},Contract:{inputProps:["user","country","isEmployment","feeAmount","hoursPerWeek","start","end","isTrial","checkPilot","source"],searchProps:["user.firstName","user.lastName","user.email"],getOptionLabel:({id:e,user:t})=>`${t?.firstName} (id: ${e})`},Gig:{inputProps:["cohort","user","contract","role","hoursPerWeek","start","end"]},Application:{inputProps:["user","cohort","dateOfBirth","country","locality","nationality","isAllowedToWork","hasValidIdDocument","householdSize","children","householdIncome","educationLevel","schoolType","educationSubject","university","isStudying","workStatus","isLookingForWork","monthsLookingForWork","monthsUnemployed","workRole","freelance","workFormal","workIncome","isReady","bypassFilters"],properties:{locality:{isRequired:!0},isReady:{isRequired:!1},bypassFilters:{isRequired:!1}},parse:e=>{const t="boolean"==typeof e.hasFailedFilters?e.hasFailedFilters:"number"==typeof e.failedFilters?.length?e.failedFilters.length>0:void 0;if(!e.cohort?.admissionEnd||void 0===t)return e;const n=Date.now();let r;return r=e.isReady?"ready":t&&!e.bypassFilters?"rejected":e.createdAt<n-7776e6?"expired":"admission_started"!==e.cohort?.status?"admission_ended":"active",{...e,status:r}}},IscedLevel:{parse:e=>{const t=Math.floor(e.id/10);return{...e,level:t,completed:10*t<e.id}}},EducationLevel:{searchProps:["label"]},University:{plural:"universities",searchProps:["name"]}},_r="https://raw.githubusercontent.com/Laboratoria/bootcamp",Ir=()=>fetch("https://api.github.com/repos/Laboratoria/bootcamp/releases/latest").then((e=>e.json())).then((({tag_name:e})=>e)),wr=e=>t=>t.filter((t=>!(e.locale&&e.locale!==t.locale||e.track&&e.track!==t.track))),Tr=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Country":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/definitions/Job"}},"companies":{"type":"array","items":{"$ref":"#/definitions/Company"}}}},"Industry":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"name":{"type":"string"},"companies":{"type":"array","items":{"$ref":"#/definitions/Company"}}}},"Company":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"source":{"type":"string"},"sourceId":{"type":"string"},"name":{"type":"string"},"size":{"type":["string","null"],"enum":["A_2_10","B_11_50","C_51_200","D_201_500","E_501_1000","F_1001_5000","G_5001_10000","H_10001_plus"]},"data":{"type":["number","string","boolean","object","array","null"]},"web":{"type":["string","null"]},"twitter":{"type":["string","null"]},"github":{"type":["string","null"]},"facebook":{"type":["string","null"]},"country":{"anyOf":[{"$ref":"#/definitions/Country"},{"type":"null"}]},"industry":{"anyOf":[{"$ref":"#/definitions/Industry"},{"type":"null"}]},"jobs":{"type":"array","items":{"$ref":"#/definitions/Job"}},"categories":{"type":"array","enum":["Tech_Consultancy","Digital_Transformation","Agency","Startups","High_tech","Traditional_Consulting"]}}},"Job":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"source":{"type":"string"},"sourceId":{"type":"string"},"title":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"modality":{"type":"string"},"publicUrl":{"type":["string","null"]},"location":{"type":["string","null"]},"data":{"type":["number","string","boolean","object","array","null"]},"description":{"type":["string","null"]},"descriptionHTML":{"type":["string","null"]},"functions":{"type":["string","null"]},"functionsHTML":{"type":["string","null"]},"seniority":{"type":["string","null"]},"remote":{"type":["boolean","null"]},"remoteOption":{"type":["string","null"],"enum":["remote_for_now","locally_remote","fully_remote","no_remote","mixed"]},"lang":{"type":["string","null"],"enum":["en","es","pt"]},"maxSalary":{"type":["integer","null"]},"minSalary":{"type":["integer","null"]},"tags":{"type":"array","items":{"type":"string"}},"company":{"$ref":"#/definitions/Company"},"country":{"anyOf":[{"$ref":"#/definitions/Country"},{"type":"null"}]},"validityReviews":{"type":"array","items":{"$ref":"#/definitions/JobValidityReview"}},"applications":{"type":"array","items":{"$ref":"#/definitions/JobApplication"}}}},"JobValidityReview":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"isValid":{"type":"boolean"},"profileType":{"type":["string","null"],"enum":["design","front_end","angular","react","vue","back_end","full_stack","ux","other"]},"invalidReason":{"type":["string","null"],"enum":["unrelated","experience","qualifications","other"]},"comment":{"type":["string","null"]},"job":{"$ref":"#/definitions/Job"}}},"JobApplication":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"uid":{"type":"string"},"status":{"type":"string","default":"pending","enum":["pending","applied","interview","challenge","followup","hired","not_hired"]},"cohortId":{"type":["integer","null"]},"hireDate":{"type":["string","null"],"format":"date-time"},"jobStartDate":{"type":["string","null"],"format":"date-time"},"netSalary":{"type":["integer","null"]},"grossSalary":{"type":["integer","null"]},"currency":{"type":["string","null"]},"job":{"$ref":"#/definitions/Job"}}}},"type":"object","properties":{"country":{"$ref":"#/definitions/Country"},"industry":{"$ref":"#/definitions/Industry"},"company":{"$ref":"#/definitions/Company"},"job":{"$ref":"#/definitions/Job"},"jobValidityReview":{"$ref":"#/definitions/JobValidityReview"},"jobApplication":{"$ref":"#/definitions/JobApplication"}}}'),Er={Country:{plural:"countries"},Job:{},Company:{plural:"companies"}},kr=e=>e>9?`${e}`:`0${e}`,Sr=e=>`${kr(e.getUTCDate())}/${kr(e.getUTCMonth()+1)}/${e.getUTCFullYear()}`,Cr=e=>`${kr(e.getUTCHours())}:${kr(e.getUTCMinutes())}:${e.getUTCSeconds()} UTC`,Ar=e=>`${Sr(e)} ${Cr(e)}`,Rr={es:"es-ES",pt:"pt-BR"},Or=(e,t="es",n=!1)=>new Intl.DateTimeFormat(Rr[t],{...n&&{year:"numeric"},month:"long",day:"numeric",timeZone:"UTC"}).format(new Date(e)),Pr=(e,t)=>{let n=t.getFullYear()-e.getFullYear();const r=t.getMonth()-e.getMonth();return(r<0||0===r&&t.getDate()<e.getDate())&&n--,n},Nr=(e,t,n,r)=>((e,t,n)=>new Intl.NumberFormat(`${e}-${t}`,{currency:n}))(t,n,r).format(e),Dr=e=>parseInt(e.replace(/[,\.]/g,""),10),Lr=e=>{try{return JSON.parse(window.localStorage.getItem(e))}catch(e){return null}},$r=({firebaseApiKey:e="AIzaSyAXbaEbpq8NOfn0r8mIrcoHvoGRkJThwdc",firebaseProject:t="laboratoria-la",coreApiUrl:n="https://us-central1-outpost-272720.cloudfunctions.net/core-api",jobsApiUrl:r="https://us-central1-outpost-272720.cloudfunctions.net/jobs-api"}={})=>{const i=de({apiKey:e,authDomain:`${t}.firebaseapp.com`,databaseURL:`https://${t}.firebaseio.com`,projectId:t}),s=lr(i),o={authUser:void 0,user:void 0},a=((e,t)=>({...gr(e,t,{...vr,definitions:yr(vr,br)}),gcpLog:{getEntries:async n=>{const r=pr(e,t.authUser);return await r(`/gcp-logs?q=${JSON.stringify(n)}`)}}}))(n,o),c=((e,t)=>gr(e,t,{...Tr,definitions:yr(Tr,Er)}))(r,o),l={onChange:e=>{return t=t=>{if(!t)return Object.assign(o,{authUser:null,user:null}),e(o);Object.assign(o,{authUser:t}),a.user.findById(t.uid).then((t=>{Object.assign(o,{user:t}),e(o)})).catch((t=>{console.error(t),Object.assign(o,{authUser:null,user:null}),e(o)}))},w(s).onAuthStateChanged(t,undefined,undefined);var t},signIn:(e,t)=>function(e,t,n){return async function(e,t){return nn(Nt(e),t)}(w(e),zt.credential(t,n))}(s,e,t),signOut:()=>w(s).signOut(),sendPasswordResetEmail:e=>async function(e,t,n){var r;const i=Nt(e),s={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};if(null===(r=i._getRecaptchaConfig())||void 0===r?void 0:r.emailPasswordEnabled){const e=await Rt(i,s,"getOobCode",!0);await jt(i,e)}else await jt(i,s).catch((async e=>{if("auth/missing-recaptcha-token"!==e.code)return Promise.reject(e);{console.log("Password resets are protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the password reset flow.");const e=await Rt(i,s,"getOobCode",!0);await jt(i,e)}}))}(s,e)};return{...c,project:{findMany:(e={})=>(async e=>fetch(`${_r}/${e||await Ir()}/dist/projects.json`).then((e=>e.json())))(e.tag).then(wr(e)),findById:(e,t={})=>(async(e,t)=>fetch(`${_r}/${t||await Ir()}/dist/projects/${e}.json`).then((e=>e.json())))(e,t.tag)},topic:{findMany:(e={})=>(async e=>fetch(`${_r}/${e||await Ir()}/dist/topics.json`).then((e=>e.json())))(e.tag).then(wr(e)),findById:(e,t={})=>(async(e,t)=>fetch(`${_r}/${t||await Ir()}/dist/topics/${e}.json`).then((e=>e.json())))(e,t.tag)},learningObjective:{findMany:(e={})=>(async e=>fetch(`${_r}/${e||await Ir()}/dist/learning-objectives.json`).then((e=>e.json())))(e.tag)},...a,auth:l,firebaseApp:i}}})();var i=r.ri,s=r.xG,o=r.p6,a=r.o0,c=r.bh,l=r.mr,u=r.ut,d=r.Pt,h=r.z5;export{i as createApp,s as formatCurrency,o as formatDate,a as formatDateTime,c as formatMonth,l as formatTime,u as getAgeAt,d as loadFromLocalStorage,h as parseCurrency};
|
2
|
+
var e={560:function(e,t,n){var r;!function(i){function s(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,t,n,r,i,o){return s((a=s(s(t,e),s(r,o)))<<(c=i)|a>>>32-c,n);var a,c}function a(e,t,n,r,i,s,a){return o(t&n|~t&r,e,t,i,s,a)}function c(e,t,n,r,i,s,a){return o(t&r|n&~r,e,t,i,s,a)}function l(e,t,n,r,i,s,a){return o(t^n^r,e,t,i,s,a)}function u(e,t,n,r,i,s,a){return o(n^(t|~r),e,t,i,s,a)}function d(e,t){var n,r,i,o,d;e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;var h=1732584193,p=-271733879,f=-1732584194,m=271733878;for(n=0;n<e.length;n+=16)r=h,i=p,o=f,d=m,h=a(h,p,f,m,e[n],7,-680876936),m=a(m,h,p,f,e[n+1],12,-389564586),f=a(f,m,h,p,e[n+2],17,606105819),p=a(p,f,m,h,e[n+3],22,-1044525330),h=a(h,p,f,m,e[n+4],7,-176418897),m=a(m,h,p,f,e[n+5],12,1200080426),f=a(f,m,h,p,e[n+6],17,-1473231341),p=a(p,f,m,h,e[n+7],22,-45705983),h=a(h,p,f,m,e[n+8],7,1770035416),m=a(m,h,p,f,e[n+9],12,-1958414417),f=a(f,m,h,p,e[n+10],17,-42063),p=a(p,f,m,h,e[n+11],22,-1990404162),h=a(h,p,f,m,e[n+12],7,1804603682),m=a(m,h,p,f,e[n+13],12,-40341101),f=a(f,m,h,p,e[n+14],17,-1502002290),h=c(h,p=a(p,f,m,h,e[n+15],22,1236535329),f,m,e[n+1],5,-165796510),m=c(m,h,p,f,e[n+6],9,-1069501632),f=c(f,m,h,p,e[n+11],14,643717713),p=c(p,f,m,h,e[n],20,-373897302),h=c(h,p,f,m,e[n+5],5,-701558691),m=c(m,h,p,f,e[n+10],9,38016083),f=c(f,m,h,p,e[n+15],14,-660478335),p=c(p,f,m,h,e[n+4],20,-405537848),h=c(h,p,f,m,e[n+9],5,568446438),m=c(m,h,p,f,e[n+14],9,-1019803690),f=c(f,m,h,p,e[n+3],14,-187363961),p=c(p,f,m,h,e[n+8],20,1163531501),h=c(h,p,f,m,e[n+13],5,-1444681467),m=c(m,h,p,f,e[n+2],9,-51403784),f=c(f,m,h,p,e[n+7],14,1735328473),h=l(h,p=c(p,f,m,h,e[n+12],20,-1926607734),f,m,e[n+5],4,-378558),m=l(m,h,p,f,e[n+8],11,-2022574463),f=l(f,m,h,p,e[n+11],16,1839030562),p=l(p,f,m,h,e[n+14],23,-35309556),h=l(h,p,f,m,e[n+1],4,-1530992060),m=l(m,h,p,f,e[n+4],11,1272893353),f=l(f,m,h,p,e[n+7],16,-155497632),p=l(p,f,m,h,e[n+10],23,-1094730640),h=l(h,p,f,m,e[n+13],4,681279174),m=l(m,h,p,f,e[n],11,-358537222),f=l(f,m,h,p,e[n+3],16,-722521979),p=l(p,f,m,h,e[n+6],23,76029189),h=l(h,p,f,m,e[n+9],4,-640364487),m=l(m,h,p,f,e[n+12],11,-421815835),f=l(f,m,h,p,e[n+15],16,530742520),h=u(h,p=l(p,f,m,h,e[n+2],23,-995338651),f,m,e[n],6,-198630844),m=u(m,h,p,f,e[n+7],10,1126891415),f=u(f,m,h,p,e[n+14],15,-1416354905),p=u(p,f,m,h,e[n+5],21,-57434055),h=u(h,p,f,m,e[n+12],6,1700485571),m=u(m,h,p,f,e[n+3],10,-1894986606),f=u(f,m,h,p,e[n+10],15,-1051523),p=u(p,f,m,h,e[n+1],21,-2054922799),h=u(h,p,f,m,e[n+8],6,1873313359),m=u(m,h,p,f,e[n+15],10,-30611744),f=u(f,m,h,p,e[n+6],15,-1560198380),p=u(p,f,m,h,e[n+13],21,1309151649),h=u(h,p,f,m,e[n+4],6,-145523070),m=u(m,h,p,f,e[n+11],10,-1120210379),f=u(f,m,h,p,e[n+2],15,718787259),p=u(p,f,m,h,e[n+9],21,-343485551),h=s(h,r),p=s(p,i),f=s(f,o),m=s(m,d);return[h,p,f,m]}function h(e){var t,n="",r=32*e.length;for(t=0;t<r;t+=8)n+=String.fromCharCode(e[t>>5]>>>t%32&255);return n}function p(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t<n.length;t+=1)n[t]=0;var r=8*e.length;for(t=0;t<r;t+=8)n[t>>5]|=(255&e.charCodeAt(t/8))<<t%32;return n}function f(e){var t,n,r="0123456789abcdef",i="";for(n=0;n<e.length;n+=1)t=e.charCodeAt(n),i+=r.charAt(t>>>4&15)+r.charAt(15&t);return i}function m(e){return unescape(encodeURIComponent(e))}function g(e){return function(e){return h(d(p(e),8*e.length))}(m(e))}function y(e,t){return function(e,t){var n,r,i=p(e),s=[],o=[];for(s[15]=o[15]=void 0,i.length>16&&(i=d(i,8*e.length)),n=0;n<16;n+=1)s[n]=909522486^i[n],o[n]=1549556828^i[n];return r=d(s.concat(p(t)),512+8*t.length),h(d(o.concat(r),640))}(m(e),m(t))}function v(e,t,n){return t?n?y(t,e):f(y(t,e)):n?g(e):f(g(e))}void 0===(r=function(){return v}.call(t,n,t,e))||(e.exports=r)}()}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var r={};(()=>{n.d(r,{ri:()=>$r,xG:()=>Nr,p6:()=>Sr,o0:()=>Ar,bh:()=>Or,mr:()=>Cr,ut:()=>Pr,Pt:()=>Lr,z5:()=>Dr});const e=function(e){const t=[];let n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);i<128?t[n++]=i:i<2048?(t[n++]=i>>6|192,t[n++]=63&i|128):55296==(64512&i)&&r+1<e.length&&56320==(64512&e.charCodeAt(r+1))?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++r)),t[n++]=i>>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128)}return t},t={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let t=0;t<e.length;t+=3){const i=e[t],s=t+1<e.length,o=s?e[t+1]:0,a=t+2<e.length,c=a?e[t+2]:0,l=i>>2,u=(3&i)<<4|o>>4;let d=(15&o)<<2|c>>6,h=63&c;a||(h=64,s||(d=64)),r.push(n[l],n[u],n[d],n[h])}return r.join("")},encodeString(t,n){return this.HAS_NATIVE_SUPPORT&&!n?btoa(t):this.encodeByteArray(e(t),n)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n<e.length;){const i=e[n++];if(i<128)t[r++]=String.fromCharCode(i);else if(i>191&&i<224){const s=e[n++];t[r++]=String.fromCharCode((31&i)<<6|63&s)}else if(i>239&&i<365){const s=((7&i)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],o=e[n++];t[r++]=String.fromCharCode((15&i)<<12|(63&s)<<6|63&o)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let t=0;t<e.length;){const s=n[e.charAt(t++)],o=t<e.length?n[e.charAt(t)]:0;++t;const a=t<e.length?n[e.charAt(t)]:64;++t;const c=t<e.length?n[e.charAt(t)]:64;if(++t,null==s||null==o||null==a||null==c)throw new i;const l=s<<2|o>>4;if(r.push(l),64!==a){const e=o<<4&240|a>>2;if(r.push(e),64!==c){const e=a<<6&192|c;r.push(e)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class i extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const s=function(n){return function(n){const r=e(n);return t.encodeByteArray(r,!0)}(n).replace(/\./g,"")},o=function(e){try{return t.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null},a=()=>{try{return function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==n.g)return n.g;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&o(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},c=()=>{var e;return null===(e=a())||void 0===e?void 0:e.config},l=e=>{var t;return null===(t=a())||void 0===t?void 0:t[`_${e}`]};class u{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,n)=>{t?this.reject(t):this.resolve(n),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,n))}}}function d(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}class h extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,h.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,p.prototype.create)}}class p{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},r=`${this.service}/${e}`,i=this.errors[e],s=i?function(e,t){return e.replace(f,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(i,n):"Error",o=`${this.serviceName}: ${s} (${r}).`;return new h(r,o,n)}}const f=/\{\$([^}]+)}/g;function m(e,t){if(e===t)return!0;const n=Object.keys(e),r=Object.keys(t);for(const i of n){if(!r.includes(i))return!1;const n=e[i],s=t[i];if(g(n)&&g(s)){if(!m(n,s))return!1}else if(n!==s)return!1}for(const e of r)if(!n.includes(e))return!1;return!0}function g(e){return null!==e&&"object"==typeof e}function y(e){const t=[];for(const[n,r]of Object.entries(e))Array.isArray(r)?r.forEach((e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))})):t.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return t.length?"&"+t.join("&"):""}function v(e){const t={};return e.replace(/^\?/,"").split("&").forEach((e=>{if(e){const[n,r]=e.split("=");t[decodeURIComponent(n)]=decodeURIComponent(r)}})),t}function b(e){const t=e.indexOf("?");if(!t)return"";const n=e.indexOf("#",t);return e.substring(t,n>0?n:void 0)}class _{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then((()=>{e(this)})).catch((e=>{this.error(e)}))}next(e){this.forEachObserver((t=>{t.next(e)}))}error(e){this.forEachObserver((t=>{t.error(e)})),this.close(e)}complete(){this.forEachObserver((e=>{e.complete()})),this.close()}subscribe(e,t,n){let r;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");r=function(e,t){if("object"!=typeof e||null===e)return!1;for(const t of["next","error","complete"])if(t in e&&"function"==typeof e[t])return!0;return!1}(e)?e:{next:e,error:t,complete:n},void 0===r.next&&(r.next=I),void 0===r.error&&(r.error=I),void 0===r.complete&&(r.complete=I);const i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(e){}})),this.observers.push(r),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then((()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}}))}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function I(){}function w(e){return e&&e._delegate?e._delegate:e}class T{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}const E="[DEFAULT]";class k{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new u;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:t});n&&e.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const n=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),r=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(r)return null;throw e}}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(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:E})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:n});t.resolve(e)}catch(e){}}}}clearInstance(e=E){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e=E){return this.instances.has(e)}getOptions(e=E){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const r=this.getOrInitializeService({instanceIdentifier:n,options:t});for(const[e,t]of this.instancesDeferred.entries())n===this.normalizeInstanceIdentifier(e)&&t.resolve(r);return r}onInit(e,t){var n;const r=this.normalizeInstanceIdentifier(t),i=null!==(n=this.onInitCallbacks.get(r))&&void 0!==n?n:new Set;i.add(e),this.onInitCallbacks.set(r,i);const s=this.instances.get(r);return s&&e(s,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){const n=this.onInitCallbacks.get(t);if(n)for(const r of n)try{r(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e,r===E?void 0:r),options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var r;return n||null}normalizeInstanceIdentifier(e=E){return this.component?this.component.multipleInstances?e:E:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class S{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.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);const t=new k(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const C=[];var A;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(A||(A={}));const R={debug:A.DEBUG,verbose:A.VERBOSE,info:A.INFO,warn:A.WARN,error:A.ERROR,silent:A.SILENT},O=A.INFO,P={[A.DEBUG]:"log",[A.VERBOSE]:"log",[A.INFO]:"info",[A.WARN]:"warn",[A.ERROR]:"error"},N=(e,t,...n)=>{if(t<e.logLevel)return;const r=(new Date).toISOString(),i=P[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${r}] ${e.name}:`,...n)};class D{constructor(e){this.name=e,this._logLevel=O,this._logHandler=N,this._userLogHandler=null,C.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in A))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?R[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)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,A.DEBUG,...e),this._logHandler(this,A.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,A.VERBOSE,...e),this._logHandler(this,A.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,A.INFO,...e),this._logHandler(this,A.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,A.WARN,...e),this._logHandler(this,A.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,A.ERROR,...e),this._logHandler(this,A.ERROR,...e)}}const L=(e,t)=>t.some((t=>e instanceof t));let $,M;const U=new WeakMap,j=new WeakMap,F=new WeakMap,x=new WeakMap,B=new WeakMap;let V={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return j.get(e);if("objectStoreNames"===t)return e.objectStoreNames||F.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return W(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function H(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(M||(M=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(z(this),e),W(U.get(this))}:function(...e){return W(t.apply(z(this),e))}:function(e,...n){const r=t.call(z(this),e,...n);return F.set(r,e.sort?e.sort():[e]),W(r)}:(e instanceof IDBTransaction&&function(e){if(j.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{t(),r()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)}));j.set(e,t)}(e),L(e,$||($=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,V):e);var t}function W(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{t(W(e.result)),r()},s=()=>{n(e.error),r()};e.addEventListener("success",i),e.addEventListener("error",s)}));return t.then((t=>{t instanceof IDBCursor&&U.set(t,e)})).catch((()=>{})),B.set(t,e),t}(e);if(x.has(e))return x.get(e);const t=H(e);return t!==e&&(x.set(e,t),B.set(t,e)),t}const z=e=>B.get(e),q=["get","getKey","getAll","getAllKeys","count"],K=["put","add","delete","clear"],G=new Map;function J(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(G.get(t))return G.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=K.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!q.includes(n))return;const s=async function(e,...t){const s=this.transaction(e,i?"readwrite":"readonly");let o=s.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&s.done]))[0]};return G.set(t,s),s}var Y;Y=V,V={...Y,get:(e,t,n)=>J(e,t)||Y.get(e,t,n),has:(e,t)=>!!J(e,t)||Y.has(e,t)};class X{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const Z="@firebase/app",Q="0.9.11",ee=new D("@firebase/app"),te="[DEFAULT]",ne={[Z]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},re=new Map,ie=new Map;function se(e,t){try{e.container.addComponent(t)}catch(n){ee.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function oe(e){const t=e.name;if(ie.has(t))return ee.debug(`There were multiple attempts to register component ${t}.`),!1;ie.set(t,e);for(const t of re.values())se(t,e);return!0}function ae(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}const ce=new p("app","Firebase",{"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","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}."});class le{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new T("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 ce.create("app-deleted",{appName:this._name})}}const ue="9.22.1";function de(e,t={}){let n=e;"object"!=typeof t&&(t={name:t});const r=Object.assign({name:te,automaticDataCollectionEnabled:!1},t),i=r.name;if("string"!=typeof i||!i)throw ce.create("bad-app-name",{appName:String(i)});if(n||(n=c()),!n)throw ce.create("no-options");const s=re.get(i);if(s){if(m(n,s.options)&&m(r,s.config))return s;throw ce.create("duplicate-app",{appName:i})}const o=new S(i);for(const e of ie.values())o.addComponent(e);const a=new le(n,r,o);return re.set(i,a),a}function he(e,t,n){var r;let i=null!==(r=ne[e])&&void 0!==r?r:e;n&&(i+=`-${n}`);const s=i.match(/\s|\//),o=t.match(/\s|\//);if(s||o){const e=[`Unable to register library "${i}" with version "${t}":`];return s&&e.push(`library name "${i}" contains illegal characters (whitespace or "/")`),s&&o&&e.push("and"),o&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void ee.warn(e.join(" "))}oe(new T(`${i}-version`,(()=>({library:i,version:t})),"VERSION"))}const pe="firebase-heartbeat-database",fe=1,me="firebase-heartbeat-store";let ge=null;function ye(){return ge||(ge=function(e,t,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const o=indexedDB.open(e,t),a=W(o);return r&&o.addEventListener("upgradeneeded",(e=>{r(W(o.result),e.oldVersion,e.newVersion,W(o.transaction),e)})),n&&o.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),a.then((e=>{s&&e.addEventListener("close",(()=>s())),i&&e.addEventListener("versionchange",(e=>i(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),a}(pe,fe,{upgrade:(e,t)=>{0===t&&e.createObjectStore(me)}}).catch((e=>{throw ce.create("idb-open",{originalErrorMessage:e.message})}))),ge}async function ve(e,t){try{const n=(await ye()).transaction(me,"readwrite"),r=n.objectStore(me);await r.put(t,be(e)),await n.done}catch(e){if(e instanceof h)ee.warn(e.message);else{const t=ce.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});ee.warn(t.message)}}}function be(e){return`${e.name}!${e.options.appId}`}class _e{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new we(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){const e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),t=Ie();if(null===this._heartbeatsCache&&(this._heartbeatsCache=await this._heartbeatsCachePromise),this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some((e=>e.date===t)))return this._heartbeatsCache.heartbeats.push({date:t,agent:e}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null===this._heartbeatsCache||0===this._heartbeatsCache.heartbeats.length)return"";const e=Ie(),{heartbeatsToSend:t,unsentEntries:n}=function(e,t=1024){const n=[];let r=e.slice();for(const i of e){const e=n.find((e=>e.agent===i.agent));if(e){if(e.dates.push(i.date),Te(n)>t){e.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),Te(n)>t){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}(this._heartbeatsCache.heartbeats),r=s(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),r}}function Ie(){return(new Date).toISOString().substring(0,10)}class we{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{var e;t((null===(e=i.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){return await this._canUseIndexedDBPromise&&await async function(e){try{const t=await ye();return await t.transaction(me).objectStore(me).get(be(e))}catch(e){if(e instanceof h)ee.warn(e.message);else{const t=ce.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});ee.warn(t.message)}}}(this.app)||{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return ve(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return ve(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function Te(e){return s(JSON.stringify({version:2,heartbeats:e})).length}function Ee(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}oe(new T("platform-logger",(e=>new X(e)),"PRIVATE")),oe(new T("heartbeat",(e=>new _e(e)),"PRIVATE")),he(Z,Q,""),he(Z,Q,"esm2017"),he("fire-js",""),he("firebase","9.22.1","app"),Object.create,Object.create;const ke=function(){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."}},Se=new p("auth","Firebase",{"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."}),Ce=new D("@firebase/auth");function Ae(e,...t){Ce.logLevel<=A.ERROR&&Ce.error(`Auth (${ue}): ${e}`,...t)}function Re(e,...t){throw Pe(e,...t)}function Oe(e,...t){return Pe(e,...t)}function Pe(e,...t){if("string"!=typeof e){const n=t[0],r=[...t.slice(1)];return r[0]&&(r[0].appName=e.name),e._errorFactory.create(n,...r)}return Se.create(e,...t)}function Ne(e,t,...n){if(!e)throw Pe(t,...n)}function De(e){const t="INTERNAL ASSERTION FAILED: "+e;throw Ae(t),new Error(t)}function Le(e,t){e||De(t)}function $e(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function Me(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}function Ue(){return!("undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&("http:"===Me()||"https:"===Me()||function(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}()||"connection"in navigator))||navigator.onLine}class je{constructor(e,t){this.shortDelay=e,this.longDelay=t,Le(t>e,"Short delay should be less than long delay!"),this.isMobile="undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(d())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return Ue()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function Fe(e,t){Le(e.emulator,"Emulator should always be set here");const{url:n}=e.emulator;return t?`${n}${t.startsWith("/")?t.slice(1):t}`:n}class xe{static initialize(e,t,n){this.fetchImpl=e,t&&(this.headersImpl=t),n&&(this.responseImpl=n)}static fetch(){return this.fetchImpl?this.fetchImpl:"undefined"!=typeof self&&"fetch"in self?self.fetch:void De("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"undefined"!=typeof self&&"Headers"in self?self.Headers:void De("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"undefined"!=typeof self&&"Response"in self?self.Response:void De("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}const Be={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",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",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"},Ve=new je(3e4,6e4);function He(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function We(e,t,n,r,i={}){return ze(e,i,(async()=>{let i={},s={};r&&("GET"===t?s=r:i={body:JSON.stringify(r)});const o=y(Object.assign({key:e.config.apiKey},s)).slice(1),a=await e._getAdditionalHeaders();return a["Content-Type"]="application/json",e.languageCode&&(a["X-Firebase-Locale"]=e.languageCode),xe.fetch()(Ke(e,e.config.apiHost,n,o),Object.assign({method:t,headers:a,referrerPolicy:"no-referrer"},i))}))}async function ze(e,t,n){e._canInitEmulator=!1;const r=Object.assign(Object.assign({},Be),t);try{const t=new Ge(e),i=await Promise.race([n(),t.promise]);t.clearNetworkTimeout();const s=await i.json();if("needConfirmation"in s)throw Je(e,"account-exists-with-different-credential",s);if(i.ok&&!("errorMessage"in s))return s;{const t=i.ok?s.errorMessage:s.error.message,[n,o]=t.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===n)throw Je(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===n)throw Je(e,"email-already-in-use",s);if("USER_DISABLED"===n)throw Je(e,"user-disabled",s);const a=r[n]||n.toLowerCase().replace(/[_\s]+/g,"-");if(o)throw function(e,t,n){const r=Object.assign(Object.assign({},ke()),{[t]:n});return new p("auth","Firebase",r).create(t,{appName:e.name})}(e,a,o);Re(e,a)}}catch(t){if(t instanceof h)throw t;Re(e,"network-request-failed",{message:String(t)})}}async function qe(e,t,n,r,i={}){const s=await We(e,t,n,r,i);return"mfaPendingCredential"in s&&Re(e,"multi-factor-auth-required",{_serverResponse:s}),s}function Ke(e,t,n,r){const i=`${t}${n}?${r}`;return e.config.emulator?Fe(e.config,i):`${e.config.apiScheme}://${i}`}class Ge{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise(((e,t)=>{this.timer=setTimeout((()=>t(Oe(this.auth,"network-request-failed"))),Ve.get())}))}clearNetworkTimeout(){clearTimeout(this.timer)}}function Je(e,t,n){const r={appName:e.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=Oe(e,t,r);return i.customData._tokenResponse=n,i}function Ye(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Xe(e){return 1e3*Number(e)}function Ze(e){const[t,n,r]=e.split(".");if(void 0===t||void 0===n||void 0===r)return Ae("JWT malformed, contained fewer than 3 sections"),null;try{const e=o(n);return e?JSON.parse(e):(Ae("Failed to decode base64 JWT payload"),null)}catch(e){return Ae("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}async function Qe(e,t,n=!1){if(n)return t;try{return await t}catch(t){throw t instanceof h&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class et{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,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){var t;if(e){const e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}{this.errorBackoff=3e4;const e=(null!==(t=this.user.stsTokenManager.expirationTime)&&void 0!==t?t:0)-Date.now()-3e5;return Math.max(0,e)}}schedule(e=!1){if(!this.isRunning)return;const t=this.getInterval(e);this.timerId=setTimeout((async()=>{await this.iteration()}),t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class tt{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ye(this.lastLoginAt),this.creationTime=Ye(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function nt(e){var t;const n=e.auth,r=await e.getIdToken(),i=await Qe(e,async function(e,t){return We(e,"POST","/v1/accounts:lookup",t)}(n,{idToken:r}));Ne(null==i?void 0:i.users.length,n,"internal-error");const s=i.users[0];e._notifyReloadListener(s);const o=(null===(t=s.providerUserInfo)||void 0===t?void 0:t.length)?s.providerUserInfo.map((e=>{var{providerId:t}=e,n=Ee(e,["providerId"]);return{providerId:t,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}})):[],a=(c=e.providerData,l=o,[...c.filter((e=>!l.some((t=>t.providerId===e.providerId)))),...l]);var c,l;const u=e.isAnonymous,d=!(e.email&&s.passwordHash||(null==a?void 0:a.length)),h=!!u&&d,p={uid:s.localId,displayName:s.displayName||null,photoURL:s.photoUrl||null,email:s.email||null,emailVerified:s.emailVerified||!1,phoneNumber:s.phoneNumber||null,tenantId:s.tenantId||null,providerData:a,metadata:new tt(s.createdAt,s.lastLoginAt),isAnonymous:h};Object.assign(e,p)}class rt{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){Ne(e.idToken,"internal-error"),Ne(void 0!==e.idToken,"internal-error"),Ne(void 0!==e.refreshToken,"internal-error");const t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):function(e){const t=Ze(e);return Ne(t,"internal-error"),Ne(void 0!==t.exp,"internal-error"),Ne(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}async getToken(e,t=!1){return Ne(!this.accessToken||this.refreshToken,e,"user-token-expired"),t||!this.accessToken||this.isExpired?this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){const{accessToken:n,refreshToken:r,expiresIn:i}=await async function(e,t){const n=await ze(e,{},(async()=>{const n=y({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:r,apiKey:i}=e.config,s=Ke(e,r,"/v1/token",`key=${i}`),o=await e._getAdditionalHeaders();return o["Content-Type"]="application/x-www-form-urlencoded",xe.fetch()(s,{method:"POST",headers:o,body:n})}));return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}(e,t);this.updateTokensAndExpiration(n,r,Number(i))}updateTokensAndExpiration(e,t,n){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(e,t){const{refreshToken:n,accessToken:r,expirationTime:i}=t,s=new rt;return n&&(Ne("string"==typeof n,"internal-error",{appName:e}),s.refreshToken=n),r&&(Ne("string"==typeof r,"internal-error",{appName:e}),s.accessToken=r),i&&(Ne("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}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 rt,this.toJSON())}_performRefresh(){return De("not implemented")}}function it(e,t){Ne("string"==typeof e||void 0===e,"internal-error",{appName:t})}class st{constructor(e){var{uid:t,auth:n,stsTokenManager:r}=e,i=Ee(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new et(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,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 tt(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){const t=await Qe(this,this.stsTokenManager.getToken(this.auth,e));return Ne(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return async function(e,t=!1){const n=w(e),r=await n.getIdToken(t),i=Ze(r);Ne(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");const s="object"==typeof i.firebase?i.firebase:void 0,o=null==s?void 0:s.sign_in_provider;return{claims:i,token:r,authTime:Ye(Xe(i.auth_time)),issuedAtTime:Ye(Xe(i.iat)),expirationTime:Ye(Xe(i.exp)),signInProvider:o||null,signInSecondFactor:(null==s?void 0:s.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const t=w(e);await nt(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(Ne(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((e=>Object.assign({},e))),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const t=new st(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){Ne(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let n=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),n=!0),t&&await nt(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){const e=await this.getIdToken();return await Qe(this,async function(e,t){return We(e,"POST","/v1/accounts:delete",t)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({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=>Object.assign({},e))),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var n,r,i,s,o,a,c,l;const u=null!==(n=t.displayName)&&void 0!==n?n:void 0,d=null!==(r=t.email)&&void 0!==r?r:void 0,h=null!==(i=t.phoneNumber)&&void 0!==i?i:void 0,p=null!==(s=t.photoURL)&&void 0!==s?s:void 0,f=null!==(o=t.tenantId)&&void 0!==o?o:void 0,m=null!==(a=t._redirectEventId)&&void 0!==a?a:void 0,g=null!==(c=t.createdAt)&&void 0!==c?c:void 0,y=null!==(l=t.lastLoginAt)&&void 0!==l?l:void 0,{uid:v,emailVerified:b,isAnonymous:_,providerData:I,stsTokenManager:w}=t;Ne(v&&w,e,"internal-error");const T=rt.fromJSON(this.name,w);Ne("string"==typeof v,e,"internal-error"),it(u,e.name),it(d,e.name),Ne("boolean"==typeof b,e,"internal-error"),Ne("boolean"==typeof _,e,"internal-error"),it(h,e.name),it(p,e.name),it(f,e.name),it(m,e.name),it(g,e.name),it(y,e.name);const E=new st({uid:v,auth:e,email:d,emailVerified:b,displayName:u,isAnonymous:_,photoURL:p,phoneNumber:h,tenantId:f,stsTokenManager:T,createdAt:g,lastLoginAt:y});return I&&Array.isArray(I)&&(E.providerData=I.map((e=>Object.assign({},e)))),m&&(E._redirectEventId=m),E}static async _fromIdTokenResponse(e,t,n=!1){const r=new rt;r.updateFromServerResponse(t);const i=new st({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:n});return await nt(i),i}}const ot=new Map;function at(e){Le(e instanceof Function,"Expected a class definition");let t=ot.get(e);return t?(Le(t instanceof e,"Instance stored in cache mismatched with class"),t):(t=new e,ot.set(e,t),t)}class ct{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){const t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}ct.type="NONE";const lt=ct;function ut(e,t,n){return`firebase:${e}:${t}:${n}`}class dt{constructor(e,t,n){this.persistence=e,this.auth=t,this.userKey=n;const{config:r,name:i}=this.auth;this.fullUserKey=ut(this.userKey,r.apiKey,i),this.fullPersistenceKey=ut("persistence",r.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){const e=await this.persistence._get(this.fullUserKey);return e?st._fromJSON(this.auth,e):null}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;const t=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,n="authUser"){if(!t.length)return new dt(at(lt),e,n);const r=(await Promise.all(t.map((async e=>{if(await e._isAvailable())return e})))).filter((e=>e));let i=r[0]||at(lt);const s=ut(n,e.config.apiKey,e.name);let o=null;for(const n of t)try{const t=await n._get(s);if(t){const r=st._fromJSON(e,t);n!==i&&(o=r),i=n;break}}catch(e){}const a=r.filter((e=>e._shouldAllowMigration));return i._shouldAllowMigration&&a.length?(i=a[0],o&&await i._set(s,o.toJSON()),await Promise.all(t.map((async e=>{if(e!==i)try{await e._remove(s)}catch(e){}}))),new dt(i,e,n)):new dt(i,e,n)}}function ht(e){const t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";if(gt(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(pt(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(vt(t))return"Blackberry";if(bt(t))return"Webos";if(ft(t))return"Safari";if((t.includes("chrome/")||mt(t))&&!t.includes("edge/"))return"Chrome";if(yt(t))return"Android";{const t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,n=e.match(t);if(2===(null==n?void 0:n.length))return n[1]}return"Other"}function pt(e=d()){return/firefox\//i.test(e)}function ft(e=d()){const t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function mt(e=d()){return/crios\//i.test(e)}function gt(e=d()){return/iemobile/i.test(e)}function yt(e=d()){return/android/i.test(e)}function vt(e=d()){return/blackberry/i.test(e)}function bt(e=d()){return/webos/i.test(e)}function _t(e=d()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function It(e=d()){return _t(e)||yt(e)||bt(e)||vt(e)||/windows phone/i.test(e)||gt(e)}function wt(e,t=[]){let n;switch(e){case"Browser":n=ht(d());break;case"Worker":n=`${ht(d())}-${e}`;break;default:n=e}const r=t.length?t.join(","):"FirebaseCore-web";return`${n}/JsCore/${ue}/${r}`}async function Tt(e,t){return We(e,"GET","/v2/recaptchaConfig",He(e,t))}function Et(e){return void 0!==e&&void 0!==e.enterprise}class kt{constructor(e){if(this.siteKey="",this.emailPasswordEnabled=!1,void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.emailPasswordEnabled=e.recaptchaEnforcementState.some((e=>"EMAIL_PASSWORD_PROVIDER"===e.provider&&"OFF"!==e.enforcementState))}}function St(e){return new Promise(((t,n)=>{const r=document.createElement("script");var i,s;r.setAttribute("src",e),r.onload=t,r.onerror=e=>{const t=Oe("internal-error");t.customData=e,n(t)},r.type="text/javascript",r.charset="UTF-8",(null!==(s=null===(i=document.getElementsByTagName("head"))||void 0===i?void 0:i[0])&&void 0!==s?s:document).appendChild(r)}))}function Ct(e){return`__${e}${Math.floor(1e6*Math.random())}`}class At{constructor(e){this.type="recaptcha-enterprise",this.auth=Nt(e)}async verify(e="verify",t=!1){function n(t,n,r){const i=window.grecaptcha;Et(i)?i.enterprise.ready((()=>{i.enterprise.execute(t,{action:e}).then((e=>{n(e)})).catch((()=>{n("NO_RECAPTCHA")}))})):r(Error("No reCAPTCHA enterprise script loaded."))}return new Promise(((e,r)=>{(async function(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise((async(t,n)=>{Tt(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then((r=>{if(void 0!==r.recaptchaKey){const n=new kt(r);return null==e.tenantId?e._agentRecaptchaConfig=n:e._tenantRecaptchaConfigs[e.tenantId]=n,t(n.siteKey)}n(new Error("recaptcha Enterprise site key undefined"))})).catch((e=>{n(e)}))}))})(this.auth).then((i=>{if(!t&&Et(window.grecaptcha))n(i,e,r);else{if("undefined"==typeof window)return void r(new Error("RecaptchaVerifier is only supported in browser"));St("https://www.google.com/recaptcha/enterprise.js?render="+i).then((()=>{n(i,e,r)})).catch((e=>{r(e)}))}})).catch((e=>{r(e)}))}))}}async function Rt(e,t,n,r=!1){const i=new At(e);let s;try{s=await i.verify(n)}catch(e){s=await i.verify(n,!0)}const o=Object.assign({},t);return r?Object.assign(o,{captchaResp:s}):Object.assign(o,{captchaResponse:s}),Object.assign(o,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(o,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),o}class Ot{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){const n=t=>new Promise(((n,r)=>{try{n(e(t))}catch(e){r(e)}}));n.onAbort=t,this.queue.push(n);const r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;const t=[];try{for(const n of this.queue)await n(e),n.onAbort&&t.push(n.onAbort)}catch(e){t.reverse();for(const e of t)try{e()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}class Pt{constructor(e,t,n,r){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=n,this.config=r,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Dt(this),this.idTokenSubscription=new Dt(this),this.beforeStateQueue=new Ot(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Se,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=r.sdkClientVersion}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=at(t)),this._initializationPromise=this.queue((async()=>{var n,r;if(!this._deleted&&(this.persistenceManager=await dt.create(this,e),!this._deleted)){if(null===(n=this._popupRedirectResolver)||void 0===n?void 0:n._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=(null===(r=this.currentUser)||void 0===r?void 0:r.uid)||null,this._deleted||(this._isInitialized=!0)}})),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const e=await this.assertedPersistence.getCurrentUser();return this.currentUser||e?this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(e,!0):void 0}async initializeCurrentUser(e){var t;const n=await this.assertedPersistence.getCurrentUser();let r=n,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const n=null===(t=this.redirectUser)||void 0===t?void 0:t._redirectEventId,s=null==r?void 0:r._redirectEventId,o=await this.tryRedirectSignIn(e);n&&n!==s||!(null==o?void 0:o.user)||(r=o.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(r)}catch(e){r=n,this._popupRedirectResolver._overrideRedirectResult(this,(()=>Promise.reject(e)))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return Ne(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 t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await nt(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){const t=e?w(e):null;return t&&Ne(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&Ne(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue((async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()}))}async signOut(){return await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0)}setPersistence(e){return this.queue((async()=>{await this.assertedPersistence.setPersistence(at(e))}))}async initializeRecaptchaConfig(){const e=await Tt(this,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),t=new kt(e);null==this.tenantId?this._agentRecaptchaConfig=t:this._tenantRecaptchaConfigs[this.tenantId]=t,t.emailPasswordEnabled&&new At(this).verify()}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new p("auth","Firebase",e())}onAuthStateChanged(e,t,n){return this.registerStateListener(this.authStateSubscription,e,t,n)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,n){return this.registerStateListener(this.idTokenSubscription,e,t,n)}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,t){const n=await this.getOrInitRedirectPersistenceManager(t);return null===e?n.removeCurrentUser():n.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){const t=e&&at(e)||this._popupRedirectResolver;Ne(t,this,"argument-error"),this.redirectPersistenceManager=await dt.create(this,[at(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){var t,n;return this._isInitialized&&await this.queue((async()=>{})),(null===(t=this._currentUser)||void 0===t?void 0:t._redirectEventId)===e?this._currentUser:(null===(n=this.redirectUser)||void 0===n?void 0:n._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(){var e,t;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const n=null!==(t=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==t?t:null;this.lastNotifiedUid!==n&&(this.lastNotifiedUid=n,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,n,r){if(this._deleted)return()=>{};const i="function"==typeof t?t:t.next.bind(t),s=this._isInitialized?Promise.resolve():this._initializationPromise;return Ne(s,this,"internal-error"),s.then((()=>i(this.currentUser))),"function"==typeof t?e.addObserver(t,n,r):e.addObserver(t)}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 Ne(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=wt(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e;const t={"X-Client-Version":this.clientVersion};this.app.options.appId&&(t["X-Firebase-gmpid"]=this.app.options.appId);const n=await(null===(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getHeartbeatsHeader());n&&(t["X-Firebase-Client"]=n);const r=await this._getAppCheckToken();return r&&(t["X-Firebase-AppCheck"]=r),t}async _getAppCheckToken(){var e;const t=await(null===(e=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getToken());return(null==t?void 0:t.error)&&function(e,...t){Ce.logLevel<=A.WARN&&Ce.warn(`Auth (${ue}): ${e}`,...t)}(`Error while retrieving App Check token: ${t.error}`),null==t?void 0:t.token}}function Nt(e){return w(e)}class Dt{constructor(e){this.auth=e,this.observer=null,this.addObserver=function(e,t){const n=new _(e,void 0);return n.subscribe.bind(n)}((e=>this.observer=e))}get next(){return Ne(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}function Lt(e){const t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function $t(e){if(!e)return null;const t=Number(e);return isNaN(t)?null:t}class Mt{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return De("not implemented")}_getIdTokenResponse(e){return De("not implemented")}_linkToIdToken(e,t){return De("not implemented")}_getReauthenticationResolver(e){return De("not implemented")}}async function Ut(e,t){return qe(e,"POST","/v1/accounts:signInWithPassword",He(e,t))}async function jt(e,t){return async function(e,t){return We(e,"POST","/v1/accounts:sendOobCode",He(e,t))}(e,t)}class Ft extends Mt{constructor(e,t,n,r=null){super("password",n),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new Ft(e,t,"password")}static _fromEmailAndCode(e,t,n=null){return new Ft(e,t,"emailLink",n)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e;if((null==t?void 0:t.email)&&(null==t?void 0:t.password)){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){var t;switch(this.signInMethod){case"password":const n={returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};if(null===(t=e._getRecaptchaConfig())||void 0===t?void 0:t.emailPasswordEnabled){const t=await Rt(e,n,"signInWithPassword");return Ut(e,t)}return Ut(e,n).catch((async t=>{if("auth/missing-recaptcha-token"===t.code){console.log("Sign-in with email address and password is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.");const t=await Rt(e,n,"signInWithPassword");return Ut(e,t)}return Promise.reject(t)}));case"emailLink":return async function(e,t){return qe(e,"POST","/v1/accounts:signInWithEmailLink",He(e,t))}(e,{email:this._email,oobCode:this._password});default:Re(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return async function(e,t){return We(e,"POST","/v1/accounts:update",t)}(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(e,t){return qe(e,"POST","/v1/accounts:signInWithEmailLink",He(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:Re(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function xt(e,t){return qe(e,"POST","/v1/accounts:signInWithIdp",He(e,t))}class Bt extends Mt{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new Bt(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):Re("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e,{providerId:n,signInMethod:r}=t,i=Ee(t,["providerId","signInMethod"]);if(!n||!r)return null;const s=new Bt(n,r);return s.idToken=i.idToken||void 0,s.accessToken=i.accessToken||void 0,s.secret=i.secret,s.nonce=i.nonce,s.pendingToken=i.pendingToken||null,s}_getIdTokenResponse(e){return xt(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,xt(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,xt(e,t)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=y(t)}return e}}const Vt={USER_NOT_FOUND:"user-not-found"};class Ht extends Mt{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Ht({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Ht({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function(e,t){return qe(e,"POST","/v1/accounts:signInWithPhoneNumber",He(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function(e,t){const n=await qe(e,"POST","/v1/accounts:signInWithPhoneNumber",He(e,t));if(n.temporaryProof)throw Je(e,"account-exists-with-different-credential",n);return n}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function(e,t){return qe(e,"POST","/v1/accounts:signInWithPhoneNumber",He(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),Vt)}(e,this._makeVerificationRequest())}_makeVerificationRequest(){const{temporaryProof:e,phoneNumber:t,verificationId:n,verificationCode:r}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:n,code:r}}toJSON(){const 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){"string"==typeof e&&(e=JSON.parse(e));const{verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}=e;return n||t||r||i?new Ht({verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}):null}}class Wt{constructor(e){var t,n,r,i,s,o;const a=v(b(e)),c=null!==(t=a.apiKey)&&void 0!==t?t:null,l=null!==(n=a.oobCode)&&void 0!==n?n:null,u=function(e){switch(e){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}}(null!==(r=a.mode)&&void 0!==r?r:null);Ne(c&&l&&u,"argument-error"),this.apiKey=c,this.operation=u,this.code=l,this.continueUrl=null!==(i=a.continueUrl)&&void 0!==i?i:null,this.languageCode=null!==(s=a.languageCode)&&void 0!==s?s:null,this.tenantId=null!==(o=a.tenantId)&&void 0!==o?o:null}static parseLink(e){const t=function(e){const t=v(b(e)).link,n=t?v(b(t)).deep_link_id:null,r=v(b(e)).deep_link_id;return(r?v(b(r)).link:null)||r||n||t||e}(e);try{return new Wt(t)}catch(e){return null}}}class zt{constructor(){this.providerId=zt.PROVIDER_ID}static credential(e,t){return Ft._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){const n=Wt.parseLink(t);return Ne(n,"argument-error"),Ft._fromEmailAndCode(e,n.code,n.tenantId)}}zt.PROVIDER_ID="password",zt.EMAIL_PASSWORD_SIGN_IN_METHOD="password",zt.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class qt{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}}class Kt extends qt{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Gt extends Kt{constructor(){super("facebook.com")}static credential(e){return Bt._fromParams({providerId:Gt.PROVIDER_ID,signInMethod:Gt.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Gt.credentialFromTaggedObject(e)}static credentialFromError(e){return Gt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Gt.credential(e.oauthAccessToken)}catch(e){return null}}}Gt.FACEBOOK_SIGN_IN_METHOD="facebook.com",Gt.PROVIDER_ID="facebook.com";class Jt extends Kt{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Bt._fromParams({providerId:Jt.PROVIDER_ID,signInMethod:Jt.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return Jt.credentialFromTaggedObject(e)}static credentialFromError(e){return Jt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:t,oauthAccessToken:n}=e;if(!t&&!n)return null;try{return Jt.credential(t,n)}catch(e){return null}}}Jt.GOOGLE_SIGN_IN_METHOD="google.com",Jt.PROVIDER_ID="google.com";class Yt extends Kt{constructor(){super("github.com")}static credential(e){return Bt._fromParams({providerId:Yt.PROVIDER_ID,signInMethod:Yt.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Yt.credentialFromTaggedObject(e)}static credentialFromError(e){return Yt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Yt.credential(e.oauthAccessToken)}catch(e){return null}}}Yt.GITHUB_SIGN_IN_METHOD="github.com",Yt.PROVIDER_ID="github.com";class Xt extends Kt{constructor(){super("twitter.com")}static credential(e,t){return Bt._fromParams({providerId:Xt.PROVIDER_ID,signInMethod:Xt.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Xt.credentialFromTaggedObject(e)}static credentialFromError(e){return Xt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthAccessToken:t,oauthTokenSecret:n}=e;if(!t||!n)return null;try{return Xt.credential(t,n)}catch(e){return null}}}Xt.TWITTER_SIGN_IN_METHOD="twitter.com",Xt.PROVIDER_ID="twitter.com";class Zt{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,n,r=!1){const i=await st._fromIdTokenResponse(e,n,r),s=Qt(n);return new Zt({user:i,providerId:s,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);const r=Qt(n);return new Zt({user:e,providerId:r,_tokenResponse:n,operationType:t})}}function Qt(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class en extends h{constructor(e,t,n,r){var i;super(t.code,t.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,en.prototype),this.customData={appName:e.name,tenantId:null!==(i=e.tenantId)&&void 0!==i?i:void 0,_serverResponse:t.customData._serverResponse,operationType:n}}static _fromErrorAndOperation(e,t,n,r){return new en(e,t,n,r)}}function tn(e,t,n,r){return("reauthenticate"===t?n._getReauthenticationResolver(e):n._getIdTokenResponse(e)).catch((n=>{if("auth/multi-factor-auth-required"===n.code)throw en._fromErrorAndOperation(e,n,t,r);throw n}))}async function nn(e,t,n=!1){const r="signIn",i=await tn(e,r,t),s=await Zt._fromIdTokenResponse(e,r,i);return n||await e._updateCurrentUser(s.user),s}new WeakMap;const rn="__sak";class sn{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(rn,"1"),this.storage.removeItem(rn),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){const t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class on extends sn{constructor(){super((()=>window.localStorage),"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.safariLocalStorageNotSynced=function(){const e=d();return ft(e)||_t(e)}()&&function(){try{return!(!window||window===window.top)}catch(e){return!1}}(),this.fallbackToPolling=It(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const t of Object.keys(this.listeners)){const n=this.storage.getItem(t),r=this.localCache[t];n!==r&&e(t,r,n)}}onStorageEvent(e,t=!1){if(!e.key)return void this.forAllChangedKeys(((e,t,n)=>{this.notifyListeners(e,n)}));const n=e.key;if(t?this.detachListener():this.stopPolling(),this.safariLocalStorageNotSynced){const r=this.storage.getItem(n);if(e.newValue!==r)null!==e.newValue?this.storage.setItem(n,e.newValue):this.storage.removeItem(n);else if(this.localCache[n]===e.newValue&&!t)return}const r=()=>{const e=this.storage.getItem(n);(t||this.localCache[n]!==e)&&this.notifyListeners(n,e)},i=this.storage.getItem(n);!function(){const e=d();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}()||10!==document.documentMode||i===e.newValue||e.newValue===e.oldValue?r():setTimeout(r,10)}notifyListeners(e,t){this.localCache[e]=t;const n=this.listeners[e];if(n)for(const e of Array.from(n))e(t?JSON.parse(t):t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((()=>{this.forAllChangedKeys(((e,t,n)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:n}),!0)}))}),1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){const t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}on.type="LOCAL";const an=on;class cn extends sn{constructor(){super((()=>window.sessionStorage),"SESSION")}_addListener(e,t){}_removeListener(e,t){}}cn.type="SESSION";const ln=cn;class un{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){const t=this.receivers.find((t=>t.isListeningto(e)));if(t)return t;const n=new un(e);return this.receivers.push(n),n}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const t=e,{eventId:n,eventType:r,data:i}=t.data,s=this.handlersMap[r];if(!(null==s?void 0:s.size))return;t.ports[0].postMessage({status:"ack",eventId:n,eventType:r});const o=Array.from(s).map((async e=>e(t.origin,i))),a=await function(e){return Promise.all(e.map((async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})))}(o);t.ports[0].postMessage({status:"done",eventId:n,eventType:r,response:a})}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function dn(e="",t=10){let n="";for(let e=0;e<t;e++)n+=Math.floor(10*Math.random());return e+n}un.receivers=[];class hn{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,n=50){const r="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!r)throw new Error("connection_unavailable");let i,s;return new Promise(((o,a)=>{const c=dn("",20);r.port1.start();const l=setTimeout((()=>{a(new Error("unsupported_event"))}),n);s={messageChannel:r,onMessage(e){const t=e;if(t.data.eventId===c)switch(t.data.status){case"ack":clearTimeout(l),i=setTimeout((()=>{a(new Error("timeout"))}),3e3);break;case"done":clearTimeout(i),o(t.data.response);break;default:clearTimeout(l),clearTimeout(i),a(new Error("invalid_response"))}}},this.handlers.add(s),r.port1.addEventListener("message",s.onMessage),this.target.postMessage({eventType:e,eventId:c,data:t},[r.port2])})).finally((()=>{s&&this.removeMessageHandler(s)}))}}function pn(){return window}function fn(){return void 0!==pn().WorkerGlobalScope&&"function"==typeof pn().importScripts}const mn="firebaseLocalStorageDb",gn="firebaseLocalStorage",yn="fbase_key";class vn{constructor(e){this.request=e}toPromise(){return new Promise(((e,t)=>{this.request.addEventListener("success",(()=>{e(this.request.result)})),this.request.addEventListener("error",(()=>{t(this.request.error)}))}))}}function bn(e,t){return e.transaction([gn],t?"readwrite":"readonly").objectStore(gn)}function _n(){const e=indexedDB.open(mn,1);return new Promise(((t,n)=>{e.addEventListener("error",(()=>{n(e.error)})),e.addEventListener("upgradeneeded",(()=>{const t=e.result;try{t.createObjectStore(gn,{keyPath:yn})}catch(e){n(e)}})),e.addEventListener("success",(async()=>{const n=e.result;n.objectStoreNames.contains(gn)?t(n):(n.close(),await function(){const e=indexedDB.deleteDatabase(mn);return new vn(e).toPromise()}(),t(await _n()))}))}))}async function In(e,t,n){const r=bn(e,!0).put({[yn]:t,value:n});return new vn(r).toPromise()}function wn(e,t){const n=bn(e,!0).delete(t);return new vn(n).toPromise()}class Tn{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=await _n()),this.db}async _withRetries(e){let t=0;for(;;)try{const t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return fn()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=un._getInstance(fn()?self:null),this.receiver._subscribe("keyChanged",(async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)}))),this.receiver._subscribe("ping",(async(e,t)=>["keyChanged"]))}async initializeSender(){var e,t;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),!this.activeServiceWorker)return;this.sender=new hn(this.activeServiceWorker);const n=await this.sender._send("ping",{},800);n&&(null===(e=n[0])||void 0===e?void 0:e.fulfilled)&&(null===(t=n[0])||void 0===t?void 0:t.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(t){}}async _isAvailable(){try{if(!indexedDB)return!1;const e=await _n();return await In(e,rn,"1"),await wn(e,rn),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite((async()=>(await this._withRetries((n=>In(n,e,t))),this.localCache[e]=t,this.notifyServiceWorker(e))))}async _get(e){const t=await this._withRetries((t=>async function(e,t){const n=bn(e,!1).get(t),r=await new vn(n).toPromise();return void 0===r?null:r.value}(t,e)));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite((async()=>(await this._withRetries((t=>wn(t,e))),delete this.localCache[e],this.notifyServiceWorker(e))))}async _poll(){const e=await this._withRetries((e=>{const t=bn(e,!1).getAll();return new vn(t).toPromise()}));if(!e)return[];if(0!==this.pendingWrites)return[];const t=[],n=new Set;for(const{fbase_key:r,value:i}of e)n.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(i)&&(this.notifyListeners(r,i),t.push(r));for(const e of Object.keys(this.localCache))this.localCache[e]&&!n.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;const n=this.listeners[e];if(n)for(const e of Array.from(n))e(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((async()=>this._poll()),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}Tn.type="LOCAL";const En=Tn;Ct("rcb"),new je(3e4,6e4);class kn{constructor(e){this.providerId=kn.PROVIDER_ID,this.auth=Nt(e)}verifyPhoneNumber(e,t){return async function(e,t,n){var r;const i=await n.verify();try{let s;if(Ne("string"==typeof i,e,"argument-error"),Ne("recaptcha"===n.type,e,"argument-error"),s="string"==typeof t?{phoneNumber:t}:t,"session"in s){const t=s.session;if("phoneNumber"in s){Ne("enroll"===t.type,e,"internal-error");const n=await function(e,t){return We(e,"POST","/v2/accounts/mfaEnrollment:start",He(e,t))}(e,{idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:s.phoneNumber,recaptchaToken:i}});return n.phoneSessionInfo.sessionInfo}{Ne("signin"===t.type,e,"internal-error");const n=(null===(r=s.multiFactorHint)||void 0===r?void 0:r.uid)||s.multiFactorUid;Ne(n,e,"missing-multi-factor-info");const o=await function(e,t){return We(e,"POST","/v2/accounts/mfaSignIn:start",He(e,t))}(e,{mfaPendingCredential:t.credential,mfaEnrollmentId:n,phoneSignInInfo:{recaptchaToken:i}});return o.phoneResponseInfo.sessionInfo}}{const{sessionInfo:t}=await async function(e,t){return We(e,"POST","/v1/accounts:sendVerificationCode",He(e,t))}(e,{phoneNumber:s.phoneNumber,recaptchaToken:i});return t}}finally{n._reset()}}(this.auth,e,w(t))}static credential(e,t){return Ht._fromVerification(e,t)}static credentialFromResult(e){const t=e;return kn.credentialFromTaggedObject(t)}static credentialFromError(e){return kn.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{phoneNumber:t,temporaryProof:n}=e;return t&&n?Ht._fromTokenResponse(t,n):null}}kn.PROVIDER_ID="phone",kn.PHONE_SIGN_IN_METHOD="phone";class Sn extends Mt{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return xt(e,this._buildIdpRequest())}_linkToIdToken(e,t){return xt(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return xt(e,this._buildIdpRequest())}_buildIdpRequest(e){const t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function Cn(e){return nn(e.auth,new Sn(e),e.bypassAuthState)}function An(e){const{auth:t,user:n}=e;return Ne(n,t,"internal-error"),async function(e,t,n=!1){const{auth:r}=e,i="reauthenticate";try{const s=await Qe(e,tn(r,i,t,e),n);Ne(s.idToken,r,"internal-error");const o=Ze(s.idToken);Ne(o,r,"internal-error");const{sub:a}=o;return Ne(e.uid===a,r,"user-mismatch"),Zt._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&Re(r,"user-mismatch"),e}}(n,new Sn(e),e.bypassAuthState)}async function Rn(e){const{auth:t,user:n}=e;return Ne(n,t,"internal-error"),async function(e,t,n=!1){const r=await Qe(e,t._linkToIdToken(e.auth,await e.getIdToken()),n);return Zt._forOperation(e,"link",r)}(n,new Sn(e),e.bypassAuthState)}class On{constructor(e,t,n,r,i=!1){this.auth=e,this.resolver=n,this.user=r,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise((async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}}))}async onAuthEvent(e){const{urlResponse:t,sessionId:n,postBody:r,tenantId:i,error:s,type:o}=e;if(s)return void this.reject(s);const a={auth:this.auth,requestUri:t,sessionId:n,tenantId:i||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(o)(a))}catch(e){this.reject(e)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Cn;case"linkViaPopup":case"linkViaRedirect":return Rn;case"reauthViaPopup":case"reauthViaRedirect":return An;default:Re(this.auth,"internal-error")}}resolve(e){Le(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){Le(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()}}const Pn=new je(2e3,1e4);class Nn extends On{constructor(e,t,n,r,i){super(e,t,r,i),this.provider=n,this.authWindow=null,this.pollId=null,Nn.currentPopupAction&&Nn.currentPopupAction.cancel(),Nn.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return Ne(e,this.auth,"internal-error"),e}async onExecution(){Le(1===this.filter.length,"Popup operations only handle one event");const e=dn();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch((e=>{this.reject(e)})),this.resolver._isIframeWebStorageSupported(this.auth,(e=>{e||this.reject(Oe(this.auth,"web-storage-unsupported"))})),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(Oe(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,Nn.currentPopupAction=null}pollUserCancellation(){const e=()=>{var t,n;(null===(n=null===(t=this.authWindow)||void 0===t?void 0:t.window)||void 0===n?void 0:n.closed)?this.pollId=window.setTimeout((()=>{this.pollId=null,this.reject(Oe(this.auth,"popup-closed-by-user"))}),8e3):this.pollId=window.setTimeout(e,Pn.get())};e()}}Nn.currentPopupAction=null;const Dn="pendingRedirect",Ln=new Map;class $n extends On{constructor(e,t,n=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,n),this.eventId=null}async execute(){let e=Ln.get(this.auth._key());if(!e){try{const t=await async function(e,t){const n=function(e){return ut(Dn,e.config.apiKey,e.name)}(t),r=function(e){return at(e._redirectPersistence)}(e);if(!await r._isAvailable())return!1;const i="true"===await r._get(n);return await r._remove(n),i}(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(t)}catch(t){e=()=>Promise.reject(t)}Ln.set(this.auth._key(),e)}return this.bypassAuthState||Ln.set(this.auth._key(),(()=>Promise.resolve(null))),e()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"!==e.type){if(e.eventId){const t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}function Mn(e,t){Ln.set(e._key(),t)}async function Un(e,t,n=!1){const r=Nt(e),i=function(e,t){return t?at(t):(Ne(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}(r,t),s=new $n(r,i,n),o=await s.execute();return o&&!n&&(delete o.user._redirectEventId,await r._persistUserIfCurrent(o.user),await r._setRedirectUser(null,t)),o}class jn{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach((n=>{this.isEventForConsumer(e,n)&&(t=!0,this.sendToConsumer(e,n),this.saveEventToCache(e))})),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return xn(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){var n;if(e.error&&!xn(e)){const r=(null===(n=e.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error";t.onError(Oe(this.auth,r))}else t.onAuthEvent(e)}isEventForConsumer(e,t){const n=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&n}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(Fn(e))}saveEventToCache(e){this.cachedEventUids.add(Fn(e)),this.lastProcessedEventTime=Date.now()}}function Fn(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter((e=>e)).join("-")}function xn({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}const Bn=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Vn=/^https?/;function Hn(e){const t=$e(),{protocol:n,hostname:r}=new URL(t);if(e.startsWith("chrome-extension://")){const i=new URL(e);return""===i.hostname&&""===r?"chrome-extension:"===n&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===n&&i.hostname===r}if(!Vn.test(n))return!1;if(Bn.test(e))return r===e;const i=e.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}const Wn=new je(3e4,6e4);function zn(){const e=pn().___jsl;if(null==e?void 0:e.H)for(const t of Object.keys(e.H))if(e.H[t].r=e.H[t].r||[],e.H[t].L=e.H[t].L||[],e.H[t].r=[...e.H[t].L],e.CP)for(let t=0;t<e.CP.length;t++)e.CP[t]=null}let qn=null;function Kn(e){return qn=qn||function(e){return new Promise(((t,n)=>{var r,i,s;function o(){zn(),gapi.load("gapi.iframes",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{zn(),n(Oe(e,"network-request-failed"))},timeout:Wn.get()})}if(null===(i=null===(r=pn().gapi)||void 0===r?void 0:r.iframes)||void 0===i?void 0:i.Iframe)t(gapi.iframes.getContext());else{if(!(null===(s=pn().gapi)||void 0===s?void 0:s.load)){const t=Ct("iframefcb");return pn()[t]=()=>{gapi.load?o():n(Oe(e,"network-request-failed"))},St(`https://apis.google.com/js/api.js?onload=${t}`).catch((e=>n(e)))}o()}})).catch((e=>{throw qn=null,e}))}(e),qn}const Gn=new je(5e3,15e3),Jn={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Yn=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Xn(e){const t=e.config;Ne(t.authDomain,e,"auth-domain-config-required");const n=t.emulator?Fe(t,"emulator/auth/iframe"):`https://${e.config.authDomain}/__/auth/iframe`,r={apiKey:t.apiKey,appName:e.name,v:ue},i=Yn.get(e.config.apiHost);i&&(r.eid=i);const s=e._getFrameworks();return s.length&&(r.fw=s.join(",")),`${n}?${y(r).slice(1)}`}const Zn={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Qn{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}const er=encodeURIComponent("fac");async function tr(e,t,n,r,i,s){Ne(e.config.authDomain,e,"auth-domain-config-required"),Ne(e.config.apiKey,e,"invalid-api-key");const o={apiKey:e.config.apiKey,appName:e.name,authType:n,redirectUrl:r,v:ue,eventId:i};if(t instanceof qt){t.setDefaultLanguage(e.languageCode),o.providerId=t.providerId||"",function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}(t.getCustomParameters())||(o.customParameters=JSON.stringify(t.getCustomParameters()));for(const[e,t]of Object.entries(s||{}))o[e]=t}if(t instanceof Kt){const e=t.getScopes().filter((e=>""!==e));e.length>0&&(o.scopes=e.join(","))}e.tenantId&&(o.tid=e.tenantId);const a=o;for(const e of Object.keys(a))void 0===a[e]&&delete a[e];const c=await e._getAppCheckToken(),l=c?`#${er}=${encodeURIComponent(c)}`:"";return`${function({config:e}){return e.emulator?Fe(e,"emulator/auth/handler"):`https://${e.authDomain}/__/auth/handler`}(e)}?${y(a).slice(1)}${l}`}const nr="webStorageSupport",rr=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=ln,this._completeRedirectFn=Un,this._overrideRedirectResult=Mn}async _openPopup(e,t,n,r){var i;return Le(null===(i=this.eventManagers[e._key()])||void 0===i?void 0:i.manager,"_initialize() not called before _openPopup()"),function(e,t,n,r=500,i=600){const s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-r)/2,0).toString();let a="";const c=Object.assign(Object.assign({},Zn),{width:r.toString(),height:i.toString(),top:s,left:o}),l=d().toLowerCase();n&&(a=mt(l)?"_blank":n),pt(l)&&(t=t||"http://localhost",c.scrollbars="yes");const u=Object.entries(c).reduce(((e,[t,n])=>`${e}${t}=${n},`),"");if(function(e=d()){var t;return _t(e)&&!!(null===(t=window.navigator)||void 0===t?void 0:t.standalone)}(l)&&"_self"!==a)return function(e,t){const n=document.createElement("a");n.href=e,n.target=t;const r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}(t||"",a),new Qn(null);const h=window.open(t||"",a,u);Ne(h,e,"popup-blocked");try{h.focus()}catch(e){}return new Qn(h)}(e,await tr(e,t,n,$e(),r),dn())}async _openRedirect(e,t,n,r){return await this._originValidation(e),i=await tr(e,t,n,$e(),r),pn().location.href=i,new Promise((()=>{}));var i}_initialize(e){const t=e._key();if(this.eventManagers[t]){const{manager:e,promise:n}=this.eventManagers[t];return e?Promise.resolve(e):(Le(n,"If manager is not set, promise should be"),n)}const n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch((()=>{delete this.eventManagers[t]})),n}async initAndGetManager(e){const t=await async function(e){const t=await Kn(e),n=pn().gapi;return Ne(n,e,"internal-error"),t.open({where:document.body,url:Xn(e),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Jn,dontclear:!0},(t=>new Promise((async(n,r)=>{await t.restyle({setHideOnLeave:!1});const i=Oe(e,"network-request-failed"),s=pn().setTimeout((()=>{r(i)}),Gn.get());function o(){pn().clearTimeout(s),n(t)}t.ping(o).then(o,(()=>{r(i)}))}))))}(e),n=new jn(e);return t.register("authEvent",(t=>(Ne(null==t?void 0:t.authEvent,e,"invalid-auth-event"),{status:n.onEvent(t.authEvent)?"ACK":"ERROR"})),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:n},this.iframes[e._key()]=t,n}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(nr,{type:nr},(n=>{var r;const i=null===(r=null==n?void 0:n[0])||void 0===r?void 0:r[nr];void 0!==i&&t(!!i),Re(e,"internal-error")}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){const t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=async function(e){if(e.config.emulator)return;const{authorizedDomains:t}=await async function(e,t={}){return We(e,"GET","/v1/projects",t)}(e);for(const e of t)try{if(Hn(e))return}catch(e){}Re(e,"unauthorized-domain")}(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return It()||ft()||_t()}};var ir="@firebase/auth",sr="0.23.2";class or{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.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;const t=this.auth.onIdTokenChanged((t=>{e((null==t?void 0:t.stsTokenManager.accessToken)||null)}));this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();const t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){Ne(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}const ar=l("authIdTokenMaxAge")||300;let cr=null;function lr(e=function(e=te){const t=re.get(e);if(!t&&e===te&&c())return de();if(!t)throw ce.create("no-app",{appName:e});return t}()){const t=ae(e,"auth");if(t.isInitialized())return t.getImmediate();const n=function(e,t){const n=ae(e,"auth");if(n.isInitialized()){const e=n.getImmediate();if(m(n.getOptions(),null!=t?t:{}))return e;Re(e,"already-initialized")}return n.initialize({options:t})}(e,{popupRedirectResolver:rr,persistence:[En,an,ln]}),r=l("authTokenSyncURL");if(r){const e=(i=r,async e=>{const t=e&&await e.getIdTokenResult(),n=t&&((new Date).getTime()-Date.parse(t.issuedAtTime))/1e3;if(n&&n>ar)return;const r=null==t?void 0:t.token;cr!==r&&(cr=r,await fetch(i,{method:r?"POST":"DELETE",headers:r?{Authorization:`Bearer ${r}`}:{}}))});!function(e,t,n){w(e).beforeAuthStateChanged(t,n)}(n,e,(()=>e(n.currentUser))),function(t,n,r,i){w(t).onIdTokenChanged((t=>e(t)),void 0,void 0)}(n)}var i;const s=(o="auth",null===(d=null===(u=a())||void 0===u?void 0:u.emulatorHosts)||void 0===d?void 0:d[o]);var o,u,d;return s&&function(e,t,n){const r=Nt(e);Ne(r._canInitEmulator,r,"emulator-config-failed"),Ne(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");const i=!!(null==n?void 0:n.disableWarnings),s=Lt(t),{host:o,port:a}=function(e){const t=Lt(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){const e=i[1];return{host:e,port:$t(r.substr(e.length+1))}}{const[e,t]=r.split(":");return{host:e,port:$t(t)}}}(t),c=null===a?"":`:${a}`;r.config.emulator={url:`${s}//${o}${c}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:o,port:a,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})}),i||function(){function e(){const e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(n,`http://${s}`),n}var ur;ur="Browser",oe(new T("auth",((e,{options:t})=>{const n=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal"),{apiKey:s,authDomain:o}=n.options;Ne(s&&!s.includes(":"),"invalid-api-key",{appName:n.name});const a={apiKey:s,authDomain:o,clientPlatform:ur,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:wt(ur)},c=new Pt(n,r,i,a);return function(e,t){const n=(null==t?void 0:t.persistence)||[],r=(Array.isArray(n)?n:[n]).map(at);(null==t?void 0:t.errorMap)&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver)}(c,t),c}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((e,t,n)=>{e.getProvider("auth-internal").initialize()}))),oe(new T("auth-internal",(e=>{return t=Nt(e.getProvider("auth").getImmediate()),new or(t);var t}),"PRIVATE").setInstantiationMode("EXPLICIT")),he(ir,sr,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";default:return}}(ur)),he(ir,sr,"esm2017");var dr=n(560),hr=n.n(dr);const pr=(e,t)=>async(n,r={})=>{const i=t?await t.getIdToken():null,s=await fetch(`${e}${n}`,{mode:"cors",...r,headers:{...i&&{authorization:`Bearer ${i}`},...r.body&&{"content-type":"application/json"},...r.headers},...r.body&&{body:JSON.stringify(r.body)}}),o=await s.json();if(s.status>202)throw Object.assign(new Error(o?.message||`HTTP Error ${s.status}`),{status:s.status,code:o?.code,body:o});return o},fr=(e,t)=>{const n=Array.isArray(t.inputProps);return Object.keys(e).reduce(((r,i)=>{if(n&&!t.inputProps.includes(i))return r;const{isRef:s,isScalar:o,isRequired:a}=t.properties[i]||{};return s&&o&&!a&&null===e[i]?r:{...r,[i]:e[i]}}),{})},mr=(e,t,n,r={},i={})=>{const s=(({primaryKey:e,properties:t,...n})=>({primaryKey:e||"id",properties:Object.keys(t||{}).reduce(((e,n)=>{const r=t[n]||{},{type:i,isScalar:s,isRequired:o,isRef:a=!1}="string"==typeof r.type?"array"===r.type?r.enum?{type:"string",isScalar:!1,isRequired:!1}:r.items?.$ref?{type:r.items.$ref.split("/").pop(),isScalar:!1,isRequired:!1,isRef:!0}:{type:r.items?.type,isScalar:!1,isRequired:!1}:{type:"date-time"===r.format?"date":r.type,isScalar:!0,isRequired:!0}:Array.isArray(r.type)?2===r.type.length?{type:"date-time"===r.format?"date":r.type[0],isScalar:!0,isRequired:!1}:{type:"json",isScalar:!0,isRequired:r.type.includes("null")}:r.$ref?{type:r.$ref.split("/").pop(),isScalar:!0,isRequired:!0,isRef:!0}:{type:r.anyOf[0].$ref.split("/").pop(),isScalar:!0,isRequired:!1,isRef:!0},c=r.inputType||("integer"===i?"number":i);return{...e,[n]:{...t[n],type:i,isScalar:s,isRequired:"boolean"==typeof r.isRequired?r.isRequired:o,isRef:a,inputType:c}}}),{}),...n}))(r),{primaryKey:o,properties:a}=s,c=(e=>{const t=e.properties||{},n=e.inputProps||Object.keys(t),r=(e,n)=>{const r=t[e]||{};if([null,void 0].includes(n)){if(!r.isRequired)return;return{id:"value-missing-validation-error"}}if(r.enum){if(r.enum.includes(n))return;return{id:"enum-validation-error",values:{enum:r.enum,value:n}}}switch(r.type){case"integer":if(r.isScalar&&("number"!=typeof n||Number.isNaN(n)))return{id:"invalid-number-validation-error"};break;case"date":case"boolean":break;default:if(r.isRequired&&!n)return{id:"value-missing-validation-error"}}};return{validate:e=>n.reduce(((t,n)=>{const i=r(n,e[n]);return i?{...t,[n]:i}:t}),{}),validateAttr:r}})(s),l=(e=>{const t=(n=e,[...n].reduce(((e,t)=>t===t.toUpperCase()?`${e}-${t.toLowerCase()}`:`${e}${t}`),""));var n;return(e,n)=>`/${t}${e?`/${encodeURIComponent(e)}`:""}${((e={})=>Object.keys(e).length?`?q=${JSON.stringify(e)}`:"")(n)}`})(n),u=(...n)=>pr(e,t.authUser)(...n),d=({data:e,...t})=>u(l(null,t),{method:"POST",body:fr(e,s)}),h=({data:e,...t})=>{const{where:n,...r}=t;return u(l(n[o],r),{method:"PUT",body:fr(e,s)})},p=e=>{if(!e)return e;const t=Object.keys(e).reduce(((t,n)=>{const r=a[n]||{},{type:s,isScalar:o,isRef:c,format:l,items:u}=r;if(c){const r=`${(d=s)[0].toLowerCase()}${d.slice(1)}`;return o?{...t,[n]:i[r].parse(e[n])}:{...t,[n]:"function"==typeof i[r]?.parse?e[n].map((e=>i[r].parse(e))):e[n]}}var d;return{...t,[n]:"date"===s&&e[n]?new Date(e[n]):e[n]}}),{});return"function"==typeof s.parse?s.parse(t):t},f=Object.keys(a||{}).reduce(((e,t)=>a[t].isRef&&a[t].isScalar&&a[t].isRequired?Object.assign(e,{all:e.all.concat(t),oneToOne:e.oneToOne.concat(t),requiredOneToOne:e.requiredOneToOne.concat(t)}):a[t].isRef&&a[t].isScalar?Object.assign(e,{all:e.all.concat(t),oneToOne:e.oneToOne.concat(t),optionalOneToOne:e.optionalOneToOne.concat(t)}):a[t].isRef?Object.assign(e,{all:e.all.concat(t),oneToMany:e.oneToMany.concat(t)}):e),{all:[],oneToOne:[],requiredOneToOne:[],optionalOneToOne:[],oneToMany:[]});return{get schema(){return s},get relations(){return f},parse:p,validateAttr:c.validateAttr,validate:c.validate,findMany:e=>u(l(null,e)).then((e=>e.map(p))),findById:(e,t)=>u(l(e,t)).then(p),create:d,update:h,upsert:e=>e.where[o]?h({where:e.where,data:e.update}):d({data:e.create}),delete:e=>u(l(e),{method:"DELETE"}),stats:()=>u(l("_stats"))}},gr=(e,t,n)=>Object.keys(n.properties).reduce(((r,i)=>{const s=n.properties[i].$ref.split("/").pop();return Object.assign(r,{[i]:mr(e,t,n.definitions[s].plural||`${i}s`,n.definitions[s],r)})}),{}),yr=(e,t)=>Object.keys(e.definitions).reduce(((n,r)=>({...n,[r]:t[r]?{...e.definitions[r],...t[r],properties:Object.keys(e.definitions[r].properties).reduce(((n,i)=>({...n,[i]:{...e.definitions[r].properties[i],...(t[r].properties||{})[i]}})),t[r].properties||{})}:e.definitions[r]})),{}),vr=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Country":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"incomeFilter":{"type":["integer","null"]},"canApply":{"type":"boolean","default":false},"capital":{"type":"array","items":{"type":"string"}},"timeZone":{"type":["string","null"]},"flag":{"type":["string","null"]},"currency":{"anyOf":[{"$ref":"#/definitions/Currency"},{"type":"null"}]},"contracts":{"type":"array","items":{"$ref":"#/definitions/Contract"}},"users":{"type":"array","items":{"$ref":"#/definitions/User"}},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}},"applicationNationalities":{"type":"array","items":{"$ref":"#/definitions/Application"}},"educationLevels":{"type":"array","items":{"$ref":"#/definitions/EducationLevel"}},"universities":{"type":"array","items":{"$ref":"#/definitions/University"}}}},"Currency":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"countries":{"type":"array","items":{"$ref":"#/definitions/Country"}}}},"User":{"type":"object","properties":{"uid":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":["string","null"]},"role":{"type":["string","null"],"enum":["staff","manager","finance","admin"]},"disabled":{"type":"boolean","default":false},"lang":{"type":["string","null"],"enum":["en","es","pt"]},"referralSource":{"type":["string","null"],"enum":["word_of_mouth","codigo_m","social","google","print","tv","radio","other"]},"identifiesAsFemale":{"type":["boolean","null"]},"dateOfBirth":{"type":["string","null"],"format":"date-time"},"identificationNumber":{"type":["string","null"]},"mobileNumber":{"type":["string","null"]},"github":{"type":["string","null"]},"linkedin":{"type":["string","null"]},"bio":{"type":["string","null"]},"country":{"anyOf":[{"$ref":"#/definitions/Country"},{"type":"null"}]},"signupCohort":{"anyOf":[{"$ref":"#/definitions/Cohort"},{"type":"null"}]},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}},"contractsAsCheckPilot":{"type":"array","items":{"$ref":"#/definitions/Contract"}},"contracts":{"type":"array","items":{"$ref":"#/definitions/Contract"}},"dropouts":{"type":"array","items":{"$ref":"#/definitions/Dropout"}},"gigs":{"type":"array","items":{"$ref":"#/definitions/Gig"}},"messages":{"type":"array","items":{"$ref":"#/definitions/Message"}},"students":{"type":"array","items":{"$ref":"#/definitions/Student"}},"activityLog":{"type":"array","items":{"$ref":"#/definitions/ActivityLogEntry"}},"authoredActivityLog":{"type":"array","items":{"$ref":"#/definitions/ActivityLogEntry"}}}},"Track":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"programs":{"type":"array","items":{"$ref":"#/definitions/Program"}}}},"Program":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"description":{"type":["string","null"]},"track":{"$ref":"#/definitions/Track"},"cohorts":{"type":"array","items":{"$ref":"#/definitions/Cohort"}},"stages":{"type":"array","items":{"$ref":"#/definitions/Stage"}}}},"Stage":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"name":{"type":"string"},"order":{"type":"integer"},"program":{"$ref":"#/definitions/Program"},"cohorts":{"type":"array","items":{"$ref":"#/definitions/Cohort"}}}},"Cohort":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"name":{"type":"string"},"lang":{"type":["string","null"],"enum":["en","es","pt"]},"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"},"timeZone":{"type":["string","null"]},"startTime":{"type":["string","null"]},"endTime":{"type":["string","null"]},"legacySlug":{"type":"string"},"vacancies":{"type":["integer","null"]},"admissionStart":{"type":["string","null"],"format":"date-time"},"admissionEnd":{"type":["string","null"],"format":"date-time"},"admissionCountries":{"type":"array","items":{"type":"string"}},"placementStart":{"type":["string","null"],"format":"date-time"},"placementDuration":{"type":["integer","null"]},"program":{"$ref":"#/definitions/Program"},"stage":{"$ref":"#/definitions/Stage"},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}},"links":{"type":"array","items":{"$ref":"#/definitions/CohortLink"}},"dropouts":{"type":"array","items":{"$ref":"#/definitions/Dropout"}},"gigs":{"type":"array","items":{"$ref":"#/definitions/Gig"}},"students":{"type":"array","items":{"$ref":"#/definitions/Student"}},"signupUsers":{"type":"array","items":{"$ref":"#/definitions/User"}},"activityLog":{"type":"array","items":{"$ref":"#/definitions/ActivityLogEntry"}}}},"Student":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"legacyStudentCode":{"type":["string","null"]},"cohort":{"$ref":"#/definitions/Cohort"},"user":{"$ref":"#/definitions/User"}}},"CohortLink":{"type":"object","properties":{"id":{"type":"integer"},"url":{"type":"string"},"visibility":{"type":"string","enum":["public","members","staff","team","admin"]},"cohort":{"$ref":"#/definitions/Cohort"}}},"Dropout":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"date":{"type":"string","format":"date-time"},"reasonDetail":{"type":["string","null"]},"notes":{"type":["string","null"]},"staffSad":{"type":"boolean"},"covidRelated":{"type":["boolean","null"]},"reason":{"type":"string","enum":["dropout","noShow","invitedToLeave","changeCohort"]},"completedProjects":{"type":"integer"},"lastProject":{"type":["string","null"]},"cohort":{"$ref":"#/definitions/Cohort"},"user":{"$ref":"#/definitions/User"}}},"IscedLevel":{"type":"object","properties":{"id":{"type":"integer"},"label":{"type":"string"},"educationLevels":{"type":"array","items":{"$ref":"#/definitions/EducationLevel"}}}},"EducationLevel":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lang":{"type":"string","enum":["en","es","pt"]},"label":{"type":"string"},"country":{"$ref":"#/definitions/Country"},"iscedLevel":{"$ref":"#/definitions/IscedLevel"},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}}}},"University":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"lang":{"type":"string","enum":["en","es","pt"]},"name":{"type":"string"},"filter":{"type":"boolean"},"country":{"$ref":"#/definitions/Country"},"applications":{"type":"array","items":{"$ref":"#/definitions/Application"}}}},"Application":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"dateOfBirth":{"type":"string","format":"date-time"},"isAllowedToWork":{"type":"boolean"},"hasValidIdDocument":{"type":"boolean"},"locality":{"type":["number","string","boolean","object","array","null"]},"householdSize":{"type":"integer"},"children":{"type":"integer"},"householdIncome":{"type":"integer"},"schoolType":{"type":["string","null"],"enum":["private","public","other"]},"educationSubject":{"type":["string","null"],"enum":["design_and_media","software_engineering","engineering","management_and_business","languages","science","health","social_sciences","arts","comms_and_advertising","education","cooking","tourism","economics_and_accounting","law","other"]},"isStudying":{"type":"boolean"},"englishLevel":{"type":["string","null"],"enum":["NO","A1","A2","B1","B2","C1","C2"]},"workStatus":{"type":"string","enum":["never","not_now","yes"]},"isLookingForWork":{"type":["boolean","null"]},"monthsLookingForWork":{"type":["integer","null"]},"monthsUnemployed":{"type":["integer","null"]},"workRole":{"type":["string","null"],"enum":["waitress","promoter","manager","cashier","intern","operative","call_center","receptionist","sales_agent","assistant","professional","technical","consultant","other"]},"freelance":{"type":["boolean","null"]},"workFormal":{"type":["boolean","null"]},"workIncome":{"type":["integer","null"]},"failedFilters":{"type":"array","items":{"type":"string"}},"bypassFilters":{"type":"boolean","default":false},"isReady":{"type":"boolean","default":false},"isReturningApplicant":{"type":["boolean","null"]},"legacyAdmissionCohortSlug":{"type":["string","null"]},"cohort":{"$ref":"#/definitions/Cohort"},"user":{"$ref":"#/definitions/User"},"country":{"$ref":"#/definitions/Country"},"nationality":{"$ref":"#/definitions/Country"},"educationLevel":{"$ref":"#/definitions/EducationLevel"},"university":{"anyOf":[{"$ref":"#/definitions/University"},{"type":"null"}]},"challengeAssignments":{"type":"array","items":{"$ref":"#/definitions/ApplicationChallengeAssignment"}}}},"ApplicationChallenge":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"slug":{"type":"string"},"version":{"type":"string"},"trackId":{"type":"integer"},"langs":{"type":"array","enum":["en","es","pt"]},"json":{"type":"string"},"archived":{"type":"boolean","default":false},"assignments":{"type":"array","items":{"$ref":"#/definitions/ApplicationChallengeAssignment"}}}},"ApplicationChallengeAssignment":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"application":{"$ref":"#/definitions/Application"},"challenge":{"$ref":"#/definitions/ApplicationChallenge"}}},"ActivityLogEntry":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"type":{"type":"string","enum":["challenge","application_filter","application_filter_bypass","application_cohort_change"]},"data":{"type":["number","string","boolean","object","array","null"]},"path":{"type":"string"},"author":{"$ref":"#/definitions/User"},"user":{"$ref":"#/definitions/User"},"cohort":{"$ref":"#/definitions/Cohort"}}},"Contract":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"isEmployment":{"type":"boolean"},"feeAmount":{"type":"integer"},"hoursPerWeek":{"type":"integer"},"start":{"type":"string","format":"date-time"},"end":{"type":["string","null"],"format":"date-time"},"isTrial":{"type":"boolean","default":false},"source":{"type":["string","null"],"enum":["graduate","referral","jazzhr","web","linkedin","other"]},"checkPilot":{"anyOf":[{"$ref":"#/definitions/User"},{"type":"null"}]},"country":{"$ref":"#/definitions/Country"},"user":{"$ref":"#/definitions/User"},"gigs":{"type":"array","items":{"$ref":"#/definitions/Gig"}}}},"Gig":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"role":{"type":"string","enum":["bm","pdc","js","ux"]},"hoursPerWeek":{"type":"integer"},"start":{"type":"string","format":"date-time"},"end":{"type":["string","null"],"format":"date-time"},"cohort":{"$ref":"#/definitions/Cohort"},"contract":{"$ref":"#/definitions/Contract"},"user":{"$ref":"#/definitions/User"}}},"Message":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"key":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"transport":{"type":"string","enum":["mandrill","slack"]},"status":{"type":"string","default":"PENDING","enum":["PENDING","QUEUED","ERROR","SENT"]},"data":{"type":["number","string","boolean","object","array","null"]},"taskInfo":{"type":["number","string","boolean","object","array","null"]},"user":{"anyOf":[{"$ref":"#/definitions/User"},{"type":"null"}]},"logs":{"type":"array","items":{"$ref":"#/definitions/MessageLog"}}}},"MessageLog":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"statusText":{"type":["string","null"]},"message":{"$ref":"#/definitions/Message"}}}},"type":"object","properties":{"country":{"$ref":"#/definitions/Country"},"currency":{"$ref":"#/definitions/Currency"},"user":{"$ref":"#/definitions/User"},"track":{"$ref":"#/definitions/Track"},"program":{"$ref":"#/definitions/Program"},"stage":{"$ref":"#/definitions/Stage"},"cohort":{"$ref":"#/definitions/Cohort"},"student":{"$ref":"#/definitions/Student"},"cohortLink":{"$ref":"#/definitions/CohortLink"},"dropout":{"$ref":"#/definitions/Dropout"},"iscedLevel":{"$ref":"#/definitions/IscedLevel"},"educationLevel":{"$ref":"#/definitions/EducationLevel"},"university":{"$ref":"#/definitions/University"},"application":{"$ref":"#/definitions/Application"},"applicationChallenge":{"$ref":"#/definitions/ApplicationChallenge"},"applicationChallengeAssignment":{"$ref":"#/definitions/ApplicationChallengeAssignment"},"activityLogEntry":{"$ref":"#/definitions/ActivityLogEntry"},"contract":{"$ref":"#/definitions/Contract"},"gig":{"$ref":"#/definitions/Gig"},"message":{"$ref":"#/definitions/Message"},"messageLog":{"$ref":"#/definitions/MessageLog"}}}'),br={Country:{primaryKey:"code",plural:"countries",searchProps:["code","name","timeZone"],getOptionLabel:({code:e,name:t})=>`${e} / ${t}`},ActivityLogEntry:{plural:"activityLog"},User:{primaryKey:"uid",inputProps:["firstName","lastName","email","password","lang","identifiesAsFemale","dateOfBirth","country","identificationNumber","mobileNumber","github","linkedin","bio","role","signupCohort","disabled","referralSource"],searchProps:["firstName","lastName","email"],getOptionLabel:({firstName:e,lastName:t,email:n})=>`${e} ${t} (${n})`,properties:{email:{inputType:"email"},mobileNumber:{inputType:"phone"},bio:{inputType:"textarea"}},parse:e=>{const t=e.github?`https://github.com/${e.github}.png?size=`:`https://www.gravatar.com/avatar/${hr()(e.email)}?s=`;return{...e,fullName:`${e.firstName||""}${e.lastName?` ${e.lastName}`:""}`,avatar:e=>`${t}${e}`,isStaff:["staff","manager","finance","admin"].includes(e.role),isManager:["manager","finance","admin"].includes(e.role),isFinance:["finance","admin"].includes(e.role),isAdmin:"admin"===e.role}}},Track:{searchProps:["name"]},Program:{searchProps:["name"]},Stage:{searchProps:["name"]},Cohort:{inputProps:["program","stage","lang","name","start","end","timeZone","startTime","endTime","vacancies","admissionStart","admissionEnd","placementStart","admissionCountries"],searchProps:["name"],getOptionLabel:({id:e,name:t,stage:n})=>`${t}${n?` - ${n.name}`:""} (id: ${e})`,properties:{},parse:e=>{const t=Date.now();let n;if(e.placementStart){const r=e.placementDuration||270;new Date(+e.placementStart+24*r*60*60*1e3)<t?n="placement_ended":e.placementStart<t&&(n="placement_started")}!n&&e.end<t&&(n="ended"),!n&&e.start<t&&(n="started");const r=!!e.admissionEnd&&+e.admissionEnd+864e5;!n&&r&&r<t&&(n="admission_ended"),!n&&e.admissionStart&&e.admissionStart<t&&(n="admission_started"),!n&&e.admissionStart&&e.admissionEnd&&(n="planned"),n||(n="draft");const i=e.start>t&&e.vacancies?e.vacancies:e._count?.students||e.students?.length||0;return{...e,status:n,size:i}}},Student:{inputProps:["cohort","user"],searchProps:[]},Dropout:{inputProps:["cohort","user","date","reason","reasonDetail","lastProject","completedProjects","notes","staffSad","covidRelated"],searchProps:["user.uid","user.firstName","user.lastName","user.email","cohort.name"]},Contract:{inputProps:["user","country","isEmployment","feeAmount","hoursPerWeek","start","end","isTrial","checkPilot","source"],searchProps:["user.firstName","user.lastName","user.email"],getOptionLabel:({id:e,user:t})=>`${t?.firstName} (id: ${e})`},Gig:{inputProps:["cohort","user","contract","role","hoursPerWeek","start","end"]},Application:{inputProps:["user","cohort","dateOfBirth","country","locality","nationality","isAllowedToWork","hasValidIdDocument","householdSize","children","householdIncome","educationLevel","schoolType","educationSubject","university","isStudying","englishLevel","workStatus","isLookingForWork","monthsLookingForWork","monthsUnemployed","workRole","freelance","workFormal","workIncome","isReady","bypassFilters"],properties:{locality:{isRequired:!0},isReady:{isRequired:!1},bypassFilters:{isRequired:!1}},parse:e=>{const t="boolean"==typeof e.hasFailedFilters?e.hasFailedFilters:"number"==typeof e.failedFilters?.length?e.failedFilters.length>0:void 0;if(!e.cohort?.admissionEnd||void 0===t)return e;const n=Date.now();let r;return r=e.isReady?"ready":t&&!e.bypassFilters?"rejected":e.createdAt<n-7776e6?"expired":"admission_started"!==e.cohort?.status?"admission_ended":"active",{...e,status:r}}},IscedLevel:{parse:e=>{const t=Math.floor(e.id/10);return{...e,level:t,completed:10*t<e.id}}},EducationLevel:{searchProps:["label"]},University:{plural:"universities",searchProps:["name"]}},_r="https://raw.githubusercontent.com/Laboratoria/bootcamp",Ir=()=>fetch("https://api.github.com/repos/Laboratoria/bootcamp/releases/latest").then((e=>e.json())).then((({tag_name:e})=>e)),wr=e=>t=>t.filter((t=>!(e.locale&&e.locale!==t.locale||e.track&&e.track!==t.track))),Tr=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Country":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"jobs":{"type":"array","items":{"$ref":"#/definitions/Job"}},"companies":{"type":"array","items":{"$ref":"#/definitions/Company"}}}},"Industry":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"name":{"type":"string"},"companies":{"type":"array","items":{"$ref":"#/definitions/Company"}}}},"Company":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"source":{"type":"string"},"sourceId":{"type":"string"},"name":{"type":"string"},"size":{"type":["string","null"],"enum":["A_2_10","B_11_50","C_51_200","D_201_500","E_501_1000","F_1001_5000","G_5001_10000","H_10001_plus"]},"data":{"type":["number","string","boolean","object","array","null"]},"web":{"type":["string","null"]},"twitter":{"type":["string","null"]},"github":{"type":["string","null"]},"facebook":{"type":["string","null"]},"country":{"anyOf":[{"$ref":"#/definitions/Country"},{"type":"null"}]},"industry":{"anyOf":[{"$ref":"#/definitions/Industry"},{"type":"null"}]},"jobs":{"type":"array","items":{"$ref":"#/definitions/Job"}},"categories":{"type":"array","enum":["Tech_Consultancy","Digital_Transformation","Agency","Startups","High_tech","Traditional_Consulting"]}}},"Job":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"source":{"type":"string"},"sourceId":{"type":"string"},"title":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"modality":{"type":"string"},"publicUrl":{"type":["string","null"]},"location":{"type":["string","null"]},"data":{"type":["number","string","boolean","object","array","null"]},"description":{"type":["string","null"]},"descriptionHTML":{"type":["string","null"]},"functions":{"type":["string","null"]},"functionsHTML":{"type":["string","null"]},"seniority":{"type":["string","null"]},"remote":{"type":["boolean","null"]},"remoteOption":{"type":["string","null"],"enum":["remote_for_now","locally_remote","fully_remote","no_remote","mixed"]},"lang":{"type":["string","null"],"enum":["en","es","pt"]},"maxSalary":{"type":["integer","null"]},"minSalary":{"type":["integer","null"]},"tags":{"type":"array","items":{"type":"string"}},"company":{"$ref":"#/definitions/Company"},"country":{"anyOf":[{"$ref":"#/definitions/Country"},{"type":"null"}]},"validityReviews":{"type":"array","items":{"$ref":"#/definitions/JobValidityReview"}},"applications":{"type":"array","items":{"$ref":"#/definitions/JobApplication"}}}},"JobValidityReview":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"isValid":{"type":"boolean"},"profileType":{"type":["string","null"],"enum":["design","front_end","angular","react","vue","back_end","full_stack","ux","other"]},"invalidReason":{"type":["string","null"],"enum":["unrelated","experience","qualifications","other"]},"comment":{"type":["string","null"]},"job":{"$ref":"#/definitions/Job"}}},"JobApplication":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":["string","null"]},"uid":{"type":"string"},"status":{"type":"string","default":"pending","enum":["pending","applied","interview","challenge","followup","hired","not_hired"]},"cohortId":{"type":["integer","null"]},"hireDate":{"type":["string","null"],"format":"date-time"},"jobStartDate":{"type":["string","null"],"format":"date-time"},"netSalary":{"type":["integer","null"]},"grossSalary":{"type":["integer","null"]},"currency":{"type":["string","null"]},"job":{"$ref":"#/definitions/Job"}}}},"type":"object","properties":{"country":{"$ref":"#/definitions/Country"},"industry":{"$ref":"#/definitions/Industry"},"company":{"$ref":"#/definitions/Company"},"job":{"$ref":"#/definitions/Job"},"jobValidityReview":{"$ref":"#/definitions/JobValidityReview"},"jobApplication":{"$ref":"#/definitions/JobApplication"}}}'),Er={Country:{plural:"countries"},Job:{},Company:{plural:"companies"}},kr=e=>e>9?`${e}`:`0${e}`,Sr=e=>`${kr(e.getUTCDate())}/${kr(e.getUTCMonth()+1)}/${e.getUTCFullYear()}`,Cr=e=>`${kr(e.getUTCHours())}:${kr(e.getUTCMinutes())}:${e.getUTCSeconds()} UTC`,Ar=e=>`${Sr(e)} ${Cr(e)}`,Rr={es:"es-ES",pt:"pt-BR"},Or=(e,t="es",n=!1)=>new Intl.DateTimeFormat(Rr[t],{...n&&{year:"numeric"},month:"long",day:"numeric",timeZone:"UTC"}).format(new Date(e)),Pr=(e,t)=>{let n=t.getFullYear()-e.getFullYear();const r=t.getMonth()-e.getMonth();return(r<0||0===r&&t.getDate()<e.getDate())&&n--,n},Nr=(e,t,n,r)=>((e,t,n)=>new Intl.NumberFormat(`${e}-${t}`,{currency:n}))(t,n,r).format(e),Dr=e=>parseInt(e.replace(/[,\.]/g,""),10),Lr=e=>{try{return JSON.parse(window.localStorage.getItem(e))}catch(e){return null}},$r=({firebaseApiKey:e="AIzaSyAXbaEbpq8NOfn0r8mIrcoHvoGRkJThwdc",firebaseProject:t="laboratoria-la",coreApiUrl:n="https://us-central1-outpost-272720.cloudfunctions.net/core-api",jobsApiUrl:r="https://us-central1-outpost-272720.cloudfunctions.net/jobs-api"}={})=>{const i=de({apiKey:e,authDomain:`${t}.firebaseapp.com`,databaseURL:`https://${t}.firebaseio.com`,projectId:t}),s=lr(i),o={authUser:void 0,user:void 0},a=((e,t)=>({...gr(e,t,{...vr,definitions:yr(vr,br)}),gcpLog:{getEntries:async n=>{const r=pr(e,t.authUser);return await r(`/gcp-logs?q=${JSON.stringify(n)}`)}}}))(n,o),c=((e,t)=>gr(e,t,{...Tr,definitions:yr(Tr,Er)}))(r,o),l={onChange:e=>{return t=t=>{if(!t)return Object.assign(o,{authUser:null,user:null}),e(o);Object.assign(o,{authUser:t}),a.user.findById(t.uid).then((t=>{Object.assign(o,{user:t}),e(o)})).catch((t=>{console.error(t),Object.assign(o,{authUser:null,user:null}),e(o)}))},w(s).onAuthStateChanged(t,undefined,undefined);var t},signIn:(e,t)=>function(e,t,n){return async function(e,t){return nn(Nt(e),t)}(w(e),zt.credential(t,n))}(s,e,t),signOut:()=>w(s).signOut(),sendPasswordResetEmail:e=>async function(e,t,n){var r;const i=Nt(e),s={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};if(null===(r=i._getRecaptchaConfig())||void 0===r?void 0:r.emailPasswordEnabled){const e=await Rt(i,s,"getOobCode",!0);await jt(i,e)}else await jt(i,s).catch((async e=>{if("auth/missing-recaptcha-token"!==e.code)return Promise.reject(e);{console.log("Password resets are protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the password reset flow.");const e=await Rt(i,s,"getOobCode",!0);await jt(i,e)}}))}(s,e)};return{...c,project:{findMany:(e={})=>(async e=>fetch(`${_r}/${e||await Ir()}/dist/projects.json`).then((e=>e.json())))(e.tag).then(wr(e)),findById:(e,t={})=>(async(e,t)=>fetch(`${_r}/${t||await Ir()}/dist/projects/${e}.json`).then((e=>e.json())))(e,t.tag)},topic:{findMany:(e={})=>(async e=>fetch(`${_r}/${e||await Ir()}/dist/topics.json`).then((e=>e.json())))(e.tag).then(wr(e)),findById:(e,t={})=>(async(e,t)=>fetch(`${_r}/${t||await Ir()}/dist/topics/${e}.json`).then((e=>e.json())))(e,t.tag)},learningObjective:{findMany:(e={})=>(async e=>fetch(`${_r}/${e||await Ir()}/dist/learning-objectives.json`).then((e=>e.json())))(e.tag)},...a,auth:l,firebaseApp:i}}})();var i=r.ri,s=r.xG,o=r.p6,a=r.o0,c=r.bh,l=r.mr,u=r.ut,d=r.Pt,h=r.z5;export{i as createApp,s as formatCurrency,o as formatDate,a as formatDateTime,c as formatMonth,l as formatTime,u as getAgeAt,d as loadFromLocalStorage,h as parseCurrency};
|