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.
Files changed (66) hide show
  1. package/dist/commands/service.d.ts.map +1 -1
  2. package/dist/commands/service.js +30 -19
  3. package/dist/commands/service.js.map +1 -1
  4. package/dist/commands/update.d.ts.map +1 -1
  5. package/dist/commands/update.js +23 -1
  6. package/dist/commands/update.js.map +1 -1
  7. package/dist/utils/version.d.ts +1 -1
  8. package/dist/utils/version.js +1 -1
  9. package/dist/web/client/_app/immutable/chunks/0aSLiJ5c.js +3 -0
  10. package/dist/web/client/_app/immutable/chunks/{BB9TuzmK.js → D-34IVnr.js} +1 -1
  11. package/{web/.svelte-kit/output/client/_app/immutable/chunks/BU5h8NYO.js → dist/web/client/_app/immutable/chunks/DTyl4EVg.js} +1 -1
  12. package/{web/.svelte-kit/output/client/_app/immutable/chunks/DHeexKFx.js → dist/web/client/_app/immutable/chunks/pkYTw7Ge.js} +1 -1
  13. package/dist/web/client/_app/immutable/entry/{app.B24VM-EE.js → app.B5KQK7RI.js} +2 -2
  14. package/dist/web/client/_app/immutable/entry/start.C0ocDcXk.js +1 -0
  15. package/dist/web/client/_app/immutable/nodes/{0.BWJ-EEUf.js → 0.D9NtpoCP.js} +1 -1
  16. package/dist/web/client/_app/immutable/nodes/{1.DILU-70h.js → 1.oevNjH1i.js} +1 -1
  17. package/dist/web/client/_app/immutable/nodes/{2.ClTKvGQu.js → 2.8u-solqb.js} +1 -1
  18. package/dist/web/client/_app/immutable/nodes/{3.BqgdxZ4J.js → 3.CtE6Zacp.js} +1 -1
  19. package/dist/web/client/_app/version.json +1 -1
  20. package/dist/web/server/chunks/{0-CWPTrtx7.js → 0-lm2SXXXL.js} +6 -6
  21. package/dist/web/server/chunks/{0-CWPTrtx7.js.map → 0-lm2SXXXL.js.map} +1 -1
  22. package/dist/web/server/chunks/{1-BvD2TuDo.js → 1-DL620-sU.js} +3 -3
  23. package/dist/web/server/chunks/{1-BvD2TuDo.js.map → 1-DL620-sU.js.map} +1 -1
  24. package/dist/web/server/chunks/{2-dcOGLSIi.js → 2-ChlJ4D7y.js} +5 -5
  25. package/dist/web/server/chunks/{2-dcOGLSIi.js.map → 2-ChlJ4D7y.js.map} +1 -1
  26. package/dist/web/server/chunks/{3-OuXGZ-UL.js → 3-NLTGD1Yq.js} +5 -5
  27. package/dist/web/server/chunks/{3-OuXGZ-UL.js.map → 3-NLTGD1Yq.js.map} +1 -1
  28. package/dist/web/server/index.js +1 -1
  29. package/dist/web/server/index.js.map +1 -1
  30. package/dist/web/server/manifest.js +9 -9
  31. package/dist/web/server/manifest.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/commands/service.ts +26 -16
  34. package/src/commands/update.ts +22 -1
  35. package/src/utils/version.ts +1 -1
  36. package/web/.svelte-kit/adapter-bun/chunks/internal.js +1 -1
  37. package/web/.svelte-kit/adapter-bun/manifest-full.js +1 -1
  38. package/web/.svelte-kit/adapter-bun/manifest.js +1 -1
  39. package/web/.svelte-kit/adapter-bun/nodes/0.js +1 -1
  40. package/web/.svelte-kit/adapter-bun/nodes/1.js +1 -1
  41. package/web/.svelte-kit/adapter-bun/nodes/2.js +1 -1
  42. package/web/.svelte-kit/adapter-bun/nodes/3.js +1 -1
  43. package/web/.svelte-kit/generated/server/internal.js +1 -1
  44. package/web/.svelte-kit/output/client/.vite/manifest.json +49 -49
  45. package/web/.svelte-kit/output/client/_app/immutable/chunks/0aSLiJ5c.js +3 -0
  46. package/web/.svelte-kit/output/client/_app/immutable/chunks/{BB9TuzmK.js → D-34IVnr.js} +1 -1
  47. package/{dist/web/client/_app/immutable/chunks/BU5h8NYO.js → web/.svelte-kit/output/client/_app/immutable/chunks/DTyl4EVg.js} +1 -1
  48. package/{dist/web/client/_app/immutable/chunks/DHeexKFx.js → web/.svelte-kit/output/client/_app/immutable/chunks/pkYTw7Ge.js} +1 -1
  49. package/web/.svelte-kit/output/client/_app/immutable/entry/{app.B24VM-EE.js → app.B5KQK7RI.js} +2 -2
  50. package/web/.svelte-kit/output/client/_app/immutable/entry/start.C0ocDcXk.js +1 -0
  51. package/web/.svelte-kit/output/client/_app/immutable/nodes/{0.BWJ-EEUf.js → 0.D9NtpoCP.js} +1 -1
  52. package/web/.svelte-kit/output/client/_app/immutable/nodes/{1.DILU-70h.js → 1.oevNjH1i.js} +1 -1
  53. package/web/.svelte-kit/output/client/_app/immutable/nodes/{2.ClTKvGQu.js → 2.8u-solqb.js} +1 -1
  54. package/web/.svelte-kit/output/client/_app/immutable/nodes/{3.BqgdxZ4J.js → 3.CtE6Zacp.js} +1 -1
  55. package/web/.svelte-kit/output/client/_app/version.json +1 -1
  56. package/web/.svelte-kit/output/server/chunks/internal.js +1 -1
  57. package/web/.svelte-kit/output/server/manifest-full.js +1 -1
  58. package/web/.svelte-kit/output/server/manifest.js +1 -1
  59. package/web/.svelte-kit/output/server/nodes/0.js +1 -1
  60. package/web/.svelte-kit/output/server/nodes/1.js +1 -1
  61. package/web/.svelte-kit/output/server/nodes/2.js +1 -1
  62. package/web/.svelte-kit/output/server/nodes/3.js +1 -1
  63. package/dist/web/client/_app/immutable/chunks/jAm107uH.js +0 -3
  64. package/dist/web/client/_app/immutable/entry/start.DcbBqC7C.js +0 -1
  65. package/web/.svelte-kit/output/client/_app/immutable/chunks/jAm107uH.js +0 -3
  66. 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;AA+JpC,wBAAgB,oBAAoB,IAAI,OAAO,CAgC9C"}
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"}
@@ -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
- try {
12
- const out = execSync(`command -v ${cmd}`, {
13
- encoding: "utf-8",
14
- stdio: ["pipe", "pipe", "pipe"],
15
- }).trim();
16
- return out || null;
17
- }
18
- catch {
19
- return null;
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`, ...) which usually live alongside
32
- // claude-mux in the npm prefix's bin dir.
33
- const npmBinDir = dirname(claudeMuxBin);
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
- if (bunBin)
38
- dirs.add(dirname(bunBin));
39
- dirs.add(npmBinDir);
40
- if (claudeBin)
41
- dirs.add(dirname(claudeBin));
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":"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"}
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;AAyFpC,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"}
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"}
@@ -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 & disown`,
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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"}
@@ -2,5 +2,5 @@
2
2
  * Central version constant for claude-watch.
3
3
  * Keep in sync with package.json version.
4
4
  */
5
- export declare const VERSION = "0.9.2";
5
+ export declare const VERSION = "0.9.4";
6
6
  //# sourceMappingURL=version.d.ts.map
@@ -2,5 +2,5 @@
2
2
  * Central version constant for claude-watch.
3
3
  * Keep in sync with package.json version.
4
4
  */
5
- export const VERSION = "0.9.2";
5
+ export const VERSION = "0.9.4";
6
6
  //# sourceMappingURL=version.js.map
@@ -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};