UNPKG

firebase

Version:

Firebase JavaScript library for web and Node.js

7 lines • 794 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=()=>{},i={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 ("+i.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},s=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},a={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(s(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 o(e){var t=s(e);return a.encodeByteArray(t,!0)}let z=function(e){return o(e).replace(/\./g,"")},K=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function W(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]=W(e[r],t[r]));return e}function H(){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 G=()=>H().__FIREBASE_DEFAULTS__,$=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},Q=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&K(e[1]);return t&&JSON.parse(t)}},Y=()=>{try{return n()||G()||$()||Q()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}},J=()=>{var e;return null==(e=Y())?void 0:e.config};var c,X;class Z{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 ee(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),[z(JSON.stringify({alg:"none",type:"JWT"})),z(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")}function te(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function re(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(te())}function ne(){var e=null==(e=Y())?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 ie(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function se(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ae(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function oe(){var e=te();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function le(){return!0===i.NODE_ADMIN}function he(){return!ne()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ue(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ce(){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 de(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class pe extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,pe.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,fe.prototype.create)}}class fe{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(ge,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new pe(i,s,r)}}let ge=/\{\$([^}]+)}/g;function me(e){return JSON.parse(e)}function ve(e){return JSON.stringify(e)}function _e(e){let t={},r={},n={},i="";try{var s=e.split(".");t=me(K(s[0])||""),r=me(K(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function ye(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function we(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function be(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Ie(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 Te(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(Ee(a)&&Ee(o)){if(!Te(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Ee(e){return null!==e&&"object"==typeof e}function Ce(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 ke(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function Se(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Ae{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 Ne(e,t){var r=new Re(e,t);return r.subscribe.bind(r)}class Re{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=Pe),void 0===n.error&&(n.error=Pe),void 0===n.complete&&(n.complete=Pe);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 Pe(){}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 De(e,t){return e+` failed: ${t} argument `}function xe(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(De(e,t)+"must be a valid function.")}function Oe(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(De(e,t)+"must be a valid context object.")}let Le=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},Me=1e3,Fe=2,Ue=144e5,Ve=.5;function qe(e,t=Me,r=Fe){var n=t*Math.pow(r,e),i=Math.round(Ve*n*(Math.random()-.5)*2);return Math.min(Ue,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 je="[DEFAULT]";class Be{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 Z;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:je})}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=je){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=je){return this.instances.has(e)}getOptions(e=je){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)===je?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=je){return!this.component||this.component.multipleInstances?e:je}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class ze{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 Be(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let Ke=[],We=((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}),He=c.INFO,Ge={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},$e=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Ge[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class Qe{constructor(e){this.name=e,this._logLevel=He,this._logHandler=$e,this._userLogHandler=null,Ke.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?We[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 Ye=(t,e)=>e.some(e=>t instanceof e),Je,Xe;let Ze=new WeakMap,et=new WeakMap,tt=new WeakMap,rt=new WeakMap,nt=new WeakMap;let it={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return et.get(e);if("objectStoreNames"===t)return e.objectStoreNames||tt.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return ot(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 st(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(Xe=Xe||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(lt(this),e),ot(Ze.get(this))}:function(...e){return ot(n.apply(lt(this),e))}:function(e,...t){var r=n.call(lt(this),e,...t);return tt.set(r,e.sort?e.sort():[e]),ot(r)}}function at(e){var s,t;return"function"==typeof e?st(e):(e instanceof IDBTransaction&&(s=e,et.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)}),et.set(s,t))),Ye(e,Je=Je||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,it):e)}function ot(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(ot(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&Ze.set(e,s)}).catch(()=>{}),nt.set(t,s),t):rt.has(e)?rt.get(e):((t=at(e))!==e&&(rt.set(e,t),nt.set(t,e)),t)}let lt=e=>nt.get(e);function ht(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=ot(a);return n&&a.addEventListener("upgradeneeded",e=>{n(ot(a.result),e.oldVersion,e.newVersion,ot(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 ut(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),ot(r).then(()=>{})}let ct=["get","getKey","getAll","getAllKeys","count"],dt=["put","add","delete","clear"],pt=new Map;function ft(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(pt.get(t))return pt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=dt.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||ct.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]},pt.set(t,r),r):void 0}}it={...X=it,get:(e,t,r)=>ft(e,t)||X.get(e,t,r),has:(e,t)=>!!ft(e,t)||X.has(e,t)};class gt{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 mt="@firebase/app",vt="0.11.4",_t=new Qe("@firebase/app");let yt="[DEFAULT]",wt={"@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"},bt=new Map,It=new Map,Tt=new Map;function Et(t,r){try{t.container.addComponent(r)}catch(e){_t.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Ct(e,t){e.container.addOrOverwriteComponent(t)}function kt(e){var t,r,n=e.name;if(Tt.has(n))return _t.debug(`There were multiple attempts to register component ${n}.`),!1;Tt.set(n,e);for(t of bt.values())Et(t,e);for(r of It.values())Et(r,e);return!0}function St(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function At(e){return void 0!==e.options}function h(e){return null!=e&&void 0!==e.settings}let Nt=new fe("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 Rt{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 Nt.create("app-deleted",{appName:this._name})}}function Pt(e,t){var r=K(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 Dt extends Rt{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&&Pt(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Pt(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(mt,vt,"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(){Mt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Nt.create("server-app-deleted")}}let xt="11.6.0";function Ot(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n=Object.assign({name:yt,automaticDataCollectionEnabled:!1},t);let i=n.name;if("string"!=typeof i||!i)throw Nt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw Nt.create("no-options");var s=bt.get(i);if(s){if(Te(r,s.options)&&Te(n,s.config))return s;throw Nt.create("duplicate-app",{appName:i})}var a,o=new ze(i);for(a of Tt.values())o.addComponent(a);s=new Rt(r,n,o);return bt.set(i,s),s}function Lt(e=yt){var t=bt.get(e);if(!t&&e===yt&&J())return Ot();if(t)return t;throw Nt.create("no-app",{appName:e})}async function Mt(e){let t=!1;var r=e.name;bt.has(r)?(t=!0,bt.delete(r)):It.has(r)&&e.decRefCount()<=0&&(It.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=wt[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 "/")`),_t.warn(s.join(" "))):kt(new u(i+"-version",()=>({library:i,version:t}),"VERSION"))}function Ft(e,t){if(null!==e&&"function"!=typeof e)throw Nt.create("invalid-log-argument");var r,s=e,n=t;for(r of Ke){let i=null;n&&n.level&&(i=We[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 Ut(e){var t;t=e,Ke.forEach(e=>{e.setLogLevel(t)})}let Vt="firebase-heartbeat-database",qt=1,jt="firebase-heartbeat-store",Bt=null;function zt(){return Bt=Bt||ht(Vt,qt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(jt)}catch(e){console.warn(e)}}}).catch(e=>{throw Nt.create("idb-open",{originalErrorMessage:e.message})})}async function Kt(e,t){try{var r=(await zt()).transaction(jt,"readwrite");await r.objectStore(jt).put(t,Wt(e)),await r.done}catch(e){e instanceof pe?_t.warn(e.message):(r=Nt.create("idb-set",{originalErrorMessage:null==e?void 0:e.message}),_t.warn(r.message))}}function Wt(e){return e.name+"!"+e.options.appId}class Ht{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new $t(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=Gt();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){_t.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=Gt(),{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),Qt(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),Qt(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),i=z(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 _t.warn(e),""}}}function Gt(){return(new Date).toISOString().substring(0,10)}class $t{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!ue()&&ce().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&null!=(e=await(async e=>{try{var t=(await zt()).transaction(jt),r=await t.objectStore(jt).get(Wt(e));return await t.done,r}catch(e){e instanceof pe?_t.warn(e.message):(t=Nt.create("idb-get",{originalErrorMessage:null==e?void 0:e.message}),_t.warn(t.message))}})(this.app))&&e.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Kt(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(),Kt(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}function Qt(e){return z(JSON.stringify({version:2,heartbeats:e})).length}t="",kt(new u("platform-logger",e=>new gt(e),"PRIVATE")),kt(new u("heartbeat",e=>new Ht(e),"PRIVATE")),d(mt,vt,t),d(mt,vt,"esm2017"),d("fire-js","");var Yt=Object.freeze({__proto__:null,SDK_VERSION:xt,_DEFAULT_ENTRY_NAME:yt,_addComponent:Et,_addOrOverwriteComponent:Ct,_apps:bt,_clearComponents:function(){Tt.clear()},_components:Tt,_getProvider:St,_isFirebaseApp:At,_isFirebaseServerApp:h,_registerComponent:kt,_removeServiceInstance:function(e,t,r=yt){St(e,t).clearInstance(r)},_serverApps:It,deleteApp:Mt,getApp:Lt,getApps:function(){return Array.from(bt.values())},initializeApp:Ot,initializeServerApp:function(e,t){if(("undefined"!=typeof window||ie())&&!ie())throw Nt.create("invalid-server-app-environment");void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!1);let r;r=At(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 Nt.create("finalization-registry-not-supported",{});var n=""+[...JSON.stringify(n)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),i=It.get(n);if(i)i.incRefCount(t.releaseOnDeref);else{var s,a=new ze(n);for(s of Tt.values())a.addComponent(s);i=new Dt(r,t,n,a),It.set(n,i)}return i},onLog:Ft,registerVersion:d,setLogLevel:Ut,FirebaseError:pe});class Jt{constructor(e,t){this._delegate=e,this.firebase=t,Et(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),Mt(this._delegate)))}_getService(e,t=yt){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=yt){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Et(this._delegate,e)}_addOrOverwriteComponent(e){Ct(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let Xt=new fe("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 Zt(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=Ot(e,t);if(ye(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:d,setLogLevel:Ut,onLog:Ft,apps:null,SDK_VERSION:xt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;kt(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw Xt.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&W(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:Yt}};function o(e){if(e=e||yt,ye(s,e))return s[e];throw Xt.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 er=function e(){let t=Zt(Jt);return t.INTERNAL=Object.assign(Object.assign({},t.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){W(t,e)},createSubscribe:Ne,ErrorFactory:fe,deepExtend:W}),t}(),e=new Qe("@firebase/app-compat");try{var tr=H();void 0!==tr.firebase&&(e.warn(` Warning: Firebase is already defined in the global scope. Please make sure Firebase library is only loaded once. `),nr=tr.firebase.SDK_VERSION)&&0<=nr.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 rr=er;d("@firebase/app-compat","0.2.53",void 0);rr.registerVersion("firebase","11.6.0","app-compat");var tr="@firebase/installations",nr="0.6.13";let ir=1e4,sr="w:"+nr,ar="FIS_v2",or="https://firebaseinstallations.googleapis.com/v1",lr=36e5;let hr=new fe("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 ur(e){return e instanceof pe&&e.code.includes("request-failed")}function cr({projectId:e}){return or+`/projects/${e}/installations`}function dr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function pr(e,t){var r=(await t.json()).error;return hr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function fr({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function gr(e,{refreshToken:t}){var r=fr(e);return r.append("Authorization",(e=t,ar+" "+e)),r}async function mr(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function vr(t){return new Promise(e=>{setTimeout(e,t)})}let _r=/^[cdef][\w-]{21}$/,yr="";function wr(){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 _r.test(t)?t:yr}catch(e){return yr}}function br(e){return e.appName+"!"+e.appId}let Ir=new Map;function Tr(e,t){var r=br(e),e=(Er(r,t),r),r=(()=>(!Cr&&"BroadcastChannel"in self&&((Cr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Er(e.data.key,e.data.fid)}),Cr))();r&&r.postMessage({key:e,fid:t}),0===Ir.size&&Cr&&(Cr.close(),Cr=null)}function Er(e,t){var r=Ir.get(e);if(r)for(var n of r)n(t)}let Cr=null;let kr="firebase-installations-database",Sr=1,Ar="firebase-installations-store",Nr=null;function Rr(){return Nr=Nr||ht(kr,Sr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Ar)}})}async function Pr(e,t){var r=br(e),n=(await Rr()).transaction(Ar,"readwrite"),i=n.objectStore(Ar),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Tr(e,t.fid),t}async function Dr(e){var t=br(e),r=(await Rr()).transaction(Ar,"readwrite");await r.objectStore(Ar).delete(t),await r.done}async function xr(e,t){var r=br(e),n=(await Rr()).transaction(Ar,"readwrite"),i=n.objectStore(Ar),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||Tr(e,a.fid),a}async function Or(r){let n;var e=await xr(r.appConfig,e=>{var t=Mr(e||{fid:wr(),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=cr(e);var i=fr(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:ar,appId:e.appId,sdkVersion:sr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await mr(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:dr(s.authToken)};throw await pr("Create Installation",i)})(t,r);return Pr(t.appConfig,e)}catch(e){throw ur(e)&&409===e.customData.serverCode?await Dr(t.appConfig):await Pr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(hr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Lr(e.appConfig);for(;1===t.registrationStatus;)await vr(100),t=await Lr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await Or(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===yr?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function Lr(e){return xr(e,e=>{if(e)return Mr(e);throw hr.create("installation-not-found")})}function Mr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+ir<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function Fr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=cr(i)+`/${s}/authTokens:generate`;var i,s,a=gr(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:sr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await mr(()=>fetch(n,l));if(a.ok)return dr(await a.json());throw await pr("Generate Auth Token",a)}async function Ur(n,i=!1){let s;var e=await xr(n.appConfig,e=>{if(!qr(e))throw hr.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+lr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Vr(e.appConfig);for(;1===r.authToken.requestStatus;)await vr(100),r=await Vr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?Ur(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 Fr(t,r),n=Object.assign(Object.assign({},r),{authToken:e});return await Pr(t.appConfig,n),e}catch(e){var i;throw!ur(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i=Object.assign(Object.assign({},r),{authToken:{requestStatus:0}}),await Pr(t.appConfig,i)):await Dr(t.appConfig),e}})(n,r),r;throw hr.create("app-offline")}return e});return s?await s:e.authToken}function Vr(e){return xr(e,e=>{var t,r;if(qr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+ir<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw hr.create("not-registered")})}function qr(e){return void 0!==e&&2===e.registrationStatus}async function jr(e,t=!1){var r=e,n=(await(!(n=(await Or(r)).registrationPromise)||!await n),await Ur(r,t));return n.token}function Br(e){return hr.create("missing-app-config-values",{valueName:e})}let zr="installations",Kr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Br("App Configuration");if(!e.name)throw Br("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Br(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:St(t,"heartbeat"),_delete:()=>Promise.resolve()}},Wr=e=>{let t=St(e.getProvider("app").getImmediate(),zr).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await Or(t);return(n||Ur(t)).catch(console.error),r.fid})(t),getToken:e=>jr(t,e)}};kt(new u(zr,Kr,"PUBLIC")),kt(new u("installations-internal",Wr,"PRIVATE")),d(tr,nr),d(tr,nr,"esm2017");let Hr="analytics",Gr="firebase_id",$r="origin",Qr=6e4,Yr="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",Jr="https://www.googletagmanager.com/gtag/js",Xr=new Qe("@firebase/analytics"),Zr=new fe("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 en(e){var t;return e.startsWith(Jr)?e:(t=Zr.create("invalid-gtag-resource",{gtagURL:e}),Xr.warn(t.message),"")}function tn(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function rn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:en}),n=document.createElement("script"),i=Jr+`?l=${e}&id=`+t;n.src=r?null==r?void 0:r.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function nn(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 tn(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){Xr.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 tn(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){Xr.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){Xr.error(e)}}}let sn=30;let an=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 on(e){var t,{appId:r,apiKey:n}=e,n={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":n})},r=Yr.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 Zr.create("config-fetch-failed",{httpStatus:r.status,responseMessage:e})}}async function ln(e,t=an,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw Zr.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw Zr.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new cn;return setTimeout(async()=>{o.abort()},void 0!==r?r:Qr),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=an){var h;let{appId:u,measurementId:c}=s;try{await hn(o,e)}catch(e){if(c)return Xr.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 on(s);return l.deleteThrottleMetadata(u),e}catch(e){let t=e;if(!un(t)){if(l.deleteThrottleMetadata(u),c)return Xr.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};