Diffinery

codician/diffinerypublic

Open-source, agent-first GitHub and GitHub Actions alternative that runs on your own Cloudflare account: git hosting, pull requests, code review and drop-in GitHub Actions YAML on Workers, Durable Objects, R2 and Containers.

Use Kumo components for every select, checkbox and radio (#5)

Pages render a placeholder plus the hidden inputs each form posts; a small
client bundle (apps/diffinery/islands) mounts the real Kumo Select, Checkbox
and Radio over it. Kumo's stylesheet is scoped to those islands, and the
site's own CSS moves into a cascade layer so neither restyles the other.

Also:
- Markdown task lists render Kumo-style boxes instead of disabled inputs.
- Diff file headers stay in place (sticky inside overflow: clip).
- git push with push.negotiate works: protocol v2 fetch honours wait-for-done.


Claude-Session: https://claude.ai/code/session_01AizKXSsengXZRegJxRATkL

Co-authored-by: Claude <noreply@anthropic.com>
Canberk Demirci authored · GitHub committed signed1 parent 08ae348commit 97dbd99523a8a9567cee451983cebfd7bfb6c2bfBrowse files
23 files changed+4732−3259
Files (23)
modified.github/workflows/deploy.yml+2−2View file
@@ -35,8 +35,8 @@
3535 node-version: 22
3636 cache: pnpm
3737 - run: pnpm install --frozen-lockfile
38- - name: Build runner agent
39- run: pnpm --filter @diffinery/runner build
38+ - name: Build runner agent and web islands
39+ run: pnpm -r --if-present build
4040 - name: Typecheck and test
4141 run: pnpm -r --if-present typecheck && pnpm -r --if-present test
4242
addedapps/diffinery/.gitignore+1−0View file
@@ -1,0 +1,1 @@
1+build/
addedapps/diffinery/islands/build.mjs+76−0View file
@@ -1,0 +1,76 @@
1+// Builds the Kumo client islands into build/islands/, which the Worker imports as text
2+// (wrangler's default Text rule covers *.txt) and serves from /-/kumo/<hash>.{js,css}.
3+import { build } from "esbuild";
4+import postcss from "postcss";
5+import { mkdir, readFile, writeFile } from "node:fs/promises";
6+import { createRequire } from "node:module";
7+import { dirname, join } from "node:path";
8+import { fileURLToPath } from "node:url";
9+
10+const here = dirname(fileURLToPath(import.meta.url));
11+const out = join(here, "..", "build", "islands");
12+const require = createRequire(import.meta.url);
13+await mkdir(out, { recursive: true });
14+
15+const js = await build({
16+ entryPoints: [join(here, "kumo.tsx")],
17+ bundle: true,
18+ minify: true,
19+ format: "iife",
20+ target: ["chrome111", "safari16.4", "firefox128"],
21+ jsx: "automatic",
22+ define: { "process.env.NODE_ENV": '"production"' },
23+ legalComments: "none",
24+ write: false,
25+ logLevel: "warning",
26+});
27+await writeFile(join(out, "kumo.js.txt"), js.outputFiles[0].text);
28+
29+/*
30+ * Kumo's stylesheet is Tailwind v4 output: theme variables, a global preflight reset and utility
31+ * classes. Only the theme variables stay global. The reset and utilities are confined to island
32+ * containers (`.dfy-k`), so they can't restyle the rest of the site and the site's own class
33+ * names (.grid, .grow, .row …) can't collide with Kumo's.
34+ */
35+const SCOPED_LAYERS = new Set(["base", "components", "utilities"]);
36+const scope = (sel) =>
37+ sel
38+ .split(/,(?![^(]*\))/)
39+ .map((s) => s.trim())
40+ .map((s) => {
41+ if (/^(html|:root|:host)\b/.test(s)) return ".dfy-k";
42+ // Theme switches live on <html>, above the island: keep them first.
43+ const m = /^((?:\[data-(?:mode|theme)[^\]]*\])+)(\s+.*)?$/.exec(s);
44+ if (m) return m[2] ? `${m[1]} :where(.dfy-k)${m[2]}` : s;
45+ return `:where(.dfy-k) ${s}`;
46+ })
47+ .join(",");
48+const scoper = {
49+ postcssPlugin: "dfy-scope",
50+ Once(root) {
51+ root.walkRules((rule) => {
52+ if (rule.parent?.type === "atrule" && /keyframes/.test(rule.parent.name)) return;
53+ // The site sets color-scheme itself (light dark); Kumo's `:root{color-scheme:light}` would pin islands to light.
54+ if (/^:root$/.test(rule.selector) && rule.nodes.every((d) => d.type === "decl" && d.prop === "color-scheme")) return void rule.remove();
55+ // Token definitions (only --kumo-*/--tw-* custom properties) stay global; they style nothing.
56+ if (rule.nodes.every((d) => d.type === "comment" || (d.type === "decl" && d.prop.startsWith("--")))) return;
57+ let p = rule.parent;
58+ let layer = null;
59+ while (p && p.type !== "root") {
60+ if (p.type === "atrule" && p.name === "layer") layer = p.params.trim();
61+ p = p.parent;
62+ }
63+ if (layer === null) {
64+ // Unlayered Kumo rules only target .kumo-* class names and [data-mode] — still scope them.
65+ if (/^(:root|html)/.test(rule.selector)) return;
66+ rule.selector = scope(rule.selector);
67+ return;
68+ }
69+ if (SCOPED_LAYERS.has(layer)) rule.selector = scope(rule.selector);
70+ });
71+ },
72+};
73+const cssIn = await readFile(require.resolve("@cloudflare/kumo/styles/standalone"), "utf8");
74+const css = (await postcss([scoper]).process(cssIn, { from: undefined })).css;
75+await writeFile(join(out, "kumo.css.txt"), css);
76+console.log(`islands: kumo.js ${(js.outputFiles[0].text.length / 1024).toFixed(0)} KB, kumo.css ${(css.length / 1024).toFixed(0)} KB`);
addedapps/diffinery/islands/kumo.tsx+195−0View file
@@ -1,0 +1,195 @@
1+/**
2+ * Client islands: real Kumo components (kumo-ui.com) mounted over server-rendered placeholders.
3+ *
4+ * The server renders `<span class="dfy-k" data-k="select|checkbox|radio" data-p='{…}'>` with a
5+ * look-alike placeholder and the hidden inputs the form submits. This bundle swaps each one for
6+ * the Kumo component and keeps writing the same hidden inputs, so the server-side form handling
7+ * never sees a difference (and the forms still submit their defaults if this script fails).
8+ */
9+import { useRef, useState, type ReactNode } from "react";
10+import { createRoot } from "react-dom/client";
11+import { flushSync } from "react-dom";
12+import { Select } from "@cloudflare/kumo/components/select";
13+import { Checkbox } from "@cloudflare/kumo/components/checkbox";
14+import { Radio } from "@cloudflare/kumo/components/radio";
15+import { KumoPortalProvider } from "@cloudflare/kumo";
16+
17+type SelectProps = {
18+ name: string;
19+ items: { value: string; label: string }[];
20+ value?: string;
21+ values?: string[];
22+ multiple?: boolean;
23+ placeholder?: string;
24+ label?: string;
25+ size?: "xs" | "sm" | "base" | "lg";
26+ autosubmit?: boolean;
27+ disabled?: boolean;
28+ id?: string;
29+};
30+type CheckboxProps = { name: string; value: string; checked?: boolean; label: string; disabled?: boolean; aria?: string };
31+type RadioProps = {
32+ name: string;
33+ value?: string;
34+ items: { value: string; label: string; description?: string; disabled?: boolean }[];
35+ orientation?: "vertical" | "horizontal";
36+ label?: string;
37+};
38+
39+/** Labels arrive as HTML the server rendered (and escaped) with its own JSX. */
40+const Html = ({ html }: { html: string }) => <span className="dfy-k-html" dangerouslySetInnerHTML={{ __html: html }} />;
41+
42+const Hidden = ({ name, values }: { name: string; values: string[] }) => (
43+ <>
44+ {values.map((v, i) => (
45+ <input key={`${i}:${v}`} type="hidden" name={name} value={v} />
46+ ))}
47+ </>
48+);
49+
50+function submitSoon(el: HTMLElement | null) {
51+ // Let React commit the new hidden input values first.
52+ setTimeout(() => el?.closest("form")?.requestSubmit(), 0);
53+}
54+
55+function KSelect({ p }: { p: SelectProps }) {
56+ const ref = useRef<HTMLSpanElement>(null);
57+ const labels = new Map(p.items.map((i) => [i.value, i.label]));
58+ const [single, setSingle] = useState<string | null>(p.value ?? null);
59+ const [many, setMany] = useState<string[]>(p.values ?? []);
60+ const common = {
61+ items: p.items,
62+ size: p.size ?? "base",
63+ disabled: p.disabled,
64+ placeholder: p.placeholder,
65+ "aria-label": p.label,
66+ id: p.id,
67+ };
68+ return (
69+ <span ref={ref} className="dfy-k-select">
70+ {p.multiple ? (
71+ <Select<string, true>
72+ {...common}
73+ multiple
74+ value={many}
75+ onValueChange={(v) => {
76+ setMany(v ?? []);
77+ if (p.autosubmit) submitSoon(ref.current);
78+ }}
79+ renderValue={(v) => (v.length ? v.map((x) => labels.get(x) ?? x).join(", ") : null)}
80+ />
81+ ) : (
82+ <Select<string>
83+ {...common}
84+ value={single}
85+ onValueChange={(v) => {
86+ setSingle(v);
87+ if (p.autosubmit) submitSoon(ref.current);
88+ }}
89+ />
90+ )}
91+ <Hidden name={p.name} values={p.multiple ? many : single === null ? [] : [single]} />
92+ </span>
93+ );
94+}
95+
96+function KCheckbox({ p }: { p: CheckboxProps }) {
97+ const [on, setOn] = useState(!!p.checked);
98+ return (
99+ <>
100+ <Checkbox
101+ checked={on}
102+ disabled={p.disabled}
103+ onCheckedChange={(v) => setOn(!!v)}
104+ label={p.label ? <Html html={p.label} /> : undefined}
105+ aria-label={p.label ? undefined : p.aria}
106+ />
107+ <Hidden name={p.name} values={on ? [p.value] : []} />
108+ </>
109+ );
110+}
111+
112+function KRadio({ p }: { p: RadioProps }) {
113+ const [v, setV] = useState<string | undefined>(p.value);
114+ return (
115+ <>
116+ <Radio.Group legend={undefined} orientation={p.orientation ?? "vertical"} value={v} onValueChange={(x) => setV(x as string)}>
117+ {p.label ? <Radio.Legend className="sr-only">{p.label}</Radio.Legend> : null}
118+ {p.items.map((i) => (
119+ <Radio.Item
120+ key={i.value}
121+ value={i.value}
122+ disabled={i.disabled}
123+ label={
124+ <>
125+ <Html html={i.label} />
126+ {i.description ? <span className="dfy-k-desc" dangerouslySetInnerHTML={{ __html: i.description }} /> : null}
127+ </>
128+ }
129+ />
130+ ))}
131+ </Radio.Group>
132+ <Hidden name={p.name} values={v === undefined ? [] : [v]} />
133+ </>
134+ );
135+}
136+
137+const KINDS: Record<string, (p: never) => ReactNode> = {
138+ select: (p: SelectProps) => <KSelect p={p} />,
139+ checkbox: (p: CheckboxProps) => <KCheckbox p={p} />,
140+ radio: (p: RadioProps) => <KRadio p={p} />,
141+};
142+
143+/** Kumo's dark theme keys off data-mode; follow the system setting like the rest of the site. */
144+function syncMode() {
145+ const mq = matchMedia("(prefers-color-scheme: dark)");
146+ const apply = () => (document.documentElement.dataset.mode = mq.matches ? "dark" : "light");
147+ apply();
148+ mq.addEventListener("change", apply);
149+}
150+
151+function portal(): HTMLElement {
152+ let el = document.getElementById("dfy-k-portal");
153+ if (!el) {
154+ el = document.createElement("div");
155+ el.id = "dfy-k-portal";
156+ el.className = "dfy-k dfy-k-portal";
157+ document.body.append(el);
158+ }
159+ return el;
160+}
161+
162+function mount(el: HTMLElement, container: HTMLElement) {
163+ if (el.dataset.mounted) return;
164+ const kind = KINDS[el.dataset.k ?? ""];
165+ if (!kind) return;
166+ let props: unknown;
167+ try {
168+ props = JSON.parse(el.dataset.p ?? "{}");
169+ } catch {
170+ return;
171+ }
172+ el.dataset.mounted = "1";
173+ el.textContent = "";
174+ const root = createRoot(el);
175+ flushSync(() => root.render(<KumoPortalProvider container={container}>{kind(props as never)}</KumoPortalProvider>));
176+}
177+
178+function start() {
179+ syncMode();
180+ const container = portal();
181+ const scan = (root: ParentNode) => root.querySelectorAll<HTMLElement>(".dfy-k[data-k]:not([data-mounted])").forEach((el) => mount(el, container));
182+ scan(document);
183+ // Live updates swap server-rendered fragments in place; mount the islands they bring along.
184+ new MutationObserver((records) => {
185+ for (const r of records)
186+ for (const n of r.addedNodes) {
187+ if (!(n instanceof HTMLElement) || container.contains(n)) continue;
188+ if (n.matches(".dfy-k[data-k]")) mount(n, container);
189+ else scan(n);
190+ }
191+ }).observe(document.body, { childList: true, subtree: true });
192+}
193+
194+if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", start);
195+else start();
addedapps/diffinery/islands/tsconfig.json+10−0View file
@@ -1,0 +1,10 @@
1+{
2+ "extends": "../../../tsconfig.base.json",
3+ "compilerOptions": {
4+ "noEmit": true,
5+ "lib": ["ES2023", "DOM", "DOM.Iterable"],
6+ "types": [],
7+ "jsx": "react-jsx"
8+ },
9+ "include": ["*.tsx"]
10+}
modifiedapps/diffinery/package.json+12−2View file
@@ -6,11 +6,13 @@
66 "scripts": {
77 "dev": "wrangler dev -e dev",
88 "deploy": "wrangler deploy -c wrangler.deploy.jsonc",
9- "typecheck": "tsc --noEmit",
9+ "typecheck": "tsc --noEmit && tsc --noEmit -p islands",
1010 "test": "vitest run --passWithNoTests --exclude 'test/e2e/**'",
1111 "cf-typegen": "wrangler types",
1212 "e2e": "node --test --test-concurrency=1 --test-timeout=600000 test/e2e/e2e.test.mjs test/e2e/passkeys.test.mjs",
13- "db:migrate:local": "wrangler d1 migrations apply diffinery-dev --local -e dev"
13+ "db:migrate:local": "wrangler d1 migrations apply diffinery-dev --local -e dev",
14+ "build": "node islands/build.mjs",
15+ "predev": "node islands/build.mjs"
1416 },
1517 "dependencies": {
1618 "@cloudflare/containers": "^0.3.7",
@@ -21,9 +23,17 @@
2123 "hono": "^4.13.0"
2224 },
2325 "devDependencies": {
26+ "@cloudflare/kumo": "2.14.0",
2427 "@cloudflare/vitest-pool-workers": "^0.23.0",
2528 "@cloudflare/workers-types": "^5.20261012.1",
29+ "@phosphor-icons/react": "2.1.10",
30+ "@types/react": "19.2.2",
31+ "@types/react-dom": "19.2.2",
32+ "esbuild": "0.25.11",
2633 "playwright": "1.56.1",
34+ "postcss": "8.5.6",
35+ "react": "19.2.0",
36+ "react-dom": "19.2.0",
2737 "typescript": "^5.9.3",
2838 "vitest": "^4.1.0",
2939 "wrangler": "^4.149.0"
modifiedapps/diffinery/src/git/protocol.ts+7−0View file
@@ -106,6 +106,7 @@
106106 const wants: string[] = [];
107107 const haves: string[] = [];
108108 let done = false;
109+ let waitForDone = false;
109110 let noProgress = false;
110111 let depth: number | undefined;
111112 let since: number | undefined;
@@ -117,6 +118,7 @@
117118 if (ref) wants.push(ref.oid);
118119 } else if (a.startsWith("have ")) haves.push(a.slice(5));
119120 else if (a === "done") done = true;
121+ else if (a === "wait-for-done") waitForDone = true;
120122 else if (a === "no-progress") noProgress = true;
121123 else if (a.startsWith("shallow ")) clientShallow.add(a.slice(8));
122124 else if (a.startsWith("deepen ")) depth = Math.max(1, Number.parseInt(a.slice(7), 10) || 1);
@@ -134,6 +136,11 @@
134136 out.write(pkt("acknowledgments\n"));
135137 if (common.length === 0) out.write(pkt("NAK\n"));
136138 for (const c of common) out.write(pkt(`ACK ${c}\n`));
139+ if (waitForDone) {
140+ // Negotiation only (git push with push.negotiate): no "ready" and no pack until "done".
141+ out.write(FLUSH);
142+ return out.bytes();
143+ }
137144 out.write(pkt("ready\n"));
138145 out.write(DELIM);
139146 }
addedapps/diffinery/src/text-modules.d.ts+5−0View file
@@ -1,0 +1,5 @@
1+// Text modules (wrangler's default rule imports *.txt as a string).
2+declare module "*.txt" {
3+ const text: string;
4+ export default text;
5+}
modifiedapps/diffinery/src/web/account.tsx+45−77View file
@@ -7,6 +7,7 @@
77 import { HttpError } from "../lib/util.js";
88 import type { Role } from "../repo/types.js";
99 import { ICONS } from "./assets.js";
10+import { KCheckbox, KRadio, KSelect } from "./kumo.js";
1011 import { csrfToken } from "./csrf.js";
1112 import { Auth } from "../auth/sessions.js";
1213 import { browserAccount, deviceLabel, invitePasskeyPage } from "./auth.js";
@@ -247,16 +248,14 @@
247248 <div class="row" style="align-items:flex-end">
248249 <div class="field" style="min-width:180px">
249250 <label for="owner">Owner</label>
250- <select id="owner" name="owner">
251- <option value={me.login} selected={values.owner === me.login}>
252- {me.login}
253- </option>
254- {orgs.map((o) => (
255- <option value={o.login} selected={values.owner === o.login}>
256- {o.login}
257- </option>
258- ))}
259- </select>
251+ <KSelect
252+ id="owner"
253+ name="owner"
254+ block
255+ label="Owner"
256+ value={orgs.some((o) => o.login === values.owner) ? values.owner : me.login}
257+ options={[me.login, ...orgs.map((o) => o.login)].map((l) => ({ value: l, label: l }))}
258+ />
260259 </div>
261260 <div class="field" style="padding-bottom:8px">/</div>
262261 <div class="field grow">
@@ -272,17 +271,18 @@
272271 </div>
273272 <div class="field">
274273 <label>Visibility</label>
275- {(
276- [
277- ["private", "Private", "Only you, collaborators and organization members can see it."],
278- ["internal", "Internal", "Everyone signed in to this Diffinery instance can see it."],
279- ["public", "Public", "Anyone on the internet can see and clone it."],
280- ] as const
281- ).map(([v, l, d]) => (
282- <label class="inline" style="margin:4px 0">
283- <input type="radio" name="visibility" value={v} checked={(values.visibility || "private") === v} /> <b>{l}</b> <span class="muted small">— {d}</span>
284- </label>
285- ))}
274+ <KRadio
275+ name="visibility"
276+ label="Visibility"
277+ value={values.visibility || "private"}
278+ items={(
279+ [
280+ ["private", "Private", "Only you, collaborators and organization members can see it."],
281+ ["internal", "Internal", "Everyone signed in to this Diffinery instance can see it."],
282+ ["public", "Public", "Anyone on the internet can see and clone it."],
283+ ] as const
284+ ).map(([v, l, d]) => ({ value: v, label: l, description: d }))}
285+ />
286286 </div>
287287 <div class="field" style="max-width:280px">
288288 <label for="branch">Default branch</label>
@@ -817,24 +817,22 @@
817817 </div>
818818 <div class="field">
819819 <label>Scope</label>
820- {SCOPES.map((s) => (
821- <label class="inline" style="margin-right:16px">
822- <input type="radio" name="scope" value={s} checked={s === "write"} /> {s}
823- </label>
824- ))}
820+ <KRadio name="scope" label="Scope" orientation="horizontal" value="write" items={SCOPES.map((s) => ({ value: s, label: s }))} />
825821 <div class="hint">read: clone and view · write: push, issues, pull requests, runs (up to maintain) · admin: everything you can do, including settings.</div>
826822 </div>
827823 <div class="field">
828824 <label for="repos">
829825 Restrict to repositories <span class="faint">(optional)</span>
830826 </label>
831- <select id="repos" name="repos" multiple size={Math.min(6, Math.max(3, repos.length))}>
832- {repos.map((r) => (
833- <option value={r.id}>
834- {r.owner_login}/{r.name}
835- </option>
836- ))}
837- </select>
827+ <KSelect
828+ id="repos"
829+ name="repos"
830+ multiple
831+ block
832+ label="Restrict to repositories"
833+ placeholder="Every repository you can access"
834+ options={repos.map((r) => ({ value: String(r.id), label: `${r.owner_login}/${r.name}` }))}
835+ />
838836 <div class="hint">Leave empty for access to every repository you can access.</div>
839837 </div>
840838 <button class="btn primary">Create token</button>
@@ -936,13 +934,7 @@
936934 </div>
937935 <div class="field m0">
938936 <label>Scope</label>
939- <select name="scope">
940- {SCOPES.map((s) => (
941- <option value={s} selected={s === "write"}>
942- {s}
943- </option>
944- ))}
945- </select>
937+ <KSelect name="scope" label="Scope" value="write" options={SCOPES.map((s) => ({ value: s, label: s }))} />
946938 </div>
947939 <div class="field m0" style="width:110px">
948940 <label>Days</label>
@@ -977,23 +969,19 @@
977969 <div class="row" style="align-items:flex-start">
978970 <div class="field grow">
979971 <label for="aowner">Owner</label>
980- <select id="aowner" name="owner">
981- <option value="">{me.login} (you)</option>
982- {orgs.map((o) => (
983- <option value={o.id}>{o.login} (organization)</option>
984- ))}
985- </select>
972+ <KSelect
973+ id="aowner"
974+ name="owner"
975+ block
976+ label="Owner"
977+ value=""
978+ options={[{ value: "", label: `${me.login} (you)` }, ...orgs.map((o) => ({ value: String(o.id), label: `${o.login} (organization)` }))]}
979+ />
986980 <div class="hint">An agent can never do more than its owner.</div>
987981 </div>
988982 <div class="field grow">
989983 <label for="arole">Maximum role</label>
990- <select id="arole" name="maxRole">
991- {ROLES.map((r) => (
992- <option value={r} selected={r === "write"}>
993- {r}
994- </option>
995- ))}
996- </select>
984+ <KSelect id="arole" name="maxRole" block label="Maximum role" value="write" options={ROLES.map((r) => ({ value: r, label: r }))} />
997985 </div>
998986 </div>
999987 <button class="btn primary">Create agent</button>
@@ -1217,13 +1205,7 @@
12171205 <span class="badge green">{u.status}</span>
12181206 ) : (
12191207 <Form action={`/settings/admin/users/${u.id}/status`} t={t} class="row" style="gap:6px;flex-wrap:nowrap">
1220- <select name="status" style="width:auto;padding:3px 6px">
1221- {(["active", "pending", "disabled"] as const).map((s) => (
1222- <option value={s} selected={u.status === s}>
1223- {s}
1224- </option>
1225- ))}
1226- </select>
1208+ <KSelect name="status" size="sm" label={`Status of ${u.login}`} value={u.status} options={(["active", "pending", "disabled"] as const).map((s) => ({ value: s, label: s }))} />
12271209 <button class="btn sm">Save</button>
12281210 </Form>
12291211 )}
@@ -1487,13 +1469,7 @@
14871469 {isAdmin && (isOwner || m.role !== "owner") ? (
14881470 <Form action={`${base}/-/org/members`} t={t} class="row" style="gap:6px;flex-wrap:nowrap">
14891471 <input type="hidden" name="login" value={m.login} />
1490- <select name="role" style="width:auto;padding:3px 6px">
1491- {(isOwner ? ["owner", "admin", "member"] : ["admin", "member"]).map((r) => (
1492- <option value={r} selected={m.role === r}>
1493- {r}
1494- </option>
1495- ))}
1496- </select>
1472+ <KSelect name="role" size="sm" label={`Role of ${m.login}`} value={m.role} options={(isOwner ? ["owner", "admin", "member"] : ["admin", "member"]).map((r) => ({ value: r, label: r }))} />
14971473 <button class="btn sm">Save</button>
14981474 </Form>
14991475 ) : (
@@ -1529,11 +1505,7 @@
15291505 </div>
15301506 <div class="field m0">
15311507 <label>Role</label>
1532- <select name="role">
1533- <option value="member">member</option>
1534- <option value="admin">admin</option>
1535- {isOwner ? <option value="owner">owner</option> : null}
1536- </select>
1508+ <KSelect name="role" block label="Role" value="member" options={(isOwner ? ["member", "admin", "owner"] : ["member", "admin"]).map((r) => ({ value: r, label: r }))} />
15371509 </div>
15381510 <button class="btn primary">Add</button>
15391511 </div>
@@ -1580,11 +1552,7 @@
15801552 </div>
15811553 <div class="field m0">
15821554 <label>Role</label>
1583- <select name="role">
1584- <option value="member">member</option>
1585- <option value="admin">admin</option>
1586- {isOwner ? <option value="owner">owner</option> : null}
1587- </select>
1555+ <KSelect name="role" block label="Role" value="member" options={(isOwner ? ["member", "admin", "owner"] : ["member", "admin"]).map((r) => ({ value: r, label: r }))} />
15881556 </div>
15891557 <button class="btn primary">Create invite</button>
15901558 </div>
modifiedapps/diffinery/src/web/actions.tsx+32−36View file
@@ -7,6 +7,7 @@
77 import type { JobInfo, RunInfo } from "../repo/actions.js";
88 import { atLeast } from "../repo/types.js";
99 import { ICONS } from "./assets.js";
10+import { KCheckbox, KSelect } from "./kumo.js";
1011 import { csrfToken } from "./csrf.js";
1112 import { Actor, Form, Markdown, Pager, Status, Time, act, duration, encPath, fmtBytes, pageNum, post, qs, refNames, render, repoUrl, shortSha, type WebApp, prm } from "./ui.js";
1213
@@ -173,25 +174,20 @@
173174 <input type="hidden" name="workflow" value={selected.path} />
174175 <div class="field" style="max-width:320px">
175176 <label>Use workflow from</label>
176- <select name="ref">
177- {names.branches.map((b) => (
178- <option value={b} selected={b === repo.default_branch}>
179- {b}
180- </option>
181- ))}
182- {names.tags.map((tg) => (
183- <option value={tg}>tag: {tg}</option>
184- ))}
185- </select>
177+ <KSelect
178+ name="ref"
179+ block
180+ label="Use workflow from"
181+ value={names.branches.includes(repo.default_branch) ? repo.default_branch : undefined}
182+ options={[...names.branches.map((b) => ({ value: b, label: b })), ...names.tags.map((tg) => ({ value: tg, label: `tag: ${tg}` }))]}
183+ />
186184 </div>
187185 {Object.entries(inputs).map(([name, d]) => (
188186 <div class="field" style="max-width:520px">
189187 {d.type === "boolean" ? (
190188 <>
191189 <input type="hidden" name={`in_${name}`} value="false" />
192- <label class="inline">
193- <input type="checkbox" name={`in_${name}`} value="true" checked={d.default === true || d.default === "true"} /> {d.description ?? name}
194- </label>
190+ <KCheckbox name={`in_${name}`} value="true" checked={d.default === true || d.default === "true"} label={d.description ?? name} />
195191 </>
196192 ) : (
197193 <>
@@ -199,13 +195,13 @@
199195 {d.description ?? name} {d.required ? <span class="bad">*</span> : null}
200196 </label>
201197 {d.type === "choice" && d.options?.length ? (
202- <select name={`in_${name}`}>
203- {d.options.map((o) => (
204- <option value={o} selected={String(d.default ?? "") === o}>
205- {o}
206- </option>
207- ))}
208- </select>
198+ <KSelect
199+ name={`in_${name}`}
200+ block
201+ label={d.description ?? name}
202+ value={d.options.includes(String(d.default ?? "")) ? String(d.default ?? "") : undefined}
203+ options={d.options.map((o) => ({ value: o, label: o }))}
204+ />
209205 ) : (
210206 <input type={d.type === "number" ? "number" : "text"} name={`in_${name}`} value={d.default === undefined || d.default === null ? "" : String(d.default)} required={!!d.required} />
211207 )}
@@ -226,22 +222,22 @@
226222 <span class="grow" />
227223 <form method="get" action={`${base}/actions`} class="row" style="gap:6px">
228224 {workflow ? <input type="hidden" name="workflow" value={workflow} /> : null}
229- <select name="branch" style="width:auto;padding:3px 6px">
230- <option value="">All branches</option>
231- {names.branches.map((b) => (
232- <option value={b} selected={b === branch}>
233- {b}
234- </option>
235- ))}
236- </select>
237- <select name="status" style="width:auto;padding:3px 6px">
238- <option value="">Any status</option>
239- {["queued", "in_progress", "completed", "success", "failure", "cancelled"].map((s) => (
240- <option value={s} selected={s === status}>
241- {s.replace("_", " ")}
242- </option>
243- ))}
244- </select>
225+ <KSelect
226+ name="branch"
227+ size="sm"
228+ label="Branch"
229+ autosubmit
230+ value={branch && names.branches.includes(branch) ? branch : ""}
231+ options={[{ value: "", label: "All branches" }, ...names.branches.map((b) => ({ value: b, label: b }))]}
232+ />
233+ <KSelect
234+ name="status"
235+ size="sm"
236+ label="Status"
237+ autosubmit
238+ value={status ?? ""}
239+ options={[{ value: "", label: "Any status" }, ...["queued", "in_progress", "completed", "success", "failure", "cancelled"].map((s) => ({ value: s, label: s.replace("_", " ") }))]}
240+ />
245241 <button class="btn sm">Filter</button>
246242 </form>
247243 </div>
modifiedapps/diffinery/src/web/assets.ts+38−6View file
@@ -1,6 +1,11 @@
11 /** Inline stylesheet, client script and icons for the web UI (no external assets). */
22
33 export const CSS = `
4+/* Cascade order: the site's own styles first, then Kumo's (build/islands/kumo.css, confined to .dfy-k
5+ islands), then island layout. kumo-reset reverts site styles inside islands so Kumo controls look
6+ exactly like Kumo. */
7+@layer site,kumo-reset,properties,theme,base,components,utilities,islands;
8+@layer site{
49 :root{color-scheme:light dark;
510 /* Colors, radii and type follow Cloudflare's Kumo design system tokens (kumo-ui.com, MIT). */
611 --canvas:oklch(98.75% 0 0);--bg:#fff;--bg2:oklch(98% 0 0);--bg3:oklch(96% 0 0);--bg-hover:oklch(97% 0 0);
@@ -60,12 +65,11 @@
6065 .btn.danger{color:var(--red)}.btn.danger:hover{background:var(--red);border-color:var(--red);color:#fff}
6166 .btn.sm{padding:3px 8px;font-size:12px}.btn.link{border-color:transparent;background:none;color:var(--accent);padding:0}
6267 .btn[disabled]{opacity:.5;cursor:not-allowed}
63-input[type=text],input[type=search],input[type=email],input[type=number],input[type=url],input[type=password],input:not([type]),select,textarea{
68+input[type=text],input[type=search],input[type=email],input[type=number],input[type=url],input[type=password],input:not([type]),textarea{
6469 width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg);color:var(--fg);font:inherit}
6570 textarea{min-height:120px;resize:vertical;font-family:var(--sans)}textarea.code{font-family:var(--mono);font-size:12.5px;min-height:420px;tab-size:4;white-space:pre}
66-input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--focus) 25%,transparent);outline-offset:0;border-color:color-mix(in srgb,var(--focus) 50%,transparent)}
71+input:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--focus) 25%,transparent);outline-offset:0;border-color:color-mix(in srgb,var(--focus) 50%,transparent)}
6772 :focus-visible{outline:2px solid color-mix(in srgb,var(--focus) 35%,transparent);outline-offset:2px}
68-input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
6973 label{display:block;font-weight:550;margin:0 0 4px}label.inline{display:inline-flex;align-items:center;gap:6px;font-weight:400}
7074 .field{margin:0 0 14px}.field .hint{font-size:12px;color:var(--fg2);margin-top:4px;font-weight:400}
7175 .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}
@@ -145,7 +149,7 @@
145149 table.diff tr:hover .addc{visibility:visible}
146150 table.diff tr.thread td{background:var(--bg2);padding:8px 12px;font-family:var(--sans);font-size:14px;white-space:normal}
147151 .filehead{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg2);border-bottom:1px solid var(--border);cursor:pointer;position:sticky;top:52px;z-index:5;flex-wrap:wrap}
148-details.file{border:1px solid var(--border);border-radius:var(--r);margin:0 0 14px;overflow:hidden}
152+details.file{border:1px solid var(--border);border-radius:var(--r);margin:0 0 14px;overflow:clip}
149153 details.file>summary{list-style:none}details.file>summary::-webkit-details-marker{display:none}
150154 details.file:not([open])>.filehead{border-bottom:0}
151155 .stat-add{color:var(--green);font-weight:600}.stat-del{color:var(--red);font-weight:600}
@@ -229,7 +233,35 @@
229233 .authcard{max-width:440px;margin:56px auto}.authcard .body{padding:28px}.authcard h1{font-size:24px;margin:12px 0 8px}
230234 .authmark{width:44px;height:44px;border-radius:var(--r);display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand)}.authmark svg{width:22px;height:22px}
231235 .authfoot{margin-top:20px;padding-top:14px;border-top:1px solid var(--border)}.authfoot p{margin:0 0 6px}
236+.kstack{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0 0 8px}
232237 .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
238+.task-box{display:inline-block;width:14px;height:14px;margin:0 4px -2px 0;border-radius:4px;box-shadow:inset 0 0 0 1px var(--border);background:var(--bg)}
239+.task-box.on{background:var(--fg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='white' d='M232.49 80.49l-128 128a12 12 0 0 1-17 0l-56-56a12 12 0 1 1 17-17L96 183 215.51 63.51a12 12 0 0 1 17 17Z'/%3E%3C/svg%3E") center/10px no-repeat;box-shadow:none}
240+@media (prefers-color-scheme:dark){.task-box.on{filter:invert(1)}}
241+}
242+@layer kumo-reset{.dfy-k,.dfy-k :not(svg,svg *){all:revert}}
243+@layer islands{
244+.dfy-k{display:inline-block;vertical-align:middle;font:14px/1.5 var(--sans);color:var(--fg);text-align:left;font-weight:400}
245+.dfy-k.block{display:block}.dfy-k.block .dfy-k-select{display:block}
246+.dfy-k-select{display:inline-block}
247+.dfy-k-portal{display:block}
248+.dfy-k.block [data-kumo-part=trigger]{width:100%}
249+.dfy-k-desc{display:block;color:var(--fg2);font-size:12px;font-weight:400}
250+.dfy-k-html .muted{color:var(--fg2)}.dfy-k-html .small{font-size:12px}.dfy-k-html .mono,.dfy-k-html code{font-family:var(--mono);font-size:12.5px}
251+.dfy-k-html .ok{color:var(--green)}.dfy-k-html .bad{color:var(--red)}
252+.dfy-k-html .lbl{display:inline-block;padding:0 8px;border-radius:999px;font-size:12px;font-weight:550;line-height:20px;background:color-mix(in srgb,var(--lc) 18%,transparent);color:color-mix(in srgb,var(--lc) 70%,var(--fg));border:1px solid color-mix(in srgb,var(--lc) 40%,transparent)}
253+.dfy-k-html code{background:var(--code-bg);padding:1px 5px;border-radius:4px}
254+.kf-select{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-width:120px;height:36px;padding:0 12px;border-radius:8px;background:var(--bg);box-shadow:0 0 0 1px var(--border);color:var(--fg);white-space:nowrap}
255+.kf-select.sm{height:26px;padding:0 8px;border-radius:6px;font-size:12px;min-width:90px}.kf-select.xs{height:20px;padding:0 6px;border-radius:4px;font-size:12px;min-width:70px}
256+.dfy-k.block .kf-select{display:flex;width:100%}
257+.kf-select svg{color:var(--fg3);flex:none}.kf-ph{color:var(--fg3)}
258+.kf-check{display:inline-flex;align-items:flex-start;gap:8px}
259+.kf-box,.kf-dot{width:16px;height:16px;margin-top:2px;flex:none;box-shadow:0 0 0 1px var(--border);background:var(--bg)}
260+.kf-box{border-radius:4px}.kf-box.on{background:var(--fg);box-shadow:none}
261+.kf-dot{border-radius:50%}.kf-dot.on{box-shadow:inset 0 0 0 5px var(--fg)}
262+.kf-radio{display:flex;flex-direction:column;gap:8px}.kf-radio.horizontal{flex-direction:row;gap:16px;flex-wrap:wrap}
263+.kf-desc{display:block;color:var(--fg2);font-size:12px}
264+}
233265 `;
234266
235267 /** Client behaviour: palette, shortcuts, copy buttons, live updates, line comments. */
@@ -301,7 +333,7 @@
301333 let g=0;
302334 d.addEventListener('keydown',e=>{
303335 if((e.metaKey||e.ctrlKey)&&!e.altKey&&e.key.toLowerCase()==='k'){e.preventDefault();openPalette();return}
304- const t=e.target;if(t&&t.closest&&t.closest('input,textarea,select,[contenteditable],dialog'))return;
336+ const t=e.target;if(t&&t.closest&&t.closest('input,textarea,select,[contenteditable],dialog,.dfy-k,[role=listbox]'))return;
305337 if(e.metaKey||e.ctrlKey||e.altKey)return;
306338 if(g&&Date.now()-g<1500){g=0;const m={c:'',i:'/issues',p:'/pulls',a:'/actions',s:'/settings'}[e.key];if(repo&&m!==undefined){e.preventDefault();location.href='/'+repo+m}else if(e.key==='d'){location.href='/'}else if(e.key==='n'){location.href='/notifications'}return}
307339 if(e.key==='g'){g=Date.now();return}
@@ -324,7 +356,7 @@
324356 clearTimeout(timer);timer=setTimeout(refresh,350)}
325357 async function refresh(){const frags=$$('[data-fragment]');if(!frags.length){location.reload();return}
326358 try{const r=await fetch(location.href,{credentials:'same-origin'});if(!r.ok)return;const doc=new DOMParser().parseFromString(await r.text(),'text/html');
327- for(const f of frags){if(f.contains(d.activeElement)&&d.activeElement!==b)continue;const n=doc.querySelector('[data-fragment="'+f.dataset.fragment+'"]');if(n)f.replaceWith(d.importNode(n,true))}}catch(_){}}
359+ const kp=d.getElementById('dfy-k-portal');if(kp&&kp.childElementCount){setTimeout(refresh,1500);return}for(const f of frags){if(f.contains(d.activeElement)&&d.activeElement!==b)continue;const n=doc.querySelector('[data-fragment="'+f.dataset.fragment+'"]');if(n)f.replaceWith(d.importNode(n,true))}}catch(_){}}
328360 function clean(s){return s.replace(/\\x1b\\[[0-9;?]*[A-Za-z]/g,'')}
329361 function section(step){let s=$('.log [data-step="'+step+'"]');if(!s){const log=$('.log');if(!log)return null;s=d.createElement('details');s.open=true;s.dataset.step=step;
330362 const sm=d.createElement('summary');sm.innerHTML='<span class="st spin run"></span>';sm.append(step<0?'Set up job':'Step '+(step+1));s.append(sm,d.createElement('pre'));log.append(s)}
modifiedapps/diffinery/src/web/code.tsx+30−36View file
@@ -6,6 +6,7 @@
66 import { HttpError } from "../lib/util.js";
77 import { atLeast, globToRegExp } from "../repo/types.js";
88 import { ICONS } from "./assets.js";
9+import { KCheckbox, KRadio, KSelect } from "./kumo.js";
910 import { csrfToken, type FormData } from "./csrf.js";
1011 import {
1112 CommitRow,
@@ -323,18 +324,31 @@
323324 </textarea>
324325 </div>
325326 <div class="field">
326- {canDirect ? (
327- <label class="inline" style="margin-bottom:6px">
328- <input type="radio" name="choice" value="direct" checked={v.choice === "direct"} /> Commit directly to the <code>{ref}</code> branch
329- </label>
330- ) : (
327+ {canDirect ? null : (
331328 <p class="muted small">
332329 {raw(ICONS.shield)} <code>{ref}</code> is protected; your change goes to a new branch and a pull request.
333330 </p>
334331 )}
335- <label class="inline">
336- <input type="radio" name="choice" value="branch" checked={v.choice === "branch" || !canDirect} /> Create a new branch for this commit and start a pull request:
337- </label>
332+ <KRadio
333+ name="choice"
334+ label="Where to commit"
335+ value={canDirect && v.choice === "direct" ? "direct" : "branch"}
336+ items={[
337+ ...(canDirect
338+ ? [
339+ {
340+ value: "direct",
341+ label: (
342+ <>
343+ Commit directly to the <code>{ref}</code> branch
344+ </>
345+ ),
346+ },
347+ ]
348+ : []),
349+ { value: "branch", label: "Create a new branch for this commit and start a pull request:" },
350+ ]}
351+ />
338352 <input type="text" name="new_branch" value={v.newBranch} style="max-width:320px;margin:6px 0 0 24px" class="mono" aria-label="New branch name" />
339353 </div>
340354 <button class="btn primary">Commit changes</button>
@@ -397,27 +411,15 @@
397411 <form method="get" action={`${base}/compare`} class="box">
398412 <div class="body row">
399413 {raw(ICONS.branch)}
400- <label class="inline">
414+ <span class="row" style="gap:6px">
401415 base:
402- <select name="base" style="width:auto">
403- {all.map((n) => (
404- <option value={n} selected={n === baseRef}>
405- {n}
406- </option>
407- ))}
408- </select>
409- </label>
416+ <KSelect name="base" size="sm" label="Base branch" value={all.includes(baseRef) ? baseRef : undefined} options={all.map((n) => ({ value: n, label: n }))} />
417+ </span>
410418 <span class="faint">←</span>
411- <label class="inline">
419+ <span class="row" style="gap:6px">
412420 compare:
413- <select name="head" style="width:auto">
414- {all.map((n) => (
415- <option value={n} selected={n === headRef}>
416- {n}
417- </option>
418- ))}
419- </select>
420- </label>
421+ <KSelect name="head" size="sm" label="Compare branch" value={all.includes(headRef) ? headRef : undefined} options={all.map((n) => ({ value: n, label: n }))} />
422+ </span>
421423 <button class="btn sm">Compare</button>
422424 {cmp ? (
423425 <span class="muted small" style="margin-left:auto">
@@ -471,9 +473,7 @@
471473 </textarea>
472474 </div>
473475 <div class="row between">
474- <label class="inline">
475- <input type="checkbox" name="draft" value="1" checked={v.draft} /> Create as draft
476- </label>
476+ <KCheckbox name="draft" checked={v.draft} label="Create as draft" />
477477 <button class="btn green">Create pull request</button>
478478 </div>
479479 </div>
@@ -979,13 +979,7 @@
979979 </div>
980980 <div class="field m0">
981981 <label>From</label>
982- <select name="from">
983- {branches.map((b) => (
984- <option value={b.name} selected={b.isDefault}>
985- {b.name}
986- </option>
987- ))}
988- </select>
982+ <KSelect name="from" label="From" value={branches.find((b) => b.isDefault)?.name} options={branches.map((b) => ({ value: b.name, label: b.name }))} />
989983 </div>
990984 <button class="btn primary">Create branch</button>
991985 </div>
modifiedapps/diffinery/src/web/collab.tsx+44−33View file
@@ -7,6 +7,7 @@
77 import type { Check, Comment, Issue, Mergeability, Review } from "../repo/collab.js";
88 import { atLeast, type Role } from "../repo/types.js";
99 import { ICONS } from "./assets.js";
10+import { KCheckbox, KRadio, KSelect } from "./kumo.js";
1011 import { csrfToken } from "./csrf.js";
1112 import {
1213 Actor,
@@ -445,18 +446,16 @@
445446 Edit labels
446447 </summary>
447448 <Form action={`${base}/issues/${x.issue.number}/labels`} t={t} class="mt" style="margin-top:8px">
448- {x.labels.map((l) => (
449- <label class="inline" style="margin:3px 0">
450- <input type="checkbox" name="labels" value={l.name} checked={x.issue.labels.includes(l.name)} /> <Label name={l.name} color={l.color} />
451- </label>
452- ))}
453- {x.issue.labels
454- .filter((l) => !colors.has(l))
455- .map((l) => (
456- <label class="inline" style="margin:3px 0">
457- <input type="checkbox" name="labels" value={l} checked /> <Label name={l} />
458- </label>
449+ <div class="kstack">
450+ {x.labels.map((l) => (
451+ <KCheckbox name="labels" value={l.name} checked={x.issue.labels.includes(l.name)} label={<Label name={l.name} color={l.color} />} />
459452 ))}
453+ {x.issue.labels
454+ .filter((l) => !colors.has(l))
455+ .map((l) => (
456+ <KCheckbox name="labels" value={l} checked label={<Label name={l} />} />
457+ ))}
458+ </div>
460459 <input type="text" name="new_label" placeholder="New label…" style="margin:6px 0" />
461460 <button class="btn sm">Apply</button>
462461 </Form>
@@ -690,14 +689,25 @@
690689 <div>
691690 <Form action={`${base}/pull/${i.number}/merge`} t={csrfToken(x.c)} class="row" confirm={bypass ? "Merge without meeting the branch requirements?" : undefined}>
692691 <input type="hidden" name="expected_head" value={p.headSha} />
693- <select name="method" style="width:auto">
694- <option value="merge">Create a merge commit</option>
695- <option value="squash">Squash and merge</option>
696- <option value="rebase">Rebase and merge (fast-forward)</option>
697- </select>
698- <label class="inline">
699- <input type="checkbox" name="delete_branch" value="1" checked /> Delete <span class="mono">{p.head}</span> after merge
700- </label>
692+ <KSelect
693+ name="method"
694+ label="Merge method"
695+ value="merge"
696+ options={[
697+ { value: "merge", label: "Create a merge commit" },
698+ { value: "squash", label: "Squash and merge" },
699+ { value: "rebase", label: "Rebase and merge (fast-forward)" },
700+ ]}
701+ />
702+ <KCheckbox
703+ name="delete_branch"
704+ checked
705+ label={
706+ <>
707+ Delete <span class="mono">{p.head}</span> after merge
708+ </>
709+ }
710+ />
701711 <span class="grow" />
702712 {m.mergeable ? (
703713 <button class="btn green">Merge pull request</button>
@@ -730,15 +740,16 @@
730740 <textarea name="body" placeholder="Review summary (Markdown)"></textarea>
731741 </div>
732742 <div class="field">
733- <label class="inline">
734- <input type="radio" name="event" value="COMMENT" checked /> Comment
735- </label>
736- <label class="inline">
737- <input type="radio" name="event" value="APPROVE" disabled={!canApprove} /> <span class="ok">Approve</span>
738- </label>
739- <label class="inline">
740- <input type="radio" name="event" value="REQUEST_CHANGES" disabled={!canApprove} /> <span class="bad">Request changes</span>
741- </label>
743+ <KRadio
744+ name="event"
745+ label="Review type"
746+ value="COMMENT"
747+ items={[
748+ { value: "COMMENT", label: "Comment" },
749+ { value: "APPROVE", label: <span class="ok">Approve</span>, disabled: !canApprove },
750+ { value: "REQUEST_CHANGES", label: <span class="bad">Request changes</span>, disabled: !canApprove },
751+ ]}
752+ />
742753 </div>
743754 <button class="btn primary">Submit review</button>
744755 </Form>
@@ -985,11 +996,11 @@
985996 {labels.length && atLeast(l.caller.role, "triage") ? (
986997 <div class="field">
987998 <label>Labels</label>
988- {labels.map((lb) => (
989- <label class="inline" style="margin-right:12px">
990- <input type="checkbox" name="labels" value={lb.name} checked={v.labels.includes(lb.name)} /> <Label name={lb.name} color={lb.color} />
991- </label>
992- ))}
999+ <div class="row" style="gap:6px 16px">
1000+ {labels.map((lb) => (
1001+ <KCheckbox name="labels" value={lb.name} checked={v.labels.includes(lb.name)} label={<Label name={lb.name} color={lb.color} />} />
1002+ ))}
1003+ </div>
9931004 </div>
9941005 ) : null}
9951006 <button class="btn green">Submit new issue</button>
addedapps/diffinery/src/web/kumo.tsx+148−0View file
@@ -1,0 +1,148 @@
1+/** @jsxImportSource hono/jsx */
2+/**
3+ * Kumo form controls (kumo-ui.com) for the server-rendered pages.
4+ *
5+ * Every select, checkbox and radio on the site is a Kumo component: the server renders a
6+ * look-alike placeholder plus the hidden inputs the form submits, and the islands bundle
7+ * (../../islands/kumo.tsx, built into build/islands/) mounts the real component over it.
8+ * Never render a native <select>, checkbox or radio; use KSelect, KCheckbox and KRadio.
9+ */
10+import { raw } from "hono/html";
11+import type { Child } from "hono/jsx";
12+import KUMO_JS from "../../build/islands/kumo.js.txt";
13+import KUMO_CSS from "../../build/islands/kumo.css.txt";
14+import { escapeHtml } from "./markdown.js";
15+import type { WebApp } from "./ui.js";
16+
17+// ---------------------------------------------------------------- assets
18+
19+/** FNV-1a, enough to give each build its own immutable URL. */
20+function fnv(s: string): string {
21+ let h = 0x811c9dc5;
22+ for (let i = 0; i < s.length; i++) h = Math.imul(h ^ s.charCodeAt(i), 0x01000193);
23+ return (h >>> 0).toString(36);
24+}
25+let urls: { js: string; css: string } | undefined;
26+export function kumoAssets(): { js: string; css: string } {
27+ urls ??= { js: `/-/kumo/${fnv(KUMO_JS)}.js`, css: `/-/kumo/${fnv(KUMO_CSS)}.css` };
28+ return urls;
29+}
30+
31+export function registerKumoAssets(web: WebApp): void {
32+ web.get("/-/kumo/:file", (c) => {
33+ const { js, css } = kumoAssets();
34+ const path = c.req.path;
35+ const headers = { "cache-control": "public, max-age=31536000, immutable", "x-content-type-options": "nosniff" };
36+ if (path === js) return c.body(KUMO_JS, 200, { ...headers, "content-type": "text/javascript; charset=utf-8" });
37+ if (path === css) return c.body(KUMO_CSS, 200, { ...headers, "content-type": "text/css; charset=utf-8" });
38+ return c.text("Not found", 404);
39+ });
40+}
41+
42+// ---------------------------------------------------------------- helpers
43+
44+/** Server-rendered HTML for a label (hono JSX escapes text; plain strings are escaped here). */
45+function htmlOf(c: Child): string {
46+ if (c === null || c === undefined || c === false || c === true) return "";
47+ if (typeof c === "string") return escapeHtml(c);
48+ if (typeof c === "number") return String(c);
49+ if (Array.isArray(c)) return c.map(htmlOf).join("");
50+ const s = (c as { toString(): unknown }).toString();
51+ if (typeof s !== "string") throw new Error("Kumo labels must be synchronous JSX");
52+ return s;
53+}
54+
55+const Hidden = ({ name, values }: { name: string; values: string[] }) => (
56+ <>
57+ {values.map((v) => (
58+ <input type="hidden" name={name} value={v} />
59+ ))}
60+ </>
61+);
62+
63+export type KOption = { value: string; label: string };
64+
65+/** Kumo Select. `label` is the accessible name when there is no visible <label>. */
66+export const KSelect = (p: {
67+ name: string;
68+ options: KOption[];
69+ value?: string;
70+ values?: string[];
71+ multiple?: boolean;
72+ placeholder?: string;
73+ label?: string;
74+ size?: "xs" | "sm" | "base";
75+ /** Fill the width of the container (form fields) instead of fitting the content. */
76+ block?: boolean;
77+ /** Submit the form as soon as the value changes (filters). */
78+ autosubmit?: boolean;
79+ disabled?: boolean;
80+ id?: string;
81+}) => {
82+ const values = p.multiple ? (p.values ?? []) : p.value !== undefined ? [p.value] : p.placeholder ? [] : p.options[0] ? [p.options[0].value] : [];
83+ const shown = values.map((v) => p.options.find((o) => o.value === v)?.label ?? v).join(", ");
84+ const props = {
85+ name: p.name,
86+ items: p.options,
87+ value: p.multiple ? undefined : values[0],
88+ values: p.multiple ? values : undefined,
89+ multiple: p.multiple || undefined,
90+ placeholder: p.placeholder,
91+ label: p.label,
92+ size: p.size,
93+ autosubmit: p.autosubmit || undefined,
94+ disabled: p.disabled || undefined,
95+ id: p.id,
96+ };
97+ return (
98+ <span class={`dfy-k${p.block ? " block" : ""}`} data-k="select" data-p={JSON.stringify(props)}>
99+ <span class={`kf-select ${p.size ?? "base"}`} aria-hidden="true">
100+ <span class={shown ? "" : "kf-ph"}>{shown || p.placeholder || ""}</span>
101+ <svg width="14" height="14" viewBox="0 0 256 256" fill="currentColor">
102+ <path d="M181.66 170.34a8 8 0 0 1 0 11.32l-48 48a8 8 0 0 1-11.32 0l-48-48a8 8 0 0 1 11.32-11.32L128 212.69l42.34-42.35a8 8 0 0 1 11.32 0Zm-96-84.68L128 43.31l42.34 42.35a8 8 0 0 0 11.32-11.32l-48-48a8 8 0 0 0-11.32 0l-48 48a8 8 0 0 0 11.32 11.32Z" />
103+ </svg>
104+ </span>
105+ <Hidden name={p.name} values={values} />
106+ </span>
107+ );
108+};
109+
110+/** Kumo Checkbox. Submits `name=value` when checked, nothing otherwise (like a native checkbox). */
111+export const KCheckbox = (p: { name: string; value?: string; checked?: boolean; label?: Child; aria?: string; disabled?: boolean }) => {
112+ const value = p.value ?? "1";
113+ const label = p.label === undefined ? "" : htmlOf(p.label);
114+ const props = { name: p.name, value, checked: !!p.checked || undefined, label, aria: p.aria, disabled: p.disabled || undefined };
115+ return (
116+ <span class="dfy-k" data-k="checkbox" data-p={JSON.stringify(props)}>
117+ <span class="kf-check" aria-hidden="true">
118+ <span class={`kf-box${p.checked ? " on" : ""}`} />
119+ {label ? <span>{raw(label)}</span> : null}
120+ </span>
121+ <Hidden name={p.name} values={p.checked ? [value] : []} />
122+ </span>
123+ );
124+};
125+
126+export type KRadioItem = { value: string; label: Child; description?: Child; disabled?: boolean };
127+
128+/** Kumo Radio group. */
129+export const KRadio = (p: { name: string; value?: string; items: KRadioItem[]; orientation?: "vertical" | "horizontal"; label?: string }) => {
130+ const items = p.items.map((i) => ({ value: i.value, label: htmlOf(i.label), description: i.description === undefined ? undefined : htmlOf(i.description), disabled: i.disabled || undefined }));
131+ const props = { name: p.name, value: p.value, items, orientation: p.orientation, label: p.label };
132+ return (
133+ <span class="dfy-k block" data-k="radio" data-p={JSON.stringify(props)}>
134+ <span class={`kf-radio ${p.orientation ?? "vertical"}`} aria-hidden="true">
135+ {items.map((i) => (
136+ <span class="kf-check">
137+ <span class={`kf-dot${i.value === p.value ? " on" : ""}`} />
138+ <span>
139+ {raw(i.label)}
140+ {i.description ? <span class="kf-desc">{raw(i.description)}</span> : null}
141+ </span>
142+ </span>
143+ ))}
144+ </span>
145+ <Hidden name={p.name} values={p.value === undefined ? [] : [p.value]} />
146+ </span>
147+ );
148+};
modifiedapps/diffinery/src/web/markdown.ts+1−1View file
@@ -501,7 +501,7 @@
501501 let task = "";
502502 const tm = /^\[([ xX])\][ \t]+/.exec(first);
503503 if (tm) {
504- task = `<input type="checkbox" disabled${tm[1] !== " " ? " checked" : ""}> `;
504+ task = tm[1] !== " " ? `<span class="task-box on" role="img" aria-label="Done"></span> ` : `<span class="task-box" role="img" aria-label="To do"></span> `;
505505 first = first.slice(tm[0].length);
506506 }
507507 const body = blocks([first, ...item.slice(1)], opts, depth + 1, !loose);
modifiedapps/diffinery/src/web/repo-settings.tsx+32−50View file
@@ -6,6 +6,7 @@
66 import { HttpError } from "../lib/util.js";
77 import type { ProtectionRules, Role } from "../repo/types.js";
88 import { ICONS } from "./assets.js";
9+import { KCheckbox, KRadio, KSelect } from "./kumo.js";
910 import { csrfToken, type FormData } from "./csrf.js";
1011 import { Actor, CopyButton, Form, ROLES, Time, act, ago, post, refNames, render, repoUrl, statusOf, type WebApp, prm } from "./ui.js";
1112
@@ -104,15 +105,20 @@
104105 <div class="hint">Comma-separated check names, exactly as they appear on pull requests.</div>
105106 </div>
106107 <div class="field">
107- {RULE_FLAGS.map(([key, label, hint]) => (
108- <label class="inline" style="margin:4px 0;align-items:flex-start">
109- <input type="checkbox" name={key} value="1" checked={!!rules[key]} style="margin-top:4px" />
110- <span>
111- {label}
112- {hint ? <span class="muted small"> — {hint}</span> : null}
113- </span>
114- </label>
115- ))}
108+ <div class="kstack" style="gap:8px">
109+ {RULE_FLAGS.map(([key, label, hint]) => (
110+ <KCheckbox
111+ name={key}
112+ checked={!!rules[key]}
113+ label={
114+ <>
115+ {label}
116+ {hint ? <span class="muted small"> — {hint}</span> : null}
117+ </>
118+ }
119+ />
120+ ))}
121+ </div>
116122 </div>
117123 <button class="btn primary">{pattern ? "Save rule" : "Create rule"}</button>
118124 </Form>
@@ -160,24 +166,20 @@
160166 <div class="field" style="max-width:320px">
161167 <label>Default branch</label>
162168 {names.branches.length ? (
163- <select name="default_branch">
164- {names.branches.map((b) => (
165- <option value={b} selected={b === repo.default_branch}>
166- {b}
167- </option>
168- ))}
169- </select>
169+ <KSelect
170+ name="default_branch"
171+ block
172+ label="Default branch"
173+ value={names.branches.includes(repo.default_branch) ? repo.default_branch : undefined}
174+ options={names.branches.map((b) => ({ value: b, label: b }))}
175+ />
170176 ) : (
171177 <input name="default_branch" type="text" value={repo.default_branch} />
172178 )}
173179 </div>
174180 <div class="field">
175181 <label>Visibility</label>
176- {(["private", "internal", "public"] as const).map((v) => (
177- <label class="inline" style="margin-right:16px">
178- <input type="radio" name="visibility" value={v} checked={repo.visibility === v} /> {v}
179- </label>
180- ))}
182+ <KRadio name="visibility" label="Visibility" orientation="horizontal" value={repo.visibility} items={(["private", "internal", "public"] as const).map((v) => ({ value: v, label: v }))} />
181183 <div class="hint">Internal repositories are visible to everyone signed in to this instance; public ones to anyone.</div>
182184 </div>
183185 <button class="btn primary">Save changes</button>
@@ -255,13 +257,7 @@
255257 <td>
256258 <Form action={`${base}/settings/access`} t={t} class="row" style="gap:6px;flex-wrap:nowrap">
257259 <input type="hidden" name="login" value={x.account.login} />
258- <select name="role" style="width:auto;padding:3px 6px">
259- {ROLES.map((r) => (
260- <option value={r} selected={x.role === r}>
261- {r}
262- </option>
263- ))}
264- </select>
260+ <KSelect name="role" size="sm" label={`Role of ${x.account.login}`} value={x.role} options={ROLES.map((r) => ({ value: r, label: r }))} />
265261 <button class="btn sm">Save</button>
266262 </Form>
267263 </td>
@@ -292,13 +288,7 @@
292288 </div>
293289 <div class="field">
294290 <label>Role</label>
295- <select name="role">
296- {ROLES.map((r) => (
297- <option value={r} selected={r === "write"}>
298- {r}
299- </option>
300- ))}
301- </select>
291+ <KSelect name="role" block label="Role" value="write" options={ROLES.map((r) => ({ value: r, label: r }))} />
302292 </div>
303293 <button class="btn primary">Add collaborator</button>
304294 </div>
@@ -314,13 +304,7 @@
314304 </div>
315305 <div class="field">
316306 <label>Role</label>
317- <select name="role">
318- {ROLES.map((r) => (
319- <option value={r} selected={r === "write"}>
320- {r}
321- </option>
322- ))}
323- </select>
307+ <KSelect name="role" block label="Role" value="write" options={ROLES.map((r) => ({ value: r, label: r }))} />
324308 </div>
325309 <button class="btn primary">Create invite link</button>
326310 </div>
@@ -534,14 +518,12 @@
534518 </div>
535519 <div class="field">
536520 <label>Events</label>
537- <label class="inline" style="margin-right:14px">
538- <input type="checkbox" name="events" value="*" checked /> Everything
539- </label>
540- {WEBHOOK_EVENTS.map((e) => (
541- <label class="inline" style="margin-right:14px">
542- <input type="checkbox" name="events" value={e} /> <span class="mono small">{e}</span>
543- </label>
544- ))}
521+ <div class="row" style="gap:8px 18px">
522+ <KCheckbox name="events" value="*" checked label="Everything" />
523+ {WEBHOOK_EVENTS.map((e) => (
524+ <KCheckbox name="events" value={e} label={<span class="mono small">{e}</span>} />
525+ ))}
526+ </div>
545527 </div>
546528 <div class="field" style="max-width:420px">
547529 <label>
modifiedapps/diffinery/src/web/routes.tsx+2−0View file
@@ -10,6 +10,7 @@
1010 import { registerRepoSettings } from "./repo-settings.js";
1111 import { ICONS } from "./assets.js";
1212 import { errorPage } from "./ui.js";
13+import { registerKumoAssets } from "./kumo.js";
1314
1415 /**
1516 * Server-rendered web UI. Mount at "/" after the API, Git and runner routes:
@@ -29,6 +30,7 @@
2930
3031 // Order matters: fixed paths (/settings/tokens, /notifications/:id, …) must be
3132 // registered before the /:owner/:repo patterns they would otherwise match.
33+registerKumoAssets(web);
3234 registerAuth(web);
3335 registerAccount(web);
3436 registerRepoSettings(web);
modifiedapps/diffinery/src/web/ui.tsx+3−0View file
@@ -12,6 +12,7 @@
1212 import { CSS, ICONS, JS, type IconName } from "./assets.js";
1313 import { CSRF_FIELD, csrfToken, verifyCsrf, type FormData } from "./csrf.js";
1414 import { renderMarkdown, type MarkdownBase } from "./markdown.js";
15+import { kumoAssets } from "./kumo.js";
1516
1617 export type WebApp = Hono<{ Bindings: Env; Variables: AppVars }>;
1718 export type Stub = ReturnType<typeof repoStub>;
@@ -337,6 +338,7 @@
337338 <title>{opts.title ? `${opts.title} · Diffinery` : "Diffinery"}</title>
338339 <link rel="icon" href={`data:image/svg+xml,${encodeURIComponent(ICONS.logo.replace("currentColor", "#f6821f"))}`} />
339340 <style>{raw(CSS)}</style>
341+ <link rel="stylesheet" href={kumoAssets().css} />
340342 </head>
341343 <body
342344 data-repo={r ? `${r.repo.owner_login}/${r.repo.name}` : undefined}
@@ -409,6 +411,7 @@
409411 </div>
410412 </dialog>
411413 ) : null}
414+ <script nonce={nonce} src={kumoAssets().js} defer></script>
412415 <script nonce={nonce}>{raw(JS)}</script>
413416 </body>
414417 </html>
modifiedapps/diffinery/test/e2e/e2e.test.mjs+4−1View file
@@ -243,7 +243,10 @@
243243 writeFileSync(join(agentClone, "app.txt"), "one\ntwo\nthree\nfour\n");
244244 git(agentClone, ["commit", "-q", "-am", "Add a fourth line"], agentToken);
245245 assert.match(gitFails(agentClone, ["push", "origin", "HEAD:main"], agentToken), /agent|protected|pull request/i);
246- git(agentClone, ["push", "-q", "origin", "feature"], agentToken);
246+ // push.negotiate=true makes git run a protocol v2 fetch with wait-for-done before pushing.
247+ const negotiated = spawnSync("git", ["-c", `http.extraHeader=Authorization: Basic ${Buffer.from(`x-token:${agentToken}`).toString("base64")}`, "-c", "protocol.version=2", "-c", "push.negotiate=true", "push", "-q", "origin", "feature"], { cwd: agentClone, encoding: "utf8", env: { ...process.env, GIT_TERMINAL_PROMPT: "0" } });
248+ assert.equal(negotiated.status, 0, negotiated.stderr);
249+ assert.doesNotMatch(negotiated.stderr, /negotiation failed|unexpected/i);
247250 const pr = await ok("POST", `/repos/${owner}/demo/pulls`, { title: "Add a fourth line", head: "feature", base: "main", intent: "Extend app.txt for the e2e test" }, agentToken);
248251 assert.equal(pr.number, 1);
249252
modifiedapps/diffinery/test/e2e/passkeys.test.mjs+28−0View file
@@ -223,6 +223,34 @@
223223 const anonymous = await fetch(`${base}/auth/passkey/register/options`, { method: "POST", headers: { "content-type": "application/json" }, body: "{}" });
224224 assert.equal(anonymous.status, 401);
225225
226+ // ------------------------------------------------------------ Kumo form controls
227+ // Every select, checkbox and radio is a Kumo component; the forms still post plain fields.
228+ const nativeControls = (p) => p.locator("select:not([aria-hidden]), input[type=checkbox]:not([aria-hidden]), input[type=radio]:not([aria-hidden])").count();
229+ await page.goto(`${base}/new`);
230+ await page.waitForSelector(".dfy-k[data-mounted]");
231+ assert.equal(await nativeControls(page), 0);
232+ await page.fill("#name", "kumo");
233+ await page.getByRole("radio", { name: /Internal/ }).click();
234+ await Promise.all([page.waitForURL(`${base}/pal/kumo`), page.click("button:has-text('Create repository')")]);
235+ await page.goto(`${base}/pal/kumo/settings`);
236+ await page.waitForSelector(".dfy-k[data-mounted]");
237+ assert.equal(await page.locator("input[type=hidden][name=visibility]").getAttribute("value"), "internal");
238+ assert.equal(await page.getByRole("radio", { name: "internal" }).getAttribute("aria-checked"), "true");
239+ await page.goto(`${base}/settings/tokens`);
240+ await page.fill("#tname", "kumo");
241+ await page.click("#repos");
242+ await page.getByRole("option", { name: "pal/kumo" }).click();
243+ await page.keyboard.press("Escape");
244+ await Promise.all([page.waitForLoadState("load"), page.click("button:has-text('Create token')")]);
245+ await page.waitForSelector("text=pal/kumo");
246+ assert.equal(await nativeControls(page), 0);
247+ await boss.page.goto(`${base}/settings/admin`);
248+ await boss.page.waitForSelector(".dfy-k[data-mounted]");
249+ assert.equal(await nativeControls(boss.page), 0);
250+ const kumo = await fetch(`${base}${await page.locator("script[src^='/-/kumo/']").getAttribute("src")}`);
251+ assert.equal(kumo.status, 200);
252+ assert.match(kumo.headers.get("cache-control") ?? "", /immutable/);
253+
226254 // Screenshots for review (kept with E2E_KEEP=1).
227255 if (process.env.E2E_SCREENSHOTS) {
228256 const out = process.env.E2E_SCREENSHOTS;
modifieddocs/PREFERENCES.md+8−4View file
@@ -18,7 +18,11 @@
1818 - The look follows [Kumo](https://kumo-ui.com), Cloudflare's design system:
1919 its color tokens (light and dark), radii, type and focus styles. The tokens
2020 live as CSS variables in `apps/diffinery/src/web/assets.ts`.
21-- Kumo's components are React. Our pages are rendered on the server with
22- `hono/jsx`, so for now we match Kumo's tokens and patterns rather than
23- shipping its components. If a page grows into a client-side app, build it
24- with Kumo components.
21+- Never use a native `<select>`, checkbox or radio. Use the Kumo components
22+ through `KSelect`, `KCheckbox` and `KRadio` from
23+ `apps/diffinery/src/web/kumo.tsx`. The server renders a placeholder and the
24+ hidden inputs the form posts; a small client bundle (`apps/diffinery/islands/`)
25+ mounts the real Kumo component over it. Kumo's stylesheet is confined to those
26+ islands so it can't restyle the rest of the page.
27+- For anything else interactive (menus, dialogs, pickers), reach for the Kumo
28+ component the same way rather than hand-rolling one.
modifiedpnpm-lock.yaml+4008−3010View file
@@ -55,3013 +55,4011 @@
5555 specifier: ^4.13.0
5656 version: 4.13.13
5757 devDependencies:
58- '@cloudflare/vitest-pool-workers':
59- specifier: ^0.23.0
60- version: 0.23.0(@cloudflare/workers-types@5.20261012.1)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1)))
61- '@cloudflare/workers-types':
62- specifier: ^5.20261012.1
63- version: 5.20261012.1
64- playwright:
65- specifier: 1.56.1
66- version: 1.56.1
67- typescript:
68- specifier: ^5.9.3
69- version: 5.9.3
70- vitest:
71- specifier: ^4.1.0
72- version: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))
73- wrangler:
74- specifier: ^4.149.0
75- version: 4.149.0(@cloudflare/workers-types@5.20261012.1)(@types/node@22.20.5)
76-
77- containers/runner:
78- dependencies:
79- '@diffinery/shared':
80- specifier: workspace:*
81- version: link:../../packages/shared
82- '@diffinery/workflow-yaml':
83- specifier: workspace:*
84- version: link:../../packages/workflow-yaml
85- devDependencies:
86- '@types/node':
87- specifier: ^22.0.0
88- version: 22.20.5
89- esbuild:
90- specifier: ^0.25.0
91- version: 0.25.12
92- typescript:
93- specifier: ^5.9.3
94- version: 5.9.3
95- vitest:
96- specifier: ^4.1.0
97- version: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1))
98-
99- packages/git-core:
100- dependencies:
101- diff:
102- specifier: ^8.0.0
103- version: 8.0.4
104- pako:
105- specifier: ^2.1.0
106- version: 2.2.0
107- devDependencies:
108- '@types/node':
109- specifier: ^22.0.0
110- version: 22.20.5
111- '@types/pako':
112- specifier: ^2.0.3
113- version: 2.0.4
114- typescript:
115- specifier: ^5.9.3
116- version: 5.9.3
117- vitest:
118- specifier: ^4.1.0
119- version: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))
120-
121- packages/shared:
122- devDependencies:
123- typescript:
124- specifier: ^5.9.3
125- version: 5.9.3
126-
127- packages/workflow-yaml:
128- dependencies:
129- yaml:
130- specifier: ^2.9.1
131- version: 2.9.1
132- devDependencies:
133- typescript:
134- specifier: ^5.9.3
135- version: 5.9.3
136- vitest:
137- specifier: ^4.1.0
138- version: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))
139-
140-packages:
141-
142- '@cloudflare/containers@0.3.7':
143- resolution: {integrity: sha512-DM9dm3FnIBSyiSJ1FLavKwl/lk3oAmTaynCzZQ9pZR0ncRPquSxkxd8Nu2MFILxmDDsPkxKsSNEh9mHHMty4Fw==}
144-
145- '@cloudflare/kv-asset-handler@0.5.0':
146- resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==}
147- engines: {node: '>=22.0.0'}
148-
149- '@cloudflare/unenv-preset@2.16.1':
150- resolution: {integrity: sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==}
151- peerDependencies:
152- unenv: 2.0.0-rc.24
153- workerd: '>1.20260305.0 <2.0.0-0'
154- peerDependenciesMeta:
155- workerd:
156- optional: true
157-
158- '@cloudflare/unenv-preset@2.16.2':
159- resolution: {integrity: sha512-JBP1+Z7ZSNG/d4mRP+y8VC5dka3tZVMLEZRvS+rzQ4DGV1EoxRFQckcJTTkXbHSQiTj0DtNI01Zwb/V2fX0mvQ==}
160- peerDependencies:
161- unenv: 2.0.0-rc.24
162- workerd: '>1.20260305.0 <2.0.0-0'
163- peerDependenciesMeta:
164- workerd:
165- optional: true
166-
167- '@cloudflare/vitest-pool-workers@0.23.0':
168- resolution: {integrity: sha512-4giZR3fuY9GcTx6Jb7gZX33SUOgeY7rQSm9qSdf9TPfI8i3fP+P1ZA8BM9rMOSoMtLpwo+Zw5zy3v2Ux7iAvNA==}
169- deprecated: '@cloudflare/vitest-pool-workers has been renamed to @cloudflare/vitest-plugin. This package will not receive future updates.'
170- peerDependencies:
171- '@vitest/runner': ^4.1.0
172- '@vitest/snapshot': ^4.1.0
173- vitest: ^4.1.0
174-
175- '@cloudflare/workerd-darwin-64@1.20260815.1':
176- resolution: {integrity: sha512-7PsLdcz6pT9EMd1EJGZEgMyYRfs0CHxGs62PS2L1w3s6+xGmQcRXKm/zoMftmqZF45JBa4MzFeownRKbRt/x5g==}
177- engines: {node: '>=16'}
178- cpu: [x64]
179- os: [darwin]
180-
181- '@cloudflare/workerd-darwin-64@1.20261006.1':
182- resolution: {integrity: sha512-lCX6avJO2It9AyDEYitjmOtJRVp/xmaW0TziyoLAnfxlzozyyRbSFfIIMMCiDx/sTP1++E4VLbV+7BHSD33f0Q==}
183- engines: {node: '>=16'}
184- cpu: [x64]
185- os: [darwin]
186-
187- '@cloudflare/workerd-darwin-arm64@1.20260815.1':
188- resolution: {integrity: sha512-60wtg8ng7FVWeOg/UMbZ9Ye0sslpRRAKoftPbdtuH2volq676quxVr6Zm2EjVULH/JFZeCn72dbLlrnbh0Mpcw==}
189- engines: {node: '>=16'}
190- cpu: [arm64]
191- os: [darwin]
192-
193- '@cloudflare/workerd-darwin-arm64@1.20261006.1':
194- resolution: {integrity: sha512-PyFGjOaldtppnLuKsdkoYWXfLVpDjuf8u+uoykX+1Xvxo2EPmCVViq0iDKm+U7c7PRno85ehS3/MPVXyk2HwHw==}
195- engines: {node: '>=16'}
196- cpu: [arm64]
197- os: [darwin]
198-
199- '@cloudflare/workerd-linux-64@1.20260815.1':
200- resolution: {integrity: sha512-MuqKIHPo0Qyo8MZMmy0lP2B5PeAL7f4T9Fu4Usk3QdbV4JIrKG/OoybN3Ign7m/Dff+L1Oo/ZHydB+hEg1ueFw==}
201- engines: {node: '>=16'}
202- cpu: [x64]
203- os: [linux]
204-
205- '@cloudflare/workerd-linux-64@1.20261006.1':
206- resolution: {integrity: sha512-Ntf9S8eesmVufdjaT2kzWlz6Ng9XGYTc6cHQVRKAg59lFufwsIabGeMT6U4KkrpEeSIxgHq8aPtuLbZXE19tCA==}
207- engines: {node: '>=16'}
208- cpu: [x64]
209- os: [linux]
210-
211- '@cloudflare/workerd-linux-arm64@1.20260815.1':
212- resolution: {integrity: sha512-XNFtJ5rIqJxnY6ISjkfbhT/ODiWJ6LcBvNbntuPD6I/F2k7aZeKgPaXrvWvKde66LXyzFKzc8Hn+Ydx4shevQg==}
213- engines: {node: '>=16'}
214- cpu: [arm64]
215- os: [linux]
216-
217- '@cloudflare/workerd-linux-arm64@1.20261006.1':
218- resolution: {integrity: sha512-JyeDBymVWw5tVRebSsVE8ojDYxd6UlZrAseHU8G+NpIyd5wF61tXlF/axLeCUqu0pOhBFHb8I5QKi0jwrCK41Q==}
219- engines: {node: '>=16'}
220- cpu: [arm64]
221- os: [linux]
222-
223- '@cloudflare/workerd-windows-64@1.20260815.1':
224- resolution: {integrity: sha512-PiIUWrhbMg3quolwjgMvPOd75vKESjT4aDm7nL6mSjL5IOgmpO/zKstXnYfnEH3pq7sC0UCvKlF8ZPcfsh8NMw==}
225- engines: {node: '>=16'}
226- cpu: [x64]
227- os: [win32]
228-
229- '@cloudflare/workerd-windows-64@1.20261006.1':
230- resolution: {integrity: sha512-nWP0URNqOBN9fa/gZ7eh/w051DwjOXN8j4lDZDYVXyQPsux6sV3DfyYZT+CjR/rt9nKBSmJT9QE9/bWT18+84w==}
231- engines: {node: '>=16'}
232- cpu: [x64]
233- os: [win32]
234-
235- '@cloudflare/workers-types@5.20261012.1':
236- resolution: {integrity: sha512-5Y0NrKXG9CZaNUZ6Dt3TLRE4UQe2/DGuxIhTEVYHUl0jAlv1TpQtI59YBAszRpSaZAMzbM8nqGc1n9Z2q4TVyA==}
237-
238- '@cspotcode/source-map-support@0.8.1':
239- resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
240- engines: {node: '>=12'}
241-
242- '@emnapi/runtime@1.11.3':
243- resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==}
244-
245- '@esbuild/aix-ppc64@0.25.12':
246- resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
247- engines: {node: '>=18'}
248- cpu: [ppc64]
249- os: [aix]
250-
251- '@esbuild/aix-ppc64@0.28.1':
252- resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==}
253- engines: {node: '>=18'}
254- cpu: [ppc64]
255- os: [aix]
256-
257- '@esbuild/aix-ppc64@0.28.2':
258- resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==}
259- engines: {node: '>=18'}
260- cpu: [ppc64]
261- os: [aix]
262-
263- '@esbuild/android-arm64@0.25.12':
264- resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
265- engines: {node: '>=18'}
266- cpu: [arm64]
267- os: [android]
268-
269- '@esbuild/android-arm64@0.28.1':
270- resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==}
271- engines: {node: '>=18'}
272- cpu: [arm64]
273- os: [android]
274-
275- '@esbuild/android-arm64@0.28.2':
276- resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==}
277- engines: {node: '>=18'}
278- cpu: [arm64]
279- os: [android]
280-
281- '@esbuild/android-arm@0.25.12':
282- resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
283- engines: {node: '>=18'}
284- cpu: [arm]
285- os: [android]
286-
287- '@esbuild/android-arm@0.28.1':
288- resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==}
289- engines: {node: '>=18'}
290- cpu: [arm]
291- os: [android]
292-
293- '@esbuild/android-arm@0.28.2':
294- resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==}
295- engines: {node: '>=18'}
296- cpu: [arm]
297- os: [android]
298-
299- '@esbuild/android-x64@0.25.12':
300- resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
301- engines: {node: '>=18'}
302- cpu: [x64]
303- os: [android]
304-
305- '@esbuild/android-x64@0.28.1':
306- resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==}
307- engines: {node: '>=18'}
308- cpu: [x64]
309- os: [android]
310-
311- '@esbuild/android-x64@0.28.2':
312- resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==}
313- engines: {node: '>=18'}
314- cpu: [x64]
315- os: [android]
316-
317- '@esbuild/darwin-arm64@0.25.12':
318- resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
319- engines: {node: '>=18'}
320- cpu: [arm64]
321- os: [darwin]
322-
323- '@esbuild/darwin-arm64@0.28.1':
324- resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==}
325- engines: {node: '>=18'}
326- cpu: [arm64]
327- os: [darwin]
328-
329- '@esbuild/darwin-arm64@0.28.2':
330- resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==}
331- engines: {node: '>=18'}
332- cpu: [arm64]
333- os: [darwin]
334-
335- '@esbuild/darwin-x64@0.25.12':
336- resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
337- engines: {node: '>=18'}
338- cpu: [x64]
339- os: [darwin]
340-
341- '@esbuild/darwin-x64@0.28.1':
342- resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==}
343- engines: {node: '>=18'}
344- cpu: [x64]
345- os: [darwin]
346-
347- '@esbuild/darwin-x64@0.28.2':
348- resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==}
349- engines: {node: '>=18'}
350- cpu: [x64]
351- os: [darwin]
352-
353- '@esbuild/freebsd-arm64@0.25.12':
354- resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
355- engines: {node: '>=18'}
356- cpu: [arm64]
357- os: [freebsd]
358-
359- '@esbuild/freebsd-arm64@0.28.1':
360- resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==}
361- engines: {node: '>=18'}
362- cpu: [arm64]
363- os: [freebsd]
364-
365- '@esbuild/freebsd-arm64@0.28.2':
366- resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==}
367- engines: {node: '>=18'}
368- cpu: [arm64]
369- os: [freebsd]
370-
371- '@esbuild/freebsd-x64@0.25.12':
372- resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
373- engines: {node: '>=18'}
374- cpu: [x64]
375- os: [freebsd]
376-
377- '@esbuild/freebsd-x64@0.28.1':
378- resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==}
379- engines: {node: '>=18'}
380- cpu: [x64]
381- os: [freebsd]
382-
383- '@esbuild/freebsd-x64@0.28.2':
384- resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==}
385- engines: {node: '>=18'}
386- cpu: [x64]
387- os: [freebsd]
388-
389- '@esbuild/linux-arm64@0.25.12':
390- resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
391- engines: {node: '>=18'}
392- cpu: [arm64]
393- os: [linux]
394-
395- '@esbuild/linux-arm64@0.28.1':
396- resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==}
397- engines: {node: '>=18'}
398- cpu: [arm64]
399- os: [linux]
400-
401- '@esbuild/linux-arm64@0.28.2':
402- resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==}
403- engines: {node: '>=18'}
404- cpu: [arm64]
405- os: [linux]
406-
407- '@esbuild/linux-arm@0.25.12':
408- resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
409- engines: {node: '>=18'}
410- cpu: [arm]
411- os: [linux]
412-
413- '@esbuild/linux-arm@0.28.1':
414- resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==}
415- engines: {node: '>=18'}
416- cpu: [arm]
417- os: [linux]
418-
419- '@esbuild/linux-arm@0.28.2':
420- resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==}
421- engines: {node: '>=18'}
422- cpu: [arm]
423- os: [linux]
424-
425- '@esbuild/linux-ia32@0.25.12':
426- resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
427- engines: {node: '>=18'}
428- cpu: [ia32]
429- os: [linux]
430-
431- '@esbuild/linux-ia32@0.28.1':
432- resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==}
433- engines: {node: '>=18'}
434- cpu: [ia32]
435- os: [linux]
436-
437- '@esbuild/linux-ia32@0.28.2':
438- resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==}
439- engines: {node: '>=18'}
440- cpu: [ia32]
441- os: [linux]
442-
443- '@esbuild/linux-loong64@0.25.12':
444- resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
445- engines: {node: '>=18'}
446- cpu: [loong64]
447- os: [linux]
448-
449- '@esbuild/linux-loong64@0.28.1':
450- resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==}
451- engines: {node: '>=18'}
452- cpu: [loong64]
453- os: [linux]
454-
455- '@esbuild/linux-loong64@0.28.2':
456- resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==}
457- engines: {node: '>=18'}
458- cpu: [loong64]
459- os: [linux]
460-
461- '@esbuild/linux-mips64el@0.25.12':
462- resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
463- engines: {node: '>=18'}
464- cpu: [mips64el]
465- os: [linux]
466-
467- '@esbuild/linux-mips64el@0.28.1':
468- resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==}
469- engines: {node: '>=18'}
470- cpu: [mips64el]
471- os: [linux]
472-
473- '@esbuild/linux-mips64el@0.28.2':
474- resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==}
475- engines: {node: '>=18'}
476- cpu: [mips64el]
477- os: [linux]
478-
479- '@esbuild/linux-ppc64@0.25.12':
480- resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
481- engines: {node: '>=18'}
482- cpu: [ppc64]
483- os: [linux]
484-
485- '@esbuild/linux-ppc64@0.28.1':
486- resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==}
487- engines: {node: '>=18'}
488- cpu: [ppc64]
489- os: [linux]
490-
491- '@esbuild/linux-ppc64@0.28.2':
492- resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==}
493- engines: {node: '>=18'}
494- cpu: [ppc64]
495- os: [linux]
496-
497- '@esbuild/linux-riscv64@0.25.12':
498- resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
499- engines: {node: '>=18'}
500- cpu: [riscv64]
501- os: [linux]
502-
503- '@esbuild/linux-riscv64@0.28.1':
504- resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==}
505- engines: {node: '>=18'}
506- cpu: [riscv64]
507- os: [linux]
508-
509- '@esbuild/linux-riscv64@0.28.2':
510- resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==}
511- engines: {node: '>=18'}
512- cpu: [riscv64]
513- os: [linux]
514-
515- '@esbuild/linux-s390x@0.25.12':
516- resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
517- engines: {node: '>=18'}
518- cpu: [s390x]
519- os: [linux]
520-
521- '@esbuild/linux-s390x@0.28.1':
522- resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==}
523- engines: {node: '>=18'}
524- cpu: [s390x]
525- os: [linux]
526-
527- '@esbuild/linux-s390x@0.28.2':
528- resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==}
529- engines: {node: '>=18'}
530- cpu: [s390x]
531- os: [linux]
532-
533- '@esbuild/linux-x64@0.25.12':
534- resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
535- engines: {node: '>=18'}
536- cpu: [x64]
537- os: [linux]
538-
539- '@esbuild/linux-x64@0.28.1':
540- resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==}
541- engines: {node: '>=18'}
542- cpu: [x64]
543- os: [linux]
544-
545- '@esbuild/linux-x64@0.28.2':
546- resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==}
547- engines: {node: '>=18'}
548- cpu: [x64]
549- os: [linux]
550-
551- '@esbuild/netbsd-arm64@0.25.12':
552- resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
553- engines: {node: '>=18'}
554- cpu: [arm64]
555- os: [netbsd]
556-
557- '@esbuild/netbsd-arm64@0.28.1':
558- resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==}
559- engines: {node: '>=18'}
560- cpu: [arm64]
561- os: [netbsd]
562-
563- '@esbuild/netbsd-arm64@0.28.2':
564- resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==}
565- engines: {node: '>=18'}
566- cpu: [arm64]
567- os: [netbsd]
568-
569- '@esbuild/netbsd-x64@0.25.12':
570- resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
571- engines: {node: '>=18'}
572- cpu: [x64]
573- os: [netbsd]
574-
575- '@esbuild/netbsd-x64@0.28.1':
576- resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==}
577- engines: {node: '>=18'}
578- cpu: [x64]
579- os: [netbsd]
580-
581- '@esbuild/netbsd-x64@0.28.2':
582- resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==}
583- engines: {node: '>=18'}
584- cpu: [x64]
585- os: [netbsd]
586-
587- '@esbuild/openbsd-arm64@0.25.12':
588- resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
589- engines: {node: '>=18'}
590- cpu: [arm64]
591- os: [openbsd]
592-
593- '@esbuild/openbsd-arm64@0.28.1':
594- resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==}
595- engines: {node: '>=18'}
596- cpu: [arm64]
597- os: [openbsd]
598-
599- '@esbuild/openbsd-arm64@0.28.2':
600- resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==}
601- engines: {node: '>=18'}
602- cpu: [arm64]
603- os: [openbsd]
604-
605- '@esbuild/openbsd-x64@0.25.12':
606- resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
607- engines: {node: '>=18'}
608- cpu: [x64]
609- os: [openbsd]
610-
611- '@esbuild/openbsd-x64@0.28.1':
612- resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==}
613- engines: {node: '>=18'}
614- cpu: [x64]
615- os: [openbsd]
616-
617- '@esbuild/openbsd-x64@0.28.2':
618- resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==}
619- engines: {node: '>=18'}
620- cpu: [x64]
621- os: [openbsd]
622-
623- '@esbuild/openharmony-arm64@0.25.12':
624- resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
625- engines: {node: '>=18'}
626- cpu: [arm64]
627- os: [openharmony]
628-
629- '@esbuild/openharmony-arm64@0.28.1':
630- resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==}
631- engines: {node: '>=18'}
632- cpu: [arm64]
633- os: [openharmony]
634-
635- '@esbuild/openharmony-arm64@0.28.2':
636- resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==}
637- engines: {node: '>=18'}
638- cpu: [arm64]
639- os: [openharmony]
640-
641- '@esbuild/sunos-x64@0.25.12':
642- resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
643- engines: {node: '>=18'}
644- cpu: [x64]
645- os: [sunos]
646-
647- '@esbuild/sunos-x64@0.28.1':
648- resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==}
649- engines: {node: '>=18'}
650- cpu: [x64]
651- os: [sunos]
652-
653- '@esbuild/sunos-x64@0.28.2':
654- resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==}
655- engines: {node: '>=18'}
656- cpu: [x64]
657- os: [sunos]
658-
659- '@esbuild/win32-arm64@0.25.12':
660- resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
661- engines: {node: '>=18'}
662- cpu: [arm64]
663- os: [win32]
664-
665- '@esbuild/win32-arm64@0.28.1':
666- resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==}
667- engines: {node: '>=18'}
668- cpu: [arm64]
669- os: [win32]
670-
671- '@esbuild/win32-arm64@0.28.2':
672- resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==}
673- engines: {node: '>=18'}
674- cpu: [arm64]
675- os: [win32]
676-
677- '@esbuild/win32-ia32@0.25.12':
678- resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
679- engines: {node: '>=18'}
680- cpu: [ia32]
681- os: [win32]
682-
683- '@esbuild/win32-ia32@0.28.1':
684- resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==}
685- engines: {node: '>=18'}
686- cpu: [ia32]
687- os: [win32]
688-
689- '@esbuild/win32-ia32@0.28.2':
690- resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==}
691- engines: {node: '>=18'}
692- cpu: [ia32]
693- os: [win32]
694-
695- '@esbuild/win32-x64@0.25.12':
696- resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
697- engines: {node: '>=18'}
698- cpu: [x64]
699- os: [win32]
700-
701- '@esbuild/win32-x64@0.28.1':
702- resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==}
703- engines: {node: '>=18'}
704- cpu: [x64]
705- os: [win32]
706-
707- '@esbuild/win32-x64@0.28.2':
708- resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==}
709- engines: {node: '>=18'}
710- cpu: [x64]
711- os: [win32]
712-
713- '@hexagon/base64@1.1.28':
714- resolution: {integrity: sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==}
715-
716- '@img/colour@1.1.0':
717- resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
718- engines: {node: '>=18'}
719-
720- '@img/sharp-darwin-arm64@0.35.2':
721- resolution: {integrity: sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg==}
722- engines: {node: '>=20.9.0'}
723- cpu: [arm64]
724- os: [darwin]
725-
726- '@img/sharp-darwin-arm64@0.35.5':
727- resolution: {integrity: sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==}
728- engines: {node: '>=20.9.0'}
729- cpu: [arm64]
730- os: [darwin]
731-
732- '@img/sharp-darwin-x64@0.35.2':
733- resolution: {integrity: sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw==}
734- engines: {node: '>=20.9.0'}
735- cpu: [x64]
736- os: [darwin]
737-
738- '@img/sharp-darwin-x64@0.35.5':
739- resolution: {integrity: sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==}
740- engines: {node: '>=20.9.0'}
741- cpu: [x64]
742- os: [darwin]
743-
744- '@img/sharp-freebsd-wasm32@0.35.2':
745- resolution: {integrity: sha512-YoAxdnd8hPUkvLHd3bWY+YA8nw3xM/RyRopYucNsWHVSan8NLVM3X2volsfoRDcXdUJPg6tXahSd7HXPK7lRnw==}
746- engines: {node: '>=20.9.0'}
747- os: [freebsd]
748-
749- '@img/sharp-freebsd-wasm32@0.35.5':
750- resolution: {integrity: sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==}
751- engines: {node: '>=20.9.0'}
752- os: [freebsd]
753-
754- '@img/sharp-libvips-darwin-arm64@1.3.1':
755- resolution: {integrity: sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g==}
756- cpu: [arm64]
757- os: [darwin]
758-
759- '@img/sharp-libvips-darwin-arm64@1.3.4':
760- resolution: {integrity: sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==}
761- cpu: [arm64]
762- os: [darwin]
763-
764- '@img/sharp-libvips-darwin-x64@1.3.1':
765- resolution: {integrity: sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ==}
766- cpu: [x64]
767- os: [darwin]
768-
769- '@img/sharp-libvips-darwin-x64@1.3.4':
770- resolution: {integrity: sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==}
771- cpu: [x64]
772- os: [darwin]
773-
774- '@img/sharp-libvips-linux-arm64@1.3.1':
775- resolution: {integrity: sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw==}
776- cpu: [arm64]
777- os: [linux]
778-
779- '@img/sharp-libvips-linux-arm64@1.3.4':
780- resolution: {integrity: sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==}
781- cpu: [arm64]
782- os: [linux]
783-
784- '@img/sharp-libvips-linux-arm@1.3.1':
785- resolution: {integrity: sha512-aGGy9aWzXgHBG7HNyQPWorZthlp7+x6fDRoPAQbGO3ThcttuTyKIx3NuSHb6zb4gBNq6/yNn9f1cy9nFKS/Vmg==}
786- cpu: [arm]
787- os: [linux]
788-
789- '@img/sharp-libvips-linux-arm@1.3.4':
790- resolution: {integrity: sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==}
791- cpu: [arm]
792- os: [linux]
793-
794- '@img/sharp-libvips-linux-ppc64@1.3.1':
795- resolution: {integrity: sha512-1EkwGNCZk6iWNCMWqrvdJ+r1j0PT1zIz60CNPhYnJlK/zyeWqlsPZIe+ocBVqPF8k/Ssee/NCk+tE9Ryrko6ng==}
796- cpu: [ppc64]
797- os: [linux]
798-
799- '@img/sharp-libvips-linux-ppc64@1.3.4':
800- resolution: {integrity: sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==}
801- cpu: [ppc64]
802- os: [linux]
803-
804- '@img/sharp-libvips-linux-riscv64@1.3.1':
805- resolution: {integrity: sha512-Ilays+w2bXdnxzxtQdmXR62u8o8GYa3eL4+Gr+1KiE4xperMZUslRaVPJwwPkzlHEjGfXAfRVAa/7CYCtSqsBw==}
806- cpu: [riscv64]
807- os: [linux]
808-
809- '@img/sharp-libvips-linux-riscv64@1.3.4':
810- resolution: {integrity: sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==}
811- cpu: [riscv64]
812- os: [linux]
813-
814- '@img/sharp-libvips-linux-s390x@1.3.1':
815- resolution: {integrity: sha512-VfBwVHQTbRoj4XlpA/KLZ7ltgMpz+4WSejFzQ+GnoImjo1PtEJ59QB2qR1xQEeRPYIkNrPIm2L4cICMvz4C2ew==}
816- cpu: [s390x]
817- os: [linux]
818-
819- '@img/sharp-libvips-linux-s390x@1.3.4':
820- resolution: {integrity: sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==}
821- cpu: [s390x]
822- os: [linux]
823-
824- '@img/sharp-libvips-linux-x64@1.3.1':
825- resolution: {integrity: sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A==}
826- cpu: [x64]
827- os: [linux]
828-
829- '@img/sharp-libvips-linux-x64@1.3.4':
830- resolution: {integrity: sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==}
831- cpu: [x64]
832- os: [linux]
833-
834- '@img/sharp-libvips-linuxmusl-arm64@1.3.1':
835- resolution: {integrity: sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw==}
836- cpu: [arm64]
837- os: [linux]
838-
839- '@img/sharp-libvips-linuxmusl-arm64@1.3.4':
840- resolution: {integrity: sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==}
841- cpu: [arm64]
842- os: [linux]
843-
844- '@img/sharp-libvips-linuxmusl-x64@1.3.1':
845- resolution: {integrity: sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg==}
846- cpu: [x64]
847- os: [linux]
848-
849- '@img/sharp-libvips-linuxmusl-x64@1.3.4':
850- resolution: {integrity: sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==}
851- cpu: [x64]
852- os: [linux]
853-
854- '@img/sharp-linux-arm64@0.35.2':
855- resolution: {integrity: sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA==}
856- engines: {node: '>=20.9.0'}
857- cpu: [arm64]
858- os: [linux]
859-
860- '@img/sharp-linux-arm64@0.35.5':
861- resolution: {integrity: sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==}
862- engines: {node: '>=20.9.0'}
863- cpu: [arm64]
864- os: [linux]
865-
866- '@img/sharp-linux-arm@0.35.2':
867- resolution: {integrity: sha512-SE4kzF2mepn6z+6E7L6lsV8FzuLL6IPQdyX8ZiwROAG/G8td+hP/m7FsFPwidtrF19gvajuC9l6TxAVcsA4S7A==}
868- engines: {node: '>=20.9.0'}
869- cpu: [arm]
870- os: [linux]
871-
872- '@img/sharp-linux-arm@0.35.5':
873- resolution: {integrity: sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==}
874- engines: {node: '>=20.9.0'}
875- cpu: [arm]
876- os: [linux]
877-
878- '@img/sharp-linux-ppc64@0.35.2':
879- resolution: {integrity: sha512-hYSBm7zcNtDCozCxQHYZJiu63b/bXsgRZuOxCIBZsStMM9Vap47iFHdbX4kCvQsblPB/k+clhELpdQJHQLSHvg==}
880- engines: {node: '>=20.9.0'}
881- cpu: [ppc64]
882- os: [linux]
883-
884- '@img/sharp-linux-ppc64@0.35.5':
885- resolution: {integrity: sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==}
886- engines: {node: '>=20.9.0'}
887- cpu: [ppc64]
888- os: [linux]
889-
890- '@img/sharp-linux-riscv64@0.35.2':
891- resolution: {integrity: sha512-qQt0Kc13+Hoan/Awq/qMSQw3L+RI1NCRPgD5cUJ/1WSSmIoysLOc72jlRM3E0OHN9Yr313jgeQ2T+zW+F03QFA==}
892- engines: {node: '>=20.9.0'}
893- cpu: [riscv64]
894- os: [linux]
895-
896- '@img/sharp-linux-riscv64@0.35.5':
897- resolution: {integrity: sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==}
898- engines: {node: '>=20.9.0'}
899- cpu: [riscv64]
900- os: [linux]
901-
902- '@img/sharp-linux-s390x@0.35.2':
903- resolution: {integrity: sha512-E4fLLfRPzDLlEeDaTzI98OFLcv++WL5ChLLMwPoVd0CIoZQqupBSNbOisPL5am9XsbQ9T84+iiMpUvbFtkunbA==}
904- engines: {node: '>=20.9.0'}
905- cpu: [s390x]
906- os: [linux]
907-
908- '@img/sharp-linux-s390x@0.35.5':
909- resolution: {integrity: sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==}
910- engines: {node: '>=20.9.0'}
911- cpu: [s390x]
912- os: [linux]
913-
914- '@img/sharp-linux-x64@0.35.2':
915- resolution: {integrity: sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA==}
916- engines: {node: '>=20.9.0'}
917- cpu: [x64]
918- os: [linux]
919-
920- '@img/sharp-linux-x64@0.35.5':
921- resolution: {integrity: sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==}
922- engines: {node: '>=20.9.0'}
923- cpu: [x64]
924- os: [linux]
925-
926- '@img/sharp-linuxmusl-arm64@0.35.2':
927- resolution: {integrity: sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg==}
928- engines: {node: '>=20.9.0'}
929- cpu: [arm64]
930- os: [linux]
931-
932- '@img/sharp-linuxmusl-arm64@0.35.5':
933- resolution: {integrity: sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==}
934- engines: {node: '>=20.9.0'}
935- cpu: [arm64]
936- os: [linux]
937-
938- '@img/sharp-linuxmusl-x64@0.35.2':
939- resolution: {integrity: sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg==}
940- engines: {node: '>=20.9.0'}
941- cpu: [x64]
942- os: [linux]
943-
944- '@img/sharp-linuxmusl-x64@0.35.5':
945- resolution: {integrity: sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==}
946- engines: {node: '>=20.9.0'}
947- cpu: [x64]
948- os: [linux]
949-
950- '@img/sharp-wasm32@0.35.2':
951- resolution: {integrity: sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw==}
952- engines: {node: '>=20.9.0'}
953-
954- '@img/sharp-wasm32@0.35.5':
955- resolution: {integrity: sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==}
956- engines: {node: '>=20.9.0'}
957-
958- '@img/sharp-webcontainers-wasm32@0.35.2':
959- resolution: {integrity: sha512-QNV27pxs9wpApEiCfvHM1RDoP1w1+2KrUWWDPEhEwg+latvOrfuhWrHWZKwdSFwU6jh3myjw/yOCRsUIuOft3g==}
960- engines: {node: '>=20.9.0'}
961- cpu: [wasm32]
962-
963- '@img/sharp-webcontainers-wasm32@0.35.5':
964- resolution: {integrity: sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==}
965- engines: {node: '>=20.9.0'}
966- cpu: [wasm32]
967-
968- '@img/sharp-win32-arm64@0.35.2':
969- resolution: {integrity: sha512-BiVRYc/t6/Vl3e1hBx0hugG4oN9Pydf4fgMSpxTQJmwGUg/YoXTWHiFeRymHfCZzifxu4F4rpk/I67D0LQ20wQ==}
970- engines: {node: '>=20.9.0'}
971- cpu: [arm64]
972- os: [win32]
973-
974- '@img/sharp-win32-arm64@0.35.5':
975- resolution: {integrity: sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==}
976- engines: {node: '>=20.9.0'}
977- cpu: [arm64]
978- os: [win32]
979-
980- '@img/sharp-win32-ia32@0.35.2':
981- resolution: {integrity: sha512-YYEhx9PImCC7T0tI8JDMi4DB9LwLCXCU5OWNYEXAxh5Q1ShKkyC6byxzoBJ3gEFDnH2lQckWuDe70G7mB2XJog==}
982- engines: {node: ^20.9.0}
983- cpu: [ia32]
984- os: [win32]
985-
986- '@img/sharp-win32-ia32@0.35.5':
987- resolution: {integrity: sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==}
988- engines: {node: ^20.9.0}
989- cpu: [ia32]
990- os: [win32]
991-
992- '@img/sharp-win32-x64@0.35.2':
993- resolution: {integrity: sha512-imoOyBcoM/iiUr4J6VPpCNjPnjvP/Gks95898yB8YqoGGYmHYbOyCuNv9FMhFgtaiHFGbHW8bxKqRV6VjtXThQ==}
994- engines: {node: '>=20.9.0'}
995- cpu: [x64]
996- os: [win32]
997-
998- '@img/sharp-win32-x64@0.35.5':
999- resolution: {integrity: sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==}
1000- engines: {node: '>=20.9.0'}
1001- cpu: [x64]
1002- os: [win32]
1003-
1004- '@jridgewell/resolve-uri@3.1.2':
1005- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
1006- engines: {node: '>=6.0.0'}
1007-
1008- '@jridgewell/sourcemap-codec@1.6.0':
1009- resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==}
1010-
1011- '@jridgewell/trace-mapping@0.3.9':
1012- resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
1013-
1014- '@levischuck/tiny-cbor@0.2.11':
1015- resolution: {integrity: sha512-llBRm4dT4Z89aRsm6u2oEZ8tfwL/2l6BwpZ7JcyieouniDECM5AqNgr/y08zalEIvW3RSK4upYyybDcmjXqAow==}
1016-
1017- '@oxc-project/types@0.153.0':
1018- resolution: {integrity: sha512-jSNrRIyvPVLL5E1z/tS5zLAprosGz/FuI1PWwEOz59j3E4TTTzSpqKb/RDGqJhhW0QHYISGXxq582wGx6T11Tw==}
1019-
1020- '@peculiar/asn1-android@2.10.0':
1021- resolution: {integrity: sha512-IHKdYL5MRW76DOQCv2HSE/vUMOf2jqH4E7yhtQYe/xx+RxpPiXfkUdhex0N4/s5crsnXCGftRNzy4RJn1s6CZA==}
1022- engines: {node: '>=14'}
1023-
1024- '@peculiar/asn1-asym-key@2.10.0':
1025- resolution: {integrity: sha512-1R8xUTeqcUTSMLFTTCzJyFuKiq3y25EQKs9DezUetJ8qMqbJyxo3XkzykiwwT/Xzlt5/vRzS/sW4M1r+pq1FTg==}
1026- engines: {node: '>=14'}
1027-
1028- '@peculiar/asn1-cms@2.10.0':
1029- resolution: {integrity: sha512-CkX0H4NCIOMHOU3rh2xXZywinYZ/EnJlaOlJiGI0e5L4XjFqHf4iH30LMbXWChVppdA9ljbanjtzQFOhDNfTWg==}
1030- engines: {node: '>=14'}
1031-
1032- '@peculiar/asn1-csr@2.10.0':
1033- resolution: {integrity: sha512-jTPTr/9rxKM+niQLMF3jiAMb0lWHUhUHIuSOhdGCIfpB4FAQYf9SoiXOgxP8bS/68IB+bj+1OHvVnDVCQfVUZw==}
1034- engines: {node: '>=14'}
1035-
1036- '@peculiar/asn1-ecc@2.10.0':
1037- resolution: {integrity: sha512-GFd3iOjFrWX+QWH2R2dO5QSJyyRGv9CIBKtRlGlPNCvb2RvmCbBDexe91MJgV76c69d998Xsa+CvuQ98seoiPg==}
1038- engines: {node: '>=14'}
1039-
1040- '@peculiar/asn1-pfx@2.10.0':
1041- resolution: {integrity: sha512-1y3QK9ZH1IPleAMmRoJlPS10eGkAWnULETW8zDFNUK1ffqpG7zmDY+kYBMYQgwlcQZ2iitLm2z2EBP0xzRXpaA==}
1042- engines: {node: '>=14'}
1043-
1044- '@peculiar/asn1-pkcs8@2.10.0':
1045- resolution: {integrity: sha512-Ri+BZT9bnwqlHWmhs7lvWjvJRxKev2hA2+4EbZajgeYWCbR8hyv0znF4DhsFouOhMj2nSDV/iGJ6DMQtwITnCw==}
1046- engines: {node: '>=14'}
1047-
1048- '@peculiar/asn1-pkcs9@2.10.0':
1049- resolution: {integrity: sha512-XIXsbDQFezYk6fudczkuvawkRD4GNpISGCqfYhdkJlvcGF/RFknU+0DDJagOaJqBf+PdPzk4J9oMqDGcvfR9HQ==}
1050- engines: {node: '>=14'}
1051-
1052- '@peculiar/asn1-rsa@2.10.0':
1053- resolution: {integrity: sha512-4Jvmwlh3gZAhNZ4/u7JSyLuce9hofOFZ4o3PYKAccCImGnyaT5CMym/ATgvAvqpOYFNW531oPZvJlEBhJy9VfA==}
1054- engines: {node: '>=14'}
1055-
1056- '@peculiar/asn1-schema@2.10.0':
1057- resolution: {integrity: sha512-GhokD41lV4gQrrLYm3wCkHfBOnJrnhDMgt4XeMW8gzfE1UdJqIuSwsE+ggf82XBjUXRJylcm+KIGQFa4utIVLw==}
1058- engines: {node: '>=14'}
1059-
1060- '@peculiar/asn1-x509-attr@2.10.0':
1061- resolution: {integrity: sha512-/85GtKOKmgvuSJNlaFfwGWNdRSZZ+hpF02NyM01XiCdzpaZONiBltDyfluFPvFx966CR+ZHNSG1jniwpy07oGg==}
1062- engines: {node: '>=14'}
1063-
1064- '@peculiar/asn1-x509-post-quantum@2.10.0':
1065- resolution: {integrity: sha512-cXKcZ30wKbUkRK5RK4Z3W1imewXvHAB9apEAuIqJ0OOkOQCpJrwLOuN38QlsEXqOI+3gtUv8Kf3UZohUmCbf3w==}
1066- engines: {node: '>=14'}
1067-
1068- '@peculiar/asn1-x509@2.10.0':
1069- resolution: {integrity: sha512-ucNVg8+ANveTpMN3fy9lA2alryONdXc2A4cEG2hMniWbvQt+YOZoe8BI80YYNO8FBcuDY1qbDQ4uQGQVraHxGA==}
1070- engines: {node: '>=14'}
1071-
1072- '@peculiar/utils@2.0.3':
1073- resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==}
1074-
1075- '@peculiar/x509@2.1.0':
1076- resolution: {integrity: sha512-IYbg1R03CSQGWwl24kGyqrdVtixNSbRaDvBg1r5wyYjTP+VwPQkka1BzTgU5+vxiuwqg04OxdvdJ1xYYFIdUSA==}
1077- engines: {node: '>=20.0.0'}
1078-
1079- '@poppinss/colors@4.1.6':
1080- resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==}
1081-
1082- '@poppinss/dumper@0.6.5':
1083- resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==}
1084-
1085- '@poppinss/exception@1.2.3':
1086- resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==}
1087-
1088- '@rolldown/binding-android-arm-eabi@1.2.13':
1089- resolution: {integrity: sha512-Vu/NICrgdRvUOeaJZIyB2FP63s6fO/4ud5l8dXmxDx9yDyn+mN0y+gsvsVviSli+T361Aqo0h46EuMoobrwawA==}
1090- engines: {node: ^20.19.0 || >=22.12.0}
1091- cpu: [arm]
1092- os: [android]
1093-
1094- '@rolldown/binding-android-arm64@1.2.13':
1095- resolution: {integrity: sha512-6LEoIrGy5vvCd2boNnv2soPSUZj/PRvhp8R/t9KlX+mIZxThIE/ZqxrGXxmuNX0FuvQFvLdZr7S4HrYpYBVhEQ==}
1096- engines: {node: ^20.19.0 || >=22.12.0}
1097- cpu: [arm64]
1098- os: [android]
1099-
1100- '@rolldown/binding-darwin-arm64@1.2.13':
1101- resolution: {integrity: sha512-CaJSRzlQ6Q+zkDMVA9OkVxBjVoPRCDEE3v0FSJ9kIQBgRjFApA3Si4ijhbNVUji7ZJt+PfO0e46qy4nPInHUPA==}
1102- engines: {node: ^20.19.0 || >=22.12.0}
1103- cpu: [arm64]
1104- os: [darwin]
1105-
1106- '@rolldown/binding-darwin-x64@1.2.13':
1107- resolution: {integrity: sha512-e4r340I5hxSzJkD3YJBxgzq/rJ3wwxwdLLb2FPt1Zpyem20nrQPT11DDEEkazwxaHumH8wpglsp/Ozgj/wT6mw==}
1108- engines: {node: ^20.19.0 || >=22.12.0}
1109- cpu: [x64]
1110- os: [darwin]
1111-
1112- '@rolldown/binding-freebsd-x64@1.2.13':
1113- resolution: {integrity: sha512-hoBWDZ4/K/mJKVMbsgUd1jfpA2DiOrJ54mpegObU9TBHBBrtX4FLIXJJQRDPZ/2Dn91GvPob+Z2hwKJzf4E5SQ==}
1114- engines: {node: ^20.19.0 || >=22.12.0}
1115- cpu: [x64]
1116- os: [freebsd]
1117-
1118- '@rolldown/binding-linux-arm-gnueabihf@1.2.13':
1119- resolution: {integrity: sha512-oF9fZu3vTWnTiVAkDFxU9PJLt1nh20K9RRpuHsR7ZnE2L7XookBbDBVLojCVSLGbvtSlxeUNnjAj6DbNsKyzbg==}
1120- engines: {node: ^20.19.0 || >=22.12.0}
1121- cpu: [arm]
1122- os: [linux]
1123-
1124- '@rolldown/binding-linux-arm64-gnu@1.2.13':
1125- resolution: {integrity: sha512-DTpb/+jMiqWMPgphn4ksW1zW+XLJ6dJJ9FMvnIk9I291LhCctMPhMYJrP5t9p6C9qa3KXadDdUEZHBaPh3kNxQ==}
1126- engines: {node: ^20.19.0 || >=22.12.0}
1127- cpu: [arm64]
1128- os: [linux]
1129-
1130- '@rolldown/binding-linux-arm64-musl@1.2.13':
1131- resolution: {integrity: sha512-xU+Kvv9N2A3SY35zFh1FWWNjxbadE/BKeqnkXe7vScU4GZsw757BlVmDLITZEq8DPpk6m7uoDYkK7P+x/uU5Ow==}
1132- engines: {node: ^20.19.0 || >=22.12.0}
1133- cpu: [arm64]
1134- os: [linux]
1135-
1136- '@rolldown/binding-linux-ppc64-gnu@1.2.13':
1137- resolution: {integrity: sha512-XMk/hnhh25oQ756Lclb1Q11h4ll0xC0Esa5w4Vzp+mAE2S3AGJgeM0SonrIgY8fHhjarb6hcoTuwoFG0VVP2ig==}
1138- engines: {node: ^20.19.0 || >=22.12.0}
1139- cpu: [ppc64]
1140- os: [linux]
1141-
1142- '@rolldown/binding-linux-s390x-gnu@1.2.13':
1143- resolution: {integrity: sha512-U1BoTHYmlywE2n3HUWjzZ+8EQsKr+OwpxYuDWaubx42tUL8QSL7nOqRz/NVHanibbFP3M1Rxuprz/wNcbMKjqw==}
1144- engines: {node: ^20.19.0 || >=22.12.0}
1145- cpu: [s390x]
1146- os: [linux]
1147-
1148- '@rolldown/binding-linux-x64-gnu@1.2.13':
1149- resolution: {integrity: sha512-J4cm80Pc6wEwV5AZ42o62sIQgDk+Y7R2s646jIwuvO+4V46QB58N4vVuMPWCBaNgursXLpmUWJV//WQAkPvHBQ==}
1150- engines: {node: ^20.19.0 || >=22.12.0}
1151- cpu: [x64]
1152- os: [linux]
1153-
1154- '@rolldown/binding-linux-x64-musl@1.2.13':
1155- resolution: {integrity: sha512-W0euZS40U4V6JkmEnVCIX9mcsL6cbXQ4X8c2w+MMOIjFg68TXUW+u3RT+2e1t1pv9mg/EP3pDtK3POXdQ7Rxyw==}
1156- engines: {node: ^20.19.0 || >=22.12.0}
1157- cpu: [x64]
1158- os: [linux]
1159-
1160- '@rolldown/binding-openharmony-arm64@1.2.13':
1161- resolution: {integrity: sha512-do/AF/4n9MRshia3a5aXoy8xM2c6mgfT6D7H/dY6my5z+hfCIR4ab7mk4IRj++nsEQpKy39kd0DQnDq+r692tw==}
1162- engines: {node: ^20.19.0 || >=22.12.0}
1163- cpu: [arm64]
1164- os: [openharmony]
1165-
1166- '@rolldown/binding-win32-arm64-msvc@1.2.13':
1167- resolution: {integrity: sha512-6FtUf2cJZobutJdxnGYX8z0vtbgqU0b2v8vfBhkXb9wp2MppMFtkunE+IaOntyi01rkIQoPW2GHABtfzsC0BRQ==}
1168- engines: {node: ^20.19.0 || >=22.12.0}
1169- cpu: [arm64]
1170- os: [win32]
1171-
1172- '@rolldown/binding-win32-x64-msvc@1.2.13':
1173- resolution: {integrity: sha512-UKhFaZTeTcbKrb3iU82m17jVcPEAoqDkCN5MBqgPyZSwp/cQmib21crTS0DdH7T1B7wZRWEI89YQAOJMet5yhg==}
1174- engines: {node: ^20.19.0 || >=22.12.0}
1175- cpu: [x64]
1176- os: [win32]
1177-
1178- '@rolldown/pluginutils@1.0.1':
1179- resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
1180-
1181- '@simplewebauthn/server@14.0.3':
1182- resolution: {integrity: sha512-D39/0fiDiYmGV+nraY9s63D1Ho2AX/waMLy22/9gUadTUuvbAnstfb4bpbHYbwZuV5ZLDYN1SmzDKuiHzKAA4Q==}
1183- engines: {node: '>=20.0.0'}
1184-
1185- '@sindresorhus/is@7.2.0':
1186- resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==}
1187- engines: {node: '>=18'}
1188-
1189- '@speed-highlight/core@1.2.24':
1190- resolution: {integrity: sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==}
1191-
1192- '@standard-schema/spec@1.1.0':
1193- resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
1194-
1195- '@turbo/darwin-64@2.11.7':
1196- resolution: {integrity: sha512-Z2LFOxwbiJueD1miByXJS/BrW21vv6YaQXZustty5jEX4vQYw6zyh101Sz1QO7WG0mqBzKagZ/DoAeeujI0/Sw==}
1197- cpu: [x64]
1198- os: [darwin]
1199-
1200- '@turbo/darwin-arm64@2.11.7':
1201- resolution: {integrity: sha512-Vhv8ybgIflosNDSSRD9fNXHlCFA60dsGyTqQmc7l28SEX5jOaweCCD4BBYNd8/p0WGkw3e7tZbfA9w6FsujGvw==}
1202- cpu: [arm64]
1203- os: [darwin]
1204-
1205- '@turbo/linux-64@2.11.7':
1206- resolution: {integrity: sha512-rAqRp3blQKk1+ylMGlZHAW0eJjVNuuGUm4ZrC6RU1Im8tLryvaO4a2zLQ/FQi1TRlmKqKV9YXBki2YeytlLbXA==}
1207- cpu: [x64]
1208- os: [android, linux]
1209-
1210- '@turbo/linux-arm64@2.11.7':
1211- resolution: {integrity: sha512-thVYGov7S+llXAxrl3kBb/efalav0xhrjl5NHCR6AfKx14JkbqaetvbVwyss4FvZ9rt+Pv3xsTb+8SIYix8DTg==}
1212- cpu: [arm64]
1213- os: [android, linux]
1214-
1215- '@turbo/windows-64@2.11.7':
1216- resolution: {integrity: sha512-ZIoKT7J7KutgYl4bGxmmgeUQjG+7E0nY8BF9dxUOiMH2vdTsM4JQ2uSwTYFkTR2Llbg6ghGjSmuZ8LQtkLEYjg==}
1217- cpu: [x64]
1218- os: [win32]
1219-
1220- '@turbo/windows-arm64@2.11.7':
1221- resolution: {integrity: sha512-88Xv2f7SLGVJ68lRRx8o375dKmnZYNdDtvlKcPA0kZpcF93eAQd8l96BKQ0/AMHG0bMJA0Z5QqoqtetxzNsC+g==}
1222- cpu: [arm64]
1223- os: [win32]
1224-
1225- '@types/chai@5.2.3':
1226- resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
1227-
1228- '@types/deep-eql@4.0.2':
1229- resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
1230-
1231- '@types/estree@1.0.9':
1232- resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
1233-
1234- '@types/node@22.20.5':
1235- resolution: {integrity: sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==}
1236-
1237- '@types/pako@2.0.4':
1238- resolution: {integrity: sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==}
1239-
1240- '@vitest/expect@4.1.11':
1241- resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==}
1242-
1243- '@vitest/mocker@4.1.11':
1244- resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==}
1245- peerDependencies:
1246- msw: ^2.4.9
1247- vite: ^6.0.0 || ^7.0.0 || ^8.0.0
1248- peerDependenciesMeta:
1249- msw:
1250- optional: true
1251- vite:
1252- optional: true
1253-
1254- '@vitest/pretty-format@4.1.11':
1255- resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==}
1256-
1257- '@vitest/runner@4.1.11':
1258- resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==}
1259-
1260- '@vitest/snapshot@4.1.11':
1261- resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==}
1262-
1263- '@vitest/spy@4.1.11':
1264- resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==}
1265-
1266- '@vitest/utils@4.1.11':
1267- resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==}
1268-
1269- asn1js@3.0.10:
1270- resolution: {integrity: sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==}
1271- engines: {node: '>=12.0.0'}
1272-
1273- assertion-error@2.0.1:
1274- resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
1275- engines: {node: '>=12'}
1276-
1277- blake3-wasm@2.1.5:
1278- resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==}
1279-
1280- chai@6.3.0:
1281- resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==}
1282- engines: {node: '>=18'}
1283-
1284- cjs-module-lexer@1.2.3:
1285- resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
1286-
1287- convert-source-map@2.0.0:
1288- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
1289-
1290- cookie@1.1.1:
1291- resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
1292- engines: {node: '>=18'}
1293-
1294- detect-libc@2.1.2:
1295- resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
1296- engines: {node: '>=8'}
1297-
1298- diff@8.0.4:
1299- resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==}
1300- engines: {node: '>=0.3.1'}
1301-
1302- error-stack-parser-es@1.0.5:
1303- resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==}
1304-
1305- es-module-lexer@2.3.2:
1306- resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==}
1307-
1308- esbuild@0.25.12:
1309- resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
1310- engines: {node: '>=18'}
1311- hasBin: true
1312-
1313- esbuild@0.28.1:
1314- resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==}
1315- engines: {node: '>=18'}
1316- hasBin: true
1317-
1318- esbuild@0.28.2:
1319- resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==}
1320- engines: {node: '>=18'}
1321- hasBin: true
1322-
1323- estree-walker@3.0.3:
1324- resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
1325-
1326- expect-type@1.4.0:
1327- resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
1328- engines: {node: '>=12.0.0'}
1329-
1330- fdir@6.5.0:
1331- resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
1332- engines: {node: '>=12.0.0'}
1333- peerDependencies:
1334- picomatch: ^3 || ^4
1335- peerDependenciesMeta:
1336- picomatch:
1337- optional: true
1338-
1339- fsevents@2.3.2:
1340- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1341- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1342- os: [darwin]
1343-
1344- fsevents@2.3.3:
1345- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1346- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1347- os: [darwin]
1348-
1349- hono@4.13.13:
1350- resolution: {integrity: sha512-CQ46U0ZkAGmbT/4UxdzzGJpacP2IeKgY4a5/tOI9AABbpOMfK739wfDXmv1usCk+3RkKj1hQy4/fjhiwa2xlrA==}
1351- engines: {node: '>=16.9.0'}
1352-
1353- kleur@4.1.5:
1354- resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
1355- engines: {node: '>=6'}
1356-
1357- lightningcss-android-arm64@1.33.0:
1358- resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==}
1359- engines: {node: '>= 12.0.0'}
1360- cpu: [arm64]
1361- os: [android]
1362-
1363- lightningcss-darwin-arm64@1.33.0:
1364- resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==}
1365- engines: {node: '>= 12.0.0'}
1366- cpu: [arm64]
1367- os: [darwin]
1368-
1369- lightningcss-darwin-x64@1.33.0:
1370- resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==}
1371- engines: {node: '>= 12.0.0'}
1372- cpu: [x64]
1373- os: [darwin]
1374-
1375- lightningcss-freebsd-x64@1.33.0:
1376- resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==}
1377- engines: {node: '>= 12.0.0'}
1378- cpu: [x64]
1379- os: [freebsd]
1380-
1381- lightningcss-linux-arm-gnueabihf@1.33.0:
1382- resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==}
1383- engines: {node: '>= 12.0.0'}
1384- cpu: [arm]
1385- os: [linux]
1386-
1387- lightningcss-linux-arm64-gnu@1.33.0:
1388- resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==}
1389- engines: {node: '>= 12.0.0'}
1390- cpu: [arm64]
1391- os: [linux]
1392-
1393- lightningcss-linux-arm64-musl@1.33.0:
1394- resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
1395- engines: {node: '>= 12.0.0'}
1396- cpu: [arm64]
1397- os: [linux]
1398-
1399- lightningcss-linux-x64-gnu@1.33.0:
1400- resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
1401- engines: {node: '>= 12.0.0'}
1402- cpu: [x64]
1403- os: [linux]
1404-
1405- lightningcss-linux-x64-musl@1.33.0:
1406- resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
1407- engines: {node: '>= 12.0.0'}
1408- cpu: [x64]
1409- os: [linux]
1410-
1411- lightningcss-win32-arm64-msvc@1.33.0:
1412- resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
1413- engines: {node: '>= 12.0.0'}
1414- cpu: [arm64]
1415- os: [win32]
1416-
1417- lightningcss-win32-x64-msvc@1.33.0:
1418- resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==}
1419- engines: {node: '>= 12.0.0'}
1420- cpu: [x64]
1421- os: [win32]
1422-
1423- lightningcss@1.33.0:
1424- resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==}
1425- engines: {node: '>= 12.0.0'}
1426-
1427- magic-string@0.30.21:
1428- resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
1429-
1430- miniflare@5.20260815.0-alpha:
1431- resolution: {integrity: sha512-YAaGj4Sh5f4fqHKiMQ8zRHDOOM5IGUVtMhnLIeyjuQfU+9P6hcOTrHUVtbfj/ZPay9Kzik4pWELB39pGgefjiQ==}
1432- engines: {node: '>=22.0.0'}
1433-
1434- miniflare@5.20261006.1-alpha:
1435- resolution: {integrity: sha512-6ylv8tamkrspDI2R/cAYfv+YWmfGNdXe76Pi9TauEUWsFVXn3LNF9Yk8oduzf1a+TYsSRYTqlOE7+nGGRsMHdw==}
1436- engines: {node: '>=22.0.0'}
1437-
1438- nanoid@3.3.20:
1439- resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==}
1440- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1441- hasBin: true
1442-
1443- obug@2.2.1:
1444- resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==}
1445- engines: {node: '>=12.20.0'}
1446-
1447- pako@2.2.0:
1448- resolution: {integrity: sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w==}
1449-
1450- path-to-regexp@6.3.0:
1451- resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
1452-
1453- pathe@2.0.3:
1454- resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
1455-
1456- picocolors@1.1.1:
1457- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1458-
1459- picomatch@4.0.7:
1460- resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
1461- engines: {node: '>=12'}
1462-
1463- playwright-core@1.56.1:
1464- resolution: {integrity: sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==}
1465- engines: {node: '>=18'}
1466- hasBin: true
1467-
1468- playwright@1.56.1:
1469- resolution: {integrity: sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==}
1470- engines: {node: '>=18'}
1471- hasBin: true
1472-
1473- postcss@8.5.29:
1474- resolution: {integrity: sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==}
1475- engines: {node: ^10 || ^12 || >=14}
1476-
1477- pvtsutils@1.3.6:
1478- resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==}
1479-
1480- pvutils@1.2.0:
1481- resolution: {integrity: sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==}
1482- engines: {node: '>=16.0.0'}
1483-
1484- reflect-metadata@0.2.2:
1485- resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
1486-
1487- rolldown@1.2.13:
1488- resolution: {integrity: sha512-/5apOkwWxtACcQtZ5WlrAsKS4JwXVThQPJZ3RqIruRY9UG9M8e0VlXN068xum/JRKA4aIUoJ13ghe/kGCvidiQ==}
1489- engines: {node: ^20.19.0 || >=22.12.0}
1490- hasBin: true
1491-
1492- semver@7.8.5:
1493- resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
1494- engines: {node: '>=10'}
1495- hasBin: true
1496-
1497- sharp@0.35.2:
1498- resolution: {integrity: sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==}
1499- engines: {node: '>=20.9.0'}
1500-
1501- sharp@0.35.5:
1502- resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==}
1503- engines: {node: '>=20.9.0'}
1504- peerDependencies:
1505- '@types/node': '*'
1506- peerDependenciesMeta:
1507- '@types/node':
1508- optional: true
1509-
1510- siginfo@2.0.0:
1511- resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
1512-
1513- source-map-js@1.2.2:
1514- resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==}
1515- engines: {node: '>=0.10.0'}
1516-
1517- stackback@0.0.2:
1518- resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
1519-
1520- std-env@4.3.0:
1521- resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==}
1522-
1523- supports-color@10.2.2:
1524- resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
1525- engines: {node: '>=18'}
1526-
1527- tinybench@2.9.0:
1528- resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
1529-
1530- tinyexec@1.3.1:
1531- resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==}
1532- engines: {node: '>=18'}
1533-
1534- tinyglobby@0.2.17:
1535- resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
1536- engines: {node: '>=12.0.0'}
1537-
1538- tinyrainbow@3.2.0:
1539- resolution: {integrity: sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A==}
1540- engines: {node: '>=14.0.0'}
1541-
1542- tslib@1.14.1:
1543- resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
1544-
1545- tslib@2.8.1:
1546- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1547-
1548- tsyringe@4.10.0:
1549- resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==}
1550- engines: {node: '>= 6.0.0'}
1551-
1552- turbo@2.11.7:
1553- resolution: {integrity: sha512-RhXHbqfvY6o3xt/zSHCwSNwLrZlXiqHzewi4eAj9PtZ1T1CqgMJ2yIDb7SKPTG9IikTm925mfzL6hldQVdyNWw==}
1554- hasBin: true
1555-
1556- typescript@5.9.3:
1557- resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
1558- engines: {node: '>=14.17'}
1559- hasBin: true
1560-
1561- undici-types@6.21.0:
1562- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
1563-
1564- undici@7.29.0:
1565- resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==}
1566- engines: {node: '>=20.18.1'}
1567-
1568- undici@7.29.1:
1569- resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==}
1570- engines: {node: '>=20.18.1'}
1571-
1572- unenv@2.0.0-rc.24:
1573- resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==}
1574-
1575- vite@8.3.4:
1576- resolution: {integrity: sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ==}
1577- engines: {node: ^20.19.0 || >=22.12.0}
1578- hasBin: true
1579- peerDependencies:
1580- '@types/node': ^20.19.0 || >=22.12.0
1581- '@vitejs/devtools': ^0.7.1
1582- esbuild: ^0.27.0 || ^0.28.0
1583- jiti: '>=1.21.0'
1584- less: ^4.0.0
1585- sass: ^1.70.0
1586- sass-embedded: ^1.70.0
1587- stylus: '>=0.54.8'
1588- sugarss: ^5.0.0
1589- terser: ^5.16.0
1590- tsx: ^4.8.1
1591- yaml: ^2.4.2
1592- peerDependenciesMeta:
1593- '@types/node':
1594- optional: true
1595- '@vitejs/devtools':
1596- optional: true
1597- esbuild:
1598- optional: true
1599- jiti:
1600- optional: true
1601- less:
1602- optional: true
1603- sass:
1604- optional: true
1605- sass-embedded:
1606- optional: true
1607- stylus:
1608- optional: true
1609- sugarss:
1610- optional: true
1611- terser:
1612- optional: true
1613- tsx:
1614- optional: true
1615- yaml:
1616- optional: true
1617-
1618- vitest@4.1.11:
1619- resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==}
1620- engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
1621- hasBin: true
1622- peerDependencies:
1623- '@edge-runtime/vm': '*'
1624- '@opentelemetry/api': ^1.9.0
1625- '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
1626- '@vitest/browser-playwright': 4.1.11
1627- '@vitest/browser-preview': 4.1.11
1628- '@vitest/browser-webdriverio': 4.1.11
1629- '@vitest/coverage-istanbul': 4.1.11
1630- '@vitest/coverage-v8': 4.1.11
1631- '@vitest/ui': 4.1.11
1632- happy-dom: '*'
1633- jsdom: '*'
1634- vite: ^6.0.0 || ^7.0.0 || ^8.0.0
1635- peerDependenciesMeta:
1636- '@edge-runtime/vm':
1637- optional: true
1638- '@opentelemetry/api':
1639- optional: true
1640- '@types/node':
1641- optional: true
1642- '@vitest/browser-playwright':
1643- optional: true
1644- '@vitest/browser-preview':
1645- optional: true
1646- '@vitest/browser-webdriverio':
1647- optional: true
1648- '@vitest/coverage-istanbul':
1649- optional: true
1650- '@vitest/coverage-v8':
1651- optional: true
1652- '@vitest/ui':
1653- optional: true
1654- happy-dom:
1655- optional: true
1656- jsdom:
1657- optional: true
1658-
1659- why-is-node-running@2.3.0:
1660- resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
1661- engines: {node: '>=8'}
1662- hasBin: true
1663-
1664- workerd@1.20260815.1:
1665- resolution: {integrity: sha512-8bArFkHmlp7qFEKVPyNzDzHzS35gc2fg0PYBcDtaNLF7UCDryCX2BQnpkUkTHYIy824IRrHOTwOEoTj0sUO2Fg==}
1666- engines: {node: '>=16'}
1667- hasBin: true
1668-
1669- workerd@1.20261006.1:
1670- resolution: {integrity: sha512-8MadBuffZ5NdpLwZjUmsqT5QlaKXq4gjgT6wzcKeynZTICNXyePhc+5QVoKiK7+MMhFTLNrRO2KXLlpk8Q6BkA==}
1671- engines: {node: '>=16'}
1672- hasBin: true
1673-
1674- wrangler@4.124.0:
1675- resolution: {integrity: sha512-75euoZKjVTJYFy+Xhctt/5JlZL4M6A4xmovZsUlep+6GHcCm14n9VtdGzNIybOW2t8wuNxRj5iMUwjT5E7Ctog==}
1676- engines: {node: '>=22.0.0'}
1677- hasBin: true
1678- peerDependencies:
1679- '@cloudflare/workers-types': ^5.20260815.1
1680- peerDependenciesMeta:
1681- '@cloudflare/workers-types':
1682- optional: true
1683-
1684- wrangler@4.149.0:
1685- resolution: {integrity: sha512-OzK7xmB5r5iLKb3cIT3783g13fe6T7xyeKu9LEdUyl+DKAM2KP/jkjnE0OUhyw+mB/XJM9ycjgF3MWm8PR9amg==}
1686- engines: {node: '>=22.0.0'}
1687- hasBin: true
1688- peerDependencies:
1689- '@cloudflare/workers-types': ^5.20261006.1
1690- peerDependenciesMeta:
1691- '@cloudflare/workers-types':
1692- optional: true
1693-
1694- ws@8.21.0:
1695- resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==}
1696- engines: {node: '>=10.0.0'}
1697- peerDependencies:
1698- bufferutil: ^4.0.1
1699- utf-8-validate: '>=5.0.2'
1700- peerDependenciesMeta:
1701- bufferutil:
1702- optional: true
1703- utf-8-validate:
1704- optional: true
1705-
1706- yaml@2.9.1:
1707- resolution: {integrity: sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==}
1708- engines: {node: '>= 14.6'}
1709- hasBin: true
1710-
1711- youch-core@0.3.3:
1712- resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==}
1713-
1714- youch@4.1.0-beta.10:
1715- resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==}
1716-
1717- zod@4.4.3:
1718- resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
1719-
1720-snapshots:
1721-
1722- '@cloudflare/containers@0.3.7': {}
1723-
1724- '@cloudflare/kv-asset-handler@0.5.0': {}
1725-
1726- '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260815.1)':
1727- dependencies:
1728- unenv: 2.0.0-rc.24
1729- optionalDependencies:
1730- workerd: 1.20260815.1
1731-
1732- '@cloudflare/unenv-preset@2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1)':
1733- dependencies:
1734- unenv: 2.0.0-rc.24
1735- optionalDependencies:
1736- workerd: 1.20261006.1
1737-
1738- '@cloudflare/vitest-pool-workers@0.23.0(@cloudflare/workers-types@5.20261012.1)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1)))':
1739- dependencies:
1740- '@vitest/runner': 4.1.11
1741- '@vitest/snapshot': 4.1.11
1742- cjs-module-lexer: 1.2.3
1743- esbuild: 0.28.1
1744- miniflare: 5.20260815.0-alpha
1745- vitest: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))
1746- wrangler: 4.124.0(@cloudflare/workers-types@5.20261012.1)
1747- zod: 4.4.3
1748- transitivePeerDependencies:
1749- - '@cloudflare/workers-types'
1750- - bufferutil
1751- - utf-8-validate
1752-
1753- '@cloudflare/workerd-darwin-64@1.20260815.1':
1754- optional: true
1755-
1756- '@cloudflare/workerd-darwin-64@1.20261006.1':
1757- optional: true
1758-
1759- '@cloudflare/workerd-darwin-arm64@1.20260815.1':
1760- optional: true
1761-
1762- '@cloudflare/workerd-darwin-arm64@1.20261006.1':
1763- optional: true
1764-
1765- '@cloudflare/workerd-linux-64@1.20260815.1':
1766- optional: true
1767-
1768- '@cloudflare/workerd-linux-64@1.20261006.1':
1769- optional: true
1770-
1771- '@cloudflare/workerd-linux-arm64@1.20260815.1':
1772- optional: true
1773-
1774- '@cloudflare/workerd-linux-arm64@1.20261006.1':
1775- optional: true
1776-
1777- '@cloudflare/workerd-windows-64@1.20260815.1':
1778- optional: true
1779-
1780- '@cloudflare/workerd-windows-64@1.20261006.1':
1781- optional: true
1782-
1783- '@cloudflare/workers-types@5.20261012.1': {}
1784-
1785- '@cspotcode/source-map-support@0.8.1':
1786- dependencies:
1787- '@jridgewell/trace-mapping': 0.3.9
1788-
1789- '@emnapi/runtime@1.11.3':
1790- dependencies:
1791- tslib: 2.8.1
1792- optional: true
1793-
1794- '@esbuild/aix-ppc64@0.25.12':
1795- optional: true
1796-
1797- '@esbuild/aix-ppc64@0.28.1':
1798- optional: true
1799-
1800- '@esbuild/aix-ppc64@0.28.2':
1801- optional: true
1802-
1803- '@esbuild/android-arm64@0.25.12':
1804- optional: true
1805-
1806- '@esbuild/android-arm64@0.28.1':
1807- optional: true
1808-
1809- '@esbuild/android-arm64@0.28.2':
1810- optional: true
1811-
1812- '@esbuild/android-arm@0.25.12':
1813- optional: true
1814-
1815- '@esbuild/android-arm@0.28.1':
1816- optional: true
1817-
1818- '@esbuild/android-arm@0.28.2':
1819- optional: true
1820-
1821- '@esbuild/android-x64@0.25.12':
1822- optional: true
1823-
1824- '@esbuild/android-x64@0.28.1':
1825- optional: true
1826-
1827- '@esbuild/android-x64@0.28.2':
1828- optional: true
1829-
1830- '@esbuild/darwin-arm64@0.25.12':
1831- optional: true
1832-
1833- '@esbuild/darwin-arm64@0.28.1':
1834- optional: true
1835-
1836- '@esbuild/darwin-arm64@0.28.2':
1837- optional: true
1838-
1839- '@esbuild/darwin-x64@0.25.12':
1840- optional: true
1841-
1842- '@esbuild/darwin-x64@0.28.1':
1843- optional: true
1844-
1845- '@esbuild/darwin-x64@0.28.2':
1846- optional: true
1847-
1848- '@esbuild/freebsd-arm64@0.25.12':
1849- optional: true
1850-
1851- '@esbuild/freebsd-arm64@0.28.1':
1852- optional: true
1853-
1854- '@esbuild/freebsd-arm64@0.28.2':
1855- optional: true
1856-
1857- '@esbuild/freebsd-x64@0.25.12':
1858- optional: true
1859-
1860- '@esbuild/freebsd-x64@0.28.1':
1861- optional: true
1862-
1863- '@esbuild/freebsd-x64@0.28.2':
1864- optional: true
1865-
1866- '@esbuild/linux-arm64@0.25.12':
1867- optional: true
1868-
1869- '@esbuild/linux-arm64@0.28.1':
1870- optional: true
1871-
1872- '@esbuild/linux-arm64@0.28.2':
1873- optional: true
1874-
1875- '@esbuild/linux-arm@0.25.12':
1876- optional: true
1877-
1878- '@esbuild/linux-arm@0.28.1':
1879- optional: true
1880-
1881- '@esbuild/linux-arm@0.28.2':
1882- optional: true
1883-
1884- '@esbuild/linux-ia32@0.25.12':
1885- optional: true
1886-
1887- '@esbuild/linux-ia32@0.28.1':
1888- optional: true
1889-
1890- '@esbuild/linux-ia32@0.28.2':
1891- optional: true
1892-
1893- '@esbuild/linux-loong64@0.25.12':
1894- optional: true
1895-
1896- '@esbuild/linux-loong64@0.28.1':
1897- optional: true
1898-
1899- '@esbuild/linux-loong64@0.28.2':
1900- optional: true
1901-
1902- '@esbuild/linux-mips64el@0.25.12':
1903- optional: true
1904-
1905- '@esbuild/linux-mips64el@0.28.1':
1906- optional: true
1907-
1908- '@esbuild/linux-mips64el@0.28.2':
1909- optional: true
1910-
1911- '@esbuild/linux-ppc64@0.25.12':
1912- optional: true
1913-
1914- '@esbuild/linux-ppc64@0.28.1':
1915- optional: true
1916-
1917- '@esbuild/linux-ppc64@0.28.2':
1918- optional: true
1919-
1920- '@esbuild/linux-riscv64@0.25.12':
1921- optional: true
1922-
1923- '@esbuild/linux-riscv64@0.28.1':
1924- optional: true
1925-
1926- '@esbuild/linux-riscv64@0.28.2':
1927- optional: true
1928-
1929- '@esbuild/linux-s390x@0.25.12':
1930- optional: true
1931-
1932- '@esbuild/linux-s390x@0.28.1':
1933- optional: true
1934-
1935- '@esbuild/linux-s390x@0.28.2':
1936- optional: true
1937-
1938- '@esbuild/linux-x64@0.25.12':
1939- optional: true
1940-
1941- '@esbuild/linux-x64@0.28.1':
1942- optional: true
1943-
1944- '@esbuild/linux-x64@0.28.2':
1945- optional: true
1946-
1947- '@esbuild/netbsd-arm64@0.25.12':
1948- optional: true
1949-
1950- '@esbuild/netbsd-arm64@0.28.1':
1951- optional: true
1952-
1953- '@esbuild/netbsd-arm64@0.28.2':
1954- optional: true
1955-
1956- '@esbuild/netbsd-x64@0.25.12':
1957- optional: true
1958-
1959- '@esbuild/netbsd-x64@0.28.1':
1960- optional: true
1961-
1962- '@esbuild/netbsd-x64@0.28.2':
1963- optional: true
1964-
1965- '@esbuild/openbsd-arm64@0.25.12':
1966- optional: true
1967-
1968- '@esbuild/openbsd-arm64@0.28.1':
1969- optional: true
1970-
1971- '@esbuild/openbsd-arm64@0.28.2':
1972- optional: true
1973-
1974- '@esbuild/openbsd-x64@0.25.12':
1975- optional: true
1976-
1977- '@esbuild/openbsd-x64@0.28.1':
1978- optional: true
1979-
1980- '@esbuild/openbsd-x64@0.28.2':
1981- optional: true
1982-
1983- '@esbuild/openharmony-arm64@0.25.12':
1984- optional: true
1985-
1986- '@esbuild/openharmony-arm64@0.28.1':
1987- optional: true
1988-
1989- '@esbuild/openharmony-arm64@0.28.2':
1990- optional: true
1991-
1992- '@esbuild/sunos-x64@0.25.12':
1993- optional: true
1994-
1995- '@esbuild/sunos-x64@0.28.1':
1996- optional: true
1997-
1998- '@esbuild/sunos-x64@0.28.2':
1999- optional: true
2000-
2001- '@esbuild/win32-arm64@0.25.12':
2002- optional: true
2003-
2004- '@esbuild/win32-arm64@0.28.1':
2005- optional: true
2006-
2007- '@esbuild/win32-arm64@0.28.2':
2008- optional: true
2009-
2010- '@esbuild/win32-ia32@0.25.12':
2011- optional: true
2012-
2013- '@esbuild/win32-ia32@0.28.1':
2014- optional: true
2015-
2016- '@esbuild/win32-ia32@0.28.2':
2017- optional: true
2018-
2019- '@esbuild/win32-x64@0.25.12':
2020- optional: true
2021-
2022- '@esbuild/win32-x64@0.28.1':
2023- optional: true
2024-
2025- '@esbuild/win32-x64@0.28.2':
2026- optional: true
2027-
2028- '@hexagon/base64@1.1.28': {}
2029-
2030- '@img/colour@1.1.0': {}
2031-
2032- '@img/sharp-darwin-arm64@0.35.2':
2033- optionalDependencies:
2034- '@img/sharp-libvips-darwin-arm64': 1.3.1
2035- optional: true
2036-
2037- '@img/sharp-darwin-arm64@0.35.5':
2038- optionalDependencies:
2039- '@img/sharp-libvips-darwin-arm64': 1.3.4
2040- optional: true
2041-
2042- '@img/sharp-darwin-x64@0.35.2':
2043- optionalDependencies:
2044- '@img/sharp-libvips-darwin-x64': 1.3.1
2045- optional: true
2046-
2047- '@img/sharp-darwin-x64@0.35.5':
2048- optionalDependencies:
2049- '@img/sharp-libvips-darwin-x64': 1.3.4
2050- optional: true
2051-
2052- '@img/sharp-freebsd-wasm32@0.35.2':
2053- dependencies:
2054- '@img/sharp-wasm32': 0.35.2
2055- optional: true
2056-
2057- '@img/sharp-freebsd-wasm32@0.35.5':
2058- dependencies:
2059- '@img/sharp-wasm32': 0.35.5
2060- optional: true
2061-
2062- '@img/sharp-libvips-darwin-arm64@1.3.1':
2063- optional: true
2064-
2065- '@img/sharp-libvips-darwin-arm64@1.3.4':
2066- optional: true
2067-
2068- '@img/sharp-libvips-darwin-x64@1.3.1':
2069- optional: true
2070-
2071- '@img/sharp-libvips-darwin-x64@1.3.4':
2072- optional: true
2073-
2074- '@img/sharp-libvips-linux-arm64@1.3.1':
2075- optional: true
2076-
2077- '@img/sharp-libvips-linux-arm64@1.3.4':
2078- optional: true
2079-
2080- '@img/sharp-libvips-linux-arm@1.3.1':
2081- optional: true
2082-
2083- '@img/sharp-libvips-linux-arm@1.3.4':
2084- optional: true
2085-
2086- '@img/sharp-libvips-linux-ppc64@1.3.1':
2087- optional: true
2088-
2089- '@img/sharp-libvips-linux-ppc64@1.3.4':
2090- optional: true
2091-
2092- '@img/sharp-libvips-linux-riscv64@1.3.1':
2093- optional: true
2094-
2095- '@img/sharp-libvips-linux-riscv64@1.3.4':
2096- optional: true
2097-
2098- '@img/sharp-libvips-linux-s390x@1.3.1':
2099- optional: true
2100-
2101- '@img/sharp-libvips-linux-s390x@1.3.4':
2102- optional: true
2103-
2104- '@img/sharp-libvips-linux-x64@1.3.1':
2105- optional: true
2106-
2107- '@img/sharp-libvips-linux-x64@1.3.4':
2108- optional: true
2109-
2110- '@img/sharp-libvips-linuxmusl-arm64@1.3.1':
2111- optional: true
2112-
2113- '@img/sharp-libvips-linuxmusl-arm64@1.3.4':
2114- optional: true
2115-
2116- '@img/sharp-libvips-linuxmusl-x64@1.3.1':
2117- optional: true
2118-
2119- '@img/sharp-libvips-linuxmusl-x64@1.3.4':
2120- optional: true
2121-
2122- '@img/sharp-linux-arm64@0.35.2':
2123- optionalDependencies:
2124- '@img/sharp-libvips-linux-arm64': 1.3.1
2125- optional: true
2126-
2127- '@img/sharp-linux-arm64@0.35.5':
2128- optionalDependencies:
2129- '@img/sharp-libvips-linux-arm64': 1.3.4
2130- optional: true
2131-
2132- '@img/sharp-linux-arm@0.35.2':
2133- optionalDependencies:
2134- '@img/sharp-libvips-linux-arm': 1.3.1
2135- optional: true
2136-
2137- '@img/sharp-linux-arm@0.35.5':
2138- optionalDependencies:
2139- '@img/sharp-libvips-linux-arm': 1.3.4
2140- optional: true
2141-
2142- '@img/sharp-linux-ppc64@0.35.2':
2143- optionalDependencies:
2144- '@img/sharp-libvips-linux-ppc64': 1.3.1
2145- optional: true
2146-
2147- '@img/sharp-linux-ppc64@0.35.5':
2148- optionalDependencies:
2149- '@img/sharp-libvips-linux-ppc64': 1.3.4
2150- optional: true
2151-
2152- '@img/sharp-linux-riscv64@0.35.2':
2153- optionalDependencies:
2154- '@img/sharp-libvips-linux-riscv64': 1.3.1
2155- optional: true
2156-
2157- '@img/sharp-linux-riscv64@0.35.5':
2158- optionalDependencies:
2159- '@img/sharp-libvips-linux-riscv64': 1.3.4
2160- optional: true
2161-
2162- '@img/sharp-linux-s390x@0.35.2':
2163- optionalDependencies:
2164- '@img/sharp-libvips-linux-s390x': 1.3.1
2165- optional: true
2166-
2167- '@img/sharp-linux-s390x@0.35.5':
2168- optionalDependencies:
2169- '@img/sharp-libvips-linux-s390x': 1.3.4
2170- optional: true
2171-
2172- '@img/sharp-linux-x64@0.35.2':
2173- optionalDependencies:
2174- '@img/sharp-libvips-linux-x64': 1.3.1
2175- optional: true
2176-
2177- '@img/sharp-linux-x64@0.35.5':
2178- optionalDependencies:
2179- '@img/sharp-libvips-linux-x64': 1.3.4
2180- optional: true
2181-
2182- '@img/sharp-linuxmusl-arm64@0.35.2':
2183- optionalDependencies:
2184- '@img/sharp-libvips-linuxmusl-arm64': 1.3.1
2185- optional: true
2186-
2187- '@img/sharp-linuxmusl-arm64@0.35.5':
2188- optionalDependencies:
2189- '@img/sharp-libvips-linuxmusl-arm64': 1.3.4
2190- optional: true
2191-
2192- '@img/sharp-linuxmusl-x64@0.35.2':
2193- optionalDependencies:
2194- '@img/sharp-libvips-linuxmusl-x64': 1.3.1
2195- optional: true
2196-
2197- '@img/sharp-linuxmusl-x64@0.35.5':
2198- optionalDependencies:
2199- '@img/sharp-libvips-linuxmusl-x64': 1.3.4
2200- optional: true
2201-
2202- '@img/sharp-wasm32@0.35.2':
2203- dependencies:
2204- '@emnapi/runtime': 1.11.3
2205- optional: true
2206-
2207- '@img/sharp-wasm32@0.35.5':
2208- dependencies:
2209- '@emnapi/runtime': 1.11.3
2210- optional: true
2211-
2212- '@img/sharp-webcontainers-wasm32@0.35.2':
2213- dependencies:
2214- '@img/sharp-wasm32': 0.35.2
2215- optional: true
2216-
2217- '@img/sharp-webcontainers-wasm32@0.35.5':
2218- dependencies:
2219- '@img/sharp-wasm32': 0.35.5
2220- optional: true
2221-
2222- '@img/sharp-win32-arm64@0.35.2':
2223- optional: true
2224-
2225- '@img/sharp-win32-arm64@0.35.5':
2226- optional: true
2227-
2228- '@img/sharp-win32-ia32@0.35.2':
2229- optional: true
2230-
2231- '@img/sharp-win32-ia32@0.35.5':
2232- optional: true
2233-
2234- '@img/sharp-win32-x64@0.35.2':
2235- optional: true
2236-
2237- '@img/sharp-win32-x64@0.35.5':
2238- optional: true
2239-
2240- '@jridgewell/resolve-uri@3.1.2': {}
2241-
2242- '@jridgewell/sourcemap-codec@1.6.0': {}
2243-
2244- '@jridgewell/trace-mapping@0.3.9':
2245- dependencies:
2246- '@jridgewell/resolve-uri': 3.1.2
2247- '@jridgewell/sourcemap-codec': 1.6.0
2248-
2249- '@levischuck/tiny-cbor@0.2.11': {}
2250-
2251- '@oxc-project/types@0.153.0': {}
2252-
2253- '@peculiar/asn1-android@2.10.0':
2254- dependencies:
2255- '@peculiar/asn1-schema': 2.10.0
2256- asn1js: 3.0.10
2257- tslib: 2.8.1
2258-
2259- '@peculiar/asn1-asym-key@2.10.0':
2260- dependencies:
2261- '@peculiar/asn1-pkcs8': 2.10.0
2262- '@peculiar/asn1-schema': 2.10.0
2263- '@peculiar/asn1-x509': 2.10.0
2264- asn1js: 3.0.10
2265- tslib: 2.8.1
2266-
2267- '@peculiar/asn1-cms@2.10.0':
2268- dependencies:
2269- '@peculiar/asn1-schema': 2.10.0
2270- '@peculiar/asn1-x509': 2.10.0
2271- '@peculiar/asn1-x509-attr': 2.10.0
2272- asn1js: 3.0.10
2273- tslib: 2.8.1
2274-
2275- '@peculiar/asn1-csr@2.10.0':
2276- dependencies:
2277- '@peculiar/asn1-schema': 2.10.0
2278- '@peculiar/asn1-x509': 2.10.0
2279- asn1js: 3.0.10
2280- tslib: 2.8.1
2281-
2282- '@peculiar/asn1-ecc@2.10.0':
2283- dependencies:
2284- '@peculiar/asn1-schema': 2.10.0
2285- '@peculiar/asn1-x509': 2.10.0
2286- asn1js: 3.0.10
2287- tslib: 2.8.1
2288-
2289- '@peculiar/asn1-pfx@2.10.0':
2290- dependencies:
2291- '@peculiar/asn1-cms': 2.10.0
2292- '@peculiar/asn1-pkcs8': 2.10.0
2293- '@peculiar/asn1-rsa': 2.10.0
2294- '@peculiar/asn1-schema': 2.10.0
2295- asn1js: 3.0.10
2296- tslib: 2.8.1
2297-
2298- '@peculiar/asn1-pkcs8@2.10.0':
2299- dependencies:
2300- '@peculiar/asn1-schema': 2.10.0
2301- '@peculiar/asn1-x509': 2.10.0
2302- asn1js: 3.0.10
2303- tslib: 2.8.1
2304-
2305- '@peculiar/asn1-pkcs9@2.10.0':
2306- dependencies:
2307- '@peculiar/asn1-cms': 2.10.0
2308- '@peculiar/asn1-pfx': 2.10.0
2309- '@peculiar/asn1-pkcs8': 2.10.0
2310- '@peculiar/asn1-schema': 2.10.0
2311- '@peculiar/asn1-x509': 2.10.0
2312- '@peculiar/asn1-x509-attr': 2.10.0
2313- asn1js: 3.0.10
2314- tslib: 2.8.1
2315-
2316- '@peculiar/asn1-rsa@2.10.0':
2317- dependencies:
2318- '@peculiar/asn1-schema': 2.10.0
2319- '@peculiar/asn1-x509': 2.10.0
2320- asn1js: 3.0.10
2321- tslib: 2.8.1
2322-
2323- '@peculiar/asn1-schema@2.10.0':
2324- dependencies:
2325- '@peculiar/utils': 2.0.3
2326- asn1js: 3.0.10
2327- tslib: 2.8.1
2328-
2329- '@peculiar/asn1-x509-attr@2.10.0':
2330- dependencies:
2331- '@peculiar/asn1-schema': 2.10.0
2332- '@peculiar/asn1-x509': 2.10.0
2333- asn1js: 3.0.10
2334- tslib: 2.8.1
2335-
2336- '@peculiar/asn1-x509-post-quantum@2.10.0':
2337- dependencies:
2338- '@peculiar/asn1-asym-key': 2.10.0
2339- '@peculiar/asn1-schema': 2.10.0
2340- '@peculiar/asn1-x509': 2.10.0
2341- asn1js: 3.0.10
2342- tslib: 2.8.1
2343-
2344- '@peculiar/asn1-x509@2.10.0':
2345- dependencies:
2346- '@peculiar/asn1-schema': 2.10.0
2347- '@peculiar/utils': 2.0.3
2348- asn1js: 3.0.10
2349- tslib: 2.8.1
2350-
2351- '@peculiar/utils@2.0.3':
2352- dependencies:
2353- tslib: 2.8.1
2354-
2355- '@peculiar/x509@2.1.0':
2356- dependencies:
2357- '@peculiar/asn1-cms': 2.10.0
2358- '@peculiar/asn1-csr': 2.10.0
2359- '@peculiar/asn1-ecc': 2.10.0
2360- '@peculiar/asn1-pkcs9': 2.10.0
2361- '@peculiar/asn1-rsa': 2.10.0
2362- '@peculiar/asn1-schema': 2.10.0
2363- '@peculiar/asn1-x509': 2.10.0
2364- '@peculiar/asn1-x509-post-quantum': 2.10.0
2365- pvtsutils: 1.3.6
2366- tslib: 2.8.1
2367- tsyringe: 4.10.0
2368-
2369- '@poppinss/colors@4.1.6':
2370- dependencies:
2371- kleur: 4.1.5
2372-
2373- '@poppinss/dumper@0.6.5':
2374- dependencies:
2375- '@poppinss/colors': 4.1.6
2376- '@sindresorhus/is': 7.2.0
2377- supports-color: 10.2.2
2378-
2379- '@poppinss/exception@1.2.3': {}
2380-
2381- '@rolldown/binding-android-arm-eabi@1.2.13':
2382- optional: true
2383-
2384- '@rolldown/binding-android-arm64@1.2.13':
2385- optional: true
2386-
2387- '@rolldown/binding-darwin-arm64@1.2.13':
2388- optional: true
2389-
2390- '@rolldown/binding-darwin-x64@1.2.13':
2391- optional: true
2392-
2393- '@rolldown/binding-freebsd-x64@1.2.13':
2394- optional: true
2395-
2396- '@rolldown/binding-linux-arm-gnueabihf@1.2.13':
2397- optional: true
2398-
2399- '@rolldown/binding-linux-arm64-gnu@1.2.13':
2400- optional: true
2401-
2402- '@rolldown/binding-linux-arm64-musl@1.2.13':
2403- optional: true
2404-
2405- '@rolldown/binding-linux-ppc64-gnu@1.2.13':
2406- optional: true
2407-
2408- '@rolldown/binding-linux-s390x-gnu@1.2.13':
2409- optional: true
2410-
2411- '@rolldown/binding-linux-x64-gnu@1.2.13':
2412- optional: true
2413-
2414- '@rolldown/binding-linux-x64-musl@1.2.13':
2415- optional: true
2416-
2417- '@rolldown/binding-openharmony-arm64@1.2.13':
2418- optional: true
2419-
2420- '@rolldown/binding-win32-arm64-msvc@1.2.13':
2421- optional: true
2422-
2423- '@rolldown/binding-win32-x64-msvc@1.2.13':
2424- optional: true
2425-
2426- '@rolldown/pluginutils@1.0.1': {}
2427-
2428- '@simplewebauthn/server@14.0.3':
2429- dependencies:
2430- '@hexagon/base64': 1.1.28
2431- '@levischuck/tiny-cbor': 0.2.11
2432- '@peculiar/asn1-android': 2.10.0
2433- '@peculiar/asn1-ecc': 2.10.0
2434- '@peculiar/asn1-rsa': 2.10.0
2435- '@peculiar/asn1-schema': 2.10.0
2436- '@peculiar/asn1-x509': 2.10.0
2437- '@peculiar/asn1-x509-post-quantum': 2.10.0
2438- '@peculiar/x509': 2.1.0
2439- reflect-metadata: 0.2.2
2440-
2441- '@sindresorhus/is@7.2.0': {}
2442-
2443- '@speed-highlight/core@1.2.24': {}
2444-
2445- '@standard-schema/spec@1.1.0': {}
2446-
2447- '@turbo/darwin-64@2.11.7':
2448- optional: true
2449-
2450- '@turbo/darwin-arm64@2.11.7':
2451- optional: true
2452-
2453- '@turbo/linux-64@2.11.7':
2454- optional: true
2455-
2456- '@turbo/linux-arm64@2.11.7':
2457- optional: true
2458-
2459- '@turbo/windows-64@2.11.7':
2460- optional: true
2461-
2462- '@turbo/windows-arm64@2.11.7':
2463- optional: true
2464-
2465- '@types/chai@5.2.3':
2466- dependencies:
2467- '@types/deep-eql': 4.0.2
2468- assertion-error: 2.0.1
2469-
2470- '@types/deep-eql@4.0.2': {}
2471-
2472- '@types/estree@1.0.9': {}
2473-
2474- '@types/node@22.20.5':
2475- dependencies:
2476- undici-types: 6.21.0
2477-
2478- '@types/pako@2.0.4': {}
2479-
2480- '@vitest/expect@4.1.11':
2481- dependencies:
2482- '@standard-schema/spec': 1.1.0
2483- '@types/chai': 5.2.3
2484- '@vitest/spy': 4.1.11
2485- '@vitest/utils': 4.1.11
2486- chai: 6.3.0
2487- tinyrainbow: 3.2.0
2488-
2489- '@vitest/mocker@4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1))':
2490- dependencies:
2491- '@vitest/spy': 4.1.11
2492- estree-walker: 3.0.3
2493- magic-string: 0.30.21
2494- optionalDependencies:
2495- vite: 8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1)
2496-
2497- '@vitest/mocker@4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))':
2498- dependencies:
2499- '@vitest/spy': 4.1.11
2500- estree-walker: 3.0.3
2501- magic-string: 0.30.21
2502- optionalDependencies:
2503- vite: 8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1)
2504-
2505- '@vitest/pretty-format@4.1.11':
2506- dependencies:
2507- tinyrainbow: 3.2.0
2508-
2509- '@vitest/runner@4.1.11':
2510- dependencies:
2511- '@vitest/utils': 4.1.11
2512- pathe: 2.0.3
2513-
2514- '@vitest/snapshot@4.1.11':
2515- dependencies:
2516- '@vitest/pretty-format': 4.1.11
2517- '@vitest/utils': 4.1.11
2518- magic-string: 0.30.21
2519- pathe: 2.0.3
2520-
2521- '@vitest/spy@4.1.11': {}
2522-
2523- '@vitest/utils@4.1.11':
2524- dependencies:
2525- '@vitest/pretty-format': 4.1.11
2526- convert-source-map: 2.0.0
2527- tinyrainbow: 3.2.0
2528-
2529- asn1js@3.0.10:
2530- dependencies:
2531- pvtsutils: 1.3.6
2532- pvutils: 1.2.0
2533- tslib: 2.8.1
2534-
2535- assertion-error@2.0.1: {}
2536-
2537- blake3-wasm@2.1.5: {}
2538-
2539- chai@6.3.0: {}
2540-
2541- cjs-module-lexer@1.2.3: {}
2542-
2543- convert-source-map@2.0.0: {}
2544-
2545- cookie@1.1.1: {}
2546-
2547- detect-libc@2.1.2: {}
2548-
2549- diff@8.0.4: {}
2550-
2551- error-stack-parser-es@1.0.5: {}
2552-
2553- es-module-lexer@2.3.2: {}
2554-
2555- esbuild@0.25.12:
2556- optionalDependencies:
2557- '@esbuild/aix-ppc64': 0.25.12
2558- '@esbuild/android-arm': 0.25.12
2559- '@esbuild/android-arm64': 0.25.12
2560- '@esbuild/android-x64': 0.25.12
2561- '@esbuild/darwin-arm64': 0.25.12
2562- '@esbuild/darwin-x64': 0.25.12
2563- '@esbuild/freebsd-arm64': 0.25.12
2564- '@esbuild/freebsd-x64': 0.25.12
2565- '@esbuild/linux-arm': 0.25.12
2566- '@esbuild/linux-arm64': 0.25.12
2567- '@esbuild/linux-ia32': 0.25.12
2568- '@esbuild/linux-loong64': 0.25.12
2569- '@esbuild/linux-mips64el': 0.25.12
2570- '@esbuild/linux-ppc64': 0.25.12
2571- '@esbuild/linux-riscv64': 0.25.12
2572- '@esbuild/linux-s390x': 0.25.12
2573- '@esbuild/linux-x64': 0.25.12
2574- '@esbuild/netbsd-arm64': 0.25.12
2575- '@esbuild/netbsd-x64': 0.25.12
2576- '@esbuild/openbsd-arm64': 0.25.12
2577- '@esbuild/openbsd-x64': 0.25.12
2578- '@esbuild/openharmony-arm64': 0.25.12
2579- '@esbuild/sunos-x64': 0.25.12
2580- '@esbuild/win32-arm64': 0.25.12
2581- '@esbuild/win32-ia32': 0.25.12
2582- '@esbuild/win32-x64': 0.25.12
2583-
2584- esbuild@0.28.1:
2585- optionalDependencies:
2586- '@esbuild/aix-ppc64': 0.28.1
2587- '@esbuild/android-arm': 0.28.1
2588- '@esbuild/android-arm64': 0.28.1
2589- '@esbuild/android-x64': 0.28.1
2590- '@esbuild/darwin-arm64': 0.28.1
2591- '@esbuild/darwin-x64': 0.28.1
2592- '@esbuild/freebsd-arm64': 0.28.1
2593- '@esbuild/freebsd-x64': 0.28.1
2594- '@esbuild/linux-arm': 0.28.1
2595- '@esbuild/linux-arm64': 0.28.1
2596- '@esbuild/linux-ia32': 0.28.1
2597- '@esbuild/linux-loong64': 0.28.1
2598- '@esbuild/linux-mips64el': 0.28.1
2599- '@esbuild/linux-ppc64': 0.28.1
2600- '@esbuild/linux-riscv64': 0.28.1
2601- '@esbuild/linux-s390x': 0.28.1
2602- '@esbuild/linux-x64': 0.28.1
2603- '@esbuild/netbsd-arm64': 0.28.1
2604- '@esbuild/netbsd-x64': 0.28.1
2605- '@esbuild/openbsd-arm64': 0.28.1
2606- '@esbuild/openbsd-x64': 0.28.1
2607- '@esbuild/openharmony-arm64': 0.28.1
2608- '@esbuild/sunos-x64': 0.28.1
2609- '@esbuild/win32-arm64': 0.28.1
2610- '@esbuild/win32-ia32': 0.28.1
2611- '@esbuild/win32-x64': 0.28.1
2612-
2613- esbuild@0.28.2:
2614- optionalDependencies:
2615- '@esbuild/aix-ppc64': 0.28.2
2616- '@esbuild/android-arm': 0.28.2
2617- '@esbuild/android-arm64': 0.28.2
2618- '@esbuild/android-x64': 0.28.2
2619- '@esbuild/darwin-arm64': 0.28.2
2620- '@esbuild/darwin-x64': 0.28.2
2621- '@esbuild/freebsd-arm64': 0.28.2
2622- '@esbuild/freebsd-x64': 0.28.2
2623- '@esbuild/linux-arm': 0.28.2
2624- '@esbuild/linux-arm64': 0.28.2
2625- '@esbuild/linux-ia32': 0.28.2
2626- '@esbuild/linux-loong64': 0.28.2
2627- '@esbuild/linux-mips64el': 0.28.2
2628- '@esbuild/linux-ppc64': 0.28.2
2629- '@esbuild/linux-riscv64': 0.28.2
2630- '@esbuild/linux-s390x': 0.28.2
2631- '@esbuild/linux-x64': 0.28.2
2632- '@esbuild/netbsd-arm64': 0.28.2
2633- '@esbuild/netbsd-x64': 0.28.2
2634- '@esbuild/openbsd-arm64': 0.28.2
2635- '@esbuild/openbsd-x64': 0.28.2
2636- '@esbuild/openharmony-arm64': 0.28.2
2637- '@esbuild/sunos-x64': 0.28.2
2638- '@esbuild/win32-arm64': 0.28.2
2639- '@esbuild/win32-ia32': 0.28.2
2640- '@esbuild/win32-x64': 0.28.2
2641-
2642- estree-walker@3.0.3:
2643- dependencies:
2644- '@types/estree': 1.0.9
2645-
2646- expect-type@1.4.0: {}
2647-
2648- fdir@6.5.0(picomatch@4.0.7):
2649- optionalDependencies:
2650- picomatch: 4.0.7
2651-
2652- fsevents@2.3.2:
2653- optional: true
2654-
2655- fsevents@2.3.3:
2656- optional: true
2657-
2658- hono@4.13.13: {}
2659-
2660- kleur@4.1.5: {}
2661-
2662- lightningcss-android-arm64@1.33.0:
2663- optional: true
2664-
2665- lightningcss-darwin-arm64@1.33.0:
2666- optional: true
2667-
2668- lightningcss-darwin-x64@1.33.0:
2669- optional: true
2670-
2671- lightningcss-freebsd-x64@1.33.0:
2672- optional: true
2673-
2674- lightningcss-linux-arm-gnueabihf@1.33.0:
2675- optional: true
2676-
2677- lightningcss-linux-arm64-gnu@1.33.0:
2678- optional: true
2679-
2680- lightningcss-linux-arm64-musl@1.33.0:
2681- optional: true
2682-
2683- lightningcss-linux-x64-gnu@1.33.0:
2684- optional: true
2685-
2686- lightningcss-linux-x64-musl@1.33.0:
2687- optional: true
2688-
2689- lightningcss-win32-arm64-msvc@1.33.0:
2690- optional: true
2691-
2692- lightningcss-win32-x64-msvc@1.33.0:
2693- optional: true
2694-
2695- lightningcss@1.33.0:
2696- dependencies:
2697- detect-libc: 2.1.2
2698- optionalDependencies:
2699- lightningcss-android-arm64: 1.33.0
2700- lightningcss-darwin-arm64: 1.33.0
2701- lightningcss-darwin-x64: 1.33.0
2702- lightningcss-freebsd-x64: 1.33.0
2703- lightningcss-linux-arm-gnueabihf: 1.33.0
2704- lightningcss-linux-arm64-gnu: 1.33.0
2705- lightningcss-linux-arm64-musl: 1.33.0
2706- lightningcss-linux-x64-gnu: 1.33.0
2707- lightningcss-linux-x64-musl: 1.33.0
2708- lightningcss-win32-arm64-msvc: 1.33.0
2709- lightningcss-win32-x64-msvc: 1.33.0
2710-
2711- magic-string@0.30.21:
2712- dependencies:
2713- '@jridgewell/sourcemap-codec': 1.6.0
2714-
2715- miniflare@5.20260815.0-alpha:
2716- dependencies:
2717- '@cspotcode/source-map-support': 0.8.1
2718- sharp: 0.35.2
2719- undici: 7.29.0
2720- workerd: 1.20260815.1
2721- ws: 8.21.0
2722- youch: 4.1.0-beta.10
2723- transitivePeerDependencies:
2724- - bufferutil
2725- - utf-8-validate
2726-
2727- miniflare@5.20261006.1-alpha(@types/node@22.20.5):
2728- dependencies:
2729- '@cspotcode/source-map-support': 0.8.1
2730- sharp: 0.35.5(@types/node@22.20.5)
2731- undici: 7.29.1
2732- workerd: 1.20261006.1
2733- ws: 8.21.0
2734- youch: 4.1.0-beta.10
2735- transitivePeerDependencies:
2736- - '@types/node'
2737- - bufferutil
2738- - utf-8-validate
2739-
2740- nanoid@3.3.20: {}
2741-
2742- obug@2.2.1: {}
2743-
2744- pako@2.2.0: {}
2745-
2746- path-to-regexp@6.3.0: {}
2747-
2748- pathe@2.0.3: {}
2749-
2750- picocolors@1.1.1: {}
2751-
2752- picomatch@4.0.7: {}
2753-
2754- playwright-core@1.56.1: {}
2755-
2756- playwright@1.56.1:
2757- dependencies:
2758- playwright-core: 1.56.1
2759- optionalDependencies:
2760- fsevents: 2.3.2
2761-
2762- postcss@8.5.29:
2763- dependencies:
2764- nanoid: 3.3.20
2765- picocolors: 1.1.1
2766- source-map-js: 1.2.2
2767-
2768- pvtsutils@1.3.6:
2769- dependencies:
2770- tslib: 2.8.1
2771-
2772- pvutils@1.2.0: {}
2773-
2774- reflect-metadata@0.2.2: {}
2775-
2776- rolldown@1.2.13:
2777- dependencies:
2778- '@oxc-project/types': 0.153.0
2779- '@rolldown/pluginutils': 1.0.1
2780- optionalDependencies:
2781- '@rolldown/binding-android-arm-eabi': 1.2.13
2782- '@rolldown/binding-android-arm64': 1.2.13
2783- '@rolldown/binding-darwin-arm64': 1.2.13
2784- '@rolldown/binding-darwin-x64': 1.2.13
2785- '@rolldown/binding-freebsd-x64': 1.2.13
2786- '@rolldown/binding-linux-arm-gnueabihf': 1.2.13
2787- '@rolldown/binding-linux-arm64-gnu': 1.2.13
2788- '@rolldown/binding-linux-arm64-musl': 1.2.13
2789- '@rolldown/binding-linux-ppc64-gnu': 1.2.13
2790- '@rolldown/binding-linux-s390x-gnu': 1.2.13
2791- '@rolldown/binding-linux-x64-gnu': 1.2.13
2792- '@rolldown/binding-linux-x64-musl': 1.2.13
2793- '@rolldown/binding-openharmony-arm64': 1.2.13
2794- '@rolldown/binding-win32-arm64-msvc': 1.2.13
2795- '@rolldown/binding-win32-x64-msvc': 1.2.13
2796-
2797- semver@7.8.5: {}
2798-
2799- sharp@0.35.2:
2800- dependencies:
2801- '@img/colour': 1.1.0
2802- detect-libc: 2.1.2
2803- semver: 7.8.5
2804- optionalDependencies:
2805- '@img/sharp-darwin-arm64': 0.35.2
2806- '@img/sharp-darwin-x64': 0.35.2
2807- '@img/sharp-freebsd-wasm32': 0.35.2
2808- '@img/sharp-libvips-darwin-arm64': 1.3.1
2809- '@img/sharp-libvips-darwin-x64': 1.3.1
2810- '@img/sharp-libvips-linux-arm': 1.3.1
2811- '@img/sharp-libvips-linux-arm64': 1.3.1
2812- '@img/sharp-libvips-linux-ppc64': 1.3.1
2813- '@img/sharp-libvips-linux-riscv64': 1.3.1
2814- '@img/sharp-libvips-linux-s390x': 1.3.1
2815- '@img/sharp-libvips-linux-x64': 1.3.1
2816- '@img/sharp-libvips-linuxmusl-arm64': 1.3.1
2817- '@img/sharp-libvips-linuxmusl-x64': 1.3.1
2818- '@img/sharp-linux-arm': 0.35.2
2819- '@img/sharp-linux-arm64': 0.35.2
2820- '@img/sharp-linux-ppc64': 0.35.2
2821- '@img/sharp-linux-riscv64': 0.35.2
2822- '@img/sharp-linux-s390x': 0.35.2
2823- '@img/sharp-linux-x64': 0.35.2
2824- '@img/sharp-linuxmusl-arm64': 0.35.2
2825- '@img/sharp-linuxmusl-x64': 0.35.2
2826- '@img/sharp-webcontainers-wasm32': 0.35.2
2827- '@img/sharp-win32-arm64': 0.35.2
2828- '@img/sharp-win32-ia32': 0.35.2
2829- '@img/sharp-win32-x64': 0.35.2
2830-
2831- sharp@0.35.5(@types/node@22.20.5):
2832- dependencies:
2833- '@img/colour': 1.1.0
2834- detect-libc: 2.1.2
2835- semver: 7.8.5
2836- optionalDependencies:
2837- '@img/sharp-darwin-arm64': 0.35.5
2838- '@img/sharp-darwin-x64': 0.35.5
2839- '@img/sharp-freebsd-wasm32': 0.35.5
2840- '@img/sharp-libvips-darwin-arm64': 1.3.4
2841- '@img/sharp-libvips-darwin-x64': 1.3.4
2842- '@img/sharp-libvips-linux-arm': 1.3.4
2843- '@img/sharp-libvips-linux-arm64': 1.3.4
2844- '@img/sharp-libvips-linux-ppc64': 1.3.4
2845- '@img/sharp-libvips-linux-riscv64': 1.3.4
2846- '@img/sharp-libvips-linux-s390x': 1.3.4
2847- '@img/sharp-libvips-linux-x64': 1.3.4
2848- '@img/sharp-libvips-linuxmusl-arm64': 1.3.4
2849- '@img/sharp-libvips-linuxmusl-x64': 1.3.4
2850- '@img/sharp-linux-arm': 0.35.5
2851- '@img/sharp-linux-arm64': 0.35.5
2852- '@img/sharp-linux-ppc64': 0.35.5
2853- '@img/sharp-linux-riscv64': 0.35.5
2854- '@img/sharp-linux-s390x': 0.35.5
2855- '@img/sharp-linux-x64': 0.35.5
2856- '@img/sharp-linuxmusl-arm64': 0.35.5
2857- '@img/sharp-linuxmusl-x64': 0.35.5
2858- '@img/sharp-webcontainers-wasm32': 0.35.5
2859- '@img/sharp-win32-arm64': 0.35.5
2860- '@img/sharp-win32-ia32': 0.35.5
2861- '@img/sharp-win32-x64': 0.35.5
2862- '@types/node': 22.20.5
2863-
2864- siginfo@2.0.0: {}
2865-
2866- source-map-js@1.2.2: {}
2867-
2868- stackback@0.0.2: {}
2869-
2870- std-env@4.3.0: {}
2871-
2872- supports-color@10.2.2: {}
2873-
2874- tinybench@2.9.0: {}
2875-
2876- tinyexec@1.3.1: {}
2877-
2878- tinyglobby@0.2.17:
2879- dependencies:
2880- fdir: 6.5.0(picomatch@4.0.7)
2881- picomatch: 4.0.7
2882-
2883- tinyrainbow@3.2.0: {}
2884-
2885- tslib@1.14.1: {}
2886-
2887- tslib@2.8.1: {}
2888-
2889- tsyringe@4.10.0:
2890- dependencies:
2891- tslib: 1.14.1
2892-
2893- turbo@2.11.7:
2894- optionalDependencies:
2895- '@turbo/darwin-64': 2.11.7
2896- '@turbo/darwin-arm64': 2.11.7
2897- '@turbo/linux-64': 2.11.7
2898- '@turbo/linux-arm64': 2.11.7
2899- '@turbo/windows-64': 2.11.7
2900- '@turbo/windows-arm64': 2.11.7
2901-
2902- typescript@5.9.3: {}
2903-
2904- undici-types@6.21.0: {}
2905-
2906- undici@7.29.0: {}
2907-
2908- undici@7.29.1: {}
2909-
2910- unenv@2.0.0-rc.24:
2911- dependencies:
2912- pathe: 2.0.3
2913-
2914- vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1):
2915- dependencies:
2916- lightningcss: 1.33.0
2917- picomatch: 4.0.7
2918- postcss: 8.5.29
2919- rolldown: 1.2.13
2920- tinyglobby: 0.2.17
2921- optionalDependencies:
2922- '@types/node': 22.20.5
2923- esbuild: 0.25.12
2924- fsevents: 2.3.3
2925- yaml: 2.9.1
2926-
2927- vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1):
2928- dependencies:
2929- lightningcss: 1.33.0
2930- picomatch: 4.0.7
2931- postcss: 8.5.29
2932- rolldown: 1.2.13
2933- tinyglobby: 0.2.17
2934- optionalDependencies:
2935- '@types/node': 22.20.5
2936- esbuild: 0.28.2
2937- fsevents: 2.3.3
2938- yaml: 2.9.1
2939-
2940- vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1)):
2941- dependencies:
2942- '@vitest/expect': 4.1.11
2943- '@vitest/mocker': 4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1))
2944- '@vitest/pretty-format': 4.1.11
2945- '@vitest/runner': 4.1.11
2946- '@vitest/snapshot': 4.1.11
2947- '@vitest/spy': 4.1.11
2948- '@vitest/utils': 4.1.11
2949- es-module-lexer: 2.3.2
2950- expect-type: 1.4.0
2951- magic-string: 0.30.21
2952- obug: 2.2.1
2953- pathe: 2.0.3
2954- picomatch: 4.0.7
2955- std-env: 4.3.0
2956- tinybench: 2.9.0
2957- tinyexec: 1.3.1
2958- tinyglobby: 0.2.17
2959- tinyrainbow: 3.2.0
2960- vite: 8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1)
2961- why-is-node-running: 2.3.0
2962- optionalDependencies:
2963- '@types/node': 22.20.5
2964- transitivePeerDependencies:
2965- - msw
2966-
2967- vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1)):
2968- dependencies:
2969- '@vitest/expect': 4.1.11
2970- '@vitest/mocker': 4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))
2971- '@vitest/pretty-format': 4.1.11
2972- '@vitest/runner': 4.1.11
2973- '@vitest/snapshot': 4.1.11
2974- '@vitest/spy': 4.1.11
2975- '@vitest/utils': 4.1.11
2976- es-module-lexer: 2.3.2
2977- expect-type: 1.4.0
2978- magic-string: 0.30.21
2979- obug: 2.2.1
2980- pathe: 2.0.3
2981- picomatch: 4.0.7
2982- std-env: 4.3.0
2983- tinybench: 2.9.0
2984- tinyexec: 1.3.1
2985- tinyglobby: 0.2.17
2986- tinyrainbow: 3.2.0
2987- vite: 8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1)
2988- why-is-node-running: 2.3.0
2989- optionalDependencies:
2990- '@types/node': 22.20.5
2991- transitivePeerDependencies:
2992- - msw
2993-
2994- why-is-node-running@2.3.0:
2995- dependencies:
2996- siginfo: 2.0.0
2997- stackback: 0.0.2
2998-
2999- workerd@1.20260815.1:
3000- optionalDependencies:
3001- '@cloudflare/workerd-darwin-64': 1.20260815.1
3002- '@cloudflare/workerd-darwin-arm64': 1.20260815.1
3003- '@cloudflare/workerd-linux-64': 1.20260815.1
3004- '@cloudflare/workerd-linux-arm64': 1.20260815.1
3005- '@cloudflare/workerd-windows-64': 1.20260815.1
3006-
3007- workerd@1.20261006.1:
3008- optionalDependencies:
3009- '@cloudflare/workerd-darwin-64': 1.20261006.1
3010- '@cloudflare/workerd-darwin-arm64': 1.20261006.1
3011- '@cloudflare/workerd-linux-64': 1.20261006.1
3012- '@cloudflare/workerd-linux-arm64': 1.20261006.1
3013- '@cloudflare/workerd-windows-64': 1.20261006.1
3014-
3015- wrangler@4.124.0(@cloudflare/workers-types@5.20261012.1):
3016- dependencies:
3017- '@cloudflare/kv-asset-handler': 0.5.0
3018- '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260815.1)
3019- blake3-wasm: 2.1.5
3020- esbuild: 0.28.1
3021- miniflare: 5.20260815.0-alpha
3022- path-to-regexp: 6.3.0
3023- unenv: 2.0.0-rc.24
3024- workerd: 1.20260815.1
3025- optionalDependencies:
3026- '@cloudflare/workers-types': 5.20261012.1
3027- fsevents: 2.3.3
3028- transitivePeerDependencies:
3029- - bufferutil
3030- - utf-8-validate
3031-
3032- wrangler@4.149.0(@cloudflare/workers-types@5.20261012.1)(@types/node@22.20.5):
3033- dependencies:
3034- '@cloudflare/kv-asset-handler': 0.5.0
3035- '@cloudflare/unenv-preset': 2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1)
3036- blake3-wasm: 2.1.5
3037- esbuild: 0.28.2
3038- miniflare: 5.20261006.1-alpha(@types/node@22.20.5)
3039- path-to-regexp: 6.3.0
3040- unenv: 2.0.0-rc.24
3041- workerd: 1.20261006.1
3042- optionalDependencies:
3043- '@cloudflare/workers-types': 5.20261012.1
3044- fsevents: 2.3.3
3045- transitivePeerDependencies:
3046- - '@types/node'
3047- - bufferutil
3048- - utf-8-validate
3049-
3050- ws@8.21.0: {}
3051-
3052- yaml@2.9.1: {}
3053-
3054- youch-core@0.3.3:
3055- dependencies:
3056- '@poppinss/exception': 1.2.3
3057- error-stack-parser-es: 1.0.5
3058-
3059- youch@4.1.0-beta.10:
3060- dependencies:
3061- '@poppinss/colors': 4.1.6
3062- '@poppinss/dumper': 0.6.5
3063- '@speed-highlight/core': 1.2.24
3064- cookie: 1.1.1
3065- youch-core: 0.3.3
3066-
3067- zod@4.4.3: {}
58+ '@cloudflare/kumo':
59+ specifier: 2.14.0
60+ version: 2.14.0(@date-fns/tz@1.5.0)(@phosphor-icons/react@2.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(date-fns@4.4.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@4.4.3)
61+ '@cloudflare/vitest-pool-workers':
62+ specifier: ^0.23.0
63+ version: 0.23.0(@cloudflare/workers-types@5.20261012.1)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1)))
64+ '@cloudflare/workers-types':
65+ specifier: ^5.20261012.1
66+ version: 5.20261012.1
67+ '@phosphor-icons/react':
68+ specifier: 2.1.10
69+ version: 2.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
70+ '@types/react':
71+ specifier: 19.2.2
72+ version: 19.2.2
73+ '@types/react-dom':
74+ specifier: 19.2.2
75+ version: 19.2.2(@types/react@19.2.2)
76+ esbuild:
77+ specifier: 0.25.11
78+ version: 0.25.11
79+ playwright:
80+ specifier: 1.56.1
81+ version: 1.56.1
82+ postcss:
83+ specifier: 8.5.6
84+ version: 8.5.6
85+ react:
86+ specifier: 19.2.0
87+ version: 19.2.0
88+ react-dom:
89+ specifier: 19.2.0
90+ version: 19.2.0(react@19.2.0)
91+ typescript:
92+ specifier: ^5.9.3
93+ version: 5.9.3
94+ vitest:
95+ specifier: ^4.1.0
96+ version: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1))
97+ wrangler:
98+ specifier: ^4.149.0
99+ version: 4.149.0(@cloudflare/workers-types@5.20261012.1)(@types/node@22.20.5)
100+
101+ containers/runner:
102+ dependencies:
103+ '@diffinery/shared':
104+ specifier: workspace:*
105+ version: link:../../packages/shared
106+ '@diffinery/workflow-yaml':
107+ specifier: workspace:*
108+ version: link:../../packages/workflow-yaml
109+ devDependencies:
110+ '@types/node':
111+ specifier: ^22.0.0
112+ version: 22.20.5
113+ esbuild:
114+ specifier: ^0.25.0
115+ version: 0.25.12
116+ typescript:
117+ specifier: ^5.9.3
118+ version: 5.9.3
119+ vitest:
120+ specifier: ^4.1.0
121+ version: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1))
122+
123+ packages/git-core:
124+ dependencies:
125+ diff:
126+ specifier: ^8.0.0
127+ version: 8.0.4
128+ pako:
129+ specifier: ^2.1.0
130+ version: 2.2.0
131+ devDependencies:
132+ '@types/node':
133+ specifier: ^22.0.0
134+ version: 22.20.5
135+ '@types/pako':
136+ specifier: ^2.0.3
137+ version: 2.0.4
138+ typescript:
139+ specifier: ^5.9.3
140+ version: 5.9.3
141+ vitest:
142+ specifier: ^4.1.0
143+ version: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))
144+
145+ packages/shared:
146+ devDependencies:
147+ typescript:
148+ specifier: ^5.9.3
149+ version: 5.9.3
150+
151+ packages/workflow-yaml:
152+ dependencies:
153+ yaml:
154+ specifier: ^2.9.1
155+ version: 2.9.1
156+ devDependencies:
157+ typescript:
158+ specifier: ^5.9.3
159+ version: 5.9.3
160+ vitest:
161+ specifier: ^4.1.0
162+ version: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))
163+
164+packages:
165+
166+ '@babel/runtime@8.0.7':
167+ resolution: {integrity: sha512-k0hagDDq/6w4v+0Sp4wFvIz/yswH5O7Va6aRTnD7N62Tnborp4X+YB+H3XUcWVSR4aE47WPEXiIIZchBs0GmYg==}
168+
169+ '@base-ui/react@1.9.0':
170+ resolution: {integrity: sha512-S8CSYosASBKtpL8SWUfS78rFElfLijiCgA7oHOK22jCJ95FULsYyKwBNFOgudt0RA+/7yNc7F81bOvQnRgbBiQ==}
171+ engines: {node: '>=14.0.0'}
172+ peerDependencies:
173+ '@date-fns/tz': ^1.2.0
174+ '@types/react': ^17 || ^18 || ^19
175+ date-fns: ^4.0.0
176+ react: ^17 || ^18 || ^19
177+ react-dom: ^17 || ^18 || ^19
178+ peerDependenciesMeta:
179+ '@date-fns/tz':
180+ optional: true
181+ '@types/react':
182+ optional: true
183+ date-fns:
184+ optional: true
185+
186+ '@base-ui/utils@0.5.0':
187+ resolution: {integrity: sha512-dYGGcEttjkYiMoa5nHm8vLaJ2UcuTWxo3BFAwOYXeRg/q7UVVvA6cacEIXEs3FgBfK1CGtW1ptElqs7wsx+t9A==}
188+ peerDependencies:
189+ '@types/react': ^17 || ^18 || ^19
190+ react: ^17 || ^18 || ^19
191+ react-dom: ^17 || ^18 || ^19
192+ peerDependenciesMeta:
193+ '@types/react':
194+ optional: true
195+
196+ '@cloudflare/containers@0.3.7':
197+ resolution: {integrity: sha512-DM9dm3FnIBSyiSJ1FLavKwl/lk3oAmTaynCzZQ9pZR0ncRPquSxkxd8Nu2MFILxmDDsPkxKsSNEh9mHHMty4Fw==}
198+
199+ '@cloudflare/kumo@2.14.0':
200+ resolution: {integrity: sha512-XPGW1KVz9ZbElTQxuy3qVnckVzj8RSfN8FKWWQSkZYfMgvmwviCq9byaVwugnw9mbg+n6vXmJTVDIS5ceS73BA==}
201+ hasBin: true
202+ peerDependencies:
203+ '@phosphor-icons/react': ^2.1.10
204+ echarts: ^6.0.0
205+ react: ^18.0.0 || ^19.0.0
206+ react-dom: ^18.0.0 || ^19.0.0
207+ zod: ^4.0.0
208+ peerDependenciesMeta:
209+ echarts:
210+ optional: true
211+ zod:
212+ optional: true
213+
214+ '@cloudflare/kv-asset-handler@0.5.0':
215+ resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==}
216+ engines: {node: '>=22.0.0'}
217+
218+ '@cloudflare/unenv-preset@2.16.1':
219+ resolution: {integrity: sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==}
220+ peerDependencies:
221+ unenv: 2.0.0-rc.24
222+ workerd: '>1.20260305.0 <2.0.0-0'
223+ peerDependenciesMeta:
224+ workerd:
225+ optional: true
226+
227+ '@cloudflare/unenv-preset@2.16.2':
228+ resolution: {integrity: sha512-JBP1+Z7ZSNG/d4mRP+y8VC5dka3tZVMLEZRvS+rzQ4DGV1EoxRFQckcJTTkXbHSQiTj0DtNI01Zwb/V2fX0mvQ==}
229+ peerDependencies:
230+ unenv: 2.0.0-rc.24
231+ workerd: '>1.20260305.0 <2.0.0-0'
232+ peerDependenciesMeta:
233+ workerd:
234+ optional: true
235+
236+ '@cloudflare/vitest-pool-workers@0.23.0':
237+ resolution: {integrity: sha512-4giZR3fuY9GcTx6Jb7gZX33SUOgeY7rQSm9qSdf9TPfI8i3fP+P1ZA8BM9rMOSoMtLpwo+Zw5zy3v2Ux7iAvNA==}
238+ deprecated: '@cloudflare/vitest-pool-workers has been renamed to @cloudflare/vitest-plugin. This package will not receive future updates.'
239+ peerDependencies:
240+ '@vitest/runner': ^4.1.0
241+ '@vitest/snapshot': ^4.1.0
242+ vitest: ^4.1.0
243+
244+ '@cloudflare/workerd-darwin-64@1.20260815.1':
245+ resolution: {integrity: sha512-7PsLdcz6pT9EMd1EJGZEgMyYRfs0CHxGs62PS2L1w3s6+xGmQcRXKm/zoMftmqZF45JBa4MzFeownRKbRt/x5g==}
246+ engines: {node: '>=16'}
247+ cpu: [x64]
248+ os: [darwin]
249+
250+ '@cloudflare/workerd-darwin-64@1.20261006.1':
251+ resolution: {integrity: sha512-lCX6avJO2It9AyDEYitjmOtJRVp/xmaW0TziyoLAnfxlzozyyRbSFfIIMMCiDx/sTP1++E4VLbV+7BHSD33f0Q==}
252+ engines: {node: '>=16'}
253+ cpu: [x64]
254+ os: [darwin]
255+
256+ '@cloudflare/workerd-darwin-arm64@1.20260815.1':
257+ resolution: {integrity: sha512-60wtg8ng7FVWeOg/UMbZ9Ye0sslpRRAKoftPbdtuH2volq676quxVr6Zm2EjVULH/JFZeCn72dbLlrnbh0Mpcw==}
258+ engines: {node: '>=16'}
259+ cpu: [arm64]
260+ os: [darwin]
261+
262+ '@cloudflare/workerd-darwin-arm64@1.20261006.1':
263+ resolution: {integrity: sha512-PyFGjOaldtppnLuKsdkoYWXfLVpDjuf8u+uoykX+1Xvxo2EPmCVViq0iDKm+U7c7PRno85ehS3/MPVXyk2HwHw==}
264+ engines: {node: '>=16'}
265+ cpu: [arm64]
266+ os: [darwin]
267+
268+ '@cloudflare/workerd-linux-64@1.20260815.1':
269+ resolution: {integrity: sha512-MuqKIHPo0Qyo8MZMmy0lP2B5PeAL7f4T9Fu4Usk3QdbV4JIrKG/OoybN3Ign7m/Dff+L1Oo/ZHydB+hEg1ueFw==}
270+ engines: {node: '>=16'}
271+ cpu: [x64]
272+ os: [linux]
273+
274+ '@cloudflare/workerd-linux-64@1.20261006.1':
275+ resolution: {integrity: sha512-Ntf9S8eesmVufdjaT2kzWlz6Ng9XGYTc6cHQVRKAg59lFufwsIabGeMT6U4KkrpEeSIxgHq8aPtuLbZXE19tCA==}
276+ engines: {node: '>=16'}
277+ cpu: [x64]
278+ os: [linux]
279+
280+ '@cloudflare/workerd-linux-arm64@1.20260815.1':
281+ resolution: {integrity: sha512-XNFtJ5rIqJxnY6ISjkfbhT/ODiWJ6LcBvNbntuPD6I/F2k7aZeKgPaXrvWvKde66LXyzFKzc8Hn+Ydx4shevQg==}
282+ engines: {node: '>=16'}
283+ cpu: [arm64]
284+ os: [linux]
285+
286+ '@cloudflare/workerd-linux-arm64@1.20261006.1':
287+ resolution: {integrity: sha512-JyeDBymVWw5tVRebSsVE8ojDYxd6UlZrAseHU8G+NpIyd5wF61tXlF/axLeCUqu0pOhBFHb8I5QKi0jwrCK41Q==}
288+ engines: {node: '>=16'}
289+ cpu: [arm64]
290+ os: [linux]
291+
292+ '@cloudflare/workerd-windows-64@1.20260815.1':
293+ resolution: {integrity: sha512-PiIUWrhbMg3quolwjgMvPOd75vKESjT4aDm7nL6mSjL5IOgmpO/zKstXnYfnEH3pq7sC0UCvKlF8ZPcfsh8NMw==}
294+ engines: {node: '>=16'}
295+ cpu: [x64]
296+ os: [win32]
297+
298+ '@cloudflare/workerd-windows-64@1.20261006.1':
299+ resolution: {integrity: sha512-nWP0URNqOBN9fa/gZ7eh/w051DwjOXN8j4lDZDYVXyQPsux6sV3DfyYZT+CjR/rt9nKBSmJT9QE9/bWT18+84w==}
300+ engines: {node: '>=16'}
301+ cpu: [x64]
302+ os: [win32]
303+
304+ '@cloudflare/workers-types@5.20261012.1':
305+ resolution: {integrity: sha512-5Y0NrKXG9CZaNUZ6Dt3TLRE4UQe2/DGuxIhTEVYHUl0jAlv1TpQtI59YBAszRpSaZAMzbM8nqGc1n9Z2q4TVyA==}
306+
307+ '@cspotcode/source-map-support@0.8.1':
308+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
309+ engines: {node: '>=12'}
310+
311+ '@date-fns/tz@1.5.0':
312+ resolution: {integrity: sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==}
313+
314+ '@emnapi/runtime@1.11.3':
315+ resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==}
316+
317+ '@esbuild/aix-ppc64@0.25.11':
318+ resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==}
319+ engines: {node: '>=18'}
320+ cpu: [ppc64]
321+ os: [aix]
322+
323+ '@esbuild/aix-ppc64@0.25.12':
324+ resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
325+ engines: {node: '>=18'}
326+ cpu: [ppc64]
327+ os: [aix]
328+
329+ '@esbuild/aix-ppc64@0.28.1':
330+ resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==}
331+ engines: {node: '>=18'}
332+ cpu: [ppc64]
333+ os: [aix]
334+
335+ '@esbuild/aix-ppc64@0.28.2':
336+ resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==}
337+ engines: {node: '>=18'}
338+ cpu: [ppc64]
339+ os: [aix]
340+
341+ '@esbuild/android-arm64@0.25.11':
342+ resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==}
343+ engines: {node: '>=18'}
344+ cpu: [arm64]
345+ os: [android]
346+
347+ '@esbuild/android-arm64@0.25.12':
348+ resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
349+ engines: {node: '>=18'}
350+ cpu: [arm64]
351+ os: [android]
352+
353+ '@esbuild/android-arm64@0.28.1':
354+ resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==}
355+ engines: {node: '>=18'}
356+ cpu: [arm64]
357+ os: [android]
358+
359+ '@esbuild/android-arm64@0.28.2':
360+ resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==}
361+ engines: {node: '>=18'}
362+ cpu: [arm64]
363+ os: [android]
364+
365+ '@esbuild/android-arm@0.25.11':
366+ resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==}
367+ engines: {node: '>=18'}
368+ cpu: [arm]
369+ os: [android]
370+
371+ '@esbuild/android-arm@0.25.12':
372+ resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
373+ engines: {node: '>=18'}
374+ cpu: [arm]
375+ os: [android]
376+
377+ '@esbuild/android-arm@0.28.1':
378+ resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==}
379+ engines: {node: '>=18'}
380+ cpu: [arm]
381+ os: [android]
382+
383+ '@esbuild/android-arm@0.28.2':
384+ resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==}
385+ engines: {node: '>=18'}
386+ cpu: [arm]
387+ os: [android]
388+
389+ '@esbuild/android-x64@0.25.11':
390+ resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==}
391+ engines: {node: '>=18'}
392+ cpu: [x64]
393+ os: [android]
394+
395+ '@esbuild/android-x64@0.25.12':
396+ resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
397+ engines: {node: '>=18'}
398+ cpu: [x64]
399+ os: [android]
400+
401+ '@esbuild/android-x64@0.28.1':
402+ resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==}
403+ engines: {node: '>=18'}
404+ cpu: [x64]
405+ os: [android]
406+
407+ '@esbuild/android-x64@0.28.2':
408+ resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==}
409+ engines: {node: '>=18'}
410+ cpu: [x64]
411+ os: [android]
412+
413+ '@esbuild/darwin-arm64@0.25.11':
414+ resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==}
415+ engines: {node: '>=18'}
416+ cpu: [arm64]
417+ os: [darwin]
418+
419+ '@esbuild/darwin-arm64@0.25.12':
420+ resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
421+ engines: {node: '>=18'}
422+ cpu: [arm64]
423+ os: [darwin]
424+
425+ '@esbuild/darwin-arm64@0.28.1':
426+ resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==}
427+ engines: {node: '>=18'}
428+ cpu: [arm64]
429+ os: [darwin]
430+
431+ '@esbuild/darwin-arm64@0.28.2':
432+ resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==}
433+ engines: {node: '>=18'}
434+ cpu: [arm64]
435+ os: [darwin]
436+
437+ '@esbuild/darwin-x64@0.25.11':
438+ resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==}
439+ engines: {node: '>=18'}
440+ cpu: [x64]
441+ os: [darwin]
442+
443+ '@esbuild/darwin-x64@0.25.12':
444+ resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
445+ engines: {node: '>=18'}
446+ cpu: [x64]
447+ os: [darwin]
448+
449+ '@esbuild/darwin-x64@0.28.1':
450+ resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==}
451+ engines: {node: '>=18'}
452+ cpu: [x64]
453+ os: [darwin]
454+
455+ '@esbuild/darwin-x64@0.28.2':
456+ resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==}
457+ engines: {node: '>=18'}
458+ cpu: [x64]
459+ os: [darwin]
460+
461+ '@esbuild/freebsd-arm64@0.25.11':
462+ resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==}
463+ engines: {node: '>=18'}
464+ cpu: [arm64]
465+ os: [freebsd]
466+
467+ '@esbuild/freebsd-arm64@0.25.12':
468+ resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
469+ engines: {node: '>=18'}
470+ cpu: [arm64]
471+ os: [freebsd]
472+
473+ '@esbuild/freebsd-arm64@0.28.1':
474+ resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==}
475+ engines: {node: '>=18'}
476+ cpu: [arm64]
477+ os: [freebsd]
478+
479+ '@esbuild/freebsd-arm64@0.28.2':
480+ resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==}
481+ engines: {node: '>=18'}
482+ cpu: [arm64]
483+ os: [freebsd]
484+
485+ '@esbuild/freebsd-x64@0.25.11':
486+ resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==}
487+ engines: {node: '>=18'}
488+ cpu: [x64]
489+ os: [freebsd]
490+
491+ '@esbuild/freebsd-x64@0.25.12':
492+ resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
493+ engines: {node: '>=18'}
494+ cpu: [x64]
495+ os: [freebsd]
496+
497+ '@esbuild/freebsd-x64@0.28.1':
498+ resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==}
499+ engines: {node: '>=18'}
500+ cpu: [x64]
501+ os: [freebsd]
502+
503+ '@esbuild/freebsd-x64@0.28.2':
504+ resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==}
505+ engines: {node: '>=18'}
506+ cpu: [x64]
507+ os: [freebsd]
508+
509+ '@esbuild/linux-arm64@0.25.11':
510+ resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==}
511+ engines: {node: '>=18'}
512+ cpu: [arm64]
513+ os: [linux]
514+
515+ '@esbuild/linux-arm64@0.25.12':
516+ resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
517+ engines: {node: '>=18'}
518+ cpu: [arm64]
519+ os: [linux]
520+
521+ '@esbuild/linux-arm64@0.28.1':
522+ resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==}
523+ engines: {node: '>=18'}
524+ cpu: [arm64]
525+ os: [linux]
526+
527+ '@esbuild/linux-arm64@0.28.2':
528+ resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==}
529+ engines: {node: '>=18'}
530+ cpu: [arm64]
531+ os: [linux]
532+
533+ '@esbuild/linux-arm@0.25.11':
534+ resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==}
535+ engines: {node: '>=18'}
536+ cpu: [arm]
537+ os: [linux]
538+
539+ '@esbuild/linux-arm@0.25.12':
540+ resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
541+ engines: {node: '>=18'}
542+ cpu: [arm]
543+ os: [linux]
544+
545+ '@esbuild/linux-arm@0.28.1':
546+ resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==}
547+ engines: {node: '>=18'}
548+ cpu: [arm]
549+ os: [linux]
550+
551+ '@esbuild/linux-arm@0.28.2':
552+ resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==}
553+ engines: {node: '>=18'}
554+ cpu: [arm]
555+ os: [linux]
556+
557+ '@esbuild/linux-ia32@0.25.11':
558+ resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==}
559+ engines: {node: '>=18'}
560+ cpu: [ia32]
561+ os: [linux]
562+
563+ '@esbuild/linux-ia32@0.25.12':
564+ resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
565+ engines: {node: '>=18'}
566+ cpu: [ia32]
567+ os: [linux]
568+
569+ '@esbuild/linux-ia32@0.28.1':
570+ resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==}
571+ engines: {node: '>=18'}
572+ cpu: [ia32]
573+ os: [linux]
574+
575+ '@esbuild/linux-ia32@0.28.2':
576+ resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==}
577+ engines: {node: '>=18'}
578+ cpu: [ia32]
579+ os: [linux]
580+
581+ '@esbuild/linux-loong64@0.25.11':
582+ resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==}
583+ engines: {node: '>=18'}
584+ cpu: [loong64]
585+ os: [linux]
586+
587+ '@esbuild/linux-loong64@0.25.12':
588+ resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
589+ engines: {node: '>=18'}
590+ cpu: [loong64]
591+ os: [linux]
592+
593+ '@esbuild/linux-loong64@0.28.1':
594+ resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==}
595+ engines: {node: '>=18'}
596+ cpu: [loong64]
597+ os: [linux]
598+
599+ '@esbuild/linux-loong64@0.28.2':
600+ resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==}
601+ engines: {node: '>=18'}
602+ cpu: [loong64]
603+ os: [linux]
604+
605+ '@esbuild/linux-mips64el@0.25.11':
606+ resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==}
607+ engines: {node: '>=18'}
608+ cpu: [mips64el]
609+ os: [linux]
610+
611+ '@esbuild/linux-mips64el@0.25.12':
612+ resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
613+ engines: {node: '>=18'}
614+ cpu: [mips64el]
615+ os: [linux]
616+
617+ '@esbuild/linux-mips64el@0.28.1':
618+ resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==}
619+ engines: {node: '>=18'}
620+ cpu: [mips64el]
621+ os: [linux]
622+
623+ '@esbuild/linux-mips64el@0.28.2':
624+ resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==}
625+ engines: {node: '>=18'}
626+ cpu: [mips64el]
627+ os: [linux]
628+
629+ '@esbuild/linux-ppc64@0.25.11':
630+ resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==}
631+ engines: {node: '>=18'}
632+ cpu: [ppc64]
633+ os: [linux]
634+
635+ '@esbuild/linux-ppc64@0.25.12':
636+ resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
637+ engines: {node: '>=18'}
638+ cpu: [ppc64]
639+ os: [linux]
640+
641+ '@esbuild/linux-ppc64@0.28.1':
642+ resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==}
643+ engines: {node: '>=18'}
644+ cpu: [ppc64]
645+ os: [linux]
646+
647+ '@esbuild/linux-ppc64@0.28.2':
648+ resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==}
649+ engines: {node: '>=18'}
650+ cpu: [ppc64]
651+ os: [linux]
652+
653+ '@esbuild/linux-riscv64@0.25.11':
654+ resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==}
655+ engines: {node: '>=18'}
656+ cpu: [riscv64]
657+ os: [linux]
658+
659+ '@esbuild/linux-riscv64@0.25.12':
660+ resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
661+ engines: {node: '>=18'}
662+ cpu: [riscv64]
663+ os: [linux]
664+
665+ '@esbuild/linux-riscv64@0.28.1':
666+ resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==}
667+ engines: {node: '>=18'}
668+ cpu: [riscv64]
669+ os: [linux]
670+
671+ '@esbuild/linux-riscv64@0.28.2':
672+ resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==}
673+ engines: {node: '>=18'}
674+ cpu: [riscv64]
675+ os: [linux]
676+
677+ '@esbuild/linux-s390x@0.25.11':
678+ resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==}
679+ engines: {node: '>=18'}
680+ cpu: [s390x]
681+ os: [linux]
682+
683+ '@esbuild/linux-s390x@0.25.12':
684+ resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
685+ engines: {node: '>=18'}
686+ cpu: [s390x]
687+ os: [linux]
688+
689+ '@esbuild/linux-s390x@0.28.1':
690+ resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==}
691+ engines: {node: '>=18'}
692+ cpu: [s390x]
693+ os: [linux]
694+
695+ '@esbuild/linux-s390x@0.28.2':
696+ resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==}
697+ engines: {node: '>=18'}
698+ cpu: [s390x]
699+ os: [linux]
700+
701+ '@esbuild/linux-x64@0.25.11':
702+ resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==}
703+ engines: {node: '>=18'}
704+ cpu: [x64]
705+ os: [linux]
706+
707+ '@esbuild/linux-x64@0.25.12':
708+ resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
709+ engines: {node: '>=18'}
710+ cpu: [x64]
711+ os: [linux]
712+
713+ '@esbuild/linux-x64@0.28.1':
714+ resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==}
715+ engines: {node: '>=18'}
716+ cpu: [x64]
717+ os: [linux]
718+
719+ '@esbuild/linux-x64@0.28.2':
720+ resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==}
721+ engines: {node: '>=18'}
722+ cpu: [x64]
723+ os: [linux]
724+
725+ '@esbuild/netbsd-arm64@0.25.11':
726+ resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==}
727+ engines: {node: '>=18'}
728+ cpu: [arm64]
729+ os: [netbsd]
730+
731+ '@esbuild/netbsd-arm64@0.25.12':
732+ resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
733+ engines: {node: '>=18'}
734+ cpu: [arm64]
735+ os: [netbsd]
736+
737+ '@esbuild/netbsd-arm64@0.28.1':
738+ resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==}
739+ engines: {node: '>=18'}
740+ cpu: [arm64]
741+ os: [netbsd]
742+
743+ '@esbuild/netbsd-arm64@0.28.2':
744+ resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==}
745+ engines: {node: '>=18'}
746+ cpu: [arm64]
747+ os: [netbsd]
748+
749+ '@esbuild/netbsd-x64@0.25.11':
750+ resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==}
751+ engines: {node: '>=18'}
752+ cpu: [x64]
753+ os: [netbsd]
754+
755+ '@esbuild/netbsd-x64@0.25.12':
756+ resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
757+ engines: {node: '>=18'}
758+ cpu: [x64]
759+ os: [netbsd]
760+
761+ '@esbuild/netbsd-x64@0.28.1':
762+ resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==}
763+ engines: {node: '>=18'}
764+ cpu: [x64]
765+ os: [netbsd]
766+
767+ '@esbuild/netbsd-x64@0.28.2':
768+ resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==}
769+ engines: {node: '>=18'}
770+ cpu: [x64]
771+ os: [netbsd]
772+
773+ '@esbuild/openbsd-arm64@0.25.11':
774+ resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==}
775+ engines: {node: '>=18'}
776+ cpu: [arm64]
777+ os: [openbsd]
778+
779+ '@esbuild/openbsd-arm64@0.25.12':
780+ resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
781+ engines: {node: '>=18'}
782+ cpu: [arm64]
783+ os: [openbsd]
784+
785+ '@esbuild/openbsd-arm64@0.28.1':
786+ resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==}
787+ engines: {node: '>=18'}
788+ cpu: [arm64]
789+ os: [openbsd]
790+
791+ '@esbuild/openbsd-arm64@0.28.2':
792+ resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==}
793+ engines: {node: '>=18'}
794+ cpu: [arm64]
795+ os: [openbsd]
796+
797+ '@esbuild/openbsd-x64@0.25.11':
798+ resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==}
799+ engines: {node: '>=18'}
800+ cpu: [x64]
801+ os: [openbsd]
802+
803+ '@esbuild/openbsd-x64@0.25.12':
804+ resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
805+ engines: {node: '>=18'}
806+ cpu: [x64]
807+ os: [openbsd]
808+
809+ '@esbuild/openbsd-x64@0.28.1':
810+ resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==}
811+ engines: {node: '>=18'}
812+ cpu: [x64]
813+ os: [openbsd]
814+
815+ '@esbuild/openbsd-x64@0.28.2':
816+ resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==}
817+ engines: {node: '>=18'}
818+ cpu: [x64]
819+ os: [openbsd]
820+
821+ '@esbuild/openharmony-arm64@0.25.11':
822+ resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==}
823+ engines: {node: '>=18'}
824+ cpu: [arm64]
825+ os: [openharmony]
826+
827+ '@esbuild/openharmony-arm64@0.25.12':
828+ resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
829+ engines: {node: '>=18'}
830+ cpu: [arm64]
831+ os: [openharmony]
832+
833+ '@esbuild/openharmony-arm64@0.28.1':
834+ resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==}
835+ engines: {node: '>=18'}
836+ cpu: [arm64]
837+ os: [openharmony]
838+
839+ '@esbuild/openharmony-arm64@0.28.2':
840+ resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==}
841+ engines: {node: '>=18'}
842+ cpu: [arm64]
843+ os: [openharmony]
844+
845+ '@esbuild/sunos-x64@0.25.11':
846+ resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==}
847+ engines: {node: '>=18'}
848+ cpu: [x64]
849+ os: [sunos]
850+
851+ '@esbuild/sunos-x64@0.25.12':
852+ resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
853+ engines: {node: '>=18'}
854+ cpu: [x64]
855+ os: [sunos]
856+
857+ '@esbuild/sunos-x64@0.28.1':
858+ resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==}
859+ engines: {node: '>=18'}
860+ cpu: [x64]
861+ os: [sunos]
862+
863+ '@esbuild/sunos-x64@0.28.2':
864+ resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==}
865+ engines: {node: '>=18'}
866+ cpu: [x64]
867+ os: [sunos]
868+
869+ '@esbuild/win32-arm64@0.25.11':
870+ resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==}
871+ engines: {node: '>=18'}
872+ cpu: [arm64]
873+ os: [win32]
874+
875+ '@esbuild/win32-arm64@0.25.12':
876+ resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
877+ engines: {node: '>=18'}
878+ cpu: [arm64]
879+ os: [win32]
880+
881+ '@esbuild/win32-arm64@0.28.1':
882+ resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==}
883+ engines: {node: '>=18'}
884+ cpu: [arm64]
885+ os: [win32]
886+
887+ '@esbuild/win32-arm64@0.28.2':
888+ resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==}
889+ engines: {node: '>=18'}
890+ cpu: [arm64]
891+ os: [win32]
892+
893+ '@esbuild/win32-ia32@0.25.11':
894+ resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==}
895+ engines: {node: '>=18'}
896+ cpu: [ia32]
897+ os: [win32]
898+
899+ '@esbuild/win32-ia32@0.25.12':
900+ resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
901+ engines: {node: '>=18'}
902+ cpu: [ia32]
903+ os: [win32]
904+
905+ '@esbuild/win32-ia32@0.28.1':
906+ resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==}
907+ engines: {node: '>=18'}
908+ cpu: [ia32]
909+ os: [win32]
910+
911+ '@esbuild/win32-ia32@0.28.2':
912+ resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==}
913+ engines: {node: '>=18'}
914+ cpu: [ia32]
915+ os: [win32]
916+
917+ '@esbuild/win32-x64@0.25.11':
918+ resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==}
919+ engines: {node: '>=18'}
920+ cpu: [x64]
921+ os: [win32]
922+
923+ '@esbuild/win32-x64@0.25.12':
924+ resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
925+ engines: {node: '>=18'}
926+ cpu: [x64]
927+ os: [win32]
928+
929+ '@esbuild/win32-x64@0.28.1':
930+ resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==}
931+ engines: {node: '>=18'}
932+ cpu: [x64]
933+ os: [win32]
934+
935+ '@esbuild/win32-x64@0.28.2':
936+ resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==}
937+ engines: {node: '>=18'}
938+ cpu: [x64]
939+ os: [win32]
940+
941+ '@floating-ui/core@1.8.0':
942+ resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==}
943+
944+ '@floating-ui/dom@1.8.0':
945+ resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==}
946+
947+ '@floating-ui/react-dom@2.1.9':
948+ resolution: {integrity: sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==}
949+ peerDependencies:
950+ react: '>=16.8.0'
951+ react-dom: '>=16.8.0'
952+
953+ '@floating-ui/utils@0.2.12':
954+ resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==}
955+
956+ '@hexagon/base64@1.1.28':
957+ resolution: {integrity: sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==}
958+
959+ '@img/colour@1.1.0':
960+ resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
961+ engines: {node: '>=18'}
962+
963+ '@img/sharp-darwin-arm64@0.35.2':
964+ resolution: {integrity: sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg==}
965+ engines: {node: '>=20.9.0'}
966+ cpu: [arm64]
967+ os: [darwin]
968+
969+ '@img/sharp-darwin-arm64@0.35.5':
970+ resolution: {integrity: sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==}
971+ engines: {node: '>=20.9.0'}
972+ cpu: [arm64]
973+ os: [darwin]
974+
975+ '@img/sharp-darwin-x64@0.35.2':
976+ resolution: {integrity: sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw==}
977+ engines: {node: '>=20.9.0'}
978+ cpu: [x64]
979+ os: [darwin]
980+
981+ '@img/sharp-darwin-x64@0.35.5':
982+ resolution: {integrity: sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==}
983+ engines: {node: '>=20.9.0'}
984+ cpu: [x64]
985+ os: [darwin]
986+
987+ '@img/sharp-freebsd-wasm32@0.35.2':
988+ resolution: {integrity: sha512-YoAxdnd8hPUkvLHd3bWY+YA8nw3xM/RyRopYucNsWHVSan8NLVM3X2volsfoRDcXdUJPg6tXahSd7HXPK7lRnw==}
989+ engines: {node: '>=20.9.0'}
990+ os: [freebsd]
991+
992+ '@img/sharp-freebsd-wasm32@0.35.5':
993+ resolution: {integrity: sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==}
994+ engines: {node: '>=20.9.0'}
995+ os: [freebsd]
996+
997+ '@img/sharp-libvips-darwin-arm64@1.3.1':
998+ resolution: {integrity: sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g==}
999+ cpu: [arm64]
1000+ os: [darwin]
1001+
1002+ '@img/sharp-libvips-darwin-arm64@1.3.4':
1003+ resolution: {integrity: sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==}
1004+ cpu: [arm64]
1005+ os: [darwin]
1006+
1007+ '@img/sharp-libvips-darwin-x64@1.3.1':
1008+ resolution: {integrity: sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ==}
1009+ cpu: [x64]
1010+ os: [darwin]
1011+
1012+ '@img/sharp-libvips-darwin-x64@1.3.4':
1013+ resolution: {integrity: sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==}
1014+ cpu: [x64]
1015+ os: [darwin]
1016+
1017+ '@img/sharp-libvips-linux-arm64@1.3.1':
1018+ resolution: {integrity: sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw==}
1019+ cpu: [arm64]
1020+ os: [linux]
1021+
1022+ '@img/sharp-libvips-linux-arm64@1.3.4':
1023+ resolution: {integrity: sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==}
1024+ cpu: [arm64]
1025+ os: [linux]
1026+
1027+ '@img/sharp-libvips-linux-arm@1.3.1':
1028+ resolution: {integrity: sha512-aGGy9aWzXgHBG7HNyQPWorZthlp7+x6fDRoPAQbGO3ThcttuTyKIx3NuSHb6zb4gBNq6/yNn9f1cy9nFKS/Vmg==}
1029+ cpu: [arm]
1030+ os: [linux]
1031+
1032+ '@img/sharp-libvips-linux-arm@1.3.4':
1033+ resolution: {integrity: sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==}
1034+ cpu: [arm]
1035+ os: [linux]
1036+
1037+ '@img/sharp-libvips-linux-ppc64@1.3.1':
1038+ resolution: {integrity: sha512-1EkwGNCZk6iWNCMWqrvdJ+r1j0PT1zIz60CNPhYnJlK/zyeWqlsPZIe+ocBVqPF8k/Ssee/NCk+tE9Ryrko6ng==}
1039+ cpu: [ppc64]
1040+ os: [linux]
1041+
1042+ '@img/sharp-libvips-linux-ppc64@1.3.4':
1043+ resolution: {integrity: sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==}
1044+ cpu: [ppc64]
1045+ os: [linux]
1046+
1047+ '@img/sharp-libvips-linux-riscv64@1.3.1':
1048+ resolution: {integrity: sha512-Ilays+w2bXdnxzxtQdmXR62u8o8GYa3eL4+Gr+1KiE4xperMZUslRaVPJwwPkzlHEjGfXAfRVAa/7CYCtSqsBw==}
1049+ cpu: [riscv64]
1050+ os: [linux]
1051+
1052+ '@img/sharp-libvips-linux-riscv64@1.3.4':
1053+ resolution: {integrity: sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==}
1054+ cpu: [riscv64]
1055+ os: [linux]
1056+
1057+ '@img/sharp-libvips-linux-s390x@1.3.1':
1058+ resolution: {integrity: sha512-VfBwVHQTbRoj4XlpA/KLZ7ltgMpz+4WSejFzQ+GnoImjo1PtEJ59QB2qR1xQEeRPYIkNrPIm2L4cICMvz4C2ew==}
1059+ cpu: [s390x]
1060+ os: [linux]
1061+
1062+ '@img/sharp-libvips-linux-s390x@1.3.4':
1063+ resolution: {integrity: sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==}
1064+ cpu: [s390x]
1065+ os: [linux]
1066+
1067+ '@img/sharp-libvips-linux-x64@1.3.1':
1068+ resolution: {integrity: sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A==}
1069+ cpu: [x64]
1070+ os: [linux]
1071+
1072+ '@img/sharp-libvips-linux-x64@1.3.4':
1073+ resolution: {integrity: sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==}
1074+ cpu: [x64]
1075+ os: [linux]
1076+
1077+ '@img/sharp-libvips-linuxmusl-arm64@1.3.1':
1078+ resolution: {integrity: sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw==}
1079+ cpu: [arm64]
1080+ os: [linux]
1081+
1082+ '@img/sharp-libvips-linuxmusl-arm64@1.3.4':
1083+ resolution: {integrity: sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==}
1084+ cpu: [arm64]
1085+ os: [linux]
1086+
1087+ '@img/sharp-libvips-linuxmusl-x64@1.3.1':
1088+ resolution: {integrity: sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg==}
1089+ cpu: [x64]
1090+ os: [linux]
1091+
1092+ '@img/sharp-libvips-linuxmusl-x64@1.3.4':
1093+ resolution: {integrity: sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==}
1094+ cpu: [x64]
1095+ os: [linux]
1096+
1097+ '@img/sharp-linux-arm64@0.35.2':
1098+ resolution: {integrity: sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA==}
1099+ engines: {node: '>=20.9.0'}
1100+ cpu: [arm64]
1101+ os: [linux]
1102+
1103+ '@img/sharp-linux-arm64@0.35.5':
1104+ resolution: {integrity: sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==}
1105+ engines: {node: '>=20.9.0'}
1106+ cpu: [arm64]
1107+ os: [linux]
1108+
1109+ '@img/sharp-linux-arm@0.35.2':
1110+ resolution: {integrity: sha512-SE4kzF2mepn6z+6E7L6lsV8FzuLL6IPQdyX8ZiwROAG/G8td+hP/m7FsFPwidtrF19gvajuC9l6TxAVcsA4S7A==}
1111+ engines: {node: '>=20.9.0'}
1112+ cpu: [arm]
1113+ os: [linux]
1114+
1115+ '@img/sharp-linux-arm@0.35.5':
1116+ resolution: {integrity: sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==}
1117+ engines: {node: '>=20.9.0'}
1118+ cpu: [arm]
1119+ os: [linux]
1120+
1121+ '@img/sharp-linux-ppc64@0.35.2':
1122+ resolution: {integrity: sha512-hYSBm7zcNtDCozCxQHYZJiu63b/bXsgRZuOxCIBZsStMM9Vap47iFHdbX4kCvQsblPB/k+clhELpdQJHQLSHvg==}
1123+ engines: {node: '>=20.9.0'}
1124+ cpu: [ppc64]
1125+ os: [linux]
1126+
1127+ '@img/sharp-linux-ppc64@0.35.5':
1128+ resolution: {integrity: sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==}
1129+ engines: {node: '>=20.9.0'}
1130+ cpu: [ppc64]
1131+ os: [linux]
1132+
1133+ '@img/sharp-linux-riscv64@0.35.2':
1134+ resolution: {integrity: sha512-qQt0Kc13+Hoan/Awq/qMSQw3L+RI1NCRPgD5cUJ/1WSSmIoysLOc72jlRM3E0OHN9Yr313jgeQ2T+zW+F03QFA==}
1135+ engines: {node: '>=20.9.0'}
1136+ cpu: [riscv64]
1137+ os: [linux]
1138+
1139+ '@img/sharp-linux-riscv64@0.35.5':
1140+ resolution: {integrity: sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==}
1141+ engines: {node: '>=20.9.0'}
1142+ cpu: [riscv64]
1143+ os: [linux]
1144+
1145+ '@img/sharp-linux-s390x@0.35.2':
1146+ resolution: {integrity: sha512-E4fLLfRPzDLlEeDaTzI98OFLcv++WL5ChLLMwPoVd0CIoZQqupBSNbOisPL5am9XsbQ9T84+iiMpUvbFtkunbA==}
1147+ engines: {node: '>=20.9.0'}
1148+ cpu: [s390x]
1149+ os: [linux]
1150+
1151+ '@img/sharp-linux-s390x@0.35.5':
1152+ resolution: {integrity: sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==}
1153+ engines: {node: '>=20.9.0'}
1154+ cpu: [s390x]
1155+ os: [linux]
1156+
1157+ '@img/sharp-linux-x64@0.35.2':
1158+ resolution: {integrity: sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA==}
1159+ engines: {node: '>=20.9.0'}
1160+ cpu: [x64]
1161+ os: [linux]
1162+
1163+ '@img/sharp-linux-x64@0.35.5':
1164+ resolution: {integrity: sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==}
1165+ engines: {node: '>=20.9.0'}
1166+ cpu: [x64]
1167+ os: [linux]
1168+
1169+ '@img/sharp-linuxmusl-arm64@0.35.2':
1170+ resolution: {integrity: sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg==}
1171+ engines: {node: '>=20.9.0'}
1172+ cpu: [arm64]
1173+ os: [linux]
1174+
1175+ '@img/sharp-linuxmusl-arm64@0.35.5':
1176+ resolution: {integrity: sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==}
1177+ engines: {node: '>=20.9.0'}
1178+ cpu: [arm64]
1179+ os: [linux]
1180+
1181+ '@img/sharp-linuxmusl-x64@0.35.2':
1182+ resolution: {integrity: sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg==}
1183+ engines: {node: '>=20.9.0'}
1184+ cpu: [x64]
1185+ os: [linux]
1186+
1187+ '@img/sharp-linuxmusl-x64@0.35.5':
1188+ resolution: {integrity: sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==}
1189+ engines: {node: '>=20.9.0'}
1190+ cpu: [x64]
1191+ os: [linux]
1192+
1193+ '@img/sharp-wasm32@0.35.2':
1194+ resolution: {integrity: sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw==}
1195+ engines: {node: '>=20.9.0'}
1196+
1197+ '@img/sharp-wasm32@0.35.5':
1198+ resolution: {integrity: sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==}
1199+ engines: {node: '>=20.9.0'}
1200+
1201+ '@img/sharp-webcontainers-wasm32@0.35.2':
1202+ resolution: {integrity: sha512-QNV27pxs9wpApEiCfvHM1RDoP1w1+2KrUWWDPEhEwg+latvOrfuhWrHWZKwdSFwU6jh3myjw/yOCRsUIuOft3g==}
1203+ engines: {node: '>=20.9.0'}
1204+ cpu: [wasm32]
1205+
1206+ '@img/sharp-webcontainers-wasm32@0.35.5':
1207+ resolution: {integrity: sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==}
1208+ engines: {node: '>=20.9.0'}
1209+ cpu: [wasm32]
1210+
1211+ '@img/sharp-win32-arm64@0.35.2':
1212+ resolution: {integrity: sha512-BiVRYc/t6/Vl3e1hBx0hugG4oN9Pydf4fgMSpxTQJmwGUg/YoXTWHiFeRymHfCZzifxu4F4rpk/I67D0LQ20wQ==}
1213+ engines: {node: '>=20.9.0'}
1214+ cpu: [arm64]
1215+ os: [win32]
1216+
1217+ '@img/sharp-win32-arm64@0.35.5':
1218+ resolution: {integrity: sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==}
1219+ engines: {node: '>=20.9.0'}
1220+ cpu: [arm64]
1221+ os: [win32]
1222+
1223+ '@img/sharp-win32-ia32@0.35.2':
1224+ resolution: {integrity: sha512-YYEhx9PImCC7T0tI8JDMi4DB9LwLCXCU5OWNYEXAxh5Q1ShKkyC6byxzoBJ3gEFDnH2lQckWuDe70G7mB2XJog==}
1225+ engines: {node: ^20.9.0}
1226+ cpu: [ia32]
1227+ os: [win32]
1228+
1229+ '@img/sharp-win32-ia32@0.35.5':
1230+ resolution: {integrity: sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==}
1231+ engines: {node: ^20.9.0}
1232+ cpu: [ia32]
1233+ os: [win32]
1234+
1235+ '@img/sharp-win32-x64@0.35.2':
1236+ resolution: {integrity: sha512-imoOyBcoM/iiUr4J6VPpCNjPnjvP/Gks95898yB8YqoGGYmHYbOyCuNv9FMhFgtaiHFGbHW8bxKqRV6VjtXThQ==}
1237+ engines: {node: '>=20.9.0'}
1238+ cpu: [x64]
1239+ os: [win32]
1240+
1241+ '@img/sharp-win32-x64@0.35.5':
1242+ resolution: {integrity: sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==}
1243+ engines: {node: '>=20.9.0'}
1244+ cpu: [x64]
1245+ os: [win32]
1246+
1247+ '@jridgewell/resolve-uri@3.1.2':
1248+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
1249+ engines: {node: '>=6.0.0'}
1250+
1251+ '@jridgewell/sourcemap-codec@1.6.0':
1252+ resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==}
1253+
1254+ '@jridgewell/trace-mapping@0.3.9':
1255+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
1256+
1257+ '@levischuck/tiny-cbor@0.2.11':
1258+ resolution: {integrity: sha512-llBRm4dT4Z89aRsm6u2oEZ8tfwL/2l6BwpZ7JcyieouniDECM5AqNgr/y08zalEIvW3RSK4upYyybDcmjXqAow==}
1259+
1260+ '@oxc-project/types@0.153.0':
1261+ resolution: {integrity: sha512-jSNrRIyvPVLL5E1z/tS5zLAprosGz/FuI1PWwEOz59j3E4TTTzSpqKb/RDGqJhhW0QHYISGXxq582wGx6T11Tw==}
1262+
1263+ '@peculiar/asn1-android@2.10.0':
1264+ resolution: {integrity: sha512-IHKdYL5MRW76DOQCv2HSE/vUMOf2jqH4E7yhtQYe/xx+RxpPiXfkUdhex0N4/s5crsnXCGftRNzy4RJn1s6CZA==}
1265+ engines: {node: '>=14'}
1266+
1267+ '@peculiar/asn1-asym-key@2.10.0':
1268+ resolution: {integrity: sha512-1R8xUTeqcUTSMLFTTCzJyFuKiq3y25EQKs9DezUetJ8qMqbJyxo3XkzykiwwT/Xzlt5/vRzS/sW4M1r+pq1FTg==}
1269+ engines: {node: '>=14'}
1270+
1271+ '@peculiar/asn1-cms@2.10.0':
1272+ resolution: {integrity: sha512-CkX0H4NCIOMHOU3rh2xXZywinYZ/EnJlaOlJiGI0e5L4XjFqHf4iH30LMbXWChVppdA9ljbanjtzQFOhDNfTWg==}
1273+ engines: {node: '>=14'}
1274+
1275+ '@peculiar/asn1-csr@2.10.0':
1276+ resolution: {integrity: sha512-jTPTr/9rxKM+niQLMF3jiAMb0lWHUhUHIuSOhdGCIfpB4FAQYf9SoiXOgxP8bS/68IB+bj+1OHvVnDVCQfVUZw==}
1277+ engines: {node: '>=14'}
1278+
1279+ '@peculiar/asn1-ecc@2.10.0':
1280+ resolution: {integrity: sha512-GFd3iOjFrWX+QWH2R2dO5QSJyyRGv9CIBKtRlGlPNCvb2RvmCbBDexe91MJgV76c69d998Xsa+CvuQ98seoiPg==}
1281+ engines: {node: '>=14'}
1282+
1283+ '@peculiar/asn1-pfx@2.10.0':
1284+ resolution: {integrity: sha512-1y3QK9ZH1IPleAMmRoJlPS10eGkAWnULETW8zDFNUK1ffqpG7zmDY+kYBMYQgwlcQZ2iitLm2z2EBP0xzRXpaA==}
1285+ engines: {node: '>=14'}
1286+
1287+ '@peculiar/asn1-pkcs8@2.10.0':
1288+ resolution: {integrity: sha512-Ri+BZT9bnwqlHWmhs7lvWjvJRxKev2hA2+4EbZajgeYWCbR8hyv0znF4DhsFouOhMj2nSDV/iGJ6DMQtwITnCw==}
1289+ engines: {node: '>=14'}
1290+
1291+ '@peculiar/asn1-pkcs9@2.10.0':
1292+ resolution: {integrity: sha512-XIXsbDQFezYk6fudczkuvawkRD4GNpISGCqfYhdkJlvcGF/RFknU+0DDJagOaJqBf+PdPzk4J9oMqDGcvfR9HQ==}
1293+ engines: {node: '>=14'}
1294+
1295+ '@peculiar/asn1-rsa@2.10.0':
1296+ resolution: {integrity: sha512-4Jvmwlh3gZAhNZ4/u7JSyLuce9hofOFZ4o3PYKAccCImGnyaT5CMym/ATgvAvqpOYFNW531oPZvJlEBhJy9VfA==}
1297+ engines: {node: '>=14'}
1298+
1299+ '@peculiar/asn1-schema@2.10.0':
1300+ resolution: {integrity: sha512-GhokD41lV4gQrrLYm3wCkHfBOnJrnhDMgt4XeMW8gzfE1UdJqIuSwsE+ggf82XBjUXRJylcm+KIGQFa4utIVLw==}
1301+ engines: {node: '>=14'}
1302+
1303+ '@peculiar/asn1-x509-attr@2.10.0':
1304+ resolution: {integrity: sha512-/85GtKOKmgvuSJNlaFfwGWNdRSZZ+hpF02NyM01XiCdzpaZONiBltDyfluFPvFx966CR+ZHNSG1jniwpy07oGg==}
1305+ engines: {node: '>=14'}
1306+
1307+ '@peculiar/asn1-x509-post-quantum@2.10.0':
1308+ resolution: {integrity: sha512-cXKcZ30wKbUkRK5RK4Z3W1imewXvHAB9apEAuIqJ0OOkOQCpJrwLOuN38QlsEXqOI+3gtUv8Kf3UZohUmCbf3w==}
1309+ engines: {node: '>=14'}
1310+
1311+ '@peculiar/asn1-x509@2.10.0':
1312+ resolution: {integrity: sha512-ucNVg8+ANveTpMN3fy9lA2alryONdXc2A4cEG2hMniWbvQt+YOZoe8BI80YYNO8FBcuDY1qbDQ4uQGQVraHxGA==}
1313+ engines: {node: '>=14'}
1314+
1315+ '@peculiar/utils@2.0.3':
1316+ resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==}
1317+
1318+ '@peculiar/x509@2.1.0':
1319+ resolution: {integrity: sha512-IYbg1R03CSQGWwl24kGyqrdVtixNSbRaDvBg1r5wyYjTP+VwPQkka1BzTgU5+vxiuwqg04OxdvdJ1xYYFIdUSA==}
1320+ engines: {node: '>=20.0.0'}
1321+
1322+ '@phosphor-icons/react@2.1.10':
1323+ resolution: {integrity: sha512-vt8Tvq8GLjheAZZYa+YG/pW7HDbov8El/MANW8pOAz4eGxrwhnbfrQZq0Cp4q8zBEu8NIhHdnr+r8thnfRSNYA==}
1324+ engines: {node: '>=10'}
1325+ peerDependencies:
1326+ react: '>= 16.8'
1327+ react-dom: '>= 16.8'
1328+
1329+ '@poppinss/colors@4.1.6':
1330+ resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==}
1331+
1332+ '@poppinss/dumper@0.6.5':
1333+ resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==}
1334+
1335+ '@poppinss/exception@1.2.3':
1336+ resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==}
1337+
1338+ '@rolldown/binding-android-arm-eabi@1.2.13':
1339+ resolution: {integrity: sha512-Vu/NICrgdRvUOeaJZIyB2FP63s6fO/4ud5l8dXmxDx9yDyn+mN0y+gsvsVviSli+T361Aqo0h46EuMoobrwawA==}
1340+ engines: {node: ^20.19.0 || >=22.12.0}
1341+ cpu: [arm]
1342+ os: [android]
1343+
1344+ '@rolldown/binding-android-arm64@1.2.13':
1345+ resolution: {integrity: sha512-6LEoIrGy5vvCd2boNnv2soPSUZj/PRvhp8R/t9KlX+mIZxThIE/ZqxrGXxmuNX0FuvQFvLdZr7S4HrYpYBVhEQ==}
1346+ engines: {node: ^20.19.0 || >=22.12.0}
1347+ cpu: [arm64]
1348+ os: [android]
1349+
1350+ '@rolldown/binding-darwin-arm64@1.2.13':
1351+ resolution: {integrity: sha512-CaJSRzlQ6Q+zkDMVA9OkVxBjVoPRCDEE3v0FSJ9kIQBgRjFApA3Si4ijhbNVUji7ZJt+PfO0e46qy4nPInHUPA==}
1352+ engines: {node: ^20.19.0 || >=22.12.0}
1353+ cpu: [arm64]
1354+ os: [darwin]
1355+
1356+ '@rolldown/binding-darwin-x64@1.2.13':
1357+ resolution: {integrity: sha512-e4r340I5hxSzJkD3YJBxgzq/rJ3wwxwdLLb2FPt1Zpyem20nrQPT11DDEEkazwxaHumH8wpglsp/Ozgj/wT6mw==}
1358+ engines: {node: ^20.19.0 || >=22.12.0}
1359+ cpu: [x64]
1360+ os: [darwin]
1361+
1362+ '@rolldown/binding-freebsd-x64@1.2.13':
1363+ resolution: {integrity: sha512-hoBWDZ4/K/mJKVMbsgUd1jfpA2DiOrJ54mpegObU9TBHBBrtX4FLIXJJQRDPZ/2Dn91GvPob+Z2hwKJzf4E5SQ==}
1364+ engines: {node: ^20.19.0 || >=22.12.0}
1365+ cpu: [x64]
1366+ os: [freebsd]
1367+
1368+ '@rolldown/binding-linux-arm-gnueabihf@1.2.13':
1369+ resolution: {integrity: sha512-oF9fZu3vTWnTiVAkDFxU9PJLt1nh20K9RRpuHsR7ZnE2L7XookBbDBVLojCVSLGbvtSlxeUNnjAj6DbNsKyzbg==}
1370+ engines: {node: ^20.19.0 || >=22.12.0}
1371+ cpu: [arm]
1372+ os: [linux]
1373+
1374+ '@rolldown/binding-linux-arm64-gnu@1.2.13':
1375+ resolution: {integrity: sha512-DTpb/+jMiqWMPgphn4ksW1zW+XLJ6dJJ9FMvnIk9I291LhCctMPhMYJrP5t9p6C9qa3KXadDdUEZHBaPh3kNxQ==}
1376+ engines: {node: ^20.19.0 || >=22.12.0}
1377+ cpu: [arm64]
1378+ os: [linux]
1379+
1380+ '@rolldown/binding-linux-arm64-musl@1.2.13':
1381+ resolution: {integrity: sha512-xU+Kvv9N2A3SY35zFh1FWWNjxbadE/BKeqnkXe7vScU4GZsw757BlVmDLITZEq8DPpk6m7uoDYkK7P+x/uU5Ow==}
1382+ engines: {node: ^20.19.0 || >=22.12.0}
1383+ cpu: [arm64]
1384+ os: [linux]
1385+
1386+ '@rolldown/binding-linux-ppc64-gnu@1.2.13':
1387+ resolution: {integrity: sha512-XMk/hnhh25oQ756Lclb1Q11h4ll0xC0Esa5w4Vzp+mAE2S3AGJgeM0SonrIgY8fHhjarb6hcoTuwoFG0VVP2ig==}
1388+ engines: {node: ^20.19.0 || >=22.12.0}
1389+ cpu: [ppc64]
1390+ os: [linux]
1391+
1392+ '@rolldown/binding-linux-s390x-gnu@1.2.13':
1393+ resolution: {integrity: sha512-U1BoTHYmlywE2n3HUWjzZ+8EQsKr+OwpxYuDWaubx42tUL8QSL7nOqRz/NVHanibbFP3M1Rxuprz/wNcbMKjqw==}
1394+ engines: {node: ^20.19.0 || >=22.12.0}
1395+ cpu: [s390x]
1396+ os: [linux]
1397+
1398+ '@rolldown/binding-linux-x64-gnu@1.2.13':
1399+ resolution: {integrity: sha512-J4cm80Pc6wEwV5AZ42o62sIQgDk+Y7R2s646jIwuvO+4V46QB58N4vVuMPWCBaNgursXLpmUWJV//WQAkPvHBQ==}
1400+ engines: {node: ^20.19.0 || >=22.12.0}
1401+ cpu: [x64]
1402+ os: [linux]
1403+
1404+ '@rolldown/binding-linux-x64-musl@1.2.13':
1405+ resolution: {integrity: sha512-W0euZS40U4V6JkmEnVCIX9mcsL6cbXQ4X8c2w+MMOIjFg68TXUW+u3RT+2e1t1pv9mg/EP3pDtK3POXdQ7Rxyw==}
1406+ engines: {node: ^20.19.0 || >=22.12.0}
1407+ cpu: [x64]
1408+ os: [linux]
1409+
1410+ '@rolldown/binding-openharmony-arm64@1.2.13':
1411+ resolution: {integrity: sha512-do/AF/4n9MRshia3a5aXoy8xM2c6mgfT6D7H/dY6my5z+hfCIR4ab7mk4IRj++nsEQpKy39kd0DQnDq+r692tw==}
1412+ engines: {node: ^20.19.0 || >=22.12.0}
1413+ cpu: [arm64]
1414+ os: [openharmony]
1415+
1416+ '@rolldown/binding-win32-arm64-msvc@1.2.13':
1417+ resolution: {integrity: sha512-6FtUf2cJZobutJdxnGYX8z0vtbgqU0b2v8vfBhkXb9wp2MppMFtkunE+IaOntyi01rkIQoPW2GHABtfzsC0BRQ==}
1418+ engines: {node: ^20.19.0 || >=22.12.0}
1419+ cpu: [arm64]
1420+ os: [win32]
1421+
1422+ '@rolldown/binding-win32-x64-msvc@1.2.13':
1423+ resolution: {integrity: sha512-UKhFaZTeTcbKrb3iU82m17jVcPEAoqDkCN5MBqgPyZSwp/cQmib21crTS0DdH7T1B7wZRWEI89YQAOJMet5yhg==}
1424+ engines: {node: ^20.19.0 || >=22.12.0}
1425+ cpu: [x64]
1426+ os: [win32]
1427+
1428+ '@rolldown/pluginutils@1.0.1':
1429+ resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
1430+
1431+ '@shikijs/core@4.5.0':
1432+ resolution: {integrity: sha512-6CIgwq+bt2JZ3OSjb/nBkkwEf/CfpHcbam+Mg5Pllco7HAGRQ2/EFhZrrJtbyNTgKwknfVS+llsXGygiDGwJWw==}
1433+ engines: {node: '>=20'}
1434+
1435+ '@shikijs/engine-javascript@4.5.0':
1436+ resolution: {integrity: sha512-Ed6UdEj84LyYkwnxM5CvSMWAD+id9ExTYri0/+x41U9zrgNifPSS9lZm0JqBP0VfYI8yr8tY5nbNq9+p9R0kFA==}
1437+ engines: {node: '>=20'}
1438+
1439+ '@shikijs/engine-oniguruma@4.5.0':
1440+ resolution: {integrity: sha512-dKVmbJecVdB9recl8a/CU4jdpNXyjJQrIcesIkpS70s5HS02ohpnCSpMUbotPnEUzbAcLQ+S4hwZYbkBBiTcJw==}
1441+ engines: {node: '>=20'}
1442+
1443+ '@shikijs/langs@4.5.0':
1444+ resolution: {integrity: sha512-wwBTqwduXSz0X4v9Qa2EWeFaYJEw1clCncWjoRNQRbVDu3SPRTRWucnouYapKj3b8Q+sk/41Vbc4B5c8nuYzLA==}
1445+ engines: {node: '>=20'}
1446+
1447+ '@shikijs/primitive@4.5.0':
1448+ resolution: {integrity: sha512-UM7ShlA8oz0OWxLLO8BmO9Ip6fVqdkt8yF0EH7nOCqHfrx1eEAzF0ZUVK7L+I8NEgeu1PEWSRlxaiPPeCb4iDg==}
1449+ engines: {node: '>=20'}
1450+
1451+ '@shikijs/themes@4.5.0':
1452+ resolution: {integrity: sha512-zGb87H3UBbpuI4yoh5UguB1XbU+2BDU3kflM7UfZ+Cy2hWo9lBtqjSVK20gmLY6ukYl040hAypGXMgud9vul8Q==}
1453+ engines: {node: '>=20'}
1454+
1455+ '@shikijs/types@4.5.0':
1456+ resolution: {integrity: sha512-drtPrtD8N0DENyD2cyt6Ajy+IWsiCLgMxODwLTpvH1UsN6a9jf90tNTPjqwHvA+0Lzu9e0txk8DjfqH1p9UJRw==}
1457+ engines: {node: '>=20'}
1458+
1459+ '@shikijs/vscode-textmate@10.0.2':
1460+ resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
1461+
1462+ '@simplewebauthn/server@14.0.3':
1463+ resolution: {integrity: sha512-D39/0fiDiYmGV+nraY9s63D1Ho2AX/waMLy22/9gUadTUuvbAnstfb4bpbHYbwZuV5ZLDYN1SmzDKuiHzKAA4Q==}
1464+ engines: {node: '>=20.0.0'}
1465+
1466+ '@sindresorhus/is@7.2.0':
1467+ resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==}
1468+ engines: {node: '>=18'}
1469+
1470+ '@speed-highlight/core@1.2.24':
1471+ resolution: {integrity: sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==}
1472+
1473+ '@standard-schema/spec@1.1.0':
1474+ resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
1475+
1476+ '@tabby_ai/hijri-converter@1.0.5':
1477+ resolution: {integrity: sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ==}
1478+ engines: {node: '>=16.0.0'}
1479+
1480+ '@turbo/darwin-64@2.11.7':
1481+ resolution: {integrity: sha512-Z2LFOxwbiJueD1miByXJS/BrW21vv6YaQXZustty5jEX4vQYw6zyh101Sz1QO7WG0mqBzKagZ/DoAeeujI0/Sw==}
1482+ cpu: [x64]
1483+ os: [darwin]
1484+
1485+ '@turbo/darwin-arm64@2.11.7':
1486+ resolution: {integrity: sha512-Vhv8ybgIflosNDSSRD9fNXHlCFA60dsGyTqQmc7l28SEX5jOaweCCD4BBYNd8/p0WGkw3e7tZbfA9w6FsujGvw==}
1487+ cpu: [arm64]
1488+ os: [darwin]
1489+
1490+ '@turbo/linux-64@2.11.7':
1491+ resolution: {integrity: sha512-rAqRp3blQKk1+ylMGlZHAW0eJjVNuuGUm4ZrC6RU1Im8tLryvaO4a2zLQ/FQi1TRlmKqKV9YXBki2YeytlLbXA==}
1492+ cpu: [x64]
1493+ os: [android, linux]
1494+
1495+ '@turbo/linux-arm64@2.11.7':
1496+ resolution: {integrity: sha512-thVYGov7S+llXAxrl3kBb/efalav0xhrjl5NHCR6AfKx14JkbqaetvbVwyss4FvZ9rt+Pv3xsTb+8SIYix8DTg==}
1497+ cpu: [arm64]
1498+ os: [android, linux]
1499+
1500+ '@turbo/windows-64@2.11.7':
1501+ resolution: {integrity: sha512-ZIoKT7J7KutgYl4bGxmmgeUQjG+7E0nY8BF9dxUOiMH2vdTsM4JQ2uSwTYFkTR2Llbg6ghGjSmuZ8LQtkLEYjg==}
1502+ cpu: [x64]
1503+ os: [win32]
1504+
1505+ '@turbo/windows-arm64@2.11.7':
1506+ resolution: {integrity: sha512-88Xv2f7SLGVJ68lRRx8o375dKmnZYNdDtvlKcPA0kZpcF93eAQd8l96BKQ0/AMHG0bMJA0Z5QqoqtetxzNsC+g==}
1507+ cpu: [arm64]
1508+ os: [win32]
1509+
1510+ '@types/chai@5.2.3':
1511+ resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
1512+
1513+ '@types/deep-eql@4.0.2':
1514+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
1515+
1516+ '@types/estree@1.0.9':
1517+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
1518+
1519+ '@types/hast@3.0.5':
1520+ resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==}
1521+
1522+ '@types/mdast@4.0.4':
1523+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
1524+
1525+ '@types/node@22.20.5':
1526+ resolution: {integrity: sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==}
1527+
1528+ '@types/pako@2.0.4':
1529+ resolution: {integrity: sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==}
1530+
1531+ '@types/react-dom@19.2.2':
1532+ resolution: {integrity: sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==}
1533+ peerDependencies:
1534+ '@types/react': ^19.2.0
1535+
1536+ '@types/react@19.2.2':
1537+ resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==}
1538+
1539+ '@types/unist@3.0.3':
1540+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
1541+
1542+ '@ungap/structured-clone@1.4.0':
1543+ resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==}
1544+
1545+ '@vitest/expect@4.1.11':
1546+ resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==}
1547+
1548+ '@vitest/mocker@4.1.11':
1549+ resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==}
1550+ peerDependencies:
1551+ msw: ^2.4.9
1552+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
1553+ peerDependenciesMeta:
1554+ msw:
1555+ optional: true
1556+ vite:
1557+ optional: true
1558+
1559+ '@vitest/pretty-format@4.1.11':
1560+ resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==}
1561+
1562+ '@vitest/runner@4.1.11':
1563+ resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==}
1564+
1565+ '@vitest/snapshot@4.1.11':
1566+ resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==}
1567+
1568+ '@vitest/spy@4.1.11':
1569+ resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==}
1570+
1571+ '@vitest/utils@4.1.11':
1572+ resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==}
1573+
1574+ asn1js@3.0.10:
1575+ resolution: {integrity: sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==}
1576+ engines: {node: '>=12.0.0'}
1577+
1578+ assertion-error@2.0.1:
1579+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
1580+ engines: {node: '>=12'}
1581+
1582+ blake3-wasm@2.1.5:
1583+ resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==}
1584+
1585+ ccount@2.0.1:
1586+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
1587+
1588+ chai@6.3.0:
1589+ resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==}
1590+ engines: {node: '>=18'}
1591+
1592+ character-entities-html4@2.1.0:
1593+ resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
1594+
1595+ character-entities-legacy@3.0.0:
1596+ resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
1597+
1598+ cjs-module-lexer@1.2.3:
1599+ resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==}
1600+
1601+ cnfast@0.0.8:
1602+ resolution: {integrity: sha512-EjXKMfGfdwtV4AcNSQ6AwQaVzpC1B7IxeiwA3FlhTXz+YFlMKVi4c1JX9tgD2QOlahQXjB8KUXrBaYG+3v871Q==}
1603+ hasBin: true
1604+
1605+ comma-separated-tokens@2.0.3:
1606+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
1607+
1608+ convert-source-map@2.0.0:
1609+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
1610+
1611+ cookie@1.1.1:
1612+ resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
1613+ engines: {node: '>=18'}
1614+
1615+ csstype@3.2.3:
1616+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
1617+
1618+ d3-array@3.2.4:
1619+ resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
1620+ engines: {node: '>=12'}
1621+
1622+ d3-geo@3.1.1:
1623+ resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==}
1624+ engines: {node: '>=12'}
1625+
1626+ date-fns-jalali@4.1.0-0:
1627+ resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==}
1628+
1629+ date-fns@4.4.0:
1630+ resolution: {integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==}
1631+
1632+ dequal@2.0.3:
1633+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
1634+ engines: {node: '>=6'}
1635+
1636+ detect-libc@2.1.2:
1637+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
1638+ engines: {node: '>=8'}
1639+
1640+ devlop@1.1.0:
1641+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
1642+
1643+ diff@8.0.4:
1644+ resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==}
1645+ engines: {node: '>=0.3.1'}
1646+
1647+ error-stack-parser-es@1.0.5:
1648+ resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==}
1649+
1650+ es-module-lexer@2.3.2:
1651+ resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==}
1652+
1653+ esbuild@0.25.11:
1654+ resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==}
1655+ engines: {node: '>=18'}
1656+ hasBin: true
1657+
1658+ esbuild@0.25.12:
1659+ resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
1660+ engines: {node: '>=18'}
1661+ hasBin: true
1662+
1663+ esbuild@0.28.1:
1664+ resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==}
1665+ engines: {node: '>=18'}
1666+ hasBin: true
1667+
1668+ esbuild@0.28.2:
1669+ resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==}
1670+ engines: {node: '>=18'}
1671+ hasBin: true
1672+
1673+ estree-walker@3.0.3:
1674+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
1675+
1676+ expect-type@1.4.0:
1677+ resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
1678+ engines: {node: '>=12.0.0'}
1679+
1680+ fdir@6.5.0:
1681+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
1682+ engines: {node: '>=12.0.0'}
1683+ peerDependencies:
1684+ picomatch: ^3 || ^4
1685+ peerDependenciesMeta:
1686+ picomatch:
1687+ optional: true
1688+
1689+ framer-motion@12.43.0:
1690+ resolution: {integrity: sha512-1eaL3RvR/kAlbG7UYcpMptEyzPoENO0c6w7ZnB3/hh2vSAz/6uGAFn6fdoqTBguNstf3MsFhJHsD/0DHiclG+g==}
1691+ peerDependencies:
1692+ '@emotion/is-prop-valid': '*'
1693+ react: ^18.0.0 || ^19.0.0
1694+ react-dom: ^18.0.0 || ^19.0.0
1695+ peerDependenciesMeta:
1696+ '@emotion/is-prop-valid':
1697+ optional: true
1698+ react:
1699+ optional: true
1700+ react-dom:
1701+ optional: true
1702+
1703+ fsevents@2.3.2:
1704+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1705+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1706+ os: [darwin]
1707+
1708+ fsevents@2.3.3:
1709+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1710+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1711+ os: [darwin]
1712+
1713+ hast-util-to-html@9.0.5:
1714+ resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
1715+
1716+ hast-util-whitespace@3.0.0:
1717+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
1718+
1719+ hono@4.13.13:
1720+ resolution: {integrity: sha512-CQ46U0ZkAGmbT/4UxdzzGJpacP2IeKgY4a5/tOI9AABbpOMfK739wfDXmv1usCk+3RkKj1hQy4/fjhiwa2xlrA==}
1721+ engines: {node: '>=16.9.0'}
1722+
1723+ html-void-elements@3.0.0:
1724+ resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
1725+
1726+ internmap@2.0.3:
1727+ resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
1728+ engines: {node: '>=12'}
1729+
1730+ kleur@4.1.5:
1731+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
1732+ engines: {node: '>=6'}
1733+
1734+ lightningcss-android-arm64@1.33.0:
1735+ resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==}
1736+ engines: {node: '>= 12.0.0'}
1737+ cpu: [arm64]
1738+ os: [android]
1739+
1740+ lightningcss-darwin-arm64@1.33.0:
1741+ resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==}
1742+ engines: {node: '>= 12.0.0'}
1743+ cpu: [arm64]
1744+ os: [darwin]
1745+
1746+ lightningcss-darwin-x64@1.33.0:
1747+ resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==}
1748+ engines: {node: '>= 12.0.0'}
1749+ cpu: [x64]
1750+ os: [darwin]
1751+
1752+ lightningcss-freebsd-x64@1.33.0:
1753+ resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==}
1754+ engines: {node: '>= 12.0.0'}
1755+ cpu: [x64]
1756+ os: [freebsd]
1757+
1758+ lightningcss-linux-arm-gnueabihf@1.33.0:
1759+ resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==}
1760+ engines: {node: '>= 12.0.0'}
1761+ cpu: [arm]
1762+ os: [linux]
1763+
1764+ lightningcss-linux-arm64-gnu@1.33.0:
1765+ resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==}
1766+ engines: {node: '>= 12.0.0'}
1767+ cpu: [arm64]
1768+ os: [linux]
1769+
1770+ lightningcss-linux-arm64-musl@1.33.0:
1771+ resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
1772+ engines: {node: '>= 12.0.0'}
1773+ cpu: [arm64]
1774+ os: [linux]
1775+
1776+ lightningcss-linux-x64-gnu@1.33.0:
1777+ resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
1778+ engines: {node: '>= 12.0.0'}
1779+ cpu: [x64]
1780+ os: [linux]
1781+
1782+ lightningcss-linux-x64-musl@1.33.0:
1783+ resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
1784+ engines: {node: '>= 12.0.0'}
1785+ cpu: [x64]
1786+ os: [linux]
1787+
1788+ lightningcss-win32-arm64-msvc@1.33.0:
1789+ resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
1790+ engines: {node: '>= 12.0.0'}
1791+ cpu: [arm64]
1792+ os: [win32]
1793+
1794+ lightningcss-win32-x64-msvc@1.33.0:
1795+ resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==}
1796+ engines: {node: '>= 12.0.0'}
1797+ cpu: [x64]
1798+ os: [win32]
1799+
1800+ lightningcss@1.33.0:
1801+ resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==}
1802+ engines: {node: '>= 12.0.0'}
1803+
1804+ magic-string@0.30.21:
1805+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
1806+
1807+ mdast-util-to-hast@13.2.1:
1808+ resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==}
1809+
1810+ micromark-util-character@2.1.1:
1811+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
1812+
1813+ micromark-util-encode@2.0.1:
1814+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
1815+
1816+ micromark-util-sanitize-uri@2.0.1:
1817+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
1818+
1819+ micromark-util-symbol@2.0.1:
1820+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
1821+
1822+ micromark-util-types@2.0.3:
1823+ resolution: {integrity: sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg==}
1824+
1825+ miniflare@5.20260815.0-alpha:
1826+ resolution: {integrity: sha512-YAaGj4Sh5f4fqHKiMQ8zRHDOOM5IGUVtMhnLIeyjuQfU+9P6hcOTrHUVtbfj/ZPay9Kzik4pWELB39pGgefjiQ==}
1827+ engines: {node: '>=22.0.0'}
1828+
1829+ miniflare@5.20261006.1-alpha:
1830+ resolution: {integrity: sha512-6ylv8tamkrspDI2R/cAYfv+YWmfGNdXe76Pi9TauEUWsFVXn3LNF9Yk8oduzf1a+TYsSRYTqlOE7+nGGRsMHdw==}
1831+ engines: {node: '>=22.0.0'}
1832+
1833+ motion-dom@12.43.0:
1834+ resolution: {integrity: sha512-azKON4d9S65PEoFUiQTMTgPheEmzf2QngdRc50AKfJp9Q9mmcBVw22c8eMq9k8kxOFHdL7+WZY7N/5F/lwiDag==}
1835+
1836+ motion-utils@12.39.0:
1837+ resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==}
1838+
1839+ motion@12.43.0:
1840+ resolution: {integrity: sha512-BQgQbSa9Hn3/mtbib0MK53y6JSANa+YKUKlaYnWzAVDH424RYQ5LVpV3pNiWH00BA2z4ojsSdMzqT7g2FQwjuQ==}
1841+ peerDependencies:
1842+ '@emotion/is-prop-valid': '*'
1843+ react: ^18.0.0 || ^19.0.0
1844+ react-dom: ^18.0.0 || ^19.0.0
1845+ peerDependenciesMeta:
1846+ '@emotion/is-prop-valid':
1847+ optional: true
1848+ react:
1849+ optional: true
1850+ react-dom:
1851+ optional: true
1852+
1853+ nanoid@3.3.20:
1854+ resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==}
1855+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1856+ hasBin: true
1857+
1858+ obug@2.2.1:
1859+ resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==}
1860+ engines: {node: '>=12.20.0'}
1861+
1862+ oniguruma-parser@0.12.2:
1863+ resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
1864+
1865+ oniguruma-to-es@4.3.6:
1866+ resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==}
1867+
1868+ pako@2.2.0:
1869+ resolution: {integrity: sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w==}
1870+
1871+ path-to-regexp@6.3.0:
1872+ resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
1873+
1874+ pathe@2.0.3:
1875+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
1876+
1877+ picocolors@1.1.1:
1878+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1879+
1880+ picomatch@4.0.7:
1881+ resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
1882+ engines: {node: '>=12'}
1883+
1884+ playwright-core@1.56.1:
1885+ resolution: {integrity: sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==}
1886+ engines: {node: '>=18'}
1887+ hasBin: true
1888+
1889+ playwright@1.56.1:
1890+ resolution: {integrity: sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==}
1891+ engines: {node: '>=18'}
1892+ hasBin: true
1893+
1894+ postcss@8.5.29:
1895+ resolution: {integrity: sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==}
1896+ engines: {node: ^10 || ^12 || >=14}
1897+
1898+ postcss@8.5.6:
1899+ resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
1900+ engines: {node: ^10 || ^12 || >=14}
1901+
1902+ property-information@7.2.0:
1903+ resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==}
1904+
1905+ pvtsutils@1.3.6:
1906+ resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==}
1907+
1908+ pvutils@1.2.0:
1909+ resolution: {integrity: sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==}
1910+ engines: {node: '>=16.0.0'}
1911+
1912+ react-day-picker@9.14.0:
1913+ resolution: {integrity: sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA==}
1914+ engines: {node: '>=18'}
1915+ peerDependencies:
1916+ react: '>=16.8.0'
1917+
1918+ react-dom@19.2.0:
1919+ resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==}
1920+ peerDependencies:
1921+ react: ^19.2.0
1922+
1923+ react@19.2.0:
1924+ resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==}
1925+ engines: {node: '>=0.10.0'}
1926+
1927+ reflect-metadata@0.2.2:
1928+ resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
1929+
1930+ regex-recursion@6.0.2:
1931+ resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
1932+
1933+ regex-utilities@2.3.0:
1934+ resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
1935+
1936+ regex@6.1.0:
1937+ resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==}
1938+
1939+ reselect@5.3.0:
1940+ resolution: {integrity: sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==}
1941+
1942+ rolldown@1.2.13:
1943+ resolution: {integrity: sha512-/5apOkwWxtACcQtZ5WlrAsKS4JwXVThQPJZ3RqIruRY9UG9M8e0VlXN068xum/JRKA4aIUoJ13ghe/kGCvidiQ==}
1944+ engines: {node: ^20.19.0 || >=22.12.0}
1945+ hasBin: true
1946+
1947+ scheduler@0.27.0:
1948+ resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
1949+
1950+ semver@7.8.5:
1951+ resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
1952+ engines: {node: '>=10'}
1953+ hasBin: true
1954+
1955+ sharp@0.35.2:
1956+ resolution: {integrity: sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==}
1957+ engines: {node: '>=20.9.0'}
1958+
1959+ sharp@0.35.5:
1960+ resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==}
1961+ engines: {node: '>=20.9.0'}
1962+ peerDependencies:
1963+ '@types/node': '*'
1964+ peerDependenciesMeta:
1965+ '@types/node':
1966+ optional: true
1967+
1968+ shiki@4.5.0:
1969+ resolution: {integrity: sha512-OcRW72ngQvc+MSVWBRIovC/BTW589iUE/Vxav7VeM4RcY9MUjqB+IR6ILG1k9nuW6LiG/nct9uma4/MBtnZbmQ==}
1970+ engines: {node: '>=20'}
1971+
1972+ siginfo@2.0.0:
1973+ resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
1974+
1975+ source-map-js@1.2.2:
1976+ resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==}
1977+ engines: {node: '>=0.10.0'}
1978+
1979+ space-separated-tokens@2.0.2:
1980+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
1981+
1982+ stackback@0.0.2:
1983+ resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
1984+
1985+ std-env@4.3.0:
1986+ resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==}
1987+
1988+ stringify-entities@4.0.4:
1989+ resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
1990+
1991+ supports-color@10.2.2:
1992+ resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
1993+ engines: {node: '>=18'}
1994+
1995+ tinybench@2.9.0:
1996+ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
1997+
1998+ tinyexec@1.3.1:
1999+ resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==}
2000+ engines: {node: '>=18'}
2001+
2002+ tinyglobby@0.2.17:
2003+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
2004+ engines: {node: '>=12.0.0'}
2005+
2006+ tinyrainbow@3.2.0:
2007+ resolution: {integrity: sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A==}
2008+ engines: {node: '>=14.0.0'}
2009+
2010+ trim-lines@3.0.1:
2011+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
2012+
2013+ tslib@1.14.1:
2014+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
2015+
2016+ tslib@2.8.1:
2017+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
2018+
2019+ tsyringe@4.10.0:
2020+ resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==}
2021+ engines: {node: '>= 6.0.0'}
2022+
2023+ turbo@2.11.7:
2024+ resolution: {integrity: sha512-RhXHbqfvY6o3xt/zSHCwSNwLrZlXiqHzewi4eAj9PtZ1T1CqgMJ2yIDb7SKPTG9IikTm925mfzL6hldQVdyNWw==}
2025+ hasBin: true
2026+
2027+ typescript@5.9.3:
2028+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
2029+ engines: {node: '>=14.17'}
2030+ hasBin: true
2031+
2032+ undici-types@6.21.0:
2033+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
2034+
2035+ undici@7.29.0:
2036+ resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==}
2037+ engines: {node: '>=20.18.1'}
2038+
2039+ undici@7.29.1:
2040+ resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==}
2041+ engines: {node: '>=20.18.1'}
2042+
2043+ unenv@2.0.0-rc.24:
2044+ resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==}
2045+
2046+ unist-util-is@6.0.1:
2047+ resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
2048+
2049+ unist-util-position@5.0.0:
2050+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
2051+
2052+ unist-util-stringify-position@4.0.0:
2053+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
2054+
2055+ unist-util-visit-parents@6.0.2:
2056+ resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
2057+
2058+ unist-util-visit@5.1.0:
2059+ resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
2060+
2061+ use-sync-external-store@1.7.0:
2062+ resolution: {integrity: sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==}
2063+ peerDependencies:
2064+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
2065+
2066+ vfile-message@4.0.3:
2067+ resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
2068+
2069+ vfile@6.0.3:
2070+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
2071+
2072+ vite@8.3.4:
2073+ resolution: {integrity: sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ==}
2074+ engines: {node: ^20.19.0 || >=22.12.0}
2075+ hasBin: true
2076+ peerDependencies:
2077+ '@types/node': ^20.19.0 || >=22.12.0
2078+ '@vitejs/devtools': ^0.7.1
2079+ esbuild: ^0.27.0 || ^0.28.0
2080+ jiti: '>=1.21.0'
2081+ less: ^4.0.0
2082+ sass: ^1.70.0
2083+ sass-embedded: ^1.70.0
2084+ stylus: '>=0.54.8'
2085+ sugarss: ^5.0.0
2086+ terser: ^5.16.0
2087+ tsx: ^4.8.1
2088+ yaml: ^2.4.2
2089+ peerDependenciesMeta:
2090+ '@types/node':
2091+ optional: true
2092+ '@vitejs/devtools':
2093+ optional: true
2094+ esbuild:
2095+ optional: true
2096+ jiti:
2097+ optional: true
2098+ less:
2099+ optional: true
2100+ sass:
2101+ optional: true
2102+ sass-embedded:
2103+ optional: true
2104+ stylus:
2105+ optional: true
2106+ sugarss:
2107+ optional: true
2108+ terser:
2109+ optional: true
2110+ tsx:
2111+ optional: true
2112+ yaml:
2113+ optional: true
2114+
2115+ vitest@4.1.11:
2116+ resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==}
2117+ engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
2118+ hasBin: true
2119+ peerDependencies:
2120+ '@edge-runtime/vm': '*'
2121+ '@opentelemetry/api': ^1.9.0
2122+ '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
2123+ '@vitest/browser-playwright': 4.1.11
2124+ '@vitest/browser-preview': 4.1.11
2125+ '@vitest/browser-webdriverio': 4.1.11
2126+ '@vitest/coverage-istanbul': 4.1.11
2127+ '@vitest/coverage-v8': 4.1.11
2128+ '@vitest/ui': 4.1.11
2129+ happy-dom: '*'
2130+ jsdom: '*'
2131+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
2132+ peerDependenciesMeta:
2133+ '@edge-runtime/vm':
2134+ optional: true
2135+ '@opentelemetry/api':
2136+ optional: true
2137+ '@types/node':
2138+ optional: true
2139+ '@vitest/browser-playwright':
2140+ optional: true
2141+ '@vitest/browser-preview':
2142+ optional: true
2143+ '@vitest/browser-webdriverio':
2144+ optional: true
2145+ '@vitest/coverage-istanbul':
2146+ optional: true
2147+ '@vitest/coverage-v8':
2148+ optional: true
2149+ '@vitest/ui':
2150+ optional: true
2151+ happy-dom:
2152+ optional: true
2153+ jsdom:
2154+ optional: true
2155+
2156+ why-is-node-running@2.3.0:
2157+ resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
2158+ engines: {node: '>=8'}
2159+ hasBin: true
2160+
2161+ workerd@1.20260815.1:
2162+ resolution: {integrity: sha512-8bArFkHmlp7qFEKVPyNzDzHzS35gc2fg0PYBcDtaNLF7UCDryCX2BQnpkUkTHYIy824IRrHOTwOEoTj0sUO2Fg==}
2163+ engines: {node: '>=16'}
2164+ hasBin: true
2165+
2166+ workerd@1.20261006.1:
2167+ resolution: {integrity: sha512-8MadBuffZ5NdpLwZjUmsqT5QlaKXq4gjgT6wzcKeynZTICNXyePhc+5QVoKiK7+MMhFTLNrRO2KXLlpk8Q6BkA==}
2168+ engines: {node: '>=16'}
2169+ hasBin: true
2170+
2171+ wrangler@4.124.0:
2172+ resolution: {integrity: sha512-75euoZKjVTJYFy+Xhctt/5JlZL4M6A4xmovZsUlep+6GHcCm14n9VtdGzNIybOW2t8wuNxRj5iMUwjT5E7Ctog==}
2173+ engines: {node: '>=22.0.0'}
2174+ hasBin: true
2175+ peerDependencies:
2176+ '@cloudflare/workers-types': ^5.20260815.1
2177+ peerDependenciesMeta:
2178+ '@cloudflare/workers-types':
2179+ optional: true
2180+
2181+ wrangler@4.149.0:
2182+ resolution: {integrity: sha512-OzK7xmB5r5iLKb3cIT3783g13fe6T7xyeKu9LEdUyl+DKAM2KP/jkjnE0OUhyw+mB/XJM9ycjgF3MWm8PR9amg==}
2183+ engines: {node: '>=22.0.0'}
2184+ hasBin: true
2185+ peerDependencies:
2186+ '@cloudflare/workers-types': ^5.20261006.1
2187+ peerDependenciesMeta:
2188+ '@cloudflare/workers-types':
2189+ optional: true
2190+
2191+ ws@8.21.0:
2192+ resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==}
2193+ engines: {node: '>=10.0.0'}
2194+ peerDependencies:
2195+ bufferutil: ^4.0.1
2196+ utf-8-validate: '>=5.0.2'
2197+ peerDependenciesMeta:
2198+ bufferutil:
2199+ optional: true
2200+ utf-8-validate:
2201+ optional: true
2202+
2203+ yaml@2.9.1:
2204+ resolution: {integrity: sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==}
2205+ engines: {node: '>= 14.6'}
2206+ hasBin: true
2207+
2208+ youch-core@0.3.3:
2209+ resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==}
2210+
2211+ youch@4.1.0-beta.10:
2212+ resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==}
2213+
2214+ zod@4.4.3:
2215+ resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
2216+
2217+ zwitch@2.0.4:
2218+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
2219+
2220+snapshots:
2221+
2222+ '@babel/runtime@8.0.7': {}
2223+
2224+ '@base-ui/react@1.9.0(@date-fns/tz@1.5.0)(@types/react@19.2.2)(date-fns@4.4.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
2225+ dependencies:
2226+ '@babel/runtime': 8.0.7
2227+ '@base-ui/utils': 0.5.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
2228+ '@floating-ui/react-dom': 2.1.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
2229+ '@floating-ui/utils': 0.2.12
2230+ react: 19.2.0
2231+ react-dom: 19.2.0(react@19.2.0)
2232+ use-sync-external-store: 1.7.0(react@19.2.0)
2233+ optionalDependencies:
2234+ '@date-fns/tz': 1.5.0
2235+ '@types/react': 19.2.2
2236+ date-fns: 4.4.0
2237+
2238+ '@base-ui/utils@0.5.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
2239+ dependencies:
2240+ '@babel/runtime': 8.0.7
2241+ '@floating-ui/utils': 0.2.12
2242+ react: 19.2.0
2243+ react-dom: 19.2.0(react@19.2.0)
2244+ reselect: 5.3.0
2245+ use-sync-external-store: 1.7.0(react@19.2.0)
2246+ optionalDependencies:
2247+ '@types/react': 19.2.2
2248+
2249+ '@cloudflare/containers@0.3.7': {}
2250+
2251+ '@cloudflare/kumo@2.14.0(@date-fns/tz@1.5.0)(@phosphor-icons/react@2.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(date-fns@4.4.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@4.4.3)':
2252+ dependencies:
2253+ '@base-ui/react': 1.9.0(@date-fns/tz@1.5.0)(@types/react@19.2.2)(date-fns@4.4.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
2254+ '@phosphor-icons/react': 2.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
2255+ '@shikijs/langs': 4.5.0
2256+ '@shikijs/themes': 4.5.0
2257+ cnfast: 0.0.8
2258+ d3-geo: 3.1.1
2259+ motion: 12.43.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
2260+ react: 19.2.0
2261+ react-day-picker: 9.14.0(react@19.2.0)
2262+ react-dom: 19.2.0(react@19.2.0)
2263+ shiki: 4.5.0
2264+ use-sync-external-store: 1.7.0(react@19.2.0)
2265+ optionalDependencies:
2266+ zod: 4.4.3
2267+ transitivePeerDependencies:
2268+ - '@date-fns/tz'
2269+ - '@emotion/is-prop-valid'
2270+ - '@types/react'
2271+ - date-fns
2272+
2273+ '@cloudflare/kv-asset-handler@0.5.0': {}
2274+
2275+ '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260815.1)':
2276+ dependencies:
2277+ unenv: 2.0.0-rc.24
2278+ optionalDependencies:
2279+ workerd: 1.20260815.1
2280+
2281+ '@cloudflare/unenv-preset@2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1)':
2282+ dependencies:
2283+ unenv: 2.0.0-rc.24
2284+ optionalDependencies:
2285+ workerd: 1.20261006.1
2286+
2287+ '@cloudflare/vitest-pool-workers@0.23.0(@cloudflare/workers-types@5.20261012.1)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1)))':
2288+ dependencies:
2289+ '@vitest/runner': 4.1.11
2290+ '@vitest/snapshot': 4.1.11
2291+ cjs-module-lexer: 1.2.3
2292+ esbuild: 0.28.1
2293+ miniflare: 5.20260815.0-alpha
2294+ vitest: 4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1))
2295+ wrangler: 4.124.0(@cloudflare/workers-types@5.20261012.1)
2296+ zod: 4.4.3
2297+ transitivePeerDependencies:
2298+ - '@cloudflare/workers-types'
2299+ - bufferutil
2300+ - utf-8-validate
2301+
2302+ '@cloudflare/workerd-darwin-64@1.20260815.1':
2303+ optional: true
2304+
2305+ '@cloudflare/workerd-darwin-64@1.20261006.1':
2306+ optional: true
2307+
2308+ '@cloudflare/workerd-darwin-arm64@1.20260815.1':
2309+ optional: true
2310+
2311+ '@cloudflare/workerd-darwin-arm64@1.20261006.1':
2312+ optional: true
2313+
2314+ '@cloudflare/workerd-linux-64@1.20260815.1':
2315+ optional: true
2316+
2317+ '@cloudflare/workerd-linux-64@1.20261006.1':
2318+ optional: true
2319+
2320+ '@cloudflare/workerd-linux-arm64@1.20260815.1':
2321+ optional: true
2322+
2323+ '@cloudflare/workerd-linux-arm64@1.20261006.1':
2324+ optional: true
2325+
2326+ '@cloudflare/workerd-windows-64@1.20260815.1':
2327+ optional: true
2328+
2329+ '@cloudflare/workerd-windows-64@1.20261006.1':
2330+ optional: true
2331+
2332+ '@cloudflare/workers-types@5.20261012.1': {}
2333+
2334+ '@cspotcode/source-map-support@0.8.1':
2335+ dependencies:
2336+ '@jridgewell/trace-mapping': 0.3.9
2337+
2338+ '@date-fns/tz@1.5.0': {}
2339+
2340+ '@emnapi/runtime@1.11.3':
2341+ dependencies:
2342+ tslib: 2.8.1
2343+ optional: true
2344+
2345+ '@esbuild/aix-ppc64@0.25.11':
2346+ optional: true
2347+
2348+ '@esbuild/aix-ppc64@0.25.12':
2349+ optional: true
2350+
2351+ '@esbuild/aix-ppc64@0.28.1':
2352+ optional: true
2353+
2354+ '@esbuild/aix-ppc64@0.28.2':
2355+ optional: true
2356+
2357+ '@esbuild/android-arm64@0.25.11':
2358+ optional: true
2359+
2360+ '@esbuild/android-arm64@0.25.12':
2361+ optional: true
2362+
2363+ '@esbuild/android-arm64@0.28.1':
2364+ optional: true
2365+
2366+ '@esbuild/android-arm64@0.28.2':
2367+ optional: true
2368+
2369+ '@esbuild/android-arm@0.25.11':
2370+ optional: true
2371+
2372+ '@esbuild/android-arm@0.25.12':
2373+ optional: true
2374+
2375+ '@esbuild/android-arm@0.28.1':
2376+ optional: true
2377+
2378+ '@esbuild/android-arm@0.28.2':
2379+ optional: true
2380+
2381+ '@esbuild/android-x64@0.25.11':
2382+ optional: true
2383+
2384+ '@esbuild/android-x64@0.25.12':
2385+ optional: true
2386+
2387+ '@esbuild/android-x64@0.28.1':
2388+ optional: true
2389+
2390+ '@esbuild/android-x64@0.28.2':
2391+ optional: true
2392+
2393+ '@esbuild/darwin-arm64@0.25.11':
2394+ optional: true
2395+
2396+ '@esbuild/darwin-arm64@0.25.12':
2397+ optional: true
2398+
2399+ '@esbuild/darwin-arm64@0.28.1':
2400+ optional: true
2401+
2402+ '@esbuild/darwin-arm64@0.28.2':
2403+ optional: true
2404+
2405+ '@esbuild/darwin-x64@0.25.11':
2406+ optional: true
2407+
2408+ '@esbuild/darwin-x64@0.25.12':
2409+ optional: true
2410+
2411+ '@esbuild/darwin-x64@0.28.1':
2412+ optional: true
2413+
2414+ '@esbuild/darwin-x64@0.28.2':
2415+ optional: true
2416+
2417+ '@esbuild/freebsd-arm64@0.25.11':
2418+ optional: true
2419+
2420+ '@esbuild/freebsd-arm64@0.25.12':
2421+ optional: true
2422+
2423+ '@esbuild/freebsd-arm64@0.28.1':
2424+ optional: true
2425+
2426+ '@esbuild/freebsd-arm64@0.28.2':
2427+ optional: true
2428+
2429+ '@esbuild/freebsd-x64@0.25.11':
2430+ optional: true
2431+
2432+ '@esbuild/freebsd-x64@0.25.12':
2433+ optional: true
2434+
2435+ '@esbuild/freebsd-x64@0.28.1':
2436+ optional: true
2437+
2438+ '@esbuild/freebsd-x64@0.28.2':
2439+ optional: true
2440+
2441+ '@esbuild/linux-arm64@0.25.11':
2442+ optional: true
2443+
2444+ '@esbuild/linux-arm64@0.25.12':
2445+ optional: true
2446+
2447+ '@esbuild/linux-arm64@0.28.1':
2448+ optional: true
2449+
2450+ '@esbuild/linux-arm64@0.28.2':
2451+ optional: true
2452+
2453+ '@esbuild/linux-arm@0.25.11':
2454+ optional: true
2455+
2456+ '@esbuild/linux-arm@0.25.12':
2457+ optional: true
2458+
2459+ '@esbuild/linux-arm@0.28.1':
2460+ optional: true
2461+
2462+ '@esbuild/linux-arm@0.28.2':
2463+ optional: true
2464+
2465+ '@esbuild/linux-ia32@0.25.11':
2466+ optional: true
2467+
2468+ '@esbuild/linux-ia32@0.25.12':
2469+ optional: true
2470+
2471+ '@esbuild/linux-ia32@0.28.1':
2472+ optional: true
2473+
2474+ '@esbuild/linux-ia32@0.28.2':
2475+ optional: true
2476+
2477+ '@esbuild/linux-loong64@0.25.11':
2478+ optional: true
2479+
2480+ '@esbuild/linux-loong64@0.25.12':
2481+ optional: true
2482+
2483+ '@esbuild/linux-loong64@0.28.1':
2484+ optional: true
2485+
2486+ '@esbuild/linux-loong64@0.28.2':
2487+ optional: true
2488+
2489+ '@esbuild/linux-mips64el@0.25.11':
2490+ optional: true
2491+
2492+ '@esbuild/linux-mips64el@0.25.12':
2493+ optional: true
2494+
2495+ '@esbuild/linux-mips64el@0.28.1':
2496+ optional: true
2497+
2498+ '@esbuild/linux-mips64el@0.28.2':
2499+ optional: true
2500+
2501+ '@esbuild/linux-ppc64@0.25.11':
2502+ optional: true
2503+
2504+ '@esbuild/linux-ppc64@0.25.12':
2505+ optional: true
2506+
2507+ '@esbuild/linux-ppc64@0.28.1':
2508+ optional: true
2509+
2510+ '@esbuild/linux-ppc64@0.28.2':
2511+ optional: true
2512+
2513+ '@esbuild/linux-riscv64@0.25.11':
2514+ optional: true
2515+
2516+ '@esbuild/linux-riscv64@0.25.12':
2517+ optional: true
2518+
2519+ '@esbuild/linux-riscv64@0.28.1':
2520+ optional: true
2521+
2522+ '@esbuild/linux-riscv64@0.28.2':
2523+ optional: true
2524+
2525+ '@esbuild/linux-s390x@0.25.11':
2526+ optional: true
2527+
2528+ '@esbuild/linux-s390x@0.25.12':
2529+ optional: true
2530+
2531+ '@esbuild/linux-s390x@0.28.1':
2532+ optional: true
2533+
2534+ '@esbuild/linux-s390x@0.28.2':
2535+ optional: true
2536+
2537+ '@esbuild/linux-x64@0.25.11':
2538+ optional: true
2539+
2540+ '@esbuild/linux-x64@0.25.12':
2541+ optional: true
2542+
2543+ '@esbuild/linux-x64@0.28.1':
2544+ optional: true
2545+
2546+ '@esbuild/linux-x64@0.28.2':
2547+ optional: true
2548+
2549+ '@esbuild/netbsd-arm64@0.25.11':
2550+ optional: true
2551+
2552+ '@esbuild/netbsd-arm64@0.25.12':
2553+ optional: true
2554+
2555+ '@esbuild/netbsd-arm64@0.28.1':
2556+ optional: true
2557+
2558+ '@esbuild/netbsd-arm64@0.28.2':
2559+ optional: true
2560+
2561+ '@esbuild/netbsd-x64@0.25.11':
2562+ optional: true
2563+
2564+ '@esbuild/netbsd-x64@0.25.12':
2565+ optional: true
2566+
2567+ '@esbuild/netbsd-x64@0.28.1':
2568+ optional: true
2569+
2570+ '@esbuild/netbsd-x64@0.28.2':
2571+ optional: true
2572+
2573+ '@esbuild/openbsd-arm64@0.25.11':
2574+ optional: true
2575+
2576+ '@esbuild/openbsd-arm64@0.25.12':
2577+ optional: true
2578+
2579+ '@esbuild/openbsd-arm64@0.28.1':
2580+ optional: true
2581+
2582+ '@esbuild/openbsd-arm64@0.28.2':
2583+ optional: true
2584+
2585+ '@esbuild/openbsd-x64@0.25.11':
2586+ optional: true
2587+
2588+ '@esbuild/openbsd-x64@0.25.12':
2589+ optional: true
2590+
2591+ '@esbuild/openbsd-x64@0.28.1':
2592+ optional: true
2593+
2594+ '@esbuild/openbsd-x64@0.28.2':
2595+ optional: true
2596+
2597+ '@esbuild/openharmony-arm64@0.25.11':
2598+ optional: true
2599+
2600+ '@esbuild/openharmony-arm64@0.25.12':
2601+ optional: true
2602+
2603+ '@esbuild/openharmony-arm64@0.28.1':
2604+ optional: true
2605+
2606+ '@esbuild/openharmony-arm64@0.28.2':
2607+ optional: true
2608+
2609+ '@esbuild/sunos-x64@0.25.11':
2610+ optional: true
2611+
2612+ '@esbuild/sunos-x64@0.25.12':
2613+ optional: true
2614+
2615+ '@esbuild/sunos-x64@0.28.1':
2616+ optional: true
2617+
2618+ '@esbuild/sunos-x64@0.28.2':
2619+ optional: true
2620+
2621+ '@esbuild/win32-arm64@0.25.11':
2622+ optional: true
2623+
2624+ '@esbuild/win32-arm64@0.25.12':
2625+ optional: true
2626+
2627+ '@esbuild/win32-arm64@0.28.1':
2628+ optional: true
2629+
2630+ '@esbuild/win32-arm64@0.28.2':
2631+ optional: true
2632+
2633+ '@esbuild/win32-ia32@0.25.11':
2634+ optional: true
2635+
2636+ '@esbuild/win32-ia32@0.25.12':
2637+ optional: true
2638+
2639+ '@esbuild/win32-ia32@0.28.1':
2640+ optional: true
2641+
2642+ '@esbuild/win32-ia32@0.28.2':
2643+ optional: true
2644+
2645+ '@esbuild/win32-x64@0.25.11':
2646+ optional: true
2647+
2648+ '@esbuild/win32-x64@0.25.12':
2649+ optional: true
2650+
2651+ '@esbuild/win32-x64@0.28.1':
2652+ optional: true
2653+
2654+ '@esbuild/win32-x64@0.28.2':
2655+ optional: true
2656+
2657+ '@floating-ui/core@1.8.0':
2658+ dependencies:
2659+ '@floating-ui/utils': 0.2.12
2660+
2661+ '@floating-ui/dom@1.8.0':
2662+ dependencies:
2663+ '@floating-ui/core': 1.8.0
2664+ '@floating-ui/utils': 0.2.12
2665+
2666+ '@floating-ui/react-dom@2.1.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
2667+ dependencies:
2668+ '@floating-ui/dom': 1.8.0
2669+ react: 19.2.0
2670+ react-dom: 19.2.0(react@19.2.0)
2671+
2672+ '@floating-ui/utils@0.2.12': {}
2673+
2674+ '@hexagon/base64@1.1.28': {}
2675+
2676+ '@img/colour@1.1.0': {}
2677+
2678+ '@img/sharp-darwin-arm64@0.35.2':
2679+ optionalDependencies:
2680+ '@img/sharp-libvips-darwin-arm64': 1.3.1
2681+ optional: true
2682+
2683+ '@img/sharp-darwin-arm64@0.35.5':
2684+ optionalDependencies:
2685+ '@img/sharp-libvips-darwin-arm64': 1.3.4
2686+ optional: true
2687+
2688+ '@img/sharp-darwin-x64@0.35.2':
2689+ optionalDependencies:
2690+ '@img/sharp-libvips-darwin-x64': 1.3.1
2691+ optional: true
2692+
2693+ '@img/sharp-darwin-x64@0.35.5':
2694+ optionalDependencies:
2695+ '@img/sharp-libvips-darwin-x64': 1.3.4
2696+ optional: true
2697+
2698+ '@img/sharp-freebsd-wasm32@0.35.2':
2699+ dependencies:
2700+ '@img/sharp-wasm32': 0.35.2
2701+ optional: true
2702+
2703+ '@img/sharp-freebsd-wasm32@0.35.5':
2704+ dependencies:
2705+ '@img/sharp-wasm32': 0.35.5
2706+ optional: true
2707+
2708+ '@img/sharp-libvips-darwin-arm64@1.3.1':
2709+ optional: true
2710+
2711+ '@img/sharp-libvips-darwin-arm64@1.3.4':
2712+ optional: true
2713+
2714+ '@img/sharp-libvips-darwin-x64@1.3.1':
2715+ optional: true
2716+
2717+ '@img/sharp-libvips-darwin-x64@1.3.4':
2718+ optional: true
2719+
2720+ '@img/sharp-libvips-linux-arm64@1.3.1':
2721+ optional: true
2722+
2723+ '@img/sharp-libvips-linux-arm64@1.3.4':
2724+ optional: true
2725+
2726+ '@img/sharp-libvips-linux-arm@1.3.1':
2727+ optional: true
2728+
2729+ '@img/sharp-libvips-linux-arm@1.3.4':
2730+ optional: true
2731+
2732+ '@img/sharp-libvips-linux-ppc64@1.3.1':
2733+ optional: true
2734+
2735+ '@img/sharp-libvips-linux-ppc64@1.3.4':
2736+ optional: true
2737+
2738+ '@img/sharp-libvips-linux-riscv64@1.3.1':
2739+ optional: true
2740+
2741+ '@img/sharp-libvips-linux-riscv64@1.3.4':
2742+ optional: true
2743+
2744+ '@img/sharp-libvips-linux-s390x@1.3.1':
2745+ optional: true
2746+
2747+ '@img/sharp-libvips-linux-s390x@1.3.4':
2748+ optional: true
2749+
2750+ '@img/sharp-libvips-linux-x64@1.3.1':
2751+ optional: true
2752+
2753+ '@img/sharp-libvips-linux-x64@1.3.4':
2754+ optional: true
2755+
2756+ '@img/sharp-libvips-linuxmusl-arm64@1.3.1':
2757+ optional: true
2758+
2759+ '@img/sharp-libvips-linuxmusl-arm64@1.3.4':
2760+ optional: true
2761+
2762+ '@img/sharp-libvips-linuxmusl-x64@1.3.1':
2763+ optional: true
2764+
2765+ '@img/sharp-libvips-linuxmusl-x64@1.3.4':
2766+ optional: true
2767+
2768+ '@img/sharp-linux-arm64@0.35.2':
2769+ optionalDependencies:
2770+ '@img/sharp-libvips-linux-arm64': 1.3.1
2771+ optional: true
2772+
2773+ '@img/sharp-linux-arm64@0.35.5':
2774+ optionalDependencies:
2775+ '@img/sharp-libvips-linux-arm64': 1.3.4
2776+ optional: true
2777+
2778+ '@img/sharp-linux-arm@0.35.2':
2779+ optionalDependencies:
2780+ '@img/sharp-libvips-linux-arm': 1.3.1
2781+ optional: true
2782+
2783+ '@img/sharp-linux-arm@0.35.5':
2784+ optionalDependencies:
2785+ '@img/sharp-libvips-linux-arm': 1.3.4
2786+ optional: true
2787+
2788+ '@img/sharp-linux-ppc64@0.35.2':
2789+ optionalDependencies:
2790+ '@img/sharp-libvips-linux-ppc64': 1.3.1
2791+ optional: true
2792+
2793+ '@img/sharp-linux-ppc64@0.35.5':
2794+ optionalDependencies:
2795+ '@img/sharp-libvips-linux-ppc64': 1.3.4
2796+ optional: true
2797+
2798+ '@img/sharp-linux-riscv64@0.35.2':
2799+ optionalDependencies:
2800+ '@img/sharp-libvips-linux-riscv64': 1.3.1
2801+ optional: true
2802+
2803+ '@img/sharp-linux-riscv64@0.35.5':
2804+ optionalDependencies:
2805+ '@img/sharp-libvips-linux-riscv64': 1.3.4
2806+ optional: true
2807+
2808+ '@img/sharp-linux-s390x@0.35.2':
2809+ optionalDependencies:
2810+ '@img/sharp-libvips-linux-s390x': 1.3.1
2811+ optional: true
2812+
2813+ '@img/sharp-linux-s390x@0.35.5':
2814+ optionalDependencies:
2815+ '@img/sharp-libvips-linux-s390x': 1.3.4
2816+ optional: true
2817+
2818+ '@img/sharp-linux-x64@0.35.2':
2819+ optionalDependencies:
2820+ '@img/sharp-libvips-linux-x64': 1.3.1
2821+ optional: true
2822+
2823+ '@img/sharp-linux-x64@0.35.5':
2824+ optionalDependencies:
2825+ '@img/sharp-libvips-linux-x64': 1.3.4
2826+ optional: true
2827+
2828+ '@img/sharp-linuxmusl-arm64@0.35.2':
2829+ optionalDependencies:
2830+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.1
2831+ optional: true
2832+
2833+ '@img/sharp-linuxmusl-arm64@0.35.5':
2834+ optionalDependencies:
2835+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.4
2836+ optional: true
2837+
2838+ '@img/sharp-linuxmusl-x64@0.35.2':
2839+ optionalDependencies:
2840+ '@img/sharp-libvips-linuxmusl-x64': 1.3.1
2841+ optional: true
2842+
2843+ '@img/sharp-linuxmusl-x64@0.35.5':
2844+ optionalDependencies:
2845+ '@img/sharp-libvips-linuxmusl-x64': 1.3.4
2846+ optional: true
2847+
2848+ '@img/sharp-wasm32@0.35.2':
2849+ dependencies:
2850+ '@emnapi/runtime': 1.11.3
2851+ optional: true
2852+
2853+ '@img/sharp-wasm32@0.35.5':
2854+ dependencies:
2855+ '@emnapi/runtime': 1.11.3
2856+ optional: true
2857+
2858+ '@img/sharp-webcontainers-wasm32@0.35.2':
2859+ dependencies:
2860+ '@img/sharp-wasm32': 0.35.2
2861+ optional: true
2862+
2863+ '@img/sharp-webcontainers-wasm32@0.35.5':
2864+ dependencies:
2865+ '@img/sharp-wasm32': 0.35.5
2866+ optional: true
2867+
2868+ '@img/sharp-win32-arm64@0.35.2':
2869+ optional: true
2870+
2871+ '@img/sharp-win32-arm64@0.35.5':
2872+ optional: true
2873+
2874+ '@img/sharp-win32-ia32@0.35.2':
2875+ optional: true
2876+
2877+ '@img/sharp-win32-ia32@0.35.5':
2878+ optional: true
2879+
2880+ '@img/sharp-win32-x64@0.35.2':
2881+ optional: true
2882+
2883+ '@img/sharp-win32-x64@0.35.5':
2884+ optional: true
2885+
2886+ '@jridgewell/resolve-uri@3.1.2': {}
2887+
2888+ '@jridgewell/sourcemap-codec@1.6.0': {}
2889+
2890+ '@jridgewell/trace-mapping@0.3.9':
2891+ dependencies:
2892+ '@jridgewell/resolve-uri': 3.1.2
2893+ '@jridgewell/sourcemap-codec': 1.6.0
2894+
2895+ '@levischuck/tiny-cbor@0.2.11': {}
2896+
2897+ '@oxc-project/types@0.153.0': {}
2898+
2899+ '@peculiar/asn1-android@2.10.0':
2900+ dependencies:
2901+ '@peculiar/asn1-schema': 2.10.0
2902+ asn1js: 3.0.10
2903+ tslib: 2.8.1
2904+
2905+ '@peculiar/asn1-asym-key@2.10.0':
2906+ dependencies:
2907+ '@peculiar/asn1-pkcs8': 2.10.0
2908+ '@peculiar/asn1-schema': 2.10.0
2909+ '@peculiar/asn1-x509': 2.10.0
2910+ asn1js: 3.0.10
2911+ tslib: 2.8.1
2912+
2913+ '@peculiar/asn1-cms@2.10.0':
2914+ dependencies:
2915+ '@peculiar/asn1-schema': 2.10.0
2916+ '@peculiar/asn1-x509': 2.10.0
2917+ '@peculiar/asn1-x509-attr': 2.10.0
2918+ asn1js: 3.0.10
2919+ tslib: 2.8.1
2920+
2921+ '@peculiar/asn1-csr@2.10.0':
2922+ dependencies:
2923+ '@peculiar/asn1-schema': 2.10.0
2924+ '@peculiar/asn1-x509': 2.10.0
2925+ asn1js: 3.0.10
2926+ tslib: 2.8.1
2927+
2928+ '@peculiar/asn1-ecc@2.10.0':
2929+ dependencies:
2930+ '@peculiar/asn1-schema': 2.10.0
2931+ '@peculiar/asn1-x509': 2.10.0
2932+ asn1js: 3.0.10
2933+ tslib: 2.8.1
2934+
2935+ '@peculiar/asn1-pfx@2.10.0':
2936+ dependencies:
2937+ '@peculiar/asn1-cms': 2.10.0
2938+ '@peculiar/asn1-pkcs8': 2.10.0
2939+ '@peculiar/asn1-rsa': 2.10.0
2940+ '@peculiar/asn1-schema': 2.10.0
2941+ asn1js: 3.0.10
2942+ tslib: 2.8.1
2943+
2944+ '@peculiar/asn1-pkcs8@2.10.0':
2945+ dependencies:
2946+ '@peculiar/asn1-schema': 2.10.0
2947+ '@peculiar/asn1-x509': 2.10.0
2948+ asn1js: 3.0.10
2949+ tslib: 2.8.1
2950+
2951+ '@peculiar/asn1-pkcs9@2.10.0':
2952+ dependencies:
2953+ '@peculiar/asn1-cms': 2.10.0
2954+ '@peculiar/asn1-pfx': 2.10.0
2955+ '@peculiar/asn1-pkcs8': 2.10.0
2956+ '@peculiar/asn1-schema': 2.10.0
2957+ '@peculiar/asn1-x509': 2.10.0
2958+ '@peculiar/asn1-x509-attr': 2.10.0
2959+ asn1js: 3.0.10
2960+ tslib: 2.8.1
2961+
2962+ '@peculiar/asn1-rsa@2.10.0':
2963+ dependencies:
2964+ '@peculiar/asn1-schema': 2.10.0
2965+ '@peculiar/asn1-x509': 2.10.0
2966+ asn1js: 3.0.10
2967+ tslib: 2.8.1
2968+
2969+ '@peculiar/asn1-schema@2.10.0':
2970+ dependencies:
2971+ '@peculiar/utils': 2.0.3
2972+ asn1js: 3.0.10
2973+ tslib: 2.8.1
2974+
2975+ '@peculiar/asn1-x509-attr@2.10.0':
2976+ dependencies:
2977+ '@peculiar/asn1-schema': 2.10.0
2978+ '@peculiar/asn1-x509': 2.10.0
2979+ asn1js: 3.0.10
2980+ tslib: 2.8.1
2981+
2982+ '@peculiar/asn1-x509-post-quantum@2.10.0':
2983+ dependencies:
2984+ '@peculiar/asn1-asym-key': 2.10.0
2985+ '@peculiar/asn1-schema': 2.10.0
2986+ '@peculiar/asn1-x509': 2.10.0
2987+ asn1js: 3.0.10
2988+ tslib: 2.8.1
2989+
2990+ '@peculiar/asn1-x509@2.10.0':
2991+ dependencies:
2992+ '@peculiar/asn1-schema': 2.10.0
2993+ '@peculiar/utils': 2.0.3
2994+ asn1js: 3.0.10
2995+ tslib: 2.8.1
2996+
2997+ '@peculiar/utils@2.0.3':
2998+ dependencies:
2999+ tslib: 2.8.1
3000+
3001+ '@peculiar/x509@2.1.0':
3002+ dependencies:
3003+ '@peculiar/asn1-cms': 2.10.0
3004+ '@peculiar/asn1-csr': 2.10.0
3005+ '@peculiar/asn1-ecc': 2.10.0
3006+ '@peculiar/asn1-pkcs9': 2.10.0
3007+ '@peculiar/asn1-rsa': 2.10.0
3008+ '@peculiar/asn1-schema': 2.10.0
3009+ '@peculiar/asn1-x509': 2.10.0
3010+ '@peculiar/asn1-x509-post-quantum': 2.10.0
3011+ pvtsutils: 1.3.6
3012+ tslib: 2.8.1
3013+ tsyringe: 4.10.0
3014+
3015+ '@phosphor-icons/react@2.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
3016+ dependencies:
3017+ react: 19.2.0
3018+ react-dom: 19.2.0(react@19.2.0)
3019+
3020+ '@poppinss/colors@4.1.6':
3021+ dependencies:
3022+ kleur: 4.1.5
3023+
3024+ '@poppinss/dumper@0.6.5':
3025+ dependencies:
3026+ '@poppinss/colors': 4.1.6
3027+ '@sindresorhus/is': 7.2.0
3028+ supports-color: 10.2.2
3029+
3030+ '@poppinss/exception@1.2.3': {}
3031+
3032+ '@rolldown/binding-android-arm-eabi@1.2.13':
3033+ optional: true
3034+
3035+ '@rolldown/binding-android-arm64@1.2.13':
3036+ optional: true
3037+
3038+ '@rolldown/binding-darwin-arm64@1.2.13':
3039+ optional: true
3040+
3041+ '@rolldown/binding-darwin-x64@1.2.13':
3042+ optional: true
3043+
3044+ '@rolldown/binding-freebsd-x64@1.2.13':
3045+ optional: true
3046+
3047+ '@rolldown/binding-linux-arm-gnueabihf@1.2.13':
3048+ optional: true
3049+
3050+ '@rolldown/binding-linux-arm64-gnu@1.2.13':
3051+ optional: true
3052+
3053+ '@rolldown/binding-linux-arm64-musl@1.2.13':
3054+ optional: true
3055+
3056+ '@rolldown/binding-linux-ppc64-gnu@1.2.13':
3057+ optional: true
3058+
3059+ '@rolldown/binding-linux-s390x-gnu@1.2.13':
3060+ optional: true
3061+
3062+ '@rolldown/binding-linux-x64-gnu@1.2.13':
3063+ optional: true
3064+
3065+ '@rolldown/binding-linux-x64-musl@1.2.13':
3066+ optional: true
3067+
3068+ '@rolldown/binding-openharmony-arm64@1.2.13':
3069+ optional: true
3070+
3071+ '@rolldown/binding-win32-arm64-msvc@1.2.13':
3072+ optional: true
3073+
3074+ '@rolldown/binding-win32-x64-msvc@1.2.13':
3075+ optional: true
3076+
3077+ '@rolldown/pluginutils@1.0.1': {}
3078+
3079+ '@shikijs/core@4.5.0':
3080+ dependencies:
3081+ '@shikijs/primitive': 4.5.0
3082+ '@shikijs/types': 4.5.0
3083+ '@shikijs/vscode-textmate': 10.0.2
3084+ '@types/hast': 3.0.5
3085+ hast-util-to-html: 9.0.5
3086+
3087+ '@shikijs/engine-javascript@4.5.0':
3088+ dependencies:
3089+ '@shikijs/types': 4.5.0
3090+ '@shikijs/vscode-textmate': 10.0.2
3091+ oniguruma-to-es: 4.3.6
3092+
3093+ '@shikijs/engine-oniguruma@4.5.0':
3094+ dependencies:
3095+ '@shikijs/types': 4.5.0
3096+ '@shikijs/vscode-textmate': 10.0.2
3097+
3098+ '@shikijs/langs@4.5.0':
3099+ dependencies:
3100+ '@shikijs/types': 4.5.0
3101+
3102+ '@shikijs/primitive@4.5.0':
3103+ dependencies:
3104+ '@shikijs/types': 4.5.0
3105+ '@shikijs/vscode-textmate': 10.0.2
3106+ '@types/hast': 3.0.5
3107+
3108+ '@shikijs/themes@4.5.0':
3109+ dependencies:
3110+ '@shikijs/types': 4.5.0
3111+
3112+ '@shikijs/types@4.5.0':
3113+ dependencies:
3114+ '@shikijs/vscode-textmate': 10.0.2
3115+ '@types/hast': 3.0.5
3116+
3117+ '@shikijs/vscode-textmate@10.0.2': {}
3118+
3119+ '@simplewebauthn/server@14.0.3':
3120+ dependencies:
3121+ '@hexagon/base64': 1.1.28
3122+ '@levischuck/tiny-cbor': 0.2.11
3123+ '@peculiar/asn1-android': 2.10.0
3124+ '@peculiar/asn1-ecc': 2.10.0
3125+ '@peculiar/asn1-rsa': 2.10.0
3126+ '@peculiar/asn1-schema': 2.10.0
3127+ '@peculiar/asn1-x509': 2.10.0
3128+ '@peculiar/asn1-x509-post-quantum': 2.10.0
3129+ '@peculiar/x509': 2.1.0
3130+ reflect-metadata: 0.2.2
3131+
3132+ '@sindresorhus/is@7.2.0': {}
3133+
3134+ '@speed-highlight/core@1.2.24': {}
3135+
3136+ '@standard-schema/spec@1.1.0': {}
3137+
3138+ '@tabby_ai/hijri-converter@1.0.5': {}
3139+
3140+ '@turbo/darwin-64@2.11.7':
3141+ optional: true
3142+
3143+ '@turbo/darwin-arm64@2.11.7':
3144+ optional: true
3145+
3146+ '@turbo/linux-64@2.11.7':
3147+ optional: true
3148+
3149+ '@turbo/linux-arm64@2.11.7':
3150+ optional: true
3151+
3152+ '@turbo/windows-64@2.11.7':
3153+ optional: true
3154+
3155+ '@turbo/windows-arm64@2.11.7':
3156+ optional: true
3157+
3158+ '@types/chai@5.2.3':
3159+ dependencies:
3160+ '@types/deep-eql': 4.0.2
3161+ assertion-error: 2.0.1
3162+
3163+ '@types/deep-eql@4.0.2': {}
3164+
3165+ '@types/estree@1.0.9': {}
3166+
3167+ '@types/hast@3.0.5':
3168+ dependencies:
3169+ '@types/unist': 3.0.3
3170+
3171+ '@types/mdast@4.0.4':
3172+ dependencies:
3173+ '@types/unist': 3.0.3
3174+
3175+ '@types/node@22.20.5':
3176+ dependencies:
3177+ undici-types: 6.21.0
3178+
3179+ '@types/pako@2.0.4': {}
3180+
3181+ '@types/react-dom@19.2.2(@types/react@19.2.2)':
3182+ dependencies:
3183+ '@types/react': 19.2.2
3184+
3185+ '@types/react@19.2.2':
3186+ dependencies:
3187+ csstype: 3.2.3
3188+
3189+ '@types/unist@3.0.3': {}
3190+
3191+ '@ungap/structured-clone@1.4.0': {}
3192+
3193+ '@vitest/expect@4.1.11':
3194+ dependencies:
3195+ '@standard-schema/spec': 1.1.0
3196+ '@types/chai': 5.2.3
3197+ '@vitest/spy': 4.1.11
3198+ '@vitest/utils': 4.1.11
3199+ chai: 6.3.0
3200+ tinyrainbow: 3.2.0
3201+
3202+ '@vitest/mocker@4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1))':
3203+ dependencies:
3204+ '@vitest/spy': 4.1.11
3205+ estree-walker: 3.0.3
3206+ magic-string: 0.30.21
3207+ optionalDependencies:
3208+ vite: 8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1)
3209+
3210+ '@vitest/mocker@4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1))':
3211+ dependencies:
3212+ '@vitest/spy': 4.1.11
3213+ estree-walker: 3.0.3
3214+ magic-string: 0.30.21
3215+ optionalDependencies:
3216+ vite: 8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1)
3217+
3218+ '@vitest/mocker@4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))':
3219+ dependencies:
3220+ '@vitest/spy': 4.1.11
3221+ estree-walker: 3.0.3
3222+ magic-string: 0.30.21
3223+ optionalDependencies:
3224+ vite: 8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1)
3225+
3226+ '@vitest/pretty-format@4.1.11':
3227+ dependencies:
3228+ tinyrainbow: 3.2.0
3229+
3230+ '@vitest/runner@4.1.11':
3231+ dependencies:
3232+ '@vitest/utils': 4.1.11
3233+ pathe: 2.0.3
3234+
3235+ '@vitest/snapshot@4.1.11':
3236+ dependencies:
3237+ '@vitest/pretty-format': 4.1.11
3238+ '@vitest/utils': 4.1.11
3239+ magic-string: 0.30.21
3240+ pathe: 2.0.3
3241+
3242+ '@vitest/spy@4.1.11': {}
3243+
3244+ '@vitest/utils@4.1.11':
3245+ dependencies:
3246+ '@vitest/pretty-format': 4.1.11
3247+ convert-source-map: 2.0.0
3248+ tinyrainbow: 3.2.0
3249+
3250+ asn1js@3.0.10:
3251+ dependencies:
3252+ pvtsutils: 1.3.6
3253+ pvutils: 1.2.0
3254+ tslib: 2.8.1
3255+
3256+ assertion-error@2.0.1: {}
3257+
3258+ blake3-wasm@2.1.5: {}
3259+
3260+ ccount@2.0.1: {}
3261+
3262+ chai@6.3.0: {}
3263+
3264+ character-entities-html4@2.1.0: {}
3265+
3266+ character-entities-legacy@3.0.0: {}
3267+
3268+ cjs-module-lexer@1.2.3: {}
3269+
3270+ cnfast@0.0.8: {}
3271+
3272+ comma-separated-tokens@2.0.3: {}
3273+
3274+ convert-source-map@2.0.0: {}
3275+
3276+ cookie@1.1.1: {}
3277+
3278+ csstype@3.2.3: {}
3279+
3280+ d3-array@3.2.4:
3281+ dependencies:
3282+ internmap: 2.0.3
3283+
3284+ d3-geo@3.1.1:
3285+ dependencies:
3286+ d3-array: 3.2.4
3287+
3288+ date-fns-jalali@4.1.0-0: {}
3289+
3290+ date-fns@4.4.0: {}
3291+
3292+ dequal@2.0.3: {}
3293+
3294+ detect-libc@2.1.2: {}
3295+
3296+ devlop@1.1.0:
3297+ dependencies:
3298+ dequal: 2.0.3
3299+
3300+ diff@8.0.4: {}
3301+
3302+ error-stack-parser-es@1.0.5: {}
3303+
3304+ es-module-lexer@2.3.2: {}
3305+
3306+ esbuild@0.25.11:
3307+ optionalDependencies:
3308+ '@esbuild/aix-ppc64': 0.25.11
3309+ '@esbuild/android-arm': 0.25.11
3310+ '@esbuild/android-arm64': 0.25.11
3311+ '@esbuild/android-x64': 0.25.11
3312+ '@esbuild/darwin-arm64': 0.25.11
3313+ '@esbuild/darwin-x64': 0.25.11
3314+ '@esbuild/freebsd-arm64': 0.25.11
3315+ '@esbuild/freebsd-x64': 0.25.11
3316+ '@esbuild/linux-arm': 0.25.11
3317+ '@esbuild/linux-arm64': 0.25.11
3318+ '@esbuild/linux-ia32': 0.25.11
3319+ '@esbuild/linux-loong64': 0.25.11
3320+ '@esbuild/linux-mips64el': 0.25.11
3321+ '@esbuild/linux-ppc64': 0.25.11
3322+ '@esbuild/linux-riscv64': 0.25.11
3323+ '@esbuild/linux-s390x': 0.25.11
3324+ '@esbuild/linux-x64': 0.25.11
3325+ '@esbuild/netbsd-arm64': 0.25.11
3326+ '@esbuild/netbsd-x64': 0.25.11
3327+ '@esbuild/openbsd-arm64': 0.25.11
3328+ '@esbuild/openbsd-x64': 0.25.11
3329+ '@esbuild/openharmony-arm64': 0.25.11
3330+ '@esbuild/sunos-x64': 0.25.11
3331+ '@esbuild/win32-arm64': 0.25.11
3332+ '@esbuild/win32-ia32': 0.25.11
3333+ '@esbuild/win32-x64': 0.25.11
3334+
3335+ esbuild@0.25.12:
3336+ optionalDependencies:
3337+ '@esbuild/aix-ppc64': 0.25.12
3338+ '@esbuild/android-arm': 0.25.12
3339+ '@esbuild/android-arm64': 0.25.12
3340+ '@esbuild/android-x64': 0.25.12
3341+ '@esbuild/darwin-arm64': 0.25.12
3342+ '@esbuild/darwin-x64': 0.25.12
3343+ '@esbuild/freebsd-arm64': 0.25.12
3344+ '@esbuild/freebsd-x64': 0.25.12
3345+ '@esbuild/linux-arm': 0.25.12
3346+ '@esbuild/linux-arm64': 0.25.12
3347+ '@esbuild/linux-ia32': 0.25.12
3348+ '@esbuild/linux-loong64': 0.25.12
3349+ '@esbuild/linux-mips64el': 0.25.12
3350+ '@esbuild/linux-ppc64': 0.25.12
3351+ '@esbuild/linux-riscv64': 0.25.12
3352+ '@esbuild/linux-s390x': 0.25.12
3353+ '@esbuild/linux-x64': 0.25.12
3354+ '@esbuild/netbsd-arm64': 0.25.12
3355+ '@esbuild/netbsd-x64': 0.25.12
3356+ '@esbuild/openbsd-arm64': 0.25.12
3357+ '@esbuild/openbsd-x64': 0.25.12
3358+ '@esbuild/openharmony-arm64': 0.25.12
3359+ '@esbuild/sunos-x64': 0.25.12
3360+ '@esbuild/win32-arm64': 0.25.12
3361+ '@esbuild/win32-ia32': 0.25.12
3362+ '@esbuild/win32-x64': 0.25.12
3363+
3364+ esbuild@0.28.1:
3365+ optionalDependencies:
3366+ '@esbuild/aix-ppc64': 0.28.1
3367+ '@esbuild/android-arm': 0.28.1
3368+ '@esbuild/android-arm64': 0.28.1
3369+ '@esbuild/android-x64': 0.28.1
3370+ '@esbuild/darwin-arm64': 0.28.1
3371+ '@esbuild/darwin-x64': 0.28.1
3372+ '@esbuild/freebsd-arm64': 0.28.1
3373+ '@esbuild/freebsd-x64': 0.28.1
3374+ '@esbuild/linux-arm': 0.28.1
3375+ '@esbuild/linux-arm64': 0.28.1
3376+ '@esbuild/linux-ia32': 0.28.1
3377+ '@esbuild/linux-loong64': 0.28.1
3378+ '@esbuild/linux-mips64el': 0.28.1
3379+ '@esbuild/linux-ppc64': 0.28.1
3380+ '@esbuild/linux-riscv64': 0.28.1
3381+ '@esbuild/linux-s390x': 0.28.1
3382+ '@esbuild/linux-x64': 0.28.1
3383+ '@esbuild/netbsd-arm64': 0.28.1
3384+ '@esbuild/netbsd-x64': 0.28.1
3385+ '@esbuild/openbsd-arm64': 0.28.1
3386+ '@esbuild/openbsd-x64': 0.28.1
3387+ '@esbuild/openharmony-arm64': 0.28.1
3388+ '@esbuild/sunos-x64': 0.28.1
3389+ '@esbuild/win32-arm64': 0.28.1
3390+ '@esbuild/win32-ia32': 0.28.1
3391+ '@esbuild/win32-x64': 0.28.1
3392+
3393+ esbuild@0.28.2:
3394+ optionalDependencies:
3395+ '@esbuild/aix-ppc64': 0.28.2
3396+ '@esbuild/android-arm': 0.28.2
3397+ '@esbuild/android-arm64': 0.28.2
3398+ '@esbuild/android-x64': 0.28.2
3399+ '@esbuild/darwin-arm64': 0.28.2
3400+ '@esbuild/darwin-x64': 0.28.2
3401+ '@esbuild/freebsd-arm64': 0.28.2
3402+ '@esbuild/freebsd-x64': 0.28.2
3403+ '@esbuild/linux-arm': 0.28.2
3404+ '@esbuild/linux-arm64': 0.28.2
3405+ '@esbuild/linux-ia32': 0.28.2
3406+ '@esbuild/linux-loong64': 0.28.2
3407+ '@esbuild/linux-mips64el': 0.28.2
3408+ '@esbuild/linux-ppc64': 0.28.2
3409+ '@esbuild/linux-riscv64': 0.28.2
3410+ '@esbuild/linux-s390x': 0.28.2
3411+ '@esbuild/linux-x64': 0.28.2
3412+ '@esbuild/netbsd-arm64': 0.28.2
3413+ '@esbuild/netbsd-x64': 0.28.2
3414+ '@esbuild/openbsd-arm64': 0.28.2
3415+ '@esbuild/openbsd-x64': 0.28.2
3416+ '@esbuild/openharmony-arm64': 0.28.2
3417+ '@esbuild/sunos-x64': 0.28.2
3418+ '@esbuild/win32-arm64': 0.28.2
3419+ '@esbuild/win32-ia32': 0.28.2
3420+ '@esbuild/win32-x64': 0.28.2
3421+
3422+ estree-walker@3.0.3:
3423+ dependencies:
3424+ '@types/estree': 1.0.9
3425+
3426+ expect-type@1.4.0: {}
3427+
3428+ fdir@6.5.0(picomatch@4.0.7):
3429+ optionalDependencies:
3430+ picomatch: 4.0.7
3431+
3432+ framer-motion@12.43.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
3433+ dependencies:
3434+ motion-dom: 12.43.0
3435+ motion-utils: 12.39.0
3436+ tslib: 2.8.1
3437+ optionalDependencies:
3438+ react: 19.2.0
3439+ react-dom: 19.2.0(react@19.2.0)
3440+
3441+ fsevents@2.3.2:
3442+ optional: true
3443+
3444+ fsevents@2.3.3:
3445+ optional: true
3446+
3447+ hast-util-to-html@9.0.5:
3448+ dependencies:
3449+ '@types/hast': 3.0.5
3450+ '@types/unist': 3.0.3
3451+ ccount: 2.0.1
3452+ comma-separated-tokens: 2.0.3
3453+ hast-util-whitespace: 3.0.0
3454+ html-void-elements: 3.0.0
3455+ mdast-util-to-hast: 13.2.1
3456+ property-information: 7.2.0
3457+ space-separated-tokens: 2.0.2
3458+ stringify-entities: 4.0.4
3459+ zwitch: 2.0.4
3460+
3461+ hast-util-whitespace@3.0.0:
3462+ dependencies:
3463+ '@types/hast': 3.0.5
3464+
3465+ hono@4.13.13: {}
3466+
3467+ html-void-elements@3.0.0: {}
3468+
3469+ internmap@2.0.3: {}
3470+
3471+ kleur@4.1.5: {}
3472+
3473+ lightningcss-android-arm64@1.33.0:
3474+ optional: true
3475+
3476+ lightningcss-darwin-arm64@1.33.0:
3477+ optional: true
3478+
3479+ lightningcss-darwin-x64@1.33.0:
3480+ optional: true
3481+
3482+ lightningcss-freebsd-x64@1.33.0:
3483+ optional: true
3484+
3485+ lightningcss-linux-arm-gnueabihf@1.33.0:
3486+ optional: true
3487+
3488+ lightningcss-linux-arm64-gnu@1.33.0:
3489+ optional: true
3490+
3491+ lightningcss-linux-arm64-musl@1.33.0:
3492+ optional: true
3493+
3494+ lightningcss-linux-x64-gnu@1.33.0:
3495+ optional: true
3496+
3497+ lightningcss-linux-x64-musl@1.33.0:
3498+ optional: true
3499+
3500+ lightningcss-win32-arm64-msvc@1.33.0:
3501+ optional: true
3502+
3503+ lightningcss-win32-x64-msvc@1.33.0:
3504+ optional: true
3505+
3506+ lightningcss@1.33.0:
3507+ dependencies:
3508+ detect-libc: 2.1.2
3509+ optionalDependencies:
3510+ lightningcss-android-arm64: 1.33.0
3511+ lightningcss-darwin-arm64: 1.33.0
3512+ lightningcss-darwin-x64: 1.33.0
3513+ lightningcss-freebsd-x64: 1.33.0
3514+ lightningcss-linux-arm-gnueabihf: 1.33.0
3515+ lightningcss-linux-arm64-gnu: 1.33.0
3516+ lightningcss-linux-arm64-musl: 1.33.0
3517+ lightningcss-linux-x64-gnu: 1.33.0
3518+ lightningcss-linux-x64-musl: 1.33.0
3519+ lightningcss-win32-arm64-msvc: 1.33.0
3520+ lightningcss-win32-x64-msvc: 1.33.0
3521+
3522+ magic-string@0.30.21:
3523+ dependencies:
3524+ '@jridgewell/sourcemap-codec': 1.6.0
3525+
3526+ mdast-util-to-hast@13.2.1:
3527+ dependencies:
3528+ '@types/hast': 3.0.5
3529+ '@types/mdast': 4.0.4
3530+ '@ungap/structured-clone': 1.4.0
3531+ devlop: 1.1.0
3532+ micromark-util-sanitize-uri: 2.0.1
3533+ trim-lines: 3.0.1
3534+ unist-util-position: 5.0.0
3535+ unist-util-visit: 5.1.0
3536+ vfile: 6.0.3
3537+
3538+ micromark-util-character@2.1.1:
3539+ dependencies:
3540+ micromark-util-symbol: 2.0.1
3541+ micromark-util-types: 2.0.3
3542+
3543+ micromark-util-encode@2.0.1: {}
3544+
3545+ micromark-util-sanitize-uri@2.0.1:
3546+ dependencies:
3547+ micromark-util-character: 2.1.1
3548+ micromark-util-encode: 2.0.1
3549+ micromark-util-symbol: 2.0.1
3550+
3551+ micromark-util-symbol@2.0.1: {}
3552+
3553+ micromark-util-types@2.0.3: {}
3554+
3555+ miniflare@5.20260815.0-alpha:
3556+ dependencies:
3557+ '@cspotcode/source-map-support': 0.8.1
3558+ sharp: 0.35.2
3559+ undici: 7.29.0
3560+ workerd: 1.20260815.1
3561+ ws: 8.21.0
3562+ youch: 4.1.0-beta.10
3563+ transitivePeerDependencies:
3564+ - bufferutil
3565+ - utf-8-validate
3566+
3567+ miniflare@5.20261006.1-alpha(@types/node@22.20.5):
3568+ dependencies:
3569+ '@cspotcode/source-map-support': 0.8.1
3570+ sharp: 0.35.5(@types/node@22.20.5)
3571+ undici: 7.29.1
3572+ workerd: 1.20261006.1
3573+ ws: 8.21.0
3574+ youch: 4.1.0-beta.10
3575+ transitivePeerDependencies:
3576+ - '@types/node'
3577+ - bufferutil
3578+ - utf-8-validate
3579+
3580+ motion-dom@12.43.0:
3581+ dependencies:
3582+ motion-utils: 12.39.0
3583+
3584+ motion-utils@12.39.0: {}
3585+
3586+ motion@12.43.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
3587+ dependencies:
3588+ framer-motion: 12.43.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
3589+ tslib: 2.8.1
3590+ optionalDependencies:
3591+ react: 19.2.0
3592+ react-dom: 19.2.0(react@19.2.0)
3593+
3594+ nanoid@3.3.20: {}
3595+
3596+ obug@2.2.1: {}
3597+
3598+ oniguruma-parser@0.12.2: {}
3599+
3600+ oniguruma-to-es@4.3.6:
3601+ dependencies:
3602+ oniguruma-parser: 0.12.2
3603+ regex: 6.1.0
3604+ regex-recursion: 6.0.2
3605+
3606+ pako@2.2.0: {}
3607+
3608+ path-to-regexp@6.3.0: {}
3609+
3610+ pathe@2.0.3: {}
3611+
3612+ picocolors@1.1.1: {}
3613+
3614+ picomatch@4.0.7: {}
3615+
3616+ playwright-core@1.56.1: {}
3617+
3618+ playwright@1.56.1:
3619+ dependencies:
3620+ playwright-core: 1.56.1
3621+ optionalDependencies:
3622+ fsevents: 2.3.2
3623+
3624+ postcss@8.5.29:
3625+ dependencies:
3626+ nanoid: 3.3.20
3627+ picocolors: 1.1.1
3628+ source-map-js: 1.2.2
3629+
3630+ postcss@8.5.6:
3631+ dependencies:
3632+ nanoid: 3.3.20
3633+ picocolors: 1.1.1
3634+ source-map-js: 1.2.2
3635+
3636+ property-information@7.2.0: {}
3637+
3638+ pvtsutils@1.3.6:
3639+ dependencies:
3640+ tslib: 2.8.1
3641+
3642+ pvutils@1.2.0: {}
3643+
3644+ react-day-picker@9.14.0(react@19.2.0):
3645+ dependencies:
3646+ '@date-fns/tz': 1.5.0
3647+ '@tabby_ai/hijri-converter': 1.0.5
3648+ date-fns: 4.4.0
3649+ date-fns-jalali: 4.1.0-0
3650+ react: 19.2.0
3651+
3652+ react-dom@19.2.0(react@19.2.0):
3653+ dependencies:
3654+ react: 19.2.0
3655+ scheduler: 0.27.0
3656+
3657+ react@19.2.0: {}
3658+
3659+ reflect-metadata@0.2.2: {}
3660+
3661+ regex-recursion@6.0.2:
3662+ dependencies:
3663+ regex-utilities: 2.3.0
3664+
3665+ regex-utilities@2.3.0: {}
3666+
3667+ regex@6.1.0:
3668+ dependencies:
3669+ regex-utilities: 2.3.0
3670+
3671+ reselect@5.3.0: {}
3672+
3673+ rolldown@1.2.13:
3674+ dependencies:
3675+ '@oxc-project/types': 0.153.0
3676+ '@rolldown/pluginutils': 1.0.1
3677+ optionalDependencies:
3678+ '@rolldown/binding-android-arm-eabi': 1.2.13
3679+ '@rolldown/binding-android-arm64': 1.2.13
3680+ '@rolldown/binding-darwin-arm64': 1.2.13
3681+ '@rolldown/binding-darwin-x64': 1.2.13
3682+ '@rolldown/binding-freebsd-x64': 1.2.13
3683+ '@rolldown/binding-linux-arm-gnueabihf': 1.2.13
3684+ '@rolldown/binding-linux-arm64-gnu': 1.2.13
3685+ '@rolldown/binding-linux-arm64-musl': 1.2.13
3686+ '@rolldown/binding-linux-ppc64-gnu': 1.2.13
3687+ '@rolldown/binding-linux-s390x-gnu': 1.2.13
3688+ '@rolldown/binding-linux-x64-gnu': 1.2.13
3689+ '@rolldown/binding-linux-x64-musl': 1.2.13
3690+ '@rolldown/binding-openharmony-arm64': 1.2.13
3691+ '@rolldown/binding-win32-arm64-msvc': 1.2.13
3692+ '@rolldown/binding-win32-x64-msvc': 1.2.13
3693+
3694+ scheduler@0.27.0: {}
3695+
3696+ semver@7.8.5: {}
3697+
3698+ sharp@0.35.2:
3699+ dependencies:
3700+ '@img/colour': 1.1.0
3701+ detect-libc: 2.1.2
3702+ semver: 7.8.5
3703+ optionalDependencies:
3704+ '@img/sharp-darwin-arm64': 0.35.2
3705+ '@img/sharp-darwin-x64': 0.35.2
3706+ '@img/sharp-freebsd-wasm32': 0.35.2
3707+ '@img/sharp-libvips-darwin-arm64': 1.3.1
3708+ '@img/sharp-libvips-darwin-x64': 1.3.1
3709+ '@img/sharp-libvips-linux-arm': 1.3.1
3710+ '@img/sharp-libvips-linux-arm64': 1.3.1
3711+ '@img/sharp-libvips-linux-ppc64': 1.3.1
3712+ '@img/sharp-libvips-linux-riscv64': 1.3.1
3713+ '@img/sharp-libvips-linux-s390x': 1.3.1
3714+ '@img/sharp-libvips-linux-x64': 1.3.1
3715+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.1
3716+ '@img/sharp-libvips-linuxmusl-x64': 1.3.1
3717+ '@img/sharp-linux-arm': 0.35.2
3718+ '@img/sharp-linux-arm64': 0.35.2
3719+ '@img/sharp-linux-ppc64': 0.35.2
3720+ '@img/sharp-linux-riscv64': 0.35.2
3721+ '@img/sharp-linux-s390x': 0.35.2
3722+ '@img/sharp-linux-x64': 0.35.2
3723+ '@img/sharp-linuxmusl-arm64': 0.35.2
3724+ '@img/sharp-linuxmusl-x64': 0.35.2
3725+ '@img/sharp-webcontainers-wasm32': 0.35.2
3726+ '@img/sharp-win32-arm64': 0.35.2
3727+ '@img/sharp-win32-ia32': 0.35.2
3728+ '@img/sharp-win32-x64': 0.35.2
3729+
3730+ sharp@0.35.5(@types/node@22.20.5):
3731+ dependencies:
3732+ '@img/colour': 1.1.0
3733+ detect-libc: 2.1.2
3734+ semver: 7.8.5
3735+ optionalDependencies:
3736+ '@img/sharp-darwin-arm64': 0.35.5
3737+ '@img/sharp-darwin-x64': 0.35.5
3738+ '@img/sharp-freebsd-wasm32': 0.35.5
3739+ '@img/sharp-libvips-darwin-arm64': 1.3.4
3740+ '@img/sharp-libvips-darwin-x64': 1.3.4
3741+ '@img/sharp-libvips-linux-arm': 1.3.4
3742+ '@img/sharp-libvips-linux-arm64': 1.3.4
3743+ '@img/sharp-libvips-linux-ppc64': 1.3.4
3744+ '@img/sharp-libvips-linux-riscv64': 1.3.4
3745+ '@img/sharp-libvips-linux-s390x': 1.3.4
3746+ '@img/sharp-libvips-linux-x64': 1.3.4
3747+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.4
3748+ '@img/sharp-libvips-linuxmusl-x64': 1.3.4
3749+ '@img/sharp-linux-arm': 0.35.5
3750+ '@img/sharp-linux-arm64': 0.35.5
3751+ '@img/sharp-linux-ppc64': 0.35.5
3752+ '@img/sharp-linux-riscv64': 0.35.5
3753+ '@img/sharp-linux-s390x': 0.35.5
3754+ '@img/sharp-linux-x64': 0.35.5
3755+ '@img/sharp-linuxmusl-arm64': 0.35.5
3756+ '@img/sharp-linuxmusl-x64': 0.35.5
3757+ '@img/sharp-webcontainers-wasm32': 0.35.5
3758+ '@img/sharp-win32-arm64': 0.35.5
3759+ '@img/sharp-win32-ia32': 0.35.5
3760+ '@img/sharp-win32-x64': 0.35.5
3761+ '@types/node': 22.20.5
3762+
3763+ shiki@4.5.0:
3764+ dependencies:
3765+ '@shikijs/core': 4.5.0
3766+ '@shikijs/engine-javascript': 4.5.0
3767+ '@shikijs/engine-oniguruma': 4.5.0
3768+ '@shikijs/langs': 4.5.0
3769+ '@shikijs/themes': 4.5.0
3770+ '@shikijs/types': 4.5.0
3771+ '@shikijs/vscode-textmate': 10.0.2
3772+ '@types/hast': 3.0.5
3773+
3774+ siginfo@2.0.0: {}
3775+
3776+ source-map-js@1.2.2: {}
3777+
3778+ space-separated-tokens@2.0.2: {}
3779+
3780+ stackback@0.0.2: {}
3781+
3782+ std-env@4.3.0: {}
3783+
3784+ stringify-entities@4.0.4:
3785+ dependencies:
3786+ character-entities-html4: 2.1.0
3787+ character-entities-legacy: 3.0.0
3788+
3789+ supports-color@10.2.2: {}
3790+
3791+ tinybench@2.9.0: {}
3792+
3793+ tinyexec@1.3.1: {}
3794+
3795+ tinyglobby@0.2.17:
3796+ dependencies:
3797+ fdir: 6.5.0(picomatch@4.0.7)
3798+ picomatch: 4.0.7
3799+
3800+ tinyrainbow@3.2.0: {}
3801+
3802+ trim-lines@3.0.1: {}
3803+
3804+ tslib@1.14.1: {}
3805+
3806+ tslib@2.8.1: {}
3807+
3808+ tsyringe@4.10.0:
3809+ dependencies:
3810+ tslib: 1.14.1
3811+
3812+ turbo@2.11.7:
3813+ optionalDependencies:
3814+ '@turbo/darwin-64': 2.11.7
3815+ '@turbo/darwin-arm64': 2.11.7
3816+ '@turbo/linux-64': 2.11.7
3817+ '@turbo/linux-arm64': 2.11.7
3818+ '@turbo/windows-64': 2.11.7
3819+ '@turbo/windows-arm64': 2.11.7
3820+
3821+ typescript@5.9.3: {}
3822+
3823+ undici-types@6.21.0: {}
3824+
3825+ undici@7.29.0: {}
3826+
3827+ undici@7.29.1: {}
3828+
3829+ unenv@2.0.0-rc.24:
3830+ dependencies:
3831+ pathe: 2.0.3
3832+
3833+ unist-util-is@6.0.1:
3834+ dependencies:
3835+ '@types/unist': 3.0.3
3836+
3837+ unist-util-position@5.0.0:
3838+ dependencies:
3839+ '@types/unist': 3.0.3
3840+
3841+ unist-util-stringify-position@4.0.0:
3842+ dependencies:
3843+ '@types/unist': 3.0.3
3844+
3845+ unist-util-visit-parents@6.0.2:
3846+ dependencies:
3847+ '@types/unist': 3.0.3
3848+ unist-util-is: 6.0.1
3849+
3850+ unist-util-visit@5.1.0:
3851+ dependencies:
3852+ '@types/unist': 3.0.3
3853+ unist-util-is: 6.0.1
3854+ unist-util-visit-parents: 6.0.2
3855+
3856+ use-sync-external-store@1.7.0(react@19.2.0):
3857+ dependencies:
3858+ react: 19.2.0
3859+
3860+ vfile-message@4.0.3:
3861+ dependencies:
3862+ '@types/unist': 3.0.3
3863+ unist-util-stringify-position: 4.0.0
3864+
3865+ vfile@6.0.3:
3866+ dependencies:
3867+ '@types/unist': 3.0.3
3868+ vfile-message: 4.0.3
3869+
3870+ vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1):
3871+ dependencies:
3872+ lightningcss: 1.33.0
3873+ picomatch: 4.0.7
3874+ postcss: 8.5.29
3875+ rolldown: 1.2.13
3876+ tinyglobby: 0.2.17
3877+ optionalDependencies:
3878+ '@types/node': 22.20.5
3879+ esbuild: 0.25.11
3880+ fsevents: 2.3.3
3881+ yaml: 2.9.1
3882+
3883+ vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1):
3884+ dependencies:
3885+ lightningcss: 1.33.0
3886+ picomatch: 4.0.7
3887+ postcss: 8.5.29
3888+ rolldown: 1.2.13
3889+ tinyglobby: 0.2.17
3890+ optionalDependencies:
3891+ '@types/node': 22.20.5
3892+ esbuild: 0.25.12
3893+ fsevents: 2.3.3
3894+ yaml: 2.9.1
3895+
3896+ vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1):
3897+ dependencies:
3898+ lightningcss: 1.33.0
3899+ picomatch: 4.0.7
3900+ postcss: 8.5.29
3901+ rolldown: 1.2.13
3902+ tinyglobby: 0.2.17
3903+ optionalDependencies:
3904+ '@types/node': 22.20.5
3905+ esbuild: 0.28.2
3906+ fsevents: 2.3.3
3907+ yaml: 2.9.1
3908+
3909+ vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1)):
3910+ dependencies:
3911+ '@vitest/expect': 4.1.11
3912+ '@vitest/mocker': 4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1))
3913+ '@vitest/pretty-format': 4.1.11
3914+ '@vitest/runner': 4.1.11
3915+ '@vitest/snapshot': 4.1.11
3916+ '@vitest/spy': 4.1.11
3917+ '@vitest/utils': 4.1.11
3918+ es-module-lexer: 2.3.2
3919+ expect-type: 1.4.0
3920+ magic-string: 0.30.21
3921+ obug: 2.2.1
3922+ pathe: 2.0.3
3923+ picomatch: 4.0.7
3924+ std-env: 4.3.0
3925+ tinybench: 2.9.0
3926+ tinyexec: 1.3.1
3927+ tinyglobby: 0.2.17
3928+ tinyrainbow: 3.2.0
3929+ vite: 8.3.4(@types/node@22.20.5)(esbuild@0.25.11)(yaml@2.9.1)
3930+ why-is-node-running: 2.3.0
3931+ optionalDependencies:
3932+ '@types/node': 22.20.5
3933+ transitivePeerDependencies:
3934+ - msw
3935+
3936+ vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1)):
3937+ dependencies:
3938+ '@vitest/expect': 4.1.11
3939+ '@vitest/mocker': 4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1))
3940+ '@vitest/pretty-format': 4.1.11
3941+ '@vitest/runner': 4.1.11
3942+ '@vitest/snapshot': 4.1.11
3943+ '@vitest/spy': 4.1.11
3944+ '@vitest/utils': 4.1.11
3945+ es-module-lexer: 2.3.2
3946+ expect-type: 1.4.0
3947+ magic-string: 0.30.21
3948+ obug: 2.2.1
3949+ pathe: 2.0.3
3950+ picomatch: 4.0.7
3951+ std-env: 4.3.0
3952+ tinybench: 2.9.0
3953+ tinyexec: 1.3.1
3954+ tinyglobby: 0.2.17
3955+ tinyrainbow: 3.2.0
3956+ vite: 8.3.4(@types/node@22.20.5)(esbuild@0.25.12)(yaml@2.9.1)
3957+ why-is-node-running: 2.3.0
3958+ optionalDependencies:
3959+ '@types/node': 22.20.5
3960+ transitivePeerDependencies:
3961+ - msw
3962+
3963+ vitest@4.1.11(@types/node@22.20.5)(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1)):
3964+ dependencies:
3965+ '@vitest/expect': 4.1.11
3966+ '@vitest/mocker': 4.1.11(vite@8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1))
3967+ '@vitest/pretty-format': 4.1.11
3968+ '@vitest/runner': 4.1.11
3969+ '@vitest/snapshot': 4.1.11
3970+ '@vitest/spy': 4.1.11
3971+ '@vitest/utils': 4.1.11
3972+ es-module-lexer: 2.3.2
3973+ expect-type: 1.4.0
3974+ magic-string: 0.30.21
3975+ obug: 2.2.1
3976+ pathe: 2.0.3
3977+ picomatch: 4.0.7
3978+ std-env: 4.3.0
3979+ tinybench: 2.9.0
3980+ tinyexec: 1.3.1
3981+ tinyglobby: 0.2.17
3982+ tinyrainbow: 3.2.0
3983+ vite: 8.3.4(@types/node@22.20.5)(esbuild@0.28.2)(yaml@2.9.1)
3984+ why-is-node-running: 2.3.0
3985+ optionalDependencies:
3986+ '@types/node': 22.20.5
3987+ transitivePeerDependencies:
3988+ - msw
3989+
3990+ why-is-node-running@2.3.0:
3991+ dependencies:
3992+ siginfo: 2.0.0
3993+ stackback: 0.0.2
3994+
3995+ workerd@1.20260815.1:
3996+ optionalDependencies:
3997+ '@cloudflare/workerd-darwin-64': 1.20260815.1
3998+ '@cloudflare/workerd-darwin-arm64': 1.20260815.1
3999+ '@cloudflare/workerd-linux-64': 1.20260815.1
4000+ '@cloudflare/workerd-linux-arm64': 1.20260815.1
4001+ '@cloudflare/workerd-windows-64': 1.20260815.1
4002+
4003+ workerd@1.20261006.1:
4004+ optionalDependencies:
4005+ '@cloudflare/workerd-darwin-64': 1.20261006.1
4006+ '@cloudflare/workerd-darwin-arm64': 1.20261006.1
4007+ '@cloudflare/workerd-linux-64': 1.20261006.1
4008+ '@cloudflare/workerd-linux-arm64': 1.20261006.1
4009+ '@cloudflare/workerd-windows-64': 1.20261006.1
4010+
4011+ wrangler@4.124.0(@cloudflare/workers-types@5.20261012.1):
4012+ dependencies:
4013+ '@cloudflare/kv-asset-handler': 0.5.0
4014+ '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260815.1)
4015+ blake3-wasm: 2.1.5
4016+ esbuild: 0.28.1
4017+ miniflare: 5.20260815.0-alpha
4018+ path-to-regexp: 6.3.0
4019+ unenv: 2.0.0-rc.24
4020+ workerd: 1.20260815.1
4021+ optionalDependencies:
4022+ '@cloudflare/workers-types': 5.20261012.1
4023+ fsevents: 2.3.3
4024+ transitivePeerDependencies:
4025+ - bufferutil
4026+ - utf-8-validate
4027+
4028+ wrangler@4.149.0(@cloudflare/workers-types@5.20261012.1)(@types/node@22.20.5):
4029+ dependencies:
4030+ '@cloudflare/kv-asset-handler': 0.5.0
4031+ '@cloudflare/unenv-preset': 2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1)
4032+ blake3-wasm: 2.1.5
4033+ esbuild: 0.28.2
4034+ miniflare: 5.20261006.1-alpha(@types/node@22.20.5)
4035+ path-to-regexp: 6.3.0
4036+ unenv: 2.0.0-rc.24
4037+ workerd: 1.20261006.1
4038+ optionalDependencies:
4039+ '@cloudflare/workers-types': 5.20261012.1
4040+ fsevents: 2.3.3
4041+ transitivePeerDependencies:
4042+ - '@types/node'
4043+ - bufferutil
4044+ - utf-8-validate
4045+
4046+ ws@8.21.0: {}
4047+
4048+ yaml@2.9.1: {}
4049+
4050+ youch-core@0.3.3:
4051+ dependencies:
4052+ '@poppinss/exception': 1.2.3
4053+ error-stack-parser-es: 1.0.5
4054+
4055+ youch@4.1.0-beta.10:
4056+ dependencies:
4057+ '@poppinss/colors': 4.1.6
4058+ '@poppinss/dumper': 0.6.5
4059+ '@speed-highlight/core': 1.2.24
4060+ cookie: 1.1.1
4061+ youch-core: 0.3.3
4062+
4063+ zod@4.4.3: {}
4064+
4065+ zwitch@2.0.4: {}
modifiedturbo.json+1−1View file
@@ -1,7 +1,7 @@
11 {
22 "$schema": "https://turbo.build/schema.json",
33 "tasks": {
4- "build": { "dependsOn": ["^build"], "outputs": ["dist/**"] },
4+ "build": { "dependsOn": ["^build"], "outputs": ["dist/**", "build/**"] },
55 "typecheck": { "dependsOn": ["^build"] },
66 "test": { "dependsOn": ["^build"] }
77 }