Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
Update dependencies
Sebastian Martinez committed 11 months ago
commit 2c362adffb2d1169683c02ba82fbc2f8a0927019
parent 14f3c6f
19 files changed +1188 -886
modified eslint.config.js
@@ -129,6 +129,7 @@ export default [
    },
    rules: {
      "svelte/no-at-html-tags": "off",
+
      "svelte/require-each-key": "off",
      "@typescript-eslint/no-explicit-any": "error",
    },
  },
modified http-client/index.ts
@@ -40,7 +40,7 @@ import type {
import type { RequestOptions } from "./lib/fetcher.js";
import type { ZodSchema } from "zod";

-
import { z, array, literal, number, object, string, union } from "zod";
+
import * as z from "zod";

import * as repo from "./lib/repo.js";
import { Fetcher } from "./lib/fetcher.js";
@@ -89,45 +89,45 @@ export type {

export type Node = z.infer<typeof nodeSchema>;

-
const nodeSchema = object({
-
  id: string(),
-
  agent: string(),
+
const nodeSchema = z.object({
+
  id: z.string(),
+
  agent: z.string(),
  config: nodeConfigSchema.nullable(),
-
  state: union([literal("running"), literal("stopped")]),
-
  avatarUrl: string().optional(),
-
  bannerUrl: string().optional(),
-
  description: string().optional(),
+
  state: z.union([z.literal("running"), z.literal("stopped")]),
+
  avatarUrl: z.string().optional(),
+
  bannerUrl: z.string().optional(),
+
  description: z.string().optional(),
});

export type NodeIdentity = z.infer<typeof nodeIdentitySchema>;

-
const nodeIdentitySchema = object({
-
  alias: string().nullable(),
-
  did: string(),
-
  ssh: object({
-
    full: string(),
-
    hash: string(),
+
const nodeIdentitySchema = z.object({
+
  alias: z.string().nullable(),
+
  did: z.string(),
+
  ssh: z.object({
+
    full: z.string(),
+
    hash: z.string(),
  }),
});

export type NodeInfo = z.infer<typeof nodeInfoSchema>;

-
const nodeInfoSchema = object({
-
  message: string(),
-
  service: string(),
-
  version: string(),
-
  apiVersion: string(),
-
  nid: string(),
-
  path: string(),
-
  links: array(
-
    object({
-
      href: string(),
-
      rel: string(),
-
      type: union([
-
        literal("GET"),
-
        literal("POST"),
-
        literal("PUT"),
-
        literal("DELETE"),
+
const nodeInfoSchema = z.object({
+
  message: z.string(),
+
  service: z.string(),
+
  version: z.string(),
+
  apiVersion: z.string(),
+
  nid: z.string(),
+
  path: z.string(),
+
  links: z.array(
+
    z.object({
+
      href: z.string(),
+
      rel: z.string(),
+
      type: z.union([
+
        z.literal("GET"),
+
        z.literal("POST"),
+
        z.literal("PUT"),
+
        z.literal("DELETE"),
      ]),
    }),
  ),
@@ -135,12 +135,12 @@ const nodeInfoSchema = object({

export type NodePolicies = z.infer<typeof nodePoliciesSchema>;

-
const nodePoliciesSchema = object({
-
  rid: string(),
-
  policy: union([
-
    object({ policy: literal("block") }),
-
    object({
-
      policy: literal("allow"),
+
const nodePoliciesSchema = z.object({
+
  rid: z.string(),
+
  policy: z.union([
+
    z.object({ policy: z.literal("block") }),
+
    z.object({
+
      policy: z.literal("allow"),
      scope: scopeSchema,
    }),
  ]),
@@ -150,8 +150,8 @@ export interface NodeStats {
  repos: { total: number };
}

-
const nodeStatsSchema = object({
-
  repos: object({ total: number() }),
+
const nodeStatsSchema = z.object({
+
  repos: z.object({ total: z.number() }),
}) satisfies ZodSchema<NodeStats>;

export class HttpdClient {
@@ -211,7 +211,7 @@ export class HttpdClient {
        path: "node/policies/repos",
        options,
      },
-
      array(nodePoliciesSchema),
+
      z.array(nodePoliciesSchema),
    );
  }

@@ -264,7 +264,7 @@ export class HttpdClient {
        path: `nodes/${nid}/inventory`,
        options,
      },
-
      array(string()),
+
      z.array(z.string()),
    );
  }
}
modified http-client/lib/repo/comment.ts
@@ -1,27 +1,28 @@
-
import type { z } from "zod";
-
import { array, boolean, number, object, string } from "zod";
+
import * as z from "zod";
import { authorSchema, codeLocationSchema } from "../shared";

export type Comment = z.infer<typeof commentSchema>;
export type Embed = Comment["embeds"][0];
export type Reaction = Comment["reactions"][0];

-
export const commentSchema = object({
-
  id: string(),
+
export const commentSchema = z.object({
+
  id: z.string(),
  author: authorSchema,
-
  body: string(),
-
  edits: array(
-
    object({
+
  body: z.string(),
+
  edits: z.array(
+
    z.object({
      author: authorSchema,
-
      body: string(),
-
      embeds: array(object({ name: string(), content: string() })),
-
      timestamp: number(),
+
      body: z.string(),
+
      embeds: z.array(z.object({ name: z.string(), content: z.string() })),
+
      timestamp: z.number(),
    }),
  ),
-
  embeds: array(object({ name: string(), content: string() })),
-
  reactions: array(object({ emoji: string(), authors: array(authorSchema) })),
-
  timestamp: number(),
+
  embeds: z.array(z.object({ name: z.string(), content: z.string() })),
+
  reactions: z.array(
+
    z.object({ emoji: z.string(), authors: z.array(authorSchema) }),
+
  ),
+
  timestamp: z.number(),
  location: codeLocationSchema.nullable().optional(),
-
  resolved: boolean(),
-
  replyTo: string().nullable(),
+
  resolved: z.boolean(),
+
  replyTo: z.string().nullable(),
});
modified http-client/lib/repo/issue.ts
@@ -1,5 +1,5 @@
-
import type { ZodSchema, z } from "zod";
-
import { array, literal, object, string, union } from "zod";
+
import type { ZodSchema } from "zod";
+
import * as z from "zod";

import { commentSchema } from "./comment.js";
import { authorSchema } from "../shared.js";
@@ -8,24 +8,24 @@ export type IssueState =
  | { status: "open" }
  | { status: "closed"; reason: "other" | "solved" };

-
const issueStateSchema = union([
-
  object({ status: literal("open") }),
-
  object({
-
    status: literal("closed"),
-
    reason: union([literal("other"), literal("solved")]),
+
const issueStateSchema = z.union([
+
  z.object({ status: z.literal("open") }),
+
  z.object({
+
    status: z.literal("closed"),
+
    reason: z.union([z.literal("other"), z.literal("solved")]),
  }),
]) satisfies ZodSchema<IssueState>;

-
export const issueSchema = object({
-
  id: string(),
+
export const issueSchema = z.object({
+
  id: z.string(),
  author: authorSchema,
-
  title: string(),
+
  title: z.string(),
  state: issueStateSchema,
-
  discussion: array(commentSchema),
-
  labels: array(string()),
-
  assignees: array(authorSchema),
+
  discussion: z.array(commentSchema),
+
  labels: z.array(z.string()),
+
  assignees: z.array(authorSchema),
});

export type Issue = z.infer<typeof issueSchema>;

-
export const issuesSchema = array(issueSchema) satisfies ZodSchema<Issue[]>;
+
export const issuesSchema = z.array(issueSchema) satisfies ZodSchema<Issue[]>;
modified http-client/lib/shared.ts
@@ -1,125 +1,125 @@
-
import type { z } from "zod";
+
import * as z from "zod";

-
import { array, boolean, literal, number, object, string, union } from "zod";
+
export const scopeSchema = z.union([z.literal("followed"), z.literal("all")]);

-
export const scopeSchema = union([literal("followed"), literal("all")]);
-

-
export const seedingPolicySchema = union([
-
  object({
-
    policy: literal("block"),
+
export const seedingPolicySchema = z.union([
+
  z.object({
+
    policy: z.literal("block"),
  }),
-
  object({
-
    policy: literal("allow"),
+
  z.object({
+
    policy: z.literal("allow"),
    scope: scopeSchema,
  }),
]);

export type SeedingPolicy = z.infer<typeof seedingPolicySchema>;

-
const defaultSeedingPolicySchema = union([
-
  object({
-
    default: literal("block"),
+
const defaultSeedingPolicySchema = z.union([
+
  z.object({
+
    default: z.literal("block"),
  }),
-
  object({
-
    default: literal("allow"),
+
  z.object({
+
    default: z.literal("allow"),
    scope: scopeSchema,
  }),
]);

-
export const nodeConfigSchema = object({
-
  alias: string(),
-
  peers: union([
-
    object({ type: literal("static") }),
-
    object({ type: literal("dynamic") }),
+
export const nodeConfigSchema = z.object({
+
  alias: z.string(),
+
  peers: z.union([
+
    z.object({ type: z.literal("static") }),
+
    z.object({ type: z.literal("dynamic") }),
  ]),
-
  listen: array(string()),
-
  connect: array(string()),
-
  externalAddresses: array(string()),
-
  proxy: string().optional(),
-
  onion: union([
-
    object({
-
      mode: literal("proxy"),
-
      address: string(),
-
    }),
-
    object({ mode: literal("forward") }),
-
  ]).optional(),
-
  log: union([
-
    literal("ERROR"),
-
    literal("WARN"),
-
    literal("INFO"),
-
    literal("DEBUG"),
-
    literal("TRACE"),
+
  listen: z.array(z.string()),
+
  connect: z.array(z.string()),
+
  externalAddresses: z.array(z.string()),
+
  proxy: z.string().optional(),
+
  onion: z
+
    .union([
+
      z.object({
+
        mode: z.literal("proxy"),
+
        address: z.string(),
+
      }),
+
      z.object({ mode: z.literal("forward") }),
+
    ])
+
    .optional(),
+
  log: z.union([
+
    z.literal("ERROR"),
+
    z.literal("WARN"),
+
    z.literal("INFO"),
+
    z.literal("DEBUG"),
+
    z.literal("TRACE"),
  ]),
-
  network: union([literal("main"), literal("test")]),
-
  relay: union([literal("always"), literal("never"), literal("auto")]),
-
  limits: object({
-
    routingMaxSize: number(),
-
    routingMaxAge: number(),
-
    fetchConcurrency: number(),
-
    gossipMaxAge: number(),
-
    maxOpenFiles: number(),
-
    rate: object({
-
      inbound: object({
-
        fillRate: number(),
-
        capacity: number(),
+
  network: z.union([z.literal("main"), z.literal("test")]),
+
  relay: z.union([z.literal("always"), z.literal("never"), z.literal("auto")]),
+
  limits: z.object({
+
    routingMaxSize: z.number(),
+
    routingMaxAge: z.number(),
+
    fetchConcurrency: z.number(),
+
    gossipMaxAge: z.number(),
+
    maxOpenFiles: z.number(),
+
    rate: z.object({
+
      inbound: z.object({
+
        fillRate: z.number(),
+
        capacity: z.number(),
      }),
-
      outbound: object({
-
        fillRate: number(),
-
        capacity: number(),
+
      outbound: z.object({
+
        fillRate: z.number(),
+
        capacity: z.number(),
      }),
    }),
-
    connection: object({
-
      inbound: number(),
-
      outbound: number(),
+
    connection: z.object({
+
      inbound: z.number(),
+
      outbound: z.number(),
    }),
  }),
-
  workers: number(),
+
  workers: z.number(),
  seedingPolicy: defaultSeedingPolicySchema,
});

export type DefaultSeedingPolicy = z.infer<typeof defaultSeedingPolicySchema>;

-
export const configSchema = object({
-
  publicExplorer: string(),
-
  preferredSeeds: array(string()),
-
  cli: object({ hints: boolean() }),
-
  web: object({
-
    pinned: object({
-
      repositories: array(string()),
+
export const configSchema = z.object({
+
  publicExplorer: z.string(),
+
  preferredSeeds: z.array(z.string()),
+
  cli: z.object({ hints: z.boolean() }),
+
  web: z.object({
+
    pinned: z.object({
+
      repositories: z.array(z.string()),
    }),
-
    bannerUrl: string().optional(),
-
    avatarUrl: string().optional(),
-
    description: string().optional(),
+
    bannerUrl: z.string().optional(),
+
    avatarUrl: z.string().optional(),
+
    description: z.string().optional(),
  }),
  node: nodeConfigSchema,
});

export type Config = z.infer<typeof configSchema>;

-
export const rangeSchema = union([
-
  object({
-
    type: literal("lines"),
-
    range: object({ start: number(), end: number() }),
+
export const rangeSchema = z.union([
+
  z.object({
+
    type: z.literal("lines"),
+
    range: z.object({ start: z.number(), end: z.number() }),
  }),
-
  object({
-
    type: literal("chars"),
-
    line: number(),
-
    range: object({ start: number(), end: number() }),
+
  z.object({
+
    type: z.literal("chars"),
+
    line: z.number(),
+
    range: z.object({ start: z.number(), end: z.number() }),
  }),
]);

export type Range = z.infer<typeof rangeSchema>;

-
export const codeLocationSchema = object({
-
  commit: string(),
-
  path: string(),
+
export const codeLocationSchema = z.object({
+
  commit: z.string(),
+
  path: z.string(),
  old: rangeSchema.optional(),
  new: rangeSchema.optional(),
});

export type Author = z.infer<typeof authorSchema>;

-
export const authorSchema = object({
-
  id: string(),
-
  alias: string().optional(),
+
export const authorSchema = z.object({
+
  id: z.string(),
+
  alias: z.string().optional(),
});
modified package-lock.json
@@ -10,59 +10,59 @@
      "hasInstallScript": true,
      "dependencies": {
        "@radicle/gray-matter": "4.1.0",
-
        "@wooorm/starry-night": "^3.6.0",
+
        "@wooorm/starry-night": "^3.7.0",
        "async-mutex": "^0.5.0",
-
        "baconjs": "^3.0.19",
+
        "baconjs": "^3.0.23",
        "bs58": "^6.0.0",
        "buffer": "^6.0.3",
        "compare-versions": "^6.1.1",
-
        "dompurify": "^3.2.4",
+
        "dompurify": "^3.2.6",
        "fuzzysort": "^3.1.0",
-
        "hast-util-to-dom": "^4.0.0",
-
        "hast-util-to-html": "^9.0.4",
+
        "hast-util-to-dom": "^4.0.1",
+
        "hast-util-to-html": "^9.0.5",
        "lodash": "^4.17.21",
-
        "lru-cache": "^11.0.2",
-
        "marked": "^15.0.6",
-
        "marked-emoji": "^1.4.3",
+
        "lru-cache": "^11.1.0",
+
        "marked": "^15.0.12",
+
        "marked-emoji": "^2.0.0",
        "marked-footnote": "^1.2.4",
        "marked-katex-extension": "^5.1.4",
        "marked-linkify-it": "^3.1.12",
        "md5": "^2.3.0",
-
        "svelte": "^5.19.6",
+
        "svelte": "^5.30.0",
        "twemoji": "^14.0.2",
-
        "zod": "^3.24.1"
+
        "zod": "^3.25.16"
      },
      "devDependencies": {
-
        "@eslint/js": "^9.19.0",
-
        "@playwright/test": "^1.50.1",
-
        "@sveltejs/vite-plugin-svelte": "^4.0.4",
+
        "@eslint/js": "^9.27.0",
+
        "@playwright/test": "^1.52.0",
+
        "@sveltejs/vite-plugin-svelte": "^5.0.3",
        "@tsconfig/svelte": "^5.0.4",
        "@types/config": "^3.3.5",
        "@types/katex": "^0.16.7",
-
        "@types/lodash": "^4.17.15",
+
        "@types/lodash": "^4.17.17",
        "@types/md5": "^2.3.5",
-
        "@types/node": "^20.14.12",
+
        "@types/node": "^22.15.21",
        "@types/wait-on": "^5.3.4",
-
        "@typescript-eslint/parser": "^8.22.0",
+
        "@typescript-eslint/parser": "^8.32.1",
        "chalk": "^5.4.1",
-
        "config": "^3.3.12",
-
        "eslint": "^9.19.0",
-
        "eslint-config-prettier": "^10.0.1",
-
        "eslint-plugin-svelte": "^2.46.1",
-
        "execa": "^9.5.2",
+
        "config": "^4.0.0",
+
        "eslint": "^9.27.0",
+
        "eslint-config-prettier": "^10.1.5",
+
        "eslint-plugin-svelte": "^3.9.0",
+
        "execa": "^9.5.3",
        "get-port": "^7.1.0",
-
        "globals": "^15.14.0",
-
        "happy-dom": "^16.8.1",
-
        "prettier": "^3.4.2",
-
        "prettier-plugin-svelte": "^3.3.3",
-
        "svelte-check": "^4.1.4",
-
        "svelte-eslint-parser": "^0.43.0",
-
        "typescript": "^5.7.3",
-
        "typescript-eslint": "^8.22.0",
-
        "vite": "^5.4.14",
-
        "vite-plugin-virtual": "^0.3.0",
-
        "vitest": "^3.0.4",
-
        "wait-on": "^8.0.2"
+
        "globals": "^16.1.0",
+
        "happy-dom": "^17.4.7",
+
        "prettier": "^3.5.3",
+
        "prettier-plugin-svelte": "^3.4.0",
+
        "svelte-check": "^4.2.1",
+
        "svelte-eslint-parser": "^1.2.0",
+
        "typescript": "^5.8.3",
+
        "typescript-eslint": "^8.32.1",
+
        "vite": "^6.3.5",
+
        "vite-plugin-virtual": "^0.4.0",
+
        "vitest": "^3.1.4",
+
        "wait-on": "^8.0.3"
      },
      "engines": {
        "node": ">=18.17.1"
@@ -81,9 +81,9 @@
      }
    },
    "node_modules/@esbuild/aix-ppc64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
-
      "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz",
+
      "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==",
      "cpu": [
        "ppc64"
      ],
@@ -93,13 +93,13 @@
        "aix"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/android-arm": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
-
      "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz",
+
      "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==",
      "cpu": [
        "arm"
      ],
@@ -109,13 +109,13 @@
        "android"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/android-arm64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
-
      "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz",
+
      "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==",
      "cpu": [
        "arm64"
      ],
@@ -125,13 +125,13 @@
        "android"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/android-x64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
-
      "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz",
+
      "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==",
      "cpu": [
        "x64"
      ],
@@ -141,13 +141,13 @@
        "android"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/darwin-arm64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
-
      "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz",
+
      "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==",
      "cpu": [
        "arm64"
      ],
@@ -157,13 +157,13 @@
        "darwin"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/darwin-x64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
-
      "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz",
+
      "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==",
      "cpu": [
        "x64"
      ],
@@ -173,13 +173,13 @@
        "darwin"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/freebsd-arm64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
-
      "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz",
+
      "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==",
      "cpu": [
        "arm64"
      ],
@@ -189,13 +189,13 @@
        "freebsd"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/freebsd-x64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
-
      "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz",
+
      "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==",
      "cpu": [
        "x64"
      ],
@@ -205,13 +205,13 @@
        "freebsd"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-arm": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
-
      "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz",
+
      "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==",
      "cpu": [
        "arm"
      ],
@@ -221,13 +221,13 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-arm64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
-
      "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz",
+
      "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==",
      "cpu": [
        "arm64"
      ],
@@ -237,13 +237,13 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-ia32": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
-
      "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz",
+
      "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==",
      "cpu": [
        "ia32"
      ],
@@ -253,13 +253,13 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-loong64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
-
      "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz",
+
      "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==",
      "cpu": [
        "loong64"
      ],
@@ -269,13 +269,13 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-mips64el": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
-
      "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz",
+
      "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==",
      "cpu": [
        "mips64el"
      ],
@@ -285,13 +285,13 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-ppc64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
-
      "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz",
+
      "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==",
      "cpu": [
        "ppc64"
      ],
@@ -301,13 +301,13 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-riscv64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
-
      "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz",
+
      "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==",
      "cpu": [
        "riscv64"
      ],
@@ -317,13 +317,13 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-s390x": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
-
      "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz",
+
      "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==",
      "cpu": [
        "s390x"
      ],
@@ -333,13 +333,13 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/linux-x64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
-
      "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz",
+
      "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==",
      "cpu": [
        "x64"
      ],
@@ -349,13 +349,29 @@
        "linux"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
+
      }
+
    },
+
    "node_modules/@esbuild/netbsd-arm64": {
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz",
+
      "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==",
+
      "cpu": [
+
        "arm64"
+
      ],
+
      "dev": true,
+
      "optional": true,
+
      "os": [
+
        "netbsd"
+
      ],
+
      "engines": {
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/netbsd-x64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
-
      "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz",
+
      "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==",
      "cpu": [
        "x64"
      ],
@@ -365,13 +381,29 @@
        "netbsd"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
+
      }
+
    },
+
    "node_modules/@esbuild/openbsd-arm64": {
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz",
+
      "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==",
+
      "cpu": [
+
        "arm64"
+
      ],
+
      "dev": true,
+
      "optional": true,
+
      "os": [
+
        "openbsd"
+
      ],
+
      "engines": {
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/openbsd-x64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
-
      "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz",
+
      "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==",
      "cpu": [
        "x64"
      ],
@@ -381,13 +413,13 @@
        "openbsd"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/sunos-x64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
-
      "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz",
+
      "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==",
      "cpu": [
        "x64"
      ],
@@ -397,13 +429,13 @@
        "sunos"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/win32-arm64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
-
      "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz",
+
      "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==",
      "cpu": [
        "arm64"
      ],
@@ -413,13 +445,13 @@
        "win32"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/win32-ia32": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
-
      "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz",
+
      "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==",
      "cpu": [
        "ia32"
      ],
@@ -429,13 +461,13 @@
        "win32"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@esbuild/win32-x64": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
-
      "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz",
+
      "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==",
      "cpu": [
        "x64"
      ],
@@ -445,13 +477,13 @@
        "win32"
      ],
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      }
    },
    "node_modules/@eslint-community/eslint-utils": {
-
      "version": "4.4.1",
-
      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
-
      "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
+
      "version": "4.7.0",
+
      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+
      "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
      "dev": true,
      "dependencies": {
        "eslint-visitor-keys": "^3.4.3"
@@ -488,9 +520,9 @@
      }
    },
    "node_modules/@eslint/config-array": {
-
      "version": "0.19.2",
-
      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz",
-
      "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==",
+
      "version": "0.20.0",
+
      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
+
      "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
      "dev": true,
      "dependencies": {
        "@eslint/object-schema": "^2.1.6",
@@ -523,10 +555,19 @@
        "node": "*"
      }
    },
+
    "node_modules/@eslint/config-helpers": {
+
      "version": "0.2.2",
+
      "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz",
+
      "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==",
+
      "dev": true,
+
      "engines": {
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
      }
+
    },
    "node_modules/@eslint/core": {
-
      "version": "0.10.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz",
-
      "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==",
+
      "version": "0.14.0",
+
      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz",
+
      "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==",
      "dev": true,
      "dependencies": {
        "@types/json-schema": "^7.0.15"
@@ -536,9 +577,9 @@
      }
    },
    "node_modules/@eslint/eslintrc": {
-
      "version": "3.2.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
-
      "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
+
      "version": "3.3.1",
+
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
+
      "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
      "dev": true,
      "dependencies": {
        "ajv": "^6.12.4",
@@ -593,12 +634,15 @@
      }
    },
    "node_modules/@eslint/js": {
-
      "version": "9.19.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz",
-
      "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==",
+
      "version": "9.27.0",
+
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.27.0.tgz",
+
      "integrity": "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==",
      "dev": true,
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
      },
+
      "funding": {
+
        "url": "https://eslint.org/donate"
      }
    },
    "node_modules/@eslint/object-schema": {
@@ -611,12 +655,12 @@
      }
    },
    "node_modules/@eslint/plugin-kit": {
-
      "version": "0.2.5",
-
      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz",
-
      "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==",
+
      "version": "0.3.1",
+
      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz",
+
      "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==",
      "dev": true,
      "dependencies": {
-
        "@eslint/core": "^0.10.0",
+
        "@eslint/core": "^0.14.0",
        "levn": "^0.4.1"
      },
      "engines": {
@@ -687,9 +731,9 @@
      }
    },
    "node_modules/@humanwhocodes/retry": {
-
      "version": "0.4.1",
-
      "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz",
-
      "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==",
+
      "version": "0.4.3",
+
      "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
+
      "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
      "dev": true,
      "engines": {
        "node": ">=18.18"
@@ -778,12 +822,12 @@
      }
    },
    "node_modules/@playwright/test": {
-
      "version": "1.50.1",
-
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.50.1.tgz",
-
      "integrity": "sha512-Jii3aBg+CEDpgnuDxEp/h7BimHcUTDlpEtce89xEumlJ5ef2hqepZ+PWp1DDpYC/VO9fmWVI1IlEaoI5fK9FXQ==",
+
      "version": "1.52.0",
+
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.52.0.tgz",
+
      "integrity": "sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==",
      "dev": true,
      "dependencies": {
-
        "playwright": "1.50.1"
+
        "playwright": "1.52.0"
      },
      "bin": {
        "playwright": "cli.js"
@@ -807,9 +851,9 @@
      }
    },
    "node_modules/@rollup/rollup-android-arm-eabi": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.1.tgz",
-
      "integrity": "sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.0.tgz",
+
      "integrity": "sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==",
      "cpu": [
        "arm"
      ],
@@ -820,9 +864,9 @@
      ]
    },
    "node_modules/@rollup/rollup-android-arm64": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.1.tgz",
-
      "integrity": "sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.0.tgz",
+
      "integrity": "sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==",
      "cpu": [
        "arm64"
      ],
@@ -833,9 +877,9 @@
      ]
    },
    "node_modules/@rollup/rollup-darwin-arm64": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.1.tgz",
-
      "integrity": "sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.0.tgz",
+
      "integrity": "sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==",
      "cpu": [
        "arm64"
      ],
@@ -846,9 +890,9 @@
      ]
    },
    "node_modules/@rollup/rollup-darwin-x64": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.1.tgz",
-
      "integrity": "sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.0.tgz",
+
      "integrity": "sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==",
      "cpu": [
        "x64"
      ],
@@ -859,9 +903,9 @@
      ]
    },
    "node_modules/@rollup/rollup-freebsd-arm64": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.1.tgz",
-
      "integrity": "sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.0.tgz",
+
      "integrity": "sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==",
      "cpu": [
        "arm64"
      ],
@@ -872,9 +916,9 @@
      ]
    },
    "node_modules/@rollup/rollup-freebsd-x64": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.1.tgz",
-
      "integrity": "sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.0.tgz",
+
      "integrity": "sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==",
      "cpu": [
        "x64"
      ],
@@ -885,9 +929,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.1.tgz",
-
      "integrity": "sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.0.tgz",
+
      "integrity": "sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==",
      "cpu": [
        "arm"
      ],
@@ -898,9 +942,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm-musleabihf": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.1.tgz",
-
      "integrity": "sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.0.tgz",
+
      "integrity": "sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==",
      "cpu": [
        "arm"
      ],
@@ -911,9 +955,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm64-gnu": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.1.tgz",
-
      "integrity": "sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.0.tgz",
+
      "integrity": "sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==",
      "cpu": [
        "arm64"
      ],
@@ -924,9 +968,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm64-musl": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.1.tgz",
-
      "integrity": "sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.0.tgz",
+
      "integrity": "sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==",
      "cpu": [
        "arm64"
      ],
@@ -937,9 +981,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.1.tgz",
-
      "integrity": "sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.0.tgz",
+
      "integrity": "sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==",
      "cpu": [
        "loong64"
      ],
@@ -950,9 +994,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.1.tgz",
-
      "integrity": "sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.0.tgz",
+
      "integrity": "sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==",
      "cpu": [
        "ppc64"
      ],
@@ -963,9 +1007,22 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-riscv64-gnu": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.1.tgz",
-
      "integrity": "sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.0.tgz",
+
      "integrity": "sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==",
+
      "cpu": [
+
        "riscv64"
+
      ],
+
      "dev": true,
+
      "optional": true,
+
      "os": [
+
        "linux"
+
      ]
+
    },
+
    "node_modules/@rollup/rollup-linux-riscv64-musl": {
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.0.tgz",
+
      "integrity": "sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==",
      "cpu": [
        "riscv64"
      ],
@@ -976,9 +1033,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-s390x-gnu": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.1.tgz",
-
      "integrity": "sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.0.tgz",
+
      "integrity": "sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==",
      "cpu": [
        "s390x"
      ],
@@ -989,9 +1046,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-x64-gnu": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.1.tgz",
-
      "integrity": "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.0.tgz",
+
      "integrity": "sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==",
      "cpu": [
        "x64"
      ],
@@ -1002,9 +1059,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-x64-musl": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.1.tgz",
-
      "integrity": "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.0.tgz",
+
      "integrity": "sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==",
      "cpu": [
        "x64"
      ],
@@ -1015,9 +1072,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-arm64-msvc": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.1.tgz",
-
      "integrity": "sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.0.tgz",
+
      "integrity": "sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==",
      "cpu": [
        "arm64"
      ],
@@ -1028,9 +1085,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-ia32-msvc": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.1.tgz",
-
      "integrity": "sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.0.tgz",
+
      "integrity": "sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==",
      "cpu": [
        "ia32"
      ],
@@ -1041,9 +1098,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-x64-msvc": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.1.tgz",
-
      "integrity": "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.0.tgz",
+
      "integrity": "sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==",
      "cpu": [
        "x64"
      ],
@@ -1092,31 +1149,39 @@
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
+
    "node_modules/@sveltejs/acorn-typescript": {
+
      "version": "1.0.5",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz",
+
      "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==",
+
      "peerDependencies": {
+
        "acorn": "^8.9.0"
+
      }
+
    },
    "node_modules/@sveltejs/vite-plugin-svelte": {
-
      "version": "4.0.4",
-
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-4.0.4.tgz",
-
      "integrity": "sha512-0ba1RQ/PHen5FGpdSrW7Y3fAMQjrXantECALeOiOdBdzR5+5vPP6HVZRLmZaQL+W8m++o+haIAKq5qT+MiZ7VA==",
+
      "version": "5.0.3",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.0.3.tgz",
+
      "integrity": "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==",
      "dev": true,
      "dependencies": {
-
        "@sveltejs/vite-plugin-svelte-inspector": "^3.0.0-next.0||^3.0.0",
-
        "debug": "^4.3.7",
+
        "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1",
+
        "debug": "^4.4.0",
        "deepmerge": "^4.3.1",
        "kleur": "^4.1.5",
-
        "magic-string": "^0.30.12",
-
        "vitefu": "^1.0.3"
+
        "magic-string": "^0.30.15",
+
        "vitefu": "^1.0.4"
      },
      "engines": {
        "node": "^18.0.0 || ^20.0.0 || >=22"
      },
      "peerDependencies": {
-
        "svelte": "^5.0.0-next.96 || ^5.0.0",
-
        "vite": "^5.0.0"
+
        "svelte": "^5.0.0",
+
        "vite": "^6.0.0"
      }
    },
    "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
-
      "version": "3.0.1",
-
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-3.0.1.tgz",
-
      "integrity": "sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==",
+
      "version": "4.0.1",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz",
+
      "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==",
      "dev": true,
      "dependencies": {
        "debug": "^4.3.7"
@@ -1125,9 +1190,9 @@
        "node": "^18.0.0 || ^20.0.0 || >=22"
      },
      "peerDependencies": {
-
        "@sveltejs/vite-plugin-svelte": "^4.0.0-next.0||^4.0.0",
-
        "svelte": "^5.0.0-next.96 || ^5.0.0",
-
        "vite": "^5.0.0"
+
        "@sveltejs/vite-plugin-svelte": "^5.0.0",
+
        "svelte": "^5.0.0",
+
        "vite": "^6.0.0"
      }
    },
    "node_modules/@tsconfig/svelte": {
@@ -1143,9 +1208,9 @@
      "dev": true
    },
    "node_modules/@types/estree": {
-
      "version": "1.0.6",
-
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
-
      "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="
+
      "version": "1.0.7",
+
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+
      "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="
    },
    "node_modules/@types/hast": {
      "version": "3.0.4",
@@ -1173,9 +1238,9 @@
      "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="
    },
    "node_modules/@types/lodash": {
-
      "version": "4.17.15",
-
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz",
-
      "integrity": "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==",
+
      "version": "4.17.17",
+
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.17.tgz",
+
      "integrity": "sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==",
      "dev": true
    },
    "node_modules/@types/md5": {
@@ -1193,12 +1258,12 @@
      }
    },
    "node_modules/@types/node": {
-
      "version": "20.17.16",
-
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.16.tgz",
-
      "integrity": "sha512-vOTpLduLkZXePLxHiHsBLp98mHGnl8RptV4YAO3HfKO5UHjDvySGbxKtpYfy8Sx5+WKcgc45qNreJJRVM3L6mw==",
+
      "version": "22.15.21",
+
      "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.21.tgz",
+
      "integrity": "sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==",
      "dev": true,
      "dependencies": {
-
        "undici-types": "~6.19.2"
+
        "undici-types": "~6.21.0"
      }
    },
    "node_modules/@types/trusted-types": {
@@ -1222,20 +1287,20 @@
      }
    },
    "node_modules/@typescript-eslint/eslint-plugin": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz",
-
      "integrity": "sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.1.tgz",
+
      "integrity": "sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==",
      "dev": true,
      "dependencies": {
        "@eslint-community/regexpp": "^4.10.0",
-
        "@typescript-eslint/scope-manager": "8.22.0",
-
        "@typescript-eslint/type-utils": "8.22.0",
-
        "@typescript-eslint/utils": "8.22.0",
-
        "@typescript-eslint/visitor-keys": "8.22.0",
+
        "@typescript-eslint/scope-manager": "8.32.1",
+
        "@typescript-eslint/type-utils": "8.32.1",
+
        "@typescript-eslint/utils": "8.32.1",
+
        "@typescript-eslint/visitor-keys": "8.32.1",
        "graphemer": "^1.4.0",
-
        "ignore": "^5.3.1",
+
        "ignore": "^7.0.0",
        "natural-compare": "^1.4.0",
-
        "ts-api-utils": "^2.0.0"
+
        "ts-api-utils": "^2.1.0"
      },
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1247,19 +1312,28 @@
      "peerDependencies": {
        "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
        "eslint": "^8.57.0 || ^9.0.0",
-
        "typescript": ">=4.8.4 <5.8.0"
+
        "typescript": ">=4.8.4 <5.9.0"
+
      }
+
    },
+
    "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
+
      "version": "7.0.4",
+
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz",
+
      "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">= 4"
      }
    },
    "node_modules/@typescript-eslint/parser": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.22.0.tgz",
-
      "integrity": "sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.1.tgz",
+
      "integrity": "sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/scope-manager": "8.22.0",
-
        "@typescript-eslint/types": "8.22.0",
-
        "@typescript-eslint/typescript-estree": "8.22.0",
-
        "@typescript-eslint/visitor-keys": "8.22.0",
+
        "@typescript-eslint/scope-manager": "8.32.1",
+
        "@typescript-eslint/types": "8.32.1",
+
        "@typescript-eslint/typescript-estree": "8.32.1",
+
        "@typescript-eslint/visitor-keys": "8.32.1",
        "debug": "^4.3.4"
      },
      "engines": {
@@ -1271,17 +1345,17 @@
      },
      "peerDependencies": {
        "eslint": "^8.57.0 || ^9.0.0",
-
        "typescript": ">=4.8.4 <5.8.0"
+
        "typescript": ">=4.8.4 <5.9.0"
      }
    },
    "node_modules/@typescript-eslint/scope-manager": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz",
-
      "integrity": "sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.1.tgz",
+
      "integrity": "sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "8.22.0",
-
        "@typescript-eslint/visitor-keys": "8.22.0"
+
        "@typescript-eslint/types": "8.32.1",
+
        "@typescript-eslint/visitor-keys": "8.32.1"
      },
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1292,15 +1366,15 @@
      }
    },
    "node_modules/@typescript-eslint/type-utils": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz",
-
      "integrity": "sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.1.tgz",
+
      "integrity": "sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/typescript-estree": "8.22.0",
-
        "@typescript-eslint/utils": "8.22.0",
+
        "@typescript-eslint/typescript-estree": "8.32.1",
+
        "@typescript-eslint/utils": "8.32.1",
        "debug": "^4.3.4",
-
        "ts-api-utils": "^2.0.0"
+
        "ts-api-utils": "^2.1.0"
      },
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1311,13 +1385,13 @@
      },
      "peerDependencies": {
        "eslint": "^8.57.0 || ^9.0.0",
-
        "typescript": ">=4.8.4 <5.8.0"
+
        "typescript": ">=4.8.4 <5.9.0"
      }
    },
    "node_modules/@typescript-eslint/types": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.22.0.tgz",
-
      "integrity": "sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.1.tgz",
+
      "integrity": "sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==",
      "dev": true,
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1328,19 +1402,19 @@
      }
    },
    "node_modules/@typescript-eslint/typescript-estree": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz",
-
      "integrity": "sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.1.tgz",
+
      "integrity": "sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "8.22.0",
-
        "@typescript-eslint/visitor-keys": "8.22.0",
+
        "@typescript-eslint/types": "8.32.1",
+
        "@typescript-eslint/visitor-keys": "8.32.1",
        "debug": "^4.3.4",
        "fast-glob": "^3.3.2",
        "is-glob": "^4.0.3",
        "minimatch": "^9.0.4",
        "semver": "^7.6.0",
-
        "ts-api-utils": "^2.0.0"
+
        "ts-api-utils": "^2.1.0"
      },
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1350,19 +1424,19 @@
        "url": "https://opencollective.com/typescript-eslint"
      },
      "peerDependencies": {
-
        "typescript": ">=4.8.4 <5.8.0"
+
        "typescript": ">=4.8.4 <5.9.0"
      }
    },
    "node_modules/@typescript-eslint/utils": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.22.0.tgz",
-
      "integrity": "sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.1.tgz",
+
      "integrity": "sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==",
      "dev": true,
      "dependencies": {
-
        "@eslint-community/eslint-utils": "^4.4.0",
-
        "@typescript-eslint/scope-manager": "8.22.0",
-
        "@typescript-eslint/types": "8.22.0",
-
        "@typescript-eslint/typescript-estree": "8.22.0"
+
        "@eslint-community/eslint-utils": "^4.7.0",
+
        "@typescript-eslint/scope-manager": "8.32.1",
+
        "@typescript-eslint/types": "8.32.1",
+
        "@typescript-eslint/typescript-estree": "8.32.1"
      },
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1373,16 +1447,16 @@
      },
      "peerDependencies": {
        "eslint": "^8.57.0 || ^9.0.0",
-
        "typescript": ">=4.8.4 <5.8.0"
+
        "typescript": ">=4.8.4 <5.9.0"
      }
    },
    "node_modules/@typescript-eslint/visitor-keys": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz",
-
      "integrity": "sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.1.tgz",
+
      "integrity": "sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "8.22.0",
+
        "@typescript-eslint/types": "8.32.1",
        "eslint-visitor-keys": "^4.2.0"
      },
      "engines": {
@@ -1399,14 +1473,14 @@
      "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="
    },
    "node_modules/@vitest/expect": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.4.tgz",
-
      "integrity": "sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.4.tgz",
+
      "integrity": "sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==",
      "dev": true,
      "dependencies": {
-
        "@vitest/spy": "3.0.4",
-
        "@vitest/utils": "3.0.4",
-
        "chai": "^5.1.2",
+
        "@vitest/spy": "3.1.4",
+
        "@vitest/utils": "3.1.4",
+
        "chai": "^5.2.0",
        "tinyrainbow": "^2.0.0"
      },
      "funding": {
@@ -1414,12 +1488,12 @@
      }
    },
    "node_modules/@vitest/mocker": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.4.tgz",
-
      "integrity": "sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.4.tgz",
+
      "integrity": "sha512-8IJ3CvwtSw/EFXqWFL8aCMu+YyYXG2WUSrQbViOZkWTKTVicVwZ/YiEZDSqD00kX+v/+W+OnxhNWoeVKorHygA==",
      "dev": true,
      "dependencies": {
-
        "@vitest/spy": "3.0.4",
+
        "@vitest/spy": "3.1.4",
        "estree-walker": "^3.0.3",
        "magic-string": "^0.30.17"
      },
@@ -1440,9 +1514,9 @@
      }
    },
    "node_modules/@vitest/pretty-format": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.4.tgz",
-
      "integrity": "sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.4.tgz",
+
      "integrity": "sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==",
      "dev": true,
      "dependencies": {
        "tinyrainbow": "^2.0.0"
@@ -1452,36 +1526,36 @@
      }
    },
    "node_modules/@vitest/runner": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.4.tgz",
-
      "integrity": "sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.4.tgz",
+
      "integrity": "sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==",
      "dev": true,
      "dependencies": {
-
        "@vitest/utils": "3.0.4",
-
        "pathe": "^2.0.2"
+
        "@vitest/utils": "3.1.4",
+
        "pathe": "^2.0.3"
      },
      "funding": {
        "url": "https://opencollective.com/vitest"
      }
    },
    "node_modules/@vitest/snapshot": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.4.tgz",
-
      "integrity": "sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.4.tgz",
+
      "integrity": "sha512-JPHf68DvuO7vilmvwdPr9TS0SuuIzHvxeaCkxYcCD4jTk67XwL45ZhEHFKIuCm8CYstgI6LZ4XbwD6ANrwMpFg==",
      "dev": true,
      "dependencies": {
-
        "@vitest/pretty-format": "3.0.4",
+
        "@vitest/pretty-format": "3.1.4",
        "magic-string": "^0.30.17",
-
        "pathe": "^2.0.2"
+
        "pathe": "^2.0.3"
      },
      "funding": {
        "url": "https://opencollective.com/vitest"
      }
    },
    "node_modules/@vitest/spy": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.4.tgz",
-
      "integrity": "sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.4.tgz",
+
      "integrity": "sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==",
      "dev": true,
      "dependencies": {
        "tinyspy": "^3.0.2"
@@ -1491,13 +1565,13 @@
      }
    },
    "node_modules/@vitest/utils": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.4.tgz",
-
      "integrity": "sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.4.tgz",
+
      "integrity": "sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==",
      "dev": true,
      "dependencies": {
-
        "@vitest/pretty-format": "3.0.4",
-
        "loupe": "^3.1.2",
+
        "@vitest/pretty-format": "3.1.4",
+
        "loupe": "^3.1.3",
        "tinyrainbow": "^2.0.0"
      },
      "funding": {
@@ -1505,9 +1579,9 @@
      }
    },
    "node_modules/@wooorm/starry-night": {
-
      "version": "3.6.0",
-
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.6.0.tgz",
-
      "integrity": "sha512-AoDrqWZCZVymY48BClDaSuLgOe5vnl99S4hrqqg5OJ44x9NHo4s5LzOypKC3e6jGIUqHDfaDMvou8pelkq3dCw==",
+
      "version": "3.7.0",
+
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.7.0.tgz",
+
      "integrity": "sha512-Gg3yXUub8jwz10x4PAeMjmgYzzwUVMGXWfk33jA32XL1iQX9lt8798943ONpjnJIyYSeDysxI8gMNegCU38low==",
      "dependencies": {
        "@types/hast": "^3.0.0",
        "import-meta-resolve": "^4.0.0",
@@ -1520,9 +1594,9 @@
      }
    },
    "node_modules/acorn": {
-
      "version": "8.14.0",
-
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
-
      "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
+
      "version": "8.14.1",
+
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+
      "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
      "bin": {
        "acorn": "bin/acorn"
      },
@@ -1539,14 +1613,6 @@
        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
      }
    },
-
    "node_modules/acorn-typescript": {
-
      "version": "1.4.13",
-
      "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz",
-
      "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==",
-
      "peerDependencies": {
-
        "acorn": ">=8.9.0"
-
      }
-
    },
    "node_modules/ajv": {
      "version": "6.12.6",
      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -1615,9 +1681,9 @@
      "dev": true
    },
    "node_modules/axios": {
-
      "version": "1.7.9",
-
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
-
      "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
+
      "version": "1.9.0",
+
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz",
+
      "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
      "dev": true,
      "dependencies": {
        "follow-redirects": "^1.15.6",
@@ -1634,9 +1700,9 @@
      }
    },
    "node_modules/baconjs": {
-
      "version": "3.0.19",
-
      "resolved": "https://registry.npmjs.org/baconjs/-/baconjs-3.0.19.tgz",
-
      "integrity": "sha512-/h7R6hTql8yk1FxYk/bTALea7fGcSJrUoLHFhX1WEkfI4C2mbR4sPbaNd0EhUIDJi3QwTBWEFHh7xEAaz3A3/A=="
+
      "version": "3.0.23",
+
      "resolved": "https://registry.npmjs.org/baconjs/-/baconjs-3.0.23.tgz",
+
      "integrity": "sha512-Yzm9KTwEw9DhXuE47We0kwhBOkMa5BH2vrOQ8A/SGr8uAH3lDCbTSr0iU0G5irkRQDW/v+jDSMP77geV99U9dw=="
    },
    "node_modules/balanced-match": {
      "version": "1.0.2",
@@ -1645,9 +1711,9 @@
      "dev": true
    },
    "node_modules/base-x": {
-
      "version": "5.0.0",
-
      "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.0.tgz",
-
      "integrity": "sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ=="
+
      "version": "5.0.1",
+
      "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz",
+
      "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg=="
    },
    "node_modules/base64-js": {
      "version": "1.5.1",
@@ -1729,6 +1795,19 @@
        "node": ">=8"
      }
    },
+
    "node_modules/call-bind-apply-helpers": {
+
      "version": "1.0.2",
+
      "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+
      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+
      "dev": true,
+
      "dependencies": {
+
        "es-errors": "^1.3.0",
+
        "function-bind": "^1.1.2"
+
      },
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
    "node_modules/callsites": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -1748,9 +1827,9 @@
      }
    },
    "node_modules/chai": {
-
      "version": "5.1.2",
-
      "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
-
      "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
+
      "version": "5.2.0",
+
      "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
+
      "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
      "dev": true,
      "dependencies": {
        "assertion-error": "^2.0.1",
@@ -1893,15 +1972,15 @@
      "dev": true
    },
    "node_modules/config": {
-
      "version": "3.3.12",
-
      "resolved": "https://registry.npmjs.org/config/-/config-3.3.12.tgz",
-
      "integrity": "sha512-Vmx389R/QVM3foxqBzXO8t2tUikYZP64Q6vQxGrsMpREeJc/aWRnPRERXWsYzOHAumx/AOoILWe6nU3ZJL+6Sw==",
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/config/-/config-4.0.0.tgz",
+
      "integrity": "sha512-zOzfDfcpaBUMRvTH+pbj111Gfb+1BMvCy9EcE5ckuugfAcks3FIQMyt8TRA30dhuGnZNBxfbPBUKtuM03ih/nA==",
      "dev": true,
      "dependencies": {
        "json5": "^2.2.3"
      },
      "engines": {
-
        "node": ">= 10.0.0"
+
        "node": ">= 20.0.0"
      }
    },
    "node_modules/cross-spawn": {
@@ -1939,9 +2018,9 @@
      }
    },
    "node_modules/debug": {
-
      "version": "4.4.0",
-
      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
-
      "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+
      "version": "4.4.1",
+
      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+
      "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
      "dev": true,
      "dependencies": {
        "ms": "^2.1.3"
@@ -2009,55 +2088,116 @@
      }
    },
    "node_modules/dompurify": {
-
      "version": "3.2.4",
-
      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz",
-
      "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==",
+
      "version": "3.2.6",
+
      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz",
+
      "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==",
      "optionalDependencies": {
        "@types/trusted-types": "^2.0.7"
      }
    },
+
    "node_modules/dunder-proto": {
+
      "version": "1.0.1",
+
      "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+
      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+
      "dev": true,
+
      "dependencies": {
+
        "call-bind-apply-helpers": "^1.0.1",
+
        "es-errors": "^1.3.0",
+
        "gopd": "^1.2.0"
+
      },
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
+
    "node_modules/es-define-property": {
+
      "version": "1.0.1",
+
      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+
      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
+
    "node_modules/es-errors": {
+
      "version": "1.3.0",
+
      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+
      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
    "node_modules/es-module-lexer": {
-
      "version": "1.6.0",
-
      "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
-
      "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
+
      "version": "1.7.0",
+
      "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+
      "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
      "dev": true
    },
+
    "node_modules/es-object-atoms": {
+
      "version": "1.1.1",
+
      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+
      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+
      "dev": true,
+
      "dependencies": {
+
        "es-errors": "^1.3.0"
+
      },
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
+
    "node_modules/es-set-tostringtag": {
+
      "version": "2.1.0",
+
      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+
      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+
      "dev": true,
+
      "dependencies": {
+
        "es-errors": "^1.3.0",
+
        "get-intrinsic": "^1.2.6",
+
        "has-tostringtag": "^1.0.2",
+
        "hasown": "^2.0.2"
+
      },
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
    "node_modules/esbuild": {
-
      "version": "0.21.5",
-
      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
-
      "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+
      "version": "0.25.4",
+
      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz",
+
      "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==",
      "dev": true,
      "hasInstallScript": true,
      "bin": {
        "esbuild": "bin/esbuild"
      },
      "engines": {
-
        "node": ">=12"
+
        "node": ">=18"
      },
      "optionalDependencies": {
-
        "@esbuild/aix-ppc64": "0.21.5",
-
        "@esbuild/android-arm": "0.21.5",
-
        "@esbuild/android-arm64": "0.21.5",
-
        "@esbuild/android-x64": "0.21.5",
-
        "@esbuild/darwin-arm64": "0.21.5",
-
        "@esbuild/darwin-x64": "0.21.5",
-
        "@esbuild/freebsd-arm64": "0.21.5",
-
        "@esbuild/freebsd-x64": "0.21.5",
-
        "@esbuild/linux-arm": "0.21.5",
-
        "@esbuild/linux-arm64": "0.21.5",
-
        "@esbuild/linux-ia32": "0.21.5",
-
        "@esbuild/linux-loong64": "0.21.5",
-
        "@esbuild/linux-mips64el": "0.21.5",
-
        "@esbuild/linux-ppc64": "0.21.5",
-
        "@esbuild/linux-riscv64": "0.21.5",
-
        "@esbuild/linux-s390x": "0.21.5",
-
        "@esbuild/linux-x64": "0.21.5",
-
        "@esbuild/netbsd-x64": "0.21.5",
-
        "@esbuild/openbsd-x64": "0.21.5",
-
        "@esbuild/sunos-x64": "0.21.5",
-
        "@esbuild/win32-arm64": "0.21.5",
-
        "@esbuild/win32-ia32": "0.21.5",
-
        "@esbuild/win32-x64": "0.21.5"
+
        "@esbuild/aix-ppc64": "0.25.4",
+
        "@esbuild/android-arm": "0.25.4",
+
        "@esbuild/android-arm64": "0.25.4",
+
        "@esbuild/android-x64": "0.25.4",
+
        "@esbuild/darwin-arm64": "0.25.4",
+
        "@esbuild/darwin-x64": "0.25.4",
+
        "@esbuild/freebsd-arm64": "0.25.4",
+
        "@esbuild/freebsd-x64": "0.25.4",
+
        "@esbuild/linux-arm": "0.25.4",
+
        "@esbuild/linux-arm64": "0.25.4",
+
        "@esbuild/linux-ia32": "0.25.4",
+
        "@esbuild/linux-loong64": "0.25.4",
+
        "@esbuild/linux-mips64el": "0.25.4",
+
        "@esbuild/linux-ppc64": "0.25.4",
+
        "@esbuild/linux-riscv64": "0.25.4",
+
        "@esbuild/linux-s390x": "0.25.4",
+
        "@esbuild/linux-x64": "0.25.4",
+
        "@esbuild/netbsd-arm64": "0.25.4",
+
        "@esbuild/netbsd-x64": "0.25.4",
+
        "@esbuild/openbsd-arm64": "0.25.4",
+
        "@esbuild/openbsd-x64": "0.25.4",
+
        "@esbuild/sunos-x64": "0.25.4",
+
        "@esbuild/win32-arm64": "0.25.4",
+
        "@esbuild/win32-ia32": "0.25.4",
+
        "@esbuild/win32-x64": "0.25.4"
      }
    },
    "node_modules/escape-string-regexp": {
@@ -2073,21 +2213,22 @@
      }
    },
    "node_modules/eslint": {
-
      "version": "9.19.0",
-
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz",
-
      "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==",
+
      "version": "9.27.0",
+
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.27.0.tgz",
+
      "integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
        "@eslint-community/regexpp": "^4.12.1",
-
        "@eslint/config-array": "^0.19.0",
-
        "@eslint/core": "^0.10.0",
-
        "@eslint/eslintrc": "^3.2.0",
-
        "@eslint/js": "9.19.0",
-
        "@eslint/plugin-kit": "^0.2.5",
+
        "@eslint/config-array": "^0.20.0",
+
        "@eslint/config-helpers": "^0.2.1",
+
        "@eslint/core": "^0.14.0",
+
        "@eslint/eslintrc": "^3.3.1",
+
        "@eslint/js": "9.27.0",
+
        "@eslint/plugin-kit": "^0.3.1",
        "@humanfs/node": "^0.16.6",
        "@humanwhocodes/module-importer": "^1.0.1",
-
        "@humanwhocodes/retry": "^0.4.1",
+
        "@humanwhocodes/retry": "^0.4.2",
        "@types/estree": "^1.0.6",
        "@types/json-schema": "^7.0.15",
        "ajv": "^6.12.4",
@@ -2095,7 +2236,7 @@
        "cross-spawn": "^7.0.6",
        "debug": "^4.3.2",
        "escape-string-regexp": "^4.0.0",
-
        "eslint-scope": "^8.2.0",
+
        "eslint-scope": "^8.3.0",
        "eslint-visitor-keys": "^4.2.0",
        "espree": "^10.3.0",
        "esquery": "^1.5.0",
@@ -2131,59 +2272,46 @@
        }
      }
    },
-
    "node_modules/eslint-compat-utils": {
-
      "version": "0.5.1",
-
      "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz",
-
      "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
-
      "dev": true,
-
      "dependencies": {
-
        "semver": "^7.5.4"
-
      },
-
      "engines": {
-
        "node": ">=12"
-
      },
-
      "peerDependencies": {
-
        "eslint": ">=6.0.0"
-
      }
-
    },
    "node_modules/eslint-config-prettier": {
-
      "version": "10.0.1",
-
      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz",
-
      "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==",
+
      "version": "10.1.5",
+
      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz",
+
      "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==",
      "dev": true,
      "bin": {
-
        "eslint-config-prettier": "build/bin/cli.js"
+
        "eslint-config-prettier": "bin/cli.js"
+
      },
+
      "funding": {
+
        "url": "https://opencollective.com/eslint-config-prettier"
      },
      "peerDependencies": {
        "eslint": ">=7.0.0"
      }
    },
    "node_modules/eslint-plugin-svelte": {
-
      "version": "2.46.1",
-
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.1.tgz",
-
      "integrity": "sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==",
+
      "version": "3.9.0",
+
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.9.0.tgz",
+
      "integrity": "sha512-nvIUNyyPGbr5922Kd1p/jXe+FfNdVPXsxLyrrXpwfSbZZEFdAYva9O/gm2lObC/wXkQo/AUmQkAihfmNJYeCjA==",
      "dev": true,
      "dependencies": {
-
        "@eslint-community/eslint-utils": "^4.4.0",
-
        "@jridgewell/sourcemap-codec": "^1.4.15",
-
        "eslint-compat-utils": "^0.5.1",
+
        "@eslint-community/eslint-utils": "^4.6.1",
+
        "@jridgewell/sourcemap-codec": "^1.5.0",
        "esutils": "^2.0.3",
-
        "known-css-properties": "^0.35.0",
-
        "postcss": "^8.4.38",
+
        "globals": "^16.0.0",
+
        "known-css-properties": "^0.36.0",
+
        "postcss": "^8.4.49",
        "postcss-load-config": "^3.1.4",
-
        "postcss-safe-parser": "^6.0.0",
-
        "postcss-selector-parser": "^6.1.0",
-
        "semver": "^7.6.2",
-
        "svelte-eslint-parser": "^0.43.0"
+
        "postcss-safe-parser": "^7.0.0",
+
        "semver": "^7.6.3",
+
        "svelte-eslint-parser": "^1.2.0"
      },
      "engines": {
-
        "node": "^14.17.0 || >=16.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "url": "https://github.com/sponsors/ota-meshi"
      },
      "peerDependencies": {
-
        "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0",
+
        "eslint": "^8.57.1 || ^9.0.0",
        "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0"
      },
      "peerDependenciesMeta": {
@@ -2193,9 +2321,9 @@
      }
    },
    "node_modules/eslint-scope": {
-
      "version": "8.2.0",
-
      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz",
-
      "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==",
+
      "version": "8.3.0",
+
      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
+
      "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
      "dev": true,
      "dependencies": {
        "esrecurse": "^4.3.0",
@@ -2293,9 +2421,9 @@
      }
    },
    "node_modules/esrap": {
-
      "version": "1.4.3",
-
      "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.3.tgz",
-
      "integrity": "sha512-Xddc1RsoFJ4z9nR7W7BFaEPIp4UXoeQ0+077UdWLxbafMQFyU79sQJMk7kxNgRwQ9/aVgaKacCHC2pUACGwmYw==",
+
      "version": "1.4.6",
+
      "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.6.tgz",
+
      "integrity": "sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw==",
      "dependencies": {
        "@jridgewell/sourcemap-codec": "^1.4.15"
      }
@@ -2340,9 +2468,9 @@
      }
    },
    "node_modules/execa": {
-
      "version": "9.5.2",
-
      "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz",
-
      "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==",
+
      "version": "9.5.3",
+
      "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.3.tgz",
+
      "integrity": "sha512-QFNnTvU3UjgWFy8Ef9iDHvIdcgZ344ebkwYx4/KLbR+CKQA4xBaHzv+iRpp86QfMHP8faFQLh8iOc57215y4Rg==",
      "dev": true,
      "dependencies": {
        "@sindresorhus/merge-streams": "^4.0.0",
@@ -2366,9 +2494,9 @@
      }
    },
    "node_modules/expect-type": {
-
      "version": "1.1.0",
-
      "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
-
      "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
+
      "version": "1.2.1",
+
      "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz",
+
      "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==",
      "dev": true,
      "engines": {
        "node": ">=12.0.0"
@@ -2432,9 +2560,9 @@
      "dev": true
    },
    "node_modules/fastq": {
-
      "version": "1.19.0",
-
      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz",
-
      "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==",
+
      "version": "1.19.1",
+
      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+
      "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
      "dev": true,
      "dependencies": {
        "reusify": "^1.0.4"
@@ -2509,9 +2637,9 @@
      }
    },
    "node_modules/flatted": {
-
      "version": "3.3.2",
-
      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
-
      "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==",
+
      "version": "3.3.3",
+
      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+
      "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
      "dev": true
    },
    "node_modules/follow-redirects": {
@@ -2535,13 +2663,14 @@
      }
    },
    "node_modules/form-data": {
-
      "version": "4.0.1",
-
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
-
      "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
+
      "version": "4.0.2",
+
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz",
+
      "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
      "dev": true,
      "dependencies": {
        "asynckit": "^0.4.0",
        "combined-stream": "^1.0.8",
+
        "es-set-tostringtag": "^2.1.0",
        "mime-types": "^2.1.12"
      },
      "engines": {
@@ -2583,11 +2712,44 @@
        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
      }
    },
+
    "node_modules/function-bind": {
+
      "version": "1.1.2",
+
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+
      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+
      "dev": true,
+
      "funding": {
+
        "url": "https://github.com/sponsors/ljharb"
+
      }
+
    },
    "node_modules/fuzzysort": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/fuzzysort/-/fuzzysort-3.1.0.tgz",
      "integrity": "sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ=="
    },
+
    "node_modules/get-intrinsic": {
+
      "version": "1.3.0",
+
      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+
      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+
      "dev": true,
+
      "dependencies": {
+
        "call-bind-apply-helpers": "^1.0.2",
+
        "es-define-property": "^1.0.1",
+
        "es-errors": "^1.3.0",
+
        "es-object-atoms": "^1.1.1",
+
        "function-bind": "^1.1.2",
+
        "get-proto": "^1.0.1",
+
        "gopd": "^1.2.0",
+
        "has-symbols": "^1.1.0",
+
        "hasown": "^2.0.2",
+
        "math-intrinsics": "^1.1.0"
+
      },
+
      "engines": {
+
        "node": ">= 0.4"
+
      },
+
      "funding": {
+
        "url": "https://github.com/sponsors/ljharb"
+
      }
+
    },
    "node_modules/get-port": {
      "version": "7.1.0",
      "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz",
@@ -2600,6 +2762,19 @@
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
+
    "node_modules/get-proto": {
+
      "version": "1.0.1",
+
      "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+
      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+
      "dev": true,
+
      "dependencies": {
+
        "dunder-proto": "^1.0.1",
+
        "es-object-atoms": "^1.0.0"
+
      },
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
    "node_modules/get-stream": {
      "version": "9.0.1",
      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
@@ -2629,9 +2804,9 @@
      }
    },
    "node_modules/globals": {
-
      "version": "15.14.0",
-
      "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz",
-
      "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==",
+
      "version": "16.1.0",
+
      "resolved": "https://registry.npmjs.org/globals/-/globals-16.1.0.tgz",
+
      "integrity": "sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==",
      "dev": true,
      "engines": {
        "node": ">=18"
@@ -2640,6 +2815,18 @@
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
+
    "node_modules/gopd": {
+
      "version": "1.2.0",
+
      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+
      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">= 0.4"
+
      },
+
      "funding": {
+
        "url": "https://github.com/sponsors/ljharb"
+
      }
+
    },
    "node_modules/graceful-fs": {
      "version": "4.2.11",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
@@ -2652,9 +2839,9 @@
      "dev": true
    },
    "node_modules/happy-dom": {
-
      "version": "16.8.1",
-
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-16.8.1.tgz",
-
      "integrity": "sha512-n0QrmT9lD81rbpKsyhnlz3DgnMZlaOkJPpgi746doA+HvaMC79bdWkwjrNnGJRvDrWTI8iOcJiVTJ5CdT/AZRw==",
+
      "version": "17.4.7",
+
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-17.4.7.tgz",
+
      "integrity": "sha512-NZypxadhCiV5NT4A+Y86aQVVKQ05KDmueja3sz008uJfDRwz028wd0aTiJPwo4RQlvlz0fznkEEBBCHVNWc08g==",
      "dev": true,
      "dependencies": {
        "webidl-conversions": "^7.0.0",
@@ -2673,13 +2860,52 @@
        "node": ">=8"
      }
    },
+
    "node_modules/has-symbols": {
+
      "version": "1.1.0",
+
      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+
      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">= 0.4"
+
      },
+
      "funding": {
+
        "url": "https://github.com/sponsors/ljharb"
+
      }
+
    },
+
    "node_modules/has-tostringtag": {
+
      "version": "1.0.2",
+
      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+
      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+
      "dev": true,
+
      "dependencies": {
+
        "has-symbols": "^1.0.3"
+
      },
+
      "engines": {
+
        "node": ">= 0.4"
+
      },
+
      "funding": {
+
        "url": "https://github.com/sponsors/ljharb"
+
      }
+
    },
+
    "node_modules/hasown": {
+
      "version": "2.0.2",
+
      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+
      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+
      "dev": true,
+
      "dependencies": {
+
        "function-bind": "^1.1.2"
+
      },
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
    "node_modules/hast-util-to-dom": {
-
      "version": "4.0.0",
-
      "resolved": "https://registry.npmjs.org/hast-util-to-dom/-/hast-util-to-dom-4.0.0.tgz",
-
      "integrity": "sha512-oW7RScutPE58LfjuVUNvvH0+6rB89mAm/pkDqD3bdj9g6xKQlMcuW6yBmovbpDKkvYI2apPKmHZMtc9KiZTywA==",
+
      "version": "4.0.1",
+
      "resolved": "https://registry.npmjs.org/hast-util-to-dom/-/hast-util-to-dom-4.0.1.tgz",
+
      "integrity": "sha512-z1VE7sZ8uFzS2baF3LEflX1IPw2gSzrdo3QFEsyoi23MkCVY3FoE9x6nLgOgjwJu8VNWgo+07iaxtONhDzKrUQ==",
      "dependencies": {
        "@types/hast": "^3.0.0",
-
        "property-information": "^6.0.0",
+
        "property-information": "^7.0.0",
        "web-namespaces": "^2.0.0"
      },
      "funding": {
@@ -2688,9 +2914,9 @@
      }
    },
    "node_modules/hast-util-to-html": {
-
      "version": "9.0.4",
-
      "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz",
-
      "integrity": "sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==",
+
      "version": "9.0.5",
+
      "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
+
      "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==",
      "dependencies": {
        "@types/hast": "^3.0.0",
        "@types/unist": "^3.0.0",
@@ -2699,7 +2925,7 @@
        "hast-util-whitespace": "^3.0.0",
        "html-void-elements": "^3.0.0",
        "mdast-util-to-hast": "^13.0.0",
-
        "property-information": "^6.0.0",
+
        "property-information": "^7.0.0",
        "space-separated-tokens": "^2.0.0",
        "stringify-entities": "^4.0.0",
        "zwitch": "^2.0.4"
@@ -2731,9 +2957,9 @@
      }
    },
    "node_modules/human-signals": {
-
      "version": "8.0.0",
-
      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz",
-
      "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==",
+
      "version": "8.0.1",
+
      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz",
+
      "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==",
      "dev": true,
      "engines": {
        "node": ">=18.18.0"
@@ -2768,9 +2994,9 @@
      }
    },
    "node_modules/import-fresh": {
-
      "version": "3.3.0",
-
      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
-
      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+
      "version": "3.3.1",
+
      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+
      "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
      "dev": true,
      "dependencies": {
        "parent-module": "^1.0.0",
@@ -2960,9 +3186,9 @@
      }
    },
    "node_modules/katex": {
-
      "version": "0.16.21",
-
      "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz",
-
      "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==",
+
      "version": "0.16.22",
+
      "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz",
+
      "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==",
      "funding": [
        "https://opencollective.com/katex",
        "https://github.com/sponsors/katex"
@@ -3002,9 +3228,9 @@
      }
    },
    "node_modules/known-css-properties": {
-
      "version": "0.35.0",
-
      "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz",
-
      "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==",
+
      "version": "0.36.0",
+
      "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz",
+
      "integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==",
      "dev": true
    },
    "node_modules/levn": {
@@ -3075,9 +3301,9 @@
      "dev": true
    },
    "node_modules/lru-cache": {
-
      "version": "11.0.2",
-
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz",
-
      "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==",
+
      "version": "11.1.0",
+
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz",
+
      "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==",
      "engines": {
        "node": "20 || >=22"
      }
@@ -3091,9 +3317,9 @@
      }
    },
    "node_modules/marked": {
-
      "version": "15.0.6",
-
      "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz",
-
      "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==",
+
      "version": "15.0.12",
+
      "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz",
+
      "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==",
      "bin": {
        "marked": "bin/marked.js"
      },
@@ -3102,9 +3328,9 @@
      }
    },
    "node_modules/marked-emoji": {
-
      "version": "1.4.3",
-
      "resolved": "https://registry.npmjs.org/marked-emoji/-/marked-emoji-1.4.3.tgz",
-
      "integrity": "sha512-HDZx1VOmzu7XT2QNKWfrHGbNRMTWKj9XD78yrcH1madD30HpGLMODPOmKr/e7CA7NKKXkpXXNdndQn++ysXmHg==",
+
      "version": "2.0.0",
+
      "resolved": "https://registry.npmjs.org/marked-emoji/-/marked-emoji-2.0.0.tgz",
+
      "integrity": "sha512-oTZ8fqbdVDHFQnqCE1tg4ND7zEd7cUVNHliR9Ldu4eys0J86uz/5Uksjd2mt5xcX16OOScDEr3MmPjajI/ZDHA==",
      "peerDependencies": {
        "marked": ">=4 <16"
      }
@@ -3138,6 +3364,15 @@
        "marked": ">=4 <16"
      }
    },
+
    "node_modules/math-intrinsics": {
+
      "version": "1.1.0",
+
      "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+
      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">= 0.4"
+
      }
+
    },
    "node_modules/md5": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
@@ -3247,9 +3482,9 @@
      ]
    },
    "node_modules/micromark-util-types": {
-
      "version": "2.0.1",
-
      "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz",
-
      "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==",
+
      "version": "2.0.2",
+
      "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
+
      "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
      "funding": [
        {
          "type": "GitHub Sponsors",
@@ -3335,9 +3570,9 @@
      "dev": true
    },
    "node_modules/nanoid": {
-
      "version": "3.3.8",
-
      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
-
      "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+
      "version": "3.3.11",
+
      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+
      "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
      "dev": true,
      "funding": [
        {
@@ -3476,9 +3711,9 @@
      }
    },
    "node_modules/pathe": {
-
      "version": "2.0.2",
-
      "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz",
-
      "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==",
+
      "version": "2.0.3",
+
      "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+
      "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
      "dev": true
    },
    "node_modules/pathval": {
@@ -3509,12 +3744,12 @@
      }
    },
    "node_modules/playwright": {
-
      "version": "1.50.1",
-
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.50.1.tgz",
-
      "integrity": "sha512-G8rwsOQJ63XG6BbKj2w5rHeavFjy5zynBA9zsJMMtBoe/Uf757oG12NXz6e6OirF7RCrTVAKFXbLmn1RbL7Qaw==",
+
      "version": "1.52.0",
+
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.52.0.tgz",
+
      "integrity": "sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==",
      "dev": true,
      "dependencies": {
-
        "playwright-core": "1.50.1"
+
        "playwright-core": "1.52.0"
      },
      "bin": {
        "playwright": "cli.js"
@@ -3527,9 +3762,9 @@
      }
    },
    "node_modules/playwright-core": {
-
      "version": "1.50.1",
-
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.50.1.tgz",
-
      "integrity": "sha512-ra9fsNWayuYumt+NiM069M6OkcRb1FZSK8bgi66AtpFoWkg2+y0bJSNmkFrWhMbEBbVKC/EruAHH3g0zmtwGmQ==",
+
      "version": "1.52.0",
+
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.52.0.tgz",
+
      "integrity": "sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==",
      "dev": true,
      "bin": {
        "playwright-core": "cli.js"
@@ -3539,9 +3774,9 @@
      }
    },
    "node_modules/postcss": {
-
      "version": "8.5.1",
-
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz",
-
      "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==",
+
      "version": "8.5.3",
+
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+
      "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
      "dev": true,
      "funding": [
        {
@@ -3595,20 +3830,39 @@
        }
      }
    },
+
    "node_modules/postcss-load-config/node_modules/yaml": {
+
      "version": "1.10.2",
+
      "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+
      "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">= 6"
+
      }
+
    },
    "node_modules/postcss-safe-parser": {
-
      "version": "6.0.0",
-
      "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
-
      "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
+
      "version": "7.0.1",
+
      "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
+
      "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==",
      "dev": true,
+
      "funding": [
+
        {
+
          "type": "opencollective",
+
          "url": "https://opencollective.com/postcss/"
+
        },
+
        {
+
          "type": "tidelift",
+
          "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser"
+
        },
+
        {
+
          "type": "github",
+
          "url": "https://github.com/sponsors/ai"
+
        }
+
      ],
      "engines": {
-
        "node": ">=12.0"
-
      },
-
      "funding": {
-
        "type": "opencollective",
-
        "url": "https://opencollective.com/postcss/"
+
        "node": ">=18.0"
      },
      "peerDependencies": {
-
        "postcss": "^8.3.3"
+
        "postcss": "^8.4.31"
      }
    },
    "node_modules/postcss-scss": {
@@ -3638,9 +3892,9 @@
      }
    },
    "node_modules/postcss-selector-parser": {
-
      "version": "6.1.2",
-
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
-
      "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+
      "version": "7.1.0",
+
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+
      "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
      "dev": true,
      "dependencies": {
        "cssesc": "^3.0.0",
@@ -3660,9 +3914,9 @@
      }
    },
    "node_modules/prettier": {
-
      "version": "3.4.2",
-
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz",
-
      "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
+
      "version": "3.5.3",
+
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
+
      "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
      "dev": true,
      "bin": {
        "prettier": "bin/prettier.cjs"
@@ -3675,9 +3929,9 @@
      }
    },
    "node_modules/prettier-plugin-svelte": {
-
      "version": "3.3.3",
-
      "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.3.3.tgz",
-
      "integrity": "sha512-yViK9zqQ+H2qZD1w/bH7W8i+bVfKrD8GIFjkFe4Thl6kCT9SlAsXVNmt3jCvQOCsnOhcvYgsoVlRV/Eu6x5nNw==",
+
      "version": "3.4.0",
+
      "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.4.0.tgz",
+
      "integrity": "sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ==",
      "dev": true,
      "peerDependencies": {
        "prettier": "^3.0.0",
@@ -3700,9 +3954,9 @@
      }
    },
    "node_modules/property-information": {
-
      "version": "6.5.0",
-
      "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
-
      "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+
      "version": "7.1.0",
+
      "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
+
      "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
@@ -3744,9 +3998,9 @@
      ]
    },
    "node_modules/readdirp": {
-
      "version": "4.1.1",
-
      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz",
-
      "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==",
+
      "version": "4.1.2",
+
      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+
      "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
      "dev": true,
      "engines": {
        "node": ">= 14.18.0"
@@ -3766,9 +4020,9 @@
      }
    },
    "node_modules/reusify": {
-
      "version": "1.0.4",
-
      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
-
      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+
      "version": "1.1.0",
+
      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+
      "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
      "dev": true,
      "engines": {
        "iojs": ">=1.0.0",
@@ -3776,12 +4030,12 @@
      }
    },
    "node_modules/rollup": {
-
      "version": "4.32.1",
-
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz",
-
      "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==",
+
      "version": "4.41.0",
+
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.0.tgz",
+
      "integrity": "sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==",
      "dev": true,
      "dependencies": {
-
        "@types/estree": "1.0.6"
+
        "@types/estree": "1.0.7"
      },
      "bin": {
        "rollup": "dist/bin/rollup"
@@ -3791,25 +4045,26 @@
        "npm": ">=8.0.0"
      },
      "optionalDependencies": {
-
        "@rollup/rollup-android-arm-eabi": "4.32.1",
-
        "@rollup/rollup-android-arm64": "4.32.1",
-
        "@rollup/rollup-darwin-arm64": "4.32.1",
-
        "@rollup/rollup-darwin-x64": "4.32.1",
-
        "@rollup/rollup-freebsd-arm64": "4.32.1",
-
        "@rollup/rollup-freebsd-x64": "4.32.1",
-
        "@rollup/rollup-linux-arm-gnueabihf": "4.32.1",
-
        "@rollup/rollup-linux-arm-musleabihf": "4.32.1",
-
        "@rollup/rollup-linux-arm64-gnu": "4.32.1",
-
        "@rollup/rollup-linux-arm64-musl": "4.32.1",
-
        "@rollup/rollup-linux-loongarch64-gnu": "4.32.1",
-
        "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1",
-
        "@rollup/rollup-linux-riscv64-gnu": "4.32.1",
-
        "@rollup/rollup-linux-s390x-gnu": "4.32.1",
-
        "@rollup/rollup-linux-x64-gnu": "4.32.1",
-
        "@rollup/rollup-linux-x64-musl": "4.32.1",
-
        "@rollup/rollup-win32-arm64-msvc": "4.32.1",
-
        "@rollup/rollup-win32-ia32-msvc": "4.32.1",
-
        "@rollup/rollup-win32-x64-msvc": "4.32.1",
+
        "@rollup/rollup-android-arm-eabi": "4.41.0",
+
        "@rollup/rollup-android-arm64": "4.41.0",
+
        "@rollup/rollup-darwin-arm64": "4.41.0",
+
        "@rollup/rollup-darwin-x64": "4.41.0",
+
        "@rollup/rollup-freebsd-arm64": "4.41.0",
+
        "@rollup/rollup-freebsd-x64": "4.41.0",
+
        "@rollup/rollup-linux-arm-gnueabihf": "4.41.0",
+
        "@rollup/rollup-linux-arm-musleabihf": "4.41.0",
+
        "@rollup/rollup-linux-arm64-gnu": "4.41.0",
+
        "@rollup/rollup-linux-arm64-musl": "4.41.0",
+
        "@rollup/rollup-linux-loongarch64-gnu": "4.41.0",
+
        "@rollup/rollup-linux-powerpc64le-gnu": "4.41.0",
+
        "@rollup/rollup-linux-riscv64-gnu": "4.41.0",
+
        "@rollup/rollup-linux-riscv64-musl": "4.41.0",
+
        "@rollup/rollup-linux-s390x-gnu": "4.41.0",
+
        "@rollup/rollup-linux-x64-gnu": "4.41.0",
+
        "@rollup/rollup-linux-x64-musl": "4.41.0",
+
        "@rollup/rollup-win32-arm64-msvc": "4.41.0",
+
        "@rollup/rollup-win32-ia32-msvc": "4.41.0",
+
        "@rollup/rollup-win32-x64-msvc": "4.41.0",
        "fsevents": "~2.3.2"
      }
    },
@@ -3837,9 +4092,9 @@
      }
    },
    "node_modules/rxjs": {
-
      "version": "7.8.1",
-
      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
-
      "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+
      "version": "7.8.2",
+
      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+
      "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
      "dev": true,
      "dependencies": {
        "tslib": "^2.1.0"
@@ -3870,9 +4125,9 @@
      }
    },
    "node_modules/semver": {
-
      "version": "7.7.0",
-
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz",
-
      "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==",
+
      "version": "7.7.2",
+
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+
      "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
      "dev": true,
      "bin": {
        "semver": "bin/semver.js"
@@ -3945,9 +4200,9 @@
      "dev": true
    },
    "node_modules/std-env": {
-
      "version": "3.8.0",
-
      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz",
-
      "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==",
+
      "version": "3.9.0",
+
      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz",
+
      "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
      "dev": true
    },
    "node_modules/stringify-entities": {
@@ -4008,20 +4263,20 @@
      }
    },
    "node_modules/svelte": {
-
      "version": "5.19.6",
-
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.19.6.tgz",
-
      "integrity": "sha512-6ydekB3qyqUal+UhfMjmVOjRGtxysR8vuiMhi2nwuBtPJWnctVlsGspjVFB05qmR+TXI1emuqtZt81c0XiFleA==",
+
      "version": "5.32.1",
+
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.32.1.tgz",
+
      "integrity": "sha512-tT02QOeF0dbSIQ+/rUZw+76DyO6ATHvZJGOM2A/Ed6fBwZwUxqIun3beErpePAtwFIK3Mi9k2QAnhFVvUBun8g==",
      "dependencies": {
        "@ampproject/remapping": "^2.3.0",
        "@jridgewell/sourcemap-codec": "^1.5.0",
+
        "@sveltejs/acorn-typescript": "^1.0.5",
        "@types/estree": "^1.0.5",
        "acorn": "^8.12.1",
-
        "acorn-typescript": "^1.4.13",
        "aria-query": "^5.3.1",
        "axobject-query": "^4.1.0",
        "clsx": "^2.1.1",
        "esm-env": "^1.2.1",
-
        "esrap": "^1.4.3",
+
        "esrap": "^1.4.6",
        "is-reference": "^3.0.3",
        "locate-character": "^3.0.0",
        "magic-string": "^0.30.11",
@@ -4032,9 +4287,9 @@
      }
    },
    "node_modules/svelte-check": {
-
      "version": "4.1.4",
-
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.1.4.tgz",
-
      "integrity": "sha512-v0j7yLbT29MezzaQJPEDwksybTE2Ups9rUxEXy92T06TiA0cbqcO8wAOwNUVkFW6B0hsYHA+oAX3BS8b/2oHtw==",
+
      "version": "4.2.1",
+
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.2.1.tgz",
+
      "integrity": "sha512-e49SU1RStvQhoipkQ/aonDhHnG3qxHSBtNfBRb9pxVXoa+N7qybAo32KgA9wEb2PCYFNaDg7bZCdhLD1vHpdYA==",
      "dev": true,
      "dependencies": {
        "@jridgewell/trace-mapping": "^0.3.25",
@@ -4055,9 +4310,9 @@
      }
    },
    "node_modules/svelte-check/node_modules/fdir": {
-
      "version": "6.4.3",
-
      "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
-
      "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+
      "version": "6.4.4",
+
      "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
+
      "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
      "dev": true,
      "peerDependencies": {
        "picomatch": "^3 || ^4"
@@ -4083,19 +4338,20 @@
      }
    },
    "node_modules/svelte-eslint-parser": {
-
      "version": "0.43.0",
-
      "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.43.0.tgz",
-
      "integrity": "sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==",
+
      "version": "1.2.0",
+
      "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.2.0.tgz",
+
      "integrity": "sha512-mbPtajIeuiyU80BEyGvwAktBeTX7KCr5/0l+uRGLq1dafwRNrjfM5kHGJScEBlPG3ipu6dJqfW/k0/fujvIEVw==",
      "dev": true,
      "dependencies": {
-
        "eslint-scope": "^7.2.2",
-
        "eslint-visitor-keys": "^3.4.3",
-
        "espree": "^9.6.1",
-
        "postcss": "^8.4.39",
-
        "postcss-scss": "^4.0.9"
+
        "eslint-scope": "^8.2.0",
+
        "eslint-visitor-keys": "^4.0.0",
+
        "espree": "^10.0.0",
+
        "postcss": "^8.4.49",
+
        "postcss-scss": "^4.0.9",
+
        "postcss-selector-parser": "^7.0.0"
      },
      "engines": {
-
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "url": "https://github.com/sponsors/ota-meshi"
@@ -4109,63 +4365,60 @@
        }
      }
    },
-
    "node_modules/svelte-eslint-parser/node_modules/eslint-scope": {
-
      "version": "7.2.2",
-
      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
-
      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+
    "node_modules/tinybench": {
+
      "version": "2.9.0",
+
      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+
      "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
+
      "dev": true
+
    },
+
    "node_modules/tinyexec": {
+
      "version": "0.3.2",
+
      "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
+
      "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
+
      "dev": true
+
    },
+
    "node_modules/tinyglobby": {
+
      "version": "0.2.13",
+
      "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
+
      "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
      "dev": true,
      "dependencies": {
-
        "esrecurse": "^4.3.0",
-
        "estraverse": "^5.2.0"
+
        "fdir": "^6.4.4",
+
        "picomatch": "^4.0.2"
      },
      "engines": {
-
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
        "node": ">=12.0.0"
      },
      "funding": {
-
        "url": "https://opencollective.com/eslint"
+
        "url": "https://github.com/sponsors/SuperchupuDev"
      }
    },
-
    "node_modules/svelte-eslint-parser/node_modules/eslint-visitor-keys": {
-
      "version": "3.4.3",
-
      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
-
      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+
    "node_modules/tinyglobby/node_modules/fdir": {
+
      "version": "6.4.4",
+
      "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
+
      "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
      "dev": true,
-
      "engines": {
-
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
      "peerDependencies": {
+
        "picomatch": "^3 || ^4"
      },
-
      "funding": {
-
        "url": "https://opencollective.com/eslint"
+
      "peerDependenciesMeta": {
+
        "picomatch": {
+
          "optional": true
+
        }
      }
    },
-
    "node_modules/svelte-eslint-parser/node_modules/espree": {
-
      "version": "9.6.1",
-
      "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
-
      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+
    "node_modules/tinyglobby/node_modules/picomatch": {
+
      "version": "4.0.2",
+
      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+
      "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
      "dev": true,
-
      "dependencies": {
-
        "acorn": "^8.9.0",
-
        "acorn-jsx": "^5.3.2",
-
        "eslint-visitor-keys": "^3.4.1"
-
      },
      "engines": {
-
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
        "node": ">=12"
      },
      "funding": {
-
        "url": "https://opencollective.com/eslint"
+
        "url": "https://github.com/sponsors/jonschlinkert"
      }
    },
-
    "node_modules/tinybench": {
-
      "version": "2.9.0",
-
      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
-
      "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
-
      "dev": true
-
    },
-
    "node_modules/tinyexec": {
-
      "version": "0.3.2",
-
      "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
-
      "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
-
      "dev": true
-
    },
    "node_modules/tinypool": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
@@ -4215,9 +4468,9 @@
      }
    },
    "node_modules/ts-api-utils": {
-
      "version": "2.0.0",
-
      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz",
-
      "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==",
+
      "version": "2.1.0",
+
      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+
      "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
      "dev": true,
      "engines": {
        "node": ">=18.12"
@@ -4260,9 +4513,9 @@
      }
    },
    "node_modules/typescript": {
-
      "version": "5.7.3",
-
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
-
      "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+
      "version": "5.8.3",
+
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
+
      "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
      "dev": true,
      "bin": {
        "tsc": "bin/tsc",
@@ -4273,14 +4526,14 @@
      }
    },
    "node_modules/typescript-eslint": {
-
      "version": "8.22.0",
-
      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.22.0.tgz",
-
      "integrity": "sha512-Y2rj210FW1Wb6TWXzQc5+P+EWI9/zdS57hLEc0gnyuvdzWo8+Y8brKlbj0muejonhMI/xAZCnZZwjbIfv1CkOw==",
+
      "version": "8.32.1",
+
      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.32.1.tgz",
+
      "integrity": "sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/eslint-plugin": "8.22.0",
-
        "@typescript-eslint/parser": "8.22.0",
-
        "@typescript-eslint/utils": "8.22.0"
+
        "@typescript-eslint/eslint-plugin": "8.32.1",
+
        "@typescript-eslint/parser": "8.32.1",
+
        "@typescript-eslint/utils": "8.32.1"
      },
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4291,7 +4544,7 @@
      },
      "peerDependencies": {
        "eslint": "^8.57.0 || ^9.0.0",
-
        "typescript": ">=4.8.4 <5.8.0"
+
        "typescript": ">=4.8.4 <5.9.0"
      }
    },
    "node_modules/uc.micro": {
@@ -4300,9 +4553,9 @@
      "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
    },
    "node_modules/undici-types": {
-
      "version": "6.19.8",
-
      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
-
      "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+
      "version": "6.21.0",
+
      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+
      "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
      "dev": true
    },
    "node_modules/unicorn-magic": {
@@ -4430,20 +4683,23 @@
      }
    },
    "node_modules/vite": {
-
      "version": "5.4.14",
-
      "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz",
-
      "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
+
      "version": "6.3.5",
+
      "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
+
      "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
      "dev": true,
      "dependencies": {
-
        "esbuild": "^0.21.3",
-
        "postcss": "^8.4.43",
-
        "rollup": "^4.20.0"
+
        "esbuild": "^0.25.0",
+
        "fdir": "^6.4.4",
+
        "picomatch": "^4.0.2",
+
        "postcss": "^8.5.3",
+
        "rollup": "^4.34.9",
+
        "tinyglobby": "^0.2.13"
      },
      "bin": {
        "vite": "bin/vite.js"
      },
      "engines": {
-
        "node": "^18.0.0 || >=20.0.0"
+
        "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
      },
      "funding": {
        "url": "https://github.com/vitejs/vite?sponsor=1"
@@ -4452,19 +4708,25 @@
        "fsevents": "~2.3.3"
      },
      "peerDependencies": {
-
        "@types/node": "^18.0.0 || >=20.0.0",
+
        "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+
        "jiti": ">=1.21.0",
        "less": "*",
        "lightningcss": "^1.21.0",
        "sass": "*",
        "sass-embedded": "*",
        "stylus": "*",
        "sugarss": "*",
-
        "terser": "^5.4.0"
+
        "terser": "^5.16.0",
+
        "tsx": "^4.8.1",
+
        "yaml": "^2.4.2"
      },
      "peerDependenciesMeta": {
        "@types/node": {
          "optional": true
        },
+
        "jiti": {
+
          "optional": true
+
        },
        "less": {
          "optional": true
        },
@@ -4485,19 +4747,25 @@
        },
        "terser": {
          "optional": true
+
        },
+
        "tsx": {
+
          "optional": true
+
        },
+
        "yaml": {
+
          "optional": true
        }
      }
    },
    "node_modules/vite-node": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.4.tgz",
-
      "integrity": "sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.4.tgz",
+
      "integrity": "sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==",
      "dev": true,
      "dependencies": {
        "cac": "^6.7.14",
        "debug": "^4.4.0",
-
        "es-module-lexer": "^1.6.0",
-
        "pathe": "^2.0.2",
+
        "es-module-lexer": "^1.7.0",
+
        "pathe": "^2.0.3",
        "vite": "^5.0.0 || ^6.0.0"
      },
      "bin": {
@@ -4511,12 +4779,26 @@
      }
    },
    "node_modules/vite-plugin-virtual": {
-
      "version": "0.3.0",
-
      "resolved": "https://registry.npmjs.org/vite-plugin-virtual/-/vite-plugin-virtual-0.3.0.tgz",
-
      "integrity": "sha512-TOtrWw6jKrJNXfxhGRUiQzfAP1gRkYkVzMkJNjHUJ8idLuxf8eeeDKZKZHhdeYfaCc/87rv+KvWE2iCy1QInWA==",
+
      "version": "0.4.0",
+
      "resolved": "https://registry.npmjs.org/vite-plugin-virtual/-/vite-plugin-virtual-0.4.0.tgz",
+
      "integrity": "sha512-4N/vrRynD+DV4Uy2XtYxKgtujc/GQy4R7OWiuvDkMLAzS/JMCyn/L35fnaHcMMNMpO2wuXBj/FzqmJeZvy5Jwg==",
      "dev": true,
      "peerDependencies": {
-
        "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0"
+
        "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
+
      }
+
    },
+
    "node_modules/vite/node_modules/fdir": {
+
      "version": "6.4.4",
+
      "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
+
      "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
+
      "dev": true,
+
      "peerDependencies": {
+
        "picomatch": "^3 || ^4"
+
      },
+
      "peerDependenciesMeta": {
+
        "picomatch": {
+
          "optional": true
+
        }
      }
    },
    "node_modules/vite/node_modules/fsevents": {
@@ -4533,10 +4815,22 @@
        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
      }
    },
+
    "node_modules/vite/node_modules/picomatch": {
+
      "version": "4.0.2",
+
      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+
      "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">=12"
+
      },
+
      "funding": {
+
        "url": "https://github.com/sponsors/jonschlinkert"
+
      }
+
    },
    "node_modules/vitefu": {
-
      "version": "1.0.5",
-
      "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.5.tgz",
-
      "integrity": "sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==",
+
      "version": "1.0.6",
+
      "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.6.tgz",
+
      "integrity": "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==",
      "dev": true,
      "peerDependencies": {
        "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
@@ -4548,30 +4842,31 @@
      }
    },
    "node_modules/vitest": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.4.tgz",
-
      "integrity": "sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==",
-
      "dev": true,
-
      "dependencies": {
-
        "@vitest/expect": "3.0.4",
-
        "@vitest/mocker": "3.0.4",
-
        "@vitest/pretty-format": "^3.0.4",
-
        "@vitest/runner": "3.0.4",
-
        "@vitest/snapshot": "3.0.4",
-
        "@vitest/spy": "3.0.4",
-
        "@vitest/utils": "3.0.4",
-
        "chai": "^5.1.2",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.4.tgz",
+
      "integrity": "sha512-Ta56rT7uWxCSJXlBtKgIlApJnT6e6IGmTYxYcmxjJ4ujuZDI59GUQgVDObXXJujOmPDBYXHK1qmaGtneu6TNIQ==",
+
      "dev": true,
+
      "dependencies": {
+
        "@vitest/expect": "3.1.4",
+
        "@vitest/mocker": "3.1.4",
+
        "@vitest/pretty-format": "^3.1.4",
+
        "@vitest/runner": "3.1.4",
+
        "@vitest/snapshot": "3.1.4",
+
        "@vitest/spy": "3.1.4",
+
        "@vitest/utils": "3.1.4",
+
        "chai": "^5.2.0",
        "debug": "^4.4.0",
-
        "expect-type": "^1.1.0",
+
        "expect-type": "^1.2.1",
        "magic-string": "^0.30.17",
-
        "pathe": "^2.0.2",
-
        "std-env": "^3.8.0",
+
        "pathe": "^2.0.3",
+
        "std-env": "^3.9.0",
        "tinybench": "^2.9.0",
        "tinyexec": "^0.3.2",
+
        "tinyglobby": "^0.2.13",
        "tinypool": "^1.0.2",
        "tinyrainbow": "^2.0.0",
        "vite": "^5.0.0 || ^6.0.0",
-
        "vite-node": "3.0.4",
+
        "vite-node": "3.1.4",
        "why-is-node-running": "^2.3.0"
      },
      "bin": {
@@ -4587,8 +4882,8 @@
        "@edge-runtime/vm": "*",
        "@types/debug": "^4.1.12",
        "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
-
        "@vitest/browser": "3.0.4",
-
        "@vitest/ui": "3.0.4",
+
        "@vitest/browser": "3.1.4",
+
        "@vitest/ui": "3.1.4",
        "happy-dom": "*",
        "jsdom": "*"
      },
@@ -4627,16 +4922,16 @@
      "integrity": "sha512-rkvG4SraZQaPSN/5XjwKswdU0OP9MF28QjrYzUBbhb8QyG3ljB1Ky996m++jiI7KdiAP2CkBiQZd9pqEDTClqA=="
    },
    "node_modules/wait-on": {
-
      "version": "8.0.2",
-
      "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.2.tgz",
-
      "integrity": "sha512-qHlU6AawrgAIHlueGQHQ+ETcPLAauXbnoTKl3RKq20W0T8x0DKVAo5xWIYjHSyvHxQlcYbFdR0jp4T9bDVITFA==",
+
      "version": "8.0.3",
+
      "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.3.tgz",
+
      "integrity": "sha512-nQFqAFzZDeRxsu7S3C7LbuxslHhk+gnJZHyethuGKAn2IVleIbTB9I3vJSQiSR+DifUqmdzfPMoMPJfLqMF2vw==",
      "dev": true,
      "dependencies": {
-
        "axios": "^1.7.9",
+
        "axios": "^1.8.2",
        "joi": "^17.13.3",
        "lodash": "^4.17.21",
        "minimist": "^1.2.8",
-
        "rxjs": "^7.8.1"
+
        "rxjs": "^7.8.2"
      },
      "bin": {
        "wait-on": "bin/wait-on"
@@ -4713,12 +5008,17 @@
      }
    },
    "node_modules/yaml": {
-
      "version": "1.10.2",
-
      "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
-
      "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+
      "version": "2.8.0",
+
      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
+
      "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
      "dev": true,
+
      "optional": true,
+
      "peer": true,
+
      "bin": {
+
        "yaml": "bin.mjs"
+
      },
      "engines": {
-
        "node": ">= 6"
+
        "node": ">= 14.6"
      }
    },
    "node_modules/yocto-queue": {
@@ -4751,9 +5051,9 @@
      "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w=="
    },
    "node_modules/zod": {
-
      "version": "3.24.1",
-
      "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz",
-
      "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==",
+
      "version": "3.25.17",
+
      "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.17.tgz",
+
      "integrity": "sha512-8hQzQ/kMOIFbwOgPrm9Sf9rtFHpFUMy4HvN0yEB0spw14aYi0uT5xG5CE2DB9cd51GWNsz+DNO7se1kztHMKnw==",
      "funding": {
        "url": "https://github.com/sponsors/colinhacks"
      }
modified package.json
@@ -20,59 +20,59 @@
    "node": ">=18.17.1"
  },
  "devDependencies": {
-
    "@eslint/js": "^9.19.0",
-
    "@playwright/test": "^1.50.1",
-
    "@sveltejs/vite-plugin-svelte": "^4.0.4",
+
    "@eslint/js": "^9.27.0",
+
    "@playwright/test": "^1.52.0",
+
    "@sveltejs/vite-plugin-svelte": "^5.0.3",
    "@tsconfig/svelte": "^5.0.4",
    "@types/config": "^3.3.5",
    "@types/katex": "^0.16.7",
-
    "@types/lodash": "^4.17.15",
+
    "@types/lodash": "^4.17.17",
    "@types/md5": "^2.3.5",
-
    "@types/node": "^20.14.12",
+
    "@types/node": "^22.15.21",
    "@types/wait-on": "^5.3.4",
-
    "@typescript-eslint/parser": "^8.22.0",
+
    "@typescript-eslint/parser": "^8.32.1",
    "chalk": "^5.4.1",
-
    "config": "^3.3.12",
-
    "eslint": "^9.19.0",
-
    "eslint-config-prettier": "^10.0.1",
-
    "eslint-plugin-svelte": "^2.46.1",
-
    "execa": "^9.5.2",
+
    "config": "^4.0.0",
+
    "eslint": "^9.27.0",
+
    "eslint-config-prettier": "^10.1.5",
+
    "eslint-plugin-svelte": "^3.9.0",
+
    "execa": "^9.5.3",
    "get-port": "^7.1.0",
-
    "globals": "^15.14.0",
-
    "happy-dom": "^16.8.1",
-
    "prettier": "^3.4.2",
-
    "prettier-plugin-svelte": "^3.3.3",
-
    "svelte-check": "^4.1.4",
-
    "svelte-eslint-parser": "^0.43.0",
-
    "typescript": "^5.7.3",
-
    "typescript-eslint": "^8.22.0",
-
    "vite": "^5.4.14",
-
    "vite-plugin-virtual": "^0.3.0",
-
    "vitest": "^3.0.4",
-
    "wait-on": "^8.0.2"
+
    "globals": "^16.1.0",
+
    "happy-dom": "^17.4.7",
+
    "prettier": "^3.5.3",
+
    "prettier-plugin-svelte": "^3.4.0",
+
    "svelte-check": "^4.2.1",
+
    "svelte-eslint-parser": "^1.2.0",
+
    "typescript": "^5.8.3",
+
    "typescript-eslint": "^8.32.1",
+
    "vite": "^6.3.5",
+
    "vite-plugin-virtual": "^0.4.0",
+
    "vitest": "^3.1.4",
+
    "wait-on": "^8.0.3"
  },
  "dependencies": {
    "@radicle/gray-matter": "4.1.0",
-
    "@wooorm/starry-night": "^3.6.0",
+
    "@wooorm/starry-night": "^3.7.0",
    "async-mutex": "^0.5.0",
-
    "baconjs": "^3.0.19",
+
    "baconjs": "^3.0.23",
    "bs58": "^6.0.0",
    "buffer": "^6.0.3",
    "compare-versions": "^6.1.1",
-
    "dompurify": "^3.2.4",
+
    "dompurify": "^3.2.6",
    "fuzzysort": "^3.1.0",
-
    "hast-util-to-dom": "^4.0.0",
-
    "hast-util-to-html": "^9.0.4",
+
    "hast-util-to-dom": "^4.0.1",
+
    "hast-util-to-html": "^9.0.5",
    "lodash": "^4.17.21",
-
    "lru-cache": "^11.0.2",
-
    "marked": "^15.0.6",
-
    "marked-emoji": "^1.4.3",
+
    "lru-cache": "^11.1.0",
+
    "marked": "^15.0.12",
+
    "marked-emoji": "^2.0.0",
    "marked-footnote": "^1.2.4",
    "marked-katex-extension": "^5.1.4",
    "marked-linkify-it": "^3.1.12",
    "md5": "^2.3.0",
-
    "svelte": "^5.19.6",
+
    "svelte": "^5.30.0",
    "twemoji": "^14.0.2",
-
    "zod": "^3.24.1"
+
    "zod": "^3.25.16"
  }
}
modified src/components/IconLarge.svelte
@@ -29,7 +29,7 @@
  height="48"
  width="48"
  fill="currentColor"
-
  viewBox={"0 0 24 24"}>
+
  viewBox="0 0 24 24">
  {#if name === "alert"}
    <path
      fill-rule="evenodd"
modified src/components/RepoCard.svelte
@@ -87,7 +87,6 @@
  }

  .title * {
-
    line-clamp: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
@@ -146,7 +145,7 @@
      <ActivityDiagram
        id={repo.rid}
        viewBoxHeight={200}
-
        styleColor="var(--color-foreground-primary"
+
        styleColor="var(--color-foreground-primary)"
        activity={repoInfo.activity} />
    </div>
    <div class="title">
modified src/components/Thread.svelte
@@ -47,7 +47,7 @@
      {baseUrl}
      {rawPath}
      id={root.id}
-
      lastEdit={root.edits.length > 1 ? root.edits.pop() : undefined}
+
      lastEdit={root.edits.length > 1 ? root.edits.at(-1) : undefined}
      authorId={root.author.id}
      authorAlias={root.author.alias}
      reactions={root.reactions}
@@ -62,7 +62,7 @@
        <CommentComponent
          {baseUrl}
          {rawPath}
-
          lastEdit={reply.edits.length > 1 ? reply.edits.pop() : undefined}
+
          lastEdit={reply.edits.length > 1 ? reply.edits.at(-1) : undefined}
          id={reply.id}
          authorId={reply.author.id}
          authorAlias={reply.author.alias}
modified src/lib/mutexExecutor.ts
@@ -4,7 +4,6 @@
// with Radicle Linking Exception. For full terms see the included
// LICENSE file.

-
//@ts-expect-error the typescript bindings are out of date.
import * as Bacon from "baconjs";

// A task executor that runs only one task concurrently. If a new task
modified src/views/nodes/SeedSelector.ts
@@ -2,15 +2,15 @@ import type { BaseUrl } from "@http-client";

import isEqual from "lodash/isEqual";
import storedWritable from "@app/lib/localStore";
-
import { array, number, string, object } from "zod";
+
import * as z from "zod";
import { get } from "svelte/store";

import config from "@app/lib/config";

-
const seedSchema = object({
-
  hostname: string(),
-
  port: number(),
-
  scheme: string(),
+
const seedSchema = z.object({
+
  hostname: z.string(),
+
  port: z.number(),
+
  scheme: z.string(),
});

// Seed that is opened on cold app start on the landing page.
@@ -24,7 +24,7 @@ export const selectedSeed = storedWritable<BaseUrl | undefined>(
// A list of seeds that the user has explicitly bookmarked.
export const bookmarkedSeeds = storedWritable<BaseUrl[]>(
  "bookmarkedSeeds",
-
  array(seedSchema),
+
  z.array(seedSchema),
  [],
  !window.localStorage,
);
modified src/views/repos/Changeset/FileDiff.svelte
@@ -64,7 +64,9 @@
  $: if (visible) {
    syntaxHighlightingLoading = true;
    void highlightContent().then(output => {
+
      // eslint-disable-next-line
      highlighting = output;
+
      // eslint-disable-next-line
      syntaxHighlightingLoading = false;
    });
  }
modified src/views/repos/Patch/CompareButton.svelte
@@ -13,5 +13,5 @@
    style:font-family="var(--font-family-monospace)">
    {fromCommit.substring(0, 6)}..{toCommit.substring(0, 6)}
  </span>
-
  <Icon name={"chevron-down"} />
+
  <Icon name="chevron-down" />
</Button>
modified src/views/repos/Sidebar.svelte
@@ -297,10 +297,7 @@
    <!-- Footer -->
    {#if !collapsedOnly}
      <div class="sidebar-footer" style:flex-direction="row">
-
        <Button
-
          title={"Collapse"}
-
          on:click={toggleSidebar}
-
          variant="background">
+
        <Button title="Collapse" on:click={toggleSidebar} variant="background">
          <div class="icon" class:expanded>
            <Icon name="chevron-left" />
          </div>
modified src/views/repos/Source/Blob.svelte
@@ -159,6 +159,7 @@
            styleBorderRadius="0"
            variant={!preview ? "selected" : "not-selected"}
            on:click={() => {
+
              // eslint-disable-next-line
              preview = false;
            }}>
            <Icon name="chevron-left-right" />Code
@@ -168,6 +169,7 @@
            variant={preview ? "selected" : "not-selected"}
            on:click={() => {
              window.location.hash = "";
+
              // eslint-disable-next-line
              preview = true;
            }}>
            <Icon name="eye-open" />Preview
modified src/views/repos/Source/PeerBranchSelector.svelte
@@ -119,7 +119,7 @@
      slot="toggle"
      let:expanded
      let:toggle
-
      styleBorderRadius={"var(--border-radius-tiny) 0 0 var(--border-radius-tiny)"}
+
      styleBorderRadius="var(--border-radius-tiny) 0 0 var(--border-radius-tiny)"
      styleWidth="100%"
      on:click={toggle}
      title="Change branch"
modified src/views/repos/Source/Tree/Folder.svelte
@@ -81,6 +81,7 @@
  tabindex="0"
  class="folder"
  on:click={() => {
+
    // eslint-disable-next-line
    expanded = !expanded;
  }}>
  <div class="icon-container" class:expanded>
modified tests/unit/mutexExecutor.test.ts
@@ -94,7 +94,7 @@ describe("worker", () => {
    });

    const outputs: number[] = [];
-
    w.output.onValue((value: never) => outputs.push(value));
+
    w.output.onValue(value => outputs.push(value));

    await w.submit(1);
    await w.submit(2);