diff --git a/.github/workflows/release-shared.yml b/.github/workflows/release-shared.yml index b9b41b6f5..948c09eba 100644 --- a/.github/workflows/release-shared.yml +++ b/.github/workflows/release-shared.yml @@ -203,6 +203,17 @@ jobs: git push origin "${note_ref}" fi + # goreleaser used to publish both supabase___.tar.gz and + # supabase__.tar.gz; setup-cli, install scripts, docs and various + # third-party tools point at releases/latest/download/.tar.gz. + # Re-publish the alias so those callers keep working. See supabase/cli#5257. + - name: Create unversioned tarball aliases + run: | + set -euo pipefail + for triple in darwin_arm64 darwin_amd64 linux_arm64 linux_amd64 windows_arm64 windows_amd64; do + cp "dist/supabase_${{ inputs.version }}_${triple}.tar.gz" "dist/supabase_${triple}.tar.gz" + done + - name: Create draft GitHub Release uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2 with: @@ -223,7 +234,15 @@ jobs: dist/supabase_${{ inputs.version }}_linux_amd64.apk dist/supabase_${{ inputs.version }}_windows_amd64.zip dist/supabase_${{ inputs.version }}_windows_arm64.zip + dist/supabase_${{ inputs.version }}_windows_amd64.tar.gz + dist/supabase_${{ inputs.version }}_windows_arm64.tar.gz dist/checksums.txt + dist/supabase_darwin_arm64.tar.gz + dist/supabase_darwin_amd64.tar.gz + dist/supabase_linux_arm64.tar.gz + dist/supabase_linux_amd64.tar.gz + dist/supabase_windows_arm64.tar.gz + dist/supabase_windows_amd64.tar.gz - name: Publish GitHub Release (immutable) env: diff --git a/.repos/effect b/.repos/effect index aae8797b9..49b5a569e 160000 --- a/.repos/effect +++ b/.repos/effect @@ -1 +1 @@ -Subproject commit aae8797b9cb383be0c182dd58d03d787c354238b +Subproject commit 49b5a569ea6c9d459f3db9cb2f150ca9d04b3cd0 diff --git a/.repos/effect-v3 b/.repos/effect-v3 index 70ce155cd..e71ba6827 160000 --- a/.repos/effect-v3 +++ b/.repos/effect-v3 @@ -1 +1 @@ -Subproject commit 70ce155cd73a3b4cd723fe955454b5837b428f76 +Subproject commit e71ba68273026a1a2c1ace7218bdb206b0d3386d diff --git a/.repos/lalph b/.repos/lalph index 203f1ec28..0fddf20a7 160000 --- a/.repos/lalph +++ b/.repos/lalph @@ -1 +1 @@ -Subproject commit 203f1ec28f26d3a4f18c0f3e092eae3695de1842 +Subproject commit 0fddf20a7d70391bb583fb0abadc4223b618ec4d diff --git a/.repos/opencode b/.repos/opencode index 907281a80..6e4db5666 160000 --- a/.repos/opencode +++ b/.repos/opencode @@ -1 +1 @@ -Subproject commit 907281a80a61d57f06354a74ff1c8195e0778c76 +Subproject commit 6e4db5666ae33ebadf3b8ca077d6b1b149d0b0c3 diff --git a/.repos/process-compose b/.repos/process-compose index cd7f6af23..a4038d669 160000 --- a/.repos/process-compose +++ b/.repos/process-compose @@ -1 +1 @@ -Subproject commit cd7f6af235149a075385f3b8b54d635e83dc0f52 +Subproject commit a4038d669818c35fc68fc7fc240b39e371ce0e7a diff --git a/.repos/t3code b/.repos/t3code index 91a03e074..d1e85c4e8 160000 --- a/.repos/t3code +++ b/.repos/t3code @@ -1 +1 @@ -Subproject commit 91a03e074751e9dc732d0dddcd7b3a291caba34f +Subproject commit d1e85c4e8fdef82fbaded9539532b754080419e0 diff --git a/apps/cli-e2e/src/server/pg-mock.ts b/apps/cli-e2e/src/server/pg-mock.ts index a84351666..90a4c76af 100644 --- a/apps/cli-e2e/src/server/pg-mock.ts +++ b/apps/cli-e2e/src/server/pg-mock.ts @@ -37,7 +37,7 @@ export interface PgFixture { rows: (string | null)[][]; } -export interface PgError { +interface PgError { /** 5-char SQLSTATE code, e.g. "42501" (insufficient_privilege). */ code: string; /** Human-readable error message. */ @@ -46,7 +46,7 @@ export interface PgError { severity?: string; } -export type PgMockState = +type PgMockState = | { type: "empty" } | { type: "fixture"; fixture: PgFixture } | { type: "error"; error: PgError }; diff --git a/apps/cli/package.json b/apps/cli/package.json index adaf2184a..0f5041fb3 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -36,21 +36,13 @@ "check:all": "nx run-many -t types:check lint:check fmt:check knip:check --projects=$npm_package_name", "fix:all": "nx run-many -t lint:fix fmt:fix knip:fix --projects=$npm_package_name" }, - "dependencies": { - "@clack/prompts": "^1.2.0", + "devDependencies": { + "@clack/prompts": "^1.4.0", "@effect/atom-react": "catalog:", "@effect/platform-bun": "catalog:", - "@napi-rs/keyring": "^1.1.2", - "@parcel/watcher": "^2.5.6", - "@vercel/detect-agent": "^1.2.3", - "effect": "catalog:", - "ink": "^7.0.1", - "ink-spinner": "^5.0.0", - "posthog-node": "^5.29.4", - "react": "^19.2.5" - }, - "devDependencies": { "@effect/vitest": "catalog:", + "@napi-rs/keyring": "^1.3.0", + "@parcel/watcher": "^2.5.6", "@supabase/api": "workspace:*", "@supabase/config": "workspace:*", "@supabase/process-compose": "workspace:*", @@ -59,23 +51,21 @@ "@types/bun": "catalog:", "@types/react": "^19.2.14", "@typescript/native-preview": "catalog:", + "@vercel/detect-agent": "^1.2.3", "@vitest/coverage-istanbul": "catalog:", + "effect": "catalog:", + "ink": "^7.0.3", + "ink-spinner": "^5.0.0", "knip": "catalog:", "oxfmt": "catalog:", "oxlint": "catalog:", "oxlint-tsgolint": "catalog:", + "posthog-node": "^5.34.3", + "react": "^19.2.6", "react-devtools-core": "^7.0.1", "vitest": "catalog:" }, "optionalDependencies": { - "@parcel/watcher-darwin-arm64": "2.5.6", - "@parcel/watcher-darwin-x64": "2.5.6", - "@parcel/watcher-linux-arm64-glibc": "2.5.6", - "@parcel/watcher-linux-arm64-musl": "2.5.6", - "@parcel/watcher-linux-x64-glibc": "2.5.6", - "@parcel/watcher-linux-x64-musl": "2.5.6", - "@parcel/watcher-win32-arm64": "2.5.6", - "@parcel/watcher-win32-x64": "2.5.6", "@supabase/cli-darwin-arm64": "workspace:*", "@supabase/cli-darwin-x64": "workspace:*", "@supabase/cli-linux-arm64": "workspace:*", @@ -112,6 +102,14 @@ "nx" ], "ignoreDependencies": [ + "@parcel/watcher-darwin-arm64", + "@parcel/watcher-darwin-x64", + "@parcel/watcher-linux-arm64-glibc", + "@parcel/watcher-linux-arm64-musl", + "@parcel/watcher-linux-x64-glibc", + "@parcel/watcher-linux-x64-musl", + "@parcel/watcher-win32-arm64", + "@parcel/watcher-win32-x64", "@typescript/native-preview", "oxfmt", "oxlint", diff --git a/apps/cli/scripts/build.ts b/apps/cli/scripts/build.ts index 3452d9a60..3bf46f4a3 100644 --- a/apps/cli/scripts/build.ts +++ b/apps/cli/scripts/build.ts @@ -144,6 +144,16 @@ async function archiveTarget(target: (typeof TARGETS)[number]) { const files = [path.join(binDir, `supabase${target.ext}`)]; if (shell === "legacy") files.push(path.join(binDir, `supabase-go${target.ext}`)); await $`zip -j ${archivePath} ${files}`; + + // setup-cli and other download clients always fetch a .tar.gz, including on + // Windows where tc.extractTar handles the archive. Publish a matching + // tar.gz alongside the .zip so those clients keep working. See #5257. + const tarArchive = target.archive.replace(/\.zip$/, ".tar.gz"); + const tarArchivePath = path.join(distDir, tarArchive); + const tarFiles = [`supabase${target.ext}`]; + if (shell === "legacy") tarFiles.push(`supabase-go${target.ext}`); + console.log(`[${target.pkg}] Creating archive ${tarArchive}...`); + await $`tar -czf ${tarArchivePath} -C ${binDir} ${tarFiles}`; } else { const files = [`supabase${target.ext}`]; if (shell === "legacy") files.push(`supabase-go${target.ext}`); @@ -250,6 +260,13 @@ async function generateChecksums() { const data = await readFile(archivePath); const hash = createHash("sha256").update(data).digest("hex"); lines.push(`${hash} ${target.archive}`); + + if (target.archive.endsWith(".zip")) { + const tarArchive = target.archive.replace(/\.zip$/, ".tar.gz"); + const tarData = await readFile(path.join(distDir, tarArchive)); + const tarHash = createHash("sha256").update(tarData).digest("hex"); + lines.push(`${tarHash} ${tarArchive}`); + } } const linuxTargets = TARGETS.filter((target) => "nfpmArch" in target); diff --git a/apps/cli/scripts/publish.ts b/apps/cli/scripts/publish.ts index bf4e57864..c86c11139 100644 --- a/apps/cli/scripts/publish.ts +++ b/apps/cli/scripts/publish.ts @@ -1,4 +1,5 @@ import { $ } from "bun"; +import { copyFile } from "node:fs/promises"; import path from "node:path"; import process from "node:process"; import { parseArgs } from "node:util"; @@ -136,6 +137,13 @@ const platformResults = await Promise.all( console.log("\nBuilding umbrella package shim..."); await $`pnpm build:shim`.cwd(cliDir); +// npm renders the README from the package directory on the package page. +// The workspace-internal apps/cli/README.md documents the source layout for +// contributors, which is not what we want users to see on npmjs.com. Copy +// the repo root README — the user-facing one — over it just before publish. +console.log("\nStaging root README for umbrella package..."); +await copyFile(path.join(root, "README.md"), path.join(cliDir, "README.md")); + console.log(`Publishing umbrella package ${umbrellaName}...`); const umbrellaResult = await publishPackage({ name: umbrellaName, diff --git a/apps/cli/src/legacy/commands/functions/deploy/SIDE_EFFECTS.md b/apps/cli/src/legacy/commands/functions/deploy/SIDE_EFFECTS.md index 3a09b8602..5e365210f 100644 --- a/apps/cli/src/legacy/commands/functions/deploy/SIDE_EFFECTS.md +++ b/apps/cli/src/legacy/commands/functions/deploy/SIDE_EFFECTS.md @@ -58,4 +58,6 @@ Not applicable (proxied to Go binary). - Requires a linked project (`--project-ref` or linked project config). - Uses Docker by default to bundle functions; `--use-api` switches to server-side bundling. - `--prune` deletes functions that exist in the Supabase project but not locally. +- `--jobs` (`-j`) sets the maximum number of parallel deploys; must be combined with `--use-api`. +- `--use-docker` and `--legacy-bundle` are hidden flags forwarded to the Go binary for backward compatibility; they are mutually exclusive with `--use-api`. - Phase 0 proxy: all invocations are forwarded to the bundled Go binary. diff --git a/apps/cli/src/legacy/commands/functions/deploy/deploy.command.ts b/apps/cli/src/legacy/commands/functions/deploy/deploy.command.ts index 3356c51b3..502a45ab1 100644 --- a/apps/cli/src/legacy/commands/functions/deploy/deploy.command.ts +++ b/apps/cli/src/legacy/commands/functions/deploy/deploy.command.ts @@ -1,4 +1,5 @@ import { Argument, Command, Flag } from "effect/unstable/cli"; +import { withHidden } from "../../../../shared/cli/hidden-flag.ts"; import { legacyFunctionsDeploy } from "./deploy.handler.ts"; const config = { @@ -23,6 +24,19 @@ const config = { prune: Flag.boolean("prune").pipe( Flag.withDescription("Delete Functions that exist in Supabase project but not locally."), ), + jobs: Flag.integer("jobs").pipe( + Flag.withAlias("j"), + Flag.withDescription("Maximum number of parallel jobs."), + Flag.optional, + ), + useDocker: withHidden( + Flag.boolean("use-docker").pipe( + Flag.withDescription("Use Docker to bundle functions locally."), + ), + ), + legacyBundle: withHidden( + Flag.boolean("legacy-bundle").pipe(Flag.withDescription("Use legacy bundling.")), + ), } as const; export const legacyFunctionsDeployCommand = Command.make("deploy", config).pipe( @@ -36,6 +50,9 @@ export const legacyFunctionsDeployCommand = Command.make("deploy", config).pipe( useApi: flags.useApi, importMap: flags.importMap, prune: flags.prune, + jobs: flags.jobs, + useDocker: flags.useDocker, + legacyBundle: flags.legacyBundle, }), ), ); diff --git a/apps/cli/src/legacy/commands/functions/deploy/deploy.handler.ts b/apps/cli/src/legacy/commands/functions/deploy/deploy.handler.ts index dfb48cf6c..d84490cf5 100644 --- a/apps/cli/src/legacy/commands/functions/deploy/deploy.handler.ts +++ b/apps/cli/src/legacy/commands/functions/deploy/deploy.handler.ts @@ -8,6 +8,9 @@ interface LegacyFunctionsDeployFlags { readonly useApi: boolean; readonly importMap: Option.Option; readonly prune: boolean; + readonly jobs: Option.Option; + readonly useDocker: boolean; + readonly legacyBundle: boolean; } export const legacyFunctionsDeploy = Effect.fn("legacy.functions.deploy")(function* ( @@ -21,5 +24,8 @@ export const legacyFunctionsDeploy = Effect.fn("legacy.functions.deploy")(functi if (flags.useApi) args.push("--use-api"); if (Option.isSome(flags.importMap)) args.push("--import-map", flags.importMap.value); if (flags.prune) args.push("--prune"); + if (Option.isSome(flags.jobs)) args.push("--jobs", String(flags.jobs.value)); + if (flags.useDocker) args.push("--use-docker"); + if (flags.legacyBundle) args.push("--legacy-bundle"); yield* proxy.exec(args); }); diff --git a/apps/cli/src/legacy/commands/functions/download/SIDE_EFFECTS.md b/apps/cli/src/legacy/commands/functions/download/SIDE_EFFECTS.md index 8b9edea76..bcdc67265 100644 --- a/apps/cli/src/legacy/commands/functions/download/SIDE_EFFECTS.md +++ b/apps/cli/src/legacy/commands/functions/download/SIDE_EFFECTS.md @@ -52,4 +52,5 @@ Not applicable (proxied to Go binary). - If no function name is provided, downloads all functions. - Requires a linked project (`--project-ref` or linked project config). +- `--use-docker` and `--legacy-bundle` are hidden flags forwarded to the Go binary for backward compatibility; they are mutually exclusive with `--use-api`. - Phase 0 proxy: all invocations are forwarded to the bundled Go binary. diff --git a/apps/cli/src/legacy/commands/functions/download/download.command.ts b/apps/cli/src/legacy/commands/functions/download/download.command.ts index ca6064cd7..c58288647 100644 --- a/apps/cli/src/legacy/commands/functions/download/download.command.ts +++ b/apps/cli/src/legacy/commands/functions/download/download.command.ts @@ -1,5 +1,6 @@ import { Argument, Command, Flag } from "effect/unstable/cli"; import type * as CliCommand from "effect/unstable/cli/Command"; +import { withHidden } from "../../../../shared/cli/hidden-flag.ts"; import { legacyFunctionsDownload } from "./download.handler.ts"; const config = { @@ -14,6 +15,14 @@ const config = { useApi: Flag.boolean("use-api").pipe( Flag.withDescription("Unbundle functions server-side without using Docker."), ), + useDocker: withHidden( + Flag.boolean("use-docker").pipe( + Flag.withDescription("Use Docker to unbundle functions locally."), + ), + ), + legacyBundle: withHidden( + Flag.boolean("legacy-bundle").pipe(Flag.withDescription("Use legacy bundling.")), + ), } as const; export type LegacyFunctionsDownloadFlags = CliCommand.Command.Config.Infer; diff --git a/apps/cli/src/legacy/commands/functions/download/download.handler.ts b/apps/cli/src/legacy/commands/functions/download/download.handler.ts index ca066b100..61bd8b4d4 100644 --- a/apps/cli/src/legacy/commands/functions/download/download.handler.ts +++ b/apps/cli/src/legacy/commands/functions/download/download.handler.ts @@ -10,5 +10,7 @@ export const legacyFunctionsDownload = Effect.fn("legacy.functions.download")(fu if (Option.isSome(flags.functionName)) args.push(flags.functionName.value); if (Option.isSome(flags.projectRef)) args.push("--project-ref", flags.projectRef.value); if (flags.useApi) args.push("--use-api"); + if (flags.useDocker) args.push("--use-docker"); + if (flags.legacyBundle) args.push("--legacy-bundle"); yield* proxy.exec(args); }); diff --git a/apps/cli/src/legacy/commands/functions/serve/SIDE_EFFECTS.md b/apps/cli/src/legacy/commands/functions/serve/SIDE_EFFECTS.md index dd3b88b9a..89d18e0ee 100644 --- a/apps/cli/src/legacy/commands/functions/serve/SIDE_EFFECTS.md +++ b/apps/cli/src/legacy/commands/functions/serve/SIDE_EFFECTS.md @@ -55,4 +55,5 @@ Not applicable (proxied to Go binary). - `--env-file` path to env file populated to Function environment. - `--import-map` path to custom import map. - `--inspect` / `--inspect-mode` activates Deno inspector for debugging. +- `--all` is a hidden flag (default true) retained for backward compatibility; it has no effect because the Go CLI always serves all functions. - Phase 0 proxy: all invocations are forwarded to the bundled Go binary. diff --git a/apps/cli/src/legacy/commands/functions/serve/serve.command.ts b/apps/cli/src/legacy/commands/functions/serve/serve.command.ts index 7021d8410..d19ed641d 100644 --- a/apps/cli/src/legacy/commands/functions/serve/serve.command.ts +++ b/apps/cli/src/legacy/commands/functions/serve/serve.command.ts @@ -1,5 +1,6 @@ import { Command, Flag } from "effect/unstable/cli"; import type * as CliCommand from "effect/unstable/cli/Command"; +import { withHidden } from "../../../../shared/cli/hidden-flag.ts"; import { legacyFunctionsServe } from "./serve.handler.ts"; const INSPECT_MODES = ["run", "brk", "wait"] as const; @@ -24,6 +25,9 @@ const config = { inspectMain: Flag.boolean("inspect-main").pipe( Flag.withDescription("Allow inspecting the main worker."), ), + all: withHidden( + Flag.boolean("all").pipe(Flag.withDescription("Serve all Functions."), Flag.optional), + ), } as const; export type LegacyFunctionsServeFlags = CliCommand.Command.Config.Infer; diff --git a/apps/cli/src/legacy/commands/functions/serve/serve.handler.ts b/apps/cli/src/legacy/commands/functions/serve/serve.handler.ts index 5eaeb6f17..724b49edb 100644 --- a/apps/cli/src/legacy/commands/functions/serve/serve.handler.ts +++ b/apps/cli/src/legacy/commands/functions/serve/serve.handler.ts @@ -13,5 +13,6 @@ export const legacyFunctionsServe = Effect.fn("legacy.functions.serve")(function if (flags.inspect) args.push("--inspect"); if (Option.isSome(flags.inspectMode)) args.push("--inspect-mode", flags.inspectMode.value); if (flags.inspectMain) args.push("--inspect-main"); + if (Option.isSome(flags.all)) args.push(`--all=${flags.all.value ? "true" : "false"}`); yield* proxy.exec(args); }); diff --git a/apps/cli/src/legacy/commands/gen/types/types.command.ts b/apps/cli/src/legacy/commands/gen/types/types.command.ts index 30a31e8c5..b7e0a94a2 100644 --- a/apps/cli/src/legacy/commands/gen/types/types.command.ts +++ b/apps/cli/src/legacy/commands/gen/types/types.command.ts @@ -36,6 +36,10 @@ const config = { postgrestV9Compat: Flag.boolean("postgrest-v9-compat").pipe( Flag.withDescription("Generate types compatible with PostgREST v9 and below."), ), + queryTimeout: Flag.string("query-timeout").pipe( + Flag.withDescription("Maximum timeout allowed for the database query."), + Flag.optional, + ), } as const; export type LegacyGenTypesFlags = CliCommand.Command.Config.Infer; diff --git a/apps/cli/src/legacy/commands/gen/types/types.handler.ts b/apps/cli/src/legacy/commands/gen/types/types.handler.ts index 820dc8885..0c5169760 100644 --- a/apps/cli/src/legacy/commands/gen/types/types.handler.ts +++ b/apps/cli/src/legacy/commands/gen/types/types.handler.ts @@ -16,5 +16,6 @@ export const legacyGenTypes = Effect.fn("legacy.gen.types")(function* (flags: Le if (Option.isSome(flags.swiftAccessControl)) args.push("--swift-access-control", flags.swiftAccessControl.value); if (flags.postgrestV9Compat) args.push("--postgrest-v9-compat"); + if (Option.isSome(flags.queryTimeout)) args.push("--query-timeout", flags.queryTimeout.value); yield* proxy.exec(args); }); diff --git a/apps/cli/src/legacy/commands/projects/create/create.command.ts b/apps/cli/src/legacy/commands/projects/create/create.command.ts index 942a3d305..b880639bb 100644 --- a/apps/cli/src/legacy/commands/projects/create/create.command.ts +++ b/apps/cli/src/legacy/commands/projects/create/create.command.ts @@ -1,5 +1,6 @@ import { Argument, Command, Flag } from "effect/unstable/cli"; import type * as CliCommand from "effect/unstable/cli/Command"; +import { withHidden } from "../../../../shared/cli/hidden-flag.ts"; import { legacyProjectsCreate } from "./create.handler.ts"; const AWS_REGIONS = [ @@ -66,6 +67,19 @@ const config = { Flag.withDescription("Select a desired instance size for your project."), Flag.optional, ), + interactive: withHidden( + Flag.boolean("interactive").pipe( + Flag.withDescription("Enables interactive mode."), + Flag.withAlias("i"), + Flag.optional, + ), + ), + plan: withHidden( + Flag.string("plan").pipe( + Flag.withDescription("Select a plan that suits your needs."), + Flag.optional, + ), + ), }; export type LegacyProjectsCreateFlags = CliCommand.Command.Config.Infer; diff --git a/apps/cli/src/legacy/commands/projects/create/create.handler.ts b/apps/cli/src/legacy/commands/projects/create/create.handler.ts index f9a8919c6..8c1f0060f 100644 --- a/apps/cli/src/legacy/commands/projects/create/create.handler.ts +++ b/apps/cli/src/legacy/commands/projects/create/create.handler.ts @@ -12,5 +12,8 @@ export const legacyProjectsCreate = Effect.fn("legacy.projects.create")(function if (Option.isSome(flags.dbPassword)) args.push("--db-password", flags.dbPassword.value); if (Option.isSome(flags.region)) args.push("--region", flags.region.value); if (Option.isSome(flags.size)) args.push("--size", flags.size.value); + if (Option.isSome(flags.interactive)) + args.push(`--interactive=${flags.interactive.value ? "true" : "false"}`); + if (Option.isSome(flags.plan)) args.push("--plan", flags.plan.value); yield* proxy.exec(args); }); diff --git a/apps/cli/src/legacy/commands/seed/buckets/buckets.command.ts b/apps/cli/src/legacy/commands/seed/buckets/buckets.command.ts index ba029162e..ee781406b 100644 --- a/apps/cli/src/legacy/commands/seed/buckets/buckets.command.ts +++ b/apps/cli/src/legacy/commands/seed/buckets/buckets.command.ts @@ -1,8 +1,11 @@ -import { Command } from "effect/unstable/cli"; +import { Command, Flag } from "effect/unstable/cli"; import type * as CliCommand from "effect/unstable/cli/Command"; import { legacyBuckets } from "./buckets.handler.ts"; -const config = {} as const; +const config = { + linked: Flag.boolean("linked").pipe(Flag.withDescription("Seeds the linked project.")), + local: Flag.boolean("local").pipe(Flag.withDescription("Seeds the local database.")), +} as const; export type LegacyBucketsFlags = CliCommand.Command.Config.Infer; diff --git a/apps/cli/src/legacy/commands/seed/buckets/buckets.handler.ts b/apps/cli/src/legacy/commands/seed/buckets/buckets.handler.ts index 67c824ef2..7af772419 100644 --- a/apps/cli/src/legacy/commands/seed/buckets/buckets.handler.ts +++ b/apps/cli/src/legacy/commands/seed/buckets/buckets.handler.ts @@ -3,8 +3,11 @@ import { LegacyGoProxy } from "../../../../shared/legacy/go-proxy.service.ts"; import type { LegacyBucketsFlags } from "./buckets.command.ts"; export const legacyBuckets = Effect.fn("legacy.seed.buckets")(function* ( - _flags: LegacyBucketsFlags, + flags: LegacyBucketsFlags, ) { const proxy = yield* LegacyGoProxy; - yield* proxy.exec(["seed", "buckets"]); + const args: string[] = ["seed", "buckets"]; + if (flags.linked) args.push("--linked"); + if (flags.local) args.push("--local"); + yield* proxy.exec(args); }); diff --git a/apps/cli/src/legacy/commands/start/start.command.ts b/apps/cli/src/legacy/commands/start/start.command.ts index aa911a26c..7de8cae1b 100644 --- a/apps/cli/src/legacy/commands/start/start.command.ts +++ b/apps/cli/src/legacy/commands/start/start.command.ts @@ -1,5 +1,6 @@ import { Command, Flag } from "effect/unstable/cli"; import type * as CliCommand from "effect/unstable/cli/Command"; +import { withHidden } from "../../../shared/cli/hidden-flag.ts"; import { legacyStart } from "./start.handler.ts"; const config = { @@ -14,6 +15,9 @@ const config = { ignoreHealthCheck: Flag.boolean("ignore-health-check").pipe( Flag.withDescription("Ignore unhealthy services and exit 0"), ), + preview: withHidden( + Flag.boolean("preview").pipe(Flag.withDescription("Connect to feature preview branch")), + ), } as const; export type LegacyStartFlags = CliCommand.Command.Config.Infer; diff --git a/apps/cli/src/legacy/commands/start/start.handler.ts b/apps/cli/src/legacy/commands/start/start.handler.ts index e7768a997..2a77ea34f 100644 --- a/apps/cli/src/legacy/commands/start/start.handler.ts +++ b/apps/cli/src/legacy/commands/start/start.handler.ts @@ -7,5 +7,6 @@ export const legacyStart = Effect.fn("legacy.start")(function* (flags: LegacySta const args: string[] = ["start"]; for (const name of flags.exclude) args.push("--exclude", name); if (flags.ignoreHealthCheck) args.push("--ignore-health-check"); + if (flags.preview) args.push("--preview"); yield* proxy.exec(args); }); diff --git a/apps/cli/src/legacy/commands/storage/cp/cp.command.ts b/apps/cli/src/legacy/commands/storage/cp/cp.command.ts index dc365e5ec..a25822e71 100644 --- a/apps/cli/src/legacy/commands/storage/cp/cp.command.ts +++ b/apps/cli/src/legacy/commands/storage/cp/cp.command.ts @@ -17,6 +17,11 @@ const config = { Flag.withDescription("Custom Content-Type header for HTTP upload."), Flag.optional, ), + jobs: Flag.integer("jobs").pipe( + Flag.withAlias("j"), + Flag.withDescription("Maximum number of parallel jobs."), + Flag.optional, + ), local: Flag.boolean("local").pipe( Flag.withDescription("Connects to Storage API of the local database."), ), diff --git a/apps/cli/src/legacy/commands/storage/cp/cp.handler.ts b/apps/cli/src/legacy/commands/storage/cp/cp.handler.ts index d1038e014..d7af5c5f2 100644 --- a/apps/cli/src/legacy/commands/storage/cp/cp.handler.ts +++ b/apps/cli/src/legacy/commands/storage/cp/cp.handler.ts @@ -12,6 +12,7 @@ export const legacyStorageCp = Effect.fn("legacy.storage.cp")(function* ( if (flags.linked) args.push("--linked"); if (Option.isSome(flags.cacheControl)) args.push("--cache-control", flags.cacheControl.value); if (Option.isSome(flags.contentType)) args.push("--content-type", flags.contentType.value); + if (Option.isSome(flags.jobs)) args.push("--jobs", String(flags.jobs.value)); args.push(flags.src, flags.dst); yield* proxy.exec(args); }); diff --git a/apps/cli/src/next/auth/api.service.ts b/apps/cli/src/next/auth/api.service.ts index d239de93c..5ecb0466f 100644 --- a/apps/cli/src/next/auth/api.service.ts +++ b/apps/cli/src/next/auth/api.service.ts @@ -1,5 +1,5 @@ import type { Effect, Redacted } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; import type { ApiError } from "./errors.ts"; @@ -27,4 +27,4 @@ interface ApiShape { ) => Effect.Effect; } -export class Api extends ServiceMap.Service()("supabase/auth/Api") {} +export class Api extends Context.Service()("supabase/auth/Api") {} diff --git a/apps/cli/src/next/auth/credentials.service.ts b/apps/cli/src/next/auth/credentials.service.ts index 27a61ffce..3abeb6bf8 100644 --- a/apps/cli/src/next/auth/credentials.service.ts +++ b/apps/cli/src/next/auth/credentials.service.ts @@ -1,5 +1,5 @@ import type { Effect, Option, Redacted } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; /** * Credentials - Boundary for loading and persisting the CLI access token. @@ -17,6 +17,6 @@ interface CredentialsShape { /** * Credentials - Service tag for access token persistence. */ -export class Credentials extends ServiceMap.Service()( +export class Credentials extends Context.Service()( "supabase/auth/Credentials", ) {} diff --git a/apps/cli/src/next/auth/crypto.service.ts b/apps/cli/src/next/auth/crypto.service.ts index 2a5c3c985..e519614b4 100644 --- a/apps/cli/src/next/auth/crypto.service.ts +++ b/apps/cli/src/next/auth/crypto.service.ts @@ -1,6 +1,6 @@ import type { ECDH } from "node:crypto"; import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; export type EncryptedPayload = { ciphertext: string; publicKey: string; nonce: string }; @@ -11,4 +11,4 @@ interface CryptoShape { readonly decryptToken: (ecdh: ECDH, payload: EncryptedPayload) => Effect.Effect; } -export class Crypto extends ServiceMap.Service()("supabase/auth/Crypto") {} +export class Crypto extends Context.Service()("supabase/auth/Crypto") {} diff --git a/apps/cli/src/next/auth/platform-api.service.ts b/apps/cli/src/next/auth/platform-api.service.ts index 6cbd2bb8b..68d7d72f8 100644 --- a/apps/cli/src/next/auth/platform-api.service.ts +++ b/apps/cli/src/next/auth/platform-api.service.ts @@ -1,6 +1,6 @@ import type { ApiClient } from "@supabase/api/effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; -export class PlatformApi extends ServiceMap.Service()( +export class PlatformApi extends Context.Service()( "supabase/auth/PlatformApi", ) {} diff --git a/apps/cli/src/next/commands/functions/dev/functions-dev-runtime.ts b/apps/cli/src/next/commands/functions/dev/functions-dev-runtime.ts index 9b51d8042..8ec019a55 100644 --- a/apps/cli/src/next/commands/functions/dev/functions-dev-runtime.ts +++ b/apps/cli/src/next/commands/functions/dev/functions-dev-runtime.ts @@ -8,7 +8,7 @@ import { StateManager, type EdgeRuntimeConfig, } from "@supabase/stack/effect"; -import { Duration, Effect, FileSystem, Layer, Option, ServiceMap, Stream } from "effect"; +import { Duration, Effect, FileSystem, Layer, Option, Stream } from "effect"; import { join } from "node:path"; import { CliConfig } from "../../../config/cli-config.service.ts"; import { ProjectHome } from "../../../config/project-home.service.ts"; @@ -52,7 +52,7 @@ interface FunctionsDevWatchChange { readonly touchesProjectConfig: boolean; } -type StackService = ServiceMap.Service.Shape; +type StackService = typeof Stack.Service; function versionsFromContext(context: ResolvedServiceVersionContext) { return withServiceVersions(toStartStackConfig([], "auto"), context.runtimeVersions); @@ -93,7 +93,7 @@ const startFullStack = Effect.fnUntraced(function* (opts: FunctionsDevStackOptio const stackLayer = yield* daemonLayer(config, daemonEntryPoint); yield* startStackWithProgress().pipe(Effect.provide(stackLayer)); - const stack = yield* Stack.asEffect().pipe(Effect.provide(stackLayer)); + const stack = yield* Stack.pipe(Effect.provide(stackLayer)); return { stack, startedByCommand: true }; }); @@ -117,7 +117,7 @@ export const connectOrStartFunctionsDevStack = Effect.fnUntraced(function* ( ); if (Option.isSome(existingLayer)) { - const stack = yield* Stack.asEffect().pipe(Effect.provide(existingLayer.value)); + const stack = yield* Stack.pipe(Effect.provide(existingLayer.value)); return { stack, startedByCommand: false }; } diff --git a/apps/cli/src/next/commands/link/link.handler.ts b/apps/cli/src/next/commands/link/link.handler.ts index 9d44857da..6b5420723 100644 --- a/apps/cli/src/next/commands/link/link.handler.ts +++ b/apps/cli/src/next/commands/link/link.handler.ts @@ -115,7 +115,7 @@ export const link = Effect.fnUntraced(function* (flags: LinkFlags) { const output = yield* Output; const analytics = yield* Analytics; const projectHome = yield* ProjectHome; - const stateManager = yield* StateManager.asEffect().pipe( + const stateManager = yield* StateManager.pipe( Effect.provide(StateManager.make(projectStateManagerPathsFromRoot(projectHome.projectHomeDir))), ); diff --git a/apps/cli/src/next/commands/logs/logs.handler.ts b/apps/cli/src/next/commands/logs/logs.handler.ts index ccb50f192..48816008b 100644 --- a/apps/cli/src/next/commands/logs/logs.handler.ts +++ b/apps/cli/src/next/commands/logs/logs.handler.ts @@ -71,7 +71,7 @@ export const logs = Effect.fnUntraced(function* (flags: LogsFlags) { projectStateRoot: projectHome.projectHomeDir, name: flags.stack, }); - const stack = yield* Effect.provide(Stack.asEffect(), layer); + const stack = yield* Effect.provide(Stack, layer); const services = flags.service.length === 0 ? undefined : flags.service; const history = flags.tail > 0 ? yield* stack.logHistoryAll(flags.tail, services) : []; const historyStream = Stream.fromIterable(history).pipe( diff --git a/apps/cli/src/next/commands/platform/platform-openapi.ts b/apps/cli/src/next/commands/platform/platform-openapi.ts index be6bfc6c5..af933930e 100644 --- a/apps/cli/src/next/commands/platform/platform-openapi.ts +++ b/apps/cli/src/next/commands/platform/platform-openapi.ts @@ -79,7 +79,7 @@ type ObjectShape = { export type PlatformOpenApiSchema = OpenApiSchema; export type PlatformOpenApiParameter = OpenApiParameter; -export type PlatformOpenApiRequestBody = OpenApiRequestBody; +type PlatformOpenApiRequestBody = OpenApiRequestBody; export type PlatformOpenApiResponse = OpenApiResponse; export type PlatformOpenApiOperationEntry = { diff --git a/apps/cli/src/next/commands/platform/platform-types.ts b/apps/cli/src/next/commands/platform/platform-types.ts index 3a5a33e3e..e531db1e4 100644 --- a/apps/cli/src/next/commands/platform/platform-types.ts +++ b/apps/cli/src/next/commands/platform/platform-types.ts @@ -4,13 +4,13 @@ import type { PlatformApi } from "../../auth/platform-api.service.ts"; export type PlatformHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD"; -export type PlatformFieldLocation = "path" | "query" | "header" | "body"; +type PlatformFieldLocation = "path" | "query" | "header" | "body"; -export type PlatformFieldKind = "string" | "boolean" | "enum" | "unknown" | "array" | "object"; +type PlatformFieldKind = "string" | "boolean" | "enum" | "unknown" | "array" | "object"; export type PlatformSchemaKind = PlatformFieldKind | "integer" | "number" | "union"; -export type PlatformBodyKind = "none" | "json" | "binary" | "multipart" | "urlencoded"; +type PlatformBodyKind = "none" | "json" | "binary" | "multipart" | "urlencoded"; export interface PlatformSchemaNode { readonly name?: string; @@ -89,7 +89,7 @@ export interface PlatformRouteDescriptor { }>; } -export type PlatformOperationError = PlatformInputError | SupabaseApiError; +type PlatformOperationError = PlatformInputError | SupabaseApiError; interface PlatformInputError { readonly _tag: "PlatformInputError"; diff --git a/apps/cli/src/next/commands/start/start.command.ts b/apps/cli/src/next/commands/start/start.command.ts index 6d1a90fd2..82bd6fd2d 100644 --- a/apps/cli/src/next/commands/start/start.command.ts +++ b/apps/cli/src/next/commands/start/start.command.ts @@ -1,4 +1,4 @@ -import { Effect, Layer, Option, ServiceMap } from "effect"; +import { Effect, Layer, Option, Context } from "effect"; import { DEFAULT_MANAGED_STACK_NAME, StateManager, @@ -65,10 +65,9 @@ interface StartVersionStateShape { readonly serviceVersionContext: ResolvedServiceVersionContext; } -export class StartVersionState extends ServiceMap.Service< - StartVersionState, - StartVersionStateShape ->()("supabase/commands/start/StartVersionState") {} +export class StartVersionState extends Context.Service()( + "supabase/commands/start/StartVersionState", +) {} const flags = { stack: Flag.string("stack").pipe( diff --git a/apps/cli/src/next/commands/start/ui/dashboard-state.ts b/apps/cli/src/next/commands/start/ui/dashboard-state.ts index 0dd5b4c89..4dae0e45b 100644 --- a/apps/cli/src/next/commands/start/ui/dashboard-state.ts +++ b/apps/cli/src/next/commands/start/ui/dashboard-state.ts @@ -1,4 +1,4 @@ -import { Effect, Layer, ServiceMap, Stream, SubscriptionRef } from "effect"; +import { Effect, Layer, Context, Stream, SubscriptionRef } from "effect"; import type { StackServiceState, StackInfo } from "@supabase/stack/effect"; import { Stack } from "@supabase/stack/effect"; @@ -13,7 +13,7 @@ function updateServiceStates( : [...current, state]; } -export class StartDashboardState extends ServiceMap.Service< +export class StartDashboardState extends Context.Service< StartDashboardState, { readonly stackInfoRef: SubscriptionRef.SubscriptionRef; diff --git a/apps/cli/src/next/commands/status/status.handler.ts b/apps/cli/src/next/commands/status/status.handler.ts index 2e83d7531..3ba977dec 100644 --- a/apps/cli/src/next/commands/status/status.handler.ts +++ b/apps/cli/src/next/commands/status/status.handler.ts @@ -135,7 +135,7 @@ export const status = Effect.fnUntraced(function* (_flags: StatusFlags) { name: _flags.stack, }); - const stack = yield* Effect.provide(Stack.asEffect(), layer.value); + const stack = yield* Effect.provide(Stack, layer.value); const [info, services] = yield* Effect.all([stack.getInfo(), stack.getAllStates()]); const existingMetadata = yield* stateManager.readMetadata(managedStack.state.name).pipe( Effect.map(Option.some), diff --git a/apps/cli/src/next/config/cli-config.service.ts b/apps/cli/src/next/config/cli-config.service.ts index 4ab1d9337..62fc3803f 100644 --- a/apps/cli/src/next/config/cli-config.service.ts +++ b/apps/cli/src/next/config/cli-config.service.ts @@ -1,5 +1,5 @@ import type { Option, Redacted } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface CliConfigShape { readonly apiUrl: string; @@ -16,6 +16,6 @@ interface CliConfigShape { readonly doNotTrack: Option.Option; } -export class CliConfig extends ServiceMap.Service()( +export class CliConfig extends Context.Service()( "supabase/config/CliConfig", ) {} diff --git a/apps/cli/src/next/config/project-context.service.ts b/apps/cli/src/next/config/project-context.service.ts index 569a510ce..b59336529 100644 --- a/apps/cli/src/next/config/project-context.service.ts +++ b/apps/cli/src/next/config/project-context.service.ts @@ -1,6 +1,6 @@ import type { ProjectConfig, ProjectEnvironment, ProjectPaths } from "@supabase/config"; import type { Option } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface ProjectContextShape { readonly paths: Option.Option; @@ -8,6 +8,6 @@ interface ProjectContextShape { readonly rawProjectConfig: Option.Option; } -export class ProjectContext extends ServiceMap.Service()( +export class ProjectContext extends Context.Service()( "supabase/config/ProjectContext", ) {} diff --git a/apps/cli/src/next/config/project-home.service.ts b/apps/cli/src/next/config/project-home.service.ts index 045e57e4a..2536af725 100644 --- a/apps/cli/src/next/config/project-home.service.ts +++ b/apps/cli/src/next/config/project-home.service.ts @@ -1,5 +1,5 @@ import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface ProjectHomeShape { readonly projectRoot: string; @@ -15,6 +15,6 @@ interface ProjectHomeShape { readonly stackLogsDir: (name: string) => string; } -export class ProjectHome extends ServiceMap.Service()( +export class ProjectHome extends Context.Service()( "supabase/config/ProjectHome", ) {} diff --git a/apps/cli/src/next/config/project-link-remote.service.ts b/apps/cli/src/next/config/project-link-remote.service.ts index 005796f30..36e10c75f 100644 --- a/apps/cli/src/next/config/project-link-remote.service.ts +++ b/apps/cli/src/next/config/project-link-remote.service.ts @@ -1,5 +1,5 @@ import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; import type { LinkedServiceVersions } from "./project-link-state.service.ts"; export const linkedProjectVersionServices = ["postgres", "postgrest", "auth", "storage"] as const; @@ -31,7 +31,6 @@ interface ProjectLinkRemoteShape { ) => Effect.Effect; } -export class ProjectLinkRemote extends ServiceMap.Service< - ProjectLinkRemote, - ProjectLinkRemoteShape ->()("supabase/config/ProjectLinkRemote") {} +export class ProjectLinkRemote extends Context.Service()( + "supabase/config/ProjectLinkRemote", +) {} diff --git a/apps/cli/src/next/config/project-link-state.service.ts b/apps/cli/src/next/config/project-link-state.service.ts index 9da123d1c..5e5ea316a 100644 --- a/apps/cli/src/next/config/project-link-state.service.ts +++ b/apps/cli/src/next/config/project-link-state.service.ts @@ -1,7 +1,7 @@ import type { Effect, Option } from "effect"; -import { Data, Schema, ServiceMap } from "effect"; +import { Data, Schema, Context } from "effect"; -export const LinkedServiceVersionsSchema = Schema.Struct({ +const LinkedServiceVersionsSchema = Schema.Struct({ postgres: Schema.optionalKey(Schema.String), postgrest: Schema.optionalKey(Schema.String), auth: Schema.optionalKey(Schema.String), @@ -10,7 +10,7 @@ export const LinkedServiceVersionsSchema = Schema.Struct({ export type LinkedServiceVersions = Schema.Schema.Type; -export const ActiveBranchSchema = Schema.Struct({ +const ActiveBranchSchema = Schema.Struct({ ref: Schema.String, name: Schema.String, is_default: Schema.Boolean, @@ -57,6 +57,6 @@ interface ProjectLinkStateShape { ) => Effect.Effect; } -export class ProjectLinkState extends ServiceMap.Service()( +export class ProjectLinkState extends Context.Service()( "supabase/config/ProjectLinkState", ) {} diff --git a/apps/cli/src/next/config/project-local-service-versions.service.ts b/apps/cli/src/next/config/project-local-service-versions.service.ts index 1e1b713a2..77168189d 100644 --- a/apps/cli/src/next/config/project-local-service-versions.service.ts +++ b/apps/cli/src/next/config/project-local-service-versions.service.ts @@ -1,5 +1,5 @@ import type { Effect, Option } from "effect"; -import { Data, Schema, ServiceMap } from "effect"; +import { Data, Schema, Context } from "effect"; const LocalServiceVersionsSchema = Schema.Struct({ postgres: Schema.optionalKey(Schema.String), @@ -37,7 +37,7 @@ interface ProjectLocalServiceVersionsShape { >; } -export class ProjectLocalServiceVersions extends ServiceMap.Service< +export class ProjectLocalServiceVersions extends Context.Service< ProjectLocalServiceVersions, ProjectLocalServiceVersionsShape >()("supabase/config/ProjectLocalServiceVersions") {} diff --git a/apps/cli/src/next/docs/markdown-formatter.unit.test.ts b/apps/cli/src/next/docs/markdown-formatter.unit.test.ts index 3682cd915..7f1a166d9 100644 --- a/apps/cli/src/next/docs/markdown-formatter.unit.test.ts +++ b/apps/cli/src/next/docs/markdown-formatter.unit.test.ts @@ -1,4 +1,4 @@ -import { Option, ServiceMap } from "effect"; +import { Option, Context } from "effect"; import type { HelpDoc } from "effect/unstable/cli"; import { describe, expect, it } from "vitest"; import { formatHelpDocAsMarkdown } from "./markdown-formatter.ts"; @@ -36,7 +36,7 @@ function makeDoc(overrides: RawHelpDoc = {}): HelpDoc.HelpDoc { })), } : {}), - annotations: ServiceMap.empty(), + annotations: Context.empty(), }; } diff --git a/apps/cli/src/shared/cli/hidden-flag.ts b/apps/cli/src/shared/cli/hidden-flag.ts new file mode 100644 index 000000000..8cc4c0a0c --- /dev/null +++ b/apps/cli/src/shared/cli/hidden-flag.ts @@ -0,0 +1,44 @@ +import type { Flag, HelpDoc } from "effect/unstable/cli"; +import type * as Param from "effect/unstable/cli/Param"; + +const hiddenFlagNames = new Set(); + +const collectSingleNames = (param: Param.Param): Array => { + const node = param as + | Param.Single + | Param.Map + | Param.Transform + | Param.Optional + | Param.Variadic; + switch (node._tag) { + case "Single": + return [node.name]; + case "Map": + case "Transform": + case "Optional": + case "Variadic": + return collectSingleNames(node.param); + } +}; + +/** + * Marks a flag as hidden so that it is parsed normally but omitted from + * `--help` output. This mirrors Cobra's `MarkHidden` from the Go CLI, which + * the upstream Effect CLI does not yet expose natively. + */ +export const withHidden = (flag: Flag.Flag): Flag.Flag => { + for (const name of collectSingleNames(flag)) { + hiddenFlagNames.add(name); + } + return flag; +}; + +export const stripHiddenFlagsFromHelpDoc = (doc: HelpDoc.HelpDoc): HelpDoc.HelpDoc => { + const filteredFlags = doc.flags.filter((flag) => !hiddenFlagNames.has(flag.name)); + const filteredGlobalFlags = doc.globalFlags?.filter((flag) => !hiddenFlagNames.has(flag.name)); + return { + ...doc, + flags: filteredFlags, + ...(filteredGlobalFlags !== undefined && { globalFlags: filteredGlobalFlags }), + }; +}; diff --git a/apps/cli/src/shared/cli/hidden-flag.unit.test.ts b/apps/cli/src/shared/cli/hidden-flag.unit.test.ts new file mode 100644 index 000000000..43215e5e1 --- /dev/null +++ b/apps/cli/src/shared/cli/hidden-flag.unit.test.ts @@ -0,0 +1,52 @@ +import { Context, Option } from "effect"; +import { Flag, type HelpDoc } from "effect/unstable/cli"; +import { describe, expect, it } from "vitest"; +import { stripHiddenFlagsFromHelpDoc, withHidden } from "./hidden-flag.ts"; + +const flagDoc = (name: string): HelpDoc.FlagDoc => ({ + name, + aliases: [`--${name}`], + type: "boolean", + description: Option.none(), + required: false, +}); + +const helpDoc = (overrides: Partial): HelpDoc.HelpDoc => ({ + description: "", + usage: "", + flags: [], + annotations: Context.empty(), + ...overrides, +}); + +describe("withHidden", () => { + it("returns the same flag instance", () => { + const flag = Flag.boolean("legacy-bundle"); + expect(withHidden(flag)).toBe(flag); + }); + + it("registers the underlying single name even when wrapped with combinators", () => { + const flag = Flag.string("plan").pipe(Flag.optional); + withHidden(flag); + + const stripped = stripHiddenFlagsFromHelpDoc( + helpDoc({ flags: [flagDoc("plan"), flagDoc("visible")] }), + ); + expect(stripped.flags.map((f) => f.name)).toEqual(["visible"]); + }); + + it("filters hidden flags from globalFlags as well", () => { + withHidden(Flag.boolean("preview")); + + const stripped = stripHiddenFlagsFromHelpDoc( + helpDoc({ globalFlags: [flagDoc("preview"), flagDoc("verbose")] }), + ); + expect(stripped.globalFlags?.map((f) => f.name)).toEqual(["verbose"]); + }); + + it("leaves docs without globalFlags untouched", () => { + const stripped = stripHiddenFlagsFromHelpDoc(helpDoc({ flags: [flagDoc("foo")] })); + expect(stripped.globalFlags).toBeUndefined(); + expect(stripped.flags.map((f) => f.name)).toEqual(["foo"]); + }); +}); diff --git a/apps/cli/src/shared/legacy/go-proxy.layer.unit.test.ts b/apps/cli/src/shared/legacy/go-proxy.layer.unit.test.ts index 583eae9af..88bda5fee 100644 --- a/apps/cli/src/shared/legacy/go-proxy.layer.unit.test.ts +++ b/apps/cli/src/shared/legacy/go-proxy.layer.unit.test.ts @@ -136,6 +136,7 @@ function mockSpawner(exit: ExitBehavior, spawnedBeforeExit?: Deferred.Deferred Effect.void, + unref: Effect.succeed(Effect.void), stdin: Sink.drain as any, stdout: Stream.empty, stderr: Stream.empty, diff --git a/apps/cli/src/shared/legacy/go-proxy.service.ts b/apps/cli/src/shared/legacy/go-proxy.service.ts index d1a6249c5..b92de5b54 100644 --- a/apps/cli/src/shared/legacy/go-proxy.service.ts +++ b/apps/cli/src/shared/legacy/go-proxy.service.ts @@ -1,5 +1,5 @@ import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface LegacyGoProxyShape { /** @@ -10,6 +10,6 @@ interface LegacyGoProxyShape { readonly exec: (args: ReadonlyArray) => Effect.Effect; } -export class LegacyGoProxy extends ServiceMap.Service()( +export class LegacyGoProxy extends Context.Service()( "supabase/legacy/LegacyGoProxy", ) {} diff --git a/apps/cli/src/shared/output/json-formatter.ts b/apps/cli/src/shared/output/json-formatter.ts index e5fb754aa..494739913 100644 --- a/apps/cli/src/shared/output/json-formatter.ts +++ b/apps/cli/src/shared/output/json-formatter.ts @@ -1,8 +1,10 @@ import type { CliOutput, HelpDoc } from "effect/unstable/cli"; +import { stripHiddenFlagsFromHelpDoc } from "../cli/hidden-flag.ts"; export function jsonCliOutputFormatter(): CliOutput.Formatter { return { - formatHelpDoc: (doc: HelpDoc.HelpDoc) => JSON.stringify({ _tag: "Help", doc }), + formatHelpDoc: (doc: HelpDoc.HelpDoc) => + JSON.stringify({ _tag: "Help", doc: stripHiddenFlagsFromHelpDoc(doc) }), formatCliError: (error) => JSON.stringify({ _tag: "Error", error: { code: error._tag, message: error.message } }), formatError: (error) => diff --git a/apps/cli/src/shared/output/output.service.ts b/apps/cli/src/shared/output/output.service.ts index 53dd43143..d3b5cd4eb 100644 --- a/apps/cli/src/shared/output/output.service.ts +++ b/apps/cli/src/shared/output/output.service.ts @@ -1,5 +1,5 @@ import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; import type { NonInteractiveError } from "./errors.ts"; import type { OutputFormat, StreamEvent } from "./types.ts"; @@ -79,4 +79,4 @@ interface OutputShape { /** * Output - Service tag for CLI output and prompt behavior. */ -export class Output extends ServiceMap.Service()("supabase/output/Output") {} +export class Output extends Context.Service()("supabase/output/Output") {} diff --git a/apps/cli/src/shared/output/text-formatter.ts b/apps/cli/src/shared/output/text-formatter.ts index 4b497742e..706e7d28a 100644 --- a/apps/cli/src/shared/output/text-formatter.ts +++ b/apps/cli/src/shared/output/text-formatter.ts @@ -1,9 +1,11 @@ import { CliOutput } from "effect/unstable/cli"; +import { stripHiddenFlagsFromHelpDoc } from "../cli/hidden-flag.ts"; export function textCliOutputFormatter(): CliOutput.Formatter { const base = CliOutput.defaultFormatter({ colors: false }); return { ...base, + formatHelpDoc: (doc) => base.formatHelpDoc(stripHiddenFlagsFromHelpDoc(doc)), formatVersion: (_name, version) => version, }; } diff --git a/apps/cli/src/shared/runtime/browser.layer.unit.test.ts b/apps/cli/src/shared/runtime/browser.layer.unit.test.ts index 1937ec876..a782f5a1e 100644 --- a/apps/cli/src/shared/runtime/browser.layer.unit.test.ts +++ b/apps/cli/src/shared/runtime/browser.layer.unit.test.ts @@ -21,6 +21,7 @@ function mockSpawner() { exitCode: Effect.succeed(ChildProcessSpawner.ExitCode(0)), isRunning: Effect.succeed(false), kill: () => Effect.void, + unref: Effect.succeed(Effect.void), stdin: Sink.drain as any, stdout: Stream.empty, stderr: Stream.empty, diff --git a/apps/cli/src/shared/runtime/browser.service.ts b/apps/cli/src/shared/runtime/browser.service.ts index 44efaee84..13c33c9a6 100644 --- a/apps/cli/src/shared/runtime/browser.service.ts +++ b/apps/cli/src/shared/runtime/browser.service.ts @@ -1,10 +1,8 @@ import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface BrowserShape { readonly open: (url: string) => Effect.Effect; } -export class Browser extends ServiceMap.Service()( - "supabase/runtime/Browser", -) {} +export class Browser extends Context.Service()("supabase/runtime/Browser") {} diff --git a/apps/cli/src/shared/runtime/command-runtime.service.ts b/apps/cli/src/shared/runtime/command-runtime.service.ts index 0e306911d..addebaf47 100644 --- a/apps/cli/src/shared/runtime/command-runtime.service.ts +++ b/apps/cli/src/shared/runtime/command-runtime.service.ts @@ -1,4 +1,4 @@ -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface CommandRuntimeShape { readonly commandPath: ReadonlyArray; @@ -25,6 +25,6 @@ export function getCommandRuntimeSpanName(runtime: { return commandSpanName(runtime.commandPath); } -export class CommandRuntime extends ServiceMap.Service()( +export class CommandRuntime extends Context.Service()( "supabase/runtime/CommandRuntime", ) {} diff --git a/apps/cli/src/shared/runtime/file-watcher.service.ts b/apps/cli/src/shared/runtime/file-watcher.service.ts index f9c53b311..b7dfb6c05 100644 --- a/apps/cli/src/shared/runtime/file-watcher.service.ts +++ b/apps/cli/src/shared/runtime/file-watcher.service.ts @@ -1,7 +1,7 @@ import type { Stream } from "effect"; -import { Data, ServiceMap } from "effect"; +import { Data, Context } from "effect"; -export type FileWatchEventType = "create" | "update" | "delete"; +type FileWatchEventType = "create" | "update" | "delete"; export interface FileWatchEvent { readonly path: string; @@ -24,6 +24,6 @@ interface FileWatcherShape { ) => Stream.Stream, FileWatcherError>; } -export class FileWatcher extends ServiceMap.Service()( +export class FileWatcher extends Context.Service()( "supabase/runtime/FileWatcher", ) {} diff --git a/apps/cli/src/shared/runtime/ink.service.ts b/apps/cli/src/shared/runtime/ink.service.ts index 8179b4ea9..e8af34d32 100644 --- a/apps/cli/src/shared/runtime/ink.service.ts +++ b/apps/cli/src/shared/runtime/ink.service.ts @@ -1,5 +1,5 @@ import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; import type { ReactElement } from "react"; export interface InkInstance { @@ -12,4 +12,4 @@ interface InkShape { readonly render: (element: ReactElement) => Effect.Effect; } -export class Ink extends ServiceMap.Service()("supabase/runtime/Ink") {} +export class Ink extends Context.Service()("supabase/runtime/Ink") {} diff --git a/apps/cli/src/shared/runtime/process-control.service.ts b/apps/cli/src/shared/runtime/process-control.service.ts index 5d3beae60..a7051ab57 100644 --- a/apps/cli/src/shared/runtime/process-control.service.ts +++ b/apps/cli/src/shared/runtime/process-control.service.ts @@ -1,5 +1,5 @@ import type { Effect, Scope } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; export type CliProcessSignal = "SIGINT" | "SIGTERM" | "SIGHUP"; @@ -32,6 +32,6 @@ interface ProcessControlShape { /** * ProcessControl - Service tag for process lifecycle operations. */ -export class ProcessControl extends ServiceMap.Service()( +export class ProcessControl extends Context.Service()( "supabase/runtime/ProcessControl", ) {} diff --git a/apps/cli/src/shared/runtime/runtime-info.service.ts b/apps/cli/src/shared/runtime/runtime-info.service.ts index bdd4ae124..bba5a3585 100644 --- a/apps/cli/src/shared/runtime/runtime-info.service.ts +++ b/apps/cli/src/shared/runtime/runtime-info.service.ts @@ -1,4 +1,4 @@ -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface RuntimeInfoShape { readonly cwd: string; @@ -9,6 +9,6 @@ interface RuntimeInfoShape { readonly pid: number; } -export class RuntimeInfo extends ServiceMap.Service()( +export class RuntimeInfo extends Context.Service()( "supabase/runtime/RuntimeInfo", ) {} diff --git a/apps/cli/src/shared/runtime/stdin.service.ts b/apps/cli/src/shared/runtime/stdin.service.ts index 717f36e9d..e29e776ae 100644 --- a/apps/cli/src/shared/runtime/stdin.service.ts +++ b/apps/cli/src/shared/runtime/stdin.service.ts @@ -1,5 +1,5 @@ import type { Effect, Option } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface StdinShape { readonly isTTY: boolean; @@ -7,4 +7,4 @@ interface StdinShape { readonly readPipedText: Effect.Effect>; } -export class Stdin extends ServiceMap.Service()("supabase/runtime/Stdin") {} +export class Stdin extends Context.Service()("supabase/runtime/Stdin") {} diff --git a/apps/cli/src/shared/runtime/tty.service.ts b/apps/cli/src/shared/runtime/tty.service.ts index 7b73f0a04..71eb67822 100644 --- a/apps/cli/src/shared/runtime/tty.service.ts +++ b/apps/cli/src/shared/runtime/tty.service.ts @@ -1,8 +1,8 @@ -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface TtyShape { readonly stdinIsTty: boolean; readonly stdoutIsTty: boolean; } -export class Tty extends ServiceMap.Service()("supabase/runtime/Tty") {} +export class Tty extends Context.Service()("supabase/runtime/Tty") {} diff --git a/apps/cli/src/shared/telemetry/ai-tool.service.ts b/apps/cli/src/shared/telemetry/ai-tool.service.ts index 3bcbb128d..d3dd0a58f 100644 --- a/apps/cli/src/shared/telemetry/ai-tool.service.ts +++ b/apps/cli/src/shared/telemetry/ai-tool.service.ts @@ -1,10 +1,8 @@ import type { Option } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface AiToolShape { readonly name: Option.Option; } -export class AiTool extends ServiceMap.Service()( - "supabase/telemetry/AiTool", -) {} +export class AiTool extends Context.Service()("supabase/telemetry/AiTool") {} diff --git a/apps/cli/src/shared/telemetry/analytics-context.ts b/apps/cli/src/shared/telemetry/analytics-context.ts index 3a4024a46..6e67db070 100644 --- a/apps/cli/src/shared/telemetry/analytics-context.ts +++ b/apps/cli/src/shared/telemetry/analytics-context.ts @@ -1,4 +1,4 @@ -import { Effect, ServiceMap } from "effect"; +import { Effect, Context } from "effect"; export type AnalyticsContext = { readonly command_run_id?: string; @@ -12,7 +12,7 @@ export type AnalyticsContext = { }; }; -export const CurrentAnalyticsContext = ServiceMap.Reference( +export const CurrentAnalyticsContext = Context.Reference( "supabase/telemetry/CurrentAnalyticsContext", { defaultValue: () => ({}), diff --git a/apps/cli/src/shared/telemetry/analytics.service.ts b/apps/cli/src/shared/telemetry/analytics.service.ts index 62093ad46..9661538dd 100644 --- a/apps/cli/src/shared/telemetry/analytics.service.ts +++ b/apps/cli/src/shared/telemetry/analytics.service.ts @@ -1,5 +1,5 @@ import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface AnalyticsShape { readonly capture: (event: string, properties?: Record) => Effect.Effect; @@ -15,6 +15,6 @@ interface AnalyticsShape { ) => Effect.Effect; } -export class Analytics extends ServiceMap.Service()( +export class Analytics extends Context.Service()( "supabase/telemetry/Analytics", ) {} diff --git a/apps/cli/src/shared/telemetry/exporters/debug-console.unit.test.ts b/apps/cli/src/shared/telemetry/exporters/debug-console.unit.test.ts index 09cc8f36e..efcea1d75 100644 --- a/apps/cli/src/shared/telemetry/exporters/debug-console.unit.test.ts +++ b/apps/cli/src/shared/telemetry/exporters/debug-console.unit.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "vitest"; -import { Option, ServiceMap, Tracer } from "effect"; +import { Option, Context, Tracer } from "effect"; import { formatSpanForDebugConsole, makeDebugConsoleExporter } from "./debug-console.ts"; function makeEndedSpan(name: string, attrs: Record = {}): Tracer.Span { @@ -12,7 +12,7 @@ function makeEndedSpan(name: string, attrs: Record = {}): Trace spanId: "abc123", traceId: "def456", parent: Option.none(), - annotations: ServiceMap.empty(), + annotations: Context.empty(), links: [], sampled: true, kind: "internal", diff --git a/apps/cli/src/shared/telemetry/runtime.service.ts b/apps/cli/src/shared/telemetry/runtime.service.ts index fb59fd29a..7f66b6ec6 100644 --- a/apps/cli/src/shared/telemetry/runtime.service.ts +++ b/apps/cli/src/shared/telemetry/runtime.service.ts @@ -1,4 +1,4 @@ -import { ServiceMap } from "effect"; +import { Context } from "effect"; import type { ConsentState } from "./types.ts"; interface TelemetryRuntimeShape { @@ -17,6 +17,6 @@ interface TelemetryRuntimeShape { readonly cliVersion: string; } -export class TelemetryRuntime extends ServiceMap.Service()( +export class TelemetryRuntime extends Context.Service()( "supabase/telemetry/TelemetryRuntime", ) {} diff --git a/apps/cli/src/shared/telemetry/tracing.layer.ts b/apps/cli/src/shared/telemetry/tracing.layer.ts index d5cfa9ec9..f9638cad1 100644 --- a/apps/cli/src/shared/telemetry/tracing.layer.ts +++ b/apps/cli/src/shared/telemetry/tracing.layer.ts @@ -1,5 +1,5 @@ import { Effect, Layer, Option, Stdio, Stream, Tracer } from "effect"; -import type { Exit, ServiceMap } from "effect"; +import type { Exit, Context } from "effect"; import { makeDebugConsoleExporter } from "./exporters/debug-console.ts"; import { exportSpanToNdjson, initNdjsonExporter } from "./exporters/ndjson.ts"; @@ -29,7 +29,7 @@ class ExportableSpan implements Tracer.Span { readonly sampled: boolean; readonly name: string; readonly parent: Option.Option; - readonly annotations: ServiceMap.ServiceMap; + readonly annotations: Context.Context; readonly links: ReadonlyArray; readonly kind: Tracer.SpanKind; @@ -42,7 +42,7 @@ class ExportableSpan implements Tracer.Span { options: { readonly name: string; readonly parent: Option.Option; - readonly annotations: ServiceMap.ServiceMap; + readonly annotations: Context.Context; readonly links: Array; readonly startTime: bigint; readonly kind: Tracer.SpanKind; diff --git a/apps/cli/src/shared/telemetry/tracing.layer.unit.test.ts b/apps/cli/src/shared/telemetry/tracing.layer.unit.test.ts index 6beb38b8a..25b306e04 100644 --- a/apps/cli/src/shared/telemetry/tracing.layer.unit.test.ts +++ b/apps/cli/src/shared/telemetry/tracing.layer.unit.test.ts @@ -12,7 +12,7 @@ import { import { tmpdir } from "node:os"; import path from "node:path"; import process from "node:process"; -import { Effect, Exit, Layer, Option, ServiceMap, Tracer } from "effect"; +import { Effect, Exit, Layer, Option, Context, Tracer } from "effect"; import { cliConfigLayer } from "../../next/config/cli-config.layer.ts"; import type { TelemetryConfig } from "./types.ts"; import { @@ -89,7 +89,7 @@ function makeSpanOptions( return { name: overrides.name ?? "test-span", parent: overrides.parent ?? Option.none(), - annotations: ServiceMap.empty(), + annotations: Context.empty(), links: [] as Tracer.SpanLink[], startTime: BigInt(Date.now()) * 1_000_000n, kind: "internal" as Tracer.SpanKind, diff --git a/apps/cli/tests/helpers/npm-registry.ts b/apps/cli/tests/helpers/npm-registry.ts index e0b33023e..1512206ee 100644 --- a/apps/cli/tests/helpers/npm-registry.ts +++ b/apps/cli/tests/helpers/npm-registry.ts @@ -218,13 +218,10 @@ export async function runNpmTest( const configPath = path.join(tmp.path, "config.yaml"); const storageDir = path.join(tmp.path, "storage"); - // Verdaccio config: store our published tarballs locally, but proxy *anything - // else* to the public npm registry. The umbrella's package.json declares - // bundled-in runtime deps (effect, ink, react, …) — those are inlined in - // dist/supabase.js but still resolved at install time by npm, so without - // an uplink the install 404s on the first transitive dep. Our own packages - // are pinned to Verdaccio (no proxy) so we cannot accidentally fall through - // to the public registry's `supabase` or `@supabase/cli-*`. + // Verdaccio config: store our published tarballs locally. The umbrella + // package is shim-only at runtime and should resolve only our own + // `@supabase/cli-*` optional dependencies from this registry; the public npm + // uplink is retained for npm installer internals and any incidental tooling. await writeFile( configPath, `storage: ${storageDir} diff --git a/apps/cli/tests/helpers/running-stack.ts b/apps/cli/tests/helpers/running-stack.ts index 668287171..aa08313a2 100644 --- a/apps/cli/tests/helpers/running-stack.ts +++ b/apps/cli/tests/helpers/running-stack.ts @@ -327,7 +327,7 @@ export async function makeStackFixture( ), ); - await daemonRuntime.runPromise(DaemonServer.asEffect()); + await daemonRuntime.runPromise(DaemonServer); await Effect.runPromise( Effect.gen(function* () { diff --git a/apps/docs/package.json b/apps/docs/package.json index 91a895dba..f671e01e4 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -8,16 +8,16 @@ "build": "bun run generate && next build" }, "dependencies": { - "fumadocs-core": "^16.8.1", - "fumadocs-mdx": "^14.3.1", - "fumadocs-ui": "^16.8.1", - "next": "^16.2.4", - "react": "^19.2.5", - "react-dom": "^19.2.5" + "fumadocs-core": "^16.8.11", + "fumadocs-mdx": "^15.0.6", + "fumadocs-ui": "^16.8.11", + "next": "^16.2.6", + "react": "^19.2.6", + "react-dom": "^19.2.6" }, "devDependencies": { "@types/mdx": "^2.0.13", - "@types/node": "^25.6.0", + "@types/node": "^25.8.0", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "typescript": "^6.0.3" diff --git a/package.json b/package.json index 1aeb2b2ca..a3b42f3cb 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,6 @@ "@swc-node/register": "catalog:", "@swc/core": "catalog:", "nx": "catalog:", - "verdaccio": "^6.5.2" + "verdaccio": "^6.7.1" } } diff --git a/packages/api/package.json b/packages/api/package.json index 61291334c..36e1bf280 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -23,7 +23,7 @@ "@effect/platform-bun": "catalog:", "@effect/platform-node": "catalog:", "effect": "catalog:", - "undici": "^8.1.0" + "undici": "^8.3.0" }, "devDependencies": { "@tsconfig/bun": "catalog:", diff --git a/packages/api/src/config/api-config.service.ts b/packages/api/src/config/api-config.service.ts index 46184a475..5d870095f 100644 --- a/packages/api/src/config/api-config.service.ts +++ b/packages/api/src/config/api-config.service.ts @@ -1,11 +1,11 @@ import type { Option, Redacted } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; interface ApiConfigShape { readonly baseUrl: string; readonly accessToken: Option.Option>; } -export class ApiConfig extends ServiceMap.Service()( +export class ApiConfig extends Context.Service()( "@supabase/api/ApiConfig", ) {} diff --git a/packages/api/src/effect.ts b/packages/api/src/effect.ts index 754dd12ba..8d470b5d5 100644 --- a/packages/api/src/effect.ts +++ b/packages/api/src/effect.ts @@ -6,7 +6,6 @@ import { } from "./internal/client.ts"; import { makeEffectApiClient, type EffectClient } from "./internal/effect-client.ts"; import { - executeApiClientOperation, type GeneratedEffectOperations, versionedEffectOperations, } from "./generated/effect-client.ts"; diff --git a/packages/api/src/internal/client.ts b/packages/api/src/internal/client.ts index a9cfebcc6..4aff9c50e 100644 --- a/packages/api/src/internal/client.ts +++ b/packages/api/src/internal/client.ts @@ -1,4 +1,4 @@ -import { Effect, Option, ServiceMap } from "effect"; +import { Effect, Option, Context } from "effect"; import * as Cause from "effect/Cause"; import * as Redacted from "effect/Redacted"; import type { SchemaError } from "effect/Schema"; @@ -56,10 +56,9 @@ export interface SupabaseApiClientShape { ) => Effect.Effect, SupabaseApiError>; } -export class SupabaseApiClient extends ServiceMap.Service< - SupabaseApiClient, - SupabaseApiClientShape ->()("@supabase/api/SupabaseApiClient") {} +export class SupabaseApiClient extends Context.Service()( + "@supabase/api/SupabaseApiClient", +) {} export class SupabaseApiConfigError extends Error { readonly _tag = "SupabaseApiConfigError"; diff --git a/packages/config/src/analytics.ts b/packages/config/src/analytics.ts index 40ae01a0f..fd3cf1212 100644 --- a/packages/config/src/analytics.ts +++ b/packages/config/src/analytics.ts @@ -1,5 +1,5 @@ import dedent from "dedent"; -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { stringEnum } from "./lib/schema.ts"; const links = [ @@ -21,13 +21,13 @@ export const analytics = Schema.Struct({ description: "Enable the local Logflare service.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), port: Schema.Number.annotate({ default: defaultPort, description: "Port to the local Logflare service.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultPort)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPort))), backend: stringEnum(["postgres", "bigquery"], { default: defaultBackend, description: dedent` @@ -38,7 +38,7 @@ export const analytics = Schema.Struct({ `, tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultBackend)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultBackend))), vector_port: Schema.optionalKey( Schema.Number.annotate({ description: "Port to the local syslog ingest service.", @@ -63,4 +63,4 @@ export const analytics = Schema.Struct({ tags, }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultAnalytics }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultAnalytics }))); diff --git a/packages/config/src/api.ts b/packages/config/src/api.ts index b8d6bb21b..9f7f5de7a 100644 --- a/packages/config/src/api.ts +++ b/packages/config/src/api.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; const links = [ { @@ -23,13 +23,13 @@ export const api = Schema.Struct({ description: "Enable the local PostgREST service.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), port: Schema.Number.annotate({ default: defaultPort, description: "Port to use for the API URL.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultPort)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPort))), schemas: Schema.Array( Schema.String.annotate({ description: @@ -39,7 +39,7 @@ export const api = Schema.Struct({ }), ) .annotate({ default: defaultSchemas }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultSchemas])), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultSchemas]))), extra_search_path: Schema.Array( Schema.String.annotate({ description: "Extra schemas to add to the search_path of every request.", @@ -48,21 +48,21 @@ export const api = Schema.Struct({ }), ) .annotate({ default: defaultExtraSearchPath }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultExtraSearchPath])), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultExtraSearchPath]))), max_rows: Schema.Number.annotate({ default: defaultMaxRows, description: "The maximum number of rows returned from a view, table, or stored procedure. Limits payload size for accidental or malicious requests.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxRows)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxRows))), tls: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultTlsEnabled, description: "Enable HTTPS endpoints locally using a self-signed certificate.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultTlsEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTlsEnabled))), cert_path: Schema.optionalKey( Schema.String.annotate({ description: "Path to the self-signed certificate.", @@ -77,11 +77,11 @@ export const api = Schema.Struct({ links, }), ), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultTls }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultTls }))), external_url: Schema.optionalKey( Schema.String.annotate({ description: "External URL for accessing the API server.", tags, }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultApi }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultApi }))); diff --git a/packages/config/src/auth/captcha.ts b/packages/config/src/auth/captcha.ts index 8377d8cc0..27aed842c 100644 --- a/packages/config/src/auth/captcha.ts +++ b/packages/config/src/auth/captcha.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "../lib/env.ts"; import { stringEnum } from "../lib/schema.ts"; @@ -20,7 +20,7 @@ export const captcha = Schema.Struct({ description: "Enable CAPTCHA verification.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), provider: Schema.optionalKey( stringEnum(["hcaptcha", "turnstile"], { description: "CAPTCHA provider to use.", @@ -35,4 +35,4 @@ export const captcha = Schema.Struct({ links, }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultCaptcha }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultCaptcha }))); diff --git a/packages/config/src/auth/email.ts b/packages/config/src/auth/email.ts index 5fbc77c9e..536282874 100644 --- a/packages/config/src/auth/email.ts +++ b/packages/config/src/auth/email.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "../lib/env.ts"; const tags = ["auth"]; @@ -46,7 +46,7 @@ function requiredWhenEnabled< return { path: [path], - message, + issue: message, }; }); } @@ -55,27 +55,27 @@ const template = Schema.Struct({ subject: Schema.String.annotate({ default: defaultSubject, description: "Subject line for the email template.", - }).pipe(Schema.withDecodingDefaultKey(() => defaultSubject)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSubject))), content_path: Schema.String.annotate({ default: defaultContentPath, description: "Path to the HTML template.", - }).pipe(Schema.withDecodingDefaultKey(() => defaultContentPath)), -}).pipe(Schema.withDecodingDefault(() => ({}))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultContentPath))), +}).pipe(Schema.withDecodingDefault(Effect.succeed({}))); const notification = Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultNotificationEnabled, description: "Enable the notification email.", - }).pipe(Schema.withDecodingDefaultKey(() => defaultNotificationEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultNotificationEnabled))), subject: Schema.String.annotate({ default: defaultSubject, description: "Subject line for the notification email.", - }).pipe(Schema.withDecodingDefaultKey(() => defaultSubject)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSubject))), content_path: Schema.String.annotate({ default: defaultContentPath, description: "Path to the HTML notification template.", - }).pipe(Schema.withDecodingDefaultKey(() => defaultContentPath)), -}).pipe(Schema.withDecodingDefault(() => ({}))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultContentPath))), +}).pipe(Schema.withDecodingDefault(Effect.succeed({}))); export const email = Schema.Struct({ enable_signup: Schema.Boolean.annotate({ @@ -83,52 +83,52 @@ export const email = Schema.Struct({ description: "Allow/disallow new user signups via email to your project.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnableSignup)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnableSignup))), double_confirm_changes: Schema.Boolean.annotate({ default: defaultDoubleConfirmChanges, description: "If enabled, a user will be required to confirm any email change on both the old and new email addresses.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultDoubleConfirmChanges)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultDoubleConfirmChanges))), enable_confirmations: Schema.Boolean.annotate({ default: defaultEnableConfirmations, description: "If enabled, users need to confirm their email address before signing in.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnableConfirmations)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnableConfirmations))), secure_password_change: Schema.Boolean.annotate({ default: defaultSecurePasswordChange, description: "If enabled, users will need to reauthenticate or have logged in recently to change their password.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultSecurePasswordChange)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSecurePasswordChange))), max_frequency: Schema.String.annotate({ default: defaultMaxFrequency, description: "Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxFrequency)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxFrequency))), otp_length: Schema.Number.annotate({ default: defaultOtpLength, description: "Number of characters used in the email OTP.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultOtpLength)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultOtpLength))), otp_expiry: Schema.Number.annotate({ default: defaultOtpExpiry, description: "Number of seconds before the email OTP expires.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultOtpExpiry)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultOtpExpiry))), smtp: Schema.optionalKey( Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultSmtpEnabled, description: "Enable SMTP for email delivery.", - }).pipe(Schema.withDecodingDefaultKey(() => defaultSmtpEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSmtpEnabled))), host: Schema.optionalKey( Schema.String.annotate({ description: "Hostname or IP address of the SMTP server.", @@ -187,7 +187,7 @@ export const email = Schema.Struct({ "Missing required field in config: auth.email.smtp.admin_email", ), ) - .pipe(Schema.withDecodingDefaultKey(() => ({}))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), ), template: Schema.Record(templateName, template) .annotate({ @@ -196,7 +196,7 @@ export const email = Schema.Struct({ tags, links: [links.auth], }) - .pipe(Schema.withDecodingDefault(() => ({ ...defaultTemplate }))), + .pipe(Schema.withDecodingDefault(Effect.succeed({ ...defaultTemplate }))), notification: Schema.Record(notificationName, notification) .annotate({ default: defaultNotification, @@ -204,5 +204,5 @@ export const email = Schema.Struct({ tags, links: [links.auth], }) - .pipe(Schema.withDecodingDefault(() => ({ ...defaultNotification }))), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultEmail }))); + .pipe(Schema.withDecodingDefault(Effect.succeed({ ...defaultNotification }))), +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultEmail }))); diff --git a/packages/config/src/auth/hooks.ts b/packages/config/src/auth/hooks.ts index 39e29af12..37181fa5c 100644 --- a/packages/config/src/auth/hooks.ts +++ b/packages/config/src/auth/hooks.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "../lib/env.ts"; const tags = ["auth"]; @@ -18,7 +18,7 @@ const createHookSchema = (name: string, slug: string) => description: `Enable or disable the ${name.toLowerCase()}.`, tags, links: [link(name, slug)], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), uri: Schema.optionalKey( Schema.String.annotate({ description: "The URI of the postgres function or HTTP endpoint to call.", @@ -33,7 +33,7 @@ const createHookSchema = (name: string, slug: string) => links: [link(name, slug)], }), ), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultHook }))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultHook }))); export const hook = Schema.Struct({ mfa_verification_attempt: createHookSchema("MFA Verification Hook", "mfa-verification-hook"), @@ -45,4 +45,4 @@ export const hook = Schema.Struct({ send_sms: createHookSchema("Send SMS Hook", "send-sms-hook"), send_email: createHookSchema("Send Email Hook", "send-email-hook"), before_user_created: createHookSchema("Before User Created Hook", "before-user-created-hook"), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultHook }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultHook }))); diff --git a/packages/config/src/auth/index.ts b/packages/config/src/auth/index.ts index cbd3fb3e1..2730a7d01 100644 --- a/packages/config/src/auth/index.ts +++ b/packages/config/src/auth/index.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "../lib/env.ts"; import { stringEnum } from "../lib/schema.ts"; import { captcha } from "./captcha.ts"; @@ -44,14 +44,14 @@ export const auth = Schema.Struct({ description: "Enable the local GoTrue service.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), site_url: Schema.String.annotate({ default: defaultSiteUrl, description: "The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultSiteUrl)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSiteUrl))), additional_redirect_urls: Schema.Array( Schema.String.annotate({ description: "A URL that auth providers are permitted to redirect to.", @@ -65,14 +65,14 @@ export const auth = Schema.Struct({ tags, links: [links.auth], }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultAdditionalRedirectUrls])), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultAdditionalRedirectUrls]))), jwt_expiry: Schema.Number.annotate({ default: defaultJwtExpiry, description: "How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one week).", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultJwtExpiry)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultJwtExpiry))), jwt_issuer: Schema.optionalKey( Schema.String.annotate({ description: "JWT issuer URL.", @@ -92,38 +92,38 @@ export const auth = Schema.Struct({ description: "If disabled, the refresh token will never expire.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnableRefreshTokenRotation)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnableRefreshTokenRotation))), refresh_token_reuse_interval: Schema.Number.annotate({ default: defaultRefreshTokenReuseInterval, description: "Allows refresh tokens to be reused after expiry, up to the specified interval in seconds.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultRefreshTokenReuseInterval)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultRefreshTokenReuseInterval))), enable_manual_linking: Schema.Boolean.annotate({ default: defaultEnableManualLinking, description: "Allow/disallow testing manual linking of accounts.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnableManualLinking)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnableManualLinking))), enable_signup: Schema.Boolean.annotate({ default: defaultEnableSignup, description: "Allow/disallow new user signups to your project.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnableSignup)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnableSignup))), enable_anonymous_sign_ins: Schema.Boolean.annotate({ default: defaultEnableAnonymousSignIns, description: "Allow/disallow anonymous sign-ins to your project.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnableAnonymousSignIns)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnableAnonymousSignIns))), minimum_password_length: Schema.Number.annotate({ default: defaultMinimumPasswordLength, description: "Passwords shorter than this value will be rejected as weak.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultMinimumPasswordLength)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMinimumPasswordLength))), password_requirements: stringEnum( ["", "letters_digits", "lower_upper_letters_digits", "lower_upper_letters_digits_symbols"], { @@ -132,7 +132,7 @@ export const auth = Schema.Struct({ tags, links: [links.auth], }, - ).pipe(Schema.withDecodingDefaultKey(() => defaultPasswordRequirements)), + ).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPasswordRequirements))), publishable_key: Schema.optionalKey( secret({ description: "Publishable key override.", @@ -183,19 +183,19 @@ export const auth = Schema.Struct({ description: "Enable OAuth server functionality.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultOAuthServerEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultOAuthServerEnabled))), authorization_url_path: Schema.String.annotate({ default: defaultAuthorizationUrlPath, description: "Path for OAuth consent flow UI.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultAuthorizationUrlPath)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultAuthorizationUrlPath))), allow_dynamic_registration: Schema.Boolean.annotate({ default: defaultAllowDynamicRegistration, description: "Allow dynamic client registration.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultAllowDynamicRegistration)), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultOAuthServer }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultAllowDynamicRegistration))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultOAuthServer }))), third_party, -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultAuth }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultAuth }))); diff --git a/packages/config/src/auth/mfa.ts b/packages/config/src/auth/mfa.ts index ee3545d12..8a638a092 100644 --- a/packages/config/src/auth/mfa.ts +++ b/packages/config/src/auth/mfa.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; const tags = ["auth"]; @@ -39,64 +39,64 @@ export const mfa = Schema.Struct({ description: "Allow/disallow TOTP enrollment for users.", tags, links: [links.totp], - }).pipe(Schema.withDecodingDefaultKey(() => defaultTotpEnrollEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTotpEnrollEnabled))), verify_enabled: Schema.Boolean.annotate({ default: defaultTotpVerifyEnabled, description: "Allow/disallow TOTP verification for users.", tags, links: [links.totp], - }).pipe(Schema.withDecodingDefaultKey(() => defaultTotpVerifyEnabled)), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultTotp }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTotpVerifyEnabled))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultTotp }))), phone: Schema.Struct({ enroll_enabled: Schema.Boolean.annotate({ default: defaultPhoneEnrollEnabled, description: "Allow/disallow phone enrollment for users.", tags, links: [links.phone], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPhoneEnrollEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPhoneEnrollEnabled))), verify_enabled: Schema.Boolean.annotate({ default: defaultPhoneVerifyEnabled, description: "Allow/disallow phone verification for users.", tags, links: [links.phone], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPhoneVerifyEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPhoneVerifyEnabled))), otp_length: Schema.Number.annotate({ default: defaultPhoneOtpLength, description: "The length of the OTP code.", tags, links: [links.phone], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPhoneOtpLength)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPhoneOtpLength))), template: Schema.String.annotate({ default: defaultPhoneTemplate, description: "The template to use for the phone message.", tags, links: [links.phone], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPhoneTemplate)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPhoneTemplate))), max_frequency: Schema.String.annotate({ default: defaultPhoneMaxFrequency, description: "The maximum frequency of the phone messages.", tags, links: [links.phone], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPhoneMaxFrequency)), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultPhone }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPhoneMaxFrequency))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultPhone }))), web_authn: Schema.Struct({ enroll_enabled: Schema.Boolean.annotate({ default: defaultWebAuthnEnrollEnabled, description: "Allow/disallow WebAuthn enrollment for users.", tags, links: [links.mfa], - }).pipe(Schema.withDecodingDefaultKey(() => defaultWebAuthnEnrollEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultWebAuthnEnrollEnabled))), verify_enabled: Schema.Boolean.annotate({ default: defaultWebAuthnVerifyEnabled, description: "Allow/disallow WebAuthn verification for users.", tags, links: [links.mfa], - }).pipe(Schema.withDecodingDefaultKey(() => defaultWebAuthnVerifyEnabled)), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultWebAuthn }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultWebAuthnVerifyEnabled))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultWebAuthn }))), max_enrolled_factors: Schema.Number.annotate({ default: defaultMaxEnrolledFactors, description: "The maximum number of MFA factors a user can enroll in.", tags, links: [links.mfa], - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxEnrolledFactors)), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultMfa }))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxEnrolledFactors))), +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultMfa }))); diff --git a/packages/config/src/auth/providers.ts b/packages/config/src/auth/providers.ts index 275944374..fcb059220 100644 --- a/packages/config/src/auth/providers.ts +++ b/packages/config/src/auth/providers.ts @@ -1,5 +1,5 @@ import dedent from "dedent"; -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "../lib/env.ts"; const tags = ["auth"]; @@ -14,7 +14,7 @@ function requiredWhenEnabled< return { path: [path], - message, + issue: message, }; }); } @@ -48,13 +48,13 @@ const provider = (providerConfig: { description: `Use the ${providerConfig.name} OAuth provider.`, tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), client_id: Schema.String.annotate({ default: defaultClientId, description: `Client ID for the ${providerConfig.name} OAuth provider.`, tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultClientId)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultClientId))), secret: Schema.optionalKey( secret({ examples: [`env(SUPABASE_AUTH_EXTERNAL_${providerConfig.id.toUpperCase()}_SECRET)`], @@ -74,26 +74,26 @@ const provider = (providerConfig: { ...providerConfig.url, tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultUrl)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultUrl))), redirect_uri: Schema.String.annotate({ default: defaultRedirectUri, description: `The URI the ${providerConfig.name} OAuth2 provider will redirect to with the code and state values.`, tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultRedirectUri)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultRedirectUri))), skip_nonce_check: Schema.Boolean.annotate({ default: defaultSkipNonceCheck, description: "If true, the nonce check will be skipped.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultSkipNonceCheck)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSkipNonceCheck))), email_optional: Schema.Boolean.annotate({ default: defaultEmailOptional, description: "If true, authentication succeeds when the provider does not return an email address.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEmailOptional)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEmailOptional))), }); return schema @@ -113,7 +113,7 @@ const provider = (providerConfig: { ), ]), ) - .pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultProvider }))); + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultProvider }))); }; const defaultExternal = {}; @@ -201,4 +201,4 @@ export const external = Schema.Struct({ id: "zoom", name: "Zoom", }), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultExternal }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultExternal }))); diff --git a/packages/config/src/auth/rate_limit.ts b/packages/config/src/auth/rate_limit.ts index 1de878180..e5ab60de5 100644 --- a/packages/config/src/auth/rate_limit.ts +++ b/packages/config/src/auth/rate_limit.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; const tags = ["auth"]; @@ -24,43 +24,43 @@ export const rate_limit = Schema.Struct({ description: "Number of emails that can be sent per hour.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEmailSent)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEmailSent))), sms_sent: Schema.Number.annotate({ default: defaultSmsSent, description: "Number of SMS messages that can be sent per hour.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultSmsSent)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSmsSent))), anonymous_users: Schema.Number.annotate({ default: defaultAnonymousUsers, description: "Number of anonymous sign-ins that can be made per hour per IP address.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultAnonymousUsers)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultAnonymousUsers))), token_refresh: Schema.Number.annotate({ default: defaultTokenRefresh, description: "Number of sessions that can be refreshed in a 5 minute interval per IP address.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultTokenRefresh)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTokenRefresh))), sign_in_sign_ups: Schema.Number.annotate({ default: defaultSignInSignUps, description: "Number of sign up and sign-in requests that can be made in a 5 minute interval per IP address.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultSignInSignUps)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSignInSignUps))), token_verifications: Schema.Number.annotate({ default: defaultTokenVerifications, description: "Number of OTP or magic link verifications that can be made in a 5 minute interval per IP address.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultTokenVerifications)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTokenVerifications))), web3: Schema.Number.annotate({ default: defaultWeb3, description: "Number of Web3 logins that can be made in a 5 minute interval per IP address.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultWeb3)), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultRateLimit }))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultWeb3))), +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultRateLimit }))); diff --git a/packages/config/src/auth/sessions.ts b/packages/config/src/auth/sessions.ts index d01562435..f0e9c0ed8 100644 --- a/packages/config/src/auth/sessions.ts +++ b/packages/config/src/auth/sessions.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; const tags = ["auth"]; @@ -28,4 +28,4 @@ export const sessions = Schema.Struct({ ), }) .annotate({ default: defaultSessions }) - .pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultSessions }))); + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultSessions }))); diff --git a/packages/config/src/auth/sms.ts b/packages/config/src/auth/sms.ts index bacd419a9..3f7b781f8 100644 --- a/packages/config/src/auth/sms.ts +++ b/packages/config/src/auth/sms.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "../lib/env.ts"; const tags = ["auth"]; @@ -42,7 +42,7 @@ function requiredWhenEnabled< return { path: [path], - message, + issue: message, }; }); } @@ -53,45 +53,45 @@ export const sms = Schema.Struct({ description: "Allow/disallow new user signups via SMS to your project.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnableSignup)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnableSignup))), enable_confirmations: Schema.Boolean.annotate({ default: defaultEnableConfirmations, description: "If enabled, users need to confirm their phone number before signing in.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnableConfirmations)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnableConfirmations))), template: Schema.String.annotate({ default: defaultTemplate, description: "The template to use for the SMS message.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultTemplate)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTemplate))), max_frequency: Schema.String.annotate({ default: defaultMaxFrequency, description: "Controls the minimum amount of time that must pass before sending another sms otp.", tags, links: [links.auth], - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxFrequency)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxFrequency))), twilio: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultTwilioEnabled, description: "Enable/disable Twilio provider for phone login.", tags, links: [links.phoneLogin("Twilio")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultTwilioEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTwilioEnabled))), account_sid: Schema.String.annotate({ default: defaultTwilioAccountSid, description: "The account SID for the Twilio API.", tags, links: [links.phoneLogin("Twilio")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultTwilioAccountSid)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTwilioAccountSid))), message_service_sid: Schema.String.annotate({ default: defaultTwilioMessageServiceSid, description: "The message service SID for the Twilio API.", tags, links: [links.phoneLogin("Twilio")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultTwilioMessageServiceSid)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTwilioMessageServiceSid))), auth_token: Schema.optionalKey( secret({ examples: ["env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)"], @@ -118,14 +118,14 @@ export const sms = Schema.Struct({ "Missing required field in config: auth.sms.twilio.auth_token", ), ) - .pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultTwilio }))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultTwilio }))), twilio_verify: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultTwilioVerifyEnabled, description: "Enable/disable Twilio Verify provider for phone verification.", tags, links: [links.phoneLogin("Twilio")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultTwilioVerifyEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTwilioVerifyEnabled))), account_sid: Schema.optionalKey( Schema.String.annotate({ description: "The account SID for the Twilio API.", @@ -165,14 +165,14 @@ export const sms = Schema.Struct({ "Missing required field in config: auth.sms.twilio_verify.auth_token", ), ) - .pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultTwilioVerify }))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultTwilioVerify }))), messagebird: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultMessagebirdEnabled, description: "Enable/disable MessageBird provider for phone login.", tags, links: [links.phoneLogin("MessageBird")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultMessagebirdEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMessagebirdEnabled))), originator: Schema.optionalKey( Schema.String.annotate({ description: "The originator of the SMS message.", @@ -200,14 +200,14 @@ export const sms = Schema.Struct({ "Missing required field in config: auth.sms.messagebird.access_key", ), ) - .pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultMessagebird }))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultMessagebird }))), textlocal: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultTextlocalEnabled, description: "Enable/disable Textlocal provider for phone login.", tags, links: [links.phoneLogin("Textlocal%2520(Community%2520Supported)")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultTextlocalEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultTextlocalEnabled))), sender: Schema.optionalKey( Schema.String.annotate({ description: "The sender of the SMS message.", @@ -235,14 +235,14 @@ export const sms = Schema.Struct({ "Missing required field in config: auth.sms.textlocal.api_key", ), ) - .pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultTextlocal }))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultTextlocal }))), vonage: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultVonageEnabled, description: "Enable/disable Vonage provider for phone login.", tags, links: [links.phoneLogin("Vonage")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultVonageEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultVonageEnabled))), from: Schema.optionalKey( Schema.String.annotate({ description: "The sender of the SMS message.", @@ -282,7 +282,7 @@ export const sms = Schema.Struct({ "Missing required field in config: auth.sms.vonage.api_secret", ), ) - .pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultVonage }))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultVonage }))), test_otp: Schema.optionalKey( Schema.Record(Schema.String, Schema.String).annotate({ description: "Use pre-defined map of phone number to OTP for testing.", @@ -290,4 +290,4 @@ export const sms = Schema.Struct({ links: [links.auth], }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultSms }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultSms }))); diff --git a/packages/config/src/auth/third_party.ts b/packages/config/src/auth/third_party.ts index 536dfa55b..cde03cfda 100644 --- a/packages/config/src/auth/third_party.ts +++ b/packages/config/src/auth/third_party.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; const tags = ["auth"]; @@ -9,7 +9,7 @@ const enabledField = Schema.Boolean.annotate({ default: defaultEnabled, description: "Enable this third-party auth provider.", tags, -}).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))); export const third_party = Schema.Struct({ firebase: Schema.Struct({ @@ -20,7 +20,7 @@ export const third_party = Schema.Struct({ tags, }), ), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), auth0: Schema.Struct({ enabled: enabledField, tenant: Schema.optionalKey( @@ -35,7 +35,7 @@ export const third_party = Schema.Struct({ tags, }), ), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), aws_cognito: Schema.Struct({ enabled: enabledField, user_pool_id: Schema.optionalKey( @@ -50,7 +50,7 @@ export const third_party = Schema.Struct({ tags, }), ), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), clerk: Schema.Struct({ enabled: enabledField, domain: Schema.optionalKey( @@ -59,7 +59,7 @@ export const third_party = Schema.Struct({ tags, }), ), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), workos: Schema.Struct({ enabled: enabledField, issuer_url: Schema.optionalKey( @@ -68,5 +68,5 @@ export const third_party = Schema.Struct({ tags, }), ), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultThirdParty }))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultThirdParty }))); diff --git a/packages/config/src/auth/web3.ts b/packages/config/src/auth/web3.ts index 9e517660b..259d854ca 100644 --- a/packages/config/src/auth/web3.ts +++ b/packages/config/src/auth/web3.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; const tags = ["auth"]; @@ -11,10 +11,10 @@ const provider = Schema.Struct({ default: defaultEnabled, description: "Enable this Web3 provider.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultProvider }))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultProvider }))); export const web3 = Schema.Struct({ solana: provider, ethereum: provider, -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultWeb3 }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultWeb3 }))); diff --git a/packages/config/src/base.ts b/packages/config/src/base.ts index f017bc682..4a5635720 100644 --- a/packages/config/src/base.ts +++ b/packages/config/src/base.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { analytics } from "./analytics.ts"; import { api } from "./api.ts"; import { auth } from "./auth/index.ts"; @@ -23,7 +23,7 @@ const remoteProjectId = Schema.String.annotate({ default: "", description: "Remote project reference.", tags: ["general"], -}).pipe(Schema.withDecodingDefaultKey(() => "")); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed(""))); const baseProjectConfigFields = { project_id: projectId, @@ -53,7 +53,7 @@ const remoteProjectConfig = Schema.Struct({ storage, studio, experimental, -}).pipe(Schema.withDecodingDefault(() => ({}))); +}).pipe(Schema.withDecodingDefault(Effect.succeed({}))); export const ProjectConfigSchema = Schema.Struct({ ...baseProjectConfigFields, @@ -63,7 +63,7 @@ export const ProjectConfigSchema = Schema.Struct({ description: "Remote branch-specific project configuration.", tags: ["general"], }) - .pipe(Schema.withDecodingDefault(() => ({}))), + .pipe(Schema.withDecodingDefault(Effect.succeed({}))), }); export type ProjectConfig = typeof ProjectConfigSchema.Type; diff --git a/packages/config/src/db.ts b/packages/config/src/db.ts index 2509656e4..1bc6c57c9 100644 --- a/packages/config/src/db.ts +++ b/packages/config/src/db.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "./lib/env.ts"; import { stringEnum } from "./lib/schema.ts"; @@ -65,7 +65,7 @@ const settings = Schema.Struct({ wal_keep_size: Schema.optionalKey(Schema.String), wal_sender_timeout: Schema.optionalKey(Schema.String), work_mem: Schema.optionalKey(Schema.String), -}).pipe(Schema.withDecodingDefaultKey(() => ({}))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))); export const db = Schema.Struct({ port: Schema.Number.annotate({ @@ -73,63 +73,63 @@ export const db = Schema.Struct({ description: "Port to use for the local database URL.", tags, links: [links.postgres], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPort)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPort))), shadow_port: Schema.Number.annotate({ default: defaultShadowPort, description: "Port used by db diff command to initialize the shadow database.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultShadowPort)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultShadowPort))), health_timeout: Schema.String.annotate({ default: defaultHealthTimeout, description: "Maximum amount of time to wait for health check when starting the local database.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultHealthTimeout)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultHealthTimeout))), major_version: Schema.Number.annotate({ default: defaultMajorVersion, description: "The database major version to use. This has to be the same as your remote database's.", tags, links: [links.postgres], - }).pipe(Schema.withDecodingDefaultKey(() => defaultMajorVersion)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMajorVersion))), pooler: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultPoolerEnabled, description: "Enable the local PgBouncer service.", tags, links: [links.pgbouncer()], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPoolerEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPoolerEnabled))), port: Schema.Number.annotate({ default: defaultPoolerPort, description: "Port to use for the local connection pooler.", tags, links: [links.pgbouncer("listen_port")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPoolerPort)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPoolerPort))), pool_mode: stringEnum(["transaction", "session"], { default: defaultPoolMode, description: "Specifies when a server connection can be reused by other clients.", tags, links: [links.pgbouncer("pool_mode")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPoolMode)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPoolMode))), default_pool_size: Schema.Number.annotate({ default: defaultPoolSize, description: "How many server connections to allow per user/database pair.", tags, links: [links.pgbouncer("default_pool_size")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultPoolSize)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPoolSize))), max_client_conn: Schema.Number.annotate({ default: defaultMaxClientConn, description: "Maximum number of client connections allowed.", tags, links: [links.pgbouncer("max_client_conn")], - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxClientConn)), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultPooler }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxClientConn))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultPooler }))), migrations: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultMigrationsEnabled, description: "If disabled, migrations will be skipped during a db push or reset.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultMigrationsEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMigrationsEnabled))), schema_paths: Schema.Array( Schema.String.annotate({ description: "Schema file path or glob relative to the supabase directory.", @@ -141,14 +141,14 @@ export const db = Schema.Struct({ description: "Ordered list of schema files that describe your database.", tags, }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultSchemaPaths])), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultMigrations }))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultSchemaPaths]))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultMigrations }))), seed: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultSeedEnabled, description: "Enable seeding the database with SQL files.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultSeedEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultSeedEnabled))), sql_paths: Schema.Array( Schema.String.annotate({ description: "Path to a SQL file used to seed the database.", @@ -160,38 +160,38 @@ export const db = Schema.Struct({ description: "Ordered list of seed files to load during db reset.", tags, }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultSqlPaths])), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultSeed }))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultSqlPaths]))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultSeed }))), settings: Schema.optionalKey(settings), network_restrictions: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultNetworkRestrictionsEnabled, description: "Enable management of network restrictions.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultNetworkRestrictionsEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultNetworkRestrictionsEnabled))), allowed_cidrs: Schema.Array(Schema.String) .annotate({ default: defaultAllowedCidrs, description: "Allowed IPv4 CIDR blocks.", tags, }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultAllowedCidrs])), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultAllowedCidrs]))), allowed_cidrs_v6: Schema.Array(Schema.String) .annotate({ default: defaultAllowedCidrsV6, description: "Allowed IPv6 CIDR blocks.", tags, }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultAllowedCidrsV6])), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultNetworkRestrictions }))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultAllowedCidrsV6]))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultNetworkRestrictions }))), ssl_enforcement: Schema.optionalKey( Schema.Struct({ enabled: Schema.Boolean.annotate({ default: false, description: "Reject non-secure connections to the database.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => false)), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(false))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), ), vault: Schema.optionalKey( Schema.Record( @@ -205,4 +205,4 @@ export const db = Schema.Struct({ tags, }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultDb }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultDb }))); diff --git a/packages/config/src/edge_runtime.ts b/packages/config/src/edge_runtime.ts index 1cdf69e18..e5a78e0b5 100644 --- a/packages/config/src/edge_runtime.ts +++ b/packages/config/src/edge_runtime.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "./lib/env.ts"; import { stringEnum } from "./lib/schema.ts"; @@ -14,22 +14,22 @@ export const edge_runtime = Schema.Struct({ default: defaultEnabled, description: "Enable the local Edge Runtime service.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), policy: stringEnum(["oneshot", "per_worker"], { default: defaultPolicy, description: "Configure the supported request policy.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultPolicy)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPolicy))), inspector_port: Schema.Number.annotate({ default: defaultInspectorPort, description: "Port to run the Edge Functions inspector on.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultInspectorPort)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultInspectorPort))), deno_version: Schema.Number.annotate({ default: defaultDenoVersion, description: "The Deno major version to use.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultDenoVersion)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultDenoVersion))), secrets: Schema.optionalKey( Schema.Record( Schema.String, @@ -42,4 +42,4 @@ export const edge_runtime = Schema.Struct({ tags, }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultEdgeRuntime }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultEdgeRuntime }))); diff --git a/packages/config/src/experimental.ts b/packages/config/src/experimental.ts index aca1feceb..773800955 100644 --- a/packages/config/src/experimental.ts +++ b/packages/config/src/experimental.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "./lib/env.ts"; const tags = ["experimental"]; @@ -29,7 +29,7 @@ const inspectRule = Schema.Struct({ tags, }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({}))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))); export const experimental = Schema.Struct({ orioledb_version: Schema.optionalKey( @@ -72,8 +72,8 @@ export const experimental = Schema.Struct({ default: false, description: "Enable experimental webhooks.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => false)), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(false))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), ), inspect: Schema.optionalKey( Schema.Struct({ @@ -83,7 +83,7 @@ export const experimental = Schema.Struct({ description: "Inspection rules.", tags, }) - .pipe(Schema.withDecodingDefaultKey(() => [])), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([]))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultExperimental }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultExperimental }))); diff --git a/packages/config/src/functions.ts b/packages/config/src/functions.ts index d870b8d0e..2a919695e 100644 --- a/packages/config/src/functions.ts +++ b/packages/config/src/functions.ts @@ -1,5 +1,5 @@ import dedent from "dedent"; -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { env } from "./lib/env.ts"; const tags = ["functions"]; @@ -30,7 +30,7 @@ const func = Schema.Struct({ `, tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), verify_jwt: Schema.Boolean.annotate({ default: defaultVerifyJwt, description: dedent` @@ -38,19 +38,19 @@ const func = Schema.Struct({ `, tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultVerifyJwt)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultVerifyJwt))), import_map: Schema.String.annotate({ default: defaultImportMap, description: "Import map file to use for the Function.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultImportMap)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultImportMap))), entrypoint: Schema.String.annotate({ default: defaultEntrypoint, description: 'Entrypoint path to the Function. Defaults to "functions/slug/index.ts".', tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEntrypoint)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEntrypoint))), static_files: Schema.Array( Schema.String.annotate({ description: "Static file glob for the function.", @@ -64,7 +64,7 @@ const func = Schema.Struct({ tags, links, }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultStaticFiles])), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultStaticFiles]))), env: Schema.Record( envName.annotate({ description: "Environment variable name exposed to the Function.", @@ -82,8 +82,8 @@ const func = Schema.Struct({ tags, links, }) - .pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultEnv }))), -}).pipe(Schema.withDecodingDefault(() => ({ ...defaultFunction }))); + .pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultEnv }))), +}).pipe(Schema.withDecodingDefault(Effect.succeed({ ...defaultFunction }))); export const functions = Schema.Record(functionName, func) .annotate({ @@ -91,4 +91,4 @@ export const functions = Schema.Record(functionName, func) description: "Function-specific configuration keyed by function slug.", tags, }) - .pipe(Schema.withDecodingDefault(() => ({ ...defaultFunctions }))); + .pipe(Schema.withDecodingDefault(Effect.succeed({ ...defaultFunctions }))); diff --git a/packages/config/src/inbucket.ts b/packages/config/src/inbucket.ts index bbe0cb8f2..fc2dfd5a7 100644 --- a/packages/config/src/inbucket.ts +++ b/packages/config/src/inbucket.ts @@ -1,5 +1,5 @@ import dedent from "dedent"; -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; const links = [ { @@ -19,7 +19,7 @@ export const inbucket = Schema.Struct({ description: "Enable the local Inbucket service.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), port: Schema.Number.annotate({ default: defaultPort, description: dedent` @@ -29,7 +29,7 @@ export const inbucket = Schema.Struct({ `, tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultPort)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPort))), smtp_port: Schema.optionalKey( Schema.Number.annotate({ description: "Optional SMTP port to expose for local testing.", @@ -58,4 +58,4 @@ export const inbucket = Schema.Struct({ links, }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultInbucket }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultInbucket }))); diff --git a/packages/config/src/project-config.service.ts b/packages/config/src/project-config.service.ts index 94aa2d9be..e9604b736 100644 --- a/packages/config/src/project-config.service.ts +++ b/packages/config/src/project-config.service.ts @@ -1,5 +1,5 @@ import type { Effect } from "effect"; -import { ServiceMap } from "effect"; +import { Context } from "effect"; import type { LoadedProjectConfig, SaveProjectConfigOptions } from "./io.ts"; interface ProjectConfigStoreShape { @@ -8,7 +8,7 @@ interface ProjectConfigStoreShape { readonly save: (options: SaveProjectConfigOptions) => Effect.Effect; } -export class ProjectConfigStore extends ServiceMap.Service< +export class ProjectConfigStore extends Context.Service< ProjectConfigStore, ProjectConfigStoreShape >()("@supabase/config/ProjectConfigStore") {} diff --git a/packages/config/src/realtime.ts b/packages/config/src/realtime.ts index 764060c39..10299ad7f 100644 --- a/packages/config/src/realtime.ts +++ b/packages/config/src/realtime.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { stringEnum } from "./lib/schema.ts"; const links = [ @@ -20,7 +20,7 @@ export const realtime = Schema.Struct({ description: "Enable the local Realtime service.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), ip_version: stringEnum(["IPv4", "IPv6"], { default: defaultIpVersion, description: "Bind realtime via either IPv4 or IPv6.", @@ -31,10 +31,10 @@ export const realtime = Schema.Struct({ link: "https://supabase.com/docs/guides/realtime/self-hosting", }, ], - }).pipe(Schema.withDecodingDefaultKey(() => defaultIpVersion)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultIpVersion))), max_header_length: Schema.Number.annotate({ default: defaultMaxHeaderLength, description: "Maximum length of the HTTP header.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxHeaderLength)), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultRealtime }))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxHeaderLength))), +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultRealtime }))); diff --git a/packages/config/src/storage.ts b/packages/config/src/storage.ts index 3540c9c72..c9f88ee5d 100644 --- a/packages/config/src/storage.ts +++ b/packages/config/src/storage.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; const links = [ { @@ -33,14 +33,14 @@ const bucketSchema = Schema.Struct({ public: Schema.Boolean.annotate({ default: defaultBucketPublic, description: "Enable public access to the bucket.", - }).pipe(Schema.withDecodingDefaultKey(() => defaultBucketPublic)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultBucketPublic))), file_size_limit: Schema.String.annotate({ default: defaultBucketFileSizeLimit, description: "The maximum file size allowed for the bucket.", examples: ["5MB", "500KB"], tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultBucketFileSizeLimit)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultBucketFileSizeLimit))), allowed_mime_types: Schema.Array( Schema.String.annotate({ description: "A MIME type allowed for the bucket.", @@ -52,13 +52,13 @@ const bucketSchema = Schema.Struct({ description: "The list of allowed MIME types for the bucket.", tags, }) - .pipe(Schema.withDecodingDefaultKey(() => [...defaultBucketAllowedMimeTypes])), + .pipe(Schema.withDecodingDefaultKey(Effect.succeed([...defaultBucketAllowedMimeTypes]))), objects_path: Schema.String.annotate({ default: defaultBucketObjectsPath, description: "The path to the objects in the bucket.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultBucketObjectsPath)), -}).pipe(Schema.withDecodingDefault(() => ({}))); + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultBucketObjectsPath))), +}).pipe(Schema.withDecodingDefault(Effect.succeed({}))); export const storage = Schema.Struct({ enabled: Schema.Boolean.annotate({ @@ -66,14 +66,14 @@ export const storage = Schema.Struct({ description: "Enable the local Storage service.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), file_size_limit: Schema.String.annotate({ default: defaultFileSizeLimit, description: "The maximum file size allowed.", examples: ["5MB", "500KB"], tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultFileSizeLimit)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultFileSizeLimit))), image_transformation: Schema.optionalKey( Schema.Struct({ enabled: Schema.Boolean.annotate({ @@ -81,8 +81,8 @@ export const storage = Schema.Struct({ description: "Enable image transformation.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => false)), - }).pipe(Schema.withDecodingDefaultKey(() => ({}))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(false))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({}))), ), buckets: Schema.optionalKey( Schema.Record(Schema.String, bucketSchema).annotate({ @@ -96,72 +96,76 @@ export const storage = Schema.Struct({ description: "Allow connections via S3 compatible clients.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultS3ProtocolEnabled)), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultS3Protocol }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultS3ProtocolEnabled))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultS3Protocol }))), analytics: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultAnalyticsEnabled, description: "Enable analytics buckets.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultAnalyticsEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultAnalyticsEnabled))), max_namespaces: Schema.Number.annotate({ default: defaultMaxNamespaces, description: "Maximum number of analytics namespaces.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxNamespaces)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxNamespaces))), max_tables: Schema.Number.annotate({ default: defaultMaxTables, description: "Maximum number of analytics tables.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxTables)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxTables))), max_catalogs: Schema.Number.annotate({ default: defaultMaxCatalogs, description: "Maximum number of analytics catalogs.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxCatalogs)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxCatalogs))), buckets: Schema.Record( Schema.String, - Schema.Struct({}).pipe(Schema.withDecodingDefault(() => ({ ...defaultAnalyticsBuckets }))), + Schema.Struct({}).pipe( + Schema.withDecodingDefault(Effect.succeed({ ...defaultAnalyticsBuckets })), + ), ) .annotate({ default: defaultAnalyticsBuckets, description: "Analytics bucket configuration.", tags, }) - .pipe(Schema.withDecodingDefault(() => ({ ...defaultAnalyticsBuckets }))), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultAnalytics }))), + .pipe(Schema.withDecodingDefault(Effect.succeed({ ...defaultAnalyticsBuckets }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultAnalytics }))), vector: Schema.Struct({ enabled: Schema.Boolean.annotate({ default: defaultVectorEnabled, description: "Enable vector buckets.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultVectorEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultVectorEnabled))), max_buckets: Schema.Number.annotate({ default: defaultMaxBuckets, description: "Maximum number of vector buckets.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxBuckets)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxBuckets))), max_indexes: Schema.Number.annotate({ default: defaultMaxIndexes, description: "Maximum number of vector indexes.", tags, links, - }).pipe(Schema.withDecodingDefaultKey(() => defaultMaxIndexes)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultMaxIndexes))), buckets: Schema.Record( Schema.String, - Schema.Struct({}).pipe(Schema.withDecodingDefault(() => ({ ...defaultVectorBuckets }))), + Schema.Struct({}).pipe( + Schema.withDecodingDefault(Effect.succeed({ ...defaultVectorBuckets })), + ), ) .annotate({ default: defaultVectorBuckets, description: "Vector bucket configuration.", tags, }) - .pipe(Schema.withDecodingDefault(() => ({ ...defaultVectorBuckets }))), - }).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultVector }))), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultStorage }))); + .pipe(Schema.withDecodingDefault(Effect.succeed({ ...defaultVectorBuckets }))), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultVector }))), +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultStorage }))); diff --git a/packages/config/src/studio.ts b/packages/config/src/studio.ts index 61a2deeb2..16fc90ec0 100644 --- a/packages/config/src/studio.ts +++ b/packages/config/src/studio.ts @@ -1,4 +1,4 @@ -import { Schema } from "effect"; +import { Effect, Schema } from "effect"; import { secret } from "./lib/env.ts"; const links = { @@ -24,18 +24,18 @@ export const studio = Schema.Struct({ description: "Enable the local Supabase Studio dashboard.", tags, links: [links.studio], - }).pipe(Schema.withDecodingDefaultKey(() => defaultEnabled)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultEnabled))), port: Schema.Number.annotate({ default: defaultPort, description: "Port to use for Supabase Studio.", tags, - }).pipe(Schema.withDecodingDefaultKey(() => defaultPort)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultPort))), api_url: Schema.String.annotate({ default: defaultApiUrl, description: "External URL of the API server that frontend connects to.", tags, links: [links.config], - }).pipe(Schema.withDecodingDefaultKey(() => defaultApiUrl)), + }).pipe(Schema.withDecodingDefaultKey(Effect.succeed(defaultApiUrl))), openai_api_key: Schema.optionalKey( secret({ examples: ["env(OPENAI_API_KEY)"], @@ -44,4 +44,4 @@ export const studio = Schema.Struct({ links: [links.config], }), ), -}).pipe(Schema.withDecodingDefaultKey(() => ({ ...defaultStudio }))); +}).pipe(Schema.withDecodingDefaultKey(Effect.succeed({ ...defaultStudio }))); diff --git a/packages/process-compose/src/HealthProbe.unit.test.ts b/packages/process-compose/src/HealthProbe.unit.test.ts index c3048f76e..c4bcf4f6c 100644 --- a/packages/process-compose/src/HealthProbe.unit.test.ts +++ b/packages/process-compose/src/HealthProbe.unit.test.ts @@ -114,6 +114,7 @@ describe("HealthProbe", () => { isRunning: Effect.succeed(false), stdin: Sink.drain, kill: () => Effect.void, + unref: Effect.succeed(Effect.void), getInputFd: () => Sink.drain, getOutputFd: () => Stream.empty, }); diff --git a/packages/process-compose/src/LogBuffer.ts b/packages/process-compose/src/LogBuffer.ts index 65fdfd9b8..53a247098 100644 --- a/packages/process-compose/src/LogBuffer.ts +++ b/packages/process-compose/src/LogBuffer.ts @@ -1,4 +1,4 @@ -import { Effect, Layer, PubSub, Ref, ServiceMap, Stream } from "effect"; +import { Effect, Layer, PubSub, Ref, Context, Stream } from "effect"; export interface LogEntry { readonly timestamp: number; @@ -9,7 +9,7 @@ export interface LogEntry { const MAX_BUFFER_SIZE = 10_000; -export class LogBuffer extends ServiceMap.Service< +export class LogBuffer extends Context.Service< LogBuffer, { readonly append: ( diff --git a/packages/process-compose/src/Orchestrator.ts b/packages/process-compose/src/Orchestrator.ts index bf21f85f9..ad24308ff 100644 --- a/packages/process-compose/src/Orchestrator.ts +++ b/packages/process-compose/src/Orchestrator.ts @@ -6,7 +6,7 @@ import { Exit, FiberMap, Layer, - ServiceMap, + Context, Stream, SubscriptionRef, } from "effect"; @@ -39,7 +39,7 @@ const waitForProcessToStop = (handle: { } }); -export class Orchestrator extends ServiceMap.Service< +export class Orchestrator extends Context.Service< Orchestrator, { readonly start: () => Effect.Effect; diff --git a/packages/process-compose/src/Orchestrator.unit.test.ts b/packages/process-compose/src/Orchestrator.unit.test.ts index f2f0a0d16..22a45f266 100644 --- a/packages/process-compose/src/Orchestrator.unit.test.ts +++ b/packages/process-compose/src/Orchestrator.unit.test.ts @@ -204,6 +204,7 @@ function mockChildProcessSpawner( killEvents.notify(); yield* Deferred.succeed(exitDeferred, ChildProcessSpawner.ExitCode(143)); }), + unref: Effect.succeed(Effect.void), getInputFd: () => Sink.drain, getOutputFd: () => Stream.empty, }); @@ -286,6 +287,7 @@ function mockStuckChildProcessSpawner() { // Await exit like the real spawner — blocks until process exits yield* Deferred.await(exitDeferred); }).pipe(Effect.asVoid), + unref: Effect.succeed(Effect.void), getInputFd: () => Sink.drain, getOutputFd: () => Stream.empty, }); diff --git a/packages/process-compose/tests/helpers/mocks.ts b/packages/process-compose/tests/helpers/mocks.ts index b72d69f22..4d564db8a 100644 --- a/packages/process-compose/tests/helpers/mocks.ts +++ b/packages/process-compose/tests/helpers/mocks.ts @@ -60,6 +60,7 @@ export function mockChildProcessSpawner( killed.push(killOpts?.killSignal ?? "SIGTERM"); running = false; }), + unref: Effect.succeed(Effect.void), getInputFd: () => Sink.drain, getOutputFd: () => Stream.empty, }); diff --git a/packages/stack/package.json b/packages/stack/package.json index 0ab412a7a..b17d585cc 100644 --- a/packages/stack/package.json +++ b/packages/stack/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@effect/vitest": "catalog:", - "@supabase/supabase-js": "^2.104.0", + "@supabase/supabase-js": "^2.105.4", "@tsconfig/bun": "catalog:", "@types/bun": "catalog:", "@typescript/native-preview": "catalog:", diff --git a/packages/stack/src/ApiProxy.ts b/packages/stack/src/ApiProxy.ts index fc4269959..6e0e12d40 100644 --- a/packages/stack/src/ApiProxy.ts +++ b/packages/stack/src/ApiProxy.ts @@ -1,4 +1,4 @@ -import { Effect, Layer, Option, ServiceMap } from "effect"; +import { Effect, Layer, Option, Context } from "effect"; import { Headers, HttpBody, @@ -163,7 +163,7 @@ function makeProxyHandler( ); } -export class ApiProxy extends ServiceMap.Service< +export class ApiProxy extends Context.Service< ApiProxy, { readonly address: HttpServer.Address; diff --git a/packages/stack/src/ApiProxy.unit.test.ts b/packages/stack/src/ApiProxy.unit.test.ts index 78aa5bd96..44567eb09 100644 --- a/packages/stack/src/ApiProxy.unit.test.ts +++ b/packages/stack/src/ApiProxy.unit.test.ts @@ -100,7 +100,7 @@ describe("ApiProxy", () => { runtime = ManagedRuntime.make(buildProxyLayer(config)); - const proxy = await runtime.runPromise(ApiProxy.asEffect()); + const proxy = await runtime.runPromise(ApiProxy); const addr = proxy.address; if (addr._tag === "TcpAddress") { const host = addr.hostname === "0.0.0.0" ? "127.0.0.1" : addr.hostname; @@ -298,7 +298,7 @@ describe("ApiProxy", () => { const deadRuntime = ManagedRuntime.make(buildProxyLayer(deadConfig)); try { - const deadProxy = await deadRuntime.runPromise(ApiProxy.asEffect()); + const deadProxy = await deadRuntime.runPromise(ApiProxy); const deadAddr2 = deadProxy.address; let deadProxyUrl = ""; if (deadAddr2._tag === "TcpAddress") { diff --git a/packages/stack/src/BinaryResolver.ts b/packages/stack/src/BinaryResolver.ts index 0a43277a5..bd8c11400 100644 --- a/packages/stack/src/BinaryResolver.ts +++ b/packages/stack/src/BinaryResolver.ts @@ -1,5 +1,5 @@ import { createHash } from "node:crypto"; -import { Effect, FileSystem, Layer, Path, ServiceMap } from "effect"; +import { Effect, FileSystem, Layer, Path, Context } from "effect"; import { HttpClient } from "effect/unstable/http"; import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; import { BinaryNotFoundError, ChecksumMismatchError, DownloadError } from "./errors.ts"; @@ -104,7 +104,7 @@ const verifyChecksum = ( }), ); -export class BinaryResolver extends ServiceMap.Service< +export class BinaryResolver extends Context.Service< BinaryResolver, { readonly resolveWithMetadata: ( diff --git a/packages/stack/src/DaemonServer.integration.test.ts b/packages/stack/src/DaemonServer.integration.test.ts index 1085b221e..5e949f64f 100644 --- a/packages/stack/src/DaemonServer.integration.test.ts +++ b/packages/stack/src/DaemonServer.integration.test.ts @@ -162,7 +162,7 @@ describe("DaemonServer", () => { beforeAll(async () => { mock = mockStack(); runtime = ManagedRuntime.make(buildDaemonLayer(mock)); - const daemon = await runtime.runPromise(DaemonServer.asEffect()); + const daemon = await runtime.runPromise(DaemonServer); url = getUrl(daemon.address); }); @@ -358,7 +358,7 @@ describe("DaemonServer", () => { const freshMock = mockStack(); const freshRuntime = ManagedRuntime.make(buildDaemonLayer(freshMock)); try { - const daemon = await freshRuntime.runPromise(DaemonServer.asEffect()); + const daemon = await freshRuntime.runPromise(DaemonServer); const freshUrl = getUrl(daemon.address); // Start waiting for shutdown diff --git a/packages/stack/src/DaemonServer.ts b/packages/stack/src/DaemonServer.ts index d2fdc355f..4dca71130 100644 --- a/packages/stack/src/DaemonServer.ts +++ b/packages/stack/src/DaemonServer.ts @@ -1,4 +1,4 @@ -import { Deferred, Effect, Layer, ServiceMap, Stream } from "effect"; +import { Deferred, Effect, Layer, Context, Stream } from "effect"; import { Headers, HttpRouter, @@ -13,7 +13,7 @@ import { EdgeRuntimeReloadConfigSchema, Stack } from "./Stack.ts"; // Service // --------------------------------------------------------------------------- -export class DaemonServer extends ServiceMap.Service< +export class DaemonServer extends Context.Service< DaemonServer, { readonly address: HttpServer.Address; @@ -102,7 +102,7 @@ export class DaemonServer extends ServiceMap.Service< "GET", "/logs", Effect.gen(function* () { - const searchParams = yield* HttpServerRequest.ParsedSearchParams.asEffect(); + const searchParams = yield* HttpServerRequest.ParsedSearchParams; const services = parseServices(searchParams.service); return sseResponse(stack.subscribeAllLogs(services), "log", (e) => JSON.stringify(e)); }), @@ -113,7 +113,7 @@ export class DaemonServer extends ServiceMap.Service< "GET", "/logs/history", Effect.gen(function* () { - const searchParams = yield* HttpServerRequest.ParsedSearchParams.asEffect(); + const searchParams = yield* HttpServerRequest.ParsedSearchParams; const limit = parseLimit(searchParams.limit); const services = parseServices(searchParams.service); const entries = yield* stack.logHistoryAll(limit, services); @@ -127,7 +127,7 @@ export class DaemonServer extends ServiceMap.Service< "/logs/:service/history", Effect.gen(function* () { const routeParams = yield* HttpRouter.params; - const searchParams = yield* HttpServerRequest.ParsedSearchParams.asEffect(); + const searchParams = yield* HttpServerRequest.ParsedSearchParams; const service = parseSingleParam(routeParams.service)!; const limit = parseLimit(searchParams.limit); const entries = yield* stack.logHistory(service, limit); @@ -211,7 +211,7 @@ export class DaemonServer extends ServiceMap.Service< "POST", "/functions/reload", Effect.gen(function* () { - const searchParams = yield* HttpServerRequest.ParsedSearchParams.asEffect(); + const searchParams = yield* HttpServerRequest.ParsedSearchParams; yield* stack.reloadFunctions({ envFile: parseSingleParam(searchParams.envFile), noVerifyJwt: parseBoolean(searchParams.noVerifyJwt), diff --git a/packages/stack/src/JwtGenerator.ts b/packages/stack/src/JwtGenerator.ts index d52c62328..83ac2115d 100644 --- a/packages/stack/src/JwtGenerator.ts +++ b/packages/stack/src/JwtGenerator.ts @@ -1,5 +1,5 @@ import { createHmac } from "node:crypto"; -import { Effect, Layer, ServiceMap } from "effect"; +import { Effect, Layer, Context } from "effect"; // Hardcoded opaque key defaults matching Go CLI (pkg/config/apikeys.go:19-20). // These are client-facing keys for local dev — SDKs use these, not JWTs directly. @@ -39,7 +39,7 @@ export function generateJwks(secret: string): string { }); } -export class JwtGenerator extends ServiceMap.Service< +export class JwtGenerator extends Context.Service< JwtGenerator, { readonly generate: (secret: string, role: string) => Effect.Effect; diff --git a/packages/stack/src/RemoteStack.integration.test.ts b/packages/stack/src/RemoteStack.integration.test.ts index 170488c35..f7581f902 100644 --- a/packages/stack/src/RemoteStack.integration.test.ts +++ b/packages/stack/src/RemoteStack.integration.test.ts @@ -164,7 +164,7 @@ describe("RemoteStack integration", () => { beforeAll(async () => { mock = mockStack(); serverRuntime = ManagedRuntime.make(buildServerLayer(mock)); - const daemon = await serverRuntime.runPromise(DaemonServer.asEffect()); + const daemon = await serverRuntime.runPromise(DaemonServer); // Build RemoteStack layer targeting the server's TCP address. // RemoteStack uses Bun's `fetch({ unix })` but we test with TCP here @@ -291,15 +291,13 @@ describe("RemoteStack integration", () => { }); test("getInfo returns stack info", async () => { - const info = await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.getInfo()), - ); + const info = await clientRuntime.runPromise(Effect.flatMap(Stack, (stack) => stack.getInfo())); expect(info).toEqual(MOCK_INFO); }); test("getAllStates returns service states", async () => { const states = await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.getAllStates()), + Effect.flatMap(Stack, (stack) => stack.getAllStates()), ); expect(states).toHaveLength(2); expect(states.at(0)?.name).toBe("postgres"); @@ -308,7 +306,7 @@ describe("RemoteStack integration", () => { test("getState returns a single service state", async () => { const state = await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.getState("postgres")), + Effect.flatMap(Stack, (stack) => stack.getState("postgres")), ); expect(state.name).toBe("postgres"); expect(state.status).toBe("Running"); @@ -316,42 +314,40 @@ describe("RemoteStack integration", () => { test("getState fails for unknown service", async () => { const exit = await clientRuntime.runPromiseExit( - Effect.flatMap(Stack.asEffect(), (stack) => stack.getState("unknown")), + Effect.flatMap(Stack, (stack) => stack.getState("unknown")), ); expect(exit._tag).toBe("Failure"); }); test("startService records the call", async () => { await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.startService("postgres")), + Effect.flatMap(Stack, (stack) => stack.startService("postgres")), ); expect(mock.serviceCalls).toContain("start:postgres"); }); test("startService fails for unknown service", async () => { const exit = await clientRuntime.runPromiseExit( - Effect.flatMap(Stack.asEffect(), (stack) => stack.startService("unknown")), + Effect.flatMap(Stack, (stack) => stack.startService("unknown")), ); expect(exit._tag).toBe("Failure"); }); test("stopService records the call", async () => { - await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.stopService("auth")), - ); + await clientRuntime.runPromise(Effect.flatMap(Stack, (stack) => stack.stopService("auth"))); expect(mock.serviceCalls).toContain("stop:auth"); }); test("restartService records the call", async () => { await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.restartService("postgres")), + Effect.flatMap(Stack, (stack) => stack.restartService("postgres")), ); expect(mock.serviceCalls).toContain("restart:postgres"); }); test("reloadEdgeRuntime records the call", async () => { await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => + Effect.flatMap(Stack, (stack) => stack.reloadEdgeRuntime({ edgeRuntime: { policy: "oneshot" } }), ), ); @@ -360,7 +356,7 @@ describe("RemoteStack integration", () => { test("logHistory returns entries", async () => { const entries = await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.logHistory("postgres")), + Effect.flatMap(Stack, (stack) => stack.logHistory("postgres")), ); expect(entries).toHaveLength(2); expect(entries.at(0)?.line).toBe("starting"); @@ -368,7 +364,7 @@ describe("RemoteStack integration", () => { test("logHistory respects limit", async () => { const entries = await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.logHistory("postgres", 1)), + Effect.flatMap(Stack, (stack) => stack.logHistory("postgres", 1)), ); expect(entries).toHaveLength(1); expect(entries.at(0)?.line).toBe("ready"); @@ -376,14 +372,14 @@ describe("RemoteStack integration", () => { test("logHistoryAll returns merged entries", async () => { const entries = await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.logHistoryAll(3)), + Effect.flatMap(Stack, (stack) => stack.logHistoryAll(3)), ); expect(entries.map((entry) => entry.line)).toEqual(["starting", "ready", "auth started"]); }); test("logHistoryAll respects service filters", async () => { const entries = await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => stack.logHistoryAll(10, ["auth"])), + Effect.flatMap(Stack, (stack) => stack.logHistoryAll(10, ["auth"])), ); expect(entries).toHaveLength(1); expect(entries.at(0)?.service).toBe("auth"); @@ -394,7 +390,7 @@ describe("RemoteStack integration", () => { const freshMock = mockStack(); const freshServer = ManagedRuntime.make(buildServerLayer(freshMock)); try { - const daemon = await freshServer.runPromise(DaemonServer.asEffect()); + const daemon = await freshServer.runPromise(DaemonServer); const addr = daemon.address; if (addr._tag !== "TcpAddress") throw new Error("Expected TcpAddress"); const host = addr.hostname === "0.0.0.0" ? "127.0.0.1" : addr.hostname; diff --git a/packages/stack/src/RemoteStack.ts b/packages/stack/src/RemoteStack.ts index 11afaa157..00803d744 100644 --- a/packages/stack/src/RemoteStack.ts +++ b/packages/stack/src/RemoteStack.ts @@ -76,9 +76,7 @@ function makeRequest(path: string, init?: RequestInit) { /** Make a fetch request to the daemon Unix socket. */ function unixFetch(socketPath: string, path: string, init?: RequestInit) { - return Effect.flatMap(UnixHttpClient.asEffect(), (client) => - client.request(socketPath, path, init), - ); + return Effect.flatMap(UnixHttpClient, (client) => client.request(socketPath, path, init)); } function unixResponse(socketPath: string, path: string, init?: RequestInit) { diff --git a/packages/stack/src/Stack.ts b/packages/stack/src/Stack.ts index 9eaef047e..27b53f7c1 100644 --- a/packages/stack/src/Stack.ts +++ b/packages/stack/src/Stack.ts @@ -1,6 +1,6 @@ import { ServiceNotFoundError } from "@supabase/process-compose"; import type { LogEntry, ServiceReadyError } from "@supabase/process-compose"; -import { Effect, Layer, Schema, ServiceMap, Stream } from "effect"; +import { Effect, Layer, Schema, Context, Stream } from "effect"; import { StackBuildError } from "./errors.ts"; import type { FunctionsConfig } from "./functions.ts"; import { StackLifecycleCoordinator } from "./StackLifecycleCoordinator.ts"; @@ -49,9 +49,9 @@ export interface EdgeRuntimeReloadConfig { readonly functions?: FunctionsConfig; } -type StackService = ServiceMap.Service.Shape; +type StackService = typeof Stack.Service; -export class Stack extends ServiceMap.Service< +export class Stack extends Context.Service< Stack, { readonly getInfo: () => Effect.Effect; diff --git a/packages/stack/src/StackBuilder.ts b/packages/stack/src/StackBuilder.ts index 510aeaa91..d85ca7e8f 100644 --- a/packages/stack/src/StackBuilder.ts +++ b/packages/stack/src/StackBuilder.ts @@ -1,6 +1,6 @@ import { buildGraph } from "@supabase/process-compose"; import type { ResolvedGraph, ServiceDef } from "@supabase/process-compose"; -import { Effect, Layer, ServiceMap } from "effect"; +import { Effect, Layer, Context } from "effect"; import type { CleanupTargets } from "./CleanupTargets.ts"; import { StackBuildError } from "./errors.ts"; import type { FunctionsConfig, ResolvedFunctionsConfig } from "./functions.ts"; @@ -485,7 +485,7 @@ export const nativePostgresNeedsDockerAccess = ( dockerServicesEnabled: boolean, ): boolean => postgresResolution.type === "binary" && dockerServicesEnabled; -export class StackBuilder extends ServiceMap.Service< +export class StackBuilder extends Context.Service< StackBuilder, { readonly build: ( diff --git a/packages/stack/src/StackBuilder.unit.test.ts b/packages/stack/src/StackBuilder.unit.test.ts index 92a4ca9d5..81673564f 100644 --- a/packages/stack/src/StackBuilder.unit.test.ts +++ b/packages/stack/src/StackBuilder.unit.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "@effect/vitest"; -import { Deferred, Effect, Layer, ServiceMap, Sink, Stream } from "effect"; +import { Deferred, Effect, Layer, Sink, Stream } from "effect"; import { ChildProcessSpawner } from "effect/unstable/process"; import { mockBinaryResolver } from "../tests/helpers/mocks.ts"; import { defaultPublishableKey, defaultSecretKey, generateJwt } from "./JwtGenerator.ts"; @@ -128,6 +128,7 @@ function mockSequenceSpawner( isRunning: Effect.succeed(true), stdin: Sink.drain, kill: () => Effect.void, + unref: Effect.succeed(Effect.void), getInputFd: () => Sink.drain, getOutputFd: () => Stream.empty, }); @@ -147,8 +148,8 @@ function builderLayer( } const prepareAndBuild = ( - builder: ServiceMap.Service.Shape, - preparation: ServiceMap.Service.Shape, + builder: typeof StackBuilder.Service, + preparation: typeof StackPreparation.Service, config: ResolvedStackConfig, ): Effect.Effect => Effect.gen(function* () { diff --git a/packages/stack/src/StackLifecycleCoordinator.ts b/packages/stack/src/StackLifecycleCoordinator.ts index 72824dd49..f2e21ec86 100644 --- a/packages/stack/src/StackLifecycleCoordinator.ts +++ b/packages/stack/src/StackLifecycleCoordinator.ts @@ -8,7 +8,7 @@ import { Layer, Path, Ref, - ServiceMap, + Context, Stream, SubscriptionRef, } from "effect"; @@ -128,7 +128,7 @@ const changedStatesBetween = ( return current.filter((state) => !sameState(previousByName.get(state.name), state)); }; -export class StackLifecycleCoordinator extends ServiceMap.Service< +export class StackLifecycleCoordinator extends Context.Service< StackLifecycleCoordinator, { readonly getInfo: () => Effect.Effect; @@ -198,7 +198,7 @@ export class StackLifecycleCoordinator extends ServiceMap.Service< const phaseRef = yield* Ref.make("idle"); const logBufferServices = yield* Layer.buildWithScope(LogBuffer.layer, scope); - const logBuffer = ServiceMap.get(logBufferServices, LogBuffer); + const logBuffer = Context.get(logBufferServices, LogBuffer); const updateState = (nextState: StackServiceState) => SubscriptionRef.update(stateRef, (current) => { @@ -347,7 +347,7 @@ export class StackLifecycleCoordinator extends ServiceMap.Service< Layer.provide(Layer.succeed(ChildProcessSpawner.ChildProcessSpawner, spawner)), ); const orchServices = yield* Layer.buildWithScope(orchLayer, scope); - const orchestrator = ServiceMap.get(orchServices, Orchestrator); + const orchestrator = Context.get(orchServices, Orchestrator); const projectedStates = Stream.unwrap( Effect.gen(function* () { diff --git a/packages/stack/src/StackMetadataPersistence.ts b/packages/stack/src/StackMetadataPersistence.ts index e6ccf0cf7..10ec0e8df 100644 --- a/packages/stack/src/StackMetadataPersistence.ts +++ b/packages/stack/src/StackMetadataPersistence.ts @@ -1,8 +1,8 @@ -import { Effect, Layer, ServiceMap } from "effect"; +import { Effect, Layer, Context } from "effect"; import type { CleanupTargets } from "./CleanupTargets.ts"; import { StateManager } from "./StateManager.ts"; -export class StackMetadataPersistence extends ServiceMap.Service< +export class StackMetadataPersistence extends Context.Service< StackMetadataPersistence, { readonly persistCleanupTargets: (cleanupTargets: CleanupTargets) => Effect.Effect; diff --git a/packages/stack/src/StackPreparation.ts b/packages/stack/src/StackPreparation.ts index 430b2a8de..1c3a856be 100644 --- a/packages/stack/src/StackPreparation.ts +++ b/packages/stack/src/StackPreparation.ts @@ -1,4 +1,4 @@ -import { Cause, Data, Effect, Exit, Layer, Queue, ServiceMap, Stream } from "effect"; +import { Cause, Data, Effect, Exit, Layer, Queue, Context, Stream } from "effect"; import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; import { BinaryResolver } from "./BinaryResolver.ts"; import type { ChecksumMismatchError } from "./errors.ts"; @@ -152,7 +152,7 @@ export const prepareAssetsWithDependencies = ( return artifacts; }); -export class StackPreparation extends ServiceMap.Service< +export class StackPreparation extends Context.Service< StackPreparation, { readonly prepare: ( diff --git a/packages/stack/src/StackStateProjection.ts b/packages/stack/src/StackStateProjection.ts index 8f6db1377..386357fef 100644 --- a/packages/stack/src/StackStateProjection.ts +++ b/packages/stack/src/StackStateProjection.ts @@ -5,7 +5,7 @@ import { fromRawServiceState, } from "./StackServiceState.ts"; -export interface StackServiceProjectionSpec { +interface StackServiceProjectionSpec { readonly visibility: "public" | "internal"; readonly owner?: string; readonly ownerStatusWhileActive?: StackServiceStatus; diff --git a/packages/stack/src/StateManager.ts b/packages/stack/src/StateManager.ts index fd15cb46a..27303a921 100644 --- a/packages/stack/src/StateManager.ts +++ b/packages/stack/src/StateManager.ts @@ -1,4 +1,4 @@ -import { Data, Effect, Layer, Schema, ServiceMap } from "effect"; +import { Data, Effect, Layer, Schema, Context } from "effect"; import { FileSystem, Path } from "effect"; import { AllocatedPortsSchema, type AllocatedPorts } from "./PortAllocator.ts"; import { @@ -511,7 +511,7 @@ function makeIsAlive() { // Service // --------------------------------------------------------------------------- -export class StateManager extends ServiceMap.Service< +export class StateManager extends Context.Service< StateManager, { readonly stackDir: (name: string) => string; @@ -604,4 +604,4 @@ export class StateManager extends ServiceMap.Service< } } -export type StateManagerService = ServiceMap.Service.Shape; +export type StateManagerService = typeof StateManager.Service; diff --git a/packages/stack/src/UnixHttpClient.ts b/packages/stack/src/UnixHttpClient.ts index 174155ecf..1273642c6 100644 --- a/packages/stack/src/UnixHttpClient.ts +++ b/packages/stack/src/UnixHttpClient.ts @@ -1,4 +1,4 @@ -import { Data, Effect, ServiceMap } from "effect"; +import { Data, Effect, Context } from "effect"; export class UnixHttpClientError extends Data.TaggedError("UnixHttpClientError")<{ readonly socketPath: string; @@ -6,7 +6,7 @@ export class UnixHttpClientError extends Data.TaggedError("UnixHttpClientError") readonly cause: unknown; }> {} -export class UnixHttpClient extends ServiceMap.Service< +export class UnixHttpClient extends Context.Service< UnixHttpClient, { readonly request: ( diff --git a/packages/stack/src/UnixSocketSse.integration.test.ts b/packages/stack/src/UnixSocketSse.integration.test.ts index c51294d86..e6694814d 100644 --- a/packages/stack/src/UnixSocketSse.integration.test.ts +++ b/packages/stack/src/UnixSocketSse.integration.test.ts @@ -121,7 +121,7 @@ describe("Unix socket SSE integration", () => { ); try { - await runtime.runPromise(DaemonServer.asEffect()); + await runtime.runPromise(DaemonServer); const res = await fetch("http://localhost/logs", { unix: socketPath } as RequestInit); @@ -161,10 +161,10 @@ describe("Unix socket SSE integration", () => { ); try { - await serverRuntime.runPromise(DaemonServer.asEffect()); + await serverRuntime.runPromise(DaemonServer); const entries = await clientRuntime.runPromise( - Effect.flatMap(Stack.asEffect(), (stack) => + Effect.flatMap(Stack, (stack) => stack.subscribeAllLogs().pipe(Stream.take(1), Stream.runCollect), ), ); diff --git a/packages/stack/src/createStack.ts b/packages/stack/src/createStack.ts index 13595df97..e05a95fa6 100644 --- a/packages/stack/src/createStack.ts +++ b/packages/stack/src/createStack.ts @@ -699,7 +699,7 @@ export async function createStack( const runtime = ManagedRuntime.make(fullLayer); try { - const services = await runtime.services(); + const services = await runtime.context(); const localStack = await runtime.runPromise( Effect.gen(function* () { return yield* Stack; diff --git a/packages/stack/src/daemon.ts b/packages/stack/src/daemon.ts index d5f768a1c..3b7f6107d 100644 --- a/packages/stack/src/daemon.ts +++ b/packages/stack/src/daemon.ts @@ -58,9 +58,9 @@ export async function runDaemon( appRuntime = ManagedRuntime.make(appLayer); // Build the stack (services are started later via POST /start) - const localStack = await appRuntime.runPromise(Stack.asEffect()); + const localStack = await appRuntime.runPromise(Stack); const info = await appRuntime.runPromise(localStack.getInfo()); - stateManager = await appRuntime.runPromise(StateManager.asEffect()); + stateManager = await appRuntime.runPromise(StateManager); // Build daemon management server on Unix socket const daemonLayer = DaemonServer.layer.pipe( @@ -69,7 +69,7 @@ export async function runDaemon( ) as unknown as Layer.Layer; daemonRuntime = ManagedRuntime.make(daemonLayer); - await daemonRuntime.runPromise(DaemonServer.asEffect()); + await daemonRuntime.runPromise(DaemonServer); // Build state and signal success to parent. // The parent (CLI) is responsible for writing the state file via StateManager. @@ -98,7 +98,7 @@ export async function runDaemon( process.send!(response); process.disconnect?.(); - const daemon = await daemonRuntime.runPromise(DaemonServer.asEffect()); + const daemon = await daemonRuntime.runPromise(DaemonServer); await Promise.race([daemonRuntime.runPromise(daemon.awaitShutdown), waitForSignal()]); await shutdownDaemon({ appRuntime, daemonRuntime, stateManager, daemonState }); process.exit(0); diff --git a/packages/stack/src/discovery.ts b/packages/stack/src/discovery.ts index 127400aeb..cd04b7e84 100644 --- a/packages/stack/src/discovery.ts +++ b/packages/stack/src/discovery.ts @@ -57,7 +57,7 @@ export const listStacks = (opts: { const metadataEntries = opts.projectStateRoot === undefined ? yield* scanAllManagedMetadata(opts.cacheRoot) - : yield* StateManager.asEffect().pipe( + : yield* StateManager.pipe( Effect.provide( StateManager.make(projectStateManagerPathsFromRoot(opts.projectStateRoot)), ), @@ -72,7 +72,7 @@ export const listStacks = (opts: { const states = opts.projectStateRoot === undefined ? yield* scanAllManagedStates(opts.cacheRoot) - : yield* StateManager.asEffect().pipe( + : yield* StateManager.pipe( Effect.provide( StateManager.make(projectStateManagerPathsFromRoot(opts.projectStateRoot)), ), @@ -94,7 +94,7 @@ export const listStacks = (opts: { continue; } - const stateManager = yield* StateManager.asEffect().pipe( + const stateManager = yield* StateManager.pipe( Effect.provide( StateManager.make( opts.projectStateRoot === undefined @@ -169,7 +169,7 @@ export const stopDaemon = (opts: { > => Effect.gen(function* () { const { state, alive } = yield* resolveManagedStack(opts); - const stateManager = yield* StateManager.asEffect().pipe( + const stateManager = yield* StateManager.pipe( Effect.provide( StateManager.make( opts.projectStateRoot === undefined @@ -225,7 +225,7 @@ export const deleteManagedStackPersistence = (opts: { Effect.gen(function* () { const cwd = opts.cwd ?? process.cwd(); const projectDir = opts.projectDir ?? cwd; - const stateManager = yield* StateManager.asEffect().pipe( + const stateManager = yield* StateManager.pipe( Effect.provide( StateManager.make( opts.projectStateRoot === undefined diff --git a/packages/stack/src/layers.ts b/packages/stack/src/layers.ts index 59a2df96d..7cc36fb50 100644 --- a/packages/stack/src/layers.ts +++ b/packages/stack/src/layers.ts @@ -153,7 +153,7 @@ export const daemonLayer = ( Effect.gen(function* () { const fs = yield* FileSystem.FileSystem; const unixHttpClient = yield* UnixHttpClient; - const stateManager = yield* StateManager.asEffect().pipe( + const stateManager = yield* StateManager.pipe( Effect.provide( StateManager.make( singleStackStateManagerPaths(config.stackRoot, config.runtimeRoot, config.name), diff --git a/packages/stack/src/managed-stack.ts b/packages/stack/src/managed-stack.ts index 4a377c3dd..872a6244f 100644 --- a/packages/stack/src/managed-stack.ts +++ b/packages/stack/src/managed-stack.ts @@ -32,7 +32,7 @@ export const resolveManagedStack = (opts: { const allStates = opts.projectStateRoot === undefined ? yield* scanAllManagedStates(opts.cacheRoot) - : yield* StateManager.asEffect().pipe( + : yield* StateManager.pipe( Effect.provide( StateManager.make(projectStateManagerPathsFromRoot(opts.projectStateRoot)), ), @@ -75,7 +75,7 @@ export const resolveManagedStack = (opts: { return yield* new NoRunningStackError({ cwd }); } - const stateManager = yield* StateManager.asEffect().pipe( + const stateManager = yield* StateManager.pipe( Effect.provide( StateManager.make( opts.projectStateRoot === undefined diff --git a/packages/stack/src/managed-stack.unit.test.ts b/packages/stack/src/managed-stack.unit.test.ts index 8e6407483..8f730fc09 100644 --- a/packages/stack/src/managed-stack.unit.test.ts +++ b/packages/stack/src/managed-stack.unit.test.ts @@ -129,7 +129,7 @@ function setup() { return { layer, files: fsm.files }; } -const makeStateManager = StateManager.asEffect().pipe( +const makeStateManager = StateManager.pipe( Effect.provide( StateManager.make(projectStateManagerPaths("/test-home", "/Users/test/Code/myapp")), ), diff --git a/packages/stack/src/prefetch.unit.test.ts b/packages/stack/src/prefetch.unit.test.ts index c9712fd7d..0b4310a98 100644 --- a/packages/stack/src/prefetch.unit.test.ts +++ b/packages/stack/src/prefetch.unit.test.ts @@ -54,6 +54,7 @@ function mockSequenceSpawner(results: ReadonlyArray) { isRunning: Effect.succeed(true), stdin: Sink.drain, kill: () => Effect.void, + unref: Effect.succeed(Effect.void), getInputFd: () => Sink.drain, getOutputFd: () => Stream.empty, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f6d4a8d1..2fd3dd871 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,59 +7,59 @@ settings: catalogs: default: '@effect/atom-react': - specifier: 4.0.0-beta.54 - version: 4.0.0-beta.54 + specifier: 4.0.0-beta.67 + version: 4.0.0-beta.67 '@effect/platform-bun': - specifier: ^4.0.0-beta.43 - version: 4.0.0-beta.43 + specifier: 4.0.0-beta.67 + version: 4.0.0-beta.67 '@effect/platform-node': - specifier: ^4.0.0-beta.43 - version: 4.0.0-beta.43 + specifier: 4.0.0-beta.67 + version: 4.0.0-beta.67 '@effect/vitest': specifier: ^4.0.0-beta.43 version: 4.0.0-beta.43 '@nx/devkit': - specifier: ^22.6.5 - version: 22.6.5 + specifier: ^22.7.2 + version: 22.7.2 '@swc-node/register': specifier: ^1.10.9 version: 1.11.1 '@swc/core': - specifier: ^1.15.30 - version: 1.15.30 + specifier: ^1.15.33 + version: 1.15.33 '@tsconfig/bun': specifier: ^1.0.10 version: 1.0.10 '@types/bun': - specifier: ^1.3.12 - version: 1.3.12 + specifier: ^1.3.14 + version: 1.3.14 '@typescript/native-preview': - specifier: 7.0.0-dev.20260422.1 - version: 7.0.0-dev.20260422.1 + specifier: 7.0.0-dev.20260518.1 + version: 7.0.0-dev.20260518.1 '@vitest/coverage-istanbul': - specifier: ^4.1.5 - version: 4.1.5 + specifier: ^4.1.6 + version: 4.1.6 effect: - specifier: ^4.0.0-beta.43 - version: 4.0.0-beta.43 + specifier: 4.0.0-beta.67 + version: 4.0.0-beta.67 knip: - specifier: ^6.6.1 - version: 6.6.1 + specifier: ^6.14.1 + version: 6.14.1 nx: - specifier: ^22.6.5 - version: 22.6.5 + specifier: ^22.7.2 + version: 22.7.2 oxfmt: - specifier: ^0.46.0 - version: 0.46.0 + specifier: ^0.50.0 + version: 0.50.0 oxlint: - specifier: ^1.61.0 - version: 1.61.0 + specifier: ^1.65.0 + version: 1.65.0 oxlint-tsgolint: - specifier: ^0.21.1 - version: 0.21.1 + specifier: ^0.23.0 + version: 0.23.0 vitest: - specifier: ^4.1.5 - version: 4.1.5 + specifier: ^4.1.6 + version: 4.1.6 importers: @@ -67,56 +67,37 @@ importers: devDependencies: '@swc-node/register': specifier: 'catalog:' - version: 1.11.1(@swc/core@1.15.30)(@swc/types@0.1.26)(typescript@6.0.3) + version: 1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.33)(@swc/types@0.1.26)(typescript@6.0.3) '@swc/core': specifier: 'catalog:' - version: 1.15.30 + version: 1.15.33 nx: specifier: 'catalog:' - version: 22.6.5(@swc-node/register@1.11.1(@swc/core@1.15.30)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.30) + version: 22.7.2(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.33)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.33) verdaccio: - specifier: ^6.5.2 - version: 6.5.2(typanion@3.14.0) + specifier: ^6.7.1 + version: 6.7.1(typanion@3.14.0) apps/cli: - dependencies: + devDependencies: '@clack/prompts': - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.4.0 + version: 1.4.0 '@effect/atom-react': specifier: 'catalog:' - version: 4.0.0-beta.54(effect@4.0.0-beta.43)(react@19.2.5)(scheduler@0.27.0) + version: 4.0.0-beta.67(effect@4.0.0-beta.67)(react@19.2.6)(scheduler@0.27.0) '@effect/platform-bun': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43) + version: 4.0.0-beta.67(effect@4.0.0-beta.67) + '@effect/vitest': + specifier: 'catalog:' + version: 4.0.0-beta.43(effect@4.0.0-beta.67)(vitest@4.1.6) '@napi-rs/keyring': - specifier: ^1.1.2 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 '@parcel/watcher': specifier: ^2.5.6 version: 2.5.6 - '@vercel/detect-agent': - specifier: ^1.2.3 - version: 1.2.3 - effect: - specifier: 'catalog:' - version: 4.0.0-beta.43 - ink: - specifier: ^7.0.1 - version: 7.0.1(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.5) - ink-spinner: - specifier: ^5.0.0 - version: 5.0.0(ink@7.0.1(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.5))(react@19.2.5) - posthog-node: - specifier: ^5.29.4 - version: 5.29.4 - react: - specifier: ^19.2.5 - version: 19.2.5 - devDependencies: - '@effect/vitest': - specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43)(vitest@4.1.5) '@supabase/api': specifier: workspace:* version: link:../../packages/api @@ -134,59 +115,53 @@ importers: version: 1.0.10 '@types/bun': specifier: 'catalog:' - version: 1.3.12 + version: 1.3.14 '@types/react': specifier: ^19.2.14 version: 19.2.14 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260422.1 + version: 7.0.0-dev.20260518.1 + '@vercel/detect-agent': + specifier: ^1.2.3 + version: 1.2.3 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) + effect: + specifier: 'catalog:' + version: 4.0.0-beta.67 + ink: + specifier: ^7.0.3 + version: 7.0.3(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.6) + ink-spinner: + specifier: ^5.0.0 + version: 5.0.0(ink@7.0.3(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.6))(react@19.2.6) knip: specifier: 'catalog:' - version: 6.6.1 + version: 6.14.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxfmt: specifier: 'catalog:' - version: 0.46.0 + version: 0.50.0 oxlint: specifier: 'catalog:' - version: 1.61.0(oxlint-tsgolint@0.21.1) + version: 1.65.0(oxlint-tsgolint@0.23.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.21.1 + version: 0.23.0 + posthog-node: + specifier: ^5.34.3 + version: 5.34.3 + react: + specifier: ^19.2.6 + version: 19.2.6 react-devtools-core: specifier: ^7.0.1 version: 7.0.1 vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + version: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) optionalDependencies: - '@parcel/watcher-darwin-arm64': - specifier: 2.5.6 - version: 2.5.6 - '@parcel/watcher-darwin-x64': - specifier: 2.5.6 - version: 2.5.6 - '@parcel/watcher-linux-arm64-glibc': - specifier: 2.5.6 - version: 2.5.6 - '@parcel/watcher-linux-arm64-musl': - specifier: 2.5.6 - version: 2.5.6 - '@parcel/watcher-linux-x64-glibc': - specifier: 2.5.6 - version: 2.5.6 - '@parcel/watcher-linux-x64-musl': - specifier: 2.5.6 - version: 2.5.6 - '@parcel/watcher-win32-arm64': - specifier: 2.5.6 - version: 2.5.6 - '@parcel/watcher-win32-x64': - specifier: 2.5.6 - version: 2.5.6 '@supabase/cli-darwin-arm64': specifier: workspace:* version: link:../../packages/cli-darwin-arm64 @@ -223,56 +198,56 @@ importers: version: 1.0.10 '@types/bun': specifier: 'catalog:' - version: 1.3.12 + version: 1.3.14 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260422.1 + version: 7.0.0-dev.20260518.1 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) knip: specifier: 'catalog:' - version: 6.6.1 + version: 6.14.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxfmt: specifier: 'catalog:' - version: 0.46.0 + version: 0.50.0 oxlint: specifier: 'catalog:' - version: 1.61.0(oxlint-tsgolint@0.21.1) + version: 1.65.0(oxlint-tsgolint@0.23.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.21.1 + version: 0.23.0 vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + version: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) apps/docs: dependencies: fumadocs-core: - specifier: ^16.8.1 - version: 16.8.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.8.0(react@19.2.5))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) + specifier: ^16.8.11 + version: 16.8.11(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.16.0(react@19.2.6))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) fumadocs-mdx: - specifier: ^14.3.1 - version: 14.3.1(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.8.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.8.0(react@19.2.5))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + specifier: ^15.0.6 + version: 15.0.6(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.8.11(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.16.0(react@19.2.6))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) fumadocs-ui: - specifier: ^16.8.1 - version: 16.8.1(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.8.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.8.0(react@19.2.5))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + specifier: ^16.8.11 + version: 16.8.11(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.8.11(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.16.0(react@19.2.6))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6) next: - specifier: ^16.2.4 - version: 16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + specifier: ^16.2.6 + version: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: - specifier: ^19.2.5 - version: 19.2.5 + specifier: ^19.2.6 + version: 19.2.6 react-dom: - specifier: ^19.2.5 - version: 19.2.5(react@19.2.5) + specifier: ^19.2.6 + version: 19.2.6(react@19.2.6) devDependencies: '@types/mdx': specifier: ^2.0.13 version: 2.0.13 '@types/node': - specifier: ^25.6.0 - version: 25.6.0 + specifier: ^25.8.0 + version: 25.8.0 '@types/react': specifier: ^19.1.8 version: 19.2.14 @@ -287,44 +262,44 @@ importers: dependencies: '@effect/platform-bun': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43) + version: 4.0.0-beta.67(effect@4.0.0-beta.67) '@effect/platform-node': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43)(ioredis@5.10.1) + version: 4.0.0-beta.67(effect@4.0.0-beta.67)(ioredis@5.10.1) effect: specifier: 'catalog:' - version: 4.0.0-beta.43 + version: 4.0.0-beta.67 undici: - specifier: ^8.1.0 - version: 8.1.0 + specifier: ^8.3.0 + version: 8.3.0 devDependencies: '@tsconfig/bun': specifier: 'catalog:' version: 1.0.10 '@types/bun': specifier: 'catalog:' - version: 1.3.12 + version: 1.3.14 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260422.1 + version: 7.0.0-dev.20260518.1 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) knip: specifier: 'catalog:' - version: 6.6.1 + version: 6.14.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxfmt: specifier: 'catalog:' - version: 0.46.0 + version: 0.50.0 oxlint: specifier: 'catalog:' - version: 1.61.0(oxlint-tsgolint@0.21.1) + version: 1.65.0(oxlint-tsgolint@0.23.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.21.1 + version: 0.23.0 vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + version: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) packages/cli-darwin-arm64: {} @@ -345,28 +320,28 @@ importers: version: 1.0.10 '@types/bun': specifier: 'catalog:' - version: 1.3.12 + version: 1.3.14 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260422.1 + version: 7.0.0-dev.20260518.1 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) knip: specifier: 'catalog:' - version: 6.6.1 + version: 6.14.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxfmt: specifier: 'catalog:' - version: 0.46.0 + version: 0.50.0 oxlint: specifier: 'catalog:' - version: 1.61.0(oxlint-tsgolint@0.21.1) + version: 1.65.0(oxlint-tsgolint@0.23.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.21.1 + version: 0.23.0 vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + version: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) packages/cli-windows-arm64: {} @@ -376,16 +351,16 @@ importers: dependencies: '@effect/platform-bun': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43) + version: 4.0.0-beta.67(effect@4.0.0-beta.67) '@effect/platform-node': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43)(ioredis@5.10.1) + version: 4.0.0-beta.67(effect@4.0.0-beta.67)(ioredis@5.10.1) dedent: specifier: ^1.7.2 version: 1.7.2 effect: specifier: 'catalog:' - version: 4.0.0-beta.43 + version: 4.0.0-beta.67 smol-toml: specifier: ^1.6.1 version: 1.6.1 @@ -395,77 +370,77 @@ importers: version: 1.0.10 '@types/bun': specifier: 'catalog:' - version: 1.3.12 + version: 1.3.14 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260422.1 + version: 7.0.0-dev.20260518.1 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) knip: specifier: 'catalog:' - version: 6.6.1 + version: 6.14.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxfmt: specifier: 'catalog:' - version: 0.46.0 + version: 0.50.0 oxlint: specifier: 'catalog:' - version: 1.61.0(oxlint-tsgolint@0.21.1) + version: 1.65.0(oxlint-tsgolint@0.23.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.21.1 + version: 0.23.0 vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + version: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) packages/process-compose: dependencies: '@effect/platform-bun': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43) + version: 4.0.0-beta.67(effect@4.0.0-beta.67) effect: specifier: 'catalog:' - version: 4.0.0-beta.43 + version: 4.0.0-beta.67 devDependencies: '@effect/vitest': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43)(vitest@4.1.5) + version: 4.0.0-beta.43(effect@4.0.0-beta.67)(vitest@4.1.6) '@tsconfig/bun': specifier: 'catalog:' version: 1.0.10 '@types/bun': specifier: 'catalog:' - version: 1.3.12 + version: 1.3.14 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260422.1 + version: 7.0.0-dev.20260518.1 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) knip: specifier: 'catalog:' - version: 6.6.1 + version: 6.14.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxfmt: specifier: 'catalog:' - version: 0.46.0 + version: 0.50.0 oxlint: specifier: 'catalog:' - version: 1.61.0(oxlint-tsgolint@0.21.1) + version: 1.65.0(oxlint-tsgolint@0.23.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.21.1 + version: 0.23.0 vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + version: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) packages/stack: dependencies: '@effect/platform-bun': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43) + version: 4.0.0-beta.67(effect@4.0.0-beta.67) '@effect/platform-node': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43)(ioredis@5.10.1) + version: 4.0.0-beta.67(effect@4.0.0-beta.67)(ioredis@5.10.1) '@supabase/config': specifier: workspace:* version: link:../config @@ -474,50 +449,50 @@ importers: version: link:../process-compose effect: specifier: 'catalog:' - version: 4.0.0-beta.43 + version: 4.0.0-beta.67 devDependencies: '@effect/vitest': specifier: 'catalog:' - version: 4.0.0-beta.43(effect@4.0.0-beta.43)(vitest@4.1.5) + version: 4.0.0-beta.43(effect@4.0.0-beta.67)(vitest@4.1.6) '@supabase/supabase-js': - specifier: ^2.104.0 - version: 2.104.0 + specifier: ^2.105.4 + version: 2.105.4 '@tsconfig/bun': specifier: 'catalog:' version: 1.0.10 '@types/bun': specifier: 'catalog:' - version: 1.3.12 + version: 1.3.14 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260422.1 + version: 7.0.0-dev.20260518.1 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.5(vitest@4.1.5) + version: 4.1.6(vitest@4.1.6) knip: specifier: 'catalog:' - version: 6.6.1 + version: 6.14.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxfmt: specifier: 'catalog:' - version: 0.46.0 + version: 0.50.0 oxlint: specifier: 'catalog:' - version: 1.61.0(oxlint-tsgolint@0.21.1) + version: 1.65.0(oxlint-tsgolint@0.23.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.21.1 + version: 0.23.0 vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + version: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) tools/nx-plugins: dependencies: '@nx/devkit': specifier: 'catalog:' - version: 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@swc/core@1.15.30)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.30)) + version: 22.7.2(nx@22.7.2(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.33)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.33)) vitest: specifier: 'catalog:' - version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + version: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) packages: @@ -592,39 +567,41 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@clack/core@1.2.0': - resolution: {integrity: sha512-qfxof/3T3t9DPU/Rj3OmcFyZInceqj/NVtO9rwIuJqCUgh32gwPjpFQQp/ben07qKlhpwq7GzfWpST4qdJ5Drg==} + '@clack/core@1.3.1': + resolution: {integrity: sha512-fT1qHVGAag4IEkrupZ6lRRbNCs1vS9P01KB/sG8zKgvUztbYtFBtQpjSITNwooDZ83tpsPzP0mRNs1/KVszCRA==} + engines: {node: '>= 20.12.0'} - '@clack/prompts@1.2.0': - resolution: {integrity: sha512-4jmztR9fMqPMjz6H/UZXj0zEmE43ha1euENwkckKKel4XpSfokExPo5AiVStdHSAlHekz4d0CA/r45Ok1E4D3w==} + '@clack/prompts@1.4.0': + resolution: {integrity: sha512-S0My7XPGIgpRWMDG8uRqalbgT+a6FmCUdOW+HaIOVVpUPHOb7RrpvjTjiODadKp06fsrVDJZlIzc6yCTp4AnxA==} + engines: {node: '>= 20.12.0'} '@cypress/request@3.0.10': resolution: {integrity: sha512-hauBrOdvu08vOsagkZ/Aju5XuiZx6ldsLfByg1htFeldhex+PeMrYauANzFsMJeAA0+dyPLbDoX2OYuvVoLDkQ==} engines: {node: '>= 6'} - '@effect/atom-react@4.0.0-beta.54': - resolution: {integrity: sha512-Qs1QxoU28NeoZZe1varw9t2//rGiX69djDQNICxAogKL5dNn1bDNwzdoGb2w9CETOaPe+rA51tI+n0gqfxbboQ==} + '@effect/atom-react@4.0.0-beta.67': + resolution: {integrity: sha512-8GNRkz3pfiG+jNbbZo8/pQN4TSQEFRNazVEsMshmBlIaWkA1+/EwniiHEnfEqPvl40/wFt4/AXuSFMY8UK9eYg==} peerDependencies: - effect: ^4.0.0-beta.54 + effect: ^4.0.0-beta.67 react: ^19.2.4 scheduler: '*' - '@effect/platform-bun@4.0.0-beta.43': - resolution: {integrity: sha512-nMZ9JsD6CzJNQ+5pDUFbPw7PSZdQdTQ092MbYrocVtvlf6qEFU/hji3ITvRIOX7eabyQ8AUyp55qFPQUeq+GIA==} + '@effect/platform-bun@4.0.0-beta.67': + resolution: {integrity: sha512-QLmAWufQ5Jnvruqf0YibTFN7ShGMqufELtwTUyXIOmYn3XRZa3/KMbraOIeSBFQA+qhrfHeQsvcDZ9wmQedENQ==} peerDependencies: - effect: ^4.0.0-beta.43 + effect: ^4.0.0-beta.67 - '@effect/platform-node-shared@4.0.0-beta.43': - resolution: {integrity: sha512-A9q0GEb61pYcQ06Dr6gXj1nKlDI3KHsar1sk3qb1ZY+kVSR64tBAylI8zGon23KY+NPtTUj/sEIToB7jc3Qt5w==} + '@effect/platform-node-shared@4.0.0-beta.67': + resolution: {integrity: sha512-h7KyCoD5AMhD4ec0hY3FKuguo1Wsec2B79poifn5+Vd+c1I8pX7urh8cLaIwkrABp2shUQNYEYUAFocSND8LVQ==} engines: {node: '>=18.0.0'} peerDependencies: - effect: ^4.0.0-beta.43 + effect: ^4.0.0-beta.67 - '@effect/platform-node@4.0.0-beta.43': - resolution: {integrity: sha512-Uq6E1rjaIpjHauzjwoB2HzAg3battYt2Boy8XO50GoHiWCXKE6WapYZ0/AnaBx5v5qg2sOfqpuiLsUf9ZgxOkA==} + '@effect/platform-node@4.0.0-beta.67': + resolution: {integrity: sha512-GbfCE88/jMDlryiCzJg6NdmK2JxrQjN34iLyKFmUXqqSC64GVJyBCx1tpZkvhwQlQelWkcuDvm45kuq8hyuUMw==} engines: {node: '>=18.0.0'} peerDependencies: - effect: ^4.0.0-beta.43 + effect: ^4.0.0-beta.67 ioredis: ^5.7.0 '@effect/vitest@4.0.0-beta.43': @@ -636,14 +613,17 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.9.2': - resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + '@emnapi/core@1.4.5': + resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.9.2': - resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + '@emnapi/runtime@1.4.5': + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} + + '@emnapi/wasi-threads@1.0.4': + resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -1146,16 +1126,8 @@ packages: resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} engines: {node: '>=8'} - '@jest/diff-sequences@30.3.0': - resolution: {integrity: sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/get-type@30.1.0': - resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/schemas@30.0.5': - resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + '@jest/diff-sequences@30.0.1': + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jridgewell/gen-mapping@0.3.13': @@ -1207,210 +1179,219 @@ packages: cpu: [x64] os: [win32] - '@napi-rs/keyring-darwin-arm64@1.2.0': - resolution: {integrity: sha512-CA83rDeyONDADO25JLZsh3eHY8yTEtm/RS6ecPsY+1v+dSawzT9GywBMu2r6uOp1IEhQs/xAfxgybGAFr17lSA==} + '@napi-rs/keyring-darwin-arm64@1.3.0': + resolution: {integrity: sha512-pl76hJvdYUBn6I24bXiOBMA9nbDapo3I5B+f3OorjDU4dUMSypXeKbOVehJe8fhgTiH24flMyTS3aAIy43xegQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/keyring-darwin-x64@1.2.0': - resolution: {integrity: sha512-dBHjtKRCj4ByfnfqIKIJLo3wueQNJhLRyuxtX/rR4K/XtcS7VLlRD01XXizjpre54vpmObj63w+ZpHG+mGM8uA==} + '@napi-rs/keyring-darwin-x64@1.3.0': + resolution: {integrity: sha512-YcJtEV5LA3cvA4z3BurgxH5IhTsW1JfIvcAAcqcecwk06Si9F9NqkxbZVIfDwQ8oRHgaBmT3zZJnLAotCrVahw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/keyring-freebsd-x64@1.2.0': - resolution: {integrity: sha512-DPZFr11pNJSnaoh0dzSUNF+T6ORhy3CkzUT3uGixbA71cAOPJ24iG8e8QrLOkuC/StWrAku3gBnth2XMWOcR3Q==} + '@napi-rs/keyring-freebsd-x64@1.3.0': + resolution: {integrity: sha512-vlLf31TGhfRAaxLDBhg8b89ss0HHD/lyNmL5F3UjSaz5CUXElsJmKYq9fqA/B+cZKUEUcLHHGhF0I/CqcFdaVw==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@napi-rs/keyring-linux-arm-gnueabihf@1.2.0': - resolution: {integrity: sha512-8xv6DyEMlvRdqJzp4F39RLUmmTQsLcGYYv/3eIfZNZN1O5257tHxTrFYqAsny659rJJK2EKeSa7PhrSibQqRWQ==} + '@napi-rs/keyring-linux-arm-gnueabihf@1.3.0': + resolution: {integrity: sha512-KiWdMMu/Inz/bHHIAGrnF7r54FZDYXuHO6UFF/rhIrshUsxbMG1Rl9lEymNtqqsVo927G0VYcb02FzWQ3iBQRQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/keyring-linux-arm64-gnu@1.2.0': - resolution: {integrity: sha512-Pu2V6Py+PBt7inryEecirl+t+ti8bhZphjP+W68iVaXHUxLdWmkgL9KI1VkbRHbx5k8K5Tew9OP218YfmVguIA==} + '@napi-rs/keyring-linux-arm64-gnu@1.3.0': + resolution: {integrity: sha512-eyKGpY40lm9Jvs1aD294XRH4y7+TlJM0YVAryZeXA6TX0mb4gMkxVXwSQv7MCwgah7raeUd0dKUb4BPAYIgcMg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@napi-rs/keyring-linux-arm64-musl@1.2.0': - resolution: {integrity: sha512-8TDymrpC4P1a9iDEaegT7RnrkmrJN5eNZh3Im3UEV5PPYGtrb82CRxsuFohthCWQW81O483u1bu+25+XA4nKUw==} + '@napi-rs/keyring-linux-arm64-musl@1.3.0': + resolution: {integrity: sha512-iIK6JWHXAJqDrEyLY3TmswwloVyt2vj+04TZnew+uSJ9gnDO8EwRbp3/iw3LpWaXiDO7VomGO6y8I0Id8uBZSw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@napi-rs/keyring-linux-riscv64-gnu@1.2.0': - resolution: {integrity: sha512-awsB5XI1MYL7fwfjMDGmKOWvNgJEO7mM7iVEMS0fO39f0kVJnOSjlu7RHcXAF0LOx+0VfF3oxbWqJmZbvRCRHw==} + '@napi-rs/keyring-linux-riscv64-gnu@1.3.0': + resolution: {integrity: sha512-/PGqrwn6EwgtK6vccASSXJRfOSP4vN1F4ASsIQ+7MdrK6hNvAJ1FZPrIuD5gGGdxezo3F++To2Wq7DbuGIeuNQ==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] libc: [glibc] - '@napi-rs/keyring-linux-x64-gnu@1.2.0': - resolution: {integrity: sha512-8E+7z4tbxSJXxIBqA+vfB1CGajpCDRyTyqXkBig5NtASrv4YXcntSo96Iah2QDR5zD3dSTsmbqJudcj9rKKuHQ==} + '@napi-rs/keyring-linux-x64-gnu@1.3.0': + resolution: {integrity: sha512-2PDK1WKWTu9lBGq9VvNEkSlQD3O7YwVpmnyN2M3cy4v7NJ/8gDMd9GXv3G+FVXN13uhp4gnnPBS+ScefmEeD2A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@napi-rs/keyring-linux-x64-musl@1.2.0': - resolution: {integrity: sha512-8RZ8yVEnmWr/3BxKgBSzmgntI7lNEsY7xouNfOsQkuVAiCNmxzJwETspzK3PQ2FHtDxgz5vHQDEBVGMyM4hUHA==} + '@napi-rs/keyring-linux-x64-musl@1.3.0': + resolution: {integrity: sha512-oJ2HkX8YUo46QBkn0pG+HuIKQNqr523q6vBobCn+P95s4C4K6/kLBqHY/1bg5J4ap31DzsznhnFKcfBNBsjCnw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@napi-rs/keyring-win32-arm64-msvc@1.2.0': - resolution: {integrity: sha512-AoqaDZpQ6KPE19VBLpxyORcp+yWmHI9Xs9Oo0PJ4mfHma4nFSLVdhAubJCxdlNptHe5va7ghGCHj3L9Akiv4cQ==} + '@napi-rs/keyring-win32-arm64-msvc@1.3.0': + resolution: {integrity: sha512-tOd3c/uAaeoE4ycVlmAdSvygz0Zt3zdca6Y7gokBeIbaRDWpjDIUOpU3MvML59XAaqyuKGsVVu0F/DZb1lHPmw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@napi-rs/keyring-win32-ia32-msvc@1.2.0': - resolution: {integrity: sha512-EYL+EEI6bCsYi3LfwcQdnX3P/R76ENKNn+3PmpGheBsUFLuh0gQuP7aMVHM4rTw6UVe+L3vCLZSptq/oeacz0A==} + '@napi-rs/keyring-win32-ia32-msvc@1.3.0': + resolution: {integrity: sha512-sPSqeAFZMGqP1R++M2JTza7GQJJ/TpCo6JU6Vcd4jnebvOaEDs9b7eipakU1PJdSvhpC2yXMCNRk9gXfrhuwHQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@napi-rs/keyring-win32-x64-msvc@1.2.0': - resolution: {integrity: sha512-xFlx/TsmqmCwNU9v+AVnEJgoEAlBYgzFF5Ihz1rMpPAt4qQWWkMd4sCyM1gMJ1A/GnRqRegDiQpwaxGUHFtFbA==} + '@napi-rs/keyring-win32-x64-msvc@1.3.0': + resolution: {integrity: sha512-4DnCWXwDc0HRKwyRlG5y0VhKZW2tNRQfKKfyj6IX/KWfDNyq9hn4n+GL1auyDcOO/v8PwnhmYo2+rOOqCkvvOg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/keyring@1.2.0': - resolution: {integrity: sha512-d0d4Oyxm+v980PEq1ZH2PmS6cvpMIRc17eYpiU47KgW+lzxklMu6+HOEOPmxrpnF/XQZ0+Q78I2mgMhbIIo/dg==} + '@napi-rs/keyring@1.3.0': + resolution: {integrity: sha512-WrOw/bcXm0f9qHkumlT1QlArXSTWqaY9sunsDpOk+yCCorCKMxvWT/a3xko4EYHVdeZoh00yI2TydXn6eyICDA==} engines: {node: '>= 10'} '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@napi-rs/wasm-runtime@1.1.1': - resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} - '@napi-rs/wasm-runtime@1.1.4': resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@next/env@16.2.4': - resolution: {integrity: sha512-dKkkOzOSwFYe5RX6y26fZgkSpVAlIOJKQHIiydQcrWH6y/97+RceSOAdjZ14Qa3zLduVUy0TXcn+EiM6t4rPgw==} + '@next/env@16.2.6': + resolution: {integrity: sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw==} - '@next/swc-darwin-arm64@16.2.4': - resolution: {integrity: sha512-OXTFFox5EKN1Ym08vfrz+OXxmCcEjT4SFMbNRsWZE99dMqt2Kcusl5MqPXcW232RYkMLQTy0hqgAMEsfEd/l2A==} + '@next/swc-darwin-arm64@16.2.6': + resolution: {integrity: sha512-ZJGkkcNfYgrrMkqOdZ7zoLa1TOy0qpcMfk/z4Mh/FKUz40gVO+HNQWqmLxf67Z5WB64DRp0dhEbyHfel+6sJUg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.2.4': - resolution: {integrity: sha512-XhpVnUfmYWvD3YrXu55XdcAkQtOnvaI6wtQa8fuF5fGoKoxIUZ0kWPtcOfqJEWngFF/lOS9l3+O9CcownhiQxQ==} + '@next/swc-darwin-x64@16.2.6': + resolution: {integrity: sha512-v/YLBHIY132Ced3puBJ7YJKw1lqsCrgcNo2aRJlCEyQrrCeRJlvGlnmxhPxNQI3KE3N1DN5r9TPNPvka3nq5RQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.2.4': - resolution: {integrity: sha512-Mx/tjlNA3G8kg14QvuGAJ4xBwPk1tUHq56JxZ8CXnZwz1Etz714soCEzGQQzVMz4bEnGPowzkV6Xrp6wAkEWOQ==} + '@next/swc-linux-arm64-gnu@16.2.6': + resolution: {integrity: sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.2.4': - resolution: {integrity: sha512-iVMMp14514u7Nup2umQS03nT/bN9HurK8ufylC3FZNykrwjtx7V1A7+4kvhbDSCeonTVqV3Txnv0Lu+m2oDXNg==} + '@next/swc-linux-arm64-musl@16.2.6': + resolution: {integrity: sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.2.4': - resolution: {integrity: sha512-EZOvm1aQWgnI/N/xcWOlnS3RQBk0VtVav5Zo7n4p0A7UKyTDx047k8opDbXgBpHl4CulRqRfbw3QrX2w5UOXMQ==} + '@next/swc-linux-x64-gnu@16.2.6': + resolution: {integrity: sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.2.4': - resolution: {integrity: sha512-h9FxsngCm9cTBf71AR4fGznDEDx1hS7+kSEiIRjq5kO1oXWm07DxVGZjCvk0SGx7TSjlUqhI8oOyz7NfwAdPoA==} + '@next/swc-linux-x64-musl@16.2.6': + resolution: {integrity: sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.2.4': - resolution: {integrity: sha512-3NdJV5OXMSOeJYijX+bjaLge3mJBlh4ybydbT4GFoB/2hAojWHtMhl3CYlYoMrjPuodp0nzFVi4Tj2+WaMg+Ow==} + '@next/swc-win32-arm64-msvc@16.2.6': + resolution: {integrity: sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.2.4': - resolution: {integrity: sha512-kMVGgsqhO5YTYODD9IPGGhA6iprWidQckK3LmPeW08PIFENRmgfb4MjXHO+p//d+ts2rpjvK5gXWzXSMrPl9cw==} + '@next/swc-win32-x64-msvc@16.2.6': + resolution: {integrity: sha512-F0+4i0h9J6C4eE3EAPWsoCk7UW/dbzOjyzxY0qnDUOYFu6FFmdZ6l97/XdV3/Nz3VYyO7UWjyEJUXkGqcoXfMA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@nx/devkit@22.6.5': - resolution: {integrity: sha512-9kvAI+kk2pfEXLqS8OyjI9XvWmp+Gdn7jPfxDAz8BOqxMyPy3p5hYl+jc4TIsLOWunAFl8azqrcYsHzEpaWCIA==} + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nx/devkit@22.7.2': + resolution: {integrity: sha512-oE2SFUxQeZm/EmFABHpWQ4Pi0fBKbJbXKGPvdFaHoMumRxhqBhuBVf/ap5kYFg8Y9bK/zHJkpsEbGyiyRrhvog==} peerDependencies: nx: '>= 21 <= 23 || ^22.0.0-0' - '@nx/nx-darwin-arm64@22.6.5': - resolution: {integrity: sha512-qT77Omkg5xQuL2+pDbneX2tI+XW5ZeayMylu7UUgK8OhTrAkJLKjpuYRH4xT5XBipxbDtlxmO3aLS3Ib1pKzJQ==} + '@nx/nx-darwin-arm64@22.7.2': + resolution: {integrity: sha512-hu+x/IOzx+18imkFwSdtXnvB6d21qcXvc4bCqcbA9BQcUnvTnw0/11SLoasvDqy/9KLKHDWJAIPttcBkbArWVA==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@22.6.5': - resolution: {integrity: sha512-9jICxb7vfJ56y/7Yuh3b/n1QJqWxO9xnXKYEs6SO8xPoW/KomVckILGc1C6RQSs6/3ixVJC7k1Dh1wm5tKPFrg==} + '@nx/nx-darwin-x64@22.7.2': + resolution: {integrity: sha512-M4QPs4rjzZN51V7qiKUjJU7hLYtv/h0I/aGUedCQQZibbbDTl45sQlgBQlV/viw2dOw3K5+RxDxtMNFxAbhxQA==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@22.6.5': - resolution: {integrity: sha512-6B1wEKpqz5dI3AGMqttAVnA6M3DB/besAtuGyQiymK9ROlta1iuWgCcIYwcCQyhLn2Rx7vqj447KKcgCa8HlVw==} + '@nx/nx-freebsd-x64@22.7.2': + resolution: {integrity: sha512-tdC2mBQ/ON9qvTs72aL3XVN7B5wd7UsiRJ/qwC2bk/PIpD0vo5c3EwxFyYXfTD60jnlV+CTFxhSVmu8S1pVsfw==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@22.6.5': - resolution: {integrity: sha512-xV50B8mnDPboct7JkAHftajI02s+8FszA8WTzhore+YGR+lEKHTLpucwGEaQuMlSdLplH7pQix4B4uK5pcMhZw==} + '@nx/nx-linux-arm-gnueabihf@22.7.2': + resolution: {integrity: sha512-bBHIC9xZ8L12BWkwMKbRi7+oV4UH1v1Yy8PsIvRfjS7GzYNlOAUMkJxywjF2msnkp8M8Rn29MEvzllZjdyaR7Q==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@22.6.5': - resolution: {integrity: sha512-2JkWuMGj+HpW6oPAvU5VdAx1afTnEbiM10Y3YOrl3fipWV4BiP5VDx762QTrfCraP4hl6yqTgvTe7F9xaby+jQ==} + '@nx/nx-linux-arm64-gnu@22.7.2': + resolution: {integrity: sha512-MBYG58VUTmLW4S2RlYmXJiV6P0P1lkiZXtiaulZOXmP5uCSXiqMgK47k56hq9GTbtW1SpyGgh02lkNdCYTbmLw==} cpu: [arm64] os: [linux] libc: [glibc] - '@nx/nx-linux-arm64-musl@22.6.5': - resolution: {integrity: sha512-Z/zMqFClnEyqDXouJKEPoWVhMQIif5F0YuECWBYjd3ZLwQsXGTItoh+6Wm3XF/nGMA2uLOHyTq/X7iFXQY3RzA==} + '@nx/nx-linux-arm64-musl@22.7.2': + resolution: {integrity: sha512-Wf4VBSJt5gEGdzX6uzZoITEYB/Y3TxjvPNT11NKfRU/m63b8/D8jCeRmr7cBTaMUlNmdH3Lf3G1PuPNGoEZ0Mg==} cpu: [arm64] os: [linux] libc: [musl] - '@nx/nx-linux-x64-gnu@22.6.5': - resolution: {integrity: sha512-FlotSyqNnaXSn0K+yWw+hRdYBwusABrPgKLyixfJIYRzsy+xPKN6pON6vZfqGwzuWF/9mEGReRz+iM8PiW0XSg==} + '@nx/nx-linux-x64-gnu@22.7.2': + resolution: {integrity: sha512-v3AQyfCkv9k+AWT2hy8hAGaCmFYf+G/bt4KAqnWhmXPWNhxrv9FhvTUcjpY+MY+6v7sKdhJv/3eDvtlLd9FOLg==} cpu: [x64] os: [linux] libc: [glibc] - '@nx/nx-linux-x64-musl@22.6.5': - resolution: {integrity: sha512-RVOe2qcwhoIx6mxQURPjUfAW5SEOmT2gdhewvdcvX9ICq1hj5B2VarmkhTg0qroO7xiyqOqwq26mCzoV2I3NgQ==} + '@nx/nx-linux-x64-musl@22.7.2': + resolution: {integrity: sha512-3SMfMB7ynr8wGGTZP+/ZV7FqkCsOg1Raoka+4EtIPX66bEcBycg8FVg81DbyV+IzuKk3N+8Hl2IeY1W2btPypw==} cpu: [x64] os: [linux] libc: [musl] - '@nx/nx-win32-arm64-msvc@22.6.5': - resolution: {integrity: sha512-ZqurqI8VuYnsr2Kn4K4t+Gx6j/BZdf6qz/6Tv4A7XQQ6oNYVQgTqoNEFj+CCkVaIe6aIdCWpousFLqs+ZgBqYQ==} + '@nx/nx-win32-arm64-msvc@22.7.2': + resolution: {integrity: sha512-eTFTTF1JUKXu+PNOGd7KAdqyWyfvFKO/wpqHoq9fjnbjXgCdCg1PaRxHIxA1WT5HFj1iHS6Or+GC1zA1KNt0Sw==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@22.6.5': - resolution: {integrity: sha512-i2QFBJIuaYg9BHxrrnBV4O7W9rVL2k0pSIdk/rRp3EYJEU93iUng+qbZiY9wh1xvmXuUCE2G7TRd+8/SG/RFKg==} + '@nx/nx-win32-x64-msvc@22.7.2': + resolution: {integrity: sha512-fbVAiJ7RKSanUXrL67Z6as7BY1akznRqo71ACmrxLvLicG3UsmATbHKGp0zULoe3jBm+rNrIrLk+quZn5q0wUg==} cpu: [x64] os: [win32] @@ -1418,129 +1399,129 @@ packages: resolution: {integrity: sha512-a61ljmRVVyG5MC/698C8/FfFDw5a8LOIvyOLW5fztgUXqUpc1jOfQzOitSCbge657OgXXThmY3Tk8fpiDb4UcA==} engines: {node: '>= 20.0.0'} - '@oxc-parser/binding-android-arm-eabi@0.126.0': - resolution: {integrity: sha512-svyoHt25J4741QJ5aa4R+h0iiBeSRt63Lr3aAZcxy2c/NeSE1IfDeMnSij6rIg7EjxkdlXzz613wUjeCeilBNA==} + '@oxc-parser/binding-android-arm-eabi@0.130.0': + resolution: {integrity: sha512-h/xYU8/7ADWzVSf5I+YalLpj33LOy9CI/zgbJNIZ5eunRBG+Czqa3lZsvuPHHf3rOt6z1c5+UzoxjbAzAvhwVw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm64@0.126.0': - resolution: {integrity: sha512-hPEBRKgplp1mG9GkINFsr4JVMDNrGJLOqfDaadTWpAoTnzYR5Rmv8RMvB3hJZpiNvbk1aacopdHUP1pggMQ/cw==} + '@oxc-parser/binding-android-arm64@0.130.0': + resolution: {integrity: sha512-oFWFJrsGv9siFM4HjMqKNB7IuIZD/SMmZdCXl8xyx7lDplGvPKyewpOo272rSWgMXe2Wx7bWI0Yj+gkHv4qbeg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-parser/binding-darwin-arm64@0.126.0': - resolution: {integrity: sha512-ccRpu9sdYmznePJQG5halhs0FW5tw5a8zRSoZXOzM1OjoeZ4jiRRruFiPclsD59edoVAK1l83dvfjWz1nQi6lg==} + '@oxc-parser/binding-darwin-arm64@0.130.0': + resolution: {integrity: sha512-sGUzupdTplK9jQg7eJZ878HfEgQjJNBc6dAYVWJ9W5aU+J8rLfRJhTVsKThiu1pNwm6Y1qKCcbC6WhNWSXR3Ig==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.126.0': - resolution: {integrity: sha512-CHB4zVjNSKqx8Fw9pHowzQQnjjuq04i4Ng0Avj+DixlwhwAoMYqlFbocYIlbg+q3zOLGlm7vEHm83jqEMitnyg==} + '@oxc-parser/binding-darwin-x64@0.130.0': + resolution: {integrity: sha512-PsB4cdCISbC00Uy8eiD8bc2AkGWjZqrSrJnkBFuG2ptrrf6mZ2F5gLFSjOAVMMgZPg8B1D7OydJwLWSfyI2Plg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.126.0': - resolution: {integrity: sha512-RQ3nEJdcDKBfBjmLJ3Vl1d0KQERPV1P8eUrnBm7+VTYyoaJSPLVFuPg1mlD1hk3n0/879VLFMfusFkBal4ssWQ==} + '@oxc-parser/binding-freebsd-x64@0.130.0': + resolution: {integrity: sha512-DgABp3l38hS77JbXCV4qk1+n6DPym5u8zzwuweokezm2tX194nDSJDENbDRECxVsiNbprKATLbk+Z5wlHT0OHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.126.0': - resolution: {integrity: sha512-onipc2wCDA7Bauzb4KK1mab0GsEDf4ujiIfWECdnmY/2LlzAoX3xdQRLAUyEDB1kn3yilHBrkmXDdHluyHXxiw==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.130.0': + resolution: {integrity: sha512-4Kn3CTEmwFrzhTSC/JuUW16qovmaMdX7jeSKbL8w0pLtLww7To1a2XJi9Z5uD8QWUkfUHhqfV+VD6dVzBnWzoA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.126.0': - resolution: {integrity: sha512-5BuJJPohrV5NJ8lmcYOMbfRCUGoYH5J9HZHeuqOLwkHXWAuPMN3X1h8bC/2mWjmosdbfTtmyIdX3spS/TkqKNg==} + '@oxc-parser/binding-linux-arm-musleabihf@0.130.0': + resolution: {integrity: sha512-D35KZM3F4rRu1uAFKyBlg3Gaf/ybCjyaPR1hfgvk5ex8NtcTmRgc0JgSighEyNg96TPrFhemFba68SZuxaha8w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.126.0': - resolution: {integrity: sha512-r2KApRgm2pOJaduRm6GOT8x0whcr67AyejNkSdzPt34GJ+Y3axcXN2mwlTs+8lfO/SSmpO5ZJGYiHYnxEE0jkw==} + '@oxc-parser/binding-linux-arm64-gnu@0.130.0': + resolution: {integrity: sha512-Q9o7oVlo955KHwS8l1u0bCzIx+JsZUA3XToLXC+MsMhye/9LeBQbt84nh120cl2XLy+TEzvugYDiHShg5yaX6Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-arm64-musl@0.126.0': - resolution: {integrity: sha512-FQ+MMh7MT0Dr/u8+RWmWKlfoeWPQyHDbhhxJShJlYtROXXPHsRs9EvmQOZZ3sx4Nn7JU8NX+oyw2YzQ7anBJcA==} + '@oxc-parser/binding-linux-arm64-musl@0.130.0': + resolution: {integrity: sha512-EiJ/gC0ljbcwVpycC8YWw6ggMbtsPX8XMOt0mPx0aqWeMsNR+L9m05Flbvd5T+GlivG+GkSWQL7tM9SRFpM/dw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-ppc64-gnu@0.126.0': - resolution: {integrity: sha512-Wv/T8C98hRQhGTlx2XFyLn5raRMp9U1lOQD+YnXNgAr7wHbJJpZ8mDBU7Rw+M3WytGcGTFcr6kqgfyQeHVtLbQ==} + '@oxc-parser/binding-linux-ppc64-gnu@0.130.0': + resolution: {integrity: sha512-b+h/lsLLurp756dMGizNs5uPaJfyEdWrTcV5t8M609jWm1DEHB1StpRXCkyvwtkJx3m+qL5BNQ0dEKan/4yGFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.126.0': - resolution: {integrity: sha512-DHx1rT1zauW0ZbLHOiQh5AC9Xs3UkWx2XmfZHs+7nnWYr3sagrufoUQC+/XPwwjMIlCFXiFGM0sFh3TyOCZwqA==} + '@oxc-parser/binding-linux-riscv64-gnu@0.130.0': + resolution: {integrity: sha512-O19Cil83XAyjEFfo8WhkMwY58ALqZ7ckjGL+25mjMIuF84urWBeANH0FC8B8BsSSygWU3/1aY3ADdDbp+wlBnw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-musl@0.126.0': - resolution: {integrity: sha512-umDc2mTShH0U2zcEYf8mIJ163seLJNn54ZUZYeI5jD4qlg9izPwoLrC2aNPKlMJTu6u/ysmQWiEvIiaAG+INkw==} + '@oxc-parser/binding-linux-riscv64-musl@0.130.0': + resolution: {integrity: sha512-BgXRVC0+83n3YzCscLQjj6nbyeBIVeZYPTI4fFMAE4WNm2+4RXhWp03IVizL7esIz36kgmT48aebk1iM+cs8sw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-s390x-gnu@0.126.0': - resolution: {integrity: sha512-PXXeWayclRtO1pxQEeCpiqIglQdhK2mAI2VX5xnsWdImzSB5GpoQ8TNw7vTCKk2k+GZuxl+q1knncidjCyUP9w==} + '@oxc-parser/binding-linux-s390x-gnu@0.130.0': + resolution: {integrity: sha512-6tJz0xvnGhsokE7N1WlUSBXibpYmT9xSJFS1Ce41Km/+8gQvdlW8MLhRv8PD0L7ix8vRG0FDDepp3jdOFzdVdw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.126.0': - resolution: {integrity: sha512-wzocjxm34TbB3bFlqG65JiLtvf6ZDg2ZxRkLLbgXwDQUNU+0MPjQN8zy/0jBKNA5fnPLk3XeVdZ7Uin+7+CVkg==} + '@oxc-parser/binding-linux-x64-gnu@0.130.0': + resolution: {integrity: sha512-9aCWj83dp3heTQGmGnZGdIWgxjZrr/7VQ0TGFHH5PKByxJKF2Hcr4qvaSUHhhGEa3MSsDjTL1YDP8RAgdL5/Cg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-musl@0.126.0': - resolution: {integrity: sha512-e83uftP60jmkPs2+CW6T6A1GYzN2H6IumDAiTntv9WyHR73PI3ImHNBkYqnA3ukeKI3xjcCbhSh9QeJWmufxGQ==} + '@oxc-parser/binding-linux-x64-musl@0.130.0': + resolution: {integrity: sha512-afXt87aZBqrUVli8TB/I8H1G50RDWcwirjWtXGXYqJ2ZqWEiErH7V72j3LUSDZaivmtu2OLX0KQ/mbhP81mr7A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxc-parser/binding-openharmony-arm64@0.126.0': - resolution: {integrity: sha512-4WiOILHnPrTDY2/L4mE6PZCYwLN1d3ghma6BuTJ452CCgzRMt3uFplCtR+o3r9zdUWJYb370UizpI9CUcWXr1A==} + '@oxc-parser/binding-openharmony-arm64@0.130.0': + resolution: {integrity: sha512-I0NCrZV/YZuCGWgqwNN/GO/iXlLF2z+Wgc7u+Aa9N4P51oYeIa0XT+zVBUne4csO9GqxskXgI4g8JzzWGRpfOw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-wasm32-wasi@0.126.0': - resolution: {integrity: sha512-Y17hhnrQTrxgAxAyAq401vnN9URsAL4s5AjqpG1NDsXSlhe1yBNnns+rC2P6xcMoitgX5nKH2ryYt9oiFRlzLw==} - engines: {node: '>=14.0.0'} + '@oxc-parser/binding-wasm32-wasi@0.130.0': + resolution: {integrity: sha512-sJgQkGaBX0WJvPUDfwciex6IcTk5O5NLQ1bhEb6f3nBruh1GshKMRSMt2bxZlYrgBzjyBbJzsnO+InPG0bg+fA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@oxc-parser/binding-win32-arm64-msvc@0.126.0': - resolution: {integrity: sha512-Znug1u1iRvT4VC3jANz6nhGBHsFwEFMxuimYpJFwMtsB6H5FcEoZRMmH26tHkSTD03JvDmG+gB65W3ajLjPcSw==} + '@oxc-parser/binding-win32-arm64-msvc@0.130.0': + resolution: {integrity: sha512-bjcma99sQrNh6RY4mPO9yTkfxql6TDFoN3HWdK31RCKXwNhcDgJXW/l8PUtzKNiQ+9vpKJfJtQq+LklBuxSOBA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.126.0': - resolution: {integrity: sha512-qrw7mx5hFFTxVSXToOA40hpnjgNB/DJprZchtB4rDKNLKqkD3F26HbzaQeH1nxAKej0efSZfJd5Sw3qdtOLGhw==} + '@oxc-parser/binding-win32-ia32-msvc@0.130.0': + resolution: {integrity: sha512-hRYbv6HhpSTzT4xTiIkadLI7upLQxuOdLPR/9nL1fTjwhgutBTPXrwaAPb/jTFVx6/8C7Jb5HcUKhmNwloTbFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.126.0': - resolution: {integrity: sha512-ibB1s+mPUFXvS7MFJO2jpw/aCNs/P6ifnWlRyTYB+WYBpniOiCcHQQskZneJtwcjQMDRol3RGG3ihoYnzXSY4w==} + '@oxc-parser/binding-win32-x64-msvc@0.130.0': + resolution: {integrity: sha512-RBpA9TsRucJq6HNVNCFF1iKg+QeTkLdZf7hi4xaOGCPvMZWvDHjQgSOEZMUpuW4JNciHbxNhLEYmz5CVygjVGQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1548,8 +1529,8 @@ packages: '@oxc-project/types@0.122.0': resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} - '@oxc-project/types@0.126.0': - resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} + '@oxc-project/types@0.130.0': + resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==} '@oxc-resolver/binding-android-arm-eabi@11.19.1': resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} @@ -1659,276 +1640,276 @@ packages: cpu: [x64] os: [win32] - '@oxfmt/binding-android-arm-eabi@0.46.0': - resolution: {integrity: sha512-b1doV4WRcJU+BESSlCvCjV+5CEr/T6h0frArAdV26Nir+gGNFNaylvDiiMPfF1pxeV0txZEs38ojzJaxBYg+ng==} + '@oxfmt/binding-android-arm-eabi@0.50.0': + resolution: {integrity: sha512-ICXQVKrDvsWUtfx6EiVJxfWrajKTwTfRV8vz2XiMkxZeuCKJLgD4YAj6dE3BWvpqDlkVkie4VSTAtMUWO9LDXg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.46.0': - resolution: {integrity: sha512-v6+HhjsoV3GO0u2u9jLSAZrvWfTraDxKofUIQ7/ktS7tzS+epVsxdHmeM+XxuNcAY/nWxxU1Sg4JcGTNRXraBA==} + '@oxfmt/binding-android-arm64@0.50.0': + resolution: {integrity: sha512-quwjLQFkuW6OwLHeDeIXsTzOmipQFQbqsYN9HLk2B5I01IlAQZHP1UiLIg0O7pP+dUgPD2AD7SCYA3gs6NH5/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.46.0': - resolution: {integrity: sha512-3eeooJGrqGIlI5MyryDZsAcKXSmKIgAD4yYtfRrRJzXZ0UTFZtiSveIur56YPrGMYZwT4XyVhHsMqrNwr1XeFA==} + '@oxfmt/binding-darwin-arm64@0.50.0': + resolution: {integrity: sha512-ikU5umElcMi78/TNI334wtjr5WZ5F4nWa1aIDseAKKGL0W3ygxeYKkrIJ0fggWa8MOon66BmG3xCqmX1m9YAOw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.46.0': - resolution: {integrity: sha512-QG8BDM0CXWbu84k2SKmCqfEddPQPFiBicwtYnLqHRWZZl57HbtOLRMac/KTq2NO4AEc4ICCBpFxJIV9zcqYfkQ==} + '@oxfmt/binding-darwin-x64@0.50.0': + resolution: {integrity: sha512-WT4MOYG4mv9IXrH0m60vHsJh+rRMPSOKTQmwDpwmgQ+DuW/i5dU4pqc0HDO5uclO5vjz5IFX5z/taW86LSVe/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.46.0': - resolution: {integrity: sha512-9DdCqS/n2ncu/Chazvt3cpgAjAmIGQDz7hFKSrNItMApyV/Ja9mz3hD4JakIE3nS8PW9smEbPWnb389QLBY4nw==} + '@oxfmt/binding-freebsd-x64@0.50.0': + resolution: {integrity: sha512-gH0rycVXqV4juWkvLs2uPMtTyppDc7qEUVzXAxnQ7FpcSZNXqKowUgtjH8q67ngj416r8+4NnAlyR/D35zwwhQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': - resolution: {integrity: sha512-Dgs7VeE2jT0LHMhw6tPEt0xQYe54kBqHEovmWsv4FVQlegCOvlIJNx0S8n4vj8WUtpT+Z6BD2HhKJPLglLxvZg==} + '@oxfmt/binding-linux-arm-gnueabihf@0.50.0': + resolution: {integrity: sha512-wL/k+o0hiTeRvi/gPzeC1L/yTHTXIeHDKWU09s2zTBmv7ma59wTm+fADNSGYxhJQDxyavQbwTf1QpW3Zj924tQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.46.0': - resolution: {integrity: sha512-Zxn3adhTH13JKnU4xXJj8FeEfF680XjXh3gSShKl57HCMBRde2tUJTgogV/1MSHA80PJEVrDa7r66TLVq3Ia7Q==} + '@oxfmt/binding-linux-arm-musleabihf@0.50.0': + resolution: {integrity: sha512-Y59FKqoUM3Gf00E395b4ixfWyJGwO2GzaZawF5MZoVWcb3f6CkWUXyao0jyOvoIxDMzMybcVRuXyG7ih/Nxweg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.46.0': - resolution: {integrity: sha512-+TWipjrgVM8D7aIdDD0tlr3teLTTvQTn7QTE5BpT10H1Fj82gfdn9X6nn2sDgx/MepuSCfSnzFNJq2paLL0OiA==} + '@oxfmt/binding-linux-arm64-gnu@0.50.0': + resolution: {integrity: sha512-OvXbfTjMignXWyJXg/NOFsiy996vFe8wb9tkxJaUq8ylq0XrzJg3ttavC5Tcmm6F8/GUs2r3XFJWWu9q/27uYw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.46.0': - resolution: {integrity: sha512-aAUPBWJ1lGwwnxZUEDLJ94+Iy6MuwJwPxUgO4sCA5mEEyDk7b+cDQ+JpX1VR150Zoyd+D49gsrUzpUK5h587Eg==} + '@oxfmt/binding-linux-arm64-musl@0.50.0': + resolution: {integrity: sha512-rqmvHZm7vMa3NLYa0khwkhReCmp9tqKnF23TFZ7S5cYJLvIE4b0k8famWE7kO897/DXznJe675n5SohFBggbxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.46.0': - resolution: {integrity: sha512-ufBCJukyFX/UDrokP/r6BGDoTInnsDs7bxyzKAgMiZlt2Qu8GPJSJ6Zm6whIiJzKk0naxA8ilwmbO1LMw6Htxw==} + '@oxfmt/binding-linux-ppc64-gnu@0.50.0': + resolution: {integrity: sha512-49bAdYbMSde42tzPDtuHnBWzOgmoS0PT9THCjvMnDVYMQYiHzPc2Mv5rkpBHVQOXM+PHfafJlxgK0anXSWBVvw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.46.0': - resolution: {integrity: sha512-eqtlC2YmPqjun76R1gVfGLuKWx7NuEnLEAudZ7n6ipSKbCZTqIKSs1b5Y8K/JHZsRpLkeSmAAjig5HOIg8fQzQ==} + '@oxfmt/binding-linux-riscv64-gnu@0.50.0': + resolution: {integrity: sha512-VFT25/6kckkIM62KeWB2bi+xCEmC/zC+DcMaIpEfaio8ulkGDLSiTz11TyK0eqgTl3x5OklYEGDWohvAgOr8Bw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.46.0': - resolution: {integrity: sha512-yccVOO2nMXkQLGgy0He3EQEwKD7NF0zEk+/OWmroznkqXyJdN6bfK0LtNnr6/14Bh3FjpYq7bP33l/VloCnxpA==} + '@oxfmt/binding-linux-riscv64-musl@0.50.0': + resolution: {integrity: sha512-BBJMuNy6jjkXjUUINF5UTQqb/nvjmtJad43Gp7bab0AAURAdthhJvduR7rHpWInpWYiaMzYsdrmURNcrmpxdZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.46.0': - resolution: {integrity: sha512-aAf7fG23OQCey6VRPj9IeCraoYtpgtx0ZyJ1CXkPyT1wjzBE7c3xtuxHe/AdHaJfVVb/SXpSk8Gl1LzyQupSqw==} + '@oxfmt/binding-linux-s390x-gnu@0.50.0': + resolution: {integrity: sha512-Xd4y+yjAYHKmryXhyUUwbyRD01iKfcvI74iE01L6p4F8SwjhZQXDshK+T8PcrPZLiFqH263P5xqJk94amjkjzQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.46.0': - resolution: {integrity: sha512-q0JPsTMyJNjYrBvYFDz4WbVsafNZaPCZv4RnFypRotLqpKROtBZcEaXQW4eb9YmvLU3NckVemLJnzkSZSdmOxw==} + '@oxfmt/binding-linux-x64-gnu@0.50.0': + resolution: {integrity: sha512-Qp96rYJru7l++7mk4R+eh8qq9GFfFAMdmoN6VGoRHI8AA1XMnUIzH4u+zOcKZZwY+irHdsaBldDearwB4nOH7A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.46.0': - resolution: {integrity: sha512-7LsLY9Cw57GPkhSR+duI3mt9baRczK/DtHYSldQ4BEU92da9igBQNl4z7Vq5U9NNPsh1FmpKvv1q9WDtiUQR1A==} + '@oxfmt/binding-linux-x64-musl@0.50.0': + resolution: {integrity: sha512-5XLGp+yd5w2Key5LMqJO+X3XVsJKgeeUKljy32+MBF/J/JZ5m8WHl6dI5eOQOr3ixopxPiXIyDAxn3slI3UXiQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.46.0': - resolution: {integrity: sha512-lHiBOz8Duaku7JtRNLlps3j++eOaICPZSd8FCVmTDM4DFOPT71Bjn7g6iar1z7StXlKRweUKxWUs4sA+zWGDXg==} + '@oxfmt/binding-openharmony-arm64@0.50.0': + resolution: {integrity: sha512-QAxwzh7+GHugCD7WuERolVs8TKQwXNIAZXAHHTecbKVc9oWBkWzOiLauQuezXS57tVcof5zhi1IjZ8tOV0htTg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.46.0': - resolution: {integrity: sha512-/5ktYUliP89RhgC37DBH1x20U5zPSZMy3cMEcO0j3793rbHP9MWsknBwQB6eozRzWmYrh0IFM/p20EbPvDlYlg==} + '@oxfmt/binding-win32-arm64-msvc@0.50.0': + resolution: {integrity: sha512-3nKN/kqClm9iCFWTwtJ9UpR5SGyExp5l3nw6uIiBt+3XitQtszin+vjHrL7JHfDksZ7Svigdaow2zqz/IKCfqw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.46.0': - resolution: {integrity: sha512-3WTnoiuIr8XvV0DIY7SN+1uJSwKf4sPpcbHfobcRT9JutGcLaef/miyBB87jxd3aqH+mS0+G5lsgHuXLUwjjpQ==} + '@oxfmt/binding-win32-ia32-msvc@0.50.0': + resolution: {integrity: sha512-3r6XZ8+X6qlLbXaPW2NygfiAWSpKbkE36pAVzS83mY+cYY+pSMalJ+qnCgkr92tr+Iqv988XKQ1CpARTg9ITbQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.46.0': - resolution: {integrity: sha512-IXxiQpkYnOwNfP23vzwSfhdpxJzyiPTY7eTn6dn3DsriKddESzM8i6kfq9R7CD/PUJwCvQT22NgtygBeug3KoA==} + '@oxfmt/binding-win32-x64-msvc@0.50.0': + resolution: {integrity: sha512-BSE8D8KsvquMG9vU+Qt4qGuoOcZ36rxU5S6ZkHNguj+MlWkXWCBETnno3yJ9CfWvfCrbmieaN9LK6hdcdHNZ/w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.21.1': - resolution: {integrity: sha512-7TLjyWe4wG9saJc992VWmaHq2hwKfOEEVTjheReXJXaDhavMZI4X9a6nKhbEng4IVkYtzjD2jw16vw2WFXLYLw==} + '@oxlint-tsgolint/darwin-arm64@0.23.0': + resolution: {integrity: sha512-gOs9PVr2wEg4ox9z0aJo+RKhhImW86YL5N6yav8BK/rgPsIrwN/igSZ+pbRr723NFvUNKde9fgMhRA6JrXAOZw==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.21.1': - resolution: {integrity: sha512-7wf9Wf75nTzA7zpL9myhFe2RKvfuqGUOADNvUooCjEWvh7hmPz3lSEqTMh5Z/VQhzsG04mM9ACyghxhRzq7zFw==} + '@oxlint-tsgolint/darwin-x64@0.23.0': + resolution: {integrity: sha512-kjJ8B+7n4tB9VJdxS5A9GdJt6/bYpzbu4lXp2uO1S3sRmCB5gDEABlGoiePNApRWaW+xqL4b4xgiE727jSLhuA==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.21.1': - resolution: {integrity: sha512-IPuQN/Vd0Rjklg/cCGBbQyUuRBp2f6LQXpZYwk5ivOR6V/+CgiYsv8pn/PVY7gjeyoNvPQrXB7xMjHUO2YZbdw==} + '@oxlint-tsgolint/linux-arm64@0.23.0': + resolution: {integrity: sha512-6dCZuKNu135seMXilkRk9SpCx6i1XgmiipYGalLij5WVRX6ZYS8c4xI7preN/zv9fCXhsQclTIMDu2Y/cytTjw==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.21.1': - resolution: {integrity: sha512-d1niGuTbh2qiv7dR7tqkbOcM5cIR63of0lMBFdEQavL1KrJV8zuRdwdi68K7MNGdgoR+J5A9ajpGGvsHwp1bPg==} + '@oxlint-tsgolint/linux-x64@0.23.0': + resolution: {integrity: sha512-3bdilnyA7kmSTjK27rvjIjSxL5SIg3wt7vwNiRkouWB83ytssyKnuGvxSYJxgMEmFpSutzaBzcCUM2jDtPGcgA==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.21.1': - resolution: {integrity: sha512-ICu9y2JLnFPvFqstnWPPNqBM8LK8BWw2OTeaR0UgEMm4hOSbrZAKv1/hwZYyiLqnCNjBL87AGSQIgTHCYlsipw==} + '@oxlint-tsgolint/win32-arm64@0.23.0': + resolution: {integrity: sha512-j+OEp44SVYiQ+ZD+uttsX7u6L9SvmbbQ77SO1pSFCcJlsVMeCk8qZsjhKfGKuT/jIA+ipOJMVs/+pqUfObBWNw==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.21.1': - resolution: {integrity: sha512-cTEFCFjCj6iXfrSHcvajSPNqhEA4TxSzU3gFxbdGSAUTNXGToU99IbdhWAPSbhcucoym0XE4Zl7E41NiSkNTug==} + '@oxlint-tsgolint/win32-x64@0.23.0': + resolution: {integrity: sha512-5MyjFuqf+g8OUPJBSGWHJtmoWnzFJYyOg4To9WMQshZYEWig/vtu7JtJ03VWnzHv9LJkAUeApY0gVCOywFR/iQ==} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.61.0': - resolution: {integrity: sha512-6eZBPgiigK5txqoVgRqxbaxiom4lM8AP8CyKPPvpzKnQ3iFRFOIDc+0AapF+qsUSwjOzr5SGk4SxQDpQhkSJMQ==} + '@oxlint/binding-android-arm-eabi@1.65.0': + resolution: {integrity: sha512-jDVaGNURT5pEA9qcabh6WusIoBNybOMMDPCx+EFt+gxo6rVvoUf0+73Xy5x81+ZrxU+ewk5uRBYifjy5pgkcnA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.61.0': - resolution: {integrity: sha512-CkwLR69MUnyv5wjzebvbbtTSUwqLxM35CXE79bHqDIK+NtKmPEUpStTcLQRZMCo4MP0qRT6TXIQVpK0ZVScnMA==} + '@oxlint/binding-android-arm64@1.65.0': + resolution: {integrity: sha512-v0z80IWNA7c9RhUydq9YprBxCVZrQ6Ixls2tdxUC1F/1FFqSfa7xTX+EJf0mj6+BKRg2zWXqWfcbJUnETlLlIw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.61.0': - resolution: {integrity: sha512-8JbefTkbmvqkqWjmQrHke+MdpgT2UghhD/ktM4FOQSpGeCgbMToJEKdl9zwhr/YWTl92i4QI1KiTwVExpcUN8A==} + '@oxlint/binding-darwin-arm64@1.65.0': + resolution: {integrity: sha512-pL/mG/5gMzBwp1gdc5+Cwi87F9j3XRnPxHGyVj5Zd+dCEV5YkKt0L70PB3EGmEEHxgn4H+jnMS3xLuXs6mZW/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.61.0': - resolution: {integrity: sha512-uWpoxDT47hTnDLcdEh5jVbso8rlTTu5o0zuqa9J8E0JAKmIWn7kGFEIB03Pycn2hd2vKxybPGLhjURy/9We5FQ==} + '@oxlint/binding-darwin-x64@1.65.0': + resolution: {integrity: sha512-jVTneaeuHtqTrKYnhrdH1buhnSorinvpy1sv43ayclfWx/e/DfdRWv+h1fopJcHQbYr5WMcZMmDvnfEBkPZ+1A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.61.0': - resolution: {integrity: sha512-K/o4hEyW7flfMel0iBVznmMBt7VIMHGdjADocHKpK1DUF9erpWnJ+BSSWd2W0c8K3mPtpph+CuHzRU6CI3l9jQ==} + '@oxlint/binding-freebsd-x64@1.65.0': + resolution: {integrity: sha512-8lJQ7B6RloYDUhwVdbSpwT2eKsCN5KP1Scn18ly1tytCuhXhbs0nkfKHT4jWWZBJqmynWuzd+78bF7wILrj6pw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.61.0': - resolution: {integrity: sha512-P6040ZkcyweJ0Po9yEFqJCdvZnf3VNCGs1SIHgXDf8AAQNC6ID/heXQs9iSgo2FH7gKaKq32VWc59XZwL34C5Q==} + '@oxlint/binding-linux-arm-gnueabihf@1.65.0': + resolution: {integrity: sha512-EgmZY+DeWhLLEnNl70/49j3ltA8I6X9kxMfexupWi2Vwfp6RonGsBaHtGoedLolaU37ne7eDUgoxa3CFB95GZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.61.0': - resolution: {integrity: sha512-bwxrGCzTZkuB+THv2TQ1aTkVEfv5oz8sl+0XZZCpoYzErJD8OhPQOTA0ENPd1zJz8QsVdSzSrS2umKtPq4/JXg==} + '@oxlint/binding-linux-arm-musleabihf@1.65.0': + resolution: {integrity: sha512-OJMWmAYRVBCPPxnYr3j5sXRwHPh1bAuMlTStGco1Z8q3HkvSH4h+A10E9MiRNYmLhUuli5a2P5wmfj8cagiF5Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.61.0': - resolution: {integrity: sha512-vkhb9/wKguMkLlrm3FoJW/Xmdv31GgYAE+x8lxxQ+7HeOxXUySI0q36a3NTVIuQUdLzxCI1zzMGsk1o37FOe3w==} + '@oxlint/binding-linux-arm64-gnu@1.65.0': + resolution: {integrity: sha512-D8uNi50LsYKgS0vGARZDRx05TBZeSxAVdLGddSEqQLSU7xsiqdImHPEw55xq8sKA5rCc/4au/5uS7FQALWdLCg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.61.0': - resolution: {integrity: sha512-bl1dQh8LnVqsj6oOQAcxwbuOmNJkwc4p6o//HTBZhNTzJy21TLDwAviMqUFNUxDHkPGpmdKTSN4tWTjLryP8xg==} + '@oxlint/binding-linux-arm64-musl@1.65.0': + resolution: {integrity: sha512-IpbA8QGbwFehQhO+YaHwmoI81f93xvywpspf8HrdPCWOIeKwYfM1dhVhO4YKfZewTRRQEPY/JFjTOXTgkwhKrA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.61.0': - resolution: {integrity: sha512-QoOX6KB2IiEpyOj/HKqaxi+NQHPnOgNgnr22n9N4ANJCzXkUlj1UmeAbFb4PpqdlHIzvGDM5xZ0OKtcLq9RhiQ==} + '@oxlint/binding-linux-ppc64-gnu@1.65.0': + resolution: {integrity: sha512-ZSe8HgaZdgyHSv2+/pTG68z10+OarB18CkFKQOhRs3lmmP/p2vuigedK2e9d0ztoG2DU/duJzhxXBSjy/492HQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.61.0': - resolution: {integrity: sha512-1TGcTerjY6p152wCof3oKElccq3xHljS/Mucp04gV/4ATpP6nO7YNnp7opEg6SHkv2a57/b4b8Ndm9znJ1/qAw==} + '@oxlint/binding-linux-riscv64-gnu@1.65.0': + resolution: {integrity: sha512-DcTERf++v6HyPHukKAr0JFTRqB+YeDEvqzRgNDMaz7jITPf+tlJIwRxodlAqoXMYhNVEZhXdQM5RAAYH8/oPuw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.61.0': - resolution: {integrity: sha512-65wXEmZIrX2ADwC8i/qFL4EWLSbeuBpAm3suuX1vu4IQkKd+wLT/HU/BOl84kp91u2SxPkPDyQgu4yrqp8vwVA==} + '@oxlint/binding-linux-riscv64-musl@1.65.0': + resolution: {integrity: sha512-xjhMwuFJwRh40NOBzol4gM5gqAa0xPCJU+GQLM6BydV8TbfkIA7JeyCFNhyfbE9Q/5EWcKYTx62R0cRcjP7DAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.61.0': - resolution: {integrity: sha512-TVvhgMvor7Qa6COeXxCJ7ENOM+lcAOGsQ0iUdPSCv2hxb9qSHLQ4XF1h50S6RE1gBOJ0WV3rNukg4JJJP1LWRA==} + '@oxlint/binding-linux-s390x-gnu@1.65.0': + resolution: {integrity: sha512-lrWSXb8JzboPWYBG6Kunt/eemvjo2oCFXktShsm3yMToY7HjzKLjxh7CljSvGnnZH9oohNFHOKc9xYpGKCPm6w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.61.0': - resolution: {integrity: sha512-SjpS5uYuFoDnDdZPwZE59ndF95AsY47R5MliuneTWR1pDm2CxGJaYXbKULI71t5TVfLQUWmrHEGRL9xvuq6dnA==} + '@oxlint/binding-linux-x64-gnu@1.65.0': + resolution: {integrity: sha512-A7xfghw250m4a1sPV+q44Mow2G5bhiC9FBvhAuIhJS6QovWnqzuL5AFQPEuwOB+PM4DhABkqxVa3Iwe3Y/nFlQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.61.0': - resolution: {integrity: sha512-gGfAeGD4sNJGILZbc/yKcIimO9wQnPMoYp9swAaKeEtwsSQAbU+rsdQze5SBtIP6j0QDzeYd4XSSUCRCF+LIeQ==} + '@oxlint/binding-linux-x64-musl@1.65.0': + resolution: {integrity: sha512-reqOun1+pWO3fW6cv7bsa8hHG0TN3t/82qPdaoJo90FwugXiMjKhZMChmH5Z01cFNRHmxN4+543Fy8478cM/iA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.61.0': - resolution: {integrity: sha512-OlVT0LrG/ct33EVtWRyR+B/othwmDWeRxfi13wUdPeb3lAT5TgTcFDcfLfarZtzB4W1nWF/zICMgYdkggX2WmQ==} + '@oxlint/binding-openharmony-arm64@1.65.0': + resolution: {integrity: sha512-KQpqOb/juDBO0xyloDkVDhOVxDUgAfZ2OAAVq99TJScJDzT319xry1QzB9LQohV9QGnA7p6m/XATZkMXc84lwA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.61.0': - resolution: {integrity: sha512-vI//NZPJk6DToiovPtaiwD4iQ7kO1r5ReWQD0sOOyKRtP3E2f6jxin4uvwi3OvDzHA2EFfd7DcZl5dtkQh7g1w==} + '@oxlint/binding-win32-arm64-msvc@1.65.0': + resolution: {integrity: sha512-xfqcOc3nJFeAd1kDY4T9d3XeJIhr00twaaW0kOAzGPyUHkruXtNJv6zz1Ra9fRtSek5VpW2Yoj5AcwPIlT0ZiQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.61.0': - resolution: {integrity: sha512-0ySj4/4zd2XjePs3XAQq7IigIstN4LPQZgCyigX5/ERMLjdWAJfnxcTsrtxZxuij8guJW8foXuHmhGxW0H4dDA==} + '@oxlint/binding-win32-ia32-msvc@1.65.0': + resolution: {integrity: sha512-JV+pXm45p8sdgs3c7LOPAohW23optCNZETFOXUcjn6cS4PYZhEU/RI54Z5dHdMudab3nw7T48PZILthM+Q0COQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.61.0': - resolution: {integrity: sha512-0xgSiyeqDLDZxXoe9CVJrOx3TUVsfyoOY7cNi03JbItNcC9WCZqrSNdrAbHONxhSPaVh/lzfnDcON1RqSUMhHw==} + '@oxlint/binding-win32-x64-msvc@1.65.0': + resolution: {integrity: sha512-D7L/oBbskLss21bYrRbFuIs81AiSQV+wRzwck54dOkHIlq2qu1xjLz8u6jCqGH8Fltk8bB5DLBpVhE7v/fA8XQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -2024,8 +2005,11 @@ packages: '@pinojs/redact@0.4.0': resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} - '@posthog/core@1.25.3': - resolution: {integrity: sha512-yE0T2NUwRMsfS/fSh7lK7/mt4JXRDVmTTwq/vLanDVzH2Rw7C9RVlMw7YePlNxRHvW8ef3PrZ0X9zwWa4MRRDg==} + '@posthog/core@1.29.3': + resolution: {integrity: sha512-OvJSAzqVfZx+L7D874q56FVRTxOIsFBVB3wSB/Uny+DhmfNRGDi1rpZAruEmQYl9WQlQJb1q6JXGAC+rxVXjPA==} + + '@posthog/types@1.374.0': + resolution: {integrity: sha512-qouREpHIxsBS3Gc6a5gZvg6/ykK+4TJAs4wYTUIH/emH1HQfaaLrWzGoEm+/OPwlNxHzw4tQn9OOyxsmr9NF2g==} '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} @@ -2521,9 +2505,6 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@sinclair/typebox@0.34.49': - resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==} - '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} @@ -2531,31 +2512,31 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@supabase/auth-js@2.104.0': - resolution: {integrity: sha512-Vs0ndL+s5an7rOmXtS/nbYnGXL8m+KXlCSrPIcw9bR96ma6qyLYILnE6syuM+rpDnf+Tg4PVNxNB2+oDwoy6mA==} + '@supabase/auth-js@2.105.4': + resolution: {integrity: sha512-Ejfa37M5xoIwoxVebxRahnwubPo8g22qkXQ4p50+N9MIvU9UZoN+A8dwVPtczzGf8oV/YXN80ZPxK4aWXuSN/A==} engines: {node: '>=20.0.0'} - '@supabase/functions-js@2.104.0': - resolution: {integrity: sha512-O8EyEz/RT1kfWhyJNpVc/VbLeBsohHGBVif/CI83zoMB+Iul/t/NIekH1/7RsH6kuO+b2D4wJhfiaW8Qr47sRg==} + '@supabase/functions-js@2.105.4': + resolution: {integrity: sha512-JVNKbBft3Qkja+WlGaE026AJ2AH9K0UTsxsfvEIHgd4zFrBor4BYRCrYFrv9IDsvVqkF72wKDsODJl5GY/C4tA==} engines: {node: '>=20.0.0'} - '@supabase/phoenix@0.4.0': - resolution: {integrity: sha512-RHSx8bHS02xwfHdAbX5Lpbo6PXbgyf7lTaXTlwtFDPwOIw64NnVRwFAXGojHhjtVYI+PEPNSWwkL90f4agN3bw==} + '@supabase/phoenix@0.4.2': + resolution: {integrity: sha512-YSAGnmDAfuleFCVt3CeurQZAhxRfXWeZIIkwp7NhYzQ1UwW6ePSnzsFAiUm/mbCkfoCf70QQHKW/K6RKh52a4A==} - '@supabase/postgrest-js@2.104.0': - resolution: {integrity: sha512-ynylEq6wduQEycj6pL3P+/yIfDQ+CTnBC5I6p+PzcAO2ybj9coAITVtMfboi+g/dacgMslN5MH73rXsRMB29+Q==} + '@supabase/postgrest-js@2.105.4': + resolution: {integrity: sha512-SppIyLo/kTwIlz1qpv2HN1EQqBg0GVktrDDFsXygYROha3MgVn4rT7p5EjFHFqXQm2rdRGb/BI7bc+jr10m91w==} engines: {node: '>=20.0.0'} - '@supabase/realtime-js@2.104.0': - resolution: {integrity: sha512-9fUVDoTVAhn7a79+AmEx+asUlRtf2yBrji7TQckcKn/WK4hvAA9Lia9er+lnhuz3WNiF1x6kkA4x7bRCJrU+KA==} + '@supabase/realtime-js@2.105.4': + resolution: {integrity: sha512-6ov6c59+8D9h7q4M4Gy/uDJlC0Akxl9/714Y+6vJ+Sijuc16TS/p5DwhfRCLNcIhNiej1gEt+CQUwsjiPt4PxQ==} engines: {node: '>=20.0.0'} - '@supabase/storage-js@2.104.0': - resolution: {integrity: sha512-s2NHtuAWb9nldJ/fS62WnJE6edvCWn31rrO+FJKlAohs99qdVgtLegUReTU2H9WnZiQlVqaBtu386wt6/6lrRw==} + '@supabase/storage-js@2.105.4': + resolution: {integrity: sha512-Jx+pzMP1Whjof2PWHoVBUA75/p7PQE9CqKBzn1oXVyJDOggMLSH2OzVWwsXYaxEpdC1K/KltwmOX44nL3LHl9g==} engines: {node: '>=20.0.0'} - '@supabase/supabase-js@2.104.0': - resolution: {integrity: sha512-hILwhIjCB53G31jlHUe73NDEmrXudcjcYlVRuvNfEhzf0gyFQaFf7j6rd1UGmYZkFMOg//DFE8Iy9ZbNEgosVw==} + '@supabase/supabase-js@2.105.4': + resolution: {integrity: sha512-cEnx+k49knU+qdIP7rXwR6fqEXPHZs+74xFK1R0S8MgQ7v9tbePVdGxvO03n3bPympMdJWVLadARBfU4TgNHCQ==} engines: {node: '>=20.0.0'} '@swc-node/core@1.14.1': @@ -2574,86 +2555,86 @@ packages: '@swc-node/sourcemap-support@0.6.1': resolution: {integrity: sha512-ovltDVH5QpdHXZkW138vG4+dgcNsxfwxHVoV6BtmTbz2KKl1A8ZSlbdtxzzfNjCjbpayda8Us9eMtcHobm38dA==} - '@swc/core-darwin-arm64@1.15.30': - resolution: {integrity: sha512-VvpP+vq08HmGYewMWvrdsxh9s2lthz/808zXm8Yu5kaqeR8Yia2b0eYXleHQ3VAjoStUDk6LzTheBW9KXYQdMA==} + '@swc/core-darwin-arm64@1.15.33': + resolution: {integrity: sha512-N+L0uXhuO7FIfzqwgxmzv0zIpV0qEp8wPX3QQs2p4atjMoywup2JTeDlXPw+z9pWJGCae3JjM+tZ6myclI+2gA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.30': - resolution: {integrity: sha512-WiJA0hiZI3nwQAO6mu5RqigtWGDtth4Hiq6rbZxAaQyhIcqKIg5IoMRc1Y071lrNJn29eEDMC86Rq58xgUxlDg==} + '@swc/core-darwin-x64@1.15.33': + resolution: {integrity: sha512-/Il4QHSOhV4FekbsDtkrNmKbsX26oSysvgrRswa/RYOHXAkwXDbB4jaeKq6PsJLSPkzJ2KzQ061gtBnk0vNHfA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.30': - resolution: {integrity: sha512-YANuFUo48kIT6plJgCD0keae9HFXfjxsbvsgevqc0hr/07X/p7sAWTFOGYEc2SXcASaK7UvuQqzlbW8pr7R79g==} + '@swc/core-linux-arm-gnueabihf@1.15.33': + resolution: {integrity: sha512-C64hBnBxq4viOPQ8hlx+2lJ23bzZBGnjw7ryALmS+0Q3zHmwO8lw1/DArLENw4Q18/0w5wdEO1k3m1wWNtKGqQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.30': - resolution: {integrity: sha512-VndG8jaR4ugY6u+iVOT0Q+d2fZd7sLgjPgN8W/Le+3EbZKl+cRfFxV7Eoz4gfLqhmneZPdcIzf9T3LkgkmqNLg==} + '@swc/core-linux-arm64-gnu@1.15.33': + resolution: {integrity: sha512-TRJfnJbX3jqpxRDRoieMzRiCBS5jOmXNb3iQXmcgjFEHKLnAgK1RZRU8Cq1MsPqO4jAJp/ld1G4O3fXuxv85uw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [glibc] - '@swc/core-linux-arm64-musl@1.15.30': - resolution: {integrity: sha512-1SYGs2l0Yyyi0pR/P/NKz/x0kqxkoiw+BXeJjLUdecSk/KasncWlJrc6hOvFSgKHOBrzgM5jwuluKtlT8dnrcA==} + '@swc/core-linux-arm64-musl@1.15.33': + resolution: {integrity: sha512-il7tYM+CpUNzieQbwAjFT1P8zqAhmGWNAGhQZBnxurXZ0aNn+5nqYFTEUKNZl7QibtT0uQXzTZrNGHCIj6Y1Og==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [musl] - '@swc/core-linux-ppc64-gnu@1.15.30': - resolution: {integrity: sha512-TXREtiXeRhbfDFbmhnkIsXpKfzbfT73YkV2ZF6w0sfxgjC5zI2ZAbaCOq25qxvegofj2K93DtOpm9RLaBgqR2g==} + '@swc/core-linux-ppc64-gnu@1.15.33': + resolution: {integrity: sha512-ZtNBwN0Z7CFj9Il0FcPaKdjgP7URyKu/3RfH46vq+0paOBqLj4NYldD6Qo//Duif/7IOtAraUfDOmp0PLAufog==} engines: {node: '>=10'} cpu: [ppc64] os: [linux] libc: [glibc] - '@swc/core-linux-s390x-gnu@1.15.30': - resolution: {integrity: sha512-DCR2YYeyd6DQE4OuDhImouuNcjXEiEdnn1Y0DyGteugPEDvVuvYk8Xddi+4o2SgWH6jiW8/I+3emZvbep1NC+g==} + '@swc/core-linux-s390x-gnu@1.15.33': + resolution: {integrity: sha512-De1IyajoOmhOYYjw/lx66bKlyDpHZTueqwpDrWgf5O7T6d1ODeJJO9/OqMBmrBQc5C+dNnlmIufHsp4QVCWufA==} engines: {node: '>=10'} cpu: [s390x] os: [linux] libc: [glibc] - '@swc/core-linux-x64-gnu@1.15.30': - resolution: {integrity: sha512-5Pizw3NgfOJ5BJOBK8TIRa59xFW2avESTOBDPTAYwZYa1JNDs+KMF9lUfjJiJLM5HiMs/wPheA9eiT0q9m2AoA==} + '@swc/core-linux-x64-gnu@1.15.33': + resolution: {integrity: sha512-mGTH0YxmUN+x6vRN/I6NOk5X0ogNktkwPnJ94IMvR7QjhRDwL0O8RXEDhyUM0YtwWrryBOqaJQBX4zruxEPRGw==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [glibc] - '@swc/core-linux-x64-musl@1.15.30': - resolution: {integrity: sha512-qyqydP/wyH8alcIP4a2hnGSjHLJjm9H7yDFup+CPy9oTahFgLLwnNcv5UHXqO2Qs3AIND+cls5f/Bb6hqpxdgA==} + '@swc/core-linux-x64-musl@1.15.33': + resolution: {integrity: sha512-hj628ZkSEJf6zMf5VMbYrG2O6QqyTIp2qwY6VlCjvIa9lAEZ5c2lfPblCLVGYubTeLJDxadLB/CxqQYOQABeEQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [musl] - '@swc/core-win32-arm64-msvc@1.15.30': - resolution: {integrity: sha512-CaQENgDHVGOg1mSF5sQVgvfFHG9kjMor2rkLMLeLOkfZYNj13ppnJ9+lfaBZLZUMMbnlGQnavCJb8PVBUOso7Q==} + '@swc/core-win32-arm64-msvc@1.15.33': + resolution: {integrity: sha512-GV2oohtN2/5+KSccl86VULu3aT+LrISC8uzgSq0FRnikpD+Zwc+sBlXmoKQ+Db6jI57ITUOIB8jRkdGMABC29g==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.30': - resolution: {integrity: sha512-30VdLeGk6fugiUs/kUdJ/pAg7z/zpvVbR11RH60jZ0Z42WIeIniYx0rLEWN7h/pKJ3CopqsQ3RsogCAkRKiA2g==} + '@swc/core-win32-ia32-msvc@1.15.33': + resolution: {integrity: sha512-gtyvzSNR8DHKfFEA2uqb8Ld1myqi6uEg2jyeUq3ikn5ytYs7H8RpZYC8mdy4NXr8hfcdJfCLXPlYaqqfBXpoEQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.30': - resolution: {integrity: sha512-4iObHPR+Q4oDY110EF5SF5eIaaVJNpMdG9C0q3Q92BsJ5y467uHz7sYQhP60WYlLFsLQ1el2YrIPUItUAQGOKg==} + '@swc/core-win32-x64-msvc@1.15.33': + resolution: {integrity: sha512-d6fRqQSkJI+kmMEBWaDQ7TMl8+YjLYbwRUPZQ9DY0ORBJeTzOrG0twvfvlZ2xgw6jA0ScQKgfBm4vHLSLl5Hqg==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.15.30': - resolution: {integrity: sha512-R8VQbQY1BZcbIF2p3gjlTCwAQzx1A194ugWfwld5y+WgVVWqVKm7eURGGOVbQVubgKWzidP2agomBbg96rZilQ==} + '@swc/core@1.15.33': + resolution: {integrity: sha512-jOlwnFV2xhuuZeAUILGFULeR6vDPfijEJ57evfocwznQldLU3w2cZ9bSDryY9ip+AsM3r1NJKzf47V2NXebkeQ==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -2683,8 +2664,8 @@ packages: '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@types/bun@1.3.12': - resolution: {integrity: sha512-DBv81elK+/VSwXHDlnH3Qduw+KxkTIWi7TXkAeh24zpi5l0B2kUg9Ga3tb4nJaPcOFswflgi/yAvMVBPrxMB+A==} + '@types/bun@1.3.14': + resolution: {integrity: sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw==} '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -2713,8 +2694,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@25.6.0': - resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} + '@types/node@25.8.0': + resolution: {integrity: sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==} '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} @@ -2736,145 +2717,154 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260422.1': - resolution: {integrity: sha512-W/lGgoEfbdI/QWYqcNP0fSa4DHQKKEMLzDPsE6fA64zmfCNsTO9M7ttK0acKiLsGB16pr0lubuMDRNN5kXyQ8w==} + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260518.1': + resolution: {integrity: sha512-5n6xnR8jsDjrjHkf30hVVzby/cTusPrc0f6S3hQLrTdACC9JejsrHMHV1rRu55gSAIZhhBY0pqvG3/VKB9J0tA==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [darwin] - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260422.1': - resolution: {integrity: sha512-6tZ2yAcKLBIghwKyC74vDqb/7rB99fTpERv9f64iA1tMh6l+WHIuQb6z3mIFVOYBIl2pN9CYasURLroKYtUz1w==} + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260518.1': + resolution: {integrity: sha512-zO1lq7F6QskMZOfyQGpvnJF+DtbWtraMF/1srgtu86Yoc3MvRAnidX3R5S6l10d+r153WL0T4A8aMfZNhv2SAQ==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [darwin] - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260422.1': - resolution: {integrity: sha512-7HL4E7kP0ociYB8R4+QuIbzfT3pjdesNY+ax/q6fP3IMd3/QNAL/qsm/NaokjXke+I7uYxKqQ8Qo/t5MSv/r+A==} + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260518.1': + resolution: {integrity: sha512-V/nLg3BtptWuRJnFUM2wACfZqtkqwC461eb07VabOWTkTEP+ouB7bUWapx6sbb023FiUIk3C3BPK5icjDM7GxA==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [linux] - '@typescript/native-preview-linux-arm@7.0.0-dev.20260422.1': - resolution: {integrity: sha512-EWP1Jq2I8MMSkoF9D6ztXgRmnUy2KcaZfL9FYcdm3Am6ZYuI6/SCR3HVIVYbaixAJXe/qUh5MN3LzJbl/4hefQ==} + '@typescript/native-preview-linux-arm@7.0.0-dev.20260518.1': + resolution: {integrity: sha512-u2XUYrpqqBoYa+sb80pNURIy7OqIj1sBNecJb3+cGVxKdeBOMT2p7yPlg6ozuZnurAeUSuGwMWt5eekG0QRYVQ==} + engines: {node: '>=16.20.0'} cpu: [arm] os: [linux] - '@typescript/native-preview-linux-x64@7.0.0-dev.20260422.1': - resolution: {integrity: sha512-fDqkLf2Hv7X1Cy1B5OMcljPt/+8GpnTxFM9rDCFrYAPgOolIQJ9qwkb+xGfvAtxkkE5sZIvGPcqjP9PWQHt2qw==} + '@typescript/native-preview-linux-x64@7.0.0-dev.20260518.1': + resolution: {integrity: sha512-NpG2X1kViy7YRpw54GTanHuoH/hwLywuVvFDnoAitR7zDCGJ7OP2YMyCLMrVJX+aCjz4NPrYqROf9OfdwRyNIw==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [linux] - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260422.1': - resolution: {integrity: sha512-l1tDnyNQSqxFkKz683dD8EORQtcQqZyWkTDnRtHmaPg2mTRxhxSekL/HcsHx/1/DoGTfl310O+CmXzd2mTq3pQ==} + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260518.1': + resolution: {integrity: sha512-Y7NTZd5yD/FxQLVxQdlK9MdXEsVQFgSOMu24p32kHthFJeVT81TYeMCr6qg0dKWCgOHGEcZtgN3jdmBz0OdaTg==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [win32] - '@typescript/native-preview-win32-x64@7.0.0-dev.20260422.1': - resolution: {integrity: sha512-VQbDQlp1bjV5nnHagQLXQAhid3S48l1OToIBjvqlw18s0V0YSgoyNL6E/rE7FBdkGrTLf/rtKjo42IZnt3tvqA==} + '@typescript/native-preview-win32-x64@7.0.0-dev.20260518.1': + resolution: {integrity: sha512-bFtq+ynOjZ3zqJSSm0wMFxlstXHoxGhT+dXnj5HihmuGGjrRM5PoNbPZVnpJ4xqAwvx8KHWZchZnpAr+yPgekA==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [win32] - '@typescript/native-preview@7.0.0-dev.20260422.1': - resolution: {integrity: sha512-8CR8zHFlLpSL5OXY4Wbz2DmiDOoat1JBMkydZUHwQIS4cpoTN7SHjk2BN8i51XHUy0jMF5airL0TlY3GOfZmKg==} + '@typescript/native-preview@7.0.0-dev.20260518.1': + resolution: {integrity: sha512-aJq3XQBPkL91U0YWPQ4WUzFpfzLmfwWt5tmtzdXaIiPZisqFVeG/uw+2b4e/uL/YhPAQt9OHG0UEIGLNfoiFwA==} + engines: {node: '>=16.20.0'} hasBin: true '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@vercel/detect-agent@1.2.3': resolution: {integrity: sha512-VYNCgUc0nOmC4WJmWw9GkrKdfr8Zl4/rxhC5SvgacBgxiW9W/9NRttUoHHXV8xdII3MaRgkZZVX8Ikzc/Jmjag==} engines: {node: '>=14'} - '@verdaccio/auth@8.0.0-next-8.37': - resolution: {integrity: sha512-wvKPnjDZReT0gSxntUbcOYl23m2mHeMT9a/uhRMdw3pbraSgozatnf3UuoTd6Uyfm3vn+HHAHqzudUn1+yD4rw==} + '@verdaccio/auth@8.0.1': + resolution: {integrity: sha512-jq3bg0YyU5GciWMRjS22OUuVvpoV+ftlAuF49K9ctFN0PYlrJipIPu4aMd3OC4dfYaC210QEApdSM2q49/VsJg==} engines: {node: '>=18'} - '@verdaccio/config@8.0.0-next-8.37': - resolution: {integrity: sha512-SbmDMJpora293B+TDYfxJL5LEaFh7gdh0MmkPJCBkmGlRPmynTfHcQzVzAll3+IMYFkrf1zZtq/qlgorjaoFoQ==} + '@verdaccio/config@8.1.0': + resolution: {integrity: sha512-wMTffzodvyLa/Ob/Zd6SFRhyKQpTzBRPypvYwqLouLO+AMpUoZQ6KN197r8Xt+vclVa7ysUnGqscnKx94l2Rpg==} engines: {node: '>=18'} - '@verdaccio/core@8.0.0-next-8.21': - resolution: {integrity: sha512-n3Y8cqf84cwXxUUdTTfEJc8fV55PONPKijCt2YaC0jilb5qp1ieB3d4brqTOdCdXuwkmnG2uLCiGpUd/RuSW0Q==} + '@verdaccio/core@8.0.0-next-8.29': + resolution: {integrity: sha512-ztsNbnHMGqpOJlC3x/Jz7+0Xzrul+UIQQAFsTFHO3pET8nyZWkh/1TH50olz0pZ/OS87O/+7mk04TK9hHD/eFQ==} engines: {node: '>=18'} - '@verdaccio/core@8.0.0-next-8.37': - resolution: {integrity: sha512-R8rDEa2mPjfHhEK2tWTMFnrfvyNmTd5ZrNz9X5/EiFVJPr/+oo9cTZkDXzY9+KREJUUIUFili4qynmBt0lw8nw==} + '@verdaccio/core@8.1.0': + resolution: {integrity: sha512-rGJy2dnwVwx6QvQqh1YEfyjigX/pyKjMAqO+d6uDYGoBw8Y25sMmJqwuaZx8GTvC3HigcteZBHjkOxFiBgoNLQ==} engines: {node: '>=18'} - '@verdaccio/file-locking@10.3.1': - resolution: {integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==} + '@verdaccio/file-locking@10.3.3': + resolution: {integrity: sha512-AT1v+1AZ7fJeyXYz35B57TTMPWctydrvdH6/Ct7p3akZeSKYJ9rQBjvdO0McxkFqpl6VAzlQVjq8ihLTPFQ4fA==} engines: {node: '>=12'} - '@verdaccio/file-locking@13.0.0-next-8.7': - resolution: {integrity: sha512-XL12Okp4YQd0ogYMyGc+JrqrtVC+76V5hUGCK+s/VluSFSZaJQiLs4MoUPsKfwGhqXHCAm1JcNaz4L5LoXNbjQ==} + '@verdaccio/file-locking@13.0.0': + resolution: {integrity: sha512-wC7HzhKDC+5PDZqCmh5griU9O/PnxS0pKHDRUAKHvcaoWANPUP8PR3ONmZ9prJUIHRPexX+jQn3ATqF5ZetJcA==} engines: {node: '>=18'} - '@verdaccio/hooks@8.0.0-next-8.37': - resolution: {integrity: sha512-n2t6fjXqSA+y402zO2Yh5UEe+rzMf1jhglj46MQf7IswCaST/SGLlJ5VCl6bU8LGbSr9FOz7BAtUXc64i3oCmA==} + '@verdaccio/hooks@8.0.1': + resolution: {integrity: sha512-nqxwncwA4BRP+JGhXx4qfgOa3vTUh4kc+m/9VB2b+SF2AF05z8ViqcqnWT+ZMKx5p0rAGvVUfrIQ/lcBCEWlQw==} engines: {node: '>=18'} - '@verdaccio/loaders@8.0.0-next-8.27': - resolution: {integrity: sha512-bDfHHCDrOCSdskAKeKxPArUi5aGXtsxEpRvO8MzghX50g1zJnVzLF1KEbsEY9ScFqGZAVYtZTcutysA0VOQ0Rg==} + '@verdaccio/loaders@8.0.1': + resolution: {integrity: sha512-RxOvAJMXSSMhNLuLYZwKXLKeK4LaznXL/+AYmW3HTHM+Ki6aJKJsmYIBzUmIoLz7aY9nYtYnPCR9ArE64e7nEw==} engines: {node: '>=18'} - '@verdaccio/local-storage-legacy@11.1.1': - resolution: {integrity: sha512-P6ahH2W6/KqfJFKP+Eid7P134FHDLNvHa+i8KVgRVBeo2/IXb6FEANpM1mCVNvPANu0LCAmNJBOXweoUKViaoA==} + '@verdaccio/local-storage-legacy@11.3.1': + resolution: {integrity: sha512-KV66waxc03K1Lne1FfdhmURcULJQ4YdXY5qjAPZEwplRX1lCLx18pyvyRi3/98Cmt7VkIw0qA4DCXMTtwNkdIg==} engines: {node: '>=18'} - '@verdaccio/logger-commons@8.0.0-next-8.37': - resolution: {integrity: sha512-HVt7ttnKgioERB1lCc1UnqnJMJ8skAeivLe49uq3wEG3QtruQGCct5nosj+q1pjx8SaYpQA+qxs1+4UDddprVA==} + '@verdaccio/logger-commons@8.0.1': + resolution: {integrity: sha512-qp/wWSDKINtORtyU8RbMyswgt2AUNNH4oo7a76b/dndGDeoVMiuPZgGWbh0idHKVqyhYT8d2zRV4sUrgDV6cSQ==} engines: {node: '>=18'} - '@verdaccio/logger-prettify@8.0.0-next-8.5': - resolution: {integrity: sha512-zCsvdKgUQx2mSu7fnDOkA2r2QX6yMmBDsXGmqXmoov/cZ89deREn0uC7xIX7/YEo8EspBoXiUGzqI+S+qUWPyw==} + '@verdaccio/logger-prettify@8.0.0': + resolution: {integrity: sha512-Yfz8Nd4vgxdCk3CrV+vWMigsPmpsFDYy6PNKSnNrPchO+cfXxdqoBtYSS+LqeXI22gVtQ1JsduGSd8O8mLtIfg==} engines: {node: '>=18'} - '@verdaccio/logger@8.0.0-next-8.37': - resolution: {integrity: sha512-xG27C1FsbTsHhvhB3OpisVzHUyrE9NSVrzVHapPuOPd6X1DpnHZoZ+UYBAS0MSO1tGS+NEHW9GHL0XiroULggA==} + '@verdaccio/logger@8.0.1': + resolution: {integrity: sha512-O0HV+olvcYGCGLolvH3Lm0WnWA+vCGFT5jM4yWos9oXFScrMs5X7P5iTPRzpWL0BbUlL+ygsPrB/CiPEvl4YNQ==} engines: {node: '>=18'} - '@verdaccio/middleware@8.0.0-next-8.37': - resolution: {integrity: sha512-8SqCdzKfANhaO/ZoSBBJHPlDWmXEJdq/1giV/ZKYtU4xVbBb/4ThKp2nNKk4s9+8S8XNNgX+7J5e/BgbIzzsEA==} + '@verdaccio/middleware@8.0.1': + resolution: {integrity: sha512-li1oQh30HHPi0wg4fF+1cKiYPdZPe35iTNuJZzKMIt8gPj4nCMVJ2Lfvj+n77LP+0BzqXmFfuLQuu4GmPcI/vQ==} engines: {node: '>=18'} - '@verdaccio/package-filter@13.0.0-next-8.5': - resolution: {integrity: sha512-+RZzVI/Yqjpoiv2SL3C0cxMC8ucU6j+YPdP/Bg/KJVqPbGNTn4Ol/fuGNhMJO6meIRS5ekW0PSrAvrDJ6E+JCA==} + '@verdaccio/package-filter@13.0.1': + resolution: {integrity: sha512-sIEtylJyaZ7etQXe3S5jlxdfGLugpm7FekXk24KoJPSOcSxRP+5ZUpEuJAtCUbywg5i8oaTVxdLY4Fq/aJfVqA==} engines: {node: '>=18'} - '@verdaccio/search-indexer@8.0.0-next-8.6': - resolution: {integrity: sha512-+vFkeqwXWlbpPO/vxC1N5Wbi8sSXYR5l9Z41fqQgSncaF/hfSKB/iHsid1psCusfsDPGuwEbm2usPEW0nDdRDg==} + '@verdaccio/search-indexer@8.0.0': + resolution: {integrity: sha512-Wqz8HsUeUFfcCPTN90XrhNd82Pjp5wXb2r/Tk5G3PuxRMSx1oVT6wzMOuTcmeuyAJkxKIo0ZhnlSIrvrYoQIdQ==} engines: {node: '>=18'} - '@verdaccio/signature@8.0.0-next-8.29': - resolution: {integrity: sha512-D1OyGi7+/5zXdbf78qdmL4wpf7iGN+RNDGB2TdLVosSrd+PWGrXqMJB3q2r/DJQ8J3724YVOJgNKiXjxV+Y1Aw==} + '@verdaccio/signature@8.0.1': + resolution: {integrity: sha512-m/pU1DBF4NTjG3Wn4TUWOFcQvGorTT2M+sUhzrJITAfsVv1/TbbOVLuuIMob6Wv5OB0QFaa86nbTfHmAtVai+Q==} engines: {node: '>=18'} - '@verdaccio/streams@10.2.1': - resolution: {integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==} + '@verdaccio/streams@10.2.3': + resolution: {integrity: sha512-rDXAMZNIpAO5n/bz2xewrIy9RdL1jCYL4SF8A7NGv5GU6Bcx/rJk3/BqsVP29rfIKZWvdgS5uNVer1QpDe0skg==} engines: {node: '>=12', npm: '>=5'} - '@verdaccio/tarball@13.0.0-next-8.37': - resolution: {integrity: sha512-Qxm6JQYEFfkeJd4YQII/2IAMiL++QnM6gqKXZbM5mNkAApyqx8ZbL1e9pe3aCDmBYs2mo0JGORCy3OaHZcsJGw==} + '@verdaccio/tarball@13.0.1': + resolution: {integrity: sha512-5iWelTXHopMoNGQdX2BTD8QVueNAaHXbI8W6TaV95HFeTuocNwYCW5zm2BullCjBE5uT0P/uqMIk8Uwf5VLK4A==} engines: {node: '>=18'} '@verdaccio/ui-theme@9.0.0-next-9.14': resolution: {integrity: sha512-0PQW6PV+sHsQdV3gnHQqAcDcVGfT75vHq1TfIeEN2QY5KuEkvli8e5vut+sTe89p+GOTahHKgTMOcL0O3BvsgA==} - '@verdaccio/url@13.0.0-next-8.37': - resolution: {integrity: sha512-Gtv5oDgVwGPGxzuXaIJLbmL8YkBKW2UZwDsrnbDoWRt1nWLtiOp4Vui1VISTqX7A9BB50YslLEgNLcPd2qRE+w==} + '@verdaccio/url@13.0.1': + resolution: {integrity: sha512-vZfhn7yAPHWOQA8t3QVubMLYCmYD6PNrP9BDebzvWHbSMcx+9ouNO52KNYM6RkTepSsq0sm5f//Bwt1HUPXpuw==} engines: {node: '>=18'} - '@verdaccio/utils@8.1.0-next-8.37': - resolution: {integrity: sha512-wfwn3z5M+w2KOV+xJFVv8tM8aOB4Ok5emfBDrDHrHMPDJ/fn3dEo6HoOra654PJ+zNwbTiMDvE5oAg/PLtnsUw==} + '@verdaccio/utils@8.1.1': + resolution: {integrity: sha512-yfaiOIbI/aLF0BDZd3naeswG3z69fTRh00svq5SLEUCbreqyFOcelbzTgOjcO4M9pddJWi2/mK+TgdJQZ3MbPg==} engines: {node: '>=18'} - '@vitest/coverage-istanbul@4.1.5': - resolution: {integrity: sha512-X4kQMDEWh9mA0IiLuigtdYv4kXe+W8KLTbucoz15lbyZRPAxT5l+hu0JizI7Am050+G9vQnB7QJNgYi2LnwV4w==} + '@vitest/coverage-istanbul@4.1.6': + resolution: {integrity: sha512-lOt/VDh+sihAx3OUxCE5CC0qZfAhIzE3Dxw75NJ3P0C6ruUgT9b/jZKECE1ctpbxSVic9OkLdXz5UEX39ks4Sw==} peerDependencies: - vitest: 4.1.5 + vitest: 4.1.6 - '@vitest/expect@4.1.5': - resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} + '@vitest/expect@4.1.6': + resolution: {integrity: sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==} - '@vitest/mocker@4.1.5': - resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==} + '@vitest/mocker@4.1.6': + resolution: {integrity: sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2884,28 +2874,24 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.5': - resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==} + '@vitest/pretty-format@4.1.6': + resolution: {integrity: sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==} - '@vitest/runner@4.1.5': - resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==} + '@vitest/runner@4.1.6': + resolution: {integrity: sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==} - '@vitest/snapshot@4.1.5': - resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==} + '@vitest/snapshot@4.1.6': + resolution: {integrity: sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==} - '@vitest/spy@4.1.5': - resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==} + '@vitest/spy@4.1.6': + resolution: {integrity: sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==} - '@vitest/utils@4.1.5': - resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} + '@vitest/utils@4.1.6': + resolution: {integrity: sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==} '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - '@yarnpkg/parsers@3.0.2': - resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} - engines: {node: '>=18.12.0'} - '@zkochan/js-yaml@0.0.7': resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true @@ -2962,10 +2948,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - ansi-styles@6.2.3: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} @@ -2974,9 +2956,6 @@ packages: resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} engines: {node: '>=8'} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2987,6 +2966,10 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} @@ -3022,8 +3005,8 @@ packages: aws4@1.13.2: resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - axios@1.15.0: - resolution: {integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==} + axios@1.16.0: + resolution: {integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==} b4a@1.8.0: resolution: {integrity: sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==} @@ -3039,6 +3022,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.3: + resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==} + engines: {node: 20 || >=22} + balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -3079,6 +3066,10 @@ packages: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} @@ -3099,8 +3090,8 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bun-types@1.3.12: - resolution: {integrity: sha512-HqOLj5PoFajAQciOMRiIZGNoKxDJSr6qigAttOX40vJuSp6DN/CxWp9s3C1Xwm4oH7ybueITwiaOcWXoYVoRkA==} + bun-types@1.3.14: + resolution: {integrity: sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ==} bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} @@ -3298,15 +3289,6 @@ packages: supports-color: optional: true - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -3372,8 +3354,12 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - dotenv-expand@11.0.7: - resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dotenv-expand@12.0.3: + resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==} engines: {node: '>=12'} dotenv@16.4.7: @@ -3396,8 +3382,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@4.0.0-beta.43: - resolution: {integrity: sha512-AJYyDimIwJOn87uUz/JzmgDc5GfjxJbXvEbTvNzMa+M3Uer344bLo/O5mMRkqc1vBleA+Ygs4+dbE3QsqOkKTQ==} + effect@4.0.0-beta.67: + resolution: {integrity: sha512-cQ1pVkbmB45VnFffQcmXuIuAT6b+t74JPKeJRqv6qT6MhilYQbLccrBu//jrxtlWpILfIzz09+s1QQrhOFmFKQ==} ejs@5.0.1: resolution: {integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==} @@ -3491,11 +3477,6 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - estree-util-attach-comments@3.0.0: resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} @@ -3553,8 +3534,8 @@ packages: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} - fast-check@4.6.0: - resolution: {integrity: sha512-h7H6Dm0Fy+H4ciQYFxFjXnXkzR2kr9Fb22c0UBpHnm59K2zpr2t13aPTHlltFiNT6zuxp6HMPAVVvgur4BLdpA==} + fast-check@4.8.0: + resolution: {integrity: sha512-GOJ158CUMnN6cSahsv4+ExARvIDuzzinFjkp0E9WtiBa5zcVeLozVkWaE4IzFcc+Y48Wp1EDlUZsXRyAztQcSg==} engines: {node: '>=12.17.0'} fast-deep-equal@3.1.3: @@ -3563,17 +3544,24 @@ packages: fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-string-truncated-width@1.2.1: - resolution: {integrity: sha512-Q9acT/+Uu3GwGj+5w/zsGuQjh9O1TyywhIwAxHudtWrgF09nHOPrvTLhQevPbttcxjr/SNN7mJmfOw/B1bXgow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} - fast-string-width@1.1.0: - resolution: {integrity: sha512-O3fwIVIH5gKB38QNbdg+3760ZmGz0SZMgvwJbA1b2TGXceKE6A2cOlfogh1iw8lr049zPyd7YADHy+B7U4W9bQ==} + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-wrap-ansi@0.1.6: - resolution: {integrity: sha512-HlUwET7a5gqjURj70D5jl7aC3Zmy4weA1SHUfM0JFI0Ptq987NH2TwbBFLoERhfwk+E+eaq4EK3jXoT+R3yp3w==} + fast-wrap-ansi@0.2.0: + resolution: {integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fd-package-json@2.0.0: resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} @@ -3591,6 +3579,10 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + finalhandler@1.3.2: resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} engines: {node: '>= 0.8'} @@ -3648,9 +3640,6 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - front-matter@4.0.2: - resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} - fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -3659,8 +3648,8 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - fumadocs-core@16.8.1: - resolution: {integrity: sha512-NsyGZ075E7cS1RdHImuvglC8jX3v+/FRJ+Uf0r3vp+mAvc8FFnunYfq0oSLl++XdtZSsT1/27mZqBzAGL7nsDg==} + fumadocs-core@16.8.11: + resolution: {integrity: sha512-HphKuDwPXgVsmRd82Bu5VHZZ8b7uR4ewgCUbUewhElNKIJXDPuyt7ju6LTQbD0E0Sos/cAN5k40Ym1agOirquA==} peerDependencies: '@mdx-js/mdx': '*' '@mixedbread/sdk': 0.x.x @@ -3678,7 +3667,7 @@ packages: react: ^19.2.0 react-dom: ^19.2.0 react-router: 7.x.x - waku: ^0.26.0 || ^0.27.0 || ^1.0.0 + waku: '*' zod: 4.x.x peerDependenciesMeta: '@mdx-js/mdx': @@ -3718,18 +3707,19 @@ packages: zod: optional: true - fumadocs-mdx@14.3.1: - resolution: {integrity: sha512-0u2eXvYrZtrJB14y6fDhP0hhxLgmH8JOmRv6IVHALt5MqR9JIJxV5LJYlho8g8CJXRE8w12rVNFZN0rtUVAqGw==} + fumadocs-mdx@15.0.6: + resolution: {integrity: sha512-4xODBBfy0/3/N7RQCcZPHdrpAeduwEcYEQC2aFiQlTZHCa/PMms0NOJNaaJgG+cg0G/b3ugqaiKifKE+z2Ndug==} hasBin: true peerDependencies: '@types/mdast': '*' '@types/mdx': '*' '@types/react': '*' - fumadocs-core: ^15.0.0 || ^16.0.0 + fumadocs-core: ^16.7.0 mdast-util-directive: '*' next: ^15.3.0 || ^16.0.0 react: ^19.2.0 - vite: 6.x.x || 7.x.x || 8.x.x + rolldown: '*' + vite: 7.x.x || 8.x.x peerDependenciesMeta: '@types/mdast': optional: true @@ -3743,16 +3733,18 @@ packages: optional: true react: optional: true + rolldown: + optional: true vite: optional: true - fumadocs-ui@16.8.1: - resolution: {integrity: sha512-RN6bjaQqvHVpYkHAxABoVt+0+fu2G+TASfIiJd3Eley5xAWBN7fz8DBmfdFVg4SWOPRzktUXi29fMOzEnWs6lw==} + fumadocs-ui@16.8.11: + resolution: {integrity: sha512-+yQVy1/wPLuw6X7plmz8fiuQu/xJd8pCEApUoUXaB14Ts658GC+1bXuz97yDFslL0uLrA6y2yAaaMdztNlLeeQ==} peerDependencies: '@takumi-rs/image-response': '*' '@types/mdx': '*' '@types/react': '*' - fumadocs-core: 16.8.1 + fumadocs-core: 16.8.11 next: 16.x.x react: ^19.2.0 react-dom: ^19.2.0 @@ -3810,6 +3802,14 @@ packages: github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -3842,6 +3842,10 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + hasown@2.0.3: resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} engines: {node: '>= 0.4'} @@ -3916,6 +3920,10 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + ignore@7.0.5: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} @@ -3927,9 +3935,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@6.0.0: - resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} - engines: {node: ^20.17.0 || >=22.9.0} + ini@7.0.0: + resolution: {integrity: sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} ink-spinner@5.0.0: resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==} @@ -3938,8 +3946,8 @@ packages: ink: '>=4.0.0' react: '>=18.0.0' - ink@7.0.1: - resolution: {integrity: sha512-o6LAC268PLawlGVYrXTyaTfke4VtJftEheuwbgkQf7yvSXyWp1nRwBbAyKEkWXFZZsW/la5wrMuNbuBvZK2C1w==} + ink@7.0.3: + resolution: {integrity: sha512-5kxHkIj9+RuqCU3zyvP4qvYWNOSHP2TW/SHayHGHOmk87KwfVcZwvJGemi9ch+ci2gXUqerK/Eh2DGEDt5q45g==} engines: {node: '>=22'} peerDependencies: '@types/react': '>=19.2.0' @@ -4011,6 +4019,10 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -4047,21 +4059,13 @@ packages: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - jest-diff@30.3.0: - resolution: {integrity: sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} - hasBin: true - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -4115,8 +4119,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - knip@6.6.1: - resolution: {integrity: sha512-SOmqh25vuAfdynGoDr/kMCxIuD5+PkMIfMSGQeMqfrxwuPTANvJKcVttLgGZjjkATALqukSe/hhDVqcwNkf92g==} + knip@6.14.1: + resolution: {integrity: sha512-SN3Ly0ixzj5CQkY/rc4OPHpWrCC0XRIIjgdP76G9Cni5k72ur5jBYOyvJuF5oPTM14v8eHcMUgPbElHa+lnR0g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -4231,9 +4235,6 @@ packages: lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} @@ -4259,8 +4260,8 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lucide-react@1.8.0: - resolution: {integrity: sha512-WuvlsjngSk7TnTBJ1hsCy3ql9V9VOdcPkd3PKcSmM34vJD8KG6molxz7m7zbYFgICwsanQWmJ13JlYs4Zp7Arw==} + lucide-react@1.16.0: + resolution: {integrity: sha512-dYwyPzb4MEKpGUmNYk3WKWPnMrHs3FKM+q94kAnJrcDIqqn1hq2xY8scaS2ovsOCM5D51ey2gaRG3PBb1vgoYQ==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -4340,6 +4341,10 @@ packages: merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -4449,6 +4454,10 @@ packages: micromark@4.0.2: resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -4488,8 +4497,8 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@7.4.6: @@ -4538,8 +4547,8 @@ packages: resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} hasBin: true - msgpackr@1.11.9: - resolution: {integrity: sha512-FkoAAyyA6HM8wL882EcEyFZ9s7hVADSwG9xrVx3dxxNQAtgADTrJoEWivID82Iv1zWDsv/OtbrrcZAzGzOMdNw==} + msgpackr@2.0.1: + resolution: {integrity: sha512-9J+tqTEsbHqY8YohazYgty7LgerFIWxvMLpUjqETSmjHojtJm2WnX2kK/2a1fLI7CO7ERP1YSEUXMucz4j+yBA==} multipasta@0.2.7: resolution: {integrity: sha512-KPA58d68KgGil15oDqXjkUBEBYc00XvbPj5/X+dyzeo/lWm9Nc25pQRlf1D+gv4OpK7NM0J1odrbu9JNNGvynA==} @@ -4549,6 +4558,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -4566,8 +4580,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@16.2.4: - resolution: {integrity: sha512-kPvz56wF5frc+FxlHI5qnklCzbq53HTwORaWBGdT0vNoKh1Aya9XC8aPauH4NJxqtzbWsS5mAbctm4cr+EkQ2Q==} + next@16.2.6: + resolution: {integrity: sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -4614,8 +4628,8 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - nx@22.6.5: - resolution: {integrity: sha512-VRKhDAt684dXNSz9MNjE7MekkCfQF41P2PSx5jEWQjDEP1Z4jFZbyeygWs5ZyOroG7/n0MoWAJTe6ftvIcBOAg==} + nx@22.7.2: + resolution: {integrity: sha512-Gh7gGO1t/TvgbKuVJMYWbxUwZC+E+PuRRVUeoOeVe82yEvBNl40EKiVHIbbi6GID0s9Zwzflo07UrKGLoDSVGw==} hasBin: true peerDependencies: '@swc-node/register': ^1.11.1 @@ -4670,28 +4684,33 @@ packages: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} - oxc-parser@0.126.0: - resolution: {integrity: sha512-FktCvLby/mOHyuijZt22+nOt10dS24gGUZE3XwIbUg7Kf4+rer3/5T7RgwzazlNuVsCjPloZ3p8E+4ONT3A8Kw==} + oxc-parser@0.130.0: + resolution: {integrity: sha512-X0PJ+NmOok8qP3vK9uaW431ngkdM9UPEK7KG466urtIL2+EYTEgbZK2yqe2MWKJKBjRlFweP/pJPx0x9muMEVw==} engines: {node: ^20.19.0 || >=22.12.0} oxc-resolver@11.19.1: resolution: {integrity: sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==} - oxfmt@0.46.0: - resolution: {integrity: sha512-CopwJOwPAjZ9p76fCvz+mSOJTw9/NY3cSksZK3VO/bUQ8UoEcketNgUuYS0UB3p+R9XnXe7wGGXUmyFxc7QxJA==} + oxfmt@0.50.0: + resolution: {integrity: sha512-owwjTnhfM5aCOJhYeqDvk7iM504OeYFZpdRU7cxx7xtZMo4uVpjlryTUon+Cf76CugsvnqA32e6rC73pr1hXaw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + peerDependencies: + svelte: ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true - oxlint-tsgolint@0.21.1: - resolution: {integrity: sha512-O2hxiT14C2HJkwzBU6CQBFPoagSd/IcV+Tt3e3UUaXFwbW4BO5DSDPSSboc3UM5MIDY+MLyepvtQwBQafNxWdw==} + oxlint-tsgolint@0.23.0: + resolution: {integrity: sha512-3mBv3CoPbh8dFbzfDGIWa2ytZjn2v+3EX4aKRXjIhsoGFzG8GCjfRirz3rwZf1wYbZzsNLTSgpw8VjQuWdp/jA==} hasBin: true - oxlint@1.61.0: - resolution: {integrity: sha512-ZC0ALuhDZ6ivOFG+sy0D0pEDN49EvsId98zVlmYdkcXHsEM14m/qTNUEsUpiFiCVbpIxYtVBmmLE87nsbUHohQ==} + oxlint@1.65.0: + resolution: {integrity: sha512-ChUuE3Q7XnAbscvT4XLMsH7HFJmLgLVv9lu+RRgFL5wSXnDqUOzTp5IS8qWDBGd/ZDSzQ2tbX8fjAmijlGLC7A==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=0.18.0' + oxlint-tsgolint: '>=0.22.1' peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -4724,6 +4743,10 @@ packages: path-to-regexp@0.1.13: resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -4736,6 +4759,10 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} @@ -4765,12 +4792,12 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.10: - resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} + postcss@8.5.14: + resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} engines: {node: ^10 || ^12 || >=14} - posthog-node@5.29.4: - resolution: {integrity: sha512-PSWH7nn5YoiXqxuRG6PC1KCSaBPHmHBOCadVAxwqfTF9i6S4mKlDjoQNQWU1ZhyhmnL0/t6XXFQA44cNnuF7BQ==} + posthog-node@5.34.3: + resolution: {integrity: sha512-f3TJEF4qBBzeJEv60kjVCgXsaWQVlUe7PFjf3xiaNw14GURoXjj+Z7iOUMeTerhWkTtrEgPBcfEjs5sJgSmnFw==} engines: {node: ^20.20.0 || >=22.22.0} peerDependencies: rxjs: ^7.0.0 @@ -4778,10 +4805,6 @@ packages: rxjs: optional: true - pretty-format@30.3.0: - resolution: {integrity: sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -4822,6 +4845,9 @@ packages: resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} engines: {node: '>=0.6'} + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} @@ -4840,13 +4866,10 @@ packages: react-devtools-core@7.0.1: resolution: {integrity: sha512-C3yNvRHaizlpiASzy7b9vbnBGLrhvdhl1CbdU6EnZgxPNbai60szdLtl+VL76UNOt5bOoVTOz5rNWZxgGt+Gsw==} - react-dom@19.2.5: - resolution: {integrity: sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==} + react-dom@19.2.6: + resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==} peerDependencies: - react: ^19.2.5 - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react: ^19.2.6 react-reconciler@0.33.0: resolution: {integrity: sha512-KetWRytFv1epdpJc3J4G75I4WrplZE5jOL7Yq0p34+OVOKF4Se7WrdIdVC45XsSSmUTlht2FM/fM1FZb1mfQeA==} @@ -4884,8 +4907,8 @@ packages: '@types/react': optional: true - react@19.2.5: - resolution: {integrity: sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==} + react@19.2.6: + resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} engines: {node: '>=0.10.0'} readable-stream@2.3.8: @@ -4991,11 +5014,18 @@ packages: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rolldown@1.0.0-rc.11: resolution: {integrity: sha512-NRjoKMusSjfRbSYiH3VSumlkgFe7kYAa3pzVOsVYVFY3zb5d7nS+a3KGQ7hJKXuYWbzJKPVQ9Wxq2UvyK+ENpw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -5009,6 +5039,9 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sanitize-filename@1.6.4: + resolution: {integrity: sha512-9ZyI08PsvdQl2r/bBIGubpVdR3RR9sY6RDiWFPreA21C/EFlQhmgo20UZlNjZMMZNubusLhAQozkA0Od5J21Eg==} + scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} @@ -5019,8 +5052,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true @@ -5029,6 +5062,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.0: + resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} + engines: {node: '>=10'} + hasBin: true + send@0.19.2: resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} engines: {node: '>= 0.8.0'} @@ -5077,6 +5115,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + slice-ansi@9.0.0: resolution: {integrity: sha512-SO/3iYL5S3W57LLEniscOGPZgOqZUPCx6d3dB+52B80yJ0XstzsC/eV8gnA4tM3MHDrKz+OCFSLNjswdSC+/bA==} engines: {node: '>=22'} @@ -5113,9 +5155,6 @@ packages: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sshpk@1.18.0: resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} @@ -5211,8 +5250,8 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tailwind-merge@3.5.0: - resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} + tailwind-merge@3.6.0: + resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -5244,6 +5283,10 @@ packages: resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} engines: {node: '>=18'} + tinyexec@1.1.2: + resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} + engines: {node: '>=18'} + tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} @@ -5263,16 +5306,21 @@ packages: resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} hasBin: true - tmp@0.2.5: - resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + tmp@0.2.4: + resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==} engines: {node: '>=14.14'} + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + toml@4.1.1: + resolution: {integrity: sha512-EBJnVBr3dTXdA89WVFoAIPUqkBjxPMwRqsfuo1r240tKFHXv3zgca4+NJib/h6TyvGF7vOawz0jGuryJCdNHrw==} + engines: {node: '>=20'} tough-cookie@5.1.2: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} @@ -5291,6 +5339,9 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -5325,19 +5376,15 @@ packages: engines: {node: '>=0.8.0'} hasBin: true - unbash@2.2.0: - resolution: {integrity: sha512-X2wH19RAPZE3+ldGicOkoj/SIA83OIxcJ6Cuaw23hf8Xc6fQpvZXY0SftE2JgS0QhYLUG4uwodSI3R53keyh7w==} + unbash@3.0.0: + resolution: {integrity: sha512-FeFPZ/WFT0mbRCuydiZzpPFlrYN8ZUpphQKoq4EeElVIYjYyGzPMxQR/simUwCOJIyVhpFk4RbtyO7RuMpMnHA==} engines: {node: '>=14'} - undici-types@7.19.2: - resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} - - undici@7.25.0: - resolution: {integrity: sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==} - engines: {node: '>=20.18.1'} + undici-types@7.24.6: + resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} - undici@8.1.0: - resolution: {integrity: sha512-E9MkTS4xXLnRPYqxH2e6Hr2/49e7WFDKczKcCaFH4VaZs2iNvHMqeIkyUAD9vM8kujy9TjVrRlQ5KkdEJxB2pw==} + undici@8.3.0: + resolution: {integrity: sha512-TkUDgb6tl7KOGZ+7e8E3d2FYgUQgF6z5YypqjWmixVQSQERFcVrVg0ySADm2LVLRh5ljAaHTCR5Fmz3Q34rB7Q==} engines: {node: '>=22.19.0'} unified@11.0.5: @@ -5397,6 +5444,9 @@ packages: '@types/react': optional: true + utf8-byte-length@1.0.5: + resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -5404,12 +5454,13 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@13.0.0: - resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} + uuid@14.0.0: + resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} hasBin: true uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true validator@13.15.26: @@ -5420,17 +5471,17 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - verdaccio-audit@13.0.0-next-8.37: - resolution: {integrity: sha512-ckn4xxNEkK5lflwb8a6xs2j6rVe//9sEH4rJHBqh2RelKYnFkxHbnN06gsdV2KtqSKDD9F4NE2UDA9SSs8E90w==} + verdaccio-audit@13.0.1: + resolution: {integrity: sha512-0QErO6UFP9fMzj9r6usQ/j76MHV7YZVmJGC7MwjCqkH7EefCWaGOehI49a8IrQFCngQSSANL3k9n9kq5VTTVFw==} engines: {node: '>=18'} - verdaccio-htpasswd@13.0.0-next-8.37: - resolution: {integrity: sha512-25MjzPLJG8mfPe4jtR8+3B8PCfBl0D2DRDnsP+KJPn8yBbUiO/GJaw2dyGOiVA7ZTyAWKDnN0WvmmIs+Ibj4+g==} + verdaccio-htpasswd@13.0.1: + resolution: {integrity: sha512-UmIrE7mzqaHLis641NodftulFdQkwPGwSod5bCFnKNelPItL7Su0ojamX3OQudQLdjBeBAjralavvZhDtWPvDQ==} engines: {node: '>=18'} - verdaccio@6.5.2: - resolution: {integrity: sha512-zFzUz/2b5z4svs7/wkX0JDSvOE3ViWdNcIs8qwnmUg2hKBbWeVoA5Kt/JWHRkUrCuwiIfAoEWobiKZmrAFqHqw==} - engines: {node: '>=18'} + verdaccio@6.7.1: + resolution: {integrity: sha512-Injtk1p/iv9JKN7qOuDrGSqxduwTG/yz2Hn4V4OzQ6LEO18Ex8tvc+EKCNX7VVegxr411PQ8zehuy7Xv8RJWlw==} + engines: {node: '>=20'} hasBin: true verror@1.10.0: @@ -5489,20 +5540,20 @@ packages: yaml: optional: true - vitest@4.1.5: - resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==} + vitest@4.1.6: + resolution: {integrity: sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.5 - '@vitest/browser-preview': 4.1.5 - '@vitest/browser-webdriverio': 4.1.5 - '@vitest/coverage-istanbul': 4.1.5 - '@vitest/coverage-v8': 4.1.5 - '@vitest/ui': 4.1.5 + '@vitest/browser-playwright': 4.1.6 + '@vitest/browser-preview': 4.1.6 + '@vitest/browser-webdriverio': 4.1.6 + '@vitest/coverage-istanbul': 4.1.6 + '@vitest/coverage-v8': 4.1.6 + '@vitest/ui': 4.1.6 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -5604,8 +5655,13 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.8.3: - resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} + hasBin: true + + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} engines: {node: '>= 14.6'} hasBin: true @@ -5623,6 +5679,9 @@ packages: zod@4.3.6: resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -5733,16 +5792,16 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@clack/core@1.2.0': + '@clack/core@1.3.1': dependencies: - fast-wrap-ansi: 0.1.6 + fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 - '@clack/prompts@1.2.0': + '@clack/prompts@1.4.0': dependencies: - '@clack/core': 1.2.0 - fast-string-width: 1.1.0 - fast-wrap-ansi: 0.1.6 + '@clack/core': 1.3.1 + fast-string-width: 3.0.2 + fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 '@cypress/request@3.0.10': @@ -5766,64 +5825,66 @@ snapshots: tunnel-agent: 0.6.0 uuid: 8.3.2 - '@effect/atom-react@4.0.0-beta.54(effect@4.0.0-beta.43)(react@19.2.5)(scheduler@0.27.0)': + '@effect/atom-react@4.0.0-beta.67(effect@4.0.0-beta.67)(react@19.2.6)(scheduler@0.27.0)': dependencies: - effect: 4.0.0-beta.43 - react: 19.2.5 + effect: 4.0.0-beta.67 + react: 19.2.6 scheduler: 0.27.0 - '@effect/platform-bun@4.0.0-beta.43(effect@4.0.0-beta.43)': + '@effect/platform-bun@4.0.0-beta.67(effect@4.0.0-beta.67)': dependencies: - '@effect/platform-node-shared': 4.0.0-beta.43(effect@4.0.0-beta.43) - effect: 4.0.0-beta.43 + '@effect/platform-node-shared': 4.0.0-beta.67(effect@4.0.0-beta.67) + effect: 4.0.0-beta.67 transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/platform-node-shared@4.0.0-beta.43(effect@4.0.0-beta.43)': + '@effect/platform-node-shared@4.0.0-beta.67(effect@4.0.0-beta.67)': dependencies: '@types/ws': 8.18.1 - effect: 4.0.0-beta.43 + effect: 4.0.0-beta.67 ws: 8.20.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/platform-node@4.0.0-beta.43(effect@4.0.0-beta.43)(ioredis@5.10.1)': + '@effect/platform-node@4.0.0-beta.67(effect@4.0.0-beta.67)(ioredis@5.10.1)': dependencies: - '@effect/platform-node-shared': 4.0.0-beta.43(effect@4.0.0-beta.43) - effect: 4.0.0-beta.43 + '@effect/platform-node-shared': 4.0.0-beta.67(effect@4.0.0-beta.67) + effect: 4.0.0-beta.67 ioredis: 5.10.1 mime: 4.1.0 - undici: 7.25.0 + undici: 8.3.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/vitest@4.0.0-beta.43(effect@4.0.0-beta.43)(vitest@4.1.5)': + '@effect/vitest@4.0.0-beta.43(effect@4.0.0-beta.67)(vitest@4.1.6)': dependencies: - effect: 4.0.0-beta.43 - vitest: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + effect: 4.0.0-beta.67 + vitest: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 - '@emnapi/core@1.9.2': + '@emnapi/core@1.4.5': dependencies: - '@emnapi/wasi-threads': 1.2.1 + '@emnapi/wasi-threads': 1.0.4 tslib: 2.8.1 - optional: true '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 - '@emnapi/runtime@1.9.2': + '@emnapi/runtime@1.4.5': + dependencies: + tslib: 2.8.1 + + '@emnapi/wasi-threads@1.0.4': dependencies: tslib: 2.8.1 - optional: true '@emnapi/wasi-threads@1.2.1': dependencies: @@ -5994,11 +6055,11 @@ snapshots: '@floating-ui/core': 1.7.5 '@floating-ui/utils': 0.2.11 - '@floating-ui/react-dom@2.1.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@floating-ui/react-dom@2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@floating-ui/dom': 1.7.6 - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) '@floating-ui/utils@0.2.11': {} @@ -6105,13 +6166,7 @@ snapshots: '@istanbuljs/schema@0.1.6': {} - '@jest/diff-sequences@30.3.0': {} - - '@jest/get-type@30.1.0': {} - - '@jest/schemas@30.0.5': - dependencies: - '@sinclair/typebox': 0.34.49 + '@jest/diff-sequences@30.0.1': {} '@jridgewell/gen-mapping@0.3.13': dependencies: @@ -6180,56 +6235,56 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@napi-rs/keyring-darwin-arm64@1.2.0': + '@napi-rs/keyring-darwin-arm64@1.3.0': optional: true - '@napi-rs/keyring-darwin-x64@1.2.0': + '@napi-rs/keyring-darwin-x64@1.3.0': optional: true - '@napi-rs/keyring-freebsd-x64@1.2.0': + '@napi-rs/keyring-freebsd-x64@1.3.0': optional: true - '@napi-rs/keyring-linux-arm-gnueabihf@1.2.0': + '@napi-rs/keyring-linux-arm-gnueabihf@1.3.0': optional: true - '@napi-rs/keyring-linux-arm64-gnu@1.2.0': + '@napi-rs/keyring-linux-arm64-gnu@1.3.0': optional: true - '@napi-rs/keyring-linux-arm64-musl@1.2.0': + '@napi-rs/keyring-linux-arm64-musl@1.3.0': optional: true - '@napi-rs/keyring-linux-riscv64-gnu@1.2.0': + '@napi-rs/keyring-linux-riscv64-gnu@1.3.0': optional: true - '@napi-rs/keyring-linux-x64-gnu@1.2.0': + '@napi-rs/keyring-linux-x64-gnu@1.3.0': optional: true - '@napi-rs/keyring-linux-x64-musl@1.2.0': + '@napi-rs/keyring-linux-x64-musl@1.3.0': optional: true - '@napi-rs/keyring-win32-arm64-msvc@1.2.0': + '@napi-rs/keyring-win32-arm64-msvc@1.3.0': optional: true - '@napi-rs/keyring-win32-ia32-msvc@1.2.0': + '@napi-rs/keyring-win32-ia32-msvc@1.3.0': optional: true - '@napi-rs/keyring-win32-x64-msvc@1.2.0': + '@napi-rs/keyring-win32-x64-msvc@1.3.0': optional: true - '@napi-rs/keyring@1.2.0': + '@napi-rs/keyring@1.3.0': optionalDependencies: - '@napi-rs/keyring-darwin-arm64': 1.2.0 - '@napi-rs/keyring-darwin-x64': 1.2.0 - '@napi-rs/keyring-freebsd-x64': 1.2.0 - '@napi-rs/keyring-linux-arm-gnueabihf': 1.2.0 - '@napi-rs/keyring-linux-arm64-gnu': 1.2.0 - '@napi-rs/keyring-linux-arm64-musl': 1.2.0 - '@napi-rs/keyring-linux-riscv64-gnu': 1.2.0 - '@napi-rs/keyring-linux-x64-gnu': 1.2.0 - '@napi-rs/keyring-linux-x64-musl': 1.2.0 - '@napi-rs/keyring-win32-arm64-msvc': 1.2.0 - '@napi-rs/keyring-win32-ia32-msvc': 1.2.0 - '@napi-rs/keyring-win32-x64-msvc': 1.2.0 + '@napi-rs/keyring-darwin-arm64': 1.3.0 + '@napi-rs/keyring-darwin-x64': 1.3.0 + '@napi-rs/keyring-freebsd-x64': 1.3.0 + '@napi-rs/keyring-linux-arm-gnueabihf': 1.3.0 + '@napi-rs/keyring-linux-arm64-gnu': 1.3.0 + '@napi-rs/keyring-linux-arm64-musl': 1.3.0 + '@napi-rs/keyring-linux-riscv64-gnu': 1.3.0 + '@napi-rs/keyring-linux-x64-gnu': 1.3.0 + '@napi-rs/keyring-linux-x64-musl': 1.3.0 + '@napi-rs/keyring-win32-arm64-msvc': 1.3.0 + '@napi-rs/keyring-win32-ia32-msvc': 1.3.0 + '@napi-rs/keyring-win32-x64-msvc': 1.3.0 '@napi-rs/wasm-runtime@0.2.4': dependencies: @@ -6237,13 +6292,6 @@ snapshots: '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.9.0 - '@napi-rs/wasm-runtime@1.1.1': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.1 - optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 @@ -6251,149 +6299,154 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': - dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@tybys/wasm-util': 0.10.1 - optional: true + '@next/env@16.2.6': {} - '@next/env@16.2.4': {} - - '@next/swc-darwin-arm64@16.2.4': + '@next/swc-darwin-arm64@16.2.6': optional: true - '@next/swc-darwin-x64@16.2.4': + '@next/swc-darwin-x64@16.2.6': optional: true - '@next/swc-linux-arm64-gnu@16.2.4': + '@next/swc-linux-arm64-gnu@16.2.6': optional: true - '@next/swc-linux-arm64-musl@16.2.4': + '@next/swc-linux-arm64-musl@16.2.6': optional: true - '@next/swc-linux-x64-gnu@16.2.4': + '@next/swc-linux-x64-gnu@16.2.6': optional: true - '@next/swc-linux-x64-musl@16.2.4': + '@next/swc-linux-x64-musl@16.2.6': optional: true - '@next/swc-win32-arm64-msvc@16.2.4': + '@next/swc-win32-arm64-msvc@16.2.6': optional: true - '@next/swc-win32-x64-msvc@16.2.4': + '@next/swc-win32-x64-msvc@16.2.6': optional: true - '@nx/devkit@22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@swc/core@1.15.30)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.30))': + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@nx/devkit@22.7.2(nx@22.7.2(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.33)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.33))': dependencies: '@zkochan/js-yaml': 0.0.7 ejs: 5.0.1 enquirer: 2.3.6 - minimatch: 10.2.4 - nx: 22.6.5(@swc-node/register@1.11.1(@swc/core@1.15.30)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.30) + minimatch: 10.2.5 + nx: 22.7.2(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.33)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.33) semver: 7.7.4 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/nx-darwin-arm64@22.6.5': + '@nx/nx-darwin-arm64@22.7.2': optional: true - '@nx/nx-darwin-x64@22.6.5': + '@nx/nx-darwin-x64@22.7.2': optional: true - '@nx/nx-freebsd-x64@22.6.5': + '@nx/nx-freebsd-x64@22.7.2': optional: true - '@nx/nx-linux-arm-gnueabihf@22.6.5': + '@nx/nx-linux-arm-gnueabihf@22.7.2': optional: true - '@nx/nx-linux-arm64-gnu@22.6.5': + '@nx/nx-linux-arm64-gnu@22.7.2': optional: true - '@nx/nx-linux-arm64-musl@22.6.5': + '@nx/nx-linux-arm64-musl@22.7.2': optional: true - '@nx/nx-linux-x64-gnu@22.6.5': + '@nx/nx-linux-x64-gnu@22.7.2': optional: true - '@nx/nx-linux-x64-musl@22.6.5': + '@nx/nx-linux-x64-musl@22.7.2': optional: true - '@nx/nx-win32-arm64-msvc@22.6.5': + '@nx/nx-win32-arm64-msvc@22.7.2': optional: true - '@nx/nx-win32-x64-msvc@22.6.5': + '@nx/nx-win32-x64-msvc@22.7.2': optional: true '@orama/orama@3.1.18': {} - '@oxc-parser/binding-android-arm-eabi@0.126.0': + '@oxc-parser/binding-android-arm-eabi@0.130.0': optional: true - '@oxc-parser/binding-android-arm64@0.126.0': + '@oxc-parser/binding-android-arm64@0.130.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.126.0': + '@oxc-parser/binding-darwin-arm64@0.130.0': optional: true - '@oxc-parser/binding-darwin-x64@0.126.0': + '@oxc-parser/binding-darwin-x64@0.130.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.126.0': + '@oxc-parser/binding-freebsd-x64@0.130.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.126.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.130.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.126.0': + '@oxc-parser/binding-linux-arm-musleabihf@0.130.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.126.0': + '@oxc-parser/binding-linux-arm64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.126.0': + '@oxc-parser/binding-linux-arm64-musl@0.130.0': optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.126.0': + '@oxc-parser/binding-linux-ppc64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.126.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.126.0': + '@oxc-parser/binding-linux-riscv64-musl@0.130.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.126.0': + '@oxc-parser/binding-linux-s390x-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.126.0': + '@oxc-parser/binding-linux-x64-gnu@0.130.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.126.0': + '@oxc-parser/binding-linux-x64-musl@0.130.0': optional: true - '@oxc-parser/binding-openharmony-arm64@0.126.0': + '@oxc-parser/binding-openharmony-arm64@0.130.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.126.0': + '@oxc-parser/binding-wasm32-wasi@0.130.0': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.126.0': + '@oxc-parser/binding-win32-arm64-msvc@0.130.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.126.0': + '@oxc-parser/binding-win32-ia32-msvc@0.130.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.126.0': + '@oxc-parser/binding-win32-x64-msvc@0.130.0': optional: true '@oxc-project/types@0.122.0': {} - '@oxc-project/types@0.126.0': {} + '@oxc-project/types@0.130.0': {} '@oxc-resolver/binding-android-arm-eabi@11.19.1': optional: true @@ -6443,9 +6496,12 @@ snapshots: '@oxc-resolver/binding-openharmony-arm64@11.19.1': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.19.1': + '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true '@oxc-resolver/binding-win32-arm64-msvc@11.19.1': @@ -6457,136 +6513,136 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@11.19.1': optional: true - '@oxfmt/binding-android-arm-eabi@0.46.0': + '@oxfmt/binding-android-arm-eabi@0.50.0': optional: true - '@oxfmt/binding-android-arm64@0.46.0': + '@oxfmt/binding-android-arm64@0.50.0': optional: true - '@oxfmt/binding-darwin-arm64@0.46.0': + '@oxfmt/binding-darwin-arm64@0.50.0': optional: true - '@oxfmt/binding-darwin-x64@0.46.0': + '@oxfmt/binding-darwin-x64@0.50.0': optional: true - '@oxfmt/binding-freebsd-x64@0.46.0': + '@oxfmt/binding-freebsd-x64@0.50.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.50.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.46.0': + '@oxfmt/binding-linux-arm-musleabihf@0.50.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.46.0': + '@oxfmt/binding-linux-arm64-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.46.0': + '@oxfmt/binding-linux-arm64-musl@0.50.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.46.0': + '@oxfmt/binding-linux-ppc64-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.46.0': + '@oxfmt/binding-linux-riscv64-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.46.0': + '@oxfmt/binding-linux-riscv64-musl@0.50.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.46.0': + '@oxfmt/binding-linux-s390x-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.46.0': + '@oxfmt/binding-linux-x64-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.46.0': + '@oxfmt/binding-linux-x64-musl@0.50.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.46.0': + '@oxfmt/binding-openharmony-arm64@0.50.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.46.0': + '@oxfmt/binding-win32-arm64-msvc@0.50.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.46.0': + '@oxfmt/binding-win32-ia32-msvc@0.50.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.46.0': + '@oxfmt/binding-win32-x64-msvc@0.50.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.21.1': + '@oxlint-tsgolint/darwin-arm64@0.23.0': optional: true - '@oxlint-tsgolint/darwin-x64@0.21.1': + '@oxlint-tsgolint/darwin-x64@0.23.0': optional: true - '@oxlint-tsgolint/linux-arm64@0.21.1': + '@oxlint-tsgolint/linux-arm64@0.23.0': optional: true - '@oxlint-tsgolint/linux-x64@0.21.1': + '@oxlint-tsgolint/linux-x64@0.23.0': optional: true - '@oxlint-tsgolint/win32-arm64@0.21.1': + '@oxlint-tsgolint/win32-arm64@0.23.0': optional: true - '@oxlint-tsgolint/win32-x64@0.21.1': + '@oxlint-tsgolint/win32-x64@0.23.0': optional: true - '@oxlint/binding-android-arm-eabi@1.61.0': + '@oxlint/binding-android-arm-eabi@1.65.0': optional: true - '@oxlint/binding-android-arm64@1.61.0': + '@oxlint/binding-android-arm64@1.65.0': optional: true - '@oxlint/binding-darwin-arm64@1.61.0': + '@oxlint/binding-darwin-arm64@1.65.0': optional: true - '@oxlint/binding-darwin-x64@1.61.0': + '@oxlint/binding-darwin-x64@1.65.0': optional: true - '@oxlint/binding-freebsd-x64@1.61.0': + '@oxlint/binding-freebsd-x64@1.65.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.61.0': + '@oxlint/binding-linux-arm-gnueabihf@1.65.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.61.0': + '@oxlint/binding-linux-arm-musleabihf@1.65.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.61.0': + '@oxlint/binding-linux-arm64-gnu@1.65.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.61.0': + '@oxlint/binding-linux-arm64-musl@1.65.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.61.0': + '@oxlint/binding-linux-ppc64-gnu@1.65.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.61.0': + '@oxlint/binding-linux-riscv64-gnu@1.65.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.61.0': + '@oxlint/binding-linux-riscv64-musl@1.65.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.61.0': + '@oxlint/binding-linux-s390x-gnu@1.65.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.61.0': + '@oxlint/binding-linux-x64-gnu@1.65.0': optional: true - '@oxlint/binding-linux-x64-musl@1.61.0': + '@oxlint/binding-linux-x64-musl@1.65.0': optional: true - '@oxlint/binding-openharmony-arm64@1.61.0': + '@oxlint/binding-openharmony-arm64@1.65.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.61.0': + '@oxlint/binding-win32-arm64-msvc@1.65.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.61.0': + '@oxlint/binding-win32-ia32-msvc@1.65.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.61.0': + '@oxlint/binding-win32-x64-msvc@1.65.0': optional: true '@parcel/watcher-android-arm64@2.5.6': @@ -6651,358 +6707,362 @@ snapshots: '@pinojs/redact@0.4.0': {} - '@posthog/core@1.25.3': {} + '@posthog/core@1.29.3': + dependencies: + '@posthog/types': 1.374.0 + + '@posthog/types@1.374.0': {} '@radix-ui/number@1.1.1': {} '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.6)': dependencies: - react: 19.2.5 + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.6)': dependencies: - react: 19.2.5 + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.6) aria-hidden: 1.2.6 - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) - react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-direction@1.1.1(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.14)(react@19.2.6)': dependencies: - react: 19.2.5 + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.6)': dependencies: - react: 19.2.5 + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.6)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.6) aria-hidden: 1.2.6 - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) - react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': - dependencies: - '@floating-ui/react-dom': 2.1.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.5) + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.6) '@radix-ui/rect': 1.1.1 - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-slot@1.2.4(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.14)(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.6)': dependencies: - react: 19.2.5 + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.6)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.6)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.6)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.6)': dependencies: - react: 19.2.5 + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.6)': dependencies: - react: 19.2.5 + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.6)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.2.5 + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.5)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.6)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5) - react: 19.2.5 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.6) + react: 19.2.6 optionalDependencies: '@types/react': 19.2.14 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) @@ -7053,14 +7113,6 @@ snapshots: - '@emnapi/runtime' optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.11(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': - dependencies: - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11': optional: true @@ -7109,69 +7161,61 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@sinclair/typebox@0.34.49': {} - '@sindresorhus/is@4.6.0': {} '@standard-schema/spec@1.1.0': {} - '@supabase/auth-js@2.104.0': + '@supabase/auth-js@2.105.4': dependencies: tslib: 2.8.1 - '@supabase/functions-js@2.104.0': + '@supabase/functions-js@2.105.4': dependencies: tslib: 2.8.1 - '@supabase/phoenix@0.4.0': {} + '@supabase/phoenix@0.4.2': {} - '@supabase/postgrest-js@2.104.0': + '@supabase/postgrest-js@2.105.4': dependencies: tslib: 2.8.1 - '@supabase/realtime-js@2.104.0': + '@supabase/realtime-js@2.105.4': dependencies: - '@supabase/phoenix': 0.4.0 - '@types/ws': 8.18.1 + '@supabase/phoenix': 0.4.2 tslib: 2.8.1 - ws: 8.20.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@supabase/storage-js@2.104.0': + '@supabase/storage-js@2.105.4': dependencies: iceberg-js: 0.8.1 tslib: 2.8.1 - '@supabase/supabase-js@2.104.0': + '@supabase/supabase-js@2.105.4': dependencies: - '@supabase/auth-js': 2.104.0 - '@supabase/functions-js': 2.104.0 - '@supabase/postgrest-js': 2.104.0 - '@supabase/realtime-js': 2.104.0 - '@supabase/storage-js': 2.104.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@supabase/auth-js': 2.105.4 + '@supabase/functions-js': 2.105.4 + '@supabase/postgrest-js': 2.105.4 + '@supabase/realtime-js': 2.105.4 + '@supabase/storage-js': 2.105.4 - '@swc-node/core@1.14.1(@swc/core@1.15.30)(@swc/types@0.1.26)': + '@swc-node/core@1.14.1(@swc/core@1.15.33)(@swc/types@0.1.26)': dependencies: - '@swc/core': 1.15.30 + '@swc/core': 1.15.33 '@swc/types': 0.1.26 - '@swc-node/register@1.11.1(@swc/core@1.15.30)(@swc/types@0.1.26)(typescript@6.0.3)': + '@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.33)(@swc/types@0.1.26)(typescript@6.0.3)': dependencies: - '@swc-node/core': 1.14.1(@swc/core@1.15.30)(@swc/types@0.1.26) + '@swc-node/core': 1.14.1(@swc/core@1.15.33)(@swc/types@0.1.26) '@swc-node/sourcemap-support': 0.6.1 - '@swc/core': 1.15.30 + '@swc/core': 1.15.33 colorette: 2.0.20 debug: 4.4.3 - oxc-resolver: 11.19.1 + oxc-resolver: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) pirates: 4.0.7 tslib: 2.8.1 typescript: 6.0.3 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - '@swc/types' - supports-color @@ -7180,59 +7224,59 @@ snapshots: source-map-support: 0.5.21 tslib: 2.8.1 - '@swc/core-darwin-arm64@1.15.30': + '@swc/core-darwin-arm64@1.15.33': optional: true - '@swc/core-darwin-x64@1.15.30': + '@swc/core-darwin-x64@1.15.33': optional: true - '@swc/core-linux-arm-gnueabihf@1.15.30': + '@swc/core-linux-arm-gnueabihf@1.15.33': optional: true - '@swc/core-linux-arm64-gnu@1.15.30': + '@swc/core-linux-arm64-gnu@1.15.33': optional: true - '@swc/core-linux-arm64-musl@1.15.30': + '@swc/core-linux-arm64-musl@1.15.33': optional: true - '@swc/core-linux-ppc64-gnu@1.15.30': + '@swc/core-linux-ppc64-gnu@1.15.33': optional: true - '@swc/core-linux-s390x-gnu@1.15.30': + '@swc/core-linux-s390x-gnu@1.15.33': optional: true - '@swc/core-linux-x64-gnu@1.15.30': + '@swc/core-linux-x64-gnu@1.15.33': optional: true - '@swc/core-linux-x64-musl@1.15.30': + '@swc/core-linux-x64-musl@1.15.33': optional: true - '@swc/core-win32-arm64-msvc@1.15.30': + '@swc/core-win32-arm64-msvc@1.15.33': optional: true - '@swc/core-win32-ia32-msvc@1.15.30': + '@swc/core-win32-ia32-msvc@1.15.33': optional: true - '@swc/core-win32-x64-msvc@1.15.30': + '@swc/core-win32-x64-msvc@1.15.33': optional: true - '@swc/core@1.15.30': + '@swc/core@1.15.33': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.26 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.30 - '@swc/core-darwin-x64': 1.15.30 - '@swc/core-linux-arm-gnueabihf': 1.15.30 - '@swc/core-linux-arm64-gnu': 1.15.30 - '@swc/core-linux-arm64-musl': 1.15.30 - '@swc/core-linux-ppc64-gnu': 1.15.30 - '@swc/core-linux-s390x-gnu': 1.15.30 - '@swc/core-linux-x64-gnu': 1.15.30 - '@swc/core-linux-x64-musl': 1.15.30 - '@swc/core-win32-arm64-msvc': 1.15.30 - '@swc/core-win32-ia32-msvc': 1.15.30 - '@swc/core-win32-x64-msvc': 1.15.30 + '@swc/core-darwin-arm64': 1.15.33 + '@swc/core-darwin-x64': 1.15.33 + '@swc/core-linux-arm-gnueabihf': 1.15.33 + '@swc/core-linux-arm64-gnu': 1.15.33 + '@swc/core-linux-arm64-musl': 1.15.33 + '@swc/core-linux-ppc64-gnu': 1.15.33 + '@swc/core-linux-s390x-gnu': 1.15.33 + '@swc/core-linux-x64-gnu': 1.15.33 + '@swc/core-linux-x64-musl': 1.15.33 + '@swc/core-win32-arm64-msvc': 1.15.33 + '@swc/core-win32-ia32-msvc': 1.15.33 + '@swc/core-win32-x64-msvc': 1.15.33 '@swc/counter@0.1.3': {} @@ -7259,9 +7303,9 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/bun@1.3.12': + '@types/bun@1.3.14': dependencies: - bun-types: 1.3.12 + bun-types: 1.3.14 '@types/chai@5.2.3': dependencies: @@ -7292,9 +7336,9 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@25.6.0': + '@types/node@25.8.0': dependencies: - undici-types: 7.19.2 + undici-types: 7.24.6 '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: @@ -7306,7 +7350,7 @@ snapshots: '@types/responselike@1.0.0': dependencies: - '@types/node': 25.6.0 + '@types/node': 25.8.0 '@types/unist@2.0.11': {} @@ -7314,74 +7358,74 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.6.0 + '@types/node': 25.8.0 - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260422.1': + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260518.1': optional: true - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260422.1': + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260518.1': optional: true - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260422.1': + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260518.1': optional: true - '@typescript/native-preview-linux-arm@7.0.0-dev.20260422.1': + '@typescript/native-preview-linux-arm@7.0.0-dev.20260518.1': optional: true - '@typescript/native-preview-linux-x64@7.0.0-dev.20260422.1': + '@typescript/native-preview-linux-x64@7.0.0-dev.20260518.1': optional: true - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260422.1': + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260518.1': optional: true - '@typescript/native-preview-win32-x64@7.0.0-dev.20260422.1': + '@typescript/native-preview-win32-x64@7.0.0-dev.20260518.1': optional: true - '@typescript/native-preview@7.0.0-dev.20260422.1': + '@typescript/native-preview@7.0.0-dev.20260518.1': optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260422.1 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260422.1 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20260422.1 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260422.1 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20260422.1 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260422.1 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20260422.1 + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260518.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260518.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260518.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260518.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260518.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260518.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260518.1 '@ungap/structured-clone@1.3.0': {} '@vercel/detect-agent@1.2.3': {} - '@verdaccio/auth@8.0.0-next-8.37': + '@verdaccio/auth@8.0.1': dependencies: - '@verdaccio/config': 8.0.0-next-8.37 - '@verdaccio/core': 8.0.0-next-8.37 - '@verdaccio/loaders': 8.0.0-next-8.27 - '@verdaccio/signature': 8.0.0-next-8.29 + '@verdaccio/config': 8.1.0 + '@verdaccio/core': 8.1.0 + '@verdaccio/loaders': 8.0.1 + '@verdaccio/signature': 8.0.1 debug: 4.4.3 lodash: 4.18.1 - verdaccio-htpasswd: 13.0.0-next-8.37 + verdaccio-htpasswd: 13.0.1 transitivePeerDependencies: - supports-color - '@verdaccio/config@8.0.0-next-8.37': + '@verdaccio/config@8.1.0': dependencies: - '@verdaccio/core': 8.0.0-next-8.37 + '@verdaccio/core': 8.1.0 debug: 4.4.3 js-yaml: 4.1.1 lodash: 4.18.1 transitivePeerDependencies: - supports-color - '@verdaccio/core@8.0.0-next-8.21': + '@verdaccio/core@8.0.0-next-8.29': dependencies: ajv: 8.17.1 http-errors: 2.0.0 http-status-codes: 2.3.0 minimatch: 7.4.6 process-warning: 1.0.0 - semver: 7.7.2 + semver: 7.7.3 - '@verdaccio/core@8.0.0-next-8.37': + '@verdaccio/core@8.1.0': dependencies: ajv: 8.18.0 http-errors: 2.0.1 @@ -7390,55 +7434,56 @@ snapshots: process-warning: 1.0.0 semver: 7.7.4 - '@verdaccio/file-locking@10.3.1': + '@verdaccio/file-locking@10.3.3': dependencies: lockfile: 1.0.4 - '@verdaccio/file-locking@13.0.0-next-8.7': + '@verdaccio/file-locking@13.0.0': dependencies: lockfile: 1.0.4 - '@verdaccio/hooks@8.0.0-next-8.37': + '@verdaccio/hooks@8.0.1': dependencies: - '@verdaccio/core': 8.0.0-next-8.37 - '@verdaccio/logger': 8.0.0-next-8.37 + '@verdaccio/core': 8.1.0 + '@verdaccio/logger': 8.0.1 debug: 4.4.3 got-cjs: 12.5.4 handlebars: 4.7.9 transitivePeerDependencies: - supports-color - '@verdaccio/loaders@8.0.0-next-8.27': + '@verdaccio/loaders@8.0.1': dependencies: - '@verdaccio/core': 8.0.0-next-8.37 + '@verdaccio/core': 8.1.0 debug: 4.4.3 lodash: 4.18.1 transitivePeerDependencies: - supports-color - '@verdaccio/local-storage-legacy@11.1.1': + '@verdaccio/local-storage-legacy@11.3.1': dependencies: - '@verdaccio/core': 8.0.0-next-8.21 - '@verdaccio/file-locking': 10.3.1 - '@verdaccio/streams': 10.2.1 - async: 3.2.6 - debug: 4.4.1 - lodash: 4.17.21 + '@verdaccio/core': 8.0.0-next-8.29 + '@verdaccio/file-locking': 10.3.3 + '@verdaccio/streams': 10.2.3 + debug: 4.4.3 + globby: 11.1.0 + lodash: 4.18.1 lowdb: 1.0.0 mkdirp: 1.0.4 + sanitize-filename: 1.6.4 transitivePeerDependencies: - supports-color - '@verdaccio/logger-commons@8.0.0-next-8.37': + '@verdaccio/logger-commons@8.0.1': dependencies: - '@verdaccio/core': 8.0.0-next-8.37 - '@verdaccio/logger-prettify': 8.0.0-next-8.5 + '@verdaccio/core': 8.1.0 + '@verdaccio/logger-prettify': 8.0.0 colorette: 2.0.20 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@verdaccio/logger-prettify@8.0.0-next-8.5': + '@verdaccio/logger-prettify@8.0.0': dependencies: colorette: 2.0.20 dayjs: 1.11.18 @@ -7447,18 +7492,18 @@ snapshots: pino-abstract-transport: 1.2.0 sonic-boom: 3.8.1 - '@verdaccio/logger@8.0.0-next-8.37': + '@verdaccio/logger@8.0.1': dependencies: - '@verdaccio/logger-commons': 8.0.0-next-8.37 + '@verdaccio/logger-commons': 8.0.1 pino: 9.14.0 transitivePeerDependencies: - supports-color - '@verdaccio/middleware@8.0.0-next-8.37': + '@verdaccio/middleware@8.0.1': dependencies: - '@verdaccio/config': 8.0.0-next-8.37 - '@verdaccio/core': 8.0.0-next-8.37 - '@verdaccio/url': 13.0.0-next-8.37 + '@verdaccio/config': 8.1.0 + '@verdaccio/core': 8.1.0 + '@verdaccio/url': 13.0.1 debug: 4.4.3 express: 4.22.1 express-rate-limit: 5.5.1 @@ -7467,31 +7512,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@verdaccio/package-filter@13.0.0-next-8.5': + '@verdaccio/package-filter@13.0.1': dependencies: - '@verdaccio/core': 8.0.0-next-8.37 + '@verdaccio/core': 8.1.0 debug: 4.4.3 semver: 7.7.4 transitivePeerDependencies: - supports-color - '@verdaccio/search-indexer@8.0.0-next-8.6': {} + '@verdaccio/search-indexer@8.0.0': {} - '@verdaccio/signature@8.0.0-next-8.29': + '@verdaccio/signature@8.0.1': dependencies: - '@verdaccio/config': 8.0.0-next-8.37 - '@verdaccio/core': 8.0.0-next-8.37 + '@verdaccio/config': 8.1.0 + '@verdaccio/core': 8.1.0 debug: 4.4.3 jsonwebtoken: 9.0.3 transitivePeerDependencies: - supports-color - '@verdaccio/streams@10.2.1': {} + '@verdaccio/streams@10.2.3': {} - '@verdaccio/tarball@13.0.0-next-8.37': + '@verdaccio/tarball@13.0.1': dependencies: - '@verdaccio/core': 8.0.0-next-8.37 - '@verdaccio/url': 13.0.0-next-8.37 + '@verdaccio/core': 8.1.0 + '@verdaccio/url': 13.0.1 debug: 4.4.3 gunzip-maybe: 1.4.2 tar-stream: 3.1.7 @@ -7506,21 +7551,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@verdaccio/url@13.0.0-next-8.37': + '@verdaccio/url@13.0.1': dependencies: - '@verdaccio/core': 8.0.0-next-8.37 + '@verdaccio/core': 8.1.0 debug: 4.4.3 validator: 13.15.26 transitivePeerDependencies: - supports-color - '@verdaccio/utils@8.1.0-next-8.37': + '@verdaccio/utils@8.1.1': dependencies: - '@verdaccio/core': 8.0.0-next-8.37 + '@verdaccio/core': 8.1.0 lodash: 4.18.1 minimatch: 7.4.9 - '@vitest/coverage-istanbul@4.1.5(vitest@4.1.5)': + '@vitest/coverage-istanbul@4.1.6(vitest@4.1.6)': dependencies: '@babel/core': 7.29.0 '@istanbuljs/schema': 0.1.6 @@ -7532,66 +7577,53 @@ snapshots: magicast: 0.5.2 obug: 2.1.1 tinyrainbow: 3.1.0 - vitest: 4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) + vitest: 4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) transitivePeerDependencies: - supports-color - '@vitest/expect@4.1.5': + '@vitest/expect@4.1.6': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.5 - '@vitest/utils': 4.1.5 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.5(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3))': - dependencies: - '@vitest/spy': 4.1.5 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3) - - '@vitest/mocker@4.1.5(vite@8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3))': + '@vitest/mocker@4.1.6(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.5 + '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3) + vite: 8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0) - '@vitest/pretty-format@4.1.5': + '@vitest/pretty-format@4.1.6': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.5': + '@vitest/runner@4.1.6': dependencies: - '@vitest/utils': 4.1.5 + '@vitest/utils': 4.1.6 pathe: 2.0.3 - '@vitest/snapshot@4.1.5': + '@vitest/snapshot@4.1.6': dependencies: - '@vitest/pretty-format': 4.1.5 - '@vitest/utils': 4.1.5 + '@vitest/pretty-format': 4.1.6 + '@vitest/utils': 4.1.6 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.5': {} + '@vitest/spy@4.1.6': {} - '@vitest/utils@4.1.5': + '@vitest/utils@4.1.6': dependencies: - '@vitest/pretty-format': 4.1.5 + '@vitest/pretty-format': 4.1.6 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 '@yarnpkg/lockfile@1.1.0': {} - '@yarnpkg/parsers@3.0.2': - dependencies: - js-yaml: 3.14.2 - tslib: 2.8.1 - '@zkochan/js-yaml@0.0.7': dependencies: argparse: 2.0.1 @@ -7650,16 +7682,10 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} - ansi-styles@6.2.3: {} apache-md5@1.1.8: {} - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} aria-hidden@1.2.6: @@ -7668,6 +7694,8 @@ snapshots: array-flatten@1.1.1: {} + array-union@2.1.0: {} + asn1@0.2.6: dependencies: safer-buffer: 2.1.2 @@ -7690,7 +7718,7 @@ snapshots: aws4@1.13.2: {} - axios@1.15.0: + axios@1.16.0: dependencies: follow-redirects: 1.16.0 form-data: 4.0.5 @@ -7704,6 +7732,8 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.3: {} + balanced-match@4.0.4: {} bare-events@2.8.2: {} @@ -7749,6 +7779,10 @@ snapshots: dependencies: balanced-match: 4.0.4 + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + browserify-zlib@0.1.4: dependencies: pako: 0.2.9 @@ -7775,9 +7809,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bun-types@1.3.12: + bun-types@1.3.14: dependencies: - '@types/node': 25.6.0 + '@types/node': 25.8.0 bytes@3.1.2: {} @@ -7948,10 +7982,6 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.4.1: - dependencies: - ms: 2.1.3 - debug@4.4.3: dependencies: ms: 2.1.3 @@ -7992,7 +8022,11 @@ snapshots: dependencies: dequal: 2.0.3 - dotenv-expand@11.0.7: + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dotenv-expand@12.0.3: dependencies: dotenv: 16.4.7 @@ -8022,18 +8056,18 @@ snapshots: ee-first@1.1.1: {} - effect@4.0.0-beta.43: + effect@4.0.0-beta.67: dependencies: '@standard-schema/spec': 1.1.0 - fast-check: 4.6.0 + fast-check: 4.8.0 find-my-way-ts: 0.1.6 - ini: 6.0.0 + ini: 7.0.0 kubernetes-types: 1.30.0 - msgpackr: 1.11.9 + msgpackr: 2.0.1 multipasta: 0.2.7 - toml: 3.0.0 - uuid: 13.0.0 - yaml: 2.8.3 + toml: 4.1.1 + uuid: 14.0.0 + yaml: 2.9.0 ejs@5.0.1: {} @@ -8159,8 +8193,6 @@ snapshots: escape-string-regexp@5.0.0: {} - esprima@4.0.1: {} - estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.8 @@ -8254,7 +8286,7 @@ snapshots: extsprintf@1.3.0: {} - fast-check@4.6.0: + fast-check@4.8.0: dependencies: pure-rand: 8.3.0 @@ -8262,17 +8294,29 @@ snapshots: fast-fifo@1.3.2: {} - fast-string-truncated-width@1.2.1: {} + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-string-truncated-width@3.0.3: {} - fast-string-width@1.1.0: + fast-string-width@3.0.2: dependencies: - fast-string-truncated-width: 1.2.1 + fast-string-truncated-width: 3.0.3 fast-uri@3.1.0: {} - fast-wrap-ansi@0.1.6: + fast-wrap-ansi@0.2.0: dependencies: - fast-string-width: 1.1.0 + fast-string-width: 3.0.2 + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 fd-package-json@2.0.0: dependencies: @@ -8286,6 +8330,10 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + finalhandler@1.3.2: dependencies: debug: 2.6.9 @@ -8322,27 +8370,23 @@ snapshots: forwarded@0.2.0: {} - framer-motion@12.38.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + framer-motion@12.38.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: motion-dom: 12.38.0 motion-utils: 12.36.0 tslib: 2.8.1 optionalDependencies: - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) fresh@0.5.2: {} - front-matter@4.0.2: - dependencies: - js-yaml: 3.14.2 - fs-constants@1.0.0: {} fsevents@2.3.3: optional: true - fumadocs-core@16.8.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.8.0(react@19.2.5))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6): + fumadocs-core@16.8.11(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.16.0(react@19.2.6))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3): dependencies: '@orama/orama': 3.1.18 estree-util-value-to-estree: 3.5.0 @@ -8367,74 +8411,73 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 '@types/react': 19.2.14 - lucide-react: 1.8.0(react@19.2.5) - next: 16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) - zod: 4.3.6 + lucide-react: 1.16.0(react@19.2.6) + next: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + zod: 4.4.3 transitivePeerDependencies: - supports-color - fumadocs-mdx@14.3.1(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.8.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.8.0(react@19.2.5))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react@19.2.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)): + fumadocs-mdx@15.0.6(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.8.11(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.16.0(react@19.2.6))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.1.0 chokidar: 5.0.0 esbuild: 0.28.0 estree-util-value-to-estree: 3.5.0 - fumadocs-core: 16.8.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.8.0(react@19.2.5))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) + fumadocs-core: 16.8.11(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.16.0(react@19.2.6))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) js-yaml: 4.1.1 mdast-util-mdx: 3.0.0 - mdast-util-to-markdown: 2.1.2 picocolors: 1.1.1 picomatch: 4.0.4 - tinyexec: 1.1.1 + tinyexec: 1.1.2 tinyglobby: 0.2.16 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.1.0 vfile: 6.0.3 - zod: 4.3.6 + zod: 4.4.3 optionalDependencies: '@types/mdast': 4.0.4 '@types/mdx': 2.0.13 '@types/react': 19.2.14 - next: 16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - react: 19.2.5 - vite: 8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3) + next: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + vite: 8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - fumadocs-ui@16.8.1(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.8.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.8.0(react@19.2.5))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + fumadocs-ui@16.8.11(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.8.11(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.16.0(react@19.2.6))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: '@fumadocs/tailwind': 0.0.5 - '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.5) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.6) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) class-variance-authority: 0.7.1 - fumadocs-core: 16.8.1(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.8.0(react@19.2.5))(next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(zod@4.3.6) - lucide-react: 1.8.0(react@19.2.5) - motion: 12.38.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - next-themes: 0.4.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) - react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.5) + fumadocs-core: 16.8.11(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@1.16.0(react@19.2.6))(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) + lucide-react: 1.16.0(react@19.2.6) + motion: 12.38.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + next-themes: 0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.6) rehype-raw: 7.0.0 scroll-into-view-if-needed: 3.1.0 shiki: 4.0.2 - tailwind-merge: 3.5.0 + tailwind-merge: 3.6.0 unist-util-visit: 5.1.0 optionalDependencies: '@types/mdx': 2.0.13 '@types/react': 19.2.14 - next: 16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + next: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) transitivePeerDependencies: - '@emotion/is-prop-valid' - '@tailwindcss/oxide' @@ -8485,6 +8528,19 @@ snapshots: github-slugger@2.0.0: {} + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + gopd@1.2.0: {} got-cjs@12.5.4: @@ -8530,6 +8586,10 @@ snapshots: dependencies: has-symbols: 1.1.0 + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + hasown@2.0.3: dependencies: function-bind: 1.1.2 @@ -8692,21 +8752,23 @@ snapshots: ieee754@1.2.1: {} + ignore@5.3.2: {} + ignore@7.0.5: {} indent-string@5.0.0: {} inherits@2.0.4: {} - ini@6.0.0: {} + ini@7.0.0: {} - ink-spinner@5.0.0(ink@7.0.1(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.5))(react@19.2.5): + ink-spinner@5.0.0(ink@7.0.3(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.6))(react@19.2.6): dependencies: cli-spinners: 2.9.2 - ink: 7.0.1(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.5) - react: 19.2.5 + ink: 7.0.3(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.6) + react: 19.2.6 - ink@7.0.1(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.5): + ink@7.0.3(@types/react@19.2.14)(react-devtools-core@7.0.1)(react@19.2.6): dependencies: '@alcalzone/ansi-tokenize': 0.3.0 ansi-escapes: 7.3.0 @@ -8721,8 +8783,8 @@ snapshots: indent-string: 5.0.0 is-in-ci: 2.0.0 patch-console: 2.0.0 - react: 19.2.5 - react-reconciler: 0.33.0(react@19.2.5) + react: 19.2.6 + react-reconciler: 0.33.0(react@19.2.6) scheduler: 0.27.0 signal-exit: 3.0.7 slice-ansi: 9.0.0 @@ -8792,6 +8854,8 @@ snapshots: is-interactive@1.0.0: {} + is-number@7.0.0: {} + is-plain-obj@4.1.0: {} is-promise@2.2.2: {} @@ -8821,22 +8885,10 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jest-diff@30.3.0: - dependencies: - '@jest/diff-sequences': 30.3.0 - '@jest/get-type': 30.1.0 - chalk: 4.1.2 - pretty-format: 30.3.0 - - jiti@2.6.1: {} + jiti@2.7.0: {} js-tokens@4.0.0: {} - js-yaml@3.14.2: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -8870,7 +8922,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.7.4 + semver: 7.8.0 jsprim@2.0.2: dependencies: @@ -8894,22 +8946,25 @@ snapshots: dependencies: json-buffer: 3.0.1 - knip@6.6.1: + knip@6.14.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): dependencies: fdir: 6.5.0(picomatch@4.0.4) formatly: 0.3.0 get-tsconfig: 4.14.0 - jiti: 2.6.1 + jiti: 2.7.0 minimist: 1.2.8 - oxc-parser: 0.126.0 - oxc-resolver: 11.19.1 + oxc-parser: 0.130.0 + oxc-resolver: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) picomatch: 4.0.4 smol-toml: 1.6.1 strip-json-comments: 5.0.3 tinyglobby: 0.2.16 - unbash: 2.2.0 - yaml: 2.8.3 + unbash: 3.0.0 + yaml: 2.9.0 zod: 4.3.6 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' kubernetes-types@1.30.0: {} @@ -8986,8 +9041,6 @@ snapshots: lodash.once@4.1.1: {} - lodash@4.17.21: {} - lodash@4.18.1: {} log-symbols@4.1.0: @@ -9013,9 +9066,9 @@ snapshots: lru-cache@7.18.3: {} - lucide-react@1.8.0(react@19.2.5): + lucide-react@1.16.0(react@19.2.6): dependencies: - react: 19.2.5 + react: 19.2.6 magic-string@0.30.21: dependencies: @@ -9204,6 +9257,8 @@ snapshots: merge-descriptors@1.0.3: {} + merge2@1.4.1: {} + methods@1.1.2: {} micromark-core-commonmark@2.0.3: @@ -9470,6 +9525,11 @@ snapshots: transitivePeerDependencies: - supports-color + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + mime-db@1.52.0: {} mime-db@1.54.0: {} @@ -9490,7 +9550,7 @@ snapshots: mimic-response@3.1.0: {} - minimatch@10.2.4: + minimatch@10.2.5: dependencies: brace-expansion: 5.0.5 @@ -9512,13 +9572,13 @@ snapshots: motion-utils@12.36.0: {} - motion@12.38.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + motion@12.38.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - framer-motion: 12.38.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + framer-motion: 12.38.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 optionalDependencies: - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) ms@2.0.0: {} @@ -9536,7 +9596,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 optional: true - msgpackr@1.11.9: + msgpackr@2.0.1: optionalDependencies: msgpackr-extract: 3.0.3 @@ -9544,36 +9604,38 @@ snapshots: nanoid@3.3.11: {} + nanoid@3.3.12: {} + negotiator@0.6.3: {} negotiator@0.6.4: {} neo-async@2.6.2: {} - next-themes@0.4.6(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + next-themes@0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - next@16.2.4(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - '@next/env': 16.2.4 + '@next/env': 16.2.6 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.10.20 caniuse-lite: 1.0.30001790 postcss: 8.4.31 - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) - styled-jsx: 5.1.6(react@19.2.5) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + styled-jsx: 5.1.6(react@19.2.6) optionalDependencies: - '@next/swc-darwin-arm64': 16.2.4 - '@next/swc-darwin-x64': 16.2.4 - '@next/swc-linux-arm64-gnu': 16.2.4 - '@next/swc-linux-arm64-musl': 16.2.4 - '@next/swc-linux-x64-gnu': 16.2.4 - '@next/swc-linux-x64-musl': 16.2.4 - '@next/swc-win32-arm64-msvc': 16.2.4 - '@next/swc-win32-x64-msvc': 16.2.4 + '@next/swc-darwin-arm64': 16.2.6 + '@next/swc-darwin-x64': 16.2.6 + '@next/swc-linux-arm64-gnu': 16.2.6 + '@next/swc-linux-arm64-musl': 16.2.6 + '@next/swc-linux-x64-gnu': 16.2.6 + '@next/swc-linux-x64-musl': 16.2.6 + '@next/swc-win32-arm64-msvc': 16.2.6 + '@next/swc-win32-x64-msvc': 16.2.6 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' @@ -9598,57 +9660,131 @@ snapshots: dependencies: path-key: 3.1.1 - nx@22.6.5(@swc-node/register@1.11.1(@swc/core@1.15.30)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.30): + nx@22.7.2(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.33)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.33): dependencies: + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 + '@emnapi/wasi-threads': 1.0.4 + '@jest/diff-sequences': 30.0.1 '@napi-rs/wasm-runtime': 0.2.4 + '@tybys/wasm-util': 0.9.0 '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 - axios: 1.15.0 + ansi-colors: 4.1.3 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + argparse: 2.0.1 + asynckit: 0.4.0 + axios: 1.16.0 + balanced-match: 4.0.3 + base64-js: 1.5.1 + bl: 4.1.0 + brace-expansion: 5.0.5 + buffer: 5.7.1 + call-bind-apply-helpers: 1.0.2 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 + clone: 1.0.4 + color-convert: 2.0.1 + color-name: 1.1.4 + combined-stream: 1.0.8 + defaults: 1.0.4 + define-lazy-prop: 2.0.0 + delayed-stream: 1.0.0 dotenv: 16.4.7 - dotenv-expand: 11.0.7 + dotenv-expand: 12.0.3 + dunder-proto: 1.0.1 ejs: 5.0.1 + emoji-regex: 8.0.0 + end-of-stream: 1.4.5 enquirer: 2.3.6 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + escalade: 3.2.0 + escape-string-regexp: 1.0.5 figures: 3.2.0 flat: 5.0.2 - front-matter: 4.0.2 + follow-redirects: 1.16.0 + form-data: 4.0.5 + fs-constants: 1.0.0 + function-bind: 1.1.2 + get-caller-file: 2.0.5 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + has-flag: 4.0.0 + has-symbols: 1.1.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + ieee754: 1.2.1 ignore: 7.0.5 - jest-diff: 30.3.0 + inherits: 2.0.4 + is-docker: 2.2.1 + is-fullwidth-code-point: 3.0.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + is-wsl: 2.2.0 + json5: 2.2.3 jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 - minimatch: 10.2.4 + log-symbols: 4.1.0 + math-intrinsics: 1.1.0 + mime-db: 1.52.0 + mime-types: 2.1.35 + mimic-fn: 2.1.0 + minimatch: 10.2.5 + minimist: 1.2.8 npm-run-path: 4.0.1 + once: 1.4.0 + onetime: 5.1.2 open: 8.4.2 ora: 5.3.0 + path-key: 3.1.1 picocolors: 1.1.1 + proxy-from-env: 2.1.0 + readable-stream: 3.6.2 + require-directory: 2.1.1 resolve.exports: 2.0.3 + restore-cursor: 3.1.0 + safe-buffer: 5.2.1 semver: 7.7.4 + signal-exit: 3.0.7 smol-toml: 1.6.1 string-width: 4.2.3 + string_decoder: 1.3.0 + strip-ansi: 6.0.1 + strip-bom: 3.0.0 + supports-color: 7.2.0 tar-stream: 2.2.0 - tmp: 0.2.5 + tmp: 0.2.4 tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 - yaml: 2.8.3 + util-deprecate: 1.0.2 + wcwidth: 1.0.1 + wrap-ansi: 7.0.0 + wrappy: 1.0.2 + y18n: 5.0.8 + yaml: 2.8.0 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 22.6.5 - '@nx/nx-darwin-x64': 22.6.5 - '@nx/nx-freebsd-x64': 22.6.5 - '@nx/nx-linux-arm-gnueabihf': 22.6.5 - '@nx/nx-linux-arm64-gnu': 22.6.5 - '@nx/nx-linux-arm64-musl': 22.6.5 - '@nx/nx-linux-x64-gnu': 22.6.5 - '@nx/nx-linux-x64-musl': 22.6.5 - '@nx/nx-win32-arm64-msvc': 22.6.5 - '@nx/nx-win32-x64-msvc': 22.6.5 - '@swc-node/register': 1.11.1(@swc/core@1.15.30)(@swc/types@0.1.26)(typescript@6.0.3) - '@swc/core': 1.15.30 + '@nx/nx-darwin-arm64': 22.7.2 + '@nx/nx-darwin-x64': 22.7.2 + '@nx/nx-freebsd-x64': 22.7.2 + '@nx/nx-linux-arm-gnueabihf': 22.7.2 + '@nx/nx-linux-arm64-gnu': 22.7.2 + '@nx/nx-linux-arm64-musl': 22.7.2 + '@nx/nx-linux-x64-gnu': 22.7.2 + '@nx/nx-linux-x64-musl': 22.7.2 + '@nx/nx-win32-arm64-msvc': 22.7.2 + '@nx/nx-win32-x64-msvc': 22.7.2 + '@swc-node/register': 1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.33)(@swc/types@0.1.26)(typescript@6.0.3) + '@swc/core': 1.15.33 transitivePeerDependencies: - debug @@ -9693,38 +9829,38 @@ snapshots: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 - oxc-parser@0.126.0: + oxc-parser@0.130.0: dependencies: - '@oxc-project/types': 0.126.0 + '@oxc-project/types': 0.130.0 optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.126.0 - '@oxc-parser/binding-android-arm64': 0.126.0 - '@oxc-parser/binding-darwin-arm64': 0.126.0 - '@oxc-parser/binding-darwin-x64': 0.126.0 - '@oxc-parser/binding-freebsd-x64': 0.126.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.126.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.126.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.126.0 - '@oxc-parser/binding-linux-arm64-musl': 0.126.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.126.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.126.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.126.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.126.0 - '@oxc-parser/binding-linux-x64-gnu': 0.126.0 - '@oxc-parser/binding-linux-x64-musl': 0.126.0 - '@oxc-parser/binding-openharmony-arm64': 0.126.0 - '@oxc-parser/binding-wasm32-wasi': 0.126.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.126.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.126.0 - '@oxc-parser/binding-win32-x64-msvc': 0.126.0 - - oxc-resolver@11.19.1: + '@oxc-parser/binding-android-arm-eabi': 0.130.0 + '@oxc-parser/binding-android-arm64': 0.130.0 + '@oxc-parser/binding-darwin-arm64': 0.130.0 + '@oxc-parser/binding-darwin-x64': 0.130.0 + '@oxc-parser/binding-freebsd-x64': 0.130.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.130.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.130.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.130.0 + '@oxc-parser/binding-linux-arm64-musl': 0.130.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.130.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.130.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.130.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.130.0 + '@oxc-parser/binding-linux-x64-gnu': 0.130.0 + '@oxc-parser/binding-linux-x64-musl': 0.130.0 + '@oxc-parser/binding-openharmony-arm64': 0.130.0 + '@oxc-parser/binding-wasm32-wasi': 0.130.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.130.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.130.0 + '@oxc-parser/binding-win32-x64-msvc': 0.130.0 + + oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): optionalDependencies: '@oxc-resolver/binding-android-arm-eabi': 11.19.1 '@oxc-resolver/binding-android-arm64': 11.19.1 @@ -9742,66 +9878,69 @@ snapshots: '@oxc-resolver/binding-linux-x64-gnu': 11.19.1 '@oxc-resolver/binding-linux-x64-musl': 11.19.1 '@oxc-resolver/binding-openharmony-arm64': 11.19.1 - '@oxc-resolver/binding-wasm32-wasi': 11.19.1 + '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) '@oxc-resolver/binding-win32-arm64-msvc': 11.19.1 '@oxc-resolver/binding-win32-ia32-msvc': 11.19.1 '@oxc-resolver/binding-win32-x64-msvc': 11.19.1 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - oxfmt@0.46.0: + oxfmt@0.50.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.46.0 - '@oxfmt/binding-android-arm64': 0.46.0 - '@oxfmt/binding-darwin-arm64': 0.46.0 - '@oxfmt/binding-darwin-x64': 0.46.0 - '@oxfmt/binding-freebsd-x64': 0.46.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.46.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.46.0 - '@oxfmt/binding-linux-arm64-gnu': 0.46.0 - '@oxfmt/binding-linux-arm64-musl': 0.46.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.46.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.46.0 - '@oxfmt/binding-linux-riscv64-musl': 0.46.0 - '@oxfmt/binding-linux-s390x-gnu': 0.46.0 - '@oxfmt/binding-linux-x64-gnu': 0.46.0 - '@oxfmt/binding-linux-x64-musl': 0.46.0 - '@oxfmt/binding-openharmony-arm64': 0.46.0 - '@oxfmt/binding-win32-arm64-msvc': 0.46.0 - '@oxfmt/binding-win32-ia32-msvc': 0.46.0 - '@oxfmt/binding-win32-x64-msvc': 0.46.0 - - oxlint-tsgolint@0.21.1: + '@oxfmt/binding-android-arm-eabi': 0.50.0 + '@oxfmt/binding-android-arm64': 0.50.0 + '@oxfmt/binding-darwin-arm64': 0.50.0 + '@oxfmt/binding-darwin-x64': 0.50.0 + '@oxfmt/binding-freebsd-x64': 0.50.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.50.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.50.0 + '@oxfmt/binding-linux-arm64-gnu': 0.50.0 + '@oxfmt/binding-linux-arm64-musl': 0.50.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.50.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.50.0 + '@oxfmt/binding-linux-riscv64-musl': 0.50.0 + '@oxfmt/binding-linux-s390x-gnu': 0.50.0 + '@oxfmt/binding-linux-x64-gnu': 0.50.0 + '@oxfmt/binding-linux-x64-musl': 0.50.0 + '@oxfmt/binding-openharmony-arm64': 0.50.0 + '@oxfmt/binding-win32-arm64-msvc': 0.50.0 + '@oxfmt/binding-win32-ia32-msvc': 0.50.0 + '@oxfmt/binding-win32-x64-msvc': 0.50.0 + + oxlint-tsgolint@0.23.0: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.21.1 - '@oxlint-tsgolint/darwin-x64': 0.21.1 - '@oxlint-tsgolint/linux-arm64': 0.21.1 - '@oxlint-tsgolint/linux-x64': 0.21.1 - '@oxlint-tsgolint/win32-arm64': 0.21.1 - '@oxlint-tsgolint/win32-x64': 0.21.1 - - oxlint@1.61.0(oxlint-tsgolint@0.21.1): + '@oxlint-tsgolint/darwin-arm64': 0.23.0 + '@oxlint-tsgolint/darwin-x64': 0.23.0 + '@oxlint-tsgolint/linux-arm64': 0.23.0 + '@oxlint-tsgolint/linux-x64': 0.23.0 + '@oxlint-tsgolint/win32-arm64': 0.23.0 + '@oxlint-tsgolint/win32-x64': 0.23.0 + + oxlint@1.65.0(oxlint-tsgolint@0.23.0): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.61.0 - '@oxlint/binding-android-arm64': 1.61.0 - '@oxlint/binding-darwin-arm64': 1.61.0 - '@oxlint/binding-darwin-x64': 1.61.0 - '@oxlint/binding-freebsd-x64': 1.61.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.61.0 - '@oxlint/binding-linux-arm-musleabihf': 1.61.0 - '@oxlint/binding-linux-arm64-gnu': 1.61.0 - '@oxlint/binding-linux-arm64-musl': 1.61.0 - '@oxlint/binding-linux-ppc64-gnu': 1.61.0 - '@oxlint/binding-linux-riscv64-gnu': 1.61.0 - '@oxlint/binding-linux-riscv64-musl': 1.61.0 - '@oxlint/binding-linux-s390x-gnu': 1.61.0 - '@oxlint/binding-linux-x64-gnu': 1.61.0 - '@oxlint/binding-linux-x64-musl': 1.61.0 - '@oxlint/binding-openharmony-arm64': 1.61.0 - '@oxlint/binding-win32-arm64-msvc': 1.61.0 - '@oxlint/binding-win32-ia32-msvc': 1.61.0 - '@oxlint/binding-win32-x64-msvc': 1.61.0 - oxlint-tsgolint: 0.21.1 + '@oxlint/binding-android-arm-eabi': 1.65.0 + '@oxlint/binding-android-arm64': 1.65.0 + '@oxlint/binding-darwin-arm64': 1.65.0 + '@oxlint/binding-darwin-x64': 1.65.0 + '@oxlint/binding-freebsd-x64': 1.65.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.65.0 + '@oxlint/binding-linux-arm-musleabihf': 1.65.0 + '@oxlint/binding-linux-arm64-gnu': 1.65.0 + '@oxlint/binding-linux-arm64-musl': 1.65.0 + '@oxlint/binding-linux-ppc64-gnu': 1.65.0 + '@oxlint/binding-linux-riscv64-gnu': 1.65.0 + '@oxlint/binding-linux-riscv64-musl': 1.65.0 + '@oxlint/binding-linux-s390x-gnu': 1.65.0 + '@oxlint/binding-linux-x64-gnu': 1.65.0 + '@oxlint/binding-linux-x64-musl': 1.65.0 + '@oxlint/binding-openharmony-arm64': 1.65.0 + '@oxlint/binding-win32-arm64-msvc': 1.65.0 + '@oxlint/binding-win32-ia32-msvc': 1.65.0 + '@oxlint/binding-win32-x64-msvc': 1.65.0 + oxlint-tsgolint: 0.23.0 p-cancelable@2.1.1: {} @@ -9829,6 +9968,8 @@ snapshots: path-to-regexp@0.1.13: {} + path-type@4.0.0: {} + pathe@2.0.3: {} peek-stream@1.1.3: @@ -9841,6 +9982,8 @@ snapshots: picocolors@1.1.1: {} + picomatch@2.3.2: {} + picomatch@4.0.4: {} pify@3.0.0: {} @@ -9878,21 +10021,15 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.10: + postcss@8.5.14: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 - posthog-node@5.29.4: + posthog-node@5.34.3: dependencies: - '@posthog/core': 1.25.3 - - pretty-format@30.3.0: - dependencies: - '@jest/schemas': 30.0.5 - ansi-styles: 5.2.0 - react-is: 18.3.1 + '@posthog/core': 1.29.3 process-nextick-args@2.0.1: {} @@ -9933,6 +10070,8 @@ snapshots: dependencies: side-channel: 1.1.0 + queue-microtask@1.2.3: {} + quick-format-unescaped@4.0.4: {} quick-lru@5.1.1: {} @@ -9954,46 +10093,44 @@ snapshots: - bufferutil - utf-8-validate - react-dom@19.2.5(react@19.2.5): + react-dom@19.2.6(react@19.2.6): dependencies: - react: 19.2.5 + react: 19.2.6 scheduler: 0.27.0 - react-is@18.3.1: {} - - react-reconciler@0.33.0(react@19.2.5): + react-reconciler@0.33.0(react@19.2.6): dependencies: - react: 19.2.5 + react: 19.2.6 scheduler: 0.27.0 - react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.5): + react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.6): dependencies: - react: 19.2.5 - react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.5) + react: 19.2.6 + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.6) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.14 - react-remove-scroll@2.7.2(@types/react@19.2.14)(react@19.2.5): + react-remove-scroll@2.7.2(@types/react@19.2.14)(react@19.2.6): dependencies: - react: 19.2.5 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.5) - react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.5) + react: 19.2.6 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.6) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.6) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.5) - use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.5) + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.6) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.6) optionalDependencies: '@types/react': 19.2.14 - react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.5): + react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.6): dependencies: get-nonce: 1.0.1 - react: 19.2.5 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.14 - react@19.2.5: {} + react@19.2.6: {} readable-stream@2.3.8: dependencies: @@ -10156,6 +10293,8 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 + reusify@1.1.0: {} + rolldown@1.0.0-rc.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): dependencies: '@oxc-project/types': 0.122.0 @@ -10180,29 +10319,9 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - rolldown@1.0.0-rc.11(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2): + run-parallel@1.2.0: dependencies: - '@oxc-project/types': 0.122.0 - '@rolldown/pluginutils': 1.0.0-rc.11 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.11 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.11 - '@rolldown/binding-darwin-x64': 1.0.0-rc.11 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.11 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.11 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.11 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.11 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.11 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.11 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.11 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.11 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.11 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.11(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.11 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.11 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' + queue-microtask: 1.2.3 safe-buffer@5.1.2: {} @@ -10212,6 +10331,10 @@ snapshots: safer-buffer@2.1.2: {} + sanitize-filename@1.6.4: + dependencies: + truncate-utf8-bytes: 1.0.2 + scheduler@0.27.0: {} scroll-into-view-if-needed@3.1.0: @@ -10220,10 +10343,12 @@ snapshots: semver@6.3.1: {} - semver@7.7.2: {} + semver@7.7.3: {} semver@7.7.4: {} + semver@7.8.0: {} + send@0.19.2: dependencies: debug: 2.6.9 @@ -10332,6 +10457,8 @@ snapshots: sisteransi@1.0.5: {} + slash@3.0.0: {} + slice-ansi@9.0.0: dependencies: ansi-styles: 6.2.3 @@ -10362,8 +10489,6 @@ snapshots: split2@4.2.0: {} - sprintf-js@1.0.3: {} - sshpk@1.18.0: dependencies: asn1: 0.2.6 @@ -10449,10 +10574,10 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - styled-jsx@5.1.6(react@19.2.5): + styled-jsx@5.1.6(react@19.2.6): dependencies: client-only: 0.0.1 - react: 19.2.5 + react: 19.2.6 supports-color@7.2.0: dependencies: @@ -10460,7 +10585,7 @@ snapshots: tagged-tag@1.0.0: {} - tailwind-merge@3.5.0: {} + tailwind-merge@3.6.0: {} tar-stream@2.2.0: dependencies: @@ -10502,6 +10627,8 @@ snapshots: tinyexec@1.1.1: {} + tinyexec@1.1.2: {} + tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -10517,11 +10644,15 @@ snapshots: dependencies: tldts-core: 6.1.86 - tmp@0.2.5: {} + tmp@0.2.4: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 toidentifier@1.0.1: {} - toml@3.0.0: {} + toml@4.1.1: {} tough-cookie@5.1.2: dependencies: @@ -10535,6 +10666,10 @@ snapshots: trough@2.2.0: {} + truncate-utf8-bytes@1.0.2: + dependencies: + utf8-byte-length: 1.0.5 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -10565,13 +10700,11 @@ snapshots: uglify-js@3.19.3: optional: true - unbash@2.2.0: {} + unbash@3.0.0: {} - undici-types@7.19.2: {} + undici-types@7.24.6: {} - undici@7.25.0: {} - - undici@8.1.0: {} + undici@8.3.0: {} unified@11.0.5: dependencies: @@ -10625,26 +10758,28 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.5): + use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.6): dependencies: - react: 19.2.5 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.14 - use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.5): + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.6): dependencies: detect-node-es: 1.1.0 - react: 19.2.5 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.14 + utf8-byte-length@1.0.5: {} + util-deprecate@1.0.2: {} utils-merge@1.0.1: {} - uuid@13.0.0: {} + uuid@14.0.0: {} uuid@8.3.2: {} @@ -10652,10 +10787,10 @@ snapshots: vary@1.1.2: {} - verdaccio-audit@13.0.0-next-8.37: + verdaccio-audit@13.0.1: dependencies: - '@verdaccio/config': 8.0.0-next-8.37 - '@verdaccio/core': 8.0.0-next-8.37 + '@verdaccio/config': 8.1.0 + '@verdaccio/core': 8.1.0 express: 4.22.1 https-proxy-agent: 5.0.1 node-fetch: 2.6.7 @@ -10663,10 +10798,10 @@ snapshots: - encoding - supports-color - verdaccio-htpasswd@13.0.0-next-8.37: + verdaccio-htpasswd@13.0.1: dependencies: - '@verdaccio/core': 8.0.0-next-8.37 - '@verdaccio/file-locking': 13.0.0-next-8.7 + '@verdaccio/core': 8.1.0 + '@verdaccio/file-locking': 13.0.0 apache-md5: 1.1.8 bcryptjs: 2.4.3 debug: 4.4.3 @@ -10675,25 +10810,25 @@ snapshots: transitivePeerDependencies: - supports-color - verdaccio@6.5.2(typanion@3.14.0): + verdaccio@6.7.1(typanion@3.14.0): dependencies: '@cypress/request': 3.0.10 - '@verdaccio/auth': 8.0.0-next-8.37 - '@verdaccio/config': 8.0.0-next-8.37 - '@verdaccio/core': 8.0.0-next-8.37 - '@verdaccio/hooks': 8.0.0-next-8.37 - '@verdaccio/loaders': 8.0.0-next-8.27 - '@verdaccio/local-storage-legacy': 11.1.1 - '@verdaccio/logger': 8.0.0-next-8.37 - '@verdaccio/middleware': 8.0.0-next-8.37 - '@verdaccio/package-filter': 13.0.0-next-8.5 - '@verdaccio/search-indexer': 8.0.0-next-8.6 - '@verdaccio/signature': 8.0.0-next-8.29 - '@verdaccio/streams': 10.2.1 - '@verdaccio/tarball': 13.0.0-next-8.37 + '@verdaccio/auth': 8.0.1 + '@verdaccio/config': 8.1.0 + '@verdaccio/core': 8.1.0 + '@verdaccio/hooks': 8.0.1 + '@verdaccio/loaders': 8.0.1 + '@verdaccio/local-storage-legacy': 11.3.1 + '@verdaccio/logger': 8.0.1 + '@verdaccio/middleware': 8.0.1 + '@verdaccio/package-filter': 13.0.1 + '@verdaccio/search-indexer': 8.0.0 + '@verdaccio/signature': 8.0.1 + '@verdaccio/streams': 10.2.3 + '@verdaccio/tarball': 13.0.1 '@verdaccio/ui-theme': 9.0.0-next-9.14 - '@verdaccio/url': 13.0.0-next-8.37 - '@verdaccio/utils': 8.1.0-next-8.37 + '@verdaccio/url': 13.0.1 + '@verdaccio/utils': 8.1.1 JSONStream: 1.3.5 async: 3.2.6 clipanion: 4.0.0-rc.4(typanion@3.14.0) @@ -10705,9 +10840,9 @@ snapshots: lodash: 4.18.1 lru-cache: 7.18.3 mime: 3.0.0 - semver: 7.7.4 - verdaccio-audit: 13.0.0-next-8.37 - verdaccio-htpasswd: 13.0.0-next-8.37 + semver: 7.8.0 + verdaccio-audit: 13.0.1 + verdaccio-htpasswd: 13.0.1 transitivePeerDependencies: - bare-abort-controller - encoding @@ -10736,77 +10871,32 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3): + vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.10 + postcss: 8.5.14 rolldown: 1.0.0-rc.11(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.6.0 + '@types/node': 25.8.0 esbuild: 0.27.4 fsevents: 2.3.3 - jiti: 2.6.1 - yaml: 2.8.3 + jiti: 2.7.0 + yaml: 2.9.0 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - vite@8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3): + vitest@4.1.6(@types/node@25.8.0)(@vitest/coverage-istanbul@4.1.6)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)): dependencies: - lightningcss: 1.32.0 - picomatch: 4.0.4 - postcss: 8.5.10 - rolldown: 1.0.0-rc.11(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - tinyglobby: 0.2.16 - optionalDependencies: - '@types/node': 25.6.0 - esbuild: 0.27.4 - fsevents: 2.3.3 - jiti: 2.6.1 - yaml: 2.8.3 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - vitest@4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)): - dependencies: - '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.5 - '@vitest/runner': 4.1.5 - '@vitest/snapshot': 4.1.5 - '@vitest/spy': 4.1.5 - '@vitest/utils': 4.1.5 - es-module-lexer: 2.0.0 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.1.1 - tinyglobby: 0.2.16 - tinyrainbow: 3.1.0 - vite: 8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 25.6.0 - '@vitest/coverage-istanbul': 4.1.5(vitest@4.1.5) - transitivePeerDependencies: - - msw - - vitest@4.1.5(@types/node@25.6.0)(@vitest/coverage-istanbul@4.1.5)(vite@8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)): - dependencies: - '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(vite@8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.5 - '@vitest/runner': 4.1.5 - '@vitest/snapshot': 4.1.5 - '@vitest/spy': 4.1.5 - '@vitest/utils': 4.1.5 + '@vitest/expect': 4.1.6 + '@vitest/mocker': 4.1.6(vite@8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.6 + '@vitest/runner': 4.1.6 + '@vitest/snapshot': 4.1.6 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -10818,11 +10908,11 @@ snapshots: tinyexec: 1.1.1 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 8.0.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.6.0)(esbuild@0.27.4)(jiti@2.6.1)(yaml@2.8.3) + vite: 8.0.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@25.8.0)(esbuild@0.27.4)(jiti@2.7.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.6.0 - '@vitest/coverage-istanbul': 4.1.5(vitest@4.1.5) + '@types/node': 25.8.0 + '@vitest/coverage-istanbul': 4.1.6(vitest@4.1.6) transitivePeerDependencies: - msw @@ -10876,7 +10966,9 @@ snapshots: yallist@3.1.1: {} - yaml@2.8.3: {} + yaml@2.8.0: {} + + yaml@2.9.0: {} yargs-parser@21.1.1: {} @@ -10894,4 +10986,6 @@ snapshots: zod@4.3.6: {} + zod@4.4.3: {} + zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3939f9c49..62ecdae6d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,21 +3,6 @@ packages: - "apps/*" - "tools/*" -supportedArchitectures: - os: - - current - - darwin - - linux - - win32 - cpu: - - current - - arm64 - - x64 - libc: - - current - - glibc - - musl - allowBuilds: "@swc/core": true esbuild: true @@ -26,21 +11,36 @@ allowBuilds: sharp: true catalog: - "@effect/atom-react": "4.0.0-beta.54" - "@effect/platform-bun": "^4.0.0-beta.43" - "@effect/platform-node": "^4.0.0-beta.43" + "@effect/atom-react": "4.0.0-beta.67" + "@effect/platform-bun": "4.0.0-beta.67" + "@effect/platform-node": "4.0.0-beta.67" "@effect/vitest": "^4.0.0-beta.43" - "@nx/devkit": "^22.6.5" + "@nx/devkit": "^22.7.2" "@swc-node/register": "^1.10.9" - "@swc/core": "^1.15.30" + "@swc/core": "^1.15.33" "@tsconfig/bun": "^1.0.10" - "@types/bun": "^1.3.12" - "@typescript/native-preview": "7.0.0-dev.20260422.1" - "@vitest/coverage-istanbul": "^4.1.5" - "effect": "^4.0.0-beta.43" - "knip": "^6.6.1" - "nx": "^22.6.5" - "oxfmt": "^0.46.0" - "oxlint": "^1.61.0" - "oxlint-tsgolint": "^0.21.1" - "vitest": "^4.1.5" + "@types/bun": "^1.3.14" + "@typescript/native-preview": "7.0.0-dev.20260518.1" + "@vitest/coverage-istanbul": "^4.1.6" + "effect": "4.0.0-beta.67" + "knip": "^6.14.1" + "nx": "^22.7.2" + "oxfmt": "^0.50.0" + "oxlint": "^1.65.0" + "oxlint-tsgolint": "^0.23.0" + "vitest": "^4.1.6" + +supportedArchitectures: + cpu: + - current + - arm64 + - x64 + libc: + - current + - glibc + - musl + os: + - current + - darwin + - linux + - win32 diff --git a/tsconfig.json b/tsconfig.json index 32292e0e4..b92f4f268 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,6 @@ { "compilerOptions": { "module": "CommonJS", - "moduleResolution": "node", "skipLibCheck": true } }