From 3ee03d69c5e088ffa1d6ed4311e69654c93d4b8b Mon Sep 17 00:00:00 2001 From: Bryan Lawless Date: Wed, 4 Nov 2026 15:17:39 -0700 Subject: [PATCH 1/3] chore: remove dead configuration, dependencies and API helpers - Chart CI values use the build-- tags production uses instead of the retired main- scheme. - Drop the unused tsx and tsconfig-paths-webpack-plugin dependencies (and the tsx shebang on a file node runs), pnpm overrides and build allowances for packages that are no longer installed, and @parcel/watcher from the marketing image rebuild. - Remove the unused environment namespace name and EnvironmentVariableName type, generateRandomString, scaledIntegerToMoney, mapWithConcurrency and StripeDisputeStatus. - Remove stale Biome exceptions and ignores, the .dockerignore whitelist for a binary nothing builds, the devcontainer's unused 5173 port and GHCR label, VS Code excludes and gitignore entries for paths that no longer exist, and .moon/docker references. --- .devcontainer/Dockerfile | 2 - .devcontainer/devcontainer.json | 1 - .devcontainer/docker-compose.yml | 1 - .dockerignore | 7 - .gitignore | 9 - .vscode/settings.json | 6 +- apps/api/package.json | 2 - apps/api/src/common/utils/api-key.util.ts | 14 -- .../concurrency/sequential-async.util.ts | 24 -- apps/api/src/common/utils/fixed-point.util.ts | 5 - .../namespaces/authentication.environment.ts | 1 - .../namespaces/cloudflare.environment.ts | 1 - .../namespaces/database.environment.ts | 1 - .../namespaces/development.environment.ts | 1 - .../namespaces/email.environment.ts | 1 - .../namespaces/geo-ip.environment.ts | 1 - .../namespaces/network.environment.ts | 1 - .../namespaces/observability.environment.ts | 1 - .../namespaces/process.environment.ts | 1 - .../namespaces/public-urls.environment.ts | 1 - .../namespaces/redis.environment.ts | 1 - .../snapshot-manager.environment.ts | 1 - .../namespaces/social-sign-in.environment.ts | 1 - .../namespaces/storage.environment.ts | 1 - .../namespaces/stripe.environment.ts | 1 - .../namespaces/vault.environment.ts | 1 - .../environment/registry.environment.ts | 7 - .../utils/environment-variable.util.ts | 18 +- apps/api/src/generate-openapi.ts | 2 - .../funds/constants/stripe.constants.ts | 6 - apps/guest/.gitignore | 1 - apps/marketing/Dockerfile | 2 +- biome.json | 5 - .../charts/snapflow/ci/production-values.yaml | 10 +- package.json | 1 - pnpm-lock.yaml | 217 +++++++----------- pnpm-workspace.yaml | 20 -- scripts/cleanup.sh | 1 - 38 files changed, 95 insertions(+), 282 deletions(-) delete mode 100644 apps/api/src/common/utils/api-key.util.ts diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 5d1c25e..8e6a4d8 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -23,8 +23,6 @@ FROM moby/buildkit:v0.32.2@sha256:28a898719c18a33f4e8000685287fa36fd0dd9560c6440 FROM mcr.microsoft.com/devcontainers/base:bookworm@sha256:bb7b81b6e5be17b5267f92f4ffda534fea37dab1df97b5e86c1f9b91da5c0b5d -LABEL org.opencontainers.image.source="https://github.com/snapflowio/snapflow" - ARG DEBIAN_FRONTEND=noninteractive ARG MOON_VERSION=2.4.6 ARG CODEX_VERSION=0.145.0 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e727ac3..9498279 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -52,7 +52,6 @@ "3002": { "label": "React Email Preview" }, "3773": { "label": "T3 Code" }, "4321": { "label": "Marketing (Astro)" }, - "5173": { "label": "Vite Development Server" }, "8082": { "label": "Snapflow Edge HTTP Ingress" }, "8444": { "label": "Snapflow Edge HTTPS Ingress" }, "23000-23031": { "label": "Snapflow Edge Public TCP/UDP Exposures" }, diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index f408d02..9aa1f61 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -18,7 +18,6 @@ services: tmpfs: - /run:exec,size=256m ports: - - "127.0.0.1:5173:5173/tcp" - "3774:3773/tcp" - "127.0.0.1:4443:4443/tcp" - "127.0.0.1:4443:4443/udp" diff --git a/.dockerignore b/.dockerignore index e171dc4..51ef852 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,18 +4,12 @@ node_modules **/.pnpm-store **/dist -!dist/ -dist/* -!dist/libs/ -dist/libs/* -!dist/libs/computer-use-amd64 .vite **/.vite .svelte-kit **/.svelte-kit .moon/cache -.moon/docker logs *.log @@ -51,7 +45,6 @@ tmp *.tmp *.md -docs assets **/*.test.ts diff --git a/.gitignore b/.gitignore index 82a8ba5..fb0fc0a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,13 +3,6 @@ tmp out-tsc build -/libs/sdk-typescript/cjs/ -/libs/sdk-typescript/esm/ -/libs/api-client/src/**/*.js -/libs/api-client/src/**/*.d.ts -/libs/toolbox-api-client/src/**/*.js -/libs/toolbox-api-client/src/**/*.d.ts - node_modules .pnpm-store .pnpm-debug.log* @@ -17,7 +10,6 @@ node_modules .env .env.local .env.*.local -.env.production /deploy/secrets/production/ .vite @@ -70,4 +62,3 @@ coverage.out *.test .moon/cache -.moon/docker diff --git a/.vscode/settings.json b/.vscode/settings.json index e1edcd4..c0cc3cb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -91,8 +91,7 @@ "**/reference/**": true, "**/references/**": true, "**/tmp/**": true, - "**/coverage/**": true, - "**/libs/microvm-go/internal/initrd/static/**": true + "**/coverage/**": true }, "search.exclude": { "**/.svelte-kit/**": true, @@ -106,8 +105,7 @@ "**/reference/**": true, "**/references/**": true, "**/tmp/**": true, - "**/coverage/**": true, - "**/libs/microvm-go/internal/initrd/static/**": true + "**/coverage/**": true }, "git.ignoreLimitWarning": true } diff --git a/apps/api/package.json b/apps/api/package.json index 8ff3bb6..e933989 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -94,8 +94,6 @@ "@types/react": "catalog:", "@types/webpack-node-externals": "catalog:", "pino-pretty": "^13.1.2", - "tsconfig-paths-webpack-plugin": "catalog:", - "tsx": "catalog:", "typescript": "catalog:", "webpack-node-externals": "catalog:" }, diff --git a/apps/api/src/common/utils/api-key.util.ts b/apps/api/src/common/utils/api-key.util.ts deleted file mode 100644 index 7f09e25..0000000 --- a/apps/api/src/common/utils/api-key.util.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2026 Snapflow. All rights reserved. - * - * Snapflow is licensed under the GNU Affero General Public License v3.0. - * You may obtain a copy of the license at https://www.gnu.org/licenses/agpl-3.0.html - * - * SPDX-License-Identifier: AGPL-3.0 - */ - -import * as crypto from 'node:crypto'; - -export function generateRandomString(size: number): string { - return crypto.randomBytes(size).toString('hex'); -} diff --git a/apps/api/src/common/utils/concurrency/sequential-async.util.ts b/apps/api/src/common/utils/concurrency/sequential-async.util.ts index 79bbf77..02309ba 100644 --- a/apps/api/src/common/utils/concurrency/sequential-async.util.ts +++ b/apps/api/src/common/utils/concurrency/sequential-async.util.ts @@ -35,27 +35,3 @@ export async function settleSequentially( } return results; } - -export async function mapWithConcurrency( - items: readonly TItem[], - concurrency: number, - operation: (item: TItem, index: number) => Promise -): Promise[]> { - if (!Number.isInteger(concurrency) || concurrency < 1) { - throw new RangeError('Concurrency must be a positive integer'); - } - - const results: Awaited[] = new Array(items.length); - let nextIndex = 0; - const workerCount = Math.min(concurrency, items.length); - const workers = Array.from({ length: workerCount }, async () => { - while (nextIndex < items.length) { - const index = nextIndex; - nextIndex += 1; - results[index] = await operation(items[index], index); - } - }); - - await Promise.all(workers); - return results; -} diff --git a/apps/api/src/common/utils/fixed-point.util.ts b/apps/api/src/common/utils/fixed-point.util.ts index 9dddc92..861b95b 100644 --- a/apps/api/src/common/utils/fixed-point.util.ts +++ b/apps/api/src/common/utils/fixed-point.util.ts @@ -50,8 +50,3 @@ export function fixed(value: bigint, scale: number): string { export function moneyToScaledInteger(value: string): bigint { return parseFixed(value, USAGE_MONEY_SCALE, 'money amount'); } - -export function scaledIntegerToMoney(value: bigint): string { - if (value < 0n) throw new Error('Money amount must be nonnegative'); - return fixed(value, USAGE_MONEY_SCALE); -} diff --git a/apps/api/src/config/environment/namespaces/authentication.environment.ts b/apps/api/src/config/environment/namespaces/authentication.environment.ts index f4d543c..bce0922 100644 --- a/apps/api/src/config/environment/namespaces/authentication.environment.ts +++ b/apps/api/src/config/environment/namespaces/authentication.environment.ts @@ -15,7 +15,6 @@ import { export const authenticationEnvironment = defineEnvironment( { - name: 'authentication', title: 'Authentication', description: 'Session signing secrets and the health check principal', }, diff --git a/apps/api/src/config/environment/namespaces/cloudflare.environment.ts b/apps/api/src/config/environment/namespaces/cloudflare.environment.ts index 22b9334..9090c2e 100644 --- a/apps/api/src/config/environment/namespaces/cloudflare.environment.ts +++ b/apps/api/src/config/environment/namespaces/cloudflare.environment.ts @@ -15,7 +15,6 @@ import { export const cloudflareEnvironment = defineEnvironment( { - name: 'cloudflare', title: 'Cloudflare', description: 'Custom domains through the Cloudflare zone of the platform domain', diff --git a/apps/api/src/config/environment/namespaces/database.environment.ts b/apps/api/src/config/environment/namespaces/database.environment.ts index c3ed6ea..5e5bbad 100644 --- a/apps/api/src/config/environment/namespaces/database.environment.ts +++ b/apps/api/src/config/environment/namespaces/database.environment.ts @@ -18,7 +18,6 @@ import { export const databaseEnvironment = defineEnvironment( { - name: 'database', title: 'Database', description: 'PostgreSQL; one-off processes (migrations, CLI) use a single connection', diff --git a/apps/api/src/config/environment/namespaces/development.environment.ts b/apps/api/src/config/environment/namespaces/development.environment.ts index b455a6d..25c48b1 100644 --- a/apps/api/src/config/environment/namespaces/development.environment.ts +++ b/apps/api/src/config/environment/namespaces/development.environment.ts @@ -22,7 +22,6 @@ const developmentSecret = (description: string) => export const developmentEnvironment = defineEnvironment( { - name: 'development', title: 'Development', description: 'Secrets of the local development stack, shared with its other services', diff --git a/apps/api/src/config/environment/namespaces/email.environment.ts b/apps/api/src/config/environment/namespaces/email.environment.ts index e9c628d..e74a435 100644 --- a/apps/api/src/config/environment/namespaces/email.environment.ts +++ b/apps/api/src/config/environment/namespaces/email.environment.ts @@ -23,7 +23,6 @@ import { export const emailEnvironment = defineEnvironment( { - name: 'email', title: 'Email', description: 'Transactional email sent through Resend', note: 'In development, set RESEND_BASE_URL to the devcontainer Resend emulator and any re_ key to capture email locally; without RESEND_API_KEY the API starts but every email send fails.', diff --git a/apps/api/src/config/environment/namespaces/geo-ip.environment.ts b/apps/api/src/config/environment/namespaces/geo-ip.environment.ts index ee8673b..018741e 100644 --- a/apps/api/src/config/environment/namespaces/geo-ip.environment.ts +++ b/apps/api/src/config/environment/namespaces/geo-ip.environment.ts @@ -15,7 +15,6 @@ import { export const geoIpEnvironment = defineEnvironment( { - name: 'geo-ip', title: 'IP Geolocation', description: 'The IP geolocation database that locates machines and the callers placing sandboxes', diff --git a/apps/api/src/config/environment/namespaces/network.environment.ts b/apps/api/src/config/environment/namespaces/network.environment.ts index e799d6a..1e7806e 100644 --- a/apps/api/src/config/environment/namespaces/network.environment.ts +++ b/apps/api/src/config/environment/namespaces/network.environment.ts @@ -17,7 +17,6 @@ const LOOPBACK_PROXY_CIDRS = '127.0.0.0/8,::1/128'; export const networkEnvironment = defineEnvironment( { - name: 'network', title: 'Network & Proxies', description: 'The HTTP listener and the proxies in front of it', }, diff --git a/apps/api/src/config/environment/namespaces/observability.environment.ts b/apps/api/src/config/environment/namespaces/observability.environment.ts index b7d8b2f..a338825 100644 --- a/apps/api/src/config/environment/namespaces/observability.environment.ts +++ b/apps/api/src/config/environment/namespaces/observability.environment.ts @@ -26,7 +26,6 @@ export type LogLevel = (typeof LOG_LEVELS)[number]; export const observabilityEnvironment = defineEnvironment( { - name: 'observability', title: 'Observability', description: 'Logging and tracing', }, diff --git a/apps/api/src/config/environment/namespaces/process.environment.ts b/apps/api/src/config/environment/namespaces/process.environment.ts index 8a2e5d9..0cf71c4 100644 --- a/apps/api/src/config/environment/namespaces/process.environment.ts +++ b/apps/api/src/config/environment/namespaces/process.environment.ts @@ -17,7 +17,6 @@ import { export const processEnvironment = defineEnvironment( { - name: 'process', title: 'Environment', description: 'The deployment selector and the process role', }, diff --git a/apps/api/src/config/environment/namespaces/public-urls.environment.ts b/apps/api/src/config/environment/namespaces/public-urls.environment.ts index 3c34f29..6a4a4eb 100644 --- a/apps/api/src/config/environment/namespaces/public-urls.environment.ts +++ b/apps/api/src/config/environment/namespaces/public-urls.environment.ts @@ -18,7 +18,6 @@ import { export const publicUrlsEnvironment = defineEnvironment( { - name: 'public-urls', title: 'Public URLs & Domain', description: 'The public origins of the API, website and dashboard, and the sandbox domain', diff --git a/apps/api/src/config/environment/namespaces/redis.environment.ts b/apps/api/src/config/environment/namespaces/redis.environment.ts index 65c7fac..d21162a 100644 --- a/apps/api/src/config/environment/namespaces/redis.environment.ts +++ b/apps/api/src/config/environment/namespaces/redis.environment.ts @@ -15,7 +15,6 @@ import { export const redisEnvironment = defineEnvironment( { - name: 'redis', title: 'Redis', description: 'Redis: locks, throttling, realtime fan-out and caches', }, diff --git a/apps/api/src/config/environment/namespaces/snapshot-manager.environment.ts b/apps/api/src/config/environment/namespaces/snapshot-manager.environment.ts index 873d1b7..bc73e4e 100644 --- a/apps/api/src/config/environment/namespaces/snapshot-manager.environment.ts +++ b/apps/api/src/config/environment/namespaces/snapshot-manager.environment.ts @@ -15,7 +15,6 @@ import { export const snapshotManagerEnvironment = defineEnvironment( { - name: 'snapshot-manager', title: 'Snapshot Manager', description: 'The platform registry that stores snapshot images, backups and build caches', diff --git a/apps/api/src/config/environment/namespaces/social-sign-in.environment.ts b/apps/api/src/config/environment/namespaces/social-sign-in.environment.ts index 7c57681..43a372f 100644 --- a/apps/api/src/config/environment/namespaces/social-sign-in.environment.ts +++ b/apps/api/src/config/environment/namespaces/social-sign-in.environment.ts @@ -15,7 +15,6 @@ import { export const socialSignInEnvironment = defineEnvironment( { - name: 'social-sign-in', title: 'Social sign-in', description: 'OAuth applications for Google and GitHub sign-in; a provider is offered only when both of its variables are set', diff --git a/apps/api/src/config/environment/namespaces/storage.environment.ts b/apps/api/src/config/environment/namespaces/storage.environment.ts index b78ef9b..f566b19 100644 --- a/apps/api/src/config/environment/namespaces/storage.environment.ts +++ b/apps/api/src/config/environment/namespaces/storage.environment.ts @@ -21,7 +21,6 @@ import { export const objectStorageEnvironment = defineEnvironment( { - name: 'object-storage', title: 'Object Storage', description: 'S3-compatible object storage for build contexts, logs and backups', diff --git a/apps/api/src/config/environment/namespaces/stripe.environment.ts b/apps/api/src/config/environment/namespaces/stripe.environment.ts index 8dfd2b8..820af8c 100644 --- a/apps/api/src/config/environment/namespaces/stripe.environment.ts +++ b/apps/api/src/config/environment/namespaces/stripe.environment.ts @@ -15,7 +15,6 @@ import { export const stripeEnvironment = defineEnvironment( { - name: 'stripe', title: 'Stripe', description: 'Stripe Connect top-ups, host payouts and webhooks', }, diff --git a/apps/api/src/config/environment/namespaces/vault.environment.ts b/apps/api/src/config/environment/namespaces/vault.environment.ts index 0bab0cb..e07295a 100644 --- a/apps/api/src/config/environment/namespaces/vault.environment.ts +++ b/apps/api/src/config/environment/namespaces/vault.environment.ts @@ -15,7 +15,6 @@ import { export const vaultEnvironment = defineEnvironment( { - name: 'vault', title: 'Vault', description: 'The Vault Proxy that serves the keyrings and signs tunnel certificates', diff --git a/apps/api/src/config/environment/registry.environment.ts b/apps/api/src/config/environment/registry.environment.ts index a0c1503..8aac35e 100644 --- a/apps/api/src/config/environment/registry.environment.ts +++ b/apps/api/src/config/environment/registry.environment.ts @@ -63,10 +63,3 @@ export type EnvironmentValues< > = UnionToIntersection< Namespace extends RegisteredNamespace ? z.output : never >; - -type NamespaceVariableName = Namespace extends RegisteredNamespace - ? keyof z.input & string - : never; - -export type EnvironmentVariableName = - NamespaceVariableName; diff --git a/apps/api/src/config/environment/utils/environment-variable.util.ts b/apps/api/src/config/environment/utils/environment-variable.util.ts index 8087688..9318c67 100644 --- a/apps/api/src/config/environment/utils/environment-variable.util.ts +++ b/apps/api/src/config/environment/utils/environment-variable.util.ts @@ -29,26 +29,20 @@ export function environmentVariable( export type EnvironmentShape = Readonly>; -interface EnvironmentGroup { - readonly name: Name; +interface EnvironmentGroup { readonly title: string; readonly description: string; readonly note?: string; } -export interface EnvironmentNamespace< - Shape extends EnvironmentShape, - Name extends string = string, -> extends EnvironmentGroup { +export interface EnvironmentNamespace + extends EnvironmentGroup { readonly schema: z.ZodObject; } -export function defineEnvironment< - const Name extends string, - const Shape extends EnvironmentShape, ->( - group: EnvironmentGroup, +export function defineEnvironment( + group: EnvironmentGroup, variables: Shape -): EnvironmentNamespace { +): EnvironmentNamespace { return { ...group, schema: z.object(variables) }; } diff --git a/apps/api/src/generate-openapi.ts b/apps/api/src/generate-openapi.ts index 7f72c02..81adc71 100644 --- a/apps/api/src/generate-openapi.ts +++ b/apps/api/src/generate-openapi.ts @@ -1,5 +1,3 @@ -#!/usr/bin/env tsx - /* * Copyright (c) 2026 Snapflow. All rights reserved. * diff --git a/apps/api/src/payments/funds/constants/stripe.constants.ts b/apps/api/src/payments/funds/constants/stripe.constants.ts index f6e3cb9..85414c2 100644 --- a/apps/api/src/payments/funds/constants/stripe.constants.ts +++ b/apps/api/src/payments/funds/constants/stripe.constants.ts @@ -135,12 +135,6 @@ export const StripeDeclineCode = { AUTHENTICATION_REQUIRED: 'authentication_required', } as const; -export const StripeDisputeStatus = { - WON: 'won', - LOST: 'lost', - UNDER_REVIEW: 'under_review', -} as const; - export const StripePaymentIntentStatus = { SUCCEEDED: 'succeeded', REQUIRES_ACTION: 'requires_action', diff --git a/apps/guest/.gitignore b/apps/guest/.gitignore index 2191add..f8f2faf 100644 --- a/apps/guest/.gitignore +++ b/apps/guest/.gitignore @@ -1,2 +1 @@ internal/terminal/static -!internal/terminal/static/index.html diff --git a/apps/marketing/Dockerfile b/apps/marketing/Dockerfile index d3c6b1b..ef722f7 100644 --- a/apps/marketing/Dockerfile +++ b/apps/marketing/Dockerfile @@ -22,7 +22,7 @@ COPY apps/marketing/package.json apps/marketing/package.json RUN --mount=type=cache,id=pnpm-store,target=/pnpm/store \ pnpm install --filter @snapflow/marketing... --frozen-lockfile --ignore-scripts \ - && pnpm rebuild @parcel/watcher esbuild sharp + && pnpm rebuild esbuild sharp COPY apps/marketing apps/marketing diff --git a/biome.json b/biome.json index f1d9cca..b7ac086 100644 --- a/biome.json +++ b/biome.json @@ -9,9 +9,6 @@ "files": { "includes": [ "**/*.{js,mjs,cjs,jsx,ts,tsx,mts,cts,json,jsonc,css,html,astro,svelte}", - "!**/*.generated.*", - "!**/src/generated", - "!**/src/**/generated", "!libs/*api-client*", "!libs/machine-proto/gen", "!apps/api/src/migrations/*-migration.ts", @@ -554,8 +551,6 @@ }, { "includes": [ - "apps/api/src/config/environment/registry.environment.ts", - "apps/api/src/config/environment/utils/read-environment.util.ts", "apps/api/src/config/configuration.config.ts", "apps/api/src/config/utils/current-process.util.ts", "apps/api/src/migrations/**", diff --git a/deploy/charts/snapflow/ci/production-values.yaml b/deploy/charts/snapflow/ci/production-values.yaml index 7538154..b48443c 100644 --- a/deploy/charts/snapflow/ci/production-values.yaml +++ b/deploy/charts/snapflow/ci/production-values.yaml @@ -8,19 +8,19 @@ email: from: Snapflow images: api: - tag: main-0123456789abcdef0123456789abcdef01234567-1760000000 + tag: build-0123456789abcdef0123456789abcdef01234567-1760000000 digest: sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef dashboard: - tag: main-0123456789abcdef0123456789abcdef01234567-1760000000 + tag: build-0123456789abcdef0123456789abcdef01234567-1760000000 digest: sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef marketing: - tag: main-0123456789abcdef0123456789abcdef01234567-1760000000 + tag: build-0123456789abcdef0123456789abcdef01234567-1760000000 digest: sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef snapshotManager: - tag: main-0123456789abcdef0123456789abcdef01234567-1760000000 + tag: build-0123456789abcdef0123456789abcdef01234567-1760000000 digest: sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef edge: - tag: main-0123456789abcdef0123456789abcdef01234567-1760000000 + tag: build-0123456789abcdef0123456789abcdef01234567-1760000000 digest: sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef edges: - name: home diff --git a/package.json b/package.json index 8718e4a..e6585f5 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,6 @@ "lint-staged": "^17.0.3", "node-gyp": "catalog:", "t3": "catalog:", - "tsx": "catalog:", "typescript": "catalog:" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 261dfce..b98047b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -294,12 +294,6 @@ catalogs: tldts: specifier: 6.1.86 version: 6.1.86 - tsconfig-paths-webpack-plugin: - specifier: 4.2.0 - version: 4.2.0 - tsx: - specifier: ^4.20.6 - version: 4.23.12 tw-animate-css: specifier: ^1.4.0 version: 1.4.0 @@ -328,20 +322,14 @@ overrides: brace-expansion@>=2.0.0 <2.1.4: 2.1.4 brace-expansion@>=3.0.0 <3.0.6: 3.0.6 brace-expansion@>=5.0.0 <5.0.12: 5.0.12 - css-loader@^6.4.0: 7.1.4 devalue@<5.9.3: 5.9.3 - dompurify@<3.4.13: 3.4.13 - '@electron/rebuild@<4.0.0': 4.2.0 engine.io@>=6.6.0 <6.6.10: 6.6.10 fast-copy@>=4.0.0 <4.1.0: 4.1.0 fast-uri@>=3.0.0 <3.1.9: 3.1.9 glob@>=13.0.0 <14.0.2: 14.0.2 '@grpc/grpc-js@>=1.14.0 <1.14.5': 1.14.5 - hono@<4.12.34: 4.13.0 - ip-address@<=10.3.0: 10.4.0 js-yaml@>=4.0.0 <4.3.2: 4.3.2 js-yaml@>=5.0.0 <5.2.1: 5.2.1 - less@<4.8.1: 4.8.1 minimatch@>=10.0.0 <11.0.1: 11.0.1 multer@<2.5.0: 2.5.0 nanoid@>=3.0.0 <3.3.18: 3.3.18 @@ -401,9 +389,6 @@ importers: t3: specifier: 'catalog:' version: 0.0.31(@shikijs/themes@4.5.0)(ioredis@5.11.1(supports-color@8.1.1))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(zod@4.6.6) - tsx: - specifier: 'catalog:' - version: 4.23.12 typescript: specifier: 'catalog:' version: 6.0.3 @@ -427,13 +412,13 @@ importers: version: 3.1121.0 '@better-auth/api-key': specifier: 'catalog:' - version: 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6)) + version: 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6)) '@better-auth/core': specifier: 'catalog:' version: 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/passkey': specifier: 'catalog:' - version: 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))(nanostores@1.5.2) + version: 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))(nanostores@1.5.2) '@better-auth/utils': specifier: 'catalog:' version: 0.4.2 @@ -553,7 +538,7 @@ importers: version: 5.1.0(supports-color@8.1.1) better-auth: specifier: 'catalog:' - version: 1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + version: 1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) better-call: specifier: 'catalog:' version: 1.4.0(zod@4.6.6) @@ -644,7 +629,7 @@ importers: devDependencies: '@nestjs/cli': specifier: 'catalog:' - version: 12.0.8(@rspack/core@2.2.1(@swc/helpers@0.5.23))(@types/node@22.20.1)(prettier@3.9.6)(tsconfig-paths-webpack-plugin@4.2.0)(webpack-node-externals@3.0.0)(webpack@5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0)) + version: 12.0.8(@rspack/core@2.2.1(@swc/helpers@0.5.23))(@types/node@22.20.1)(prettier@3.9.6)(webpack-node-externals@3.0.0)(webpack@5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0)) '@react-email/ui': specifier: 'catalog:' version: 6.11.3(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) @@ -675,12 +660,6 @@ importers: pino-pretty: specifier: ^13.1.2 version: 13.1.3 - tsconfig-paths-webpack-plugin: - specifier: 'catalog:' - version: 4.2.0 - tsx: - specifier: 'catalog:' - version: 4.23.12 typescript: specifier: 'catalog:' version: 6.0.3 @@ -692,10 +671,10 @@ importers: dependencies: '@better-auth/api-key': specifier: 'catalog:' - version: 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6)) + version: 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6)) '@better-auth/passkey': specifier: 'catalog:' - version: 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))(nanostores@1.5.2) + version: 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))(nanostores@1.5.2) '@internationalized/date': specifier: 'catalog:' version: 3.12.4 @@ -737,10 +716,10 @@ importers: version: 3.13.47(svelte@5.57.2) better-auth: specifier: 'catalog:' - version: 1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + version: 1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) bits-ui: specifier: 'catalog:' - version: 2.19.5(@internationalized/date@3.12.4)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2) + version: 2.19.5(@internationalized/date@3.12.4)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2) class-variance-authority: specifier: 'catalog:' version: 0.7.1 @@ -773,7 +752,7 @@ importers: version: 11.1.2 runed: specifier: 'catalog:' - version: 0.37.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(zod@4.6.6) + version: 0.37.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(zod@4.6.6) shiki: specifier: 'catalog:' version: 4.5.0 @@ -798,16 +777,16 @@ importers: devDependencies: '@sveltejs/adapter-static': specifier: 'catalog:' - version: 4.0.0(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0))) + version: 4.0.0(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))) '@sveltejs/kit': specifier: 'catalog:' - version: 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + version: 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) '@sveltejs/vite-plugin-svelte': specifier: 'catalog:' - version: 7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + version: 7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) '@tailwindcss/vite': specifier: 'catalog:' - version: 4.3.3(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + version: 4.3.3(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) '@types/hast': specifier: 'catalog:' version: 3.0.5 @@ -828,13 +807,13 @@ importers: version: 6.0.3 vite: specifier: 8.3.4 - version: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + version: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) apps/marketing: dependencies: '@astrojs/react': specifier: 'catalog:' - version: 7.0.0(@types/node@24.13.3)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(esbuild@0.28.2)(jiti@2.7.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + version: 7.0.0(@types/node@24.13.3)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(esbuild@0.28.2)(jiti@2.7.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(terser@5.51.2)(yaml@2.9.0) '@astrojs/sitemap': specifier: 'catalog:' version: 3.7.4 @@ -843,7 +822,7 @@ importers: version: 9.7.0(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(three@0.185.1) astro: specifier: 'catalog:' - version: 7.3.5(@types/node@24.13.3)(ioredis@5.11.1(supports-color@8.1.1))(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + version: 7.3.5(@types/node@24.13.3)(ioredis@5.11.1(supports-color@8.1.1))(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) cookie: specifier: 2.0.1 version: 2.0.1 @@ -862,7 +841,7 @@ importers: version: 0.9.10(prettier@3.9.6)(typescript@6.0.3) '@tailwindcss/vite': specifier: 'catalog:' - version: 4.3.3(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + version: 4.3.3(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) '@types/react': specifier: 'catalog:' version: 19.2.18 @@ -898,7 +877,7 @@ importers: devDependencies: better-auth: specifier: 'catalog:' - version: 1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + version: 1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) typescript: specifier: 'catalog:' version: 6.0.3 @@ -959,7 +938,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + version: 4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) libs/toolbox-api-client: devDependencies: @@ -4772,10 +4751,6 @@ packages: resolution: {integrity: sha512-9/lX2bdlizlCXMHRMOIm03VBQHQYC7VvydcxtTAUJRxNW1QzM/2PMFSmr6h/lCiMHcyCP6abK+t9Q+j4vekk8Q==} engines: {node: '>=10.2.0'} - enhanced-resolve@5.24.5: - resolution: {integrity: sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==} - engines: {node: '>=10.13.0'} - enhanced-resolve@5.26.0: resolution: {integrity: sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==} engines: {node: '>=10.13.0'} @@ -6976,10 +6951,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - tsconfig-paths-webpack-plugin@4.2.0: - resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} - engines: {node: '>=10.13.0'} - tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -6993,11 +6964,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.23.12: - resolution: {integrity: sha512-FDf4L4sYzKtzWYhU/Xm0AQFdTjdIxNo9ElTf2mxXM6k8YMHXzYUe4yODVaXP4V9uMFbVg8c0qyBccK2OOxb45Q==} - engines: {node: '>=18.0.0'} - hasBin: true - tsyringe@4.10.0: resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} engines: {node: '>= 6.0.0'} @@ -7217,7 +7183,7 @@ packages: '@vitejs/devtools': ^0.7.1 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' - less: 4.8.1 + less: ^4.0.0 sass: ^1.70.0 sass-embedded: ^1.70.0 stylus: '>=0.54.8' @@ -7791,17 +7757,17 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/react@7.0.0(@types/node@24.13.3)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(esbuild@0.28.2)(jiti@2.7.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)': + '@astrojs/react@7.0.0(@types/node@24.13.3)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(esbuild@0.28.2)(jiti@2.7.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(terser@5.51.2)(yaml@2.9.0)': dependencies: '@astrojs/internal-helpers': 0.11.0 '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - '@vitejs/plugin-react': 6.1.1(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + '@vitejs/plugin-react': 6.1.1(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) devalue: 5.9.4 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) ultrahtml: 1.7.0 - vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) transitivePeerDependencies: - '@rolldown/plugin-babel' - '@types/node' @@ -8121,19 +8087,19 @@ snapshots: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@better-auth/api-key@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))': + '@better-auth/api-key@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))': dependencies: '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/utils': 0.4.2 - better-auth: 1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + better-auth: 1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) better-call: 1.4.0(zod@4.6.6) zod: 4.6.6 - '@better-auth/api-key@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))': + '@better-auth/api-key@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))': dependencies: '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/utils': 0.4.2 - better-auth: 1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + better-auth: 1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) better-call: 1.4.0(zod@4.6.6) zod: 4.6.6 @@ -8173,26 +8139,26 @@ snapshots: '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/utils': 0.4.2 - '@better-auth/passkey@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))(nanostores@1.5.2)': + '@better-auth/passkey@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))(nanostores@1.5.2)': dependencies: '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/utils': 0.4.2 '@better-fetch/fetch': 1.3.2 '@simplewebauthn/browser': 13.3.0 '@simplewebauthn/server': 13.3.2 - better-auth: 1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + better-auth: 1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) better-call: 1.4.0(zod@4.6.6) nanostores: 1.5.2 zod: 4.6.6 - '@better-auth/passkey@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))(nanostores@1.5.2)': + '@better-auth/passkey@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(better-call@1.4.0(zod@4.6.6))(nanostores@1.5.2)': dependencies: '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/utils': 0.4.2 '@better-fetch/fetch': 1.3.2 '@simplewebauthn/browser': 13.3.0 '@simplewebauthn/server': 13.3.2 - better-auth: 1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + better-auth: 1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) better-call: 1.4.0(zod@4.6.6) nanostores: 1.5.2 zod: 4.6.6 @@ -9156,7 +9122,7 @@ snapshots: '@nestjs/core': 12.0.1(@nestjs/common@12.0.1(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@8.1.1))(@nestjs/platform-express@12.0.1)(@nestjs/websockets@12.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2) ioredis: 5.11.1(supports-color@8.1.1) - '@nestjs/cli@12.0.8(@rspack/core@2.2.1(@swc/helpers@0.5.23))(@types/node@22.20.1)(prettier@3.9.6)(tsconfig-paths-webpack-plugin@4.2.0)(webpack-node-externals@3.0.0)(webpack@5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0))': + '@nestjs/cli@12.0.8(@rspack/core@2.2.1(@swc/helpers@0.5.23))(@types/node@22.20.1)(prettier@3.9.6)(webpack-node-externals@3.0.0)(webpack@5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0))': dependencies: '@angular-devkit/core': 22.2.0(chokidar@5.0.0) '@angular-devkit/schematics': 22.2.0(chokidar@5.0.0) @@ -9175,7 +9141,6 @@ snapshots: typescript: 6.0.3 optionalDependencies: '@rspack/core': 2.2.1(@swc/helpers@0.5.23) - tsconfig-paths-webpack-plugin: 4.2.0 webpack: 5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0) webpack-node-externals: 3.0.0 transitivePeerDependencies: @@ -10134,15 +10099,15 @@ snapshots: dependencies: acorn: 8.18.0 - '@sveltejs/adapter-static@4.0.0(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))': + '@sveltejs/adapter-static@4.0.0(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))': dependencies: - '@sveltejs/kit': 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + '@sveltejs/kit': 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) - '@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0))': + '@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 '@standard-schema/spec': 1.1.0 - '@sveltejs/vite-plugin-svelte': 7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + '@sveltejs/vite-plugin-svelte': 7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) cookie: 2.0.1 devalue: 5.9.4 esm-env: 1.2.2 @@ -10150,21 +10115,21 @@ snapshots: mrmime: 2.0.1 sirv: 3.0.2 svelte: 5.57.2 - vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) optionalDependencies: '@opentelemetry/api': 1.9.1 typescript: 6.0.3 '@sveltejs/load-config@0.2.3': {} - '@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0))': + '@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))': dependencies: deepmerge: 4.3.1 magic-string: 1.4.1 obug: 2.1.4 svelte: 5.57.2 - vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) - vitefu: 1.1.3(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) '@swc/helpers@0.5.23': dependencies: @@ -10231,19 +10196,19 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - '@tailwindcss/vite@4.3.3(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0))': + '@tailwindcss/vite@4.3.3(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) - '@tailwindcss/vite@4.3.3(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0))': + '@tailwindcss/vite@4.3.3(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) '@tanstack/devtools-event-client@0.4.4': {} @@ -10494,10 +10459,10 @@ snapshots: '@ungap/structured-clone@1.3.3': {} - '@vitejs/plugin-react@6.1.1(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0))': + '@vitejs/plugin-react@6.1.1(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) '@vitest/expect@4.1.12': dependencies: @@ -10508,21 +10473,21 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.12(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0))': + '@vitest/mocker@4.1.12(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.12 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) - '@vitest/mocker@4.1.12(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0))': + '@vitest/mocker@4.1.12(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.12 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) optional: true '@vitest/pretty-format@4.1.12': @@ -10805,7 +10770,7 @@ snapshots: assertion-error@2.0.1: {} - astro@7.3.5(@types/node@24.13.3)(ioredis@5.11.1(supports-color@8.1.1))(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0): + astro@7.3.5(@types/node@24.13.3)(ioredis@5.11.1(supports-color@8.1.1))(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0): dependencies: '@astrojs/compiler-rs': 0.5.1 '@astrojs/internal-helpers': 0.11.0 @@ -10855,8 +10820,8 @@ snapshots: unifont: 0.7.5 unstorage: 1.17.5(ioredis@5.11.1(supports-color@8.1.1)) verkit: 0.4.1 - vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) - vitefu: 1.1.3(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) xxhash-wasm: 1.1.0 yargs-parser: 22.0.0 zod: 4.6.6 @@ -10913,7 +10878,7 @@ snapshots: baseline-browser-mapping@2.11.18: {} - better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)): + better-auth@1.7.7(@opentelemetry/api@1.9.1)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)): dependencies: '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/drizzle-adapter': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2) @@ -10933,17 +10898,17 @@ snapshots: nanostores: 1.5.2 zod: 4.6.6 optionalDependencies: - '@sveltejs/kit': 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + '@sveltejs/kit': 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) next: 16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) pg: 8.23.0 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) svelte: 5.57.2 - vitest: 4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vitest: 4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) transitivePeerDependencies: - '@opentelemetry/api' - better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)): + better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)): dependencies: '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/drizzle-adapter': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2) @@ -10968,11 +10933,11 @@ snapshots: react: 19.2.8 react-dom: 19.2.8(react@19.2.8) svelte: 5.57.2 - vitest: 4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vitest: 4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) transitivePeerDependencies: - '@opentelemetry/api' - better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)): + better-auth@1.7.7(@opentelemetry/api@1.9.1)(next@16.4.1(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(pg@8.23.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.57.2)(vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)): dependencies: '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2) '@better-auth/drizzle-adapter': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(@opentelemetry/api@1.9.1)(better-call@1.4.0(zod@4.6.6))(jose@6.2.10)(kysely@0.29.5)(nanostores@1.5.2))(@better-auth/utils@0.4.2) @@ -10997,7 +10962,7 @@ snapshots: react: 19.2.8 react-dom: 19.2.8(react@19.2.8) svelte: 5.57.2 - vitest: 4.1.12(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vitest: 4.1.12(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) transitivePeerDependencies: - '@opentelemetry/api' @@ -11010,15 +10975,15 @@ snapshots: optionalDependencies: zod: 4.6.6 - bits-ui@2.19.5(@internationalized/date@3.12.4)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2): + bits-ui@2.19.5(@internationalized/date@3.12.4)(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2): dependencies: '@floating-ui/core': 1.8.0 '@floating-ui/dom': 1.8.0 '@internationalized/date': 3.12.4 esm-env: 1.2.2 - runed: 0.35.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2) + runed: 0.35.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2) svelte: 5.57.2 - svelte-toolbelt: 0.10.6(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2) + svelte-toolbelt: 0.10.6(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2) tabbable: 6.5.0 transitivePeerDependencies: - '@sveltejs/kit' @@ -11553,11 +11518,6 @@ snapshots: - supports-color - utf-8-validate - enhanced-resolve@5.24.5: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.3 - enhanced-resolve@5.26.0: dependencies: graceful-fs: 4.2.11 @@ -13453,23 +13413,23 @@ snapshots: esm-env: 1.2.2 svelte: 5.57.2 - runed@0.35.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2): + runed@0.35.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2): dependencies: dequal: 2.0.3 esm-env: 1.2.2 lz-string: 1.5.0 svelte: 5.57.2 optionalDependencies: - '@sveltejs/kit': 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + '@sveltejs/kit': 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) - runed@0.37.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(zod@4.6.6): + runed@0.37.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(zod@4.6.6): dependencies: dequal: 2.0.3 esm-env: 1.2.2 lz-string: 1.5.0 svelte: 5.57.2 optionalDependencies: - '@sveltejs/kit': 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + '@sveltejs/kit': 3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) zod: 4.6.6 rxjs@7.8.2: @@ -13872,10 +13832,10 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-toolbelt@0.10.6(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2): + svelte-toolbelt@0.10.6(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2): dependencies: clsx: 2.1.1 - runed: 0.35.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)))(svelte@5.57.2) + runed: 0.35.1(@sveltejs/kit@3.1.0(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.2)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2)(typescript@6.0.3)(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)))(svelte@5.57.2) style-to-object: 1.0.14 svelte: 5.57.2 transitivePeerDependencies: @@ -14030,13 +13990,6 @@ snapshots: trough@2.2.0: {} - tsconfig-paths-webpack-plugin@4.2.0: - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.24.5 - tapable: 2.3.3 - tsconfig-paths: 4.2.0 - tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -14049,12 +14002,6 @@ snapshots: tslib@2.8.1: {} - tsx@4.23.12: - dependencies: - esbuild: 0.28.2 - optionalDependencies: - fsevents: 2.3.3 - tsyringe@4.10.0: dependencies: tslib: 1.14.1 @@ -14200,7 +14147,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0): + vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -14213,10 +14160,9 @@ snapshots: fsevents: 2.3.3 jiti: 2.7.0 terser: 5.51.2 - tsx: 4.23.12 yaml: 2.9.0 - vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0): + vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -14229,21 +14175,20 @@ snapshots: fsevents: 2.3.3 jiti: 2.7.0 terser: 5.51.2 - tsx: 4.23.12 yaml: 2.9.0 - vitefu@1.1.3(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)): + vitefu@1.1.3(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)): optionalDependencies: - vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) - vitefu@1.1.3(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)): + vitefu@1.1.3(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)): optionalDependencies: - vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) - vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0): + vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0): dependencies: '@vitest/expect': 4.1.12 - '@vitest/mocker': 4.1.12(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + '@vitest/mocker': 4.1.12(vite@8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.12 '@vitest/runner': 4.1.12 '@vitest/snapshot': 4.1.12 @@ -14260,7 +14205,7 @@ snapshots: tinyexec: 1.3.0 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@22.20.1)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -14279,10 +14224,10 @@ snapshots: - tsx - yaml - vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0): + vitest@4.1.12(@opentelemetry/api@1.9.1)(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0): dependencies: '@vitest/expect': 4.1.12 - '@vitest/mocker': 4.1.12(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0)) + '@vitest/mocker': 4.1.12(vite@8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.12 '@vitest/runner': 4.1.12 '@vitest/snapshot': 4.1.12 @@ -14299,7 +14244,7 @@ snapshots: tinyexec: 1.3.0 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.12)(yaml@2.9.0) + vite: 8.3.4(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 005b885..c6522e4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -25,20 +25,14 @@ overrides: 'brace-expansion@>=2.0.0 <2.1.4': 2.1.4 'brace-expansion@>=3.0.0 <3.0.6': 3.0.6 'brace-expansion@>=5.0.0 <5.0.12': 5.0.12 - 'css-loader@^6.4.0': 7.1.4 'devalue@<5.9.3': 5.9.3 - 'dompurify@<3.4.13': 3.4.13 - '@electron/rebuild@<4.0.0': 4.2.0 'engine.io@>=6.6.0 <6.6.10': 6.6.10 'fast-copy@>=4.0.0 <4.1.0': 4.1.0 'fast-uri@>=3.0.0 <3.1.9': 3.1.9 'glob@>=13.0.0 <14.0.2': 14.0.2 '@grpc/grpc-js@>=1.14.0 <1.14.5': 1.14.5 - 'hono@<4.12.34': 4.13.0 - 'ip-address@<=10.3.0': 10.4.0 'js-yaml@>=4.0.0 <4.3.2': 4.3.2 'js-yaml@>=5.0.0 <5.2.1': 5.2.1 - 'less@<4.8.1': 4.8.1 'minimatch@>=10.0.0 <11.0.1': 11.0.1 'multer@<2.5.0': 2.5.0 'nanoid@>=3.0.0 <3.3.18': 3.3.18 @@ -62,24 +56,12 @@ overrides: 'ws@>=8.0.0 <8.21.0': 8.21.0 allowBuilds: - '@parcel/watcher': true '@scarf/scarf': false - '@swc/core': true - bufferutil: false - core-js: false - cpu-features: false esbuild: true - electron: true - electron-winstaller: true - less: false msgpackr-extract: true node-pty: true protobufjs: false sharp: true - ssh2: false - sqlite3: true - unrs-resolver: true - utf-8-validate: false minimumReleaseAgeExclude: - '@mikro-orm/cli@7.2.0' @@ -183,7 +165,6 @@ catalog: tailwindcss: ^4.3.3 tw-animate-css: ^1.4.0 three: ^0.185.1 - tsx: ^4.20.6 typescript: ~6.0.3 vite: 8.3.4 vitest: ^4.1.12 @@ -210,7 +191,6 @@ catalog: '@types/inquirer': 8.2.12 '@nestjs/cli': 12.0.8 webpack-node-externals: 3.0.0 - tsconfig-paths-webpack-plugin: 4.2.0 '@types/webpack-node-externals': ^3.0.4 stripe: ^23.0.0 react-email: 6.11.3 diff --git a/scripts/cleanup.sh b/scripts/cleanup.sh index cadf590..390142c 100644 --- a/scripts/cleanup.sh +++ b/scripts/cleanup.sh @@ -101,7 +101,6 @@ add_entry "./tmp" add_entry "./core" add_entry "./.pnpm-store" add_entry "./.moon/cache" -add_entry "./.moon/docker" PRUNE_PATHS=( -path './.git' -o From edab40bd13596256ca3b3b312e812b881c269e2b Mon Sep 17 00:00:00 2001 From: Bryan Lawless Date: Wed, 4 Nov 2026 15:17:39 -0700 Subject: [PATCH 2/3] refactor(microvm): remove unused runtime options and snapshot-record forks snapflowd builds the runtime without options, so WithVolumeBlockStore and WithGPUManager were never applied; the runtime always uses the local block store and the detected host GPUs. Forking from a named standby snapshot record was never wired up (ForkRequest.SnapshotID was never set), so CreateStandbyWithID, KindStandby, the VM payload copy and the fork record branches are removed; pausing to standby and forking a standby instance are unchanged. Also remove the uncalled GetPort, RequiresHostEmulation, ReadLockMany and OpenedStreams. --- apps/edge/internal/edge/edgetest/tunnels.go | 10 --- apps/snapflow/internal/sshgateway/service.go | 4 - libs/microvm-go/imagecache/platform.go | 6 -- .../internal/lifecycle/coordinator.go | 4 - libs/microvm-go/internal/runtime/backend.go | 18 +---- libs/microvm-go/internal/runtime/fork.go | 30 +++----- .../internal/runtime/fork_source.go | 73 +++---------------- libs/microvm-go/internal/runtime/fork_test.go | 69 ------------------ .../runtime/snapshot_secret_policy_test.go | 6 +- libs/microvm-go/internal/snapshot/payload.go | 31 -------- libs/microvm-go/internal/snapshot/store.go | 17 +---- libs/microvm-go/internal/snapshot/types.go | 5 +- libs/microvm-go/microvm.go | 25 +------ libs/microvm-go/types/requests.go | 1 - 14 files changed, 30 insertions(+), 269 deletions(-) delete mode 100644 libs/microvm-go/internal/snapshot/payload.go diff --git a/apps/edge/internal/edge/edgetest/tunnels.go b/apps/edge/internal/edge/edgetest/tunnels.go index a64db74..4d183b9 100644 --- a/apps/edge/internal/edge/edgetest/tunnels.go +++ b/apps/edge/internal/edge/edgetest/tunnels.go @@ -32,7 +32,6 @@ var _ edge.Tunnels = (*Tunnels)(nil) type Tunnels struct { mu sync.Mutex backends map[uuid.UUID]string - opened int dialer net.Dialer changes chan struct{} } @@ -60,9 +59,6 @@ func (tunnels *Tunnels) OpenStream( ) (transport.Stream, error) { tunnels.mu.Lock() backend, found := tunnels.backends[route.BackendID] - if found { - tunnels.opened++ - } tunnels.mu.Unlock() if !found { return nil, tunnel.ErrMachineUnavailable @@ -70,12 +66,6 @@ func (tunnels *Tunnels) OpenStream( return tunnels.dialer.DialContext(ctx, tcpNetwork, backend) } -func (tunnels *Tunnels) OpenedStreams() int { - tunnels.mu.Lock() - defer tunnels.mu.Unlock() - return tunnels.opened -} - func (tunnels *Tunnels) BackendLoad(route routes.Base) (int64, bool) { tunnels.mu.Lock() defer tunnels.mu.Unlock() diff --git a/apps/snapflow/internal/sshgateway/service.go b/apps/snapflow/internal/sshgateway/service.go index eb32a7e..0250f2b 100644 --- a/apps/snapflow/internal/sshgateway/service.go +++ b/apps/snapflow/internal/sshgateway/service.go @@ -92,10 +92,6 @@ func New(cfg Config, deps Dependencies, opts ...Option) (*Service, error) { return service, nil } -func (s *Service) GetPort() int { - return s.port -} - func (s *Service) PublicHostKey() string { return s.hostKey } diff --git a/libs/microvm-go/imagecache/platform.go b/libs/microvm-go/imagecache/platform.go index d319a3b..daf3ffe 100644 --- a/libs/microvm-go/imagecache/platform.go +++ b/libs/microvm-go/imagecache/platform.go @@ -131,12 +131,6 @@ func (p Platform) Matches(other Platform) bool { return p.OS == other.OS && p.Architecture == other.Architecture } -func (p Platform) RequiresHostEmulation() bool { - p = p.Normalize() - host := HostPlatform() - return p.OS == host.OS && p.Architecture != host.Architecture -} - func (p Platform) OCI() ocispec.Platform { return ocispec.Platform{ OS: p.OS, diff --git a/libs/microvm-go/internal/lifecycle/coordinator.go b/libs/microvm-go/internal/lifecycle/coordinator.go index 7d730c2..a0a4788 100644 --- a/libs/microvm-go/internal/lifecycle/coordinator.go +++ b/libs/microvm-go/internal/lifecycle/coordinator.go @@ -65,10 +65,6 @@ func (c *Coordinator) ReadLock(ctx context.Context, key string) (*Guard, error) return c.lockMany(ctx, readLock, key) } -func (c *Coordinator) ReadLockMany(ctx context.Context, keys ...string) (*Guard, error) { - return c.lockMany(ctx, readLock, keys...) -} - func (c *Coordinator) Lock(ctx context.Context, key string) (*Guard, error) { return c.lockMany(ctx, writeLock, key) } diff --git a/libs/microvm-go/internal/runtime/backend.go b/libs/microvm-go/internal/runtime/backend.go index d1a01aa..0657015 100644 --- a/libs/microvm-go/internal/runtime/backend.go +++ b/libs/microvm-go/internal/runtime/backend.go @@ -56,10 +56,8 @@ type Config struct { InitrdPath string MkfsErofsPath string VMMAssets vmm.HostAssets - VolumeBlockStore volumes.BlockStore Builds builds.Config Transfers transferpolicy.Policy - GPUDevices devices.GPUManager GPUQuarantine *devices.GPUQuarantine Capacity func() (admission.Resources, error) GuestBundles []guest.Bundle @@ -156,9 +154,9 @@ func NewBackend(config Config) (*Backend, error) { vmmBinaries: vmmBinaries, networks: networkManager, networkConfig: networkConfig, - gpuDevices: defaultGPUManager(config.GPUDevices, config.HostGPU, gpuQuarantine(config)), + gpuDevices: defaultGPUManager(config.HostGPU, gpuQuarantine(config)), snapshots: snapshot.NewStore(config.Paths), - volumes: volumeManager(config.Paths, config.VolumeBlockStore), + volumes: volumes.NewManager(config.Paths), memory: memoryPolicy, lifecycle: lifecycle.NewCoordinator(), pendingGPU: make(map[string][]string), @@ -245,13 +243,6 @@ func (b *Backend) Recover(ctx context.Context) error { return nil } -func volumeManager(paths layout.Paths, store volumes.BlockStore) *volumes.Manager { - if store == nil { - return volumes.NewManager(paths) - } - return volumes.NewManager(paths, volumes.WithBlockStore(store)) -} - func cloneRegistry(registry *types.Registry) *types.Registry { if registry == nil { return nil @@ -264,10 +255,7 @@ func cloneRegistry(registry *types.Registry) *types.Registry { return &cloned } -func defaultGPUManager(manager devices.GPUManager, gpuInfo host.HostGPUInfo, quarantine *devices.GPUQuarantine) devices.GPUManager { - if manager != nil { - return manager - } +func defaultGPUManager(gpuInfo host.HostGPUInfo, quarantine *devices.GPUQuarantine) devices.GPUManager { inventory := make([]devices.GPUInventoryDevice, 0, len(gpuInfo.Devices)) for _, device := range gpuInfo.Devices { inventory = append(inventory, devices.GPUInventoryDevice{ diff --git a/libs/microvm-go/internal/runtime/fork.go b/libs/microvm-go/internal/runtime/fork.go index 385aeab..230c589 100644 --- a/libs/microvm-go/internal/runtime/fork.go +++ b/libs/microvm-go/internal/runtime/fork.go @@ -26,14 +26,12 @@ import ( "github.com/google/uuid" mvmerrors "github.com/snapflowio/microvm-go/internal/errors" "github.com/snapflowio/microvm-go/internal/lifecycle" - "github.com/snapflowio/microvm-go/internal/snapshot" "github.com/snapflowio/microvm-go/internal/state" "github.com/snapflowio/microvm-go/types" ) type forkSource struct { - metadata state.InstanceMetadata - snapshotRecord *snapshot.Record + metadata state.InstanceMetadata } type forkOptions struct { @@ -79,7 +77,7 @@ func (b *Backend) forkWithOptions(ctx context.Context, instanceID string, reques } func (b *Backend) forkLocked(ctx context.Context, instanceID string, request types.ForkRequest, options forkOptions) (forkID string, returnErr error) { - sourceData, err := b.loadForkSource(instanceID, request.SnapshotID) + sourceData, err := b.loadForkSource(instanceID) if err != nil { return "", err } @@ -132,20 +130,16 @@ func validateForkRequest(instanceID string, sourceData forkSource) error { if err := validateRequestedTransition(lifecycle.OperationFork, source.State); err != nil { return err } - if sourceData.snapshotRecord == nil { - if err := validateForkSource(source); err != nil { - return err - } + if err := validateForkSource(source); err != nil { + return err } if source.ID != instanceID { return stateConflict("snapshot source does not match the requested instance", "MICROVM_SNAPSHOT_SOURCE_MISMATCH") } - if forkCapturesMemory(source, sourceData.snapshotRecord) { - if err := validateMemorySnapshotPolicy(source); err != nil { - return err - } + if forkCapturesMemory(source) { + return validateMemorySnapshotPolicy(source) } - return validateForkSnapshotKind(sourceData.snapshotRecord) + return nil } func (b *Backend) reserveFork( @@ -165,9 +159,6 @@ func (b *Backend) reserveFork( } func (b *Backend) prepareForkSnapshotSource(ctx context.Context, sourceData forkSource) (bool, *forkSourceRestorer, error) { - if sourceData.snapshotRecord != nil { - return sourceData.snapshotRecord.Snapshot.Kind == snapshot.KindStandby, &forkSourceRestorer{}, nil - } fastFork, restoreSource, err := b.prepareFastForkSource(ctx, sourceData.metadata) if err != nil { return false, nil, err @@ -181,7 +172,7 @@ func (b *Backend) materializeForkTarget(transaction *lifecycle.Transaction, options forkOptions, ) error { targetDir := b.paths.InstanceDir(forkID) - if err := b.materializeForkSourceWithOptions(sourceData, targetDir, forkID, options); err != nil { + if err := b.materializeForkSourceWithOptions(sourceData, targetDir, options); err != nil { return errors.Join( fmt.Errorf("materialize instance fork source: %w", err), wrapOptionalError("remove partial fork target", os.RemoveAll(targetDir)), @@ -324,9 +315,6 @@ func (b *Backend) reconcileExistingFork(ctx context.Context, sourceInstanceID st return request.ID, nil } -func forkCapturesMemory(source state.InstanceMetadata, record *snapshot.Record) bool { - if record != nil { - return record.Snapshot.Kind == snapshot.KindStandby - } +func forkCapturesMemory(source state.InstanceMetadata) bool { return source.State == types.RuntimeStateStarted || source.State == types.RuntimeStateStandby } diff --git a/libs/microvm-go/internal/runtime/fork_source.go b/libs/microvm-go/internal/runtime/fork_source.go index fcf9c0d..de29c27 100644 --- a/libs/microvm-go/internal/runtime/fork_source.go +++ b/libs/microvm-go/internal/runtime/fork_source.go @@ -16,82 +16,31 @@ package runtime import ( "context" - "encoding/json" "errors" "fmt" "os" "path/filepath" - mvmerrors "github.com/snapflowio/microvm-go/internal/errors" - "github.com/snapflowio/microvm-go/internal/filemode" "github.com/snapflowio/microvm-go/internal/forkvm" - "github.com/snapflowio/microvm-go/internal/snapshot" "github.com/snapflowio/microvm-go/internal/state" "github.com/snapflowio/microvm-go/types" ) -func (b *Backend) loadForkSource(instanceID, snapshotID string) (forkSource, error) { - if snapshotID == "" { - metadata, err := b.readInstance(instanceID) - return forkSource{metadata: metadata}, err - } - record, err := b.snapshots.LoadRecord(snapshotID) - if err != nil { - if errors.Is(err, snapshot.ErrNotFound) { - return forkSource{}, mvmerrors.NewNotFound(fmt.Errorf("snapshot %s", snapshotID)) - } - return forkSource{}, err - } - if record.Snapshot.SourceInstanceID != instanceID { - return forkSource{}, stateConflict("snapshot source does not match the requested instance", "MICROVM_SNAPSHOT_SOURCE_MISMATCH") - } - var metadata state.InstanceMetadata - if err := json.Unmarshal(record.StoredMetadata, &metadata); err != nil { - return forkSource{}, fmt.Errorf("decode snapshot source metadata: %w", err) - } - if metadata.Hypervisor != record.Snapshot.SourceHypervisor { - return forkSource{}, stateConflict("snapshot hypervisor metadata is inconsistent", "MICROVM_SNAPSHOT_HYPERVISOR_MISMATCH") - } - return forkSource{metadata: metadata, snapshotRecord: &record}, nil +func (b *Backend) loadForkSource(instanceID string) (forkSource, error) { + metadata, err := b.readInstance(instanceID) + return forkSource{metadata: metadata}, err } -func validateForkSnapshotKind(record *snapshot.Record) error { - if record == nil { - return nil - } - switch record.Snapshot.Kind { - case snapshot.KindStopped, snapshot.KindStandby: - return nil - default: - return stateConflict("snapshot kind cannot be forked", "MICROVM_SNAPSHOT_KIND_UNSUPPORTED") - } -} - -func (b *Backend) materializeForkSourceWithOptions(source forkSource, targetDir, targetID string, options forkOptions) error { - if source.snapshotRecord == nil { - copyOptions := forkvm.CopyOptions{ - SkipRelativePaths: map[string]struct{}{ - filepath.Base(b.paths.InstanceMetadata(source.metadata.ID)): {}, - }, - } - if options.shareSnapshotMemory { - copyOptions.HardlinkRelativePaths = map[string]struct{}{templateSnapshotMemoryRelativePath(): {}} - } - return forkvm.CopyDirWithOptions(b.paths.InstanceDir(source.metadata.ID), targetDir, copyOptions) - } - if err := os.MkdirAll(targetDir, filemode.SharedDirectory); err != nil { - return fmt.Errorf("create fork target directory: %w", err) - } - payloadDir := b.paths.SnapshotPayloadDir(source.snapshotRecord.Snapshot.ID) - if err := forkvm.CopyFile(filepath.Join(payloadDir, "overlay.raw"), b.paths.InstanceOverlay(targetID)); err != nil { - return fmt.Errorf("copy snapshot overlay: %w", err) +func (b *Backend) materializeForkSourceWithOptions(source forkSource, targetDir string, options forkOptions) error { + copyOptions := forkvm.CopyOptions{ + SkipRelativePaths: map[string]struct{}{ + filepath.Base(b.paths.InstanceMetadata(source.metadata.ID)): {}, + }, } - if source.snapshotRecord.Snapshot.Kind == snapshot.KindStandby { - if err := b.snapshots.MaterializeVMPayload(source.snapshotRecord.Snapshot.ID, b.paths.InstanceLatestSnapshot(targetID)); err != nil { - return fmt.Errorf("materialize snapshot VM state: %w", err) - } + if options.shareSnapshotMemory { + copyOptions.HardlinkRelativePaths = map[string]struct{}{templateSnapshotMemoryRelativePath(): {}} } - return nil + return forkvm.CopyDirWithOptions(b.paths.InstanceDir(source.metadata.ID), targetDir, copyOptions) } func validateForkSource(source state.InstanceMetadata) error { diff --git a/libs/microvm-go/internal/runtime/fork_test.go b/libs/microvm-go/internal/runtime/fork_test.go index cd9742a..ed81fca 100644 --- a/libs/microvm-go/internal/runtime/fork_test.go +++ b/libs/microvm-go/internal/runtime/fork_test.go @@ -16,12 +16,10 @@ package runtime import ( "encoding/json" - "os" "path/filepath" "testing" "github.com/snapflowio/microvm-go/devices" - "github.com/snapflowio/microvm-go/hypervisor" "github.com/snapflowio/microvm-go/internal/snapshot" "github.com/snapflowio/microvm-go/internal/state" "github.com/snapflowio/microvm-go/layout" @@ -50,62 +48,6 @@ func TestValidateForkSourceRequiresQuiescedInstance(t *testing.T) { } } -func TestLoadForkSourceRejectsInconsistentSnapshotProvenance(t *testing.T) { - paths := layout.NewPaths(t.TempDir()) - store := snapshot.NewStore(paths) - storedMetadata, err := json.Marshal(state.InstanceMetadata{ - ID: "source", - Hypervisor: hypervisor.HypervisorFirecracker, - }) - if err != nil { - t.Fatal(err) - } - if err := store.SaveRecord(snapshot.Record{ - Snapshot: snapshot.Snapshot{ - ID: "snapshot-1", - SourceInstanceID: "different-source", - SourceHypervisor: hypervisor.HypervisorFirecracker, - }, - StoredMetadata: storedMetadata, - }); err != nil { - t.Fatal(err) - } - backend := &Backend{paths: paths, snapshots: store} - if _, err := backend.loadForkSource("source", "snapshot-1"); err == nil { - t.Fatal("expected inconsistent snapshot source to be rejected") - } -} - -func TestMaterializeForkSourceUsesImmutableSnapshotPayload(t *testing.T) { - paths := layout.NewPaths(t.TempDir()) - backend := &Backend{paths: paths, snapshots: snapshot.NewStore(paths)} - snapshotID := "snapshot-1" - payloadDir := paths.SnapshotPayloadDir(snapshotID) - if err := os.MkdirAll(filepath.Join(payloadDir, "vm"), 0o755); err != nil { - t.Fatal(err) - } - if err := os.WriteFile(filepath.Join(payloadDir, "overlay.raw"), []byte("snapshot-overlay"), 0o644); err != nil { - t.Fatal(err) - } - if err := os.WriteFile(filepath.Join(payloadDir, "vm", "state"), []byte("snapshot-state"), 0o644); err != nil { - t.Fatal(err) - } - - source := forkSource{ - metadata: state.InstanceMetadata{ID: "source"}, - snapshotRecord: &snapshot.Record{Snapshot: snapshot.Snapshot{ - ID: snapshotID, - Kind: snapshot.KindStandby, - }}, - } - if err := backend.materializeForkSourceWithOptions(source, paths.InstanceDir("target"), "target", forkOptions{}); err != nil { - t.Fatal(err) - } - - assertFileContents(t, paths.InstanceOverlay("target"), "snapshot-overlay") - assertFileContents(t, filepath.Join(paths.InstanceLatestSnapshot("target"), "state"), "snapshot-state") -} - func TestProtectedImageDirsIncludesSnapshotReferences(t *testing.T) { paths := layout.NewPaths(t.TempDir()) store := snapshot.NewStore(paths) @@ -158,17 +100,6 @@ func TestProtectedImageDirsIncludesPlatformBundleReferences(t *testing.T) { } } -func assertFileContents(t *testing.T, path, expected string) { - t.Helper() - contents, err := os.ReadFile(path) - if err != nil { - t.Fatal(err) - } - if string(contents) != expected { - t.Fatalf("%s = %q, want %q", path, contents, expected) - } -} - func TestForkMetadataAndNetworkIdentityAreIndependent(t *testing.T) { source := state.InstanceMetadata{ ID: "source", diff --git a/libs/microvm-go/internal/runtime/snapshot_secret_policy_test.go b/libs/microvm-go/internal/runtime/snapshot_secret_policy_test.go index d014f72..d4803c3 100644 --- a/libs/microvm-go/internal/runtime/snapshot_secret_policy_test.go +++ b/libs/microvm-go/internal/runtime/snapshot_secret_policy_test.go @@ -17,7 +17,6 @@ package runtime import ( "testing" - "github.com/snapflowio/microvm-go/internal/snapshot" "github.com/snapflowio/microvm-go/internal/state" "github.com/snapflowio/microvm-go/types" ) @@ -37,17 +36,14 @@ func TestForkCapturesMemory(t *testing.T) { tests := []struct { name string state types.RuntimeState - record *snapshot.Record expected bool }{ {name: "running source", state: types.RuntimeStateStarted, expected: true}, {name: "stopped source", state: types.RuntimeStateStopped, expected: false}, - {name: "standby snapshot", state: types.RuntimeStateStopped, record: &snapshot.Record{Snapshot: snapshot.Snapshot{Kind: snapshot.KindStandby}}, expected: true}, - {name: "stopped snapshot", state: types.RuntimeStateStarted, record: &snapshot.Record{Snapshot: snapshot.Snapshot{Kind: snapshot.KindStopped}}, expected: false}, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - actual := forkCapturesMemory(state.InstanceMetadata{State: test.state}, test.record) + actual := forkCapturesMemory(state.InstanceMetadata{State: test.state}) if actual != test.expected { t.Fatalf("forkCapturesMemory() = %t, want %t", actual, test.expected) } diff --git a/libs/microvm-go/internal/snapshot/payload.go b/libs/microvm-go/internal/snapshot/payload.go deleted file mode 100644 index 77aafff..0000000 --- a/libs/microvm-go/internal/snapshot/payload.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) 2026 Snapflow. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// SPDX-License-Identifier: Apache-2.0 - -package snapshot - -import ( - "fmt" - "path/filepath" - - "github.com/snapflowio/microvm-go/internal/forkvm" -) - -const vmPayloadDirectory = "vm" - -func (s Store) MaterializeVMPayload(id, targetDir string) error { - if err := forkvm.CopyDir(filepath.Join(s.paths.SnapshotPayloadDir(id), vmPayloadDirectory), targetDir); err != nil { - return fmt.Errorf("copy VM snapshot payload: %w", err) - } - return nil -} diff --git a/libs/microvm-go/internal/snapshot/store.go b/libs/microvm-go/internal/snapshot/store.go index 303a6ea..4dbfe2d 100644 --- a/libs/microvm-go/internal/snapshot/store.go +++ b/libs/microvm-go/internal/snapshot/store.go @@ -46,14 +46,10 @@ func NewStore(paths layout.Paths) Store { } func (s Store) CreateStoppedWithID(id string, source state.InstanceMetadata, name string) (Snapshot, error) { - return s.createFromInstance(id, source, name, KindStopped, "") + return s.createFromInstance(id, source, name, KindStopped) } -func (s Store) CreateStandbyWithID(id string, source state.InstanceMetadata, name, vmSnapshotDir string) (Snapshot, error) { - return s.createFromInstance(id, source, name, KindStandby, vmSnapshotDir) -} - -func (s Store) createFromInstance(id string, source state.InstanceMetadata, name string, kind Kind, vmSnapshotDir string) (created Snapshot, returnErr error) { +func (s Store) createFromInstance(id string, source state.InstanceMetadata, name string, kind Kind) (created Snapshot, returnErr error) { if _, err := uuid.Parse(id); err != nil { return Snapshot{}, fmt.Errorf("invalid snapshot id %q: %w", id, err) } @@ -70,7 +66,7 @@ func (s Store) createFromInstance(id string, source state.InstanceMetadata, name returnErr = errors.Join(returnErr, fmt.Errorf("clean up partial snapshot: %w", cleanupErr)) } }() - if err := s.copySnapshotPayload(payloadDir, source, vmSnapshotDir); err != nil { + if err := s.copySnapshotPayload(payloadDir, source); err != nil { return Snapshot{}, err } size, err := DirectorySize(payloadDir) @@ -98,7 +94,7 @@ func (s Store) createFromInstance(id string, source state.InstanceMetadata, name return snapshot, nil } -func (s Store) copySnapshotPayload(payloadDir string, source state.InstanceMetadata, vmSnapshotDir string) error { +func (s Store) copySnapshotPayload(payloadDir string, source state.InstanceMetadata) error { files := []struct { source string name string @@ -112,11 +108,6 @@ func (s Store) copySnapshotPayload(payloadDir string, source state.InstanceMetad return err } } - if vmSnapshotDir != "" { - if err := forkvm.CopyDir(vmSnapshotDir, filepath.Join(payloadDir, vmPayloadDirectory)); err != nil { - return fmt.Errorf("copy VM snapshot payload: %w", err) - } - } return secureSnapshotTree(payloadDir) } diff --git a/libs/microvm-go/internal/snapshot/types.go b/libs/microvm-go/internal/snapshot/types.go index 83e5d0d..4acc875 100644 --- a/libs/microvm-go/internal/snapshot/types.go +++ b/libs/microvm-go/internal/snapshot/types.go @@ -23,10 +23,7 @@ import ( type Kind string -const ( - KindStopped Kind = "stopped" - KindStandby Kind = "standby" -) +const KindStopped Kind = "stopped" type Snapshot struct { ID string `json:"id"` diff --git a/libs/microvm-go/microvm.go b/libs/microvm-go/microvm.go index a2ba731..90456c3 100644 --- a/libs/microvm-go/microvm.go +++ b/libs/microvm-go/microvm.go @@ -33,7 +33,6 @@ import ( "github.com/snapflowio/microvm-go/layout" "github.com/snapflowio/microvm-go/types" "github.com/snapflowio/microvm-go/vmm" - "github.com/snapflowio/microvm-go/volumes" ) type ( @@ -49,7 +48,6 @@ type ( RuntimeState = types.RuntimeState PreparedBootAssets = microvmruntime.PreparedBootAssets Capacity = admission.Resources - VolumeBlockStore = volumes.BlockStore SandboxCapability = guest.SandboxCapability ) @@ -86,21 +84,6 @@ type Dependencies struct { BuildLogPath func(string) (string, error) } -type Option func(*options) - -type options struct { - volumeBlockStore VolumeBlockStore - gpuManager devices.GPUManager -} - -func WithVolumeBlockStore(store VolumeBlockStore) Option { - return func(o *options) { o.volumeBlockStore = store } -} - -func WithGPUManager(manager devices.GPUManager) Option { - return func(o *options) { o.gpuManager = manager } -} - const ( Firecracker Hypervisor = hypervisor.HypervisorFirecracker CloudHypervisor Hypervisor = hypervisor.HypervisorCloudHypervisor @@ -115,17 +98,11 @@ const ( SandboxCapabilityDesktop SandboxCapability = guest.SandboxCapabilityDesktop ) -func New(config Config, dependencies Dependencies, opts ...Option) (*Runtime, error) { +func New(config Config, dependencies Dependencies) (*Runtime, error) { runtimeConfig, err := runtimeConfiguration(config, dependencies) if err != nil { return nil, err } - applied := options{} - for _, option := range opts { - option(&applied) - } - runtimeConfig.VolumeBlockStore = applied.volumeBlockStore - runtimeConfig.GPUDevices = applied.gpuManager backend, err := microvmruntime.NewBackend(runtimeConfig) if err != nil { return nil, err diff --git a/libs/microvm-go/types/requests.go b/libs/microvm-go/types/requests.go index b71a659..4d2039f 100644 --- a/libs/microvm-go/types/requests.go +++ b/libs/microvm-go/types/requests.go @@ -145,7 +145,6 @@ type ExportImageRequest struct { type ForkRequest struct { ID string `json:"id" validate:"required,uuid"` - SnapshotID string `json:"snapshotId,omitempty" validate:"omitempty,uuid"` Start bool `json:"start,omitempty"` SecretEnv map[string]string `json:"secretEnv,omitempty"` AssignmentGeneration int `json:"assignmentGeneration" validate:"min=1"` From 0d2b35a716625d0bf58b56137a48f768c62608b4 Mon Sep 17 00:00:00 2001 From: Bryan Lawless Date: Wed, 4 Nov 2026 20:58:36 -0700 Subject: [PATCH 3/3] fix(api): keep tsconfig-paths-webpack-plugin for the Nest rspack build The Nest CLI requires it when compiling with rspack, though no source file imports it. --- apps/api/package.json | 1 + pnpm-lock.yaml | 22 ++++++++++++++++++++-- pnpm-workspace.yaml | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/apps/api/package.json b/apps/api/package.json index e933989..9cf2987 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -94,6 +94,7 @@ "@types/react": "catalog:", "@types/webpack-node-externals": "catalog:", "pino-pretty": "^13.1.2", + "tsconfig-paths-webpack-plugin": "catalog:", "typescript": "catalog:", "webpack-node-externals": "catalog:" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b98047b..72348d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -294,6 +294,9 @@ catalogs: tldts: specifier: 6.1.86 version: 6.1.86 + tsconfig-paths-webpack-plugin: + specifier: 4.2.0 + version: 4.2.0 tw-animate-css: specifier: ^1.4.0 version: 1.4.0 @@ -629,7 +632,7 @@ importers: devDependencies: '@nestjs/cli': specifier: 'catalog:' - version: 12.0.8(@rspack/core@2.2.1(@swc/helpers@0.5.23))(@types/node@22.20.1)(prettier@3.9.6)(webpack-node-externals@3.0.0)(webpack@5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0)) + version: 12.0.8(@rspack/core@2.2.1(@swc/helpers@0.5.23))(@types/node@22.20.1)(prettier@3.9.6)(tsconfig-paths-webpack-plugin@4.2.0)(webpack-node-externals@3.0.0)(webpack@5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0)) '@react-email/ui': specifier: 'catalog:' version: 6.11.3(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) @@ -660,6 +663,9 @@ importers: pino-pretty: specifier: ^13.1.2 version: 13.1.3 + tsconfig-paths-webpack-plugin: + specifier: 'catalog:' + version: 4.2.0 typescript: specifier: 'catalog:' version: 6.0.3 @@ -6951,6 +6957,10 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + tsconfig-paths-webpack-plugin@4.2.0: + resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} + engines: {node: '>=10.13.0'} + tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -9122,7 +9132,7 @@ snapshots: '@nestjs/core': 12.0.1(@nestjs/common@12.0.1(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2)(supports-color@8.1.1))(@nestjs/platform-express@12.0.1)(@nestjs/websockets@12.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2) ioredis: 5.11.1(supports-color@8.1.1) - '@nestjs/cli@12.0.8(@rspack/core@2.2.1(@swc/helpers@0.5.23))(@types/node@22.20.1)(prettier@3.9.6)(webpack-node-externals@3.0.0)(webpack@5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0))': + '@nestjs/cli@12.0.8(@rspack/core@2.2.1(@swc/helpers@0.5.23))(@types/node@22.20.1)(prettier@3.9.6)(tsconfig-paths-webpack-plugin@4.2.0)(webpack-node-externals@3.0.0)(webpack@5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0))': dependencies: '@angular-devkit/core': 22.2.0(chokidar@5.0.0) '@angular-devkit/schematics': 22.2.0(chokidar@5.0.0) @@ -9141,6 +9151,7 @@ snapshots: typescript: 6.0.3 optionalDependencies: '@rspack/core': 2.2.1(@swc/helpers@0.5.23) + tsconfig-paths-webpack-plugin: 4.2.0 webpack: 5.111.1(csso@5.0.5)(esbuild@0.28.2)(lightningcss@1.33.0)(postcss@8.5.30)(sharp@0.35.5(@types/node@22.20.1))(svgo@4.1.0) webpack-node-externals: 3.0.0 transitivePeerDependencies: @@ -13990,6 +14001,13 @@ snapshots: trough@2.2.0: {} + tsconfig-paths-webpack-plugin@4.2.0: + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.26.0 + tapable: 2.3.3 + tsconfig-paths: 4.2.0 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c6522e4..7f3d0eb 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -191,6 +191,7 @@ catalog: '@types/inquirer': 8.2.12 '@nestjs/cli': 12.0.8 webpack-node-externals: 3.0.0 + tsconfig-paths-webpack-plugin: 4.2.0 '@types/webpack-node-externals': ^3.0.4 stripe: ^23.0.0 react-email: 6.11.3