@laboratoria/sdk-js 4.0.0 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,{r:()=>hr});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=e=>{var t;return null===(t=a())||void 0===t?void 0:t[`_${e}`]};class l{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 u(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}class d extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,d.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,h.prototype.create)}}class h{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(p,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(i,n):"Error",o=`${this.serviceName}: ${s} (${r}).`;return new d(r,o,n)}}const p=/\{\$([^}]+)}/g;function f(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(m(n)&&m(s)){if(!f(n,s))return!1}else if(n!==s)return!1}for(const e of r)if(!n.includes(e))return!1;return!0}function m(e){return null!==e&&"object"==typeof e}function g(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 y(e){const t={};return e.replace(/^\?/,"").split("&").forEach((e=>{if(e){const[n,r]=e.split("=");t[decodeURIComponent(n)]=decodeURIComponent(r)}})),t}function v(e){const t=e.indexOf("?");if(!t)return"";const n=e.indexOf("#",t);return e.substring(t,n>0?n:void 0)}class b{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=_),void 0===r.error&&(r.error=_),void 0===r.complete&&(r.complete=_);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 _(){}function I(e){return e&&e._delegate?e._delegate:e}class w{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 T="[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 l;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:T})}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="[DEFAULT]"){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="[DEFAULT]"){return this.instances.has(e)}getOptions(e="[DEFAULT]"){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===T?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="[DEFAULT]"){return this.component?this.component.multipleInstances?e:T:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class E{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 S=[];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 O={debug:A.DEBUG,verbose:A.VERBOSE,info:A.INFO,warn:A.WARN,error:A.ERROR,silent:A.SILENT},C=A.INFO,R={[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=R[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${r}] ${e.name}:`,...n)};class P{constructor(e){this.name=e,this._logLevel=C,this._logHandler=N,this._userLogHandler=null,S.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?O[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)}}let D,L;const M=new WeakMap,$=new WeakMap,U=new WeakMap,j=new WeakMap,x=new WeakMap;let F={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return $.get(e);if("objectStoreNames"===t)return e.objectStoreNames||U.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return V(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function B(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(L||(L=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(H(this),e),V(M.get(this))}:function(...e){return V(t.apply(H(this),e))}:function(e,...n){const r=t.call(H(this),e,...n);return U.set(r,e.sort?e.sort():[e]),V(r)}:(e instanceof IDBTransaction&&function(e){if($.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)}));$.set(e,t)}(e),n=e,(D||(D=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>n instanceof e))?new Proxy(e,F):e);var t,n}function V(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(V(e.result)),r()},s=()=>{n(e.error),r()};e.addEventListener("success",i),e.addEventListener("error",s)}));return t.then((t=>{t instanceof IDBCursor&&M.set(t,e)})).catch((()=>{})),x.set(t,e),t}(e);if(j.has(e))return j.get(e);const t=B(e);return t!==e&&(j.set(e,t),x.set(t,e)),t}const H=e=>x.get(e),z=["get","getKey","getAll","getAllKeys","count"],W=["put","add","delete","clear"],q=new Map;function G(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(q.get(t))return q.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=W.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!z.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 q.set(t,s),s}var J;J=F,F={...J,get:(e,t,n)=>G(e,t)||J.get(e,t,n),has:(e,t)=>!!G(e,t)||J.has(e,t)};class K{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 X="@firebase/app",Y="0.9.4",Q=new P("@firebase/app"),Z="[DEFAULT]",ee={[X]:"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"},te=new Map,ne=new Map;function re(e,t){try{e.container.addComponent(t)}catch(n){Q.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function ie(e){const t=e.name;if(ne.has(t))return Q.debug(`There were multiple attempts to register component ${t}.`),!1;ne.set(t,e);for(const t of te.values())re(t,e);return!0}function se(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}const oe=new h("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","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 ae{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 w("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 oe.create("app-deleted",{appName:this._name})}}const ce="9.17.2";function le(e,t={}){let n=e;"object"!=typeof t&&(t={name:t});const r=Object.assign({name:Z,automaticDataCollectionEnabled:!1},t),i=r.name;if("string"!=typeof i||!i)throw oe.create("bad-app-name",{appName:String(i)});var s;if(n||(n=null===(s=a())||void 0===s?void 0:s.config),!n)throw oe.create("no-options");const o=te.get(i);if(o){if(f(n,o.options)&&f(r,o.config))return o;throw oe.create("duplicate-app",{appName:i})}const c=new E(i);for(const e of ne.values())c.addComponent(e);const l=new ae(n,r,c);return te.set(i,l),l}function ue(e,t,n){var r;let i=null!==(r=ee[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 Q.warn(e.join(" "))}ie(new w(`${i}-version`,(()=>({library:i,version:t})),"VERSION"))}const de="firebase-heartbeat-store";let he=null;function pe(){return he||(he=function(e,t,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const o=indexedDB.open(e,t),a=V(o);return r&&o.addEventListener("upgradeneeded",(e=>{r(V(o.result),e.oldVersion,e.newVersion,V(o.transaction))})),n&&o.addEventListener("blocked",(()=>n())),a.then((e=>{s&&e.addEventListener("close",(()=>s())),i&&e.addEventListener("versionchange",(()=>i()))})).catch((()=>{})),a}("firebase-heartbeat-database",1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(de)}}).catch((e=>{throw oe.create("idb-open",{originalErrorMessage:e.message})}))),he}async function fe(e,t){try{const n=(await pe()).transaction(de,"readwrite"),r=n.objectStore(de);return await r.put(t,me(e)),n.done}catch(e){if(e instanceof d)Q.warn(e.message);else{const t=oe.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});Q.warn(t.message)}}}function me(e){return`${e.name}!${e.options.appId}`}class ge{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new ve(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){const e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),t=ye();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=ye(),{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),be(n)>t){e.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),be(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 ye(){return(new Date).toISOString().substring(0,10)}class ve{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{return(await pe()).transaction(de).objectStore(de).get(me(e))}catch(e){if(e instanceof d)Q.warn(e.message);else{const t=oe.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});Q.warn(t.message)}}}(this.app)||{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return fe(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 fe(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function be(e){return s(JSON.stringify({version:2,heartbeats:e})).length}function _e(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}ie(new w("platform-logger",(e=>new K(e)),"PRIVATE")),ie(new w("heartbeat",(e=>new ge(e)),"PRIVATE")),ue(X,Y,""),ue(X,Y,"esm2017"),ue("fire-js",""),ue("firebase","9.17.2","app"),Object.create,Object.create;const Ie=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."}},we=new h("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."}),Te=new P("@firebase/auth");function ke(e,...t){Te.logLevel<=A.ERROR&&Te.error(`Auth (9.17.2): ${e}`,...t)}function Ee(e,...t){throw Ae(e,...t)}function Se(e,...t){return Ae(e,...t)}function Ae(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 we.create(e,...t)}function Oe(e,t,...n){if(!e)throw Ae(t,...n)}function Ce(e){const t="INTERNAL ASSERTION FAILED: "+e;throw ke(t),new Error(t)}function Re(e,t){e||Ce(t)}const Ne=new Map;function Pe(e){Re(e instanceof Function,"Expected a class definition");let t=Ne.get(e);return t?(Re(t instanceof e,"Instance stored in cache mismatched with class"),t):(t=new e,Ne.set(e,t),t)}function De(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function Le(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}function Me(){return!("undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&("http:"===Le()||"https:"===Le()||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 $e{constructor(e,t){this.shortDelay=e,this.longDelay=t,Re(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(u())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return Me()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function Ue(e,t){Re(e.emulator,"Emulator should always be set here");const{url:n}=e.emulator;return t?`${n}${t.startsWith("/")?t.slice(1):t}`:n}class je{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 Ce("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 Ce("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 Ce("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}const xe={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:"internal-error",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"},Fe=new $e(3e4,6e4);function Be(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function Ve(e,t,n,r,i={}){return He(e,i,(async()=>{let i={},s={};r&&("GET"===t?s=r:i={body:JSON.stringify(r)});const o=g(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),je.fetch()(We(e,e.config.apiHost,n,o),Object.assign({method:t,headers:a,referrerPolicy:"no-referrer"},i))}))}async function He(e,t,n){e._canInitEmulator=!1;const r=Object.assign(Object.assign({},xe),t);try{const t=new qe(e),i=await Promise.race([n(),t.promise]);t.clearNetworkTimeout();const s=await i.json();if("needConfirmation"in s)throw Ge(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 Ge(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===n)throw Ge(e,"email-already-in-use",s);if("USER_DISABLED"===n)throw Ge(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({},Ie()),{[t]:n});return new h("auth","Firebase",r).create(t,{appName:e.name})}(e,a,o);Ee(e,a)}}catch(t){if(t instanceof d)throw t;Ee(e,"internal-error",{message:String(t)})}}async function ze(e,t,n,r,i={}){const s=await Ve(e,t,n,r,i);return"mfaPendingCredential"in s&&Ee(e,"multi-factor-auth-required",{_serverResponse:s}),s}function We(e,t,n,r){const i=`${t}${n}?${r}`;return e.config.emulator?Ue(e.config,i):`${e.config.apiScheme}://${i}`}class qe{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise(((e,t)=>{this.timer=setTimeout((()=>t(Se(this.auth,"network-request-failed"))),Fe.get())}))}clearNetworkTimeout(){clearTimeout(this.timer)}}function Ge(e,t,n){const r={appName:e.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=Se(e,t,r);return i.customData._tokenResponse=n,i}function Je(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Ke(e){return 1e3*Number(e)}function Xe(e){const[t,n,r]=e.split(".");if(void 0===t||void 0===n||void 0===r)return ke("JWT malformed, contained fewer than 3 sections"),null;try{const e=o(n);return e?JSON.parse(e):(ke("Failed to decode base64 JWT payload"),null)}catch(e){return ke("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}async function Ye(e,t,n=!1){if(n)return t;try{return await t}catch(t){throw t instanceof d&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class Qe{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 Ze{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Je(this.lastLoginAt),this.creationTime=Je(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function et(e){var t;const n=e.auth,r=await e.getIdToken(),i=await Ye(e,async function(e,t){return Ve(e,"POST","/v1/accounts:lookup",t)}(n,{idToken:r}));Oe(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=_e(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 Ze(s.createdAt,s.lastLoginAt),isAnonymous:h};Object.assign(e,p)}class tt{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){Oe(e.idToken,"internal-error"),Oe(void 0!==e.idToken,"internal-error"),Oe(void 0!==e.refreshToken,"internal-error");const t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):function(e){const t=Xe(e);return Oe(t,"internal-error"),Oe(void 0!==t.exp,"internal-error"),Oe(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 Oe(!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 He(e,{},(async()=>{const n=g({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:r,apiKey:i}=e.config,s=We(e,r,"/v1/token",`key=${i}`),o=await e._getAdditionalHeaders();return o["Content-Type"]="application/x-www-form-urlencoded",je.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 tt;return n&&(Oe("string"==typeof n,"internal-error",{appName:e}),s.refreshToken=n),r&&(Oe("string"==typeof r,"internal-error",{appName:e}),s.accessToken=r),i&&(Oe("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 tt,this.toJSON())}_performRefresh(){return Ce("not implemented")}}function nt(e,t){Oe("string"==typeof e||void 0===e,"internal-error",{appName:t})}class rt{constructor(e){var{uid:t,auth:n,stsTokenManager:r}=e,i=_e(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Qe(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 Ze(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){const t=await Ye(this,this.stsTokenManager.getToken(this.auth,e));return Oe(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=I(e),r=await n.getIdToken(t),i=Xe(r);Oe(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:Je(Ke(i.auth_time)),issuedAtTime:Je(Ke(i.iat)),expirationTime:Je(Ke(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=I(e);await et(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(Oe(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){return new rt(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}))}_onReload(e){Oe(!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 et(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){const e=await this.getIdToken();return await Ye(this,async function(e,t){return Ve(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;Oe(v&&w,e,"internal-error");const T=tt.fromJSON(this.name,w);Oe("string"==typeof v,e,"internal-error"),nt(u,e.name),nt(d,e.name),Oe("boolean"==typeof b,e,"internal-error"),Oe("boolean"==typeof _,e,"internal-error"),nt(h,e.name),nt(p,e.name),nt(f,e.name),nt(m,e.name),nt(g,e.name),nt(y,e.name);const k=new rt({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)&&(k.providerData=I.map((e=>Object.assign({},e)))),m&&(k._redirectEventId=m),k}static async _fromIdTokenResponse(e,t,n=!1){const r=new tt;r.updateFromServerResponse(t);const i=new rt({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:n});return await et(i),i}}class it{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){}}it.type="NONE";const st=it;function ot(e,t,n){return`firebase:${e}:${t}:${n}`}class at{constructor(e,t,n){this.persistence=e,this.auth=t,this.userKey=n;const{config:r,name:i}=this.auth;this.fullUserKey=ot(this.userKey,r.apiKey,i),this.fullPersistenceKey=ot("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?rt._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 at(Pe(st),e,n);const r=(await Promise.all(t.map((async e=>{if(await e._isAvailable())return e})))).filter((e=>e));let i=r[0]||Pe(st);const s=ot(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=rt._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 at(i,e,n)):new at(i,e,n)}}function ct(e){const t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";if(ht(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(lt(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(ft(t))return"Blackberry";if(mt(t))return"Webos";if(ut(t))return"Safari";if((t.includes("chrome/")||dt(t))&&!t.includes("edge/"))return"Chrome";if(pt(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 lt(e=u()){return/firefox\//i.test(e)}function ut(e=u()){const t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function dt(e=u()){return/crios\//i.test(e)}function ht(e=u()){return/iemobile/i.test(e)}function pt(e=u()){return/android/i.test(e)}function ft(e=u()){return/blackberry/i.test(e)}function mt(e=u()){return/webos/i.test(e)}function gt(e=u()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function yt(e=u()){return gt(e)||pt(e)||mt(e)||ft(e)||/windows phone/i.test(e)||ht(e)}function vt(e,t=[]){let n;switch(e){case"Browser":n=ct(u());break;case"Worker":n=`${ct(u())}-${e}`;break;default:n=e}return`${n}/JsCore/9.17.2/${t.length?t.join(","):"FirebaseCore-web"}`}class bt{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 _t{constructor(e,t,n){this.app=e,this.heartbeatServiceProvider=t,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new wt(this),this.idTokenSubscription=new wt(this),this.beforeStateQueue=new bt(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=we,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=Pe(t)),this._initializationPromise=this.queue((async()=>{var n,r;if(!this._deleted&&(this.persistenceManager=await at.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 Oe(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 et(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?I(e):null;return t&&Oe(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&&Oe(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(Pe(e))}))}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new h("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&&Pe(e)||this._popupRedirectResolver;Oe(t,this,"argument-error"),this.redirectPersistenceManager=await at.create(this,[Pe(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 Oe(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 Oe(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=vt(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());return n&&(t["X-Firebase-Client"]=n),t}}function It(e){return I(e)}class wt{constructor(e){this.auth=e,this.observer=null,this.addObserver=function(e,t){const n=new b(e,void 0);return n.subscribe.bind(n)}((e=>this.observer=e))}get next(){return Oe(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}function Tt(e){const t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function kt(e){if(!e)return null;const t=Number(e);return isNaN(t)?null:t}class Et{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return Ce("not implemented")}_getIdTokenResponse(e){return Ce("not implemented")}_linkToIdToken(e,t){return Ce("not implemented")}_getReauthenticationResolver(e){return Ce("not implemented")}}class St extends Et{constructor(e,t,n,r=null){super("password",n),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new St(e,t,"password")}static _fromEmailAndCode(e,t,n=null){return new St(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){switch(this.signInMethod){case"password":return async function(e,t){return ze(e,"POST","/v1/accounts:signInWithPassword",Be(e,t))}(e,{returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(e,t){return ze(e,"POST","/v1/accounts:signInWithEmailLink",Be(e,t))}(e,{email:this._email,oobCode:this._password});default:Ee(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return async function(e,t){return Ve(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 ze(e,"POST","/v1/accounts:signInWithEmailLink",Be(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:Ee(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function At(e,t){return ze(e,"POST","/v1/accounts:signInWithIdp",Be(e,t))}class Ot extends Et{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new Ot(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):Ee("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=_e(t,["providerId","signInMethod"]);if(!n||!r)return null;const s=new Ot(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 At(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,At(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,At(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=g(t)}return e}}const Ct={USER_NOT_FOUND:"user-not-found"};class Rt extends Et{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Rt({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Rt({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function(e,t){return ze(e,"POST","/v1/accounts:signInWithPhoneNumber",Be(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function(e,t){const n=await ze(e,"POST","/v1/accounts:signInWithPhoneNumber",Be(e,t));if(n.temporaryProof)throw Ge(e,"account-exists-with-different-credential",n);return n}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function(e,t){return ze(e,"POST","/v1/accounts:signInWithPhoneNumber",Be(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),Ct)}(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 Rt({verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}):null}}class Nt{constructor(e){var t,n,r,i,s,o;const a=y(v(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);Oe(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=y(v(e)).link,n=t?y(v(t)).deep_link_id:null,r=y(v(e)).deep_link_id;return(r?y(v(r)).link:null)||r||n||t||e}(e);try{return new Nt(t)}catch(e){return null}}}class Pt{constructor(){this.providerId=Pt.PROVIDER_ID}static credential(e,t){return St._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){const n=Nt.parseLink(t);return Oe(n,"argument-error"),St._fromEmailAndCode(e,n.code,n.tenantId)}}Pt.PROVIDER_ID="password",Pt.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Pt.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Dt{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 Lt extends Dt{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Mt extends Lt{constructor(){super("facebook.com")}static credential(e){return Ot._fromParams({providerId:Mt.PROVIDER_ID,signInMethod:Mt.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Mt.credentialFromTaggedObject(e)}static credentialFromError(e){return Mt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Mt.credential(e.oauthAccessToken)}catch(e){return null}}}Mt.FACEBOOK_SIGN_IN_METHOD="facebook.com",Mt.PROVIDER_ID="facebook.com";class $t extends Lt{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Ot._fromParams({providerId:$t.PROVIDER_ID,signInMethod:$t.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return $t.credentialFromTaggedObject(e)}static credentialFromError(e){return $t.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:t,oauthAccessToken:n}=e;if(!t&&!n)return null;try{return $t.credential(t,n)}catch(e){return null}}}$t.GOOGLE_SIGN_IN_METHOD="google.com",$t.PROVIDER_ID="google.com";class Ut extends Lt{constructor(){super("github.com")}static credential(e){return Ot._fromParams({providerId:Ut.PROVIDER_ID,signInMethod:Ut.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Ut.credentialFromTaggedObject(e)}static credentialFromError(e){return Ut.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Ut.credential(e.oauthAccessToken)}catch(e){return null}}}Ut.GITHUB_SIGN_IN_METHOD="github.com",Ut.PROVIDER_ID="github.com";class jt extends Lt{constructor(){super("twitter.com")}static credential(e,t){return Ot._fromParams({providerId:jt.PROVIDER_ID,signInMethod:jt.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret: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{oauthAccessToken:t,oauthTokenSecret:n}=e;if(!t||!n)return null;try{return jt.credential(t,n)}catch(e){return null}}}jt.TWITTER_SIGN_IN_METHOD="twitter.com",jt.PROVIDER_ID="twitter.com";class xt{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 rt._fromIdTokenResponse(e,n,r),s=Ft(n);return new xt({user:i,providerId:s,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);const r=Ft(n);return new xt({user:e,providerId:r,_tokenResponse:n,operationType:t})}}function Ft(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class Bt extends d{constructor(e,t,n,r){var i;super(t.code,t.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,Bt.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 Bt(e,t,n,r)}}function Vt(e,t,n,r){return("reauthenticate"===t?n._getReauthenticationResolver(e):n._getIdTokenResponse(e)).catch((n=>{if("auth/multi-factor-auth-required"===n.code)throw Bt._fromErrorAndOperation(e,n,t,r);throw n}))}async function Ht(e,t,n=!1){const r="signIn",i=await Vt(e,r,t),s=await xt._fromIdTokenResponse(e,r,i);return n||await e._updateCurrentUser(s.user),s}async function zt(e,t,n){const r=I(e),i={requestType:"PASSWORD_RESET",email:t};n&&function(e,t,n){var r;Oe((null===(r=n.url)||void 0===r?void 0:r.length)>0,e,"invalid-continue-uri"),Oe(void 0===n.dynamicLinkDomain||n.dynamicLinkDomain.length>0,e,"invalid-dynamic-link-domain"),t.continueUrl=n.url,t.dynamicLinkDomain=n.dynamicLinkDomain,t.canHandleCodeInApp=n.handleCodeInApp,n.iOS&&(Oe(n.iOS.bundleId.length>0,e,"missing-ios-bundle-id"),t.iOSBundleId=n.iOS.bundleId),n.android&&(Oe(n.android.packageName.length>0,e,"missing-android-pkg-name"),t.androidInstallApp=n.android.installApp,t.androidMinimumVersionCode=n.android.minimumVersion,t.androidPackageName=n.android.packageName)}(r,i,n),await async function(e,t){return async function(e,t){return Ve(e,"POST","/v1/accounts:sendOobCode",Be(e,t))}(e,t)}(r,i)}new WeakMap;const Wt="__sak";class qt{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Wt,"1"),this.storage.removeItem(Wt),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 Gt extends qt{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=u();return ut(e)||gt(e)}()&&function(){try{return!(!window||window===window.top)}catch(e){return!1}}(),this.fallbackToPolling=yt(),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=u();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]}}Gt.type="LOCAL";const Jt=Gt;class Kt extends qt{constructor(){super((()=>window.sessionStorage),"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Kt.type="SESSION";const Xt=Kt;class Yt{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 Yt(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 Qt(e="",t=10){let n="";for(let e=0;e<t;e++)n+=Math.floor(10*Math.random());return e+n}Yt.receivers=[];class Zt{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=Qt("",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 en(){return window}function tn(){return void 0!==en().WorkerGlobalScope&&"function"==typeof en().importScripts}const nn="firebaseLocalStorageDb",rn="firebaseLocalStorage",sn="fbase_key";class on{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 an(e,t){return e.transaction([rn],t?"readwrite":"readonly").objectStore(rn)}function cn(){const e=indexedDB.open(nn,1);return new Promise(((t,n)=>{e.addEventListener("error",(()=>{n(e.error)})),e.addEventListener("upgradeneeded",(()=>{const t=e.result;try{t.createObjectStore(rn,{keyPath:sn})}catch(e){n(e)}})),e.addEventListener("success",(async()=>{const n=e.result;n.objectStoreNames.contains(rn)?t(n):(n.close(),await function(){const e=indexedDB.deleteDatabase(nn);return new on(e).toPromise()}(),t(await cn()))}))}))}async function ln(e,t,n){const r=an(e,!0).put({[sn]:t,value:n});return new on(r).toPromise()}function un(e,t){const n=an(e,!0).delete(t);return new on(n).toPromise()}class dn{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 cn()),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 tn()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Yt._getInstance(tn()?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 Zt(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 cn();return await ln(e,Wt,"1"),await un(e,Wt),!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=>ln(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=an(e,!1).get(t),r=await new on(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=>un(t,e))),delete this.localCache[e],this.notifyServiceWorker(e))))}async _poll(){const e=await this._withRetries((e=>{const t=an(e,!1).getAll();return new on(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()}}dn.type="LOCAL";const hn=dn;function pn(e){return`__${e}${Math.floor(1e6*Math.random())}`}pn("rcb"),new $e(3e4,6e4);class fn{constructor(e){this.providerId=fn.PROVIDER_ID,this.auth=It(e)}verifyPhoneNumber(e,t){return async function(e,t,n){var r;const i=await n.verify();try{let s;if(Oe("string"==typeof i,e,"argument-error"),Oe("recaptcha"===n.type,e,"argument-error"),s="string"==typeof t?{phoneNumber:t}:t,"session"in s){const t=s.session;if("phoneNumber"in s){Oe("enroll"===t.type,e,"internal-error");const n=await function(e,t){return Ve(e,"POST","/v2/accounts/mfaEnrollment:start",Be(e,t))}(e,{idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:s.phoneNumber,recaptchaToken:i}});return n.phoneSessionInfo.sessionInfo}{Oe("signin"===t.type,e,"internal-error");const n=(null===(r=s.multiFactorHint)||void 0===r?void 0:r.uid)||s.multiFactorUid;Oe(n,e,"missing-multi-factor-info");const o=await function(e,t){return Ve(e,"POST","/v2/accounts/mfaSignIn:start",Be(e,t))}(e,{mfaPendingCredential:t.credential,mfaEnrollmentId:n,phoneSignInInfo:{recaptchaToken:i}});return o.phoneResponseInfo.sessionInfo}}{const{sessionInfo:t}=await async function(e,t){return Ve(e,"POST","/v1/accounts:sendVerificationCode",Be(e,t))}(e,{phoneNumber:s.phoneNumber,recaptchaToken:i});return t}}finally{n._reset()}}(this.auth,e,I(t))}static credential(e,t){return Rt._fromVerification(e,t)}static credentialFromResult(e){const t=e;return fn.credentialFromTaggedObject(t)}static credentialFromError(e){return fn.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{phoneNumber:t,temporaryProof:n}=e;return t&&n?Rt._fromTokenResponse(t,n):null}}fn.PROVIDER_ID="phone",fn.PHONE_SIGN_IN_METHOD="phone";class mn extends Et{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return At(e,this._buildIdpRequest())}_linkToIdToken(e,t){return At(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return At(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 gn(e){return Ht(e.auth,new mn(e),e.bypassAuthState)}function yn(e){const{auth:t,user:n}=e;return Oe(n,t,"internal-error"),async function(e,t,n=!1){const{auth:r}=e,i="reauthenticate";try{const s=await Ye(e,Vt(r,i,t,e),n);Oe(s.idToken,r,"internal-error");const o=Xe(s.idToken);Oe(o,r,"internal-error");const{sub:a}=o;return Oe(e.uid===a,r,"user-mismatch"),xt._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&Ee(r,"user-mismatch"),e}}(n,new mn(e),e.bypassAuthState)}async function vn(e){const{auth:t,user:n}=e;return Oe(n,t,"internal-error"),async function(e,t,n=!1){const r=await Ye(e,t._linkToIdToken(e.auth,await e.getIdToken()),n);return xt._forOperation(e,"link",r)}(n,new mn(e),e.bypassAuthState)}class bn{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 gn;case"linkViaPopup":case"linkViaRedirect":return vn;case"reauthViaPopup":case"reauthViaRedirect":return yn;default:Ee(this.auth,"internal-error")}}resolve(e){Re(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){Re(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 _n=new $e(2e3,1e4);class In extends bn{constructor(e,t,n,r,i){super(e,t,r,i),this.provider=n,this.authWindow=null,this.pollId=null,In.currentPopupAction&&In.currentPopupAction.cancel(),In.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return Oe(e,this.auth,"internal-error"),e}async onExecution(){Re(1===this.filter.length,"Popup operations only handle one event");const e=Qt();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(Se(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(Se(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,In.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(Se(this.auth,"popup-closed-by-user"))}),2e3):this.pollId=window.setTimeout(e,_n.get())};e()}}In.currentPopupAction=null;const wn=new Map;class Tn extends bn{constructor(e,t,n=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,n),this.eventId=null}async execute(){let e=wn.get(this.auth._key());if(!e){try{const t=await async function(e,t){const n=function(e){return ot("pendingRedirect",e.config.apiKey,e.name)}(t),r=function(e){return Pe(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)}wn.set(this.auth._key(),e)}return this.bypassAuthState||wn.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 kn(e,t){wn.set(e._key(),t)}async function En(e,t,n=!1){const r=It(e),i=function(e,t){return t?Pe(t):(Oe(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}(r,t),s=new Tn(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 Sn{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 On(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){var n;if(e.error&&!On(e)){const r=(null===(n=e.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error";t.onError(Se(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(An(e))}saveEventToCache(e){this.cachedEventUids.add(An(e)),this.lastProcessedEventTime=Date.now()}}function An(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter((e=>e)).join("-")}function On({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}const Cn=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Rn=/^https?/;function Nn(e){const t=De(),{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(!Rn.test(n))return!1;if(Cn.test(e))return r===e;const i=e.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}const Pn=new $e(3e4,6e4);function Dn(){const e=en().___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 Ln=null;function Mn(e){return Ln=Ln||function(e){return new Promise(((t,n)=>{var r,i,s,o;function a(){Dn(),gapi.load("gapi.iframes",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{Dn(),n(Se(e,"network-request-failed"))},timeout:Pn.get()})}if(null===(i=null===(r=en().gapi)||void 0===r?void 0:r.iframes)||void 0===i?void 0:i.Iframe)t(gapi.iframes.getContext());else{if(!(null===(s=en().gapi)||void 0===s?void 0:s.load)){const t=pn("iframefcb");return en()[t]=()=>{gapi.load?a():n(Se(e,"network-request-failed"))},(o=`https://apis.google.com/js/api.js?onload=${t}`,new Promise(((e,t)=>{const n=document.createElement("script");var r,i;n.setAttribute("src",o),n.onload=e,n.onerror=e=>{const n=Se("internal-error");n.customData=e,t(n)},n.type="text/javascript",n.charset="UTF-8",(null!==(i=null===(r=document.getElementsByTagName("head"))||void 0===r?void 0:r[0])&&void 0!==i?i:document).appendChild(n)}))).catch((e=>n(e)))}a()}})).catch((e=>{throw Ln=null,e}))}(e),Ln}const $n=new $e(5e3,15e3),Un={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},jn=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;Oe(t.authDomain,e,"auth-domain-config-required");const n=t.emulator?Ue(t,"emulator/auth/iframe"):`https://${e.config.authDomain}/__/auth/iframe`,r={apiKey:t.apiKey,appName:e.name,v:ce},i=jn.get(e.config.apiHost);i&&(r.eid=i);const s=e._getFrameworks();return s.length&&(r.fw=s.join(",")),`${n}?${g(r).slice(1)}`}const Fn={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Bn{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Vn(e,t,n,r,i,s){Oe(e.config.authDomain,e,"auth-domain-config-required"),Oe(e.config.apiKey,e,"invalid-api-key");const o={apiKey:e.config.apiKey,appName:e.name,authType:n,redirectUrl:r,v:ce,eventId:i};if(t instanceof Dt){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 Lt){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];return`${function({config:e}){return e.emulator?Ue(e,"emulator/auth/handler"):`https://${e.authDomain}/__/auth/handler`}(e)}?${g(a).slice(1)}`}const Hn="webStorageSupport",zn=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Xt,this._completeRedirectFn=En,this._overrideRedirectResult=kn}async _openPopup(e,t,n,r){var i;return Re(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({},Fn),{width:r.toString(),height:i.toString(),top:s,left:o}),l=u().toLowerCase();n&&(a=dt(l)?"_blank":n),lt(l)&&(t=t||"http://localhost",c.scrollbars="yes");const d=Object.entries(c).reduce(((e,[t,n])=>`${e}${t}=${n},`),"");if(function(e=u()){var t;return gt(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 Bn(null);const h=window.open(t||"",a,d);Oe(h,e,"popup-blocked");try{h.focus()}catch(e){}return new Bn(h)}(e,Vn(e,t,n,De(),r),Qt())}async _openRedirect(e,t,n,r){var i;return await this._originValidation(e),i=Vn(e,t,n,De(),r),en().location.href=i,new Promise((()=>{}))}_initialize(e){const t=e._key();if(this.eventManagers[t]){const{manager:e,promise:n}=this.eventManagers[t];return e?Promise.resolve(e):(Re(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 Mn(e),n=en().gapi;return Oe(n,e,"internal-error"),t.open({where:document.body,url:xn(e),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Un,dontclear:!0},(t=>new Promise((async(n,r)=>{await t.restyle({setHideOnLeave:!1});const i=Se(e,"network-request-failed"),s=en().setTimeout((()=>{r(i)}),$n.get());function o(){en().clearTimeout(s),n(t)}t.ping(o).then(o,(()=>{r(i)}))}))))}(e),n=new Sn(e);return t.register("authEvent",(t=>(Oe(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(Hn,{type:Hn},(n=>{var r;const i=null===(r=null==n?void 0:n[0])||void 0===r?void 0:r.webStorageSupport;void 0!==i&&t(!!i),Ee(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 Ve(e,"GET","/v1/projects",t)}(e);for(const e of t)try{if(Nn(e))return}catch(e){}Ee(e,"unauthorized-domain")}(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return yt()||ut()||gt()}};var Wn="@firebase/auth",qn="0.21.4";class Gn{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(){Oe(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}const Jn=c("authIdTokenMaxAge")||300;let Kn=null;function Xn(e=function(e="[DEFAULT]"){const t=te.get(e);if(!t&&e===Z)return le();if(!t)throw oe.create("no-app",{appName:e});return t}()){const t=se(e,"auth");if(t.isInitialized())return t.getImmediate();const n=function(e,t){const n=se(e,"auth");if(n.isInitialized()){const e=n.getImmediate();if(f(n.getOptions(),null!=t?t:{}))return e;Ee(e,"already-initialized")}return n.initialize({options:t})}(e,{popupRedirectResolver:zn,persistence:[hn,Jt,Xt]}),r=c("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>Jn)return;const r=null==t?void 0:t.token;Kn!==r&&(Kn=r,await fetch(i,{method:r?"POST":"DELETE",headers:r?{Authorization:`Bearer ${r}`}:{}}))});!function(e,t,n){I(e).beforeAuthStateChanged(t,n)}(n,e,(()=>e(n.currentUser))),function(t,n,r,i){I(t).onIdTokenChanged((t=>e(t)),void 0,void 0)}(n)}var i;const s=(o="auth",null===(u=null===(l=a())||void 0===l?void 0:l.emulatorHosts)||void 0===u?void 0:u[o]);var o,l,u;return s&&function(e,t,n){const r=It(e);Oe(r._canInitEmulator,r,"emulator-config-failed"),Oe(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");const i=!!(null==n?void 0:n.disableWarnings),s=Tt(t),{host:o,port:a}=function(e){const t=Tt(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:kt(r.substr(e.length+1))}}{const[e,t]=r.split(":");return{host:e,port:kt(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 Yn;Yn="Browser",ie(new w("auth",((e,{options:t})=>{const n=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat"),{apiKey:i,authDomain:s}=n.options;return((e,n)=>{Oe(i&&!i.includes(":"),"invalid-api-key",{appName:e.name}),Oe(!(null==s?void 0:s.includes(":")),"argument-error",{appName:e.name});const r={apiKey:i,authDomain:s,clientPlatform:Yn,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:vt(Yn)},o=new _t(e,n,r);return function(e,t){const n=(null==t?void 0:t.persistence)||[],r=(Array.isArray(n)?n:[n]).map(Pe);(null==t?void 0:t.errorMap)&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver)}(o,t),o})(n,r)}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((e,t,n)=>{e.getProvider("auth-internal").initialize()}))),ie(new w("auth-internal",(e=>{return t=It(e.getProvider("auth").getImmediate()),new Gn(t);var t}),"PRIVATE").setInstantiationMode("EXPLICIT")),ue(Wn,qn,void 0),ue(Wn,qn,"esm2017");var Qn=n(560),Zn=n.n(Qn);const er=(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},tr=(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]}}),{})},nr=(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)=>er(e,t.authUser)(...n),d=({data:e,...t})=>u(l(null,t),{method:"POST",body:tr(e,s)}),h=({data:e,...t})=>{const{where:n,...r}=t;return u(l(n[o],r),{method:"PUT",body:tr(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"))}},rr=(e,t,n)=>Object.keys(n.properties).reduce(((r,i)=>{const s=n.properties[i].$ref.split("/").pop();return Object.assign(r,{[i]:nr(e,t,n.definitions[s].plural||`${i}s`,n.definitions[s],r)})}),{}),ir=(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]})),{}),sr=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Country":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"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"}}}},"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"},"legacySlug":{"type":"string"},"vacancies":{"type":["integer","null"]},"admissionStart":{"type":["string","null"],"format":"date-time"},"admissionEnd":{"type":["string","null"],"format":"date-time"},"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"},"countryCode":{"type":"string"},"lang":{"type":"string","enum":["en","es","pt"]},"name":{"type":"string"},"filter":{"type":"boolean"},"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"]},"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"]},"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"},"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"}}}'),or={Country:{primaryKey:"code",plural:"countries",searchProps:["code","name"]},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/${Zn()(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","vacancies","admissionStart","admissionEnd","placementStart"],searchProps:["name"],getOptionLabel:({id:e,name:t,stage:n})=>`${t}${n?` - ${n.name}`:""} (id: ${e})`,properties:{},parse:e=>{const t=Date.now(),n=e.start>t?"upcoming":e.end<t?"past":"active",r="upcoming"===n&&e.vacancies?e.vacancies:e._count?.students||e.students?.length||0;return{...e,status:n,size:r}}},Student:{inputProps:[],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}}},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"]}},ar="https://raw.githubusercontent.com/Laboratoria/bootcamp",cr=()=>fetch("https://api.github.com/repos/Laboratoria/bootcamp/releases/latest").then((e=>e.json())).then((({tag_name:e})=>e)),lr=e=>t=>t.filter((t=>!(e.locale&&e.locale!==t.locale||e.track&&e.track!==t.track))),ur=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"}}}'),dr={Country:{plural:"countries"},Job:{},Company:{plural:"companies"}},hr=({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=le({apiKey:e,authDomain:`${t}.firebaseapp.com`,databaseURL:`https://${t}.firebaseio.com`,projectId:t}),s=Xn(i),o={authUser:void 0,user:void 0},a=((e,t)=>({...rr(e,t,{...sr,definitions:ir(sr,or)}),gcpLog:{getEntries:async n=>{const r=er(e,t.authUser);return await r(`/gcp-logs?q=${JSON.stringify(n)}`)}}}))(n,o),c=((e,t)=>rr(e,t,{...ur,definitions:ir(ur,dr)}))(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)}))},I(s).onAuthStateChanged(t,undefined,undefined);var t},signIn:(e,t)=>function(e,t,n){return async function(e,t){return Ht(It(e),t)}(I(e),Pt.credential(t,n))}(s,e,t),signOut:()=>I(s).signOut(),sendPasswordResetEmail:e=>zt(s,e)};return{...c,project:{findMany:(e={})=>(async e=>fetch(`${ar}/${e||await cr()}/dist/projects.json`).then((e=>e.json())))(e.tag).then(lr(e)),findById:(e,t={})=>(async(e,t)=>fetch(`${ar}/${t||await cr()}/dist/projects/${e}.json`).then((e=>e.json())))(e,t.tag)},topic:{findMany:(e={})=>(async e=>fetch(`${ar}/${e||await cr()}/dist/topics.json`).then((e=>e.json())))(e.tag).then(lr(e)),findById:(e,t={})=>(async(e,t)=>fetch(`${ar}/${t||await cr()}/dist/topics/${e}.json`).then((e=>e.json())))(e,t.tag)},learningObjective:{findMany:(e={})=>(async e=>fetch(`${ar}/${e||await cr()}/dist/learning-objectives.json`).then((e=>e.json())))(e.tag)},...a,auth:l,firebaseApp:i}}})();var i=r.r;export{i as createApp};
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,{r:()=>yr});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 k="[DEFAULT]";class E{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:k})}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=k){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=k){return this.instances.has(e)}getOptions(e=k){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===k?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=k){return this.component?this.component.multipleInstances?e:k: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 E(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const A=[];var O;!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"}(O||(O={}));const C={debug:O.DEBUG,verbose:O.VERBOSE,info:O.INFO,warn:O.WARN,error:O.ERROR,silent:O.SILENT},R=O.INFO,N={[O.DEBUG]:"log",[O.VERBOSE]:"log",[O.INFO]:"info",[O.WARN]:"warn",[O.ERROR]:"error"},P=(e,t,...n)=>{if(t<e.logLevel)return;const r=(new Date).toISOString(),i=N[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=R,this._logHandler=P,this._userLogHandler=null,A.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in O))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?C[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,O.DEBUG,...e),this._logHandler(this,O.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,O.VERBOSE,...e),this._logHandler(this,O.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,O.INFO,...e),this._logHandler(this,O.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,O.WARN,...e),this._logHandler(this,O.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,O.ERROR,...e),this._logHandler(this,O.ERROR,...e)}}const L=(e,t)=>t.some((t=>e instanceof t));let $,M;const U=new WeakMap,j=new WeakMap,x=new WeakMap,F=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||x.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 x.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(F.has(e))return F.get(e);const t=H(e);return t!==e&&(F.set(e,t),B.set(t,e)),t}const z=e=>B.get(e),q=["get","getKey","getAll","getAllKeys","count"],G=["put","add","delete","clear"],J=new Map;function K(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(J.get(t))return J.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,i=G.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 J.set(t,s),s}var X;X=V,V={...X,get:(e,t,n)=>K(e,t)||X.get(e,t,n),has:(e,t)=>!!K(e,t)||X.has(e,t)};class Y{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 Q="@firebase/app",Z="0.9.7",ee=new D("@firebase/app"),te="[DEFAULT]",ne={[Q]:"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 Firebase App.initializeApp()","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.19.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))})),n&&o.addEventListener("blocked",(()=>n())),a.then((e=>{s&&e.addEventListener("close",(()=>s())),i&&e.addEventListener("versionchange",(()=>i()))})).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);return await r.put(t,be(e)),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{return(await ye()).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 ke(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 Y(e)),"PRIVATE")),oe(new T("heartbeat",(e=>new _e(e)),"PRIVATE")),he(Q,Z,""),he(Q,Z,"esm2017"),he("fire-js",""),he("firebase","9.19.1","app"),Object.create,Object.create;const Ee=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."}),Ae=new D("@firebase/auth");function Oe(e,...t){Ae.logLevel<=O.ERROR&&Ae.error(`Auth (${ue}): ${e}`,...t)}function Ce(e,...t){throw Ne(e,...t)}function Re(e,...t){return Ne(e,...t)}function Ne(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 Pe(e,t,...n){if(!e)throw Ne(t,...n)}function De(e){const t="INTERNAL ASSERTION FAILED: "+e;throw Oe(t),new Error(t)}function Le(e,t){e||De(t)}const $e=new Map;function Me(e){Le(e instanceof Function,"Expected a class definition");let t=$e.get(e);return t?(Le(t instanceof e,"Instance stored in cache mismatched with class"),t):(t=new e,$e.set(e,t),t)}function Ue(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function je(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}function xe(){return!("undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&("http:"===je()||"https:"===je()||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 Fe{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 xe()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function Be(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 Ve{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 He={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"},We=new Fe(3e4,6e4);function ze(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function qe(e,t,n,r,i={}){return Ge(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),Ve.fetch()(Ke(e,e.config.apiHost,n,o),Object.assign({method:t,headers:a,referrerPolicy:"no-referrer"},i))}))}async function Ge(e,t,n){e._canInitEmulator=!1;const r=Object.assign(Object.assign({},He),t);try{const t=new Xe(e),i=await Promise.race([n(),t.promise]);t.clearNetworkTimeout();const s=await i.json();if("needConfirmation"in s)throw Ye(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 Ye(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===n)throw Ye(e,"email-already-in-use",s);if("USER_DISABLED"===n)throw Ye(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({},Ee()),{[t]:n});return new p("auth","Firebase",r).create(t,{appName:e.name})}(e,a,o);Ce(e,a)}}catch(t){if(t instanceof h)throw t;Ce(e,"network-request-failed",{message:String(t)})}}async function Je(e,t,n,r,i={}){const s=await qe(e,t,n,r,i);return"mfaPendingCredential"in s&&Ce(e,"multi-factor-auth-required",{_serverResponse:s}),s}function Ke(e,t,n,r){const i=`${t}${n}?${r}`;return e.config.emulator?Be(e.config,i):`${e.config.apiScheme}://${i}`}class Xe{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise(((e,t)=>{this.timer=setTimeout((()=>t(Re(this.auth,"network-request-failed"))),We.get())}))}clearNetworkTimeout(){clearTimeout(this.timer)}}function Ye(e,t,n){const r={appName:e.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=Re(e,t,r);return i.customData._tokenResponse=n,i}function Qe(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Ze(e){return 1e3*Number(e)}function et(e){const[t,n,r]=e.split(".");if(void 0===t||void 0===n||void 0===r)return Oe("JWT malformed, contained fewer than 3 sections"),null;try{const e=o(n);return e?JSON.parse(e):(Oe("Failed to decode base64 JWT payload"),null)}catch(e){return Oe("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}async function tt(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 nt{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 rt{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Qe(this.lastLoginAt),this.creationTime=Qe(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function it(e){var t;const n=e.auth,r=await e.getIdToken(),i=await tt(e,async function(e,t){return qe(e,"POST","/v1/accounts:lookup",t)}(n,{idToken:r}));Pe(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=ke(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 rt(s.createdAt,s.lastLoginAt),isAnonymous:h};Object.assign(e,p)}class st{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){Pe(e.idToken,"internal-error"),Pe(void 0!==e.idToken,"internal-error"),Pe(void 0!==e.refreshToken,"internal-error");const t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):function(e){const t=et(e);return Pe(t,"internal-error"),Pe(void 0!==t.exp,"internal-error"),Pe(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 Pe(!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 Ge(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",Ve.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 st;return n&&(Pe("string"==typeof n,"internal-error",{appName:e}),s.refreshToken=n),r&&(Pe("string"==typeof r,"internal-error",{appName:e}),s.accessToken=r),i&&(Pe("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 st,this.toJSON())}_performRefresh(){return De("not implemented")}}function ot(e,t){Pe("string"==typeof e||void 0===e,"internal-error",{appName:t})}class at{constructor(e){var{uid:t,auth:n,stsTokenManager:r}=e,i=ke(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new nt(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 rt(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){const t=await tt(this,this.stsTokenManager.getToken(this.auth,e));return Pe(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=et(r);Pe(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:Qe(Ze(i.auth_time)),issuedAtTime:Qe(Ze(i.iat)),expirationTime:Qe(Ze(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 it(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(Pe(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 at(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){Pe(!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 it(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){const e=await this.getIdToken();return await tt(this,async function(e,t){return qe(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;Pe(v&&w,e,"internal-error");const T=st.fromJSON(this.name,w);Pe("string"==typeof v,e,"internal-error"),ot(u,e.name),ot(d,e.name),Pe("boolean"==typeof b,e,"internal-error"),Pe("boolean"==typeof _,e,"internal-error"),ot(h,e.name),ot(p,e.name),ot(f,e.name),ot(m,e.name),ot(g,e.name),ot(y,e.name);const k=new at({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)&&(k.providerData=I.map((e=>Object.assign({},e)))),m&&(k._redirectEventId=m),k}static async _fromIdTokenResponse(e,t,n=!1){const r=new st;r.updateFromServerResponse(t);const i=new at({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:n});return await it(i),i}}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?at._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(Me(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]||Me(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=at._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}`}class Tt{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 kt{constructor(e,t,n){this.app=e,this.heartbeatServiceProvider=t,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new St(this),this.idTokenSubscription=new St(this),this.beforeStateQueue=new Tt(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.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=Me(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 Pe(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 it(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&&Pe(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&&Pe(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(Me(e))}))}_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&&Me(e)||this._popupRedirectResolver;Pe(t,this,"argument-error"),this.redirectPersistenceManager=await dt.create(this,[Me(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 Pe(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 Pe(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());return n&&(t["X-Firebase-Client"]=n),t}}function Et(e){return w(e)}class St{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 Pe(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}function At(e){const t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function Ot(e){if(!e)return null;const t=Number(e);return isNaN(t)?null:t}class Ct{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")}}class Rt extends Ct{constructor(e,t,n,r=null){super("password",n),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new Rt(e,t,"password")}static _fromEmailAndCode(e,t,n=null){return new Rt(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){switch(this.signInMethod){case"password":return async function(e,t){return Je(e,"POST","/v1/accounts:signInWithPassword",ze(e,t))}(e,{returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(e,t){return Je(e,"POST","/v1/accounts:signInWithEmailLink",ze(e,t))}(e,{email:this._email,oobCode:this._password});default:Ce(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return async function(e,t){return qe(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 Je(e,"POST","/v1/accounts:signInWithEmailLink",ze(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:Ce(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Nt(e,t){return Je(e,"POST","/v1/accounts:signInWithIdp",ze(e,t))}class Pt extends Ct{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new Pt(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):Ce("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=ke(t,["providerId","signInMethod"]);if(!n||!r)return null;const s=new Pt(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 Nt(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,Nt(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,Nt(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 Dt={USER_NOT_FOUND:"user-not-found"};class Lt extends Ct{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Lt({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Lt({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function(e,t){return Je(e,"POST","/v1/accounts:signInWithPhoneNumber",ze(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function(e,t){const n=await Je(e,"POST","/v1/accounts:signInWithPhoneNumber",ze(e,t));if(n.temporaryProof)throw Ye(e,"account-exists-with-different-credential",n);return n}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function(e,t){return Je(e,"POST","/v1/accounts:signInWithPhoneNumber",ze(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),Dt)}(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 Lt({verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}):null}}class $t{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);Pe(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 $t(t)}catch(e){return null}}}class Mt{constructor(){this.providerId=Mt.PROVIDER_ID}static credential(e,t){return Rt._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){const n=$t.parseLink(t);return Pe(n,"argument-error"),Rt._fromEmailAndCode(e,n.code,n.tenantId)}}Mt.PROVIDER_ID="password",Mt.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Mt.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Ut{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 jt extends Ut{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class xt extends jt{constructor(){super("facebook.com")}static credential(e){return Pt._fromParams({providerId:xt.PROVIDER_ID,signInMethod:xt.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return xt.credentialFromTaggedObject(e)}static credentialFromError(e){return xt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return xt.credential(e.oauthAccessToken)}catch(e){return null}}}xt.FACEBOOK_SIGN_IN_METHOD="facebook.com",xt.PROVIDER_ID="facebook.com";class Ft extends jt{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Pt._fromParams({providerId:Ft.PROVIDER_ID,signInMethod:Ft.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return Ft.credentialFromTaggedObject(e)}static credentialFromError(e){return Ft.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:t,oauthAccessToken:n}=e;if(!t&&!n)return null;try{return Ft.credential(t,n)}catch(e){return null}}}Ft.GOOGLE_SIGN_IN_METHOD="google.com",Ft.PROVIDER_ID="google.com";class Bt extends jt{constructor(){super("github.com")}static credential(e){return Pt._fromParams({providerId:Bt.PROVIDER_ID,signInMethod:Bt.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Bt.credentialFromTaggedObject(e)}static credentialFromError(e){return Bt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Bt.credential(e.oauthAccessToken)}catch(e){return null}}}Bt.GITHUB_SIGN_IN_METHOD="github.com",Bt.PROVIDER_ID="github.com";class Vt extends jt{constructor(){super("twitter.com")}static credential(e,t){return Pt._fromParams({providerId:Vt.PROVIDER_ID,signInMethod:Vt.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Vt.credentialFromTaggedObject(e)}static credentialFromError(e){return Vt.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthAccessToken:t,oauthTokenSecret:n}=e;if(!t||!n)return null;try{return Vt.credential(t,n)}catch(e){return null}}}Vt.TWITTER_SIGN_IN_METHOD="twitter.com",Vt.PROVIDER_ID="twitter.com";class Ht{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 at._fromIdTokenResponse(e,n,r),s=Wt(n);return new Ht({user:i,providerId:s,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);const r=Wt(n);return new Ht({user:e,providerId:r,_tokenResponse:n,operationType:t})}}function Wt(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class zt extends h{constructor(e,t,n,r){var i;super(t.code,t.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,zt.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 zt(e,t,n,r)}}function qt(e,t,n,r){return("reauthenticate"===t?n._getReauthenticationResolver(e):n._getIdTokenResponse(e)).catch((n=>{if("auth/multi-factor-auth-required"===n.code)throw zt._fromErrorAndOperation(e,n,t,r);throw n}))}async function Gt(e,t,n=!1){const r="signIn",i=await qt(e,r,t),s=await Ht._fromIdTokenResponse(e,r,i);return n||await e._updateCurrentUser(s.user),s}async function Jt(e,t,n){const r=w(e),i={requestType:"PASSWORD_RESET",email:t};n&&function(e,t,n){var r;Pe((null===(r=n.url)||void 0===r?void 0:r.length)>0,e,"invalid-continue-uri"),Pe(void 0===n.dynamicLinkDomain||n.dynamicLinkDomain.length>0,e,"invalid-dynamic-link-domain"),t.continueUrl=n.url,t.dynamicLinkDomain=n.dynamicLinkDomain,t.canHandleCodeInApp=n.handleCodeInApp,n.iOS&&(Pe(n.iOS.bundleId.length>0,e,"missing-ios-bundle-id"),t.iOSBundleId=n.iOS.bundleId),n.android&&(Pe(n.android.packageName.length>0,e,"missing-android-pkg-name"),t.androidInstallApp=n.android.installApp,t.androidMinimumVersionCode=n.android.minimumVersion,t.androidPackageName=n.android.packageName)}(r,i,n),await async function(e,t){return async function(e,t){return qe(e,"POST","/v1/accounts:sendOobCode",ze(e,t))}(e,t)}(r,i)}new WeakMap;const Kt="__sak";class Xt{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Kt,"1"),this.storage.removeItem(Kt),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 Yt extends Xt{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]}}Yt.type="LOCAL";const Qt=Yt;class Zt extends Xt{constructor(){super((()=>window.sessionStorage),"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Zt.type="SESSION";const en=Zt;class tn{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 tn(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 nn(e="",t=10){let n="";for(let e=0;e<t;e++)n+=Math.floor(10*Math.random());return e+n}tn.receivers=[];class rn{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=nn("",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 sn(){return window}function on(){return void 0!==sn().WorkerGlobalScope&&"function"==typeof sn().importScripts}const an="firebaseLocalStorageDb",cn="firebaseLocalStorage",ln="fbase_key";class un{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 dn(e,t){return e.transaction([cn],t?"readwrite":"readonly").objectStore(cn)}function hn(){const e=indexedDB.open(an,1);return new Promise(((t,n)=>{e.addEventListener("error",(()=>{n(e.error)})),e.addEventListener("upgradeneeded",(()=>{const t=e.result;try{t.createObjectStore(cn,{keyPath:ln})}catch(e){n(e)}})),e.addEventListener("success",(async()=>{const n=e.result;n.objectStoreNames.contains(cn)?t(n):(n.close(),await function(){const e=indexedDB.deleteDatabase(an);return new un(e).toPromise()}(),t(await hn()))}))}))}async function pn(e,t,n){const r=dn(e,!0).put({[ln]:t,value:n});return new un(r).toPromise()}function fn(e,t){const n=dn(e,!0).delete(t);return new un(n).toPromise()}class mn{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 hn()),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 on()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=tn._getInstance(on()?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 rn(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 hn();return await pn(e,Kt,"1"),await fn(e,Kt),!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=>pn(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=dn(e,!1).get(t),r=await new un(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=>fn(t,e))),delete this.localCache[e],this.notifyServiceWorker(e))))}async _poll(){const e=await this._withRetries((e=>{const t=dn(e,!1).getAll();return new un(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()}}mn.type="LOCAL";const gn=mn;function yn(e){return`__${e}${Math.floor(1e6*Math.random())}`}yn("rcb"),new Fe(3e4,6e4);class vn{constructor(e){this.providerId=vn.PROVIDER_ID,this.auth=Et(e)}verifyPhoneNumber(e,t){return async function(e,t,n){var r;const i=await n.verify();try{let s;if(Pe("string"==typeof i,e,"argument-error"),Pe("recaptcha"===n.type,e,"argument-error"),s="string"==typeof t?{phoneNumber:t}:t,"session"in s){const t=s.session;if("phoneNumber"in s){Pe("enroll"===t.type,e,"internal-error");const n=await function(e,t){return qe(e,"POST","/v2/accounts/mfaEnrollment:start",ze(e,t))}(e,{idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:s.phoneNumber,recaptchaToken:i}});return n.phoneSessionInfo.sessionInfo}{Pe("signin"===t.type,e,"internal-error");const n=(null===(r=s.multiFactorHint)||void 0===r?void 0:r.uid)||s.multiFactorUid;Pe(n,e,"missing-multi-factor-info");const o=await function(e,t){return qe(e,"POST","/v2/accounts/mfaSignIn:start",ze(e,t))}(e,{mfaPendingCredential:t.credential,mfaEnrollmentId:n,phoneSignInInfo:{recaptchaToken:i}});return o.phoneResponseInfo.sessionInfo}}{const{sessionInfo:t}=await async function(e,t){return qe(e,"POST","/v1/accounts:sendVerificationCode",ze(e,t))}(e,{phoneNumber:s.phoneNumber,recaptchaToken:i});return t}}finally{n._reset()}}(this.auth,e,w(t))}static credential(e,t){return Lt._fromVerification(e,t)}static credentialFromResult(e){const t=e;return vn.credentialFromTaggedObject(t)}static credentialFromError(e){return vn.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{phoneNumber:t,temporaryProof:n}=e;return t&&n?Lt._fromTokenResponse(t,n):null}}vn.PROVIDER_ID="phone",vn.PHONE_SIGN_IN_METHOD="phone";class bn extends Ct{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Nt(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Nt(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Nt(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 _n(e){return Gt(e.auth,new bn(e),e.bypassAuthState)}function In(e){const{auth:t,user:n}=e;return Pe(n,t,"internal-error"),async function(e,t,n=!1){const{auth:r}=e,i="reauthenticate";try{const s=await tt(e,qt(r,i,t,e),n);Pe(s.idToken,r,"internal-error");const o=et(s.idToken);Pe(o,r,"internal-error");const{sub:a}=o;return Pe(e.uid===a,r,"user-mismatch"),Ht._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&Ce(r,"user-mismatch"),e}}(n,new bn(e),e.bypassAuthState)}async function wn(e){const{auth:t,user:n}=e;return Pe(n,t,"internal-error"),async function(e,t,n=!1){const r=await tt(e,t._linkToIdToken(e.auth,await e.getIdToken()),n);return Ht._forOperation(e,"link",r)}(n,new bn(e),e.bypassAuthState)}class Tn{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 _n;case"linkViaPopup":case"linkViaRedirect":return wn;case"reauthViaPopup":case"reauthViaRedirect":return In;default:Ce(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 kn=new Fe(2e3,1e4);class En extends Tn{constructor(e,t,n,r,i){super(e,t,r,i),this.provider=n,this.authWindow=null,this.pollId=null,En.currentPopupAction&&En.currentPopupAction.cancel(),En.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return Pe(e,this.auth,"internal-error"),e}async onExecution(){Le(1===this.filter.length,"Popup operations only handle one event");const e=nn();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(Re(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(Re(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,En.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(Re(this.auth,"popup-closed-by-user"))}),2e3):this.pollId=window.setTimeout(e,kn.get())};e()}}En.currentPopupAction=null;const Sn="pendingRedirect",An=new Map;class On extends Tn{constructor(e,t,n=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,n),this.eventId=null}async execute(){let e=An.get(this.auth._key());if(!e){try{const t=await async function(e,t){const n=function(e){return ut(Sn,e.config.apiKey,e.name)}(t),r=function(e){return Me(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)}An.set(this.auth._key(),e)}return this.bypassAuthState||An.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 Cn(e,t){An.set(e._key(),t)}async function Rn(e,t,n=!1){const r=Et(e),i=function(e,t){return t?Me(t):(Pe(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}(r,t),s=new On(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 Nn{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 Dn(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){var n;if(e.error&&!Dn(e)){const r=(null===(n=e.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error";t.onError(Re(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(Pn(e))}saveEventToCache(e){this.cachedEventUids.add(Pn(e)),this.lastProcessedEventTime=Date.now()}}function Pn(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter((e=>e)).join("-")}function Dn({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}const Ln=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,$n=/^https?/;function Mn(e){const t=Ue(),{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(!$n.test(n))return!1;if(Ln.test(e))return r===e;const i=e.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}const Un=new Fe(3e4,6e4);function jn(){const e=sn().___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 xn=null;function Fn(e){return xn=xn||function(e){return new Promise(((t,n)=>{var r,i,s,o;function a(){jn(),gapi.load("gapi.iframes",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{jn(),n(Re(e,"network-request-failed"))},timeout:Un.get()})}if(null===(i=null===(r=sn().gapi)||void 0===r?void 0:r.iframes)||void 0===i?void 0:i.Iframe)t(gapi.iframes.getContext());else{if(!(null===(s=sn().gapi)||void 0===s?void 0:s.load)){const t=yn("iframefcb");return sn()[t]=()=>{gapi.load?a():n(Re(e,"network-request-failed"))},(o=`https://apis.google.com/js/api.js?onload=${t}`,new Promise(((e,t)=>{const n=document.createElement("script");var r,i;n.setAttribute("src",o),n.onload=e,n.onerror=e=>{const n=Re("internal-error");n.customData=e,t(n)},n.type="text/javascript",n.charset="UTF-8",(null!==(i=null===(r=document.getElementsByTagName("head"))||void 0===r?void 0:r[0])&&void 0!==i?i:document).appendChild(n)}))).catch((e=>n(e)))}a()}})).catch((e=>{throw xn=null,e}))}(e),xn}const Bn=new Fe(5e3,15e3),Vn={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Hn=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Wn(e){const t=e.config;Pe(t.authDomain,e,"auth-domain-config-required");const n=t.emulator?Be(t,"emulator/auth/iframe"):`https://${e.config.authDomain}/__/auth/iframe`,r={apiKey:t.apiKey,appName:e.name,v:ue},i=Hn.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){}}}function Gn(e,t,n,r,i,s){Pe(e.config.authDomain,e,"auth-domain-config-required"),Pe(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 Ut){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 jt){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];return`${function({config:e}){return e.emulator?Be(e,"emulator/auth/handler"):`https://${e.authDomain}/__/auth/handler`}(e)}?${y(a).slice(1)}`}const Jn="webStorageSupport",Kn=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=en,this._completeRedirectFn=Rn,this._overrideRedirectResult=Cn}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);Pe(h,e,"popup-blocked");try{h.focus()}catch(e){}return new qn(h)}(e,Gn(e,t,n,Ue(),r),nn())}async _openRedirect(e,t,n,r){var i;return await this._originValidation(e),i=Gn(e,t,n,Ue(),r),sn().location.href=i,new Promise((()=>{}))}_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 Fn(e),n=sn().gapi;return Pe(n,e,"internal-error"),t.open({where:document.body,url:Wn(e),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Vn,dontclear:!0},(t=>new Promise((async(n,r)=>{await t.restyle({setHideOnLeave:!1});const i=Re(e,"network-request-failed"),s=sn().setTimeout((()=>{r(i)}),Bn.get());function o(){sn().clearTimeout(s),n(t)}t.ping(o).then(o,(()=>{r(i)}))}))))}(e),n=new Nn(e);return t.register("authEvent",(t=>(Pe(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(Jn,{type:Jn},(n=>{var r;const i=null===(r=null==n?void 0:n[0])||void 0===r?void 0:r[Jn];void 0!==i&&t(!!i),Ce(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 qe(e,"GET","/v1/projects",t)}(e);for(const e of t)try{if(Mn(e))return}catch(e){}Ce(e,"unauthorized-domain")}(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return It()||ft()||_t()}};var Xn="@firebase/auth",Yn="0.22.0";class Qn{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(){Pe(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}const Zn=l("authIdTokenMaxAge")||300;let er=null;function tr(e=function(e=te){const t=re.get(e);if(!t&&e===te)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;Ce(e,"already-initialized")}return n.initialize({options:t})}(e,{popupRedirectResolver:Kn,persistence:[gn,Qt,en]}),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>Zn)return;const r=null==t?void 0:t.token;er!==r&&(er=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===(u=null===(c=a())||void 0===c?void 0:c.emulatorHosts)||void 0===u?void 0:u[o]);var o,c,u;return s&&function(e,t,n){const r=Et(e);Pe(r._canInitEmulator,r,"emulator-config-failed"),Pe(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");const i=!!(null==n?void 0:n.disableWarnings),s=At(t),{host:o,port:a}=function(e){const t=At(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:Ot(r.substr(e.length+1))}}{const[e,t]=r.split(":");return{host:e,port:Ot(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 nr;nr="Browser",oe(new T("auth",((e,{options:t})=>{const n=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat"),{apiKey:i,authDomain:s}=n.options;return((e,n)=>{Pe(i&&!i.includes(":"),"invalid-api-key",{appName:e.name}),Pe(!(null==s?void 0:s.includes(":")),"argument-error",{appName:e.name});const r={apiKey:i,authDomain:s,clientPlatform:nr,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:wt(nr)},o=new kt(e,n,r);return function(e,t){const n=(null==t?void 0:t.persistence)||[],r=(Array.isArray(n)?n:[n]).map(Me);(null==t?void 0:t.errorMap)&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver)}(o,t),o})(n,r)}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((e,t,n)=>{e.getProvider("auth-internal").initialize()}))),oe(new T("auth-internal",(e=>{return t=Et(e.getProvider("auth").getImmediate()),new Qn(t);var t}),"PRIVATE").setInstantiationMode("EXPLICIT")),he(Xn,Yn,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";default:return}}(nr)),he(Xn,Yn,"esm2017");var rr=n(560),ir=n.n(rr);const sr=(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},or=(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]}}),{})},ar=(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)=>sr(e,t.authUser)(...n),d=({data:e,...t})=>u(l(null,t),{method:"POST",body:or(e,s)}),h=({data:e,...t})=>{const{where:n,...r}=t;return u(l(n[o],r),{method:"PUT",body:or(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"))}},cr=(e,t,n)=>Object.keys(n.properties).reduce(((r,i)=>{const s=n.properties[i].$ref.split("/").pop();return Object.assign(r,{[i]:ar(e,t,n.definitions[s].plural||`${i}s`,n.definitions[s],r)})}),{}),lr=(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]})),{}),ur=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Country":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"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"}}}},"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"},"legacySlug":{"type":"string"},"vacancies":{"type":["integer","null"]},"admissionStart":{"type":["string","null"],"format":"date-time"},"admissionEnd":{"type":["string","null"],"format":"date-time"},"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"},"countryCode":{"type":"string"},"lang":{"type":"string","enum":["en","es","pt"]},"name":{"type":"string"},"filter":{"type":"boolean"},"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"]},"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"]},"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"},"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"}}}'),dr={Country:{primaryKey:"code",plural:"countries",searchProps:["code","name"]},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/${ir()(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","vacancies","admissionStart","admissionEnd","placementStart"],searchProps:["name"],getOptionLabel:({id:e,name:t,stage:n})=>`${t}${n?` - ${n.name}`:""} (id: ${e})`,properties:{},parse:e=>{const t=Date.now(),n=e.start>t?"upcoming":e.end<t?"past":"active",r="upcoming"===n&&e.vacancies?e.vacancies:e._count?.students||e.students?.length||0;return{...e,status:n,size:r}}},Student:{inputProps:[],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}}},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"]}},hr="https://raw.githubusercontent.com/Laboratoria/bootcamp",pr=()=>fetch("https://api.github.com/repos/Laboratoria/bootcamp/releases/latest").then((e=>e.json())).then((({tag_name:e})=>e)),fr=e=>t=>t.filter((t=>!(e.locale&&e.locale!==t.locale||e.track&&e.track!==t.track))),mr=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"}}}'),gr={Country:{plural:"countries"},Job:{},Company:{plural:"companies"}},yr=({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=tr(i),o={authUser:void 0,user:void 0},a=((e,t)=>({...cr(e,t,{...ur,definitions:lr(ur,dr)}),gcpLog:{getEntries:async n=>{const r=sr(e,t.authUser);return await r(`/gcp-logs?q=${JSON.stringify(n)}`)}}}))(n,o),c=((e,t)=>cr(e,t,{...mr,definitions:lr(mr,gr)}))(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 Gt(Et(e),t)}(w(e),Mt.credential(t,n))}(s,e,t),signOut:()=>w(s).signOut(),sendPasswordResetEmail:e=>Jt(s,e)};return{...c,project:{findMany:(e={})=>(async e=>fetch(`${hr}/${e||await pr()}/dist/projects.json`).then((e=>e.json())))(e.tag).then(fr(e)),findById:(e,t={})=>(async(e,t)=>fetch(`${hr}/${t||await pr()}/dist/projects/${e}.json`).then((e=>e.json())))(e,t.tag)},topic:{findMany:(e={})=>(async e=>fetch(`${hr}/${e||await pr()}/dist/topics.json`).then((e=>e.json())))(e.tag).then(fr(e)),findById:(e,t={})=>(async(e,t)=>fetch(`${hr}/${t||await pr()}/dist/topics/${e}.json`).then((e=>e.json())))(e,t.tag)},learningObjective:{findMany:(e={})=>(async e=>fetch(`${hr}/${e||await pr()}/dist/learning-objectives.json`).then((e=>e.json())))(e.tag)},...a,auth:l,firebaseApp:i}}})();var i=r.r;export{i as createApp};