diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000..174832e0ae --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,52 @@ +# Repository Guidelines + +## Project Structure & Module Organization + +- `src/`: SvelteKit app source. + - `src/lib/`: reusable components, elements, actions, helpers, stores, charts, images. + - `src/routes/`: route groups and pages (e.g., `+layout.svelte`, `+page.ts`). + - `src/themes/`, `hooks.*.ts`, `service-worker.ts`: app-wide setup. +- `static/`: public assets served as-is. +- `build/`: compiled output (local builds). +- `e2e/`: Playwright tests (`helpers/`, `journeys/`, `steps/`). +- Tooling: `eslint.config.js`, `.prettierrc`, `playwright.config.ts`, `vitest-setup-client.ts`. + +## Build, Test, and Development Commands + +- `pnpm dev`: start Vite dev server. +- `pnpm build`: production build via `build.js`. +- `pnpm preview`: preview the production build. +- `pnpm check`: Svelte/TS diagnostics. +- `pnpm format` / `pnpm lint`: format with Prettier, then lint with ESLint. +- `pnpm test` | `pnpm test:watch` | `pnpm test:ui`: run Vitest (unit/component tests). +- `pnpm e2e` | `pnpm e2e:ui`: run Playwright tests; config auto-builds and serves. + Requires Node >= 20 and pnpm (see `packageManager`). + +## Coding Style & Naming Conventions + +- Language: TypeScript + Svelte. +- Prettier: 4‑space indentation, single quotes, width 100, bracketSameLine. +- Svelte files: PascalCase components in `src/lib`, route files follow SvelteKit (`+page.svelte`, `+layout.ts`). +- Variables/functions: `camelCase`; constants: `SCREAMING_SNAKE_CASE`; types/interfaces: `PascalCase`. +- Keep logic in `$lib` and thin route loaders/actions. + +## Testing Guidelines + +- Unit/component: Vitest + Testing Library. + - Place near source or under `src/`; name `*.test.ts`/`*.test.svelte`. + - Run with `pnpm test`. +- End‑to‑end: Playwright under `e2e/`. + - Start with `pnpm e2e` (uses `playwright.config.ts` to build/preview on port 4173). + +## Commit & Pull Request Guidelines + +- Branch names: `TYPE-ISSUEID-short-description` (e.g., `feat-1234-add-billing-chart`). +- Commits: imperative, concise, reference issues when relevant. +- PRs: clear description, linked issues, screenshots/GIFs for UI changes, test coverage notes, and checklist of affected areas. +- Keep PRs focused; include `pnpm format`, `pnpm lint`, `pnpm check`, and `pnpm test` clean runs before requesting review. + +## Security & Configuration Tips + +- Do not commit secrets; use `.env` based on `.env.example`. +- Sentry/Stripe and other public keys are configured via env vars; prefer `PUBLIC_` prefix for client‑exposed values. +- Use `compose.yml`/`Dockerfile` for containerized workflows when needed. diff --git a/Dockerfile b/Dockerfile index e172247b67..ab1a1a9316 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN corepack prepare pnpm@10.0.0 --activate ADD ./package.json /app/package.json ADD ./pnpm-lock.yaml /app/pnpm-lock.yaml -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm install --frozen-lockfile ADD ./build.js /app/build.js ADD ./tsconfig.json /app/tsconfig.json diff --git a/package.json b/package.json index 3104f604a4..17a63f970a 100644 --- a/package.json +++ b/package.json @@ -95,5 +95,5 @@ "svelte-preprocess" ] }, - "packageManager": "pnpm@10.15.0" + "packageManager": "pnpm@10.16.1+sha512.0e155aa2629db8672b49e8475da6226aa4bdea85fdcdfdc15350874946d4f3c91faaf64cbdc4a5d1ab8002f473d5c3fcedcd197989cf0390f9badd3c04678706" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28f2888f7f..85d3210d0a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@ai-sdk/svelte': specifier: ^1.1.24 - version: 1.1.24(svelte@5.25.3)(zod@3.24.3) + version: 1.1.24(svelte@5.38.10)(zod@3.25.76) '@appwrite.io/console': specifier: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@2428 version: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@2428 @@ -19,13 +19,13 @@ importers: version: 0.25.0 '@appwrite.io/pink-icons-svelte': specifier: ^2.0.0-RC.1 - version: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9(svelte@5.25.3) + version: 2.0.0-RC.1(svelte@5.38.10) '@appwrite.io/pink-legacy': specifier: ^1.0.3 version: 1.0.3 '@appwrite.io/pink-svelte': specifier: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@18188b7 - version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@18188b7(svelte@5.25.3) + version: https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@18188b7(svelte@5.38.10) '@faker-js/faker': specifier: ^9.9.0 version: 9.9.0 @@ -34,22 +34,22 @@ importers: version: 2.11.8 '@sentry/sveltekit': specifier: ^8.38.0 - version: 8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)(@sveltejs/kit@2.36.3(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) + version: 8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)(@sveltejs/kit@2.41.0(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) '@stripe/stripe-js': specifier: ^3.5.0 version: 3.5.0 ai: specifier: ^2.2.37 - version: 2.2.37(react@18.3.1)(solid-js@1.9.5)(svelte@5.25.3)(vue@3.5.13(typescript@5.8.2)) + version: 2.2.37(react@18.3.1)(solid-js@1.9.9)(svelte@5.38.10)(vue@3.5.21(typescript@5.9.2)) analytics: specifier: ^0.8.16 - version: 0.8.16(@types/dlv@1.1.5) + version: 0.8.19(@types/dlv@1.1.5) cron-parser: specifier: ^4.9.0 version: 4.9.0 dayjs: specifier: ^1.11.13 - version: 1.11.13 + version: 1.11.18 deep-equal: specifier: ^2.2.3 version: 2.2.3 @@ -79,47 +79,47 @@ importers: version: 2.0.1 svelte-confetti: specifier: ^1.4.0 - version: 1.4.0(svelte@5.25.3) + version: 1.4.0(svelte@5.38.10) tippy.js: specifier: ^6.3.7 version: 6.3.7 devDependencies: '@eslint/compat': specifier: ^1.3.1 - version: 1.3.1(eslint@9.31.0) + version: 1.3.2(eslint@9.35.0) '@eslint/js': specifier: ^9.31.0 - version: 9.31.0 + version: 9.35.0 '@melt-ui/pp': specifier: ^0.3.2 - version: 0.3.2(@melt-ui/svelte@0.86.5(svelte@5.25.3))(svelte@5.25.3) + version: 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.38.10))(svelte@5.38.10) '@melt-ui/svelte': specifier: ^0.86.5 - version: 0.86.5(svelte@5.25.3) + version: 0.86.6(svelte@5.38.10) '@playwright/test': specifier: ^1.51.1 - version: 1.51.1 + version: 1.55.0 '@sveltejs/adapter-static': specifier: ^3.0.8 - version: 3.0.8(@sveltejs/kit@2.36.3(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0))) + version: 3.0.9(@sveltejs/kit@2.41.0(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1))) '@sveltejs/kit': specifier: ^2.36.2 - version: 2.36.3(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) + version: 2.41.0(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) + version: 5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) '@testing-library/dom': specifier: ^10.4.0 - version: 10.4.0 + version: 10.4.1 '@testing-library/jest-dom': specifier: ^6.6.3 - version: 6.6.3 + version: 6.8.0 '@testing-library/svelte': specifier: ^5.2.8 - version: 5.2.8(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0))(vitest@3.2.4) + version: 5.2.8(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1))(vitest@3.2.4) '@testing-library/user-event': specifier: ^14.6.1 - version: 14.6.1(@testing-library/dom@10.4.0) + version: 14.6.1(@testing-library/dom@10.4.1) '@types/deep-equal': specifier: ^1.0.4 version: 1.0.4 @@ -131,28 +131,28 @@ importers: version: 2.0.8 '@typescript-eslint/eslint-plugin': specifier: ^8.28.0 - version: 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.31.0)(typescript@5.8.2))(eslint@9.31.0)(typescript@5.8.2) + version: 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0)(typescript@5.9.2))(eslint@9.35.0)(typescript@5.9.2) '@typescript-eslint/parser': specifier: ^8.28.0 - version: 8.28.0(eslint@9.31.0)(typescript@5.8.2) + version: 8.44.0(eslint@9.35.0)(typescript@5.9.2) '@vitest/ui': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) color: specifier: ^5.0.0 - version: 5.0.0 + version: 5.0.2 eslint: specifier: ^9.31.0 - version: 9.31.0 + version: 9.35.0 eslint-config-prettier: specifier: ^10.1.0 - version: 10.1.1(eslint@9.31.0) + version: 10.1.8(eslint@9.35.0) eslint-plugin-svelte: specifier: ^3.3.3 - version: 3.3.3(eslint@9.31.0)(svelte@5.25.3) + version: 3.12.3(eslint@9.35.0)(svelte@5.38.10) globals: specifier: ^16.0.0 - version: 16.0.0 + version: 16.4.0 jsdom: specifier: ^26.1.0 version: 26.1.0 @@ -161,48 +161,48 @@ importers: version: 4.1.5 prettier: specifier: ^3.5.3 - version: 3.5.3 + version: 3.6.2 prettier-plugin-svelte: specifier: ^3.3.3 - version: 3.3.3(prettier@3.5.3)(svelte@5.25.3) + version: 3.4.0(prettier@3.6.2)(svelte@5.38.10) sass: specifier: ^1.86.0 - version: 1.86.0 + version: 1.92.1 svelte: specifier: ^5.25.3 - version: 5.25.3 + version: 5.38.10 svelte-check: specifier: ^4.1.5 - version: 4.1.5(picomatch@4.0.3)(svelte@5.25.3)(typescript@5.8.2) + version: 4.3.1(picomatch@4.0.3)(svelte@5.38.10)(typescript@5.9.2) svelte-preprocess: specifier: ^6.0.3 - version: 6.0.3(@babel/core@7.26.10)(postcss-load-config@3.1.4(postcss@8.5.3))(postcss@8.5.3)(sass@1.86.0)(svelte@5.25.3)(typescript@5.8.2) + version: 6.0.3(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6))(postcss@8.5.6)(sass@1.92.1)(svelte@5.38.10)(typescript@5.9.2) svelte-sequential-preprocessor: specifier: ^2.0.2 version: 2.0.2 tldts: specifier: ^7.0.7 - version: 7.0.7 + version: 7.0.14 tslib: specifier: ^2.8.1 version: 2.8.1 typescript: specifier: ^5.8.2 - version: 5.8.2 + version: 5.9.2 typescript-eslint: specifier: ^8.30.1 - version: 8.30.1(eslint@9.31.0)(typescript@5.8.2) + version: 8.44.0(eslint@9.35.0)(typescript@5.9.2) vite: specifier: ^7.0.6 - version: 7.0.6(@types/node@22.13.14)(sass@1.86.0) + version: 7.1.5(@types/node@24.5.0)(sass@1.92.1) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@22.13.14)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.86.0) + version: 3.2.4(@types/node@24.5.0)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.92.1) packages: - '@adobe/css-tools@4.4.2': - resolution: {integrity: sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==} + '@adobe/css-tools@4.4.4': + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} '@ai-sdk/provider-utils@2.1.13': resolution: {integrity: sha512-kLjqsfOdONr6DGcGEntFYM1niXz1H05vyZNf9OAzK+KKKc64izyP4/q/9HX7W4+6g8hm6BnmKxu8vkr6FSOqDg==} @@ -239,26 +239,26 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@analytics/cookie-utils@0.2.12': - resolution: {integrity: sha512-2h/yuIu3kmu+ZJlKmlT6GoRvUEY2k1BbQBezEv5kGhnn9KpmzPz715Y3GmM2i+m7Y0QmBdVUoA260dQZkofs2A==} + '@analytics/cookie-utils@0.2.14': + resolution: {integrity: sha512-x51x2cLqvP5Fb1ydgNvTCX+SVv0ALK/yTNwp/53++yk4kLhxb850krWtQ4aASN0612oXrIGotwfmdJIttnLiPQ==} - '@analytics/core@0.12.17': - resolution: {integrity: sha512-GMxRm5Dp3Wam/w5NNvqNKMO6zWecozbVv21Kn4WhftCx6OjJI7zMlVtiLpjGjxa0RRZfVG80YhupF0Qh9XL2gw==} + '@analytics/core@0.13.2': + resolution: {integrity: sha512-ejvfoPP8TEh2hA2szMEq9c4TdeX8FAeY1j/7MxJVZjzDaq8BDHOyaAAQzTFiLMHvV0WcU2YC0smJ5Ids5Ll5ng==} - '@analytics/global-storage-utils@0.1.7': - resolution: {integrity: sha512-V+spzGLZYm4biZT4uefaylm80SrLXf8WOTv9hCgA46cLcyxx3LD4GCpssp1lj+RcWLl/uXJQBRO4Mnn/o1x6Gw==} + '@analytics/global-storage-utils@0.1.9': + resolution: {integrity: sha512-+xm6CDnWsVOQIKkqbPRPRdYDXKk3PNgr/bCZWSI+7tEDT5PCDgI0QSBZe+FqCVkCRtTkgOrjFOY7wOM8Gq+ndA==} - '@analytics/localstorage-utils@0.1.10': - resolution: {integrity: sha512-uJS+Jp1yLG5VFCgA5T82ZODYBS0xuDQx0NtAZrgbqt9j51BX3TcgmOez5LVkrUNu/lpbxjCLq35I4TKj78VmOQ==} + '@analytics/localstorage-utils@0.1.12': + resolution: {integrity: sha512-BL3vuZUwWgMqdkQsE0GKsED5SPLC6daI4K4LE0a/BkKv+4Cae5JLLqpO5gju2HUGOjJxIvw8U/G5EcglNY5+1w==} - '@analytics/session-storage-utils@0.0.7': - resolution: {integrity: sha512-PSv40UxG96HVcjY15e3zOqU2n8IqXnH8XvTkg1X43uXNTKVSebiI2kUjA3Q7ESFbw5DPwcLbJhV7GforpuBLDw==} + '@analytics/session-storage-utils@0.0.9': + resolution: {integrity: sha512-fhP9QCpyq45rZKsXaAxyz+VTmOUWljIW08CWSkFzpwOHkDM4Xy5tymc1YcWqSBBaLjHldo3HlY4qfqEIS4Aj1A==} - '@analytics/storage-utils@0.4.2': - resolution: {integrity: sha512-AXObwyVQw9h2uJh1t2hUgabtVxzYpW+7uKVbdHQK80vr3Td5rrmCxrCxarh7HUuAgSDZ0bZWqmYxVgmwKceaLg==} + '@analytics/storage-utils@0.4.4': + resolution: {integrity: sha512-873P4wDIunbOnBqADc2AhTVsLbluUv1dP6k9UrK8FIeV8WXv5+fG12HdwwaniUIxq6QLgZJfKEaCwtWSKrrV0g==} - '@analytics/type-utils@0.6.2': - resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==} + '@analytics/type-utils@0.6.4': + resolution: {integrity: sha512-Ou1gQxFakOWLcPnbFVsrPb8g1wLLUZYYJXDPjHkG07+5mustGs5yqACx42UAu4A6NszNN6Z5gGxhyH45zPWRxw==} '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@2428': resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@2428} @@ -269,12 +269,6 @@ packages: peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9': - resolution: {tarball: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9} - version: 2.0.0-RC.1 - peerDependencies: - svelte: ^4.0.0 - '@appwrite.io/pink-icons@0.25.0': resolution: {integrity: sha512-0O3i2oEuh5mWvjO80i+X6rbzrWLJ1m5wmv2/M3a1p2PyBJsFxN8xQMTEmTn3Wl/D26SsM7SpzbdW6gmfgoVU9Q==} @@ -290,273 +284,266 @@ packages: peerDependencies: svelte: ^4.0.0 - '@asamuzakjp/css-color@3.1.1': - resolution: {integrity: sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==} + '@asamuzakjp/css-color@3.2.0': + resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + '@babel/compat-data@7.28.4': + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.10': - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} + '@babel/core@7.28.4': + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.0': - resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} + '@babel/generator@7.28.3': + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.0': - resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.0': - resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.0': - resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime@7.27.0': - resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.0': - resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.0': - resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} + '@babel/traverse@7.28.4': + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.0': - resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} - engines: {node: '>=6.9.0'} - - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} engines: {node: '>=18'} - '@csstools/css-calc@2.1.2': - resolution: {integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==} + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@3.0.8': - resolution: {integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==} + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-parser-algorithms@3.0.4': - resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-tokenizer@3.0.3': - resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} - '@esbuild/aix-ppc64@0.25.1': - resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + '@esbuild/aix-ppc64@0.25.9': + resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.1': - resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + '@esbuild/android-arm64@0.25.9': + resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.1': - resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + '@esbuild/android-arm@0.25.9': + resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.1': - resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + '@esbuild/android-x64@0.25.9': + resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.1': - resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + '@esbuild/darwin-arm64@0.25.9': + resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.1': - resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + '@esbuild/darwin-x64@0.25.9': + resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.1': - resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + '@esbuild/freebsd-arm64@0.25.9': + resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.1': - resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + '@esbuild/freebsd-x64@0.25.9': + resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.1': - resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + '@esbuild/linux-arm64@0.25.9': + resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.1': - resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + '@esbuild/linux-arm@0.25.9': + resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.1': - resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + '@esbuild/linux-ia32@0.25.9': + resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.1': - resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + '@esbuild/linux-loong64@0.25.9': + resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.1': - resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + '@esbuild/linux-mips64el@0.25.9': + resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.1': - resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + '@esbuild/linux-ppc64@0.25.9': + resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.1': - resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + '@esbuild/linux-riscv64@0.25.9': + resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.1': - resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + '@esbuild/linux-s390x@0.25.9': + resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.1': - resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + '@esbuild/linux-x64@0.25.9': + resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.1': - resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + '@esbuild/netbsd-arm64@0.25.9': + resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.1': - resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + '@esbuild/netbsd-x64@0.25.9': + resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.1': - resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + '@esbuild/openbsd-arm64@0.25.9': + resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.1': - resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + '@esbuild/openbsd-x64@0.25.9': + resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.1': - resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + '@esbuild/openharmony-arm64@0.25.9': + resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.9': + resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.1': - resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + '@esbuild/win32-arm64@0.25.9': + resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.1': - resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + '@esbuild/win32-ia32@0.25.9': + resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.1': - resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + '@esbuild/win32-x64@0.25.9': + resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.5.1': - resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -565,8 +552,8 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@1.3.1': - resolution: {integrity: sha512-k8MHony59I5EPic6EQTCNOuPoVBnoYXkP+20xvwFjN7t0qI3ImyvyBgg+hIVPwC8JaxVjjUZld+cLfBLFDLucg==} + '@eslint/compat@1.3.2': + resolution: {integrity: sha512-jRNwzTbd6p2Rw4sZ1CgWRS8YMtqG15YyZf7zvb6gY2rB2u6n+2Z+ELW0GtL0fQgyl0pr4Y/BzBfng/BdsereRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.40 || 9 @@ -578,86 +565,77 @@ packages: resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.3.0': - resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} + '@eslint/config-helpers@0.3.1': + resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.15.1': - resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} + '@eslint/core@0.15.2': + resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.31.0': - resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==} + '@eslint/js@9.35.0': + resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.3': - resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} + '@eslint/plugin-kit@0.3.5': + resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@faker-js/faker@9.9.0': resolution: {integrity: sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + '@floating-ui/core@1.7.3': + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + '@floating-ui/dom@1.7.4': + resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} - engines: {node: '>=18.18'} + '@internationalized/date@3.9.0': + resolution: {integrity: sha512-yaN3brAnHRD+4KyyOsJyk49XUvj2wtbNACSqg0bz3u8t2VuzhC8Q5dfRnrSxjnnbDb+ienBnkn1TzQfE154vyg==} - '@internationalized/date@3.7.0': - resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@melt-ui/pp@0.3.2': resolution: {integrity: sha512-xKkPvaIAFinklLXcQOpwZ8YSpqAFxykjWf8Y/fSJQwsixV/0rcFs07hJ49hJjPy5vItvw5Qa0uOjzFUbXzBypQ==} @@ -665,11 +643,6 @@ packages: '@melt-ui/svelte': '>= 0.29.0' svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1 - '@melt-ui/svelte@0.86.5': - resolution: {integrity: sha512-aaVfc0pxCf6B3ByrzGJ+hB2Sop9wJamw2lNHZlzaolU0Ew1D6O9CbeJElGODT8IbH8/bhI3LcN0nCJRh2ePq+A==} - peerDependencies: - svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.118 - '@melt-ui/svelte@0.86.6': resolution: {integrity: sha512-Jer+M7DgIwT5IHfTayb4Iw/fkkxWNmC/mqn/nMh9JrbPbkxmyabfLQnhJ+JDn5HK77f84j34lubO3iqFtYAfMg==} peerDependencies: @@ -901,8 +874,8 @@ packages: resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.30.0': - resolution: {integrity: sha512-4VlGgo32k2EQ2wcCY3vEU28A0O13aOtHz3Xt2/2U5FAh9EfhD6t6DqL5Z6yAnRCntbTFDU4YfbpyzSlHNWycPw==} + '@opentelemetry/semantic-conventions@1.37.0': + resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} '@opentelemetry/sql-common@0.40.1': @@ -993,13 +966,13 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} - '@playwright/test@1.51.1': - resolution: {integrity: sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==} + '@playwright/test@1.55.0': + resolution: {integrity: sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==} engines: {node: '>=18'} hasBin: true - '@polka/url@1.0.0-next.28': - resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} @@ -1007,103 +980,108 @@ packages: '@prisma/instrumentation@5.22.0': resolution: {integrity: sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==} - '@rollup/rollup-android-arm-eabi@4.46.2': - resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} + '@rollup/rollup-android-arm-eabi@4.50.2': + resolution: {integrity: sha512-uLN8NAiFVIRKX9ZQha8wy6UUs06UNSZ32xj6giK/rmMXAgKahwExvK6SsmgU5/brh4w/nSgj8e0k3c1HBQpa0A==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.46.2': - resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} + '@rollup/rollup-android-arm64@4.50.2': + resolution: {integrity: sha512-oEouqQk2/zxxj22PNcGSskya+3kV0ZKH+nQxuCCOGJ4oTXBdNTbv+f/E3c74cNLeMO1S5wVWacSws10TTSB77g==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.46.2': - resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} + '@rollup/rollup-darwin-arm64@4.50.2': + resolution: {integrity: sha512-OZuTVTpj3CDSIxmPgGH8en/XtirV5nfljHZ3wrNwvgkT5DQLhIKAeuFSiwtbMto6oVexV0k1F1zqURPKf5rI1Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.46.2': - resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} + '@rollup/rollup-darwin-x64@4.50.2': + resolution: {integrity: sha512-Wa/Wn8RFkIkr1vy1k1PB//VYhLnlnn5eaJkfTQKivirOvzu5uVd2It01ukeQstMursuz7S1bU+8WW+1UPXpa8A==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.46.2': - resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} + '@rollup/rollup-freebsd-arm64@4.50.2': + resolution: {integrity: sha512-QkzxvH3kYN9J1w7D1A+yIMdI1pPekD+pWx7G5rXgnIlQ1TVYVC6hLl7SOV9pi5q9uIDF9AuIGkuzcbF7+fAhow==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.46.2': - resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} + '@rollup/rollup-freebsd-x64@4.50.2': + resolution: {integrity: sha512-dkYXB0c2XAS3a3jmyDkX4Jk0m7gWLFzq1C3qUnJJ38AyxIF5G/dyS4N9B30nvFseCfgtCEdbYFhk0ChoCGxPog==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': - resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} + '@rollup/rollup-linux-arm-gnueabihf@4.50.2': + resolution: {integrity: sha512-9VlPY/BN3AgbukfVHAB8zNFWB/lKEuvzRo1NKev0Po8sYFKx0i+AQlCYftgEjcL43F2h9Ui1ZSdVBc4En/sP2w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.46.2': - resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} + '@rollup/rollup-linux-arm-musleabihf@4.50.2': + resolution: {integrity: sha512-+GdKWOvsifaYNlIVf07QYan1J5F141+vGm5/Y8b9uCZnG/nxoGqgCmR24mv0koIWWuqvFYnbURRqw1lv7IBINw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.46.2': - resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} + '@rollup/rollup-linux-arm64-gnu@4.50.2': + resolution: {integrity: sha512-df0Eou14ojtUdLQdPFnymEQteENwSJAdLf5KCDrmZNsy1c3YaCNaJvYsEUHnrg+/DLBH612/R0xd3dD03uz2dg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.46.2': - resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} + '@rollup/rollup-linux-arm64-musl@4.50.2': + resolution: {integrity: sha512-iPeouV0UIDtz8j1YFR4OJ/zf7evjauqv7jQ/EFs0ClIyL+by++hiaDAfFipjOgyz6y6xbDvJuiU4HwpVMpRFDQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': - resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} + '@rollup/rollup-linux-loong64-gnu@4.50.2': + resolution: {integrity: sha512-OL6KaNvBopLlj5fTa5D5bau4W82f+1TyTZRr2BdnfsrnQnmdxh4okMxR2DcDkJuh4KeoQZVuvHvzuD/lyLn2Kw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.46.2': - resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} + '@rollup/rollup-linux-ppc64-gnu@4.50.2': + resolution: {integrity: sha512-I21VJl1w6z/K5OTRl6aS9DDsqezEZ/yKpbqlvfHbW0CEF5IL8ATBMuUx6/mp683rKTK8thjs/0BaNrZLXetLag==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.46.2': - resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} + '@rollup/rollup-linux-riscv64-gnu@4.50.2': + resolution: {integrity: sha512-Hq6aQJT/qFFHrYMjS20nV+9SKrXL2lvFBENZoKfoTH2kKDOJqff5OSJr4x72ZaG/uUn+XmBnGhfr4lwMRrmqCQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.46.2': - resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} + '@rollup/rollup-linux-riscv64-musl@4.50.2': + resolution: {integrity: sha512-82rBSEXRv5qtKyr0xZ/YMF531oj2AIpLZkeNYxmKNN6I2sVE9PGegN99tYDLK2fYHJITL1P2Lgb4ZXnv0PjQvw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.46.2': - resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} + '@rollup/rollup-linux-s390x-gnu@4.50.2': + resolution: {integrity: sha512-4Q3S3Hy7pC6uaRo9gtXUTJ+EKo9AKs3BXKc2jYypEcMQ49gDPFU2P1ariX9SEtBzE5egIX6fSUmbmGazwBVF9w==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.46.2': - resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} + '@rollup/rollup-linux-x64-gnu@4.50.2': + resolution: {integrity: sha512-9Jie/At6qk70dNIcopcL4p+1UirusEtznpNtcq/u/C5cC4HBX7qSGsYIcG6bdxj15EYWhHiu02YvmdPzylIZlA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.46.2': - resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} + '@rollup/rollup-linux-x64-musl@4.50.2': + resolution: {integrity: sha512-HPNJwxPL3EmhzeAnsWQCM3DcoqOz3/IC6de9rWfGR8ZCuEHETi9km66bH/wG3YH0V3nyzyFEGUZeL5PKyy4xvw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.46.2': - resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} + '@rollup/rollup-openharmony-arm64@4.50.2': + resolution: {integrity: sha512-nMKvq6FRHSzYfKLHZ+cChowlEkR2lj/V0jYj9JnGUVPL2/mIeFGmVM2mLaFeNa5Jev7W7TovXqXIG2d39y1KYA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.50.2': + resolution: {integrity: sha512-eFUvvnTYEKeTyHEijQKz81bLrUQOXKZqECeiWH6tb8eXXbZk+CXSG2aFrig2BQ/pjiVRj36zysjgILkqarS2YA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.46.2': - resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} + '@rollup/rollup-win32-ia32-msvc@4.50.2': + resolution: {integrity: sha512-cBaWmXqyfRhH8zmUxK3d3sAhEWLrtMjWBRwdMMHJIXSjvjLKvv49adxiEz+FJ8AP90apSDDBx2Tyd/WylV6ikA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.46.2': - resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} + '@rollup/rollup-win32-x64-msvc@4.50.2': + resolution: {integrity: sha512-APwKy6YUhvZaEoHyM+9xqmTpviEI+9eL7LoCH+aLcvWYHJ663qG5zx7WzWZY+a9qkg5JtzcMyJ9z0WtQBMDmgA==} cpu: [x64] os: [win32] @@ -1135,55 +1113,55 @@ packages: resolution: {integrity: sha512-1esQdgSUCww9XAntO4pr7uAM5cfGhLsgTK9MEwAKNfvpMYJi9NUTYa3A7AZmdA8V6107Lo4OD7peIPrDRbaDCg==} engines: {node: '>= 14'} - '@sentry/cli-darwin@2.43.0': - resolution: {integrity: sha512-0MYvRHJowXOMNY5W6XF4p9GQNH3LuQ+IHAQwVbZOsfwnEv8e20rf9BiPPzmJ9sIjZSWYR4yIqm6dBp6ABJFbGQ==} + '@sentry/cli-darwin@2.53.0': + resolution: {integrity: sha512-NNPfpILMwKgpHiyJubHHuauMKltkrgLQ5tvMdxNpxY60jBNdo5VJtpESp4XmXlnidzV4j1z61V4ozU6ttDgt5Q==} engines: {node: '>=10'} os: [darwin] - '@sentry/cli-linux-arm64@2.43.0': - resolution: {integrity: sha512-7URSaNjbEJQZyYJ33XK3pVKl6PU2oO9ETF6R/4Cz2FmU3fecACLKVldv7+OuNl9aspLZ62mnPMDvT732/Fp2Ug==} + '@sentry/cli-linux-arm64@2.53.0': + resolution: {integrity: sha512-xY/CZ1dVazsSCvTXzKpAgXaRqfljVfdrFaYZRUaRPf1ZJRGa3dcrivoOhSIeG/p5NdYtMvslMPY9Gm2MT0M83A==} engines: {node: '>=10'} cpu: [arm64] - os: [linux, freebsd] + os: [linux, freebsd, android] - '@sentry/cli-linux-arm@2.43.0': - resolution: {integrity: sha512-c2Fwb6HrFL1nbaGV4uRhHC1wEJPR+wfpKN5y06PgSNNbd10YrECAB3tqBHXC8CEmhuDyFR+ORGZ7VbswfCWEEQ==} + '@sentry/cli-linux-arm@2.53.0': + resolution: {integrity: sha512-NdRzQ15Ht83qG0/Lyu11ciy/Hu/oXbbtJUgwzACc7bWvHQA8xEwTsehWexqn1529Kfc5EjuZ0Wmj3MHmp+jOWw==} engines: {node: '>=10'} cpu: [arm] - os: [linux, freebsd] + os: [linux, freebsd, android] - '@sentry/cli-linux-i686@2.43.0': - resolution: {integrity: sha512-bFo/tpMZeMJ275HPGmAENREchnBxhALOOpZAphSyalUu3pGZ+EETEtlSLrKyVNJo26Dye5W7GlrYUV9+rkyCtg==} + '@sentry/cli-linux-i686@2.53.0': + resolution: {integrity: sha512-0REmBibGAB4jtqt9S6JEsFF4QybzcXHPcHtJjgMi5T0ueh952uG9wLzjSxQErCsxTKF+fL8oG0Oz5yKBuCwCCQ==} engines: {node: '>=10'} cpu: [x86, ia32] - os: [linux, freebsd] + os: [linux, freebsd, android] - '@sentry/cli-linux-x64@2.43.0': - resolution: {integrity: sha512-EbAmKXUNU/Ii4pNGVRCepU6ks1M43wStMKx3pibrUTllrrCwqYKyPxRRdoFYySHkduwCxnoKZcLEg9vWZ3qS6A==} + '@sentry/cli-linux-x64@2.53.0': + resolution: {integrity: sha512-9UGJL+Vy5N/YL1EWPZ/dyXLkShlNaDNrzxx4G7mTS9ywjg+BIuemo6rnN7w43K1NOjObTVO6zY0FwumJ1pCyLg==} engines: {node: '>=10'} cpu: [x64] - os: [linux, freebsd] + os: [linux, freebsd, android] - '@sentry/cli-win32-arm64@2.43.0': - resolution: {integrity: sha512-KmJRCdQQGLSErJvrcGcN+yWo68m+5OdluhyJHsVYMOQknwu8YMOWLm12EIa+4t4GclDvwg5xcxLccCuiWMJUZw==} + '@sentry/cli-win32-arm64@2.53.0': + resolution: {integrity: sha512-G1kjOjrjMBY20rQcJV2GA8KQE74ufmROCDb2GXYRfjvb1fKAsm4Oh8N5+Tqi7xEHdjQoLPkE4CNW0aH68JSUDQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@sentry/cli-win32-i686@2.43.0': - resolution: {integrity: sha512-ZWxZdOyZX7NJ/CTskzg+dJ2xTpobFLXVNMOMq0HiwdhqXP2zYYJzKnIt3mHNJYA40zYFODGSgxIamodjpB8BuA==} + '@sentry/cli-win32-i686@2.53.0': + resolution: {integrity: sha512-qbGTZUzesuUaPtY9rPXdNfwLqOZKXrJRC1zUFn52hdo6B+Dmv0m/AHwRVFHZP53Tg1NCa8bDei2K/uzRN0dUZw==} engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] - '@sentry/cli-win32-x64@2.43.0': - resolution: {integrity: sha512-S/IRQYAziEnjpyROhnqzTqShDq3m8jcevXx+q5f49uQnFbfYcTgS1sdrEPqqao/K2boOWbffxYtTkvBiB/piQQ==} + '@sentry/cli-win32-x64@2.53.0': + resolution: {integrity: sha512-1TXYxYHtwgUq5KAJt3erRzzUtPqg7BlH9T7MdSPHjJatkrr/kwZqnVe2H6Arr/5NH891vOlIeSPHBdgJUAD69g==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@sentry/cli@2.43.0': - resolution: {integrity: sha512-gBE3bkx+PBJxopTrzIJLX4xHe5S0w87q5frIveWKDZ5ulVIU6YWnVumay0y07RIEweUEj3IYva1qH6HG2abfiA==} + '@sentry/cli@2.53.0': + resolution: {integrity: sha512-n2ZNb+5Z6AZKQSI0SusQ7ZzFL637mfw3Xh4C3PEyVSn9LiF683fX0TTq8OeGmNZQS4maYfS95IFD+XpydU0dEA==} engines: {node: '>= 10'} hasBin: true @@ -1259,13 +1237,13 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/adapter-static@3.0.8': - resolution: {integrity: sha512-YaDrquRpZwfcXbnlDsSrBQNCChVOT9MGuSg+dMAyfsAa1SmiAhrA5jUYUiIMC59G92kIbY/AaQOWcBdq+lh+zg==} + '@sveltejs/adapter-static@3.0.9': + resolution: {integrity: sha512-aytHXcMi7lb9ljsWUzXYQ0p5X1z9oWud2olu/EpmH7aCu4m84h7QLvb5Wp+CFirKcwoNnYvYWhyP/L8Vh1ztdw==} peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/kit@2.36.3': - resolution: {integrity: sha512-MVzwZz1GFznEQbL3f0i2v9AIc3lZH01izQj6XfIrthmZAwOzyXJCgXbLRss8vk//HfYsE4w6Tz+ukbf3rScPNQ==} + '@sveltejs/kit@2.41.0': + resolution: {integrity: sha512-dCLIRufAoc3bbKtHCSzDr3g41sPY0bNpxYbMd6XD2D7xSeVLgPvZ0qFtK8W2hhwr7oj8i/6NtlcB0EKFjpMMUg==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -1285,15 +1263,15 @@ packages: svelte: ^5.0.0 vite: ^6.0.0 - '@sveltejs/vite-plugin-svelte@5.0.3': - resolution: {integrity: sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==} + '@sveltejs/vite-plugin-svelte@5.1.1': + resolution: {integrity: sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} peerDependencies: svelte: ^5.0.0 vite: ^6.0.0 - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} '@tanstack/svelte-virtual@3.13.12': resolution: {integrity: sha512-SsOinCktvpMFbdSW61X6jeUNaJvD1tmt30AFVSLe1FQxGxjdPkZo0gAsoVPqM9FFZqidvvXQ4gpadDaTz/yGxA==} @@ -1303,12 +1281,12 @@ packages: '@tanstack/virtual-core@3.13.12': resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} - '@testing-library/dom@10.4.0': - resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + '@testing-library/dom@10.4.1': + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} - '@testing-library/jest-dom@6.6.3': - resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} + '@testing-library/jest-dom@6.8.0': + resolution: {integrity: sha512-WgXcWzVM6idy5JaftTVC8Vs83NKRmGJz4Hqs4oyOuO2J4r/y79vvKZsb+CaGyCSEbUPI6OsewfPd0G1A0/TUZQ==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} '@testing-library/svelte@5.2.8': @@ -1351,9 +1329,6 @@ packages: '@types/dlv@1.1.5': resolution: {integrity: sha512-JHOWNfiWepAhfwlSw17kiWrWrk6od2dEQgHltJw9AS0JPFoLZJBge5+Dnil2NfdjAvJ/+vGSX60/BRW20PpUXw==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -1369,8 +1344,8 @@ packages: '@types/mysql@2.15.26': resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - '@types/node@22.13.14': - resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==} + '@types/node@24.5.0': + resolution: {integrity: sha512-y1dMvuvJspJiPSDZUQ+WMBvF7dpnEqN4x9DDC9ie5Fs/HUZJA3wFp7EhHoVaKX/iI0cRoECV8X2jL8zi0xrHCg==} '@types/pg-pool@2.0.6': resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} @@ -1384,8 +1359,8 @@ packages: '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@types/react@18.3.23': - resolution: {integrity: sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==} + '@types/react@18.3.24': + resolution: {integrity: sha512-0dLEBsA1kI3OezMBF8nSsb7Nk19ZnsyE1LLhB8r27KbgU5H4pvuqZLdtE+aUkJVoXgTVuA+iLIwmZ0TuK4tx6A==} '@types/remarkable@2.0.8': resolution: {integrity: sha512-eKXqPZfpQl1kOADjdKchHrp2gwn9qMnGXhH/AtZe0UrklzhGJkawJo/Y/D0AlWcdWoWamFNIum8+/nkAISQVGg==} @@ -1399,98 +1374,63 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.28.0': - resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==} + '@typescript-eslint/eslint-plugin@8.44.0': + resolution: {integrity: sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.44.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/eslint-plugin@8.30.1': - resolution: {integrity: sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==} + '@typescript-eslint/parser@8.44.0': + resolution: {integrity: sha512-VGMpFQGUQWYT9LfnPcX8ouFojyrZ/2w3K5BucvxL/spdNehccKhB4jUyB1yBCXpr2XFm0jkECxgrpXBW2ipoAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.28.0': - resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==} + '@typescript-eslint/project-service@8.44.0': + resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.30.1': - resolution: {integrity: sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/scope-manager@8.28.0': - resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} + '@typescript-eslint/scope-manager@8.44.0': + resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.30.1': - resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.28.0': - resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==} + '@typescript-eslint/tsconfig-utils@8.44.0': + resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.30.1': - resolution: {integrity: sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==} + '@typescript-eslint/type-utils@8.44.0': + resolution: {integrity: sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/types@8.28.0': - resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.30.1': - resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.28.0': - resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.30.1': - resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==} + '@typescript-eslint/types@8.44.0': + resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.28.0': - resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} + '@typescript-eslint/typescript-estree@8.44.0': + resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.30.1': - resolution: {integrity: sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==} + '@typescript-eslint/utils@8.44.0': + resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/visitor-keys@8.28.0': - resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.30.1': - resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} + '@typescript-eslint/visitor-keys@8.44.0': + resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -1530,34 +1470,34 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@vue/compiler-core@3.5.13': - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + '@vue/compiler-core@3.5.21': + resolution: {integrity: sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==} - '@vue/compiler-dom@3.5.13': - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + '@vue/compiler-dom@3.5.21': + resolution: {integrity: sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==} - '@vue/compiler-sfc@3.5.13': - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + '@vue/compiler-sfc@3.5.21': + resolution: {integrity: sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==} - '@vue/compiler-ssr@3.5.13': - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + '@vue/compiler-ssr@3.5.21': + resolution: {integrity: sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==} - '@vue/reactivity@3.5.13': - resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + '@vue/reactivity@3.5.21': + resolution: {integrity: sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA==} - '@vue/runtime-core@3.5.13': - resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + '@vue/runtime-core@3.5.21': + resolution: {integrity: sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA==} - '@vue/runtime-dom@3.5.13': - resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + '@vue/runtime-dom@3.5.21': + resolution: {integrity: sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w==} - '@vue/server-renderer@3.5.13': - resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + '@vue/server-renderer@3.5.21': + resolution: {integrity: sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA==} peerDependencies: - vue: 3.5.13 + vue: 3.5.21 - '@vue/shared@3.5.13': - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + '@vue/shared@3.5.21': + resolution: {integrity: sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==} acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} @@ -1569,11 +1509,6 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -1583,8 +1518,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} ai@2.2.37: @@ -1608,13 +1543,13 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - analytics-utils@1.0.14: - resolution: {integrity: sha512-9v0kPd8v0GuBvfQcg5BO48AElaEAr9IXMAfJWXYMAhrD3QprgozEIUgMp/de0vS136PUOBB+10XQH9eBgBmfMw==} + analytics-utils@1.1.1: + resolution: {integrity: sha512-nRybjTpRAcHVhWb1cvYaOLJaI3R79r8XjMbu5c0wd2jKmANNqSrYwybiU0X3mp+CQQdm4YiAggTXb2cIA8XhUg==} peerDependencies: '@types/dlv': ^1.0.0 - analytics@0.8.16: - resolution: {integrity: sha512-LEFQ47G9V1zVp9WIh2xhnbmSFEJq+WEzSv6voJ5uba88lefiIIYeG2nq87gFu83ocz1qtb9u7XgeaKKVBbbgWA==} + analytics@0.8.19: + resolution: {integrity: sha512-JFgasxpWFiAoqm5UHaGQv9j9OGz+f1KAeQkABYr3Z7YGhiqhQrBpPhIVAIEyttBRJZmew1QwMhN9/bOGGBnpJA==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -1674,22 +1609,26 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + baseline-browser-mapping@2.8.4: + resolution: {integrity: sha512-L+YvJwGAgwJBV1p6ffpSTa2KRc69EeeYGYjRVWKs0GKrK+LON0GC0gV+rKSNtALEDvMDqkvCFq9r1r94/Gjwxw==} + hasBin: true + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + browserslist@4.26.2: + resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1713,19 +1652,15 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001707: - resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==} + caniuse-lite@1.0.30001743: + resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.2.0: - resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} - engines: {node: '>=12'} - - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1763,23 +1698,23 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-convert@3.1.0: - resolution: {integrity: sha512-TVoqAq8ZDIpK5lsQY874DDnu65CSsc9vzq0wLpNQ6UMBq81GSZocVazPiBbYGzngzBOIRahpkTzCLVe2at4MfA==} + color-convert@3.1.2: + resolution: {integrity: sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==} engines: {node: '>=14.6'} color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-name@2.0.0: - resolution: {integrity: sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==} + color-name@2.0.2: + resolution: {integrity: sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==} engines: {node: '>=12.20'} - color-string@2.0.1: - resolution: {integrity: sha512-5z9FbYTZPAo8iKsNEqRNv+OlpBbDcoE+SY9GjLfDUHEfcNNV7tS9eSAlFHEaub/r5tBL9LtskAeq1l9SaoZ5tQ==} + color-string@2.1.2: + resolution: {integrity: sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==} engines: {node: '>=18'} - color@5.0.0: - resolution: {integrity: sha512-16BlyiuyLq3MLxpRWyOTiWsO3ii/eLQLJUQXBSNcxMBBSnyt1ee9YUdaozQp03ifwm5woztEZGDbk9RGVuCsdw==} + color@5.0.2: + resolution: {integrity: sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==} engines: {node: '>=18'} comma-separated-tokens@2.0.3: @@ -1819,8 +1754,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@4.3.0: - resolution: {integrity: sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==} + cssstyle@4.6.0: + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} engines: {node: '>=18'} csstype@3.1.3: @@ -1957,20 +1892,11 @@ packages: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + dayjs@1.11.18: + resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1978,8 +1904,8 @@ packages: supports-color: optional: true - decimal.js@10.5.0: - resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} @@ -2031,8 +1957,8 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - dotenv@16.4.7: - resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} dunder-proto@1.0.1: @@ -2042,8 +1968,8 @@ packages: echarts@5.6.0: resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} - electron-to-chromium@1.5.128: - resolution: {integrity: sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==} + electron-to-chromium@1.5.218: + resolution: {integrity: sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==} emoji-regex-xs@1.0.0: resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} @@ -2052,6 +1978,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -2070,8 +2000,8 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - esbuild@0.25.1: - resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + esbuild@0.25.9: + resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} engines: {node: '>=18'} hasBin: true @@ -2083,20 +2013,14 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-compat-utils@0.6.4: - resolution: {integrity: sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-prettier@10.1.1: - resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==} + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-plugin-svelte@3.3.3: - resolution: {integrity: sha512-imzGqIgWbfsb/CR14d3k3M8MiVNGet+l9mjPhvo1Rm0Nxi0rNn4/eELqyR8FWlgKBMlGkOp2kshRJm0xpxNfHQ==} + eslint-plugin-svelte@3.12.3: + resolution: {integrity: sha512-YVNhKsHZeXVvsjZcSMjnce9gO31frICu453p5JjFiXNszHoG9k8WvsA/LAoLi4K8T69G7DIrgg1AqasDJLpgoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.1 || ^9.0.0 @@ -2105,10 +2029,6 @@ packages: svelte: optional: true - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2117,16 +2037,12 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@4.2.1: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.31.0: - resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==} + eslint@9.35.0: + resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2138,10 +2054,6 @@ packages: esm-env@1.2.2: resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@10.4.0: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2155,8 +2067,8 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esrap@1.4.5: - resolution: {integrity: sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==} + esrap@2.1.0: + resolution: {integrity: sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -2180,8 +2092,8 @@ packages: resolution: {integrity: sha512-9jgfSCa3dmEme2ES3mPByGXfgZ87VbP97tng1G2nWwWx6bV2nYxm2AWCrbQjXToSe+yYlqaZNtxffR9IeQr95g==} engines: {node: '>=14.18'} - eventsource-parser@3.0.0: - resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==} + eventsource-parser@3.0.6: + resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} engines: {node: '>=18.0.0'} expect-type@1.2.2: @@ -2204,16 +2116,9 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -2242,8 +2147,8 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - focus-trap@7.6.4: - resolution: {integrity: sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==} + focus-trap@7.6.5: + resolution: {integrity: sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg==} for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} @@ -2302,16 +2207,12 @@ packages: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@16.0.0: - resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} globalyzer@0.1.0: @@ -2390,15 +2291,19 @@ packages: resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} engines: {node: '>= 4'} - immutable@5.1.1: - resolution: {integrity: sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + immutable@5.1.3: + resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-in-the-middle@1.13.1: - resolution: {integrity: sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA==} + import-in-the-middle@1.14.2: + resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -2556,8 +2461,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - known-css-properties@0.35.0: - resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -2577,15 +2482,12 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.4: - resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -2593,19 +2495,16 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - luxon@3.6.0: - resolution: {integrity: sha512-WE7p0p7W1xji9qxkLYsvcIxZyfP48GuFrWIBQZIsbjCyf65dG1rv4n83HcOyEyhvzxJCrUoObCRNFgRNIQ5KNA==} + luxon@3.7.2: + resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} engines: {node: '>=12'} lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - - magic-string@0.30.18: - resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} magic-string@0.30.7: resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} @@ -2677,8 +2576,8 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - module-details-from-path@1.0.3: - resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} + module-details-from-path@1.0.4: + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -2724,15 +2623,15 @@ packages: encoding: optional: true - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.21: + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + nwsapi@2.2.22: + resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} @@ -2769,8 +2668,8 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -2790,8 +2689,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} periscopic@3.1.0: @@ -2801,8 +2700,8 @@ packages: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - pg-protocol@1.8.0: - resolution: {integrity: sha512-jvuYlEkL03NRvOoyoRktBK7+qU5kOvlAwvmrH8sr3wbLrOdVWsRxQfz8mMy9sZFsqJ1hEWNfdWKI4SAmoL+j7g==} + pg-protocol@1.10.3: + resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} pg-types@2.2.0: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} @@ -2815,10 +2714,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -2827,13 +2722,13 @@ packages: resolution: {integrity: sha512-hMhneYm3GCPyQon88SZrVJx+LlqhM1kZFQbuAgXPoh/Az2YvO1B6bitT9qlhpiTdJlsT5lsr3gPmzoVjb5CDXA==} engines: {node: '>=10'} - playwright-core@1.51.1: - resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} + playwright-core@1.55.0: + resolution: {integrity: sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==} engines: {node: '>=18'} hasBin: true - playwright@1.51.1: - resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} + playwright@1.55.0: + resolution: {integrity: sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==} engines: {node: '>=18'} hasBin: true @@ -2872,10 +2767,6 @@ packages: resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -2900,14 +2791,14 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-svelte@3.3.3: - resolution: {integrity: sha512-yViK9zqQ+H2qZD1w/bH7W8i+bVfKrD8GIFjkFe4Thl6kCT9SlAsXVNmt3jCvQOCsnOhcvYgsoVlRV/Eu6x5nNw==} + prettier-plugin-svelte@3.4.0: + resolution: {integrity: sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} hasBin: true @@ -2963,9 +2854,6 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regex-recursion@5.1.1: resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} @@ -3004,8 +2892,8 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - rollup@4.46.2: - resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} + rollup@4.50.2: + resolution: {integrity: sha512-BgLRGy7tNS9H66aIMASq1qSYbAAJV6Z6WR4QYTvj5FgF15rZ/ympT1uixHXwzbZUBDbkvqUI1KR0fH1FhMaQ9w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3029,8 +2917,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.86.0: - resolution: {integrity: sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==} + sass@1.92.1: + resolution: {integrity: sha512-ffmsdbwqb3XeyR8jJR6KelIXARM9bFQe8A6Q3W4Klmwy5Ckd5gz7jgUNHo4UOqutU5Sk1DtKLbpDP0nLCg1xqQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -3045,13 +2933,13 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} hasBin: true - seroval-plugins@1.3.2: - resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==} + seroval-plugins@1.3.3: + resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 @@ -3104,12 +2992,12 @@ packages: siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - sirv@3.0.1: - resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} - solid-js@1.9.5: - resolution: {integrity: sha512-ogI3DaFcyn6UhYhrgcyRAMbu/buBJitYQASZz5WzfQVPP10RD2AbCoRZ517psnezrasyCbWzIxZ6kVqet768xw==} + solid-js@1.9.9: + resolution: {integrity: sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==} solid-swr-store@0.10.7: resolution: {integrity: sha512-A6d68aJmRP471aWqKKPE2tpgOiR5fH4qXQNfKIec+Vap+MGQm3tvXlT8n0I8UgJSlNAsSAUuw2VTviH2h3Vv5g==} @@ -3176,8 +3064,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@4.1.5: - resolution: {integrity: sha512-Gb0T2IqBNe1tLB9EB1Qh+LOe+JB8wt2/rNBDGvkxQVvk8vNeAoG+vZgFB/3P5+zC7RWlyBlzm9dVjZFph/maIg==} + svelte-check@4.3.1: + resolution: {integrity: sha512-lkh8gff5gpHLjxIV+IaApMxQhTGnir2pNUAqcNgeKkvK5bT/30Ey/nzBxNLDlkztCH4dP7PixkMt9SWEKFPBWg==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: @@ -3189,8 +3077,8 @@ packages: peerDependencies: svelte: ^4.0.0 - svelte-eslint-parser@1.1.1: - resolution: {integrity: sha512-QLVGPIMDettl30qRHXU2VrPvVJKG8GsGstye7n8rFbEiu3gEARksuQg9Xu4GzubNxhGNM8stfBZkhyMbBQmjFA==} + svelte-eslint-parser@1.3.2: + resolution: {integrity: sha512-whla4VlUbwJidn/bNyC3Ho3pBrXnR2CBEkuJwtaURW+wfwgKHPaYtZAmwAkp6HWWKCw1ILZL6iKsFdVY11rpDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 @@ -3249,12 +3137,12 @@ packages: peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.1 - svelte@4.2.19: - resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} + svelte@4.2.20: + resolution: {integrity: sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==} engines: {node: '>=16'} - svelte@5.25.3: - resolution: {integrity: sha512-J9rcZ/xVJonAoESqVGHHZhrNdVbrCfkdB41BP6eiwHMoFShD9it3yZXApVYMHdGfCshBsZCKsajwJeBbS/M1zg==} + svelte@5.38.10: + resolution: {integrity: sha512-UY+OhrWK7WI22bCZ00P/M3HtyWgwJPi9IxSRkoAE2MeAy6kl7ZlZWJZ8RaB+X4KD/G+wjis+cGVnVYaoqbzBqg==} engines: {node: '>=18'} swr-store@0.10.6: @@ -3295,8 +3183,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} tinypool@1.1.1: @@ -3314,18 +3202,18 @@ packages: tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} - tldts-core@6.1.85: - resolution: {integrity: sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==} + tldts-core@6.1.86: + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} - tldts-core@7.0.7: - resolution: {integrity: sha512-ECqb8imSroX1UmUuhRBNPkkmtZ8mHEenieim80UVxG0M5wXVjY2Fp2tYXCPvk+nLy1geOhFpeD5YQhM/gF63Jg==} + tldts-core@7.0.14: + resolution: {integrity: sha512-viZGNK6+NdluOJWwTO9olaugx0bkKhscIdriQQ+lNNhwitIKvb+SvhbYgnCz6j9p7dX3cJntt4agQAKMXLjJ5g==} - tldts@6.1.85: - resolution: {integrity: sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==} + tldts@6.1.86: + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} hasBin: true - tldts@7.0.7: - resolution: {integrity: sha512-ETNXj36ql5BXDa4VVJk3wgqansg8TI1Yqo217twSAPjyDnh/b2T+XzrI0ftn6EnzVPbXpMTZHOWj5s3a8/uGPA==} + tldts@7.0.14: + resolution: {integrity: sha512-lMNHE4aSI3LlkMUMicTmAG3tkkitjOQGDTFboPJwAg2kJXKP1ryWEyqujktg5qhrFZOkk5YFzgkxg3jErE+i5w==} hasBin: true to-regex-range@5.0.1: @@ -3343,8 +3231,8 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@5.1.0: - resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} + tr46@5.1.1: + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} trim-lines@3.0.1: @@ -3372,20 +3260,20 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.30.1: - resolution: {integrity: sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==} + typescript-eslint@8.44.0: + resolution: {integrity: sha512-ib7mCkYuIzYonCq9XWF5XNw+fkj2zg629PSa9KNIQ47RXFF763S5BIX4wqz1+FLPogTZoiw8KmCiRPRa8bL3qw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + typescript@5.9.2: + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} hasBin: true - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici-types@7.12.0: + resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -3433,8 +3321,8 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite@7.0.6: - resolution: {integrity: sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==} + vite@7.1.5: + resolution: {integrity: sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3473,10 +3361,10 @@ packages: yaml: optional: true - vitefu@1.0.6: - resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} + vitefu@1.1.1: + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 peerDependenciesMeta: vite: optional: true @@ -3509,8 +3397,8 @@ packages: jsdom: optional: true - vue@3.5.13: - resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + vue@3.5.21: + resolution: {integrity: sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3528,8 +3416,8 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + webpack-sources@3.3.3: + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} webpack-virtual-modules@0.5.0: @@ -3576,8 +3464,8 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - ws@8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3610,16 +3498,16 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zimmerframe@1.1.2: - resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + zimmerframe@1.1.4: + resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} - zod-to-json-schema@3.24.5: - resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} + zod-to-json-schema@3.24.6: + resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} peerDependencies: zod: ^3.24.1 - zod@3.24.3: - resolution: {integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} zrender@5.6.1: resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} @@ -3629,86 +3517,82 @@ packages: snapshots: - '@adobe/css-tools@4.4.2': {} + '@adobe/css-tools@4.4.4': {} - '@ai-sdk/provider-utils@2.1.13(zod@3.24.3)': + '@ai-sdk/provider-utils@2.1.13(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.0.11 - eventsource-parser: 3.0.0 + eventsource-parser: 3.0.6 nanoid: 3.3.11 secure-json-parse: 2.7.0 optionalDependencies: - zod: 3.24.3 + zod: 3.25.76 '@ai-sdk/provider@1.0.11': dependencies: json-schema: 0.4.0 - '@ai-sdk/svelte@1.1.24(svelte@5.25.3)(zod@3.24.3)': + '@ai-sdk/svelte@1.1.24(svelte@5.38.10)(zod@3.25.76)': dependencies: - '@ai-sdk/provider-utils': 2.1.13(zod@3.24.3) - '@ai-sdk/ui-utils': 1.1.19(zod@3.24.3) + '@ai-sdk/provider-utils': 2.1.13(zod@3.25.76) + '@ai-sdk/ui-utils': 1.1.19(zod@3.25.76) optionalDependencies: - svelte: 5.25.3 + svelte: 5.38.10 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@1.1.19(zod@3.24.3)': + '@ai-sdk/ui-utils@1.1.19(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.0.11 - '@ai-sdk/provider-utils': 2.1.13(zod@3.24.3) - zod-to-json-schema: 3.24.5(zod@3.24.3) + '@ai-sdk/provider-utils': 2.1.13(zod@3.25.76) + zod-to-json-schema: 3.24.6(zod@3.25.76) optionalDependencies: - zod: 3.24.3 + zod: 3.25.76 '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@analytics/cookie-utils@0.2.12': + '@analytics/cookie-utils@0.2.14': dependencies: - '@analytics/global-storage-utils': 0.1.7 + '@analytics/global-storage-utils': 0.1.9 - '@analytics/core@0.12.17(@types/dlv@1.1.5)': + '@analytics/core@0.13.2(@types/dlv@1.1.5)': dependencies: - '@analytics/global-storage-utils': 0.1.7 - '@analytics/type-utils': 0.6.2 - analytics-utils: 1.0.14(@types/dlv@1.1.5) + '@analytics/global-storage-utils': 0.1.9 + '@analytics/type-utils': 0.6.4 + analytics-utils: 1.1.1(@types/dlv@1.1.5) transitivePeerDependencies: - '@types/dlv' - '@analytics/global-storage-utils@0.1.7': + '@analytics/global-storage-utils@0.1.9': dependencies: - '@analytics/type-utils': 0.6.2 + '@analytics/type-utils': 0.6.4 - '@analytics/localstorage-utils@0.1.10': + '@analytics/localstorage-utils@0.1.12': dependencies: - '@analytics/global-storage-utils': 0.1.7 + '@analytics/global-storage-utils': 0.1.9 - '@analytics/session-storage-utils@0.0.7': + '@analytics/session-storage-utils@0.0.9': dependencies: - '@analytics/global-storage-utils': 0.1.7 + '@analytics/global-storage-utils': 0.1.9 - '@analytics/storage-utils@0.4.2': + '@analytics/storage-utils@0.4.4': dependencies: - '@analytics/cookie-utils': 0.2.12 - '@analytics/global-storage-utils': 0.1.7 - '@analytics/localstorage-utils': 0.1.10 - '@analytics/session-storage-utils': 0.0.7 - '@analytics/type-utils': 0.6.2 + '@analytics/cookie-utils': 0.2.14 + '@analytics/global-storage-utils': 0.1.9 + '@analytics/localstorage-utils': 0.1.12 + '@analytics/session-storage-utils': 0.0.9 + '@analytics/type-utils': 0.6.4 - '@analytics/type-utils@0.6.2': {} + '@analytics/type-utils@0.6.4': {} '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@2428': {} - '@appwrite.io/pink-icons-svelte@2.0.0-RC.1(svelte@5.25.3)': - dependencies: - svelte: 5.25.3 - - '@appwrite.io/pink-icons-svelte@https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9(svelte@5.25.3)': + '@appwrite.io/pink-icons-svelte@2.0.0-RC.1(svelte@5.38.10)': dependencies: - svelte: 5.25.3 + svelte: 5.38.10 '@appwrite.io/pink-icons@0.25.0': {} @@ -3719,269 +3603,259 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@18188b7(svelte@5.25.3)': + '@appwrite.io/pink-svelte@https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@18188b7(svelte@5.38.10)': dependencies: - '@appwrite.io/pink-icons-svelte': 2.0.0-RC.1(svelte@5.25.3) - '@floating-ui/dom': 1.6.13 - '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.25.3))(svelte@5.25.3) - '@melt-ui/svelte': 0.86.6(svelte@5.25.3) - '@tanstack/svelte-virtual': 3.13.12(svelte@5.25.3) + '@appwrite.io/pink-icons-svelte': 2.0.0-RC.1(svelte@5.38.10) + '@floating-ui/dom': 1.7.4 + '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.38.10))(svelte@5.38.10) + '@melt-ui/svelte': 0.86.6(svelte@5.38.10) + '@tanstack/svelte-virtual': 3.13.12(svelte@5.38.10) ansicolor: 2.0.3 d3: 7.9.0 fuse.js: 7.1.0 pretty-bytes: 6.1.1 shiki: 1.29.2 - svelte: 5.25.3 - svelte-motion: 0.12.2(svelte@5.25.3) - svelte-sonner: 0.3.28(svelte@5.25.3) + svelte: 5.38.10 + svelte-motion: 0.12.2(svelte@5.38.10) + svelte-sonner: 0.3.28(svelte@5.38.10) - '@asamuzakjp/css-color@3.1.1': + '@asamuzakjp/css-color@3.2.0': dependencies: - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 lru-cache: 10.4.3 - '@babel/code-frame@7.26.2': + '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.8': {} + '@babel/compat-data@7.28.4': {} - '@babel/core@7.26.10': + '@babel/core@7.28.4': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/helper-compilation-targets': 7.27.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helpers': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.0 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.27.0': + '@babel/generator@7.28.3': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.27.0': + '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 + '@babel/compat-data': 7.28.4 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.26.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.25.9': + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.27.0 - '@babel/types': 7.27.0 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.27.0 + '@babel/core': 7.28.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.27.0': + '@babel/helpers@7.28.4': dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 - '@babel/parser@7.27.0': + '@babel/parser@7.28.4': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 - '@babel/parser@7.28.3': - dependencies: - '@babel/types': 7.28.2 - - '@babel/runtime@7.27.0': - dependencies: - regenerator-runtime: 0.14.1 + '@babel/runtime@7.28.4': {} - '@babel/template@7.27.0': + '@babel/template@7.27.2': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@babel/traverse@7.27.0': + '@babel/traverse@7.28.4': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 - debug: 4.4.0 - globals: 11.12.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 + debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.27.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@babel/types@7.28.2': + '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@csstools/color-helpers@5.0.2': {} + '@csstools/color-helpers@5.1.0': {} - '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/color-helpers': 5.0.2 - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/color-helpers': 5.1.0 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-tokenizer@3.0.4': {} - '@csstools/css-tokenizer@3.0.3': {} + '@esbuild/aix-ppc64@0.25.9': + optional: true - '@esbuild/aix-ppc64@0.25.1': + '@esbuild/android-arm64@0.25.9': optional: true - '@esbuild/android-arm64@0.25.1': + '@esbuild/android-arm@0.25.9': optional: true - '@esbuild/android-arm@0.25.1': + '@esbuild/android-x64@0.25.9': optional: true - '@esbuild/android-x64@0.25.1': + '@esbuild/darwin-arm64@0.25.9': optional: true - '@esbuild/darwin-arm64@0.25.1': + '@esbuild/darwin-x64@0.25.9': optional: true - '@esbuild/darwin-x64@0.25.1': + '@esbuild/freebsd-arm64@0.25.9': optional: true - '@esbuild/freebsd-arm64@0.25.1': + '@esbuild/freebsd-x64@0.25.9': optional: true - '@esbuild/freebsd-x64@0.25.1': + '@esbuild/linux-arm64@0.25.9': optional: true - '@esbuild/linux-arm64@0.25.1': + '@esbuild/linux-arm@0.25.9': optional: true - '@esbuild/linux-arm@0.25.1': + '@esbuild/linux-ia32@0.25.9': optional: true - '@esbuild/linux-ia32@0.25.1': + '@esbuild/linux-loong64@0.25.9': optional: true - '@esbuild/linux-loong64@0.25.1': + '@esbuild/linux-mips64el@0.25.9': optional: true - '@esbuild/linux-mips64el@0.25.1': + '@esbuild/linux-ppc64@0.25.9': optional: true - '@esbuild/linux-ppc64@0.25.1': + '@esbuild/linux-riscv64@0.25.9': optional: true - '@esbuild/linux-riscv64@0.25.1': + '@esbuild/linux-s390x@0.25.9': optional: true - '@esbuild/linux-s390x@0.25.1': + '@esbuild/linux-x64@0.25.9': optional: true - '@esbuild/linux-x64@0.25.1': + '@esbuild/netbsd-arm64@0.25.9': optional: true - '@esbuild/netbsd-arm64@0.25.1': + '@esbuild/netbsd-x64@0.25.9': optional: true - '@esbuild/netbsd-x64@0.25.1': + '@esbuild/openbsd-arm64@0.25.9': optional: true - '@esbuild/openbsd-arm64@0.25.1': + '@esbuild/openbsd-x64@0.25.9': optional: true - '@esbuild/openbsd-x64@0.25.1': + '@esbuild/openharmony-arm64@0.25.9': optional: true - '@esbuild/sunos-x64@0.25.1': + '@esbuild/sunos-x64@0.25.9': optional: true - '@esbuild/win32-arm64@0.25.1': + '@esbuild/win32-arm64@0.25.9': optional: true - '@esbuild/win32-ia32@0.25.1': + '@esbuild/win32-ia32@0.25.9': optional: true - '@esbuild/win32-x64@0.25.1': + '@esbuild/win32-x64@0.25.9': optional: true - '@eslint-community/eslint-utils@4.5.1(eslint@9.31.0)': + '@eslint-community/eslint-utils@4.9.0(eslint@9.35.0)': dependencies: - eslint: 9.31.0 + eslint: 9.35.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.3.1(eslint@9.31.0)': + '@eslint/compat@1.3.2(eslint@9.35.0)': optionalDependencies: - eslint: 9.31.0 + eslint: 9.35.0 '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.0 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.3.0': {} + '@eslint/config-helpers@0.3.1': {} - '@eslint/core@0.15.1': + '@eslint/core@0.15.2': dependencies: '@types/json-schema': 7.0.15 '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.0 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -3992,97 +3866,78 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.31.0': {} + '@eslint/js@9.35.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.3.3': + '@eslint/plugin-kit@0.3.5': dependencies: - '@eslint/core': 0.15.1 + '@eslint/core': 0.15.2 levn: 0.4.1 '@faker-js/faker@9.9.0': {} - '@floating-ui/core@1.6.9': + '@floating-ui/core@1.7.3': dependencies: - '@floating-ui/utils': 0.2.9 + '@floating-ui/utils': 0.2.10 - '@floating-ui/dom@1.6.13': + '@floating-ui/dom@1.7.4': dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/utils': 0.2.9 + '@floating-ui/core': 1.7.3 + '@floating-ui/utils': 0.2.10 - '@floating-ui/utils@0.2.9': {} + '@floating-ui/utils@0.2.10': {} '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.6': + '@humanfs/node@0.16.7': dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} + '@humanwhocodes/retry@0.4.3': {} - '@humanwhocodes/retry@0.4.2': {} + '@internationalized/date@3.9.0': + dependencies: + '@swc/helpers': 0.5.17 - '@internationalized/date@3.7.0': + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@swc/helpers': 0.5.15 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@melt-ui/pp@0.3.2(@melt-ui/svelte@0.86.5(svelte@5.25.3))(svelte@5.25.3)': - dependencies: - '@melt-ui/svelte': 0.86.5(svelte@5.25.3) - estree-walker: 3.0.3 - magic-string: 0.30.17 - svelte: 5.25.3 + '@jridgewell/sourcemap-codec': 1.5.5 - '@melt-ui/pp@0.3.2(@melt-ui/svelte@0.86.6(svelte@5.25.3))(svelte@5.25.3)': + '@melt-ui/pp@0.3.2(@melt-ui/svelte@0.86.6(svelte@5.38.10))(svelte@5.38.10)': dependencies: - '@melt-ui/svelte': 0.86.6(svelte@5.25.3) + '@melt-ui/svelte': 0.86.6(svelte@5.38.10) estree-walker: 3.0.3 - magic-string: 0.30.17 - svelte: 5.25.3 - - '@melt-ui/svelte@0.86.5(svelte@5.25.3)': - dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/dom': 1.6.13 - '@internationalized/date': 3.7.0 - dequal: 2.0.3 - focus-trap: 7.6.4 - nanoid: 5.1.5 - svelte: 5.25.3 + magic-string: 0.30.19 + svelte: 5.38.10 - '@melt-ui/svelte@0.86.6(svelte@5.25.3)': + '@melt-ui/svelte@0.86.6(svelte@5.38.10)': dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/dom': 1.6.13 - '@internationalized/date': 3.7.0 + '@floating-ui/core': 1.7.3 + '@floating-ui/dom': 1.7.4 + '@internationalized/date': 3.9.0 dequal: 2.0.3 - focus-trap: 7.6.4 + focus-trap: 7.6.5 nanoid: 5.1.5 - svelte: 5.25.3 + svelte: 5.38.10 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -4124,7 +3979,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4133,7 +3988,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 '@types/connect': 3.4.36 transitivePeerDependencies: - supports-color @@ -4150,7 +4005,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4159,7 +4014,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4190,7 +4045,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4201,7 +4056,7 @@ snapshots: '@opentelemetry/instrumentation': 0.57.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 forwarded-parse: 2.1.2 - semver: 7.7.1 + semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -4210,7 +4065,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4218,7 +4073,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4226,7 +4081,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4235,7 +4090,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4250,7 +4105,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4259,7 +4114,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4267,7 +4122,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -4276,7 +4131,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 '@types/mysql': 2.15.26 transitivePeerDependencies: - supports-color @@ -4285,7 +4140,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4306,7 +4161,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 transitivePeerDependencies: - supports-color @@ -4314,7 +4169,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color @@ -4332,9 +4187,9 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.53.0 '@types/shimmer': 1.2.0 - import-in-the-middle: 1.13.1 + import-in-the-middle: 1.14.2 require-in-the-middle: 7.5.2 - semver: 7.7.1 + semver: 7.7.2 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -4344,9 +4199,9 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.57.1 '@types/shimmer': 1.2.0 - import-in-the-middle: 1.13.1 + import-in-the-middle: 1.14.2 require-in-the-middle: 7.5.2 - semver: 7.7.1 + semver: 7.7.2 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -4356,9 +4211,9 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.57.2 '@types/shimmer': 1.2.0 - import-in-the-middle: 1.13.1 + import-in-the-middle: 1.14.2 require-in-the-middle: 7.5.2 - semver: 7.7.1 + semver: 7.7.2 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -4382,7 +4237,7 @@ snapshots: '@opentelemetry/semantic-conventions@1.28.0': {} - '@opentelemetry/semantic-conventions@1.30.0': {} + '@opentelemetry/semantic-conventions@1.37.0': {} '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': dependencies: @@ -4450,11 +4305,11 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true - '@playwright/test@1.51.1': + '@playwright/test@1.55.0': dependencies: - playwright: 1.51.1 + playwright: 1.55.0 - '@polka/url@1.0.0-next.28': {} + '@polka/url@1.0.0-next.29': {} '@popperjs/core@2.11.8': {} @@ -4466,64 +4321,67 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/rollup-android-arm-eabi@4.46.2': + '@rollup/rollup-android-arm-eabi@4.50.2': + optional: true + + '@rollup/rollup-android-arm64@4.50.2': optional: true - '@rollup/rollup-android-arm64@4.46.2': + '@rollup/rollup-darwin-arm64@4.50.2': optional: true - '@rollup/rollup-darwin-arm64@4.46.2': + '@rollup/rollup-darwin-x64@4.50.2': optional: true - '@rollup/rollup-darwin-x64@4.46.2': + '@rollup/rollup-freebsd-arm64@4.50.2': optional: true - '@rollup/rollup-freebsd-arm64@4.46.2': + '@rollup/rollup-freebsd-x64@4.50.2': optional: true - '@rollup/rollup-freebsd-x64@4.46.2': + '@rollup/rollup-linux-arm-gnueabihf@4.50.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + '@rollup/rollup-linux-arm-musleabihf@4.50.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.46.2': + '@rollup/rollup-linux-arm64-gnu@4.50.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.46.2': + '@rollup/rollup-linux-arm64-musl@4.50.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.46.2': + '@rollup/rollup-linux-loong64-gnu@4.50.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': + '@rollup/rollup-linux-ppc64-gnu@4.50.2': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.46.2': + '@rollup/rollup-linux-riscv64-gnu@4.50.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.46.2': + '@rollup/rollup-linux-riscv64-musl@4.50.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.46.2': + '@rollup/rollup-linux-s390x-gnu@4.50.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.46.2': + '@rollup/rollup-linux-x64-gnu@4.50.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.46.2': + '@rollup/rollup-linux-x64-musl@4.50.2': optional: true - '@rollup/rollup-linux-x64-musl@4.46.2': + '@rollup/rollup-openharmony-arm64@4.50.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.46.2': + '@rollup/rollup-win32-arm64-msvc@4.50.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.46.2': + '@rollup/rollup-win32-ia32-msvc@4.50.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.46.2': + '@rollup/rollup-win32-x64-msvc@4.50.2': optional: true '@sentry-internal/browser-utils@8.55.0': @@ -4556,10 +4414,10 @@ snapshots: '@sentry/bundler-plugin-core@2.22.6': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.4 '@sentry/babel-plugin-component-annotate': 2.22.6 - '@sentry/cli': 2.43.0 - dotenv: 16.4.7 + '@sentry/cli': 2.53.0 + dotenv: 16.6.1 find-up: 5.0.0 glob: 9.3.5 magic-string: 0.30.8 @@ -4568,31 +4426,31 @@ snapshots: - encoding - supports-color - '@sentry/cli-darwin@2.43.0': + '@sentry/cli-darwin@2.53.0': optional: true - '@sentry/cli-linux-arm64@2.43.0': + '@sentry/cli-linux-arm64@2.53.0': optional: true - '@sentry/cli-linux-arm@2.43.0': + '@sentry/cli-linux-arm@2.53.0': optional: true - '@sentry/cli-linux-i686@2.43.0': + '@sentry/cli-linux-i686@2.53.0': optional: true - '@sentry/cli-linux-x64@2.43.0': + '@sentry/cli-linux-x64@2.53.0': optional: true - '@sentry/cli-win32-arm64@2.43.0': + '@sentry/cli-win32-arm64@2.53.0': optional: true - '@sentry/cli-win32-i686@2.43.0': + '@sentry/cli-win32-i686@2.53.0': optional: true - '@sentry/cli-win32-x64@2.43.0': + '@sentry/cli-win32-x64@2.53.0': optional: true - '@sentry/cli@2.43.0': + '@sentry/cli@2.53.0': dependencies: https-proxy-agent: 5.0.1 node-fetch: 2.7.0 @@ -4600,14 +4458,14 @@ snapshots: proxy-from-env: 1.1.0 which: 2.0.2 optionalDependencies: - '@sentry/cli-darwin': 2.43.0 - '@sentry/cli-linux-arm': 2.43.0 - '@sentry/cli-linux-arm64': 2.43.0 - '@sentry/cli-linux-i686': 2.43.0 - '@sentry/cli-linux-x64': 2.43.0 - '@sentry/cli-win32-arm64': 2.43.0 - '@sentry/cli-win32-i686': 2.43.0 - '@sentry/cli-win32-x64': 2.43.0 + '@sentry/cli-darwin': 2.53.0 + '@sentry/cli-linux-arm': 2.53.0 + '@sentry/cli-linux-arm64': 2.53.0 + '@sentry/cli-linux-i686': 2.53.0 + '@sentry/cli-linux-x64': 2.53.0 + '@sentry/cli-win32-arm64': 2.53.0 + '@sentry/cli-win32-i686': 2.53.0 + '@sentry/cli-win32-x64': 2.53.0 transitivePeerDependencies: - encoding - supports-color @@ -4646,44 +4504,44 @@ snapshots: '@opentelemetry/instrumentation-undici': 0.10.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 '@prisma/instrumentation': 5.22.0 '@sentry/core': 8.55.0 - '@sentry/opentelemetry': 8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) - import-in-the-middle: 1.13.1 + '@sentry/opentelemetry': 8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0) + import-in-the-middle: 1.14.2 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': + '@sentry/opentelemetry@8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.37.0 '@sentry/core': 8.55.0 - '@sentry/svelte@8.55.0(svelte@5.25.3)': + '@sentry/svelte@8.55.0(svelte@5.38.10)': dependencies: '@sentry/browser': 8.55.0 '@sentry/core': 8.55.0 magic-string: 0.30.7 - svelte: 5.25.3 + svelte: 5.38.10 - '@sentry/sveltekit@8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)(@sveltejs/kit@2.36.3(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0))': + '@sentry/sveltekit@8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0)(@sveltejs/kit@2.41.0(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1))': dependencies: '@sentry/core': 8.55.0 '@sentry/node': 8.55.0 - '@sentry/opentelemetry': 8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) - '@sentry/svelte': 8.55.0(svelte@5.25.3) + '@sentry/opentelemetry': 8.55.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.37.0) + '@sentry/svelte': 8.55.0(svelte@5.38.10) '@sentry/vite-plugin': 2.22.6 - '@sveltejs/kit': 2.36.3(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) + '@sveltejs/kit': 2.41.0(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) magic-string: 0.30.7 magicast: 0.2.8 sorcery: 1.0.0 optionalDependencies: - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/context-async-hooks' @@ -4742,104 +4600,99 @@ snapshots: '@stripe/stripe-js@3.5.0': {} - '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.1)': - dependencies: - acorn: 8.14.1 - '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': dependencies: acorn: 8.15.0 - '@sveltejs/adapter-static@3.0.8(@sveltejs/kit@2.36.3(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))': + '@sveltejs/adapter-static@3.0.9(@sveltejs/kit@2.41.0(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))': dependencies: - '@sveltejs/kit': 2.36.3(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) + '@sveltejs/kit': 2.41.0(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) - '@sveltejs/kit@2.36.3(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0))': + '@sveltejs/kit@2.41.0(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1))': dependencies: '@standard-schema/spec': 1.0.0 '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 0.6.0 devalue: 5.3.2 esm-env: 1.2.2 kleur: 4.1.5 - magic-string: 0.30.18 + magic-string: 0.30.19 mrmime: 2.0.1 sade: 1.8.1 set-cookie-parser: 2.7.1 - sirv: 3.0.1 - svelte: 5.25.3 - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) + sirv: 3.0.2 + svelte: 5.38.10 + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) optionalDependencies: '@opentelemetry/api': 1.9.0 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) - debug: 4.4.0 - svelte: 5.25.3 - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) + debug: 4.4.3 + svelte: 5.38.10 + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)))(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) - debug: 4.4.0 + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)))(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) + debug: 4.4.3 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.17 - svelte: 5.25.3 - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) - vitefu: 1.0.6(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) + magic-string: 0.30.19 + svelte: 5.38.10 + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) + vitefu: 1.1.1(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) transitivePeerDependencies: - supports-color - '@swc/helpers@0.5.15': + '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 - '@tanstack/svelte-virtual@3.13.12(svelte@5.25.3)': + '@tanstack/svelte-virtual@3.13.12(svelte@5.38.10)': dependencies: '@tanstack/virtual-core': 3.13.12 - svelte: 5.25.3 + svelte: 5.38.10 '@tanstack/virtual-core@3.13.12': {} - '@testing-library/dom@10.4.0': + '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.27.0 + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 - chalk: 4.1.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 + picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.6.3': + '@testing-library/jest-dom@6.8.0': dependencies: - '@adobe/css-tools': 4.4.2 + '@adobe/css-tools': 4.4.4 aria-query: 5.3.2 - chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 - lodash: 4.17.21 + picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/svelte@5.2.8(svelte@5.25.3)(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0))(vitest@3.2.4)': + '@testing-library/svelte@5.2.8(svelte@5.38.10)(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1))(vitest@3.2.4)': dependencies: - '@testing-library/dom': 10.4.0 - svelte: 5.25.3 + '@testing-library/dom': 10.4.1 + svelte: 5.38.10 optionalDependencies: - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) - vitest: 3.2.4(@types/node@22.13.14)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.86.0) + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) + vitest: 3.2.4(@types/node@24.5.0)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.92.1) - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: - '@testing-library/dom': 10.4.0 + '@testing-library/dom': 10.4.1 '@types/aria-query@5.0.4': {} @@ -4849,7 +4702,7 @@ snapshots: '@types/connect@3.4.36': dependencies: - '@types/node': 22.13.14 + '@types/node': 24.5.0 '@types/cookie@0.6.0': {} @@ -4859,8 +4712,6 @@ snapshots: '@types/dlv@1.1.5': {} - '@types/estree@1.0.7': {} - '@types/estree@1.0.8': {} '@types/hast@3.0.4': @@ -4875,11 +4726,11 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 22.13.14 + '@types/node': 24.5.0 - '@types/node@22.13.14': + '@types/node@24.5.0': dependencies: - undici-types: 6.20.0 + undici-types: 7.12.0 '@types/pg-pool@2.0.6': dependencies: @@ -4887,15 +4738,15 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 22.13.14 - pg-protocol: 1.8.0 + '@types/node': 24.5.0 + pg-protocol: 1.10.3 pg-types: 2.2.0 '@types/prismjs@1.26.5': {} '@types/prop-types@15.7.15': {} - '@types/react@18.3.23': + '@types/react@18.3.24': dependencies: '@types/prop-types': 15.7.15 csstype: 3.1.3 @@ -4906,163 +4757,102 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 22.13.14 + '@types/node': 24.5.0 '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.31.0)(typescript@5.8.2))(eslint@9.31.0)(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0)(typescript@5.9.2))(eslint@9.35.0)(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.28.0(eslint@9.31.0)(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/type-utils': 8.28.0(eslint@9.31.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.31.0)(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.28.0 - eslint: 9.31.0 + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0)(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.35.0)(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0)(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 + eslint: 9.35.0 graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.31.0)(typescript@5.8.2))(eslint@9.31.0)(typescript@5.8.2)': + '@typescript-eslint/parser@8.44.0(eslint@9.35.0)(typescript@5.9.2)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.30.1(eslint@9.31.0)(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/type-utils': 8.30.1(eslint@9.31.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.30.1(eslint@9.31.0)(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.30.1 - eslint: 9.31.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.28.0(eslint@9.31.0)(typescript@5.8.2)': - dependencies: - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.28.0 - debug: 4.4.0 - eslint: 9.31.0 - typescript: 5.8.2 + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 + debug: 4.4.3 + eslint: 9.35.0 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.30.1(eslint@9.31.0)(typescript@5.8.2)': + '@typescript-eslint/project-service@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.30.1 - debug: 4.4.0 - eslint: 9.31.0 - typescript: 5.8.2 + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) + '@typescript-eslint/types': 8.44.0 + debug: 4.4.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.28.0': + '@typescript-eslint/scope-manager@8.44.0': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 - '@typescript-eslint/scope-manager@8.30.1': + '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/visitor-keys': 8.30.1 + typescript: 5.9.2 - '@typescript-eslint/type-utils@8.28.0(eslint@9.31.0)(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.44.0(eslint@9.35.0)(typescript@5.9.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.31.0)(typescript@5.8.2) - debug: 4.4.0 - eslint: 9.31.0 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0)(typescript@5.9.2) + debug: 4.4.3 + eslint: 9.35.0 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.30.1(eslint@9.31.0)(typescript@5.8.2)': - dependencies: - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.2) - '@typescript-eslint/utils': 8.30.1(eslint@9.31.0)(typescript@5.8.2) - debug: 4.4.0 - eslint: 9.31.0 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.28.0': {} + '@typescript-eslint/types@8.44.0': {} - '@typescript-eslint/types@8.30.1': {} - - '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 - debug: 4.4.0 + '@typescript-eslint/project-service': 8.44.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.2)': + '@typescript-eslint/utils@8.44.0(eslint@9.35.0)(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/visitor-keys': 8.30.1 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.28.0(eslint@9.31.0)(typescript@5.8.2)': - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.31.0) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - eslint: 9.31.0 - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.30.1(eslint@9.31.0)(typescript@5.8.2)': - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.31.0) - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.2) - eslint: 9.31.0 - typescript: 5.8.2 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + eslint: 9.35.0 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.28.0': - dependencies: - '@typescript-eslint/types': 8.28.0 - eslint-visitor-keys: 4.2.0 - - '@typescript-eslint/visitor-keys@8.30.1': + '@typescript-eslint/visitor-keys@8.44.0': dependencies: - '@typescript-eslint/types': 8.30.1 - eslint-visitor-keys: 4.2.0 + '@typescript-eslint/types': 8.44.0 + eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -5071,16 +4861,16 @@ snapshots: '@types/chai': 5.2.2 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.0 + chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.17 + magic-string: 0.30.19 optionalDependencies: - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -5095,7 +4885,7 @@ snapshots: '@vitest/snapshot@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.17 + magic-string: 0.30.19 pathe: 2.0.3 '@vitest/spy@3.2.4': @@ -5108,109 +4898,103 @@ snapshots: fflate: 0.8.2 flatted: 3.3.3 pathe: 2.0.3 - sirv: 3.0.1 - tinyglobby: 0.2.14 + sirv: 3.0.2 + tinyglobby: 0.2.15 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.13.14)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.86.0) + vitest: 3.2.4(@types/node@24.5.0)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.92.1) '@vitest/utils@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - loupe: 3.1.4 + loupe: 3.2.1 tinyrainbow: 2.0.0 - '@vue/compiler-core@3.5.13': + '@vue/compiler-core@3.5.21': dependencies: - '@babel/parser': 7.28.3 - '@vue/shared': 3.5.13 + '@babel/parser': 7.28.4 + '@vue/shared': 3.5.21 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.13': + '@vue/compiler-dom@3.5.21': dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-core': 3.5.21 + '@vue/shared': 3.5.21 - '@vue/compiler-sfc@3.5.13': + '@vue/compiler-sfc@3.5.21': dependencies: - '@babel/parser': 7.28.3 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 + '@babel/parser': 7.28.4 + '@vue/compiler-core': 3.5.21 + '@vue/compiler-dom': 3.5.21 + '@vue/compiler-ssr': 3.5.21 + '@vue/shared': 3.5.21 estree-walker: 2.0.2 - magic-string: 0.30.18 + magic-string: 0.30.19 postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.13': + '@vue/compiler-ssr@3.5.21': dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.21 + '@vue/shared': 3.5.21 - '@vue/reactivity@3.5.13': + '@vue/reactivity@3.5.21': dependencies: - '@vue/shared': 3.5.13 + '@vue/shared': 3.5.21 - '@vue/runtime-core@3.5.13': + '@vue/runtime-core@3.5.21': dependencies: - '@vue/reactivity': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': 3.5.21 + '@vue/shared': 3.5.21 - '@vue/runtime-dom@3.5.13': + '@vue/runtime-dom@3.5.21': dependencies: - '@vue/reactivity': 3.5.13 - '@vue/runtime-core': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': 3.5.21 + '@vue/runtime-core': 3.5.21 + '@vue/shared': 3.5.21 csstype: 3.1.3 - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.8.2))': + '@vue/server-renderer@3.5.21(vue@3.5.21(typescript@5.9.2))': dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.8.2) - - '@vue/shared@3.5.13': {} + '@vue/compiler-ssr': 3.5.21 + '@vue/shared': 3.5.21 + vue: 3.5.21(typescript@5.9.2) - acorn-import-attributes@1.9.5(acorn@8.14.1): - dependencies: - acorn: 8.14.1 + '@vue/shared@3.5.21': {} - acorn-jsx@5.3.2(acorn@8.14.1): + acorn-import-attributes@1.9.5(acorn@8.15.0): dependencies: - acorn: 8.14.1 + acorn: 8.15.0 acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 - acorn@8.14.1: {} - acorn@8.15.0: {} agent-base@6.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color - agent-base@7.1.3: {} + agent-base@7.1.4: {} - ai@2.2.37(react@18.3.1)(solid-js@1.9.5)(svelte@5.25.3)(vue@3.5.13(typescript@5.8.2)): + ai@2.2.37(react@18.3.1)(solid-js@1.9.9)(svelte@5.38.10)(vue@3.5.21(typescript@5.9.2)): dependencies: eventsource-parser: 1.0.0 nanoid: 3.3.6 - solid-swr-store: 0.10.7(solid-js@1.9.5)(swr-store@0.10.6) - sswr: 2.0.0(svelte@5.25.3) + solid-swr-store: 0.10.7(solid-js@1.9.9)(swr-store@0.10.6) + sswr: 2.0.0(svelte@5.38.10) swr: 2.2.0(react@18.3.1) swr-store: 0.10.6 - swrv: 1.0.4(vue@3.5.13(typescript@5.8.2)) + swrv: 1.0.4(vue@3.5.21(typescript@5.9.2)) optionalDependencies: react: 18.3.1 - solid-js: 1.9.5 - svelte: 5.25.3 - vue: 3.5.13(typescript@5.8.2) + solid-js: 1.9.9 + svelte: 5.38.10 + vue: 3.5.21(typescript@5.9.2) ajv@6.12.6: dependencies: @@ -5219,16 +5003,16 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - analytics-utils@1.0.14(@types/dlv@1.1.5): + analytics-utils@1.1.1(@types/dlv@1.1.5): dependencies: - '@analytics/type-utils': 0.6.2 + '@analytics/type-utils': 0.6.4 '@types/dlv': 1.1.5 dlv: 1.1.3 - analytics@0.8.16(@types/dlv@1.1.5): + analytics@0.8.19(@types/dlv@1.1.5): dependencies: - '@analytics/core': 0.12.17(@types/dlv@1.1.5) - '@analytics/storage-utils': 0.4.2 + '@analytics/core': 0.13.2(@types/dlv@1.1.5) + '@analytics/storage-utils': 0.4.4 transitivePeerDependencies: - '@types/dlv' @@ -5282,14 +5066,16 @@ snapshots: balanced-match@1.0.2: {} + baseline-browser-mapping@2.8.4: {} + binary-extensions@2.3.0: {} - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -5297,12 +5083,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.4: + browserslist@4.26.2: dependencies: - caniuse-lite: 1.0.30001707 - electron-to-chromium: 1.5.128 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.4) + baseline-browser-mapping: 2.8.4 + caniuse-lite: 1.0.30001743 + electron-to-chromium: 1.5.218 + node-releases: 2.0.21 + update-browserslist-db: 1.1.3(browserslist@4.26.2) cac@6.7.14: {} @@ -5325,22 +5112,17 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001707: {} + caniuse-lite@1.0.30001743: {} ccount@2.0.1: {} - chai@5.2.0: + chai@5.3.3: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.4 - pathval: 2.0.0 - - chalk@3.0.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 + loupe: 3.2.1 + pathval: 2.0.1 chalk@4.1.2: dependencies: @@ -5375,9 +5157,9 @@ snapshots: code-red@1.0.4: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - '@types/estree': 1.0.7 - acorn: 8.14.1 + '@jridgewell/sourcemap-codec': 1.5.5 + '@types/estree': 1.0.8 + acorn: 8.15.0 estree-walker: 3.0.3 periscopic: 3.1.0 @@ -5385,22 +5167,22 @@ snapshots: dependencies: color-name: 1.1.4 - color-convert@3.1.0: + color-convert@3.1.2: dependencies: - color-name: 2.0.0 + color-name: 2.0.2 color-name@1.1.4: {} - color-name@2.0.0: {} + color-name@2.0.2: {} - color-string@2.0.1: + color-string@2.1.2: dependencies: - color-name: 2.0.0 + color-name: 2.0.2 - color@5.0.0: + color@5.0.2: dependencies: - color-convert: 3.1.0 - color-string: 2.0.1 + color-convert: 3.1.2 + color-string: 2.1.2 comma-separated-tokens@2.0.3: {} @@ -5414,7 +5196,7 @@ snapshots: cron-parser@4.9.0: dependencies: - luxon: 3.6.0 + luxon: 3.7.2 cross-spawn@7.0.6: dependencies: @@ -5431,9 +5213,9 @@ snapshots: cssesc@3.0.0: {} - cssstyle@4.3.0: + cssstyle@4.6.0: dependencies: - '@asamuzakjp/css-color': 3.1.1 + '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 csstype@3.1.3: {} @@ -5595,17 +5377,13 @@ snapshots: whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - dayjs@1.11.13: {} + dayjs@1.11.18: {} - debug@4.4.0: + debug@4.4.3: dependencies: ms: 2.1.3 - debug@4.4.1: - dependencies: - ms: 2.1.3 - - decimal.js@10.5.0: {} + decimal.js@10.6.0: {} deep-eql@5.0.2: {} @@ -5667,7 +5445,7 @@ snapshots: dom-accessibility-api@0.6.3: {} - dotenv@16.4.7: {} + dotenv@16.6.1: {} dunder-proto@1.0.1: dependencies: @@ -5680,12 +5458,14 @@ snapshots: tslib: 2.3.0 zrender: 5.6.1 - electron-to-chromium@1.5.128: {} + electron-to-chromium@1.5.218: {} emoji-regex-xs@1.0.0: {} entities@4.5.0: {} + entities@6.0.1: {} + es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -5708,70 +5488,61 @@ snapshots: dependencies: es-errors: 1.3.0 - esbuild@0.25.1: + esbuild@0.25.9: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.1 - '@esbuild/android-arm': 0.25.1 - '@esbuild/android-arm64': 0.25.1 - '@esbuild/android-x64': 0.25.1 - '@esbuild/darwin-arm64': 0.25.1 - '@esbuild/darwin-x64': 0.25.1 - '@esbuild/freebsd-arm64': 0.25.1 - '@esbuild/freebsd-x64': 0.25.1 - '@esbuild/linux-arm': 0.25.1 - '@esbuild/linux-arm64': 0.25.1 - '@esbuild/linux-ia32': 0.25.1 - '@esbuild/linux-loong64': 0.25.1 - '@esbuild/linux-mips64el': 0.25.1 - '@esbuild/linux-ppc64': 0.25.1 - '@esbuild/linux-riscv64': 0.25.1 - '@esbuild/linux-s390x': 0.25.1 - '@esbuild/linux-x64': 0.25.1 - '@esbuild/netbsd-arm64': 0.25.1 - '@esbuild/netbsd-x64': 0.25.1 - '@esbuild/openbsd-arm64': 0.25.1 - '@esbuild/openbsd-x64': 0.25.1 - '@esbuild/sunos-x64': 0.25.1 - '@esbuild/win32-arm64': 0.25.1 - '@esbuild/win32-ia32': 0.25.1 - '@esbuild/win32-x64': 0.25.1 + '@esbuild/aix-ppc64': 0.25.9 + '@esbuild/android-arm': 0.25.9 + '@esbuild/android-arm64': 0.25.9 + '@esbuild/android-x64': 0.25.9 + '@esbuild/darwin-arm64': 0.25.9 + '@esbuild/darwin-x64': 0.25.9 + '@esbuild/freebsd-arm64': 0.25.9 + '@esbuild/freebsd-x64': 0.25.9 + '@esbuild/linux-arm': 0.25.9 + '@esbuild/linux-arm64': 0.25.9 + '@esbuild/linux-ia32': 0.25.9 + '@esbuild/linux-loong64': 0.25.9 + '@esbuild/linux-mips64el': 0.25.9 + '@esbuild/linux-ppc64': 0.25.9 + '@esbuild/linux-riscv64': 0.25.9 + '@esbuild/linux-s390x': 0.25.9 + '@esbuild/linux-x64': 0.25.9 + '@esbuild/netbsd-arm64': 0.25.9 + '@esbuild/netbsd-x64': 0.25.9 + '@esbuild/openbsd-arm64': 0.25.9 + '@esbuild/openbsd-x64': 0.25.9 + '@esbuild/openharmony-arm64': 0.25.9 + '@esbuild/sunos-x64': 0.25.9 + '@esbuild/win32-arm64': 0.25.9 + '@esbuild/win32-ia32': 0.25.9 + '@esbuild/win32-x64': 0.25.9 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.6.4(eslint@9.31.0): + eslint-config-prettier@10.1.8(eslint@9.35.0): dependencies: - eslint: 9.31.0 - semver: 7.7.1 + eslint: 9.35.0 - eslint-config-prettier@10.1.1(eslint@9.31.0): + eslint-plugin-svelte@3.12.3(eslint@9.35.0)(svelte@5.38.10): dependencies: - eslint: 9.31.0 - - eslint-plugin-svelte@3.3.3(eslint@9.31.0)(svelte@5.25.3): - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.31.0) - '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.31.0 - eslint-compat-utils: 0.6.4(eslint@9.31.0) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0) + '@jridgewell/sourcemap-codec': 1.5.5 + eslint: 9.35.0 esutils: 2.0.3 - known-css-properties: 0.35.0 - postcss: 8.5.3 - postcss-load-config: 3.1.4(postcss@8.5.3) - postcss-safe-parser: 7.0.1(postcss@8.5.3) - semver: 7.7.1 - svelte-eslint-parser: 1.1.1(svelte@5.25.3) + globals: 16.4.0 + known-css-properties: 0.37.0 + postcss: 8.5.6 + postcss-load-config: 3.1.4(postcss@8.5.6) + postcss-safe-parser: 7.0.1(postcss@8.5.6) + semver: 7.7.2 + svelte-eslint-parser: 1.3.2(svelte@5.38.10) optionalDependencies: - svelte: 5.25.3 + svelte: 5.38.10 transitivePeerDependencies: - ts-node - eslint-scope@8.3.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 @@ -5779,29 +5550,27 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} - eslint-visitor-keys@4.2.1: {} - eslint@9.31.0: + eslint@9.35.0: dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.31.0) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.3.0 - '@eslint/core': 0.15.1 + '@eslint/config-helpers': 0.3.1 + '@eslint/core': 0.15.2 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.31.0 - '@eslint/plugin-kit': 0.3.3 - '@humanfs/node': 0.16.6 + '@eslint/js': 9.35.0 + '@eslint/plugin-kit': 0.3.5 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.7 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -5825,12 +5594,6 @@ snapshots: esm-env@1.2.2: {} - espree@10.3.0: - dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 4.2.0 - espree@10.4.0: dependencies: acorn: 8.15.0 @@ -5843,9 +5606,9 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@1.4.5: + esrap@2.1.0: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 esrecurse@4.3.0: dependencies: @@ -5857,13 +5620,13 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 esutils@2.0.3: {} eventsource-parser@1.0.0: {} - eventsource-parser@3.0.0: {} + eventsource-parser@3.0.6: {} expect-type@1.2.2: {} @@ -5885,15 +5648,7 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.4.3(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - - fdir@6.4.6(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - - fdir@6.4.6(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -5919,7 +5674,7 @@ snapshots: flatted@3.3.3: {} - focus-trap@7.6.4: + focus-trap@7.6.5: dependencies: tabbable: 6.2.0 @@ -5982,11 +5737,9 @@ snapshots: minipass: 4.2.8 path-scurry: 1.11.1 - globals@11.12.0: {} - globals@14.0.0: {} - globals@16.0.0: {} + globals@16.4.0: {} globalyzer@0.1.0: {} @@ -6042,22 +5795,22 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.3 - debug: 4.4.0 + agent-base: 7.1.4 + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.3 - debug: 4.4.0 + agent-base: 7.1.4 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -6069,19 +5822,21 @@ snapshots: ignore@6.0.2: {} - immutable@5.1.1: {} + ignore@7.0.5: {} + + immutable@5.1.3: {} import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@1.13.1: + import-in-the-middle@1.14.2: dependencies: - acorn: 8.14.1 - acorn-import-attributes: 1.9.5(acorn@8.14.1) + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) cjs-module-lexer: 1.4.3 - module-details-from-path: 1.0.3 + module-details-from-path: 1.0.4 imurmurhash@0.1.4: {} @@ -6149,7 +5904,7 @@ snapshots: is-reference@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 is-regex@1.2.1: dependencies: @@ -6196,15 +5951,15 @@ snapshots: jsdom@26.1.0: dependencies: - cssstyle: 4.3.0 + cssstyle: 4.6.0 data-urls: 5.0.0 - decimal.js: 10.5.0 + decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.2.1 + nwsapi: 2.2.22 + parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -6214,7 +5969,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.18.1 + ws: 8.18.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -6239,7 +5994,7 @@ snapshots: kleur@4.1.5: {} - known-css-properties@0.35.0: {} + known-css-properties@0.37.0: {} levn@0.4.1: dependencies: @@ -6256,13 +6011,11 @@ snapshots: lodash.merge@4.6.2: {} - lodash@4.17.21: {} - loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - loupe@3.1.4: {} + loupe@3.2.1: {} lru-cache@10.4.3: {} @@ -6270,30 +6023,26 @@ snapshots: dependencies: yallist: 3.1.1 - luxon@3.6.0: {} + luxon@3.7.2: {} lz-string@1.5.0: {} - magic-string@0.30.17: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - magic-string@0.30.18: + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 magic-string@0.30.7: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 magic-string@0.30.8: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 magicast@0.2.8: dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 recast: 0.23.11 math-intrinsics@1.1.0: {} @@ -6340,15 +6089,15 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@8.0.4: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} @@ -6356,7 +6105,7 @@ snapshots: minipass@7.1.2: {} - module-details-from-path@1.0.3: {} + module-details-from-path@1.0.4: {} mri@1.2.0: {} @@ -6381,11 +6130,11 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-releases@2.0.19: {} + node-releases@2.0.21: {} normalize-path@3.0.0: {} - nwsapi@2.2.20: {} + nwsapi@2.2.22: {} object-inspect@1.13.4: {} @@ -6432,9 +6181,9 @@ snapshots: dependencies: callsites: 3.1.0 - parse5@7.2.1: + parse5@7.3.0: dependencies: - entities: 4.5.0 + entities: 6.0.1 path-exists@4.0.0: {} @@ -6449,17 +6198,17 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} periscopic@3.1.0: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 estree-walker: 3.0.3 is-reference: 3.0.3 pg-int8@1.0.1: {} - pg-protocol@1.8.0: {} + pg-protocol@1.10.3: {} pg-types@2.2.0: dependencies: @@ -6473,17 +6222,15 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} - picomatch@4.0.3: {} plausible-tracker@0.3.9: {} - playwright-core@1.51.1: {} + playwright-core@1.55.0: {} - playwright@1.51.1: + playwright@1.55.0: dependencies: - playwright-core: 1.51.1 + playwright-core: 1.55.0 optionalDependencies: fsevents: 2.3.2 @@ -6496,32 +6243,26 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-load-config@3.1.4(postcss@8.5.3): + postcss-load-config@3.1.4(postcss@8.5.6): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.5.3 + postcss: 8.5.6 - postcss-safe-parser@7.0.1(postcss@8.5.3): + postcss-safe-parser@7.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 - postcss-scss@4.0.9(postcss@8.5.3): + postcss-scss@4.0.9(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.5.3: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -6540,12 +6281,12 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.3.3(prettier@3.5.3)(svelte@5.25.3): + prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.38.10): dependencies: - prettier: 3.5.3 - svelte: 5.25.3 + prettier: 3.6.2 + svelte: 5.38.10 - prettier@3.5.3: {} + prettier@3.6.2: {} pretty-bytes@6.1.1: {} @@ -6592,8 +6333,6 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - regenerator-runtime@0.14.1: {} - regex-recursion@5.1.1: dependencies: regex: 5.1.1 @@ -6621,8 +6360,8 @@ snapshots: require-in-the-middle@7.5.2: dependencies: - debug: 4.4.0 - module-details-from-path: 1.0.3 + debug: 4.4.3 + module-details-from-path: 1.0.4 resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -6639,30 +6378,31 @@ snapshots: robust-predicates@3.0.2: {} - rollup@4.46.2: + rollup@4.50.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.46.2 - '@rollup/rollup-android-arm64': 4.46.2 - '@rollup/rollup-darwin-arm64': 4.46.2 - '@rollup/rollup-darwin-x64': 4.46.2 - '@rollup/rollup-freebsd-arm64': 4.46.2 - '@rollup/rollup-freebsd-x64': 4.46.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 - '@rollup/rollup-linux-arm-musleabihf': 4.46.2 - '@rollup/rollup-linux-arm64-gnu': 4.46.2 - '@rollup/rollup-linux-arm64-musl': 4.46.2 - '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 - '@rollup/rollup-linux-ppc64-gnu': 4.46.2 - '@rollup/rollup-linux-riscv64-gnu': 4.46.2 - '@rollup/rollup-linux-riscv64-musl': 4.46.2 - '@rollup/rollup-linux-s390x-gnu': 4.46.2 - '@rollup/rollup-linux-x64-gnu': 4.46.2 - '@rollup/rollup-linux-x64-musl': 4.46.2 - '@rollup/rollup-win32-arm64-msvc': 4.46.2 - '@rollup/rollup-win32-ia32-msvc': 4.46.2 - '@rollup/rollup-win32-x64-msvc': 4.46.2 + '@rollup/rollup-android-arm-eabi': 4.50.2 + '@rollup/rollup-android-arm64': 4.50.2 + '@rollup/rollup-darwin-arm64': 4.50.2 + '@rollup/rollup-darwin-x64': 4.50.2 + '@rollup/rollup-freebsd-arm64': 4.50.2 + '@rollup/rollup-freebsd-x64': 4.50.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.50.2 + '@rollup/rollup-linux-arm-musleabihf': 4.50.2 + '@rollup/rollup-linux-arm64-gnu': 4.50.2 + '@rollup/rollup-linux-arm64-musl': 4.50.2 + '@rollup/rollup-linux-loong64-gnu': 4.50.2 + '@rollup/rollup-linux-ppc64-gnu': 4.50.2 + '@rollup/rollup-linux-riscv64-gnu': 4.50.2 + '@rollup/rollup-linux-riscv64-musl': 4.50.2 + '@rollup/rollup-linux-s390x-gnu': 4.50.2 + '@rollup/rollup-linux-x64-gnu': 4.50.2 + '@rollup/rollup-linux-x64-musl': 4.50.2 + '@rollup/rollup-openharmony-arm64': 4.50.2 + '@rollup/rollup-win32-arm64-msvc': 4.50.2 + '@rollup/rollup-win32-ia32-msvc': 4.50.2 + '@rollup/rollup-win32-x64-msvc': 4.50.2 fsevents: 2.3.3 rrweb-cssom@0.8.0: {} @@ -6685,10 +6425,10 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.86.0: + sass@1.92.1: dependencies: chokidar: 4.0.3 - immutable: 5.1.1 + immutable: 5.1.3 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 @@ -6701,9 +6441,9 @@ snapshots: semver@6.3.1: {} - semver@7.7.1: {} + semver@7.7.2: {} - seroval-plugins@1.3.2(seroval@1.3.2): + seroval-plugins@1.3.3(seroval@1.3.2): dependencies: seroval: 1.3.2 @@ -6776,26 +6516,26 @@ snapshots: siginfo@2.0.0: {} - sirv@3.0.1: + sirv@3.0.2: dependencies: - '@polka/url': 1.0.0-next.28 + '@polka/url': 1.0.0-next.29 mrmime: 2.0.1 totalist: 3.0.1 - solid-js@1.9.5: + solid-js@1.9.9: dependencies: csstype: 3.1.3 seroval: 1.3.2 - seroval-plugins: 1.3.2(seroval@1.3.2) + seroval-plugins: 1.3.3(seroval@1.3.2) - solid-swr-store@0.10.7(solid-js@1.9.5)(swr-store@0.10.6): + solid-swr-store@0.10.7(solid-js@1.9.9)(swr-store@0.10.6): dependencies: - solid-js: 1.9.5 + solid-js: 1.9.9 swr-store: 0.10.6 sorcery@1.0.0: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 minimist: 1.2.8 tiny-glob: 0.2.9 @@ -6807,9 +6547,9 @@ snapshots: sprintf-js@1.0.3: {} - sswr@2.0.0(svelte@5.25.3): + sswr@2.0.0(svelte@5.38.10): dependencies: - svelte: 5.25.3 + svelte: 5.38.10 swrev: 4.0.0 stackback@0.0.2: {} @@ -6847,68 +6587,68 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.1.5(picomatch@4.0.3)(svelte@5.25.3)(typescript@5.8.2): + svelte-check@4.3.1(picomatch@4.0.3)(svelte@5.38.10)(typescript@5.9.2): dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 - fdir: 6.4.3(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.25.3 - typescript: 5.8.2 + svelte: 5.38.10 + typescript: 5.9.2 transitivePeerDependencies: - picomatch - svelte-confetti@1.4.0(svelte@5.25.3): + svelte-confetti@1.4.0(svelte@5.38.10): dependencies: - svelte: 5.25.3 + svelte: 5.38.10 - svelte-eslint-parser@1.1.1(svelte@5.25.3): + svelte-eslint-parser@1.3.2(svelte@5.38.10): dependencies: - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - postcss: 8.5.3 - postcss-scss: 4.0.9(postcss@8.5.3) + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + postcss: 8.5.6 + postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.1.0 optionalDependencies: - svelte: 5.25.3 + svelte: 5.38.10 - svelte-motion@0.12.2(svelte@5.25.3): + svelte-motion@0.12.2(svelte@5.38.10): dependencies: - '@types/react': 18.3.23 + '@types/react': 18.3.24 framesync: 6.1.2 popmotion: 11.0.5 style-value-types: 5.1.2 - svelte: 5.25.3 + svelte: 5.38.10 tslib: 2.8.1 - svelte-preprocess@6.0.3(@babel/core@7.26.10)(postcss-load-config@3.1.4(postcss@8.5.3))(postcss@8.5.3)(sass@1.86.0)(svelte@5.25.3)(typescript@5.8.2): + svelte-preprocess@6.0.3(@babel/core@7.28.4)(postcss-load-config@3.1.4(postcss@8.5.6))(postcss@8.5.6)(sass@1.92.1)(svelte@5.38.10)(typescript@5.9.2): dependencies: - svelte: 5.25.3 + svelte: 5.38.10 optionalDependencies: - '@babel/core': 7.26.10 - postcss: 8.5.3 - postcss-load-config: 3.1.4(postcss@8.5.3) - sass: 1.86.0 - typescript: 5.8.2 + '@babel/core': 7.28.4 + postcss: 8.5.6 + postcss-load-config: 3.1.4(postcss@8.5.6) + sass: 1.92.1 + typescript: 5.9.2 svelte-sequential-preprocessor@2.0.2: dependencies: - svelte: 4.2.19 + svelte: 4.2.20 tslib: 2.7.0 - svelte-sonner@0.3.28(svelte@5.25.3): + svelte-sonner@0.3.28(svelte@5.38.10): dependencies: - svelte: 5.25.3 + svelte: 5.38.10 - svelte@4.2.19: + svelte@4.2.20: dependencies: '@ampproject/remapping': 2.3.0 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.7 - acorn: 8.14.1 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + '@types/estree': 1.0.8 + acorn: 8.15.0 aria-query: 5.3.2 axobject-query: 4.1.0 code-red: 1.0.4 @@ -6916,25 +6656,25 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.17 + magic-string: 0.30.19 periscopic: 3.1.0 - svelte@5.25.3: + svelte@5.38.10: dependencies: - '@ampproject/remapping': 2.3.0 - '@jridgewell/sourcemap-codec': 1.5.0 - '@sveltejs/acorn-typescript': 1.0.5(acorn@8.14.1) - '@types/estree': 1.0.7 - acorn: 8.14.1 + '@jridgewell/remapping': 2.3.5 + '@jridgewell/sourcemap-codec': 1.5.5 + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) + '@types/estree': 1.0.8 + acorn: 8.15.0 aria-query: 5.3.2 axobject-query: 4.1.0 clsx: 2.1.1 esm-env: 1.2.2 - esrap: 1.4.5 + esrap: 2.1.0 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.17 - zimmerframe: 1.1.2 + magic-string: 0.30.19 + zimmerframe: 1.1.4 swr-store@0.10.6: dependencies: @@ -6947,9 +6687,9 @@ snapshots: swrev@4.0.0: {} - swrv@1.0.4(vue@3.5.13(typescript@5.8.2)): + swrv@1.0.4(vue@3.5.21(typescript@5.9.2)): dependencies: - vue: 3.5.13(typescript@5.8.2) + vue: 3.5.21(typescript@5.9.2) symbol-tree@3.2.4: {} @@ -6968,10 +6708,10 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 tinypool@1.1.1: {} @@ -6983,17 +6723,17 @@ snapshots: dependencies: '@popperjs/core': 2.11.8 - tldts-core@6.1.85: {} + tldts-core@6.1.86: {} - tldts-core@7.0.7: {} + tldts-core@7.0.14: {} - tldts@6.1.85: + tldts@6.1.86: dependencies: - tldts-core: 6.1.85 + tldts-core: 6.1.86 - tldts@7.0.7: + tldts@7.0.14: dependencies: - tldts-core: 7.0.7 + tldts-core: 7.0.14 to-regex-range@5.0.1: dependencies: @@ -7003,19 +6743,19 @@ snapshots: tough-cookie@5.1.2: dependencies: - tldts: 6.1.85 + tldts: 6.1.86 tr46@0.0.3: {} - tr46@5.1.0: + tr46@5.1.1: dependencies: punycode: 2.3.1 trim-lines@3.0.1: {} - ts-api-utils@2.1.0(typescript@5.8.2): + ts-api-utils@2.1.0(typescript@5.9.2): dependencies: - typescript: 5.8.2 + typescript: 5.9.2 tslib@2.3.0: {} @@ -7029,19 +6769,20 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.30.1(eslint@9.31.0)(typescript@5.8.2): + typescript-eslint@8.44.0(eslint@9.35.0)(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.31.0)(typescript@5.8.2))(eslint@9.31.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.30.1(eslint@9.31.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.30.1(eslint@9.31.0)(typescript@5.8.2) - eslint: 9.31.0 - typescript: 5.8.2 + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0)(typescript@5.9.2))(eslint@9.35.0)(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0)(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0)(typescript@5.9.2) + eslint: 9.35.0 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - typescript@5.8.2: {} + typescript@5.9.2: {} - undici-types@6.20.0: {} + undici-types@7.12.0: {} unist-util-is@6.0.0: dependencies: @@ -7068,14 +6809,14 @@ snapshots: unplugin@1.0.1: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 chokidar: 3.6.0 - webpack-sources: 3.2.3 + webpack-sources: 3.3.3 webpack-virtual-modules: 0.5.0 - update-browserslist-db@1.1.3(browserslist@4.24.4): + update-browserslist-db@1.1.3(browserslist@4.26.2): dependencies: - browserslist: 4.24.4 + browserslist: 4.26.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -7099,13 +6840,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-node@3.2.4(@types/node@22.13.14)(sass@1.86.0): + vite-node@3.2.4(@types/node@24.5.0)(sass@1.92.1): dependencies: cac: 6.7.14 - debug: 4.4.1 + debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) transitivePeerDependencies: - '@types/node' - jiti @@ -7120,50 +6861,50 @@ snapshots: - tsx - yaml - vite@7.0.6(@types/node@22.13.14)(sass@1.86.0): + vite@7.1.5(@types/node@24.5.0)(sass@1.92.1): dependencies: - esbuild: 0.25.1 - fdir: 6.4.6(picomatch@4.0.3) + esbuild: 0.25.9 + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.46.2 - tinyglobby: 0.2.14 + rollup: 4.50.2 + tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.13.14 + '@types/node': 24.5.0 fsevents: 2.3.3 - sass: 1.86.0 + sass: 1.92.1 - vitefu@1.0.6(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)): + vitefu@1.1.1(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)): optionalDependencies: - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) - vitest@3.2.4(@types/node@22.13.14)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.86.0): + vitest@3.2.4(@types/node@24.5.0)(@vitest/ui@3.2.4)(jsdom@26.1.0)(sass@1.92.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.0.6(@types/node@22.13.14)(sass@1.86.0)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.5.0)(sass@1.92.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.0 - debug: 4.4.1 + chai: 5.3.3 + debug: 4.4.3 expect-type: 1.2.2 - magic-string: 0.30.17 + magic-string: 0.30.19 pathe: 2.0.3 picomatch: 4.0.3 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.0.6(@types/node@22.13.14)(sass@1.86.0) - vite-node: 3.2.4(@types/node@22.13.14)(sass@1.86.0) + vite: 7.1.5(@types/node@24.5.0)(sass@1.92.1) + vite-node: 3.2.4(@types/node@24.5.0)(sass@1.92.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.13.14 + '@types/node': 24.5.0 '@vitest/ui': 3.2.4(vitest@3.2.4) jsdom: 26.1.0 transitivePeerDependencies: @@ -7180,15 +6921,15 @@ snapshots: - tsx - yaml - vue@3.5.13(typescript@5.8.2): + vue@3.5.21(typescript@5.9.2): dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.8.2)) - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.21 + '@vue/compiler-sfc': 3.5.21 + '@vue/runtime-dom': 3.5.21 + '@vue/server-renderer': 3.5.21(vue@3.5.21(typescript@5.9.2)) + '@vue/shared': 3.5.21 optionalDependencies: - typescript: 5.8.2 + typescript: 5.9.2 w3c-xmlserializer@5.0.0: dependencies: @@ -7198,7 +6939,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-sources@3.2.3: {} + webpack-sources@3.3.3: {} webpack-virtual-modules@0.5.0: {} @@ -7210,7 +6951,7 @@ snapshots: whatwg-url@14.2.0: dependencies: - tr46: 5.1.0 + tr46: 5.1.1 webidl-conversions: 7.0.0 whatwg-url@5.0.0: @@ -7254,7 +6995,7 @@ snapshots: word-wrap@1.2.5: {} - ws@8.18.1: {} + ws@8.18.3: {} xml-name-validator@5.0.0: {} @@ -7268,13 +7009,13 @@ snapshots: yocto-queue@0.1.0: {} - zimmerframe@1.1.2: {} + zimmerframe@1.1.4: {} - zod-to-json-schema@3.24.5(zod@3.24.3): + zod-to-json-schema@3.24.6(zod@3.25.76): dependencies: - zod: 3.24.3 + zod: 3.25.76 - zod@3.24.3: {} + zod@3.25.76: {} zrender@5.6.1: dependencies: diff --git a/src/app.html b/src/app.html index 7ca4eefe82..60897f08b8 100644 --- a/src/app.html +++ b/src/app.html @@ -13,6 +13,12 @@ - - - - - - - - - - - {#if data.users.total} - - - {#each $columns as { id, title } (id)} - {title} - {/each} - - {#each data.users.users as user} - - {#each $columns as { id } (id)} - - {#if id === '$id'} - - - - {user.$id} - - - {:else if id === 'name'} - - {#if user.email || user.phone} - {#if user.name} - - - {user.name} - - {:else} -
- -
- {/if} - {:else} -
- -
- - {user.name} - - {/if} -
- {:else if id === 'identifiers'} - - {user.email && user.phone - ? [user.email, user.phone].join(',') - : user.email || user.phone} - - {:else if id === 'status'} - {#if user.status} - {@const success = - user.emailVerification || user.phoneVerification} - - {:else} - - {/if} - {:else if id === 'labels'} - - {user.labels.join(', ')} - - {:else if id === 'joined'} - {toLocaleDateTime(user.registration)} - {:else if id === 'lastActivity'} - {user.accessedAt ? toLocaleDate(user.accessedAt) : 'never'} - {:else} - {user[id]} - {/if} -
- {/each} -
- {/each} -
- - - {:else if data.search} - - - - {:else} - showCreateUser.set(true)} /> - {/if} +
- - diff --git a/src/routes/(console)/project-[region]-[project]/auth/header.svelte b/src/routes/(console)/project-[region]-[project]/auth/header.svelte index bb425c2b54..8913389005 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/header.svelte @@ -7,7 +7,8 @@ import { canWriteProjects } from '$lib/stores/roles'; import { Typography } from '@appwrite.io/pink-svelte'; - const path = `${base}/project-${page.params.region}-${page.params.project}/auth`; + export let path = `${base}/project-${page.params.region}-${page.params.project}/auth`; + const tabs = [ { href: path, diff --git a/src/routes/(console)/project-[region]-[project]/auth/security/+page.svelte b/src/routes/(console)/project-[region]-[project]/auth/security/+page.svelte index 48718cba38..6a0cc0ec96 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/security/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/security/+page.svelte @@ -1,6 +1,5 @@ -{#if $authMethods && $project} - - - - Auth methods - Enable the authentication methods you wish to use. - - - {#each $authMethods.list as box} -
- authUpdate(box)} /> -
- {/each} -
-
-
- - OAuth2 Providers -
    - {#each $project.oAuthProviders - .filter((p) => p.name !== 'Mock') - .sort( (a, b) => (a.enabled === b.enabled ? 0 : a.enabled ? -1 : 1) ) as provider} - {@const oAuthProvider = oAuthProviders[provider.key]} - {#if oAuthProvider} - { - selectedProvider = provider; - showProvider = true; - trackEvent(`click_select_provider`, { - provider: provider.key.toLowerCase() - }); - }}> - - - - {provider.name} - - {provider.name} - - - - - {/if} - {/each} -
-
-
-
-{/if} - -{#if selectedProvider && showProvider} - {@const oAuthProvider = oAuthProviders[selectedProvider.key]} - { - selectedProvider = null; - showProvider = false; - }} /> -{/if} + diff --git a/src/routes/(console)/project-[region]-[project]/auth/settings/view.svelte b/src/routes/(console)/project-[region]-[project]/auth/settings/view.svelte new file mode 100644 index 0000000000..119d4e43db --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/auth/settings/view.svelte @@ -0,0 +1,120 @@ + + +{#if $authMethods && $project} + + + + Auth methods + Enable the authentication methods you wish to use. + + + {#each $authMethods.list as box} +
+ authUpdate(box)} /> +
+ {/each} +
+
+
+ + OAuth2 Providers +
    + {#each $project.oAuthProviders + .filter((p) => p.name !== 'Mock') + .sort( (a, b) => (a.enabled === b.enabled ? 0 : a.enabled ? -1 : 1) ) as provider} + {@const oAuthProvider = oAuthProviders[provider.key]} + {#if oAuthProvider} + { + selectedProvider = provider; + showProvider = true; + trackEvent(`click_select_provider`, { + provider: provider.key.toLowerCase() + }); + }}> + + + + {provider.name} + + {provider.name} + + + + + {/if} + {/each} +
+
+
+
+{/if} + +{#if selectedProvider && showProvider} + {@const oAuthProvider = oAuthProviders[selectedProvider.key]} + { + selectedProvider = null; + showProvider = false; + }} /> +{/if} diff --git a/src/routes/(console)/project-[region]-[project]/auth/teams/+page.svelte b/src/routes/(console)/project-[region]-[project]/auth/teams/+page.svelte index cbefb02fb1..2cabe7b23a 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/teams/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/teams/+page.svelte @@ -1,96 +1,25 @@ - - - - - - - - - - {#if data.teams.total} - - - Name - Members - Created - - {#each data.teams.teams as team} - - - - - {team.name} - - - - {team.total} members - - - - - - {/each} - - - - {:else if data.search} - - - - {:else} - ($showCreateTeam = true)} - href="https://appwrite.io/docs/references/cloud/client-web/teams" - target="team" /> - {/if} + - - diff --git a/src/routes/(console)/project-[region]-[project]/auth/teams/team-[team]/header.svelte b/src/routes/(console)/project-[region]-[project]/auth/teams/team-[team]/header.svelte index b6bab1f33a..afc2251525 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/teams/team-[team]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/teams/team-[team]/header.svelte @@ -6,7 +6,8 @@ import { Cover, CoverTitle } from '$lib/layout'; import { team } from './store'; - const path = `${base}/project-${page.params.region}-${page.params.project}/auth/teams/team-${page.params.team}`; + export let path = `${base}/project-${page.params.region}-${page.params.project}/auth/teams/team-${page.params.team}`; + export let back = `${base}/project-${page.params.region}-${page.params.project}/auth/teams`; const tabs = [ { href: path, @@ -30,8 +31,7 @@ - + {$team?.name} {$team?.$id} diff --git a/src/routes/(console)/project-[region]-[project]/auth/teams/view.svelte b/src/routes/(console)/project-[region]-[project]/auth/teams/view.svelte new file mode 100644 index 0000000000..c27c7f9b5b --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/auth/teams/view.svelte @@ -0,0 +1,111 @@ + + + + + + + + + + + +{#if teams.total} + + + Name + Members + Created + + {#each teams.teams as team} + {@const href = createTeamUrl(team)} + {#if href} + + + + + {team.name} + + + + {team.total} members + + + + + + {:else} + + + + + {team.name} + + + + {team.total} members + + + + + + {/if} + {/each} + + + +{:else if search} + + + +{:else} + (showCreateTeam = true)} + href="https://appwrite.io/docs/references/cloud/client-web/teams" + target="team" /> +{/if} + + diff --git a/src/routes/(console)/project-[region]-[project]/auth/templates/+page.svelte b/src/routes/(console)/project-[region]-[project]/auth/templates/+page.svelte index da7178906c..740f6dd709 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/templates/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/templates/+page.svelte @@ -1,150 +1,6 @@ - - - - {#if !data.project.smtpEnabled} - - Configure a custom SMTP server to enable custom email templates and prevent emails from - being labeled as spam. - - - {/if} - - - - Email templates - - Use templates to send and process account management emails. - - Learn more - - - - {#each templates as section (section.key)} - event.detail && toggleAccordion(section.key)}> - - {section.description} - - - - {/each} - - - - - - - {#if isCloud && $currentPlan.emailBranding} - - {/if} - + diff --git a/src/routes/(console)/project-[region]-[project]/auth/templates/email2FATemplate.svelte b/src/routes/(console)/project-[region]-[project]/auth/templates/email2FATemplate.svelte index 536a1aa282..acfe98909f 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/templates/email2FATemplate.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/templates/email2FATemplate.svelte @@ -1,7 +1,7 @@ + + + + + {#if !project.smtpEnabled} + + Configure a custom SMTP server to enable custom email templates and prevent emails from + being labeled as spam. + + + {/if} + + + + Email templates + + Use templates to send and process account management emails. + Learn more + + + {#each templates as section (section.key)} + event.detail && toggleAccordion(section.key)}> + + {section.description} + + + + {/each} + + + + + + + {#if isCloud && $currentPlan.emailBranding} + + {/if} + diff --git a/src/routes/(console)/project-[region]-[project]/auth/user-[user]/+page.svelte b/src/routes/(console)/project-[region]-[project]/auth/user-[user]/+page.svelte index d63f210390..fea38ec91e 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/user-[user]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/user-[user]/+page.svelte @@ -1,24 +1,6 @@ - - - - - - - - - - - + diff --git a/src/routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte b/src/routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte index f11425ba94..130a4f9c5a 100644 --- a/src/routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte @@ -6,7 +6,8 @@ import { Cover, CoverTitle } from '$lib/layout'; import { user } from './store'; - const path = `${base}/project-${page.params.region}-${page.params.project}/auth/user-${page.params.user}`; + export let back = `${base}/project-${page.params.region}-${page.params.project}/auth`; + export let path = `${base}/project-${page.params.region}-${page.params.project}/auth/user-${page.params.user}`; const tabs = [ { href: path, @@ -44,7 +45,7 @@ - + {$user.name ? $user.name : '-'} {$user.$id} diff --git a/src/routes/(console)/project-[region]-[project]/auth/user-[user]/view.svelte b/src/routes/(console)/project-[region]-[project]/auth/user-[user]/view.svelte new file mode 100644 index 0000000000..d63f210390 --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/auth/user-[user]/view.svelte @@ -0,0 +1,24 @@ + + + + + + + + + + + + + diff --git a/src/routes/(console)/project-[region]-[project]/auth/view.svelte b/src/routes/(console)/project-[region]-[project]/auth/view.svelte new file mode 100644 index 0000000000..2a29f995d5 --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/auth/view.svelte @@ -0,0 +1,250 @@ + + + + + + + + + + + + +{#if users.total} + + + {#each $columns as { id, title } (id)} + {title} + {/each} + + + {#each users.users as user} + {@const href = createUserUrl(user)} + {#if href} + + {#each $columns as { id } (id)} + + {#if id === '$id'} + + + + {user.$id} + + + {:else if id === 'name'} + + {#if user.email || user.phone} + {#if user.name} + + + {user.name} + + {:else} +
+ +
+ {/if} + {:else} +
+ +
+ + {user.name} + + {/if} +
+ {:else if id === 'identifiers'} + + {user.email && user.phone + ? [user.email, user.phone].join(',') + : user.email || user.phone} + + {:else if id === 'status'} + {#if user.status} + {@const success = + user.emailVerification || user.phoneVerification} + + {:else} + + {/if} + {:else if id === 'labels'} + + {user.labels.join(', ')} + + {:else if id === 'joined'} + {toLocaleDateTime(user.registration)} + {:else if id === 'lastActivity'} + {user.accessedAt ? toLocaleDate(user.accessedAt) : 'never'} + {:else} + {user[id]} + {/if} +
+ {/each} +
+ {:else} + + {#each $columns as { id } (id)} + + {#if id === '$id'} + + + + {user.$id} + + + {:else if id === 'name'} + + {#if user.email || user.phone} + {#if user.name} + + + {user.name} + + {:else} +
+ +
+ {/if} + {:else} +
+ +
+ + {user.name} + + {/if} +
+ {:else if id === 'identifiers'} + + {user.email && user.phone + ? [user.email, user.phone].join(',') + : user.email || user.phone} + + {:else if id === 'status'} + {#if user.status} + {@const success = + user.emailVerification || user.phoneVerification} + + {:else} + + {/if} + {:else if id === 'labels'} + + {user.labels.join(', ')} + + {:else if id === 'joined'} + {toLocaleDateTime(user.registration)} + {:else if id === 'lastActivity'} + {user.accessedAt ? toLocaleDate(user.accessedAt) : 'never'} + {:else} + {user[id]} + {/if} +
+ {/each} +
+ {/if} + {/each} +
+ + +{:else if search} + + + +{:else} + (showCreateUser = true)} /> +{/if} + + diff --git a/src/routes/(console)/project-[region]-[project]/databases/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/+page.svelte index a8ab5335a8..7308c4a256 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/+page.svelte @@ -1,97 +1,28 @@ - - - - - - - {#if $canWriteDatabases} - - {/if} - - - - {#if data.databases.total} - {#if data.view === 'grid'} - - {:else} - - {/if} - - - {:else if data.search} - - - - {:else} - (showCreate = true)} /> - {/if} + - - diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte index be123b600c..740c213597 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.svelte @@ -1,94 +1,24 @@ - - - - - - - - - - {#if $canWriteTables} - - {/if} - - - - {#if data.tables.total} - {#if data.view === 'grid'} - - {:else} -
- {/if} - - - {:else if data.search} - - - - {:else} - - - - Create, organize, and query structured data with Tables. - - - - - {#if $canWriteTables} - - {/if} - - - - {/if} + + diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte index 7b18c985c5..de5f516e7b 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte @@ -9,7 +9,8 @@ const projectId = page.params.project; const databaseId = page.params.database; - const path = `${base}/project-${page.params.region}-${page.params.project}/databases/database-${databaseId}`; + export let path = `${base}/project-${page.params.region}-${page.params.project}/databases/database-${databaseId}`; + export let back = `${base}/project-${page.params.region}-${projectId}/databases`; const tabs = [ { href: path, @@ -40,7 +41,7 @@ - + {$database.name} {$database.$id} diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte index 7439aa0972..cbe81307b1 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte @@ -1,252 +1,8 @@ -{#key page.params.table} - - - - - - - - - - - {#if !$isSmallViewport} - - - - {/if} - - - {#if $isSmallViewport} - - {/if} - - - -
- {#if hasColumns && hasValidColumns} - {#if data.rows.total} - - - {:else if $hasPageQueries} - { - queries.clearAll(); - queries.apply(); - trackEvent(Submit.FilterClear, { - source: 'database_rows' - }); - } - } - }} /> - {:else} - { - $showRowCreateSheet.show = true; - } - }, - random: { - onClick: () => { - $randomDataModalState.show = true; - } - } - }} /> - {/if} - {:else} - { - $showCreateColumnSheet.show = true; - } - }, - random: { - onClick: () => { - $randomDataModalState.show = true; - } - } - }} /> - {/if} -
-{/key} - -{#if showImportCSV} - - -{/if} - - - - + diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte index 2e52e82f96..f61a588c67 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte @@ -14,9 +14,11 @@ const tableId = $derived(page.params.table); - const path = $derived( + const computedPath = $derived( `${base}/project-${page.params.region}-${page.params.project}/databases/database-${databaseId}/table-${tableId}` ); + let { path: _path, back: _back } = $props(); + const path = $derived(_path ?? computedPath); const tabs = $derived( [ @@ -57,9 +59,10 @@ ].filter((tab) => !tab.disabled) ); - const link = $derived( + const computedBack = $derived( `${base}/project-${page.params.region}-${page.params.project}/databases/database-${databaseId}` ); + const back = $derived(_back ?? computedBack); const nonSheetPages = $derived.by(() => { const endings = ['table-[table]', 'table-[table]/columns', 'table-[table]/indexes']; @@ -79,7 +82,7 @@ - + {$table?.name} diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/view.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/view.svelte new file mode 100644 index 0000000000..b7d0c9ca2d --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/view.svelte @@ -0,0 +1,274 @@ + + +{#key page.params.table} + + + + + + + + + + + {#if !$isSmallViewport} + + + + {/if} + + + {#if $isSmallViewport} + + {/if} + + + +
+ {#if hasColumns && hasValidColumns} + {#if data.rows.total} + + + {:else if $hasPageQueries} + { + queries.clearAll(); + queries.apply(); + trackEvent(Submit.FilterClear, { + source: 'database_rows' + }); + } + } + }} /> + {:else} + { + $showRowCreateSheet.show = true; + } + }, + random: { + onClick: () => { + $randomDataModalState.show = true; + } + } + }} /> + {/if} + {:else} + { + $showCreateColumnSheet.show = true; + } + }, + random: { + onClick: () => { + $randomDataModalState.show = true; + } + } + }} /> + {/if} +
+{/key} + +{#if showImportCSV} + + +{/if} + + + + diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/view.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/view.svelte new file mode 100644 index 0000000000..3d8c78618c --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/view.svelte @@ -0,0 +1,138 @@ + + + + + + + + + + + {#if canWriteTables} + + {/if} + + + +{#if tables.total} + {#if view === 'grid'} + ($showCreate = true)}> + {#each tables.tables as table} + + {table.name} + {table.$id} + + {/each} + + {:else} + + + {#each $tableViewColumns as { id, title }} + {title} + {/each} + + {#each tables.tables as table (table.$id)} + + {#each $tableViewColumns as column} + + {#if column.id === '$id'} + {#key $tableViewColumns} + {table.$id} + {/key} + {:else if column.id === 'name'} + {table.name} + {:else} + {table[column.id]} + {/if} + + {/each} + + {/each} + + {/if} + + +{:else if search} + + + +{:else} + + + Create, organize, and query structured data with Tables. + + + {#if canWriteTables} + + {/if} + + + +{/if} diff --git a/src/routes/(console)/project-[region]-[project]/databases/header.svelte b/src/routes/(console)/project-[region]-[project]/databases/header.svelte index 796c86d09f..0dc8cd62a1 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/header.svelte @@ -7,7 +7,7 @@ import { Typography } from '@appwrite.io/pink-svelte'; const projectId = page.params.project; - const path = `${base}/project-${page.params.region}-${projectId}/databases`; + export let path = `${base}/project-${page.params.region}-${projectId}/databases`; const tabs = [ { href: path, diff --git a/src/routes/(console)/project-[region]-[project]/databases/view.svelte b/src/routes/(console)/project-[region]-[project]/databases/view.svelte new file mode 100644 index 0000000000..f446648141 --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/databases/view.svelte @@ -0,0 +1,189 @@ + + + + + + + + + {#if canWriteDatabases} + + {/if} + + + +{#if databases.total} + {#if view === 'grid'} + (showCreate = true)}> + {#each databases.databases as database} + {@const href = getDatabaseUrl(database, tables?.[database.$id] ?? null)} + + {database.name} + + {#if lastBackups && lastBackups[database.$id]} + Last backup: {lastBackups[database.$id]} + {:else if !policies || !policies[database.$id]} + No backup policies + {:else} + Last backup: No backups yet + {/if} + + {database.$id} + + {/each} +

Create a database

+
+ {:else} + + + {#each $columns as { id, title }} + {title} + {/each} + + {#each databases.databases as database (database.$id)} + {@const tableId = tables?.[database.$id] ?? null} + {@const href = getDatabaseUrl(database, tableId)} + + {#each $columns as column} + + {#if column.id === '$id'} + {#key $columns} + {database.$id} + {/key} + {:else if column.id === 'name'} + {database.name} + {:else if column.id === 'backup'} + {@const p = policies?.[database.$id] ?? null} + {@const last = lastBackups?.[database.$id] ?? null} + {@const description = p + ?.map((policy) => getPolicyDescription(policy.schedule)) + .join(', ')} + + + {#if !p} + + + No backup policies + + {:else} + {description} + {/if} + + Last backup: {last} + + {:else} + {toLocaleDateTime(database[column.id])} + {/if} + + {/each} + + {/each} + + {/if} + + +{:else if search} + + + +{:else} + +{/if} + + + + diff --git a/src/routes/(console)/project-[region]-[project]/messaging/+page.svelte b/src/routes/(console)/project-[region]-[project]/messaging/+page.svelte index 1931f56ffa..4362ad002d 100644 --- a/src/routes/(console)/project-[region]-[project]/messaging/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/messaging/+page.svelte @@ -1,244 +1,21 @@ - - {#if $canWriteMessages} - - {/if} - - - {#if data.messages.total} - - - {#each $columns as { id, title }} - {title} - {/each} - - {#each data.messages.messages as message (message.$id)} - - {#each $columns as column (column.id)} - - {#if column.id === '$id'} - {#key $columns} - {message.$id} - {/key} - {:else if column.id === 'message'} - {#if message.providerType === MessagingProviderType.Push} - {message.data.title} - {:else if message.providerType === MessagingProviderType.Sms} - {message.data.content} - {:else if message.providerType === MessagingProviderType.Email} - {message.data.subject} - {:else} - Invalid provider - {/if} - {:else if column.id === 'providerType'} - - {:else if column.id === 'status'} - - - {#if message.status === 'failed'} - { - e.preventDefault(); - errors = message.deliveryErrors; - showFailed = true; - }}>Details - {/if} - - {:else if column.type === 'datetime'} - {#if !message[column.id]} - - - {:else} - {toLocaleDateTime(message[column.id])} - {/if} - {:else} - {message[column.id]} - {/if} - - {/each} - - {/each} - - - {#if selected.length > 0} - - - - - {selected.length > 1 ? 'messages' : 'message'} - selected - - - - - - - - {/if} - - - {:else if $hasPageQueries} - - {:else if data.search} - -
- Sorry, we couldn't find '{data.search}' -

There are no messages that match your search.

-
-
- - -
-
- {:else} - ($showCreate = true)}> - - - {#if $canWriteMessages} - - - - {/if} - - - {/if} +
- - - - - - Are you sure you want to delete {selected.length} - {selected.length > 1 ? 'messages' : 'message'}? - - diff --git a/src/routes/(console)/project-[region]-[project]/messaging/header.svelte b/src/routes/(console)/project-[region]-[project]/messaging/header.svelte index d0e5082cf1..bf650cab67 100644 --- a/src/routes/(console)/project-[region]-[project]/messaging/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/messaging/header.svelte @@ -6,7 +6,7 @@ import { Cover } from '$lib/layout'; import { Typography } from '@appwrite.io/pink-svelte'; - const path = `${base}/project-${page.params.region}-${page.params.project}/messaging`; + export let path = `${base}/project-${page.params.region}-${page.params.project}/messaging`; const tabs = [ { href: path, diff --git a/src/routes/(console)/project-[region]-[project]/messaging/view.svelte b/src/routes/(console)/project-[region]-[project]/messaging/view.svelte new file mode 100644 index 0000000000..945ad93632 --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/messaging/view.svelte @@ -0,0 +1,218 @@ + + + + {#if $canWriteMessages} + + {/if} + + +{#if messages.total} + + + {#each $columns as { id, title }} + {title} + {/each} + + {#each messages.messages as message (message.$id)} + + {#each $columns as column (column.id)} + + {#if column.id === '$id'} + {#key $columns}{message.$id}{/key} + {:else if column.id === 'message'} + {#if message.providerType === MessagingProviderType.Push} + {message.data.title} + {:else if message.providerType === MessagingProviderType.Sms} + {message.data.content} + {:else if message.providerType === MessagingProviderType.Email} + {message.data.subject} + {:else}Invalid provider{/if} + {:else if column.id === 'providerType'} + + {:else if column.id === 'status'} + + + {#if message.status === 'failed'} + { + e.preventDefault(); + errors = message.deliveryErrors; + showFailed = true; + }}>Details + {/if} + + {:else if column.type === 'datetime'} + {#if !message[column.id]}-{:else}{toLocaleDateTime( + message[column.id] + )}{/if} + {:else} + {message[column.id]} + {/if} + + {/each} + + {/each} + + + {#if selected.length > 0} + + + + {selected.length > 1 ? 'messages' : 'message'} selected + + + + + + + {/if} + + +{:else if $hasPageQueries} + +{:else if search} + +
+ Sorry, we couldn't find '{search}' +

There are no messages that match your search.

+
+
+ + +
+
+{:else} + ($showCreate = true)}> + + + {#if $canWriteMessages} + + + + {/if} + + +{/if} + + + + Are you sure you want to delete {selected.length} + {selected.length > 1 ? 'messages' : 'message'}? + diff --git a/src/routes/(console)/project-[region]-[project]/settings/header.svelte b/src/routes/(console)/project-[region]-[project]/settings/header.svelte index d7a715c2c8..90e0b75d55 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/header.svelte @@ -9,7 +9,7 @@ import { isCloud } from '$lib/system'; import { Typography } from '@appwrite.io/pink-svelte'; - const path = `${base}/project-${page.params.region}-${page.params.project}/settings`; + export let path = `${base}/project-${page.params.region}-${page.params.project}/settings`; const tabs: TabElement[] = [ { href: path, diff --git a/src/routes/(console)/project-[region]-[project]/settings/webhooks/[webhook]/header.svelte b/src/routes/(console)/project-[region]-[project]/settings/webhooks/[webhook]/header.svelte index 54f69c8ee8..8574d4bce6 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/webhooks/[webhook]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/webhooks/[webhook]/header.svelte @@ -6,11 +6,12 @@ import { webhook } from './store'; const projectId = page.params.project; + export let back = `${base}/project-${page.params.region}-${projectId}/settings/webhooks`; - + {$webhook?.name} {$webhook?.$id} diff --git a/src/routes/(console)/project-[region]-[project]/storage/+page.svelte b/src/routes/(console)/project-[region]-[project]/storage/+page.svelte index 7bbac81ce1..56a01c64bb 100644 --- a/src/routes/(console)/project-[region]-[project]/storage/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/storage/+page.svelte @@ -3,73 +3,25 @@ - - - - - - - {#if $canWriteBuckets} - - {/if} - - - {#if data.buckets.total} - {#if data.view === 'grid'} - - {:else} -
- {/if} - - - {:else} - showCreateBucket.set(true)} /> - {/if} + - - diff --git a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte index 5aa634cf54..906c4896dd 100644 --- a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte @@ -1,249 +1,21 @@ - - - - - - - - - - - - {#if data.files.total} - - - Filename - Type - Size - Created - - - {#each data.files.files as file} - {#if file.chunksTotal / file.chunksUploaded !== 1} - - - - - {file.name} -
- -
-
-
- {file.mimeType} - - {calculateSize(file.sizeOriginal)} - - - - - -
- -
-
-
- {:else} - {@const href = `${base}/project-${page.params.region}-${page.params.project}/storage/bucket-${bucketId}/file-${file.$id}`} - - -
- - {file.name} -
-
- {file.mimeType} - - {calculateSize(file.sizeOriginal)} - - - - - - - - - - Update - - { - e.stopPropagation(); - e.preventDefault(); - selectedFile = file; - showDelete = true; - }}> - Delete - - - - -
- {/if} - {/each} -
- - - {:else if data.search} - -
- Sorry, we couldn't find '{data.search}' -

There are no files that match your search.

-
-
- - -
-
- {:else} - - goto( - `${base}/project-${page.params.region}-${page.params.project}/storage/bucket-${page.params.bucket}/create` - )} /> - {/if} +
- -{#if selectedFile} - -{/if} diff --git a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/header.svelte b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/header.svelte index 27c2612854..d96cd47229 100644 --- a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/header.svelte @@ -7,12 +7,12 @@ const projectId = page.params.project; const bucketId = page.params.bucket; + export let back = `${base}/project-${page.params.region}-${projectId}/storage/bucket-${bucketId}`; - + {$file?.name} {$file?.$id} diff --git a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/header.svelte b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/header.svelte index 5bdf521833..2adff4031e 100644 --- a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/header.svelte @@ -9,7 +9,8 @@ const projectId = page.params.project; const bucketId = page.params.bucket; - const path = `${base}/project-${page.params.region}-${projectId}/storage/bucket-${bucketId}`; + export let path = `${base}/project-${page.params.region}-${projectId}/storage/bucket-${bucketId}`; + export let back = `${base}/project-${page.params.region}-${projectId}/storage`; const tabs = [ { href: path, @@ -34,7 +35,7 @@ - + {$bucket?.name} {#if $bucket?.$id} diff --git a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/view.svelte b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/view.svelte new file mode 100644 index 0000000000..9aec996490 --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/view.svelte @@ -0,0 +1,245 @@ + + + + + + + + + + + + + +{#if files.total} + + + Name + Type + Size + Created + Updated + + + {#each files.files as file} + {#if uploader.uploading && file.$id === uploader.file?.$id} + + +
+ + {file.name} +
+
+ + {file.mimeType} + + + {calculateSize(file.sizeOriginal)} + + + + + + + + + + +
+ {:else} + {@const href = createFileUrl ? createFileUrl(file) : null} + {#if href} + + +
+ + {file.name} +
+
+ + {file.mimeType} + + + {calculateSize(file.sizeOriginal)} + + + + + + + + + + + + + { + close(); + goto(href); + }}> + Edit + + { + close(); + selectedFile = file; + showDelete = true; + }}> + Delete + + + + + +
+ {:else} + + +
+ + {file.name} +
+
+ + {file.mimeType} + + + {calculateSize(file.sizeOriginal)} + + + + + + + + + + + + + { + close(); + selectedFile = file; + showDelete = true; + }}> + Delete + + + + + +
+ {/if} + {/if} + {/each} +
+ + +{:else if search} + + + +{:else} + goto('create')} /> +{/if} + +{#if selectedFile} + +{/if} diff --git a/src/routes/(console)/project-[region]-[project]/storage/header.svelte b/src/routes/(console)/project-[region]-[project]/storage/header.svelte index 24aa16ec32..0987094a54 100644 --- a/src/routes/(console)/project-[region]-[project]/storage/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/storage/header.svelte @@ -6,7 +6,7 @@ import { Cover } from '$lib/layout'; import { Typography } from '@appwrite.io/pink-svelte'; - const path = `${base}/project-${page.params.region}-${page.params.project}/storage`; + export let path = `${base}/project-${page.params.region}-${page.params.project}/storage`; const tabs = [ { href: path, diff --git a/src/routes/(console)/project-[region]-[project]/storage/view.svelte b/src/routes/(console)/project-[region]-[project]/storage/view.svelte new file mode 100644 index 0000000000..4dcafa2d29 --- /dev/null +++ b/src/routes/(console)/project-[region]-[project]/storage/view.svelte @@ -0,0 +1,134 @@ + + + + + + + + + {#if $canWriteBuckets} + + {/if} + + + +{#if buckets.total} + {#if view === 'grid'} + ($showCreateBucket = true)}> + {#each buckets.buckets as bucket} + + {bucket.name} + + {#if !bucket.enabled} +
+ +
+ {/if} +
+ {bucket.$id} + + + + {bucket.encryption + ? 'Encryption enabled' + : 'Encryption disabled'} + + +
+ {/each} +

Create a bucket

+
+ {:else} + + + {#each $columns as { id, title }} + {title} + {/each} + + {#each buckets.buckets as bucket (bucket.$id)} + + {#each $columns as column} + + {#if column.id === '$id'} + {#key $columns} + {bucket.$id} + {/key} + {:else if column.id === 'name'} + {bucket.name} + {:else} + {toLocaleDateTime(bucket[column.id])} + {/if} + + {/each} + + {/each} + + {/if} + + +{:else} + showCreateBucket.set(true)} /> +{/if} + + diff --git a/src/routes/(embeddings)/+layout.svelte b/src/routes/(embeddings)/+layout.svelte new file mode 100644 index 0000000000..af5609740c --- /dev/null +++ b/src/routes/(embeddings)/+layout.svelte @@ -0,0 +1,12 @@ + + +{#if page.data.header} + {@const Header = page.data.header} +
+{/if} + +{@render children()} diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/+layout.ts new file mode 100644 index 0000000000..db7a89635b --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/+layout.ts @@ -0,0 +1,18 @@ +import type { LayoutLoad } from './$types'; +import { sdk } from '$lib/stores/sdk'; + +export const load: LayoutLoad = async ({ params }) => { + const project = await sdk.forConsole.projects.get({ projectId: params.project }); + const organization = await sdk.forConsole.teams.get({ teamId: project.teamId }); + const currentPlan = await sdk.forConsole.billing.getOrganizationPlan(organization.$id); + const { roles, scopes } = await sdk.forConsole.billing.getRoles(organization.$id); + + return { + header: null, + project, + organization, + currentPlan, + roles, + scopes + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+layout.ts new file mode 100644 index 0000000000..9e5603c8bc --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+layout.ts @@ -0,0 +1,10 @@ +import type { LayoutLoad } from './$types'; +import { base } from '$app/paths'; +import Header from '$routes/(console)/project-[region]-[project]/auth/header.svelte'; + +export const load: LayoutLoad = async ({ params }) => { + return { + header: Header, + path: `${base}/embed/project-${params.region}-${params.project}/auth` + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+page.svelte new file mode 100644 index 0000000000..1e2e0f4388 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+page.svelte @@ -0,0 +1,20 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+page.ts new file mode 100644 index 0000000000..79e02615be --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/+page.ts @@ -0,0 +1,27 @@ +import { Query } from '@appwrite.io/console'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, getSearch, pageToOffset } from '$lib/helpers/load'; +import { PAGE_LIMIT } from '$lib/constants'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ url, route, params }) => { + const page = getPage(url); + const search = getSearch(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + + return { + offset, + limit, + search, + page, + users: await sdk + .forProject(params.region, params.project) + .users.list([ + Query.limit(limit), + Query.offset(offset), + Query.orderDesc(''), + ...(search ? [Query.search('name', search)] : []) + ]) + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/security/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/security/+page.svelte new file mode 100644 index 0000000000..7feb3cfed4 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/security/+page.svelte @@ -0,0 +1,24 @@ + + + + + + + + + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/settings/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/settings/+page.svelte new file mode 100644 index 0000000000..a956b30bdd --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/settings/+page.svelte @@ -0,0 +1,8 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/+page.svelte new file mode 100644 index 0000000000..1418b29b9e --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/+page.svelte @@ -0,0 +1,20 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/+page.ts new file mode 100644 index 0000000000..481050ae7b --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/+page.ts @@ -0,0 +1,27 @@ +import { Query } from '@appwrite.io/console'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, getSearch, pageToOffset } from '$lib/helpers/load'; +import { PAGE_LIMIT } from '$lib/constants'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ url, route, params }) => { + const page = getPage(url); + const search = getSearch(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + + return { + offset, + limit, + search, + page, + teams: await sdk + .forProject(params.region, params.project) + .teams.list([ + Query.limit(limit), + Query.offset(offset), + Query.orderDesc(''), + ...(search ? [Query.search('name', search)] : []) + ]) + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/+page.svelte new file mode 100644 index 0000000000..3d79e8f023 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/+page.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/+page.ts new file mode 100644 index 0000000000..35b3ea0bef --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/+page.ts @@ -0,0 +1,17 @@ +import type { PageLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/auth/teams/team-[team]/header.svelte'; +import { sdk } from '$lib/stores/sdk'; +import { base } from '$app/paths'; + +export const load: PageLoad = async ({ params }) => { + const team = await sdk + .forProject(params.region, params.project) + .teams.get({ teamId: params.team }); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth/teams`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/teams/team-${params.team}`, + team + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/activity/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/activity/+page.svelte new file mode 100644 index 0000000000..216ceae3f0 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/activity/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/activity/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/activity/+page.ts new file mode 100644 index 0000000000..202c37f143 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/activity/+page.ts @@ -0,0 +1,31 @@ +import type { PageLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/auth/teams/team-[team]/header.svelte'; +import { base } from '$app/paths'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, pageToOffset } from '$lib/helpers/load'; +import { PAGE_LIMIT } from '$lib/constants'; +import { Query } from '@appwrite.io/console'; + +export const load: PageLoad = async ({ params, url, route }) => { + const page = getPage(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + + const [team, logs] = await Promise.all([ + sdk.forProject(params.region, params.project).teams.get({ teamId: params.team }), + sdk.forProject(params.region, params.project).teams.listLogs({ + teamId: params.team, + queries: [Query.limit(limit), Query.offset(offset)] + }) + ]); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth/teams`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/teams/team-${params.team}`, + team, + offset, + limit, + logs + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/members/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/members/+page.svelte new file mode 100644 index 0000000000..ab1b58ce01 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/members/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/members/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/members/+page.ts new file mode 100644 index 0000000000..108b90ef4e --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/teams/team-[team]/members/+page.ts @@ -0,0 +1,36 @@ +import type { PageLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/auth/teams/team-[team]/header.svelte'; +import { base } from '$app/paths'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, getSearch, pageToOffset } from '$lib/helpers/load'; +import { Dependencies, PAGE_LIMIT } from '$lib/constants'; +import { Query } from '@appwrite.io/console'; + +export const load: PageLoad = async ({ params, depends, url, route }) => { + depends(Dependencies.MEMBERSHIPS); + + const page = getPage(url); + const search = getSearch(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + + const [team, memberships] = await Promise.all([ + sdk.forProject(params.region, params.project).teams.get({ teamId: params.team }), + sdk.forProject(params.region, params.project).teams.listMemberships({ + teamId: params.team, + queries: [Query.limit(limit), Query.offset(offset), Query.orderDesc('')], + search + }) + ]); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth/teams`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/teams/team-${params.team}`, + team, + offset, + search, + limit, + memberships + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/templates/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/templates/+page.svelte new file mode 100644 index 0000000000..eb797b3c61 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/templates/+page.svelte @@ -0,0 +1,9 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/+page.svelte new file mode 100644 index 0000000000..93c294076d --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/+page.svelte @@ -0,0 +1,8 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/+page.ts new file mode 100644 index 0000000000..7a7f0b4116 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/+page.ts @@ -0,0 +1,19 @@ +import type { PageLoad } from './$types'; +import { sdk } from '$lib/stores/sdk'; +import Header from '$routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte'; +import { base } from '$app/paths'; + +export const load: PageLoad = async ({ params }) => { + const [user, userFactors] = await Promise.all([ + sdk.forProject(params.region, params.project).users.get(params.user), + sdk.forProject(params.region, params.project).users.listMfaFactors(params.user) + ]); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/user-${params.user}`, + user, + userFactors + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/activity/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/activity/+page.svelte new file mode 100644 index 0000000000..d5e44e398f --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/activity/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/activity/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/activity/+page.ts new file mode 100644 index 0000000000..10a3729f02 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/activity/+page.ts @@ -0,0 +1,31 @@ +import type { PageLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte'; +import { base } from '$app/paths'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, pageToOffset } from '$lib/helpers/load'; +import { PAGE_LIMIT } from '$lib/constants'; +import { Query } from '@appwrite.io/console'; + +export const load: PageLoad = async ({ params, url, route }) => { + const page = getPage(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + + const [user, logs] = await Promise.all([ + sdk.forProject(params.region, params.project).users.get(params.user), + sdk.forProject(params.region, params.project).users.listLogs({ + userId: params.user, + queries: [Query.limit(limit), Query.offset(offset)] + }) + ]); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/user-${params.user}`, + user, + offset, + limit, + logs + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/identities/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/identities/+page.svelte new file mode 100644 index 0000000000..5f2e856451 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/identities/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/identities/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/identities/+page.ts new file mode 100644 index 0000000000..85c12688ad --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/identities/+page.ts @@ -0,0 +1,47 @@ +import type { PageLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte'; +import { base } from '$app/paths'; +import { sdk } from '$lib/stores/sdk'; +import { queries, queryParamToMap } from '$lib/components/filters'; +import { Dependencies, PAGE_LIMIT } from '$lib/constants'; +import { getLimit, getPage, getQuery, getSearch, pageToOffset } from '$lib/helpers/load'; +import { Query } from '@appwrite.io/console'; + +export const load: PageLoad = async ({ params, url, route, depends }) => { + depends(Dependencies.USER_IDENTITIES); + + const page = getPage(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + const query = getQuery(url); + const search = getSearch(url); + + const parsedQueries = queryParamToMap(query || '[]'); + queries.set(parsedQueries); + + const [user, identities] = await Promise.all([ + sdk.forProject(params.region, params.project).users.get(params.user), + sdk.forProject(params.region, params.project).users.listIdentities({ + queries: [ + Query.equal('userId', params.user), + Query.limit(limit), + Query.offset(offset), + Query.orderDesc(''), + ...parsedQueries.values() + ], + search + }) + ]); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/user-${params.user}`, + user, + offset, + limit, + query, + search, + identities + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/memberships/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/memberships/+page.svelte new file mode 100644 index 0000000000..9797015d83 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/memberships/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/memberships/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/memberships/+page.ts new file mode 100644 index 0000000000..36079e5318 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/memberships/+page.ts @@ -0,0 +1,21 @@ +import type { PageLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte'; +import { sdk } from '$lib/stores/sdk'; +import { base } from '$app/paths'; + +export const load: PageLoad = async ({ params }) => { + const [codes, user, memberships] = await Promise.all([ + sdk.forProject(params.region, params.project).locale.listCodes(), + sdk.forProject(params.region, params.project).users.get(params.user), + sdk.forProject(params.region, params.project).users.listMemberships({ userId: params.user }) + ]); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/user-${params.user}`, + user, + localeCodes: codes.localeCodes, + memberships + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/sessions/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/sessions/+page.svelte new file mode 100644 index 0000000000..1aac4f1b33 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/sessions/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/sessions/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/sessions/+page.ts new file mode 100644 index 0000000000..40ba8e20e9 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/sessions/+page.ts @@ -0,0 +1,22 @@ +import type { PageLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte'; +import { base } from '$app/paths'; +import { sdk } from '$lib/stores/sdk'; +import { Dependencies } from '$lib/constants'; + +export const load: PageLoad = async ({ params, depends }) => { + depends(Dependencies.SESSIONS); + + const [user, sessions] = await Promise.all([ + sdk.forProject(params.region, params.project).users.get(params.user), + sdk.forProject(params.region, params.project).users.listSessions({ userId: params.user }) + ]); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/user-${params.user}`, + user, + sessions + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/targets/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/targets/+page.svelte new file mode 100644 index 0000000000..e11f0f074b --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/targets/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/targets/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/targets/+page.ts new file mode 100644 index 0000000000..89bc9a75df --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/auth/user-[user]/targets/+page.ts @@ -0,0 +1,63 @@ +import type { PageLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/auth/user-[user]/header.svelte'; +import { base } from '$app/paths'; +import { sdk } from '$lib/stores/sdk'; +import { queries, queryParamToMap } from '$lib/components/filters'; +import { Dependencies, PAGE_LIMIT } from '$lib/constants'; +import { getLimit, getPage, getQuery, pageToOffset } from '$lib/helpers/load'; +import { Query, type Models } from '@appwrite.io/console'; + +export const load: PageLoad = async ({ params, url, route, depends }) => { + depends(Dependencies.USER_TARGETS); + + const page = getPage(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + const query = getQuery(url); + + const parsedQueries = queryParamToMap(query || '[]'); + queries.set(parsedQueries); + + const [user, targets] = await Promise.all([ + sdk.forProject(params.region, params.project).users.get(params.user), + sdk.forProject(params.region, params.project).users.listTargets({ + userId: params.user, + queries: [ + Query.limit(limit), + Query.offset(offset), + Query.orderDesc(''), + ...parsedQueries.values() + ] + }) + ]); + + const promisesById: Record> = {}; + targets.targets.forEach((target) => { + if (target.providerId && !promisesById[target.providerId]) { + promisesById[target.providerId] = sdk + .forProject(params.region, params.project) + .messaging.getProvider({ providerId: target.providerId }); + } + }); + + const providersById: Record = {}; + const resolved = await Promise.allSettled(Object.values(promisesById)); + resolved.forEach((result) => { + if (result.status === 'fulfilled') { + const provider = result.value; + providersById[provider.$id] = provider; + } + }); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/auth`, + path: `${base}/embed/project-${params.region}-${params.project}/auth/user-${params.user}`, + user, + offset, + limit, + query, + targets, + providersById + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+layout.ts new file mode 100644 index 0000000000..eeb17b0b61 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+layout.ts @@ -0,0 +1,12 @@ +import type { LayoutLoad } from './$types'; +import { base } from '$app/paths'; +import Header from '$routes/(console)/project-[region]-[project]/databases/header.svelte'; + +export const load: LayoutLoad = async ({ parent, params }) => { + const { project } = await parent(); + return { + project, + header: Header, + path: `${base}/embed/project-${params.region}-${params.project}/databases` + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+page.svelte new file mode 100644 index 0000000000..ca91718eed --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+page.svelte @@ -0,0 +1,27 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+page.ts new file mode 100644 index 0000000000..fcb828ff80 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/+page.ts @@ -0,0 +1,142 @@ +import { CARD_LIMIT, Dependencies } from '$lib/constants'; +import { getLimit, getPage, getSearch, getView, pageToOffset, View } from '$lib/helpers/load'; +import { sdk } from '$lib/stores/sdk'; +import { type Models, Query } from '@appwrite.io/console'; +import { timeFromNow } from '$lib/helpers/date'; +import type { PageLoad, RouteParams } from './$types'; +import type { BackupPolicy } from '$lib/sdk/backups'; +import { isSelfHosted } from '$lib/system'; +import { isCloud } from '$lib/system'; +import type { Plan } from '$lib/sdk/billing'; + +export const load: PageLoad = async ({ url, route, depends, params, parent }) => { + depends(Dependencies.DATABASES); + + const page = getPage(url); + const search = getSearch(url); + const limit = getLimit(url, route, CARD_LIMIT); + const view = getView(url, route, View.Grid); + const offset = pageToOffset(page, limit); + + // already loaded by parent. + const { currentPlan } = await parent(); + + const { databases, tables, policies, lastBackups } = await fetchDatabasesAndBackups( + limit, + offset, + params, + search, + currentPlan + ); + + return { + offset, + limit, + view, + search, + tables, + policies, + databases, + lastBackups + }; +}; + +async function fetchDatabasesAndBackups( + limit: number, + offset: number, + params: RouteParams, + search?: string | undefined, + currentPlan?: Plan +) { + const backupsEnabled = currentPlan?.backupsEnabled ?? true; + + const projectSDK = sdk.forProject(params.region, params.project); + + const databases = await projectSDK.tablesDB.list({ + queries: [Query.limit(limit), Query.offset(offset), Query.orderDesc('$createdAt')], + search: search || undefined + }); + + const tables: Record = {}; + + await Promise.all( + // TODO: backend should allow `Query.select` for perf! + databases.databases.map(async ({ $id }) => { + const res = await projectSDK.tablesDB.listTables({ + databaseId: $id, + queries: [Query.limit(1), Query.orderDesc('')] + }); + + tables[$id] = res.tables?.[0]?.$id ?? null; + }) + ); + + let lastBackups: Record, policies: Record; + + if (isCloud && backupsEnabled) { + [policies, lastBackups] = await Promise.all([ + fetchPolicies(databases, params), + fetchLastBackups(databases, params) + ]); + } + + return { databases, tables, policies, lastBackups }; +} + +async function fetchPolicies(databases: Models.DatabaseList, params: RouteParams) { + if (isSelfHosted) return {}; + + const databasePolicies: Record = {}; + + await Promise.all( + databases.databases.map(async (database) => { + try { + const { policies } = await sdk + .forProject(params.region, params.project) + .backups.listPolicies([ + // TODO: are all needed!? + // Query.limit(3), + Query.equal('resourceType', 'database'), + Query.equal('resourceId', database.$id) + ]); + + if (policies.length > 0) { + databasePolicies[database.$id] = policies; + } + } catch (e) { + // ignore + } + }) + ); + + return databasePolicies; +} + +async function fetchLastBackups(databases: Models.DatabaseList, params: RouteParams) { + if (isSelfHosted) return {}; + + const lastBackups: Record = {}; + + await Promise.all( + databases.databases.map(async (database) => { + try { + const { archives } = await sdk + .forProject(params.region, params.project) + .backups.listArchives([ + Query.limit(1), + Query.orderDesc('$createdAt'), + Query.equal('resourceType', 'database'), + Query.equal('resourceId', database.$id) + ]); + + if (archives.length > 0) { + lastBackups[database.$id] = timeFromNow(archives[0].$createdAt); + } + } catch (e) { + // ignore + } + }) + ); + + return lastBackups; +} diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+layout.ts new file mode 100644 index 0000000000..fe54f922a7 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+layout.ts @@ -0,0 +1,20 @@ +import { sdk } from '$lib/stores/sdk'; +import { Dependencies } from '$lib/constants'; +import type { LayoutLoad } from './$types'; +import { base } from '$app/paths'; +import Header from '$routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte'; + +export const load: LayoutLoad = async ({ params, depends }) => { + depends(Dependencies.DATABASE); + + const database = await sdk.forProject(params.region, params.project).tablesDB.get({ + databaseId: params.database + }); + + return { + header: Header, + path: `${base}/embed/project-${params.region}-${params.project}/databases/database-${params.database}`, + back: `${base}/embed/project-${params.region}-${params.project}/databases`, + database + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+page.svelte new file mode 100644 index 0000000000..0dced1b902 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+page.svelte @@ -0,0 +1,33 @@ + + + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+page.ts new file mode 100644 index 0000000000..475ed13fee --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/+page.ts @@ -0,0 +1,29 @@ +import { Query } from '@appwrite.io/console'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, getSearch, getView, pageToOffset, View } from '$lib/helpers/load'; +import type { PageLoad } from './$types'; +import { CARD_LIMIT, Dependencies } from '$lib/constants'; + +export const load: PageLoad = async ({ params, url, route, depends }) => { + depends(Dependencies.TABLES); + + const page = getPage(url); + const search = getSearch(url); + const limit = getLimit(url, route, CARD_LIMIT); + const view = getView(url, route, View.Grid); + const offset = pageToOffset(page, limit); + + const tables = await sdk.forProject(params.region, params.project).tablesDB.listTables({ + databaseId: params.database, + queries: [Query.limit(limit), Query.offset(offset), Query.orderDesc('')], + search: search || undefined + }); + + return { + offset, + limit, + search, + view, + tables + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.ts new file mode 100644 index 0000000000..5baa745484 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.ts @@ -0,0 +1,19 @@ +import { sdk } from '$lib/stores/sdk'; +import { Dependencies } from '$lib/constants'; +import type { LayoutLoad } from './$types'; +import { base } from '$app/paths'; +import Header from '$routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte'; + +export const load: LayoutLoad = async ({ params, depends }) => { + depends(Dependencies.TABLE); + + return { + header: Header, + path: `${base}/embed/project-${params.region}-${params.project}/databases/database-${params.database}/table-${params.table}`, + back: `${base}/embed/project-${params.region}-${params.project}/databases/database-${params.database}`, + table: await sdk.forProject(params.region, params.project).tablesDB.getTable({ + databaseId: params.database, + tableId: params.table + }) + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte new file mode 100644 index 0000000000..4bb887c997 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte @@ -0,0 +1,9 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+page.ts new file mode 100644 index 0000000000..ff7326dab7 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/databases/database-[database]/table-[table]/+page.ts @@ -0,0 +1,75 @@ +import { Dependencies, SPREADSHEET_PAGE_LIMIT } from '$lib/constants'; +import { getLimit, getPage, getQuery, getView, pageToOffset, View } from '$lib/helpers/load'; +import { sdk } from '$lib/stores/sdk'; +import { type Models, Query } from '@appwrite.io/console'; +import type { PageLoad } from './$types'; +import { queries, queryParamToMap } from '$lib/components/filters'; +import { buildWildcardColumnsQuery } from '$routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rows/store'; +import type { TagValue } from '$lib/components/filters/store'; + +export const load: PageLoad = async ({ params, depends, url, route, parent }) => { + const { table } = await parent(); + depends(Dependencies.ROW); /* TODO: we could just invalidate the rows maybe? */ + depends(Dependencies.ROWS); + + const page = getPage(url); + const limit = getLimit(url, route, SPREADSHEET_PAGE_LIMIT); + const view = getView(url, route, View.Grid); + const offset = pageToOffset(page, limit); + const query = getQuery(url); + + const paramQueries = url.searchParams.get('query'); + const parsedQueries = queryParamToMap(paramQueries || '[]'); + queries.set(parsedQueries); + + const currentSort = extractSortFromQueries(parsedQueries); + + return { + offset, + limit, + view, + query, + currentSort, + rows: await sdk.forProject(params.region, params.project).tablesDB.listRows({ + databaseId: params.database, + tableId: params.table, + queries: buildGridQueries(limit, offset, parsedQueries, table) + }) + }; +}; + +function extractSortFromQueries(parsedQueries: Map) { + for (const [tagValue, queryString] of parsedQueries.entries()) { + if (queryString.includes('orderAsc') || queryString.includes('orderDesc')) { + const isAsc = queryString.includes('orderAsc'); + return { + column: tagValue.value, + direction: isAsc ? 'asc' : 'desc' + }; + } + } + + return { column: null, direction: 'default' }; +} + +function buildGridQueries( + limit: number, + offset: number, + parsedQueries: Map, + table: Models.Table +) { + const hasOrderQuery = Array.from(parsedQueries.values()).some( + (q) => q.includes('orderAsc') || q.includes('orderDesc') + ); + + const queryArray = [Query.limit(limit), Query.offset(offset)]; + + // don't override if there's a user created sort! + if (!hasOrderQuery) { + queryArray.push(Query.orderDesc('')); + } + + queryArray.push(...parsedQueries.values(), ...buildWildcardColumnsQuery(table)); + + return queryArray; +} diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+layout.ts new file mode 100644 index 0000000000..8fad2a6bf9 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+layout.ts @@ -0,0 +1,10 @@ +import type { LayoutLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/messaging/header.svelte'; +import { base } from '$app/paths'; + +export const load: LayoutLoad = async ({ params }) => { + return { + header: Header, + path: `${base}/embed/project-${params.region}-${params.project}/messaging` + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+page.svelte new file mode 100644 index 0000000000..9c2a376948 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+page.svelte @@ -0,0 +1,20 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+page.ts new file mode 100644 index 0000000000..c172cc9010 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/messaging/+page.ts @@ -0,0 +1,43 @@ +import { queries, queryParamToMap } from '$lib/components/filters'; +import { CARD_LIMIT, Dependencies } from '$lib/constants'; +import { + View, + getLimit, + getPage, + getQuery, + getSearch, + getView, + pageToOffset +} from '$lib/helpers/load'; +import { sdk } from '$lib/stores/sdk'; +import { Query, type Models } from '@appwrite.io/console'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ depends, url, route, params }) => { + depends(Dependencies.MESSAGING_MESSAGES); + + const page = getPage(url); + const search = getSearch(url); + const view = getView(url, route, View.Grid); + const limit = getLimit(url, route, CARD_LIMIT); + const offset = pageToOffset(page, limit); + const query = getQuery(url); + + const parsedQueries = queryParamToMap(query || '[]'); + queries.set(parsedQueries); + + const messages = (await sdk.forProject(params.region, params.project).messaging.listMessages({ + queries: [ + Query.limit(limit), + Query.offset(offset), + Query.orderDesc(''), + ...parsedQueries.values() + ], + search: search || undefined + })) as { + total: number; + messages: (Models.Message & { data: Record })[]; + }; + + return { offset, limit, search, query, page, view, messages } as const; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+layout.ts new file mode 100644 index 0000000000..c5a26f9680 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+layout.ts @@ -0,0 +1,10 @@ +import type { LayoutLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/settings/header.svelte'; +import { base } from '$app/paths'; + +export const load: LayoutLoad = async ({ params }) => { + return { + header: Header, + path: `${base}/embed/project-${params.region}-${params.project}/settings` + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+page.svelte new file mode 100644 index 0000000000..0da999e616 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+page.svelte @@ -0,0 +1,13 @@ + + + + + {#if $canWriteProjects} + + {/if} + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+page.ts new file mode 100644 index 0000000000..223997423c --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/+page.ts @@ -0,0 +1 @@ +export { load } from '$routes/(console)/project-[region]-[project]/settings/+page.ts'; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/+page.svelte new file mode 100644 index 0000000000..e06b055560 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/+page.ts new file mode 100644 index 0000000000..ec7bc02f50 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/+page.ts @@ -0,0 +1 @@ +export { load } from '$routes/(console)/project-[region]-[project]/settings/domains/+page.ts'; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/+page.svelte new file mode 100644 index 0000000000..ef2f78034f --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/+page.ts new file mode 100644 index 0000000000..450674896d --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/+page.ts @@ -0,0 +1 @@ +export { load } from '$routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.ts'; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte new file mode 100644 index 0000000000..b77ce68a85 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts new file mode 100644 index 0000000000..32a097638b --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts @@ -0,0 +1 @@ +export { load } from '$routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts'; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/migrations/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/migrations/+page.svelte new file mode 100644 index 0000000000..bc3b8e60bc --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/migrations/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/migrations/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/migrations/+page.ts new file mode 100644 index 0000000000..2b4be899ab --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/migrations/+page.ts @@ -0,0 +1 @@ +export { load } from '$routes/(console)/project-[region]-[project]/settings/migrations/+page.ts'; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/smtp/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/smtp/+page.svelte new file mode 100644 index 0000000000..d49306b0b4 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/smtp/+page.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte new file mode 100644 index 0000000000..7e71bb089e --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts new file mode 100644 index 0000000000..491a92c4ee --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts @@ -0,0 +1 @@ +export { load } from '$routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.ts'; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+layout.ts new file mode 100644 index 0000000000..b3122b51a3 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+layout.ts @@ -0,0 +1,12 @@ +import type { LayoutLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/storage/header.svelte'; +import { base } from '$app/paths'; + +export const load: LayoutLoad = async ({ parent, params }) => { + const { project } = await parent(); + return { + project, + header: Header, + path: `${base}/embed/project-${params.region}-${params.project}/storage` + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+page.svelte new file mode 100644 index 0000000000..2008881f91 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+page.svelte @@ -0,0 +1,23 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+page.ts new file mode 100644 index 0000000000..f83547708c --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/+page.ts @@ -0,0 +1,25 @@ +import { Query } from '@appwrite.io/console'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, getSearch, getView, pageToOffset, View } from '$lib/helpers/load'; +import { CARD_LIMIT } from '$lib/constants'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ url, route, params }) => { + const page = getPage(url); + const search = getSearch(url); + const view = getView(url, route, View.Grid); + const limit = getLimit(url, route, CARD_LIMIT); + const offset = pageToOffset(page, limit); + const buckets = await sdk.forProject(params.region, params.project).storage.listBuckets({ + queries: [Query.limit(limit), Query.offset(offset), Query.orderDesc('')], + search: search || undefined + }); + + return { + offset, + limit, + view, + search, + buckets + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+layout.ts new file mode 100644 index 0000000000..3de0c38b1d --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+layout.ts @@ -0,0 +1,18 @@ +import { sdk } from '$lib/stores/sdk'; +import { Dependencies } from '$lib/constants'; +import type { LayoutLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/header.svelte'; +import { base } from '$app/paths'; + +export const load: LayoutLoad = async ({ params, depends }) => { + depends(Dependencies.BUCKET); + + return { + header: Header, + path: `${base}/embed/project-${params.region}-${params.project}/storage/bucket-${params.bucket}`, + back: `${base}/embed/project-${params.region}-${params.project}/storage`, + bucket: await sdk.forProject(params.region, params.project).storage.getBucket({ + bucketId: params.bucket + }) + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte new file mode 100644 index 0000000000..f1378ef9dc --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+page.svelte @@ -0,0 +1,22 @@ + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+page.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+page.ts new file mode 100644 index 0000000000..9ced56632e --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/+page.ts @@ -0,0 +1,26 @@ +import { Query } from '@appwrite.io/console'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, getSearch, pageToOffset } from '$lib/helpers/load'; +import { Dependencies, PAGE_LIMIT } from '$lib/constants'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ params, depends, url, route }) => { + depends(Dependencies.FILES); + const page = getPage(url); + const search = getSearch(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + + const files = await sdk.forProject(params.region, params.project).storage.listFiles({ + bucketId: params.bucket, + queries: [Query.limit(limit), Query.offset(offset), Query.orderDesc('')], + search + }); + + return { + offset, + limit, + search, + files + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/+layout.ts b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/+layout.ts new file mode 100644 index 0000000000..fd5ac1a451 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/+layout.ts @@ -0,0 +1,21 @@ +import { sdk } from '$lib/stores/sdk'; +import { Dependencies } from '$lib/constants'; +import type { LayoutLoad } from './$types'; +import Header from '$routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/header.svelte'; +import { base } from '$app/paths'; + +export const load: LayoutLoad = async ({ params, depends }) => { + depends(Dependencies.FILE); + depends(Dependencies.FILE_TOKENS); + + return { + header: Header, + back: `${base}/embed/project-${params.region}-${params.project}/storage/bucket-${params.bucket}`, + file: await sdk + .forProject(params.region, params.project) + .storage.getFile({ bucketId: params.bucket, fileId: params.file }), + tokens: await sdk + .forProject(params.region, params.project) + .tokens.list({ bucketId: params.bucket, fileId: params.file }) + }; +}; diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte new file mode 100644 index 0000000000..b2e6deaca3 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/file-[file]/+page.svelte @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/settings/+page.svelte b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/settings/+page.svelte new file mode 100644 index 0000000000..7bc94e29a4 --- /dev/null +++ b/src/routes/(embeddings)/embed/project-[region]-[project]/storage/bucket-[bucket]/settings/+page.svelte @@ -0,0 +1,6 @@ + + + diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index f5bed4b866..4e12d72c66 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -14,16 +14,24 @@ import { user } from '$lib/stores/user'; import { loading } from '$routes/store'; import { Root } from '@appwrite.io/pink-svelte'; - import { ThemeDark, ThemeLight, ThemeDarkCloud, ThemeLightCloud } from '../themes'; + import { + ThemeDark, + ThemeLight, + ThemeDarkCloud, + ThemeLightCloud, + ThemeDarkStudio, + ThemeLightStudio + } from '../themes'; import { isSmallViewport, updateViewport } from '$lib/stores/viewport'; import { feedback } from '$lib/stores/feedback'; function resolveTheme(theme: AppStore['themeInUse']) { + const isEmbedded = page.route?.id?.includes('/(embeddings)/') ?? false; switch (theme) { case 'dark': - return isCloud ? ThemeDarkCloud : ThemeDark; + return isEmbedded ? ThemeDarkStudio : isCloud ? ThemeDarkCloud : ThemeDark; case 'light': - return isCloud ? ThemeLightCloud : ThemeLight; + return isEmbedded ? ThemeLightStudio : isCloud ? ThemeLightCloud : ThemeLight; } } diff --git a/src/themes/dark-studio.json b/src/themes/dark-studio.json new file mode 100644 index 0000000000..ae71bdb51e --- /dev/null +++ b/src/themes/dark-studio.json @@ -0,0 +1,6 @@ +{ + "bgcolor-accent": "var(--neutral-50)", + "bgcolor-accent-secondary": "var(--neutral-100)", + "bgcolor-accent-tertiary": "var(--neutral-150)", + "fgcolor-on-accent": "var(--neutral-950)" +} diff --git a/src/themes/index.ts b/src/themes/index.ts index 2b2344244a..1649283575 100644 --- a/src/themes/index.ts +++ b/src/themes/index.ts @@ -1,5 +1,10 @@ -export { default as ThemeDark } from './dark.json'; -export { default as ThemeLight } from './light.json'; +import ThemeDark from './dark.json'; +import ThemeLight from './light.json'; +import ThemeDarkCloud from './dark-cloud.json'; +import ThemeLightCloud from './light-cloud.json'; +import darkStudio from './dark-studio.json'; +import lightStudio from './light-studio.json'; -export { default as ThemeDarkCloud } from './dark-cloud.json'; -export { default as ThemeLightCloud } from './light-cloud.json'; +export const ThemeDarkStudio = { ...ThemeDarkCloud, ...darkStudio }; +export const ThemeLightStudio = { ...ThemeLightCloud, ...lightStudio }; +export { ThemeDark, ThemeLight, ThemeDarkCloud, ThemeLightCloud }; diff --git a/src/themes/light-studio.json b/src/themes/light-studio.json new file mode 100644 index 0000000000..d33cc287bf --- /dev/null +++ b/src/themes/light-studio.json @@ -0,0 +1,5 @@ +{ + "bgcolor-accent": "var(--neutral-1000)", + "bgcolor-accent-secondary": "var(--neutral-900)", + "bgcolor-accent-tertiary": "var(--neutral-850)" +} diff --git a/static/css/loading.css b/static/css/loading.css index f4b2929858..4bfffa100d 100644 --- a/static/css/loading.css +++ b/static/css/loading.css @@ -4,7 +4,12 @@ body { width: 100%; } -[data-loading='true'] .page-loader { +[data-embed] { + background: none !important; + background-color: none !important; +} + +[data-loading='true']:not([data-embed]) .page-loader { pointer-events: initial; visibility: visible; opacity: 1; diff --git a/vite.config.ts b/vite.config.ts index 363e3d1a7e..c98dd5eaf1 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -34,9 +34,6 @@ export default defineConfig({ 'zrender' ] }, - server: { - port: 3000 - }, test: { projects: [ {