1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4971],{4971:(t,e,a)=>{var n=a(94093),i=a(32881),r=a(21280),o=a(46984);let s="@firebase/installations",u="0.6.22",l=`w:${u}`,f="FIS_v2",c=new r.FA("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 p(t){return t instanceof r.g&&t.code.includes("request-failed")}function d({projectId:t}){return`https://firebaseinstallations.googleapis.com/v1/projects/${t}/installations`}function w(t){return{token:t.token,requestStatus:2,expiresIn:Number(t.expiresIn.replace("s","000")),creationTime:Date.now()}}async function g(t,e){let a=(await e.json()).error;return c.create("request-failed",{requestName:t,serverCode:a.code,serverMessage:a.message,serverStatus:a.status})}function h({apiKey:t}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":t})}async function m(t){let e=await t();return e.status>=500&&e.status<600?t():e}async function y({appConfig:t,heartbeatServiceProvider:e},{fid:a}){let n=d(t),i=h(t),r=e.getImmediate({optional:!0});if(r){let t=await r.getHeartbeatsHeader();t&&i.append("x-firebase-client",t)}let o={method:"POST",headers:i,body:JSON.stringify({fid:a,authVersion:f,appId:t.appId,sdkVersion:l})},s=await m(()=>fetch(n,o));if(s.ok){let t=await s.json();return{fid:t.fid||a,registrationStatus:2,refreshToken:t.refreshToken,authToken:w(t.authToken)}}throw await g("Create Installation",s)}function S(t){return new Promise(e=>{setTimeout(e,t)})}let C=/^[cdef][\w-]{21}$/;function k(t){return`${t.appName}!${t.appId}`}let v=new Map;function I(t,e){let a=k(t);T(a,e),function(t,e){let a=(!b&&"BroadcastChannel"in self&&((b=new BroadcastChannel("[Firebase] FID Change")).onmessage=t=>{T(t.data.key,t.data.fid)}),b);a&&a.postMessage({key:t,fid:e}),0===v.size&&b&&(b.close(),b=null)}(a,e)}function T(t,e){let a=v.get(t);if(a)for(let t of a)t(e)}let b=null,q="firebase-installations-store",j=null;function $(){return j||(j=(0,o.P2)("firebase-installations-database",1,{upgrade:(t,e)=>{0===e&&t.createObjectStore(q)}})),j}async function P(t,e){let a=k(t),n=(await $()).transaction(q,"readwrite"),i=n.objectStore(q),r=await i.get(a);return await i.put(e,a),await n.done,r&&r.fid===e.fid||I(t,e.fid),e}async function A(t){let e=k(t),a=(await $()).transaction(q,"readwrite");await a.objectStore(q).delete(e),await a.done}async function D(t,e){let a=k(t),n=(await $()).transaction(q,"readwrite"),i=n.objectStore(q),r=await i.get(a),o=e(r);return void 0===o?await i.delete(a):await i.put(o,a),await n.done,o&&(!r||r.fid!==o.fid)&&I(t,o.fid),o}async function N(t){let e,a=await D(t.appConfig,a=>{let n=function(t,e){if(0===e.registrationStatus){if(!navigator.onLine)return{installationEntry:e,registrationPromise:Promise.reject(c.create("app-offline"))};let a={fid:e.fid,registrationStatus:1,registrationTime:Date.now()},n=O(t,a);return{installationEntry:a,registrationPromise:n}}return 1===e.registrationStatus?{installationEntry:e,registrationPromise:_(t)}:{installationEntry:e}}(t,E(a||{fid:function(){try{var t;let e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;let a=(t=e,btoa(String.fromCharCode(...t)).replace(/\+/g,"-").replace(/\//g,"_").substr(0,22));return C.test(a)?a:""}catch{return""}}(),registrationStatus:0}));return e=n.registrationPromise,n.installationEntry});return""===a.fid?{installationEntry:await e}:{installationEntry:a,registrationPromise:e}}async function O(t,e){try{let a=await y(t,e);return P(t.appConfig,a)}catch(a){throw p(a)&&409===a.customData.serverCode?await A(t.appConfig):await P(t.appConfig,{fid:e.fid,registrationStatus:0}),a}}async function _(t){let e=await x(t.appConfig);for(;1===e.registrationStatus;)await S(100),e=await x(t.appConfig);if(0===e.registrationStatus){let{installationEntry:e,registrationPromise:a}=await N(t);return a||e}return e}function x(t){return D(t,t=>{if(!t)throw c.create("installation-not-found");return E(t)})}function E(t){var e;return 1===(e=t).registrationStatus&&e.registrationTime+1e4<Date.now()?{fid:t.fid,registrationStatus:0}:t}async function F({appConfig:t,heartbeatServiceProvider:e},a){let n=function(t,{fid:e}){return`${d(t)}/${e}/authTokens:generate`}(t,a),i=function(t,{refreshToken:e}){var a;let n=h(t);return n.append("Authorization",(a=e,`${f} ${a}`)),n}(t,a),r=e.getImmediate({optional:!0});if(r){let t=await r.getHeartbeatsHeader();t&&i.append("x-firebase-client",t)}let o={method:"POST",headers:i,body:JSON.stringify({installation:{sdkVersion:l,appId:t.appId}})},s=await m(()=>fetch(n,o));if(s.ok)return w(await s.json());throw await g("Generate Auth Token",s)}async function H(t,e=!1){let a,n=await D(t.appConfig,n=>{var i;if(!B(n))throw c.create("not-registered");let r=n.authToken;if(!e&&2===(i=r).requestStatus&&!function(t){let e=Date.now();
1return e<t.creationTime||t.creationTime+t.expiresIn<e+36e5}(i))return n;if(1===r.requestStatus)return a=K(t,e),n;{if(!navigator.onLine)throw c.create("app-offline");let e=function(t){let e={requestStatus:1,requestTime:Date.now()};return{...t,authToken:e}}(n);return a=V(t,e),e}});return a?await a:n.authToken}async function K(t,e){let a=await M(t.appConfig);for(;1===a.authToken.requestStatus;)await S(100),a=await M(t.appConfig);let n=a.authToken;return 0===n.requestStatus?H(t,e):n}function M(t){return D(t,t=>{var e;if(!B(t))throw c.create("not-registered");return 1===(e=t.authToken).requestStatus&&e.requestTime+1e4<Date.now()?{...t,authToken:{requestStatus:0}}:t})}async function V(t,e){try{let a=await F(t,e),n={...e,authToken:a};return await P(t.appConfig,n),a}catch(a){if(p(a)&&(401===a.customData.serverCode||404===a.customData.serverCode))await A(t.appConfig);else{let a={...e,authToken:{requestStatus:0}};await P(t.appConfig,a)}throw a}}function B(t){return void 0!==t&&2===t.registrationStatus}async function L(t){let{installationEntry:e,registrationPromise:a}=await N(t);return a?a.catch(console.error):H(t).catch(console.error),e.fid}async function z(t,e=!1){return await J(t),(await H(t,e)).token}async function J(t){let{registrationPromise:e}=await N(t);e&&await e}function R(t){return c.create("missing-app-config-values",{valueName:t})}let U="installations";(0,n.om)(new i.uA(U,t=>{let e=t.getProvider("app").getImmediate(),a=function(t){if(!t||!t.options)throw R("App Configuration");if(!t.name)throw R("App Name");for(let e of["projectId","apiKey","appId"])if(!t.options[e])throw R(e);return{appName:t.name,projectId:t.options.projectId,apiKey:t.options.apiKey,appId:t.options.appId}}(e),i=(0,n.j6)(e,"heartbeat");return{app:e,appConfig:a,heartbeatServiceProvider:i,_delete:()=>Promise.resolve()}},"PUBLIC")),(0,n.om)(new i.uA("installations-internal",t=>{let e=t.getProvider("app").getImmediate(),a=(0,n.j6)(e,U).getImmediate();return{getId:()=>L(a),getToken:t=>z(a,t)}},"PRIVATE")),(0,n.KO)(s,u),(0,n.KO)(s,u,"esm2020")}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.