@laboratoria/sdk-js 3.2.0 → 3.2.1

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