diff --git a/apps/web/.env.sample b/apps/web/.env.sample index 807b05735c..744933eba1 100644 --- a/apps/web/.env.sample +++ b/apps/web/.env.sample @@ -25,3 +25,5 @@ SUPABASE_GRAPHQL_URL="" SUPABASE_STORAGE_URL="" S3_REGION="" SUPABASE_SERVICE_ROLE_KEY="" + +RESTATE_INGRESS_URL="" diff --git a/apps/web/package.json b/apps/web/package.json index 9a90bec029..4f7a736939 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -20,6 +20,7 @@ "@nangohq/node": "^0.69.14", "@netlify/vite-plugin-tanstack-start": "^1.2.1", "@posthog/react": "^1.5.0", + "@restatedev/restate-sdk-clients": "^1.9.1", "@sentry/tanstackstart-react": "^10.26.0", "@stripe/stripe-js": "^8.5.2", "@supabase/ssr": "^0.7.0", diff --git a/apps/web/src/env.ts b/apps/web/src/env.ts index 37415879e4..0d4171099d 100644 --- a/apps/web/src/env.ts +++ b/apps/web/src/env.ts @@ -19,6 +19,8 @@ export const env = createEnv({ LOOPS_KEY: z.string().min(1), DEEPGRAM_API_KEY: z.string().min(1), + + RESTATE_INGRESS_URL: z.string().min(1), }, clientPrefix: "VITE_", diff --git a/apps/web/src/functions/transcription.ts b/apps/web/src/functions/transcription.ts index 2760990743..24667f8c82 100644 --- a/apps/web/src/functions/transcription.ts +++ b/apps/web/src/functions/transcription.ts @@ -1,10 +1,143 @@ import { createClient } from "@deepgram/sdk"; +import * as clients from "@restatedev/restate-sdk-clients"; import { createServerFn } from "@tanstack/react-start"; import { z } from "zod"; import { env } from "@/env"; import { getSupabaseServerClient } from "@/functions/supabase"; +const PipelineStatus = z.enum([ + "QUEUED", + "TRANSCRIBING", + "TRANSCRIBED", + "LLM_RUNNING", + "DONE", + "ERROR", +]); + +export type PipelineStatusType = z.infer; + +const StatusState = z.object({ + status: PipelineStatus, + transcript: z.string().optional(), + llmResult: z.unknown().optional(), + error: z.string().optional(), +}); + +export type StatusStateType = z.infer; + +type AudioPipeline = { + run: (input: { + userId: string; + audioUrl: string; + }) => Promise; + getStatus: () => Promise; +}; + +function getRestateClient() { + return clients.connect({ url: env.RESTATE_INGRESS_URL }); +} + +export const startAudioPipeline = createServerFn({ method: "POST" }) + .inputValidator( + z.object({ + audioUrl: z.string(), + pipelineId: z.string().optional(), + }), + ) + .handler(async ({ data }) => { + const supabase = getSupabaseServerClient(); + const { data: userData } = await supabase.auth.getUser(); + + if (!userData.user) { + return { error: true, message: "Unauthorized" }; + } + + const pipelineId = data.pipelineId ?? crypto.randomUUID(); + + try { + const restateClient = getRestateClient(); + const handle = await restateClient + .workflowClient({ name: "AudioPipeline" }, pipelineId) + .workflowSubmit({ userId: userData.user.id, audioUrl: data.audioUrl }); + + return { + success: true, + pipelineId, + invocationId: handle.invocationId, + }; + } catch (err) { + const errorMessage = err instanceof Error ? err.message : "Unknown error"; + return { error: true, message: errorMessage }; + } + }); + +export const getAudioPipelineStatus = createServerFn({ method: "GET" }) + .inputValidator( + z.object({ + pipelineId: z.string(), + }), + ) + .handler(async ({ data }) => { + const supabase = getSupabaseServerClient(); + const { data: userData } = await supabase.auth.getUser(); + + if (!userData.user) { + return { error: true, message: "Unauthorized" }; + } + + try { + const restateClient = getRestateClient(); + const status = await restateClient + .workflowClient( + { name: "AudioPipeline" }, + data.pipelineId, + ) + .getStatus(); + + return { + success: true, + status, + }; + } catch (err) { + const errorMessage = err instanceof Error ? err.message : "Unknown error"; + return { error: true, message: errorMessage }; + } + }); + +export const getAudioPipelineResult = createServerFn({ method: "GET" }) + .inputValidator( + z.object({ + pipelineId: z.string(), + }), + ) + .handler(async ({ data }) => { + const supabase = getSupabaseServerClient(); + const { data: userData } = await supabase.auth.getUser(); + + if (!userData.user) { + return { error: true, message: "Unauthorized" }; + } + + try { + const restateClient = getRestateClient(); + const workflowClient = restateClient.workflowClient( + { name: "AudioPipeline" }, + data.pipelineId, + ); + + const result = await workflowClient.workflowAttach(); + + return { + success: true, + result, + }; + } catch (err) { + const errorMessage = err instanceof Error ? err.message : "Unknown error"; + return { error: true, message: errorMessage }; + } + }); + export const transcribeAudio = createServerFn({ method: "POST" }) .inputValidator( z.object({ diff --git a/apps/web/src/routes/_view/app/file-transcription.tsx b/apps/web/src/routes/_view/app/file-transcription.tsx index 6150f5ca10..b4b3603b39 100644 --- a/apps/web/src/routes/_view/app/file-transcription.tsx +++ b/apps/web/src/routes/_view/app/file-transcription.tsx @@ -1,5 +1,6 @@ +import { useQuery } from "@tanstack/react-query"; import { createFileRoute } from "@tanstack/react-router"; -import { useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import NoteEditor, { type JSONContent } from "@hypr/tiptap/editor"; import { EMPTY_TIPTAP_DOC } from "@hypr/tiptap/shared"; @@ -10,7 +11,11 @@ import { TranscriptDisplay, } from "@/components/transcription/transcript-display"; import { UploadArea } from "@/components/transcription/upload-area"; -import { transcribeAudio } from "@/functions/transcription"; +import { + getAudioPipelineStatus, + startAudioPipeline, + type StatusStateType, +} from "@/functions/transcription"; import { uploadAudioFile } from "@/functions/upload"; export const Route = createFileRoute("/_view/app/file-transcription")({ @@ -22,16 +27,59 @@ export const Route = createFileRoute("/_view/app/file-transcription")({ function Component() { const [file, setFile] = useState(null); - const [isProcessing, setIsProcessing] = useState(false); + const [pipelineId, setPipelineId] = useState(null); const [transcript, setTranscript] = useState(null); - const [error, setError] = useState(null); + const [uploadError, setUploadError] = useState(null); const [noteContent, setNoteContent] = useState(EMPTY_TIPTAP_DOC); + const pipelineStatusQuery = useQuery({ + queryKey: ["audioPipelineStatus", pipelineId], + queryFn: async (): Promise => { + if (!pipelineId) { + throw new Error("Missing pipelineId"); + } + const res = await getAudioPipelineStatus({ data: { pipelineId } }); + if ("error" in res && res.error) { + throw new Error(res.message ?? "Failed to get pipeline status"); + } + if (!("status" in res) || !res.status) { + throw new Error("Invalid response from pipeline status"); + } + return res.status; + }, + enabled: !!pipelineId, + refetchInterval: (query) => { + const status = query.state.data?.status; + const isTerminal = status === "DONE" || status === "ERROR"; + return isTerminal ? false : 2000; + }, + }); + + useEffect(() => { + const data = pipelineStatusQuery.data; + if (data?.status === "DONE" && data.transcript) { + setTranscript(data.transcript); + } + }, [pipelineStatusQuery.data]); + + const isProcessing = + !!pipelineId && + !["DONE", "ERROR"].includes(pipelineStatusQuery.data?.status ?? ""); + + const errorMessage = + uploadError ?? + (pipelineStatusQuery.isError && pipelineStatusQuery.error instanceof Error + ? pipelineStatusQuery.error.message + : null) ?? + (pipelineStatusQuery.data?.status === "ERROR" + ? pipelineStatusQuery.data.error + : null); + const handleFileSelect = async (selectedFile: File) => { setFile(selectedFile); setTranscript(null); - setError(null); - setIsProcessing(true); + setUploadError(null); + setPipelineId(null); try { const reader = new FileReader(); @@ -40,8 +88,7 @@ function Component() { reader.onload = async () => { const base64Data = reader.result?.toString().split(",")[1]; if (!base64Data) { - setError("Failed to read file"); - setIsProcessing(false); + setUploadError("Failed to read file"); return; } @@ -54,52 +101,44 @@ function Component() { }); if ("error" in uploadResult && uploadResult.error) { - setError(uploadResult.message || "Failed to upload file"); - setIsProcessing(false); + setUploadError(uploadResult.message || "Failed to upload file"); return; } if (!("url" in uploadResult)) { - setError("Failed to get upload URL"); - setIsProcessing(false); + setUploadError("Failed to get upload URL"); return; } - const transcriptionResult = await transcribeAudio({ + const pipelineResult = await startAudioPipeline({ data: { audioUrl: uploadResult.url, - fileName: selectedFile.name, - fileSize: selectedFile.size, }, }); - if ("error" in transcriptionResult && transcriptionResult.error) { - setError(transcriptionResult.message || "Failed to transcribe audio"); - setIsProcessing(false); + if ("error" in pipelineResult && pipelineResult.error) { + setUploadError(pipelineResult.message || "Failed to start pipeline"); return; } - if ("transcript" in transcriptionResult) { - setTranscript(transcriptionResult.transcript); + if ("pipelineId" in pipelineResult) { + setPipelineId(pipelineResult.pipelineId); } - setIsProcessing(false); }; reader.onerror = () => { - setError("Failed to read file"); - setIsProcessing(false); + setUploadError("Failed to read file"); }; } catch (err) { - setError(err instanceof Error ? err.message : "Unknown error"); - setIsProcessing(false); + setUploadError(err instanceof Error ? err.message : "Unknown error"); } }; const handleRemoveFile = () => { setFile(null); setTranscript(null); - setError(null); - setIsProcessing(false); + setUploadError(null); + setPipelineId(null); setNoteContent(EMPTY_TIPTAP_DOC); }; @@ -128,10 +167,10 @@ function Component() { - {error && ( + {errorMessage && (
-

{error}

+

{errorMessage}

)} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1305677cd9..043f70e24b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -360,10 +360,10 @@ importers: version: 10.1.0 '@tanstack/react-router-devtools': specifier: ^1.139.3 - version: 1.139.3(@tanstack/react-router@1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.139.3)(@types/node@24.10.1)(csstype@3.2.3)(jiti@1.21.7)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.10)(tsx@4.20.6)(yaml@2.8.1) + version: 1.139.3(@tanstack/react-router@1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.139.3)(@types/node@24.10.1)(csstype@3.2.3)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.10)(tsx@4.20.6)(yaml@2.8.1) '@tanstack/router-plugin': specifier: ^1.139.3 - version: 1.139.3(@tanstack/react-router@1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + version: 1.139.3(@tanstack/react-router@1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) '@tauri-apps/cli': specifier: ^2.9.4 version: 2.9.4 @@ -390,7 +390,7 @@ importers: version: 2.0.3 '@vitejs/plugin-react': specifier: ^4.7.0 - version: 4.7.0(vite@7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) + version: 4.7.0(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) autoprefixer: specifier: ^10.4.22 version: 10.4.22(postcss@8.5.6) @@ -414,10 +414,10 @@ importers: version: 5.8.3 vite: specifier: ^7.2.4 - version: 7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + version: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.1)(jiti@1.21.7)(jsdom@27.2.0)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.1)(jiti@2.6.1)(jsdom@27.2.0)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) apps/desktop-e2e: devDependencies: @@ -580,6 +580,9 @@ importers: '@posthog/react': specifier: ^1.5.0 version: 1.5.0(@types/react@19.2.7)(posthog-js@1.298.0)(react@19.2.0) + '@restatedev/restate-sdk-clients': + specifier: ^1.9.1 + version: 1.9.1 '@sentry/tanstackstart-react': specifier: ^10.26.0 version: 10.26.0(react@19.2.0) @@ -4718,6 +4721,10 @@ packages: cpu: [x64] os: [linux] + '@restatedev/restate-sdk-clients@1.9.1': + resolution: {integrity: sha512-dOZVBDVvjK8SwgTPwMM5UYYXTU+8BHk4D9QTtDUYca/lOgVAIHoQEPy5e50UJ+/cCo6NouD9lmIC+6qKbN3dsA==} + engines: {node: '>= 20.19'} + '@restatedev/restate-sdk-cloudflare-workers@1.9.1': resolution: {integrity: sha512-5fRUhsOdMurc8ynMjJeh5dsZ5mlj0pTqoyGIQKQoZ/Vj3tbyYgzPl4E6pdGvKYGQLexq3IH6QQTbK5V1v9VSrw==} engines: {node: '>= 20.19'} @@ -14706,14 +14713,14 @@ snapshots: '@apm-js-collab/tracing-hooks@0.3.1': dependencies: '@apm-js-collab/code-transformer': 0.8.2 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) module-details-from-path: 1.0.4 transitivePeerDependencies: - supports-color '@argos-ci/api-client@0.14.0': dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) openapi-fetch: 0.15.0 transitivePeerDependencies: - supports-color @@ -14725,7 +14732,7 @@ snapshots: '@argos-ci/api-client': 0.14.0 '@argos-ci/util': 3.2.0 convict: 6.2.4 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 mime-types: 3.0.2 sharp: 0.34.5 @@ -14739,7 +14746,7 @@ snapshots: '@argos-ci/core': 4.5.0 '@argos-ci/util': 3.2.0 chalk: 5.6.2 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -14807,7 +14814,7 @@ snapshots: '@babel/traverse': 7.28.0 '@babel/types': 7.28.2 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -14827,7 +14834,7 @@ snapshots: '@babel/types': 7.28.5 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -14885,7 +14892,7 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.11 transitivePeerDependencies: @@ -15149,7 +15156,7 @@ snapshots: '@babel/parser': 7.28.0 '@babel/template': 7.27.2 '@babel/types': 7.28.2 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -15161,7 +15168,7 @@ snapshots: '@babel/parser': 7.28.5 '@babel/template': 7.27.2 '@babel/types': 7.28.5 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -15630,7 +15637,7 @@ snapshots: '@esbuild-plugins/node-resolve@0.2.2(esbuild@0.25.11)': dependencies: '@types/resolve': 1.20.6 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.25.11 escape-string-regexp: 4.0.0 resolve: 1.22.11 @@ -15848,7 +15855,7 @@ snapshots: '@antfu/install-pkg': 1.1.0 '@antfu/utils': 9.3.0 '@iconify/types': 2.0.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) globals: 15.15.0 kolorist: 1.8.0 local-pkg: 1.1.2 @@ -16431,6 +16438,19 @@ snapshots: '@lukeed/ms@2.0.2': {} + '@mapbox/node-pre-gyp@2.0.0': + dependencies: + consola: 3.4.2 + detect-libc: 2.1.2 + https-proxy-agent: 7.0.6 + node-fetch: 2.7.0 + nopt: 8.1.0 + semver: 7.7.3 + tar: 7.5.2 + transitivePeerDependencies: + - encoding + - supports-color + '@mapbox/node-pre-gyp@2.0.0(supports-color@10.2.2)': dependencies: consola: 3.4.2 @@ -16649,6 +16669,14 @@ snapshots: '@netlify/dev-utils': 4.3.0 '@netlify/runtime-utils': 2.2.0 + '@netlify/blobs@10.4.1': + dependencies: + '@netlify/dev-utils': 4.3.2 + '@netlify/otel': 5.0.0 + '@netlify/runtime-utils': 2.2.1 + transitivePeerDependencies: + - supports-color + '@netlify/blobs@10.4.1(supports-color@10.2.2)': dependencies: '@netlify/dev-utils': 4.3.2 @@ -16841,7 +16869,7 @@ snapshots: '@netlify/dev@4.8.2(@netlify/api@14.0.10)(aws4fetch@1.0.20)(rollup@4.53.3)': dependencies: '@netlify/ai': 0.3.3(@netlify/api@14.0.10) - '@netlify/blobs': 10.4.1(supports-color@10.2.2) + '@netlify/blobs': 10.4.1 '@netlify/config': 23.2.0 '@netlify/dev-utils': 4.3.2 '@netlify/edge-functions-dev': 1.0.5 @@ -16947,10 +16975,10 @@ snapshots: '@netlify/functions-dev@1.1.2(rollup@4.53.3)': dependencies: - '@netlify/blobs': 10.4.1(supports-color@10.2.2) + '@netlify/blobs': 10.4.1 '@netlify/dev-utils': 4.3.2 '@netlify/functions': 5.1.0 - '@netlify/zip-it-and-ship-it': 14.1.14(rollup@4.53.3)(supports-color@10.2.2) + '@netlify/zip-it-and-ship-it': 14.1.14(rollup@4.53.3) cron-parser: 4.9.0 decache: 4.6.2 extract-zip: 2.0.1 @@ -17085,6 +17113,16 @@ snapshots: dependencies: '@opentelemetry/api': 1.8.0 + '@netlify/otel@5.0.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + '@netlify/otel@5.0.0(supports-color@10.2.2)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17122,7 +17160,7 @@ snapshots: '@netlify/runtime@4.1.9': dependencies: - '@netlify/blobs': 10.4.1(supports-color@10.2.2) + '@netlify/blobs': 10.4.1 '@netlify/cache': 3.3.3 '@netlify/runtime-utils': 2.2.1 '@netlify/types': 2.2.0 @@ -17205,6 +17243,47 @@ snapshots: - supports-color - uploadthing + '@netlify/zip-it-and-ship-it@14.1.13(rollup@4.53.3)': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@netlify/binary-info': 1.0.0 + '@netlify/serverless-functions-api': 2.7.2 + '@vercel/nft': 0.29.4(rollup@4.53.3) + archiver: 7.0.1 + common-path-prefix: 3.0.0 + copy-file: 11.1.0 + es-module-lexer: 1.7.0 + esbuild: 0.25.11 + execa: 8.0.1 + fast-glob: 3.3.3 + filter-obj: 6.1.0 + find-up: 7.0.0 + is-path-inside: 4.0.0 + junk: 4.0.1 + locate-path: 7.2.0 + merge-options: 3.0.4 + minimatch: 9.0.5 + normalize-path: 3.0.0 + p-map: 7.0.3 + path-exists: 5.0.0 + precinct: 12.2.0 + require-package-name: 2.0.1 + resolve: 2.0.0-next.5 + semver: 7.7.3 + tmp-promise: 3.0.3 + toml: 3.0.0 + unixify: 1.0.0 + urlpattern-polyfill: 8.0.2 + yargs: 17.7.2 + zod: 3.25.76 + transitivePeerDependencies: + - bare-abort-controller + - encoding + - react-native-b4a + - rollup + - supports-color + '@netlify/zip-it-and-ship-it@14.1.13(rollup@4.53.3)(supports-color@10.2.2)': dependencies: '@babel/parser': 7.28.5 @@ -17246,6 +17325,47 @@ snapshots: - rollup - supports-color + '@netlify/zip-it-and-ship-it@14.1.14(rollup@4.53.3)': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@netlify/binary-info': 1.0.0 + '@netlify/serverless-functions-api': 2.7.2 + '@vercel/nft': 0.29.4(rollup@4.53.3) + archiver: 7.0.1 + common-path-prefix: 3.0.0 + copy-file: 11.1.0 + es-module-lexer: 1.7.0 + esbuild: 0.25.11 + execa: 8.0.1 + fast-glob: 3.3.3 + filter-obj: 6.1.0 + find-up: 7.0.0 + is-path-inside: 4.0.0 + junk: 4.0.1 + locate-path: 7.2.0 + merge-options: 3.0.4 + minimatch: 9.0.5 + normalize-path: 3.0.0 + p-map: 7.0.3 + path-exists: 5.0.0 + precinct: 12.2.0 + require-package-name: 2.0.1 + resolve: 2.0.0-next.5 + semver: 7.7.3 + tmp-promise: 3.0.3 + toml: 3.0.0 + unixify: 1.0.0 + urlpattern-polyfill: 8.0.2 + yargs: 17.7.2 + zod: 3.25.76 + transitivePeerDependencies: + - bare-abort-controller + - encoding + - react-native-b4a + - rollup + - supports-color + '@netlify/zip-it-and-ship-it@14.1.14(rollup@4.53.3)(supports-color@10.2.2)': dependencies: '@babel/parser': 7.28.5 @@ -17812,6 +17932,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.203.0 + import-in-the-middle: 1.15.0 + require-in-the-middle: 7.5.2 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)(supports-color@10.2.2)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17826,7 +17955,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.204.0 import-in-the-middle: 1.15.0 - require-in-the-middle: 7.5.2(supports-color@10.2.2) + require-in-the-middle: 7.5.2 transitivePeerDependencies: - supports-color @@ -17845,7 +17974,7 @@ snapshots: '@opentelemetry/api-logs': 0.57.2 '@types/shimmer': 1.2.0 import-in-the-middle: 1.15.0 - require-in-the-middle: 7.5.2(supports-color@10.2.2) + require-in-the-middle: 7.5.2 semver: 7.7.3 shimmer: 1.2.1 transitivePeerDependencies: @@ -18058,7 +18187,7 @@ snapshots: '@pnpm/tabtab@0.5.4': dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) enquirer: 2.4.1 minimist: 1.2.8 untildify: 4.0.0 @@ -18123,7 +18252,7 @@ snapshots: '@puppeteer/browsers@2.10.13': dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 @@ -18138,7 +18267,7 @@ snapshots: '@puppeteer/browsers@2.3.0': dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 @@ -18835,6 +18964,10 @@ snapshots: '@restatedev/restate-linux-x64@1.5.5': optional: true + '@restatedev/restate-sdk-clients@1.9.1': + dependencies: + '@restatedev/restate-sdk-core': 1.9.1 + '@restatedev/restate-sdk-cloudflare-workers@1.9.1': dependencies: '@restatedev/restate-sdk-core': 1.9.1 @@ -19871,13 +20004,13 @@ snapshots: - tsx - yaml - '@tanstack/react-router-devtools@1.139.3(@tanstack/react-router@1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.139.3)(@types/node@24.10.1)(csstype@3.2.3)(jiti@1.21.7)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.10)(tsx@4.20.6)(yaml@2.8.1)': + '@tanstack/react-router-devtools@1.139.3(@tanstack/react-router@1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.139.3)(@types/node@24.10.1)(csstype@3.2.3)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(solid-js@1.9.10)(tsx@4.20.6)(yaml@2.8.1)': dependencies: '@tanstack/react-router': 1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@tanstack/router-devtools-core': 1.139.3(@tanstack/router-core@1.139.3)(@types/node@24.10.1)(csstype@3.2.3)(jiti@1.21.7)(lightningcss@1.30.2)(solid-js@1.9.10)(tsx@4.20.6)(yaml@2.8.1) + '@tanstack/router-devtools-core': 1.139.3(@tanstack/router-core@1.139.3)(@types/node@24.10.1)(csstype@3.2.3)(jiti@2.6.1)(lightningcss@1.30.2)(solid-js@1.9.10)(tsx@4.20.6)(yaml@2.8.1) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - vite: 7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: '@tanstack/router-core': 1.139.3 transitivePeerDependencies: @@ -20006,14 +20139,14 @@ snapshots: - tsx - yaml - '@tanstack/router-devtools-core@1.139.3(@tanstack/router-core@1.139.3)(@types/node@24.10.1)(csstype@3.2.3)(jiti@1.21.7)(lightningcss@1.30.2)(solid-js@1.9.10)(tsx@4.20.6)(yaml@2.8.1)': + '@tanstack/router-devtools-core@1.139.3(@tanstack/router-core@1.139.3)(@types/node@24.10.1)(csstype@3.2.3)(jiti@2.6.1)(lightningcss@1.30.2)(solid-js@1.9.10)(tsx@4.20.6)(yaml@2.8.1)': dependencies: '@tanstack/router-core': 1.139.3 clsx: 2.1.1 goober: 2.1.18(csstype@3.2.3) solid-js: 1.9.10 tiny-invariant: 1.3.3 - vite: 7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) optionalDependencies: csstype: 3.2.3 transitivePeerDependencies: @@ -20064,7 +20197,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.139.3(@tanstack/react-router@1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': + '@tanstack/router-plugin@1.139.3(@tanstack/react-router@1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) @@ -20082,7 +20215,7 @@ snapshots: zod: 3.25.76 optionalDependencies: '@tanstack/react-router': 1.139.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - vite: 7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -20926,6 +21059,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.47.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.47.0(typescript@5.9.3) + '@typescript-eslint/types': 8.47.0 + debug: 4.4.3(supports-color@8.1.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/tsconfig-utils@8.47.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 @@ -20948,6 +21090,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.47.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.47.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.47.0(typescript@5.9.3) + '@typescript-eslint/types': 8.47.0 + '@typescript-eslint/visitor-keys': 8.47.0 + debug: 4.4.3(supports-color@8.1.1) + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.47.0': dependencies: '@typescript-eslint/types': 8.47.0 @@ -21009,6 +21167,25 @@ snapshots: '@use-gesture/core': 10.3.1 react: 19.2.0 + '@vercel/nft@0.29.4(rollup@4.53.3)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.0 + '@rollup/pluginutils': 5.3.0(rollup@4.53.3) + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 10.5.0 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.3 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + '@vercel/nft@0.29.4(rollup@4.53.3)(supports-color@10.2.2)': dependencies: '@mapbox/node-pre-gyp': 2.0.0(supports-color@10.2.2) @@ -21030,7 +21207,7 @@ snapshots: '@vercel/oidc@3.0.5': {} - '@vitejs/plugin-react@4.7.0(vite@7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-react@4.7.0(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -21038,7 +21215,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -21070,14 +21247,6 @@ snapshots: optionalDependencies: vite: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - '@vitest/mocker@3.2.4(vite@7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - '@vitest/mocker@3.2.4(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 @@ -21922,7 +22091,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -22949,6 +23118,15 @@ snapshots: transitivePeerDependencies: - supports-color + detective-typescript@14.0.0(typescript@5.9.3): + dependencies: + '@typescript-eslint/typescript-estree': 8.47.0(typescript@5.9.3) + ast-module-types: 6.0.1 + node-source-walk: 7.0.1 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + detective-vue2@2.2.0(supports-color@10.2.2)(typescript@5.9.3): dependencies: '@dependents/detective-less': 5.0.1 @@ -22962,6 +23140,19 @@ snapshots: transitivePeerDependencies: - supports-color + detective-vue2@2.2.0(typescript@5.9.3): + dependencies: + '@dependents/detective-less': 5.0.1 + '@vue/compiler-sfc': 3.5.25 + detective-es6: 5.0.1 + detective-sass: 6.0.1 + detective-scss: 5.0.1 + detective-stylus: 5.0.1 + detective-typescript: 14.0.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + dettle@1.0.5: {} devlop@1.1.0: @@ -23083,7 +23274,7 @@ snapshots: edge-paths: 3.0.5 fast-xml-parser: 5.3.2 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 which: 6.0.0 transitivePeerDependencies: - supports-color @@ -23212,7 +23403,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.25.11): dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.25.11 transitivePeerDependencies: - supports-color @@ -23483,7 +23674,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -23531,7 +23722,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -23695,7 +23886,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -23758,7 +23949,7 @@ snapshots: follow-redirects@1.15.11(debug@4.4.3): optionalDependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) for-each@0.3.5: dependencies: @@ -23836,7 +24027,7 @@ snapshots: gaxios@6.7.1: dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 is-stream: 2.0.1 node-fetch: 2.7.0 uuid: 9.0.1 @@ -23859,7 +24050,7 @@ snapshots: '@zip.js/zip.js': 2.8.11 decamelize: 6.0.1 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 node-fetch: 3.3.2 tar-fs: 3.1.1 which: 5.0.0 @@ -23929,7 +24120,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -24448,7 +24639,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -24477,6 +24668,13 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.6(supports-color@10.2.2): dependencies: agent-base: 7.1.4 @@ -24989,7 +25187,7 @@ snapshots: decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 parse5: 8.0.0 saxes: 6.0.0 @@ -26383,7 +26581,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.2.0 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -26406,7 +26604,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -26695,7 +26893,7 @@ snapshots: '@netlify/headers-parser': 9.0.2 '@netlify/local-functions-proxy': 2.0.3 '@netlify/redirect-parser': 15.0.3 - '@netlify/zip-it-and-ship-it': 14.1.13(rollup@4.53.3)(supports-color@10.2.2) + '@netlify/zip-it-and-ship-it': 14.1.13(rollup@4.53.3) '@octokit/rest': 22.0.0 '@opentelemetry/api': 1.8.0 '@pnpm/tabtab': 0.5.4 @@ -26713,7 +26911,7 @@ snapshots: content-type: 1.0.5 cookie: 1.0.2 cron-parser: 4.9.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) decache: 4.6.2 dot-prop: 9.0.0 dotenv: 17.2.3 @@ -26735,7 +26933,7 @@ snapshots: gitconfiglocal: 2.1.0 http-proxy: 1.18.1(debug@4.4.3) http-proxy-middleware: 2.0.9(debug@4.4.3) - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 inquirer: 8.2.7(@types/node@22.19.1) inquirer-autocomplete-prompt: 1.4.0(inquirer@8.2.7(@types/node@22.19.1)) ipx: 3.1.1(@netlify/blobs@10.1.0)(aws4fetch@1.0.20) @@ -27133,10 +27331,10 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) get-uri: 6.0.5 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -27510,6 +27708,26 @@ snapshots: preact@10.27.2: {} + precinct@12.2.0: + dependencies: + '@dependents/detective-less': 5.0.1 + commander: 12.1.0 + detective-amd: 6.0.1 + detective-cjs: 6.0.1 + detective-es6: 5.0.1 + detective-postcss: 7.0.1(postcss@8.5.6) + detective-sass: 6.0.1 + detective-scss: 5.0.1 + detective-stylus: 5.0.1 + detective-typescript: 14.0.0(typescript@5.9.3) + detective-vue2: 2.2.0(typescript@5.9.3) + module-definition: 6.0.1 + node-source-walk: 7.0.1 + postcss: 8.5.6 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + precinct@12.2.0(supports-color@10.2.2): dependencies: '@dependents/detective-less': 5.0.1 @@ -27694,9 +27912,9 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 lru-cache: 7.18.3 pac-proxy-agent: 7.2.0 proxy-from-env: 1.1.0 @@ -27730,7 +27948,7 @@ snapshots: dependencies: '@puppeteer/browsers': 2.3.0 chromium-bidi: 0.6.3(devtools-protocol@0.0.1312386) - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) devtools-protocol: 0.0.1312386 ws: 8.18.3 transitivePeerDependencies: @@ -28682,6 +28900,14 @@ snapshots: require-from-string@2.0.2: {} + require-in-the-middle@7.5.2: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + module-details-from-path: 1.0.4 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + require-in-the-middle@7.5.2(supports-color@10.2.2): dependencies: debug: 4.4.3(supports-color@10.2.2) @@ -28692,7 +28918,7 @@ snapshots: require-in-the-middle@8.0.1: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) module-details-from-path: 1.0.4 transitivePeerDependencies: - supports-color @@ -28836,7 +29062,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -28954,7 +29180,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -29185,7 +29411,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -29815,7 +30041,7 @@ snapshots: cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.25.11 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 @@ -30101,7 +30327,7 @@ snapshots: ofetch: 1.5.1 ufo: 1.6.1 optionalDependencies: - '@netlify/blobs': 10.4.1(supports-color@10.2.2) + '@netlify/blobs': 10.4.1 aws4fetch: 1.0.20 untildify@4.0.0: {} @@ -30263,7 +30489,7 @@ snapshots: vite-node@3.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 2.0.3 vite: 7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) @@ -30281,31 +30507,10 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): - dependencies: - cac: 6.7.14 - debug: 4.4.3(supports-color@10.2.2) - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vite-node@3.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 2.0.3 vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) @@ -30325,7 +30530,7 @@ snapshots: vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.4(@types/node@22.19.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)): dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: @@ -30366,22 +30571,6 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vite@7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): - dependencies: - esbuild: 0.25.11 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.53.3 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 24.10.1 - fsevents: 2.3.3 - jiti: 1.21.7 - lightningcss: 1.30.2 - tsx: 4.20.6 - yaml: 2.8.1 - vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.11 @@ -30413,7 +30602,7 @@ snapshots: '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) expect-type: 1.2.2 magic-string: 0.30.21 pathe: 2.0.3 @@ -30445,49 +30634,6 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.10.1)(jiti@1.21.7)(jsdom@27.2.0)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): - dependencies: - '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - debug: 4.4.3(supports-color@10.2.2) - expect-type: 1.2.2 - magic-string: 0.30.21 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 7.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.10.1)(jiti@1.21.7)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 24.10.1 - jsdom: 27.2.0 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.10.1)(jiti@2.6.1)(jsdom@27.2.0)(lightningcss@1.30.2)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.3 @@ -30499,7 +30645,7 @@ snapshots: '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) expect-type: 1.2.2 magic-string: 0.30.21 pathe: 2.0.3 @@ -30558,7 +30704,7 @@ snapshots: dependencies: chalk: 4.1.2 commander: 9.5.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -30586,7 +30732,7 @@ snapshots: '@wdio/types': 9.20.0 '@wdio/utils': 9.20.1 deepmerge-ts: 7.1.5 - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 undici: 6.22.0 ws: 8.18.3 transitivePeerDependencies: