diff --git a/Target/_astro/Base.astro_astro_type_script_index_0_lang.CCQPt6x2.js b/Target/_astro/Base.astro_astro_type_script_index_0_lang.CvgM2Ypu.js similarity index 79% rename from Target/_astro/Base.astro_astro_type_script_index_0_lang.CCQPt6x2.js rename to Target/_astro/Base.astro_astro_type_script_index_0_lang.CvgM2Ypu.js index 7d0882a6..08001f76 100644 --- a/Target/_astro/Base.astro_astro_type_script_index_0_lang.CCQPt6x2.js +++ b/Target/_astro/Base.astro_astro_type_script_index_0_lang.CvgM2Ypu.js @@ -1,7 +1,7 @@ import { _ as e } from "./preload-helper.BiBI96sQ.js"; ( await e(async () => { - const { initializeApp: a } = await import("./index.esm.WPJ9Gp6O.js"); + const { initializeApp: a } = await import("./index.esm.C4IwMFMF.js"); return { initializeApp: a }; }, []) ).initializeApp({ @@ -14,4 +14,4 @@ import { _ as e } from "./preload-helper.BiBI96sQ.js"; projectId: "", storageBucket: "", }); -//# sourceMappingURL=Base.astro_astro_type_script_index_0_lang.CCQPt6x2.js.map +//# sourceMappingURL=Base.astro_astro_type_script_index_0_lang.CvgM2Ypu.js.map diff --git a/Target/_astro/Base.astro_astro_type_script_index_0_lang.CCQPt6x2.js.map b/Target/_astro/Base.astro_astro_type_script_index_0_lang.CvgM2Ypu.js.map similarity index 96% rename from Target/_astro/Base.astro_astro_type_script_index_0_lang.CCQPt6x2.js.map rename to Target/_astro/Base.astro_astro_type_script_index_0_lang.CvgM2Ypu.js.map index ee8b5389..3043f858 100644 --- a/Target/_astro/Base.astro_astro_type_script_index_0_lang.CCQPt6x2.js.map +++ b/Target/_astro/Base.astro_astro_type_script_index_0_lang.CvgM2Ypu.js.map @@ -1 +1 @@ -{"version":3,"mappings":"kDAAgB,MAAMA,EAAA,8BAAAC,CAAA,eAAO,yBAAc,uBAAAA,CAAA,QAAG,cAAc,CAC3D,OAAQ,GACR,MAAO,GACP,WAAY,GACZ,YAAa,GACb,cAAe,GACf,kBAAmB,GACnB,UAAW,GACX,cAAe,EAChB,CAAC","names":["__vitePreload","initializeApp"],"ignoreList":[],"sources":["../../Source/Script/Firebase.ts"],"sourcesContent":["export default (await import(\"firebase/app\")).initializeApp({\n\tapiKey: \"\", // TODO Replace with your API key\n\tappId: \"\", // TODO Replace with your app ID\n\tauthDomain: \"\", // TODO Replace with your auth domain\n\tdatabaseURL: \"\", // TODO Replace with your database URL\n\tmeasurementId: \"\", // TODO Replace with your measurement ID\n\tmessagingSenderId: \"\", // TODO Replace with your messaging sender ID\n\tprojectId: \"\", // TODO Replace with your project ID\n\tstorageBucket: \"\", // TODO Replace with your storage bucket\n});\n"],"file":"_astro/Base.astro_astro_type_script_index_0_lang.CCQPt6x2.js"} \ No newline at end of file +{"version":3,"mappings":"kDAAgB,MAAMA,EAAA,8BAAAC,CAAA,eAAO,yBAAc,uBAAAA,CAAA,QAAG,cAAc,CAC3D,OAAQ,GACR,MAAO,GACP,WAAY,GACZ,YAAa,GACb,cAAe,GACf,kBAAmB,GACnB,UAAW,GACX,cAAe,EAChB,CAAC","names":["__vitePreload","initializeApp"],"ignoreList":[],"sources":["../../Source/Script/Firebase.ts"],"sourcesContent":["export default (await import(\"firebase/app\")).initializeApp({\n\tapiKey: \"\", // TODO Replace with your API key\n\tappId: \"\", // TODO Replace with your app ID\n\tauthDomain: \"\", // TODO Replace with your auth domain\n\tdatabaseURL: \"\", // TODO Replace with your database URL\n\tmeasurementId: \"\", // TODO Replace with your measurement ID\n\tmessagingSenderId: \"\", // TODO Replace with your messaging sender ID\n\tprojectId: \"\", // TODO Replace with your project ID\n\tstorageBucket: \"\", // TODO Replace with your storage bucket\n});\n"],"file":"_astro/Base.astro_astro_type_script_index_0_lang.CvgM2Ypu.js"} \ No newline at end of file diff --git a/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.CI_30MX9.js b/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.B3oF6IaN.js similarity index 81% rename from Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.CI_30MX9.js rename to Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.B3oF6IaN.js index a2477810..03b29c1b 100644 --- a/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.CI_30MX9.js +++ b/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.B3oF6IaN.js @@ -1 +1 @@ -const y="data-astro-transition-persist";function z(e){for(const t of document.scripts)for(const n of e.scripts)if(!n.hasAttribute("data-astro-rerun")&&(!t.src&&t.textContent===n.textContent||t.src&&t.type===n.type&&t.src===n.src)){n.dataset.astroExec="";break}}function Q(e){const t=document.documentElement,n=[...t.attributes].filter((({name:e})=>(t.removeAttribute(e),e.startsWith("data-astro-"))));[...e.documentElement.attributes,...n].forEach((({name:e,value:n})=>t.setAttribute(e,n)))}function Z(e){for(const t of Array.from(document.head.children)){const n=ne(t,e);n?n.remove():t.remove()}document.head.append(...e.head.children)}function ee(e,t){t.replaceWith(e);for(const n of t.querySelectorAll(`[${y}]`)){const t=n.getAttribute(y),o=e.querySelector(`[${y}="${t}"]`);o&&(o.replaceWith(n),"astro-island"===o.localName&&oe(n)&&(n.setAttribute("ssr",""),n.setAttribute("props",o.getAttribute("props"))))}}const te=()=>{const e=document.activeElement;if(e?.closest(`[${y}]`)){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement){const t=e.selectionStart,n=e.selectionEnd;return()=>R({activeElement:e,start:t,end:n})}return()=>R({activeElement:e})}return()=>R({activeElement:null})},R=({activeElement:e,start:t,end:n})=>{e&&(e.focus(),(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&("number"==typeof t&&(e.selectionStart=t),"number"==typeof n&&(e.selectionEnd=n)))},ne=(e,t)=>{const n=e.getAttribute(y),o=n&&t.head.querySelector(`[${y}="${n}"]`);if(o)return o;if(e.matches("link[rel=stylesheet]")){const n=e.getAttribute("href");return t.head.querySelector(`link[rel=stylesheet][href="${n}"]`)}return null},oe=e=>{const t=e.dataset.astroTransitionPersistProps;return null==t||"false"===t},re=e=>{z(e),Q(e),Z(e);const t=te();ee(e.body,document.body),t()},ie="astro:before-preparation",se="astro:after-preparation",ae="astro:before-swap",ce="astro:after-swap",le=e=>document.dispatchEvent(new Event(e));class $ extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(e,t,n,o,r,i,a,s,c,l){super(e,t),this.from=n,this.to=o,this.direction=r,this.navigationType=i,this.sourceElement=a,this.info=s,this.newDocument=c,this.signal=l,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0},signal:{enumerable:!0}})}}class ue extends ${formData;loader;constructor(e,t,n,o,r,i,a,s,c,l){super(ie,{cancelable:!0},e,t,n,o,r,i,a,s),this.formData=c,this.loader=l.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class fe extends ${direction;viewTransition;swap;constructor(e,t){super(ae,void 0,e.from,e.to,e.direction,e.navigationType,e.sourceElement,e.info,e.newDocument,e.signal),this.direction=e.direction,this.viewTransition=t,this.swap=()=>re(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function de(e,t,n,o,r,i,a,s,c){const l=new ue(e,t,n,o,r,i,window.document,a,s,c);return document.dispatchEvent(l)&&(await l.loader(),l.defaultPrevented||(le(se),"traverse"!==l.navigationType&&x({scrollX:scrollX,scrollY:scrollY}))),l}function me(e,t){const n=new fe(e,t);return document.dispatchEvent(n),n.swap(),n}const he=history.pushState.bind(history),T=history.replaceState.bind(history),x=e=>{history.state&&(history.scrollRestoration="manual",T({...history.state,...e},""))},D=!!document.startViewTransition,I=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),q=(e,t)=>e.pathname===t.pathname&&e.search===t.search;let d,w,A;const U=e=>document.dispatchEvent(new Event(e)),B=()=>U("astro:page-load"),pe=()=>{let e=document.createElement("div");e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),e.className="astro-route-announcer",document.body.append(e),setTimeout((()=>{let t=document.title||document.querySelector("h1")?.textContent||location.pathname;e.textContent=t}),60)},H="data-astro-transition-persist",M="data-astro-transition",P="data-astro-transition-fallback";let O,b=0;async function we(e,t){try{const n=await fetch(e,t),o=(n.headers.get("content-type")??"").split(";",1)[0].trim();return"text/html"!==o&&"application/xhtml+xml"!==o?null:{html:await n.text(),redirected:n.redirected?n.url:void 0,mediaType:o}}catch{return null}}function V(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function ge(){let e=Promise.resolve();for(const t of Array.from(document.scripts)){if(""===t.dataset.astroExec)continue;const n=t.getAttribute("type");if(n&&"module"!==n&&"text/javascript"!==n)continue;const o=document.createElement("script");o.innerHTML=t.innerHTML;for(const n of t.attributes){if("src"===n.name){const t=new Promise((e=>{o.onload=o.onerror=e}));e=e.then((()=>t))}o.setAttribute(n.name,n.value)}o.dataset.astroExec="",t.replaceWith(o)}return e}history.state?(b=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):I()&&(T({index:b,scrollX:scrollX,scrollY:scrollY},""),history.scrollRestoration="manual");const W=(e,t,n,o,r)=>{const i=q(t,e),a=document.title;document.title=o;let s=!1;if(e.href!==location.href&&!r)if("replace"===n.history){const t=history.state;T({...n.state,index:t.index,scrollX:t.scrollX,scrollY:t.scrollY},"",e.href)}else he({...n.state,index:++b,scrollX:0,scrollY:0},"",e.href);if(document.title=a,A=e,i||(scrollTo({left:0,top:0,behavior:"instant"}),s=!0),r)scrollTo(r.scrollX,r.scrollY);else{if(e.hash){history.scrollRestoration="auto";const t=history.state;location.href=e.href,history.state||(T(t,""),i&&window.dispatchEvent(new PopStateEvent("popstate")))}else s||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function ye(e){const t=[];for(const n of e.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${H}="${n.getAttribute(H)}"], link[rel=stylesheet][href="${n.getAttribute("href")}"]`)){const e=document.createElement("link");e.setAttribute("rel","preload"),e.setAttribute("as","style"),e.setAttribute("href",n.getAttribute("href")),t.push(new Promise((t=>{["load","error"].forEach((n=>e.addEventListener(n,t))),document.head.append(e)})))}return t}async function C(e,t,n,o,r){async function i(e){const t=document.getAnimations();document.documentElement.setAttribute(P,e);const n=document.getAnimations().filter((e=>!t.includes(e)&&!function(e){const t=e.effect;return!!(t&&t instanceof KeyframeEffect&&t.target)&&"infinite"===window.getComputedStyle(t.target,t.pseudoElement).animationIterationCount}(e)));return Promise.allSettled(n.map((e=>e.finished)))}if("animate"===r&&!n.transitionSkipped&&!e.signal.aborted)try{await i("old")}catch{}const a=document.title,s=me(e,n.viewTransition);W(s.to,s.from,t,a,o),U(ce),"animate"===r&&(n.transitionSkipped||s.signal.aborted?n.viewTransitionFinished():i("new").finally((()=>n.viewTransitionFinished())))}function be(){return d?.controller.abort(),d={controller:new AbortController}}async function j(e,t,n,o,r){const i=be();if(!I()||location.origin!==n.origin)return i===d&&(d=void 0),void(location.href=n.href);const a=r?"traverse":"replace"===o.history?"replace":"push";if("traverse"!==a&&x({scrollX:scrollX,scrollY:scrollY}),q(t,n)&&("back"!==e&&n.hash||"back"===e&&t.hash))return W(n,t,o,document.title,r),void(i===d&&(d=void 0));const s=await de(t,n,e,a,o.sourceElement,o.info,i.controller.signal,o.formData,(async function(e){const t=e.to.href,n={signal:e.signal};if(e.formData){n.method="POST";const t=e.sourceElement instanceof HTMLFormElement?e.sourceElement:e.sourceElement instanceof HTMLElement&&"form"in e.sourceElement?e.sourceElement.form:e.sourceElement?.closest("form");n.body="application/x-www-form-urlencoded"===t?.attributes.getNamedItem("enctype")?.value?new URLSearchParams(e.formData):e.formData}const o=await we(t,n);if(null===o)return void e.preventDefault();if(o.redirected){const t=new URL(o.redirected);if(t.origin!==e.to.origin)return void e.preventDefault();e.to=t}if(O??=new DOMParser,e.newDocument=O.parseFromString(o.html,o.mediaType),e.newDocument.querySelectorAll("noscript").forEach((e=>e.remove())),!e.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!e.formData)return void e.preventDefault();const r=ye(e.newDocument);r.length&&!e.signal.aborted&&await Promise.all(r)}));if(s.defaultPrevented||s.signal.aborted)return i===d&&(d=void 0),void(s.signal.aborted||(location.href=n.href));const c=await async function(){if(w&&w.viewTransition){try{w.viewTransition.skipTransition()}catch{}try{await w.viewTransition.updateCallbackDone}catch{}}return w={transitionSkipped:!1}}();if(s.signal.aborted)i===d&&(d=void 0);else{if(document.documentElement.setAttribute(M,s.direction),D)c.viewTransition=document.startViewTransition((async()=>await C(s,o,c,r)));else{const e=(async()=>{await Promise.resolve(),await C(s,o,c,r,V())})();c.viewTransition={updateCallbackDone:e,ready:e,finished:new Promise((e=>c.viewTransitionFinished=e)),skipTransition:()=>{c.transitionSkipped=!0,document.documentElement.removeAttribute(P)}}}c.viewTransition.updateCallbackDone.finally((async()=>{await ge(),B(),pe()})),c.viewTransition.finished.finally((()=>{c.viewTransition=void 0,c===w&&(w=void 0),i===d&&(d=void 0),document.documentElement.removeAttribute(M),document.documentElement.removeAttribute(P)}));try{await c.viewTransition.updateCallbackDone}catch(e){const t=e;console.log("[astro]",t.name,t.message,t.stack)}}}async function F(e,t){await j("forward",A,new URL(e,location.href),t??{})}function ve(e){if(!I()&&e.state)return void location.reload();if(null===e.state)return;const t=history.state,n=t.index,o=n>b?"forward":"back";b=n,j(o,A,new URL(location.href),{},t)}const X=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&x({scrollX:scrollX,scrollY:scrollY})};if(D||"none"!==V())if(A=new URL(location.href),addEventListener("popstate",ve),addEventListener("load",B),"onscrollend"in window)addEventListener("scrollend",X);else{let e,t,n,o;const r=()=>o!==history.state?.index?(clearInterval(e),void(e=void 0)):t===scrollY&&n===scrollX?(clearInterval(e),e=void 0,void X()):(t=scrollY,void(n=scrollX));addEventListener("scroll",(()=>{void 0===e&&(o=history.state.index,t=scrollY,n=scrollX,e=window.setInterval(r,50))}),{passive:!0})}for(const e of document.scripts)e.dataset.astroExec="";const K=new Set,E=new WeakSet;let k,G,Y=!1;function Te(e){Y||(Y=!0,k??=e?.prefetchAll,G??=e?.defaultStrategy??"hover",Ee(),Ae(),Se(),Re())}function Ee(){for(const e of["touchstart","mousedown"])document.body.addEventListener(e,(e=>{v(e.target,"tap")&&S(e.target.href,{ignoreSlowConnection:!0})}),{passive:!0})}function Ae(){let e;function t(t){const n=t.target.href;e&&clearTimeout(e),e=setTimeout((()=>{S(n)}),80)}function n(){e&&(clearTimeout(e),e=0)}document.body.addEventListener("focusin",(e=>{v(e.target,"hover")&&t(e)}),{passive:!0}),document.body.addEventListener("focusout",n,{passive:!0}),N((()=>{for(const e of document.getElementsByTagName("a"))E.has(e)||v(e,"hover")&&(E.add(e),e.addEventListener("mouseenter",t,{passive:!0}),e.addEventListener("mouseleave",n,{passive:!0}))}))}function Se(){let e;N((()=>{for(const t of document.getElementsByTagName("a"))E.has(t)||v(t,"viewport")&&(E.add(t),e??=Le(),e.observe(t))}))}function Le(){const e=new WeakMap;return new IntersectionObserver(((t,n)=>{for(const o of t){const t=o.target,r=e.get(t);o.isIntersecting?(r&&clearTimeout(r),e.set(t,setTimeout((()=>{n.unobserve(t),e.delete(t),S(t.href)}),300))):r&&(clearTimeout(r),e.delete(t))}}))}function Re(){N((()=>{for(const e of document.getElementsByTagName("a"))v(e,"load")&&S(e.href)}))}function S(e,t){if(Pe(e,t?.ignoreSlowConnection??!1))if(K.add(e),HTMLScriptElement.supports?.("speculationrules"))ke(e);else if(document.createElement("link").relList?.supports?.("prefetch")&&"fetch"!==t?.with){const t=document.createElement("link");t.rel="prefetch",t.setAttribute("href",e),document.head.append(t)}else fetch(e,{priority:"low"})}function Pe(e,t){if(!navigator.onLine||!t&&J())return!1;try{const t=new URL(e,location.href);return location.origin===t.origin&&(location.pathname!==t.pathname||location.search!==t.search)&&!K.has(e)}catch{}return!1}function v(e,t){if("A"!==e?.tagName)return!1;const n=e.dataset.astroPrefetch;return"false"!==n&&(!("tap"!==t||null==n&&!k||!J())||(null==n&&k||""===n?t===G:n===t))}function J(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function N(e){e();let t=!1;document.addEventListener("astro:page-load",(()=>{t?e():t=!0}))}function ke(e){const t=document.createElement("script");t.type="speculationrules",t.textContent=JSON.stringify({prerender:[{source:"list",urls:[e]}],prefetch:[{source:"list",urls:[e]}]}),document.head.append(t)}function xe(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function _(e){return void 0!==e.dataset.astroReload}(D||"none"!==xe())&&(document.addEventListener("click",(e=>{let t=e.target;if(e.composed&&(t=e.composedPath()[0]),t instanceof Element&&(t=t.closest("a, area")),!(t instanceof HTMLAnchorElement||t instanceof SVGAElement||t instanceof HTMLAreaElement))return;const n=t instanceof HTMLElement?t.target:t.target.baseVal,o=t instanceof HTMLElement?t.href:t.href.baseVal,r=new URL(o,location.href).origin;_(t)||t.hasAttribute("download")||!t.href||n&&"_self"!==n||r!==location.origin||0!==e.button||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.defaultPrevented||(e.preventDefault(),F(o,{history:"replace"===t.dataset.astroHistory?"replace":"auto",sourceElement:t}))})),document.addEventListener("submit",(e=>{let t=e.target;if("FORM"!==t.tagName||e.defaultPrevented||_(t))return;const n=t,o=e.submitter,r=new FormData(n,o),i="string"==typeof n.action?n.action:n.getAttribute("action"),a="string"==typeof n.method?n.method:n.getAttribute("method");let s=o?.getAttribute("formaction")??i??location.pathname;const c=o?.getAttribute("formmethod")??a??"get";if("dialog"===c||location.origin!==new URL(s,location.href).origin)return;const l={sourceElement:o??n};if("get"===c){const e=new URLSearchParams(r),t=new URL(s);t.search=e.toString(),s=t.toString()}else l.formData=r;e.preventDefault(),F(s,l)})),Te({prefetchAll:!0})); \ No newline at end of file +const y="data-astro-transition-persist";function z(e){for(const t of document.scripts)for(const n of e.scripts)if(!n.hasAttribute("data-astro-rerun")&&(!t.src&&t.textContent===n.textContent||t.src&&t.type===n.type&&t.src===n.src)){n.dataset.astroExec="";break}}function Q(e){const t=document.documentElement,n=[...t.attributes].filter((({name:e})=>(t.removeAttribute(e),e.startsWith("data-astro-"))));[...e.documentElement.attributes,...n].forEach((({name:e,value:n})=>t.setAttribute(e,n)))}function Z(e){for(const t of Array.from(document.head.children)){const n=ne(t,e);n?n.remove():t.remove()}document.head.append(...e.head.children)}function ee(e,t){t.replaceWith(e);for(const n of t.querySelectorAll(`[${y}]`)){const t=n.getAttribute(y),o=e.querySelector(`[${y}="${t}"]`);o&&(o.replaceWith(n),"astro-island"===o.localName&&oe(n)&&(n.setAttribute("ssr",""),n.setAttribute("props",o.getAttribute("props"))))}}const te=()=>{const e=document.activeElement;if(e?.closest(`[${y}]`)){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement){const t=e.selectionStart,n=e.selectionEnd;return()=>R({activeElement:e,start:t,end:n})}return()=>R({activeElement:e})}return()=>R({activeElement:null})},R=({activeElement:e,start:t,end:n})=>{e&&(e.focus(),(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&("number"==typeof t&&(e.selectionStart=t),"number"==typeof n&&(e.selectionEnd=n)))},ne=(e,t)=>{const n=e.getAttribute(y),o=n&&t.head.querySelector(`[${y}="${n}"]`);if(o)return o;if(e.matches("link[rel=stylesheet]")){const n=e.getAttribute("href");return t.head.querySelector(`link[rel=stylesheet][href="${n}"]`)}return null},oe=e=>{const t=e.dataset.astroTransitionPersistProps;return null==t||"false"===t},re=e=>{z(e),Q(e),Z(e);const t=te();ee(e.body,document.body),t()},ie="astro:before-preparation",se="astro:after-preparation",ae="astro:before-swap",ce="astro:after-swap",le=e=>document.dispatchEvent(new Event(e));class $ extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(e,t,n,o,r,i,a,s,c,l){super(e,t),this.from=n,this.to=o,this.direction=r,this.navigationType=i,this.sourceElement=a,this.info=s,this.newDocument=c,this.signal=l,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0},signal:{enumerable:!0}})}}class ue extends ${formData;loader;constructor(e,t,n,o,r,i,a,s,c,l){super(ie,{cancelable:!0},e,t,n,o,r,i,a,s),this.formData=c,this.loader=l.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class fe extends ${direction;viewTransition;swap;constructor(e,t){super(ae,void 0,e.from,e.to,e.direction,e.navigationType,e.sourceElement,e.info,e.newDocument,e.signal),this.direction=e.direction,this.viewTransition=t,this.swap=()=>re(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function de(e,t,n,o,r,i,a,s,c){const l=new ue(e,t,n,o,r,i,window.document,a,s,c);return document.dispatchEvent(l)&&(await l.loader(),l.defaultPrevented||(le(se),"traverse"!==l.navigationType&&x({scrollX:scrollX,scrollY:scrollY}))),l}function me(e,t){const n=new fe(e,t);return document.dispatchEvent(n),n.swap(),n}const he=history.pushState.bind(history),T=history.replaceState.bind(history),x=e=>{history.state&&(history.scrollRestoration="manual",T({...history.state,...e},""))},D=!!document.startViewTransition,I=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),q=(e,t)=>e.pathname===t.pathname&&e.search===t.search;let d,w,A;const U=e=>document.dispatchEvent(new Event(e)),B=()=>U("astro:page-load"),pe=()=>{let e=document.createElement("div");e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),e.className="astro-route-announcer",document.body.append(e),setTimeout((()=>{let t=document.title||document.querySelector("h1")?.textContent||location.pathname;e.textContent=t}),60)},H="data-astro-transition-persist",M="data-astro-transition",P="data-astro-transition-fallback";let O,b=0;async function we(e,t){try{const n=await fetch(e,t),o=(n.headers.get("content-type")??"").split(";",1)[0].trim();return"text/html"!==o&&"application/xhtml+xml"!==o?null:{html:await n.text(),redirected:n.redirected?n.url:void 0,mediaType:o}}catch{return null}}function V(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function ge(){let e=Promise.resolve();for(const t of Array.from(document.scripts)){if(""===t.dataset.astroExec)continue;const n=t.getAttribute("type");if(n&&"module"!==n&&"text/javascript"!==n)continue;const o=document.createElement("script");o.innerHTML=t.innerHTML;for(const n of t.attributes){if("src"===n.name){const t=new Promise((e=>{o.onload=o.onerror=e}));e=e.then((()=>t))}o.setAttribute(n.name,n.value)}o.dataset.astroExec="",t.replaceWith(o)}return e}history.state?(b=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):I()&&(T({index:b,scrollX:scrollX,scrollY:scrollY},""),history.scrollRestoration="manual");const W=(e,t,n,o,r)=>{const i=q(t,e),a=document.title;document.title=o;let s=!1;if(e.href!==location.href&&!r)if("replace"===n.history){const t=history.state;T({...n.state,index:t.index,scrollX:t.scrollX,scrollY:t.scrollY},"",e.href)}else he({...n.state,index:++b,scrollX:0,scrollY:0},"",e.href);if(document.title=a,A=e,i||(scrollTo({left:0,top:0,behavior:"instant"}),s=!0),r)scrollTo(r.scrollX,r.scrollY);else{if(e.hash){history.scrollRestoration="auto";const t=history.state;location.href=e.href,history.state||(T(t,""),i&&window.dispatchEvent(new PopStateEvent("popstate")))}else s||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function ye(e){const t=[];for(const n of e.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${H}="${n.getAttribute(H)}"], link[rel=stylesheet][href="${n.getAttribute("href")}"]`)){const e=document.createElement("link");e.setAttribute("rel","preload"),e.setAttribute("as","style"),e.setAttribute("href",n.getAttribute("href")),t.push(new Promise((t=>{["load","error"].forEach((n=>e.addEventListener(n,t))),document.head.append(e)})))}return t}async function C(e,t,n,o,r){async function i(e){const t=document.getAnimations();document.documentElement.setAttribute(P,e);const n=document.getAnimations().filter((e=>!t.includes(e)&&!function(e){const t=e.effect;return!!(t&&t instanceof KeyframeEffect&&t.target)&&"infinite"===window.getComputedStyle(t.target,t.pseudoElement).animationIterationCount}(e)));return Promise.allSettled(n.map((e=>e.finished)))}if("animate"===r&&!n.transitionSkipped&&!e.signal.aborted)try{await i("old")}catch{}const a=document.title,s=me(e,n.viewTransition);W(s.to,s.from,t,a,o),U(ce),"animate"===r&&(n.transitionSkipped||s.signal.aborted?n.viewTransitionFinished():i("new").finally((()=>n.viewTransitionFinished())))}function be(){return d?.controller.abort(),d={controller:new AbortController}}async function j(e,t,n,o,r){const i=be();if(!I()||location.origin!==n.origin)return i===d&&(d=void 0),void(location.href=n.href);const a=r?"traverse":"replace"===o.history?"replace":"push";if("traverse"!==a&&x({scrollX:scrollX,scrollY:scrollY}),q(t,n)&&("back"!==e&&n.hash||"back"===e&&t.hash))return W(n,t,o,document.title,r),void(i===d&&(d=void 0));const s=await de(t,n,e,a,o.sourceElement,o.info,i.controller.signal,o.formData,(async function(e){const t=e.to.href,n={signal:e.signal};if(e.formData){n.method="POST";const t=e.sourceElement instanceof HTMLFormElement?e.sourceElement:e.sourceElement instanceof HTMLElement&&"form"in e.sourceElement?e.sourceElement.form:e.sourceElement?.closest("form");n.body="application/x-www-form-urlencoded"===t?.attributes.getNamedItem("enctype")?.value?new URLSearchParams(e.formData):e.formData}const o=await we(t,n);if(null===o)return void e.preventDefault();if(o.redirected){const t=new URL(o.redirected);if(t.origin!==e.to.origin)return void e.preventDefault();e.to=t}if(O??=new DOMParser,e.newDocument=O.parseFromString(o.html,o.mediaType),e.newDocument.querySelectorAll("noscript").forEach((e=>e.remove())),!e.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!e.formData)return void e.preventDefault();const r=ye(e.newDocument);r.length&&!e.signal.aborted&&await Promise.all(r)}));if(s.defaultPrevented||s.signal.aborted)return i===d&&(d=void 0),void(s.signal.aborted||(location.href=n.href));const c=await async function(){if(w&&w.viewTransition){try{w.viewTransition.skipTransition()}catch{}try{await w.viewTransition.updateCallbackDone}catch{}}return w={transitionSkipped:!1}}();if(s.signal.aborted)i===d&&(d=void 0);else{if(document.documentElement.setAttribute(M,s.direction),D)c.viewTransition=document.startViewTransition((async()=>await C(s,o,c,r)));else{const e=(async()=>{await Promise.resolve(),await C(s,o,c,r,V())})();c.viewTransition={updateCallbackDone:e,ready:e,finished:new Promise((e=>c.viewTransitionFinished=e)),skipTransition:()=>{c.transitionSkipped=!0,document.documentElement.removeAttribute(P)}}}c.viewTransition.updateCallbackDone.finally((async()=>{await ge(),B(),pe()})),c.viewTransition.finished.finally((()=>{c.viewTransition=void 0,c===w&&(w=void 0),i===d&&(d=void 0),document.documentElement.removeAttribute(M),document.documentElement.removeAttribute(P)}));try{await c.viewTransition.updateCallbackDone}catch(e){const t=e;console.log("[astro]",t.name,t.message,t.stack)}}}async function F(e,t){await j("forward",A,new URL(e,location.href),t??{})}function ve(e){if(!I()&&e.state)return void location.reload();if(null===e.state)return;const t=history.state,n=t.index,o=n>b?"forward":"back";b=n,j(o,A,new URL(location.href),{},t)}const X=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&x({scrollX:scrollX,scrollY:scrollY})};if(D||"none"!==V())if(A=new URL(location.href),addEventListener("popstate",ve),addEventListener("load",B),"onscrollend"in window)addEventListener("scrollend",X);else{let e,t,n,o;const r=()=>o!==history.state?.index?(clearInterval(e),void(e=void 0)):t===scrollY&&n===scrollX?(clearInterval(e),e=void 0,void X()):(t=scrollY,void(n=scrollX));addEventListener("scroll",(()=>{void 0===e&&(o=history.state.index,t=scrollY,n=scrollX,e=window.setInterval(r,50))}),{passive:!0})}for(const e of document.scripts)e.dataset.astroExec="";const K=new Set,E=new WeakSet;let k,G,Y=!1;function Te(e){Y||(Y=!0,k??=e?.prefetchAll,G??=e?.defaultStrategy??"hover",Ee(),Ae(),Se(),Re())}function Ee(){for(const e of["touchstart","mousedown"])document.body.addEventListener(e,(e=>{v(e.target,"tap")&&S(e.target.href,{ignoreSlowConnection:!0})}),{passive:!0})}function Ae(){let e;function t(t){const n=t.target.href;e&&clearTimeout(e),e=setTimeout((()=>{S(n)}),80)}function n(){e&&(clearTimeout(e),e=0)}document.body.addEventListener("focusin",(e=>{v(e.target,"hover")&&t(e)}),{passive:!0}),document.body.addEventListener("focusout",n,{passive:!0}),N((()=>{for(const e of document.getElementsByTagName("a"))E.has(e)||v(e,"hover")&&(E.add(e),e.addEventListener("mouseenter",t,{passive:!0}),e.addEventListener("mouseleave",n,{passive:!0}))}))}function Se(){let e;N((()=>{for(const t of document.getElementsByTagName("a"))E.has(t)||v(t,"viewport")&&(E.add(t),e??=Le(),e.observe(t))}))}function Le(){const e=new WeakMap;return new IntersectionObserver(((t,n)=>{for(const o of t){const t=o.target,r=e.get(t);o.isIntersecting?(r&&clearTimeout(r),e.set(t,setTimeout((()=>{n.unobserve(t),e.delete(t),S(t.href)}),300))):r&&(clearTimeout(r),e.delete(t))}}))}function Re(){N((()=>{for(const e of document.getElementsByTagName("a"))v(e,"load")&&S(e.href)}))}function S(e,t){if(Pe(e=e.replace(/#.*/,""),t?.ignoreSlowConnection??!1))if(K.add(e),HTMLScriptElement.supports?.("speculationrules"))ke(e);else if(document.createElement("link").relList?.supports?.("prefetch")&&"fetch"!==t?.with){const t=document.createElement("link");t.rel="prefetch",t.setAttribute("href",e),document.head.append(t)}else fetch(e,{priority:"low"})}function Pe(e,t){if(!navigator.onLine||!t&&J())return!1;try{const t=new URL(e,location.href);return location.origin===t.origin&&(location.pathname!==t.pathname||location.search!==t.search)&&!K.has(e)}catch{}return!1}function v(e,t){if("A"!==e?.tagName)return!1;const n=e.dataset.astroPrefetch;return"false"!==n&&(!("tap"!==t||null==n&&!k||!J())||(null==n&&k||""===n?t===G:n===t))}function J(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function N(e){e();let t=!1;document.addEventListener("astro:page-load",(()=>{t?e():t=!0}))}function ke(e){const t=document.createElement("script");t.type="speculationrules",t.textContent=JSON.stringify({prerender:[{source:"list",urls:[e]}],prefetch:[{source:"list",urls:[e]}]}),document.head.append(t)}function xe(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function _(e){return void 0!==e.dataset.astroReload}(D||"none"!==xe())&&(document.addEventListener("click",(e=>{let t=e.target;if(e.composed&&(t=e.composedPath()[0]),t instanceof Element&&(t=t.closest("a, area")),!(t instanceof HTMLAnchorElement||t instanceof SVGAElement||t instanceof HTMLAreaElement))return;const n=t instanceof HTMLElement?t.target:t.target.baseVal,o=t instanceof HTMLElement?t.href:t.href.baseVal,r=new URL(o,location.href).origin;_(t)||t.hasAttribute("download")||!t.href||n&&"_self"!==n||r!==location.origin||0!==e.button||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.defaultPrevented||(e.preventDefault(),F(o,{history:"replace"===t.dataset.astroHistory?"replace":"auto",sourceElement:t}))})),document.addEventListener("submit",(e=>{let t=e.target;if("FORM"!==t.tagName||e.defaultPrevented||_(t))return;const n=t,o=e.submitter,r=new FormData(n,o),i="string"==typeof n.action?n.action:n.getAttribute("action"),a="string"==typeof n.method?n.method:n.getAttribute("method");let s=o?.getAttribute("formaction")??i??location.pathname;const c=o?.getAttribute("formmethod")??a??"get";if("dialog"===c||location.origin!==new URL(s,location.href).origin)return;const l={sourceElement:o??n};if("get"===c){const e=new URLSearchParams(r),t=new URL(s);t.search=e.toString(),s=t.toString()}else l.formData=r;e.preventDefault(),F(s,l)})),Te({prefetchAll:!0})); \ No newline at end of file diff --git a/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.B3oF6IaN.js.map b/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.B3oF6IaN.js.map new file mode 100644 index 00000000..2ca9daed --- /dev/null +++ b/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.B3oF6IaN.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ViewTransitions.astro_astro_type_script_index_0_lang.B3oF6IaN.js","sources":["../../../../../../node_modules/astro/dist/transitions/swap-functions.js","../../../../../../node_modules/astro/dist/transitions/events.js","../../../../../../node_modules/astro/dist/transitions/router.js"],"sourcesContent":["const PERSIST_ATTR = \"data-astro-transition-persist\";\nfunction deselectScripts(doc) {\n for (const s1 of document.scripts) {\n for (const s2 of doc.scripts) {\n if (\n // Check if the script should be rerun regardless of it being the same\n !s2.hasAttribute(\"data-astro-rerun\") && // Inline\n (!s1.src && s1.textContent === s2.textContent || // External\n s1.src && s1.type === s2.type && s1.src === s2.src)\n ) {\n s2.dataset.astroExec = \"\";\n break;\n }\n }\n }\n}\nfunction swapRootAttributes(doc) {\n const html = document.documentElement;\n const astroAttributes = [...html.attributes].filter(\n ({ name }) => (html.removeAttribute(name), name.startsWith(\"data-astro-\"))\n );\n [...doc.documentElement.attributes, ...astroAttributes].forEach(\n ({ name, value }) => html.setAttribute(name, value)\n );\n}\nfunction swapHeadElements(doc) {\n for (const el of Array.from(document.head.children)) {\n const newEl = persistedHeadElement(el, doc);\n if (newEl) {\n newEl.remove();\n } else {\n el.remove();\n }\n }\n document.head.append(...doc.head.children);\n}\nfunction swapBodyElement(newElement, oldElement) {\n oldElement.replaceWith(newElement);\n for (const el of oldElement.querySelectorAll(`[${PERSIST_ATTR}]`)) {\n const id = el.getAttribute(PERSIST_ATTR);\n const newEl = newElement.querySelector(`[${PERSIST_ATTR}=\"${id}\"]`);\n if (newEl) {\n newEl.replaceWith(el);\n if (newEl.localName === \"astro-island\" && shouldCopyProps(el)) {\n el.setAttribute(\"ssr\", \"\");\n el.setAttribute(\"props\", newEl.getAttribute(\"props\"));\n }\n }\n }\n}\nconst saveFocus = () => {\n const activeElement = document.activeElement;\n if (activeElement?.closest(`[${PERSIST_ATTR}]`)) {\n if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {\n const start = activeElement.selectionStart;\n const end = activeElement.selectionEnd;\n return () => restoreFocus({ activeElement, start, end });\n }\n return () => restoreFocus({ activeElement });\n } else {\n return () => restoreFocus({ activeElement: null });\n }\n};\nconst restoreFocus = ({ activeElement, start, end }) => {\n if (activeElement) {\n activeElement.focus();\n if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {\n if (typeof start === \"number\") activeElement.selectionStart = start;\n if (typeof end === \"number\") activeElement.selectionEnd = end;\n }\n }\n};\nconst persistedHeadElement = (el, newDoc) => {\n const id = el.getAttribute(PERSIST_ATTR);\n const newEl = id && newDoc.head.querySelector(`[${PERSIST_ATTR}=\"${id}\"]`);\n if (newEl) {\n return newEl;\n }\n if (el.matches(\"link[rel=stylesheet]\")) {\n const href = el.getAttribute(\"href\");\n return newDoc.head.querySelector(`link[rel=stylesheet][href=\"${href}\"]`);\n }\n return null;\n};\nconst shouldCopyProps = (el) => {\n const persistProps = el.dataset.astroTransitionPersistProps;\n return persistProps == null || persistProps === \"false\";\n};\nconst swapFunctions = {\n deselectScripts,\n swapRootAttributes,\n swapHeadElements,\n swapBodyElement,\n saveFocus\n};\nconst swap = (doc) => {\n deselectScripts(doc);\n swapRootAttributes(doc);\n swapHeadElements(doc);\n const restoreFocusFunction = saveFocus();\n swapBodyElement(doc.body, document.body);\n restoreFocusFunction();\n};\nexport {\n deselectScripts,\n restoreFocus,\n saveFocus,\n swap,\n swapBodyElement,\n swapFunctions,\n swapHeadElements,\n swapRootAttributes\n};\n","import { updateScrollPosition } from \"./router.js\";\nimport { swap } from \"./swap-functions.js\";\nconst TRANSITION_BEFORE_PREPARATION = \"astro:before-preparation\";\nconst TRANSITION_AFTER_PREPARATION = \"astro:after-preparation\";\nconst TRANSITION_BEFORE_SWAP = \"astro:before-swap\";\nconst TRANSITION_AFTER_SWAP = \"astro:after-swap\";\nconst TRANSITION_PAGE_LOAD = \"astro:page-load\";\nconst triggerEvent = (name) => document.dispatchEvent(new Event(name));\nconst onPageLoad = () => triggerEvent(TRANSITION_PAGE_LOAD);\nclass BeforeEvent extends Event {\n from;\n to;\n direction;\n navigationType;\n sourceElement;\n info;\n newDocument;\n signal;\n constructor(type, eventInitDict, from, to, direction, navigationType, sourceElement, info, newDocument, signal) {\n super(type, eventInitDict);\n this.from = from;\n this.to = to;\n this.direction = direction;\n this.navigationType = navigationType;\n this.sourceElement = sourceElement;\n this.info = info;\n this.newDocument = newDocument;\n this.signal = signal;\n Object.defineProperties(this, {\n from: { enumerable: true },\n to: { enumerable: true, writable: true },\n direction: { enumerable: true, writable: true },\n navigationType: { enumerable: true },\n sourceElement: { enumerable: true },\n info: { enumerable: true },\n newDocument: { enumerable: true, writable: true },\n signal: { enumerable: true }\n });\n }\n}\nconst isTransitionBeforePreparationEvent = (value) => value.type === TRANSITION_BEFORE_PREPARATION;\nclass TransitionBeforePreparationEvent extends BeforeEvent {\n formData;\n loader;\n constructor(from, to, direction, navigationType, sourceElement, info, newDocument, signal, formData, loader) {\n super(\n TRANSITION_BEFORE_PREPARATION,\n { cancelable: true },\n from,\n to,\n direction,\n navigationType,\n sourceElement,\n info,\n newDocument,\n signal\n );\n this.formData = formData;\n this.loader = loader.bind(this, this);\n Object.defineProperties(this, {\n formData: { enumerable: true },\n loader: { enumerable: true, writable: true }\n });\n }\n}\nconst isTransitionBeforeSwapEvent = (value) => value.type === TRANSITION_BEFORE_SWAP;\nclass TransitionBeforeSwapEvent extends BeforeEvent {\n direction;\n viewTransition;\n swap;\n constructor(afterPreparation, viewTransition) {\n super(\n TRANSITION_BEFORE_SWAP,\n void 0,\n afterPreparation.from,\n afterPreparation.to,\n afterPreparation.direction,\n afterPreparation.navigationType,\n afterPreparation.sourceElement,\n afterPreparation.info,\n afterPreparation.newDocument,\n afterPreparation.signal\n );\n this.direction = afterPreparation.direction;\n this.viewTransition = viewTransition;\n this.swap = () => swap(this.newDocument);\n Object.defineProperties(this, {\n direction: { enumerable: true },\n viewTransition: { enumerable: true },\n swap: { enumerable: true, writable: true }\n });\n }\n}\nasync function doPreparation(from, to, direction, navigationType, sourceElement, info, signal, formData, defaultLoader) {\n const event = new TransitionBeforePreparationEvent(\n from,\n to,\n direction,\n navigationType,\n sourceElement,\n info,\n window.document,\n signal,\n formData,\n defaultLoader\n );\n if (document.dispatchEvent(event)) {\n await event.loader();\n if (!event.defaultPrevented) {\n triggerEvent(TRANSITION_AFTER_PREPARATION);\n if (event.navigationType !== \"traverse\") {\n updateScrollPosition({ scrollX, scrollY });\n }\n }\n }\n return event;\n}\nfunction doSwap(afterPreparation, viewTransition) {\n const event = new TransitionBeforeSwapEvent(afterPreparation, viewTransition);\n document.dispatchEvent(event);\n event.swap();\n return event;\n}\nexport {\n TRANSITION_AFTER_PREPARATION,\n TRANSITION_AFTER_SWAP,\n TRANSITION_BEFORE_PREPARATION,\n TRANSITION_BEFORE_SWAP,\n TRANSITION_PAGE_LOAD,\n TransitionBeforePreparationEvent,\n TransitionBeforeSwapEvent,\n doPreparation,\n doSwap,\n isTransitionBeforePreparationEvent,\n isTransitionBeforeSwapEvent,\n onPageLoad,\n triggerEvent\n};\n","import { TRANSITION_AFTER_SWAP, doPreparation, doSwap } from \"./events.js\";\nconst inBrowser = import.meta.env.SSR === false;\nconst pushState = inBrowser && history.pushState.bind(history);\nconst replaceState = inBrowser && history.replaceState.bind(history);\nconst updateScrollPosition = (positions) => {\n if (history.state) {\n history.scrollRestoration = \"manual\";\n replaceState({ ...history.state, ...positions }, \"\");\n }\n};\nconst supportsViewTransitions = inBrowser && !!document.startViewTransition;\nconst transitionEnabledOnThisPage = () => inBrowser && !!document.querySelector('[name=\"astro-view-transitions-enabled\"]');\nconst samePage = (thisLocation, otherLocation) => thisLocation.pathname === otherLocation.pathname && thisLocation.search === otherLocation.search;\nlet mostRecentNavigation;\nlet mostRecentTransition;\nlet originalLocation;\nconst triggerEvent = (name) => document.dispatchEvent(new Event(name));\nconst onPageLoad = () => triggerEvent(\"astro:page-load\");\nconst announce = () => {\n let div = document.createElement(\"div\");\n div.setAttribute(\"aria-live\", \"assertive\");\n div.setAttribute(\"aria-atomic\", \"true\");\n div.className = \"astro-route-announcer\";\n document.body.append(div);\n setTimeout(\n () => {\n let title = document.title || document.querySelector(\"h1\")?.textContent || location.pathname;\n div.textContent = title;\n },\n // Much thought went into this magic number; the gist is that screen readers\n // need to see that the element changed and might not do so if it happens\n // too quickly.\n 60\n );\n};\nconst PERSIST_ATTR = \"data-astro-transition-persist\";\nconst DIRECTION_ATTR = \"data-astro-transition\";\nconst OLD_NEW_ATTR = \"data-astro-transition-fallback\";\nconst VITE_ID = \"data-vite-dev-id\";\nlet parser;\nlet currentHistoryIndex = 0;\nif (inBrowser) {\n if (history.state) {\n currentHistoryIndex = history.state.index;\n scrollTo({ left: history.state.scrollX, top: history.state.scrollY });\n } else if (transitionEnabledOnThisPage()) {\n replaceState({ index: currentHistoryIndex, scrollX, scrollY }, \"\");\n history.scrollRestoration = \"manual\";\n }\n}\nasync function fetchHTML(href, init) {\n try {\n const res = await fetch(href, init);\n const contentType = res.headers.get(\"content-type\") ?? \"\";\n const mediaType = contentType.split(\";\", 1)[0].trim();\n if (mediaType !== \"text/html\" && mediaType !== \"application/xhtml+xml\") {\n return null;\n }\n const html = await res.text();\n return {\n html,\n redirected: res.redirected ? res.url : void 0,\n mediaType\n };\n } catch {\n return null;\n }\n}\nfunction getFallback() {\n const el = document.querySelector('[name=\"astro-view-transitions-fallback\"]');\n if (el) {\n return el.getAttribute(\"content\");\n }\n return \"animate\";\n}\nfunction runScripts() {\n let wait = Promise.resolve();\n for (const script of Array.from(document.scripts)) {\n if (script.dataset.astroExec === \"\") continue;\n const type = script.getAttribute(\"type\");\n if (type && type !== \"module\" && type !== \"text/javascript\") continue;\n const newScript = document.createElement(\"script\");\n newScript.innerHTML = script.innerHTML;\n for (const attr of script.attributes) {\n if (attr.name === \"src\") {\n const p = new Promise((r) => {\n newScript.onload = newScript.onerror = r;\n });\n wait = wait.then(() => p);\n }\n newScript.setAttribute(attr.name, attr.value);\n }\n newScript.dataset.astroExec = \"\";\n script.replaceWith(newScript);\n }\n return wait;\n}\nconst moveToLocation = (to, from, options, pageTitleForBrowserHistory, historyState) => {\n const intraPage = samePage(from, to);\n const targetPageTitle = document.title;\n document.title = pageTitleForBrowserHistory;\n let scrolledToTop = false;\n if (to.href !== location.href && !historyState) {\n if (options.history === \"replace\") {\n const current = history.state;\n replaceState(\n {\n ...options.state,\n index: current.index,\n scrollX: current.scrollX,\n scrollY: current.scrollY\n },\n \"\",\n to.href\n );\n } else {\n pushState(\n { ...options.state, index: ++currentHistoryIndex, scrollX: 0, scrollY: 0 },\n \"\",\n to.href\n );\n }\n }\n document.title = targetPageTitle;\n originalLocation = to;\n if (!intraPage) {\n scrollTo({ left: 0, top: 0, behavior: \"instant\" });\n scrolledToTop = true;\n }\n if (historyState) {\n scrollTo(historyState.scrollX, historyState.scrollY);\n } else {\n if (to.hash) {\n history.scrollRestoration = \"auto\";\n const savedState = history.state;\n location.href = to.href;\n if (!history.state) {\n replaceState(savedState, \"\");\n if (intraPage) {\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n }\n }\n } else {\n if (!scrolledToTop) {\n scrollTo({ left: 0, top: 0, behavior: \"instant\" });\n }\n }\n history.scrollRestoration = \"manual\";\n }\n};\nfunction preloadStyleLinks(newDocument) {\n const links = [];\n for (const el of newDocument.querySelectorAll(\"head link[rel=stylesheet]\")) {\n if (!document.querySelector(\n `[${PERSIST_ATTR}=\"${el.getAttribute(\n PERSIST_ATTR\n )}\"], link[rel=stylesheet][href=\"${el.getAttribute(\"href\")}\"]`\n )) {\n const c = document.createElement(\"link\");\n c.setAttribute(\"rel\", \"preload\");\n c.setAttribute(\"as\", \"style\");\n c.setAttribute(\"href\", el.getAttribute(\"href\"));\n links.push(\n new Promise((resolve) => {\n [\"load\", \"error\"].forEach((evName) => c.addEventListener(evName, resolve));\n document.head.append(c);\n })\n );\n }\n }\n return links;\n}\nasync function updateDOM(preparationEvent, options, currentTransition, historyState, fallback) {\n async function animate(phase) {\n function isInfinite(animation) {\n const effect = animation.effect;\n if (!effect || !(effect instanceof KeyframeEffect) || !effect.target) return false;\n const style = window.getComputedStyle(effect.target, effect.pseudoElement);\n return style.animationIterationCount === \"infinite\";\n }\n const currentAnimations = document.getAnimations();\n document.documentElement.setAttribute(OLD_NEW_ATTR, phase);\n const nextAnimations = document.getAnimations();\n const newAnimations = nextAnimations.filter(\n (a) => !currentAnimations.includes(a) && !isInfinite(a)\n );\n return Promise.allSettled(newAnimations.map((a) => a.finished));\n }\n if (fallback === \"animate\" && !currentTransition.transitionSkipped && !preparationEvent.signal.aborted) {\n try {\n await animate(\"old\");\n } catch {\n }\n }\n const pageTitleForBrowserHistory = document.title;\n const swapEvent = doSwap(preparationEvent, currentTransition.viewTransition);\n moveToLocation(swapEvent.to, swapEvent.from, options, pageTitleForBrowserHistory, historyState);\n triggerEvent(TRANSITION_AFTER_SWAP);\n if (fallback === \"animate\") {\n if (!currentTransition.transitionSkipped && !swapEvent.signal.aborted) {\n animate(\"new\").finally(() => currentTransition.viewTransitionFinished());\n } else {\n currentTransition.viewTransitionFinished();\n }\n }\n}\nfunction abortAndRecreateMostRecentNavigation() {\n mostRecentNavigation?.controller.abort();\n return mostRecentNavigation = {\n controller: new AbortController()\n };\n}\nasync function transition(direction, from, to, options, historyState) {\n const currentNavigation = abortAndRecreateMostRecentNavigation();\n if (!transitionEnabledOnThisPage() || location.origin !== to.origin) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n location.href = to.href;\n return;\n }\n const navigationType = historyState ? \"traverse\" : options.history === \"replace\" ? \"replace\" : \"push\";\n if (navigationType !== \"traverse\") {\n updateScrollPosition({ scrollX, scrollY });\n }\n if (samePage(from, to)) {\n if (direction !== \"back\" && to.hash || direction === \"back\" && from.hash) {\n moveToLocation(to, from, options, document.title, historyState);\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n return;\n }\n }\n const prepEvent = await doPreparation(\n from,\n to,\n direction,\n navigationType,\n options.sourceElement,\n options.info,\n currentNavigation.controller.signal,\n options.formData,\n defaultLoader\n );\n if (prepEvent.defaultPrevented || prepEvent.signal.aborted) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n if (!prepEvent.signal.aborted) {\n location.href = to.href;\n }\n return;\n }\n async function defaultLoader(preparationEvent) {\n const href = preparationEvent.to.href;\n const init = { signal: preparationEvent.signal };\n if (preparationEvent.formData) {\n init.method = \"POST\";\n const form = preparationEvent.sourceElement instanceof HTMLFormElement ? preparationEvent.sourceElement : preparationEvent.sourceElement instanceof HTMLElement && \"form\" in preparationEvent.sourceElement ? preparationEvent.sourceElement.form : preparationEvent.sourceElement?.closest(\"form\");\n init.body = form?.attributes.getNamedItem(\"enctype\")?.value === \"application/x-www-form-urlencoded\" ? new URLSearchParams(preparationEvent.formData) : preparationEvent.formData;\n }\n const response = await fetchHTML(href, init);\n if (response === null) {\n preparationEvent.preventDefault();\n return;\n }\n if (response.redirected) {\n const redirectedTo = new URL(response.redirected);\n if (redirectedTo.origin !== preparationEvent.to.origin) {\n preparationEvent.preventDefault();\n return;\n }\n preparationEvent.to = redirectedTo;\n }\n parser ??= new DOMParser();\n preparationEvent.newDocument = parser.parseFromString(response.html, response.mediaType);\n preparationEvent.newDocument.querySelectorAll(\"noscript\").forEach((el) => el.remove());\n if (!preparationEvent.newDocument.querySelector('[name=\"astro-view-transitions-enabled\"]') && !preparationEvent.formData) {\n preparationEvent.preventDefault();\n return;\n }\n const links = preloadStyleLinks(preparationEvent.newDocument);\n links.length && !preparationEvent.signal.aborted && await Promise.all(links);\n if (import.meta.env.DEV && !preparationEvent.signal.aborted)\n await prepareForClientOnlyComponents(\n preparationEvent.newDocument,\n preparationEvent.to,\n preparationEvent.signal\n );\n }\n async function abortAndRecreateMostRecentTransition() {\n if (mostRecentTransition) {\n if (mostRecentTransition.viewTransition) {\n try {\n mostRecentTransition.viewTransition.skipTransition();\n } catch {\n }\n try {\n await mostRecentTransition.viewTransition.updateCallbackDone;\n } catch {\n }\n }\n }\n return mostRecentTransition = { transitionSkipped: false };\n }\n const currentTransition = await abortAndRecreateMostRecentTransition();\n if (prepEvent.signal.aborted) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n return;\n }\n document.documentElement.setAttribute(DIRECTION_ATTR, prepEvent.direction);\n if (supportsViewTransitions) {\n currentTransition.viewTransition = document.startViewTransition(\n async () => await updateDOM(prepEvent, options, currentTransition, historyState)\n );\n } else {\n const updateDone = (async () => {\n await Promise.resolve();\n await updateDOM(prepEvent, options, currentTransition, historyState, getFallback());\n })();\n currentTransition.viewTransition = {\n updateCallbackDone: updateDone,\n // this is about correct\n ready: updateDone,\n // good enough\n // Finished promise could have been done better: finished rejects iff updateDone does.\n // Our simulation always resolves, never rejects.\n finished: new Promise((r) => currentTransition.viewTransitionFinished = r),\n // see end of updateDOM\n skipTransition: () => {\n currentTransition.transitionSkipped = true;\n document.documentElement.removeAttribute(OLD_NEW_ATTR);\n }\n };\n }\n currentTransition.viewTransition.updateCallbackDone.finally(async () => {\n await runScripts();\n onPageLoad();\n announce();\n });\n currentTransition.viewTransition.finished.finally(() => {\n currentTransition.viewTransition = void 0;\n if (currentTransition === mostRecentTransition) mostRecentTransition = void 0;\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n document.documentElement.removeAttribute(DIRECTION_ATTR);\n document.documentElement.removeAttribute(OLD_NEW_ATTR);\n });\n try {\n await currentTransition.viewTransition.updateCallbackDone;\n } catch (e) {\n const err = e;\n console.log(\"[astro]\", err.name, err.message, err.stack);\n }\n}\nlet navigateOnServerWarned = false;\nasync function navigate(href, options) {\n if (inBrowser === false) {\n if (!navigateOnServerWarned) {\n const warning = new Error(\n \"The view transitions client API was called during a server side render. This may be unintentional as the navigate() function is expected to be called in response to user interactions. Please make sure that your usage is correct.\"\n );\n warning.name = \"Warning\";\n console.warn(warning);\n navigateOnServerWarned = true;\n }\n return;\n }\n await transition(\"forward\", originalLocation, new URL(href, location.href), options ?? {});\n}\nfunction onPopState(ev) {\n if (!transitionEnabledOnThisPage() && ev.state) {\n location.reload();\n return;\n }\n if (ev.state === null) {\n return;\n }\n const state = history.state;\n const nextIndex = state.index;\n const direction = nextIndex > currentHistoryIndex ? \"forward\" : \"back\";\n currentHistoryIndex = nextIndex;\n transition(direction, originalLocation, new URL(location.href), {}, state);\n}\nconst onScrollEnd = () => {\n if (history.state && (scrollX !== history.state.scrollX || scrollY !== history.state.scrollY)) {\n updateScrollPosition({ scrollX, scrollY });\n }\n};\nif (inBrowser) {\n if (supportsViewTransitions || getFallback() !== \"none\") {\n originalLocation = new URL(location.href);\n addEventListener(\"popstate\", onPopState);\n addEventListener(\"load\", onPageLoad);\n if (\"onscrollend\" in window) addEventListener(\"scrollend\", onScrollEnd);\n else {\n let intervalId, lastY, lastX, lastIndex;\n const scrollInterval = () => {\n if (lastIndex !== history.state?.index) {\n clearInterval(intervalId);\n intervalId = void 0;\n return;\n }\n if (lastY === scrollY && lastX === scrollX) {\n clearInterval(intervalId);\n intervalId = void 0;\n onScrollEnd();\n return;\n } else {\n lastY = scrollY, lastX = scrollX;\n }\n };\n addEventListener(\n \"scroll\",\n () => {\n if (intervalId !== void 0) return;\n lastIndex = history.state.index, lastY = scrollY, lastX = scrollX;\n intervalId = window.setInterval(scrollInterval, 50);\n },\n { passive: true }\n );\n }\n }\n for (const script of document.scripts) {\n script.dataset.astroExec = \"\";\n }\n}\nasync function prepareForClientOnlyComponents(newDocument, toLocation, signal) {\n if (newDocument.body.querySelector(`astro-island[client='only']`)) {\n const nextPage = document.createElement(\"iframe\");\n nextPage.src = toLocation.href;\n nextPage.style.display = \"none\";\n document.body.append(nextPage);\n nextPage.contentWindow.console = Object.keys(console).reduce((acc, key) => {\n acc[key] = () => {\n };\n return acc;\n }, {});\n await hydrationDone(nextPage);\n const nextHead = nextPage.contentDocument?.head;\n if (nextHead) {\n const viteIds = [...nextHead.querySelectorAll(`style[${VITE_ID}]`)].map(\n (style) => style.getAttribute(VITE_ID)\n );\n viteIds.forEach((id) => {\n const style = nextHead.querySelector(`style[${VITE_ID}=\"${id}\"]`);\n if (style && !newDocument.head.querySelector(`style[${VITE_ID}=\"${id}\"]`)) {\n newDocument.head.appendChild(style.cloneNode(true));\n }\n });\n }\n async function hydrationDone(loadingPage) {\n if (!signal.aborted) {\n await new Promise(\n (r) => loadingPage.contentWindow?.addEventListener(\"load\", r, { once: true })\n );\n }\n return new Promise(async (r) => {\n for (let count = 0; count <= 20; ++count) {\n if (signal.aborted) break;\n if (!loadingPage.contentDocument.body.querySelector(\"astro-island[ssr]\")) break;\n await new Promise((r2) => setTimeout(r2, 50));\n }\n r();\n });\n }\n }\n}\nexport {\n getFallback,\n navigate,\n supportsViewTransitions,\n transitionEnabledOnThisPage,\n updateScrollPosition\n};\n"],"names":["PERSIST_ATTR","deselectScripts","doc","s1","s2","swapRootAttributes","html","astroAttributes","name","value","swapHeadElements","el","newEl","persistedHeadElement","swapBodyElement","newElement","oldElement","id","shouldCopyProps","saveFocus","activeElement","start","end","restoreFocus","newDoc","href","persistProps","swap","restoreFocusFunction","TRANSITION_BEFORE_PREPARATION","TRANSITION_AFTER_PREPARATION","TRANSITION_BEFORE_SWAP","TRANSITION_AFTER_SWAP","triggerEvent","BeforeEvent","type","eventInitDict","from","to","direction","navigationType","sourceElement","info","newDocument","signal","TransitionBeforePreparationEvent","formData","loader","TransitionBeforeSwapEvent","afterPreparation","viewTransition","doPreparation","defaultLoader","event","updateScrollPosition","doSwap","pushState","replaceState","positions","supportsViewTransitions","transitionEnabledOnThisPage","samePage","thisLocation","otherLocation","mostRecentNavigation","mostRecentTransition","originalLocation","onPageLoad","announce","div","title","DIRECTION_ATTR","OLD_NEW_ATTR","parser","currentHistoryIndex","fetchHTML","init","res","mediaType","getFallback","runScripts","wait","script","newScript","attr","p","r","moveToLocation","options","pageTitleForBrowserHistory","historyState","intraPage","targetPageTitle","scrolledToTop","current","savedState","preloadStyleLinks","links","c","resolve","evName","updateDOM","preparationEvent","currentTransition","fallback","animate","phase","isInfinite","animation","effect","currentAnimations","newAnimations","a","swapEvent","abortAndRecreateMostRecentNavigation","transition","currentNavigation","prepEvent","form","response","redirectedTo","abortAndRecreateMostRecentTransition","updateDone","e","err","navigate","onPopState","ev","state","nextIndex","onScrollEnd","intervalId","lastY","lastX","lastIndex","scrollInterval"],"mappings":"AAAA,MAAMA,EAAe,gCACrB,SAASC,EAAgBC,EAAK,CAC5B,UAAWC,KAAM,SAAS,QACxB,UAAWC,KAAMF,EAAI,QACnB,GAEE,CAACE,EAAG,aAAa,kBAAkB,IAClC,CAACD,EAAG,KAAOA,EAAG,cAAgBC,EAAG,aAClCD,EAAG,KAAOA,EAAG,OAASC,EAAG,MAAQD,EAAG,MAAQC,EAAG,KAC/C,CACAA,EAAG,QAAQ,UAAY,GACvB,KACD,CAGP,CACA,SAASC,EAAmBH,EAAK,CAC/B,MAAMI,EAAO,SAAS,gBAChBC,EAAkB,CAAC,GAAGD,EAAK,UAAU,EAAE,OAC3C,CAAC,CAAE,KAAAE,MAAYF,EAAK,gBAAgBE,CAAI,EAAGA,EAAK,WAAW,aAAa,EAC5E,EACE,CAAC,GAAGN,EAAI,gBAAgB,WAAY,GAAGK,CAAe,EAAE,QACtD,CAAC,CAAE,KAAAC,EAAM,MAAAC,CAAO,IAAKH,EAAK,aAAaE,EAAMC,CAAK,CACtD,CACA,CACA,SAASC,EAAiBR,EAAK,CAC7B,UAAWS,KAAM,MAAM,KAAK,SAAS,KAAK,QAAQ,EAAG,CACnD,MAAMC,EAAQC,GAAqBF,EAAIT,CAAG,EACtCU,EACFA,EAAM,OAAM,EAEZD,EAAG,OAAM,CAEZ,CACD,SAAS,KAAK,OAAO,GAAGT,EAAI,KAAK,QAAQ,CAC3C,CACA,SAASY,GAAgBC,EAAYC,EAAY,CAC/CA,EAAW,YAAYD,CAAU,EACjC,UAAWJ,KAAMK,EAAW,iBAAiB,IAAIhB,CAAY,GAAG,EAAG,CACjE,MAAMiB,EAAKN,EAAG,aAAaX,CAAY,EACjCY,EAAQG,EAAW,cAAc,IAAIf,CAAY,KAAKiB,CAAE,IAAI,EAC9DL,IACFA,EAAM,YAAYD,CAAE,EAChBC,EAAM,YAAc,gBAAkBM,GAAgBP,CAAE,IAC1DA,EAAG,aAAa,MAAO,EAAE,EACzBA,EAAG,aAAa,QAASC,EAAM,aAAa,OAAO,CAAC,GAGzD,CACH,CACA,MAAMO,GAAY,IAAM,CACtB,MAAMC,EAAgB,SAAS,cAC/B,GAAIA,GAAe,QAAQ,IAAIpB,CAAY,GAAG,EAAG,CAC/C,GAAIoB,aAAyB,kBAAoBA,aAAyB,oBAAqB,CAC7F,MAAMC,EAAQD,EAAc,eACtBE,EAAMF,EAAc,aAC1B,MAAO,IAAMG,EAAa,CAAE,cAAAH,EAAe,MAAAC,EAAO,IAAAC,CAAK,CAAA,CACxD,CACD,MAAO,IAAMC,EAAa,CAAE,cAAAH,CAAa,CAAE,CAC/C,KACI,OAAO,IAAMG,EAAa,CAAE,cAAe,IAAM,CAAA,CAErD,EACMA,EAAe,CAAC,CAAE,cAAAH,EAAe,MAAAC,EAAO,IAAAC,CAAG,IAAO,CAClDF,IACFA,EAAc,MAAK,GACfA,aAAyB,kBAAoBA,aAAyB,uBACpE,OAAOC,GAAU,WAAUD,EAAc,eAAiBC,GAC1D,OAAOC,GAAQ,WAAUF,EAAc,aAAeE,IAGhE,EACMT,GAAuB,CAACF,EAAIa,IAAW,CAC3C,MAAMP,EAAKN,EAAG,aAAaX,CAAY,EACjCY,EAAQK,GAAMO,EAAO,KAAK,cAAc,IAAIxB,CAAY,KAAKiB,CAAE,IAAI,EACzE,GAAIL,EACF,OAAOA,EAET,GAAID,EAAG,QAAQ,sBAAsB,EAAG,CACtC,MAAMc,EAAOd,EAAG,aAAa,MAAM,EACnC,OAAOa,EAAO,KAAK,cAAc,8BAA8BC,CAAI,IAAI,CACxE,CACD,OAAO,IACT,EACMP,GAAmBP,GAAO,CAC9B,MAAMe,EAAef,EAAG,QAAQ,4BAChC,OAAOe,GAAgB,MAAQA,IAAiB,OAClD,EAQMC,GAAQzB,GAAQ,CACpBD,EAAgBC,CAAG,EACnBG,EAAmBH,CAAG,EACtBQ,EAAiBR,CAAG,EACpB,MAAM0B,EAAuBT,KAC7BL,GAAgBZ,EAAI,KAAM,SAAS,IAAI,EACvC0B,GACF,ECpGMC,GAAgC,2BAChCC,GAA+B,0BAC/BC,GAAyB,oBACzBC,GAAwB,mBAExBC,GAAgBzB,GAAS,SAAS,cAAc,IAAI,MAAMA,CAAI,CAAC,EAErE,MAAM0B,UAAoB,KAAM,CAC9B,KACA,GACA,UACA,eACA,cACA,KACA,YACA,OACA,YAAYC,EAAMC,EAAeC,EAAMC,EAAIC,EAAWC,EAAgBC,EAAeC,EAAMC,EAAaC,EAAQ,CAC9G,MAAMT,EAAMC,CAAa,EACzB,KAAK,KAAOC,EACZ,KAAK,GAAKC,EACV,KAAK,UAAYC,EACjB,KAAK,eAAiBC,EACtB,KAAK,cAAgBC,EACrB,KAAK,KAAOC,EACZ,KAAK,YAAcC,EACnB,KAAK,OAASC,EACd,OAAO,iBAAiB,KAAM,CAC5B,KAAM,CAAE,WAAY,EAAM,EAC1B,GAAI,CAAE,WAAY,GAAM,SAAU,EAAM,EACxC,UAAW,CAAE,WAAY,GAAM,SAAU,EAAM,EAC/C,eAAgB,CAAE,WAAY,EAAM,EACpC,cAAe,CAAE,WAAY,EAAM,EACnC,KAAM,CAAE,WAAY,EAAM,EAC1B,YAAa,CAAE,WAAY,GAAM,SAAU,EAAM,EACjD,OAAQ,CAAE,WAAY,EAAM,CAClC,CAAK,CACF,CACH,CAEA,MAAMC,WAAyCX,CAAY,CACzD,SACA,OACA,YAAYG,EAAMC,EAAIC,EAAWC,EAAgBC,EAAeC,EAAMC,EAAaC,EAAQE,EAAUC,EAAQ,CAC3G,MACElB,GACA,CAAE,WAAY,EAAM,EACpBQ,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CACN,EACI,KAAK,SAAWE,EAChB,KAAK,OAASC,EAAO,KAAK,KAAM,IAAI,EACpC,OAAO,iBAAiB,KAAM,CAC5B,SAAU,CAAE,WAAY,EAAM,EAC9B,OAAQ,CAAE,WAAY,GAAM,SAAU,EAAM,CAClD,CAAK,CACF,CACH,CAEA,MAAMC,WAAkCd,CAAY,CAClD,UACA,eACA,KACA,YAAYe,EAAkBC,EAAgB,CAC5C,MACEnB,GACA,OACAkB,EAAiB,KACjBA,EAAiB,GACjBA,EAAiB,UACjBA,EAAiB,eACjBA,EAAiB,cACjBA,EAAiB,KACjBA,EAAiB,YACjBA,EAAiB,MACvB,EACI,KAAK,UAAYA,EAAiB,UAClC,KAAK,eAAiBC,EACtB,KAAK,KAAO,IAAMvB,GAAK,KAAK,WAAW,EACvC,OAAO,iBAAiB,KAAM,CAC5B,UAAW,CAAE,WAAY,EAAM,EAC/B,eAAgB,CAAE,WAAY,EAAM,EACpC,KAAM,CAAE,WAAY,GAAM,SAAU,EAAM,CAChD,CAAK,CACF,CACH,CACA,eAAewB,GAAcd,EAAMC,EAAIC,EAAWC,EAAgBC,EAAeC,EAAME,EAAQE,EAAUM,EAAe,CACtH,MAAMC,EAAQ,IAAIR,GAChBR,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,OAAO,SACPE,EACAE,EACAM,CACJ,EACE,OAAI,SAAS,cAAcC,CAAK,IAC9B,MAAMA,EAAM,SACPA,EAAM,mBACTpB,GAAaH,EAA4B,EACrCuB,EAAM,iBAAmB,YAC3BC,EAAqB,CAAE,QAAS,OAAO,CAAE,IAIxCD,CACT,CACA,SAASE,GAAON,EAAkBC,EAAgB,CAChD,MAAMG,EAAQ,IAAIL,GAA0BC,EAAkBC,CAAc,EAC5E,gBAAS,cAAcG,CAAK,EAC5BA,EAAM,KAAI,EACHA,CACT,CCxHA,MAAMG,GAAyB,QAAQ,UAAU,KAAK,OAAO,EACvDC,EAA4B,QAAQ,aAAa,KAAK,OAAO,EAC7DH,EAAwBI,GAAc,CACtC,QAAQ,QACV,QAAQ,kBAAoB,SAC5BD,EAAa,CAAE,GAAG,QAAQ,MAAO,GAAGC,CAAA,EAAa,EAAE,EAEvD,EACMC,EAAuC,CAAC,CAAC,SAAS,oBAClDC,EAA8B,IAAmB,CAAC,CAAC,SAAS,cAAc,yCAAyC,EACnHC,EAAW,CAACC,EAAcC,IAAkBD,EAAa,WAAaC,EAAc,UAAYD,EAAa,SAAWC,EAAc,OAC5I,IAAIC,EACAC,EACAC,EACJ,MAAMjC,EAAgBzB,GAAS,SAAS,cAAc,IAAI,MAAMA,CAAI,CAAC,EAC/D2D,EAAa,IAAMlC,EAAa,iBAAiB,EACjDmC,GAAW,IAAM,CACjB,IAAAC,EAAM,SAAS,cAAc,KAAK,EAClCA,EAAA,aAAa,YAAa,WAAW,EACrCA,EAAA,aAAa,cAAe,MAAM,EACtCA,EAAI,UAAY,wBACP,SAAA,KAAK,OAAOA,CAAG,EACxB,WACE,IAAM,CACA,IAAAC,EAAQ,SAAS,OAAS,SAAS,cAAc,IAAI,GAAG,aAAe,SAAS,SACpFD,EAAI,YAAcC,CACpB,EAIA,EAAA,CAEJ,EACMtE,EAAe,gCACfuE,EAAiB,wBACjBC,EAAe,iCAErB,IAAIC,EACAC,EAAsB,EAEpB,QAAQ,OACVA,EAAsB,QAAQ,MAAM,MAC3B,SAAA,CAAE,KAAM,QAAQ,MAAM,QAAS,IAAK,QAAQ,MAAM,OAAA,CAAS,GAC3Dd,MACTH,EAAa,CAAE,MAAOiB,EAAqB,QAAS,OAAA,EAAW,EAAE,EACjE,QAAQ,kBAAoB,UAGhC,eAAeC,GAAUlD,EAAMmD,EAAM,CAC/B,GAAA,CACF,MAAMC,EAAM,MAAM,MAAMpD,EAAMmD,CAAI,EAE5BE,GADcD,EAAI,QAAQ,IAAI,cAAc,GAAK,IACzB,MAAM,IAAK,CAAC,EAAE,CAAC,EAAE,OAC3C,OAAAC,IAAc,aAAeA,IAAc,wBACtC,KAGF,CACL,KAFW,MAAMD,EAAI,OAGrB,WAAYA,EAAI,WAAaA,EAAI,IAAM,OACvC,UAAAC,CAAA,CACF,MACM,CACC,OAAA,IACT,CACF,CACA,SAASC,GAAc,CACf,MAAApE,EAAK,SAAS,cAAc,0CAA0C,EAC5E,OAAIA,EACKA,EAAG,aAAa,SAAS,EAE3B,SACT,CACA,SAASqE,IAAa,CAChB,IAAAC,EAAO,QAAQ,UACnB,UAAWC,KAAU,MAAM,KAAK,SAAS,OAAO,EAAG,CAC7C,GAAAA,EAAO,QAAQ,YAAc,GAAI,SAC/B,MAAA/C,EAAO+C,EAAO,aAAa,MAAM,EACvC,GAAI/C,GAAQA,IAAS,UAAYA,IAAS,kBAAmB,SACvD,MAAAgD,EAAY,SAAS,cAAc,QAAQ,EACjDA,EAAU,UAAYD,EAAO,UAClB,UAAAE,KAAQF,EAAO,WAAY,CAChC,GAAAE,EAAK,OAAS,MAAO,CACvB,MAAMC,EAAI,IAAI,QAASC,GAAM,CACjBH,EAAA,OAASA,EAAU,QAAUG,CAAA,CACxC,EACML,EAAAA,EAAK,KAAK,IAAMI,CAAC,CAC1B,CACAF,EAAU,aAAaC,EAAK,KAAMA,EAAK,KAAK,CAC9C,CACAD,EAAU,QAAQ,UAAY,GAC9BD,EAAO,YAAYC,CAAS,CAC9B,CACO,OAAAF,CACT,CACA,MAAMM,EAAiB,CAACjD,EAAID,EAAMmD,EAASC,EAA4BC,IAAiB,CAChF,MAAAC,EAAY9B,EAASxB,EAAMC,CAAE,EAC7BsD,EAAkB,SAAS,MACjC,SAAS,MAAQH,EACjB,IAAII,EAAgB,GACpB,GAAIvD,EAAG,OAAS,SAAS,MAAQ,CAACoD,EAC5B,GAAAF,EAAQ,UAAY,UAAW,CACjC,MAAMM,EAAU,QAAQ,MACxBrC,EACE,CACE,GAAG+B,EAAQ,MACX,MAAOM,EAAQ,MACf,QAASA,EAAQ,QACjB,QAASA,EAAQ,OACnB,EACA,GACAxD,EAAG,IAAA,CACL,MAEAkB,GACE,CAAE,GAAGgC,EAAQ,MAAO,MAAO,EAAEd,EAAqB,QAAS,EAAG,QAAS,CAAE,EACzE,GACApC,EAAG,IAAA,EAUT,GANA,SAAS,MAAQsD,EACE1B,EAAA5B,EACdqD,IACH,SAAS,CAAE,KAAM,EAAG,IAAK,EAAG,SAAU,UAAW,EACjCE,EAAA,IAEdH,EACO,SAAAA,EAAa,QAASA,EAAa,OAAO,MAC9C,CACL,GAAIpD,EAAG,KAAM,CACX,QAAQ,kBAAoB,OAC5B,MAAMyD,EAAa,QAAQ,MAC3B,SAAS,KAAOzD,EAAG,KACd,QAAQ,QACXmB,EAAasC,EAAY,EAAE,EACvBJ,GACF,OAAO,cAAc,IAAI,cAAc,UAAU,CAAC,EAEtD,MAEKE,GACH,SAAS,CAAE,KAAM,EAAG,IAAK,EAAG,SAAU,UAAW,EAGrD,QAAQ,kBAAoB,QAC9B,CACF,EACA,SAASG,GAAkBrD,EAAa,CACtC,MAAMsD,EAAQ,CAAA,EACd,UAAWtF,KAAMgC,EAAY,iBAAiB,2BAA2B,EACvE,GAAI,CAAC,SAAS,cACZ,IAAI3C,CAAY,KAAKW,EAAG,aACtBX,CACD,CAAA,kCAAkCW,EAAG,aAAa,MAAM,CAAC,IAAA,EACzD,CACK,MAAAuF,EAAI,SAAS,cAAc,MAAM,EACrCA,EAAA,aAAa,MAAO,SAAS,EAC7BA,EAAA,aAAa,KAAM,OAAO,EAC5BA,EAAE,aAAa,OAAQvF,EAAG,aAAa,MAAM,CAAC,EACxCsF,EAAA,KACJ,IAAI,QAASE,GAAY,CACtB,CAAA,OAAQ,OAAO,EAAE,QAASC,GAAWF,EAAE,iBAAiBE,EAAQD,CAAO,CAAC,EAChE,SAAA,KAAK,OAAOD,CAAC,CAAA,CACvB,CAAA,CAEL,CAEK,OAAAD,CACT,CACA,eAAeI,EAAUC,EAAkBd,EAASe,EAAmBb,EAAcc,EAAU,CAC7F,eAAeC,EAAQC,EAAO,CAC5B,SAASC,EAAWC,EAAW,CAC7B,MAAMC,EAASD,EAAU,OACrB,MAAA,CAACC,GAAU,EAAEA,aAAkB,iBAAmB,CAACA,EAAO,OAAe,GAC/D,OAAO,iBAAiBA,EAAO,OAAQA,EAAO,aAAa,EAC5D,0BAA4B,UAC3C,CACM,MAAAC,EAAoB,SAAS,gBAC1B,SAAA,gBAAgB,aAAatC,EAAckC,CAAK,EAEzD,MAAMK,EADiB,SAAS,gBACK,OAClCC,GAAM,CAACF,EAAkB,SAASE,CAAC,GAAK,CAACL,EAAWK,CAAC,CAAA,EAEjD,OAAA,QAAQ,WAAWD,EAAc,IAAKC,GAAMA,EAAE,QAAQ,CAAC,CAChE,CACI,GAAAR,IAAa,WAAa,CAACD,EAAkB,mBAAqB,CAACD,EAAiB,OAAO,QACzF,GAAA,CACF,MAAMG,EAAQ,KAAK,CAAA,MACb,CACR,CAEF,MAAMhB,EAA6B,SAAS,MACtCwB,EAAY1D,GAAO+C,EAAkBC,EAAkB,cAAc,EAC3EhB,EAAe0B,EAAU,GAAIA,EAAU,KAAMzB,EAASC,EAA4BC,CAAY,EAC9FzD,EAAaD,EAAqB,EAC9BwE,IAAa,YACX,CAACD,EAAkB,mBAAqB,CAACU,EAAU,OAAO,QAC5DR,EAAQ,KAAK,EAAE,QAAQ,IAAMF,EAAkB,wBAAwB,EAEvEA,EAAkB,uBAAuB,EAG/C,CACA,SAASW,IAAuC,CAC9C,OAAAlD,GAAsB,WAAW,QAC1BA,EAAuB,CAC5B,WAAY,IAAI,eAAgB,CAEpC,CACA,eAAemD,EAAW5E,EAAWF,EAAMC,EAAIkD,EAASE,EAAc,CACpE,MAAM0B,EAAoBF,KAC1B,GAAI,CAACtD,EAA4B,GAAK,SAAS,SAAWtB,EAAG,OAAQ,CAC/D8E,IAAsBpD,IAA6CA,EAAA,QACvE,SAAS,KAAO1B,EAAG,KACnB,MACF,CACA,MAAME,EAAiBkD,EAAe,WAAaF,EAAQ,UAAY,UAAY,UAAY,OAI3F,GAHAhD,IAAmB,YACAc,EAAA,CAAE,QAAS,OAAA,CAAS,EAEvCO,EAASxB,EAAMC,CAAE,IACfC,IAAc,QAAUD,EAAG,MAAQC,IAAc,QAAUF,EAAK,MAAM,CACxEkD,EAAejD,EAAID,EAAMmD,EAAS,SAAS,MAAOE,CAAY,EAC1D0B,IAAsBpD,IAA6CA,EAAA,QACvE,MACF,CAEF,MAAMqD,EAAY,MAAMlE,GACtBd,EACAC,EACAC,EACAC,EACAgD,EAAQ,cACRA,EAAQ,KACR4B,EAAkB,WAAW,OAC7B5B,EAAQ,SACRpC,CAAA,EAEF,GAAIiE,EAAU,kBAAoBA,EAAU,OAAO,QAAS,CACtDD,IAAsBpD,IAA6CA,EAAA,QAClEqD,EAAU,OAAO,UACpB,SAAS,KAAO/E,EAAG,MAErB,MACF,CACA,eAAec,EAAckD,EAAkB,CACvC,MAAA7E,EAAO6E,EAAiB,GAAG,KAC3B1B,EAAO,CAAE,OAAQ0B,EAAiB,MAAO,EAC/C,GAAIA,EAAiB,SAAU,CAC7B1B,EAAK,OAAS,OACd,MAAM0C,EAAOhB,EAAiB,yBAAyB,gBAAkBA,EAAiB,cAAgBA,EAAiB,yBAAyB,aAAe,SAAUA,EAAiB,cAAgBA,EAAiB,cAAc,KAAOA,EAAiB,eAAe,QAAQ,MAAM,EAClS1B,EAAK,KAAO0C,GAAM,WAAW,aAAa,SAAS,GAAG,QAAU,oCAAsC,IAAI,gBAAgBhB,EAAiB,QAAQ,EAAIA,EAAiB,QAC1K,CACA,MAAMiB,EAAW,MAAM5C,GAAUlD,EAAMmD,CAAI,EAC3C,GAAI2C,IAAa,KAAM,CACrBjB,EAAiB,eAAe,EAChC,MACF,CACA,GAAIiB,EAAS,WAAY,CACvB,MAAMC,EAAe,IAAI,IAAID,EAAS,UAAU,EAChD,GAAIC,EAAa,SAAWlB,EAAiB,GAAG,OAAQ,CACtDA,EAAiB,eAAe,EAChC,MACF,CACAA,EAAiB,GAAKkB,CACxB,CAII,GAHJ/C,IAAW,IAAI,UACf6B,EAAiB,YAAc7B,EAAO,gBAAgB8C,EAAS,KAAMA,EAAS,SAAS,EACtEjB,EAAA,YAAY,iBAAiB,UAAU,EAAE,QAAS3F,GAAOA,EAAG,OAAA,CAAQ,EACjF,CAAC2F,EAAiB,YAAY,cAAc,yCAAyC,GAAK,CAACA,EAAiB,SAAU,CACxHA,EAAiB,eAAe,EAChC,MACF,CACM,MAAAL,EAAQD,GAAkBM,EAAiB,WAAW,EACtDL,EAAA,QAAU,CAACK,EAAiB,OAAO,SAAW,MAAM,QAAQ,IAAIL,CAAK,CAO7E,CACA,eAAewB,GAAuC,CACpD,GAAIxD,GACEA,EAAqB,eAAgB,CACnC,GAAA,CACFA,EAAqB,eAAe,gBAAe,MAC7C,CACR,CACI,GAAA,CACF,MAAMA,EAAqB,eAAe,kBAAA,MACpC,CACR,CACF,CAEK,OAAAA,EAAuB,CAAE,kBAAmB,GACrD,CACM,MAAAsC,EAAoB,MAAMkB,IAC5B,GAAAJ,EAAU,OAAO,QAAS,CACxBD,IAAsBpD,IAA6CA,EAAA,QACvE,MACF,CAEA,GADA,SAAS,gBAAgB,aAAaO,EAAgB8C,EAAU,SAAS,EACrE1D,EACF4C,EAAkB,eAAiB,SAAS,oBAC1C,SAAY,MAAMF,EAAUgB,EAAW7B,EAASe,EAAmBb,CAAY,CAAA,MAE5E,CACL,MAAMgC,GAAc,SAAY,CAC9B,MAAM,QAAQ,UACd,MAAMrB,EAAUgB,EAAW7B,EAASe,EAAmBb,EAAcX,GAAa,CAAA,KAEpFwB,EAAkB,eAAiB,CACjC,mBAAoBmB,EAEpB,MAAOA,EAIP,SAAU,IAAI,QAASpC,GAAMiB,EAAkB,uBAAyBjB,CAAC,EAEzE,eAAgB,IAAM,CACpBiB,EAAkB,kBAAoB,GAC7B,SAAA,gBAAgB,gBAAgB/B,CAAY,CACvD,CAAA,CAEJ,CACkB+B,EAAA,eAAe,mBAAmB,QAAQ,SAAY,CACtE,MAAMvB,GAAW,EACNb,IACFC,IAAA,CACV,EACiBmC,EAAA,eAAe,SAAS,QAAQ,IAAM,CACtDA,EAAkB,eAAiB,OAC/BA,IAAsBtC,IAA6CA,EAAA,QACnEmD,IAAsBpD,IAA6CA,EAAA,QAC9D,SAAA,gBAAgB,gBAAgBO,CAAc,EAC9C,SAAA,gBAAgB,gBAAgBC,CAAY,CAAA,CACtD,EACG,GAAA,CACF,MAAM+B,EAAkB,eAAe,yBAChCoB,EAAG,CACV,MAAMC,EAAMD,EACZ,QAAQ,IAAI,UAAWC,EAAI,KAAMA,EAAI,QAASA,EAAI,KAAK,CACzD,CACF,CAEA,eAAeC,EAASpG,EAAM+D,EAAS,CAY/B,MAAA2B,EAAW,UAAWjD,EAAkB,IAAI,IAAIzC,EAAM,SAAS,IAAI,EAAG+D,GAAW,CAAE,CAAA,CAC3F,CACA,SAASsC,GAAWC,EAAI,CACtB,GAAI,CAACnE,EAAA,GAAiCmE,EAAG,MAAO,CAC9C,SAAS,OAAO,EAChB,MACF,CACI,GAAAA,EAAG,QAAU,KACf,OAEF,MAAMC,EAAQ,QAAQ,MAChBC,EAAYD,EAAM,MAClBzF,EAAY0F,EAAYvD,EAAsB,UAAY,OAC1CA,EAAAuD,EACXd,EAAA5E,EAAW2B,EAAkB,IAAI,IAAI,SAAS,IAAI,EAAG,GAAI8D,CAAK,CAC3E,CACA,MAAME,EAAc,IAAM,CACpB,QAAQ,QAAU,UAAY,QAAQ,MAAM,SAAW,UAAY,QAAQ,MAAM,UAC9D5E,EAAA,CAAE,QAAS,OAAA,CAAS,CAE7C,EACe,CACT,GAAAK,GAA2BoB,EAAY,IAAM,OAI/C,GAHmBb,EAAA,IAAI,IAAI,SAAS,IAAI,EACxC,iBAAiB,WAAY4D,EAAU,EACvC,iBAAiB,OAAQ3D,CAAU,EAC/B,gBAAiB,OAAyB,iBAAA,YAAa+D,CAAW,MACjE,CACC,IAAAC,EAAYC,EAAOC,EAAOC,EAC9B,MAAMC,EAAiB,IAAM,CACvB,GAAAD,IAAc,QAAQ,OAAO,MAAO,CACtC,cAAcH,CAAU,EACXA,EAAA,OACb,MACF,CACI,GAAAC,IAAU,SAAWC,IAAU,QAAS,CAC1C,cAAcF,CAAU,EACXA,EAAA,OACDD,IACZ,MAAA,MAEAE,EAAQ,QAASC,EAAQ,OAC3B,EAEF,iBACE,SACA,IAAM,CACAF,IAAe,SACnBG,EAAY,QAAQ,MAAM,MAAOF,EAAQ,QAASC,EAAQ,QAC7CF,EAAA,OAAO,YAAYI,EAAgB,EAAE,EACpD,EACA,CAAE,QAAS,EAAK,CAAA,CAEpB,CAES,UAAArD,KAAU,SAAS,QAC5BA,EAAO,QAAQ,UAAY,EAE/B","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.CI_30MX9.js.map b/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.CI_30MX9.js.map deleted file mode 100644 index 60c5a87d..00000000 --- a/Target/_astro/ViewTransitions.astro_astro_type_script_index_0_lang.CI_30MX9.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ViewTransitions.astro_astro_type_script_index_0_lang.CI_30MX9.js","sources":["../../../../../../node_modules/astro/dist/transitions/swap-functions.js","../../../../../../node_modules/astro/dist/transitions/events.js","../../../../../../node_modules/astro/dist/transitions/router.js"],"sourcesContent":["const PERSIST_ATTR = \"data-astro-transition-persist\";\nfunction deselectScripts(doc) {\n for (const s1 of document.scripts) {\n for (const s2 of doc.scripts) {\n if (\n // Check if the script should be rerun regardless of it being the same\n !s2.hasAttribute(\"data-astro-rerun\") && // Inline\n (!s1.src && s1.textContent === s2.textContent || // External\n s1.src && s1.type === s2.type && s1.src === s2.src)\n ) {\n s2.dataset.astroExec = \"\";\n break;\n }\n }\n }\n}\nfunction swapRootAttributes(doc) {\n const html = document.documentElement;\n const astroAttributes = [...html.attributes].filter(\n ({ name }) => (html.removeAttribute(name), name.startsWith(\"data-astro-\"))\n );\n [...doc.documentElement.attributes, ...astroAttributes].forEach(\n ({ name, value }) => html.setAttribute(name, value)\n );\n}\nfunction swapHeadElements(doc) {\n for (const el of Array.from(document.head.children)) {\n const newEl = persistedHeadElement(el, doc);\n if (newEl) {\n newEl.remove();\n } else {\n el.remove();\n }\n }\n document.head.append(...doc.head.children);\n}\nfunction swapBodyElement(newElement, oldElement) {\n oldElement.replaceWith(newElement);\n for (const el of oldElement.querySelectorAll(`[${PERSIST_ATTR}]`)) {\n const id = el.getAttribute(PERSIST_ATTR);\n const newEl = newElement.querySelector(`[${PERSIST_ATTR}=\"${id}\"]`);\n if (newEl) {\n newEl.replaceWith(el);\n if (newEl.localName === \"astro-island\" && shouldCopyProps(el)) {\n el.setAttribute(\"ssr\", \"\");\n el.setAttribute(\"props\", newEl.getAttribute(\"props\"));\n }\n }\n }\n}\nconst saveFocus = () => {\n const activeElement = document.activeElement;\n if (activeElement?.closest(`[${PERSIST_ATTR}]`)) {\n if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {\n const start = activeElement.selectionStart;\n const end = activeElement.selectionEnd;\n return () => restoreFocus({ activeElement, start, end });\n }\n return () => restoreFocus({ activeElement });\n } else {\n return () => restoreFocus({ activeElement: null });\n }\n};\nconst restoreFocus = ({ activeElement, start, end }) => {\n if (activeElement) {\n activeElement.focus();\n if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {\n if (typeof start === \"number\") activeElement.selectionStart = start;\n if (typeof end === \"number\") activeElement.selectionEnd = end;\n }\n }\n};\nconst persistedHeadElement = (el, newDoc) => {\n const id = el.getAttribute(PERSIST_ATTR);\n const newEl = id && newDoc.head.querySelector(`[${PERSIST_ATTR}=\"${id}\"]`);\n if (newEl) {\n return newEl;\n }\n if (el.matches(\"link[rel=stylesheet]\")) {\n const href = el.getAttribute(\"href\");\n return newDoc.head.querySelector(`link[rel=stylesheet][href=\"${href}\"]`);\n }\n return null;\n};\nconst shouldCopyProps = (el) => {\n const persistProps = el.dataset.astroTransitionPersistProps;\n return persistProps == null || persistProps === \"false\";\n};\nconst swap = (doc) => {\n deselectScripts(doc);\n swapRootAttributes(doc);\n swapHeadElements(doc);\n const restoreFocusFunction = saveFocus();\n swapBodyElement(doc.body, document.body);\n restoreFocusFunction();\n};\nexport {\n deselectScripts,\n restoreFocus,\n saveFocus,\n swap,\n swapBodyElement,\n swapHeadElements,\n swapRootAttributes\n};\n","import { updateScrollPosition } from \"./router.js\";\nimport { swap } from \"./swap-functions.js\";\nconst TRANSITION_BEFORE_PREPARATION = \"astro:before-preparation\";\nconst TRANSITION_AFTER_PREPARATION = \"astro:after-preparation\";\nconst TRANSITION_BEFORE_SWAP = \"astro:before-swap\";\nconst TRANSITION_AFTER_SWAP = \"astro:after-swap\";\nconst TRANSITION_PAGE_LOAD = \"astro:page-load\";\nconst triggerEvent = (name) => document.dispatchEvent(new Event(name));\nconst onPageLoad = () => triggerEvent(TRANSITION_PAGE_LOAD);\nclass BeforeEvent extends Event {\n from;\n to;\n direction;\n navigationType;\n sourceElement;\n info;\n newDocument;\n signal;\n constructor(type, eventInitDict, from, to, direction, navigationType, sourceElement, info, newDocument, signal) {\n super(type, eventInitDict);\n this.from = from;\n this.to = to;\n this.direction = direction;\n this.navigationType = navigationType;\n this.sourceElement = sourceElement;\n this.info = info;\n this.newDocument = newDocument;\n this.signal = signal;\n Object.defineProperties(this, {\n from: { enumerable: true },\n to: { enumerable: true, writable: true },\n direction: { enumerable: true, writable: true },\n navigationType: { enumerable: true },\n sourceElement: { enumerable: true },\n info: { enumerable: true },\n newDocument: { enumerable: true, writable: true },\n signal: { enumerable: true }\n });\n }\n}\nconst isTransitionBeforePreparationEvent = (value) => value.type === TRANSITION_BEFORE_PREPARATION;\nclass TransitionBeforePreparationEvent extends BeforeEvent {\n formData;\n loader;\n constructor(from, to, direction, navigationType, sourceElement, info, newDocument, signal, formData, loader) {\n super(\n TRANSITION_BEFORE_PREPARATION,\n { cancelable: true },\n from,\n to,\n direction,\n navigationType,\n sourceElement,\n info,\n newDocument,\n signal\n );\n this.formData = formData;\n this.loader = loader.bind(this, this);\n Object.defineProperties(this, {\n formData: { enumerable: true },\n loader: { enumerable: true, writable: true }\n });\n }\n}\nconst isTransitionBeforeSwapEvent = (value) => value.type === TRANSITION_BEFORE_SWAP;\nclass TransitionBeforeSwapEvent extends BeforeEvent {\n direction;\n viewTransition;\n swap;\n constructor(afterPreparation, viewTransition) {\n super(\n TRANSITION_BEFORE_SWAP,\n void 0,\n afterPreparation.from,\n afterPreparation.to,\n afterPreparation.direction,\n afterPreparation.navigationType,\n afterPreparation.sourceElement,\n afterPreparation.info,\n afterPreparation.newDocument,\n afterPreparation.signal\n );\n this.direction = afterPreparation.direction;\n this.viewTransition = viewTransition;\n this.swap = () => swap(this.newDocument);\n Object.defineProperties(this, {\n direction: { enumerable: true },\n viewTransition: { enumerable: true },\n swap: { enumerable: true, writable: true }\n });\n }\n}\nasync function doPreparation(from, to, direction, navigationType, sourceElement, info, signal, formData, defaultLoader) {\n const event = new TransitionBeforePreparationEvent(\n from,\n to,\n direction,\n navigationType,\n sourceElement,\n info,\n window.document,\n signal,\n formData,\n defaultLoader\n );\n if (document.dispatchEvent(event)) {\n await event.loader();\n if (!event.defaultPrevented) {\n triggerEvent(TRANSITION_AFTER_PREPARATION);\n if (event.navigationType !== \"traverse\") {\n updateScrollPosition({ scrollX, scrollY });\n }\n }\n }\n return event;\n}\nfunction doSwap(afterPreparation, viewTransition) {\n const event = new TransitionBeforeSwapEvent(afterPreparation, viewTransition);\n document.dispatchEvent(event);\n event.swap();\n return event;\n}\nexport {\n TRANSITION_AFTER_PREPARATION,\n TRANSITION_AFTER_SWAP,\n TRANSITION_BEFORE_PREPARATION,\n TRANSITION_BEFORE_SWAP,\n TRANSITION_PAGE_LOAD,\n TransitionBeforePreparationEvent,\n TransitionBeforeSwapEvent,\n doPreparation,\n doSwap,\n isTransitionBeforePreparationEvent,\n isTransitionBeforeSwapEvent,\n onPageLoad,\n triggerEvent\n};\n","import { TRANSITION_AFTER_SWAP, doPreparation, doSwap } from \"./events.js\";\nconst inBrowser = import.meta.env.SSR === false;\nconst pushState = inBrowser && history.pushState.bind(history);\nconst replaceState = inBrowser && history.replaceState.bind(history);\nconst updateScrollPosition = (positions) => {\n if (history.state) {\n history.scrollRestoration = \"manual\";\n replaceState({ ...history.state, ...positions }, \"\");\n }\n};\nconst supportsViewTransitions = inBrowser && !!document.startViewTransition;\nconst transitionEnabledOnThisPage = () => inBrowser && !!document.querySelector('[name=\"astro-view-transitions-enabled\"]');\nconst samePage = (thisLocation, otherLocation) => thisLocation.pathname === otherLocation.pathname && thisLocation.search === otherLocation.search;\nlet mostRecentNavigation;\nlet mostRecentTransition;\nlet originalLocation;\nconst triggerEvent = (name) => document.dispatchEvent(new Event(name));\nconst onPageLoad = () => triggerEvent(\"astro:page-load\");\nconst announce = () => {\n let div = document.createElement(\"div\");\n div.setAttribute(\"aria-live\", \"assertive\");\n div.setAttribute(\"aria-atomic\", \"true\");\n div.className = \"astro-route-announcer\";\n document.body.append(div);\n setTimeout(\n () => {\n let title = document.title || document.querySelector(\"h1\")?.textContent || location.pathname;\n div.textContent = title;\n },\n // Much thought went into this magic number; the gist is that screen readers\n // need to see that the element changed and might not do so if it happens\n // too quickly.\n 60\n );\n};\nconst PERSIST_ATTR = \"data-astro-transition-persist\";\nconst DIRECTION_ATTR = \"data-astro-transition\";\nconst OLD_NEW_ATTR = \"data-astro-transition-fallback\";\nconst VITE_ID = \"data-vite-dev-id\";\nlet parser;\nlet currentHistoryIndex = 0;\nif (inBrowser) {\n if (history.state) {\n currentHistoryIndex = history.state.index;\n scrollTo({ left: history.state.scrollX, top: history.state.scrollY });\n } else if (transitionEnabledOnThisPage()) {\n replaceState({ index: currentHistoryIndex, scrollX, scrollY }, \"\");\n history.scrollRestoration = \"manual\";\n }\n}\nasync function fetchHTML(href, init) {\n try {\n const res = await fetch(href, init);\n const contentType = res.headers.get(\"content-type\") ?? \"\";\n const mediaType = contentType.split(\";\", 1)[0].trim();\n if (mediaType !== \"text/html\" && mediaType !== \"application/xhtml+xml\") {\n return null;\n }\n const html = await res.text();\n return {\n html,\n redirected: res.redirected ? res.url : void 0,\n mediaType\n };\n } catch {\n return null;\n }\n}\nfunction getFallback() {\n const el = document.querySelector('[name=\"astro-view-transitions-fallback\"]');\n if (el) {\n return el.getAttribute(\"content\");\n }\n return \"animate\";\n}\nfunction runScripts() {\n let wait = Promise.resolve();\n for (const script of Array.from(document.scripts)) {\n if (script.dataset.astroExec === \"\") continue;\n const type = script.getAttribute(\"type\");\n if (type && type !== \"module\" && type !== \"text/javascript\") continue;\n const newScript = document.createElement(\"script\");\n newScript.innerHTML = script.innerHTML;\n for (const attr of script.attributes) {\n if (attr.name === \"src\") {\n const p = new Promise((r) => {\n newScript.onload = newScript.onerror = r;\n });\n wait = wait.then(() => p);\n }\n newScript.setAttribute(attr.name, attr.value);\n }\n newScript.dataset.astroExec = \"\";\n script.replaceWith(newScript);\n }\n return wait;\n}\nconst moveToLocation = (to, from, options, pageTitleForBrowserHistory, historyState) => {\n const intraPage = samePage(from, to);\n const targetPageTitle = document.title;\n document.title = pageTitleForBrowserHistory;\n let scrolledToTop = false;\n if (to.href !== location.href && !historyState) {\n if (options.history === \"replace\") {\n const current = history.state;\n replaceState(\n {\n ...options.state,\n index: current.index,\n scrollX: current.scrollX,\n scrollY: current.scrollY\n },\n \"\",\n to.href\n );\n } else {\n pushState(\n { ...options.state, index: ++currentHistoryIndex, scrollX: 0, scrollY: 0 },\n \"\",\n to.href\n );\n }\n }\n document.title = targetPageTitle;\n originalLocation = to;\n if (!intraPage) {\n scrollTo({ left: 0, top: 0, behavior: \"instant\" });\n scrolledToTop = true;\n }\n if (historyState) {\n scrollTo(historyState.scrollX, historyState.scrollY);\n } else {\n if (to.hash) {\n history.scrollRestoration = \"auto\";\n const savedState = history.state;\n location.href = to.href;\n if (!history.state) {\n replaceState(savedState, \"\");\n if (intraPage) {\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n }\n }\n } else {\n if (!scrolledToTop) {\n scrollTo({ left: 0, top: 0, behavior: \"instant\" });\n }\n }\n history.scrollRestoration = \"manual\";\n }\n};\nfunction preloadStyleLinks(newDocument) {\n const links = [];\n for (const el of newDocument.querySelectorAll(\"head link[rel=stylesheet]\")) {\n if (!document.querySelector(\n `[${PERSIST_ATTR}=\"${el.getAttribute(\n PERSIST_ATTR\n )}\"], link[rel=stylesheet][href=\"${el.getAttribute(\"href\")}\"]`\n )) {\n const c = document.createElement(\"link\");\n c.setAttribute(\"rel\", \"preload\");\n c.setAttribute(\"as\", \"style\");\n c.setAttribute(\"href\", el.getAttribute(\"href\"));\n links.push(\n new Promise((resolve) => {\n [\"load\", \"error\"].forEach((evName) => c.addEventListener(evName, resolve));\n document.head.append(c);\n })\n );\n }\n }\n return links;\n}\nasync function updateDOM(preparationEvent, options, currentTransition, historyState, fallback) {\n async function animate(phase) {\n function isInfinite(animation) {\n const effect = animation.effect;\n if (!effect || !(effect instanceof KeyframeEffect) || !effect.target) return false;\n const style = window.getComputedStyle(effect.target, effect.pseudoElement);\n return style.animationIterationCount === \"infinite\";\n }\n const currentAnimations = document.getAnimations();\n document.documentElement.setAttribute(OLD_NEW_ATTR, phase);\n const nextAnimations = document.getAnimations();\n const newAnimations = nextAnimations.filter(\n (a) => !currentAnimations.includes(a) && !isInfinite(a)\n );\n return Promise.allSettled(newAnimations.map((a) => a.finished));\n }\n if (fallback === \"animate\" && !currentTransition.transitionSkipped && !preparationEvent.signal.aborted) {\n try {\n await animate(\"old\");\n } catch {\n }\n }\n const pageTitleForBrowserHistory = document.title;\n const swapEvent = doSwap(preparationEvent, currentTransition.viewTransition);\n moveToLocation(swapEvent.to, swapEvent.from, options, pageTitleForBrowserHistory, historyState);\n triggerEvent(TRANSITION_AFTER_SWAP);\n if (fallback === \"animate\") {\n if (!currentTransition.transitionSkipped && !swapEvent.signal.aborted) {\n animate(\"new\").finally(() => currentTransition.viewTransitionFinished());\n } else {\n currentTransition.viewTransitionFinished();\n }\n }\n}\nfunction abortAndRecreateMostRecentNavigation() {\n mostRecentNavigation?.controller.abort();\n return mostRecentNavigation = {\n controller: new AbortController()\n };\n}\nasync function transition(direction, from, to, options, historyState) {\n const currentNavigation = abortAndRecreateMostRecentNavigation();\n if (!transitionEnabledOnThisPage() || location.origin !== to.origin) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n location.href = to.href;\n return;\n }\n const navigationType = historyState ? \"traverse\" : options.history === \"replace\" ? \"replace\" : \"push\";\n if (navigationType !== \"traverse\") {\n updateScrollPosition({ scrollX, scrollY });\n }\n if (samePage(from, to)) {\n if (direction !== \"back\" && to.hash || direction === \"back\" && from.hash) {\n moveToLocation(to, from, options, document.title, historyState);\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n return;\n }\n }\n const prepEvent = await doPreparation(\n from,\n to,\n direction,\n navigationType,\n options.sourceElement,\n options.info,\n currentNavigation.controller.signal,\n options.formData,\n defaultLoader\n );\n if (prepEvent.defaultPrevented || prepEvent.signal.aborted) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n if (!prepEvent.signal.aborted) {\n location.href = to.href;\n }\n return;\n }\n async function defaultLoader(preparationEvent) {\n const href = preparationEvent.to.href;\n const init = { signal: preparationEvent.signal };\n if (preparationEvent.formData) {\n init.method = \"POST\";\n const form = preparationEvent.sourceElement instanceof HTMLFormElement ? preparationEvent.sourceElement : preparationEvent.sourceElement instanceof HTMLElement && \"form\" in preparationEvent.sourceElement ? preparationEvent.sourceElement.form : preparationEvent.sourceElement?.closest(\"form\");\n init.body = form?.attributes.getNamedItem(\"enctype\")?.value === \"application/x-www-form-urlencoded\" ? new URLSearchParams(preparationEvent.formData) : preparationEvent.formData;\n }\n const response = await fetchHTML(href, init);\n if (response === null) {\n preparationEvent.preventDefault();\n return;\n }\n if (response.redirected) {\n const redirectedTo = new URL(response.redirected);\n if (redirectedTo.origin !== preparationEvent.to.origin) {\n preparationEvent.preventDefault();\n return;\n }\n preparationEvent.to = redirectedTo;\n }\n parser ??= new DOMParser();\n preparationEvent.newDocument = parser.parseFromString(response.html, response.mediaType);\n preparationEvent.newDocument.querySelectorAll(\"noscript\").forEach((el) => el.remove());\n if (!preparationEvent.newDocument.querySelector('[name=\"astro-view-transitions-enabled\"]') && !preparationEvent.formData) {\n preparationEvent.preventDefault();\n return;\n }\n const links = preloadStyleLinks(preparationEvent.newDocument);\n links.length && !preparationEvent.signal.aborted && await Promise.all(links);\n if (import.meta.env.DEV && !preparationEvent.signal.aborted)\n await prepareForClientOnlyComponents(\n preparationEvent.newDocument,\n preparationEvent.to,\n preparationEvent.signal\n );\n }\n async function abortAndRecreateMostRecentTransition() {\n if (mostRecentTransition) {\n if (mostRecentTransition.viewTransition) {\n try {\n mostRecentTransition.viewTransition.skipTransition();\n } catch {\n }\n try {\n await mostRecentTransition.viewTransition.updateCallbackDone;\n } catch {\n }\n }\n }\n return mostRecentTransition = { transitionSkipped: false };\n }\n const currentTransition = await abortAndRecreateMostRecentTransition();\n if (prepEvent.signal.aborted) {\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n return;\n }\n document.documentElement.setAttribute(DIRECTION_ATTR, prepEvent.direction);\n if (supportsViewTransitions) {\n currentTransition.viewTransition = document.startViewTransition(\n async () => await updateDOM(prepEvent, options, currentTransition, historyState)\n );\n } else {\n const updateDone = (async () => {\n await Promise.resolve();\n await updateDOM(prepEvent, options, currentTransition, historyState, getFallback());\n })();\n currentTransition.viewTransition = {\n updateCallbackDone: updateDone,\n // this is about correct\n ready: updateDone,\n // good enough\n // Finished promise could have been done better: finished rejects iff updateDone does.\n // Our simulation always resolves, never rejects.\n finished: new Promise((r) => currentTransition.viewTransitionFinished = r),\n // see end of updateDOM\n skipTransition: () => {\n currentTransition.transitionSkipped = true;\n document.documentElement.removeAttribute(OLD_NEW_ATTR);\n }\n };\n }\n currentTransition.viewTransition.updateCallbackDone.finally(async () => {\n await runScripts();\n onPageLoad();\n announce();\n });\n currentTransition.viewTransition.finished.finally(() => {\n currentTransition.viewTransition = void 0;\n if (currentTransition === mostRecentTransition) mostRecentTransition = void 0;\n if (currentNavigation === mostRecentNavigation) mostRecentNavigation = void 0;\n document.documentElement.removeAttribute(DIRECTION_ATTR);\n document.documentElement.removeAttribute(OLD_NEW_ATTR);\n });\n try {\n await currentTransition.viewTransition.updateCallbackDone;\n } catch (e) {\n const err = e;\n console.log(\"[astro]\", err.name, err.message, err.stack);\n }\n}\nlet navigateOnServerWarned = false;\nasync function navigate(href, options) {\n if (inBrowser === false) {\n if (!navigateOnServerWarned) {\n const warning = new Error(\n \"The view transitions client API was called during a server side render. This may be unintentional as the navigate() function is expected to be called in response to user interactions. Please make sure that your usage is correct.\"\n );\n warning.name = \"Warning\";\n console.warn(warning);\n navigateOnServerWarned = true;\n }\n return;\n }\n await transition(\"forward\", originalLocation, new URL(href, location.href), options ?? {});\n}\nfunction onPopState(ev) {\n if (!transitionEnabledOnThisPage() && ev.state) {\n location.reload();\n return;\n }\n if (ev.state === null) {\n return;\n }\n const state = history.state;\n const nextIndex = state.index;\n const direction = nextIndex > currentHistoryIndex ? \"forward\" : \"back\";\n currentHistoryIndex = nextIndex;\n transition(direction, originalLocation, new URL(location.href), {}, state);\n}\nconst onScrollEnd = () => {\n if (history.state && (scrollX !== history.state.scrollX || scrollY !== history.state.scrollY)) {\n updateScrollPosition({ scrollX, scrollY });\n }\n};\nif (inBrowser) {\n if (supportsViewTransitions || getFallback() !== \"none\") {\n originalLocation = new URL(location.href);\n addEventListener(\"popstate\", onPopState);\n addEventListener(\"load\", onPageLoad);\n if (\"onscrollend\" in window) addEventListener(\"scrollend\", onScrollEnd);\n else {\n let intervalId, lastY, lastX, lastIndex;\n const scrollInterval = () => {\n if (lastIndex !== history.state?.index) {\n clearInterval(intervalId);\n intervalId = void 0;\n return;\n }\n if (lastY === scrollY && lastX === scrollX) {\n clearInterval(intervalId);\n intervalId = void 0;\n onScrollEnd();\n return;\n } else {\n lastY = scrollY, lastX = scrollX;\n }\n };\n addEventListener(\n \"scroll\",\n () => {\n if (intervalId !== void 0) return;\n lastIndex = history.state.index, lastY = scrollY, lastX = scrollX;\n intervalId = window.setInterval(scrollInterval, 50);\n },\n { passive: true }\n );\n }\n }\n for (const script of document.scripts) {\n script.dataset.astroExec = \"\";\n }\n}\nasync function prepareForClientOnlyComponents(newDocument, toLocation, signal) {\n if (newDocument.body.querySelector(`astro-island[client='only']`)) {\n const nextPage = document.createElement(\"iframe\");\n nextPage.src = toLocation.href;\n nextPage.style.display = \"none\";\n document.body.append(nextPage);\n nextPage.contentWindow.console = Object.keys(console).reduce((acc, key) => {\n acc[key] = () => {\n };\n return acc;\n }, {});\n await hydrationDone(nextPage);\n const nextHead = nextPage.contentDocument?.head;\n if (nextHead) {\n const viteIds = [...nextHead.querySelectorAll(`style[${VITE_ID}]`)].map(\n (style) => style.getAttribute(VITE_ID)\n );\n viteIds.forEach((id) => {\n const style = nextHead.querySelector(`style[${VITE_ID}=\"${id}\"]`);\n if (style && !newDocument.head.querySelector(`style[${VITE_ID}=\"${id}\"]`)) {\n newDocument.head.appendChild(style.cloneNode(true));\n }\n });\n }\n async function hydrationDone(loadingPage) {\n if (!signal.aborted) {\n await new Promise(\n (r) => loadingPage.contentWindow?.addEventListener(\"load\", r, { once: true })\n );\n }\n return new Promise(async (r) => {\n for (let count = 0; count <= 20; ++count) {\n if (signal.aborted) break;\n if (!loadingPage.contentDocument.body.querySelector(\"astro-island[ssr]\")) break;\n await new Promise((r2) => setTimeout(r2, 50));\n }\n r();\n });\n }\n }\n}\nexport {\n getFallback,\n navigate,\n supportsViewTransitions,\n transitionEnabledOnThisPage,\n updateScrollPosition\n};\n"],"names":["PERSIST_ATTR","deselectScripts","doc","s1","s2","swapRootAttributes","html","astroAttributes","name","value","swapHeadElements","el","newEl","persistedHeadElement","swapBodyElement","newElement","oldElement","id","shouldCopyProps","saveFocus","activeElement","start","end","restoreFocus","newDoc","href","persistProps","swap","restoreFocusFunction","TRANSITION_BEFORE_PREPARATION","TRANSITION_AFTER_PREPARATION","TRANSITION_BEFORE_SWAP","TRANSITION_AFTER_SWAP","triggerEvent","BeforeEvent","type","eventInitDict","from","to","direction","navigationType","sourceElement","info","newDocument","signal","TransitionBeforePreparationEvent","formData","loader","TransitionBeforeSwapEvent","afterPreparation","viewTransition","doPreparation","defaultLoader","event","updateScrollPosition","doSwap","pushState","replaceState","positions","supportsViewTransitions","transitionEnabledOnThisPage","samePage","thisLocation","otherLocation","mostRecentNavigation","mostRecentTransition","originalLocation","onPageLoad","announce","div","title","DIRECTION_ATTR","OLD_NEW_ATTR","parser","currentHistoryIndex","fetchHTML","init","res","mediaType","getFallback","runScripts","wait","script","newScript","attr","p","r","moveToLocation","options","pageTitleForBrowserHistory","historyState","intraPage","targetPageTitle","scrolledToTop","current","savedState","preloadStyleLinks","links","c","resolve","evName","updateDOM","preparationEvent","currentTransition","fallback","animate","phase","isInfinite","animation","effect","currentAnimations","newAnimations","a","swapEvent","abortAndRecreateMostRecentNavigation","transition","currentNavigation","prepEvent","form","response","redirectedTo","abortAndRecreateMostRecentTransition","updateDone","e","err","navigate","onPopState","ev","state","nextIndex","onScrollEnd","intervalId","lastY","lastX","lastIndex","scrollInterval"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/Target/_astro/index.esm.WPJ9Gp6O.js b/Target/_astro/index.esm.C4IwMFMF.js similarity index 61% rename from Target/_astro/index.esm.WPJ9Gp6O.js rename to Target/_astro/index.esm.C4IwMFMF.js index d12f1412..b044ba46 100644 --- a/Target/_astro/index.esm.WPJ9Gp6O.js +++ b/Target/_astro/index.esm.C4IwMFMF.js @@ -1 +1 @@ -var L={};const W=function(e){const t=[];let r=0;for(let n=0;n>6|192,t[r++]=63&a|128):55296==(64512&a)&&n+1>18|240,t[r++]=a>>12&63|128,t[r++]=a>>6&63|128,t[r++]=63&a|128):(t[r++]=a>>12|224,t[r++]=a>>6&63|128,t[r++]=63&a|128)}return t},ee=function(e){const t=[];let r=0,n=0;for(;r191&&a<224){const i=e[r++];t[n++]=String.fromCharCode((31&a)<<6|63&i)}else if(a>239&&a<365){const i=((7&a)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],s=e[r++];t[n++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s)}}return t.join("")},G={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t>2,l=(3&a)<<4|s>>4;let d=(15&s)<<2|c>>6,u=63&c;o||(u=64,i||(d=64)),n.push(r[h],r[l],r[d],r[u])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(W(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):ee(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t>4;if(n.push(c),64!==s){const e=i<<4&240|s>>2;if(n.push(e),64!==o){const e=s<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class te extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const ne=function(e){const t=W(e);return G.encodeByteArray(t,!0)},J=function(e){return ne(e).replace(/\./g,"")},re=function(e){try{return G.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function se(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}const ae=()=>se().__FIREBASE_DEFAULTS__,ie=()=>{if(typeof process>"u"||typeof L>"u")return;const e=L.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0},oe=()=>{if(typeof document>"u")return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}const t=e&&re(e[1]);return t&&JSON.parse(t)},ce=()=>{try{return ae()||ie()||oe()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},he=()=>{var e;return null===(e=ce())||void 0===e?void 0:e.config};class le{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}function de(){try{return"object"==typeof indexedDB}catch{return!1}}function fe(){return new Promise(((e,t)=>{try{let r=!0;const n="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(n);a.onsuccess=()=>{a.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},a.onupgradeneeded=()=>{r=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}const ue="FirebaseError";class b extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name=ue,Object.setPrototypeOf(this,b.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,K.prototype.create)}}class K{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,a=this.errors[e],i=a?pe(a,r):"Error",s=`${this.serviceName}: ${i} (${n}).`;return new b(n,s,r)}}function pe(e,t){return e.replace(me,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}const me=/\{\$([^}]+)}/g;function C(e,t){if(e===t)return!0;const r=Object.keys(e),n=Object.keys(t);for(const a of r){if(!n.includes(a))return!1;const r=e[a],i=t[a];if(H(r)&&H(i)){if(!C(r,i))return!1}else if(r!==i)return!1}for(const e of n)if(!r.includes(e))return!1;return!0}function H(e){return null!==e&&"object"==typeof e}class D{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}}const u="[DEFAULT]";class ge{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new le;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch{}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const r=this.normalizeInstanceIdentifier(e?.identifier),n=null!==(t=e?.optional)&&void 0!==t&&t;if(!this.isInitialized(r)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)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(_e(e))try{this.getOrInitializeService({instanceIdentifier:u})}catch{}for(const[e,t]of this.instancesDeferred.entries()){const r=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch{}}}}clearInstance(e=u){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e=u){return this.instances.has(e)}getOptions(e=u){return this.instancesOptions.get(e)||{}}initialize(e={}){const{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`);const n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(const[e,t]of this.instancesDeferred.entries()){r===this.normalizeInstanceIdentifier(e)&&t.resolve(n)}return n}onInit(e,t){var r;const n=this.normalizeInstanceIdentifier(t),a=null!==(r=this.onInitCallbacks.get(n))&&void 0!==r?r:new Set;a.add(e),this.onInitCallbacks.set(n,a);const i=this.instances.get(n);return i&&e(i,n),()=>{a.delete(e)}}invokeOnInitCallbacks(e,t){const r=this.onInitCallbacks.get(t);if(r)for(const n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:be(e),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{}return r||null}normalizeInstanceIdentifier(e=u){return this.component?this.component.multipleInstances?e:u:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}function be(e){return e===u?void 0:e}function _e(e){return"EAGER"===e.instantiationMode}class Ee{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new ge(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}var h;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(h||(h={}));const ye={debug:h.DEBUG,verbose:h.VERBOSE,info:h.INFO,warn:h.WARN,error:h.ERROR,silent:h.SILENT},De=h.INFO,Ie={[h.DEBUG]:"log",[h.VERBOSE]:"log",[h.INFO]:"info",[h.WARN]:"warn",[h.ERROR]:"error"},ve=(e,t,...r)=>{if(tt.some((t=>e instanceof t));let P,F;function Ce(){return P||(P=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Ae(){return F||(F=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Y=new WeakMap,A=new WeakMap,X=new WeakMap,I=new WeakMap,N=new WeakMap;function Be(e){const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",i)},a=()=>{t(f(e.result)),n()},i=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&Y.set(t,e)})).catch((()=>{})),N.set(t,e),t}function Oe(e){if(A.has(e))return;const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=()=>{t(),n()},i=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));A.set(e,t)}let B={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return A.get(e);if("objectStoreNames"===t)return e.objectStoreNames||X.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return f(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function Te(e){B=e(B)}function Me(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?Ae().includes(e)?function(...t){return e.apply(v(this),t),f(Y.get(this))}:function(...t){return f(e.apply(v(this),t))}:function(t,...r){const n=e.call(v(this),t,...r);return X.set(n,t.sort?t.sort():[t]),f(n)}}function $e(e){return"function"==typeof e?Me(e):(e instanceof IDBTransaction&&Oe(e),Se(e,Ce())?new Proxy(e,B):e)}function f(e){if(e instanceof IDBRequest)return Be(e);if(I.has(e))return I.get(e);const t=$e(e);return t!==e&&(I.set(e,t),N.set(t,e)),t}const v=e=>N.get(e);function Ne(e,t,{blocked:r,upgrade:n,blocking:a,terminated:i}={}){const s=indexedDB.open(e,t),o=f(s);return n&&s.addEventListener("upgradeneeded",(e=>{n(f(s.result),e.oldVersion,e.newVersion,f(s.transaction),e)})),r&&s.addEventListener("blocked",(e=>r(e.oldVersion,e.newVersion,e))),o.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}const Re=["get","getKey","getAll","getAllKeys","count"],Le=["put","add","delete","clear"],w=new Map;function x(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(w.get(t))return w.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,a=Le.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!Re.includes(r))return;const i=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let s=i.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),a&&i.done]))[0]};return w.set(t,i),i}Te((e=>({...e,get:(t,r,n)=>x(t,r)||e.get(t,r,n),has:(t,r)=>!!x(t,r)||e.has(t,r)})));class He{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(Pe(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}function Pe(e){const t=e.getComponent();return"VERSION"===t?.type}const O="@firebase/app",V="0.10.9",d=new we("@firebase/app"),Fe="@firebase/app-compat",xe="@firebase/analytics-compat",Ve="@firebase/analytics",je="@firebase/app-check-compat",ke="@firebase/app-check",ze="@firebase/auth",Ue="@firebase/auth-compat",We="@firebase/database",Ge="@firebase/database-compat",Je="@firebase/functions",Ke="@firebase/functions-compat",Ye="@firebase/installations",Xe="@firebase/installations-compat",Ze="@firebase/messaging",qe="@firebase/messaging-compat",Qe="@firebase/performance",et="@firebase/performance-compat",tt="@firebase/remote-config",nt="@firebase/remote-config-compat",rt="@firebase/storage",st="@firebase/storage-compat",at="@firebase/firestore",it="@firebase/vertexai-preview",ot="@firebase/firestore-compat",ct="firebase",ht="[DEFAULT]",lt={[O]:"fire-core",[Fe]:"fire-core-compat",[Ve]:"fire-analytics",[xe]:"fire-analytics-compat",[ke]:"fire-app-check",[je]:"fire-app-check-compat",[ze]:"fire-auth",[Ue]:"fire-auth-compat",[We]:"fire-rtdb",[Ge]:"fire-rtdb-compat",[Je]:"fire-fn",[Ke]:"fire-fn-compat",[Ye]:"fire-iid",[Xe]:"fire-iid-compat",[Ze]:"fire-fcm",[qe]:"fire-fcm-compat",[Qe]:"fire-perf",[et]:"fire-perf-compat",[tt]:"fire-rc",[nt]:"fire-rc-compat",[rt]:"fire-gcs",[st]:"fire-gcs-compat",[at]:"fire-fst",[ot]:"fire-fst-compat",[it]:"fire-vertex","fire-js":"fire-js",[ct]:"fire-js-all"},T=new Map,dt=new Map,M=new Map;function j(e,t){try{e.container.addComponent(t)}catch(r){d.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function $(e){const t=e.name;if(M.has(t))return d.debug(`There were multiple attempts to register component ${t}.`),!1;M.set(t,e);for(const t of T.values())j(t,e);for(const t of dt.values())j(t,e);return!0}const ft={"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."},p=new K("app","Firebase",ft);class ut{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 D("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 p.create("app-deleted",{appName:this._name})}}function St(e,t={}){let r=e;"object"!=typeof t&&(t={name:t});const n=Object.assign({name:ht,automaticDataCollectionEnabled:!1},t),a=n.name;if("string"!=typeof a||!a)throw p.create("bad-app-name",{appName:String(a)});if(r||(r=he()),!r)throw p.create("no-options");const i=T.get(a);if(i){if(C(r,i.options)&&C(n,i.config))return i;throw p.create("duplicate-app",{appName:a})}const s=new Ee(a);for(const e of M.values())s.addComponent(e);const o=new ut(r,n,s);return T.set(a,o),o}function y(e,t,r){var n;let a=null!==(n=lt[e])&&void 0!==n?n:e;r&&(a+=`-${r}`);const i=a.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const e=[`Unable to register library "${a}" with version "${t}":`];return i&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void d.warn(e.join(" "))}$(new D(`${a}-version`,(()=>({library:a,version:t})),"VERSION"))}const pt="firebase-heartbeat-database",mt=1,g="firebase-heartbeat-store";let S=null;function Z(){return S||(S=Ne(pt,mt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(g)}catch(e){console.warn(e)}}}).catch((e=>{throw p.create("idb-open",{originalErrorMessage:e.message})}))),S}async function gt(e){try{const t=(await Z()).transaction(g),r=await t.objectStore(g).get(q(e));return await t.done,r}catch(e){if(e instanceof b)d.warn(e.message);else{const t=p.create("idb-get",{originalErrorMessage:e?.message});d.warn(t.message)}}}async function k(e,t){try{const r=(await Z()).transaction(g,"readwrite");await r.objectStore(g).put(t,q(e)),await r.done}catch(e){if(e instanceof b)d.warn(e.message);else{const t=p.create("idb-set",{originalErrorMessage:e?.message});d.warn(t.message)}}}function q(e){return`${e.name}!${e.options.appId}`}const bt=1024,_t=2592e6;class Et{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new Dt(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t,r;try{const n=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),a=z();return console.log("heartbeats",null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats),null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(r=this._heartbeatsCache)||void 0===r?void 0:r.heartbeats))||this._heartbeatsCache.lastSentHeartbeatDate===a||this._heartbeatsCache.heartbeats.some((e=>e.date===a))?void 0:(this._heartbeatsCache.heartbeats.push({date:a,agent:n}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=_t})),this._storage.overwrite(this._heartbeatsCache))}catch(e){d.warn(e)}}async getHeartbeatsHeader(){var e;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=z(),{heartbeatsToSend:r,unsentEntries:n}=yt(this._heartbeatsCache.heartbeats),a=J(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}catch(e){return d.warn(e),""}}}function z(){return(new Date).toISOString().substring(0,10)}function yt(e,t=bt){const r=[];let n=e.slice();for(const a of e){const e=r.find((e=>e.agent===a.agent));if(e){if(e.dates.push(a.date),U(r)>t){e.dates.pop();break}}else if(r.push({agent:a.agent,dates:[a.date]}),U(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}class Dt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!de()&&fe().then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await gt(this.app);return e?.heartbeats?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return k(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return k(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}}function U(e){return J(JSON.stringify({version:2,heartbeats:e})).length}function It(e){$(new D("platform-logger",(e=>new He(e)),"PRIVATE")),$(new D("heartbeat",(e=>new Et(e)),"PRIVATE")),y(O,V,e),y(O,V,"esm2017"),y("fire-js","")}It("");var vt="firebase",wt="10.13.0";y(vt,wt,"app");export{b as FirebaseError,ht as _DEFAULT_ENTRY_NAME,j as _addComponent,T as _apps,M as _components,$ as _registerComponent,dt as _serverApps,St as initializeApp,y as registerVersion}; \ No newline at end of file +var L={};const W=function(e){const t=[];let r=0;for(let n=0;n>6|192,t[r++]=63&a|128):55296==(64512&a)&&n+1>18|240,t[r++]=a>>12&63|128,t[r++]=a>>6&63|128,t[r++]=63&a|128):(t[r++]=a>>12|224,t[r++]=a>>6&63|128,t[r++]=63&a|128)}return t},ee=function(e){const t=[];let r=0,n=0;for(;r191&&a<224){const i=e[r++];t[n++]=String.fromCharCode((31&a)<<6|63&i)}else if(a>239&&a<365){const i=((7&a)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],s=e[r++];t[n++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s)}}return t.join("")},G={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t>2,l=(3&a)<<4|s>>4;let d=(15&s)<<2|c>>6,u=63&c;o||(u=64,i||(d=64)),n.push(r[h],r[l],r[d],r[u])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(W(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):ee(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t>4;if(n.push(c),64!==s){const e=i<<4&240|s>>2;if(n.push(e),64!==o){const e=s<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class te extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const ne=function(e){const t=W(e);return G.encodeByteArray(t,!0)},J=function(e){return ne(e).replace(/\./g,"")},re=function(e){try{return G.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function se(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}const ae=()=>se().__FIREBASE_DEFAULTS__,ie=()=>{if(typeof process>"u"||typeof L>"u")return;const e=L.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0},oe=()=>{if(typeof document>"u")return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}const t=e&&re(e[1]);return t&&JSON.parse(t)},ce=()=>{try{return ae()||ie()||oe()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},he=()=>{var e;return null===(e=ce())||void 0===e?void 0:e.config};class le{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}function de(){try{return"object"==typeof indexedDB}catch{return!1}}function fe(){return new Promise(((e,t)=>{try{let r=!0;const n="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(n);a.onsuccess=()=>{a.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},a.onupgradeneeded=()=>{r=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}const ue="FirebaseError";class b extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name=ue,Object.setPrototypeOf(this,b.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,K.prototype.create)}}class K{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,a=this.errors[e],i=a?pe(a,r):"Error",s=`${this.serviceName}: ${i} (${n}).`;return new b(n,s,r)}}function pe(e,t){return e.replace(me,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}const me=/\{\$([^}]+)}/g;function C(e,t){if(e===t)return!0;const r=Object.keys(e),n=Object.keys(t);for(const a of r){if(!n.includes(a))return!1;const r=e[a],i=t[a];if(H(r)&&H(i)){if(!C(r,i))return!1}else if(r!==i)return!1}for(const e of n)if(!r.includes(e))return!1;return!0}function H(e){return null!==e&&"object"==typeof e}class D{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}}const u="[DEFAULT]";class ge{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new le;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch{}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const r=this.normalizeInstanceIdentifier(e?.identifier),n=null!==(t=e?.optional)&&void 0!==t&&t;if(!this.isInitialized(r)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:r})}catch(e){if(n)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(_e(e))try{this.getOrInitializeService({instanceIdentifier:u})}catch{}for(const[e,t]of this.instancesDeferred.entries()){const r=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch{}}}}clearInstance(e=u){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e=u){return this.instances.has(e)}getOptions(e=u){return this.instancesOptions.get(e)||{}}initialize(e={}){const{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`);const n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(const[e,t]of this.instancesDeferred.entries()){r===this.normalizeInstanceIdentifier(e)&&t.resolve(n)}return n}onInit(e,t){var r;const n=this.normalizeInstanceIdentifier(t),a=null!==(r=this.onInitCallbacks.get(n))&&void 0!==r?r:new Set;a.add(e),this.onInitCallbacks.set(n,a);const i=this.instances.get(n);return i&&e(i,n),()=>{a.delete(e)}}invokeOnInitCallbacks(e,t){const r=this.onInitCallbacks.get(t);if(r)for(const n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:be(e),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{}return r||null}normalizeInstanceIdentifier(e=u){return this.component?this.component.multipleInstances?e:u:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}function be(e){return e===u?void 0:e}function _e(e){return"EAGER"===e.instantiationMode}class Ee{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new ge(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}var h;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(h||(h={}));const ye={debug:h.DEBUG,verbose:h.VERBOSE,info:h.INFO,warn:h.WARN,error:h.ERROR,silent:h.SILENT},De=h.INFO,Ie={[h.DEBUG]:"log",[h.VERBOSE]:"log",[h.INFO]:"info",[h.WARN]:"warn",[h.ERROR]:"error"},ve=(e,t,...r)=>{if(tt.some((t=>e instanceof t));let P,F;function Ce(){return P||(P=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Ae(){return F||(F=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Y=new WeakMap,A=new WeakMap,X=new WeakMap,I=new WeakMap,N=new WeakMap;function Be(e){const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("success",a),e.removeEventListener("error",i)},a=()=>{t(f(e.result)),n()},i=()=>{r(e.error),n()};e.addEventListener("success",a),e.addEventListener("error",i)}));return t.then((t=>{t instanceof IDBCursor&&Y.set(t,e)})).catch((()=>{})),N.set(t,e),t}function Oe(e){if(A.has(e))return;const t=new Promise(((t,r)=>{const n=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",i),e.removeEventListener("abort",i)},a=()=>{t(),n()},i=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",a),e.addEventListener("error",i),e.addEventListener("abort",i)}));A.set(e,t)}let B={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return A.get(e);if("objectStoreNames"===t)return e.objectStoreNames||X.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return f(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function Te(e){B=e(B)}function Me(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?Ae().includes(e)?function(...t){return e.apply(v(this),t),f(Y.get(this))}:function(...t){return f(e.apply(v(this),t))}:function(t,...r){const n=e.call(v(this),t,...r);return X.set(n,t.sort?t.sort():[t]),f(n)}}function $e(e){return"function"==typeof e?Me(e):(e instanceof IDBTransaction&&Oe(e),Se(e,Ce())?new Proxy(e,B):e)}function f(e){if(e instanceof IDBRequest)return Be(e);if(I.has(e))return I.get(e);const t=$e(e);return t!==e&&(I.set(e,t),N.set(t,e)),t}const v=e=>N.get(e);function Ne(e,t,{blocked:r,upgrade:n,blocking:a,terminated:i}={}){const s=indexedDB.open(e,t),o=f(s);return n&&s.addEventListener("upgradeneeded",(e=>{n(f(s.result),e.oldVersion,e.newVersion,f(s.transaction),e)})),r&&s.addEventListener("blocked",(e=>r(e.oldVersion,e.newVersion,e))),o.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}const Re=["get","getKey","getAll","getAllKeys","count"],Le=["put","add","delete","clear"],w=new Map;function x(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(w.get(t))return w.get(t);const r=t.replace(/FromIndex$/,""),n=t!==r,a=Le.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!a&&!Re.includes(r))return;const i=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let s=i.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),a&&i.done]))[0]};return w.set(t,i),i}Te((e=>({...e,get:(t,r,n)=>x(t,r)||e.get(t,r,n),has:(t,r)=>!!x(t,r)||e.has(t,r)})));class He{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(Pe(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}function Pe(e){const t=e.getComponent();return"VERSION"===t?.type}const O="@firebase/app",V="0.10.10",d=new we("@firebase/app"),Fe="@firebase/app-compat",xe="@firebase/analytics-compat",Ve="@firebase/analytics",je="@firebase/app-check-compat",ke="@firebase/app-check",ze="@firebase/auth",Ue="@firebase/auth-compat",We="@firebase/database",Ge="@firebase/database-compat",Je="@firebase/functions",Ke="@firebase/functions-compat",Ye="@firebase/installations",Xe="@firebase/installations-compat",Ze="@firebase/messaging",qe="@firebase/messaging-compat",Qe="@firebase/performance",et="@firebase/performance-compat",tt="@firebase/remote-config",nt="@firebase/remote-config-compat",rt="@firebase/storage",st="@firebase/storage-compat",at="@firebase/firestore",it="@firebase/vertexai-preview",ot="@firebase/firestore-compat",ct="firebase",ht="[DEFAULT]",lt={[O]:"fire-core",[Fe]:"fire-core-compat",[Ve]:"fire-analytics",[xe]:"fire-analytics-compat",[ke]:"fire-app-check",[je]:"fire-app-check-compat",[ze]:"fire-auth",[Ue]:"fire-auth-compat",[We]:"fire-rtdb",[Ge]:"fire-rtdb-compat",[Je]:"fire-fn",[Ke]:"fire-fn-compat",[Ye]:"fire-iid",[Xe]:"fire-iid-compat",[Ze]:"fire-fcm",[qe]:"fire-fcm-compat",[Qe]:"fire-perf",[et]:"fire-perf-compat",[tt]:"fire-rc",[nt]:"fire-rc-compat",[rt]:"fire-gcs",[st]:"fire-gcs-compat",[at]:"fire-fst",[ot]:"fire-fst-compat",[it]:"fire-vertex","fire-js":"fire-js",[ct]:"fire-js-all"},T=new Map,dt=new Map,M=new Map;function j(e,t){try{e.container.addComponent(t)}catch(r){d.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function $(e){const t=e.name;if(M.has(t))return d.debug(`There were multiple attempts to register component ${t}.`),!1;M.set(t,e);for(const t of T.values())j(t,e);for(const t of dt.values())j(t,e);return!0}const ft={"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."},p=new K("app","Firebase",ft);class ut{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 D("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 p.create("app-deleted",{appName:this._name})}}function St(e,t={}){let r=e;"object"!=typeof t&&(t={name:t});const n=Object.assign({name:ht,automaticDataCollectionEnabled:!1},t),a=n.name;if("string"!=typeof a||!a)throw p.create("bad-app-name",{appName:String(a)});if(r||(r=he()),!r)throw p.create("no-options");const i=T.get(a);if(i){if(C(r,i.options)&&C(n,i.config))return i;throw p.create("duplicate-app",{appName:a})}const s=new Ee(a);for(const e of M.values())s.addComponent(e);const o=new ut(r,n,s);return T.set(a,o),o}function y(e,t,r){var n;let a=null!==(n=lt[e])&&void 0!==n?n:e;r&&(a+=`-${r}`);const i=a.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const e=[`Unable to register library "${a}" with version "${t}":`];return i&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void d.warn(e.join(" "))}$(new D(`${a}-version`,(()=>({library:a,version:t})),"VERSION"))}const pt="firebase-heartbeat-database",mt=1,g="firebase-heartbeat-store";let S=null;function Z(){return S||(S=Ne(pt,mt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(g)}catch(e){console.warn(e)}}}).catch((e=>{throw p.create("idb-open",{originalErrorMessage:e.message})}))),S}async function gt(e){try{const t=(await Z()).transaction(g),r=await t.objectStore(g).get(q(e));return await t.done,r}catch(e){if(e instanceof b)d.warn(e.message);else{const t=p.create("idb-get",{originalErrorMessage:e?.message});d.warn(t.message)}}}async function k(e,t){try{const r=(await Z()).transaction(g,"readwrite");await r.objectStore(g).put(t,q(e)),await r.done}catch(e){if(e instanceof b)d.warn(e.message);else{const t=p.create("idb-set",{originalErrorMessage:e?.message});d.warn(t.message)}}}function q(e){return`${e.name}!${e.options.appId}`}const bt=1024,_t=2592e6;class Et{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new Dt(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;try{const r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),n=z();return null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats))||this._heartbeatsCache.lastSentHeartbeatDate===n||this._heartbeatsCache.heartbeats.some((e=>e.date===n))?void 0:(this._heartbeatsCache.heartbeats.push({date:n,agent:r}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=_t})),this._storage.overwrite(this._heartbeatsCache))}catch(e){d.warn(e)}}async getHeartbeatsHeader(){var e;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=z(),{heartbeatsToSend:r,unsentEntries:n}=yt(this._heartbeatsCache.heartbeats),a=J(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}catch(e){return d.warn(e),""}}}function z(){return(new Date).toISOString().substring(0,10)}function yt(e,t=bt){const r=[];let n=e.slice();for(const a of e){const e=r.find((e=>e.agent===a.agent));if(e){if(e.dates.push(a.date),U(r)>t){e.dates.pop();break}}else if(r.push({agent:a.agent,dates:[a.date]}),U(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}class Dt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!de()&&fe().then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await gt(this.app);return e?.heartbeats?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return k(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const r=await this.read();return k(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}}function U(e){return J(JSON.stringify({version:2,heartbeats:e})).length}function It(e){$(new D("platform-logger",(e=>new He(e)),"PRIVATE")),$(new D("heartbeat",(e=>new Et(e)),"PRIVATE")),y(O,V,e),y(O,V,"esm2017"),y("fire-js","")}It("");var vt="firebase",wt="10.13.1";y(vt,wt,"app");export{b as FirebaseError,ht as _DEFAULT_ENTRY_NAME,j as _addComponent,T as _apps,M as _components,$ as _registerComponent,dt as _serverApps,St as initializeApp,y as registerVersion}; \ No newline at end of file diff --git a/Target/_astro/index.esm.WPJ9Gp6O.js.map b/Target/_astro/index.esm.C4IwMFMF.js.map similarity index 62% rename from Target/_astro/index.esm.WPJ9Gp6O.js.map rename to Target/_astro/index.esm.C4IwMFMF.js.map index 87430fb9..8f1be8ff 100644 --- a/Target/_astro/index.esm.WPJ9Gp6O.js.map +++ b/Target/_astro/index.esm.C4IwMFMF.js.map @@ -1 +1 @@ -{"version":3,"file":"index.esm.WPJ9Gp6O.js","sources":["../../../../../../node_modules/@firebase/util/dist/index.esm2017.js","../../../../../../node_modules/@firebase/component/dist/esm/index.esm2017.js","../../../../../../node_modules/@firebase/logger/dist/esm/index.esm2017.js","../../../../../../node_modules/idb/build/wrap-idb-value.js","../../../../../../node_modules/idb/build/index.js","../../../../../../node_modules/@firebase/app/dist/esm/index.esm2017.js","../../../../../../node_modules/firebase/app/dist/esm/index.esm.js"],"sourcesContent":["/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw new DecodeBase64StringError();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * An error encountered while decoding base64 string.\r\n */\r\nclass DecodeBase64StringError extends Error {\r\n constructor() {\r\n super(...arguments);\r\n this.name = 'DecodeBase64StringError';\r\n }\r\n}\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof window !== 'undefined' || isWebWorker();\r\n}\r\n/**\r\n * Detect Web Worker context\r\n */\r\nfunction isWebWorker() {\r\n return (typeof WorkerGlobalScope !== 'undefined' &&\r\n typeof self !== 'undefined' &&\r\n self instanceof WorkerGlobalScope);\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n !!navigator.userAgent &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // Typescript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *

Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *

Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, DecodeBase64StringError, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, isWebWorker, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, isBrowser, isWebWorker, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$p = \"@firebase/app\";\nconst version$1 = \"0.10.9\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/app');\n\nconst name$o = \"@firebase/app-compat\";\n\nconst name$n = \"@firebase/analytics-compat\";\n\nconst name$m = \"@firebase/analytics\";\n\nconst name$l = \"@firebase/app-check-compat\";\n\nconst name$k = \"@firebase/app-check\";\n\nconst name$j = \"@firebase/auth\";\n\nconst name$i = \"@firebase/auth-compat\";\n\nconst name$h = \"@firebase/database\";\n\nconst name$g = \"@firebase/database-compat\";\n\nconst name$f = \"@firebase/functions\";\n\nconst name$e = \"@firebase/functions-compat\";\n\nconst name$d = \"@firebase/installations\";\n\nconst name$c = \"@firebase/installations-compat\";\n\nconst name$b = \"@firebase/messaging\";\n\nconst name$a = \"@firebase/messaging-compat\";\n\nconst name$9 = \"@firebase/performance\";\n\nconst name$8 = \"@firebase/performance-compat\";\n\nconst name$7 = \"@firebase/remote-config\";\n\nconst name$6 = \"@firebase/remote-config-compat\";\n\nconst name$5 = \"@firebase/storage\";\n\nconst name$4 = \"@firebase/storage-compat\";\n\nconst name$3 = \"@firebase/firestore\";\n\nconst name$2 = \"@firebase/vertexai-preview\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"10.13.0\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$p]: 'fire-core',\r\n [name$o]: 'fire-core-compat',\r\n [name$m]: 'fire-analytics',\r\n [name$n]: 'fire-analytics-compat',\r\n [name$k]: 'fire-app-check',\r\n [name$l]: 'fire-app-check-compat',\r\n [name$j]: 'fire-auth',\r\n [name$i]: 'fire-auth-compat',\r\n [name$h]: 'fire-rtdb',\r\n [name$g]: 'fire-rtdb-compat',\r\n [name$f]: 'fire-fn',\r\n [name$e]: 'fire-fn-compat',\r\n [name$d]: 'fire-iid',\r\n [name$c]: 'fire-iid-compat',\r\n [name$b]: 'fire-fcm',\r\n [name$a]: 'fire-fcm-compat',\r\n [name$9]: 'fire-perf',\r\n [name$8]: 'fire-perf-compat',\r\n [name$7]: 'fire-rc',\r\n [name$6]: 'fire-rc-compat',\r\n [name$5]: 'fire-gcs',\r\n [name$4]: 'fire-gcs-compat',\r\n [name$3]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n [name$2]: 'fire-vertex',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * @internal\r\n */\r\nconst _serverApps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n for (const serverApp of _serverApps.values()) {\r\n _addComponent(serverApp, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp or FirebaseOptions.\r\n *\r\n * @returns true if the provide object is of type FirebaseApp.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseApp(obj) {\r\n return obj.options !== undefined;\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp.\r\n *\r\n * @returns true if the provided object is of type FirebaseServerAppImpl.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseServerApp(obj) {\r\n return obj.settings !== undefined;\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call initializeApp() first',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}'\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */]: 'Firebase Server App has been deleted',\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */]: 'FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.',\r\n [\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */]: 'FirebaseServerApp is not for use in browser environments.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2023 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseServerAppImpl extends FirebaseAppImpl {\r\n constructor(options, serverConfig, name, container) {\r\n // Build configuration parameters for the FirebaseAppImpl base class.\r\n const automaticDataCollectionEnabled = serverConfig.automaticDataCollectionEnabled !== undefined\r\n ? serverConfig.automaticDataCollectionEnabled\r\n : false;\r\n // Create the FirebaseAppSettings object for the FirebaseAppImp constructor.\r\n const config = {\r\n name,\r\n automaticDataCollectionEnabled\r\n };\r\n if (options.apiKey !== undefined) {\r\n // Construct the parent FirebaseAppImp object.\r\n super(options, config, container);\r\n }\r\n else {\r\n const appImpl = options;\r\n super(appImpl.options, config, container);\r\n }\r\n // Now construct the data for the FirebaseServerAppImpl.\r\n this._serverConfig = Object.assign({ automaticDataCollectionEnabled }, serverConfig);\r\n this._finalizationRegistry = null;\r\n if (typeof FinalizationRegistry !== 'undefined') {\r\n this._finalizationRegistry = new FinalizationRegistry(() => {\r\n this.automaticCleanup();\r\n });\r\n }\r\n this._refCount = 0;\r\n this.incRefCount(this._serverConfig.releaseOnDeref);\r\n // Do not retain a hard reference to the dref object, otherwise the FinalizationRegistry\r\n // will never trigger.\r\n this._serverConfig.releaseOnDeref = undefined;\r\n serverConfig.releaseOnDeref = undefined;\r\n registerVersion(name$p, version$1, 'serverapp');\r\n }\r\n toJSON() {\r\n return undefined;\r\n }\r\n get refCount() {\r\n return this._refCount;\r\n }\r\n // Increment the reference count of this server app. If an object is provided, register it\r\n // with the finalization registry.\r\n incRefCount(obj) {\r\n if (this.isDeleted) {\r\n return;\r\n }\r\n this._refCount++;\r\n if (obj !== undefined && this._finalizationRegistry !== null) {\r\n this._finalizationRegistry.register(obj, this);\r\n }\r\n }\r\n // Decrement the reference count.\r\n decRefCount() {\r\n if (this.isDeleted) {\r\n return 0;\r\n }\r\n return --this._refCount;\r\n }\r\n // Invoked by the FinalizationRegistry callback to note that this app should go through its\r\n // reference counts and delete itself if no reference count remain. The coordinating logic that\r\n // handles this is in deleteApp(...).\r\n automaticCleanup() {\r\n void deleteApp(this);\r\n }\r\n get settings() {\r\n this.checkDestroyed();\r\n return this._serverConfig;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */);\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\nfunction initializeServerApp(_options, _serverAppConfig) {\r\n if (isBrowser() && !isWebWorker()) {\r\n // FirebaseServerApp isn't designed to be run in browsers.\r\n throw ERROR_FACTORY.create(\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */);\r\n }\r\n if (_serverAppConfig.automaticDataCollectionEnabled === undefined) {\r\n _serverAppConfig.automaticDataCollectionEnabled = false;\r\n }\r\n let appOptions;\r\n if (_isFirebaseApp(_options)) {\r\n appOptions = _options.options;\r\n }\r\n else {\r\n appOptions = _options;\r\n }\r\n // Build an app name based on a hash of the configuration options.\r\n const nameObj = Object.assign(Object.assign({}, _serverAppConfig), appOptions);\r\n // However, Do not mangle the name based on releaseOnDeref, since it will vary between the\r\n // construction of FirebaseServerApp instances. For example, if the object is the request headers.\r\n if (nameObj.releaseOnDeref !== undefined) {\r\n delete nameObj.releaseOnDeref;\r\n }\r\n const hashCode = (s) => {\r\n return [...s].reduce((hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0, 0);\r\n };\r\n if (_serverAppConfig.releaseOnDeref !== undefined) {\r\n if (typeof FinalizationRegistry === 'undefined') {\r\n throw ERROR_FACTORY.create(\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */, {});\r\n }\r\n }\r\n const nameString = '' + hashCode(JSON.stringify(nameObj));\r\n const existingApp = _serverApps.get(nameString);\r\n if (existingApp) {\r\n existingApp.incRefCount(_serverAppConfig.releaseOnDeref);\r\n return existingApp;\r\n }\r\n const container = new ComponentContainer(nameString);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseServerAppImpl(appOptions, _serverAppConfig, nameString, container);\r\n _serverApps.set(nameString, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n let cleanupProviders = false;\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n cleanupProviders = true;\r\n _apps.delete(name);\r\n }\r\n else if (_serverApps.has(name)) {\r\n const firebaseServerApp = app;\r\n if (firebaseServerApp.decRefCount() <= 0) {\r\n _serverApps.delete(name);\r\n cleanupProviders = true;\r\n }\r\n }\r\n if (cleanupProviders) {\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n try {\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n catch (e) {\r\n // Safari/iOS browsers throw occasional exceptions on\r\n // db.createObjectStore() that may be a bug. Avoid blocking\r\n // the rest of the app functionality.\r\n console.warn(e);\r\n }\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME);\r\n const result = await tx.objectStore(STORE_NAME).get(computeKey(app));\r\n // We already have the value but tx.done can throw,\r\n // so we need to await it here to catch errors\r\n await tx.done;\r\n return result;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n await tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n var _a, _b, _c;\r\n try {\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n console.log('heartbeats', (_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats);\r\n if (((_b = this._heartbeatsCache) === null || _b === void 0 ? void 0 : _b.heartbeats) == null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n // If we failed to construct a heartbeats cache, then return immediately.\r\n if (((_c = this._heartbeatsCache) === null || _c === void 0 ? void 0 : _c.heartbeats) == null) {\r\n return;\r\n }\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats =\r\n this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n catch (e) {\r\n logger.warn(e);\r\n }\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n var _a;\r\n try {\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n catch (e) {\r\n logger.warn(e);\r\n return '';\r\n }\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n if (idbHeartbeatObject === null || idbHeartbeatObject === void 0 ? void 0 : idbHeartbeatObject.heartbeats) {\r\n return idbHeartbeatObject;\r\n }\r\n else {\r\n return { heartbeats: [] };\r\n }\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$p, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$p, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _isFirebaseApp, _isFirebaseServerApp, _registerComponent, _removeServiceInstance, _serverApps, deleteApp, getApp, getApps, initializeApp, initializeServerApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"10.13.0\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n"],"names":["stringToByteArray$1","str","out","p","i","c","byteArrayToString","bytes","pos","c1","c2","c3","c4","u","base64","input","webSafe","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","charToByteMap","byte4","DecodeBase64StringError","base64Encode","utf8Bytes","base64urlEncodeWithoutPadding","base64Decode","getGlobal","getDefaultsFromGlobal","getDefaultsFromEnvVariable","define_process_env_default","defaultsJsonString","getDefaultsFromCookie","match","decoded","getDefaults","e","getDefaultAppConfig","_a","Deferred","resolve","reject","callback","error","value","isIndexedDBAvailable","validateIndexedDBOpenable","preExist","DB_CHECK_NAME","request","ERROR_NAME","FirebaseError","code","message","customData","ErrorFactory","service","serviceName","errors","data","fullCode","template","replaceTemplate","fullMessage","PATTERN","_","key","deepEqual","a","b","aKeys","bKeys","k","aProp","bProp","isObject","thing","Component","name","instanceFactory","type","mode","multipleInstances","props","DEFAULT_ENTRY_NAME","Provider","container","identifier","normalizedIdentifier","deferred","instance","options","optional","component","isComponentEager","instanceIdentifier","instanceDeferred","services","opts","normalizedDeferredIdentifier","existingCallbacks","existingInstance","callbacks","normalizeIdentifierForFactory","ComponentContainer","provider","LogLevel","levelStringToEnum","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","args","now","method","Logger","val","instanceOfAny","object","constructors","idbProxyableTypes","cursorAdvanceMethods","getIdbProxyableTypes","getCursorAdvanceMethods","cursorRequestMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","promisifyRequest","promise","unlisten","success","wrap","cacheDonePromiseForTransaction","tx","done","complete","idbProxyTraps","target","prop","receiver","replaceTraps","wrapFunction","func","storeNames","unwrap","transformCachableValue","newValue","openDB","version","blocked","upgrade","blocking","terminated","openPromise","event","db","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","oldTraps","PlatformLoggerServiceImpl","isVersionServiceProvider","logString","name$p","version$1","logger","name$o","name$n","name$m","name$l","name$k","name$j","name$i","name$h","name$g","name$f","name$e","name$d","name$c","name$b","name$a","name$9","name$8","name$7","name$6","name$5","name$4","name$3","name$2","name$1","PLATFORM_LOG_STRING","_apps","_serverApps","_components","_addComponent","app","_registerComponent","componentName","serverApp","ERRORS","ERROR_FACTORY","FirebaseAppImpl","config","initializeApp","_options","rawConfig","existingApp","newApp","registerVersion","libraryKeyOrName","variant","library","libraryMismatch","versionMismatch","warning","DB_NAME","DB_VERSION","STORE_NAME","dbPromise","getDbPromise","oldVersion","readHeartbeatsFromIndexedDB","result","computeKey","idbGetError","writeHeartbeatsToIndexedDB","heartbeatObject","MAX_HEADER_BYTES","STORED_HEARTBEAT_RETENTION_MAX_MILLIS","HeartbeatServiceImpl","HeartbeatStorageImpl","_b","_c","agent","date","getUTCDateString","singleDateHeartbeat","hbTimestamp","heartbeatsToSend","unsentEntries","extractHeartbeatsForHeader","headerString","heartbeatsCache","maxSize","heartbeatEntry","hb","countBytes","idbHeartbeatObject","heartbeatsObject","existingHeartbeatsObject","registerCoreComponents"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]} \ No newline at end of file +{"version":3,"file":"index.esm.C4IwMFMF.js","sources":["../../../../../../node_modules/@firebase/util/dist/index.esm2017.js","../../../../../../node_modules/@firebase/component/dist/esm/index.esm2017.js","../../../../../../node_modules/@firebase/logger/dist/esm/index.esm2017.js","../../../../../../node_modules/idb/build/wrap-idb-value.js","../../../../../../node_modules/idb/build/index.js","../../../../../../node_modules/@firebase/app/dist/esm/index.esm2017.js","../../../../../../node_modules/firebase/app/dist/esm/index.esm.js"],"sourcesContent":["/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw new DecodeBase64StringError();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * An error encountered while decoding base64 string.\r\n */\r\nclass DecodeBase64StringError extends Error {\r\n constructor() {\r\n super(...arguments);\r\n this.name = 'DecodeBase64StringError';\r\n }\r\n}\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof window !== 'undefined' || isWebWorker();\r\n}\r\n/**\r\n * Detect Web Worker context\r\n */\r\nfunction isWebWorker() {\r\n return (typeof WorkerGlobalScope !== 'undefined' &&\r\n typeof self !== 'undefined' &&\r\n self instanceof WorkerGlobalScope);\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n !!navigator.userAgent &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // Typescript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *

Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *

Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, DecodeBase64StringError, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, isWebWorker, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, isBrowser, isWebWorker, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$p = \"@firebase/app\";\nconst version$1 = \"0.10.10\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/app');\n\nconst name$o = \"@firebase/app-compat\";\n\nconst name$n = \"@firebase/analytics-compat\";\n\nconst name$m = \"@firebase/analytics\";\n\nconst name$l = \"@firebase/app-check-compat\";\n\nconst name$k = \"@firebase/app-check\";\n\nconst name$j = \"@firebase/auth\";\n\nconst name$i = \"@firebase/auth-compat\";\n\nconst name$h = \"@firebase/database\";\n\nconst name$g = \"@firebase/database-compat\";\n\nconst name$f = \"@firebase/functions\";\n\nconst name$e = \"@firebase/functions-compat\";\n\nconst name$d = \"@firebase/installations\";\n\nconst name$c = \"@firebase/installations-compat\";\n\nconst name$b = \"@firebase/messaging\";\n\nconst name$a = \"@firebase/messaging-compat\";\n\nconst name$9 = \"@firebase/performance\";\n\nconst name$8 = \"@firebase/performance-compat\";\n\nconst name$7 = \"@firebase/remote-config\";\n\nconst name$6 = \"@firebase/remote-config-compat\";\n\nconst name$5 = \"@firebase/storage\";\n\nconst name$4 = \"@firebase/storage-compat\";\n\nconst name$3 = \"@firebase/firestore\";\n\nconst name$2 = \"@firebase/vertexai-preview\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"10.13.1\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$p]: 'fire-core',\r\n [name$o]: 'fire-core-compat',\r\n [name$m]: 'fire-analytics',\r\n [name$n]: 'fire-analytics-compat',\r\n [name$k]: 'fire-app-check',\r\n [name$l]: 'fire-app-check-compat',\r\n [name$j]: 'fire-auth',\r\n [name$i]: 'fire-auth-compat',\r\n [name$h]: 'fire-rtdb',\r\n [name$g]: 'fire-rtdb-compat',\r\n [name$f]: 'fire-fn',\r\n [name$e]: 'fire-fn-compat',\r\n [name$d]: 'fire-iid',\r\n [name$c]: 'fire-iid-compat',\r\n [name$b]: 'fire-fcm',\r\n [name$a]: 'fire-fcm-compat',\r\n [name$9]: 'fire-perf',\r\n [name$8]: 'fire-perf-compat',\r\n [name$7]: 'fire-rc',\r\n [name$6]: 'fire-rc-compat',\r\n [name$5]: 'fire-gcs',\r\n [name$4]: 'fire-gcs-compat',\r\n [name$3]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n [name$2]: 'fire-vertex',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * @internal\r\n */\r\nconst _serverApps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n for (const serverApp of _serverApps.values()) {\r\n _addComponent(serverApp, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp or FirebaseOptions.\r\n *\r\n * @returns true if the provide object is of type FirebaseApp.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseApp(obj) {\r\n return obj.options !== undefined;\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp.\r\n *\r\n * @returns true if the provided object is of type FirebaseServerAppImpl.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseServerApp(obj) {\r\n return obj.settings !== undefined;\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call initializeApp() first',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}'\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */]: 'Firebase Server App has been deleted',\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */]: 'FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.',\r\n [\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */]: 'FirebaseServerApp is not for use in browser environments.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2023 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseServerAppImpl extends FirebaseAppImpl {\r\n constructor(options, serverConfig, name, container) {\r\n // Build configuration parameters for the FirebaseAppImpl base class.\r\n const automaticDataCollectionEnabled = serverConfig.automaticDataCollectionEnabled !== undefined\r\n ? serverConfig.automaticDataCollectionEnabled\r\n : false;\r\n // Create the FirebaseAppSettings object for the FirebaseAppImp constructor.\r\n const config = {\r\n name,\r\n automaticDataCollectionEnabled\r\n };\r\n if (options.apiKey !== undefined) {\r\n // Construct the parent FirebaseAppImp object.\r\n super(options, config, container);\r\n }\r\n else {\r\n const appImpl = options;\r\n super(appImpl.options, config, container);\r\n }\r\n // Now construct the data for the FirebaseServerAppImpl.\r\n this._serverConfig = Object.assign({ automaticDataCollectionEnabled }, serverConfig);\r\n this._finalizationRegistry = null;\r\n if (typeof FinalizationRegistry !== 'undefined') {\r\n this._finalizationRegistry = new FinalizationRegistry(() => {\r\n this.automaticCleanup();\r\n });\r\n }\r\n this._refCount = 0;\r\n this.incRefCount(this._serverConfig.releaseOnDeref);\r\n // Do not retain a hard reference to the dref object, otherwise the FinalizationRegistry\r\n // will never trigger.\r\n this._serverConfig.releaseOnDeref = undefined;\r\n serverConfig.releaseOnDeref = undefined;\r\n registerVersion(name$p, version$1, 'serverapp');\r\n }\r\n toJSON() {\r\n return undefined;\r\n }\r\n get refCount() {\r\n return this._refCount;\r\n }\r\n // Increment the reference count of this server app. If an object is provided, register it\r\n // with the finalization registry.\r\n incRefCount(obj) {\r\n if (this.isDeleted) {\r\n return;\r\n }\r\n this._refCount++;\r\n if (obj !== undefined && this._finalizationRegistry !== null) {\r\n this._finalizationRegistry.register(obj, this);\r\n }\r\n }\r\n // Decrement the reference count.\r\n decRefCount() {\r\n if (this.isDeleted) {\r\n return 0;\r\n }\r\n return --this._refCount;\r\n }\r\n // Invoked by the FinalizationRegistry callback to note that this app should go through its\r\n // reference counts and delete itself if no reference count remain. The coordinating logic that\r\n // handles this is in deleteApp(...).\r\n automaticCleanup() {\r\n void deleteApp(this);\r\n }\r\n get settings() {\r\n this.checkDestroyed();\r\n return this._serverConfig;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */);\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\nfunction initializeServerApp(_options, _serverAppConfig) {\r\n if (isBrowser() && !isWebWorker()) {\r\n // FirebaseServerApp isn't designed to be run in browsers.\r\n throw ERROR_FACTORY.create(\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */);\r\n }\r\n if (_serverAppConfig.automaticDataCollectionEnabled === undefined) {\r\n _serverAppConfig.automaticDataCollectionEnabled = false;\r\n }\r\n let appOptions;\r\n if (_isFirebaseApp(_options)) {\r\n appOptions = _options.options;\r\n }\r\n else {\r\n appOptions = _options;\r\n }\r\n // Build an app name based on a hash of the configuration options.\r\n const nameObj = Object.assign(Object.assign({}, _serverAppConfig), appOptions);\r\n // However, Do not mangle the name based on releaseOnDeref, since it will vary between the\r\n // construction of FirebaseServerApp instances. For example, if the object is the request headers.\r\n if (nameObj.releaseOnDeref !== undefined) {\r\n delete nameObj.releaseOnDeref;\r\n }\r\n const hashCode = (s) => {\r\n return [...s].reduce((hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0, 0);\r\n };\r\n if (_serverAppConfig.releaseOnDeref !== undefined) {\r\n if (typeof FinalizationRegistry === 'undefined') {\r\n throw ERROR_FACTORY.create(\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */, {});\r\n }\r\n }\r\n const nameString = '' + hashCode(JSON.stringify(nameObj));\r\n const existingApp = _serverApps.get(nameString);\r\n if (existingApp) {\r\n existingApp.incRefCount(_serverAppConfig.releaseOnDeref);\r\n return existingApp;\r\n }\r\n const container = new ComponentContainer(nameString);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseServerAppImpl(appOptions, _serverAppConfig, nameString, container);\r\n _serverApps.set(nameString, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n let cleanupProviders = false;\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n cleanupProviders = true;\r\n _apps.delete(name);\r\n }\r\n else if (_serverApps.has(name)) {\r\n const firebaseServerApp = app;\r\n if (firebaseServerApp.decRefCount() <= 0) {\r\n _serverApps.delete(name);\r\n cleanupProviders = true;\r\n }\r\n }\r\n if (cleanupProviders) {\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n try {\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n catch (e) {\r\n // Safari/iOS browsers throw occasional exceptions on\r\n // db.createObjectStore() that may be a bug. Avoid blocking\r\n // the rest of the app functionality.\r\n console.warn(e);\r\n }\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME);\r\n const result = await tx.objectStore(STORE_NAME).get(computeKey(app));\r\n // We already have the value but tx.done can throw,\r\n // so we need to await it here to catch errors\r\n await tx.done;\r\n return result;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n await tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n var _a, _b;\r\n try {\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n // If we failed to construct a heartbeats cache, then return immediately.\r\n if (((_b = this._heartbeatsCache) === null || _b === void 0 ? void 0 : _b.heartbeats) == null) {\r\n return;\r\n }\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats =\r\n this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n catch (e) {\r\n logger.warn(e);\r\n }\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n var _a;\r\n try {\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n catch (e) {\r\n logger.warn(e);\r\n return '';\r\n }\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n if (idbHeartbeatObject === null || idbHeartbeatObject === void 0 ? void 0 : idbHeartbeatObject.heartbeats) {\r\n return idbHeartbeatObject;\r\n }\r\n else {\r\n return { heartbeats: [] };\r\n }\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$p, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$p, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _isFirebaseApp, _isFirebaseServerApp, _registerComponent, _removeServiceInstance, _serverApps, deleteApp, getApp, getApps, initializeApp, initializeServerApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"10.13.1\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n"],"names":["stringToByteArray$1","str","out","p","i","c","byteArrayToString","bytes","pos","c1","c2","c3","c4","u","base64","input","webSafe","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","charToByteMap","byte4","DecodeBase64StringError","base64Encode","utf8Bytes","base64urlEncodeWithoutPadding","base64Decode","getGlobal","getDefaultsFromGlobal","getDefaultsFromEnvVariable","define_process_env_default","defaultsJsonString","getDefaultsFromCookie","match","decoded","getDefaults","e","getDefaultAppConfig","_a","Deferred","resolve","reject","callback","error","value","isIndexedDBAvailable","validateIndexedDBOpenable","preExist","DB_CHECK_NAME","request","ERROR_NAME","FirebaseError","code","message","customData","ErrorFactory","service","serviceName","errors","data","fullCode","template","replaceTemplate","fullMessage","PATTERN","_","key","deepEqual","a","b","aKeys","bKeys","k","aProp","bProp","isObject","thing","Component","name","instanceFactory","type","mode","multipleInstances","props","DEFAULT_ENTRY_NAME","Provider","container","identifier","normalizedIdentifier","deferred","instance","options","optional","component","isComponentEager","instanceIdentifier","instanceDeferred","services","opts","normalizedDeferredIdentifier","existingCallbacks","existingInstance","callbacks","normalizeIdentifierForFactory","ComponentContainer","provider","LogLevel","levelStringToEnum","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","args","now","method","Logger","val","instanceOfAny","object","constructors","idbProxyableTypes","cursorAdvanceMethods","getIdbProxyableTypes","getCursorAdvanceMethods","cursorRequestMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","promisifyRequest","promise","unlisten","success","wrap","cacheDonePromiseForTransaction","tx","done","complete","idbProxyTraps","target","prop","receiver","replaceTraps","wrapFunction","func","storeNames","unwrap","transformCachableValue","newValue","openDB","version","blocked","upgrade","blocking","terminated","openPromise","event","db","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","oldTraps","PlatformLoggerServiceImpl","isVersionServiceProvider","logString","name$p","version$1","logger","name$o","name$n","name$m","name$l","name$k","name$j","name$i","name$h","name$g","name$f","name$e","name$d","name$c","name$b","name$a","name$9","name$8","name$7","name$6","name$5","name$4","name$3","name$2","name$1","PLATFORM_LOG_STRING","_apps","_serverApps","_components","_addComponent","app","_registerComponent","componentName","serverApp","ERRORS","ERROR_FACTORY","FirebaseAppImpl","config","initializeApp","_options","rawConfig","existingApp","newApp","registerVersion","libraryKeyOrName","variant","library","libraryMismatch","versionMismatch","warning","DB_NAME","DB_VERSION","STORE_NAME","dbPromise","getDbPromise","oldVersion","readHeartbeatsFromIndexedDB","result","computeKey","idbGetError","writeHeartbeatsToIndexedDB","heartbeatObject","MAX_HEADER_BYTES","STORED_HEARTBEAT_RETENTION_MAX_MILLIS","HeartbeatServiceImpl","HeartbeatStorageImpl","_b","agent","date","getUTCDateString","singleDateHeartbeat","hbTimestamp","heartbeatsToSend","unsentEntries","extractHeartbeatsForHeader","headerString","heartbeatsCache","maxSize","heartbeatEntry","hb","countBytes","idbHeartbeatObject","heartbeatsObject","existingHeartbeatsObject","registerCoreComponents"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]} \ No newline at end of file diff --git a/Target/chunks/astro/server_C68CUl7v.mjs.map b/Target/chunks/astro/server_C68CUl7v.mjs.map deleted file mode 100644 index 9475728b..00000000 --- a/Target/chunks/astro/server_C68CUl7v.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"server_C68CUl7v.mjs","sources":["../../../../../../../node_modules/astro/dist/core/errors/errors-data.js","../../../../../../../node_modules/astro/dist/core/errors/utils.js","../../../../../../../node_modules/astro/dist/core/errors/printer.js","../../../../../../../node_modules/astro/dist/core/errors/errors.js","../../../../../../../node_modules/astro/dist/runtime/server/astro-component.js","../../../../../../../node_modules/astro/dist/core/constants.js","../../../../../../../node_modules/astro/dist/runtime/server/astro-global.js","../../../../../../../node_modules/astro/dist/runtime/server/util.js","../../../../../../../node_modules/astro/dist/runtime/server/escape.js","../../../../../../../node_modules/astro/dist/runtime/server/render/instruction.js","../../../../../../../node_modules/astro/dist/runtime/server/serialize.js","../../../../../../../node_modules/astro/dist/runtime/server/hydration.js","../../../../../../../node_modules/astro/dist/runtime/server/shorthash.js","../../../../../../../node_modules/astro/dist/runtime/server/render/astro/factory.js","../../../../../../../node_modules/astro/dist/runtime/server/render/astro/head-and-content.js","../../../../../../../node_modules/astro/dist/runtime/server/astro-island.prebuilt-dev.js","../../../../../../../node_modules/astro/dist/runtime/server/astro-island.prebuilt.js","../../../../../../../node_modules/astro/dist/runtime/server/scripts.js","../../../../../../../node_modules/astro/dist/runtime/server/render/util.js","../../../../../../../node_modules/astro/dist/runtime/server/render/head.js","../../../../../../../node_modules/astro/dist/runtime/server/render/astro/render-template.js","../../../../../../../node_modules/astro/dist/runtime/server/render/slot.js","../../../../../../../node_modules/astro/dist/runtime/server/render/common.js","../../../../../../../node_modules/astro/dist/runtime/server/render/any.js","../../../../../../../node_modules/astro/dist/runtime/server/render/astro/instance.js","../../../../../../../node_modules/astro/dist/runtime/server/render/dom.js","../../../../../../../node_modules/astro/dist/core/encryption.js","../../../../../../../node_modules/astro/dist/runtime/server/render/server-islands.js","../../../../../../../node_modules/astro/dist/runtime/server/render/component.js","../../../../../../../node_modules/astro/dist/runtime/server/render/script.js","../../../../../../../node_modules/astro/dist/runtime/server/transition.js","../../../../../../../node_modules/astro/dist/runtime/server/index.js"],"sourcesContent":["const UnknownCompilerError = {\n name: \"UnknownCompilerError\",\n title: \"Unknown compiler error.\",\n hint: \"This is almost always a problem with the Astro compiler, not your code. Please open an issue at https://astro.build/issues/compiler.\"\n};\nconst StaticRedirectNotAvailable = {\n name: \"StaticRedirectNotAvailable\",\n title: \"`Astro.redirect` is not available in static mode.\",\n message: \"Redirects are only available when using `output: 'server'` or `output: 'hybrid'`. Update your Astro config if you need SSR features.\",\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information on how to enable SSR.\"\n};\nconst ClientAddressNotAvailable = {\n name: \"ClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` is not available in current adapter.\",\n message: (adapterName) => `\\`Astro.clientAddress\\` is not available in the \\`${adapterName}\\` adapter. File an issue with the adapter to add support.`\n};\nconst PrerenderClientAddressNotAvailable = {\n name: \"PrerenderClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` cannot be used inside prerendered routes.\",\n message: `\\`Astro.clientAddress\\` cannot be used inside prerendered routes`\n};\nconst StaticClientAddressNotAvailable = {\n name: \"StaticClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` is not available in static mode.\",\n message: \"`Astro.clientAddress` is only available when using `output: 'server'` or `output: 'hybrid'`. Update your Astro config if you need SSR features.\",\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information on how to enable SSR.\"\n};\nconst NoMatchingStaticPathFound = {\n name: \"NoMatchingStaticPathFound\",\n title: \"No static path found for requested path.\",\n message: (pathName) => `A \\`getStaticPaths()\\` route pattern was matched, but no matching static path was found for requested path \\`${pathName}\\`.`,\n hint: (possibleRoutes) => `Possible dynamic routes being matched: ${possibleRoutes.join(\", \")}.`\n};\nconst OnlyResponseCanBeReturned = {\n name: \"OnlyResponseCanBeReturned\",\n title: \"Invalid type returned by Astro page.\",\n message: (route, returnedValue) => `Route \\`${route ? route : \"\"}\\` returned a \\`${returnedValue}\\`. Only a [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) can be returned from Astro files.`,\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/#response for more information.\"\n};\nconst MissingMediaQueryDirective = {\n name: \"MissingMediaQueryDirective\",\n title: \"Missing value for `client:media` directive.\",\n message: 'Media query not provided for `client:media` directive. A media query similar to `client:media=\"(max-width: 600px)\"` must be provided'\n};\nconst NoMatchingRenderer = {\n name: \"NoMatchingRenderer\",\n title: \"No matching renderer found.\",\n message: (componentName, componentExtension, plural, validRenderersCount) => `Unable to render \\`${componentName}\\`.\n\n${validRenderersCount > 0 ? `There ${plural ? \"are\" : \"is\"} ${validRenderersCount} renderer${plural ? \"s\" : \"\"} configured in your \\`astro.config.mjs\\` file,\nbut ${plural ? \"none were\" : \"it was not\"} able to server-side render \\`${componentName}\\`.` : `No valid renderer was found ${componentExtension ? `for the \\`.${componentExtension}\\` file extension.` : `for this file extension.`}`}`,\n hint: (probableRenderers) => `Did you mean to enable the ${probableRenderers} integration?\n\nSee https://docs.astro.build/en/guides/framework-components/ for more information on how to install and configure integrations.`\n};\nconst NoClientEntrypoint = {\n name: \"NoClientEntrypoint\",\n title: \"No client entrypoint specified in renderer.\",\n message: (componentName, clientDirective, rendererName) => `\\`${componentName}\\` component has a \\`client:${clientDirective}\\` directive, but no client entrypoint was provided by \\`${rendererName}\\`.`,\n hint: \"See https://docs.astro.build/en/reference/integrations-reference/#addrenderer-option for more information on how to configure your renderer.\"\n};\nconst NoClientOnlyHint = {\n name: \"NoClientOnlyHint\",\n title: \"Missing hint on client:only directive.\",\n message: (componentName) => `Unable to render \\`${componentName}\\`. When using the \\`client:only\\` hydration strategy, Astro needs a hint to use the correct renderer.`,\n hint: (probableRenderers) => `Did you mean to pass \\`client:only=\"${probableRenderers}\"\\`? See https://docs.astro.build/en/reference/directives-reference/#clientonly for more information on client:only`\n};\nconst InvalidGetStaticPathParam = {\n name: \"InvalidGetStaticPathParam\",\n title: \"Invalid value returned by a `getStaticPaths` path.\",\n message: (paramType) => `Invalid params given to \\`getStaticPaths\\` path. Expected an \\`object\\`, got \\`${paramType}\\``,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst InvalidGetStaticPathsEntry = {\n name: \"InvalidGetStaticPathsEntry\",\n title: \"Invalid entry inside getStaticPath's return value\",\n message: (entryType) => `Invalid entry returned by getStaticPaths. Expected an object, got \\`${entryType}\\``,\n hint: \"If you're using a `.map` call, you might be looking for `.flatMap()` instead. See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst InvalidGetStaticPathsReturn = {\n name: \"InvalidGetStaticPathsReturn\",\n title: \"Invalid value returned by getStaticPaths.\",\n message: (returnType) => `Invalid type returned by \\`getStaticPaths\\`. Expected an \\`array\\`, got \\`${returnType}\\``,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsRemovedRSSHelper = {\n name: \"GetStaticPathsRemovedRSSHelper\",\n title: \"getStaticPaths RSS helper is not available anymore.\",\n message: \"The RSS helper has been removed from `getStaticPaths`. Try the new @astrojs/rss package instead.\",\n hint: \"See https://docs.astro.build/en/guides/rss/ for more information.\"\n};\nconst GetStaticPathsExpectedParams = {\n name: \"GetStaticPathsExpectedParams\",\n title: \"Missing params property on `getStaticPaths` route.\",\n message: \"Missing or empty required `params` property on `getStaticPaths` route.\",\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsInvalidRouteParam = {\n name: \"GetStaticPathsInvalidRouteParam\",\n title: \"Invalid value for `getStaticPaths` route parameter.\",\n message: (key, value, valueType) => `Invalid getStaticPaths route parameter for \\`${key}\\`. Expected undefined, a string or a number, received \\`${valueType}\\` (\\`${value}\\`)`,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsRequired = {\n name: \"GetStaticPathsRequired\",\n title: \"`getStaticPaths()` function required for dynamic routes.\",\n message: \"`getStaticPaths()` function is required for dynamic routes. Make sure that you `export` a `getStaticPaths` function from your dynamic route.\",\n hint: `See https://docs.astro.build/en/guides/routing/#dynamic-routes for more information on dynamic routes.\n\nAlternatively, set \\`output: \"server\"\\` or \\`output: \"hybrid\"\\` in your Astro config file to switch to a non-static server build. This error can also occur if using \\`export const prerender = true;\\`.\nSee https://docs.astro.build/en/guides/server-side-rendering/ for more information on non-static rendering.`\n};\nconst ReservedSlotName = {\n name: \"ReservedSlotName\",\n title: \"Invalid slot name.\",\n message: (slotName) => `Unable to create a slot named \\`${slotName}\\`. \\`${slotName}\\` is a reserved slot name. Please update the name of this slot.`\n};\nconst NoAdapterInstalled = {\n name: \"NoAdapterInstalled\",\n title: \"Cannot use Server-side Rendering without an adapter.\",\n message: `Cannot use \\`output: 'server'\\` or \\`output: 'hybrid'\\` without an adapter. Please install and configure the appropriate server adapter for your final deployment.`,\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information.\"\n};\nconst NoMatchingImport = {\n name: \"NoMatchingImport\",\n title: \"No import found for component.\",\n message: (componentName) => `Could not render \\`${componentName}\\`. No matching import has been found for \\`${componentName}\\`.`,\n hint: \"Please make sure the component is properly imported.\"\n};\nconst InvalidPrerenderExport = {\n name: \"InvalidPrerenderExport\",\n title: \"Invalid prerender export.\",\n message(prefix, suffix, isHydridOutput) {\n const defaultExpectedValue = isHydridOutput ? \"false\" : \"true\";\n let msg = `A \\`prerender\\` export has been detected, but its value cannot be statically analyzed.`;\n if (prefix !== \"const\") msg += `\nExpected \\`const\\` declaration but got \\`${prefix}\\`.`;\n if (suffix !== \"true\")\n msg += `\nExpected \\`${defaultExpectedValue}\\` value but got \\`${suffix}\\`.`;\n return msg;\n },\n hint: \"Mutable values declared at runtime are not supported. Please make sure to use exactly `export const prerender = true`.\"\n};\nconst InvalidComponentArgs = {\n name: \"InvalidComponentArgs\",\n title: \"Invalid component arguments.\",\n message: (name) => `Invalid arguments passed to${name ? ` <${name}>` : \"\"} component.`,\n hint: \"Astro components cannot be rendered directly via function call, such as `Component()` or `{items.map(Component)}`.\"\n};\nconst PageNumberParamNotFound = {\n name: \"PageNumberParamNotFound\",\n title: \"Page number param not found.\",\n message: (paramName) => `[paginate()] page number param \\`${paramName}\\` not found in your filepath.`,\n hint: \"Rename your file to `[page].astro` or `[...page].astro`.\"\n};\nconst ImageMissingAlt = {\n name: \"ImageMissingAlt\",\n title: 'Image missing required \"alt\" property.',\n message: 'Image missing \"alt\" property. \"alt\" text is required to describe important images on the page.',\n hint: 'Use an empty string (\"\") for decorative images.'\n};\nconst InvalidImageService = {\n name: \"InvalidImageService\",\n title: \"Error while loading image service.\",\n message: \"There was an error loading the configured image service. Please see the stack trace for more information.\"\n};\nconst MissingImageDimension = {\n name: \"MissingImageDimension\",\n title: \"Missing image dimensions\",\n message: (missingDimension, imageURL) => `Missing ${missingDimension === \"both\" ? \"width and height attributes\" : `${missingDimension} attribute`} for ${imageURL}. When using remote images, both dimensions are required unless in order to avoid CLS.`,\n hint: \"If your image is inside your `src` folder, you probably meant to import it instead. See [the Imports guide for more information](https://docs.astro.build/en/guides/imports/#other-assets). You can also use `inferSize={true}` for remote images to get the original dimensions.\"\n};\nconst FailedToFetchRemoteImageDimensions = {\n name: \"FailedToFetchRemoteImageDimensions\",\n title: \"Failed to retrieve remote image dimensions\",\n message: (imageURL) => `Failed to get the dimensions for ${imageURL}.`,\n hint: \"Verify your remote image URL is accurate, and that you are not using `inferSize` with a file located in your `public/` folder.\"\n};\nconst UnsupportedImageFormat = {\n name: \"UnsupportedImageFormat\",\n title: \"Unsupported image format\",\n message: (format, imagePath, supportedFormats) => `Received unsupported format \\`${format}\\` from \\`${imagePath}\\`. Currently only ${supportedFormats.join(\n \", \"\n )} are supported by our image services.`,\n hint: \"Using an `img` tag directly instead of the `Image` component might be what you're looking for.\"\n};\nconst UnsupportedImageConversion = {\n name: \"UnsupportedImageConversion\",\n title: \"Unsupported image conversion\",\n message: \"Converting between vector (such as SVGs) and raster (such as PNGs and JPEGs) images is not currently supported.\"\n};\nconst PrerenderDynamicEndpointPathCollide = {\n name: \"PrerenderDynamicEndpointPathCollide\",\n title: \"Prerendered dynamic endpoint has path collision.\",\n message: (pathname) => `Could not render \\`${pathname}\\` with an \\`undefined\\` param as the generated path will collide during prerendering. Prevent passing \\`undefined\\` as \\`params\\` for the endpoint's \\`getStaticPaths()\\` function, or add an additional extension to the endpoint's filename.`,\n hint: (filename) => `Rename \\`${filename}\\` to \\`${filename.replace(/\\.(?:js|ts)/, (m) => `.json` + m)}\\``\n};\nconst ExpectedImage = {\n name: \"ExpectedImage\",\n title: \"Expected src to be an image.\",\n message: (src, typeofOptions, fullOptions) => `Expected \\`src\\` property for \\`getImage\\` or \\`\\` to be either an ESM imported image or a string with the path of a remote image. Received \\`${src}\\` (type: \\`${typeofOptions}\\`).\n\nFull serialized options received: \\`${fullOptions}\\`.`,\n hint: \"This error can often happen because of a wrong path. Make sure the path to your image is correct. If you're passing an async function, make sure to call and await it.\"\n};\nconst ExpectedImageOptions = {\n name: \"ExpectedImageOptions\",\n title: \"Expected image options.\",\n message: (options) => `Expected getImage() parameter to be an object. Received \\`${options}\\`.`\n};\nconst ExpectedNotESMImage = {\n name: \"ExpectedNotESMImage\",\n title: \"Expected image options, not an ESM-imported image.\",\n message: \"An ESM-imported image cannot be passed directly to `getImage()`. Instead, pass an object with the image in the `src` property.\",\n hint: \"Try changing `getImage(myImage)` to `getImage({ src: myImage })`\"\n};\nconst IncompatibleDescriptorOptions = {\n name: \"IncompatibleDescriptorOptions\",\n title: \"Cannot set both `densities` and `widths`\",\n message: \"Only one of `densities` or `widths` can be specified. In most cases, you'll probably want to use only `widths` if you require specific widths.\",\n hint: \"Those attributes are used to construct a `srcset` attribute, which cannot have both `x` and `w` descriptors.\"\n};\nconst ImageNotFound = {\n name: \"ImageNotFound\",\n title: \"Image not found.\",\n message: (imagePath) => `Could not find requested image \\`${imagePath}\\`. Does it exist?`,\n hint: \"This is often caused by a typo in the image path. Please make sure the file exists, and is spelled correctly.\"\n};\nconst NoImageMetadata = {\n name: \"NoImageMetadata\",\n title: \"Could not process image metadata.\",\n message: (imagePath) => `Could not process image metadata${imagePath ? ` for \\`${imagePath}\\`` : \"\"}.`,\n hint: \"This is often caused by a corrupted or malformed image. Re-exporting the image from your image editor may fix this issue.\"\n};\nconst MarkdownImageNotFound = {\n name: \"MarkdownImageNotFound\",\n title: \"Image not found.\",\n message: (imagePath, fullImagePath) => `Could not find requested image \\`${imagePath}\\`${fullImagePath ? ` at \\`${fullImagePath}\\`.` : \".\"}`,\n hint: \"This is often caused by a typo in the image path. Please make sure the file exists, and is spelled correctly.\"\n};\nconst CouldNotTransformImage = {\n name: \"CouldNotTransformImage\",\n title: \"Could not transform image.\",\n message: (imagePath) => `Could not transform image \\`${imagePath}\\`. See the stack trace for more information.`,\n hint: \"This is often caused by a corrupted or malformed image. Re-exporting the image from your image editor may fix this issue.\"\n};\nconst ResponseSentError = {\n name: \"ResponseSentError\",\n title: \"Unable to set response.\",\n message: \"The response has already been sent to the browser and cannot be altered.\"\n};\nconst MiddlewareNoDataOrNextCalled = {\n name: \"MiddlewareNoDataOrNextCalled\",\n title: \"The middleware didn't return a `Response`.\",\n message: \"Make sure your middleware returns a `Response` object, either directly or by returning the `Response` from calling the `next` function.\"\n};\nconst MiddlewareNotAResponse = {\n name: \"MiddlewareNotAResponse\",\n title: \"The middleware returned something that is not a `Response` object.\",\n message: \"Any data returned from middleware must be a valid `Response` object.\"\n};\nconst EndpointDidNotReturnAResponse = {\n name: \"EndpointDidNotReturnAResponse\",\n title: \"The endpoint did not return a `Response`.\",\n message: \"An endpoint must return either a `Response`, or a `Promise` that resolves with a `Response`.\"\n};\nconst LocalsNotAnObject = {\n name: \"LocalsNotAnObject\",\n title: \"Value assigned to `locals` is not accepted.\",\n message: \"`locals` can only be assigned to an object. Other values like numbers, strings, etc. are not accepted.\",\n hint: \"If you tried to remove some information from the `locals` object, try to use `delete` or set the property to `undefined`.\"\n};\nconst AstroResponseHeadersReassigned = {\n name: \"AstroResponseHeadersReassigned\",\n title: \"`Astro.response.headers` must not be reassigned.\",\n message: \"Individual headers can be added to and removed from `Astro.response.headers`, but it must not be replaced with another instance of `Headers` altogether.\",\n hint: \"Consider using `Astro.response.headers.add()`, and `Astro.response.headers.delete()`.\"\n};\nconst MiddlewareCantBeLoaded = {\n name: \"MiddlewareCantBeLoaded\",\n title: \"Can't load the middleware.\",\n message: \"An unknown error was thrown while loading your middleware.\"\n};\nconst LocalImageUsedWrongly = {\n name: \"LocalImageUsedWrongly\",\n title: \"Local images must be imported.\",\n message: (imageFilePath) => `\\`Image\\`'s and \\`getImage\\`'s \\`src\\` parameter must be an imported image or an URL, it cannot be a string filepath. Received \\`${imageFilePath}\\`.`,\n hint: \"If you want to use an image from your `src` folder, you need to either import it or if the image is coming from a content collection, use the [image() schema helper](https://docs.astro.build/en/guides/images/#images-in-content-collections). See https://docs.astro.build/en/guides/images/#src-required for more information on the `src` property.\"\n};\nconst AstroGlobUsedOutside = {\n name: \"AstroGlobUsedOutside\",\n title: \"Astro.glob() used outside of an Astro file.\",\n message: (globStr) => `\\`Astro.glob(${globStr})\\` can only be used in \\`.astro\\` files. \\`import.meta.glob(${globStr})\\` can be used instead to achieve a similar result.`,\n hint: \"See Vite's documentation on `import.meta.glob` for more information: https://vitejs.dev/guide/features.html#glob-import\"\n};\nconst AstroGlobNoMatch = {\n name: \"AstroGlobNoMatch\",\n title: \"Astro.glob() did not match any files.\",\n message: (globStr) => `\\`Astro.glob(${globStr})\\` did not return any matching files.`,\n hint: \"Check the pattern for typos.\"\n};\nconst RedirectWithNoLocation = {\n name: \"RedirectWithNoLocation\",\n title: \"A redirect must be given a location with the `Location` header.\"\n};\nconst InvalidDynamicRoute = {\n name: \"InvalidDynamicRoute\",\n title: \"Invalid dynamic route.\",\n message: (route, invalidParam, received) => `The ${invalidParam} param for route ${route} is invalid. Received **${received}**.`\n};\nconst MissingSharp = {\n name: \"MissingSharp\",\n title: \"Could not find Sharp.\",\n message: \"Could not find Sharp. Please install Sharp (`sharp`) manually into your project or migrate to another image service.\",\n hint: \"See Sharp's installation instructions for more information: https://sharp.pixelplumbing.com/install. If you are not relying on `astro:assets` to optimize, transform, or process any images, you can configure a passthrough image service instead of installing Sharp. See https://docs.astro.build/en/reference/errors/missing-sharp for more information.\\n\\nSee https://docs.astro.build/en/guides/images/#default-image-service for more information on how to migrate to another image service.\"\n};\nconst UnknownViteError = {\n name: \"UnknownViteError\",\n title: \"Unknown Vite Error.\"\n};\nconst FailedToLoadModuleSSR = {\n name: \"FailedToLoadModuleSSR\",\n title: \"Could not import file.\",\n message: (importName) => `Could not import \\`${importName}\\`.`,\n hint: \"This is often caused by a typo in the import path. Please make sure the file exists.\"\n};\nconst InvalidGlob = {\n name: \"InvalidGlob\",\n title: \"Invalid glob pattern.\",\n message: (globPattern) => `Invalid glob pattern: \\`${globPattern}\\`. Glob patterns must start with './', '../' or '/'.`,\n hint: \"See https://docs.astro.build/en/guides/imports/#glob-patterns for more information on supported glob patterns.\"\n};\nconst FailedToFindPageMapSSR = {\n name: \"FailedToFindPageMapSSR\",\n title: \"Astro couldn't find the correct page to render\",\n message: \"Astro couldn't find the correct page to render, probably because it wasn't correctly mapped for SSR usage. This is an internal error. Please file an issue.\"\n};\nconst MissingLocale = {\n name: \"MissingLocaleError\",\n title: \"The provided locale does not exist.\",\n message: (locale) => `The locale/path \\`${locale}\\` does not exist in the configured \\`i18n.locales\\`.`\n};\nconst MissingIndexForInternationalization = {\n name: \"MissingIndexForInternationalizationError\",\n title: \"Index page not found.\",\n message: (defaultLocale) => `Could not find index page. A root index page is required in order to create a redirect to the index URL of the default locale. (\\`/${defaultLocale}\\`)`,\n hint: (src) => `Create an index page (\\`index.astro, index.md, etc.\\`) in \\`${src}\\`.`\n};\nconst IncorrectStrategyForI18n = {\n name: \"IncorrectStrategyForI18n\",\n title: \"You can't use the current function with the current strategy\",\n message: (functionName) => `The function \\`${functionName}\\` can only be used when the \\`i18n.routing.strategy\\` is set to \\`\"manual\"\\`.`\n};\nconst NoPrerenderedRoutesWithDomains = {\n name: \"NoPrerenderedRoutesWithDomains\",\n title: \"Prerendered routes aren't supported when internationalization domains are enabled.\",\n message: (component) => `Static pages aren't yet supported with multiple domains. To enable this feature, you must disable prerendering for the page ${component}`\n};\nconst MissingMiddlewareForInternationalization = {\n name: \"MissingMiddlewareForInternationalization\",\n title: \"Enabled manual internationalization routing without having a middleware.\",\n message: \"Your configuration setting `i18n.routing: 'manual'` requires you to provide your own i18n `middleware` file.\"\n};\nconst RewriteEncounteredAnError = {\n name: \"RewriteEncounteredAnError\",\n title: \"Astro couldn't find the route to rewrite, or if was found but it emitted an error during the rendering phase.\",\n message: (route, stack) => `The route ${route} that you tried to render doesn't exist, or it emitted an error during the rendering phase. ${stack ? stack : \"\"}.`\n};\nconst CantRenderPage = {\n name: \"CantRenderPage\",\n title: \"Astro can't render the route.\",\n message: \"Astro cannot find any content to render for this route. There is no file or redirect associated with this route.\",\n hint: \"If you expect to find a route here, this may be an Astro bug. Please file an issue/restart the dev server\"\n};\nconst UnhandledRejection = {\n name: \"UnhandledRejection\",\n title: \"Unhandled rejection\",\n message: (stack) => `Astro detected an unhandled rejection. Here's the stack trace:\n${stack}`,\n hint: \"Make sure your promises all have an `await` or a `.catch()` handler.\"\n};\nconst i18nNotEnabled = {\n name: \"i18nNotEnabled\",\n title: \"i18n Not Enabled\",\n message: \"The `astro:i18n` module can not be used without enabling i18n in your Astro config.\",\n hint: \"See https://docs.astro.build/en/guides/internationalization for a guide on setting up i18n.\"\n};\nconst i18nNoLocaleFoundInPath = {\n name: \"i18nNoLocaleFoundInPath\",\n title: \"The path doesn't contain any locale\",\n message: \"You tried to use an i18n utility on a path that doesn't contain any locale. You can use `pathHasLocale` first to determine if the path has a locale.\"\n};\nconst RouteNotFound = {\n name: \"RouteNotFound\",\n title: \"Route not found.\",\n message: `Astro could not find a route that matches the one you requested.`\n};\nconst EnvInvalidVariables = {\n name: \"EnvInvalidVariables\",\n title: \"Invalid Environment Variables\",\n message: (errors) => `The following environment variables defined in \\`experimental.env.schema\\` are invalid:\n\n${errors.map((err) => `- ${err}`).join(\"\\n\")}\n`\n};\nconst EnvUnsupportedGetSecret = {\n name: \"EnvUnsupportedGetSecret\",\n title: \"Unsupported astro:env getSecret\",\n message: \"`astro:env/server` exported function `getSecret` is not supported by your adapter.\"\n};\nconst ServerOnlyModule = {\n name: \"ServerOnlyModule\",\n title: \"Module is only available server-side\",\n message: (name) => `The \"${name}\" module is only available server-side.`\n};\nconst RewriteWithBodyUsed = {\n name: \"RewriteWithBodyUsed\",\n title: \"Cannot use Astro.rewrite after the request body has been read\",\n message: \"Astro.rewrite() cannot be used if the request body has already been read. If you need to read the body, first clone the request.\"\n};\nconst UnknownFilesystemError = {\n name: \"UnknownFilesystemError\",\n title: \"An unknown error occurred while reading or writing files to disk.\",\n hint: \"It can be caused by many things, eg. missing permissions or a file not existing we attempt to read. Check the error cause for more details.\"\n};\nconst UnknownCSSError = {\n name: \"UnknownCSSError\",\n title: \"Unknown CSS Error.\"\n};\nconst CSSSyntaxError = {\n name: \"CSSSyntaxError\",\n title: \"CSS Syntax Error.\"\n};\nconst UnknownMarkdownError = {\n name: \"UnknownMarkdownError\",\n title: \"Unknown Markdown Error.\"\n};\nconst MarkdownFrontmatterParseError = {\n name: \"MarkdownFrontmatterParseError\",\n title: \"Failed to parse Markdown frontmatter.\"\n};\nconst InvalidFrontmatterInjectionError = {\n name: \"InvalidFrontmatterInjectionError\",\n title: \"Invalid frontmatter injection.\",\n message: 'A remark or rehype plugin attempted to inject invalid frontmatter. Ensure \"astro.frontmatter\" is set to a valid JSON object that is not `null` or `undefined`.',\n hint: \"See the frontmatter injection docs https://docs.astro.build/en/guides/markdown-content/#modifying-frontmatter-programmatically for more information.\"\n};\nconst MdxIntegrationMissingError = {\n name: \"MdxIntegrationMissingError\",\n title: \"MDX integration missing.\",\n message: (file) => `Unable to render ${file}. Ensure that the \\`@astrojs/mdx\\` integration is installed.`,\n hint: \"See the MDX integration docs for installation and usage instructions: https://docs.astro.build/en/guides/integrations-guide/mdx/\"\n};\nconst UnknownConfigError = {\n name: \"UnknownConfigError\",\n title: \"Unknown configuration error.\"\n};\nconst ConfigNotFound = {\n name: \"ConfigNotFound\",\n title: \"Specified configuration file not found.\",\n message: (configFile) => `Unable to resolve \\`--config \"${configFile}\"\\`. Does the file exist?`\n};\nconst ConfigLegacyKey = {\n name: \"ConfigLegacyKey\",\n title: \"Legacy configuration detected.\",\n message: (legacyConfigKey) => `Legacy configuration detected: \\`${legacyConfigKey}\\`.`,\n hint: \"Please update your configuration to the new format.\\nSee https://astro.build/config for more information.\"\n};\nconst UnknownCLIError = {\n name: \"UnknownCLIError\",\n title: \"Unknown CLI Error.\"\n};\nconst GenerateContentTypesError = {\n name: \"GenerateContentTypesError\",\n title: \"Failed to generate content types.\",\n message: (errorMessage) => `\\`astro sync\\` command failed to generate content collection types: ${errorMessage}`,\n hint: \"Check your `src/content/config.*` file for typos.\"\n};\nconst UnknownContentCollectionError = {\n name: \"UnknownContentCollectionError\",\n title: \"Unknown Content Collection Error.\"\n};\nconst GetEntryDeprecationError = {\n name: \"GetEntryDeprecationError\",\n title: \"Invalid use of `getDataEntryById` or `getEntryBySlug` function.\",\n message: (collection, method) => `The \\`${method}\\` function is deprecated and cannot be used to query the \"${collection}\" collection. Use \\`getEntry\\` instead.`,\n hint: \"Use the `getEntry` or `getCollection` functions to query content layer collections.\"\n};\nconst InvalidContentEntryFrontmatterError = {\n name: \"InvalidContentEntryFrontmatterError\",\n title: \"Content entry frontmatter does not match schema.\",\n message(collection, entryId, error) {\n return [\n `**${String(collection)} \\u2192 ${String(\n entryId\n )}** frontmatter does not match collection schema.`,\n ...error.errors.map((zodError) => zodError.message)\n ].join(\"\\n\");\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.\"\n};\nconst InvalidContentEntrySlugError = {\n name: \"InvalidContentEntrySlugError\",\n title: \"Invalid content entry slug.\",\n message(collection, entryId) {\n return `${String(collection)} \\u2192 ${String(\n entryId\n )} has an invalid slug. \\`slug\\` must be a string.`;\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on the `slug` field.\"\n};\nconst ContentSchemaContainsSlugError = {\n name: \"ContentSchemaContainsSlugError\",\n title: \"Content Schema should not contain `slug`.\",\n message: (collectionName) => `A content collection schema should not contain \\`slug\\` since it is reserved for slug generation. Remove this from your ${collectionName} collection schema.`,\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on the `slug` field.\"\n};\nconst CollectionDoesNotExistError = {\n name: \"CollectionDoesNotExistError\",\n title: \"Collection does not exist\",\n message: (collectionName) => `The collection **${collectionName}** does not exist. Ensure a collection directory with this name exists.`,\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on creating collections.\"\n};\nconst MixedContentDataCollectionError = {\n name: \"MixedContentDataCollectionError\",\n title: \"Content and data cannot be in same collection.\",\n message: (collectionName) => `**${collectionName}** contains a mix of content and data entries. All entries must be of the same type.`,\n hint: \"Store data entries in a new collection separate from your content collection.\"\n};\nconst ContentCollectionTypeMismatchError = {\n name: \"ContentCollectionTypeMismatchError\",\n title: \"Collection contains entries of a different type.\",\n message: (collection, expectedType, actualType) => `${collection} contains ${expectedType} entries, but is configured as a ${actualType} collection.`\n};\nconst DataCollectionEntryParseError = {\n name: \"DataCollectionEntryParseError\",\n title: \"Data collection entry failed to parse.\",\n message(entryId, errorMessage) {\n return `**${entryId}** failed to parse: ${errorMessage}`;\n },\n hint: \"Ensure your data entry is an object with valid JSON (for `.json` entries) or YAML (for `.yaml` entries).\"\n};\nconst DuplicateContentEntrySlugError = {\n name: \"DuplicateContentEntrySlugError\",\n title: \"Duplicate content entry slug.\",\n message(collection, slug, preExisting, alsoFound) {\n return `**${collection}** contains multiple entries with the same slug: \\`${slug}\\`. Slugs must be unique.\n\nEntries: \n- ${preExisting}\n- ${alsoFound}`;\n }\n};\nconst UnsupportedConfigTransformError = {\n name: \"UnsupportedConfigTransformError\",\n title: \"Unsupported transform in content config.\",\n message: (parseError) => `\\`transform()\\` functions in your content config must return valid JSON, or data types compatible with the devalue library (including Dates, Maps, and Sets).\nFull error: ${parseError}`,\n hint: \"See the devalue library for all supported types: https://github.com/rich-harris/devalue\"\n};\nconst ActionsWithoutServerOutputError = {\n name: \"ActionsWithoutServerOutputError\",\n title: \"Actions must be used with server output.\",\n message: \"Actions enabled without setting a server build output. A server is required to create callable backend functions. To deploy routes to a server, add a server adapter to your astro config.\",\n hint: \"Learn about on-demand rendering: https://docs.astro.build/en/basics/rendering-modes/#on-demand-rendered\"\n};\nconst ActionsUsedWithForGetError = {\n name: \"ActionsUsedWithForGetError\",\n title: \"An invalid Action query string was passed by a form.\",\n message: (actionName) => `Action ${actionName} was called from a form using a GET request, but only POST requests are supported. This often occurs if \\`method=\"POST\"\\` is missing on the form.`,\n hint: \"Actions are experimental. Visit the RFC for usage instructions: https://github.com/withastro/roadmap/blob/actions/proposals/0046-actions.md\"\n};\nconst ActionQueryStringInvalidError = {\n name: \"ActionQueryStringInvalidError\",\n title: \"An invalid Action query string was passed by a form.\",\n message: (actionName) => `The server received the query string \\`?_astroAction=${actionName}\\`, but could not find an action with that name. If you changed an action's name in development, remove this query param from your URL and refresh.`,\n hint: \"Actions are experimental. Visit the RFC for usage instructions: https://github.com/withastro/roadmap/blob/actions/proposals/0046-actions.md\"\n};\nconst ActionCalledFromServerError = {\n name: \"ActionCalledFromServerError\",\n title: \"Action unexpected called from the server.\",\n message: \"Action called from a server page or endpoint without using `Astro.callAction()`.\",\n hint: \"See the RFC section on server calls for usage instructions: https://github.com/withastro/roadmap/blob/actions/proposals/0046-actions.md#call-actions-directly-from-server-code\"\n};\nconst UnknownError = { name: \"UnknownError\", title: \"Unknown Error.\" };\nexport {\n ActionCalledFromServerError,\n ActionQueryStringInvalidError,\n ActionsUsedWithForGetError,\n ActionsWithoutServerOutputError,\n AstroGlobNoMatch,\n AstroGlobUsedOutside,\n AstroResponseHeadersReassigned,\n CSSSyntaxError,\n CantRenderPage,\n ClientAddressNotAvailable,\n CollectionDoesNotExistError,\n ConfigLegacyKey,\n ConfigNotFound,\n ContentCollectionTypeMismatchError,\n ContentSchemaContainsSlugError,\n CouldNotTransformImage,\n DataCollectionEntryParseError,\n DuplicateContentEntrySlugError,\n EndpointDidNotReturnAResponse,\n EnvInvalidVariables,\n EnvUnsupportedGetSecret,\n ExpectedImage,\n ExpectedImageOptions,\n ExpectedNotESMImage,\n FailedToFetchRemoteImageDimensions,\n FailedToFindPageMapSSR,\n FailedToLoadModuleSSR,\n GenerateContentTypesError,\n GetEntryDeprecationError,\n GetStaticPathsExpectedParams,\n GetStaticPathsInvalidRouteParam,\n GetStaticPathsRemovedRSSHelper,\n GetStaticPathsRequired,\n ImageMissingAlt,\n ImageNotFound,\n IncompatibleDescriptorOptions,\n IncorrectStrategyForI18n,\n InvalidComponentArgs,\n InvalidContentEntryFrontmatterError,\n InvalidContentEntrySlugError,\n InvalidDynamicRoute,\n InvalidFrontmatterInjectionError,\n InvalidGetStaticPathParam,\n InvalidGetStaticPathsEntry,\n InvalidGetStaticPathsReturn,\n InvalidGlob,\n InvalidImageService,\n InvalidPrerenderExport,\n LocalImageUsedWrongly,\n LocalsNotAnObject,\n MarkdownFrontmatterParseError,\n MarkdownImageNotFound,\n MdxIntegrationMissingError,\n MiddlewareCantBeLoaded,\n MiddlewareNoDataOrNextCalled,\n MiddlewareNotAResponse,\n MissingImageDimension,\n MissingIndexForInternationalization,\n MissingLocale,\n MissingMediaQueryDirective,\n MissingMiddlewareForInternationalization,\n MissingSharp,\n MixedContentDataCollectionError,\n NoAdapterInstalled,\n NoClientEntrypoint,\n NoClientOnlyHint,\n NoImageMetadata,\n NoMatchingImport,\n NoMatchingRenderer,\n NoMatchingStaticPathFound,\n NoPrerenderedRoutesWithDomains,\n OnlyResponseCanBeReturned,\n PageNumberParamNotFound,\n PrerenderClientAddressNotAvailable,\n PrerenderDynamicEndpointPathCollide,\n RedirectWithNoLocation,\n ReservedSlotName,\n ResponseSentError,\n RewriteEncounteredAnError,\n RewriteWithBodyUsed,\n RouteNotFound,\n ServerOnlyModule,\n StaticClientAddressNotAvailable,\n StaticRedirectNotAvailable,\n UnhandledRejection,\n UnknownCLIError,\n UnknownCSSError,\n UnknownCompilerError,\n UnknownConfigError,\n UnknownContentCollectionError,\n UnknownError,\n UnknownFilesystemError,\n UnknownMarkdownError,\n UnknownViteError,\n UnsupportedConfigTransformError,\n UnsupportedImageConversion,\n UnsupportedImageFormat,\n i18nNoLocaleFoundInPath,\n i18nNotEnabled\n};\n","function positionAt(offset, text) {\n const lineOffsets = getLineOffsets(text);\n offset = Math.max(0, Math.min(text.length, offset));\n let low = 0;\n let high = lineOffsets.length;\n if (high === 0) {\n return {\n line: 0,\n column: offset\n };\n }\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const lineOffset = lineOffsets[mid];\n if (lineOffset === offset) {\n return {\n line: mid,\n column: 0\n };\n } else if (offset > lineOffset) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n const line = low - 1;\n return { line, column: offset - lineOffsets[line] };\n}\nfunction getLineOffsets(text) {\n const lineOffsets = [];\n let isLineStart = true;\n for (let i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n const ch = text.charAt(i);\n isLineStart = ch === \"\\r\" || ch === \"\\n\";\n if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n i++;\n }\n }\n if (isLineStart && text.length > 0) {\n lineOffsets.push(text.length);\n }\n return lineOffsets;\n}\nfunction isYAMLException(err) {\n return err instanceof Error && err.name === \"YAMLException\";\n}\nfunction formatYAMLException(e) {\n return {\n name: e.name,\n id: e.mark.name,\n loc: { file: e.mark.name, line: e.mark.line + 1, column: e.mark.column },\n message: e.reason,\n stack: e.stack ?? \"\"\n };\n}\nfunction createSafeError(err) {\n if (err instanceof Error || err?.name && err.message) {\n return err;\n } else {\n const error = new Error(JSON.stringify(err));\n error.hint = `To get as much information as possible from your errors, make sure to throw Error objects instead of \\`${typeof err}\\`. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error for more information.`;\n return error;\n }\n}\nfunction normalizeLF(code) {\n return code.replace(/\\r\\n|\\r(?!\\n)|\\n/g, \"\\n\");\n}\nexport {\n createSafeError,\n formatYAMLException,\n isYAMLException,\n normalizeLF,\n positionAt\n};\n","import { normalizeLF } from \"./utils.js\";\nfunction codeFrame(src, loc) {\n if (!loc || loc.line === void 0 || loc.column === void 0) {\n return \"\";\n }\n const lines = normalizeLF(src).split(\"\\n\").map((ln) => ln.replace(/\\t/g, \" \"));\n const visibleLines = [];\n for (let n = -2; n <= 2; n++) {\n if (lines[loc.line + n]) visibleLines.push(loc.line + n);\n }\n let gutterWidth = 0;\n for (const lineNo of visibleLines) {\n let w = `> ${lineNo}`;\n if (w.length > gutterWidth) gutterWidth = w.length;\n }\n let output = \"\";\n for (const lineNo of visibleLines) {\n const isFocusedLine = lineNo === loc.line - 1;\n output += isFocusedLine ? \"> \" : \" \";\n output += `${lineNo + 1} | ${lines[lineNo]}\n`;\n if (isFocusedLine)\n output += `${Array.from({ length: gutterWidth }).join(\" \")} | ${Array.from({\n length: loc.column\n }).join(\" \")}^\n`;\n }\n return output;\n}\nexport {\n codeFrame\n};\n","import { codeFrame } from \"./printer.js\";\nfunction isAstroError(e) {\n return e instanceof AstroError;\n}\nclass AstroError extends Error {\n loc;\n title;\n hint;\n frame;\n type = \"AstroError\";\n constructor(props, options) {\n const { name, title, message, stack, location, hint, frame } = props;\n super(message, options);\n this.title = title;\n this.name = name;\n if (message) this.message = message;\n this.stack = stack ? stack : this.stack;\n this.loc = location;\n this.hint = hint;\n this.frame = frame;\n }\n setLocation(location) {\n this.loc = location;\n }\n setName(name) {\n this.name = name;\n }\n setMessage(message) {\n this.message = message;\n }\n setHint(hint) {\n this.hint = hint;\n }\n setFrame(source, location) {\n this.frame = codeFrame(source, location);\n }\n static is(err) {\n return err.type === \"AstroError\";\n }\n}\nclass CompilerError extends AstroError {\n type = \"CompilerError\";\n constructor(props, options) {\n super(props, options);\n }\n static is(err) {\n return err.type === \"CompilerError\";\n }\n}\nclass CSSError extends AstroError {\n type = \"CSSError\";\n static is(err) {\n return err.type === \"CSSError\";\n }\n}\nclass MarkdownError extends AstroError {\n type = \"MarkdownError\";\n static is(err) {\n return err.type === \"MarkdownError\";\n }\n}\nclass InternalError extends AstroError {\n type = \"InternalError\";\n static is(err) {\n return err.type === \"InternalError\";\n }\n}\nclass AggregateError extends AstroError {\n type = \"AggregateError\";\n errors;\n // Despite being a collection of errors, AggregateError still needs to have a main error attached to it\n // This is because Vite expects every thrown errors handled during HMR to be, well, Error and have a message\n constructor(props, options) {\n super(props, options);\n this.errors = props.errors;\n }\n static is(err) {\n return err.type === \"AggregateError\";\n }\n}\nconst astroConfigZodErrors = /* @__PURE__ */ new WeakSet();\nfunction isAstroConfigZodError(error) {\n return astroConfigZodErrors.has(error);\n}\nfunction trackAstroConfigZodError(error) {\n astroConfigZodErrors.add(error);\n}\nclass AstroUserError extends Error {\n type = \"AstroUserError\";\n /**\n * A message that explains to the user how they can fix the error.\n */\n hint;\n name = \"AstroUserError\";\n constructor(message, hint) {\n super();\n this.message = message;\n this.hint = hint;\n }\n static is(err) {\n return err.type === \"AstroUserError\";\n }\n}\nexport {\n AggregateError,\n AstroError,\n AstroUserError,\n CSSError,\n CompilerError,\n InternalError,\n MarkdownError,\n isAstroConfigZodError,\n isAstroError,\n trackAstroConfigZodError\n};\n","import { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nfunction validateArgs(args) {\n if (args.length !== 3) return false;\n if (!args[0] || typeof args[0] !== \"object\") return false;\n return true;\n}\nfunction baseCreateComponent(cb, moduleId, propagation) {\n const name = moduleId?.split(\"/\").pop()?.replace(\".astro\", \"\") ?? \"\";\n const fn = (...args) => {\n if (!validateArgs(args)) {\n throw new AstroError({\n ...AstroErrorData.InvalidComponentArgs,\n message: AstroErrorData.InvalidComponentArgs.message(name)\n });\n }\n return cb(...args);\n };\n Object.defineProperty(fn, \"name\", { value: name, writable: false });\n fn.isAstroComponentFactory = true;\n fn.moduleId = moduleId;\n fn.propagation = propagation;\n return fn;\n}\nfunction createComponentWithOptions(opts) {\n const cb = baseCreateComponent(opts.factory, opts.moduleId, opts.propagation);\n return cb;\n}\nfunction createComponent(arg1, moduleId, propagation) {\n if (typeof arg1 === \"function\") {\n return baseCreateComponent(arg1, moduleId, propagation);\n } else {\n return createComponentWithOptions(arg1);\n }\n}\nexport {\n createComponent\n};\n","const ASTRO_VERSION = \"4.14.5\";\nconst REROUTE_DIRECTIVE_HEADER = \"X-Astro-Reroute\";\nconst REWRITE_DIRECTIVE_HEADER_KEY = \"X-Astro-Rewrite\";\nconst REWRITE_DIRECTIVE_HEADER_VALUE = \"yes\";\nconst ROUTE_TYPE_HEADER = \"X-Astro-Route-Type\";\nconst DEFAULT_404_COMPONENT = \"astro-default-404.astro\";\nconst DEFAULT_500_COMPONENT = \"astro-default-500.astro\";\nconst REROUTABLE_STATUS_CODES = [404, 500];\nconst clientAddressSymbol = Symbol.for(\"astro.clientAddress\");\nconst clientLocalsSymbol = Symbol.for(\"astro.locals\");\nconst responseSentSymbol = Symbol.for(\"astro.responseSent\");\nconst SUPPORTED_MARKDOWN_FILE_EXTENSIONS = [\n \".markdown\",\n \".mdown\",\n \".mkdn\",\n \".mkd\",\n \".mdwn\",\n \".md\"\n];\nconst MIDDLEWARE_PATH_SEGMENT_NAME = \"middleware\";\nexport {\n ASTRO_VERSION,\n DEFAULT_404_COMPONENT,\n DEFAULT_500_COMPONENT,\n MIDDLEWARE_PATH_SEGMENT_NAME,\n REROUTABLE_STATUS_CODES,\n REROUTE_DIRECTIVE_HEADER,\n REWRITE_DIRECTIVE_HEADER_KEY,\n REWRITE_DIRECTIVE_HEADER_VALUE,\n ROUTE_TYPE_HEADER,\n SUPPORTED_MARKDOWN_FILE_EXTENSIONS,\n clientAddressSymbol,\n clientLocalsSymbol,\n responseSentSymbol\n};\n","import { ASTRO_VERSION } from \"../../core/constants.js\";\nimport { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nfunction createAstroGlobFn() {\n const globHandler = (importMetaGlobResult) => {\n if (typeof importMetaGlobResult === \"string\") {\n throw new AstroError({\n ...AstroErrorData.AstroGlobUsedOutside,\n message: AstroErrorData.AstroGlobUsedOutside.message(JSON.stringify(importMetaGlobResult))\n });\n }\n let allEntries = [...Object.values(importMetaGlobResult)];\n if (allEntries.length === 0) {\n throw new AstroError({\n ...AstroErrorData.AstroGlobNoMatch,\n message: AstroErrorData.AstroGlobNoMatch.message(JSON.stringify(importMetaGlobResult))\n });\n }\n return Promise.all(allEntries.map((fn) => fn()));\n };\n return globHandler;\n}\nfunction createAstro(site) {\n return {\n // TODO: this is no longer necessary for `Astro.site`\n // but it somehow allows working around caching issues in content collections for some tests\n site: site ? new URL(site) : void 0,\n generator: `Astro v${ASTRO_VERSION}`,\n glob: createAstroGlobFn()\n };\n}\nexport {\n createAstro\n};\n","function isPromise(value) {\n return !!value && typeof value === \"object\" && \"then\" in value && typeof value.then === \"function\";\n}\nasync function* streamAsyncIterator(stream) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) return;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n}\nexport {\n isPromise,\n streamAsyncIterator\n};\n","import { escape } from \"html-escaper\";\nimport { streamAsyncIterator } from \"./util.js\";\nconst escapeHTML = escape;\nclass HTMLBytes extends Uint8Array {\n}\nObject.defineProperty(HTMLBytes.prototype, Symbol.toStringTag, {\n get() {\n return \"HTMLBytes\";\n }\n});\nclass HTMLString extends String {\n get [Symbol.toStringTag]() {\n return \"HTMLString\";\n }\n}\nconst markHTMLString = (value) => {\n if (value instanceof HTMLString) {\n return value;\n }\n if (typeof value === \"string\") {\n return new HTMLString(value);\n }\n return value;\n};\nfunction isHTMLString(value) {\n return Object.prototype.toString.call(value) === \"[object HTMLString]\";\n}\nfunction markHTMLBytes(bytes) {\n return new HTMLBytes(bytes);\n}\nfunction isHTMLBytes(value) {\n return Object.prototype.toString.call(value) === \"[object HTMLBytes]\";\n}\nfunction hasGetReader(obj) {\n return typeof obj.getReader === \"function\";\n}\nasync function* unescapeChunksAsync(iterable) {\n if (hasGetReader(iterable)) {\n for await (const chunk of streamAsyncIterator(iterable)) {\n yield unescapeHTML(chunk);\n }\n } else {\n for await (const chunk of iterable) {\n yield unescapeHTML(chunk);\n }\n }\n}\nfunction* unescapeChunks(iterable) {\n for (const chunk of iterable) {\n yield unescapeHTML(chunk);\n }\n}\nfunction unescapeHTML(str) {\n if (!!str && typeof str === \"object\") {\n if (str instanceof Uint8Array) {\n return markHTMLBytes(str);\n } else if (str instanceof Response && str.body) {\n const body = str.body;\n return unescapeChunksAsync(body);\n } else if (typeof str.then === \"function\") {\n return Promise.resolve(str).then((value) => {\n return unescapeHTML(value);\n });\n } else if (str[Symbol.for(\"astro:slot-string\")]) {\n return str;\n } else if (Symbol.iterator in str) {\n return unescapeChunks(str);\n } else if (Symbol.asyncIterator in str || hasGetReader(str)) {\n return unescapeChunksAsync(str);\n }\n }\n return markHTMLString(str);\n}\nexport {\n HTMLBytes,\n HTMLString,\n escapeHTML,\n isHTMLBytes,\n isHTMLString,\n markHTMLString,\n unescapeHTML\n};\n","const RenderInstructionSymbol = Symbol.for(\"astro:render\");\nfunction createRenderInstruction(instruction) {\n return Object.defineProperty(instruction, RenderInstructionSymbol, {\n value: true\n });\n}\nfunction isRenderInstruction(chunk) {\n return chunk && typeof chunk === \"object\" && chunk[RenderInstructionSymbol];\n}\nexport {\n createRenderInstruction,\n isRenderInstruction\n};\n","const PROP_TYPE = {\n Value: 0,\n JSON: 1,\n // Actually means Array\n RegExp: 2,\n Date: 3,\n Map: 4,\n Set: 5,\n BigInt: 6,\n URL: 7,\n Uint8Array: 8,\n Uint16Array: 9,\n Uint32Array: 10\n};\nfunction serializeArray(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n if (parents.has(value)) {\n throw new Error(`Cyclic reference detected while serializing props for <${metadata.displayName} client:${metadata.hydrate}>!\n\nCyclic references cannot be safely serialized for client-side usage. Please remove the cyclic reference.`);\n }\n parents.add(value);\n const serialized = value.map((v) => {\n return convertToSerializedForm(v, metadata, parents);\n });\n parents.delete(value);\n return serialized;\n}\nfunction serializeObject(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n if (parents.has(value)) {\n throw new Error(`Cyclic reference detected while serializing props for <${metadata.displayName} client:${metadata.hydrate}>!\n\nCyclic references cannot be safely serialized for client-side usage. Please remove the cyclic reference.`);\n }\n parents.add(value);\n const serialized = Object.fromEntries(\n Object.entries(value).map(([k, v]) => {\n return [k, convertToSerializedForm(v, metadata, parents)];\n })\n );\n parents.delete(value);\n return serialized;\n}\nfunction convertToSerializedForm(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n const tag = Object.prototype.toString.call(value);\n switch (tag) {\n case \"[object Date]\": {\n return [PROP_TYPE.Date, value.toISOString()];\n }\n case \"[object RegExp]\": {\n return [PROP_TYPE.RegExp, value.source];\n }\n case \"[object Map]\": {\n return [PROP_TYPE.Map, serializeArray(Array.from(value), metadata, parents)];\n }\n case \"[object Set]\": {\n return [PROP_TYPE.Set, serializeArray(Array.from(value), metadata, parents)];\n }\n case \"[object BigInt]\": {\n return [PROP_TYPE.BigInt, value.toString()];\n }\n case \"[object URL]\": {\n return [PROP_TYPE.URL, value.toString()];\n }\n case \"[object Array]\": {\n return [PROP_TYPE.JSON, serializeArray(value, metadata, parents)];\n }\n case \"[object Uint8Array]\": {\n return [PROP_TYPE.Uint8Array, Array.from(value)];\n }\n case \"[object Uint16Array]\": {\n return [PROP_TYPE.Uint16Array, Array.from(value)];\n }\n case \"[object Uint32Array]\": {\n return [PROP_TYPE.Uint32Array, Array.from(value)];\n }\n default: {\n if (value !== null && typeof value === \"object\") {\n return [PROP_TYPE.Value, serializeObject(value, metadata, parents)];\n } else if (value === void 0) {\n return [PROP_TYPE.Value];\n } else {\n return [PROP_TYPE.Value, value];\n }\n }\n }\n}\nfunction serializeProps(props, metadata) {\n const serialized = JSON.stringify(serializeObject(props, metadata));\n return serialized;\n}\nexport {\n serializeProps\n};\n","import { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nimport { escapeHTML } from \"./escape.js\";\nimport { serializeProps } from \"./serialize.js\";\nconst transitionDirectivesToCopyOnIsland = Object.freeze([\n \"data-astro-transition-scope\",\n \"data-astro-transition-persist\",\n \"data-astro-transition-persist-props\"\n]);\nfunction extractDirectives(inputProps, clientDirectives) {\n let extracted = {\n isPage: false,\n hydration: null,\n props: {},\n propsWithoutTransitionAttributes: {}\n };\n for (const [key, value] of Object.entries(inputProps)) {\n if (key.startsWith(\"server:\")) {\n if (key === \"server:root\") {\n extracted.isPage = true;\n }\n }\n if (key.startsWith(\"client:\")) {\n if (!extracted.hydration) {\n extracted.hydration = {\n directive: \"\",\n value: \"\",\n componentUrl: \"\",\n componentExport: { value: \"\" }\n };\n }\n switch (key) {\n case \"client:component-path\": {\n extracted.hydration.componentUrl = value;\n break;\n }\n case \"client:component-export\": {\n extracted.hydration.componentExport.value = value;\n break;\n }\n case \"client:component-hydration\": {\n break;\n }\n case \"client:display-name\": {\n break;\n }\n default: {\n extracted.hydration.directive = key.split(\":\")[1];\n extracted.hydration.value = value;\n if (!clientDirectives.has(extracted.hydration.directive)) {\n const hydrationMethods = Array.from(clientDirectives.keys()).map((d) => `client:${d}`).join(\", \");\n throw new Error(\n `Error: invalid hydration directive \"${key}\". Supported hydration methods: ${hydrationMethods}`\n );\n }\n if (extracted.hydration.directive === \"media\" && typeof extracted.hydration.value !== \"string\") {\n throw new AstroError(AstroErrorData.MissingMediaQueryDirective);\n }\n break;\n }\n }\n } else {\n extracted.props[key] = value;\n if (!transitionDirectivesToCopyOnIsland.includes(key)) {\n extracted.propsWithoutTransitionAttributes[key] = value;\n }\n }\n }\n for (const sym of Object.getOwnPropertySymbols(inputProps)) {\n extracted.props[sym] = inputProps[sym];\n extracted.propsWithoutTransitionAttributes[sym] = inputProps[sym];\n }\n return extracted;\n}\nasync function generateHydrateScript(scriptOptions, metadata) {\n const { renderer, result, astroId, props, attrs } = scriptOptions;\n const { hydrate, componentUrl, componentExport } = metadata;\n if (!componentExport.value) {\n throw new AstroError({\n ...AstroErrorData.NoMatchingImport,\n message: AstroErrorData.NoMatchingImport.message(metadata.displayName)\n });\n }\n const island = {\n children: \"\",\n props: {\n // This is for HMR, probably can avoid it in prod\n uid: astroId\n }\n };\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n island.props[key] = escapeHTML(value);\n }\n }\n island.props[\"component-url\"] = await result.resolve(decodeURI(componentUrl));\n if (renderer.clientEntrypoint) {\n island.props[\"component-export\"] = componentExport.value;\n island.props[\"renderer-url\"] = await result.resolve(decodeURI(renderer.clientEntrypoint));\n island.props[\"props\"] = escapeHTML(serializeProps(props, metadata));\n }\n island.props[\"ssr\"] = \"\";\n island.props[\"client\"] = hydrate;\n let beforeHydrationUrl = await result.resolve(\"astro:scripts/before-hydration.js\");\n if (beforeHydrationUrl.length) {\n island.props[\"before-hydration-url\"] = beforeHydrationUrl;\n }\n island.props[\"opts\"] = escapeHTML(\n JSON.stringify({\n name: metadata.displayName,\n value: metadata.hydrateArgs || \"\"\n })\n );\n transitionDirectivesToCopyOnIsland.forEach((name) => {\n if (typeof props[name] !== \"undefined\") {\n island.props[name] = props[name];\n }\n });\n return island;\n}\nexport {\n extractDirectives,\n generateHydrateScript\n};\n","/**\n * shortdash - https://github.com/bibig/node-shorthash\n *\n * @license\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Bibig \n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\nconst dictionary = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY\";\nconst binary = dictionary.length;\nfunction bitwise(str) {\n let hash = 0;\n if (str.length === 0) return hash;\n for (let i = 0; i < str.length; i++) {\n const ch = str.charCodeAt(i);\n hash = (hash << 5) - hash + ch;\n hash = hash & hash;\n }\n return hash;\n}\nfunction shorthash(text) {\n let num;\n let result = \"\";\n let integer = bitwise(text);\n const sign = integer < 0 ? \"Z\" : \"\";\n integer = Math.abs(integer);\n while (integer >= binary) {\n num = integer % binary;\n integer = Math.floor(integer / binary);\n result = dictionary[num] + result;\n }\n if (integer > 0) {\n result = dictionary[integer] + result;\n }\n return sign + result;\n}\nexport {\n shorthash\n};\n","function isAstroComponentFactory(obj) {\n return obj == null ? false : obj.isAstroComponentFactory === true;\n}\nfunction isAPropagatingComponent(result, factory) {\n let hint = factory.propagation || \"none\";\n if (factory.moduleId && result.componentMetadata.has(factory.moduleId) && hint === \"none\") {\n hint = result.componentMetadata.get(factory.moduleId).propagation;\n }\n return hint === \"in-tree\" || hint === \"self\";\n}\nexport {\n isAPropagatingComponent,\n isAstroComponentFactory\n};\n","const headAndContentSym = Symbol.for(\"astro.headAndContent\");\nfunction isHeadAndContent(obj) {\n return typeof obj === \"object\" && !!obj[headAndContentSym];\n}\nfunction createHeadAndContent(head, content) {\n return {\n [headAndContentSym]: true,\n head,\n content\n };\n}\nexport {\n createHeadAndContent,\n isHeadAndContent\n};\n","var astro_island_prebuilt_dev_default = `(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var l=(i,o,a)=>g(i,typeof o!=\"symbol\"?o+\"\":o,a);{let i={0:t=>y(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t)},o=t=>{let[h,e]=t;return h in i?i[h](e):void 0},a=t=>t.map(o),y=t=>typeof t!=\"object\"||t===null?t:Object.fromEntries(Object.entries(t).map(([h,e])=>[h,o(e)]));class f extends HTMLElement{constructor(){super(...arguments);l(this,\"Component\");l(this,\"hydrator\");l(this,\"hydrate\",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest(\"astro-island[ssr]\");if(e){e.addEventListener(\"astro:hydrate\",this.hydrate,{once:!0});return}let c=this.querySelectorAll(\"astro-slot\"),n={},p=this.querySelectorAll(\"template[data-astro-template]\");for(let r of p){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"data-astro-template\")||\"default\"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"name\")||\"default\"]=r.innerHTML)}let u;try{u=this.hasAttribute(\"props\")?y(JSON.parse(this.getAttribute(\"props\"))):{}}catch(r){let s=this.getAttribute(\"component-url\")||\"\",v=this.getAttribute(\"component-export\");throw v&&(s+=\\` (export \\${v})\\`),console.error(\\`[hydrate] Error parsing props for component \\${s}\\`,this.getAttribute(\"props\"),r),r}let d,m=this.hydrator(this);d=performance.now(),await m(this.Component,u,n,{client:this.getAttribute(\"client\")}),d&&this.setAttribute(\"client-render-time\",(performance.now()-d).toString()),this.removeAttribute(\"ssr\"),this.dispatchEvent(new CustomEvent(\"astro:hydrate\"))});l(this,\"unmount\",()=>{this.isConnected||this.dispatchEvent(new CustomEvent(\"astro:unmount\"))})}disconnectedCallback(){document.removeEventListener(\"astro:after-swap\",this.unmount),document.addEventListener(\"astro:after-swap\",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(\"await-children\")||document.readyState===\"interactive\"||document.readyState===\"complete\")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(\"DOMContentLoaded\",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===\"astro:end\"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener(\"DOMContentLoaded\",e)}}async childrenConnectedCallback(){let e=this.getAttribute(\"before-hydration-url\");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute(\"opts\")),c=this.getAttribute(\"client\");if(Astro[c]===void 0){window.addEventListener(\\`astro:\\${c}\\`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute(\"renderer-url\"),[p,{default:u}]=await Promise.all([import(this.getAttribute(\"component-url\")),n?import(n):()=>()=>{}]),d=this.getAttribute(\"component-export\")||\"default\";if(!d.includes(\".\"))this.Component=p[d];else{this.Component=p;for(let m of d.split(\".\"))this.Component=this.Component[m]}return this.hydrator=u,this.hydrate},e,this)}catch(n){console.error(\\`[astro-island] Error hydrating \\${this.getAttribute(\"component-url\")}\\`,n)}}attributeChangedCallback(){this.hydrate()}}l(f,\"observedAttributes\",[\"props\"]),customElements.get(\"astro-island\")||customElements.define(\"astro-island\",f)}})();`;\nexport {\n astro_island_prebuilt_dev_default as default\n};\n","var astro_island_prebuilt_default = `(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!=\"symbol\"?o+\"\":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t)},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!=\"object\"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,\"Component\");d(this,\"hydrator\");d(this,\"hydrate\",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest(\"astro-island[ssr]\");if(e){e.addEventListener(\"astro:hydrate\",this.hydrate,{once:!0});return}let c=this.querySelectorAll(\"astro-slot\"),n={},h=this.querySelectorAll(\"template[data-astro-template]\");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"data-astro-template\")||\"default\"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"name\")||\"default\"]=r.innerHTML)}let p;try{p=this.hasAttribute(\"props\")?m(JSON.parse(this.getAttribute(\"props\"))):{}}catch(r){let s=this.getAttribute(\"component-url\")||\"\",v=this.getAttribute(\"component-export\");throw v&&(s+=\\` (export \\${v})\\`),console.error(\\`[hydrate] Error parsing props for component \\${s}\\`,this.getAttribute(\"props\"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute(\"client\")}),this.removeAttribute(\"ssr\"),this.dispatchEvent(new CustomEvent(\"astro:hydrate\"))});d(this,\"unmount\",()=>{this.isConnected||this.dispatchEvent(new CustomEvent(\"astro:unmount\"))})}disconnectedCallback(){document.removeEventListener(\"astro:after-swap\",this.unmount),document.addEventListener(\"astro:after-swap\",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(\"await-children\")||document.readyState===\"interactive\"||document.readyState===\"complete\")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(\"DOMContentLoaded\",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===\"astro:end\"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener(\"DOMContentLoaded\",e)}}async childrenConnectedCallback(){let e=this.getAttribute(\"before-hydration-url\");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute(\"opts\")),c=this.getAttribute(\"client\");if(Astro[c]===void 0){window.addEventListener(\\`astro:\\${c}\\`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute(\"renderer-url\"),[h,{default:p}]=await Promise.all([import(this.getAttribute(\"component-url\")),n?import(n):()=>()=>{}]),u=this.getAttribute(\"component-export\")||\"default\";if(!u.includes(\".\"))this.Component=h[u];else{this.Component=h;for(let f of u.split(\".\"))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(\\`[astro-island] Error hydrating \\${this.getAttribute(\"component-url\")}\\`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,\"observedAttributes\",[\"props\"]),customElements.get(\"astro-island\")||customElements.define(\"astro-island\",y)}})();`;\nexport {\n astro_island_prebuilt_default as default\n};\n","import islandScriptDev from \"./astro-island.prebuilt-dev.js\";\nimport islandScript from \"./astro-island.prebuilt.js\";\nconst ISLAND_STYLES = ``;\nfunction determineIfNeedsHydrationScript(result) {\n if (result._metadata.hasHydrationScript) {\n return false;\n }\n return result._metadata.hasHydrationScript = true;\n}\nfunction determinesIfNeedsDirectiveScript(result, directive) {\n if (result._metadata.hasDirectives.has(directive)) {\n return false;\n }\n result._metadata.hasDirectives.add(directive);\n return true;\n}\nfunction getDirectiveScriptText(result, directive) {\n const clientDirectives = result.clientDirectives;\n const clientDirective = clientDirectives.get(directive);\n if (!clientDirective) {\n throw new Error(`Unknown directive: ${directive}`);\n }\n return clientDirective;\n}\nfunction getPrescripts(result, type, directive) {\n switch (type) {\n case \"both\":\n return `${ISLAND_STYLES}`;\n case \"directive\":\n return ``;\n case null:\n break;\n }\n return \"\";\n}\nexport {\n determineIfNeedsHydrationScript,\n determinesIfNeedsDirectiveScript,\n getPrescripts\n};\n","import { clsx } from \"clsx\";\nimport { HTMLString, markHTMLString } from \"../escape.js\";\nconst voidElementNames = /^(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i;\nconst htmlBooleanAttributes = /^(?:allowfullscreen|async|autofocus|autoplay|controls|default|defer|disabled|disablepictureinpicture|disableremoteplayback|formnovalidate|hidden|loop|nomodule|novalidate|open|playsinline|readonly|required|reversed|scoped|seamless|itemscope)$/i;\nconst htmlEnumAttributes = /^(?:contenteditable|draggable|spellcheck|value)$/i;\nconst svgEnumAttributes = /^(?:autoReverse|externalResourcesRequired|focusable|preserveAlpha)$/i;\nconst AMPERSAND_REGEX = /&/g;\nconst DOUBLE_QUOTE_REGEX = /\"/g;\nconst STATIC_DIRECTIVES = /* @__PURE__ */ new Set([\"set:html\", \"set:text\"]);\nconst toIdent = (k) => k.trim().replace(/(?!^)\\b\\w|\\s+|\\W+/g, (match, index) => {\n if (/\\W/.test(match)) return \"\";\n return index === 0 ? match : match.toUpperCase();\n});\nconst toAttributeString = (value, shouldEscape = true) => shouldEscape ? String(value).replace(AMPERSAND_REGEX, \"&\").replace(DOUBLE_QUOTE_REGEX, \""\") : value;\nconst kebab = (k) => k.toLowerCase() === k ? k : k.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\nconst toStyleString = (obj) => Object.entries(obj).filter(([_, v]) => typeof v === \"string\" && v.trim() || typeof v === \"number\").map(([k, v]) => {\n if (k[0] !== \"-\" && k[1] !== \"-\") return `${kebab(k)}:${v}`;\n return `${k}:${v}`;\n}).join(\";\");\nfunction defineScriptVars(vars) {\n let output = \"\";\n for (const [key, value] of Object.entries(vars)) {\n output += `const ${toIdent(key)} = ${JSON.stringify(value)?.replace(\n /<\\/script>/g,\n \"\\\\x3C/script>\"\n )};\n`;\n }\n return markHTMLString(output);\n}\nfunction formatList(values) {\n if (values.length === 1) {\n return values[0];\n }\n return `${values.slice(0, -1).join(\", \")} or ${values[values.length - 1]}`;\n}\nfunction addAttribute(value, key, shouldEscape = true) {\n if (value == null) {\n return \"\";\n }\n if (value === false) {\n if (htmlEnumAttributes.test(key) || svgEnumAttributes.test(key)) {\n return markHTMLString(` ${key}=\"false\"`);\n }\n return \"\";\n }\n if (STATIC_DIRECTIVES.has(key)) {\n console.warn(`[astro] The \"${key}\" directive cannot be applied dynamically at runtime. It will not be rendered as an attribute.\n\nMake sure to use the static attribute syntax (\\`${key}={value}\\`) instead of the dynamic spread syntax (\\`{...{ \"${key}\": value }}\\`).`);\n return \"\";\n }\n if (key === \"class:list\") {\n const listValue = toAttributeString(clsx(value), shouldEscape);\n if (listValue === \"\") {\n return \"\";\n }\n return markHTMLString(` ${key.slice(0, -5)}=\"${listValue}\"`);\n }\n if (key === \"style\" && !(value instanceof HTMLString)) {\n if (Array.isArray(value) && value.length === 2) {\n return markHTMLString(\n ` ${key}=\"${toAttributeString(`${toStyleString(value[0])};${value[1]}`, shouldEscape)}\"`\n );\n }\n if (typeof value === \"object\") {\n return markHTMLString(` ${key}=\"${toAttributeString(toStyleString(value), shouldEscape)}\"`);\n }\n }\n if (key === \"className\") {\n return markHTMLString(` class=\"${toAttributeString(value, shouldEscape)}\"`);\n }\n if (typeof value === \"string\" && value.includes(\"&\") && isHttpUrl(value)) {\n return markHTMLString(` ${key}=\"${toAttributeString(value, false)}\"`);\n }\n if (value === true && (key.startsWith(\"data-\") || htmlBooleanAttributes.test(key))) {\n return markHTMLString(` ${key}`);\n } else {\n return markHTMLString(` ${key}=\"${toAttributeString(value, shouldEscape)}\"`);\n }\n}\nfunction internalSpreadAttributes(values, shouldEscape = true) {\n let output = \"\";\n for (const [key, value] of Object.entries(values)) {\n output += addAttribute(value, key, shouldEscape);\n }\n return markHTMLString(output);\n}\nfunction renderElement(name, { props: _props, children = \"\" }, shouldEscape = true) {\n const { lang: _, \"data-astro-id\": astroId, \"define:vars\": defineVars, ...props } = _props;\n if (defineVars) {\n if (name === \"style\") {\n delete props[\"is:global\"];\n delete props[\"is:scoped\"];\n }\n if (name === \"script\") {\n delete props.hoist;\n children = defineScriptVars(defineVars) + \"\\n\" + children;\n }\n }\n if ((children == null || children == \"\") && voidElementNames.test(name)) {\n return `<${name}${internalSpreadAttributes(props, shouldEscape)}>`;\n }\n return `<${name}${internalSpreadAttributes(props, shouldEscape)}>${children}`;\n}\nconst noop = () => {\n};\nclass BufferedRenderer {\n chunks = [];\n renderPromise;\n destination;\n constructor(bufferRenderFunction) {\n this.renderPromise = bufferRenderFunction(this);\n Promise.resolve(this.renderPromise).catch(noop);\n }\n write(chunk) {\n if (this.destination) {\n this.destination.write(chunk);\n } else {\n this.chunks.push(chunk);\n }\n }\n async renderToFinalDestination(destination) {\n for (const chunk of this.chunks) {\n destination.write(chunk);\n }\n this.destination = destination;\n await this.renderPromise;\n }\n}\nfunction renderToBufferDestination(bufferRenderFunction) {\n const renderer = new BufferedRenderer(bufferRenderFunction);\n return renderer;\n}\nconst isNode = typeof process !== \"undefined\" && Object.prototype.toString.call(process) === \"[object process]\";\nconst isDeno = typeof Deno !== \"undefined\";\nfunction promiseWithResolvers() {\n let resolve, reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n return {\n promise,\n resolve,\n reject\n };\n}\nconst VALID_PROTOCOLS = [\"http:\", \"https:\"];\nfunction isHttpUrl(url) {\n try {\n const parsedUrl = new URL(url);\n return VALID_PROTOCOLS.includes(parsedUrl.protocol);\n } catch {\n return false;\n }\n}\nexport {\n addAttribute,\n defineScriptVars,\n formatList,\n internalSpreadAttributes,\n isDeno,\n isNode,\n promiseWithResolvers,\n renderElement,\n renderToBufferDestination,\n toAttributeString,\n voidElementNames\n};\n","import { markHTMLString } from \"../escape.js\";\nimport { createRenderInstruction } from \"./instruction.js\";\nimport { renderElement } from \"./util.js\";\nconst uniqueElements = (item, index, all) => {\n const props = JSON.stringify(item.props);\n const children = item.children;\n return index === all.findIndex((i) => JSON.stringify(i.props) === props && i.children == children);\n};\nfunction renderAllHeadContent(result) {\n result._metadata.hasRenderedHead = true;\n const styles = Array.from(result.styles).filter(uniqueElements).map(\n (style) => style.props.rel === \"stylesheet\" ? renderElement(\"link\", style) : renderElement(\"style\", style)\n );\n result.styles.clear();\n const scripts = Array.from(result.scripts).filter(uniqueElements).map((script) => {\n return renderElement(\"script\", script, false);\n });\n const links = Array.from(result.links).filter(uniqueElements).map((link) => renderElement(\"link\", link, false));\n let content = styles.join(\"\\n\") + links.join(\"\\n\") + scripts.join(\"\\n\");\n if (result._metadata.extraHead.length > 0) {\n for (const part of result._metadata.extraHead) {\n content += part;\n }\n }\n return markHTMLString(content);\n}\nfunction renderHead() {\n return createRenderInstruction({ type: \"head\" });\n}\nfunction maybeRenderHead() {\n return createRenderInstruction({ type: \"maybe-head\" });\n}\nexport {\n maybeRenderHead,\n renderAllHeadContent,\n renderHead\n};\n","import { markHTMLString } from \"../../escape.js\";\nimport { isPromise } from \"../../util.js\";\nimport { renderChild } from \"../any.js\";\nimport { renderToBufferDestination } from \"../util.js\";\nconst renderTemplateResultSym = Symbol.for(\"astro.renderTemplateResult\");\nclass RenderTemplateResult {\n [renderTemplateResultSym] = true;\n htmlParts;\n expressions;\n error;\n constructor(htmlParts, expressions) {\n this.htmlParts = htmlParts;\n this.error = void 0;\n this.expressions = expressions.map((expression) => {\n if (isPromise(expression)) {\n return Promise.resolve(expression).catch((err) => {\n if (!this.error) {\n this.error = err;\n throw err;\n }\n });\n }\n return expression;\n });\n }\n async render(destination) {\n const expRenders = this.expressions.map((exp) => {\n return renderToBufferDestination((bufferDestination) => {\n if (exp || exp === 0) {\n return renderChild(bufferDestination, exp);\n }\n });\n });\n for (let i = 0; i < this.htmlParts.length; i++) {\n const html = this.htmlParts[i];\n const expRender = expRenders[i];\n destination.write(markHTMLString(html));\n if (expRender) {\n await expRender.renderToFinalDestination(destination);\n }\n }\n }\n}\nfunction isRenderTemplateResult(obj) {\n return typeof obj === \"object\" && !!obj[renderTemplateResultSym];\n}\nfunction renderTemplate(htmlParts, ...expressions) {\n return new RenderTemplateResult(htmlParts, expressions);\n}\nexport {\n RenderTemplateResult,\n isRenderTemplateResult,\n renderTemplate\n};\n","import { renderTemplate } from \"./astro/render-template.js\";\nimport { HTMLString, markHTMLString, unescapeHTML } from \"../escape.js\";\nimport { renderChild } from \"./any.js\";\nimport { chunkToString } from \"./common.js\";\nconst slotString = Symbol.for(\"astro:slot-string\");\nclass SlotString extends HTMLString {\n instructions;\n [slotString];\n constructor(content, instructions) {\n super(content);\n this.instructions = instructions;\n this[slotString] = true;\n }\n}\nfunction isSlotString(str) {\n return !!str[slotString];\n}\nfunction renderSlot(result, slotted, fallback) {\n if (!slotted && fallback) {\n return renderSlot(result, fallback);\n }\n return {\n async render(destination) {\n await renderChild(destination, typeof slotted === \"function\" ? slotted(result) : slotted);\n }\n };\n}\nasync function renderSlotToString(result, slotted, fallback) {\n let content = \"\";\n let instructions = null;\n const temporaryDestination = {\n write(chunk) {\n if (chunk instanceof SlotString) {\n content += chunk;\n if (chunk.instructions) {\n instructions ??= [];\n instructions.push(...chunk.instructions);\n }\n } else if (chunk instanceof Response) return;\n else if (typeof chunk === \"object\" && \"type\" in chunk && typeof chunk.type === \"string\") {\n if (instructions === null) {\n instructions = [];\n }\n instructions.push(chunk);\n } else {\n content += chunkToString(result, chunk);\n }\n }\n };\n const renderInstance = renderSlot(result, slotted, fallback);\n await renderInstance.render(temporaryDestination);\n return markHTMLString(new SlotString(content, instructions));\n}\nasync function renderSlots(result, slots = {}) {\n let slotInstructions = null;\n let children = {};\n if (slots) {\n await Promise.all(\n Object.entries(slots).map(\n ([key, value]) => renderSlotToString(result, value).then((output) => {\n if (output.instructions) {\n if (slotInstructions === null) {\n slotInstructions = [];\n }\n slotInstructions.push(...output.instructions);\n }\n children[key] = output;\n })\n )\n );\n }\n return { slotInstructions, children };\n}\nfunction createSlotValueFromString(content) {\n return function() {\n return renderTemplate`${unescapeHTML(content)}`;\n };\n}\nexport {\n SlotString,\n createSlotValueFromString,\n isSlotString,\n renderSlot,\n renderSlotToString,\n renderSlots\n};\n","import { markHTMLString } from \"../escape.js\";\nimport {\n determineIfNeedsHydrationScript,\n determinesIfNeedsDirectiveScript,\n getPrescripts\n} from \"../scripts.js\";\nimport { renderAllHeadContent } from \"./head.js\";\nimport { isRenderInstruction } from \"./instruction.js\";\nimport { isSlotString } from \"./slot.js\";\nconst Fragment = Symbol.for(\"astro:fragment\");\nconst Renderer = Symbol.for(\"astro:renderer\");\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nfunction stringifyChunk(result, chunk) {\n if (isRenderInstruction(chunk)) {\n const instruction = chunk;\n switch (instruction.type) {\n case \"directive\": {\n const { hydration } = instruction;\n let needsHydrationScript = hydration && determineIfNeedsHydrationScript(result);\n let needsDirectiveScript = hydration && determinesIfNeedsDirectiveScript(result, hydration.directive);\n let prescriptType = needsHydrationScript ? \"both\" : needsDirectiveScript ? \"directive\" : null;\n if (prescriptType) {\n let prescripts = getPrescripts(result, prescriptType, hydration.directive);\n return markHTMLString(prescripts);\n } else {\n return \"\";\n }\n }\n case \"head\": {\n if (result._metadata.hasRenderedHead || result.partial) {\n return \"\";\n }\n return renderAllHeadContent(result);\n }\n case \"maybe-head\": {\n if (result._metadata.hasRenderedHead || result._metadata.headInTree || result.partial) {\n return \"\";\n }\n return renderAllHeadContent(result);\n }\n case \"renderer-hydration-script\": {\n const { rendererSpecificHydrationScripts } = result._metadata;\n const { rendererName } = instruction;\n if (!rendererSpecificHydrationScripts.has(rendererName)) {\n rendererSpecificHydrationScripts.add(rendererName);\n return instruction.render();\n }\n return \"\";\n }\n default: {\n throw new Error(`Unknown chunk type: ${chunk.type}`);\n }\n }\n } else if (chunk instanceof Response) {\n return \"\";\n } else if (isSlotString(chunk)) {\n let out = \"\";\n const c = chunk;\n if (c.instructions) {\n for (const instr of c.instructions) {\n out += stringifyChunk(result, instr);\n }\n }\n out += chunk.toString();\n return out;\n }\n return chunk.toString();\n}\nfunction chunkToString(result, chunk) {\n if (ArrayBuffer.isView(chunk)) {\n return decoder.decode(chunk);\n } else {\n return stringifyChunk(result, chunk);\n }\n}\nfunction chunkToByteArray(result, chunk) {\n if (ArrayBuffer.isView(chunk)) {\n return chunk;\n } else {\n const stringified = stringifyChunk(result, chunk);\n return encoder.encode(stringified.toString());\n }\n}\nfunction isRenderInstance(obj) {\n return !!obj && typeof obj === \"object\" && \"render\" in obj && typeof obj.render === \"function\";\n}\nexport {\n Fragment,\n Renderer,\n chunkToByteArray,\n chunkToString,\n decoder,\n encoder,\n isRenderInstance\n};\n","import { escapeHTML, isHTMLString, markHTMLString } from \"../escape.js\";\nimport { isPromise } from \"../util.js\";\nimport { isAstroComponentInstance, isRenderTemplateResult } from \"./astro/index.js\";\nimport { isRenderInstance } from \"./common.js\";\nimport { SlotString } from \"./slot.js\";\nimport { renderToBufferDestination } from \"./util.js\";\nasync function renderChild(destination, child) {\n if (isPromise(child)) {\n child = await child;\n }\n if (child instanceof SlotString) {\n destination.write(child);\n } else if (isHTMLString(child)) {\n destination.write(child);\n } else if (Array.isArray(child)) {\n const childRenders = child.map((c) => {\n return renderToBufferDestination((bufferDestination) => {\n return renderChild(bufferDestination, c);\n });\n });\n for (const childRender of childRenders) {\n if (!childRender) continue;\n await childRender.renderToFinalDestination(destination);\n }\n } else if (typeof child === \"function\") {\n await renderChild(destination, child());\n } else if (typeof child === \"string\") {\n destination.write(markHTMLString(escapeHTML(child)));\n } else if (!child && child !== 0) {\n } else if (isRenderInstance(child)) {\n await child.render(destination);\n } else if (isRenderTemplateResult(child)) {\n await child.render(destination);\n } else if (isAstroComponentInstance(child)) {\n await child.render(destination);\n } else if (ArrayBuffer.isView(child)) {\n destination.write(child);\n } else if (typeof child === \"object\" && (Symbol.asyncIterator in child || Symbol.iterator in child)) {\n for await (const value of child) {\n await renderChild(destination, value);\n }\n } else {\n destination.write(child);\n }\n}\nexport {\n renderChild\n};\n","import { isPromise } from \"../../util.js\";\nimport { renderChild } from \"../any.js\";\nimport { isAPropagatingComponent } from \"./factory.js\";\nimport { isHeadAndContent } from \"./head-and-content.js\";\nconst astroComponentInstanceSym = Symbol.for(\"astro.componentInstance\");\nclass AstroComponentInstance {\n [astroComponentInstanceSym] = true;\n result;\n props;\n slotValues;\n factory;\n returnValue;\n constructor(result, props, slots, factory) {\n this.result = result;\n this.props = props;\n this.factory = factory;\n this.slotValues = {};\n for (const name in slots) {\n let didRender = false;\n let value = slots[name](result);\n this.slotValues[name] = () => {\n if (!didRender) {\n didRender = true;\n return value;\n }\n return slots[name](result);\n };\n }\n }\n async init(result) {\n if (this.returnValue !== void 0) return this.returnValue;\n this.returnValue = this.factory(result, this.props, this.slotValues);\n if (isPromise(this.returnValue)) {\n this.returnValue.then((resolved) => {\n this.returnValue = resolved;\n }).catch(() => {\n });\n }\n return this.returnValue;\n }\n async render(destination) {\n const returnValue = await this.init(this.result);\n if (isHeadAndContent(returnValue)) {\n await returnValue.content.render(destination);\n } else {\n await renderChild(destination, returnValue);\n }\n }\n}\nfunction validateComponentProps(props, displayName) {\n if (props != null) {\n for (const prop of Object.keys(props)) {\n if (prop.startsWith(\"client:\")) {\n console.warn(\n `You are attempting to render <${displayName} ${prop} />, but ${displayName} is an Astro component. Astro components do not render in the client and should not have a hydration directive. Please use a framework component for client rendering.`\n );\n }\n }\n }\n}\nfunction createAstroComponentInstance(result, displayName, factory, props, slots = {}) {\n validateComponentProps(props, displayName);\n const instance = new AstroComponentInstance(result, props, slots, factory);\n if (isAPropagatingComponent(result, factory)) {\n result._metadata.propagators.add(instance);\n }\n return instance;\n}\nfunction isAstroComponentInstance(obj) {\n return typeof obj === \"object\" && !!obj[astroComponentInstanceSym];\n}\nexport {\n AstroComponentInstance,\n createAstroComponentInstance,\n isAstroComponentInstance\n};\n","import { markHTMLString } from \"../escape.js\";\nimport { renderSlotToString } from \"./slot.js\";\nimport { toAttributeString } from \"./util.js\";\nfunction componentIsHTMLElement(Component) {\n return typeof HTMLElement !== \"undefined\" && HTMLElement.isPrototypeOf(Component);\n}\nasync function renderHTMLElement(result, constructor, props, slots) {\n const name = getHTMLElementName(constructor);\n let attrHTML = \"\";\n for (const attr in props) {\n attrHTML += ` ${attr}=\"${toAttributeString(await props[attr])}\"`;\n }\n return markHTMLString(\n `<${name}${attrHTML}>${await renderSlotToString(result, slots?.default)}`\n );\n}\nfunction getHTMLElementName(constructor) {\n const definedName = customElements.getName(constructor);\n if (definedName) return definedName;\n const assignedName = constructor.name.replace(/^HTML|Element$/g, \"\").replace(/[A-Z]/g, \"-$&\").toLowerCase().replace(/^-/, \"html-\");\n return assignedName;\n}\nexport {\n componentIsHTMLElement,\n renderHTMLElement\n};\n","import { decodeBase64, decodeHex, encodeBase64, encodeHexUpperCase } from \"@oslojs/encoding\";\nconst ALGORITHM = \"AES-GCM\";\nasync function createKey() {\n const key = await crypto.subtle.generateKey(\n {\n name: ALGORITHM,\n length: 256\n },\n true,\n [\"encrypt\", \"decrypt\"]\n );\n return key;\n}\nasync function importKey(bytes) {\n const key = await crypto.subtle.importKey(\"raw\", bytes, ALGORITHM, true, [\"encrypt\", \"decrypt\"]);\n return key;\n}\nasync function encodeKey(key) {\n const exported = await crypto.subtle.exportKey(\"raw\", key);\n const encodedKey = encodeBase64(new Uint8Array(exported));\n return encodedKey;\n}\nasync function decodeKey(encoded) {\n const bytes = decodeBase64(encoded);\n return crypto.subtle.importKey(\"raw\", bytes, ALGORITHM, true, [\"encrypt\", \"decrypt\"]);\n}\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nconst IV_LENGTH = 24;\nasync function encryptString(key, raw) {\n const iv = crypto.getRandomValues(new Uint8Array(IV_LENGTH / 2));\n const data = encoder.encode(raw);\n const buffer = await crypto.subtle.encrypt(\n {\n name: ALGORITHM,\n iv\n },\n key,\n data\n );\n return encodeHexUpperCase(iv) + encodeBase64(new Uint8Array(buffer));\n}\nasync function decryptString(key, encoded) {\n const iv = decodeHex(encoded.slice(0, IV_LENGTH));\n const dataArray = decodeBase64(encoded.slice(IV_LENGTH));\n const decryptedBuffer = await crypto.subtle.decrypt(\n {\n name: ALGORITHM,\n iv\n },\n key,\n dataArray\n );\n const decryptedString = decoder.decode(decryptedBuffer);\n return decryptedString;\n}\nexport {\n createKey,\n decodeKey,\n decryptString,\n encodeKey,\n encryptString,\n importKey\n};\n","import { encryptString } from \"../../../core/encryption.js\";\nimport { renderChild } from \"./any.js\";\nimport { renderSlotToString } from \"./slot.js\";\nconst internalProps = /* @__PURE__ */ new Set([\n \"server:component-path\",\n \"server:component-export\",\n \"server:component-directive\",\n \"server:defer\"\n]);\nfunction containsServerDirective(props) {\n return \"server:component-directive\" in props;\n}\nfunction safeJsonStringify(obj) {\n return JSON.stringify(obj).replace(/\\u2028/g, \"\\\\u2028\").replace(/\\u2029/g, \"\\\\u2029\").replace(//g, \"\\\\u003e\").replace(/\\//g, \"\\\\u002f\");\n}\nfunction renderServerIsland(result, _displayName, props, slots) {\n return {\n async render(destination) {\n const componentPath = props[\"server:component-path\"];\n const componentExport = props[\"server:component-export\"];\n const componentId = result.serverIslandNameMap.get(componentPath);\n if (!componentId) {\n throw new Error(`Could not find server component name`);\n }\n for (const key2 of Object.keys(props)) {\n if (internalProps.has(key2)) {\n delete props[key2];\n }\n }\n destination.write(\"\");\n const renderedSlots = {};\n for (const name in slots) {\n if (name !== \"fallback\") {\n const content = await renderSlotToString(result, slots[name]);\n renderedSlots[name] = content.toString();\n } else {\n await renderChild(destination, slots.fallback(result));\n }\n }\n const key = await result.key;\n const propsEncrypted = await encryptString(key, JSON.stringify(props));\n const hostId = crypto.randomUUID();\n const slash = result.base.endsWith(\"/\") ? \"\" : \"/\";\n const serverIslandUrl = `${result.base}${slash}_server-islands/${componentId}${result.trailingSlash === \"always\" ? \"/\" : \"\"}`;\n destination.write(``);\n }\n };\n}\nexport {\n containsServerDirective,\n renderServerIsland\n};\n","import { createRenderInstruction } from \"./instruction.js\";\nimport { clsx } from \"clsx\";\nimport { AstroError, AstroErrorData } from \"../../../core/errors/index.js\";\nimport { markHTMLString } from \"../escape.js\";\nimport { extractDirectives, generateHydrateScript } from \"../hydration.js\";\nimport { serializeProps } from \"../serialize.js\";\nimport { shorthash } from \"../shorthash.js\";\nimport { isPromise } from \"../util.js\";\nimport { isAstroComponentFactory } from \"./astro/factory.js\";\nimport { renderTemplate } from \"./astro/index.js\";\nimport { createAstroComponentInstance } from \"./astro/instance.js\";\nimport {\n Fragment,\n Renderer,\n chunkToString\n} from \"./common.js\";\nimport { componentIsHTMLElement, renderHTMLElement } from \"./dom.js\";\nimport { maybeRenderHead } from \"./head.js\";\nimport { containsServerDirective, renderServerIsland } from \"./server-islands.js\";\nimport { renderSlotToString, renderSlots } from \"./slot.js\";\nimport { formatList, internalSpreadAttributes, renderElement, voidElementNames } from \"./util.js\";\nconst needsHeadRenderingSymbol = Symbol.for(\"astro.needsHeadRendering\");\nconst rendererAliases = /* @__PURE__ */ new Map([[\"solid\", \"solid-js\"]]);\nconst clientOnlyValues = /* @__PURE__ */ new Set([\"solid-js\", \"react\", \"preact\", \"vue\", \"svelte\", \"lit\"]);\nfunction guessRenderers(componentUrl) {\n const extname = componentUrl?.split(\".\").pop();\n switch (extname) {\n case \"svelte\":\n return [\"@astrojs/svelte\"];\n case \"vue\":\n return [\"@astrojs/vue\"];\n case \"jsx\":\n case \"tsx\":\n return [\"@astrojs/react\", \"@astrojs/preact\", \"@astrojs/solid-js\", \"@astrojs/vue (jsx)\"];\n default:\n return [\n \"@astrojs/react\",\n \"@astrojs/preact\",\n \"@astrojs/solid-js\",\n \"@astrojs/vue\",\n \"@astrojs/svelte\",\n \"@astrojs/lit\"\n ];\n }\n}\nfunction isFragmentComponent(Component) {\n return Component === Fragment;\n}\nfunction isHTMLComponent(Component) {\n return Component && Component[\"astro:html\"] === true;\n}\nconst ASTRO_SLOT_EXP = /<\\/?astro-slot\\b[^>]*>/g;\nconst ASTRO_STATIC_SLOT_EXP = /<\\/?astro-static-slot\\b[^>]*>/g;\nfunction removeStaticAstroSlot(html, supportsAstroStaticSlot = true) {\n const exp = supportsAstroStaticSlot ? ASTRO_STATIC_SLOT_EXP : ASTRO_SLOT_EXP;\n return html.replace(exp, \"\");\n}\nasync function renderFrameworkComponent(result, displayName, Component, _props, slots = {}) {\n if (!Component && \"client:only\" in _props === false) {\n throw new Error(\n `Unable to render ${displayName} because it is ${Component}!\nDid you forget to import the component or is it possible there is a typo?`\n );\n }\n const { renderers, clientDirectives } = result;\n const metadata = {\n astroStaticSlot: true,\n displayName\n };\n const { hydration, isPage, props, propsWithoutTransitionAttributes } = extractDirectives(\n _props,\n clientDirectives\n );\n let html = \"\";\n let attrs = void 0;\n if (hydration) {\n metadata.hydrate = hydration.directive;\n metadata.hydrateArgs = hydration.value;\n metadata.componentExport = hydration.componentExport;\n metadata.componentUrl = hydration.componentUrl;\n }\n const probableRendererNames = guessRenderers(metadata.componentUrl);\n const validRenderers = renderers.filter((r) => r.name !== \"astro:jsx\");\n const { children, slotInstructions } = await renderSlots(result, slots);\n let renderer;\n if (metadata.hydrate !== \"only\") {\n let isTagged = false;\n try {\n isTagged = Component && Component[Renderer];\n } catch {\n }\n if (isTagged) {\n const rendererName = Component[Renderer];\n renderer = renderers.find(({ name }) => name === rendererName);\n }\n if (!renderer) {\n let error;\n for (const r of renderers) {\n try {\n if (await r.ssr.check.call({ result }, Component, props, children)) {\n renderer = r;\n break;\n }\n } catch (e) {\n error ??= e;\n }\n }\n if (!renderer && error) {\n throw error;\n }\n }\n if (!renderer && typeof HTMLElement === \"function\" && componentIsHTMLElement(Component)) {\n const output = await renderHTMLElement(\n result,\n Component,\n _props,\n slots\n );\n return {\n render(destination) {\n destination.write(output);\n }\n };\n }\n } else {\n if (metadata.hydrateArgs) {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (clientOnlyValues.has(rendererName)) {\n renderer = renderers.find(\n ({ name }) => name === `@astrojs/${rendererName}` || name === rendererName\n );\n }\n }\n if (!renderer && validRenderers.length === 1) {\n renderer = validRenderers[0];\n }\n if (!renderer) {\n const extname = metadata.componentUrl?.split(\".\").pop();\n renderer = renderers.find(({ name }) => name === `@astrojs/${extname}` || name === extname);\n }\n }\n let componentServerRenderEndTime;\n if (!renderer) {\n if (metadata.hydrate === \"only\") {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (clientOnlyValues.has(rendererName)) {\n const plural = validRenderers.length > 1;\n throw new AstroError({\n ...AstroErrorData.NoMatchingRenderer,\n message: AstroErrorData.NoMatchingRenderer.message(\n metadata.displayName,\n metadata?.componentUrl?.split(\".\").pop(),\n plural,\n validRenderers.length\n ),\n hint: AstroErrorData.NoMatchingRenderer.hint(\n formatList(probableRendererNames.map((r) => \"`\" + r + \"`\"))\n )\n });\n } else {\n throw new AstroError({\n ...AstroErrorData.NoClientOnlyHint,\n message: AstroErrorData.NoClientOnlyHint.message(metadata.displayName),\n hint: AstroErrorData.NoClientOnlyHint.hint(\n probableRendererNames.map((r) => r.replace(\"@astrojs/\", \"\")).join(\"|\")\n )\n });\n }\n } else if (typeof Component !== \"string\") {\n const matchingRenderers = validRenderers.filter(\n (r) => probableRendererNames.includes(r.name)\n );\n const plural = validRenderers.length > 1;\n if (matchingRenderers.length === 0) {\n throw new AstroError({\n ...AstroErrorData.NoMatchingRenderer,\n message: AstroErrorData.NoMatchingRenderer.message(\n metadata.displayName,\n metadata?.componentUrl?.split(\".\").pop(),\n plural,\n validRenderers.length\n ),\n hint: AstroErrorData.NoMatchingRenderer.hint(\n formatList(probableRendererNames.map((r) => \"`\" + r + \"`\"))\n )\n });\n } else if (matchingRenderers.length === 1) {\n renderer = matchingRenderers[0];\n ({ html, attrs } = await renderer.ssr.renderToStaticMarkup.call(\n { result },\n Component,\n propsWithoutTransitionAttributes,\n children,\n metadata\n ));\n } else {\n throw new Error(`Unable to render ${metadata.displayName}!\n\nThis component likely uses ${formatList(probableRendererNames)},\nbut Astro encountered an error during server-side rendering.\n\nPlease ensure that ${metadata.displayName}:\n1. Does not unconditionally access browser-specific globals like \\`window\\` or \\`document\\`.\n If this is unavoidable, use the \\`client:only\\` hydration directive.\n2. Does not conditionally return \\`null\\` or \\`undefined\\` when rendered on the server.\n\nIf you're still stuck, please open an issue on GitHub or join us at https://astro.build/chat.`);\n }\n }\n } else {\n if (metadata.hydrate === \"only\") {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (!clientOnlyValues.has(rendererName)) {\n console.warn(\n `The client:only directive for ${metadata.displayName} is not recognized. The renderer ${renderer.name} will be used. If you intended to use a different renderer, please provide a valid client:only directive.`\n );\n }\n html = await renderSlotToString(result, slots?.fallback);\n } else {\n const componentRenderStartTime = performance.now();\n ({ html, attrs } = await renderer.ssr.renderToStaticMarkup.call(\n { result },\n Component,\n propsWithoutTransitionAttributes,\n children,\n metadata\n ));\n if (process.env.NODE_ENV === \"development\")\n componentServerRenderEndTime = performance.now() - componentRenderStartTime;\n }\n }\n if (renderer && !renderer.clientEntrypoint && renderer.name !== \"@astrojs/lit\" && metadata.hydrate) {\n throw new AstroError({\n ...AstroErrorData.NoClientEntrypoint,\n message: AstroErrorData.NoClientEntrypoint.message(\n displayName,\n metadata.hydrate,\n renderer.name\n )\n });\n }\n if (!html && typeof Component === \"string\") {\n const Tag = sanitizeElementName(Component);\n const childSlots = Object.values(children).join(\"\");\n const renderTemplateResult = renderTemplate`<${Tag}${internalSpreadAttributes(\n props\n )}${markHTMLString(\n childSlots === \"\" && voidElementNames.test(Tag) ? `/>` : `>${childSlots}`\n )}`;\n html = \"\";\n const destination = {\n write(chunk) {\n if (chunk instanceof Response) return;\n html += chunkToString(result, chunk);\n }\n };\n await renderTemplateResult.render(destination);\n }\n if (!hydration) {\n return {\n render(destination) {\n if (slotInstructions) {\n for (const instruction of slotInstructions) {\n destination.write(instruction);\n }\n }\n if (isPage || renderer?.name === \"astro:jsx\") {\n destination.write(html);\n } else if (html && html.length > 0) {\n destination.write(\n markHTMLString(removeStaticAstroSlot(html, renderer?.ssr?.supportsAstroStaticSlot))\n );\n }\n }\n };\n }\n const astroId = shorthash(\n `\n${html}\n${serializeProps(\n props,\n metadata\n )}`\n );\n const island = await generateHydrateScript(\n { renderer, result, astroId, props, attrs },\n metadata\n );\n if (componentServerRenderEndTime && process.env.NODE_ENV === \"development\")\n island.props[\"server-render-time\"] = componentServerRenderEndTime;\n let unrenderedSlots = [];\n if (html) {\n if (Object.keys(children).length > 0) {\n for (const key of Object.keys(children)) {\n let tagName = renderer?.ssr?.supportsAstroStaticSlot ? !!metadata.hydrate ? \"astro-slot\" : \"astro-static-slot\" : \"astro-slot\";\n let expectedHTML = key === \"default\" ? `<${tagName}>` : `<${tagName} name=\"${key}\">`;\n if (!html.includes(expectedHTML)) {\n unrenderedSlots.push(key);\n }\n }\n }\n } else {\n unrenderedSlots = Object.keys(children);\n }\n const template = unrenderedSlots.length > 0 ? unrenderedSlots.map(\n (key) => ``\n ).join(\"\") : \"\";\n island.children = `${html ?? \"\"}${template}`;\n if (island.children) {\n island.props[\"await-children\"] = \"\";\n island.children += ``;\n }\n return {\n render(destination) {\n if (slotInstructions) {\n for (const instruction of slotInstructions) {\n destination.write(instruction);\n }\n }\n destination.write(createRenderInstruction({ type: \"directive\", hydration }));\n if (hydration.directive !== \"only\" && renderer?.ssr.renderHydrationScript) {\n destination.write(\n createRenderInstruction({\n type: \"renderer-hydration-script\",\n rendererName: renderer.name,\n render: renderer.ssr.renderHydrationScript\n })\n );\n }\n const renderedElement = renderElement(\"astro-island\", island, false);\n destination.write(markHTMLString(renderedElement));\n }\n };\n}\nfunction sanitizeElementName(tag) {\n const unsafe = /[&<>'\"\\s]+/;\n if (!unsafe.test(tag)) return tag;\n return tag.trim().split(unsafe)[0].trim();\n}\nasync function renderFragmentComponent(result, slots = {}) {\n const children = await renderSlotToString(result, slots?.default);\n return {\n render(destination) {\n if (children == null) return;\n destination.write(children);\n }\n };\n}\nasync function renderHTMLComponent(result, Component, _props, slots = {}) {\n const { slotInstructions, children } = await renderSlots(result, slots);\n const html = Component({ slots: children });\n const hydrationHtml = slotInstructions ? slotInstructions.map((instr) => chunkToString(result, instr)).join(\"\") : \"\";\n return {\n render(destination) {\n destination.write(markHTMLString(hydrationHtml + html));\n }\n };\n}\nfunction renderAstroComponent(result, displayName, Component, props, slots = {}) {\n if (containsServerDirective(props)) {\n return renderServerIsland(result, displayName, props, slots);\n }\n const instance = createAstroComponentInstance(result, displayName, Component, props, slots);\n return {\n async render(destination) {\n await instance.render(destination);\n }\n };\n}\nasync function renderComponent(result, displayName, Component, props, slots = {}) {\n if (isPromise(Component)) {\n Component = await Component.catch(handleCancellation);\n }\n if (isFragmentComponent(Component)) {\n return await renderFragmentComponent(result, slots).catch(handleCancellation);\n }\n props = normalizeProps(props);\n if (isHTMLComponent(Component)) {\n return await renderHTMLComponent(result, Component, props, slots).catch(handleCancellation);\n }\n if (isAstroComponentFactory(Component)) {\n return renderAstroComponent(result, displayName, Component, props, slots);\n }\n return await renderFrameworkComponent(result, displayName, Component, props, slots).catch(\n handleCancellation\n );\n function handleCancellation(e) {\n if (result.cancelled)\n return {\n render() {\n }\n };\n throw e;\n }\n}\nfunction normalizeProps(props) {\n if (props[\"class:list\"] !== void 0) {\n const value = props[\"class:list\"];\n delete props[\"class:list\"];\n props[\"class\"] = clsx(props[\"class\"], value);\n if (props[\"class\"] === \"\") {\n delete props[\"class\"];\n }\n }\n return props;\n}\nasync function renderComponentToString(result, displayName, Component, props, slots = {}, isPage = false, route) {\n let str = \"\";\n let renderedFirstPageChunk = false;\n let head = \"\";\n if (isPage && !result.partial && nonAstroPageNeedsHeadInjection(Component)) {\n head += chunkToString(result, maybeRenderHead());\n }\n try {\n const destination = {\n write(chunk) {\n if (isPage && !result.partial && !renderedFirstPageChunk) {\n renderedFirstPageChunk = true;\n if (!/\" : \"\\n\";\n str += doctype + head;\n }\n }\n if (chunk instanceof Response) return;\n str += chunkToString(result, chunk);\n }\n };\n const renderInstance = await renderComponent(result, displayName, Component, props, slots);\n await renderInstance.render(destination);\n } catch (e) {\n if (AstroError.is(e) && !e.loc) {\n e.setLocation({\n file: route?.component\n });\n }\n throw e;\n }\n return str;\n}\nfunction nonAstroPageNeedsHeadInjection(pageComponent) {\n return !!pageComponent?.[needsHeadRenderingSymbol];\n}\nexport {\n renderComponent,\n renderComponentToString\n};\n","import { markHTMLString } from \"../escape.js\";\nasync function renderScript(result, id) {\n if (result._metadata.renderedScripts.has(id)) return;\n result._metadata.renderedScripts.add(id);\n const inlined = result.inlinedScripts.get(id);\n if (inlined != null) {\n if (inlined) {\n return markHTMLString(``);\n } else {\n return \"\";\n }\n }\n const resolved = await result.resolve(id);\n return markHTMLString(``);\n}\nexport {\n renderScript\n};\n","import cssesc from \"cssesc\";\nimport { fade, slide } from \"../../transitions/index.js\";\nimport { markHTMLString } from \"./escape.js\";\nconst transitionNameMap = /* @__PURE__ */ new WeakMap();\nfunction incrementTransitionNumber(result) {\n let num = 1;\n if (transitionNameMap.has(result)) {\n num = transitionNameMap.get(result) + 1;\n }\n transitionNameMap.set(result, num);\n return num;\n}\nfunction createTransitionScope(result, hash) {\n const num = incrementTransitionNumber(result);\n return `astro-${hash}-${num}`;\n}\nconst getAnimations = (name) => {\n if (name === \"fade\") return fade();\n if (name === \"slide\") return slide();\n if (typeof name === \"object\") return name;\n};\nconst addPairs = (animations, stylesheet) => {\n for (const [direction, images] of Object.entries(animations)) {\n for (const [image, rules] of Object.entries(images)) {\n stylesheet.addAnimationPair(direction, image, rules);\n }\n }\n};\nconst reEncodeValidChars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\".split(\"\").reduce((v, c) => (v[c.charCodeAt(0)] = c, v), []);\nconst reEncodeInValidStart = \"-0123456789_\".split(\"\").reduce((v, c) => (v[c.charCodeAt(0)] = c, v), []);\nfunction reEncode(s) {\n let result = \"\";\n let codepoint;\n for (let i = 0; i < s.length; i += (codepoint ?? 0) > 65535 ? 2 : 1) {\n codepoint = s.codePointAt(i);\n if (codepoint !== void 0) {\n result += codepoint < 128 ? codepoint === 95 ? \"__\" : reEncodeValidChars[codepoint] ?? \"_\" + codepoint.toString(16).padStart(2, \"0\") : String.fromCodePoint(codepoint);\n }\n }\n return reEncodeInValidStart[result.codePointAt(0) ?? 0] ? \"_\" + result : result;\n}\nfunction renderTransition(result, hash, animationName, transitionName) {\n if (typeof (transitionName ?? \"\") !== \"string\") {\n throw new Error(`Invalid transition name {${transitionName}}`);\n }\n if (!animationName) animationName = \"fade\";\n const scope = createTransitionScope(result, hash);\n const name = transitionName ? cssesc(reEncode(transitionName), { isIdentifier: true }) : scope;\n const sheet = new ViewTransitionStyleSheet(scope, name);\n const animations = getAnimations(animationName);\n if (animations) {\n addPairs(animations, sheet);\n } else if (animationName === \"none\") {\n sheet.addFallback(\"old\", \"animation: none; mix-blend-mode: normal;\");\n sheet.addModern(\"old\", \"animation: none; opacity: 0; mix-blend-mode: normal;\");\n sheet.addAnimationRaw(\"new\", \"animation: none; mix-blend-mode: normal;\");\n sheet.addModern(\"group\", \"animation: none\");\n }\n result._metadata.extraHead.push(markHTMLString(``));\n return scope;\n}\nfunction createAnimationScope(transitionName, animations) {\n const hash = Math.random().toString(36).slice(2, 8);\n const scope = `astro-${hash}`;\n const sheet = new ViewTransitionStyleSheet(scope, transitionName);\n addPairs(animations, sheet);\n return { scope, styles: sheet.toString().replaceAll('\"', \"\") };\n}\nclass ViewTransitionStyleSheet {\n constructor(scope, name) {\n this.scope = scope;\n this.name = name;\n }\n modern = [];\n fallback = [];\n toString() {\n const { scope, name } = this;\n const [modern, fallback] = [this.modern, this.fallback].map((rules) => rules.join(\"\"));\n return [\n `[data-astro-transition-scope=\"${scope}\"] { view-transition-name: ${name}; }`,\n this.layer(modern),\n fallback\n ].join(\"\");\n }\n layer(cssText) {\n return cssText ? `@layer astro { ${cssText} }` : \"\";\n }\n addRule(target, cssText) {\n this[target].push(cssText);\n }\n addAnimationRaw(image, animation) {\n this.addModern(image, animation);\n this.addFallback(image, animation);\n }\n addModern(image, animation) {\n const { name } = this;\n this.addRule(\"modern\", `::view-transition-${image}(${name}) { ${animation} }`);\n }\n addFallback(image, animation) {\n const { scope } = this;\n this.addRule(\n \"fallback\",\n // Two selectors here, the second in case there is an animation on the root.\n `[data-astro-transition-fallback=\"${image}\"] [data-astro-transition-scope=\"${scope}\"],\n\t\t\t[data-astro-transition-fallback=\"${image}\"][data-astro-transition-scope=\"${scope}\"] { ${animation} }`\n );\n }\n addAnimationPair(direction, image, rules) {\n const { scope, name } = this;\n const animation = stringifyAnimation(rules);\n const prefix = direction === \"backwards\" ? `[data-astro-transition=back]` : direction === \"forwards\" ? \"\" : `[data-astro-transition=${direction}]`;\n this.addRule(\"modern\", `${prefix}::view-transition-${image}(${name}) { ${animation} }`);\n this.addRule(\n \"fallback\",\n `${prefix}[data-astro-transition-fallback=\"${image}\"] [data-astro-transition-scope=\"${scope}\"],\n\t\t\t${prefix}[data-astro-transition-fallback=\"${image}\"][data-astro-transition-scope=\"${scope}\"] { ${animation} }`\n );\n }\n}\nfunction addAnimationProperty(builder, prop, value) {\n let arr = builder[prop];\n if (Array.isArray(arr)) {\n arr.push(value.toString());\n } else {\n builder[prop] = [value.toString()];\n }\n}\nfunction animationBuilder() {\n return {\n toString() {\n let out = \"\";\n for (let k in this) {\n let value = this[k];\n if (Array.isArray(value)) {\n out += `\n\t${k}: ${value.join(\", \")};`;\n }\n }\n return out;\n }\n };\n}\nfunction stringifyAnimation(anim) {\n if (Array.isArray(anim)) {\n return stringifyAnimations(anim);\n } else {\n return stringifyAnimations([anim]);\n }\n}\nfunction stringifyAnimations(anims) {\n const builder = animationBuilder();\n for (const anim of anims) {\n if (anim.duration) {\n addAnimationProperty(builder, \"animation-duration\", toTimeValue(anim.duration));\n }\n if (anim.easing) {\n addAnimationProperty(builder, \"animation-timing-function\", anim.easing);\n }\n if (anim.direction) {\n addAnimationProperty(builder, \"animation-direction\", anim.direction);\n }\n if (anim.delay) {\n addAnimationProperty(builder, \"animation-delay\", anim.delay);\n }\n if (anim.fillMode) {\n addAnimationProperty(builder, \"animation-fill-mode\", anim.fillMode);\n }\n addAnimationProperty(builder, \"animation-name\", anim.name);\n }\n return builder.toString();\n}\nfunction toTimeValue(num) {\n return typeof num === \"number\" ? num + \"ms\" : num;\n}\nexport {\n createAnimationScope,\n createTransitionScope,\n renderTransition\n};\n","import { createComponent } from \"./astro-component.js\";\nimport { createAstro } from \"./astro-global.js\";\nimport { renderEndpoint } from \"./endpoint.js\";\nimport {\n escapeHTML,\n HTMLBytes,\n HTMLString,\n isHTMLString,\n markHTMLString,\n unescapeHTML\n} from \"./escape.js\";\nimport { renderJSX } from \"./jsx.js\";\nimport {\n addAttribute,\n createHeadAndContent,\n defineScriptVars,\n Fragment,\n maybeRenderHead,\n renderTemplate,\n renderComponent,\n Renderer,\n renderHead,\n renderHTMLElement,\n renderPage,\n renderScript,\n renderScriptElement,\n renderSlot,\n renderSlotToString,\n renderTemplate as renderTemplate2,\n renderToString,\n renderUniqueStylesheet,\n voidElementNames\n} from \"./render/index.js\";\nimport { createTransitionScope, renderTransition } from \"./transition.js\";\nimport { markHTMLString as markHTMLString2 } from \"./escape.js\";\nimport { Renderer as Renderer2, addAttribute as addAttribute2 } from \"./render/index.js\";\nfunction mergeSlots(...slotted) {\n const slots = {};\n for (const slot of slotted) {\n if (!slot) continue;\n if (typeof slot === \"object\") {\n Object.assign(slots, slot);\n } else if (typeof slot === \"function\") {\n Object.assign(slots, mergeSlots(slot()));\n }\n }\n return slots;\n}\nfunction __astro_tag_component__(Component, rendererName) {\n if (!Component) return;\n if (typeof Component !== \"function\") return;\n Object.defineProperty(Component, Renderer2, {\n value: rendererName,\n enumerable: false,\n writable: false\n });\n}\nfunction spreadAttributes(values = {}, _name, { class: scopedClassName } = {}) {\n let output = \"\";\n if (scopedClassName) {\n if (typeof values.class !== \"undefined\") {\n values.class += ` ${scopedClassName}`;\n } else if (typeof values[\"class:list\"] !== \"undefined\") {\n values[\"class:list\"] = [values[\"class:list\"], scopedClassName];\n } else {\n values.class = scopedClassName;\n }\n }\n for (const [key, value] of Object.entries(values)) {\n output += addAttribute2(value, key, true);\n }\n return markHTMLString2(output);\n}\nfunction defineStyleVars(defs) {\n let output = \"\";\n let arr = !Array.isArray(defs) ? [defs] : defs;\n for (const vars of arr) {\n for (const [key, value] of Object.entries(vars)) {\n if (value || value === 0) {\n output += `--${key}: ${value};`;\n }\n }\n }\n return markHTMLString2(output);\n}\nexport {\n Fragment,\n HTMLBytes,\n HTMLString,\n Renderer,\n __astro_tag_component__,\n addAttribute,\n createAstro,\n createComponent,\n createHeadAndContent,\n createTransitionScope,\n defineScriptVars,\n defineStyleVars,\n escapeHTML,\n isHTMLString,\n markHTMLString,\n maybeRenderHead,\n mergeSlots,\n renderTemplate as render,\n renderComponent,\n renderEndpoint,\n renderHTMLElement,\n renderHead,\n renderJSX,\n renderPage,\n renderScript,\n renderScriptElement,\n renderSlot,\n renderSlotToString,\n renderTemplate2 as renderTemplate,\n renderToString,\n renderTransition,\n renderUniqueStylesheet,\n spreadAttributes,\n unescapeHTML,\n voidElementNames\n};\n"],"names":["AstroErrorData.InvalidComponentArgs","AstroErrorData.AstroGlobUsedOutside","AstroErrorData.AstroGlobNoMatch","AstroErrorData.MissingMediaQueryDirective","AstroErrorData.NoMatchingImport","islandScriptDev","islandScript","AstroErrorData.NoMatchingRenderer","AstroErrorData.NoClientOnlyHint","AstroErrorData.NoClientEntrypoint","addAttribute2","markHTMLString2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]} \ No newline at end of file diff --git a/Target/chunks/astro/server_DdDAVYtl.mjs.map b/Target/chunks/astro/server_DdDAVYtl.mjs.map new file mode 100644 index 00000000..83e4db05 --- /dev/null +++ b/Target/chunks/astro/server_DdDAVYtl.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"server_DdDAVYtl.mjs","sources":["../../../../../../../node_modules/astro/dist/core/errors/errors-data.js","../../../../../../../node_modules/astro/dist/core/errors/utils.js","../../../../../../../node_modules/astro/dist/core/errors/printer.js","../../../../../../../node_modules/astro/dist/core/errors/errors.js","../../../../../../../node_modules/astro/dist/runtime/server/astro-component.js","../../../../../../../node_modules/astro/dist/core/constants.js","../../../../../../../node_modules/astro/dist/runtime/server/astro-global.js","../../../../../../../node_modules/astro/dist/runtime/server/util.js","../../../../../../../node_modules/astro/dist/runtime/server/escape.js","../../../../../../../node_modules/astro/dist/runtime/server/render/instruction.js","../../../../../../../node_modules/astro/dist/runtime/server/serialize.js","../../../../../../../node_modules/astro/dist/runtime/server/hydration.js","../../../../../../../node_modules/astro/dist/runtime/server/shorthash.js","../../../../../../../node_modules/astro/dist/runtime/server/render/astro/factory.js","../../../../../../../node_modules/astro/dist/runtime/server/render/astro/head-and-content.js","../../../../../../../node_modules/astro/dist/runtime/server/astro-island.prebuilt-dev.js","../../../../../../../node_modules/astro/dist/runtime/server/astro-island.prebuilt.js","../../../../../../../node_modules/astro/dist/runtime/server/scripts.js","../../../../../../../node_modules/astro/dist/runtime/server/render/util.js","../../../../../../../node_modules/astro/dist/runtime/server/render/head.js","../../../../../../../node_modules/astro/dist/runtime/server/render/astro/render-template.js","../../../../../../../node_modules/astro/dist/runtime/server/render/slot.js","../../../../../../../node_modules/astro/dist/runtime/server/render/common.js","../../../../../../../node_modules/astro/dist/runtime/server/render/any.js","../../../../../../../node_modules/astro/dist/runtime/server/render/astro/instance.js","../../../../../../../node_modules/astro/dist/runtime/server/render/dom.js","../../../../../../../node_modules/astro/dist/core/encryption.js","../../../../../../../node_modules/astro/dist/runtime/server/render/server-islands.js","../../../../../../../node_modules/astro/dist/runtime/server/render/component.js","../../../../../../../node_modules/astro/dist/runtime/server/render/script.js","../../../../../../../node_modules/astro/dist/runtime/server/transition.js","../../../../../../../node_modules/astro/dist/runtime/server/index.js"],"sourcesContent":["const UnknownCompilerError = {\n name: \"UnknownCompilerError\",\n title: \"Unknown compiler error.\",\n hint: \"This is almost always a problem with the Astro compiler, not your code. Please open an issue at https://astro.build/issues/compiler.\"\n};\nconst ClientAddressNotAvailable = {\n name: \"ClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` is not available in current adapter.\",\n message: (adapterName) => `\\`Astro.clientAddress\\` is not available in the \\`${adapterName}\\` adapter. File an issue with the adapter to add support.`\n};\nconst PrerenderClientAddressNotAvailable = {\n name: \"PrerenderClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` cannot be used inside prerendered routes.\",\n message: `\\`Astro.clientAddress\\` cannot be used inside prerendered routes`\n};\nconst StaticClientAddressNotAvailable = {\n name: \"StaticClientAddressNotAvailable\",\n title: \"`Astro.clientAddress` is not available in static mode.\",\n message: \"`Astro.clientAddress` is only available when using `output: 'server'` or `output: 'hybrid'`. Update your Astro config if you need SSR features.\",\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information on how to enable SSR.\"\n};\nconst NoMatchingStaticPathFound = {\n name: \"NoMatchingStaticPathFound\",\n title: \"No static path found for requested path.\",\n message: (pathName) => `A \\`getStaticPaths()\\` route pattern was matched, but no matching static path was found for requested path \\`${pathName}\\`.`,\n hint: (possibleRoutes) => `Possible dynamic routes being matched: ${possibleRoutes.join(\", \")}.`\n};\nconst OnlyResponseCanBeReturned = {\n name: \"OnlyResponseCanBeReturned\",\n title: \"Invalid type returned by Astro page.\",\n message: (route, returnedValue) => `Route \\`${route ? route : \"\"}\\` returned a \\`${returnedValue}\\`. Only a [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) can be returned from Astro files.`,\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/#response for more information.\"\n};\nconst MissingMediaQueryDirective = {\n name: \"MissingMediaQueryDirective\",\n title: \"Missing value for `client:media` directive.\",\n message: 'Media query not provided for `client:media` directive. A media query similar to `client:media=\"(max-width: 600px)\"` must be provided'\n};\nconst NoMatchingRenderer = {\n name: \"NoMatchingRenderer\",\n title: \"No matching renderer found.\",\n message: (componentName, componentExtension, plural, validRenderersCount) => `Unable to render \\`${componentName}\\`.\n\n${validRenderersCount > 0 ? `There ${plural ? \"are\" : \"is\"} ${validRenderersCount} renderer${plural ? \"s\" : \"\"} configured in your \\`astro.config.mjs\\` file,\nbut ${plural ? \"none were\" : \"it was not\"} able to server-side render \\`${componentName}\\`.` : `No valid renderer was found ${componentExtension ? `for the \\`.${componentExtension}\\` file extension.` : `for this file extension.`}`}`,\n hint: (probableRenderers) => `Did you mean to enable the ${probableRenderers} integration?\n\nSee https://docs.astro.build/en/guides/framework-components/ for more information on how to install and configure integrations.`\n};\nconst NoClientEntrypoint = {\n name: \"NoClientEntrypoint\",\n title: \"No client entrypoint specified in renderer.\",\n message: (componentName, clientDirective, rendererName) => `\\`${componentName}\\` component has a \\`client:${clientDirective}\\` directive, but no client entrypoint was provided by \\`${rendererName}\\`.`,\n hint: \"See https://docs.astro.build/en/reference/integrations-reference/#addrenderer-option for more information on how to configure your renderer.\"\n};\nconst NoClientOnlyHint = {\n name: \"NoClientOnlyHint\",\n title: \"Missing hint on client:only directive.\",\n message: (componentName) => `Unable to render \\`${componentName}\\`. When using the \\`client:only\\` hydration strategy, Astro needs a hint to use the correct renderer.`,\n hint: (probableRenderers) => `Did you mean to pass \\`client:only=\"${probableRenderers}\"\\`? See https://docs.astro.build/en/reference/directives-reference/#clientonly for more information on client:only`\n};\nconst InvalidGetStaticPathParam = {\n name: \"InvalidGetStaticPathParam\",\n title: \"Invalid value returned by a `getStaticPaths` path.\",\n message: (paramType) => `Invalid params given to \\`getStaticPaths\\` path. Expected an \\`object\\`, got \\`${paramType}\\``,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst InvalidGetStaticPathsEntry = {\n name: \"InvalidGetStaticPathsEntry\",\n title: \"Invalid entry inside getStaticPath's return value\",\n message: (entryType) => `Invalid entry returned by getStaticPaths. Expected an object, got \\`${entryType}\\``,\n hint: \"If you're using a `.map` call, you might be looking for `.flatMap()` instead. See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst InvalidGetStaticPathsReturn = {\n name: \"InvalidGetStaticPathsReturn\",\n title: \"Invalid value returned by getStaticPaths.\",\n message: (returnType) => `Invalid type returned by \\`getStaticPaths\\`. Expected an \\`array\\`, got \\`${returnType}\\``,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsExpectedParams = {\n name: \"GetStaticPathsExpectedParams\",\n title: \"Missing params property on `getStaticPaths` route.\",\n message: \"Missing or empty required `params` property on `getStaticPaths` route.\",\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsInvalidRouteParam = {\n name: \"GetStaticPathsInvalidRouteParam\",\n title: \"Invalid value for `getStaticPaths` route parameter.\",\n message: (key, value, valueType) => `Invalid getStaticPaths route parameter for \\`${key}\\`. Expected undefined, a string or a number, received \\`${valueType}\\` (\\`${value}\\`)`,\n hint: \"See https://docs.astro.build/en/reference/api-reference/#getstaticpaths for more information on getStaticPaths.\"\n};\nconst GetStaticPathsRequired = {\n name: \"GetStaticPathsRequired\",\n title: \"`getStaticPaths()` function required for dynamic routes.\",\n message: \"`getStaticPaths()` function is required for dynamic routes. Make sure that you `export` a `getStaticPaths` function from your dynamic route.\",\n hint: `See https://docs.astro.build/en/guides/routing/#dynamic-routes for more information on dynamic routes.\n\nAlternatively, set \\`output: \"server\"\\` or \\`output: \"hybrid\"\\` in your Astro config file to switch to a non-static server build. This error can also occur if using \\`export const prerender = true;\\`.\nSee https://docs.astro.build/en/guides/server-side-rendering/ for more information on non-static rendering.`\n};\nconst ReservedSlotName = {\n name: \"ReservedSlotName\",\n title: \"Invalid slot name.\",\n message: (slotName) => `Unable to create a slot named \\`${slotName}\\`. \\`${slotName}\\` is a reserved slot name. Please update the name of this slot.`\n};\nconst NoAdapterInstalled = {\n name: \"NoAdapterInstalled\",\n title: \"Cannot use Server-side Rendering without an adapter.\",\n message: `Cannot use \\`output: 'server'\\` or \\`output: 'hybrid'\\` without an adapter. Please install and configure the appropriate server adapter for your final deployment.`,\n hint: \"See https://docs.astro.build/en/guides/server-side-rendering/ for more information.\"\n};\nconst NoMatchingImport = {\n name: \"NoMatchingImport\",\n title: \"No import found for component.\",\n message: (componentName) => `Could not render \\`${componentName}\\`. No matching import has been found for \\`${componentName}\\`.`,\n hint: \"Please make sure the component is properly imported.\"\n};\nconst InvalidPrerenderExport = {\n name: \"InvalidPrerenderExport\",\n title: \"Invalid prerender export.\",\n message(prefix, suffix, isHydridOutput) {\n const defaultExpectedValue = isHydridOutput ? \"false\" : \"true\";\n let msg = `A \\`prerender\\` export has been detected, but its value cannot be statically analyzed.`;\n if (prefix !== \"const\") msg += `\nExpected \\`const\\` declaration but got \\`${prefix}\\`.`;\n if (suffix !== \"true\")\n msg += `\nExpected \\`${defaultExpectedValue}\\` value but got \\`${suffix}\\`.`;\n return msg;\n },\n hint: \"Mutable values declared at runtime are not supported. Please make sure to use exactly `export const prerender = true`.\"\n};\nconst InvalidComponentArgs = {\n name: \"InvalidComponentArgs\",\n title: \"Invalid component arguments.\",\n message: (name) => `Invalid arguments passed to${name ? ` <${name}>` : \"\"} component.`,\n hint: \"Astro components cannot be rendered directly via function call, such as `Component()` or `{items.map(Component)}`.\"\n};\nconst PageNumberParamNotFound = {\n name: \"PageNumberParamNotFound\",\n title: \"Page number param not found.\",\n message: (paramName) => `[paginate()] page number param \\`${paramName}\\` not found in your filepath.`,\n hint: \"Rename your file to `[page].astro` or `[...page].astro`.\"\n};\nconst ImageMissingAlt = {\n name: \"ImageMissingAlt\",\n title: 'Image missing required \"alt\" property.',\n message: 'Image missing \"alt\" property. \"alt\" text is required to describe important images on the page.',\n hint: 'Use an empty string (\"\") for decorative images.'\n};\nconst InvalidImageService = {\n name: \"InvalidImageService\",\n title: \"Error while loading image service.\",\n message: \"There was an error loading the configured image service. Please see the stack trace for more information.\"\n};\nconst MissingImageDimension = {\n name: \"MissingImageDimension\",\n title: \"Missing image dimensions\",\n message: (missingDimension, imageURL) => `Missing ${missingDimension === \"both\" ? \"width and height attributes\" : `${missingDimension} attribute`} for ${imageURL}. When using remote images, both dimensions are required in order to avoid CLS.`,\n hint: \"If your image is inside your `src` folder, you probably meant to import it instead. See [the Imports guide for more information](https://docs.astro.build/en/guides/imports/#other-assets). You can also use `inferSize={true}` for remote images to get the original dimensions.\"\n};\nconst FailedToFetchRemoteImageDimensions = {\n name: \"FailedToFetchRemoteImageDimensions\",\n title: \"Failed to retrieve remote image dimensions\",\n message: (imageURL) => `Failed to get the dimensions for ${imageURL}.`,\n hint: \"Verify your remote image URL is accurate, and that you are not using `inferSize` with a file located in your `public/` folder.\"\n};\nconst UnsupportedImageFormat = {\n name: \"UnsupportedImageFormat\",\n title: \"Unsupported image format\",\n message: (format, imagePath, supportedFormats) => `Received unsupported format \\`${format}\\` from \\`${imagePath}\\`. Currently only ${supportedFormats.join(\n \", \"\n )} are supported by our image services.`,\n hint: \"Using an `img` tag directly instead of the `Image` component might be what you're looking for.\"\n};\nconst UnsupportedImageConversion = {\n name: \"UnsupportedImageConversion\",\n title: \"Unsupported image conversion\",\n message: \"Converting between vector (such as SVGs) and raster (such as PNGs and JPEGs) images is not currently supported.\"\n};\nconst PrerenderDynamicEndpointPathCollide = {\n name: \"PrerenderDynamicEndpointPathCollide\",\n title: \"Prerendered dynamic endpoint has path collision.\",\n message: (pathname) => `Could not render \\`${pathname}\\` with an \\`undefined\\` param as the generated path will collide during prerendering. Prevent passing \\`undefined\\` as \\`params\\` for the endpoint's \\`getStaticPaths()\\` function, or add an additional extension to the endpoint's filename.`,\n hint: (filename) => `Rename \\`${filename}\\` to \\`${filename.replace(/\\.(?:js|ts)/, (m) => `.json` + m)}\\``\n};\nconst ExpectedImage = {\n name: \"ExpectedImage\",\n title: \"Expected src to be an image.\",\n message: (src, typeofOptions, fullOptions) => `Expected \\`src\\` property for \\`getImage\\` or \\`\\` to be either an ESM imported image or a string with the path of a remote image. Received \\`${src}\\` (type: \\`${typeofOptions}\\`).\n\nFull serialized options received: \\`${fullOptions}\\`.`,\n hint: \"This error can often happen because of a wrong path. Make sure the path to your image is correct. If you're passing an async function, make sure to call and await it.\"\n};\nconst ExpectedImageOptions = {\n name: \"ExpectedImageOptions\",\n title: \"Expected image options.\",\n message: (options) => `Expected getImage() parameter to be an object. Received \\`${options}\\`.`\n};\nconst ExpectedNotESMImage = {\n name: \"ExpectedNotESMImage\",\n title: \"Expected image options, not an ESM-imported image.\",\n message: \"An ESM-imported image cannot be passed directly to `getImage()`. Instead, pass an object with the image in the `src` property.\",\n hint: \"Try changing `getImage(myImage)` to `getImage({ src: myImage })`\"\n};\nconst IncompatibleDescriptorOptions = {\n name: \"IncompatibleDescriptorOptions\",\n title: \"Cannot set both `densities` and `widths`\",\n message: \"Only one of `densities` or `widths` can be specified. In most cases, you'll probably want to use only `widths` if you require specific widths.\",\n hint: \"Those attributes are used to construct a `srcset` attribute, which cannot have both `x` and `w` descriptors.\"\n};\nconst ImageNotFound = {\n name: \"ImageNotFound\",\n title: \"Image not found.\",\n message: (imagePath) => `Could not find requested image \\`${imagePath}\\`. Does it exist?`,\n hint: \"This is often caused by a typo in the image path. Please make sure the file exists, and is spelled correctly.\"\n};\nconst NoImageMetadata = {\n name: \"NoImageMetadata\",\n title: \"Could not process image metadata.\",\n message: (imagePath) => `Could not process image metadata${imagePath ? ` for \\`${imagePath}\\`` : \"\"}.`,\n hint: \"This is often caused by a corrupted or malformed image. Re-exporting the image from your image editor may fix this issue.\"\n};\nconst CouldNotTransformImage = {\n name: \"CouldNotTransformImage\",\n title: \"Could not transform image.\",\n message: (imagePath) => `Could not transform image \\`${imagePath}\\`. See the stack trace for more information.`,\n hint: \"This is often caused by a corrupted or malformed image. Re-exporting the image from your image editor may fix this issue.\"\n};\nconst ResponseSentError = {\n name: \"ResponseSentError\",\n title: \"Unable to set response.\",\n message: \"The response has already been sent to the browser and cannot be altered.\"\n};\nconst MiddlewareNoDataOrNextCalled = {\n name: \"MiddlewareNoDataOrNextCalled\",\n title: \"The middleware didn't return a `Response`.\",\n message: \"Make sure your middleware returns a `Response` object, either directly or by returning the `Response` from calling the `next` function.\"\n};\nconst MiddlewareNotAResponse = {\n name: \"MiddlewareNotAResponse\",\n title: \"The middleware returned something that is not a `Response` object.\",\n message: \"Any data returned from middleware must be a valid `Response` object.\"\n};\nconst EndpointDidNotReturnAResponse = {\n name: \"EndpointDidNotReturnAResponse\",\n title: \"The endpoint did not return a `Response`.\",\n message: \"An endpoint must return either a `Response`, or a `Promise` that resolves with a `Response`.\"\n};\nconst LocalsNotAnObject = {\n name: \"LocalsNotAnObject\",\n title: \"Value assigned to `locals` is not accepted.\",\n message: \"`locals` can only be assigned to an object. Other values like numbers, strings, etc. are not accepted.\",\n hint: \"If you tried to remove some information from the `locals` object, try to use `delete` or set the property to `undefined`.\"\n};\nconst AstroResponseHeadersReassigned = {\n name: \"AstroResponseHeadersReassigned\",\n title: \"`Astro.response.headers` must not be reassigned.\",\n message: \"Individual headers can be added to and removed from `Astro.response.headers`, but it must not be replaced with another instance of `Headers` altogether.\",\n hint: \"Consider using `Astro.response.headers.add()`, and `Astro.response.headers.delete()`.\"\n};\nconst MiddlewareCantBeLoaded = {\n name: \"MiddlewareCantBeLoaded\",\n title: \"Can't load the middleware.\",\n message: \"An unknown error was thrown while loading your middleware.\"\n};\nconst LocalImageUsedWrongly = {\n name: \"LocalImageUsedWrongly\",\n title: \"Local images must be imported.\",\n message: (imageFilePath) => `\\`Image\\`'s and \\`getImage\\`'s \\`src\\` parameter must be an imported image or an URL, it cannot be a string filepath. Received \\`${imageFilePath}\\`.`,\n hint: \"If you want to use an image from your `src` folder, you need to either import it or if the image is coming from a content collection, use the [image() schema helper](https://docs.astro.build/en/guides/images/#images-in-content-collections). See https://docs.astro.build/en/guides/images/#src-required for more information on the `src` property.\"\n};\nconst AstroGlobUsedOutside = {\n name: \"AstroGlobUsedOutside\",\n title: \"Astro.glob() used outside of an Astro file.\",\n message: (globStr) => `\\`Astro.glob(${globStr})\\` can only be used in \\`.astro\\` files. \\`import.meta.glob(${globStr})\\` can be used instead to achieve a similar result.`,\n hint: \"See Vite's documentation on `import.meta.glob` for more information: https://vitejs.dev/guide/features.html#glob-import\"\n};\nconst AstroGlobNoMatch = {\n name: \"AstroGlobNoMatch\",\n title: \"Astro.glob() did not match any files.\",\n message: (globStr) => `\\`Astro.glob(${globStr})\\` did not return any matching files.`,\n hint: \"Check the pattern for typos.\"\n};\nconst RedirectWithNoLocation = {\n name: \"RedirectWithNoLocation\",\n title: \"A redirect must be given a location with the `Location` header.\"\n};\nconst InvalidDynamicRoute = {\n name: \"InvalidDynamicRoute\",\n title: \"Invalid dynamic route.\",\n message: (route, invalidParam, received) => `The ${invalidParam} param for route ${route} is invalid. Received **${received}**.`\n};\nconst MissingSharp = {\n name: \"MissingSharp\",\n title: \"Could not find Sharp.\",\n message: \"Could not find Sharp. Please install Sharp (`sharp`) manually into your project or migrate to another image service.\",\n hint: \"See Sharp's installation instructions for more information: https://sharp.pixelplumbing.com/install. If you are not relying on `astro:assets` to optimize, transform, or process any images, you can configure a passthrough image service instead of installing Sharp. See https://docs.astro.build/en/reference/errors/missing-sharp for more information.\\n\\nSee https://docs.astro.build/en/guides/images/#default-image-service for more information on how to migrate to another image service.\"\n};\nconst UnknownViteError = {\n name: \"UnknownViteError\",\n title: \"Unknown Vite Error.\"\n};\nconst FailedToLoadModuleSSR = {\n name: \"FailedToLoadModuleSSR\",\n title: \"Could not import file.\",\n message: (importName) => `Could not import \\`${importName}\\`.`,\n hint: \"This is often caused by a typo in the import path. Please make sure the file exists.\"\n};\nconst InvalidGlob = {\n name: \"InvalidGlob\",\n title: \"Invalid glob pattern.\",\n message: (globPattern) => `Invalid glob pattern: \\`${globPattern}\\`. Glob patterns must start with './', '../' or '/'.`,\n hint: \"See https://docs.astro.build/en/guides/imports/#glob-patterns for more information on supported glob patterns.\"\n};\nconst FailedToFindPageMapSSR = {\n name: \"FailedToFindPageMapSSR\",\n title: \"Astro couldn't find the correct page to render\",\n message: \"Astro couldn't find the correct page to render, probably because it wasn't correctly mapped for SSR usage. This is an internal error. Please file an issue.\"\n};\nconst MissingLocale = {\n name: \"MissingLocaleError\",\n title: \"The provided locale does not exist.\",\n message: (locale) => `The locale/path \\`${locale}\\` does not exist in the configured \\`i18n.locales\\`.`\n};\nconst MissingIndexForInternationalization = {\n name: \"MissingIndexForInternationalizationError\",\n title: \"Index page not found.\",\n message: (defaultLocale) => `Could not find index page. A root index page is required in order to create a redirect to the index URL of the default locale. (\\`/${defaultLocale}\\`)`,\n hint: (src) => `Create an index page (\\`index.astro, index.md, etc.\\`) in \\`${src}\\`.`\n};\nconst IncorrectStrategyForI18n = {\n name: \"IncorrectStrategyForI18n\",\n title: \"You can't use the current function with the current strategy\",\n message: (functionName) => `The function \\`${functionName}\\` can only be used when the \\`i18n.routing.strategy\\` is set to \\`\"manual\"\\`.`\n};\nconst NoPrerenderedRoutesWithDomains = {\n name: \"NoPrerenderedRoutesWithDomains\",\n title: \"Prerendered routes aren't supported when internationalization domains are enabled.\",\n message: (component) => `Static pages aren't yet supported with multiple domains. To enable this feature, you must disable prerendering for the page ${component}`\n};\nconst MissingMiddlewareForInternationalization = {\n name: \"MissingMiddlewareForInternationalization\",\n title: \"Enabled manual internationalization routing without having a middleware.\",\n message: \"Your configuration setting `i18n.routing: 'manual'` requires you to provide your own i18n `middleware` file.\"\n};\nconst CantRenderPage = {\n name: \"CantRenderPage\",\n title: \"Astro can't render the route.\",\n message: \"Astro cannot find any content to render for this route. There is no file or redirect associated with this route.\",\n hint: \"If you expect to find a route here, this may be an Astro bug. Please file an issue/restart the dev server\"\n};\nconst UnhandledRejection = {\n name: \"UnhandledRejection\",\n title: \"Unhandled rejection\",\n message: (stack) => `Astro detected an unhandled rejection. Here's the stack trace:\n${stack}`,\n hint: \"Make sure your promises all have an `await` or a `.catch()` handler.\"\n};\nconst i18nNotEnabled = {\n name: \"i18nNotEnabled\",\n title: \"i18n Not Enabled\",\n message: \"The `astro:i18n` module can not be used without enabling i18n in your Astro config.\",\n hint: \"See https://docs.astro.build/en/guides/internationalization for a guide on setting up i18n.\"\n};\nconst i18nNoLocaleFoundInPath = {\n name: \"i18nNoLocaleFoundInPath\",\n title: \"The path doesn't contain any locale\",\n message: \"You tried to use an i18n utility on a path that doesn't contain any locale. You can use `pathHasLocale` first to determine if the path has a locale.\"\n};\nconst RouteNotFound = {\n name: \"RouteNotFound\",\n title: \"Route not found.\",\n message: `Astro could not find a route that matches the one you requested.`\n};\nconst EnvInvalidVariables = {\n name: \"EnvInvalidVariables\",\n title: \"Invalid Environment Variables\",\n message: (errors) => `The following environment variables defined in \\`experimental.env.schema\\` are invalid:\n\n${errors.map((err) => `- ${err}`).join(\"\\n\")}\n`\n};\nconst EnvUnsupportedGetSecret = {\n name: \"EnvUnsupportedGetSecret\",\n title: \"Unsupported astro:env getSecret\",\n message: \"`astro:env/server` exported function `getSecret` is not supported by your adapter.\"\n};\nconst ServerOnlyModule = {\n name: \"ServerOnlyModule\",\n title: \"Module is only available server-side\",\n message: (name) => `The \"${name}\" module is only available server-side.`\n};\nconst RewriteWithBodyUsed = {\n name: \"RewriteWithBodyUsed\",\n title: \"Cannot use Astro.rewrite after the request body has been read\",\n message: \"Astro.rewrite() cannot be used if the request body has already been read. If you need to read the body, first clone the request.\"\n};\nconst UnknownFilesystemError = {\n name: \"UnknownFilesystemError\",\n title: \"An unknown error occurred while reading or writing files to disk.\",\n hint: \"It can be caused by many things, eg. missing permissions or a file not existing we attempt to read. Check the error cause for more details.\"\n};\nconst UnknownCSSError = {\n name: \"UnknownCSSError\",\n title: \"Unknown CSS Error.\"\n};\nconst CSSSyntaxError = {\n name: \"CSSSyntaxError\",\n title: \"CSS Syntax Error.\"\n};\nconst UnknownMarkdownError = {\n name: \"UnknownMarkdownError\",\n title: \"Unknown Markdown Error.\"\n};\nconst MarkdownFrontmatterParseError = {\n name: \"MarkdownFrontmatterParseError\",\n title: \"Failed to parse Markdown frontmatter.\"\n};\nconst InvalidFrontmatterInjectionError = {\n name: \"InvalidFrontmatterInjectionError\",\n title: \"Invalid frontmatter injection.\",\n message: 'A remark or rehype plugin attempted to inject invalid frontmatter. Ensure \"astro.frontmatter\" is set to a valid JSON object that is not `null` or `undefined`.',\n hint: \"See the frontmatter injection docs https://docs.astro.build/en/guides/markdown-content/#modifying-frontmatter-programmatically for more information.\"\n};\nconst MdxIntegrationMissingError = {\n name: \"MdxIntegrationMissingError\",\n title: \"MDX integration missing.\",\n message: (file) => `Unable to render ${file}. Ensure that the \\`@astrojs/mdx\\` integration is installed.`,\n hint: \"See the MDX integration docs for installation and usage instructions: https://docs.astro.build/en/guides/integrations-guide/mdx/\"\n};\nconst UnknownConfigError = {\n name: \"UnknownConfigError\",\n title: \"Unknown configuration error.\"\n};\nconst ConfigNotFound = {\n name: \"ConfigNotFound\",\n title: \"Specified configuration file not found.\",\n message: (configFile) => `Unable to resolve \\`--config \"${configFile}\"\\`. Does the file exist?`\n};\nconst ConfigLegacyKey = {\n name: \"ConfigLegacyKey\",\n title: \"Legacy configuration detected.\",\n message: (legacyConfigKey) => `Legacy configuration detected: \\`${legacyConfigKey}\\`.`,\n hint: \"Please update your configuration to the new format.\\nSee https://astro.build/config for more information.\"\n};\nconst UnknownCLIError = {\n name: \"UnknownCLIError\",\n title: \"Unknown CLI Error.\"\n};\nconst GenerateContentTypesError = {\n name: \"GenerateContentTypesError\",\n title: \"Failed to generate content types.\",\n message: (errorMessage) => `\\`astro sync\\` command failed to generate content collection types: ${errorMessage}`,\n hint: \"Check your `src/content/config.*` file for typos.\"\n};\nconst UnknownContentCollectionError = {\n name: \"UnknownContentCollectionError\",\n title: \"Unknown Content Collection Error.\"\n};\nconst GetEntryDeprecationError = {\n name: \"GetEntryDeprecationError\",\n title: \"Invalid use of `getDataEntryById` or `getEntryBySlug` function.\",\n message: (collection, method) => `The \\`${method}\\` function is deprecated and cannot be used to query the \"${collection}\" collection. Use \\`getEntry\\` instead.`,\n hint: \"Use the `getEntry` or `getCollection` functions to query content layer collections.\"\n};\nconst InvalidContentEntryFrontmatterError = {\n name: \"InvalidContentEntryFrontmatterError\",\n title: \"Content entry frontmatter does not match schema.\",\n message(collection, entryId, error) {\n return [\n `**${String(collection)} \\u2192 ${String(\n entryId\n )}** frontmatter does not match collection schema.`,\n ...error.errors.map((zodError) => zodError.message)\n ].join(\"\\n\");\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more information on content schemas.\"\n};\nconst InvalidContentEntrySlugError = {\n name: \"InvalidContentEntrySlugError\",\n title: \"Invalid content entry slug.\",\n message(collection, entryId) {\n return `${String(collection)} \\u2192 ${String(\n entryId\n )} has an invalid slug. \\`slug\\` must be a string.`;\n },\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on the `slug` field.\"\n};\nconst ContentSchemaContainsSlugError = {\n name: \"ContentSchemaContainsSlugError\",\n title: \"Content Schema should not contain `slug`.\",\n message: (collectionName) => `A content collection schema should not contain \\`slug\\` since it is reserved for slug generation. Remove this from your ${collectionName} collection schema.`,\n hint: \"See https://docs.astro.build/en/guides/content-collections/ for more on the `slug` field.\"\n};\nconst MixedContentDataCollectionError = {\n name: \"MixedContentDataCollectionError\",\n title: \"Content and data cannot be in same collection.\",\n message: (collectionName) => `**${collectionName}** contains a mix of content and data entries. All entries must be of the same type.`,\n hint: \"Store data entries in a new collection separate from your content collection.\"\n};\nconst ContentCollectionTypeMismatchError = {\n name: \"ContentCollectionTypeMismatchError\",\n title: \"Collection contains entries of a different type.\",\n message: (collection, expectedType, actualType) => `${collection} contains ${expectedType} entries, but is configured as a ${actualType} collection.`\n};\nconst DataCollectionEntryParseError = {\n name: \"DataCollectionEntryParseError\",\n title: \"Data collection entry failed to parse.\",\n message(entryId, errorMessage) {\n return `**${entryId}** failed to parse: ${errorMessage}`;\n },\n hint: \"Ensure your data entry is an object with valid JSON (for `.json` entries) or YAML (for `.yaml` entries).\"\n};\nconst DuplicateContentEntrySlugError = {\n name: \"DuplicateContentEntrySlugError\",\n title: \"Duplicate content entry slug.\",\n message(collection, slug, preExisting, alsoFound) {\n return `**${collection}** contains multiple entries with the same slug: \\`${slug}\\`. Slugs must be unique.\n\nEntries: \n- ${preExisting}\n- ${alsoFound}`;\n }\n};\nconst UnsupportedConfigTransformError = {\n name: \"UnsupportedConfigTransformError\",\n title: \"Unsupported transform in content config.\",\n message: (parseError) => `\\`transform()\\` functions in your content config must return valid JSON, or data types compatible with the devalue library (including Dates, Maps, and Sets).\nFull error: ${parseError}`,\n hint: \"See the devalue library for all supported types: https://github.com/rich-harris/devalue\"\n};\nconst ActionsWithoutServerOutputError = {\n name: \"ActionsWithoutServerOutputError\",\n title: \"Actions must be used with server output.\",\n message: \"Actions enabled without setting a server build output. A server is required to create callable backend functions. To deploy routes to a server, add a server adapter to your astro config.\",\n hint: \"Learn about on-demand rendering: https://docs.astro.build/en/basics/rendering-modes/#on-demand-rendered\"\n};\nconst ActionsReturnedInvalidDataError = {\n name: \"ActionsReturnedInvalidDataError\",\n title: \"Action handler returned invalid data.\",\n message: (error) => `Action handler returned invalid data. Handlers should return serializable data types like objects, arrays, strings, and numbers. Parse error: ${error}`,\n hint: \"See the devalue library for all supported types: https://github.com/rich-harris/devalue\"\n};\nconst ActionNotFoundError = {\n name: \"ActionNotFoundError\",\n title: \"Action not found.\",\n message: (actionName) => `The server received a request for an action named \\`${actionName}\\` but could not find a match. If you renamed an action, check that you've updated your \\`actions/index\\` file and your calling code to match.`,\n hint: \"You can run `astro check` to detect type errors caused by mismatched action names.\"\n};\nconst ActionCalledFromServerError = {\n name: \"ActionCalledFromServerError\",\n title: \"Action unexpected called from the server.\",\n message: \"Action called from a server page or endpoint without using `Astro.callAction()`. This wrapper must be used to call actions from server code.\",\n hint: \"See the `Astro.callAction()` reference for usage examples: https://docs.astro.build/en/reference/api-reference/#astrocallaction\"\n};\nconst UnknownError = { name: \"UnknownError\", title: \"Unknown Error.\" };\nexport {\n ActionCalledFromServerError,\n ActionNotFoundError,\n ActionsReturnedInvalidDataError,\n ActionsWithoutServerOutputError,\n AstroGlobNoMatch,\n AstroGlobUsedOutside,\n AstroResponseHeadersReassigned,\n CSSSyntaxError,\n CantRenderPage,\n ClientAddressNotAvailable,\n ConfigLegacyKey,\n ConfigNotFound,\n ContentCollectionTypeMismatchError,\n ContentSchemaContainsSlugError,\n CouldNotTransformImage,\n DataCollectionEntryParseError,\n DuplicateContentEntrySlugError,\n EndpointDidNotReturnAResponse,\n EnvInvalidVariables,\n EnvUnsupportedGetSecret,\n ExpectedImage,\n ExpectedImageOptions,\n ExpectedNotESMImage,\n FailedToFetchRemoteImageDimensions,\n FailedToFindPageMapSSR,\n FailedToLoadModuleSSR,\n GenerateContentTypesError,\n GetEntryDeprecationError,\n GetStaticPathsExpectedParams,\n GetStaticPathsInvalidRouteParam,\n GetStaticPathsRequired,\n ImageMissingAlt,\n ImageNotFound,\n IncompatibleDescriptorOptions,\n IncorrectStrategyForI18n,\n InvalidComponentArgs,\n InvalidContentEntryFrontmatterError,\n InvalidContentEntrySlugError,\n InvalidDynamicRoute,\n InvalidFrontmatterInjectionError,\n InvalidGetStaticPathParam,\n InvalidGetStaticPathsEntry,\n InvalidGetStaticPathsReturn,\n InvalidGlob,\n InvalidImageService,\n InvalidPrerenderExport,\n LocalImageUsedWrongly,\n LocalsNotAnObject,\n MarkdownFrontmatterParseError,\n MdxIntegrationMissingError,\n MiddlewareCantBeLoaded,\n MiddlewareNoDataOrNextCalled,\n MiddlewareNotAResponse,\n MissingImageDimension,\n MissingIndexForInternationalization,\n MissingLocale,\n MissingMediaQueryDirective,\n MissingMiddlewareForInternationalization,\n MissingSharp,\n MixedContentDataCollectionError,\n NoAdapterInstalled,\n NoClientEntrypoint,\n NoClientOnlyHint,\n NoImageMetadata,\n NoMatchingImport,\n NoMatchingRenderer,\n NoMatchingStaticPathFound,\n NoPrerenderedRoutesWithDomains,\n OnlyResponseCanBeReturned,\n PageNumberParamNotFound,\n PrerenderClientAddressNotAvailable,\n PrerenderDynamicEndpointPathCollide,\n RedirectWithNoLocation,\n ReservedSlotName,\n ResponseSentError,\n RewriteWithBodyUsed,\n RouteNotFound,\n ServerOnlyModule,\n StaticClientAddressNotAvailable,\n UnhandledRejection,\n UnknownCLIError,\n UnknownCSSError,\n UnknownCompilerError,\n UnknownConfigError,\n UnknownContentCollectionError,\n UnknownError,\n UnknownFilesystemError,\n UnknownMarkdownError,\n UnknownViteError,\n UnsupportedConfigTransformError,\n UnsupportedImageConversion,\n UnsupportedImageFormat,\n i18nNoLocaleFoundInPath,\n i18nNotEnabled\n};\n","function positionAt(offset, text) {\n const lineOffsets = getLineOffsets(text);\n offset = Math.max(0, Math.min(text.length, offset));\n let low = 0;\n let high = lineOffsets.length;\n if (high === 0) {\n return {\n line: 0,\n column: offset\n };\n }\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const lineOffset = lineOffsets[mid];\n if (lineOffset === offset) {\n return {\n line: mid,\n column: 0\n };\n } else if (offset > lineOffset) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n const line = low - 1;\n return { line, column: offset - lineOffsets[line] };\n}\nfunction getLineOffsets(text) {\n const lineOffsets = [];\n let isLineStart = true;\n for (let i = 0; i < text.length; i++) {\n if (isLineStart) {\n lineOffsets.push(i);\n isLineStart = false;\n }\n const ch = text.charAt(i);\n isLineStart = ch === \"\\r\" || ch === \"\\n\";\n if (ch === \"\\r\" && i + 1 < text.length && text.charAt(i + 1) === \"\\n\") {\n i++;\n }\n }\n if (isLineStart && text.length > 0) {\n lineOffsets.push(text.length);\n }\n return lineOffsets;\n}\nfunction isYAMLException(err) {\n return err instanceof Error && err.name === \"YAMLException\";\n}\nfunction formatYAMLException(e) {\n return {\n name: e.name,\n id: e.mark.name,\n loc: { file: e.mark.name, line: e.mark.line + 1, column: e.mark.column },\n message: e.reason,\n stack: e.stack ?? \"\"\n };\n}\nfunction createSafeError(err) {\n if (err instanceof Error || err?.name && err.message) {\n return err;\n } else {\n const error = new Error(JSON.stringify(err));\n error.hint = `To get as much information as possible from your errors, make sure to throw Error objects instead of \\`${typeof err}\\`. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error for more information.`;\n return error;\n }\n}\nfunction normalizeLF(code) {\n return code.replace(/\\r\\n|\\r(?!\\n)|\\n/g, \"\\n\");\n}\nexport {\n createSafeError,\n formatYAMLException,\n isYAMLException,\n normalizeLF,\n positionAt\n};\n","import { normalizeLF } from \"./utils.js\";\nfunction codeFrame(src, loc) {\n if (!loc || loc.line === void 0 || loc.column === void 0) {\n return \"\";\n }\n const lines = normalizeLF(src).split(\"\\n\").map((ln) => ln.replace(/\\t/g, \" \"));\n const visibleLines = [];\n for (let n = -2; n <= 2; n++) {\n if (lines[loc.line + n]) visibleLines.push(loc.line + n);\n }\n let gutterWidth = 0;\n for (const lineNo of visibleLines) {\n let w = `> ${lineNo}`;\n if (w.length > gutterWidth) gutterWidth = w.length;\n }\n let output = \"\";\n for (const lineNo of visibleLines) {\n const isFocusedLine = lineNo === loc.line - 1;\n output += isFocusedLine ? \"> \" : \" \";\n output += `${lineNo + 1} | ${lines[lineNo]}\n`;\n if (isFocusedLine)\n output += `${Array.from({ length: gutterWidth }).join(\" \")} | ${Array.from({\n length: loc.column\n }).join(\" \")}^\n`;\n }\n return output;\n}\nexport {\n codeFrame\n};\n","import { codeFrame } from \"./printer.js\";\nfunction isAstroError(e) {\n return e instanceof AstroError;\n}\nclass AstroError extends Error {\n loc;\n title;\n hint;\n frame;\n type = \"AstroError\";\n constructor(props, options) {\n const { name, title, message, stack, location, hint, frame } = props;\n super(message, options);\n this.title = title;\n this.name = name;\n if (message) this.message = message;\n this.stack = stack ? stack : this.stack;\n this.loc = location;\n this.hint = hint;\n this.frame = frame;\n }\n setLocation(location) {\n this.loc = location;\n }\n setName(name) {\n this.name = name;\n }\n setMessage(message) {\n this.message = message;\n }\n setHint(hint) {\n this.hint = hint;\n }\n setFrame(source, location) {\n this.frame = codeFrame(source, location);\n }\n static is(err) {\n return err.type === \"AstroError\";\n }\n}\nclass CompilerError extends AstroError {\n type = \"CompilerError\";\n constructor(props, options) {\n super(props, options);\n }\n static is(err) {\n return err.type === \"CompilerError\";\n }\n}\nclass CSSError extends AstroError {\n type = \"CSSError\";\n static is(err) {\n return err.type === \"CSSError\";\n }\n}\nclass MarkdownError extends AstroError {\n type = \"MarkdownError\";\n static is(err) {\n return err.type === \"MarkdownError\";\n }\n}\nclass InternalError extends AstroError {\n type = \"InternalError\";\n static is(err) {\n return err.type === \"InternalError\";\n }\n}\nclass AggregateError extends AstroError {\n type = \"AggregateError\";\n errors;\n // Despite being a collection of errors, AggregateError still needs to have a main error attached to it\n // This is because Vite expects every thrown errors handled during HMR to be, well, Error and have a message\n constructor(props, options) {\n super(props, options);\n this.errors = props.errors;\n }\n static is(err) {\n return err.type === \"AggregateError\";\n }\n}\nconst astroConfigZodErrors = /* @__PURE__ */ new WeakSet();\nfunction isAstroConfigZodError(error) {\n return astroConfigZodErrors.has(error);\n}\nfunction trackAstroConfigZodError(error) {\n astroConfigZodErrors.add(error);\n}\nclass AstroUserError extends Error {\n type = \"AstroUserError\";\n /**\n * A message that explains to the user how they can fix the error.\n */\n hint;\n name = \"AstroUserError\";\n constructor(message, hint) {\n super();\n this.message = message;\n this.hint = hint;\n }\n static is(err) {\n return err.type === \"AstroUserError\";\n }\n}\nexport {\n AggregateError,\n AstroError,\n AstroUserError,\n CSSError,\n CompilerError,\n InternalError,\n MarkdownError,\n isAstroConfigZodError,\n isAstroError,\n trackAstroConfigZodError\n};\n","import { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nfunction validateArgs(args) {\n if (args.length !== 3) return false;\n if (!args[0] || typeof args[0] !== \"object\") return false;\n return true;\n}\nfunction baseCreateComponent(cb, moduleId, propagation) {\n const name = moduleId?.split(\"/\").pop()?.replace(\".astro\", \"\") ?? \"\";\n const fn = (...args) => {\n if (!validateArgs(args)) {\n throw new AstroError({\n ...AstroErrorData.InvalidComponentArgs,\n message: AstroErrorData.InvalidComponentArgs.message(name)\n });\n }\n return cb(...args);\n };\n Object.defineProperty(fn, \"name\", { value: name, writable: false });\n fn.isAstroComponentFactory = true;\n fn.moduleId = moduleId;\n fn.propagation = propagation;\n return fn;\n}\nfunction createComponentWithOptions(opts) {\n const cb = baseCreateComponent(opts.factory, opts.moduleId, opts.propagation);\n return cb;\n}\nfunction createComponent(arg1, moduleId, propagation) {\n if (typeof arg1 === \"function\") {\n return baseCreateComponent(arg1, moduleId, propagation);\n } else {\n return createComponentWithOptions(arg1);\n }\n}\nexport {\n createComponent\n};\n","const ASTRO_VERSION = \"4.15.2\";\nconst REROUTE_DIRECTIVE_HEADER = \"X-Astro-Reroute\";\nconst REWRITE_DIRECTIVE_HEADER_KEY = \"X-Astro-Rewrite\";\nconst REWRITE_DIRECTIVE_HEADER_VALUE = \"yes\";\nconst ROUTE_TYPE_HEADER = \"X-Astro-Route-Type\";\nconst DEFAULT_404_COMPONENT = \"astro-default-404.astro\";\nconst DEFAULT_500_COMPONENT = \"astro-default-500.astro\";\nconst REDIRECT_STATUS_CODES = [301, 302, 303, 307, 308, 300, 304];\nconst REROUTABLE_STATUS_CODES = [404, 500];\nconst clientAddressSymbol = Symbol.for(\"astro.clientAddress\");\nconst clientLocalsSymbol = Symbol.for(\"astro.locals\");\nconst responseSentSymbol = Symbol.for(\"astro.responseSent\");\nconst SUPPORTED_MARKDOWN_FILE_EXTENSIONS = [\n \".markdown\",\n \".mdown\",\n \".mkdn\",\n \".mkd\",\n \".mdwn\",\n \".md\"\n];\nconst MIDDLEWARE_PATH_SEGMENT_NAME = \"middleware\";\nexport {\n ASTRO_VERSION,\n DEFAULT_404_COMPONENT,\n DEFAULT_500_COMPONENT,\n MIDDLEWARE_PATH_SEGMENT_NAME,\n REDIRECT_STATUS_CODES,\n REROUTABLE_STATUS_CODES,\n REROUTE_DIRECTIVE_HEADER,\n REWRITE_DIRECTIVE_HEADER_KEY,\n REWRITE_DIRECTIVE_HEADER_VALUE,\n ROUTE_TYPE_HEADER,\n SUPPORTED_MARKDOWN_FILE_EXTENSIONS,\n clientAddressSymbol,\n clientLocalsSymbol,\n responseSentSymbol\n};\n","import { ASTRO_VERSION } from \"../../core/constants.js\";\nimport { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nfunction createAstroGlobFn() {\n const globHandler = (importMetaGlobResult) => {\n if (typeof importMetaGlobResult === \"string\") {\n throw new AstroError({\n ...AstroErrorData.AstroGlobUsedOutside,\n message: AstroErrorData.AstroGlobUsedOutside.message(JSON.stringify(importMetaGlobResult))\n });\n }\n let allEntries = [...Object.values(importMetaGlobResult)];\n if (allEntries.length === 0) {\n throw new AstroError({\n ...AstroErrorData.AstroGlobNoMatch,\n message: AstroErrorData.AstroGlobNoMatch.message(JSON.stringify(importMetaGlobResult))\n });\n }\n return Promise.all(allEntries.map((fn) => fn()));\n };\n return globHandler;\n}\nfunction createAstro(site) {\n return {\n // TODO: this is no longer necessary for `Astro.site`\n // but it somehow allows working around caching issues in content collections for some tests\n site: site ? new URL(site) : void 0,\n generator: `Astro v${ASTRO_VERSION}`,\n glob: createAstroGlobFn()\n };\n}\nexport {\n createAstro\n};\n","function isPromise(value) {\n return !!value && typeof value === \"object\" && \"then\" in value && typeof value.then === \"function\";\n}\nasync function* streamAsyncIterator(stream) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) return;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n}\nexport {\n isPromise,\n streamAsyncIterator\n};\n","import { escape } from \"html-escaper\";\nimport { streamAsyncIterator } from \"./util.js\";\nconst escapeHTML = escape;\nclass HTMLBytes extends Uint8Array {\n}\nObject.defineProperty(HTMLBytes.prototype, Symbol.toStringTag, {\n get() {\n return \"HTMLBytes\";\n }\n});\nclass HTMLString extends String {\n get [Symbol.toStringTag]() {\n return \"HTMLString\";\n }\n}\nconst markHTMLString = (value) => {\n if (value instanceof HTMLString) {\n return value;\n }\n if (typeof value === \"string\") {\n return new HTMLString(value);\n }\n return value;\n};\nfunction isHTMLString(value) {\n return Object.prototype.toString.call(value) === \"[object HTMLString]\";\n}\nfunction markHTMLBytes(bytes) {\n return new HTMLBytes(bytes);\n}\nfunction isHTMLBytes(value) {\n return Object.prototype.toString.call(value) === \"[object HTMLBytes]\";\n}\nfunction hasGetReader(obj) {\n return typeof obj.getReader === \"function\";\n}\nasync function* unescapeChunksAsync(iterable) {\n if (hasGetReader(iterable)) {\n for await (const chunk of streamAsyncIterator(iterable)) {\n yield unescapeHTML(chunk);\n }\n } else {\n for await (const chunk of iterable) {\n yield unescapeHTML(chunk);\n }\n }\n}\nfunction* unescapeChunks(iterable) {\n for (const chunk of iterable) {\n yield unescapeHTML(chunk);\n }\n}\nfunction unescapeHTML(str) {\n if (!!str && typeof str === \"object\") {\n if (str instanceof Uint8Array) {\n return markHTMLBytes(str);\n } else if (str instanceof Response && str.body) {\n const body = str.body;\n return unescapeChunksAsync(body);\n } else if (typeof str.then === \"function\") {\n return Promise.resolve(str).then((value) => {\n return unescapeHTML(value);\n });\n } else if (str[Symbol.for(\"astro:slot-string\")]) {\n return str;\n } else if (Symbol.iterator in str) {\n return unescapeChunks(str);\n } else if (Symbol.asyncIterator in str || hasGetReader(str)) {\n return unescapeChunksAsync(str);\n }\n }\n return markHTMLString(str);\n}\nexport {\n HTMLBytes,\n HTMLString,\n escapeHTML,\n isHTMLBytes,\n isHTMLString,\n markHTMLString,\n unescapeHTML\n};\n","const RenderInstructionSymbol = Symbol.for(\"astro:render\");\nfunction createRenderInstruction(instruction) {\n return Object.defineProperty(instruction, RenderInstructionSymbol, {\n value: true\n });\n}\nfunction isRenderInstruction(chunk) {\n return chunk && typeof chunk === \"object\" && chunk[RenderInstructionSymbol];\n}\nexport {\n createRenderInstruction,\n isRenderInstruction\n};\n","const PROP_TYPE = {\n Value: 0,\n JSON: 1,\n // Actually means Array\n RegExp: 2,\n Date: 3,\n Map: 4,\n Set: 5,\n BigInt: 6,\n URL: 7,\n Uint8Array: 8,\n Uint16Array: 9,\n Uint32Array: 10\n};\nfunction serializeArray(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n if (parents.has(value)) {\n throw new Error(`Cyclic reference detected while serializing props for <${metadata.displayName} client:${metadata.hydrate}>!\n\nCyclic references cannot be safely serialized for client-side usage. Please remove the cyclic reference.`);\n }\n parents.add(value);\n const serialized = value.map((v) => {\n return convertToSerializedForm(v, metadata, parents);\n });\n parents.delete(value);\n return serialized;\n}\nfunction serializeObject(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n if (parents.has(value)) {\n throw new Error(`Cyclic reference detected while serializing props for <${metadata.displayName} client:${metadata.hydrate}>!\n\nCyclic references cannot be safely serialized for client-side usage. Please remove the cyclic reference.`);\n }\n parents.add(value);\n const serialized = Object.fromEntries(\n Object.entries(value).map(([k, v]) => {\n return [k, convertToSerializedForm(v, metadata, parents)];\n })\n );\n parents.delete(value);\n return serialized;\n}\nfunction convertToSerializedForm(value, metadata = {}, parents = /* @__PURE__ */ new WeakSet()) {\n const tag = Object.prototype.toString.call(value);\n switch (tag) {\n case \"[object Date]\": {\n return [PROP_TYPE.Date, value.toISOString()];\n }\n case \"[object RegExp]\": {\n return [PROP_TYPE.RegExp, value.source];\n }\n case \"[object Map]\": {\n return [PROP_TYPE.Map, serializeArray(Array.from(value), metadata, parents)];\n }\n case \"[object Set]\": {\n return [PROP_TYPE.Set, serializeArray(Array.from(value), metadata, parents)];\n }\n case \"[object BigInt]\": {\n return [PROP_TYPE.BigInt, value.toString()];\n }\n case \"[object URL]\": {\n return [PROP_TYPE.URL, value.toString()];\n }\n case \"[object Array]\": {\n return [PROP_TYPE.JSON, serializeArray(value, metadata, parents)];\n }\n case \"[object Uint8Array]\": {\n return [PROP_TYPE.Uint8Array, Array.from(value)];\n }\n case \"[object Uint16Array]\": {\n return [PROP_TYPE.Uint16Array, Array.from(value)];\n }\n case \"[object Uint32Array]\": {\n return [PROP_TYPE.Uint32Array, Array.from(value)];\n }\n default: {\n if (value !== null && typeof value === \"object\") {\n return [PROP_TYPE.Value, serializeObject(value, metadata, parents)];\n } else if (value === void 0) {\n return [PROP_TYPE.Value];\n } else {\n return [PROP_TYPE.Value, value];\n }\n }\n }\n}\nfunction serializeProps(props, metadata) {\n const serialized = JSON.stringify(serializeObject(props, metadata));\n return serialized;\n}\nexport {\n serializeProps\n};\n","import { AstroError, AstroErrorData } from \"../../core/errors/index.js\";\nimport { escapeHTML } from \"./escape.js\";\nimport { serializeProps } from \"./serialize.js\";\nconst transitionDirectivesToCopyOnIsland = Object.freeze([\n \"data-astro-transition-scope\",\n \"data-astro-transition-persist\",\n \"data-astro-transition-persist-props\"\n]);\nfunction extractDirectives(inputProps, clientDirectives) {\n let extracted = {\n isPage: false,\n hydration: null,\n props: {},\n propsWithoutTransitionAttributes: {}\n };\n for (const [key, value] of Object.entries(inputProps)) {\n if (key.startsWith(\"server:\")) {\n if (key === \"server:root\") {\n extracted.isPage = true;\n }\n }\n if (key.startsWith(\"client:\")) {\n if (!extracted.hydration) {\n extracted.hydration = {\n directive: \"\",\n value: \"\",\n componentUrl: \"\",\n componentExport: { value: \"\" }\n };\n }\n switch (key) {\n case \"client:component-path\": {\n extracted.hydration.componentUrl = value;\n break;\n }\n case \"client:component-export\": {\n extracted.hydration.componentExport.value = value;\n break;\n }\n case \"client:component-hydration\": {\n break;\n }\n case \"client:display-name\": {\n break;\n }\n default: {\n extracted.hydration.directive = key.split(\":\")[1];\n extracted.hydration.value = value;\n if (!clientDirectives.has(extracted.hydration.directive)) {\n const hydrationMethods = Array.from(clientDirectives.keys()).map((d) => `client:${d}`).join(\", \");\n throw new Error(\n `Error: invalid hydration directive \"${key}\". Supported hydration methods: ${hydrationMethods}`\n );\n }\n if (extracted.hydration.directive === \"media\" && typeof extracted.hydration.value !== \"string\") {\n throw new AstroError(AstroErrorData.MissingMediaQueryDirective);\n }\n break;\n }\n }\n } else {\n extracted.props[key] = value;\n if (!transitionDirectivesToCopyOnIsland.includes(key)) {\n extracted.propsWithoutTransitionAttributes[key] = value;\n }\n }\n }\n for (const sym of Object.getOwnPropertySymbols(inputProps)) {\n extracted.props[sym] = inputProps[sym];\n extracted.propsWithoutTransitionAttributes[sym] = inputProps[sym];\n }\n return extracted;\n}\nasync function generateHydrateScript(scriptOptions, metadata) {\n const { renderer, result, astroId, props, attrs } = scriptOptions;\n const { hydrate, componentUrl, componentExport } = metadata;\n if (!componentExport.value) {\n throw new AstroError({\n ...AstroErrorData.NoMatchingImport,\n message: AstroErrorData.NoMatchingImport.message(metadata.displayName)\n });\n }\n const island = {\n children: \"\",\n props: {\n // This is for HMR, probably can avoid it in prod\n uid: astroId\n }\n };\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n island.props[key] = escapeHTML(value);\n }\n }\n island.props[\"component-url\"] = await result.resolve(decodeURI(componentUrl));\n if (renderer.clientEntrypoint) {\n island.props[\"component-export\"] = componentExport.value;\n island.props[\"renderer-url\"] = await result.resolve(decodeURI(renderer.clientEntrypoint));\n island.props[\"props\"] = escapeHTML(serializeProps(props, metadata));\n }\n island.props[\"ssr\"] = \"\";\n island.props[\"client\"] = hydrate;\n let beforeHydrationUrl = await result.resolve(\"astro:scripts/before-hydration.js\");\n if (beforeHydrationUrl.length) {\n island.props[\"before-hydration-url\"] = beforeHydrationUrl;\n }\n island.props[\"opts\"] = escapeHTML(\n JSON.stringify({\n name: metadata.displayName,\n value: metadata.hydrateArgs || \"\"\n })\n );\n transitionDirectivesToCopyOnIsland.forEach((name) => {\n if (typeof props[name] !== \"undefined\") {\n island.props[name] = props[name];\n }\n });\n return island;\n}\nexport {\n extractDirectives,\n generateHydrateScript\n};\n","/**\n * shortdash - https://github.com/bibig/node-shorthash\n *\n * @license\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Bibig \n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\nconst dictionary = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY\";\nconst binary = dictionary.length;\nfunction bitwise(str) {\n let hash = 0;\n if (str.length === 0) return hash;\n for (let i = 0; i < str.length; i++) {\n const ch = str.charCodeAt(i);\n hash = (hash << 5) - hash + ch;\n hash = hash & hash;\n }\n return hash;\n}\nfunction shorthash(text) {\n let num;\n let result = \"\";\n let integer = bitwise(text);\n const sign = integer < 0 ? \"Z\" : \"\";\n integer = Math.abs(integer);\n while (integer >= binary) {\n num = integer % binary;\n integer = Math.floor(integer / binary);\n result = dictionary[num] + result;\n }\n if (integer > 0) {\n result = dictionary[integer] + result;\n }\n return sign + result;\n}\nexport {\n shorthash\n};\n","function isAstroComponentFactory(obj) {\n return obj == null ? false : obj.isAstroComponentFactory === true;\n}\nfunction isAPropagatingComponent(result, factory) {\n let hint = factory.propagation || \"none\";\n if (factory.moduleId && result.componentMetadata.has(factory.moduleId) && hint === \"none\") {\n hint = result.componentMetadata.get(factory.moduleId).propagation;\n }\n return hint === \"in-tree\" || hint === \"self\";\n}\nexport {\n isAPropagatingComponent,\n isAstroComponentFactory\n};\n","const headAndContentSym = Symbol.for(\"astro.headAndContent\");\nfunction isHeadAndContent(obj) {\n return typeof obj === \"object\" && !!obj[headAndContentSym];\n}\nfunction createHeadAndContent(head, content) {\n return {\n [headAndContentSym]: true,\n head,\n content\n };\n}\nexport {\n createHeadAndContent,\n isHeadAndContent\n};\n","var astro_island_prebuilt_dev_default = `(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var l=(i,o,a)=>g(i,typeof o!=\"symbol\"?o+\"\":o,a);{let i={0:t=>y(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t)},o=t=>{let[h,e]=t;return h in i?i[h](e):void 0},a=t=>t.map(o),y=t=>typeof t!=\"object\"||t===null?t:Object.fromEntries(Object.entries(t).map(([h,e])=>[h,o(e)]));class f extends HTMLElement{constructor(){super(...arguments);l(this,\"Component\");l(this,\"hydrator\");l(this,\"hydrate\",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest(\"astro-island[ssr]\");if(e){e.addEventListener(\"astro:hydrate\",this.hydrate,{once:!0});return}let c=this.querySelectorAll(\"astro-slot\"),n={},p=this.querySelectorAll(\"template[data-astro-template]\");for(let r of p){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"data-astro-template\")||\"default\"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"name\")||\"default\"]=r.innerHTML)}let u;try{u=this.hasAttribute(\"props\")?y(JSON.parse(this.getAttribute(\"props\"))):{}}catch(r){let s=this.getAttribute(\"component-url\")||\"\",v=this.getAttribute(\"component-export\");throw v&&(s+=\\` (export \\${v})\\`),console.error(\\`[hydrate] Error parsing props for component \\${s}\\`,this.getAttribute(\"props\"),r),r}let d,m=this.hydrator(this);d=performance.now(),await m(this.Component,u,n,{client:this.getAttribute(\"client\")}),d&&this.setAttribute(\"client-render-time\",(performance.now()-d).toString()),this.removeAttribute(\"ssr\"),this.dispatchEvent(new CustomEvent(\"astro:hydrate\"))});l(this,\"unmount\",()=>{this.isConnected||this.dispatchEvent(new CustomEvent(\"astro:unmount\"))})}disconnectedCallback(){document.removeEventListener(\"astro:after-swap\",this.unmount),document.addEventListener(\"astro:after-swap\",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(\"await-children\")||document.readyState===\"interactive\"||document.readyState===\"complete\")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(\"DOMContentLoaded\",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===\"astro:end\"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener(\"DOMContentLoaded\",e)}}async childrenConnectedCallback(){let e=this.getAttribute(\"before-hydration-url\");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute(\"opts\")),c=this.getAttribute(\"client\");if(Astro[c]===void 0){window.addEventListener(\\`astro:\\${c}\\`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute(\"renderer-url\"),[p,{default:u}]=await Promise.all([import(this.getAttribute(\"component-url\")),n?import(n):()=>()=>{}]),d=this.getAttribute(\"component-export\")||\"default\";if(!d.includes(\".\"))this.Component=p[d];else{this.Component=p;for(let m of d.split(\".\"))this.Component=this.Component[m]}return this.hydrator=u,this.hydrate},e,this)}catch(n){console.error(\\`[astro-island] Error hydrating \\${this.getAttribute(\"component-url\")}\\`,n)}}attributeChangedCallback(){this.hydrate()}}l(f,\"observedAttributes\",[\"props\"]),customElements.get(\"astro-island\")||customElements.define(\"astro-island\",f)}})();`;\nexport {\n astro_island_prebuilt_dev_default as default\n};\n","var astro_island_prebuilt_default = `(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!=\"symbol\"?o+\"\":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t)},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!=\"object\"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,\"Component\");d(this,\"hydrator\");d(this,\"hydrate\",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest(\"astro-island[ssr]\");if(e){e.addEventListener(\"astro:hydrate\",this.hydrate,{once:!0});return}let c=this.querySelectorAll(\"astro-slot\"),n={},h=this.querySelectorAll(\"template[data-astro-template]\");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"data-astro-template\")||\"default\"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute(\"name\")||\"default\"]=r.innerHTML)}let p;try{p=this.hasAttribute(\"props\")?m(JSON.parse(this.getAttribute(\"props\"))):{}}catch(r){let s=this.getAttribute(\"component-url\")||\"\",v=this.getAttribute(\"component-export\");throw v&&(s+=\\` (export \\${v})\\`),console.error(\\`[hydrate] Error parsing props for component \\${s}\\`,this.getAttribute(\"props\"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute(\"client\")}),this.removeAttribute(\"ssr\"),this.dispatchEvent(new CustomEvent(\"astro:hydrate\"))});d(this,\"unmount\",()=>{this.isConnected||this.dispatchEvent(new CustomEvent(\"astro:unmount\"))})}disconnectedCallback(){document.removeEventListener(\"astro:after-swap\",this.unmount),document.addEventListener(\"astro:after-swap\",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(\"await-children\")||document.readyState===\"interactive\"||document.readyState===\"complete\")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener(\"DOMContentLoaded\",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue===\"astro:end\"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener(\"DOMContentLoaded\",e)}}async childrenConnectedCallback(){let e=this.getAttribute(\"before-hydration-url\");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute(\"opts\")),c=this.getAttribute(\"client\");if(Astro[c]===void 0){window.addEventListener(\\`astro:\\${c}\\`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute(\"renderer-url\"),[h,{default:p}]=await Promise.all([import(this.getAttribute(\"component-url\")),n?import(n):()=>()=>{}]),u=this.getAttribute(\"component-export\")||\"default\";if(!u.includes(\".\"))this.Component=h[u];else{this.Component=h;for(let f of u.split(\".\"))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(\\`[astro-island] Error hydrating \\${this.getAttribute(\"component-url\")}\\`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,\"observedAttributes\",[\"props\"]),customElements.get(\"astro-island\")||customElements.define(\"astro-island\",y)}})();`;\nexport {\n astro_island_prebuilt_default as default\n};\n","import islandScriptDev from \"./astro-island.prebuilt-dev.js\";\nimport islandScript from \"./astro-island.prebuilt.js\";\nconst ISLAND_STYLES = ``;\nfunction determineIfNeedsHydrationScript(result) {\n if (result._metadata.hasHydrationScript) {\n return false;\n }\n return result._metadata.hasHydrationScript = true;\n}\nfunction determinesIfNeedsDirectiveScript(result, directive) {\n if (result._metadata.hasDirectives.has(directive)) {\n return false;\n }\n result._metadata.hasDirectives.add(directive);\n return true;\n}\nfunction getDirectiveScriptText(result, directive) {\n const clientDirectives = result.clientDirectives;\n const clientDirective = clientDirectives.get(directive);\n if (!clientDirective) {\n throw new Error(`Unknown directive: ${directive}`);\n }\n return clientDirective;\n}\nfunction getPrescripts(result, type, directive) {\n switch (type) {\n case \"both\":\n return `${ISLAND_STYLES}`;\n case \"directive\":\n return ``;\n case null:\n break;\n }\n return \"\";\n}\nexport {\n determineIfNeedsHydrationScript,\n determinesIfNeedsDirectiveScript,\n getPrescripts\n};\n","import { clsx } from \"clsx\";\nimport { HTMLString, markHTMLString } from \"../escape.js\";\nconst voidElementNames = /^(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i;\nconst htmlBooleanAttributes = /^(?:allowfullscreen|async|autofocus|autoplay|controls|default|defer|disabled|disablepictureinpicture|disableremoteplayback|formnovalidate|hidden|loop|nomodule|novalidate|open|playsinline|readonly|required|reversed|scoped|seamless|itemscope)$/i;\nconst htmlEnumAttributes = /^(?:contenteditable|draggable|spellcheck|value)$/i;\nconst svgEnumAttributes = /^(?:autoReverse|externalResourcesRequired|focusable|preserveAlpha)$/i;\nconst AMPERSAND_REGEX = /&/g;\nconst DOUBLE_QUOTE_REGEX = /\"/g;\nconst STATIC_DIRECTIVES = /* @__PURE__ */ new Set([\"set:html\", \"set:text\"]);\nconst toIdent = (k) => k.trim().replace(/(?!^)\\b\\w|\\s+|\\W+/g, (match, index) => {\n if (/\\W/.test(match)) return \"\";\n return index === 0 ? match : match.toUpperCase();\n});\nconst toAttributeString = (value, shouldEscape = true) => shouldEscape ? String(value).replace(AMPERSAND_REGEX, \"&\").replace(DOUBLE_QUOTE_REGEX, \""\") : value;\nconst kebab = (k) => k.toLowerCase() === k ? k : k.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\nconst toStyleString = (obj) => Object.entries(obj).filter(([_, v]) => typeof v === \"string\" && v.trim() || typeof v === \"number\").map(([k, v]) => {\n if (k[0] !== \"-\" && k[1] !== \"-\") return `${kebab(k)}:${v}`;\n return `${k}:${v}`;\n}).join(\";\");\nfunction defineScriptVars(vars) {\n let output = \"\";\n for (const [key, value] of Object.entries(vars)) {\n output += `const ${toIdent(key)} = ${JSON.stringify(value)?.replace(\n /<\\/script>/g,\n \"\\\\x3C/script>\"\n )};\n`;\n }\n return markHTMLString(output);\n}\nfunction formatList(values) {\n if (values.length === 1) {\n return values[0];\n }\n return `${values.slice(0, -1).join(\", \")} or ${values[values.length - 1]}`;\n}\nfunction addAttribute(value, key, shouldEscape = true) {\n if (value == null) {\n return \"\";\n }\n if (value === false) {\n if (htmlEnumAttributes.test(key) || svgEnumAttributes.test(key)) {\n return markHTMLString(` ${key}=\"false\"`);\n }\n return \"\";\n }\n if (STATIC_DIRECTIVES.has(key)) {\n console.warn(`[astro] The \"${key}\" directive cannot be applied dynamically at runtime. It will not be rendered as an attribute.\n\nMake sure to use the static attribute syntax (\\`${key}={value}\\`) instead of the dynamic spread syntax (\\`{...{ \"${key}\": value }}\\`).`);\n return \"\";\n }\n if (key === \"class:list\") {\n const listValue = toAttributeString(clsx(value), shouldEscape);\n if (listValue === \"\") {\n return \"\";\n }\n return markHTMLString(` ${key.slice(0, -5)}=\"${listValue}\"`);\n }\n if (key === \"style\" && !(value instanceof HTMLString)) {\n if (Array.isArray(value) && value.length === 2) {\n return markHTMLString(\n ` ${key}=\"${toAttributeString(`${toStyleString(value[0])};${value[1]}`, shouldEscape)}\"`\n );\n }\n if (typeof value === \"object\") {\n return markHTMLString(` ${key}=\"${toAttributeString(toStyleString(value), shouldEscape)}\"`);\n }\n }\n if (key === \"className\") {\n return markHTMLString(` class=\"${toAttributeString(value, shouldEscape)}\"`);\n }\n if (typeof value === \"string\" && value.includes(\"&\") && isHttpUrl(value)) {\n return markHTMLString(` ${key}=\"${toAttributeString(value, false)}\"`);\n }\n if (value === true && (key.startsWith(\"data-\") || htmlBooleanAttributes.test(key))) {\n return markHTMLString(` ${key}`);\n } else {\n return markHTMLString(` ${key}=\"${toAttributeString(value, shouldEscape)}\"`);\n }\n}\nfunction internalSpreadAttributes(values, shouldEscape = true) {\n let output = \"\";\n for (const [key, value] of Object.entries(values)) {\n output += addAttribute(value, key, shouldEscape);\n }\n return markHTMLString(output);\n}\nfunction renderElement(name, { props: _props, children = \"\" }, shouldEscape = true) {\n const { lang: _, \"data-astro-id\": astroId, \"define:vars\": defineVars, ...props } = _props;\n if (defineVars) {\n if (name === \"style\") {\n delete props[\"is:global\"];\n delete props[\"is:scoped\"];\n }\n if (name === \"script\") {\n delete props.hoist;\n children = defineScriptVars(defineVars) + \"\\n\" + children;\n }\n }\n if ((children == null || children == \"\") && voidElementNames.test(name)) {\n return `<${name}${internalSpreadAttributes(props, shouldEscape)}>`;\n }\n return `<${name}${internalSpreadAttributes(props, shouldEscape)}>${children}`;\n}\nconst noop = () => {\n};\nclass BufferedRenderer {\n chunks = [];\n renderPromise;\n destination;\n constructor(bufferRenderFunction) {\n this.renderPromise = bufferRenderFunction(this);\n Promise.resolve(this.renderPromise).catch(noop);\n }\n write(chunk) {\n if (this.destination) {\n this.destination.write(chunk);\n } else {\n this.chunks.push(chunk);\n }\n }\n async renderToFinalDestination(destination) {\n for (const chunk of this.chunks) {\n destination.write(chunk);\n }\n this.destination = destination;\n await this.renderPromise;\n }\n}\nfunction renderToBufferDestination(bufferRenderFunction) {\n const renderer = new BufferedRenderer(bufferRenderFunction);\n return renderer;\n}\nconst isNode = typeof process !== \"undefined\" && Object.prototype.toString.call(process) === \"[object process]\";\nconst isDeno = typeof Deno !== \"undefined\";\nfunction promiseWithResolvers() {\n let resolve, reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n return {\n promise,\n resolve,\n reject\n };\n}\nconst VALID_PROTOCOLS = [\"http:\", \"https:\"];\nfunction isHttpUrl(url) {\n try {\n const parsedUrl = new URL(url);\n return VALID_PROTOCOLS.includes(parsedUrl.protocol);\n } catch {\n return false;\n }\n}\nexport {\n addAttribute,\n defineScriptVars,\n formatList,\n internalSpreadAttributes,\n isDeno,\n isNode,\n promiseWithResolvers,\n renderElement,\n renderToBufferDestination,\n toAttributeString,\n voidElementNames\n};\n","import { markHTMLString } from \"../escape.js\";\nimport { createRenderInstruction } from \"./instruction.js\";\nimport { renderElement } from \"./util.js\";\nconst uniqueElements = (item, index, all) => {\n const props = JSON.stringify(item.props);\n const children = item.children;\n return index === all.findIndex((i) => JSON.stringify(i.props) === props && i.children == children);\n};\nfunction renderAllHeadContent(result) {\n result._metadata.hasRenderedHead = true;\n const styles = Array.from(result.styles).filter(uniqueElements).map(\n (style) => style.props.rel === \"stylesheet\" ? renderElement(\"link\", style) : renderElement(\"style\", style)\n );\n result.styles.clear();\n const scripts = Array.from(result.scripts).filter(uniqueElements).map((script) => {\n return renderElement(\"script\", script, false);\n });\n const links = Array.from(result.links).filter(uniqueElements).map((link) => renderElement(\"link\", link, false));\n let content = styles.join(\"\\n\") + links.join(\"\\n\") + scripts.join(\"\\n\");\n if (result._metadata.extraHead.length > 0) {\n for (const part of result._metadata.extraHead) {\n content += part;\n }\n }\n return markHTMLString(content);\n}\nfunction renderHead() {\n return createRenderInstruction({ type: \"head\" });\n}\nfunction maybeRenderHead() {\n return createRenderInstruction({ type: \"maybe-head\" });\n}\nexport {\n maybeRenderHead,\n renderAllHeadContent,\n renderHead\n};\n","import { markHTMLString } from \"../../escape.js\";\nimport { isPromise } from \"../../util.js\";\nimport { renderChild } from \"../any.js\";\nimport { renderToBufferDestination } from \"../util.js\";\nconst renderTemplateResultSym = Symbol.for(\"astro.renderTemplateResult\");\nclass RenderTemplateResult {\n [renderTemplateResultSym] = true;\n htmlParts;\n expressions;\n error;\n constructor(htmlParts, expressions) {\n this.htmlParts = htmlParts;\n this.error = void 0;\n this.expressions = expressions.map((expression) => {\n if (isPromise(expression)) {\n return Promise.resolve(expression).catch((err) => {\n if (!this.error) {\n this.error = err;\n throw err;\n }\n });\n }\n return expression;\n });\n }\n async render(destination) {\n const expRenders = this.expressions.map((exp) => {\n return renderToBufferDestination((bufferDestination) => {\n if (exp || exp === 0) {\n return renderChild(bufferDestination, exp);\n }\n });\n });\n for (let i = 0; i < this.htmlParts.length; i++) {\n const html = this.htmlParts[i];\n const expRender = expRenders[i];\n destination.write(markHTMLString(html));\n if (expRender) {\n await expRender.renderToFinalDestination(destination);\n }\n }\n }\n}\nfunction isRenderTemplateResult(obj) {\n return typeof obj === \"object\" && !!obj[renderTemplateResultSym];\n}\nfunction renderTemplate(htmlParts, ...expressions) {\n return new RenderTemplateResult(htmlParts, expressions);\n}\nexport {\n RenderTemplateResult,\n isRenderTemplateResult,\n renderTemplate\n};\n","import { renderTemplate } from \"./astro/render-template.js\";\nimport { HTMLString, markHTMLString, unescapeHTML } from \"../escape.js\";\nimport { renderChild } from \"./any.js\";\nimport { chunkToString } from \"./common.js\";\nconst slotString = Symbol.for(\"astro:slot-string\");\nclass SlotString extends HTMLString {\n instructions;\n [slotString];\n constructor(content, instructions) {\n super(content);\n this.instructions = instructions;\n this[slotString] = true;\n }\n}\nfunction isSlotString(str) {\n return !!str[slotString];\n}\nfunction renderSlot(result, slotted, fallback) {\n if (!slotted && fallback) {\n return renderSlot(result, fallback);\n }\n return {\n async render(destination) {\n await renderChild(destination, typeof slotted === \"function\" ? slotted(result) : slotted);\n }\n };\n}\nasync function renderSlotToString(result, slotted, fallback) {\n let content = \"\";\n let instructions = null;\n const temporaryDestination = {\n write(chunk) {\n if (chunk instanceof SlotString) {\n content += chunk;\n if (chunk.instructions) {\n instructions ??= [];\n instructions.push(...chunk.instructions);\n }\n } else if (chunk instanceof Response) return;\n else if (typeof chunk === \"object\" && \"type\" in chunk && typeof chunk.type === \"string\") {\n if (instructions === null) {\n instructions = [];\n }\n instructions.push(chunk);\n } else {\n content += chunkToString(result, chunk);\n }\n }\n };\n const renderInstance = renderSlot(result, slotted, fallback);\n await renderInstance.render(temporaryDestination);\n return markHTMLString(new SlotString(content, instructions));\n}\nasync function renderSlots(result, slots = {}) {\n let slotInstructions = null;\n let children = {};\n if (slots) {\n await Promise.all(\n Object.entries(slots).map(\n ([key, value]) => renderSlotToString(result, value).then((output) => {\n if (output.instructions) {\n if (slotInstructions === null) {\n slotInstructions = [];\n }\n slotInstructions.push(...output.instructions);\n }\n children[key] = output;\n })\n )\n );\n }\n return { slotInstructions, children };\n}\nfunction createSlotValueFromString(content) {\n return function() {\n return renderTemplate`${unescapeHTML(content)}`;\n };\n}\nexport {\n SlotString,\n createSlotValueFromString,\n isSlotString,\n renderSlot,\n renderSlotToString,\n renderSlots\n};\n","import { markHTMLString } from \"../escape.js\";\nimport {\n determineIfNeedsHydrationScript,\n determinesIfNeedsDirectiveScript,\n getPrescripts\n} from \"../scripts.js\";\nimport { renderAllHeadContent } from \"./head.js\";\nimport { isRenderInstruction } from \"./instruction.js\";\nimport { isSlotString } from \"./slot.js\";\nconst Fragment = Symbol.for(\"astro:fragment\");\nconst Renderer = Symbol.for(\"astro:renderer\");\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nfunction stringifyChunk(result, chunk) {\n if (isRenderInstruction(chunk)) {\n const instruction = chunk;\n switch (instruction.type) {\n case \"directive\": {\n const { hydration } = instruction;\n let needsHydrationScript = hydration && determineIfNeedsHydrationScript(result);\n let needsDirectiveScript = hydration && determinesIfNeedsDirectiveScript(result, hydration.directive);\n let prescriptType = needsHydrationScript ? \"both\" : needsDirectiveScript ? \"directive\" : null;\n if (prescriptType) {\n let prescripts = getPrescripts(result, prescriptType, hydration.directive);\n return markHTMLString(prescripts);\n } else {\n return \"\";\n }\n }\n case \"head\": {\n if (result._metadata.hasRenderedHead || result.partial) {\n return \"\";\n }\n return renderAllHeadContent(result);\n }\n case \"maybe-head\": {\n if (result._metadata.hasRenderedHead || result._metadata.headInTree || result.partial) {\n return \"\";\n }\n return renderAllHeadContent(result);\n }\n case \"renderer-hydration-script\": {\n const { rendererSpecificHydrationScripts } = result._metadata;\n const { rendererName } = instruction;\n if (!rendererSpecificHydrationScripts.has(rendererName)) {\n rendererSpecificHydrationScripts.add(rendererName);\n return instruction.render();\n }\n return \"\";\n }\n default: {\n throw new Error(`Unknown chunk type: ${chunk.type}`);\n }\n }\n } else if (chunk instanceof Response) {\n return \"\";\n } else if (isSlotString(chunk)) {\n let out = \"\";\n const c = chunk;\n if (c.instructions) {\n for (const instr of c.instructions) {\n out += stringifyChunk(result, instr);\n }\n }\n out += chunk.toString();\n return out;\n }\n return chunk.toString();\n}\nfunction chunkToString(result, chunk) {\n if (ArrayBuffer.isView(chunk)) {\n return decoder.decode(chunk);\n } else {\n return stringifyChunk(result, chunk);\n }\n}\nfunction chunkToByteArray(result, chunk) {\n if (ArrayBuffer.isView(chunk)) {\n return chunk;\n } else {\n const stringified = stringifyChunk(result, chunk);\n return encoder.encode(stringified.toString());\n }\n}\nfunction isRenderInstance(obj) {\n return !!obj && typeof obj === \"object\" && \"render\" in obj && typeof obj.render === \"function\";\n}\nexport {\n Fragment,\n Renderer,\n chunkToByteArray,\n chunkToString,\n decoder,\n encoder,\n isRenderInstance\n};\n","import { escapeHTML, isHTMLString, markHTMLString } from \"../escape.js\";\nimport { isPromise } from \"../util.js\";\nimport { isAstroComponentInstance, isRenderTemplateResult } from \"./astro/index.js\";\nimport { isRenderInstance } from \"./common.js\";\nimport { SlotString } from \"./slot.js\";\nimport { renderToBufferDestination } from \"./util.js\";\nasync function renderChild(destination, child) {\n if (isPromise(child)) {\n child = await child;\n }\n if (child instanceof SlotString) {\n destination.write(child);\n } else if (isHTMLString(child)) {\n destination.write(child);\n } else if (Array.isArray(child)) {\n const childRenders = child.map((c) => {\n return renderToBufferDestination((bufferDestination) => {\n return renderChild(bufferDestination, c);\n });\n });\n for (const childRender of childRenders) {\n if (!childRender) continue;\n await childRender.renderToFinalDestination(destination);\n }\n } else if (typeof child === \"function\") {\n await renderChild(destination, child());\n } else if (typeof child === \"string\") {\n destination.write(markHTMLString(escapeHTML(child)));\n } else if (!child && child !== 0) {\n } else if (isRenderInstance(child)) {\n await child.render(destination);\n } else if (isRenderTemplateResult(child)) {\n await child.render(destination);\n } else if (isAstroComponentInstance(child)) {\n await child.render(destination);\n } else if (ArrayBuffer.isView(child)) {\n destination.write(child);\n } else if (typeof child === \"object\" && (Symbol.asyncIterator in child || Symbol.iterator in child)) {\n for await (const value of child) {\n await renderChild(destination, value);\n }\n } else {\n destination.write(child);\n }\n}\nexport {\n renderChild\n};\n","import { isPromise } from \"../../util.js\";\nimport { renderChild } from \"../any.js\";\nimport { isAPropagatingComponent } from \"./factory.js\";\nimport { isHeadAndContent } from \"./head-and-content.js\";\nconst astroComponentInstanceSym = Symbol.for(\"astro.componentInstance\");\nclass AstroComponentInstance {\n [astroComponentInstanceSym] = true;\n result;\n props;\n slotValues;\n factory;\n returnValue;\n constructor(result, props, slots, factory) {\n this.result = result;\n this.props = props;\n this.factory = factory;\n this.slotValues = {};\n for (const name in slots) {\n let didRender = false;\n let value = slots[name](result);\n this.slotValues[name] = () => {\n if (!didRender) {\n didRender = true;\n return value;\n }\n return slots[name](result);\n };\n }\n }\n async init(result) {\n if (this.returnValue !== void 0) return this.returnValue;\n this.returnValue = this.factory(result, this.props, this.slotValues);\n if (isPromise(this.returnValue)) {\n this.returnValue.then((resolved) => {\n this.returnValue = resolved;\n }).catch(() => {\n });\n }\n return this.returnValue;\n }\n async render(destination) {\n const returnValue = await this.init(this.result);\n if (isHeadAndContent(returnValue)) {\n await returnValue.content.render(destination);\n } else {\n await renderChild(destination, returnValue);\n }\n }\n}\nfunction validateComponentProps(props, displayName) {\n if (props != null) {\n for (const prop of Object.keys(props)) {\n if (prop.startsWith(\"client:\")) {\n console.warn(\n `You are attempting to render <${displayName} ${prop} />, but ${displayName} is an Astro component. Astro components do not render in the client and should not have a hydration directive. Please use a framework component for client rendering.`\n );\n }\n }\n }\n}\nfunction createAstroComponentInstance(result, displayName, factory, props, slots = {}) {\n validateComponentProps(props, displayName);\n const instance = new AstroComponentInstance(result, props, slots, factory);\n if (isAPropagatingComponent(result, factory)) {\n result._metadata.propagators.add(instance);\n }\n return instance;\n}\nfunction isAstroComponentInstance(obj) {\n return typeof obj === \"object\" && !!obj[astroComponentInstanceSym];\n}\nexport {\n AstroComponentInstance,\n createAstroComponentInstance,\n isAstroComponentInstance\n};\n","import { markHTMLString } from \"../escape.js\";\nimport { renderSlotToString } from \"./slot.js\";\nimport { toAttributeString } from \"./util.js\";\nfunction componentIsHTMLElement(Component) {\n return typeof HTMLElement !== \"undefined\" && HTMLElement.isPrototypeOf(Component);\n}\nasync function renderHTMLElement(result, constructor, props, slots) {\n const name = getHTMLElementName(constructor);\n let attrHTML = \"\";\n for (const attr in props) {\n attrHTML += ` ${attr}=\"${toAttributeString(await props[attr])}\"`;\n }\n return markHTMLString(\n `<${name}${attrHTML}>${await renderSlotToString(result, slots?.default)}`\n );\n}\nfunction getHTMLElementName(constructor) {\n const definedName = customElements.getName(constructor);\n if (definedName) return definedName;\n const assignedName = constructor.name.replace(/^HTML|Element$/g, \"\").replace(/[A-Z]/g, \"-$&\").toLowerCase().replace(/^-/, \"html-\");\n return assignedName;\n}\nexport {\n componentIsHTMLElement,\n renderHTMLElement\n};\n","import { decodeBase64, decodeHex, encodeBase64, encodeHexUpperCase } from \"@oslojs/encoding\";\nconst ALGORITHM = \"AES-GCM\";\nasync function createKey() {\n const key = await crypto.subtle.generateKey(\n {\n name: ALGORITHM,\n length: 256\n },\n true,\n [\"encrypt\", \"decrypt\"]\n );\n return key;\n}\nasync function importKey(bytes) {\n const key = await crypto.subtle.importKey(\"raw\", bytes, ALGORITHM, true, [\"encrypt\", \"decrypt\"]);\n return key;\n}\nasync function encodeKey(key) {\n const exported = await crypto.subtle.exportKey(\"raw\", key);\n const encodedKey = encodeBase64(new Uint8Array(exported));\n return encodedKey;\n}\nasync function decodeKey(encoded) {\n const bytes = decodeBase64(encoded);\n return crypto.subtle.importKey(\"raw\", bytes, ALGORITHM, true, [\"encrypt\", \"decrypt\"]);\n}\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nconst IV_LENGTH = 24;\nasync function encryptString(key, raw) {\n const iv = crypto.getRandomValues(new Uint8Array(IV_LENGTH / 2));\n const data = encoder.encode(raw);\n const buffer = await crypto.subtle.encrypt(\n {\n name: ALGORITHM,\n iv\n },\n key,\n data\n );\n return encodeHexUpperCase(iv) + encodeBase64(new Uint8Array(buffer));\n}\nasync function decryptString(key, encoded) {\n const iv = decodeHex(encoded.slice(0, IV_LENGTH));\n const dataArray = decodeBase64(encoded.slice(IV_LENGTH));\n const decryptedBuffer = await crypto.subtle.decrypt(\n {\n name: ALGORITHM,\n iv\n },\n key,\n dataArray\n );\n const decryptedString = decoder.decode(decryptedBuffer);\n return decryptedString;\n}\nexport {\n createKey,\n decodeKey,\n decryptString,\n encodeKey,\n encryptString,\n importKey\n};\n","import { encryptString } from \"../../../core/encryption.js\";\nimport { renderChild } from \"./any.js\";\nimport { renderSlotToString } from \"./slot.js\";\nconst internalProps = /* @__PURE__ */ new Set([\n \"server:component-path\",\n \"server:component-export\",\n \"server:component-directive\",\n \"server:defer\"\n]);\nfunction containsServerDirective(props) {\n return \"server:component-directive\" in props;\n}\nfunction safeJsonStringify(obj) {\n return JSON.stringify(obj).replace(/\\u2028/g, \"\\\\u2028\").replace(/\\u2029/g, \"\\\\u2029\").replace(//g, \"\\\\u003e\").replace(/\\//g, \"\\\\u002f\");\n}\nfunction renderServerIsland(result, _displayName, props, slots) {\n return {\n async render(destination) {\n const componentPath = props[\"server:component-path\"];\n const componentExport = props[\"server:component-export\"];\n const componentId = result.serverIslandNameMap.get(componentPath);\n if (!componentId) {\n throw new Error(`Could not find server component name`);\n }\n for (const key2 of Object.keys(props)) {\n if (internalProps.has(key2)) {\n delete props[key2];\n }\n }\n destination.write(\"\");\n const renderedSlots = {};\n for (const name in slots) {\n if (name !== \"fallback\") {\n const content = await renderSlotToString(result, slots[name]);\n renderedSlots[name] = content.toString();\n } else {\n await renderChild(destination, slots.fallback(result));\n }\n }\n const key = await result.key;\n const propsEncrypted = await encryptString(key, JSON.stringify(props));\n const hostId = crypto.randomUUID();\n const slash = result.base.endsWith(\"/\") ? \"\" : \"/\";\n const serverIslandUrl = `${result.base}${slash}_server-islands/${componentId}${result.trailingSlash === \"always\" ? \"/\" : \"\"}`;\n destination.write(``);\n }\n };\n}\nexport {\n containsServerDirective,\n renderServerIsland\n};\n","import { createRenderInstruction } from \"./instruction.js\";\nimport { clsx } from \"clsx\";\nimport { AstroError, AstroErrorData } from \"../../../core/errors/index.js\";\nimport { markHTMLString } from \"../escape.js\";\nimport { extractDirectives, generateHydrateScript } from \"../hydration.js\";\nimport { serializeProps } from \"../serialize.js\";\nimport { shorthash } from \"../shorthash.js\";\nimport { isPromise } from \"../util.js\";\nimport { isAstroComponentFactory } from \"./astro/factory.js\";\nimport { renderTemplate } from \"./astro/index.js\";\nimport { createAstroComponentInstance } from \"./astro/instance.js\";\nimport {\n Fragment,\n Renderer,\n chunkToString\n} from \"./common.js\";\nimport { componentIsHTMLElement, renderHTMLElement } from \"./dom.js\";\nimport { maybeRenderHead } from \"./head.js\";\nimport { containsServerDirective, renderServerIsland } from \"./server-islands.js\";\nimport { renderSlotToString, renderSlots } from \"./slot.js\";\nimport { formatList, internalSpreadAttributes, renderElement, voidElementNames } from \"./util.js\";\nconst needsHeadRenderingSymbol = Symbol.for(\"astro.needsHeadRendering\");\nconst rendererAliases = /* @__PURE__ */ new Map([[\"solid\", \"solid-js\"]]);\nconst clientOnlyValues = /* @__PURE__ */ new Set([\"solid-js\", \"react\", \"preact\", \"vue\", \"svelte\", \"lit\"]);\nfunction guessRenderers(componentUrl) {\n const extname = componentUrl?.split(\".\").pop();\n switch (extname) {\n case \"svelte\":\n return [\"@astrojs/svelte\"];\n case \"vue\":\n return [\"@astrojs/vue\"];\n case \"jsx\":\n case \"tsx\":\n return [\"@astrojs/react\", \"@astrojs/preact\", \"@astrojs/solid-js\", \"@astrojs/vue (jsx)\"];\n default:\n return [\n \"@astrojs/react\",\n \"@astrojs/preact\",\n \"@astrojs/solid-js\",\n \"@astrojs/vue\",\n \"@astrojs/svelte\",\n \"@astrojs/lit\"\n ];\n }\n}\nfunction isFragmentComponent(Component) {\n return Component === Fragment;\n}\nfunction isHTMLComponent(Component) {\n return Component && Component[\"astro:html\"] === true;\n}\nconst ASTRO_SLOT_EXP = /<\\/?astro-slot\\b[^>]*>/g;\nconst ASTRO_STATIC_SLOT_EXP = /<\\/?astro-static-slot\\b[^>]*>/g;\nfunction removeStaticAstroSlot(html, supportsAstroStaticSlot = true) {\n const exp = supportsAstroStaticSlot ? ASTRO_STATIC_SLOT_EXP : ASTRO_SLOT_EXP;\n return html.replace(exp, \"\");\n}\nasync function renderFrameworkComponent(result, displayName, Component, _props, slots = {}) {\n if (!Component && \"client:only\" in _props === false) {\n throw new Error(\n `Unable to render ${displayName} because it is ${Component}!\nDid you forget to import the component or is it possible there is a typo?`\n );\n }\n const { renderers, clientDirectives } = result;\n const metadata = {\n astroStaticSlot: true,\n displayName\n };\n const { hydration, isPage, props, propsWithoutTransitionAttributes } = extractDirectives(\n _props,\n clientDirectives\n );\n let html = \"\";\n let attrs = void 0;\n if (hydration) {\n metadata.hydrate = hydration.directive;\n metadata.hydrateArgs = hydration.value;\n metadata.componentExport = hydration.componentExport;\n metadata.componentUrl = hydration.componentUrl;\n }\n const probableRendererNames = guessRenderers(metadata.componentUrl);\n const validRenderers = renderers.filter((r) => r.name !== \"astro:jsx\");\n const { children, slotInstructions } = await renderSlots(result, slots);\n let renderer;\n if (metadata.hydrate !== \"only\") {\n let isTagged = false;\n try {\n isTagged = Component && Component[Renderer];\n } catch {\n }\n if (isTagged) {\n const rendererName = Component[Renderer];\n renderer = renderers.find(({ name }) => name === rendererName);\n }\n if (!renderer) {\n let error;\n for (const r of renderers) {\n try {\n if (await r.ssr.check.call({ result }, Component, props, children)) {\n renderer = r;\n break;\n }\n } catch (e) {\n error ??= e;\n }\n }\n if (!renderer && error) {\n throw error;\n }\n }\n if (!renderer && typeof HTMLElement === \"function\" && componentIsHTMLElement(Component)) {\n const output = await renderHTMLElement(\n result,\n Component,\n _props,\n slots\n );\n return {\n render(destination) {\n destination.write(output);\n }\n };\n }\n } else {\n if (metadata.hydrateArgs) {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (clientOnlyValues.has(rendererName)) {\n renderer = renderers.find(\n ({ name }) => name === `@astrojs/${rendererName}` || name === rendererName\n );\n }\n }\n if (!renderer && validRenderers.length === 1) {\n renderer = validRenderers[0];\n }\n if (!renderer) {\n const extname = metadata.componentUrl?.split(\".\").pop();\n renderer = renderers.find(({ name }) => name === `@astrojs/${extname}` || name === extname);\n }\n }\n let componentServerRenderEndTime;\n if (!renderer) {\n if (metadata.hydrate === \"only\") {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (clientOnlyValues.has(rendererName)) {\n const plural = validRenderers.length > 1;\n throw new AstroError({\n ...AstroErrorData.NoMatchingRenderer,\n message: AstroErrorData.NoMatchingRenderer.message(\n metadata.displayName,\n metadata?.componentUrl?.split(\".\").pop(),\n plural,\n validRenderers.length\n ),\n hint: AstroErrorData.NoMatchingRenderer.hint(\n formatList(probableRendererNames.map((r) => \"`\" + r + \"`\"))\n )\n });\n } else {\n throw new AstroError({\n ...AstroErrorData.NoClientOnlyHint,\n message: AstroErrorData.NoClientOnlyHint.message(metadata.displayName),\n hint: AstroErrorData.NoClientOnlyHint.hint(\n probableRendererNames.map((r) => r.replace(\"@astrojs/\", \"\")).join(\"|\")\n )\n });\n }\n } else if (typeof Component !== \"string\") {\n const matchingRenderers = validRenderers.filter(\n (r) => probableRendererNames.includes(r.name)\n );\n const plural = validRenderers.length > 1;\n if (matchingRenderers.length === 0) {\n throw new AstroError({\n ...AstroErrorData.NoMatchingRenderer,\n message: AstroErrorData.NoMatchingRenderer.message(\n metadata.displayName,\n metadata?.componentUrl?.split(\".\").pop(),\n plural,\n validRenderers.length\n ),\n hint: AstroErrorData.NoMatchingRenderer.hint(\n formatList(probableRendererNames.map((r) => \"`\" + r + \"`\"))\n )\n });\n } else if (matchingRenderers.length === 1) {\n renderer = matchingRenderers[0];\n ({ html, attrs } = await renderer.ssr.renderToStaticMarkup.call(\n { result },\n Component,\n propsWithoutTransitionAttributes,\n children,\n metadata\n ));\n } else {\n throw new Error(`Unable to render ${metadata.displayName}!\n\nThis component likely uses ${formatList(probableRendererNames)},\nbut Astro encountered an error during server-side rendering.\n\nPlease ensure that ${metadata.displayName}:\n1. Does not unconditionally access browser-specific globals like \\`window\\` or \\`document\\`.\n If this is unavoidable, use the \\`client:only\\` hydration directive.\n2. Does not conditionally return \\`null\\` or \\`undefined\\` when rendered on the server.\n\nIf you're still stuck, please open an issue on GitHub or join us at https://astro.build/chat.`);\n }\n }\n } else {\n if (metadata.hydrate === \"only\") {\n const rendererName = rendererAliases.has(metadata.hydrateArgs) ? rendererAliases.get(metadata.hydrateArgs) : metadata.hydrateArgs;\n if (!clientOnlyValues.has(rendererName)) {\n console.warn(\n `The client:only directive for ${metadata.displayName} is not recognized. The renderer ${renderer.name} will be used. If you intended to use a different renderer, please provide a valid client:only directive.`\n );\n }\n html = await renderSlotToString(result, slots?.fallback);\n } else {\n const componentRenderStartTime = performance.now();\n ({ html, attrs } = await renderer.ssr.renderToStaticMarkup.call(\n { result },\n Component,\n propsWithoutTransitionAttributes,\n children,\n metadata\n ));\n if (process.env.NODE_ENV === \"development\")\n componentServerRenderEndTime = performance.now() - componentRenderStartTime;\n }\n }\n if (renderer && !renderer.clientEntrypoint && renderer.name !== \"@astrojs/lit\" && metadata.hydrate) {\n throw new AstroError({\n ...AstroErrorData.NoClientEntrypoint,\n message: AstroErrorData.NoClientEntrypoint.message(\n displayName,\n metadata.hydrate,\n renderer.name\n )\n });\n }\n if (!html && typeof Component === \"string\") {\n const Tag = sanitizeElementName(Component);\n const childSlots = Object.values(children).join(\"\");\n const renderTemplateResult = renderTemplate`<${Tag}${internalSpreadAttributes(\n props\n )}${markHTMLString(\n childSlots === \"\" && voidElementNames.test(Tag) ? `/>` : `>${childSlots}`\n )}`;\n html = \"\";\n const destination = {\n write(chunk) {\n if (chunk instanceof Response) return;\n html += chunkToString(result, chunk);\n }\n };\n await renderTemplateResult.render(destination);\n }\n if (!hydration) {\n return {\n render(destination) {\n if (slotInstructions) {\n for (const instruction of slotInstructions) {\n destination.write(instruction);\n }\n }\n if (isPage || renderer?.name === \"astro:jsx\") {\n destination.write(html);\n } else if (html && html.length > 0) {\n destination.write(\n markHTMLString(removeStaticAstroSlot(html, renderer?.ssr?.supportsAstroStaticSlot))\n );\n }\n }\n };\n }\n const astroId = shorthash(\n `\n${html}\n${serializeProps(\n props,\n metadata\n )}`\n );\n const island = await generateHydrateScript(\n { renderer, result, astroId, props, attrs },\n metadata\n );\n if (componentServerRenderEndTime && process.env.NODE_ENV === \"development\")\n island.props[\"server-render-time\"] = componentServerRenderEndTime;\n let unrenderedSlots = [];\n if (html) {\n if (Object.keys(children).length > 0) {\n for (const key of Object.keys(children)) {\n let tagName = renderer?.ssr?.supportsAstroStaticSlot ? !!metadata.hydrate ? \"astro-slot\" : \"astro-static-slot\" : \"astro-slot\";\n let expectedHTML = key === \"default\" ? `<${tagName}>` : `<${tagName} name=\"${key}\">`;\n if (!html.includes(expectedHTML)) {\n unrenderedSlots.push(key);\n }\n }\n }\n } else {\n unrenderedSlots = Object.keys(children);\n }\n const template = unrenderedSlots.length > 0 ? unrenderedSlots.map(\n (key) => ``\n ).join(\"\") : \"\";\n island.children = `${html ?? \"\"}${template}`;\n if (island.children) {\n island.props[\"await-children\"] = \"\";\n island.children += ``;\n }\n return {\n render(destination) {\n if (slotInstructions) {\n for (const instruction of slotInstructions) {\n destination.write(instruction);\n }\n }\n destination.write(createRenderInstruction({ type: \"directive\", hydration }));\n if (hydration.directive !== \"only\" && renderer?.ssr.renderHydrationScript) {\n destination.write(\n createRenderInstruction({\n type: \"renderer-hydration-script\",\n rendererName: renderer.name,\n render: renderer.ssr.renderHydrationScript\n })\n );\n }\n const renderedElement = renderElement(\"astro-island\", island, false);\n destination.write(markHTMLString(renderedElement));\n }\n };\n}\nfunction sanitizeElementName(tag) {\n const unsafe = /[&<>'\"\\s]+/;\n if (!unsafe.test(tag)) return tag;\n return tag.trim().split(unsafe)[0].trim();\n}\nasync function renderFragmentComponent(result, slots = {}) {\n const children = await renderSlotToString(result, slots?.default);\n return {\n render(destination) {\n if (children == null) return;\n destination.write(children);\n }\n };\n}\nasync function renderHTMLComponent(result, Component, _props, slots = {}) {\n const { slotInstructions, children } = await renderSlots(result, slots);\n const html = Component({ slots: children });\n const hydrationHtml = slotInstructions ? slotInstructions.map((instr) => chunkToString(result, instr)).join(\"\") : \"\";\n return {\n render(destination) {\n destination.write(markHTMLString(hydrationHtml + html));\n }\n };\n}\nfunction renderAstroComponent(result, displayName, Component, props, slots = {}) {\n if (containsServerDirective(props)) {\n return renderServerIsland(result, displayName, props, slots);\n }\n const instance = createAstroComponentInstance(result, displayName, Component, props, slots);\n return {\n async render(destination) {\n await instance.render(destination);\n }\n };\n}\nasync function renderComponent(result, displayName, Component, props, slots = {}) {\n if (isPromise(Component)) {\n Component = await Component.catch(handleCancellation);\n }\n if (isFragmentComponent(Component)) {\n return await renderFragmentComponent(result, slots).catch(handleCancellation);\n }\n props = normalizeProps(props);\n if (isHTMLComponent(Component)) {\n return await renderHTMLComponent(result, Component, props, slots).catch(handleCancellation);\n }\n if (isAstroComponentFactory(Component)) {\n return renderAstroComponent(result, displayName, Component, props, slots);\n }\n return await renderFrameworkComponent(result, displayName, Component, props, slots).catch(\n handleCancellation\n );\n function handleCancellation(e) {\n if (result.cancelled)\n return {\n render() {\n }\n };\n throw e;\n }\n}\nfunction normalizeProps(props) {\n if (props[\"class:list\"] !== void 0) {\n const value = props[\"class:list\"];\n delete props[\"class:list\"];\n props[\"class\"] = clsx(props[\"class\"], value);\n if (props[\"class\"] === \"\") {\n delete props[\"class\"];\n }\n }\n return props;\n}\nasync function renderComponentToString(result, displayName, Component, props, slots = {}, isPage = false, route) {\n let str = \"\";\n let renderedFirstPageChunk = false;\n let head = \"\";\n if (isPage && !result.partial && nonAstroPageNeedsHeadInjection(Component)) {\n head += chunkToString(result, maybeRenderHead());\n }\n try {\n const destination = {\n write(chunk) {\n if (isPage && !result.partial && !renderedFirstPageChunk) {\n renderedFirstPageChunk = true;\n if (!/\" : \"\\n\";\n str += doctype + head;\n }\n }\n if (chunk instanceof Response) return;\n str += chunkToString(result, chunk);\n }\n };\n const renderInstance = await renderComponent(result, displayName, Component, props, slots);\n await renderInstance.render(destination);\n } catch (e) {\n if (AstroError.is(e) && !e.loc) {\n e.setLocation({\n file: route?.component\n });\n }\n throw e;\n }\n return str;\n}\nfunction nonAstroPageNeedsHeadInjection(pageComponent) {\n return !!pageComponent?.[needsHeadRenderingSymbol];\n}\nexport {\n renderComponent,\n renderComponentToString\n};\n","import { markHTMLString } from \"../escape.js\";\nasync function renderScript(result, id) {\n if (result._metadata.renderedScripts.has(id)) return;\n result._metadata.renderedScripts.add(id);\n const inlined = result.inlinedScripts.get(id);\n if (inlined != null) {\n if (inlined) {\n return markHTMLString(``);\n } else {\n return \"\";\n }\n }\n const resolved = await result.resolve(id);\n return markHTMLString(``);\n}\nexport {\n renderScript\n};\n","import cssesc from \"cssesc\";\nimport { fade, slide } from \"../../transitions/index.js\";\nimport { markHTMLString } from \"./escape.js\";\nconst transitionNameMap = /* @__PURE__ */ new WeakMap();\nfunction incrementTransitionNumber(result) {\n let num = 1;\n if (transitionNameMap.has(result)) {\n num = transitionNameMap.get(result) + 1;\n }\n transitionNameMap.set(result, num);\n return num;\n}\nfunction createTransitionScope(result, hash) {\n const num = incrementTransitionNumber(result);\n return `astro-${hash}-${num}`;\n}\nconst getAnimations = (name) => {\n if (name === \"fade\") return fade();\n if (name === \"slide\") return slide();\n if (typeof name === \"object\") return name;\n};\nconst addPairs = (animations, stylesheet) => {\n for (const [direction, images] of Object.entries(animations)) {\n for (const [image, rules] of Object.entries(images)) {\n stylesheet.addAnimationPair(direction, image, rules);\n }\n }\n};\nconst reEncodeValidChars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\".split(\"\").reduce((v, c) => (v[c.charCodeAt(0)] = c, v), []);\nconst reEncodeInValidStart = \"-0123456789_\".split(\"\").reduce((v, c) => (v[c.charCodeAt(0)] = c, v), []);\nfunction reEncode(s) {\n let result = \"\";\n let codepoint;\n for (let i = 0; i < s.length; i += (codepoint ?? 0) > 65535 ? 2 : 1) {\n codepoint = s.codePointAt(i);\n if (codepoint !== void 0) {\n result += codepoint < 128 ? codepoint === 95 ? \"__\" : reEncodeValidChars[codepoint] ?? \"_\" + codepoint.toString(16).padStart(2, \"0\") : String.fromCodePoint(codepoint);\n }\n }\n return reEncodeInValidStart[result.codePointAt(0) ?? 0] ? \"_\" + result : result;\n}\nfunction renderTransition(result, hash, animationName, transitionName) {\n if (typeof (transitionName ?? \"\") !== \"string\") {\n throw new Error(`Invalid transition name {${transitionName}}`);\n }\n if (!animationName) animationName = \"fade\";\n const scope = createTransitionScope(result, hash);\n const name = transitionName ? cssesc(reEncode(transitionName), { isIdentifier: true }) : scope;\n const sheet = new ViewTransitionStyleSheet(scope, name);\n const animations = getAnimations(animationName);\n if (animations) {\n addPairs(animations, sheet);\n } else if (animationName === \"none\") {\n sheet.addFallback(\"old\", \"animation: none; mix-blend-mode: normal;\");\n sheet.addModern(\"old\", \"animation: none; opacity: 0; mix-blend-mode: normal;\");\n sheet.addAnimationRaw(\"new\", \"animation: none; mix-blend-mode: normal;\");\n sheet.addModern(\"group\", \"animation: none\");\n }\n result._metadata.extraHead.push(markHTMLString(``));\n return scope;\n}\nfunction createAnimationScope(transitionName, animations) {\n const hash = Math.random().toString(36).slice(2, 8);\n const scope = `astro-${hash}`;\n const sheet = new ViewTransitionStyleSheet(scope, transitionName);\n addPairs(animations, sheet);\n return { scope, styles: sheet.toString().replaceAll('\"', \"\") };\n}\nclass ViewTransitionStyleSheet {\n constructor(scope, name) {\n this.scope = scope;\n this.name = name;\n }\n modern = [];\n fallback = [];\n toString() {\n const { scope, name } = this;\n const [modern, fallback] = [this.modern, this.fallback].map((rules) => rules.join(\"\"));\n return [\n `[data-astro-transition-scope=\"${scope}\"] { view-transition-name: ${name}; }`,\n this.layer(modern),\n fallback\n ].join(\"\");\n }\n layer(cssText) {\n return cssText ? `@layer astro { ${cssText} }` : \"\";\n }\n addRule(target, cssText) {\n this[target].push(cssText);\n }\n addAnimationRaw(image, animation) {\n this.addModern(image, animation);\n this.addFallback(image, animation);\n }\n addModern(image, animation) {\n const { name } = this;\n this.addRule(\"modern\", `::view-transition-${image}(${name}) { ${animation} }`);\n }\n addFallback(image, animation) {\n const { scope } = this;\n this.addRule(\n \"fallback\",\n // Two selectors here, the second in case there is an animation on the root.\n `[data-astro-transition-fallback=\"${image}\"] [data-astro-transition-scope=\"${scope}\"],\n\t\t\t[data-astro-transition-fallback=\"${image}\"][data-astro-transition-scope=\"${scope}\"] { ${animation} }`\n );\n }\n addAnimationPair(direction, image, rules) {\n const { scope, name } = this;\n const animation = stringifyAnimation(rules);\n const prefix = direction === \"backwards\" ? `[data-astro-transition=back]` : direction === \"forwards\" ? \"\" : `[data-astro-transition=${direction}]`;\n this.addRule(\"modern\", `${prefix}::view-transition-${image}(${name}) { ${animation} }`);\n this.addRule(\n \"fallback\",\n `${prefix}[data-astro-transition-fallback=\"${image}\"] [data-astro-transition-scope=\"${scope}\"],\n\t\t\t${prefix}[data-astro-transition-fallback=\"${image}\"][data-astro-transition-scope=\"${scope}\"] { ${animation} }`\n );\n }\n}\nfunction addAnimationProperty(builder, prop, value) {\n let arr = builder[prop];\n if (Array.isArray(arr)) {\n arr.push(value.toString());\n } else {\n builder[prop] = [value.toString()];\n }\n}\nfunction animationBuilder() {\n return {\n toString() {\n let out = \"\";\n for (let k in this) {\n let value = this[k];\n if (Array.isArray(value)) {\n out += `\n\t${k}: ${value.join(\", \")};`;\n }\n }\n return out;\n }\n };\n}\nfunction stringifyAnimation(anim) {\n if (Array.isArray(anim)) {\n return stringifyAnimations(anim);\n } else {\n return stringifyAnimations([anim]);\n }\n}\nfunction stringifyAnimations(anims) {\n const builder = animationBuilder();\n for (const anim of anims) {\n if (anim.duration) {\n addAnimationProperty(builder, \"animation-duration\", toTimeValue(anim.duration));\n }\n if (anim.easing) {\n addAnimationProperty(builder, \"animation-timing-function\", anim.easing);\n }\n if (anim.direction) {\n addAnimationProperty(builder, \"animation-direction\", anim.direction);\n }\n if (anim.delay) {\n addAnimationProperty(builder, \"animation-delay\", anim.delay);\n }\n if (anim.fillMode) {\n addAnimationProperty(builder, \"animation-fill-mode\", anim.fillMode);\n }\n addAnimationProperty(builder, \"animation-name\", anim.name);\n }\n return builder.toString();\n}\nfunction toTimeValue(num) {\n return typeof num === \"number\" ? num + \"ms\" : num;\n}\nexport {\n createAnimationScope,\n createTransitionScope,\n renderTransition\n};\n","import { createComponent } from \"./astro-component.js\";\nimport { createAstro } from \"./astro-global.js\";\nimport { renderEndpoint } from \"./endpoint.js\";\nimport {\n escapeHTML,\n HTMLBytes,\n HTMLString,\n isHTMLString,\n markHTMLString,\n unescapeHTML\n} from \"./escape.js\";\nimport { renderJSX } from \"./jsx.js\";\nimport {\n addAttribute,\n createHeadAndContent,\n defineScriptVars,\n Fragment,\n maybeRenderHead,\n renderTemplate,\n renderComponent,\n Renderer,\n renderHead,\n renderHTMLElement,\n renderPage,\n renderScript,\n renderScriptElement,\n renderSlot,\n renderSlotToString,\n renderTemplate as renderTemplate2,\n renderToString,\n renderUniqueStylesheet,\n voidElementNames\n} from \"./render/index.js\";\nimport { createTransitionScope, renderTransition } from \"./transition.js\";\nimport { markHTMLString as markHTMLString2 } from \"./escape.js\";\nimport { Renderer as Renderer2, addAttribute as addAttribute2 } from \"./render/index.js\";\nfunction mergeSlots(...slotted) {\n const slots = {};\n for (const slot of slotted) {\n if (!slot) continue;\n if (typeof slot === \"object\") {\n Object.assign(slots, slot);\n } else if (typeof slot === \"function\") {\n Object.assign(slots, mergeSlots(slot()));\n }\n }\n return slots;\n}\nfunction __astro_tag_component__(Component, rendererName) {\n if (!Component) return;\n if (typeof Component !== \"function\") return;\n Object.defineProperty(Component, Renderer2, {\n value: rendererName,\n enumerable: false,\n writable: false\n });\n}\nfunction spreadAttributes(values = {}, _name, { class: scopedClassName } = {}) {\n let output = \"\";\n if (scopedClassName) {\n if (typeof values.class !== \"undefined\") {\n values.class += ` ${scopedClassName}`;\n } else if (typeof values[\"class:list\"] !== \"undefined\") {\n values[\"class:list\"] = [values[\"class:list\"], scopedClassName];\n } else {\n values.class = scopedClassName;\n }\n }\n for (const [key, value] of Object.entries(values)) {\n output += addAttribute2(value, key, true);\n }\n return markHTMLString2(output);\n}\nfunction defineStyleVars(defs) {\n let output = \"\";\n let arr = !Array.isArray(defs) ? [defs] : defs;\n for (const vars of arr) {\n for (const [key, value] of Object.entries(vars)) {\n if (value || value === 0) {\n output += `--${key}: ${value};`;\n }\n }\n }\n return markHTMLString2(output);\n}\nexport {\n Fragment,\n HTMLBytes,\n HTMLString,\n Renderer,\n __astro_tag_component__,\n addAttribute,\n createAstro,\n createComponent,\n createHeadAndContent,\n createTransitionScope,\n defineScriptVars,\n defineStyleVars,\n escapeHTML,\n isHTMLString,\n markHTMLString,\n maybeRenderHead,\n mergeSlots,\n renderTemplate as render,\n renderComponent,\n renderEndpoint,\n renderHTMLElement,\n renderHead,\n renderJSX,\n renderPage,\n renderScript,\n renderScriptElement,\n renderSlot,\n renderSlotToString,\n renderTemplate2 as renderTemplate,\n renderToString,\n renderTransition,\n renderUniqueStylesheet,\n spreadAttributes,\n unescapeHTML,\n voidElementNames\n};\n"],"names":["AstroErrorData.InvalidComponentArgs","AstroErrorData.AstroGlobUsedOutside","AstroErrorData.AstroGlobNoMatch","AstroErrorData.MissingMediaQueryDirective","AstroErrorData.NoMatchingImport","islandScriptDev","islandScript","AstroErrorData.NoMatchingRenderer","AstroErrorData.NoClientOnlyHint","AstroErrorData.NoClientEntrypoint","addAttribute2","markHTMLString2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]} \ No newline at end of file diff --git a/Target/chunks/astro_CwgT-hI-.mjs.map b/Target/chunks/astro_CwgT-hI-.mjs.map deleted file mode 100644 index 452686a4..00000000 --- a/Target/chunks/astro_CwgT-hI-.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"astro_CwgT-hI-.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"} \ No newline at end of file diff --git a/Target/chunks/astro_G1YLVo_R.mjs.map b/Target/chunks/astro_G1YLVo_R.mjs.map new file mode 100644 index 00000000..84a9e575 --- /dev/null +++ b/Target/chunks/astro_G1YLVo_R.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"astro_G1YLVo_R.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"} \ No newline at end of file diff --git a/Target/index.html b/Target/index.html index 2a9ed288..7ee183a2 100644 --- a/Target/index.html +++ b/Target/index.html @@ -1 +1 @@ -

\ No newline at end of file +
\ No newline at end of file diff --git a/Target/manifest_BVUHlTO5.mjs.map b/Target/manifest_BVUHlTO5.mjs.map deleted file mode 100644 index dde70ceb..00000000 --- a/Target/manifest_BVUHlTO5.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"manifest_BVUHlTO5.mjs","sources":["../../../../../node_modules/astro/dist/actions/runtime/virtual/shared.js","../../../../../node_modules/astro/dist/core/routing/manifest/generator.js","../../../../../node_modules/astro/dist/core/routing/manifest/serialization.js","../../../../../node_modules/astro/dist/core/app/common.js"],"sourcesContent":["import { parse as devalueParse, stringify as devalueStringify } from \"devalue\";\nimport { ACTION_QUERY_PARAMS as _ACTION_QUERY_PARAMS } from \"../../consts.js\";\nconst ACTION_QUERY_PARAMS = _ACTION_QUERY_PARAMS;\nconst ACTION_ERROR_CODES = [\n \"BAD_REQUEST\",\n \"UNAUTHORIZED\",\n \"FORBIDDEN\",\n \"NOT_FOUND\",\n \"TIMEOUT\",\n \"CONFLICT\",\n \"PRECONDITION_FAILED\",\n \"PAYLOAD_TOO_LARGE\",\n \"UNSUPPORTED_MEDIA_TYPE\",\n \"UNPROCESSABLE_CONTENT\",\n \"TOO_MANY_REQUESTS\",\n \"CLIENT_CLOSED_REQUEST\",\n \"INTERNAL_SERVER_ERROR\"\n];\nconst codeToStatusMap = {\n // Implemented from tRPC error code table\n // https://trpc.io/docs/server/error-handling#error-codes\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n TIMEOUT: 405,\n CONFLICT: 409,\n PRECONDITION_FAILED: 412,\n PAYLOAD_TOO_LARGE: 413,\n UNSUPPORTED_MEDIA_TYPE: 415,\n UNPROCESSABLE_CONTENT: 422,\n TOO_MANY_REQUESTS: 429,\n CLIENT_CLOSED_REQUEST: 499,\n INTERNAL_SERVER_ERROR: 500\n};\nconst statusToCodeMap = Object.entries(codeToStatusMap).reduce(\n // reverse the key-value pairs\n (acc, [key, value]) => ({ ...acc, [value]: key }),\n {}\n);\nclass ActionError extends Error {\n type = \"AstroActionError\";\n code = \"INTERNAL_SERVER_ERROR\";\n status = 500;\n constructor(params) {\n super(params.message);\n this.code = params.code;\n this.status = ActionError.codeToStatus(params.code);\n if (params.stack) {\n this.stack = params.stack;\n }\n }\n static codeToStatus(code) {\n return codeToStatusMap[code];\n }\n static statusToCode(status) {\n return statusToCodeMap[status] ?? \"INTERNAL_SERVER_ERROR\";\n }\n static fromJson(body) {\n if (isInputError(body)) {\n return new ActionInputError(body.issues);\n }\n if (isActionError(body)) {\n return new ActionError(body);\n }\n return new ActionError({\n code: \"INTERNAL_SERVER_ERROR\"\n });\n }\n}\nfunction isActionError(error) {\n return typeof error === \"object\" && error != null && \"type\" in error && error.type === \"AstroActionError\";\n}\nfunction isInputError(error) {\n return typeof error === \"object\" && error != null && \"type\" in error && error.type === \"AstroActionInputError\" && \"issues\" in error && Array.isArray(error.issues);\n}\nclass ActionInputError extends ActionError {\n type = \"AstroActionInputError\";\n // We don't expose all ZodError properties.\n // Not all properties will serialize from server to client,\n // and we don't want to import the full ZodError object into the client.\n issues;\n fields;\n constructor(issues) {\n super({\n message: `Failed to validate: ${JSON.stringify(issues, null, 2)}`,\n code: \"BAD_REQUEST\"\n });\n this.issues = issues;\n this.fields = {};\n for (const issue of issues) {\n if (issue.path.length > 0) {\n const key = issue.path[0].toString();\n this.fields[key] ??= [];\n this.fields[key]?.push(issue.message);\n }\n }\n }\n}\nasync function callSafely(handler) {\n try {\n const data = await handler();\n return { data, error: void 0 };\n } catch (e) {\n if (e instanceof ActionError) {\n return { data: void 0, error: e };\n }\n return {\n data: void 0,\n error: new ActionError({\n message: e instanceof Error ? e.message : \"Unknown error\",\n code: \"INTERNAL_SERVER_ERROR\"\n })\n };\n }\n}\nfunction getActionQueryString(name) {\n const searchParams = new URLSearchParams({ [_ACTION_QUERY_PARAMS.actionName]: name });\n return `?${searchParams.toString()}`;\n}\nfunction getActionProps(action) {\n const params = new URLSearchParams(action.toString());\n const actionName = params.get(\"_astroAction\");\n if (!actionName) {\n throw new Error(\"Invalid actions function was passed to getActionProps()\");\n }\n return {\n type: \"hidden\",\n name: \"_astroAction\",\n value: actionName\n };\n}\nfunction serializeActionResult(res) {\n if (res.error) {\n if (import.meta.env?.DEV) {\n actionResultErrorStack.set(res.error.stack);\n }\n return {\n type: \"error\",\n status: res.error.status,\n contentType: \"application/json\",\n body: JSON.stringify({\n ...res.error,\n message: res.error.message\n })\n };\n }\n if (res.data === void 0) {\n return {\n type: \"empty\",\n status: 204\n };\n }\n return {\n type: \"data\",\n status: 200,\n contentType: \"application/json+devalue\",\n body: devalueStringify(res.data, {\n // Add support for URL objects\n URL: (value) => value instanceof URL && value.href\n })\n };\n}\nfunction deserializeActionResult(res) {\n if (res.type === \"error\") {\n if (import.meta.env?.PROD) {\n return { error: ActionError.fromJson(JSON.parse(res.body)), data: void 0 };\n } else {\n const error = ActionError.fromJson(JSON.parse(res.body));\n error.stack = actionResultErrorStack.get();\n return {\n error,\n data: void 0\n };\n }\n }\n if (res.type === \"empty\") {\n return { data: void 0, error: void 0 };\n }\n return {\n data: devalueParse(res.body, {\n URL: (href) => new URL(href)\n }),\n error: void 0\n };\n}\nconst actionResultErrorStack = /* @__PURE__ */ function actionResultErrorStackFn() {\n let errorStack;\n return {\n set(stack) {\n errorStack = stack;\n },\n get() {\n return errorStack;\n }\n };\n}();\nexport {\n ACTION_ERROR_CODES,\n ACTION_QUERY_PARAMS,\n ActionError,\n ActionInputError,\n callSafely,\n deserializeActionResult,\n getActionProps,\n getActionQueryString,\n isActionError,\n isInputError,\n serializeActionResult\n};\n","import { compile } from \"path-to-regexp\";\nfunction sanitizeParams(params) {\n return Object.fromEntries(\n Object.entries(params).map(([key, value]) => {\n if (typeof value === \"string\") {\n return [key, value.normalize().replace(/#/g, \"%23\").replace(/\\?/g, \"%3F\")];\n }\n return [key, value];\n })\n );\n}\nfunction getRouteGenerator(segments, addTrailingSlash) {\n const template = segments.map((segment) => {\n return \"/\" + segment.map((part) => {\n if (part.spread) {\n return `:${part.content.slice(3)}(.*)?`;\n } else if (part.dynamic) {\n return `:${part.content}`;\n } else {\n return part.content.normalize().replace(/\\?/g, \"%3F\").replace(/#/g, \"%23\").replace(/%5B/g, \"[\").replace(/%5D/g, \"]\").replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n }).join(\"\");\n }).join(\"\");\n let trailing = \"\";\n if (addTrailingSlash === \"always\" && segments.length) {\n trailing = \"/\";\n }\n const toPath = compile(template + trailing);\n return (params) => {\n const sanitizedParams = sanitizeParams(params);\n const path = toPath(sanitizedParams);\n return path || \"/\";\n };\n}\nexport {\n getRouteGenerator\n};\n","import { getRouteGenerator } from \"./generator.js\";\nfunction serializeRouteData(routeData, trailingSlash) {\n return {\n ...routeData,\n generate: void 0,\n pattern: routeData.pattern.source,\n redirectRoute: routeData.redirectRoute ? serializeRouteData(routeData.redirectRoute, trailingSlash) : void 0,\n fallbackRoutes: routeData.fallbackRoutes.map((fallbackRoute) => {\n return serializeRouteData(fallbackRoute, trailingSlash);\n }),\n _meta: { trailingSlash }\n };\n}\nfunction deserializeRouteData(rawRouteData) {\n return {\n route: rawRouteData.route,\n type: rawRouteData.type,\n pattern: new RegExp(rawRouteData.pattern),\n params: rawRouteData.params,\n component: rawRouteData.component,\n generate: getRouteGenerator(rawRouteData.segments, rawRouteData._meta.trailingSlash),\n pathname: rawRouteData.pathname || void 0,\n segments: rawRouteData.segments,\n prerender: rawRouteData.prerender,\n redirect: rawRouteData.redirect,\n redirectRoute: rawRouteData.redirectRoute ? deserializeRouteData(rawRouteData.redirectRoute) : void 0,\n fallbackRoutes: rawRouteData.fallbackRoutes.map((fallback) => {\n return deserializeRouteData(fallback);\n }),\n isIndex: rawRouteData.isIndex\n };\n}\nexport {\n deserializeRouteData,\n serializeRouteData\n};\n","import { decodeKey } from \"../encryption.js\";\nimport { deserializeRouteData } from \"../routing/manifest/serialization.js\";\nfunction deserializeManifest(serializedManifest) {\n const routes = [];\n for (const serializedRoute of serializedManifest.routes) {\n routes.push({\n ...serializedRoute,\n routeData: deserializeRouteData(serializedRoute.routeData)\n });\n const route = serializedRoute;\n route.routeData = deserializeRouteData(serializedRoute.routeData);\n }\n const assets = new Set(serializedManifest.assets);\n const componentMetadata = new Map(serializedManifest.componentMetadata);\n const inlinedScripts = new Map(serializedManifest.inlinedScripts);\n const clientDirectives = new Map(serializedManifest.clientDirectives);\n const serverIslandNameMap = new Map(serializedManifest.serverIslandNameMap);\n const key = decodeKey(serializedManifest.key);\n return {\n // in case user middleware exists, this no-op middleware will be reassigned (see plugin-ssr.ts)\n middleware(_, next) {\n return next();\n },\n ...serializedManifest,\n assets,\n componentMetadata,\n inlinedScripts,\n clientDirectives,\n routes,\n serverIslandNameMap,\n key\n };\n}\nexport {\n deserializeManifest\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/Target/manifest_DoS0hOCF.mjs.map b/Target/manifest_DoS0hOCF.mjs.map new file mode 100644 index 00000000..b4ee4f80 --- /dev/null +++ b/Target/manifest_DoS0hOCF.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"manifest_DoS0hOCF.mjs","sources":["../../../../../node_modules/astro/dist/actions/runtime/virtual/shared.js","../../../../../node_modules/astro/dist/core/routing/manifest/generator.js","../../../../../node_modules/astro/dist/core/routing/manifest/serialization.js","../../../../../node_modules/astro/dist/core/app/common.js"],"sourcesContent":["import { parse as devalueParse, stringify as devalueStringify } from \"devalue\";\nimport { REDIRECT_STATUS_CODES } from \"../../../core/constants.js\";\nimport { ActionsReturnedInvalidDataError } from \"../../../core/errors/errors-data.js\";\nimport { AstroError } from \"../../../core/errors/errors.js\";\nimport { ACTION_QUERY_PARAMS as _ACTION_QUERY_PARAMS } from \"../../consts.js\";\nconst ACTION_QUERY_PARAMS = _ACTION_QUERY_PARAMS;\nconst ACTION_ERROR_CODES = [\n \"BAD_REQUEST\",\n \"UNAUTHORIZED\",\n \"FORBIDDEN\",\n \"NOT_FOUND\",\n \"TIMEOUT\",\n \"CONFLICT\",\n \"PRECONDITION_FAILED\",\n \"PAYLOAD_TOO_LARGE\",\n \"UNSUPPORTED_MEDIA_TYPE\",\n \"UNPROCESSABLE_CONTENT\",\n \"TOO_MANY_REQUESTS\",\n \"CLIENT_CLOSED_REQUEST\",\n \"INTERNAL_SERVER_ERROR\"\n];\nconst codeToStatusMap = {\n // Implemented from tRPC error code table\n // https://trpc.io/docs/server/error-handling#error-codes\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n TIMEOUT: 405,\n CONFLICT: 409,\n PRECONDITION_FAILED: 412,\n PAYLOAD_TOO_LARGE: 413,\n UNSUPPORTED_MEDIA_TYPE: 415,\n UNPROCESSABLE_CONTENT: 422,\n TOO_MANY_REQUESTS: 429,\n CLIENT_CLOSED_REQUEST: 499,\n INTERNAL_SERVER_ERROR: 500\n};\nconst statusToCodeMap = Object.entries(codeToStatusMap).reduce(\n // reverse the key-value pairs\n (acc, [key, value]) => ({ ...acc, [value]: key }),\n {}\n);\nclass ActionError extends Error {\n type = \"AstroActionError\";\n code = \"INTERNAL_SERVER_ERROR\";\n status = 500;\n constructor(params) {\n super(params.message);\n this.code = params.code;\n this.status = ActionError.codeToStatus(params.code);\n if (params.stack) {\n this.stack = params.stack;\n }\n }\n static codeToStatus(code) {\n return codeToStatusMap[code];\n }\n static statusToCode(status) {\n return statusToCodeMap[status] ?? \"INTERNAL_SERVER_ERROR\";\n }\n static fromJson(body) {\n if (isInputError(body)) {\n return new ActionInputError(body.issues);\n }\n if (isActionError(body)) {\n return new ActionError(body);\n }\n return new ActionError({\n code: \"INTERNAL_SERVER_ERROR\"\n });\n }\n}\nfunction isActionError(error) {\n return typeof error === \"object\" && error != null && \"type\" in error && error.type === \"AstroActionError\";\n}\nfunction isInputError(error) {\n return typeof error === \"object\" && error != null && \"type\" in error && error.type === \"AstroActionInputError\" && \"issues\" in error && Array.isArray(error.issues);\n}\nclass ActionInputError extends ActionError {\n type = \"AstroActionInputError\";\n // We don't expose all ZodError properties.\n // Not all properties will serialize from server to client,\n // and we don't want to import the full ZodError object into the client.\n issues;\n fields;\n constructor(issues) {\n super({\n message: `Failed to validate: ${JSON.stringify(issues, null, 2)}`,\n code: \"BAD_REQUEST\"\n });\n this.issues = issues;\n this.fields = {};\n for (const issue of issues) {\n if (issue.path.length > 0) {\n const key = issue.path[0].toString();\n this.fields[key] ??= [];\n this.fields[key]?.push(issue.message);\n }\n }\n }\n}\nasync function callSafely(handler) {\n try {\n const data = await handler();\n return { data, error: void 0 };\n } catch (e) {\n if (e instanceof ActionError) {\n return { data: void 0, error: e };\n }\n return {\n data: void 0,\n error: new ActionError({\n message: e instanceof Error ? e.message : \"Unknown error\",\n code: \"INTERNAL_SERVER_ERROR\"\n })\n };\n }\n}\nfunction getActionQueryString(name) {\n const searchParams = new URLSearchParams({ [_ACTION_QUERY_PARAMS.actionName]: name });\n return `?${searchParams.toString()}`;\n}\nfunction serializeActionResult(res) {\n if (res.error) {\n if (import.meta.env?.DEV) {\n actionResultErrorStack.set(res.error.stack);\n }\n return {\n type: \"error\",\n status: res.error.status,\n contentType: \"application/json\",\n body: JSON.stringify({\n ...res.error,\n message: res.error.message\n })\n };\n }\n if (res.data === void 0) {\n return {\n type: \"empty\",\n status: 204\n };\n }\n let body;\n try {\n body = devalueStringify(res.data, {\n // Add support for URL objects\n URL: (value) => value instanceof URL && value.href\n });\n } catch (e) {\n let hint = ActionsReturnedInvalidDataError.hint;\n if (res.data instanceof Response) {\n hint = REDIRECT_STATUS_CODES.includes(res.data.status) ? \"If you need to redirect when the action succeeds, trigger a redirect where the action is called. See the Actions guide for server and client redirect examples: https://docs.astro.build/en/guides/actions.\" : \"If you need to return a Response object, try using a server endpoint instead. See https://docs.astro.build/en/guides/endpoints/#server-endpoints-api-routes\";\n }\n throw new AstroError({\n ...ActionsReturnedInvalidDataError,\n message: ActionsReturnedInvalidDataError.message(String(e)),\n hint\n });\n }\n return {\n type: \"data\",\n status: 200,\n contentType: \"application/json+devalue\",\n body\n };\n}\nfunction deserializeActionResult(res) {\n if (res.type === \"error\") {\n let json;\n try {\n json = JSON.parse(res.body);\n } catch {\n return {\n data: void 0,\n error: new ActionError({\n message: res.body,\n code: \"INTERNAL_SERVER_ERROR\"\n })\n };\n }\n if (import.meta.env?.PROD) {\n return { error: ActionError.fromJson(json), data: void 0 };\n } else {\n const error = ActionError.fromJson(json);\n error.stack = actionResultErrorStack.get();\n return {\n error,\n data: void 0\n };\n }\n }\n if (res.type === \"empty\") {\n return { data: void 0, error: void 0 };\n }\n return {\n data: devalueParse(res.body, {\n URL: (href) => new URL(href)\n }),\n error: void 0\n };\n}\nconst actionResultErrorStack = /* @__PURE__ */ function actionResultErrorStackFn() {\n let errorStack;\n return {\n set(stack) {\n errorStack = stack;\n },\n get() {\n return errorStack;\n }\n };\n}();\nexport {\n ACTION_ERROR_CODES,\n ACTION_QUERY_PARAMS,\n ActionError,\n ActionInputError,\n callSafely,\n deserializeActionResult,\n getActionQueryString,\n isActionError,\n isInputError,\n serializeActionResult\n};\n","import { compile } from \"path-to-regexp\";\nfunction sanitizeParams(params) {\n return Object.fromEntries(\n Object.entries(params).map(([key, value]) => {\n if (typeof value === \"string\") {\n return [key, value.normalize().replace(/#/g, \"%23\").replace(/\\?/g, \"%3F\")];\n }\n return [key, value];\n })\n );\n}\nfunction getRouteGenerator(segments, addTrailingSlash) {\n const template = segments.map((segment) => {\n return \"/\" + segment.map((part) => {\n if (part.spread) {\n return `:${part.content.slice(3)}(.*)?`;\n } else if (part.dynamic) {\n return `:${part.content}`;\n } else {\n return part.content.normalize().replace(/\\?/g, \"%3F\").replace(/#/g, \"%23\").replace(/%5B/g, \"[\").replace(/%5D/g, \"]\").replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n }).join(\"\");\n }).join(\"\");\n let trailing = \"\";\n if (addTrailingSlash === \"always\" && segments.length) {\n trailing = \"/\";\n }\n const toPath = compile(template + trailing);\n return (params) => {\n const sanitizedParams = sanitizeParams(params);\n const path = toPath(sanitizedParams);\n return path || \"/\";\n };\n}\nexport {\n getRouteGenerator\n};\n","import { getRouteGenerator } from \"./generator.js\";\nfunction serializeRouteData(routeData, trailingSlash) {\n return {\n ...routeData,\n generate: void 0,\n pattern: routeData.pattern.source,\n redirectRoute: routeData.redirectRoute ? serializeRouteData(routeData.redirectRoute, trailingSlash) : void 0,\n fallbackRoutes: routeData.fallbackRoutes.map((fallbackRoute) => {\n return serializeRouteData(fallbackRoute, trailingSlash);\n }),\n _meta: { trailingSlash }\n };\n}\nfunction deserializeRouteData(rawRouteData) {\n return {\n route: rawRouteData.route,\n type: rawRouteData.type,\n pattern: new RegExp(rawRouteData.pattern),\n params: rawRouteData.params,\n component: rawRouteData.component,\n generate: getRouteGenerator(rawRouteData.segments, rawRouteData._meta.trailingSlash),\n pathname: rawRouteData.pathname || void 0,\n segments: rawRouteData.segments,\n prerender: rawRouteData.prerender,\n redirect: rawRouteData.redirect,\n redirectRoute: rawRouteData.redirectRoute ? deserializeRouteData(rawRouteData.redirectRoute) : void 0,\n fallbackRoutes: rawRouteData.fallbackRoutes.map((fallback) => {\n return deserializeRouteData(fallback);\n }),\n isIndex: rawRouteData.isIndex\n };\n}\nexport {\n deserializeRouteData,\n serializeRouteData\n};\n","import { decodeKey } from \"../encryption.js\";\nimport { deserializeRouteData } from \"../routing/manifest/serialization.js\";\nfunction deserializeManifest(serializedManifest) {\n const routes = [];\n for (const serializedRoute of serializedManifest.routes) {\n routes.push({\n ...serializedRoute,\n routeData: deserializeRouteData(serializedRoute.routeData)\n });\n const route = serializedRoute;\n route.routeData = deserializeRouteData(serializedRoute.routeData);\n }\n const assets = new Set(serializedManifest.assets);\n const componentMetadata = new Map(serializedManifest.componentMetadata);\n const inlinedScripts = new Map(serializedManifest.inlinedScripts);\n const clientDirectives = new Map(serializedManifest.clientDirectives);\n const serverIslandNameMap = new Map(serializedManifest.serverIslandNameMap);\n const key = decodeKey(serializedManifest.key);\n return {\n // in case user middleware exists, this no-op middleware will be reassigned (see plugin-ssr.ts)\n middleware(_, next) {\n return next();\n },\n ...serializedManifest,\n assets,\n componentMetadata,\n inlinedScripts,\n clientDirectives,\n routes,\n serverIslandNameMap,\n key\n };\n}\nexport {\n deserializeManifest\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2,3]} \ No newline at end of file