claude-mux 0.9.2 → 0.9.4
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.
- package/dist/commands/service.d.ts.map +1 -1
- package/dist/commands/service.js +30 -19
- package/dist/commands/service.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +23 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/utils/version.d.ts +1 -1
- package/dist/utils/version.js +1 -1
- package/dist/web/client/_app/immutable/chunks/0aSLiJ5c.js +3 -0
- package/dist/web/client/_app/immutable/chunks/{BB9TuzmK.js → D-34IVnr.js} +1 -1
- package/{web/.svelte-kit/output/client/_app/immutable/chunks/BU5h8NYO.js → dist/web/client/_app/immutable/chunks/DTyl4EVg.js} +1 -1
- package/{web/.svelte-kit/output/client/_app/immutable/chunks/DHeexKFx.js → dist/web/client/_app/immutable/chunks/pkYTw7Ge.js} +1 -1
- package/dist/web/client/_app/immutable/entry/{app.B24VM-EE.js → app.B5KQK7RI.js} +2 -2
- package/dist/web/client/_app/immutable/entry/start.C0ocDcXk.js +1 -0
- package/dist/web/client/_app/immutable/nodes/{0.BWJ-EEUf.js → 0.D9NtpoCP.js} +1 -1
- package/dist/web/client/_app/immutable/nodes/{1.DILU-70h.js → 1.oevNjH1i.js} +1 -1
- package/dist/web/client/_app/immutable/nodes/{2.ClTKvGQu.js → 2.8u-solqb.js} +1 -1
- package/dist/web/client/_app/immutable/nodes/{3.BqgdxZ4J.js → 3.CtE6Zacp.js} +1 -1
- package/dist/web/client/_app/version.json +1 -1
- package/dist/web/server/chunks/{0-CWPTrtx7.js → 0-lm2SXXXL.js} +6 -6
- package/dist/web/server/chunks/{0-CWPTrtx7.js.map → 0-lm2SXXXL.js.map} +1 -1
- package/dist/web/server/chunks/{1-BvD2TuDo.js → 1-DL620-sU.js} +3 -3
- package/dist/web/server/chunks/{1-BvD2TuDo.js.map → 1-DL620-sU.js.map} +1 -1
- package/dist/web/server/chunks/{2-dcOGLSIi.js → 2-ChlJ4D7y.js} +5 -5
- package/dist/web/server/chunks/{2-dcOGLSIi.js.map → 2-ChlJ4D7y.js.map} +1 -1
- package/dist/web/server/chunks/{3-OuXGZ-UL.js → 3-NLTGD1Yq.js} +5 -5
- package/dist/web/server/chunks/{3-OuXGZ-UL.js.map → 3-NLTGD1Yq.js.map} +1 -1
- package/dist/web/server/index.js +1 -1
- package/dist/web/server/index.js.map +1 -1
- package/dist/web/server/manifest.js +9 -9
- package/dist/web/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/service.ts +26 -16
- package/src/commands/update.ts +22 -1
- package/src/utils/version.ts +1 -1
- package/web/.svelte-kit/adapter-bun/chunks/internal.js +1 -1
- package/web/.svelte-kit/adapter-bun/manifest-full.js +1 -1
- package/web/.svelte-kit/adapter-bun/manifest.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/0.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/1.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/2.js +1 -1
- package/web/.svelte-kit/adapter-bun/nodes/3.js +1 -1
- package/web/.svelte-kit/generated/server/internal.js +1 -1
- package/web/.svelte-kit/output/client/.vite/manifest.json +49 -49
- package/web/.svelte-kit/output/client/_app/immutable/chunks/0aSLiJ5c.js +3 -0
- package/web/.svelte-kit/output/client/_app/immutable/chunks/{BB9TuzmK.js → D-34IVnr.js} +1 -1
- package/{dist/web/client/_app/immutable/chunks/BU5h8NYO.js → web/.svelte-kit/output/client/_app/immutable/chunks/DTyl4EVg.js} +1 -1
- package/{dist/web/client/_app/immutable/chunks/DHeexKFx.js → web/.svelte-kit/output/client/_app/immutable/chunks/pkYTw7Ge.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/entry/{app.B24VM-EE.js → app.B5KQK7RI.js} +2 -2
- package/web/.svelte-kit/output/client/_app/immutable/entry/start.C0ocDcXk.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{0.BWJ-EEUf.js → 0.D9NtpoCP.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{1.DILU-70h.js → 1.oevNjH1i.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{2.ClTKvGQu.js → 2.8u-solqb.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{3.BqgdxZ4J.js → 3.CtE6Zacp.js} +1 -1
- package/web/.svelte-kit/output/client/_app/version.json +1 -1
- package/web/.svelte-kit/output/server/chunks/internal.js +1 -1
- package/web/.svelte-kit/output/server/manifest-full.js +1 -1
- package/web/.svelte-kit/output/server/manifest.js +1 -1
- package/web/.svelte-kit/output/server/nodes/0.js +1 -1
- package/web/.svelte-kit/output/server/nodes/1.js +1 -1
- package/web/.svelte-kit/output/server/nodes/2.js +1 -1
- package/web/.svelte-kit/output/server/nodes/3.js +1 -1
- package/dist/web/client/_app/immutable/chunks/jAm107uH.js +0 -3
- package/dist/web/client/_app/immutable/entry/start.DcbBqC7C.js +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/chunks/jAm107uH.js +0 -3
- package/web/.svelte-kit/output/client/_app/immutable/entry/start.DcbBqC7C.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyKpC,wBAAgB,oBAAoB,IAAI,OAAO,CAgC9C"}
|
package/dist/commands/service.js
CHANGED
|
@@ -8,16 +8,24 @@ const SERVICE_NAME = "claude-mux.service";
|
|
|
8
8
|
const USER_UNIT_DIR = join(homedir(), ".config", "systemd", "user");
|
|
9
9
|
const UNIT_PATH = join(USER_UNIT_DIR, SERVICE_NAME);
|
|
10
10
|
function which(cmd) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
// Probe with a login shell so we pick up PATH additions from ~/.bashrc /
|
|
12
|
+
// ~/.profile (e.g. ~/.local/bin from Anthropic's claude installer, or nvm).
|
|
13
|
+
// The plain `command -v` runs with whatever PATH this process inherited,
|
|
14
|
+
// which under SSH non-login is far too minimal.
|
|
15
|
+
for (const args of [["bash", "-lc"], ["sh", "-lc"]]) {
|
|
16
|
+
try {
|
|
17
|
+
const out = execSync(`${args[0]} ${args[1]} ${JSON.stringify(`command -v ${cmd}`)}`, {
|
|
18
|
+
encoding: "utf-8",
|
|
19
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
20
|
+
}).trim();
|
|
21
|
+
if (out)
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
/* try next shell */
|
|
26
|
+
}
|
|
20
27
|
}
|
|
28
|
+
return null;
|
|
21
29
|
}
|
|
22
30
|
function hasSystemd() {
|
|
23
31
|
return which("systemctl") !== null;
|
|
@@ -28,17 +36,20 @@ function buildUnit(port, host) {
|
|
|
28
36
|
throw new Error("`claude-mux` not on PATH; install it first.");
|
|
29
37
|
}
|
|
30
38
|
// Build a PATH that systemd can use to find `bun` (runtime), `tmux`, and
|
|
31
|
-
// the agent binaries (`claude`, `gemini`, ...)
|
|
32
|
-
// claude-mux
|
|
33
|
-
|
|
34
|
-
const bunBin = which("bun");
|
|
35
|
-
const claudeBin = which("claude");
|
|
39
|
+
// the agent binaries (`claude`, `gemini`, ...). These live in varied places:
|
|
40
|
+
// npm prefix bin (claude-mux itself), nvm bin, ~/.bun/bin, and ~/.local/bin
|
|
41
|
+
// (Anthropic's native claude installer drops there).
|
|
36
42
|
const dirs = new Set();
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
dirs.add(dirname(claudeMuxBin));
|
|
44
|
+
for (const cmd of ["bun", "claude", "gemini", "copilot", "tmux"]) {
|
|
45
|
+
const p = which(cmd);
|
|
46
|
+
if (p)
|
|
47
|
+
dirs.add(dirname(p));
|
|
48
|
+
}
|
|
49
|
+
// ~/.local/bin is the XDG default for user binaries; include even if no
|
|
50
|
+
// probed agent currently lives there, since users often add binaries later.
|
|
51
|
+
if (process.env.HOME)
|
|
52
|
+
dirs.add(`${process.env.HOME}/.local/bin`);
|
|
42
53
|
for (const d of ["/usr/local/bin", "/usr/bin", "/bin"])
|
|
43
54
|
dirs.add(d);
|
|
44
55
|
const pathValue = Array.from(dirs).join(":");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACpE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAEpD,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8GpC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDlE;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAS7C"}
|
package/dist/commands/update.js
CHANGED
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { execSync, spawnSync } from "child_process";
|
|
3
3
|
import { setTimeout as delay } from "timers/promises";
|
|
4
|
+
import { existsSync } from "fs";
|
|
5
|
+
import { join } from "path";
|
|
6
|
+
import { homedir } from "os";
|
|
4
7
|
import { VERSION } from "../utils/version.js";
|
|
5
8
|
import { runSetup } from "../setup/index.js";
|
|
6
9
|
import { isPidAlive } from "../utils/pid.js";
|
|
7
10
|
import { DEFAULT_SERVER_PORT } from "../utils/paths.js";
|
|
11
|
+
const UNIT_PATH = join(homedir(), ".config", "systemd", "user", "claude-mux.service");
|
|
12
|
+
// SSH non-login shells often lack XDG_RUNTIME_DIR, which `systemctl --user`
|
|
13
|
+
// needs to reach the user manager. Set it ourselves when missing.
|
|
14
|
+
function ensureXdgRuntime() {
|
|
15
|
+
if (process.env.XDG_RUNTIME_DIR)
|
|
16
|
+
return;
|
|
17
|
+
const uid = typeof process.getuid === "function" ? process.getuid() : null;
|
|
18
|
+
if (uid !== null)
|
|
19
|
+
process.env.XDG_RUNTIME_DIR = `/run/user/${uid}`;
|
|
20
|
+
}
|
|
8
21
|
function getLatestVersion() {
|
|
9
22
|
try {
|
|
10
23
|
const out = execSync("npm view claude-mux version", {
|
|
@@ -19,12 +32,19 @@ function getLatestVersion() {
|
|
|
19
32
|
}
|
|
20
33
|
const SYSTEMD_UNIT = "claude-mux.service";
|
|
21
34
|
function isSystemdManaged() {
|
|
35
|
+
// Unit file present means `service install` was run on this host; that's
|
|
36
|
+
// the authoritative signal. is-active can return false negatives under
|
|
37
|
+
// SSH non-login where XDG_RUNTIME_DIR is unset.
|
|
38
|
+
if (existsSync(UNIT_PATH))
|
|
39
|
+
return true;
|
|
40
|
+
ensureXdgRuntime();
|
|
22
41
|
const r = spawnSync("systemctl", ["--user", "is-active", "--quiet", SYSTEMD_UNIT], {
|
|
23
42
|
stdio: ["pipe", "pipe", "pipe"],
|
|
24
43
|
});
|
|
25
44
|
return r.status === 0;
|
|
26
45
|
}
|
|
27
46
|
function systemctlUser(...args) {
|
|
47
|
+
ensureXdgRuntime();
|
|
28
48
|
const r = spawnSync("systemctl", ["--user", ...args], { stdio: "inherit" });
|
|
29
49
|
return r.status ?? 1;
|
|
30
50
|
}
|
|
@@ -70,9 +90,11 @@ async function stopProd(pid) {
|
|
|
70
90
|
}
|
|
71
91
|
function startProd() {
|
|
72
92
|
console.log(`Starting prod server on 127.0.0.1:${DEFAULT_SERVER_PORT}...`);
|
|
93
|
+
// POSIX-clean: with stdin/stdout/stderr redirected, `&` alone fully detaches.
|
|
94
|
+
// `disown` is bash-only and breaks under /bin/sh = dash (Debian/Ubuntu).
|
|
73
95
|
const result = spawnSync("sh", [
|
|
74
96
|
"-c",
|
|
75
|
-
`nohup claude-mux serve --port ${DEFAULT_SERVER_PORT} --host 127.0.0.1 > /tmp/claude-mux-prod.log 2>&1
|
|
97
|
+
`nohup claude-mux serve --port ${DEFAULT_SERVER_PORT} --host 127.0.0.1 < /dev/null > /tmp/claude-mux-prod.log 2>&1 &`,
|
|
76
98
|
], { stdio: "inherit" });
|
|
77
99
|
if (result.status !== 0) {
|
|
78
100
|
console.warn("Failed to relaunch prod server; start it manually.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/version.d.ts
CHANGED
package/dist/utils/version.js
CHANGED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{bB as Pe,aW as He,bn as P,am as j,bb as N,bt as ie,bi as It}from"./BIuG5Qqu.js";class me{constructor(t,r){this.status=t,typeof r=="string"?this.body={message:r}:r?this.body=r:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class je{constructor(t,r){try{new Headers({location:r})}catch{throw new Error(`Invalid redirect location ${JSON.stringify(r)}: this string contains characters that cannot be used in HTTP headers`)}this.status=t,this.location=r}}class Ne extends Error{constructor(t,r,n){super(n),this.status=t,this.text=r}}new URL("sveltekit-internal://");function Tt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function Ut(e){return e.split("%25").map(decodeURI).join("%25")}function Lt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function ke({href:e}){return e.split("#")[0]}function Pt(e,t,r,n=!1){const o=new URL(e);Object.defineProperty(o,"searchParams",{value:new Proxy(o.searchParams,{get(a,c){if(c==="get"||c==="getAll"||c==="has")return(l,...f)=>(r(l),a[c](l,...f));t();const s=Reflect.get(a,c);return typeof s=="function"?s.bind(a):s}}),enumerable:!0,configurable:!0});const i=["href","pathname","search","toString","toJSON"];n&&i.push("hash");for(const a of i)Object.defineProperty(o,a,{get(){return t(),e[a]},enumerable:!0,configurable:!0});return o}function C(){}function jt(...e){let t=5381;for(const r of e)if(typeof r=="string"){let n=r.length;for(;n;)t=t*33^r.charCodeAt(--n)}else if(ArrayBuffer.isView(r)){const n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);let o=n.length;for(;o;)t=t*33^n[--o]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;function Nt(e){const t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}const Ot=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&z.delete(Oe(e)),Ot(e,t));const z=new Map;function xt(e,t){const r=Oe(e,t),n=document.querySelector(r);if(n?.textContent){n.remove();let{body:o,...i}=JSON.parse(n.textContent);const a=n.getAttribute("data-ttl");return a&&z.set(r,{body:o,init:i,ttl:1e3*Number(a)}),n.getAttribute("data-b64")!==null&&(o=Nt(o)),Promise.resolve(new Response(o,i))}return window.fetch(e,t)}function Ct(e,t,r){if(z.size>0){const n=Oe(e,r),o=z.get(n);if(o){if(performance.now()<o.ttl&&["default","force-cache","only-if-cached",void 0].includes(r?.cache))return new Response(o.body,o.init);z.delete(n)}}return window.fetch(t,r)}function Oe(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const o=[];t.headers&&o.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&o.push(t.body),n+=`[data-hash="${jt(...o)}"]`}return n}const Dt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function $t(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Ft(e).map(n=>{const o=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(n);if(o)return t.push({name:o[1],matcher:o[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(n);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!n)return;const a=n.split(/\[(.+?)\](?!\])/);return"/"+a.map((s,l)=>{if(l%2){if(s.startsWith("x+"))return Ee(String.fromCharCode(parseInt(s.slice(2),16)));if(s.startsWith("u+"))return Ee(String.fromCharCode(...s.slice(2).split("-").map(_=>parseInt(_,16))));const f=Dt.exec(s),[,h,d,p,u]=f;return t.push({name:p,matcher:u,optional:!!h,rest:!!d,chained:d?l===1&&a[0]==="":!1}),d?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return Ee(s)}).join("")}).join("")}/?$`),params:t}}function Bt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Ft(e){return e.slice(1).split("/").filter(Bt)}function Mt(e,t,r){const n={},o=e.slice(1),i=o.filter(c=>c!==void 0);let a=0;for(let c=0;c<t.length;c+=1){const s=t[c];let l=o[c-a];if(s.chained&&s.rest&&a&&(l=o.slice(c-a,c+1).filter(f=>f).join("/"),a=0),l===void 0)if(s.rest)l="";else continue;if(!s.matcher||r[s.matcher](l)){n[s.name]=l;const f=t[c+1],h=o[c+1];f&&!f.rest&&f.optional&&h&&s.chained&&(a=0),!f&&!h&&Object.keys(n).length===i.length&&(a=0);continue}if(s.optional&&s.chained){a++;continue}return}if(!a)return n}function Ee(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function qt({nodes:e,server_loads:t,dictionary:r,matchers:n}){const o=new Set(t);return Object.entries(r).map(([c,[s,l,f]])=>{const{pattern:h,params:d}=$t(c),p={id:c,exec:u=>{const _=h.exec(u);if(_)return Mt(_,d,n)},errors:[1,...f||[]].map(u=>e[u]),layouts:[0,...l||[]].map(a),leaf:i(s)};return p.errors.length=p.layouts.length=Math.max(p.errors.length,p.layouts.length),p});function i(c){const s=c<0;return s&&(c=~c),[s,e[c]]}function a(c){return c===void 0?c:[o.has(c),e[c]]}}function rt(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Ge(e,t,r=JSON.stringify){const n=r(t);try{sessionStorage[e]=n}catch{}}const L=globalThis.__sveltekit_6f468j?.base??"",Vt=globalThis.__sveltekit_6f468j?.assets??L??"",Ht="1779191315572",nt="sveltekit:snapshot",at="sveltekit:scroll",ot="sveltekit:states",Gt="sveltekit:pageurl",H="sveltekit:history",ee="sveltekit:navigation",M={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ae=location.origin;function xe(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const r=document.getElementsByTagName("base");t=r.length?r[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 Ye={...M,"":M.hover};function st(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function it(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=st(e)}}function Re(e,t,r){let n;try{if(n=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),r&&n.hash.match(/^#[^/]/)){const c=location.hash.split("#")[1]||"/";n.hash=`#${c}${n.hash}`}}catch{}const o=e instanceof SVGAElement?e.target.baseVal:e.target,i=!n||!!o||ye(n,t,r)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),a=n?.origin===ae&&e.hasAttribute("download");return{url:n,external:i,target:o,download:a}}function ce(e){let t=null,r=null,n=null,o=null,i=null,a=null,c=e;for(;c&&c!==document.documentElement;)n===null&&(n=V(c,"preload-code")),o===null&&(o=V(c,"preload-data")),t===null&&(t=V(c,"keepfocus")),r===null&&(r=V(c,"noscroll")),i===null&&(i=V(c,"reload")),a===null&&(a=V(c,"replacestate")),c=st(c);function s(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Ye[n??"off"],preload_data:Ye[o??"off"],keepfocus:s(t),noscroll:s(r),reload:s(i),replace_state:s(a)}}function We(e){const t=Pe(e);let r=!0;function n(){r=!0,t.update(a=>a)}function o(a){r=!1,t.set(a)}function i(a){let c;return t.subscribe(s=>{(c===void 0||r&&s!==c)&&a(c=s)})}return{notify:n,set:o,subscribe:i}}const ct={v:C};function Yt(){const{set:e,subscribe:t}=Pe(!1);let r;async function n(){clearTimeout(r);try{const o=await fetch(`${Vt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!o.ok)return!1;const a=(await o.json()).version!==Ht;return a&&(e(!0),ct.v(),clearTimeout(r)),a}catch{return!1}}return{subscribe:t,check:n}}function ye(e,t,r){return e.origin!==ae||!e.pathname.startsWith(t)?!0:r?e.pathname!==location.pathname:!1}function Cr(e){}const Wt=-1,Jt=-2,Kt=-3,Xt=-4,zt=-5,Zt=-6,Qt=-7,lt=2**32-1,Ie=lt-1;function er(e){return!(!Number.isInteger(e)||e<0||e>Ie)}function tr(e){return!(!Number.isInteger(e)||e<0||e>lt)}function rr(e){return Uint8Array.fromBase64(e).buffer}function nr(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function ar(e){const t=atob(e),r=t.length,n=new Uint8Array(r);for(let o=0;o<r;o++)n[o]=t.charCodeAt(o);return n.buffer}const or=typeof Uint8Array.fromBase64=="function",sr=typeof process=="object"&&process.versions?.node!==void 0,ir=or?rr:sr?nr:ar;function cr(e,t){if(typeof e=="number")return i(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const r=e,n=Array(r.length);let o=null;function i(a,c=!1){if(a===Wt)return;if(a===Kt)return NaN;if(a===Xt)return 1/0;if(a===zt)return-1/0;if(a===Zt)return-0;if(c||typeof a!="number")throw new Error("Invalid input");if(a in n)return n[a];const s=r[a];if(!s||typeof s!="object")n[a]=s;else if(Array.isArray(s))if(typeof s[0]=="string"){const l=s[0],f=t&&Object.hasOwn(t,l)?t[l]:void 0;if(f){let h=s[1];if(typeof h!="number"&&(h=r.push(s[1])-1),o??=new Set,o.has(h))throw new Error("Invalid circular reference");return o.add(h),n[a]=f(i(h)),o.delete(h),n[a]}switch(l){case"Date":n[a]=new Date(s[1]);break;case"Set":const h=new Set;n[a]=h;for(let u=1;u<s.length;u+=1)h.add(i(s[u]));break;case"Map":const d=new Map;n[a]=d;for(let u=1;u<s.length;u+=2)d.set(i(s[u]),i(s[u+1]));break;case"RegExp":n[a]=new RegExp(s[1],s[2]);break;case"Object":{const u=s[1];if(typeof r[u]=="object"&&r[u][0]!=="BigInt")throw new Error("Invalid input");n[a]=Object(i(u));break}case"BigInt":n[a]=BigInt(s[1]);break;case"null":const p=Object.create(null);n[a]=p;for(let u=1;u<s.length;u+=2){if(s[u]==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");p[s[u]]=i(s[u+1])}break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Float16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":case"DataView":{if(r[s[1]][0]!=="ArrayBuffer")throw new Error("Invalid data");const u=globalThis[l],_=i(s[1]);n[a]=s[2]!==void 0?new u(_,s[2],s[3]):new u(_);break}case"ArrayBuffer":{const u=s[1];if(typeof u!="string")throw new Error("Invalid ArrayBuffer encoding");const _=ir(u);n[a]=_;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const u=l.slice(9);n[a]=Temporal[u].from(s[1]);break}case"URL":{const u=new URL(s[1]);n[a]=u;break}case"URLSearchParams":{const u=new URLSearchParams(s[1]);n[a]=u;break}default:throw new Error(`Unknown type ${l}`)}}else if(s[0]===Qt){const l=s[1];if(!tr(l))throw new Error("Invalid input");const f=[];n[a]=f,f[Ie]=void 0,delete f[Ie];for(let h=2;h<s.length;h+=2){const d=s[h];if(!er(d)||d>=l)throw new Error("Invalid input");f[d]=i(s[h+1])}f.length=l}else{const l=new Array(s.length);n[a]=l;for(let f=0;f<s.length;f+=1){const h=s[f];h!==Jt&&(l[f]=i(h))}}else{const l={};n[a]=l;for(const f of Object.keys(s)){if(f==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const h=s[f];l[f]=i(h)}}return n[a]}return i(0)}const ft=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...ft];const lr=new Set([...ft]);[...lr];function fr(e){return e.filter(t=>t!=null)}const ur="x-sveltekit-invalidated",dr="x-sveltekit-trailing-slash";function oe(e,t){return e+"/"+t}function le(e){return e instanceof me||e instanceof Ne?e.status:500}function hr(e){return e instanceof Ne?e.text:"Internal Error"}let I,te,Ae;const pr=He.toString().includes("$$")||/function \w+\(\) \{\}/.test(He.toString()),Je="a:";pr?(I={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Je)},te={current:null},Ae={current:!1}):(I=new class{#e=P({});get data(){return j(this.#e)}set data(t){N(this.#e,t)}#t=P(null);get form(){return j(this.#t)}set form(t){N(this.#t,t)}#r=P(null);get error(){return j(this.#r)}set error(t){N(this.#r,t)}#n=P({});get params(){return j(this.#n)}set params(t){N(this.#n,t)}#a=P({id:null});get route(){return j(this.#a)}set route(t){N(this.#a,t)}#o=P({});get state(){return j(this.#o)}set state(t){N(this.#o,t)}#s=P(-1);get status(){return j(this.#s)}set status(t){N(this.#s,t)}#i=P(new URL(Je));get url(){return j(this.#i)}set url(t){N(this.#i,t)}},te=new class{#e=P(null);get current(){return j(this.#e)}set current(t){N(this.#e,t)}},Ae=new class{#e=P(!1);get current(){return j(this.#e)}set current(t){N(this.#e,t)}},ct.v=()=>Ae.current=!0);function ut(e){Object.assign(I,e)}const _r="/__data.json",gr=".html__data.json";function mr(e){return e.endsWith(".html")?e.replace(/\.html$/,gr):e.replace(/\/$/,"")+_r}const Ke={spanContext(){return yr},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},yr={traceId:"",spanId:"",traceFlags:0};async function*wr(e){let t=!1,r="";const n=new TextDecoder;for(;;){let o=r.indexOf(`
|
|
2
|
+
`);for(;o!==-1;){const a=r.slice(0,o).trim();r=r.slice(o+1),a&&(yield JSON.parse(a)),o=r.indexOf(`
|
|
3
|
+
`)}if(t){const a=r.trim();a&&(yield JSON.parse(a));return}const i=await e.read();t=i.done,i.value&&(r+=n.decode(i.value,{stream:!0})),t&&(r+=n.decode())}}const vr=new Set(["icon","shortcut icon","apple-touch-icon"]);let K=null;const B=rt(at)??{},re=rt(nt)??{},$={url:We({}),page:We({}),navigating:Pe(null),updated:Yt()};function Ce(e){B[e]=q()}function br(e,t){let r=e+1;for(;B[r];)delete B[r],r+=1;for(r=t+1;re[r];)delete re[r],r+=1}function W(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(C)}async function dt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(L||"/");e&&await e.update()}}let De,Te,fe,x,Ue,b;const ue=[],de=[];let T=null;function he(){T?.fork?.then(e=>e?.discard()),T=null}const se=new Map,ht=new Set,kr=new Set,Z=new Set;let y={branch:[],error:null,url:null},$e=!1,pe=!1,Xe=!0,ne=!1,X=!1,pt=!1,Be=!1,_t,S,U,D;const Q=new Set,ze=new Map,Ze=new Map;async function Fr(e,t,r){globalThis.__sveltekit_6f468j&&(globalThis.__sveltekit_6f468j.query,globalThis.__sveltekit_6f468j.prerender),document.URL!==location.href&&(location.href=location.href),b=e,await e.hooks.init?.(),De=qt(e),x=document.documentElement,Ue=t,Te=e.nodes[0],fe=e.nodes[1],Te(),fe(),S=history.state?.[H],U=history.state?.[ee],S||(S=U=Date.now(),history.replaceState({...history.state,[H]:S,[ee]:U},""));const n=B[S];function o(){n&&(history.scrollRestoration="manual",scrollTo(n.x,n.y))}r?(o(),await jr(Ue,r)):(await G({type:"enter",url:xe(b.hash?Or(new URL(location.href)):location.href),replace_state:!0}),o()),Pr()}function Er(){ue.length=0,Be=!1}function gt(e){de.some(t=>t?.snapshot)&&(re[e]=de.map(t=>t?.snapshot?.capture()))}function mt(e){re[e]?.forEach((t,r)=>{de[r]?.snapshot?.restore(t)})}function Qe(){Ce(S),Ge(at,B),gt(U),Ge(nt,re)}async function yt(e,t,r,n){let o,i;t.invalidateAll&&he(),await G({type:"goto",url:xe(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:r,nav_token:n,accept:()=>{if(t.invalidateAll){Be=!0,o=new Set;for(const[a,c]of ze)for(const s of c.keys())o.add(oe(a,s));i=new Set;for(const[a,c]of Ze)for(const s of c.keys())i.add(oe(a,s))}t.invalidate&&t.invalidate.forEach(Lr)}}),t.invalidateAll&&ie().then(ie).then(()=>{for(const[a,c]of ze)for(const[s,{resource:l}]of c)o?.has(oe(a,s))&&l.refresh();for(const[a,c]of Ze)for(const[s,{resource:l}]of c)i?.has(oe(a,s))&&l.reconnect()})}async function Ar(e){if(e.id!==T?.id){he();const t={};Q.add(t),T={id:e.id,token:t,promise:bt({...e,preload:t}).then(r=>(Q.delete(t),r.type==="loaded"&&r.state.error&&he(),r)),fork:null}}return T.promise}async function Se(e){const t=(await ve(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(r=>r[1]()))}async function wt(e,t,r){const n={params:y.params,route:{id:y.route?.id??null},url:new URL(location.href)};y={...e.state,nav:n};const o=document.querySelector("style[data-sveltekit]");if(o&&o.remove(),ut(e.props.page),_t=new b.root({target:t,props:{...e.props,stores:$,components:de},hydrate:r,sync:!1,transformError:void 0}),await Promise.resolve(),mt(U),r){const i={from:null,to:{...n,scroll:B[S]??q()},willUnload:!1,type:"enter",complete:Promise.resolve()};Z.forEach(a=>a(i))}pe=!0}async function _e({url:e,params:t,branch:r,errors:n,status:o,error:i,route:a,form:c}){let s="never";if(L&&(e.pathname===L||e.pathname===L+"/"))s="always";else for(const u of r)u?.slash!==void 0&&(s=u.slash);e.pathname=Tt(e.pathname,s),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:r,error:i,route:a},props:{constructors:fr(r).map(u=>u.node.component),page:Ve(I)}};c!==void 0&&(l.props.form=c);let f={},h=!I,d=0;for(let u=0;u<Math.max(r.length,y.branch.length);u+=1){const _=r[u],k=y.branch[u];_?.data!==k?.data&&(h=!0),_&&(f={...f,..._.data},h&&(l.props[`data_${d}`]=f),d+=1)}return(!y.url||e.href!==y.url.href||y.error!==i||c!==void 0&&c!==I.form||h)&&(l.props.page={error:i,params:t,route:{id:a?.id??null},state:{},status:o,url:new URL(e),form:c??null,data:h?f:I.data}),l}async function Fe({loader:e,parent:t,url:r,params:n,route:o,server_data_node:i}){let a=null,c=!0;const s={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();if(l.universal?.load){let f=function(...d){for(const p of d){const{href:u}=new URL(p,r);s.dependencies.add(u)}};const h={tracing:{enabled:!1,root:Ke,current:Ke},route:new Proxy(o,{get:(d,p)=>(c&&(s.route=!0),d[p])}),params:new Proxy(n,{get:(d,p)=>(c&&s.params.add(p),d[p])}),data:i?.data??null,url:Pt(r,()=>{c&&(s.url=!0)},d=>{c&&s.search_params.add(d)},b.hash),async fetch(d,p){d instanceof Request&&(p={body:d.method==="GET"||d.method==="HEAD"?void 0:await d.blob(),cache:d.cache,credentials:d.credentials,headers:[...d.headers].length>0?d?.headers:void 0,integrity:d.integrity,keepalive:d.keepalive,method:d.method,mode:d.mode,redirect:d.redirect,referrer:d.referrer,referrerPolicy:d.referrerPolicy,signal:d.signal,...p});const{resolved:u,promise:_}=vt(d,p,r);return c&&f(u.href),_},setHeaders:C,depends:f,parent(){return c&&(s.parent=!0),t()},untrack(d){c=!1;try{return d()}finally{c=!0}}};a=await l.universal.load.call(null,h)??null}return{node:l,loader:e,server:i,universal:l.universal?.load?{type:"data",data:a,uses:s}:null,data:a??i?.data??null,slash:l.universal?.trailingSlash??i?.slash}}function vt(e,t,r){let n=e instanceof Request?e.url:e;const o=new URL(n,r);o.origin===r.origin&&(n=o.href.slice(r.origin.length));const i=pe?Ct(n,o.href,t):xt(n,t);return{resolved:o,promise:i}}function et(e,t,r,n,o,i){if(Be)return!0;if(!o)return!1;if(o.parent&&e||o.route&&t||o.url&&r)return!0;for(const a of o.search_params)if(n.has(a))return!0;for(const a of o.params)if(i[a]!==y.params[a])return!0;for(const a of o.dependencies)if(ue.some(c=>c(new URL(a))))return!0;return!1}function Me(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Sr(e,t){if(!e)return new Set(t.searchParams.keys());const r=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const n of r){const o=e.searchParams.getAll(n),i=t.searchParams.getAll(n);o.every(a=>i.includes(a))&&i.every(a=>o.includes(a))&&r.delete(n)}return r}function tt({error:e,url:t,route:r,params:n}){return{type:"loaded",state:{error:e,url:t,route:r,params:n,branch:[]},props:{page:Ve(I),constructors:[]}}}async function bt({id:e,invalidating:t,url:r,params:n,route:o,preload:i}){if(T?.id===e)return Q.delete(T.token),T.promise;const{errors:a,layouts:c,leaf:s}=o,l=[...c,s];a.forEach(m=>m?.().catch(C)),l.forEach(m=>m?.[1]().catch(C));let f=null;const h=y.url?e!==ge(y.url):!1,d=y.route?o.id!==y.route.id:!1,p=Sr(y.url,r);let u=!1;{const m=l.map((w,E)=>{const A=y.branch[E],v=!!w?.[0]&&(A?.loader!==w[1]||et(u,d,h,p,A.server?.uses,n));return v&&(u=!0),v});if(m.some(Boolean)){try{f=await At(r,m)}catch(w){const E=await Y(w,{url:r,params:n,route:{id:e}});return Q.has(i)?tt({error:E,url:r,params:n,route:o}):we({status:le(w),error:E,url:r,route:o})}if(f.type==="redirect")return f}}const _=f?.nodes;let k=!1;const g=l.map(async(m,w)=>{if(!m)return;const E=y.branch[w],A=_?.[w];if((!A||A.type==="skip")&&m[1]===E?.loader&&!et(k,d,h,p,E.universal?.uses,n))return E;if(k=!0,A?.type==="error")throw A;return Fe({loader:m[1],url:r,params:n,route:o,parent:async()=>{const O={};for(let F=0;F<w;F+=1)Object.assign(O,(await g[F])?.data);return O},server_data_node:Me(A===void 0&&m[0]?{type:"skip"}:A??null,m[0]?E?.server:void 0)})});for(const m of g)m.catch(C);const R=[];for(let m=0;m<l.length;m+=1)if(l[m])try{R.push(await g[m])}catch(w){if(w instanceof je)return{type:"redirect",location:w.location};if(Q.has(i))return tt({error:await Y(w,{params:n,url:r,route:{id:o.id}}),url:r,params:n,route:o});let E=le(w),A;if(_?.includes(w))E=w.status??E,A=w.error;else if(w instanceof me)A=w.body;else{if(await $.updated.check())return await dt(),await W(r);A=await Y(w,{params:n,url:r,route:{id:o.id}})}const v=await Rr(m,R,a);return v?_e({url:r,params:n,branch:R.slice(0,v.idx).concat(v.node),errors:a,status:E,error:A,route:o}):await Et(r,{id:o.id},A,E)}else R.push(void 0);return _e({url:r,params:n,branch:R,errors:a,status:200,error:null,route:o,form:t?void 0:null})}async function Rr(e,t,r){for(;e--;)if(r[e]){let n=e;for(;!t[n];)n-=1;try{return{idx:n+1,node:{node:await r[e](),loader:r[e],data:{},server:null,universal:null}}}catch{continue}}}async function we({status:e,error:t,url:r,route:n}){const o={};let i=null;if(b.server_loads[0]===0)try{const c=await At(r,[!0]);if(c.type!=="data"||c.nodes[0]&&c.nodes[0].type!=="data")throw 0;i=c.nodes[0]??null}catch{(r.origin!==ae||r.pathname!==location.pathname||$e)&&await W(r)}try{const a=await Fe({loader:Te,url:r,params:o,route:n,parent:()=>Promise.resolve({}),server_data_node:Me(i)}),c={node:await fe(),loader:fe,universal:null,server:null,data:null};return _e({url:r,params:o,branch:[a,c],status:e,error:t,errors:[],route:null})}catch(a){if(a instanceof je)return yt(new URL(a.location,location.href),{},0);throw a}}async function Ir(e){const t=e.href;if(se.has(t))return se.get(t);let r;try{const n=(async()=>{let o=await b.hooks.reroute({url:new URL(e),fetch:async(i,a)=>vt(i,a,e).promise})??e;if(typeof o=="string"){const i=new URL(e);b.hash?i.hash=o:i.pathname=o,o=i}return o})();se.set(t,n),r=await n}catch{se.delete(t);return}return r}async function ve(e,t){if(e&&!ye(e,L,b.hash)){const r=await Ir(e);if(!r)return;const n=Tr(r);for(const o of De){const i=o.exec(n);if(i)return{id:ge(e),invalidating:t,route:o,params:Lt(i),url:e}}}}function Tr(e){return Ut(b.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(L.length))||"/"}function ge(e){return(b.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function kt({url:e,type:t,intent:r,delta:n,event:o,scroll:i}){let a=!1;const c=qe(y,r,e,t,i??null);n!==void 0&&(c.navigation.delta=n),o!==void 0&&(c.navigation.event=o);const s={...c.navigation,cancel:()=>{a=!0,c.reject(new Error("navigation cancelled"))}};return ne||ht.forEach(l=>l(s)),a?null:c}async function G({type:e,url:t,popped:r,keepfocus:n,noscroll:o,replace_state:i,state:a={},redirect_count:c=0,nav_token:s={},accept:l=C,block:f=C,event:h}){const d=D;D=s;const p=await ve(t,!1),u=e==="enter"?qe(y,p,t,e):kt({url:t,type:e,delta:r?.delta,intent:p,scroll:r?.scroll,event:h});if(!u){f(),D===s&&(D=d);return}const _=S,k=U;l(),ne=!0,pe&&u.navigation.type!=="enter"&&$.navigating.set(te.current=u.navigation);let g=p&&await bt(p);if(!g){if(ye(t,L,b.hash))return await W(t,i);g=await Et(t,{id:null},await Y(new Ne(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=p?.url||t,D!==s)return u.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(c<20){await G({type:e,url:new URL(g.location,t),popped:r,keepfocus:n,noscroll:o,replace_state:i,state:a,redirect_count:c+1,nav_token:s}),u.fulfil(void 0);return}g=await we({status:500,error:await Y(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else g.props.page.status>=400&&await $.updated.check()&&(await dt(),await W(t,i));if(Er(),Ce(_),gt(k),g.props.page.url.pathname!==t.pathname&&(t.pathname=g.props.page.url.pathname),a=r?r.state:a,!r){const v=i?0:1,O={[H]:S+=v,[ee]:U+=v,[ot]:a};(i?history.replaceState:history.pushState).call(history,O,"",t),i||br(S,U)}const R=p&&T?.id===p.id?T.fork:null;T?.fork&&!R&&he(),T=null,g.props.page.state=a;let m;if(pe){const v=(await Promise.all(Array.from(kr,J=>J(u.navigation)))).filter(J=>typeof J=="function");if(v.length>0){let J=function(){v.forEach(be=>{Z.delete(be)})};v.push(J),v.forEach(be=>{Z.add(be)})}const O=u.navigation.to;y={...g.state,nav:{params:O.params,route:O.route,url:O.url}},g.props.page&&(g.props.page.url=t);const F=R&&await R;F?m=F.commit():(K=null,_t.$set(g.props),K&&Object.assign(g.props.page,K),ut(g.props.page),m=It?.()),pt=!0}else await wt(g,Ue,!1);const{activeElement:w}=document;if(await m,await ie(),await ie(),D!==s)return u.reject(new Error("navigation aborted")),!1;g.props.page&&K&&Object.assign(g.props.page,K);let E=null;if(Xe){const v=r?r.scroll:o?q():null;v?scrollTo(v.x,v.y):(E=t.hash&&document.getElementById(Rt(t)))?E.scrollIntoView():scrollTo(0,0)}const A=document.activeElement!==w&&document.activeElement!==document.body;!n&&!A&&Nr(t,!E),Xe=!0,ne=!1,e==="popstate"&&mt(U),u.fulfil(void 0),u.navigation.to&&(u.navigation.to.scroll=q()),Z.forEach(v=>v(u.navigation)),$.navigating.set(te.current=null)}async function Et(e,t,r,n,o){return e.origin===ae&&e.pathname===location.pathname&&!$e?await we({status:n,error:r,url:e,route:t}):await W(e,o)}function Ur(){let e,t={element:void 0,href:void 0},r;x.addEventListener("mousemove",c=>{const s=c.target;clearTimeout(e),e=setTimeout(()=>{i(s,M.hover)},20)});function n(c){c.defaultPrevented||i(c.composedPath()[0],M.tap)}x.addEventListener("mousedown",n),x.addEventListener("touchstart",n,{passive:!0});const o=new IntersectionObserver(c=>{for(const s of c)s.isIntersecting&&(Se(new URL(s.target.href)),o.unobserve(s.target))},{threshold:0});async function i(c,s){const l=it(c,x),f=l===t.element&&l?.href===t.href&&s>=r;if(!l||f)return;const{url:h,external:d,download:p}=Re(l,L,b.hash);if(d||p)return;const u=ce(l),_=h&&ge(y.url)===ge(h);if(!(u.reload||_))if(s<=u.preload_data){t={element:l,href:l.href},r=M.tap;const k=await ve(h,!1);if(!k)return;Ar(k)}else s<=u.preload_code&&(t={element:l,href:l.href},r=s,Se(h))}function a(){o.disconnect();for(const c of x.querySelectorAll("a")){const{url:s,external:l,download:f}=Re(c,L,b.hash);if(l||f)continue;const h=ce(c);h.reload||(h.preload_code===M.viewport&&o.observe(c),h.preload_code===M.eager&&Se(s))}}Z.add(a),a()}function Y(e,t){if(e instanceof me)return e.body;const r=le(e),n=hr(e);return b.hooks.handleError({error:e,event:t,status:r,message:n})??{message:n}}function Mr(e,t={}){return e=new URL(xe(e)),e.origin!==ae?Promise.reject(new Error("goto: invalid URL")):yt(e,t,0)}function Lr(e){if(typeof e=="function")ue.push(e);else{const{href:t}=new URL(e,location.href);ue.push(r=>r.href===t)}}function Pr(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let r=!1;if(Qe(),!ne){const n=qe(y,void 0,null,"leave"),o={...n.navigation,cancel:()=>{r=!0,n.reject(new Error("navigation cancelled"))}};ht.forEach(i=>i(o))}r?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Qe()}),navigator.connection?.saveData||Ur(),x.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const r=it(t.composedPath()[0],x);if(!r)return;const{url:n,external:o,target:i,download:a}=Re(r,L,b.hash);if(!n)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const c=ce(r);if(!(r instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||a)return;const[l,f]=(b.hash?n.hash.replace(/^#/,""):n.href).split("#"),h=l===ke(location);if(o||c.reload&&(!h||!f)){kt({url:n,type:"link",event:t})?ne=!0:t.preventDefault();return}if(f!==void 0&&h){const[,d]=y.url.href.split("#");if(d===f){if(t.preventDefault(),f===""||f==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const p=r.ownerDocument.getElementById(decodeURIComponent(f));p&&(p.scrollIntoView(),p.focus())}return}if(X=!0,Ce(S),e(n),!c.replace_state)return;X=!1}t.preventDefault(),await new Promise(d=>{requestAnimationFrame(()=>{setTimeout(d,0)}),setTimeout(d,100)}),await G({type:"link",url:n,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??n.href===location.href,event:t})}),x.addEventListener("submit",t=>{if(t.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(t.target),n=t.submitter;if((n?.formTarget||r.target)==="_blank"||(n?.formMethod||r.method)!=="get")return;const a=new URL(n?.hasAttribute("formaction")&&n?.formAction||r.action);if(ye(a,L,!1))return;const c=t.target,s=ce(c);if(s.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(c,n);a.search=new URLSearchParams(l).toString(),G({type:"form",url:a,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??a.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Le){if(t.state?.[H]){const r=t.state[H];if(D={},r===S)return;const n=B[r],o=t.state[ot]??{},i=new URL(t.state[Gt]??location.href),a=t.state[ee],c=y.url?ke(location)===ke(y.url):!1;if(a===U&&(pt||c)){o!==I.state&&(I.state=o),e(i),B[S]=q(),n&&scrollTo(n.x,n.y),S=r;return}const l=r-S;await G({type:"popstate",url:i,popped:{state:o,scroll:n,delta:l},accept:()=>{S=r,U=a},block:()=>{history.go(-l)},nav_token:D,event:t})}else if(!X){const r=new URL(location.href);e(r),b.hash&&location.reload()}}}),addEventListener("hashchange",()=>{X&&(X=!1,history.replaceState({...history.state,[H]:++S,[ee]:U},"",location.href))});for(const t of document.querySelectorAll("link"))vr.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(te.current=null)});function e(t){y.url=I.url=t,$.page.set(Ve(I)),$.page.notify()}}async function jr(e,{status:t=200,error:r,node_ids:n,params:o,route:i,server_route:a,data:c,form:s}){$e=!0;const l=new URL(location.href);let f;({params:o={},route:i={id:null}}=await ve(l,!1)||{}),f=De.find(({id:p})=>p===i.id);let h,d=!0;try{const p=n.map(async(_,k)=>{const g=c[k];return g?.uses&&(g.uses=St(g.uses)),Fe({loader:b.nodes[_],url:l,params:o,route:i,parent:async()=>{const R={};for(let m=0;m<k;m+=1)Object.assign(R,(await p[m]).data);return R},server_data_node:Me(g)})}),u=await Promise.all(p);if(f){const _=f.layouts;for(let k=0;k<_.length;k++)_[k]||u.splice(k,0,void 0)}h=await _e({url:l,params:o,branch:u,status:t,error:r,errors:f?.errors,form:s,route:f??null})}catch(p){if(p instanceof je){await W(new URL(p.location,location.href));return}h=await we({status:le(p),error:await Y(p,{url:l,params:o,route:i}),url:l,route:i}),e.textContent="",d=!1}h.props.page&&(h.props.page.state={}),await wt(h,e,d)}async function At(e,t){const r=new URL(e);r.pathname=mr(e.pathname),e.pathname.endsWith("/")&&r.searchParams.append(dr,"1"),r.searchParams.append(ur,t.map(i=>i?"1":"0").join(""));const n=window.fetch,o=await n(r.href,{});if(!o.ok){let i;throw o.headers.get("content-type")?.includes("application/json")?i=await o.json():o.status===404?i="Not Found":o.status===500&&(i="Internal Error"),new me(o.status,i)}return new Promise(async i=>{const a=new Map,c=o.body.getReader();function s(l){return cr(l,{...b.decoders,Promise:f=>new Promise((h,d)=>{a.set(f,{fulfil:h,reject:d})})})}for await(const l of wr(c)){if(l.type==="redirect")return i(l);if(l.type==="data")l.nodes?.forEach(f=>{f?.type==="data"&&(f.uses=St(f.uses),f.data=s(f.data))}),i(l);else if(l.type==="chunk"){const{id:f,data:h,error:d}=l,p=a.get(f);a.delete(f),d?p.reject(s(d)):p.fulfil(s(h))}}})}function St(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 Le=!1;function Nr(e,t=!0){const r=document.querySelector("[autofocus]");if(r)r.focus();else{const n=Rt(e);if(n&&document.getElementById(n)){const{x:i,y:a}=q();setTimeout(()=>{const c=history.state;Le=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(c,"",e),t&&scrollTo(i,a),Le=!1})}else{const i=document.body,a=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),a!==null?i.setAttribute("tabindex",a):i.removeAttribute("tabindex")}const o=getSelection();if(o&&o.type!=="None"){const i=[];for(let a=0;a<o.rangeCount;a+=1)i.push(o.getRangeAt(a));setTimeout(()=>{if(o.rangeCount===i.length){for(let a=0;a<o.rangeCount;a+=1){const c=i[a],s=o.getRangeAt(a);if(c.commonAncestorContainer!==s.commonAncestorContainer||c.startContainer!==s.startContainer||c.endContainer!==s.endContainer||c.startOffset!==s.startOffset||c.endOffset!==s.endOffset)return}o.removeAllRanges()}})}}}function qe(e,t,r,n,o=null){let i,a;const c=new Promise((l,f)=>{i=l,a=f});return c.catch(C),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:q()},to:r&&{params:t?.params??null,route:{id:t?.route?.id??null},url:r,scroll:o},willUnload:!t,type:n,complete:c},fulfil:i,reject:a}}function Ve(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 Or(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Rt(e){let t;if(b.hash){const[,,r]=e.hash.split("#",3);t=r??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{$ as a,Mr as g,Cr as l,I as p,Fr as s};
|