UNPKG

firebase

Version:

Firebase JavaScript library for web and Node.js

7 lines • 791 kB
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()})(this,function(){let n={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},g=function(e,t){if(!e)throw j(t)},j=function(e){return new Error("Firebase Database ("+n.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},i=function(t){var r=[];let n=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&i+1<t.length&&56320==(64512&t.charCodeAt(i+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++i)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},s={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(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let u=0;u<r.length;u+=3){var s=r[u],a=u+1<r.length,o=a?r[u+1]:0,l=u+2<r.length,h=l?r[u+2]:0;let e=(15&o)<<2|h>>6,t=63&h;l||(t=64,a)||(e=64),i.push(n[s>>2],n[(3&s)<<4|o>>4],n[e],n[t])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(i(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var i=this.decodeStringToByteArray(r,n);var s=[];let e=0,t=0;for(;e<i.length;){var a,o,l,h=i[e++];h<128?s[t++]=String.fromCharCode(h):191<h&&h<224?(a=i[e++],s[t++]=String.fromCharCode((31&h)<<6|63&a)):239<h&&h<365?(a=((7&h)<<18|(63&i[e++])<<12|(63&i[e++])<<6|63&i[e++])-65536,s[t++]=String.fromCharCode(55296+(a>>10)),s[t++]=String.fromCharCode(56320+(1023&a))):(o=i[e++],l=i[e++],s[t++]=String.fromCharCode((15&h)<<12|(63&o)<<6|63&l))}return s.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let l=0;l<e.length;){var i=r[e.charAt(l++)],s=l<e.length?r[e.charAt(l)]:0,a=++l<e.length?r[e.charAt(l)]:64,o=++l<e.length?r[e.charAt(l)]:64;if(++l,null==i||null==s||null==a||null==o)throw new B;n.push(i<<2|s>>4),64!==a&&(n.push(s<<4&240|a>>2),64!==o)&&n.push(a<<6&192|o)}return n},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)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class B extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}function a(e){var t=i(e);return s.encodeByteArray(t,!0)}let o=function(e){return a(e).replace(/\./g,"")},z=function(e){try{return s.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function K(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(var r in t)t.hasOwnProperty(r)&&"__proto__"!==r&&(e[r]=K(e[r],t[r]));return e}function W(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}let H=()=>W().__FIREBASE_DEFAULTS__,G=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},$=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&z(e[1]);return t&&JSON.parse(t)}},Q=()=>{try{return H()||G()||$()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}},Y=()=>{var e;return null==(e=Q())?void 0:e.config};var c,J;class X{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(r){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof r&&(this.promise.catch(()=>{}),1===r.length?r(e):r(e,t))}}}function Z(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(i)return r=Object.assign({iss:"https://securetoken.google.com/"+r,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},e),[o(JSON.stringify({alg:"none",type:"JWT"})),o(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")}function ee(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function te(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ee())}function re(){var e=null==(e=Q())?void 0:e.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function ne(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function ie(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function se(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function ae(){var e=ee();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function oe(){return!0===n.NODE_ADMIN}function le(){return!re()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function he(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ue(){return new Promise((n,i)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{var e;i((null==(e=r.error)?void 0:e.message)||"")}}catch(e){i(e)}})}function ce(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class de extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,de.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,pe.prototype.create)}}class pe{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(fe,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new de(i,s,r)}}let fe=/\{\$([^}]+)}/g;function ge(e){return JSON.parse(e)}function me(e){return JSON.stringify(e)}function ve(e){let t={},r={},n={},i="";try{var s=e.split(".");t=ge(z(s[0])||""),r=ge(z(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function _e(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ye(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function we(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function be(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function Ie(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Te(a)&&Te(o)){if(!Ie(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Te(e){return null!==e&&"object"==typeof e}function Ee(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function Ce(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function ke(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Se{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,u;for(let p=0;p<80;p++){u=p<40?p<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):p<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var c=(t<<5|t>>>27)+h+l+u+i[p]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=c}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Ae(e,t){var r=new Ne(e,t);return r.subscribe.bind(r)}class Ne{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(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=Re),void 0===n.error&&(n.error=Re),void 0===n.complete&&(n.complete=Re);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,0===this.observerCount)&&void 0!==this.onNoObservers&&this.onNoObservers(this)}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}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 Re(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function Pe(e,t){return e+` failed: ${t} argument `}function De(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Pe(e,t)+"must be a valid function.")}function xe(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(Pe(e,t)+"must be a valid context object.")}let Oe=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},Le=1e3,Me=2,Fe=144e5,Ue=.5;function Ve(e,t=Le,r=Me){var n=t*Math.pow(r,e),i=Math.round(Ue*n*(Math.random()-.5)*2);return Math.min(Fe,n+i)}function w(e){return e&&e._delegate?e._delegate:e}class u{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let qe="[DEFAULT]";class je{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){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new X;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),r=null!=(r=null==e?void 0:e.optional)&&r;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}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("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:qe})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=qe){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var 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=qe){return this.instances.has(e)}getOptions(e=qe){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=null!=(i=this.onInitCallbacks.get(r))?i:new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===qe?void 0:n,options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch(e){}var n;return r||null}normalizeInstanceIdentifier(e=qe){return!this.component||this.component.multipleInstances?e:qe}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Be{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var 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){var t;return this.providers.has(e)?this.providers.get(e):(t=new je(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let ze=[],Ke=((t=c=c||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",{debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT}),We=c.INFO,He={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},Ge=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=He[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class $e{constructor(e){this.name=e,this._logLevel=We,this._logHandler=Ge,this._userLogHandler=null,ze.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Ke[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,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}let Qe=(t,e)=>e.some(e=>t instanceof e),Ye,Je;let Xe=new WeakMap,Ze=new WeakMap,et=new WeakMap,tt=new WeakMap,rt=new WeakMap;let nt={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return Ze.get(e);if("objectStoreNames"===t)return e.objectStoreNames||et.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return at(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function it(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(Je=Je||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ot(this),e),at(Xe.get(this))}:function(...e){return at(n.apply(ot(this),e))}:function(e,...t){var r=n.call(ot(this),e,...t);return et.set(r,e.sort?e.sort():[e]),at(r)}}function st(e){var s,t;return"function"==typeof e?it(e):(e instanceof IDBTransaction&&(s=e,Ze.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),Ze.set(s,t))),Qe(e,Ye=Ye||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,nt):e)}function at(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(at(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&Xe.set(e,s)}).catch(()=>{}),rt.set(t,s),t):tt.has(e)?tt.get(e):((t=st(e))!==e&&(tt.set(e,t),rt.set(t,e)),t)}let ot=e=>rt.get(e);function lt(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=at(a);return n&&a.addEventListener("upgradeneeded",e=>{n(at(a.result),e.oldVersion,e.newVersion,at(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function ht(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),at(r).then(()=>{})}let ut=["get","getKey","getAll","getAllKeys","count"],ct=["put","add","delete","clear"],dt=new Map;function pt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(dt.get(t))return dt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=ct.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||ut.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},dt.set(t,r),r):void 0}}nt={...J=nt,get:(e,t,r)=>pt(e,t)||J.get(e,t,r),has:(e,t)=>!!pt(e,t)||J.has(e,t)};class ft{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===(null==(t=e.getComponent())?void 0:t.type)?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let gt="@firebase/app",mt="0.11.1",vt=new $e("@firebase/app");let _t="[DEFAULT]",yt={"@firebase/app":"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/data-connect":"fire-data-connect","@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","@firebase/vertexai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},wt=new Map,bt=new Map,It=new Map;function Tt(t,r){try{t.container.addComponent(r)}catch(e){vt.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Et(e,t){e.container.addOrOverwriteComponent(t)}function Ct(e){var t,r,n=e.name;if(It.has(n))return vt.debug(`There were multiple attempts to register component ${n}.`),!1;It.set(n,e);for(t of wt.values())Tt(t,e);for(r of bt.values())Tt(r,e);return!0}function kt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function St(e){return void 0!==e.options}function h(e){return null!=e&&void 0!==e.settings}let At=new pe("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class Nt{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new u("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 At.create("app-deleted",{appName:this._name})}}function Rt(e,t){var r=z(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Pt extends Nt{constructor(e,t,r,n){var i=void 0!==t.automaticDataCollectionEnabled&&t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig=Object.assign({automaticDataCollectionEnabled:i},t),this._serverConfig.authIdToken&&Rt(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Rt(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,d(gt,mt,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){Lt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw At.create("server-app-deleted")}}let Dt="11.3.1";function xt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n=Object.assign({name:_t,automaticDataCollectionEnabled:!1},t);let i=n.name;if("string"!=typeof i||!i)throw At.create("bad-app-name",{appName:String(i)});if(!(r=r||Y()))throw At.create("no-options");var s=wt.get(i);if(s){if(Ie(r,s.options)&&Ie(n,s.config))return s;throw At.create("duplicate-app",{appName:i})}var a,o=new Be(i);for(a of It.values())o.addComponent(a);s=new Nt(r,n,o);return wt.set(i,s),s}function Ot(e=_t){var t=wt.get(e);if(!t&&e===_t&&Y())return xt();if(t)return t;throw At.create("no-app",{appName:e})}async function Lt(e){let t=!1;var r=e.name;wt.has(r)?(t=!0,wt.delete(r)):bt.has(r)&&e.decRefCount()<=0&&(bt.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function d(e,t,r){let n,i=null!=(n=yt[e])?n:e;r&&(i+="-"+r);var s,a=i.match(/\s|\//),o=t.match(/\s|\//);a||o?(s=[`Unable to register library "${i}" with version "${t}":`],a&&s.push(`library name "${i}" contains illegal characters (whitespace or "/")`),a&&o&&s.push("and"),o&&s.push(`version name "${t}" contains illegal characters (whitespace or "/")`),vt.warn(s.join(" "))):Ct(new u(i+"-version",()=>({library:i,version:t}),"VERSION"))}function Mt(e,t){if(null!==e&&"function"!=typeof e)throw At.create("invalid-log-argument");var r,s=e,n=t;for(r of ze){let i=null;n&&n.level&&(i=Ke[n.level]),r.userLogHandler=null===s?null:(e,t,...r)=>{var n=r.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");t>=(null!=i?i:e.logLevel)&&s({level:c[t].toLowerCase(),message:n,args:r,type:e.name})}}}function Ft(e){var t;t=e,ze.forEach(e=>{e.setLogLevel(t)})}let Ut="firebase-heartbeat-database",Vt=1,qt="firebase-heartbeat-store",jt=null;function Bt(){return jt=jt||lt(Ut,Vt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(qt)}catch(e){console.warn(e)}}}).catch(e=>{throw At.create("idb-open",{originalErrorMessage:e.message})})}async function zt(e,t){try{var r=(await Bt()).transaction(qt,"readwrite");await r.objectStore(qt).put(t,Kt(e)),await r.done}catch(e){e instanceof de?vt.warn(e.message):(r=At.create("idb-set",{originalErrorMessage:null==e?void 0:e.message}),vt.warn(r.message))}}function Kt(e){return e.name+"!"+e.options.appId}class Wt{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new Gt(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){var e,r;try{var n,i=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=Ht();if(null!=(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null==(r=this._heartbeatsCache)?void 0:r.heartbeats)))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:i}),30<this._heartbeatsCache.heartbeats.length&&(n=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(n,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){vt.warn(e)}}async getHeartbeatsHeader(){var e,t,r,n,i;try{return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)?"":(t=Ht(),{heartbeatsToSend:r,unsentEntries:n}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),$t(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),$t(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),i=o(JSON.stringify({version:2,heartbeats:r})),this._heartbeatsCache.lastSentHeartbeatDate=t,0<n.length?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i)}catch(e){return vt.warn(e),""}}}function Ht(){return(new Date).toISOString().substring(0,10)}class Gt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!he()&&ue().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&null!=(e=await(async e=>{try{var t=(await Bt()).transaction(qt),r=await t.objectStore(qt).get(Kt(e));return await t.done,r}catch(e){e instanceof de?vt.warn(e.message):(t=At.create("idb-get",{originalErrorMessage:null==e?void 0:e.message}),vt.warn(t.message))}})(this.app))&&e.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),zt(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),zt(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}function $t(e){return o(JSON.stringify({version:2,heartbeats:e})).length}t="",Ct(new u("platform-logger",e=>new ft(e),"PRIVATE")),Ct(new u("heartbeat",e=>new Wt(e),"PRIVATE")),d(gt,mt,t),d(gt,mt,"esm2017"),d("fire-js","");var Qt=Object.freeze({__proto__:null,SDK_VERSION:Dt,_DEFAULT_ENTRY_NAME:_t,_addComponent:Tt,_addOrOverwriteComponent:Et,_apps:wt,_clearComponents:function(){It.clear()},_components:It,_getProvider:kt,_isFirebaseApp:St,_isFirebaseServerApp:h,_registerComponent:Ct,_removeServiceInstance:function(e,t,r=_t){kt(e,t).clearInstance(r)},_serverApps:bt,deleteApp:Lt,getApp:Ot,getApps:function(){return Array.from(wt.values())},initializeApp:xt,initializeServerApp:function(e,t){if(("undefined"!=typeof window||ne())&&!ne())throw At.create("invalid-server-app-environment");void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!1);let r;r=St(e)?e.options:e;var n=Object.assign(Object.assign({},t),r);if(void 0!==n.releaseOnDeref&&delete n.releaseOnDeref,void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw At.create("finalization-registry-not-supported",{});var n=""+[...JSON.stringify(n)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),i=bt.get(n);if(i)i.incRefCount(t.releaseOnDeref);else{var s,a=new Be(n);for(s of It.values())a.addComponent(s);i=new Pt(r,t,n,a),bt.set(n,i)}return i},onLog:Mt,registerVersion:d,setLogLevel:Ft,FirebaseError:de});class Yt{constructor(e,t){this._delegate=e,this.firebase=t,Tt(e,new u("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),Lt(this._delegate)))}_getService(e,t=_t){this._delegate.checkDestroyed();var r,n=this._delegate.container.getProvider(e);return n.isInitialized()||"EXPLICIT"!==(null==(r=n.getComponent())?void 0:r.instantiationMode)||n.initialize(),n.getImmediate({identifier:t})}_removeServiceInstance(e,t=_t){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Tt(this._delegate,e)}_addOrOverwriteComponent(e){Et(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let Jt=new pe("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function Xt(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=xt(e,t);if(_e(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:d,setLogLevel:Ft,onLog:Mt,apps:null,SDK_VERSION:Dt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;Ct(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw Jt.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&K(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:Qt}};function o(e){if(e=e||_t,_e(s,e))return s[e];throw Jt.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var Zt=function e(){let t=Xt(Yt);return t.INTERNAL=Object.assign(Object.assign({},t.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){K(t,e)},createSubscribe:Ae,ErrorFactory:pe,deepExtend:K}),t}(),e=new $e("@firebase/app-compat");try{var er=W();void 0!==er.firebase&&(e.warn(` Warning: Firebase is already defined in the global scope. Please make sure Firebase library is only loaded once. `),rr=er.firebase.SDK_VERSION)&&0<=rr.indexOf("LITE")&&e.warn(` Warning: You are trying to load Firebase while using Firebase Performance standalone script. You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code. `)}catch(e){}let tr=Zt;d("@firebase/app-compat","0.2.50",void 0);tr.registerVersion("firebase","11.3.1","app-compat");var er="@firebase/installations",rr="0.6.12";let nr=1e4,ir="w:"+rr,sr="FIS_v2",ar="https://firebaseinstallations.googleapis.com/v1",or=36e5;let lr=new pe("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function hr(e){return e instanceof de&&e.code.includes("request-failed")}function ur({projectId:e}){return ar+`/projects/${e}/installations`}function cr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function dr(e,t){var r=(await t.json()).error;return lr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function pr({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function fr(e,{refreshToken:t}){var r=pr(e);return r.append("Authorization",(e=t,sr+" "+e)),r}async function gr(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function mr(t){return new Promise(e=>{setTimeout(e,t)})}let vr=/^[cdef][\w-]{21}$/,_r="";function yr(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return vr.test(t)?t:_r}catch(e){return _r}}function wr(e){return e.appName+"!"+e.appId}let br=new Map;function Ir(e,t){var r=wr(e),e=(Tr(r,t),r),r=(()=>(!Er&&"BroadcastChannel"in self&&((Er=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Tr(e.data.key,e.data.fid)}),Er))();r&&r.postMessage({key:e,fid:t}),0===br.size&&Er&&(Er.close(),Er=null)}function Tr(e,t){var r=br.get(e);if(r)for(var n of r)n(t)}let Er=null;let Cr="firebase-installations-database",kr=1,Sr="firebase-installations-store",Ar=null;function Nr(){return Ar=Ar||lt(Cr,kr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Sr)}})}async function Rr(e,t){var r=wr(e),n=(await Nr()).transaction(Sr,"readwrite"),i=n.objectStore(Sr),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Ir(e,t.fid),t}async function Pr(e){var t=wr(e),r=(await Nr()).transaction(Sr,"readwrite");await r.objectStore(Sr).delete(t),await r.done}async function Dr(e,t){var r=wr(e),n=(await Nr()).transaction(Sr,"readwrite"),i=n.objectStore(Sr),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Ir(e,a.fid),a}async function xr(r){let n;var e=await Dr(r.appConfig,e=>{var t=Lr(e||{fid:yr(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=ur(e);var i=pr(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:sr,appId:e.appId,sdkVersion:ir});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await gr(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:cr(s.authToken)};throw await dr("Create Installation",i)})(t,r);return Rr(t.appConfig,e)}catch(e){throw hr(e)&&409===e.customData.serverCode?await Pr(t.appConfig):await Rr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(lr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Or(e.appConfig);for(;1===t.registrationStatus;)await mr(100),t=await Or(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await xr(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===_r?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function Or(e){return Dr(e,e=>{if(e)return Lr(e);throw lr.create("installation-not-found")})}function Lr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+nr<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function Mr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=ur(i)+`/${s}/authTokens:generate`;var i,s,a=fr(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:ir,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await gr(()=>fetch(n,l));if(a.ok)return cr(await a.json());throw await dr("Generate Auth Token",a)}async function Fr(n,i=!1){let s;var e=await Dr(n.appConfig,e=>{if(!Vr(e))throw lr.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+or})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Ur(e.appConfig);for(;1===r.authToken.requestStatus;)await mr(100),r=await Ur(e.appConfig);var n=r.authToken;return 0===n.requestStatus?Fr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r=Object.assign(Object.assign({},t),{authToken:r}),s=(async(t,r)=>{try{var e=await Mr(t,r),n=Object.assign(Object.assign({},r),{authToken:e});return await Rr(t.appConfig,n),e}catch(e){var i;throw!hr(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i=Object.assign(Object.assign({},r),{authToken:{requestStatus:0}}),await Rr(t.appConfig,i)):await Pr(t.appConfig),e}})(n,r),r;throw lr.create("app-offline")}return e});return s?await s:e.authToken}function Ur(e){return Dr(e,e=>{var t,r;if(Vr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+nr<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw lr.create("not-registered")})}function Vr(e){return void 0!==e&&2===e.registrationStatus}async function qr(e,t=!1){var r=e,n=(await(!(n=(await xr(r)).registrationPromise)||!await n),await Fr(r,t));return n.token}function jr(e){return lr.create("missing-app-config-values",{valueName:e})}let Br="installations",zr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw jr("App Configuration");if(!e.name)throw jr("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw jr(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:kt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Kr=e=>{let t=kt(e.getProvider("app").getImmediate(),Br).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await xr(t);return(n||Fr(t)).catch(console.error),r.fid})(t),getToken:e=>qr(t,e)}};Ct(new u(Br,zr,"PUBLIC")),Ct(new u("installations-internal",Kr,"PRIVATE")),d(er,rr),d(er,rr,"esm2017");let Wr="analytics",Hr="firebase_id",Gr="origin",$r=6e4,Qr="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",Yr="https://www.googletagmanager.com/gtag/js",Jr=new $e("@firebase/analytics"),Xr=new pe("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function Zr(e){var t;return e.startsWith(Yr)?e:(t=Xr.create("invalid-gtag-resource",{gtagURL:e}),Jr.warn(t.message),"")}function en(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function tn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:Zr}),n=document.createElement("script"),i=Yr+`?l=${e}&id=`+t;n.src=r?null==r?void 0:r.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function rn(S,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=S,s=A,a=N,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await en(a);for(let t of e){var u=h.find(e=>e.measurementId===t),c=u&&s[u.appId];if(!c){r=[];break}r.push(c)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){Jr.error(e)}}else if("config"===e){var d,[p,f]=t,g=S,m=A,v=N,_=p,y=f,w=R[_];try{w?await m[w]:(d=(await en(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){Jr.error(e)}g("config",_,y)}else{var b,I,T,E,C,k;"consent"===e?([b,I]=t,S("consent",b,I)):"get"===e?([T,E,C]=t,S("get",T,E,C)):"set"===e?([k]=t,S("set",k)):S(e,...t)}}catch(e){Jr.error(e)}}}let nn=30;let sn=new class{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function an(e){var t,{appId:r,apiKey:n}=e,n={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":n})},r=Qr.replace("{app-id}",r),r=await fetch(r,n);if(200===r.status||304===r.status)return r.json();{let e="";try{var i=await r.json();null!=(t=i.error)&&t.message&&(e=i.error.message)}catch(e){}throw Xr.create("config-fetch-failed",{httpStatus:r.status,responseMessage:e})}}async function on(e,t=sn,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw Xr.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw Xr.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new un;return setTimeout(async()=>{o.abort()},void 0!==r?r:$r),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=sn){var h;let{appId:u,measurementId:c}=s;try{await ln(o,e)}catch(e){if(c)return Jr.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:u,measurementId:c};throw e}try{let e=await an(s);return l.deleteThrottleMetadata(u),e}catch(e){let t=e;if(!hn(t)){if(l.deleteThrottleMetadata(u),c)return Jr.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${null==t?void 0:t.message}]`),{appId:u,measurementId:c};throw e}let r=5