From dd3e3f06ce9935f3d8a9184206acfa574b2e360a Mon Sep 17 00:00:00 2001 From: Exelo Date: Sun, 11 Jan 2026 10:37:56 +0100 Subject: [PATCH 1/3] feat(client): add watcher --- apps/client/src/env.ts | 8 ++++++++ apps/client/src/server.ts | 20 +++++++++++++++++--- apps/client/src/watch.ts | 38 ++++++++++++++++++++++++++++++++++++++ tsconfig.json | 1 - 4 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 apps/client/src/watch.ts diff --git a/apps/client/src/env.ts b/apps/client/src/env.ts index e78e9ad..81e9185 100644 --- a/apps/client/src/env.ts +++ b/apps/client/src/env.ts @@ -13,3 +13,11 @@ export const getGameDir = () => { if (process.env.GAME_DIR) return process.env.GAME_DIR; throw new Error("GAME_DIR env variable not found"); }; + +export const getWatch = () => { + return process.env.WATCH; +}; + +export const getWatchPort = () => { + return process.env.WATCH_PORT; +}; diff --git a/apps/client/src/server.ts b/apps/client/src/server.ts index 9c4e4f4..3a0920e 100644 --- a/apps/client/src/server.ts +++ b/apps/client/src/server.ts @@ -1,11 +1,23 @@ import { join } from "node:path"; -import { getGameDir, getPort, getPublicEnv } from "./env"; +import { getGameDir, getPort, getPublicEnv, getWatch, getWatchPort } from "./env"; import { updateManifest } from "./manifest"; +import { startWatch } from "./watch"; -export const MANIFEST: { version: string; files: { path: string }[] } = { +type IManifest = { + version: string; + files: { path: string }[]; + watch: { enable: false } | { enable: true; url: string }; +}; + +const watch = getWatch() === "true"; + +export const MANIFEST: IManifest = { version: "", files: [], + watch: { + enable: false, + }, }; const resolveWebDir = (str: string) => { @@ -68,4 +80,6 @@ const server = Bun.serve({ }, }); -console.log(`Client started on port ${server.port}`); +console.log(`Client started on url ${server.url.toString()}`); + +if (watch) startWatch(gameDir, getWatchPort()); diff --git a/apps/client/src/watch.ts b/apps/client/src/watch.ts new file mode 100644 index 0000000..3ea1964 --- /dev/null +++ b/apps/client/src/watch.ts @@ -0,0 +1,38 @@ +import { watch } from "fs"; + +import { MANIFEST } from "./server"; + +export const startWatch = (gameDir: string, port?: string) => { + const server = Bun.serve({ + port: port ?? 0, + fetch(req, server) { + if (server.upgrade(req)) { + return; + } + return new Response("Upgrade failed", { status: 500 }); + }, + websocket: { + message(ws) { + ws.send("not allowed"); + }, + open(ws) { + ws.subscribe("watch"); + }, + close(ws) { + ws.unsubscribe("watch"); + }, + }, + }); + + MANIFEST.watch = { + enable: true, + url: server.url.toString(), + }; + + watch(gameDir, { recursive: true }, () => { + server.publish("watch", "update"); + console.log(`Game updated`); + }); + + console.log(`Watcher started on url ${server.url.toString()}`); +}; diff --git a/tsconfig.json b/tsconfig.json index ce8ada3..5f003af 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,6 @@ // Type Checking "allowUnreachableCode": false, "allowUnusedLabels": false, - "exactOptionalPropertyTypes": true, "noFallthroughCasesInSwitch": true, "noImplicitOverride": true, "noImplicitReturns": true, From 8ccf73b4a7250d906a746f7767411112b3717ca3 Mon Sep 17 00:00:00 2001 From: Exelo Date: Sun, 11 Jan 2026 14:07:49 +0100 Subject: [PATCH 2/3] feat(server): add watcher --- apps/client/src/env.ts | 4 ++++ apps/client/src/server.ts | 11 +++++++++-- apps/client/src/watch.ts | 24 ++++++++++++++++++++---- apps/server/package.json | 4 +++- apps/server/src/env.ts | 4 ++++ apps/server/src/server.ts | 28 ++++++++++++++++++++++------ apps/server/src/watch.ts | 14 ++++++++++++++ apps/server/src/worker.ts | 14 ++++++++++++++ 8 files changed, 90 insertions(+), 13 deletions(-) create mode 100644 apps/server/src/watch.ts create mode 100644 apps/server/src/worker.ts diff --git a/apps/client/src/env.ts b/apps/client/src/env.ts index 81e9185..f38666c 100644 --- a/apps/client/src/env.ts +++ b/apps/client/src/env.ts @@ -21,3 +21,7 @@ export const getWatch = () => { export const getWatchPort = () => { return process.env.WATCH_PORT; }; + +export const getWatchServerGameDir = () => { + return process.env.WATCH_SERVER_GAME_DIR; +}; diff --git a/apps/client/src/server.ts b/apps/client/src/server.ts index 3a0920e..dad72fe 100644 --- a/apps/client/src/server.ts +++ b/apps/client/src/server.ts @@ -1,6 +1,13 @@ import { join } from "node:path"; -import { getGameDir, getPort, getPublicEnv, getWatch, getWatchPort } from "./env"; +import { + getGameDir, + getPort, + getPublicEnv, + getWatch, + getWatchPort, + getWatchServerGameDir, +} from "./env"; import { updateManifest } from "./manifest"; import { startWatch } from "./watch"; @@ -82,4 +89,4 @@ const server = Bun.serve({ console.log(`Client started on url ${server.url.toString()}`); -if (watch) startWatch(gameDir, getWatchPort()); +if (watch) startWatch(gameDir, getWatchPort(), getWatchServerGameDir()); diff --git a/apps/client/src/watch.ts b/apps/client/src/watch.ts index 3ea1964..5833449 100644 --- a/apps/client/src/watch.ts +++ b/apps/client/src/watch.ts @@ -2,7 +2,7 @@ import { watch } from "fs"; import { MANIFEST } from "./server"; -export const startWatch = (gameDir: string, port?: string) => { +export const startWatch = (gameDir: string, port?: string, serverGameDir?: string) => { const server = Bun.serve({ port: port ?? 0, fetch(req, server) { @@ -29,10 +29,26 @@ export const startWatch = (gameDir: string, port?: string) => { url: server.url.toString(), }; - watch(gameDir, { recursive: true }, () => { + let lastCall = Date.now(); + + const onClientWatch = () => { + if (lastCall + 100 > Date.now()) return; + lastCall = Date.now(); server.publish("watch", "update"); - console.log(`Game updated`); - }); + console.log(`[Watcher] Game client triggered an updated`); + }; + + const onServerWatch = () => { + if (lastCall + 100 > Date.now()) return; + lastCall = Date.now(); + setTimeout(() => { + server.publish("watch", "update"); + console.log(`[Watcher] Game server triggered an updated`); + }, 100); + }; + + watch(gameDir, { recursive: true }, onClientWatch); + if (serverGameDir) watch(serverGameDir, { recursive: true }, onServerWatch); console.log(`Watcher started on url ${server.url.toString()}`); }; diff --git a/apps/server/package.json b/apps/server/package.json index e100762..0de06f0 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -43,7 +43,9 @@ }, "funding": "", "scripts": { - "build": "bun build src/server.ts --outdir dist --target node", + "build": "pnpm run build:server && pnpm run build:worker", + "build:server": "bun build src/server.ts --outdir dist --target node", + "build:worker": "bun build src/worker.ts --outdir dist --target node", "start": "node dist/server.js", "lint": "prettier --check . && eslint --format=pretty src", "format": "prettier --write . && eslint --fix --format=pretty src", diff --git a/apps/server/src/env.ts b/apps/server/src/env.ts index d68d780..bde47c4 100644 --- a/apps/server/src/env.ts +++ b/apps/server/src/env.ts @@ -2,3 +2,7 @@ export const getGameDir = () => { if (process.env.GAME_DIR) return process.env.GAME_DIR; throw new Error("GAME_DIR env variable not found"); }; + +export const getWatch = () => { + return process.env.WATCH; +}; diff --git a/apps/server/src/server.ts b/apps/server/src/server.ts index dfb0dd5..a7b35df 100644 --- a/apps/server/src/server.ts +++ b/apps/server/src/server.ts @@ -1,7 +1,11 @@ -import { createRequire } from "node:module"; +import { type ChildProcess, fork } from "node:child_process"; +import { join } from "node:path"; +import { dirname } from "node:path"; +import { fileURLToPath } from "node:url"; -import { getGameDir } from "./env"; +import { getGameDir, getWatch } from "./env"; import { getFiles } from "./files"; +import { startWatch } from "./watch"; const bootstrap = async () => { const gameDir = getGameDir(); @@ -17,12 +21,24 @@ const bootstrap = async () => { if (!mainPath) throw new Error("No main.js found"); - const { main } = (await createRequire(import.meta.url)(mainPath)) as { - main: (options: { files: Map }) => Promise; + let child: ChildProcess | undefined; + + const runWorker = async () => { + if (child) { + child.kill(); + child = undefined; + } + + const __filename = fileURLToPath(import.meta.url); + child = fork(join(dirname(__filename), "worker.js"), [ + mainPath as string, + JSON.stringify(paths), + ]); }; - console.log("Starting server"); - await main({ files: new Map(paths) }); + if (getWatch()) startWatch(gameDir, runWorker); + + await runWorker(); }; bootstrap().then(); diff --git a/apps/server/src/watch.ts b/apps/server/src/watch.ts new file mode 100644 index 0000000..b5cea29 --- /dev/null +++ b/apps/server/src/watch.ts @@ -0,0 +1,14 @@ +import { watch } from "fs"; + +export const startWatch = (gameDir: string, onWatch: () => Promise) => { + let lastCall = Date.now(); + + watch(gameDir, { recursive: true, persistent: false }, async () => { + if (lastCall + 100 > Date.now()) return; + lastCall = Date.now(); + console.log(`[Watcher] Game server triggered an updated`); + await onWatch(); + }); + + console.log(`Watcher started`); +}; diff --git a/apps/server/src/worker.ts b/apps/server/src/worker.ts new file mode 100644 index 0000000..fdba4a2 --- /dev/null +++ b/apps/server/src/worker.ts @@ -0,0 +1,14 @@ +import { createRequire } from "node:module"; + +const bootstrap = async () => { + const mainPath = process.argv[2] as string; + const paths = JSON.parse(process.argv[3] as string); + const { main } = (await createRequire(import.meta.url)(mainPath)) as { + main: (options: { files: Map }) => Promise; + }; + + console.log("Starting server"); + await main({ files: new Map(paths) }); +}; + +bootstrap().then(); From 8e206dbaf5e351e25be51c9a4d35207669e2742c Mon Sep 17 00:00:00 2001 From: Exelo Date: Sun, 11 Jan 2026 14:19:53 +0100 Subject: [PATCH 3/3] chore(client): fix website version --- apps/client/package.json | 2 +- pnpm-lock.yaml | 785 ++++++++++++++++++++------------------- 2 files changed, 398 insertions(+), 389 deletions(-) diff --git a/apps/client/package.json b/apps/client/package.json index d6d1dbf..470e85d 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -52,7 +52,7 @@ "release": "cliff-jumper" }, "dependencies": { - "@nanoforge-dev/loader-website": "^1.0.0", + "@nanoforge-dev/loader-website": "^1.1.0", "bun": "^1.3.3" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3edaa71..5a742d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,49 +10,49 @@ importers: devDependencies: '@commitlint/cli': specifier: ^20.1.0 - version: 20.2.0(@types/node@24.10.1)(typescript@5.9.3) + version: 20.3.1(@types/node@24.10.7)(typescript@5.9.3) '@commitlint/config-conventional': specifier: ^20.0.0 - version: 20.2.0 + version: 20.3.1 '@eslint/js': specifier: ^9.39.1 - version: 9.39.1 + version: 9.39.2 '@nanoforge-dev/actions': specifier: ^1.0.2 version: 1.0.2 '@nanoforge-dev/utils-eslint-config': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1(@types/eslint@9.6.1)(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4)(typescript@5.9.3) '@nanoforge-dev/utils-prettier-config': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1 '@trivago/prettier-plugin-sort-imports': specifier: ^6.0.0 - version: 6.0.0(prettier@3.7.4) + version: 6.0.2(prettier@3.7.4) '@types/bun': specifier: ^1.3.3 - version: 1.3.3 + version: 1.3.5 '@types/node': specifier: ^24.10.1 - version: 24.10.1 + version: 24.10.7 eslint: specifier: ^9.39.1 - version: 9.39.1(jiti@2.6.1) + version: 9.39.2(jiti@2.6.1) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.39.1(jiti@2.6.1)) + version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-formatter-pretty: specifier: ^7.0.0 version: 7.0.0 eslint-plugin-format: specifier: ^1.0.2 - version: 1.1.0(eslint@9.39.1(jiti@2.6.1)) + version: 1.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jest: specifier: ^29.1.0 - version: 29.2.1(@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 29.12.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-prettier: specifier: ^5.5.4 - version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4) + version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4) globals: specifier: ^16.5.0 version: 16.5.0 @@ -67,59 +67,59 @@ importers: version: 3.7.4 turbo: specifier: ^2.6.1 - version: 2.6.3 + version: 2.7.3 typescript: specifier: ^5.9.3 version: 5.9.3 typescript-eslint: specifier: ^8.47.0 - version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) apps/client: dependencies: '@nanoforge-dev/loader-website': - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.1.0 + version: 1.1.0 bun: specifier: ^1.3.3 - version: 1.3.3 + version: 1.3.5 devDependencies: '@eslint/js': specifier: ^9.39.1 - version: 9.39.1 + version: 9.39.2 '@favware/cliff-jumper': specifier: ^6.0.0 version: 6.0.0 '@nanoforge-dev/utils-eslint-config': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1(@types/eslint@9.6.1)(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4)(typescript@5.9.3) '@nanoforge-dev/utils-prettier-config': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1 '@trivago/prettier-plugin-sort-imports': specifier: ^6.0.0 - version: 6.0.0(prettier@3.7.4) + version: 6.0.2(prettier@3.7.4) '@types/bun': specifier: ^1.3.3 - version: 1.3.3 + version: 1.3.5 eslint: specifier: ^9.39.1 - version: 9.39.1(jiti@2.6.1) + version: 9.39.2(jiti@2.6.1) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.39.1(jiti@2.6.1)) + version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-formatter-pretty: specifier: ^7.0.0 version: 7.0.0 eslint-plugin-format: specifier: ^1.0.2 - version: 1.1.0(eslint@9.39.1(jiti@2.6.1)) + version: 1.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jest: specifier: ^29.1.0 - version: 29.2.1(@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 29.12.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-prettier: specifier: ^5.5.4 - version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4) + version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4) globals: specifier: ^16.5.0 version: 16.5.0 @@ -131,46 +131,46 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.47.0 - version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) apps/server: devDependencies: '@eslint/js': specifier: ^9.39.1 - version: 9.39.1 + version: 9.39.2 '@favware/cliff-jumper': specifier: ^6.0.0 version: 6.0.0 '@nanoforge-dev/utils-eslint-config': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1(@types/eslint@9.6.1)(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4)(typescript@5.9.3) '@nanoforge-dev/utils-prettier-config': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1 '@trivago/prettier-plugin-sort-imports': specifier: ^6.0.0 - version: 6.0.0(prettier@3.7.4) + version: 6.0.2(prettier@3.7.4) bun: specifier: ^1.3.3 - version: 1.3.3 + version: 1.3.5 eslint: specifier: ^9.39.1 - version: 9.39.1(jiti@2.6.1) + version: 9.39.2(jiti@2.6.1) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.39.1(jiti@2.6.1)) + version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-formatter-pretty: specifier: ^7.0.0 version: 7.0.0 eslint-plugin-format: specifier: ^1.0.2 - version: 1.1.0(eslint@9.39.1(jiti@2.6.1)) + version: 1.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jest: specifier: ^29.1.0 - version: 29.2.1(@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 29.12.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-prettier: specifier: ^5.5.4 - version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4) + version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4) globals: specifier: ^16.5.0 version: 16.5.0 @@ -182,13 +182,13 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.47.0 - version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) apps/website: devDependencies: '@eslint/js': specifier: ^9.39.1 - version: 9.39.1 + version: 9.39.2 '@favware/cliff-jumper': specifier: ^6.0.0 version: 6.0.0 @@ -200,37 +200,37 @@ importers: version: 0.35.2 '@nanoforge-dev/utils-eslint-config': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1(@types/eslint@9.6.1)(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4)(typescript@5.9.3) '@nanoforge-dev/utils-prettier-config': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1 '@trivago/prettier-plugin-sort-imports': specifier: ^6.0.0 - version: 6.0.0(prettier@3.7.4) + version: 6.0.2(prettier@3.7.4) '@types/bun': specifier: ^1.3.3 - version: 1.3.3 + version: 1.3.5 bun: specifier: ^1.3.3 - version: 1.3.3 + version: 1.3.5 eslint: specifier: ^9.39.1 - version: 9.39.1(jiti@2.6.1) + version: 9.39.2(jiti@2.6.1) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.39.1(jiti@2.6.1)) + version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-formatter-pretty: specifier: ^7.0.0 version: 7.0.0 eslint-plugin-format: specifier: ^1.0.2 - version: 1.1.0(eslint@9.39.1(jiti@2.6.1)) + version: 1.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jest: specifier: ^29.1.0 - version: 29.2.1(@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 29.12.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-prettier: specifier: ^5.5.4 - version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4) + version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4) globals: specifier: ^16.5.0 version: 16.5.0 @@ -242,7 +242,7 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.47.0 - version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) packages: @@ -301,61 +301,61 @@ packages: resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} - '@commitlint/cli@20.2.0': - resolution: {integrity: sha512-l37HkrPZ2DZy26rKiTUvdq/LZtlMcxz+PeLv9dzK9NzoFGuJdOQyYU7IEkEQj0pO++uYue89wzOpZ0hcTtoqUA==} + '@commitlint/cli@20.3.1': + resolution: {integrity: sha512-NtInjSlyev/+SLPvx/ulz8hRE25Wf5S9dLNDcIwazq0JyB4/w1ROF/5nV0ObPTX8YpRaKYeKtXDYWqumBNHWsw==} engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@20.2.0': - resolution: {integrity: sha512-MsRac+yNIbTB4Q/psstKK4/ciVzACHicSwz+04Sxve+4DW+PiJeTjU0JnS4m/oOnulrXYN+yBPlKaBSGemRfgQ==} + '@commitlint/config-conventional@20.3.1': + resolution: {integrity: sha512-NCzwvxepstBZbmVXsvg49s+shCxlJDJPWxXqONVcAtJH9wWrOlkMQw/zyl+dJmt8lyVopt5mwQ3mR5M2N2rUWg==} engines: {node: '>=v18'} - '@commitlint/config-validator@20.2.0': - resolution: {integrity: sha512-SQCBGsL9MFk8utWNSthdxd9iOD1pIVZSHxGBwYIGfd67RTjxqzFOSAYeQVXOu3IxRC3YrTOH37ThnTLjUlyF2w==} + '@commitlint/config-validator@20.3.1': + resolution: {integrity: sha512-ErVLC/IsHhcvxCyh+FXo7jy12/nkQySjWXYgCoQbZLkFp4hysov8KS6CdxBB0cWjbZWjvNOKBMNoUVqkmGmahw==} engines: {node: '>=v18'} - '@commitlint/ensure@20.2.0': - resolution: {integrity: sha512-+8TgIGv89rOWyt3eC6lcR1H7hqChAKkpawytlq9P1i/HYugFRVqgoKJ8dhd89fMnlrQTLjA5E97/4sF09QwdoA==} + '@commitlint/ensure@20.3.1': + resolution: {integrity: sha512-h664FngOEd7bHAm0j8MEKq+qm2mH+V+hwJiIE2bWcw3pzJMlO0TPKtk0ATyRAtV6jQw+xviRYiIjjSjfajiB5w==} engines: {node: '>=v18'} '@commitlint/execute-rule@20.0.0': resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==} engines: {node: '>=v18'} - '@commitlint/format@20.2.0': - resolution: {integrity: sha512-PhNoLNhxpfIBlW/i90uZ3yG3hwSSYx7n4d9Yc+2FAorAHS0D9btYRK4ZZXX+Gm3W5tDtu911ow/eWRfcRVgNWg==} + '@commitlint/format@20.3.1': + resolution: {integrity: sha512-jfsjGPFTd2Yti2YHwUH4SPRPbWKAJAwrfa3eNa9bXEdrXBb9mCwbIrgYX38LdEJK9zLJ3AsLBP4/FLEtxyu2AA==} engines: {node: '>=v18'} - '@commitlint/is-ignored@20.2.0': - resolution: {integrity: sha512-Lz0OGeZCo/QHUDLx5LmZc0EocwanneYJUM8z0bfWexArk62HKMLfLIodwXuKTO5y0s6ddXaTexrYHs7v96EOmw==} + '@commitlint/is-ignored@20.3.1': + resolution: {integrity: sha512-tWwAoh93QvAhxgp99CzCuHD86MgxE4NBtloKX+XxQxhfhSwHo7eloiar/yzx53YW9eqSLP95zgW2KDDk4/WX+A==} engines: {node: '>=v18'} - '@commitlint/lint@20.2.0': - resolution: {integrity: sha512-cQEEB+jlmyQbyiji/kmh8pUJSDeUmPiWq23kFV0EtW3eM+uAaMLMuoTMajbrtWYWQpPzOMDjYltQ8jxHeHgITg==} + '@commitlint/lint@20.3.1': + resolution: {integrity: sha512-LaOtrQ24+6SfUaWg8A+a+Wc77bvLbO5RIr6iy9F7CI3/0iq1uPEWgGRCwqWTuLGHkZDAcwaq0gZ01zpwZ1jCGw==} engines: {node: '>=v18'} - '@commitlint/load@20.2.0': - resolution: {integrity: sha512-iAK2GaBM8sPFTSwtagI67HrLKHIUxQc2BgpgNc/UMNme6LfmtHpIxQoN1TbP+X1iz58jq32HL1GbrFTCzcMi6g==} + '@commitlint/load@20.3.1': + resolution: {integrity: sha512-YDD9XA2XhgYgbjju8itZ/weIvOOobApDqwlPYCX5NLO/cPtw2UMO5Cmn44Ks8RQULUVI5fUT6roKvyxcoLbNmw==} engines: {node: '>=v18'} '@commitlint/message@20.0.0': resolution: {integrity: sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==} engines: {node: '>=v18'} - '@commitlint/parse@20.2.0': - resolution: {integrity: sha512-LXStagGU1ivh07X7sM+hnEr4BvzFYn1iBJ6DRg2QsIN8lBfSzyvkUcVCDwok9Ia4PWiEgei5HQjju6xfJ1YaSQ==} + '@commitlint/parse@20.3.1': + resolution: {integrity: sha512-TuUTdbLpyUNLgDzLDYlI2BeTE6V/COZbf3f8WwsV0K6eq/2nSpNTMw7wHtXb+YxeY9wwxBp/Ldad4P+YIxHJoA==} engines: {node: '>=v18'} - '@commitlint/read@20.2.0': - resolution: {integrity: sha512-+SjF9mxm5JCbe+8grOpXCXMMRzAnE0WWijhhtasdrpJoAFJYd5UgRTj/oCq5W3HJTwbvTOsijEJ0SUGImECD7Q==} + '@commitlint/read@20.3.1': + resolution: {integrity: sha512-nCmJAdIg3OdNVUpQW0Idk/eF/vfOo2W2xzmvRmNeptLrzFK7qhwwl/kIwy1Q1LZrKHUFNj7PGNpIT5INbgZWzA==} engines: {node: '>=v18'} - '@commitlint/resolve-extends@20.2.0': - resolution: {integrity: sha512-KVoLDi9BEuqeq+G0wRABn4azLRiCC22/YHR2aCquwx6bzCHAIN8hMt3Nuf1VFxq/c8ai6s8qBxE8+ZD4HeFTlQ==} + '@commitlint/resolve-extends@20.3.1': + resolution: {integrity: sha512-iGTGeyaoDyHDEZNjD8rKeosjSNs8zYanmuowY4ful7kFI0dnY4b5QilVYaFQJ6IM27S57LAeH5sKSsOHy4bw5w==} engines: {node: '>=v18'} - '@commitlint/rules@20.2.0': - resolution: {integrity: sha512-27rHGpeAjnYl/A+qUUiYDa7Yn1WIjof/dFJjYW4gA1Ug+LUGa1P0AexzGZ5NBxTbAlmDgaxSZkLLxtLVqtg8PQ==} + '@commitlint/rules@20.3.1': + resolution: {integrity: sha512-/uic4P+4jVNpqQxz02+Y6vvIC0A2J899DBztA1j6q3f3MOKwydlNrojSh0dQmGDxxT1bXByiRtDhgFnOFnM6Pg==} engines: {node: '>=v18'} '@commitlint/to-lines@20.0.0': @@ -366,8 +366,8 @@ packages: resolution: {integrity: sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg==} engines: {node: '>=v18'} - '@commitlint/types@20.2.0': - resolution: {integrity: sha512-KTy0OqRDLR5y/zZMnizyx09z/rPlPC/zKhYgH8o/q6PuAjoQAKlRfY4zzv0M64yybQ//6//4H1n14pxaLZfUnA==} + '@commitlint/types@20.3.1': + resolution: {integrity: sha512-VmIFV/JkBRhDRRv7N5B7zEUkNZIx9Mp+8Pe65erz0rKycXLsi8Epcw0XJ+btSeRXgTzE7DyOyA9bkJ9mn/yqVQ==} engines: {node: '>=v18'} '@conventional-changelog/git-client@1.0.1': @@ -382,17 +382,17 @@ packages: conventional-commits-parser: optional: true - '@dprint/formatter@0.3.0': - resolution: {integrity: sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==} + '@dprint/formatter@0.4.1': + resolution: {integrity: sha512-IB/GXdlMOvi0UhQQ9mcY15Fxcrc2JPadmo6tqefCNV0bptFq7YBpggzpqYXldBXDa04CbKJ+rDwO2eNRPE2+/g==} - '@dprint/markdown@0.17.8': - resolution: {integrity: sha512-ukHFOg+RpG284aPdIg7iPrCYmMs3Dqy43S1ejybnwlJoFiW02b+6Bbr5cfZKFRYNP3dKGM86BqHEnMzBOyLvvA==} + '@dprint/markdown@0.20.0': + resolution: {integrity: sha512-qvynFdQZwul4Y+hoMP02QerEhM5VItb4cO8/qpQrSuQuYvDU+bIseiheVAetSpWlNPBU1JK8bQKloiCSp9lXnA==} - '@dprint/toml@0.6.4': - resolution: {integrity: sha512-bZXIUjxr0LIuHWshZr/5mtUkOrnh0NKVZEF6ACojW5z7zkJu7s9sV2mMXm8XQDqN4cJzdHYUYzUyEGdfciaLJA==} + '@dprint/toml@0.7.0': + resolution: {integrity: sha512-eFaQTcfxKHB+YyTh83x7GEv+gDPuj9q5NFOTaoj5rZmQTbj6OgjjMxUicmS1R8zYcx8YAq5oA9J3YFa5U6x2gA==} - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -417,8 +417,8 @@ packages: resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.39.1': - resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} + '@eslint/js@9.39.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.7': @@ -487,17 +487,17 @@ packages: resolution: {integrity: sha512-LLlqow0omtoEETYejCLEAiPoLdxTYhonezUxvZvORbdb7or+DUjfIYFgZAxfcX9TNt+oE6wXPrAcOlOauvWkLg==} engines: {node: 24.11.0} - '@nanoforge-dev/loader-website@1.0.0': - resolution: {integrity: sha512-0667VNh91NM7/3EhXitiuZ1rLljbjOkHU3fRLSCa9R9IIn9tpaoELh5Uj66jj1GQHsbFMSgGgysWf0SaeEdMeQ==} + '@nanoforge-dev/loader-website@1.1.0': + resolution: {integrity: sha512-6taExH65vAfUpIVrWSzPzLsGkdXcdREjOjvgY4vOwXet3JXRtA6+yHjqp2kVg9Yrp+OA3iUPNXOsLRXOrfNVJw==} engines: {node: 24.11.0} - '@nanoforge-dev/utils-eslint-config@1.0.0': - resolution: {integrity: sha512-SE4PTI0vup2KacaeeZ2OUYF4+7F92N+6RbugXTRmyk37N/Jnd8uYh4gaj5SxrDWAfUtskKBVTAFwPiQU07jmzw==} - engines: {node: 24.11.0, pnpm: 10.22.0} + '@nanoforge-dev/utils-eslint-config@1.0.1': + resolution: {integrity: sha512-fPRArAYlBQ/nm5mBatUKNeAjNkVwhL5njUKErJJHff52KCW7RIUDh8lJLM2oNVciY+fF9iWShW5tsqyYDRoUOg==} + engines: {node: 24.11.0} - '@nanoforge-dev/utils-prettier-config@1.0.0': - resolution: {integrity: sha512-xLUFdsCevJCbxEhIV+40Q0DWmX6s87OhCPvGMa7GC9dyRFMtWxg85vvLugzmB/LB0QvXnXkC/PymauhikToUyA==} - engines: {node: 24.11.0, pnpm: 10.22.0} + '@nanoforge-dev/utils-prettier-config@1.0.1': + resolution: {integrity: sha512-2OedhN7Tf0xiTVK8Izr4Ifxco8Et/w/2enFcd5Ac+ZQlI6Vxm7UGpLuaT54kn+FZpBsUkNJkQjJQLq94r+3pGQ==} + engines: {node: 24.11.0} '@octokit/auth-token@4.0.0': resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} @@ -583,58 +583,58 @@ packages: '@octokit/types@14.1.0': resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} - '@oven/bun-darwin-aarch64@1.3.3': - resolution: {integrity: sha512-eJopQrUk0WR7jViYDC29+Rp50xGvs4GtWOXBeqCoFMzutkkO3CZvHehA4JqnjfWMTSS8toqvRhCSOpOz62Wf9w==} + '@oven/bun-darwin-aarch64@1.3.5': + resolution: {integrity: sha512-8GvNtMo0NINM7Emk9cNAviCG3teEgr3BUX9be0+GD029zIagx2Sf54jMui1Eu1IpFm7nWHODuLEefGOQNaJ0gQ==} cpu: [arm64] os: [darwin] - '@oven/bun-darwin-x64-baseline@1.3.3': - resolution: {integrity: sha512-1ij4wQ9ECLFf1XFry+IFUN+28if40ozDqq6+QtuyOhIwraKzXOlAUbILhRMGvM3ED3yBex2mTwlKpA4Vja/V2g==} + '@oven/bun-darwin-x64-baseline@1.3.5': + resolution: {integrity: sha512-p5q3rJk48qhLuLBOFehVc+kqCE03YrswTc6NCxbwsxiwfySXwcAvpF2KWKF/ZZObvvR8hCCvqe1F81b2p5r2dg==} cpu: [x64] os: [darwin] - '@oven/bun-darwin-x64@1.3.3': - resolution: {integrity: sha512-xGDePueVFrNgkS+iN0QdEFeRrx2MQ5hQ9ipRFu7N73rgoSSJsFlOKKt2uGZzunczedViIfjYl0ii0K4E9aZ0Ow==} + '@oven/bun-darwin-x64@1.3.5': + resolution: {integrity: sha512-r33eHQOHAwkuiBJIwmkXIyqONQOQMnd1GMTpDzaxx9vf9+svby80LZO9Hcm1ns6KT/TBRFyODC/0loA7FAaffg==} cpu: [x64] os: [darwin] - '@oven/bun-linux-aarch64-musl@1.3.3': - resolution: {integrity: sha512-XWQ3tV/gtZj0wn2AdSUq/tEOKWT4OY+Uww70EbODgrrq00jxuTfq5nnYP6rkLD0M/T5BHJdQRSfQYdIni9vldw==} + '@oven/bun-linux-aarch64-musl@1.3.5': + resolution: {integrity: sha512-HKBeUlJdNduRkzJKZ5DXM+pPqntfC50/Hu2X65jVX0Y7hu/6IC8RaUTqpr8FtCZqqmc9wDK0OTL+Mbi9UQIKYQ==} cpu: [arm64] os: [linux] - '@oven/bun-linux-aarch64@1.3.3': - resolution: {integrity: sha512-DabZ3Mt1XcJneWdEEug8l7bCPVvDBRBpjUIpNnRnMFWFnzr8KBEpMcaWTwYOghjXyJdhB4MPKb19MwqyQ+FHAw==} + '@oven/bun-linux-aarch64@1.3.5': + resolution: {integrity: sha512-zkcHPI23QxJ1TdqafhgkXt1NOEN8o5C460sVeNnrhfJ43LwZgtfcvcQE39x/pBedu67fatY8CU0iY00nOh46ZQ==} cpu: [arm64] os: [linux] - '@oven/bun-linux-x64-baseline@1.3.3': - resolution: {integrity: sha512-IU8pxhIf845psOv55LqJyL+tSUc6HHMfs6FGhuJcAnyi92j+B1HjOhnFQh9MW4vjoo7do5F8AerXlvk59RGH2w==} + '@oven/bun-linux-x64-baseline@1.3.5': + resolution: {integrity: sha512-FeCQyBU62DMuB0nn01vPnf3McXrKOsrK9p7sHaBFYycw0mmoU8kCq/WkBkGMnLuvQljJSyen8QBTx+fXdNupWg==} cpu: [x64] os: [linux] - '@oven/bun-linux-x64-musl-baseline@1.3.3': - resolution: {integrity: sha512-JoRTPdAXRkNYouUlJqEncMWUKn/3DiWP03A7weBbtbsKr787gcdNna2YeyQKCb1lIXE4v1k18RM3gaOpQobGIQ==} + '@oven/bun-linux-x64-musl-baseline@1.3.5': + resolution: {integrity: sha512-TJiYC7KCr0XxFTsxgwQOeE7dncrEL/RSyL0EzSL3xRkrxJMWBCvCSjQn7LV1i6T7hFst0+3KoN3VWvD5BinqHA==} cpu: [x64] os: [linux] - '@oven/bun-linux-x64-musl@1.3.3': - resolution: {integrity: sha512-xNSDRPn1yyObKteS8fyQogwsS4eCECswHHgaKM+/d4wy/omZQrXn8ZyGm/ZF9B73UfQytUfbhE7nEnrFq03f0w==} + '@oven/bun-linux-x64-musl@1.3.5': + resolution: {integrity: sha512-XkCCHkByYn8BIDvoxnny898znju4xnW2kvFE8FT5+0Y62cWdcBGMZ9RdsEUTeRz16k8hHtJpaSfLcEmNTFIwRQ==} cpu: [x64] os: [linux] - '@oven/bun-linux-x64@1.3.3': - resolution: {integrity: sha512-7eIARtKZKZDtah1aCpQUj/1/zT/zHRR063J6oAxZP9AuA547j5B9OM2D/vi/F4En7Gjk9FPjgPGTSYeqpQDzJw==} + '@oven/bun-linux-x64@1.3.5': + resolution: {integrity: sha512-n7zhKTSDZS0yOYg5Rq8easZu5Y/o47sv0c7yGr2ciFdcie9uYV55fZ7QMqhWMGK33ezCSikh5EDkUMCIvfWpjA==} cpu: [x64] os: [linux] - '@oven/bun-windows-x64-baseline@1.3.3': - resolution: {integrity: sha512-u5eZHKq6TPJSE282KyBOicGQ2trkFml0RoUfqkPOJVo7TXGrsGYYzdsugZRnVQY/WEmnxGtBy4T3PAaPqgQViA==} + '@oven/bun-windows-x64-baseline@1.3.5': + resolution: {integrity: sha512-rtVQB9/1XK8FWJgFtsOthbPifRMYypgJwxu+pK3NHx8WvFKmq7HcPDqNr8xLzGULjQEO7eAo2aOZfONOwYz+5g==} cpu: [x64] os: [win32] - '@oven/bun-windows-x64@1.3.3': - resolution: {integrity: sha512-kWqa1LKvDdAIzyfHxo3zGz3HFWbFHDlrNK77hKjUN42ycikvZJ+SHSX76+1OW4G8wmLETX4Jj+4BM1y01DQRIQ==} + '@oven/bun-windows-x64@1.3.5': + resolution: {integrity: sha512-T3xkODItb/0ftQPFsZDc7EAX2D6A4TEazQ2YZyofZToO8Q7y8YT8ooWdhd0BQiTCd66uEvgE1DCZetynwg2IoA==} cpu: [x64] os: [win32] @@ -657,8 +657,8 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@trivago/prettier-plugin-sort-imports@6.0.0': - resolution: {integrity: sha512-Xarx55ow0R8oC7ViL5fPmDsg1EBa1dVhyZFVbFXNtPPJyW2w9bJADIla8YFSaNG9N06XfcklA9O9vmw4noNxkQ==} + '@trivago/prettier-plugin-sort-imports@6.0.2': + resolution: {integrity: sha512-3DgfkukFyC/sE/VuYjaUUWoFfuVjPK55vOFDsxD56XXynFMCZDYFogH2l/hDfOsQAm1myoU/1xByJ3tWqtulXA==} engines: {node: '>= 20'} peerDependencies: '@vue/compiler-sfc': 3.x @@ -676,8 +676,8 @@ packages: svelte: optional: true - '@types/bun@1.3.3': - resolution: {integrity: sha512-ogrKbJ2X5N0kWLLFKeytG0eHDleBYtngtlbu9cyBKFtNL3cnpDZkNdQj8flVf6WTZUX5ulI9AY1oa7ljhSrp+g==} + '@types/bun@1.3.5': + resolution: {integrity: sha512-RnygCqNrd3srIPEWBd5LFeUYG7plCoH2Yw9WaZGyNmdTEei+gWaHqydbaIRkIkcbXwhBT94q78QljxN0Sk838w==} '@types/conventional-commits-parser@5.0.2': resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==} @@ -691,69 +691,69 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@24.10.1': - resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} + '@types/node@24.10.7': + resolution: {integrity: sha512-+054pVMzVTmRQV8BhpGv3UyfZ2Llgl8rdpDTon+cUH9+na0ncBVXj3wTUKh14+Kiz18ziM3b4ikpP5/Pc0rQEQ==} '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@typescript-eslint/eslint-plugin@8.48.1': - resolution: {integrity: sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==} + '@typescript-eslint/eslint-plugin@8.52.0': + resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.48.1 + '@typescript-eslint/parser': ^8.52.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.48.1': - resolution: {integrity: sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==} + '@typescript-eslint/parser@8.52.0': + resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.48.1': - resolution: {integrity: sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==} + '@typescript-eslint/project-service@8.52.0': + resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.48.1': - resolution: {integrity: sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==} + '@typescript-eslint/scope-manager@8.52.0': + resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.48.1': - resolution: {integrity: sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==} + '@typescript-eslint/tsconfig-utils@8.52.0': + resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.48.1': - resolution: {integrity: sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==} + '@typescript-eslint/type-utils@8.52.0': + resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.48.1': - resolution: {integrity: sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==} + '@typescript-eslint/types@8.52.0': + resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.48.1': - resolution: {integrity: sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==} + '@typescript-eslint/typescript-estree@8.52.0': + resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.48.1': - resolution: {integrity: sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==} + '@typescript-eslint/utils@8.52.0': + resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.48.1': - resolution: {integrity: sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==} + '@typescript-eslint/visitor-keys@8.52.0': + resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} JSONStream@1.3.5: @@ -824,11 +824,11 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - bun-types@1.3.3: - resolution: {integrity: sha512-z3Xwlg7j2l9JY27x5Qn3Wlyos8YAp0kKRlrePAOjgjMGS5IG6E7Jnlx736vH9UVI4wUICwwhC9anYL++XeOgTQ==} + bun-types@1.3.5: + resolution: {integrity: sha512-inmAYe2PFLs0SUbFOWSVD24sg1jFlMPxOjOSSCYqUgn4Hsc3rDc7dFvfVYjFPNHtov6kgUeulV4SxbuIV/stPw==} - bun@1.3.3: - resolution: {integrity: sha512-2hJ4ocTZ634/Ptph4lysvO+LbbRZq8fzRvMwX0/CqaLBxrF2UB5D1LdMB8qGcdtCer4/VR9Bx5ORub0yn+yzmw==} + bun@1.3.5: + resolution: {integrity: sha512-c1YHIGUfgvYPJmLug5QiLzNWlX2Dg7X/67JWu1Va+AmMXNXzC/KQn2lgQ7rD+n1u1UqDpJMowVGGxTNpbPydNw==} cpu: [arm64, x64] os: [darwin, linux, win32] hasBin: true @@ -1002,13 +1002,13 @@ packages: eslint-parser-plain@0.1.1: resolution: {integrity: sha512-KRgd6wuxH4U8kczqPp+Oyk4irThIhHWxgFgLDtpgjUGVIS3wGrJntvZW/p6hHq1T4FOwnOtCNkvAI4Kr+mQ/Hw==} - eslint-plugin-format@1.1.0: - resolution: {integrity: sha512-zjGPZcftddkO9GydBwvTKBV4ICN6a++XK0zIPi3HZHlU8W9EaftTA3XAanJvGAXQUYEqAADtgQi08SX+afbPrg==} + eslint-plugin-format@1.2.0: + resolution: {integrity: sha512-46iOK4ROUPCEScJ29bWh5LFEkkbnap1LIFJG0sDjsCiNvM8zgY101Kk/OteZ1rpFf0nGxaRGkN6GAkGRE5BFZA==} peerDependencies: eslint: ^8.40.0 || ^9.0.0 - eslint-plugin-jest@29.2.1: - resolution: {integrity: sha512-0WLIezrIxitUGbjMIGwznVzSIp0uFJV0PZ2fiSvpyVcxe+QMXKUt7MRhUpzdbctnnLwiOTOFkACplgB0wAglFw==} + eslint-plugin-jest@29.12.1: + resolution: {integrity: sha512-Rxo7r4jSANMBkXLICJKS0gjacgyopfNAsoS0e3R9AHnjoKuQOaaPfmsDJPi8UWwygI099OV/K/JhpYRVkxD4AA==} engines: {node: ^20.12.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^8.0.0 @@ -1049,8 +1049,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.39.1: - resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1063,8 +1063,8 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -1152,38 +1152,38 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - git-cliff-darwin-arm64@2.10.1: - resolution: {integrity: sha512-ns0LnnUZNgVPoQf7HTQP9Clqo/YNtBQ2UIJMmppq350WuA0SWUq1oh/NtHAXc9iqsfZH+ZoI8NTH0KFjtRt/Uw==} + git-cliff-darwin-arm64@2.11.0: + resolution: {integrity: sha512-/DTHr4lbHSm8i+2lTQTO+2pwssFFRwtKCN6CWhf+TVLFtymyvAfum3CVBsDIbTKst1zNhpWRJr9QFGIJe+lcwA==} cpu: [arm64] os: [darwin] - git-cliff-darwin-x64@2.10.1: - resolution: {integrity: sha512-xrOQnUDYWLAAPKqJMRLp0mI1gCKy8eZv4I+qGyuddsXwljENT7TqGY+So0Ti8lWIrfnDSqGY3sVWuEON42RB7w==} + git-cliff-darwin-x64@2.11.0: + resolution: {integrity: sha512-CYx29B2vaarwwIkcGhnZYHyxGIWFxt3D6MyjmwbNpaqja3kf1UvkcV9j/qoj+S2k3R2Z8wM2Ets5JALr109x4Q==} cpu: [x64] os: [darwin] - git-cliff-linux-arm64@2.10.1: - resolution: {integrity: sha512-syLQBbE3sWphbpRDau6buf5fINtE8zKiuRW+Sq7hwtLGaA0pI3JiOaX+7WrzTfh7qtA8xalFYsURs6iT5D2lXw==} + git-cliff-linux-arm64@2.11.0: + resolution: {integrity: sha512-E2G+MNU/AmIiLOqtba5XkzwCaWSLKeX28Ghu9KYTbhgHxoz7w3Tq7wS4qwfaZBrRcBjNQ/xb58OEKtUCx8F2yA==} cpu: [arm64] os: [linux] - git-cliff-linux-x64@2.10.1: - resolution: {integrity: sha512-xIj9Img1uZguGnGCgMdWWNOjSlnUJAlbuFTsri/m8AKLX58A4iSUrxUC8Je5Cyy2FZcWj7UlzrxwR8u15ZDYrg==} + git-cliff-linux-x64@2.11.0: + resolution: {integrity: sha512-g3Dv1L5RQn8RLI8gEXtePqixQ436KQjjRgV6yCGP9d5GxLVK34pZ9DepoRJU6vt4oJNT96MaTRnp07/VjFEe6w==} cpu: [x64] os: [linux] - git-cliff-windows-arm64@2.10.1: - resolution: {integrity: sha512-0ytL9J0dkHi9M6yhNAIlezHvSERyVaG6XsXBrjdOP1ZhEMODauZXW/Ndsa73065TGPjtSdNrMkZCoZP6A8CyEQ==} + git-cliff-windows-arm64@2.11.0: + resolution: {integrity: sha512-2bDR8N7H5wsb2p8f8YONTblHwtAv+wbFKwkvEw3bFItXL9PpByiRi7se2oVUSEXzEuakQFCbEmwaemts5U5MGQ==} cpu: [arm64] os: [win32] - git-cliff-windows-x64@2.10.1: - resolution: {integrity: sha512-ux7qc+W/Vsw+QrqsCN/lIjSGWfsOloqlFy2JcHoAdOEEMGQ8sD/wMKNsO/PPz6UShiYvbFJpqPkKtP6BDaKJLQ==} + git-cliff-windows-x64@2.11.0: + resolution: {integrity: sha512-HN4tbKjHSTuaur3A5I0u+OnqMdDsc/oqGMMnITWTwxnI0hUFTdbbVWA3/GtyY8T9OYUFYugUXYovX1i4VUv7/w==} cpu: [x64] os: [win32] - git-cliff@2.10.1: - resolution: {integrity: sha512-KU/mmTBVJLxpLhJWa0AJetMXJVjkkMjWnqdxVlKEv+WeOwLXpKyrNd0Ep12+Cbsr1+uQhEQNmqUOHncG3QDL0g==} + git-cliff@2.11.0: + resolution: {integrity: sha512-BTr0THAxuPvYXmlCvQs7s6tNBo+1ruZVTM+ub2Rs80EeqhQeIX7Fa0legm4CMvv6h65E9nvD23K/QhneXumLaQ==} engines: {node: '>=18.19 || >=20.6 || >=21'} hasBin: true @@ -1208,9 +1208,6 @@ packages: resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -1366,8 +1363,8 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash-es@4.17.22: + resolution: {integrity: sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==} lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -1529,8 +1526,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} prettier@3.7.4: @@ -1590,8 +1587,8 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} - smol-toml@1.5.2: - resolution: {integrity: sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==} + smol-toml@1.6.0: + resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} engines: {node: '>= 18'} split2@4.2.0: @@ -1638,8 +1635,8 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-hyperlinks@4.3.0: - resolution: {integrity: sha512-i6sWEzuwadSlcr2mOnb0ktlIl+K5FVxsPXmoPfknDd2gyw4ZBIAZ5coc0NQzYqDdEYXMHy8NaY9rWwa1Q1myiQ==} + supports-hyperlinks@4.4.0: + resolution: {integrity: sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==} engines: {node: '>=20'} synckit@0.11.11: @@ -1665,8 +1662,8 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -1675,46 +1672,46 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turbo-darwin-64@2.6.3: - resolution: {integrity: sha512-BlJJDc1CQ7SK5Y5qnl7AzpkvKSnpkfPmnA+HeU/sgny3oHZckPV2776ebO2M33CYDSor7+8HQwaodY++IINhYg==} + turbo-darwin-64@2.7.3: + resolution: {integrity: sha512-aZHhvRiRHXbJw1EcEAq4aws1hsVVUZ9DPuSFaq9VVFAKCup7niIEwc22glxb7240yYEr1vLafdQ2U294Vcwz+w==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.6.3: - resolution: {integrity: sha512-MwVt7rBKiOK7zdYerenfCRTypefw4kZCue35IJga9CH1+S50+KTiCkT6LBqo0hHeoH2iKuI0ldTF2a0aB72z3w==} + turbo-darwin-arm64@2.7.3: + resolution: {integrity: sha512-CkVrHSq+Bnhl9sX2LQgqQYVfLTWC2gvI74C4758OmU0djfrssDKU9d4YQF0AYXXhIIRZipSXfxClQziIMD+EAg==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.6.3: - resolution: {integrity: sha512-cqpcw+dXxbnPtNnzeeSyWprjmuFVpHJqKcs7Jym5oXlu/ZcovEASUIUZVN3OGEM6Y/OTyyw0z09tOHNt5yBAVg==} + turbo-linux-64@2.7.3: + resolution: {integrity: sha512-GqDsCNnzzr89kMaLGpRALyigUklzgxIrSy2pHZVXyifgczvYPnLglex78Aj3T2gu+T3trPPH2iJ+pWucVOCC2Q==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.6.3: - resolution: {integrity: sha512-MterpZQmjXyr4uM7zOgFSFL3oRdNKeflY7nsjxJb2TklsYqiu3Z9pQ4zRVFFH8n0mLGna7MbQMZuKoWqqHb45w==} + turbo-linux-arm64@2.7.3: + resolution: {integrity: sha512-NdCDTfIcIo3dWjsiaAHlxu5gW61Ed/8maah1IAF/9E3EtX0aAHNiBMbuYLZaR4vRJ7BeVkYB6xKWRtdFLZ0y3g==} cpu: [arm64] os: [linux] - turbo-windows-64@2.6.3: - resolution: {integrity: sha512-biDU70v9dLwnBdLf+daoDlNJVvqOOP8YEjqNipBHzgclbQlXbsi6Gqqelp5er81Qo3BiRgmTNx79oaZQTPb07Q==} + turbo-windows-64@2.7.3: + resolution: {integrity: sha512-7bVvO987daXGSJVYBoG8R4Q+csT1pKIgLJYZevXRQ0Hqw0Vv4mKme/TOjYXs9Qb1xMKh51Tb3bXKDbd8/4G08g==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.6.3: - resolution: {integrity: sha512-dDHVKpSeukah3VsI/xMEKeTnV9V9cjlpFSUs4bmsUiLu3Yv2ENlgVEZv65wxbeE0bh0jjpmElDT+P1KaCxArQQ==} + turbo-windows-arm64@2.7.3: + resolution: {integrity: sha512-nTodweTbPmkvwMu/a55XvjMsPtuyUSC+sV7f/SR57K36rB2I0YG21qNETN+00LOTUW9B3omd8XkiXJkt4kx/cw==} cpu: [arm64] os: [win32] - turbo@2.6.3: - resolution: {integrity: sha512-bf6YKUv11l5Xfcmg76PyWoy/e2vbkkxFNBGJSnfdSXQC33ZiUfutYh6IXidc5MhsnrFkWfdNNLyaRk+kHMLlwA==} + turbo@2.7.3: + resolution: {integrity: sha512-+HjKlP4OfYk+qzvWNETA3cUO5UuK6b5MSc2UJOKyvBceKucQoQGb2g7HlC2H1GHdkfKrk4YF1VPvROkhVZDDLQ==} hasBin: true type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.48.1: - resolution: {integrity: sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==} + typescript-eslint@8.52.0: + resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1878,32 +1875,32 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@commitlint/cli@20.2.0(@types/node@24.10.1)(typescript@5.9.3)': + '@commitlint/cli@20.3.1(@types/node@24.10.7)(typescript@5.9.3)': dependencies: - '@commitlint/format': 20.2.0 - '@commitlint/lint': 20.2.0 - '@commitlint/load': 20.2.0(@types/node@24.10.1)(typescript@5.9.3) - '@commitlint/read': 20.2.0 - '@commitlint/types': 20.2.0 + '@commitlint/format': 20.3.1 + '@commitlint/lint': 20.3.1 + '@commitlint/load': 20.3.1(@types/node@24.10.7)(typescript@5.9.3) + '@commitlint/read': 20.3.1 + '@commitlint/types': 20.3.1 tinyexec: 1.0.2 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - typescript - '@commitlint/config-conventional@20.2.0': + '@commitlint/config-conventional@20.3.1': dependencies: - '@commitlint/types': 20.2.0 + '@commitlint/types': 20.3.1 conventional-changelog-conventionalcommits: 7.0.2 - '@commitlint/config-validator@20.2.0': + '@commitlint/config-validator@20.3.1': dependencies: - '@commitlint/types': 20.2.0 + '@commitlint/types': 20.3.1 ajv: 8.17.1 - '@commitlint/ensure@20.2.0': + '@commitlint/ensure@20.3.1': dependencies: - '@commitlint/types': 20.2.0 + '@commitlint/types': 20.3.1 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 @@ -1912,32 +1909,32 @@ snapshots: '@commitlint/execute-rule@20.0.0': {} - '@commitlint/format@20.2.0': + '@commitlint/format@20.3.1': dependencies: - '@commitlint/types': 20.2.0 + '@commitlint/types': 20.3.1 chalk: 5.6.2 - '@commitlint/is-ignored@20.2.0': + '@commitlint/is-ignored@20.3.1': dependencies: - '@commitlint/types': 20.2.0 + '@commitlint/types': 20.3.1 semver: 7.7.3 - '@commitlint/lint@20.2.0': + '@commitlint/lint@20.3.1': dependencies: - '@commitlint/is-ignored': 20.2.0 - '@commitlint/parse': 20.2.0 - '@commitlint/rules': 20.2.0 - '@commitlint/types': 20.2.0 + '@commitlint/is-ignored': 20.3.1 + '@commitlint/parse': 20.3.1 + '@commitlint/rules': 20.3.1 + '@commitlint/types': 20.3.1 - '@commitlint/load@20.2.0(@types/node@24.10.1)(typescript@5.9.3)': + '@commitlint/load@20.3.1(@types/node@24.10.7)(typescript@5.9.3)': dependencies: - '@commitlint/config-validator': 20.2.0 + '@commitlint/config-validator': 20.3.1 '@commitlint/execute-rule': 20.0.0 - '@commitlint/resolve-extends': 20.2.0 - '@commitlint/types': 20.2.0 + '@commitlint/resolve-extends': 20.3.1 + '@commitlint/types': 20.3.1 chalk: 5.6.2 cosmiconfig: 9.0.0(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.2.0(@types/node@24.10.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.2.0(@types/node@24.10.7)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -1947,35 +1944,35 @@ snapshots: '@commitlint/message@20.0.0': {} - '@commitlint/parse@20.2.0': + '@commitlint/parse@20.3.1': dependencies: - '@commitlint/types': 20.2.0 + '@commitlint/types': 20.3.1 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 - '@commitlint/read@20.2.0': + '@commitlint/read@20.3.1': dependencies: '@commitlint/top-level': 20.0.0 - '@commitlint/types': 20.2.0 + '@commitlint/types': 20.3.1 git-raw-commits: 4.0.0 minimist: 1.2.8 tinyexec: 1.0.2 - '@commitlint/resolve-extends@20.2.0': + '@commitlint/resolve-extends@20.3.1': dependencies: - '@commitlint/config-validator': 20.2.0 - '@commitlint/types': 20.2.0 + '@commitlint/config-validator': 20.3.1 + '@commitlint/types': 20.3.1 global-directory: 4.0.1 import-meta-resolve: 4.2.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - '@commitlint/rules@20.2.0': + '@commitlint/rules@20.3.1': dependencies: - '@commitlint/ensure': 20.2.0 + '@commitlint/ensure': 20.3.1 '@commitlint/message': 20.0.0 '@commitlint/to-lines': 20.0.0 - '@commitlint/types': 20.2.0 + '@commitlint/types': 20.3.1 '@commitlint/to-lines@20.0.0': {} @@ -1983,7 +1980,7 @@ snapshots: dependencies: find-up: 7.0.0 - '@commitlint/types@20.2.0': + '@commitlint/types@20.3.1': dependencies: '@types/conventional-commits-parser': 5.0.2 chalk: 5.6.2 @@ -1996,15 +1993,15 @@ snapshots: conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.2.1 - '@dprint/formatter@0.3.0': {} + '@dprint/formatter@0.4.1': {} - '@dprint/markdown@0.17.8': {} + '@dprint/markdown@0.20.0': {} - '@dprint/toml@0.6.4': {} + '@dprint/toml@0.7.0': {} - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -2039,7 +2036,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.39.1': {} + '@eslint/js@9.39.2': {} '@eslint/object-schema@2.1.7': {} @@ -2062,10 +2059,10 @@ snapshots: commander: 13.1.0 conventional-recommended-bump: 10.0.0 execa: 9.6.1 - git-cliff: 2.10.1 + git-cliff: 2.11.0 js-yaml: 4.1.1 semver: 7.7.3 - smol-toml: 1.5.2 + smol-toml: 1.6.0 '@favware/colorette-spinner@1.0.1': dependencies: @@ -2118,11 +2115,26 @@ snapshots: '@actions/github': 6.0.1 commander: 14.0.2 - '@nanoforge-dev/loader-website@1.0.0': {} + '@nanoforge-dev/loader-website@1.1.0': {} - '@nanoforge-dev/utils-eslint-config@1.0.0': {} + '@nanoforge-dev/utils-eslint-config@1.0.1(@types/eslint@9.6.1)(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4)(typescript@5.9.3)': + dependencies: + '@eslint/js': 9.39.2 + '@favware/cliff-jumper': 6.0.0 + eslint-config-prettier: 10.1.8(eslint@9.39.2(jiti@2.6.1)) + eslint-formatter-pretty: 7.0.0 + eslint-plugin-format: 1.2.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-prettier: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4) + globals: 16.5.0 + typescript-eslint: 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + transitivePeerDependencies: + - '@types/eslint' + - eslint + - prettier + - supports-color + - typescript - '@nanoforge-dev/utils-prettier-config@1.0.0': {} + '@nanoforge-dev/utils-prettier-config@1.0.1': {} '@octokit/auth-token@4.0.0': {} @@ -2230,37 +2242,37 @@ snapshots: dependencies: '@octokit/openapi-types': 25.1.0 - '@oven/bun-darwin-aarch64@1.3.3': + '@oven/bun-darwin-aarch64@1.3.5': optional: true - '@oven/bun-darwin-x64-baseline@1.3.3': + '@oven/bun-darwin-x64-baseline@1.3.5': optional: true - '@oven/bun-darwin-x64@1.3.3': + '@oven/bun-darwin-x64@1.3.5': optional: true - '@oven/bun-linux-aarch64-musl@1.3.3': + '@oven/bun-linux-aarch64-musl@1.3.5': optional: true - '@oven/bun-linux-aarch64@1.3.3': + '@oven/bun-linux-aarch64@1.3.5': optional: true - '@oven/bun-linux-x64-baseline@1.3.3': + '@oven/bun-linux-x64-baseline@1.3.5': optional: true - '@oven/bun-linux-x64-musl-baseline@1.3.3': + '@oven/bun-linux-x64-musl-baseline@1.3.5': optional: true - '@oven/bun-linux-x64-musl@1.3.3': + '@oven/bun-linux-x64-musl@1.3.5': optional: true - '@oven/bun-linux-x64@1.3.3': + '@oven/bun-linux-x64@1.3.5': optional: true - '@oven/bun-windows-x64-baseline@1.3.3': + '@oven/bun-windows-x64-baseline@1.3.5': optional: true - '@oven/bun-windows-x64@1.3.3': + '@oven/bun-windows-x64@1.3.5': optional: true '@pkgr/core@0.2.9': {} @@ -2273,27 +2285,27 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@trivago/prettier-plugin-sort-imports@6.0.0(prettier@3.7.4)': + '@trivago/prettier-plugin-sort-imports@6.0.2(prettier@3.7.4)': dependencies: '@babel/generator': 7.28.5 '@babel/parser': 7.28.5 '@babel/traverse': 7.28.5 '@babel/types': 7.28.5 javascript-natural-sort: 0.7.1 - lodash-es: 4.17.21 + lodash-es: 4.17.22 minimatch: 9.0.5 parse-imports-exports: 0.2.4 prettier: 3.7.4 transitivePeerDependencies: - supports-color - '@types/bun@1.3.3': + '@types/bun@1.3.5': dependencies: - bun-types: 1.3.3 + bun-types: 1.3.5 '@types/conventional-commits-parser@5.0.2': dependencies: - '@types/node': 24.10.1 + '@types/node': 24.10.7 '@types/eslint@9.6.1': dependencies: @@ -2304,102 +2316,101 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@24.10.1': + '@types/node@24.10.7': dependencies: undici-types: 7.16.0 '@types/semver@7.7.1': {} - '@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.48.1 - '@typescript-eslint/type-utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.48.1 - eslint: 9.39.1(jiti@2.6.1) - graphemer: 1.4.0 + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/type-utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.52.0 + eslint: 9.39.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.3) + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.48.1 - '@typescript-eslint/types': 8.48.1 - '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.48.1 + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.52.0 debug: 4.4.3 - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.48.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.52.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.9.3) - '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) + '@typescript-eslint/types': 8.52.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.48.1': + '@typescript-eslint/scope-manager@8.52.0': dependencies: - '@typescript-eslint/types': 8.48.1 - '@typescript-eslint/visitor-keys': 8.48.1 + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/visitor-keys': 8.52.0 - '@typescript-eslint/tsconfig-utils@8.48.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.48.1 - '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 9.39.1(jiti@2.6.1) - ts-api-utils: 2.1.0(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.48.1': {} + '@typescript-eslint/types@8.52.0': {} - '@typescript-eslint/typescript-estree@8.48.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.48.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.9.3) - '@typescript-eslint/types': 8.48.1 - '@typescript-eslint/visitor-keys': 8.48.1 + '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/visitor-keys': 8.52.0 debug: 4.4.3 minimatch: 9.0.5 semver: 7.7.3 tinyglobby: 0.2.15 - ts-api-utils: 2.1.0(typescript@5.9.3) + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.48.1 - '@typescript-eslint/types': 8.48.1 - '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.48.1': + '@typescript-eslint/visitor-keys@8.52.0': dependencies: - '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/types': 8.52.0 eslint-visitor-keys: 4.2.1 JSONStream@1.3.5: @@ -2466,23 +2477,23 @@ snapshots: dependencies: fill-range: 7.1.1 - bun-types@1.3.3: + bun-types@1.3.5: dependencies: - '@types/node': 24.10.1 + '@types/node': 24.10.7 - bun@1.3.3: + bun@1.3.5: optionalDependencies: - '@oven/bun-darwin-aarch64': 1.3.3 - '@oven/bun-darwin-x64': 1.3.3 - '@oven/bun-darwin-x64-baseline': 1.3.3 - '@oven/bun-linux-aarch64': 1.3.3 - '@oven/bun-linux-aarch64-musl': 1.3.3 - '@oven/bun-linux-x64': 1.3.3 - '@oven/bun-linux-x64-baseline': 1.3.3 - '@oven/bun-linux-x64-musl': 1.3.3 - '@oven/bun-linux-x64-musl-baseline': 1.3.3 - '@oven/bun-windows-x64': 1.3.3 - '@oven/bun-windows-x64-baseline': 1.3.3 + '@oven/bun-darwin-aarch64': 1.3.5 + '@oven/bun-darwin-x64': 1.3.5 + '@oven/bun-darwin-x64-baseline': 1.3.5 + '@oven/bun-linux-aarch64': 1.3.5 + '@oven/bun-linux-aarch64-musl': 1.3.5 + '@oven/bun-linux-x64': 1.3.5 + '@oven/bun-linux-x64-baseline': 1.3.5 + '@oven/bun-linux-x64-musl': 1.3.5 + '@oven/bun-linux-x64-musl-baseline': 1.3.5 + '@oven/bun-windows-x64': 1.3.5 + '@oven/bun-windows-x64-baseline': 1.3.5 callsites@3.1.0: {} @@ -2558,9 +2569,9 @@ snapshots: conventional-commits-parser: 6.2.1 meow: 13.2.0 - cosmiconfig-typescript-loader@6.2.0(@types/node@24.10.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): + cosmiconfig-typescript-loader@6.2.0(@types/node@24.10.7)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: - '@types/node': 24.10.1 + '@types/node': 24.10.7 cosmiconfig: 9.0.0(typescript@5.9.3) jiti: 2.6.1 typescript: 5.9.3 @@ -2612,9 +2623,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)): + eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) eslint-formatter-pretty@7.0.0: dependencies: @@ -2625,45 +2636,45 @@ snapshots: log-symbols: 7.0.1 plur: 5.1.0 string-width: 8.1.0 - supports-hyperlinks: 4.3.0 + supports-hyperlinks: 4.4.0 - eslint-formatting-reporter@0.0.0(eslint@9.39.1(jiti@2.6.1)): + eslint-formatting-reporter@0.0.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) - prettier-linter-helpers: 1.0.0 + eslint: 9.39.2(jiti@2.6.1) + prettier-linter-helpers: 1.0.1 eslint-parser-plain@0.1.1: {} - eslint-plugin-format@1.1.0(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-format@1.2.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@dprint/formatter': 0.3.0 - '@dprint/markdown': 0.17.8 - '@dprint/toml': 0.6.4 - eslint: 9.39.1(jiti@2.6.1) - eslint-formatting-reporter: 0.0.0(eslint@9.39.1(jiti@2.6.1)) + '@dprint/formatter': 0.4.1 + '@dprint/markdown': 0.20.0 + '@dprint/toml': 0.7.0 + eslint: 9.39.2(jiti@2.6.1) + eslint-formatting-reporter: 0.0.0(eslint@9.39.2(jiti@2.6.1)) eslint-parser-plain: 0.1.1 prettier: 3.7.4 synckit: 0.11.11 - eslint-plugin-jest@29.2.1(@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-jest@29.12.1(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4): + eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.7.4): dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.39.2(jiti@2.6.1) prettier: 3.7.4 - prettier-linter-helpers: 1.0.0 + prettier-linter-helpers: 1.0.1 synckit: 0.11.11 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@9.39.1(jiti@2.6.1)) + eslint-config-prettier: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-rule-docs@1.1.235: {} @@ -2676,15 +2687,15 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.39.1(jiti@2.6.1): + eslint@9.39.2(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 '@eslint/eslintrc': 3.3.3 - '@eslint/js': 9.39.1 + '@eslint/js': 9.39.2 '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 @@ -2698,7 +2709,7 @@ snapshots: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 - esquery: 1.6.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -2723,7 +2734,7 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -2807,34 +2818,34 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - git-cliff-darwin-arm64@2.10.1: + git-cliff-darwin-arm64@2.11.0: optional: true - git-cliff-darwin-x64@2.10.1: + git-cliff-darwin-x64@2.11.0: optional: true - git-cliff-linux-arm64@2.10.1: + git-cliff-linux-arm64@2.11.0: optional: true - git-cliff-linux-x64@2.10.1: + git-cliff-linux-x64@2.11.0: optional: true - git-cliff-windows-arm64@2.10.1: + git-cliff-windows-arm64@2.11.0: optional: true - git-cliff-windows-x64@2.10.1: + git-cliff-windows-x64@2.11.0: optional: true - git-cliff@2.10.1: + git-cliff@2.11.0: dependencies: execa: 9.6.1 optionalDependencies: - git-cliff-darwin-arm64: 2.10.1 - git-cliff-darwin-x64: 2.10.1 - git-cliff-linux-arm64: 2.10.1 - git-cliff-linux-x64: 2.10.1 - git-cliff-windows-arm64: 2.10.1 - git-cliff-windows-x64: 2.10.1 + git-cliff-darwin-arm64: 2.11.0 + git-cliff-darwin-x64: 2.11.0 + git-cliff-linux-arm64: 2.11.0 + git-cliff-linux-x64: 2.11.0 + git-cliff-windows-arm64: 2.11.0 + git-cliff-windows-x64: 2.11.0 git-raw-commits@4.0.0: dependencies: @@ -2854,8 +2865,6 @@ snapshots: globals@16.5.0: {} - graphemer@1.4.0: {} - has-flag@4.0.0: {} has-flag@5.0.1: {} @@ -2973,7 +2982,7 @@ snapshots: dependencies: p-locate: 6.0.0 - lodash-es@4.17.21: {} + lodash-es@4.17.22: {} lodash.camelcase@4.3.0: {} @@ -3112,7 +3121,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: + prettier-linter-helpers@1.0.1: dependencies: fast-diff: 1.3.0 @@ -3154,7 +3163,7 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 - smol-toml@1.5.2: {} + smol-toml@1.6.0: {} split2@4.2.0: {} @@ -3195,7 +3204,7 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@4.3.0: + supports-hyperlinks@4.4.0: dependencies: has-flag: 5.0.1 supports-color: 10.2.2 @@ -3219,50 +3228,50 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@2.1.0(typescript@5.9.3): + ts-api-utils@2.4.0(typescript@5.9.3): dependencies: typescript: 5.9.3 tunnel@0.0.6: {} - turbo-darwin-64@2.6.3: + turbo-darwin-64@2.7.3: optional: true - turbo-darwin-arm64@2.6.3: + turbo-darwin-arm64@2.7.3: optional: true - turbo-linux-64@2.6.3: + turbo-linux-64@2.7.3: optional: true - turbo-linux-arm64@2.6.3: + turbo-linux-arm64@2.7.3: optional: true - turbo-windows-64@2.6.3: + turbo-windows-64@2.7.3: optional: true - turbo-windows-arm64@2.6.3: + turbo-windows-arm64@2.7.3: optional: true - turbo@2.6.3: + turbo@2.7.3: optionalDependencies: - turbo-darwin-64: 2.6.3 - turbo-darwin-arm64: 2.6.3 - turbo-linux-64: 2.6.3 - turbo-linux-arm64: 2.6.3 - turbo-windows-64: 2.6.3 - turbo-windows-arm64: 2.6.3 + turbo-darwin-64: 2.7.3 + turbo-darwin-arm64: 2.7.3 + turbo-linux-64: 2.7.3 + turbo-linux-arm64: 2.7.3 + turbo-windows-64: 2.7.3 + turbo-windows-arm64: 2.7.3 type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color