@jamesmddoyle/phantom 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ import{bp as be,ad as A,g as U,R as T,ac as ee,bq as dt}from"./Bj1t19nj.js";import{o as Ce}from"./DHt6uv_5.js";class ke{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Se{constructor(t,n){this.status=t,this.location=n}}class Ee extends Error{constructor(t,n,a){super(a),this.status=t,this.text=n}}new URL("sveltekit-internal://");function ht(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function pt(e){return e.split("%25").map(decodeURI).join("%25")}function gt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function de({href:e}){return e.split("#")[0]}function _t(...e){let t=5381;for(const n of e)if(typeof n=="string"){let a=n.length;for(;a;)t=t*33^n.charCodeAt(--a)}else if(ArrayBuffer.isView(n)){const a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=a.length;for(;r;)t=t*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function mt(e){const t=atob(e),n=new Uint8Array(t.length);for(let a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return n}const wt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&F.delete(Re(e)),wt(e,t));const F=new Map;function vt(e,t){const n=Re(e,t),a=document.querySelector(n);if(a?.textContent){a.remove();let{body:r,...i}=JSON.parse(a.textContent);const o=a.getAttribute("data-ttl");return o&&F.set(n,{body:r,init:i,ttl:1e3*Number(o)}),a.getAttribute("data-b64")!==null&&(r=mt(r)),Promise.resolve(new Response(r,i))}return window.fetch(e,t)}function yt(e,t,n){if(F.size>0){const a=Re(e,n),r=F.get(a);if(r){if(performance.now()<r.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(r.body,r.init);F.delete(a)}}return window.fetch(t,n)}function Re(e,t){let a=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const r=[];t.headers&&r.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&r.push(t.body),a+=`[data-hash="${_t(...r)}"]`}return a}const bt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function kt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Et(e).map(a=>{const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return t.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const o=a.split(/\[(.+?)\](?!\])/);return"/"+o.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return he(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return he(String.fromCharCode(...l.slice(2).split("-").map(m=>parseInt(m,16))));const f=bt.exec(l),[,h,w,u,p]=f;return t.push({name:u,matcher:p,optional:!!h,rest:!!w,chained:w?c===1&&o[0]==="":!1}),w?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return he(l)}).join("")}).join("")}/?$`),params:t}}function St(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Et(e){return e.slice(1).split("/").filter(St)}function Rt(e,t,n){const a={},r=e.slice(1),i=r.filter(s=>s!==void 0);let o=0;for(let s=0;s<t.length;s+=1){const l=t[s];let c=r[s-o];if(l.chained&&l.rest&&o&&(c=r.slice(s-o,s+1).filter(f=>f).join("/"),o=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){a[l.name]=c;const f=t[s+1],h=r[s+1];f&&!f.rest&&f.optional&&h&&l.chained&&(o=0),!f&&!h&&Object.keys(a).length===i.length&&(o=0);continue}if(l.optional&&l.chained){o++;continue}return}if(!o)return a}function he(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function xt({nodes:e,server_loads:t,dictionary:n,matchers:a}){const r=new Set(t);return Object.entries(n).map(([s,[l,c,f]])=>{const{pattern:h,params:w}=kt(s),u={id:s,exec:p=>{const m=h.exec(p);if(m)return Rt(m,w,a)},errors:[1,...f||[]].map(p=>e[p]),layouts:[0,...c||[]].map(o),leaf:i(l)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function i(s){const l=s<0;return l&&(s=~s),[l,e[s]]}function o(s){return s===void 0?s:[r.has(s),e[s]]}}function Fe(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Ne(e,t,n=JSON.stringify){const a=n(t);try{sessionStorage[e]=a}catch{}}const x=globalThis.__sveltekit_dhijh2?.base??"/_dashboard",Lt=globalThis.__sveltekit_dhijh2?.assets??x??"",At="1772670336755",Ge="sveltekit:snapshot",We="sveltekit:scroll",Ye="sveltekit:states",Ut="sveltekit:pageurl",B="sveltekit:history",W="sveltekit:navigation",C={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},xe=location.origin;function ze(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function q(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const qe={...C,"":C.hover};function He(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Je(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=He(e)}}function _e(e,t,n){let a;try{if(a=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&a.hash.match(/^#[^/]/)){const s=location.hash.split("#")[1]||"/";a.hash=`#${s}${a.hash}`}}catch{}const r=e instanceof SVGAElement?e.target.baseVal:e.target,i=!a||!!r||ce(a,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=a?.origin===xe&&e.hasAttribute("download");return{url:a,external:i,target:r,download:o}}function te(e){let t=null,n=null,a=null,r=null,i=null,o=null,s=e;for(;s&&s!==document.documentElement;)a===null&&(a=V(s,"preload-code")),r===null&&(r=V(s,"preload-data")),t===null&&(t=V(s,"keepfocus")),n===null&&(n=V(s,"noscroll")),i===null&&(i=V(s,"reload")),o===null&&(o=V(s,"replacestate")),s=He(s);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:qe[a??"off"],preload_data:qe[r??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(o)}}function De(e){const t=be(e);let n=!0;function a(){n=!0,t.update(o=>o)}function r(o){n=!1,t.set(o)}function i(o){let s;return t.subscribe(l=>{(s===void 0||n&&l!==s)&&o(s=l)})}return{notify:a,set:r,subscribe:i}}const Xe={v:()=>{}};function Tt(){const{set:e,subscribe:t}=be(!1);let n;async function a(){clearTimeout(n);try{const r=await fetch(`${Lt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const o=(await r.json()).version!==At;return o&&(e(!0),Xe.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:a}}function ce(e,t,n){return e.origin!==xe||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function rn(e){}const Qe=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...Qe];const It=new Set([...Qe]);[...It];function Ot(e){return e.filter(t=>t!=null)}function Le(e){return e instanceof ke||e instanceof Ee?e.status:500}function Pt(e){return e instanceof Ee?e.text:"Internal Error"}let k,Y,pe;const $t=Ce.toString().includes("$$")||/function \w+\(\) \{\}/.test(Ce.toString());$t?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},Y={current:null},pe={current:!1}):(k=new class{#e=A({});get data(){return U(this.#e)}set data(t){T(this.#e,t)}#t=A(null);get form(){return U(this.#t)}set form(t){T(this.#t,t)}#n=A(null);get error(){return U(this.#n)}set error(t){T(this.#n,t)}#a=A({});get params(){return U(this.#a)}set params(t){T(this.#a,t)}#r=A({id:null});get route(){return U(this.#r)}set route(t){T(this.#r,t)}#o=A({});get state(){return U(this.#o)}set state(t){T(this.#o,t)}#s=A(-1);get status(){return U(this.#s)}set status(t){T(this.#s,t)}#i=A(new URL("https://example.com"));get url(){return U(this.#i)}set url(t){T(this.#i,t)}},Y=new class{#e=A(null);get current(){return U(this.#e)}set current(t){T(this.#e,t)}},pe=new class{#e=A(!1);get current(){return U(this.#e)}set current(t){T(this.#e,t)}},Xe.v=()=>pe.current=!0);function jt(e){Object.assign(k,e)}const Ct=new Set(["icon","shortcut icon","apple-touch-icon"]),j=Fe(We)??{},z=Fe(Ge)??{},$={url:De({}),page:De({}),navigating:be(null),updated:Tt()};function Ae(e){j[e]=q()}function Nt(e,t){let n=e+1;for(;j[n];)delete j[n],n+=1;for(n=t+1;z[n];)delete z[n],n+=1}function H(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function Ze(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function Ve(){}let Ue,me,ne,I,we,y;const ae=[],re=[];let L=null;function ve(){L?.fork?.then(e=>e?.discard()),L=null}const Z=new Map,et=new Set,qt=new Set,G=new Set;let _={branch:[],error:null,url:null},tt=!1,oe=!1,Be=!0,J=!1,M=!1,nt=!1,Te=!1,at,v,R,N;const se=new Set,Ke=new Map;async function cn(e,t,n){globalThis.__sveltekit_dhijh2?.data&&globalThis.__sveltekit_dhijh2.data,document.URL!==location.href&&(location.href=location.href),y=e,await e.hooks.init?.(),Ue=xt(e),I=document.documentElement,we=t,me=e.nodes[0],ne=e.nodes[1],me(),ne(),v=history.state?.[B],R=history.state?.[W],v||(v=R=Date.now(),history.replaceState({...history.state,[B]:v,[W]:R},""));const a=j[v];function r(){a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y))}n?(r(),await Qt(we,n)):(await K({type:"enter",url:ze(y.hash?tn(new URL(location.href)):location.href),replace_state:!0}),r()),Xt()}function Dt(){ae.length=0,Te=!1}function rt(e){re.some(t=>t?.snapshot)&&(z[e]=re.map(t=>t?.snapshot?.capture()))}function ot(e){z[e]?.forEach((t,n)=>{re[n]?.snapshot?.restore(t)})}function Me(){Ae(v),Ne(We,j),rt(R),Ne(Ge,z)}async function Vt(e,t,n,a){let r;t.invalidateAll&&ve(),await K({type:"goto",url:ze(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:a,accept:()=>{t.invalidateAll&&(Te=!0,r=[...Ke.keys()]),t.invalidate&&t.invalidate.forEach(Jt)}}),t.invalidateAll&&ee().then(ee).then(()=>{Ke.forEach(({resource:i},o)=>{r?.includes(o)&&i.refresh?.()})})}async function Bt(e){if(e.id!==L?.id){ve();const t={};se.add(t),L={id:e.id,token:t,promise:it({...e,preload:t}).then(n=>(se.delete(t),n.type==="loaded"&&n.state.error&&ve(),n)),fork:null}}return L.promise}async function ge(e){const t=(await ue(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function st(e,t,n){_=e.state;const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(k,e.props.page),at=new y.root({target:t,props:{...e.props,stores:$,components:re},hydrate:n,sync:!1}),await Promise.resolve(),ot(R),n){const r={from:null,to:{params:_.params,route:{id:_.route?.id??null},url:new URL(location.href),scroll:j[v]??q()},willUnload:!1,type:"enter",complete:Promise.resolve()};G.forEach(i=>i(r))}oe=!0}function ie({url:e,params:t,branch:n,status:a,error:r,route:i,form:o}){let s="never";if(x&&(e.pathname===x||e.pathname===x+"/"))s="always";else for(const u of n)u?.slash!==void 0&&(s=u.slash);e.pathname=ht(e.pathname,s),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:r,route:i},props:{constructors:Ot(n).map(u=>u.node.component),page:je(k)}};o!==void 0&&(l.props.form=o);let c={},f=!k,h=0;for(let u=0;u<Math.max(n.length,_.branch.length);u+=1){const p=n[u],m=_.branch[u];p?.data!==m?.data&&(f=!0),p&&(c={...c,...p.data},f&&(l.props[`data_${h}`]=c),h+=1)}return(!_.url||e.href!==_.url.href||_.error!==r||o!==void 0&&o!==k.form||f)&&(l.props.page={error:r,params:t,route:{id:i?.id??null},state:{},status:a,url:new URL(e),form:o??null,data:f?c:k.data}),l}async function Ie({loader:e,parent:t,url:n,params:a,route:r,server_data_node:i}){let o=null;const s={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();return{node:l,loader:e,server:i,universal:l.universal?.load?{type:"data",data:o,uses:s}:null,data:o??i?.data??null,slash:l.universal?.trailingSlash??i?.slash}}function Kt(e,t,n){let a=e instanceof Request?e.url:e;const r=new URL(a,n);r.origin===n.origin&&(a=r.href.slice(n.origin.length));const i=oe?yt(a,r.href,t):vt(a,t);return{resolved:r,promise:i}}function Mt(e,t,n,a,r,i){if(Te)return!0;if(!r)return!1;if(r.parent&&e||r.route&&t||r.url&&n)return!0;for(const o of r.search_params)if(a.has(o))return!0;for(const o of r.params)if(i[o]!==_.params[o])return!0;for(const o of r.dependencies)if(ae.some(s=>s(new URL(o))))return!0;return!1}function Oe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Ft(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const a of n){const r=e.searchParams.getAll(a),i=t.searchParams.getAll(a);r.every(o=>i.includes(o))&&i.every(o=>r.includes(o))&&n.delete(a)}return n}function Gt({error:e,url:t,route:n,params:a}){return{type:"loaded",state:{error:e,url:t,route:n,params:a,branch:[]},props:{page:je(k),constructors:[]}}}async function it({id:e,invalidating:t,url:n,params:a,route:r,preload:i}){if(L?.id===e)return se.delete(L.token),L.promise;const{errors:o,layouts:s,leaf:l}=r,c=[...s,l];o.forEach(g=>g?.().catch(()=>{})),c.forEach(g=>g?.[1]().catch(()=>{}));const f=_.url?e!==le(_.url):!1,h=_.route?r.id!==_.route.id:!1,w=Ft(_.url,n);let u=!1;const p=c.map(async(g,d)=>{if(!g)return;const S=_.branch[d];return g[1]===S?.loader&&!Mt(u,h,f,w,S.universal?.uses,a)?S:(u=!0,Ie({loader:g[1],url:n,params:a,route:r,parent:async()=>{const O={};for(let P=0;P<d;P+=1)Object.assign(O,(await p[P])?.data);return O},server_data_node:Oe(g[0]?{type:"skip"}:null,g[0]?S?.server:void 0)}))});for(const g of p)g.catch(()=>{});const m=[];for(let g=0;g<c.length;g+=1)if(c[g])try{m.push(await p[g])}catch(d){if(d instanceof Se)return{type:"redirect",location:d.location};if(se.has(i))return Gt({error:await X(d,{params:a,url:n,route:{id:r.id}}),url:n,params:a,route:r});let S=Le(d),E;if(d instanceof ke)E=d.body;else{if(await $.updated.check())return await Ze(),await H(n);E=await X(d,{params:a,url:n,route:{id:r.id}})}const O=await Wt(g,m,o);return O?ie({url:n,params:a,branch:m.slice(0,O.idx).concat(O.node),status:S,error:E,route:r}):await ct(n,{id:r.id},E,S)}else m.push(void 0);return ie({url:n,params:a,branch:m,status:200,error:null,route:r,form:t?void 0:null})}async function Wt(e,t,n){for(;e--;)if(n[e]){let a=e;for(;!t[a];)a-=1;try{return{idx:a+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Pe({status:e,error:t,url:n,route:a}){const r={};let i=null;try{const o=await Ie({loader:me,url:n,params:r,route:a,parent:()=>Promise.resolve({}),server_data_node:Oe(i)}),s={node:await ne(),loader:ne,universal:null,server:null,data:null};return ie({url:n,params:r,branch:[o,s],status:e,error:t,route:null})}catch(o){if(o instanceof Se)return Vt(new URL(o.location,location.href),{},0);throw o}}async function Yt(e){const t=e.href;if(Z.has(t))return Z.get(t);let n;try{const a=(async()=>{let r=await y.hooks.reroute({url:new URL(e),fetch:async(i,o)=>Kt(i,o,e).promise})??e;if(typeof r=="string"){const i=new URL(e);y.hash?i.hash=r:i.pathname=r,r=i}return r})();Z.set(t,a),n=await a}catch{Z.delete(t);return}return n}async function ue(e,t){if(e&&!ce(e,x,y.hash)){const n=await Yt(e);if(!n)return;const a=zt(n);for(const r of Ue){const i=r.exec(a);if(i)return{id:le(e),invalidating:t,route:r,params:gt(i),url:e}}}}function zt(e){return pt(y.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function le(e){return(y.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function lt({url:e,type:t,intent:n,delta:a,event:r,scroll:i}){let o=!1;const s=$e(_,n,e,t,i??null);a!==void 0&&(s.navigation.delta=a),r!==void 0&&(s.navigation.event=r);const l={...s.navigation,cancel:()=>{o=!0,s.reject(new Error("navigation cancelled"))}};return J||et.forEach(c=>c(l)),o?null:s}async function K({type:e,url:t,popped:n,keepfocus:a,noscroll:r,replace_state:i,state:o={},redirect_count:s=0,nav_token:l={},accept:c=Ve,block:f=Ve,event:h}){const w=N;N=l;const u=await ue(t,!1),p=e==="enter"?$e(_,u,t,e):lt({url:t,type:e,delta:n?.delta,intent:u,scroll:n?.scroll,event:h});if(!p){f(),N===l&&(N=w);return}const m=v,g=R;c(),J=!0,oe&&p.navigation.type!=="enter"&&$.navigating.set(Y.current=p.navigation);let d=u&&await it(u);if(!d){if(ce(t,x,y.hash))return await H(t,i);d=await ct(t,{id:null},await X(new Ee(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=u?.url||t,N!==l)return p.reject(new Error("navigation aborted")),!1;if(d.type==="redirect"){if(s<20){await K({type:e,url:new URL(d.location,t),popped:n,keepfocus:a,noscroll:r,replace_state:i,state:o,redirect_count:s+1,nav_token:l}),p.fulfil(void 0);return}d=await Pe({status:500,error:await X(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else d.props.page.status>=400&&await $.updated.check()&&(await Ze(),await H(t,i));if(Dt(),Ae(m),rt(g),d.props.page.url.pathname!==t.pathname&&(t.pathname=d.props.page.url.pathname),o=n?n.state:o,!n){const b=i?0:1,Q={[B]:v+=b,[W]:R+=b,[Ye]:o};(i?history.replaceState:history.pushState).call(history,Q,"",t),i||Nt(v,R)}const S=u&&L?.id===u.id?L.fork:null;L=null,d.props.page.state=o;let E;if(oe){const b=(await Promise.all(Array.from(qt,D=>D(p.navigation)))).filter(D=>typeof D=="function");if(b.length>0){let D=function(){b.forEach(fe=>{G.delete(fe)})};b.push(D),b.forEach(fe=>{G.add(fe)})}_=d.state,d.props.page&&(d.props.page.url=t);const Q=S&&await S;Q?E=Q.commit():(at.$set(d.props),jt(d.props.page),E=dt?.()),nt=!0}else await st(d,we,!1);const{activeElement:O}=document;await E,await ee(),await ee();let P=null;if(Be){const b=n?n.scroll:r?q():null;b?scrollTo(b.x,b.y):(P=t.hash&&document.getElementById(ut(t)))?P.scrollIntoView():scrollTo(0,0)}const ft=document.activeElement!==O&&document.activeElement!==document.body;!a&&!ft&&en(t,!P),Be=!0,d.props.page&&Object.assign(k,d.props.page),J=!1,e==="popstate"&&ot(R),p.fulfil(void 0),p.navigation.to&&(p.navigation.to.scroll=q()),G.forEach(b=>b(p.navigation)),$.navigating.set(Y.current=null)}async function ct(e,t,n,a,r){return e.origin===xe&&e.pathname===location.pathname&&!tt?await Pe({status:a,error:n,url:e,route:t}):await H(e,r)}function Ht(){let e,t={element:void 0,href:void 0},n;I.addEventListener("mousemove",s=>{const l=s.target;clearTimeout(e),e=setTimeout(()=>{i(l,C.hover)},20)});function a(s){s.defaultPrevented||i(s.composedPath()[0],C.tap)}I.addEventListener("mousedown",a),I.addEventListener("touchstart",a,{passive:!0});const r=new IntersectionObserver(s=>{for(const l of s)l.isIntersecting&&(ge(new URL(l.target.href)),r.unobserve(l.target))},{threshold:0});async function i(s,l){const c=Je(s,I),f=c===t.element&&c?.href===t.href&&l>=n;if(!c||f)return;const{url:h,external:w,download:u}=_e(c,x,y.hash);if(w||u)return;const p=te(c),m=h&&le(_.url)===le(h);if(!(p.reload||m))if(l<=p.preload_data){t={element:c,href:c.href},n=C.tap;const g=await ue(h,!1);if(!g)return;Bt(g)}else l<=p.preload_code&&(t={element:c,href:c.href},n=l,ge(h))}function o(){r.disconnect();for(const s of I.querySelectorAll("a")){const{url:l,external:c,download:f}=_e(s,x,y.hash);if(c||f)continue;const h=te(s);h.reload||(h.preload_code===C.viewport&&r.observe(s),h.preload_code===C.eager&&ge(l))}}G.add(o),o()}function X(e,t){if(e instanceof ke)return e.body;const n=Le(e),a=Pt(e);return y.hooks.handleError({error:e,event:t,status:n,message:a})??{message:a}}function Jt(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function Xt(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(Me(),!J){const a=$e(_,void 0,null,"leave"),r={...a.navigation,cancel:()=>{n=!0,a.reject(new Error("navigation cancelled"))}};et.forEach(i=>i(r))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Me()}),navigator.connection?.saveData||Ht(),I.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Je(t.composedPath()[0],I);if(!n)return;const{url:a,external:r,target:i,download:o}=_e(n,x,y.hash);if(!a)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const s=te(n);if(!(n instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||o)return;const[c,f]=(y.hash?a.hash.replace(/^#/,""):a.href).split("#"),h=c===de(location);if(r||s.reload&&(!h||!f)){lt({url:a,type:"link",event:t})?J=!0:t.preventDefault();return}if(f!==void 0&&h){const[,w]=_.url.href.split("#");if(w===f){if(t.preventDefault(),f===""||f==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=n.ownerDocument.getElementById(decodeURIComponent(f));u&&(u.scrollIntoView(),u.focus())}return}if(M=!0,Ae(v),e(a),!s.replace_state)return;M=!1}t.preventDefault(),await new Promise(w=>{requestAnimationFrame(()=>{setTimeout(w,0)}),setTimeout(w,100)}),await K({type:"link",url:a,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??a.href===location.href,event:t})}),I.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),a=t.submitter;if((a?.formTarget||n.target)==="_blank"||(a?.formMethod||n.method)!=="get")return;const o=new URL(a?.hasAttribute("formaction")&&a?.formAction||n.action);if(ce(o,x,!1))return;const s=t.target,l=te(s);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(s,a);o.search=new URLSearchParams(c).toString(),K({type:"form",url:o,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!ye){if(t.state?.[B]){const n=t.state[B];if(N={},n===v)return;const a=j[n],r=t.state[Ye]??{},i=new URL(t.state[Ut]??location.href),o=t.state[W],s=_.url?de(location)===de(_.url):!1;if(o===R&&(nt||s)){r!==k.state&&(k.state=r),e(i),j[v]=q(),a&&scrollTo(a.x,a.y),v=n;return}const c=n-v;await K({type:"popstate",url:i,popped:{state:r,scroll:a,delta:c},accept:()=>{v=n,R=o},block:()=>{history.go(-c)},nav_token:N,event:t})}else if(!M){const n=new URL(location.href);e(n),y.hash&&location.reload()}}}),addEventListener("hashchange",()=>{M&&(M=!1,history.replaceState({...history.state,[B]:++v,[W]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Ct.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(Y.current=null)});function e(t){_.url=k.url=t,$.page.set(je(k)),$.page.notify()}}async function Qt(e,{status:t=200,error:n,node_ids:a,params:r,route:i,server_route:o,data:s,form:l}){tt=!0;const c=new URL(location.href);let f;({params:r={},route:i={id:null}}=await ue(c,!1)||{}),f=Ue.find(({id:u})=>u===i.id);let h,w=!0;try{const u=a.map(async(m,g)=>{const d=s[g];return d?.uses&&(d.uses=Zt(d.uses)),Ie({loader:y.nodes[m],url:c,params:r,route:i,parent:async()=>{const S={};for(let E=0;E<g;E+=1)Object.assign(S,(await u[E]).data);return S},server_data_node:Oe(d)})}),p=await Promise.all(u);if(f){const m=f.layouts;for(let g=0;g<m.length;g++)m[g]||p.splice(g,0,void 0)}h=ie({url:c,params:r,branch:p,status:t,error:n,form:l,route:f??null})}catch(u){if(u instanceof Se){await H(new URL(u.location,location.href));return}h=await Pe({status:Le(u),error:await X(u,{url:c,params:r,route:i}),url:c,route:i}),e.textContent="",w=!1}h.props.page&&(h.props.page.state={}),await st(h,e,w)}function Zt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let ye=!1;function en(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const a=ut(e);if(a&&document.getElementById(a)){const{x:i,y:o}=q();setTimeout(()=>{const s=history.state;ye=!0,location.replace(new URL(`#${a}`,location.href)),history.replaceState(s,"",e),t&&scrollTo(i,o),ye=!1})}else{const i=document.body,o=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),o!==null?i.setAttribute("tabindex",o):i.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const i=[];for(let o=0;o<r.rangeCount;o+=1)i.push(r.getRangeAt(o));setTimeout(()=>{if(r.rangeCount===i.length){for(let o=0;o<r.rangeCount;o+=1){const s=i[o],l=r.getRangeAt(o);if(s.commonAncestorContainer!==l.commonAncestorContainer||s.startContainer!==l.startContainer||s.endContainer!==l.endContainer||s.startOffset!==l.startOffset||s.endOffset!==l.endOffset)return}r.removeAllRanges()}})}}}function $e(e,t,n,a,r=null){let i,o;const s=new Promise((c,f)=>{i=c,o=f});return s.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:q()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:r},willUnload:!t,type:a,complete:s},fulfil:i,reject:o}}function je(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function tn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function ut(e){let t;if(y.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{cn as a,rn as l,k as p,$ as s};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CnuSotPZ.js","../chunks/DUglripS.js","../chunks/Bj1t19nj.js","../chunks/DHt6uv_5.js","../chunks/BWM6cuy1.js","../chunks/CG6hkJ2r.js","../chunks/Mkbhf_NF.js","../assets/index.BkcWggqo.css","../assets/0.qdgu5uXf.css","../nodes/1.D3cq8P48.js","../chunks/T8p1hvv1.js","../nodes/2.wYRnMaww.js","../assets/2.NbOPcGNK.css"])))=>i.map(i=>d[i]);
2
- import{y as N,D as z,C as G,E as J,F as K,I as W,J as Q,K as D,H as X,z as Z,a8 as $,a9 as tt,a as et,aa as rt,a5 as st,R as O,a6 as at,g as d,ab as nt,M as ot,O as ct,p as it,b as ut,u as lt,ac as ft,i as w,s as dt,j as ht,ad as S,k as mt,m as _t,t as vt,ae as T}from"../chunks/Bj1t19nj.js";import{h as gt,m as yt,u as Et,a as P,c as x,f as q,t as bt,s as Pt}from"../chunks/DUglripS.js";import{o as Rt}from"../chunks/DHt6uv_5.js";import{B as kt,p as A,i as j}from"../chunks/BWM6cuy1.js";function C(s,t,a){var i;N&&(i=Z,z());var n=new kt(s);G(()=>{var e=t()??null;if(N){var r=K(i),o=r===X,E=e!==null;if(o!==E){var h=W();Q(h),n.anchor=h,D(!1),n.ensure(e,e&&(c=>a(c,e))),D(!0);return}}n.ensure(e,e&&(c=>a(c,e)))},J)}function I(s,t){return s===t||s?.[st]===t}function L(s={},t,a,i){return $(()=>{var n,e;return tt(()=>{n=e,e=[],et(()=>{s!==a(...e)&&(t(s,...e),n&&I(a(...n),s)&&t(null,...n))})}),()=>{rt(()=>{e&&I(a(...e),s)&&t(null,...e)})}}),s}function wt(s){return class extends Ot{constructor(t){super({component:s,...t})}}}class Ot{#e;#t;constructor(t){var a=new Map,i=(e,r)=>{var o=ct(r,!1,!1);return a.set(e,o),o};const n=new Proxy({...t.props||{},$$events:{}},{get(e,r){return d(a.get(r)??i(r,Reflect.get(e,r)))},has(e,r){return r===at?!0:(d(a.get(r)??i(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,o){return O(a.get(r)??i(r,o),o),Reflect.set(e,r,o)}});this.#t=(t.hydrate?gt:yt)(t.component,{target:t.target,anchor:t.anchor,props:n,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&nt(),this.#e=n.$$events;for(const e of Object.keys(this.#t))e==="$set"||e==="$destroy"||e==="$on"||ot(this,e,{get(){return this.#t[e]},set(r){this.#t[e]=r},enumerable:!0});this.#t.$set=e=>{Object.assign(n,e)},this.#t.$destroy=()=>{Et(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const i=(...n)=>a.call(this,...n);return this.#e[t].push(i),()=>{this.#e[t]=this.#e[t].filter(n=>n!==i)}}$destroy(){this.#t.$destroy()}}const St="modulepreload",Tt=function(s,t){return new URL(s,t).href},B={},p=function(t,a,i){let n=Promise.resolve();if(a&&a.length>0){let h=function(c){return Promise.all(c.map(f=>Promise.resolve(f).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};const r=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),E=o?.nonce||o?.getAttribute("nonce");n=h(a.map(c=>{if(c=Tt(c,i),c in B)return;B[c]=!0;const f=c.endsWith(".css"),m=f?'[rel="stylesheet"]':"";if(i)for(let _=r.length-1;_>=0;_--){const u=r[_];if(u.href===c&&(!f||u.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${m}`))return;const l=document.createElement("link");if(l.rel=f?"stylesheet":St,f||(l.as="script"),l.crossOrigin="",l.href=c,E&&l.setAttribute("nonce",E),document.head.appendChild(l),f)return new Promise((_,u)=>{l.addEventListener("load",_),l.addEventListener("error",()=>u(new Error(`Unable to preload CSS for ${c}`)))})}))}function e(r){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r}return n.then(r=>{for(const o of r||[])o.status==="rejected"&&e(o.reason);return t().catch(e)})},It={};var xt=q('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),At=q("<!> <!>",1);function jt(s,t){it(t,!0);let a=A(t,"components",23,()=>[]),i=A(t,"data_0",3,null),n=A(t,"data_1",3,null);ut(()=>t.stores.page.set(t.page)),lt(()=>{t.stores,t.page,t.constructors,a(),t.form,i(),n(),t.stores.page.notify()});let e=S(!1),r=S(!1),o=S(null);Rt(()=>{const u=t.stores.page.subscribe(()=>{d(e)&&(O(r,!0),ft().then(()=>{O(o,document.title||"untitled page",!0)}))});return O(e,!0),u});const E=T(()=>t.constructors[1]);var h=At(),c=w(h);{var f=u=>{const v=T(()=>t.constructors[0]);var g=x(),R=w(g);C(R,()=>d(v),(y,b)=>{L(b(y,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(k,Lt)=>{var M=x(),V=w(M);C(V,()=>d(E),(Y,H)=>{L(H(Y,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),U=>a()[1]=U,()=>a()?.[1])}),P(k,M)},$$slots:{default:!0}}),k=>a()[0]=k,()=>a()?.[0])}),P(u,g)},m=u=>{const v=T(()=>t.constructors[0]);var g=x(),R=w(g);C(R,()=>d(v),(y,b)=>{L(b(y,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),k=>a()[0]=k,()=>a()?.[0])}),P(u,g)};j(c,u=>{t.constructors[1]?u(f):u(m,!1)})}var l=dt(c,2);{var _=u=>{var v=xt(),g=mt(v);{var R=y=>{var b=bt();vt(()=>Pt(b,d(o))),P(y,b)};j(g,y=>{d(r)&&y(R)})}_t(v),P(u,v)};j(l,u=>{d(e)&&u(_)})}P(s,h),ht()}const Bt=wt(jt),qt=[()=>p(()=>import("../nodes/0.CnuSotPZ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),()=>p(()=>import("../nodes/1.D3cq8P48.js"),__vite__mapDeps([9,1,2,6,10,3]),import.meta.url),()=>p(()=>import("../nodes/2.wYRnMaww.js"),__vite__mapDeps([11,1,2,4,5,6,7,12]),import.meta.url)],Ft=[],Vt={"/":[2]},F={handleError:(({error:s})=>{console.error(s)}),reroute:(()=>{}),transport:{}},Ct=Object.fromEntries(Object.entries(F.transport).map(([s,t])=>[s,t.decode])),Yt=Object.fromEntries(Object.entries(F.transport).map(([s,t])=>[s,t.encode])),Ht=!1,Ut=(s,t)=>Ct[s](t);export{Ut as decode,Ct as decoders,Vt as dictionary,Yt as encoders,Ht as hash,F as hooks,It as matchers,qt as nodes,Bt as root,Ft as server_loads};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CnuSotPZ.js","../chunks/DUglripS.js","../chunks/Bj1t19nj.js","../chunks/DHt6uv_5.js","../chunks/BWM6cuy1.js","../chunks/CG6hkJ2r.js","../chunks/Mkbhf_NF.js","../assets/index.BkcWggqo.css","../assets/0.qdgu5uXf.css","../nodes/1.C9Gp9aAr.js","../chunks/Dfs14Nz3.js","../nodes/2.wYRnMaww.js","../assets/2.NbOPcGNK.css"])))=>i.map(i=>d[i]);
2
+ import{y as N,D as z,C as G,E as J,F as K,I as W,J as Q,K as D,H as X,z as Z,a8 as $,a9 as tt,a as et,aa as rt,a5 as st,R as O,a6 as at,g as d,ab as nt,M as ot,O as ct,p as it,b as ut,u as lt,ac as ft,i as w,s as dt,j as ht,ad as S,k as mt,m as _t,t as vt,ae as T}from"../chunks/Bj1t19nj.js";import{h as gt,m as yt,u as Et,a as P,c as x,f as q,t as bt,s as Pt}from"../chunks/DUglripS.js";import{o as Rt}from"../chunks/DHt6uv_5.js";import{B as kt,p as A,i as j}from"../chunks/BWM6cuy1.js";function C(s,t,a){var i;N&&(i=Z,z());var n=new kt(s);G(()=>{var e=t()??null;if(N){var r=K(i),o=r===X,E=e!==null;if(o!==E){var h=W();Q(h),n.anchor=h,D(!1),n.ensure(e,e&&(c=>a(c,e))),D(!0);return}}n.ensure(e,e&&(c=>a(c,e)))},J)}function I(s,t){return s===t||s?.[st]===t}function L(s={},t,a,i){return $(()=>{var n,e;return tt(()=>{n=e,e=[],et(()=>{s!==a(...e)&&(t(s,...e),n&&I(a(...n),s)&&t(null,...n))})}),()=>{rt(()=>{e&&I(a(...e),s)&&t(null,...e)})}}),s}function wt(s){return class extends Ot{constructor(t){super({component:s,...t})}}}class Ot{#e;#t;constructor(t){var a=new Map,i=(e,r)=>{var o=ct(r,!1,!1);return a.set(e,o),o};const n=new Proxy({...t.props||{},$$events:{}},{get(e,r){return d(a.get(r)??i(r,Reflect.get(e,r)))},has(e,r){return r===at?!0:(d(a.get(r)??i(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,o){return O(a.get(r)??i(r,o),o),Reflect.set(e,r,o)}});this.#t=(t.hydrate?gt:yt)(t.component,{target:t.target,anchor:t.anchor,props:n,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&nt(),this.#e=n.$$events;for(const e of Object.keys(this.#t))e==="$set"||e==="$destroy"||e==="$on"||ot(this,e,{get(){return this.#t[e]},set(r){this.#t[e]=r},enumerable:!0});this.#t.$set=e=>{Object.assign(n,e)},this.#t.$destroy=()=>{Et(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const i=(...n)=>a.call(this,...n);return this.#e[t].push(i),()=>{this.#e[t]=this.#e[t].filter(n=>n!==i)}}$destroy(){this.#t.$destroy()}}const St="modulepreload",Tt=function(s,t){return new URL(s,t).href},B={},p=function(t,a,i){let n=Promise.resolve();if(a&&a.length>0){let h=function(c){return Promise.all(c.map(f=>Promise.resolve(f).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};const r=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),E=o?.nonce||o?.getAttribute("nonce");n=h(a.map(c=>{if(c=Tt(c,i),c in B)return;B[c]=!0;const f=c.endsWith(".css"),m=f?'[rel="stylesheet"]':"";if(i)for(let _=r.length-1;_>=0;_--){const u=r[_];if(u.href===c&&(!f||u.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${m}`))return;const l=document.createElement("link");if(l.rel=f?"stylesheet":St,f||(l.as="script"),l.crossOrigin="",l.href=c,E&&l.setAttribute("nonce",E),document.head.appendChild(l),f)return new Promise((_,u)=>{l.addEventListener("load",_),l.addEventListener("error",()=>u(new Error(`Unable to preload CSS for ${c}`)))})}))}function e(r){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r}return n.then(r=>{for(const o of r||[])o.status==="rejected"&&e(o.reason);return t().catch(e)})},It={};var xt=q('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),At=q("<!> <!>",1);function jt(s,t){it(t,!0);let a=A(t,"components",23,()=>[]),i=A(t,"data_0",3,null),n=A(t,"data_1",3,null);ut(()=>t.stores.page.set(t.page)),lt(()=>{t.stores,t.page,t.constructors,a(),t.form,i(),n(),t.stores.page.notify()});let e=S(!1),r=S(!1),o=S(null);Rt(()=>{const u=t.stores.page.subscribe(()=>{d(e)&&(O(r,!0),ft().then(()=>{O(o,document.title||"untitled page",!0)}))});return O(e,!0),u});const E=T(()=>t.constructors[1]);var h=At(),c=w(h);{var f=u=>{const v=T(()=>t.constructors[0]);var g=x(),R=w(g);C(R,()=>d(v),(y,b)=>{L(b(y,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(k,Lt)=>{var M=x(),V=w(M);C(V,()=>d(E),(Y,H)=>{L(H(Y,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),U=>a()[1]=U,()=>a()?.[1])}),P(k,M)},$$slots:{default:!0}}),k=>a()[0]=k,()=>a()?.[0])}),P(u,g)},m=u=>{const v=T(()=>t.constructors[0]);var g=x(),R=w(g);C(R,()=>d(v),(y,b)=>{L(b(y,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),k=>a()[0]=k,()=>a()?.[0])}),P(u,g)};j(c,u=>{t.constructors[1]?u(f):u(m,!1)})}var l=dt(c,2);{var _=u=>{var v=xt(),g=mt(v);{var R=y=>{var b=bt();vt(()=>Pt(b,d(o))),P(y,b)};j(g,y=>{d(r)&&y(R)})}_t(v),P(u,v)};j(l,u=>{d(e)&&u(_)})}P(s,h),ht()}const Bt=wt(jt),qt=[()=>p(()=>import("../nodes/0.CnuSotPZ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),()=>p(()=>import("../nodes/1.C9Gp9aAr.js"),__vite__mapDeps([9,1,2,6,10,3]),import.meta.url),()=>p(()=>import("../nodes/2.wYRnMaww.js"),__vite__mapDeps([11,1,2,4,5,6,7,12]),import.meta.url)],Ft=[],Vt={"/":[2]},F={handleError:(({error:s})=>{console.error(s)}),reroute:(()=>{}),transport:{}},Ct=Object.fromEntries(Object.entries(F.transport).map(([s,t])=>[s,t.decode])),Yt=Object.fromEntries(Object.entries(F.transport).map(([s,t])=>[s,t.encode])),Ht=!1,Ut=(s,t)=>Ct[s](t);export{Ut as decode,Ct as decoders,Vt as dictionary,Yt as encoders,Ht as hash,F as hooks,It as matchers,qt as nodes,Bt as root,Ft as server_loads};
@@ -0,0 +1 @@
1
+ import{l as o,a as r}from"../chunks/Dfs14Nz3.js";export{o as load_css,r as start};
@@ -1 +1 @@
1
- import{a as u,f as h,s as a}from"../chunks/DUglripS.js";import{i as g}from"../chunks/Mkbhf_NF.js";import{p as l,i as v,t as d,j as _,k as e,m as o,s as x}from"../chunks/Bj1t19nj.js";import{s as k,p}from"../chunks/T8p1hvv1.js";const $={get error(){return p.error},get status(){return p.status}};k.updated.check;const m=$;var b=h("<h1> </h1> <p> </p>",1);function y(i,f){l(f,!1),g();var r=b(),t=v(r),n=e(t,!0);o(t);var s=x(t,2),c=e(s,!0);o(s),d(()=>{a(n,m.status),a(c,m.error?.message)}),u(i,r),_()}export{y as component};
1
+ import{a as u,f as h,s as a}from"../chunks/DUglripS.js";import{i as g}from"../chunks/Mkbhf_NF.js";import{p as l,i as v,t as d,j as _,k as e,m as o,s as x}from"../chunks/Bj1t19nj.js";import{s as k,p}from"../chunks/Dfs14Nz3.js";const $={get error(){return p.error},get status(){return p.status}};k.updated.check;const m=$;var b=h("<h1> </h1> <p> </p>",1);function y(i,f){l(f,!1),g();var r=b(),t=v(r),n=e(t,!0);o(t);var s=x(t,2),c=e(s,!0);o(s),d(()=>{a(n,m.status),a(c,m.error?.message)}),u(i,r),_()}export{y as component};
@@ -1 +1 @@
1
- {"version":"1772475994684"}
1
+ {"version":"1772670336755"}
@@ -2,34 +2,35 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <link rel="icon" type="image/svg+xml" href="/phantom.svg" />
5
+ <link rel="icon" type="image/svg+xml" href="/_dashboard/phantom.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1" />
7
7
  <link
8
8
  href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&display=swap"
9
9
  rel="stylesheet"
10
10
  />
11
- <link href="/_app/immutable/entry/start._1Z5a52H.js" rel="modulepreload">
12
- <link href="/_app/immutable/chunks/T8p1hvv1.js" rel="modulepreload">
13
- <link href="/_app/immutable/chunks/Bj1t19nj.js" rel="modulepreload">
14
- <link href="/_app/immutable/chunks/DHt6uv_5.js" rel="modulepreload">
15
- <link href="/_app/immutable/entry/app.C80n4TC_.js" rel="modulepreload">
16
- <link href="/_app/immutable/chunks/DUglripS.js" rel="modulepreload">
17
- <link href="/_app/immutable/chunks/BWM6cuy1.js" rel="modulepreload">
11
+ <link href="/_dashboard/_app/immutable/entry/start.ByJMAOzi.js" rel="modulepreload">
12
+ <link href="/_dashboard/_app/immutable/chunks/Dfs14Nz3.js" rel="modulepreload">
13
+ <link href="/_dashboard/_app/immutable/chunks/Bj1t19nj.js" rel="modulepreload">
14
+ <link href="/_dashboard/_app/immutable/chunks/DHt6uv_5.js" rel="modulepreload">
15
+ <link href="/_dashboard/_app/immutable/entry/app.BV5Yso9O.js" rel="modulepreload">
16
+ <link href="/_dashboard/_app/immutable/chunks/DUglripS.js" rel="modulepreload">
17
+ <link href="/_dashboard/_app/immutable/chunks/BWM6cuy1.js" rel="modulepreload">
18
18
 
19
19
  </head>
20
20
  <body data-sveltekit-preload-data="hover">
21
21
  <div style="display: contents">
22
22
  <script>
23
23
  {
24
- __sveltekit_6gv8fy = {
25
- base: ""
24
+ __sveltekit_dhijh2 = {
25
+ base: "/_dashboard",
26
+ assets: "/_dashboard"
26
27
  };
27
28
 
28
29
  const element = document.currentScript.parentElement;
29
30
 
30
31
  Promise.all([
31
- import("/_app/immutable/entry/start._1Z5a52H.js"),
32
- import("/_app/immutable/entry/app.C80n4TC_.js")
32
+ import("/_dashboard/_app/immutable/entry/start.ByJMAOzi.js"),
33
+ import("/_dashboard/_app/immutable/entry/app.BV5Yso9O.js")
33
34
  ]).then(([kit, app]) => {
34
35
  kit.start(app, element);
35
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAehC,eAAO,MAAM,OAAO,KAAc,CAAC;AA0BnC,eAAO,MAAM,SAAS,yBAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAahC,eAAO,MAAM,OAAO,KAAc,CAAC;AA0BnC,eAAO,MAAM,SAAS,yBAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -40,7 +40,7 @@ server.on("connection", (socket) => {
40
40
  const socketID = `${socket.remoteAddress}:${socket.remotePort}`;
41
41
  let requestBuffer = Buffer.alloc(0);
42
42
  // listen to raw data
43
- socket.on("data", (chunk) => {
43
+ socket.on("data", async (chunk) => {
44
44
  // if its a websocket connection, ignore the http parser
45
45
  if (wsClients.has(socketID))
46
46
  return;
@@ -65,66 +65,76 @@ server.on("connection", (socket) => {
65
65
  data: requestHistory,
66
66
  })));
67
67
  }
68
+ return;
68
69
  }
69
- else {
70
- const start = Date.now();
71
- const response = handleRouting(request);
72
- request.params = response.params;
73
- const isAdmin = request.path.startsWith("/_admin/");
74
- let logEntry = null;
75
- if (isAdmin && request.path === "/_admin/clear" && request.method === "POST") {
76
- requestHistory.length = 0;
77
- console.log(styleText("yellow", "[Admin] Request history cleared"));
78
- }
79
- const methodColor = request.method === "GET" ? "blue" : "green";
80
- console.log(styleText("bold", `\n[Router] `) + styleText(methodColor, request.method) + " " + styleText("white", request.path));
81
- if (Object.keys(request.params).length > 0) {
82
- console.log(styleText("dim", " params:"), request.params);
70
+ // handle dashboard static files immediately
71
+ if (request.path.startsWith("/_dashboard") || request.path.startsWith("/_app") || request.path === "/phantom.svg") {
72
+ const staticFile = await handleStaticFile(request.path);
73
+ if (staticFile) {
74
+ sendResponse(socket, 200, "OK", staticFile.body, staticFile.headers);
75
+ requestBuffer = Buffer.alloc(0);
76
+ return;
83
77
  }
84
- const delay = options.delay ?? response.delay ?? 0;
85
- if (delay > 0) {
86
- console.log(styleText("yellow", ` ↳ delaying response by ${delay}ms`));
78
+ }
79
+ // redirect root to dashboard if no root mock exists
80
+ if (request.path === "/") {
81
+ const rootResponse = handleRouting(request);
82
+ if (rootResponse.status === 404) {
83
+ sendResponse(socket, 302, "Found", "", { Location: "/_dashboard/" });
84
+ requestBuffer = Buffer.alloc(0);
85
+ return;
87
86
  }
88
- setTimeout(async () => {
89
- if (socket.destroyed)
90
- return;
91
- if (response.status === 404) {
92
- const staticFile = await handleStaticFile(request.path);
93
- if (staticFile) {
94
- sendResponse(socket, 200, "OK", staticFile.body, staticFile.headers);
95
- return;
96
- }
97
- }
98
- const errorRate = options.errorRate ?? response.errorRate ?? 0;
99
- const shouldError = Math.random() < errorRate;
100
- if (!isAdmin) {
101
- logEntry = {
102
- id: crypto.randomUUID(),
103
- method: request.method,
104
- path: request.path,
105
- timestamp: start,
106
- headers: request.headers,
107
- body: request.body.toString("utf-8"),
108
- status: shouldError ? 500 : response.status,
109
- duration: Date.now() - start,
110
- responseBody: shouldError ? { error: "Artificial failure hit!" } : response.body,
111
- };
112
- requestHistory.push(logEntry);
113
- if (requestHistory.length > 100)
114
- requestHistory.shift();
115
- broadcast(wsClients, logEntry);
116
- console.log(styleText("magenta", ` ↳ broadcasted with ${logEntry.duration}ms latency`));
117
- }
118
- if (shouldError) {
119
- console.log(styleText("red", " ↳ Artificial failure hit!"));
120
- sendResponse(socket, 500, "Internal Server Error", {
121
- error: "Artificial failure hit!",
122
- });
123
- return;
124
- }
125
- sendResponse(socket, response.status, response.message, response.body, response.headers);
126
- }, delay);
127
87
  }
88
+ const start = Date.now();
89
+ const response = handleRouting(request);
90
+ request.params = response.params;
91
+ const isAdmin = request.path.startsWith("/_admin/");
92
+ let logEntry = null;
93
+ if (isAdmin && request.path === "/_admin/clear" && request.method === "POST") {
94
+ requestHistory.length = 0;
95
+ console.log(styleText("yellow", "[Admin] Request history cleared"));
96
+ }
97
+ const methodColor = request.method === "GET" ? "blue" : "green";
98
+ console.log(styleText("bold", `\n[Router] `) + styleText(methodColor, request.method) + " " + styleText("white", request.path));
99
+ if (Object.keys(request.params).length > 0) {
100
+ console.log(styleText("dim", " params:"), request.params);
101
+ }
102
+ const delay = options.delay ?? response.delay ?? 0;
103
+ if (delay > 0) {
104
+ console.log(styleText("yellow", ` ↳ delaying response by ${delay}ms`));
105
+ }
106
+ setTimeout(async () => {
107
+ if (socket.destroyed)
108
+ return;
109
+ const errorRate = options.errorRate ?? response.errorRate ?? 0;
110
+ const shouldError = Math.random() < errorRate;
111
+ if (!isAdmin) {
112
+ logEntry = {
113
+ id: crypto.randomUUID(),
114
+ method: request.method,
115
+ path: request.path,
116
+ timestamp: start,
117
+ headers: request.headers,
118
+ body: request.body.toString("utf-8"),
119
+ status: shouldError ? 500 : response.status,
120
+ duration: Date.now() - start,
121
+ responseBody: shouldError ? { error: "Artificial failure hit!" } : response.body,
122
+ };
123
+ requestHistory.push(logEntry);
124
+ if (requestHistory.length > 100)
125
+ requestHistory.shift();
126
+ broadcast(wsClients, logEntry);
127
+ console.log(styleText("magenta", ` ↳ broadcasted with ${logEntry.duration}ms latency`));
128
+ }
129
+ if (shouldError) {
130
+ console.log(styleText("red", " ↳ Artificial failure hit!"));
131
+ sendResponse(socket, 500, "Internal Server Error", {
132
+ error: "Artificial failure hit!",
133
+ });
134
+ return;
135
+ }
136
+ sendResponse(socket, response.status, response.message, response.body, response.headers);
137
+ }, delay);
128
138
  requestBuffer = Buffer.alloc(0);
129
139
  }
130
140
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jamesmddoyle/phantom",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "API mocker and traffic inspector with a built-in dashboard.",
5
5
  "author": "James Doyle",
6
6
  "license": "MIT",
@@ -1 +1 @@
1
- {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../static.ts"],"names":[],"mappings":"AAgBA,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM;;;;;UAuBzD"}
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../static.ts"],"names":[],"mappings":"AAgBA,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM;;;;;UA6CzD"}
package/dist/static.js CHANGED
@@ -12,28 +12,45 @@ const MIME_TYPES = {
12
12
  };
13
13
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
14
14
  export async function handleStaticFile(requestPath) {
15
- let cleanPath = requestPath.split("?")[0] || "/";
16
- if (cleanPath === "/")
15
+ const isDashboardBase = requestPath.startsWith("/_dashboard");
16
+ const isAppAsset = requestPath.startsWith("/_app");
17
+ const isPhantomSVG = requestPath === "/phantom.svg";
18
+ if (!isDashboardBase && !isAppAsset && !isPhantomSVG)
19
+ return null;
20
+ let cleanPath = requestPath;
21
+ if (isDashboardBase) {
22
+ cleanPath = requestPath.replace("/_dashboard", "");
23
+ }
24
+ if (cleanPath === "" || cleanPath === "/")
17
25
  cleanPath = "/index.html";
18
- const buildDir = path.join(__dirname, "dashboard-ui");
19
- let filePath = path.join(buildDir, cleanPath);
20
- try {
21
- const content = await fs.readFile(filePath);
22
- const ext = path.extname(filePath);
23
- return {
24
- body: content,
25
- headers: { "Content-Type": MIME_TYPES[ext] || "application/octet-stream" },
26
- };
26
+ // check production path first, then development path
27
+ const paths = [path.join(__dirname, "dashboard-ui", cleanPath), path.join(__dirname, "../dashboard/build", cleanPath)];
28
+ for (const filePath of paths) {
29
+ try {
30
+ const content = await fs.readFile(filePath);
31
+ const ext = path.extname(filePath);
32
+ return {
33
+ body: content,
34
+ headers: {
35
+ "Content-Type": MIME_TYPES[ext] || "application/octet-stream",
36
+ },
37
+ };
38
+ }
39
+ catch {
40
+ continue;
41
+ }
27
42
  }
28
- catch {
29
- // SPA fallback, if file not found, try index.html
43
+ // SPA fallback for /_dashboard sub-routes
44
+ const fallbackPaths = [path.join(__dirname, "dashboard-ui", "index.html"), path.join(__dirname, "../dashboard/build", "index.html")];
45
+ for (const fallback of fallbackPaths) {
30
46
  try {
31
- const indexContent = await fs.readFile(path.join(buildDir, "index.html"));
47
+ const indexContent = await fs.readFile(fallback);
32
48
  return { body: indexContent, headers: { "Content-Type": "text/html" } };
33
49
  }
34
50
  catch {
35
- return null;
51
+ continue;
36
52
  }
37
53
  }
54
+ return null;
38
55
  }
39
56
  //# sourceMappingURL=static.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"static.js","sourceRoot":"","sources":["../static.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAA2B;IACzC,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,wBAAwB;IAC/B,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IACxD,IAAI,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACjD,IAAI,SAAS,KAAK,GAAG;QAAE,SAAS,GAAG,aAAa,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtD,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B,EAAE;SAC3E,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;QAClD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;YAC1E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../static.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAA2B;IACzC,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,wBAAwB;IAC/B,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IACxD,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,WAAW,KAAK,cAAc,CAAC;IAEpD,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAElE,IAAI,SAAS,GAAG,WAAW,CAAC;IAC5B,IAAI,eAAe,EAAE,CAAC;QACpB,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,GAAG;QAAE,SAAS,GAAG,aAAa,CAAC;IAErE,qDAAqD;IACrD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvH,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B;iBAC9D;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC;IAErI,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jamesmddoyle/phantom",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "API mocker and traffic inspector with a built-in dashboard.",
5
5
  "author": "James Doyle",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- import{bp as be,ad as A,g as U,R as T,ac as ee,bq as dt}from"./Bj1t19nj.js";import{o as je}from"./DHt6uv_5.js";class ke{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Se{constructor(t,n){this.status=t,this.location=n}}class Ee extends Error{constructor(t,n,a){super(a),this.status=t,this.text=n}}new URL("sveltekit-internal://");function ht(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function pt(e){return e.split("%25").map(decodeURI).join("%25")}function gt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function de({href:e}){return e.split("#")[0]}function _t(...e){let t=5381;for(const n of e)if(typeof n=="string"){let a=n.length;for(;a;)t=t*33^n.charCodeAt(--a)}else if(ArrayBuffer.isView(n)){const a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=a.length;for(;r;)t=t*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function mt(e){const t=atob(e),n=new Uint8Array(t.length);for(let a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return n}const vt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&F.delete(Re(e)),vt(e,t));const F=new Map;function wt(e,t){const n=Re(e,t),a=document.querySelector(n);if(a?.textContent){a.remove();let{body:r,...i}=JSON.parse(a.textContent);const o=a.getAttribute("data-ttl");return o&&F.set(n,{body:r,init:i,ttl:1e3*Number(o)}),a.getAttribute("data-b64")!==null&&(r=mt(r)),Promise.resolve(new Response(r,i))}return window.fetch(e,t)}function yt(e,t,n){if(F.size>0){const a=Re(e,n),r=F.get(a);if(r){if(performance.now()<r.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(r.body,r.init);F.delete(a)}}return window.fetch(t,n)}function Re(e,t){let a=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const r=[];t.headers&&r.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&r.push(t.body),a+=`[data-hash="${_t(...r)}"]`}return a}const bt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function kt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Et(e).map(a=>{const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return t.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const o=a.split(/\[(.+?)\](?!\])/);return"/"+o.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return he(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return he(String.fromCharCode(...l.slice(2).split("-").map(m=>parseInt(m,16))));const f=bt.exec(l),[,h,v,u,p]=f;return t.push({name:u,matcher:p,optional:!!h,rest:!!v,chained:v?c===1&&o[0]==="":!1}),v?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return he(l)}).join("")}).join("")}/?$`),params:t}}function St(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Et(e){return e.slice(1).split("/").filter(St)}function Rt(e,t,n){const a={},r=e.slice(1),i=r.filter(s=>s!==void 0);let o=0;for(let s=0;s<t.length;s+=1){const l=t[s];let c=r[s-o];if(l.chained&&l.rest&&o&&(c=r.slice(s-o,s+1).filter(f=>f).join("/"),o=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){a[l.name]=c;const f=t[s+1],h=r[s+1];f&&!f.rest&&f.optional&&h&&l.chained&&(o=0),!f&&!h&&Object.keys(a).length===i.length&&(o=0);continue}if(l.optional&&l.chained){o++;continue}return}if(!o)return a}function he(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function xt({nodes:e,server_loads:t,dictionary:n,matchers:a}){const r=new Set(t);return Object.entries(n).map(([s,[l,c,f]])=>{const{pattern:h,params:v}=kt(s),u={id:s,exec:p=>{const m=h.exec(p);if(m)return Rt(m,v,a)},errors:[1,...f||[]].map(p=>e[p]),layouts:[0,...c||[]].map(o),leaf:i(l)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function i(s){const l=s<0;return l&&(s=~s),[l,e[s]]}function o(s){return s===void 0?s:[r.has(s),e[s]]}}function Fe(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Ne(e,t,n=JSON.stringify){const a=n(t);try{sessionStorage[e]=a}catch{}}const x=globalThis.__sveltekit_6gv8fy?.base??"",Lt=globalThis.__sveltekit_6gv8fy?.assets??x??"",At="1772475994684",Ge="sveltekit:snapshot",We="sveltekit:scroll",Ye="sveltekit:states",Ut="sveltekit:pageurl",B="sveltekit:history",W="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},xe=location.origin;function ze(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function q(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const qe={...j,"":j.hover};function He(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Je(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=He(e)}}function _e(e,t,n){let a;try{if(a=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&a.hash.match(/^#[^/]/)){const s=location.hash.split("#")[1]||"/";a.hash=`#${s}${a.hash}`}}catch{}const r=e instanceof SVGAElement?e.target.baseVal:e.target,i=!a||!!r||ce(a,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=a?.origin===xe&&e.hasAttribute("download");return{url:a,external:i,target:r,download:o}}function te(e){let t=null,n=null,a=null,r=null,i=null,o=null,s=e;for(;s&&s!==document.documentElement;)a===null&&(a=V(s,"preload-code")),r===null&&(r=V(s,"preload-data")),t===null&&(t=V(s,"keepfocus")),n===null&&(n=V(s,"noscroll")),i===null&&(i=V(s,"reload")),o===null&&(o=V(s,"replacestate")),s=He(s);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:qe[a??"off"],preload_data:qe[r??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(o)}}function De(e){const t=be(e);let n=!0;function a(){n=!0,t.update(o=>o)}function r(o){n=!1,t.set(o)}function i(o){let s;return t.subscribe(l=>{(s===void 0||n&&l!==s)&&o(s=l)})}return{notify:a,set:r,subscribe:i}}const Xe={v:()=>{}};function Tt(){const{set:e,subscribe:t}=be(!1);let n;async function a(){clearTimeout(n);try{const r=await fetch(`${Lt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const o=(await r.json()).version!==At;return o&&(e(!0),Xe.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:a}}function ce(e,t,n){return e.origin!==xe||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function rn(e){}const Qe=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...Qe];const It=new Set([...Qe]);[...It];function Ot(e){return e.filter(t=>t!=null)}function Le(e){return e instanceof ke||e instanceof Ee?e.status:500}function Pt(e){return e instanceof Ee?e.text:"Internal Error"}let k,Y,pe;const $t=je.toString().includes("$$")||/function \w+\(\) \{\}/.test(je.toString());$t?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},Y={current:null},pe={current:!1}):(k=new class{#e=A({});get data(){return U(this.#e)}set data(t){T(this.#e,t)}#t=A(null);get form(){return U(this.#t)}set form(t){T(this.#t,t)}#n=A(null);get error(){return U(this.#n)}set error(t){T(this.#n,t)}#a=A({});get params(){return U(this.#a)}set params(t){T(this.#a,t)}#r=A({id:null});get route(){return U(this.#r)}set route(t){T(this.#r,t)}#o=A({});get state(){return U(this.#o)}set state(t){T(this.#o,t)}#s=A(-1);get status(){return U(this.#s)}set status(t){T(this.#s,t)}#i=A(new URL("https://example.com"));get url(){return U(this.#i)}set url(t){T(this.#i,t)}},Y=new class{#e=A(null);get current(){return U(this.#e)}set current(t){T(this.#e,t)}},pe=new class{#e=A(!1);get current(){return U(this.#e)}set current(t){T(this.#e,t)}},Xe.v=()=>pe.current=!0);function Ct(e){Object.assign(k,e)}const jt=new Set(["icon","shortcut icon","apple-touch-icon"]),C=Fe(We)??{},z=Fe(Ge)??{},$={url:De({}),page:De({}),navigating:be(null),updated:Tt()};function Ae(e){C[e]=q()}function Nt(e,t){let n=e+1;for(;C[n];)delete C[n],n+=1;for(n=t+1;z[n];)delete z[n],n+=1}function H(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function Ze(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function Ve(){}let Ue,me,ne,I,ve,y;const ae=[],re=[];let L=null;function we(){L?.fork?.then(e=>e?.discard()),L=null}const Z=new Map,et=new Set,qt=new Set,G=new Set;let _={branch:[],error:null,url:null},tt=!1,oe=!1,Be=!0,J=!1,M=!1,nt=!1,Te=!1,at,w,R,N;const se=new Set,Ke=new Map;async function cn(e,t,n){globalThis.__sveltekit_6gv8fy?.data&&globalThis.__sveltekit_6gv8fy.data,document.URL!==location.href&&(location.href=location.href),y=e,await e.hooks.init?.(),Ue=xt(e),I=document.documentElement,ve=t,me=e.nodes[0],ne=e.nodes[1],me(),ne(),w=history.state?.[B],R=history.state?.[W],w||(w=R=Date.now(),history.replaceState({...history.state,[B]:w,[W]:R},""));const a=C[w];function r(){a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y))}n?(r(),await Qt(ve,n)):(await K({type:"enter",url:ze(y.hash?tn(new URL(location.href)):location.href),replace_state:!0}),r()),Xt()}function Dt(){ae.length=0,Te=!1}function rt(e){re.some(t=>t?.snapshot)&&(z[e]=re.map(t=>t?.snapshot?.capture()))}function ot(e){z[e]?.forEach((t,n)=>{re[n]?.snapshot?.restore(t)})}function Me(){Ae(w),Ne(We,C),rt(R),Ne(Ge,z)}async function Vt(e,t,n,a){let r;t.invalidateAll&&we(),await K({type:"goto",url:ze(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:a,accept:()=>{t.invalidateAll&&(Te=!0,r=[...Ke.keys()]),t.invalidate&&t.invalidate.forEach(Jt)}}),t.invalidateAll&&ee().then(ee).then(()=>{Ke.forEach(({resource:i},o)=>{r?.includes(o)&&i.refresh?.()})})}async function Bt(e){if(e.id!==L?.id){we();const t={};se.add(t),L={id:e.id,token:t,promise:it({...e,preload:t}).then(n=>(se.delete(t),n.type==="loaded"&&n.state.error&&we(),n)),fork:null}}return L.promise}async function ge(e){const t=(await ue(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function st(e,t,n){_=e.state;const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(k,e.props.page),at=new y.root({target:t,props:{...e.props,stores:$,components:re},hydrate:n,sync:!1}),await Promise.resolve(),ot(R),n){const r={from:null,to:{params:_.params,route:{id:_.route?.id??null},url:new URL(location.href),scroll:C[w]??q()},willUnload:!1,type:"enter",complete:Promise.resolve()};G.forEach(i=>i(r))}oe=!0}function ie({url:e,params:t,branch:n,status:a,error:r,route:i,form:o}){let s="never";if(x&&(e.pathname===x||e.pathname===x+"/"))s="always";else for(const u of n)u?.slash!==void 0&&(s=u.slash);e.pathname=ht(e.pathname,s),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:r,route:i},props:{constructors:Ot(n).map(u=>u.node.component),page:Ce(k)}};o!==void 0&&(l.props.form=o);let c={},f=!k,h=0;for(let u=0;u<Math.max(n.length,_.branch.length);u+=1){const p=n[u],m=_.branch[u];p?.data!==m?.data&&(f=!0),p&&(c={...c,...p.data},f&&(l.props[`data_${h}`]=c),h+=1)}return(!_.url||e.href!==_.url.href||_.error!==r||o!==void 0&&o!==k.form||f)&&(l.props.page={error:r,params:t,route:{id:i?.id??null},state:{},status:a,url:new URL(e),form:o??null,data:f?c:k.data}),l}async function Ie({loader:e,parent:t,url:n,params:a,route:r,server_data_node:i}){let o=null;const s={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();return{node:l,loader:e,server:i,universal:l.universal?.load?{type:"data",data:o,uses:s}:null,data:o??i?.data??null,slash:l.universal?.trailingSlash??i?.slash}}function Kt(e,t,n){let a=e instanceof Request?e.url:e;const r=new URL(a,n);r.origin===n.origin&&(a=r.href.slice(n.origin.length));const i=oe?yt(a,r.href,t):wt(a,t);return{resolved:r,promise:i}}function Mt(e,t,n,a,r,i){if(Te)return!0;if(!r)return!1;if(r.parent&&e||r.route&&t||r.url&&n)return!0;for(const o of r.search_params)if(a.has(o))return!0;for(const o of r.params)if(i[o]!==_.params[o])return!0;for(const o of r.dependencies)if(ae.some(s=>s(new URL(o))))return!0;return!1}function Oe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Ft(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const a of n){const r=e.searchParams.getAll(a),i=t.searchParams.getAll(a);r.every(o=>i.includes(o))&&i.every(o=>r.includes(o))&&n.delete(a)}return n}function Gt({error:e,url:t,route:n,params:a}){return{type:"loaded",state:{error:e,url:t,route:n,params:a,branch:[]},props:{page:Ce(k),constructors:[]}}}async function it({id:e,invalidating:t,url:n,params:a,route:r,preload:i}){if(L?.id===e)return se.delete(L.token),L.promise;const{errors:o,layouts:s,leaf:l}=r,c=[...s,l];o.forEach(g=>g?.().catch(()=>{})),c.forEach(g=>g?.[1]().catch(()=>{}));const f=_.url?e!==le(_.url):!1,h=_.route?r.id!==_.route.id:!1,v=Ft(_.url,n);let u=!1;const p=c.map(async(g,d)=>{if(!g)return;const S=_.branch[d];return g[1]===S?.loader&&!Mt(u,h,f,v,S.universal?.uses,a)?S:(u=!0,Ie({loader:g[1],url:n,params:a,route:r,parent:async()=>{const O={};for(let P=0;P<d;P+=1)Object.assign(O,(await p[P])?.data);return O},server_data_node:Oe(g[0]?{type:"skip"}:null,g[0]?S?.server:void 0)}))});for(const g of p)g.catch(()=>{});const m=[];for(let g=0;g<c.length;g+=1)if(c[g])try{m.push(await p[g])}catch(d){if(d instanceof Se)return{type:"redirect",location:d.location};if(se.has(i))return Gt({error:await X(d,{params:a,url:n,route:{id:r.id}}),url:n,params:a,route:r});let S=Le(d),E;if(d instanceof ke)E=d.body;else{if(await $.updated.check())return await Ze(),await H(n);E=await X(d,{params:a,url:n,route:{id:r.id}})}const O=await Wt(g,m,o);return O?ie({url:n,params:a,branch:m.slice(0,O.idx).concat(O.node),status:S,error:E,route:r}):await ct(n,{id:r.id},E,S)}else m.push(void 0);return ie({url:n,params:a,branch:m,status:200,error:null,route:r,form:t?void 0:null})}async function Wt(e,t,n){for(;e--;)if(n[e]){let a=e;for(;!t[a];)a-=1;try{return{idx:a+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Pe({status:e,error:t,url:n,route:a}){const r={};let i=null;try{const o=await Ie({loader:me,url:n,params:r,route:a,parent:()=>Promise.resolve({}),server_data_node:Oe(i)}),s={node:await ne(),loader:ne,universal:null,server:null,data:null};return ie({url:n,params:r,branch:[o,s],status:e,error:t,route:null})}catch(o){if(o instanceof Se)return Vt(new URL(o.location,location.href),{},0);throw o}}async function Yt(e){const t=e.href;if(Z.has(t))return Z.get(t);let n;try{const a=(async()=>{let r=await y.hooks.reroute({url:new URL(e),fetch:async(i,o)=>Kt(i,o,e).promise})??e;if(typeof r=="string"){const i=new URL(e);y.hash?i.hash=r:i.pathname=r,r=i}return r})();Z.set(t,a),n=await a}catch{Z.delete(t);return}return n}async function ue(e,t){if(e&&!ce(e,x,y.hash)){const n=await Yt(e);if(!n)return;const a=zt(n);for(const r of Ue){const i=r.exec(a);if(i)return{id:le(e),invalidating:t,route:r,params:gt(i),url:e}}}}function zt(e){return pt(y.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function le(e){return(y.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function lt({url:e,type:t,intent:n,delta:a,event:r,scroll:i}){let o=!1;const s=$e(_,n,e,t,i??null);a!==void 0&&(s.navigation.delta=a),r!==void 0&&(s.navigation.event=r);const l={...s.navigation,cancel:()=>{o=!0,s.reject(new Error("navigation cancelled"))}};return J||et.forEach(c=>c(l)),o?null:s}async function K({type:e,url:t,popped:n,keepfocus:a,noscroll:r,replace_state:i,state:o={},redirect_count:s=0,nav_token:l={},accept:c=Ve,block:f=Ve,event:h}){const v=N;N=l;const u=await ue(t,!1),p=e==="enter"?$e(_,u,t,e):lt({url:t,type:e,delta:n?.delta,intent:u,scroll:n?.scroll,event:h});if(!p){f(),N===l&&(N=v);return}const m=w,g=R;c(),J=!0,oe&&p.navigation.type!=="enter"&&$.navigating.set(Y.current=p.navigation);let d=u&&await it(u);if(!d){if(ce(t,x,y.hash))return await H(t,i);d=await ct(t,{id:null},await X(new Ee(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=u?.url||t,N!==l)return p.reject(new Error("navigation aborted")),!1;if(d.type==="redirect"){if(s<20){await K({type:e,url:new URL(d.location,t),popped:n,keepfocus:a,noscroll:r,replace_state:i,state:o,redirect_count:s+1,nav_token:l}),p.fulfil(void 0);return}d=await Pe({status:500,error:await X(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else d.props.page.status>=400&&await $.updated.check()&&(await Ze(),await H(t,i));if(Dt(),Ae(m),rt(g),d.props.page.url.pathname!==t.pathname&&(t.pathname=d.props.page.url.pathname),o=n?n.state:o,!n){const b=i?0:1,Q={[B]:w+=b,[W]:R+=b,[Ye]:o};(i?history.replaceState:history.pushState).call(history,Q,"",t),i||Nt(w,R)}const S=u&&L?.id===u.id?L.fork:null;L=null,d.props.page.state=o;let E;if(oe){const b=(await Promise.all(Array.from(qt,D=>D(p.navigation)))).filter(D=>typeof D=="function");if(b.length>0){let D=function(){b.forEach(fe=>{G.delete(fe)})};b.push(D),b.forEach(fe=>{G.add(fe)})}_=d.state,d.props.page&&(d.props.page.url=t);const Q=S&&await S;Q?E=Q.commit():(at.$set(d.props),Ct(d.props.page),E=dt?.()),nt=!0}else await st(d,ve,!1);const{activeElement:O}=document;await E,await ee(),await ee();let P=null;if(Be){const b=n?n.scroll:r?q():null;b?scrollTo(b.x,b.y):(P=t.hash&&document.getElementById(ut(t)))?P.scrollIntoView():scrollTo(0,0)}const ft=document.activeElement!==O&&document.activeElement!==document.body;!a&&!ft&&en(t,!P),Be=!0,d.props.page&&Object.assign(k,d.props.page),J=!1,e==="popstate"&&ot(R),p.fulfil(void 0),p.navigation.to&&(p.navigation.to.scroll=q()),G.forEach(b=>b(p.navigation)),$.navigating.set(Y.current=null)}async function ct(e,t,n,a,r){return e.origin===xe&&e.pathname===location.pathname&&!tt?await Pe({status:a,error:n,url:e,route:t}):await H(e,r)}function Ht(){let e,t={element:void 0,href:void 0},n;I.addEventListener("mousemove",s=>{const l=s.target;clearTimeout(e),e=setTimeout(()=>{i(l,j.hover)},20)});function a(s){s.defaultPrevented||i(s.composedPath()[0],j.tap)}I.addEventListener("mousedown",a),I.addEventListener("touchstart",a,{passive:!0});const r=new IntersectionObserver(s=>{for(const l of s)l.isIntersecting&&(ge(new URL(l.target.href)),r.unobserve(l.target))},{threshold:0});async function i(s,l){const c=Je(s,I),f=c===t.element&&c?.href===t.href&&l>=n;if(!c||f)return;const{url:h,external:v,download:u}=_e(c,x,y.hash);if(v||u)return;const p=te(c),m=h&&le(_.url)===le(h);if(!(p.reload||m))if(l<=p.preload_data){t={element:c,href:c.href},n=j.tap;const g=await ue(h,!1);if(!g)return;Bt(g)}else l<=p.preload_code&&(t={element:c,href:c.href},n=l,ge(h))}function o(){r.disconnect();for(const s of I.querySelectorAll("a")){const{url:l,external:c,download:f}=_e(s,x,y.hash);if(c||f)continue;const h=te(s);h.reload||(h.preload_code===j.viewport&&r.observe(s),h.preload_code===j.eager&&ge(l))}}G.add(o),o()}function X(e,t){if(e instanceof ke)return e.body;const n=Le(e),a=Pt(e);return y.hooks.handleError({error:e,event:t,status:n,message:a})??{message:a}}function Jt(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function Xt(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(Me(),!J){const a=$e(_,void 0,null,"leave"),r={...a.navigation,cancel:()=>{n=!0,a.reject(new Error("navigation cancelled"))}};et.forEach(i=>i(r))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Me()}),navigator.connection?.saveData||Ht(),I.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Je(t.composedPath()[0],I);if(!n)return;const{url:a,external:r,target:i,download:o}=_e(n,x,y.hash);if(!a)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const s=te(n);if(!(n instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||o)return;const[c,f]=(y.hash?a.hash.replace(/^#/,""):a.href).split("#"),h=c===de(location);if(r||s.reload&&(!h||!f)){lt({url:a,type:"link",event:t})?J=!0:t.preventDefault();return}if(f!==void 0&&h){const[,v]=_.url.href.split("#");if(v===f){if(t.preventDefault(),f===""||f==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=n.ownerDocument.getElementById(decodeURIComponent(f));u&&(u.scrollIntoView(),u.focus())}return}if(M=!0,Ae(w),e(a),!s.replace_state)return;M=!1}t.preventDefault(),await new Promise(v=>{requestAnimationFrame(()=>{setTimeout(v,0)}),setTimeout(v,100)}),await K({type:"link",url:a,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??a.href===location.href,event:t})}),I.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),a=t.submitter;if((a?.formTarget||n.target)==="_blank"||(a?.formMethod||n.method)!=="get")return;const o=new URL(a?.hasAttribute("formaction")&&a?.formAction||n.action);if(ce(o,x,!1))return;const s=t.target,l=te(s);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(s,a);o.search=new URLSearchParams(c).toString(),K({type:"form",url:o,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!ye){if(t.state?.[B]){const n=t.state[B];if(N={},n===w)return;const a=C[n],r=t.state[Ye]??{},i=new URL(t.state[Ut]??location.href),o=t.state[W],s=_.url?de(location)===de(_.url):!1;if(o===R&&(nt||s)){r!==k.state&&(k.state=r),e(i),C[w]=q(),a&&scrollTo(a.x,a.y),w=n;return}const c=n-w;await K({type:"popstate",url:i,popped:{state:r,scroll:a,delta:c},accept:()=>{w=n,R=o},block:()=>{history.go(-c)},nav_token:N,event:t})}else if(!M){const n=new URL(location.href);e(n),y.hash&&location.reload()}}}),addEventListener("hashchange",()=>{M&&(M=!1,history.replaceState({...history.state,[B]:++w,[W]:R},"",location.href))});for(const t of document.querySelectorAll("link"))jt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(Y.current=null)});function e(t){_.url=k.url=t,$.page.set(Ce(k)),$.page.notify()}}async function Qt(e,{status:t=200,error:n,node_ids:a,params:r,route:i,server_route:o,data:s,form:l}){tt=!0;const c=new URL(location.href);let f;({params:r={},route:i={id:null}}=await ue(c,!1)||{}),f=Ue.find(({id:u})=>u===i.id);let h,v=!0;try{const u=a.map(async(m,g)=>{const d=s[g];return d?.uses&&(d.uses=Zt(d.uses)),Ie({loader:y.nodes[m],url:c,params:r,route:i,parent:async()=>{const S={};for(let E=0;E<g;E+=1)Object.assign(S,(await u[E]).data);return S},server_data_node:Oe(d)})}),p=await Promise.all(u);if(f){const m=f.layouts;for(let g=0;g<m.length;g++)m[g]||p.splice(g,0,void 0)}h=ie({url:c,params:r,branch:p,status:t,error:n,form:l,route:f??null})}catch(u){if(u instanceof Se){await H(new URL(u.location,location.href));return}h=await Pe({status:Le(u),error:await X(u,{url:c,params:r,route:i}),url:c,route:i}),e.textContent="",v=!1}h.props.page&&(h.props.page.state={}),await st(h,e,v)}function Zt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let ye=!1;function en(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const a=ut(e);if(a&&document.getElementById(a)){const{x:i,y:o}=q();setTimeout(()=>{const s=history.state;ye=!0,location.replace(new URL(`#${a}`,location.href)),history.replaceState(s,"",e),t&&scrollTo(i,o),ye=!1})}else{const i=document.body,o=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),o!==null?i.setAttribute("tabindex",o):i.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const i=[];for(let o=0;o<r.rangeCount;o+=1)i.push(r.getRangeAt(o));setTimeout(()=>{if(r.rangeCount===i.length){for(let o=0;o<r.rangeCount;o+=1){const s=i[o],l=r.getRangeAt(o);if(s.commonAncestorContainer!==l.commonAncestorContainer||s.startContainer!==l.startContainer||s.endContainer!==l.endContainer||s.startOffset!==l.startOffset||s.endOffset!==l.endOffset)return}r.removeAllRanges()}})}}}function $e(e,t,n,a,r=null){let i,o;const s=new Promise((c,f)=>{i=c,o=f});return s.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:q()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:r},willUnload:!t,type:a,complete:s},fulfil:i,reject:o}}function Ce(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function tn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function ut(e){let t;if(y.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{cn as a,rn as l,k as p,$ as s};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/T8p1hvv1.js";export{o as load_css,r as start};