UNPKG

firebase

Version:

Firebase JavaScript library for web and Node.js

3 lines (2 loc) • 27.5 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)}(this,function(ht,gt){"use strict";try{!function(){function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n,t=e(ht),r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function o(e,t){for(var n=0,r=t.length,i=e.length;n<r;n++,i++)e[i]=t[n];return e}(u=n=n||{})[u.DEBUG=0]="DEBUG",u[u.VERBOSE=1]="VERBOSE",u[u.INFO=2]="INFO",u[u.WARN=3]="WARN",u[u.ERROR=4]="ERROR",u[u.SILENT=5]="SILENT";function i(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!(t<e.logLevel)){var i=(new Date).toISOString(),a=c[t];if(!a)throw new Error("Attempted to log a message with an invalid logType (value: "+t+")");console[a].apply(console,o(["["+i+"] "+e.name+":"],n))}}var a={debug:n.DEBUG,verbose:n.VERBOSE,info:n.INFO,warn:n.WARN,error:n.ERROR,silent:n.SILENT},s=n.INFO,c=((q={})[n.DEBUG]="log",q[n.VERBOSE]="log",q[n.INFO]="info",q[n.WARN]="warn",q[n.ERROR]="error",q),u=(Object.defineProperty(l.prototype,"logLevel",{get:function(){return this._logLevel},set:function(e){if(!(e in n))throw new TypeError('Invalid value "'+e+'" assigned to `logLevel`');this._logLevel=e},enumerable:!1,configurable:!0}),l.prototype.setLogLevel=function(e){this._logLevel="string"==typeof e?a[e]:e},Object.defineProperty(l.prototype,"logHandler",{get:function(){return this._logHandler},set:function(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e},enumerable:!1,configurable:!0}),Object.defineProperty(l.prototype,"userLogHandler",{get:function(){return this._userLogHandler},set:function(e){this._userLogHandler=e},enumerable:!1,configurable:!0}),l.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._userLogHandler&&this._userLogHandler.apply(this,o([this,n.DEBUG],e)),this._logHandler.apply(this,o([this,n.DEBUG],e))},l.prototype.log=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._userLogHandler&&this._userLogHandler.apply(this,o([this,n.VERBOSE],e)),this._logHandler.apply(this,o([this,n.VERBOSE],e))},l.prototype.info=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._userLogHandler&&this._userLogHandler.apply(this,o([this,n.INFO],e)),this._logHandler.apply(this,o([this,n.INFO],e))},l.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._userLogHandler&&this._userLogHandler.apply(this,o([this,n.WARN],e)),this._logHandler.apply(this,o([this,n.WARN],e))},l.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._userLogHandler&&this._userLogHandler.apply(this,o([this,n.ERROR],e)),this._logHandler.apply(this,o([this,n.ERROR],e))},l);function l(e){this.name=e,this._logLevel=s,this._logHandler=i,this._userLogHandler=null}function p(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function f(){return"indexedDB"in self&&null!=indexedDB}function d(){return new Promise(function(e,t){try{var n=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=function(){i.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},i.onupgradeneeded=function(){n=!1},i.onerror=function(){var e;t((null===(e=i.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})}function h(){return!(!navigator||!navigator.cookieEnabled)}var g,m="FirebaseError",y=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(w,g=Error),w);function w(e,t,n){t=g.call(this,t)||this;return t.code=e,t.customData=n,t.name=m,Object.setPrototypeOf(t,w.prototype),Error.captureStackTrace&&Error.captureStackTrace(t,v.prototype.create),t}var v=(I.prototype.create=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r,i=t[0]||{},a=this.service+"/"+e,e=this.errors[e],e=e?(r=i,e.replace(b,function(e,t){var n=r[t];return null!=n?String(n):"<"+t+"?>"})):"Error",e=this.serviceName+": "+e+" ("+a+").";return new y(a,e,i)},I);function I(e,t,n){this.service=e,this.serviceName=t,this.errors=n}var b=/\{\$([^}]+)}/g,_=1e3,E=2,T=144e5,S=.5;function C(e,t,n){void 0===n&&(n=E);n=(t=void 0===t?_:t)*Math.pow(n,e),e=Math.round(S*n*(Math.random()-.5)*2);return Math.min(T,n+e)}function O(e){return e&&e._delegate?e._delegate:e}var P=(D.prototype.setInstantiationMode=function(e){return this.instantiationMode=e,this},D.prototype.setMultipleInstances=function(e){return this.multipleInstances=e,this},D.prototype.setServiceProps=function(e){return this.serviceProps=e,this},D.prototype.setInstanceCreatedCallback=function(e){return this.onInstanceCreated=e,this},D);function D(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}function A(n){return new Promise(function(e,t){n.onsuccess=function(){e(n.result)},n.onerror=function(){t(n.error)}})}function j(n,r,i){var a,e=new Promise(function(e,t){A(a=n[r].apply(n,i)).then(e,t)});return e.request=a,e}function N(e,n,t){t.forEach(function(t){Object.defineProperty(e.prototype,t,{get:function(){return this[n][t]},set:function(e){this[n][t]=e}})})}function k(t,n,r,e){e.forEach(function(e){e in r.prototype&&(t.prototype[e]=function(){return j(this[n],e,arguments)})})}function R(t,n,r,e){e.forEach(function(e){e in r.prototype&&(t.prototype[e]=function(){return this[n][e].apply(this[n],arguments)})})}function L(e,r,t,n){n.forEach(function(n){n in t.prototype&&(e.prototype[n]=function(){return e=this[r],(t=j(e,n,arguments)).then(function(e){if(e)return new M(e,t.request)});var e,t})})}function x(e){this._index=e}function M(e,t){this._cursor=e,this._request=t}function F(e){this._store=e}function $(n){this._tx=n,this.complete=new Promise(function(e,t){n.oncomplete=function(){e()},n.onerror=function(){t(n.error)},n.onabort=function(){t(n.error)}})}function B(e,t,n){this._db=e,this.oldVersion=t,this.transaction=new $(n)}function H(e){this._db=e}N(x,"_index",["name","keyPath","multiEntry","unique"]),k(x,"_index",IDBIndex,["get","getKey","getAll","getAllKeys","count"]),L(x,"_index",IDBIndex,["openCursor","openKeyCursor"]),N(M,"_cursor",["direction","key","primaryKey","value"]),k(M,"_cursor",IDBCursor,["update","delete"]),["advance","continue","continuePrimaryKey"].forEach(function(n){n in IDBCursor.prototype&&(M.prototype[n]=function(){var t=this,e=arguments;return Promise.resolve().then(function(){return t._cursor[n].apply(t._cursor,e),A(t._request).then(function(e){if(e)return new M(e,t._request)})})})}),F.prototype.createIndex=function(){return new x(this._store.createIndex.apply(this._store,arguments))},F.prototype.index=function(){return new x(this._store.index.apply(this._store,arguments))},N(F,"_store",["name","keyPath","indexNames","autoIncrement"]),k(F,"_store",IDBObjectStore,["put","add","delete","clear","get","getAll","getKey","getAllKeys","count"]),L(F,"_store",IDBObjectStore,["openCursor","openKeyCursor"]),R(F,"_store",IDBObjectStore,["deleteIndex"]),$.prototype.objectStore=function(){return new F(this._tx.objectStore.apply(this._tx,arguments))},N($,"_tx",["objectStoreNames","mode"]),R($,"_tx",IDBTransaction,["abort"]),B.prototype.createObjectStore=function(){return new F(this._db.createObjectStore.apply(this._db,arguments))},N(B,"_db",["name","version","objectStoreNames"]),R(B,"_db",IDBDatabase,["deleteObjectStore","close"]),H.prototype.transaction=function(){return new $(this._db.transaction.apply(this._db,arguments))},N(H,"_db",["name","version","objectStoreNames"]),R(H,"_db",IDBDatabase,["close"]),["openCursor","openKeyCursor"].forEach(function(i){[F,x].forEach(function(e){i in e.prototype&&(e.prototype[i.replace("open","iterate")]=function(){var e=(n=arguments,Array.prototype.slice.call(n)),t=e[e.length-1],n=this._store||this._index,r=n[i].apply(n,e.slice(0,-1));r.onsuccess=function(){t(r.result)}})})}),[x,F].forEach(function(e){e.prototype.getAll||(e.prototype.getAll=function(e,n){var r=this,i=[];return new Promise(function(t){r.iterateCursor(e,function(e){e?(i.push(e.value),void 0===n||i.length!=n?e.continue():t(i)):t(i)})})})});var q="0.5.0";const V=1e4,K=`w:${q}`,U="FIS_v2",G="https://firebaseinstallations.googleapis.com/v1",W=36e5;const z=new v("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 J(e){return e instanceof y&&e.code.includes("request-failed")}function Y({projectId:e}){return`${G}/projects/${e}/installations`}function X(e){return{token:e.token,requestStatus:2,expiresIn:(e=e.expiresIn,Number(e.replace("s","000"))),creationTime:Date.now()}}async function Z(e,t){t=(await t.json()).error;return z.create("request-failed",{requestName:e,serverCode:t.code,serverMessage:t.message,serverStatus:t.status})}function Q({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function ee(e,{refreshToken:t}){const n=Q(e);return n.append("Authorization",(t=t,`${U} ${t}`)),n}async function te(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function ne(t){return new Promise(e=>{setTimeout(e,t)})}const re=/^[cdef][\w-]{21}$/,ie="";function ae(){try{const t=new Uint8Array(17),n=self.crypto||self.msCrypto;n.getRandomValues(t),t[0]=112+t[0]%16;var e=function(e){const t=function(e){const t=btoa(String.fromCharCode(...e));return t.replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(t);return re.test(e)?e:ie}catch(e){return ie}}function oe(e){return`${e.appName}!${e.appId}`}const se=new Map;function ce(e,t){e=oe(e);ue(e,t),function(e,t){const n=function(){!le&&"BroadcastChannel"in self&&(le=new BroadcastChannel("[Firebase] FID Change"),le.onmessage=e=>{ue(e.data.key,e.data.fid)});return le}();n&&n.postMessage({key:e,fid:t});0===se.size&&le&&(le.close(),le=null)}(e,t)}function ue(e,t){e=se.get(e);if(e)for(const n of e)n(t)}let le=null;const pe="firebase-installations-database",fe=1,de="firebase-installations-store";let he=null;function ge(){var e,t,n,r;return he=he||(e=pe,t=fe,n=e=>{0===e.oldVersion&&e.createObjectStore(de)},(r=(t=j(indexedDB,"open",[e,t])).request)&&(r.onupgradeneeded=function(e){n&&n(new B(r.result,e.oldVersion,r.transaction))}),t.then(function(e){return new H(e)})),he}async function me(e,t){var n=oe(e);const r=await ge(),i=r.transaction(de,"readwrite"),a=i.objectStore(de);var o=await a.get(n);return await a.put(t,n),await i.complete,o&&o.fid===t.fid||ce(e,t.fid),t}async function ye(e){e=oe(e);const t=await ge(),n=t.transaction(de,"readwrite");await n.objectStore(de).delete(e),await n.complete}async function we(e,t){var n=oe(e);const r=await ge(),i=r.transaction(de,"readwrite"),a=i.objectStore(de);var o=await a.get(n),t=t(o);return void 0===t?await a.delete(n):await a.put(t,n),await i.complete,!t||o&&o.fid===t.fid||ce(e,t.fid),t}async function ve(t){let n;var e=await we(t,e=>{e=function(e){e=e||{fid:ae(),registrationStatus:0};return be(e)}(e),e=function(e,t){{if(0!==t.registrationStatus)return 1===t.registrationStatus?{installationEntry:t,registrationPromise:async function(e){let t=await Ie(e);for(;1===t.registrationStatus;)await ne(100),t=await Ie(e);if(0!==t.registrationStatus)return t;{var{installationEntry:n,registrationPromise:r}=await ve(e);return r||n}}(e)}:{installationEntry:t};if(!navigator.onLine){var n=Promise.reject(z.create("app-offline"));return{installationEntry:t,registrationPromise:n}}t={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},e=async function(t,n){try{var e=await async function(e,{fid:t}){const n=Y(e);var r=Q(e),e={fid:t,authVersion:U,appId:e.appId,sdkVersion:K};const i={method:"POST",headers:r,body:JSON.stringify(e)},a=await te(()=>fetch(n,i));if(a.ok){e=await a.json();return{fid:e.fid||t,registrationStatus:2,refreshToken:e.refreshToken,authToken:X(e.authToken)}}throw await Z("Create Installation",a)}(t,n);return me(t,e)}catch(e){throw J(e)&&409===e.customData.serverCode?await ye(t):await me(t,{fid:n.fid,registrationStatus:0}),e}}(e,t);return{installationEntry:t,registrationPromise:e}}}(t,e);return n=e.registrationPromise,e.installationEntry});return e.fid===ie?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function Ie(e){return we(e,e=>{if(!e)throw z.create("installation-not-found");return be(e)})}function be(e){return 1===(t=e).registrationStatus&&t.registrationTime+V<Date.now()?{fid:e.fid,registrationStatus:0}:e;var t}async function _e({appConfig:e,platformLoggerProvider:t},n){const r=([i,{fid:a}]=[e,n],`${Y(i)}/${a}/authTokens:generate`);var i,a;const o=ee(e,n),s=t.getImmediate({optional:!0});s&&o.append("x-firebase-client",s.getPlatformInfoString());t={installation:{sdkVersion:K}};const c={method:"POST",headers:o,body:JSON.stringify(t)},u=await te(()=>fetch(r,c));if(u.ok)return X(await u.json());throw await Z("Generate Auth Token",u)}async function Ee(r,i=!1){let a;var e=await we(r.appConfig,e=>{if(!Se(e))throw z.create("not-registered");var t,n=e.authToken;if(i||2!==(t=n).requestStatus||function(e){var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+W}(t)){if(1===n.requestStatus)return a=async function(e,t){let n=await Te(e.appConfig);for(;1===n.authToken.requestStatus;)await ne(100),n=await Te(e.appConfig);var r=n.authToken;return 0===r.requestStatus?Ee(e,t):r}(r,i),e;if(!navigator.onLine)throw z.create("app-offline");n=(t=e,n={requestStatus:1,requestTime:Date.now()},Object.assign(Object.assign({},t),{authToken:n}));return a=async function(t,n){try{var e=await _e(t,n),r=Object.assign(Object.assign({},n),{authToken:e});return await me(t.appConfig,r),e}catch(e){throw!J(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(n=Object.assign(Object.assign({},n),{authToken:{requestStatus:0}}),await me(t.appConfig,n)):await ye(t.appConfig),e}}(r,n),n}return e});return a?await a:e.authToken}function Te(e){return we(e,e=>{if(!Se(e))throw z.create("not-registered");var t=e.authToken;return 1===(t=t).requestStatus&&t.requestTime+V<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e})}function Se(e){return void 0!==e&&2===e.registrationStatus}async function Ce(e,t=!1){return await async function(e){var{registrationPromise:e}=await ve(e);e&&await e}(e.appConfig),(await Ee(e,t)).token}function Oe(e){return z.create("missing-app-config-values",{valueName:e})}const Pe="installations";gt._registerComponent(new P(Pe,e=>{e=e.getProvider("app").getImmediate();return{app:e,appConfig:function(e){if(!e||!e.options)throw Oe("App Configuration");if(!e.name)throw Oe("App Name");for(const t of["projectId","apiKey","appId"])if(!e.options[t])throw Oe(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(e),platformLoggerProvider:gt._getProvider(e,"platform-logger"),_delete:()=>Promise.resolve()}},"PUBLIC")),gt._registerComponent(new P("installations-internal",e=>{e=e.getProvider("app").getImmediate();const t=gt._getProvider(e,Pe).getImmediate();return{getId:()=>async function(e){const{installationEntry:t,registrationPromise:n}=await ve(e.appConfig);return(n||Ee(e)).catch(console.error),t.fid}(t),getToken:e=>Ce(t,e)}},"PRIVATE")),gt.registerVersion("@firebase/installations",q);const De="analytics",Ae="firebase_id",je="origin",Ne=6e4,ke="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",Re="https://www.googletagmanager.com/gtag/js",Le=new u("@firebase/analytics");function xe(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function Me(r,i,a,o){return async function(e,t,n){try{"event"===e?await async function(e,n,r,i,a){try{let t=[];if(a&&a.send_to){let e=a.send_to;Array.isArray(e)||(e=[e]);const c=await xe(r);for(const u of e){var o=c.find(e=>e.measurementId===u),s=o&&n[o.appId];if(!s){t=[];break}t.push(s)}}0===t.length&&(t=Object.values(n)),await Promise.all(t),e("event",i,a||{})}catch(e){Le.error(e)}}(r,i,a,t,n):"config"===e?await async function(e,t,n,r,i,a){r=r[i];try{if(r)await t[r];else{const s=await xe(n);var o=s.find(e=>e.measurementId===i);o&&await t[o.appId]}}catch(e){Le.error(e)}e("config",i,a)}(r,i,a,o,t,n):r("set",t)}catch(e){Le.error(e)}}}const Fe=new v("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-intialized 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.'}),$e=30;const Be=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 He(e){var t,{appId:n,apiKey:e}=e,e={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":e})},n=ke.replace("{app-id}",n);const r=await fetch(n,e);if(200===r.status||304===r.status)return r.json();{let e="";try{var i=await r.json();null!==(t=i.error)&&void 0!==t&&t.message&&(e=i.error.message)}catch(e){}throw Fe.create("config-fetch-failed",{httpStatus:r.status,responseMessage:e})}}async function qe(e,t=Be,n){var{appId:r,apiKey:i,measurementId:a}=e.options;if(!r)throw Fe.create("no-app-id");if(!i){if(a)return{measurementId:a,appId:r};throw Fe.create("no-api-key")}e=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()};const o=new Ue;return setTimeout(async()=>{o.abort()},void 0!==n?n:Ne),async function t(n,{throttleEndTimeMillis:e,backoffCount:r},i,a=Be){const{appId:o,measurementId:s}=n;try{await Ve(i,e)}catch(e){if(s)return Le.warn("Timed out fetching this Firebase app's measurement ID from the server."+` Falling back to the measurement ID ${s}`+` provided in the "measurementId" field in the local Firebase config. [${e.message}]`),{appId:o,measurementId:s};throw e}try{const c=await He(n);return a.deleteThrottleMetadata(o),c}catch(e){if(!Ke(e)){if(a.deleteThrottleMetadata(o),s)return Le.warn("Failed to fetch this Firebase app's measurement ID from the server."+` Falling back to the measurement ID ${s}`+` provided in the "measurementId" field in the local Firebase config. [${e.message}]`),{appId:o,measurementId:s};throw e}const u=503===Number(e.customData.httpStatus)?C(r,a.intervalMillis,$e):C(r,a.intervalMillis),l={throttleEndTimeMillis:Date.now()+u,backoffCount:r+1};return a.setThrottleMetadata(o,l),Le.debug(`Calling attemptFetch again in ${u} millis`),t(n,l,i,a)}}({appId:r,apiKey:i,measurementId:a},e,o,t)}function Ve(i,a){return new Promise((e,t)=>{var n=Math.max(a-Date.now(),0);const r=setTimeout(e,n);i.addEventListener(()=>{clearTimeout(r),t(Fe.create("fetch-throttle",{throttleEndTimeMillis:a}))})})}function Ke(e){if(e instanceof y&&e.customData){e=Number(e.customData.httpStatus);return 429===e||500===e||503===e||504===e}}class Ue{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function Ge(t,e,n,r,i,a,o){const s=qe(t);s.then(e=>{n[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&Le.warn(`The measurement ID in the local Firebase config (${t.options.measurementId})`+` does not match the measurement ID fetched from the server (${e.measurementId}).`+" To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.")}).catch(e=>Le.error(e)),e.push(s);var c=async function(){if(!f())return Le.warn(Fe.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await d()}catch(e){return Le.warn(Fe.create("indexeddb-unavailable",{errorInfo:e}).message),!1}return!0}().then(e=>{if(e)return r.getId()}),[e,c]=await Promise.all([s,c]);!function(){var e=window.document.getElementsByTagName("script");for(const t of Object.values(e))if(t.src&&t.src.includes(Re))return t}()&&function(e,t){const n=document.createElement("script");n.src=`${Re}?l=${e}&id=${t}`,n.async=!0,document.head.appendChild(n)}(a,e.measurementId),i("js",new Date);const u=null!==(o=null==o?void 0:o.config)&&void 0!==o?o:{};return u[je]="firebase",u.update=!0,null!=c&&(u[Ae]=c),i("config",e.measurementId,u),e.measurementId}class We{constructor(e){this.app=e}_delete(){return delete ze[this.app.options.appId],Promise.resolve()}}let ze={},Je=[];const Ye={};let Xe="dataLayer",Ze="gtag",Qe,et,tt=!1;function nt(e){if(tt)throw Fe.create("already-initialized");e.dataLayerName&&(Xe=e.dataLayerName),e.gtagName&&(Ze=e.gtagName)}function rt(e,t,n){!function(){const e=[];var t;p()&&e.push("This is a browser extension environment."),h()||e.push("Cookies are not available."),0<e.length&&(t=e.map((e,t)=>`(${t+1}) ${e}`).join(" "),t=Fe.create("invalid-analytics-context",{errorInfo:t}),Le.warn(t.message))}();var r,i,a=e.options.appId;if(!a)throw Fe.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw Fe.create("no-api-key");Le.warn('The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest'+` measurement ID for this Firebase app. Falling back to the measurement ID ${e.options.measurementId}`+' provided in the "measurementId" field in the local Firebase config.')}if(null!=ze[a])throw Fe.create("already-exists",{id:a});return tt||(function(e){let t=[];Array.isArray(window[e])?t=window[e]:window[e]=t,t}(Xe),{wrappedGtag:r,gtagCore:i}=function(e,t,n,r,i){let a=function(){window[r].push(arguments)};return window[i]&&"function"==typeof window[i]&&(a=window[i]),window[i]=Me(a,e,t,n),{gtagCore:a,wrappedGtag:window[i]}}(ze,Je,Ye,Xe,Ze),et=r,Qe=i,tt=!0),ze[a]=Ge(e,Je,Ye,t,Qe,Xe,n),new We(e)}async function it(){if(p())return!1;if(!h())return!1;if(!f())return!1;try{return await d()}catch(e){return!1}}function at(e,t,n){e=O(e),async function(e,t,n,r){if(r&&r.global)return e("set",{screen_name:n}),Promise.resolve();e("config",await t,{update:!0,screen_name:n})}(et,ze[e.app.options.appId],t,n).catch(e=>Le.error(e))}function ot(e,t,n){e=O(e),async function(e,t,n,r){if(r&&r.global)return e("set",{user_id:n}),Promise.resolve();e("config",await t,{update:!0,user_id:n})}(et,ze[e.app.options.appId],t,n).catch(e=>Le.error(e))}function st(e,t,n){e=O(e),async function(e,t,n,r){if(r&&r.global){const i={};for(const a of Object.keys(n))i[`user_properties.${a}`]=n[a];return e("set",i),Promise.resolve()}e("config",await t,{update:!0,user_properties:n})}(et,ze[e.app.options.appId],t,n).catch(e=>Le.error(e))}function ct(e,t){e=O(e),async function(e,t){e=await e,window[`ga-disable-${e}`]=!t}(ze[e.app.options.appId],t).catch(e=>Le.error(e))}function ut(e,t,n,r){e=O(e),async function(e,t,n,r,i){i&&i.global?e("event",n,r):(t=await t,e("event",n,Object.assign(Object.assign({},r),{send_to:t})))}(et,ze[e.app.options.appId],t,n,r).catch(e=>Le.error(e))}gt._registerComponent(new P(De,(e,{options:t})=>{return rt(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t)},"PUBLIC")),gt._registerComponent(new P("analytics-internal",function(e){try{const r=e.getProvider(De).getImmediate();return{logEvent:(e,t,n)=>ut(r,e,t,n)}}catch(e){throw Fe.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),gt.registerVersion("@firebase/analytics","0.7.0");var lt,pt;class ft{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,n){ut(this._delegate,e,t,n)}setCurrentScreen(e,t){at(this._delegate,e,t)}setUserId(e,t){ot(this._delegate,e,t)}setUserProperties(e,t){st(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){ct(this._delegate,e)}}(u=lt=lt||{}).ADD_SHIPPING_INFO="add_shipping_info",u.ADD_PAYMENT_INFO="add_payment_info",u.ADD_TO_CART="add_to_cart",u.ADD_TO_WISHLIST="add_to_wishlist",u.BEGIN_CHECKOUT="begin_checkout",u.CHECKOUT_PROGRESS="checkout_progress",u.EXCEPTION="exception",u.GENERATE_LEAD="generate_lead",u.LOGIN="login",u.PAGE_VIEW="page_view",u.PURCHASE="purchase",u.REFUND="refund",u.REMOVE_FROM_CART="remove_from_cart",u.SCREEN_VIEW="screen_view",u.SEARCH="search",u.SELECT_CONTENT="select_content",u.SELECT_ITEM="select_item",u.SELECT_PROMOTION="select_promotion",u.SET_CHECKOUT_OPTION="set_checkout_option",u.SHARE="share",u.SIGN_UP="sign_up",u.TIMING_COMPLETE="timing_complete",u.VIEW_CART="view_cart",u.VIEW_ITEM="view_item",u.VIEW_ITEM_LIST="view_item_list",u.VIEW_PROMOTION="view_promotion",u.VIEW_SEARCH_RESULTS="view_search_results";const dt=e=>{var t=e.getProvider("app-compat").getImmediate(),e=e.getProvider("analytics").getImmediate();return new ft(t,e)};pt={Analytics:ft,settings:nt,isSupported:it,EventName:lt},t.default.INTERNAL.registerComponent(new P("analytics-compat",dt,"PUBLIC").setServiceProps(pt).setMultipleInstances(!0)),t.default.registerVersion("@firebase/analytics-compat","0.1.0")}.apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-analytics-compat.js - be sure to load firebase-app.js first.")}}); //# sourceMappingURL=firebase-analytics-compat.js.map