From 72310eb49c3ff63693cb674f3835774dc100e688 Mon Sep 17 00:00:00 2001 From: Ben Jacobson Date: Mon, 12 Oct 2026 20:09:57 +0000 Subject: [PATCH] Upgrade Effect and Foldkit to stable targets --- .changeset/effect-foldkit-stable.md | 17 + CONTRIBUTING.md | 18 + README.md | 8 +- docs/agents.md | 2 +- docs/getting-started.md | 4 +- docs/host-integration.md | 2 +- docs/index.md | 2 +- docs/releasing.md | 2 +- docs/sqlite.md | 2 +- docs/troubleshooting.md | 2 +- examples/http-api/src/server.ts | 10 +- examples/http-api/test/openapi.test.ts | 2 +- examples/http-api/test/openapi/latest.json | 474 +-- examples/http-api/test/openapi/v1.json | 296 +- examples/http-api/test/openapi/v2.json | 296 +- .../tenant-host-cloudflare/alchemy.run.ts | 6 +- .../vitest.workerd.config.ts | 2 + package.json | 1 + packages/cli/src/program.ts | 72 +- packages/cloudflare/vitest.workerd.config.ts | 2 + packages/core/README.md | 2 +- packages/core/src/Branded.ts | 12 +- packages/core/src/EntityPage.ts | 7 +- packages/core/src/Pagination.ts | 7 +- packages/core/src/config/TypeSchema.ts | 48 +- packages/core/src/store/TriplesLive.ts | 4 +- packages/core/test/Branded.test.ts | 22 + packages/core/test/Pagination.test.ts | 6 +- packages/core/test/config/TypeExpr.test.ts | 8 + packages/dashboard/package.json | 1 + packages/dashboard/src/server.ts | 2 +- packages/http/README.md | 2 +- packages/http/src/Authorization.ts | 2 +- packages/http/src/EntityCodec.ts | 13 +- packages/http/src/EntityHttp.ts | 2 +- packages/http/src/EntityHttpApi.ts | 8 +- packages/http/src/EntityHttpHandlers.ts | 14 +- packages/http/test/config-api.test.ts | 18 +- packages/postgres/README.md | 2 +- packages/postgres/src/PgTriples.ts | 2 +- packages/postgres/src/PostgresqlAdapter.ts | 2 +- packages/postgres/src/PostgresqlBackend.ts | 2 +- .../test/integration/postgresql.test.ts | 2 +- packages/sql/src/DatabaseRegistryLayer.ts | 2 +- packages/sql/src/SqlQueryExecutor.ts | 2 +- packages/sql/src/StorageBackend.ts | 2 +- packages/sql/src/migrations.ts | 2 +- packages/sqlite/src/SqliteAdapter.ts | 2 +- packages/sqlite/src/SqliteBackend.ts | 2 +- packages/sqlite/src/SqliteLayer.ts | 2 +- packages/sqlite/src/SqliteTriples.ts | 2 +- packages/sqlite/test/migrations.test.ts | 2 +- pnpm-lock.yaml | 2807 ++++++----------- pnpm-workspace.yaml | 42 +- scripts/check-packages.mjs | 11 +- test/fixtures/numeric-index.ts | 2 +- test/integration/test/datalog.test.ts | 2 +- test/integration/test/http-api.test.ts | 2 +- test/stress/scripts/datalog-pagination.ts | 2 +- test/stress/src/backend.ts | 2 +- test/stress/test/triples-stress.test.ts | 2 +- 61 files changed, 1797 insertions(+), 2501 deletions(-) create mode 100644 .changeset/effect-foldkit-stable.md create mode 100644 packages/core/test/Branded.test.ts diff --git a/.changeset/effect-foldkit-stable.md b/.changeset/effect-foldkit-stable.md new file mode 100644 index 0000000..3c78002 --- /dev/null +++ b/.changeset/effect-foldkit-stable.md @@ -0,0 +1,17 @@ +--- +"@triplex-build/triplex": minor +"@triplex-build/triplex-sql": minor +"@triplex-build/triplex-sqlite": minor +"@triplex-build/triplex-postgres": minor +"@triplex-build/triplex-testkit": minor +"@triplex-build/triplex-cli": minor +"@triplex-build/triplex-http": minor +--- + +Require the tested Effect 4.0.3 peer version and migrate SQL, HTTP, HTTP API, CLI, +and Base64Url encoding imports to Effect 4 stable. Upgrade the workspace dashboard +and embedded documentation explorer to Foldkit 0.168.0. + +Use native branded-ID constructors, preserve closed runtime schemas with explicit +property-name checks, and normalize SQL numeric and timestamp values returned by +the new drivers. Refresh OpenAPI snapshots for stable Effect's schema generation. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5728d38..4351a7e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -48,3 +48,21 @@ OIDC-capable npm CLI. Keep private packages out of Changeset frontmatter. Changesets cannot version a public release when a Changeset mixes private and publishable packages. + +## Dependency compatibility + +The workspace tests Effect 4.0.3 with Foldkit and `@foldkit/ui` 0.168.0 and +`@foldkit/vite-plugin` 0.27.1. These Foldkit releases declare exact Effect 4.0.0 peers; +the plugin also pins the Node adapters to 4.0.0. `pnpm-workspace.yaml` allows only +4.0.3 for those specific package peers and overrides only the plugin's two adapter +dependencies. The browser adapter is an explicit catalog dependency of both the +dashboard and the documentation workspace. Remove these exceptions when upstream +peer ranges accept the tested patch. Peer checking remains enabled. + +Effect 4.0.3's test adapter requires Vitest 5, so the catalog also uses Vitest 5.0.4 +and the compatible Cloudflare test plugin 1.4.0 and Workers types 5.20261006.1. +The two workerd test configs disable Vitest's host filesystem module cache because +those paths are unavailable inside the worker. Node test configs keep the default cache. +Alchemy 2.0.0-beta.80 supplies the stable Effect imports used by the existing stacks. +Validate dependency changes with a frozen install, `pnpm check`, `pnpm pack:check`, +and `pnpm test:e2e`; PostgreSQL and FoundationDB retain their integration gates above. diff --git a/README.md b/README.md index 6d2cbff..1bf7307 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ # Triplex > [!WARNING] -> Triplex is pre-1.0. The published `@triplex-build` packages require `effect@4.0.0-rc.112`; +> Triplex is pre-1.0. The published `@triplex-build` packages require `effect@4.0.3`; > Effect 3 is not compatible. KV > and SQLite are the supported baseline, PostgreSQL is a production candidate, and Cloudflare and > FoundationDB are experimental. See [Current state](docs/current-state.md) for the exact maturity @@ -75,7 +75,7 @@ and never ask about history or provenance. Triplex is a system of record, not a Install the core package and its Effect peer dependency from npm: ```sh -npm install @triplex-build/triplex effect@4.0.0-rc.112 +npm install @triplex-build/triplex effect@4.0.3 ``` To run the checked repository examples from a source checkout: @@ -89,7 +89,7 @@ pnpm exec tsx --tsconfig docs/snippets/tsconfig.json docs/snippets/getting-start ``` Do not use the superseded `@bjacobso` canaries for new work. Triplex is ESM-only, targets Node.js -22+, and is aligned to `effect@4.0.0-rc.112`. The browser-safe core also runs in modern browsers and +22+, and is aligned to `effect@4.0.3`. The browser-safe core also runs in modern browsers and edge runtimes. The [website quickstart](docs/getting-started.md) includes expected output, Effect layer lifetime, and SQLite persistence. The coordinated package publication process is documented in [Releasing Triplex](docs/releasing.md). @@ -507,7 +507,7 @@ This path creates no pool and runs no migration: ```ts import { Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { EntityId, Triples, string } from "@triplex-build/triplex"; import { PgTriples, makePostgresqlLayerUnmigratedFromUrl } from "@triplex-build/triplex-postgres"; diff --git a/docs/agents.md b/docs/agents.md index a8eb2a4..ef3acbb 100644 --- a/docs/agents.md +++ b/docs/agents.md @@ -33,7 +33,7 @@ Check these constraints with the people you work for before adopting it: | Constraint | Current contract | | -------------- | ---------------------------------------------------------------------------- | | Maturity | Pre-1.0. See [Current state](/current-state) | -| Effect | Requires `effect@4.0.0-rc.112`. Effect 3 is not compatible | +| Effect | Requires `effect@4.0.3`. Effect 3 is not compatible | | Runtime | ESM-only, Node.js 22+, modern browsers and edge runtimes for the core | | Durable stores | SQLite is supported. PostgreSQL is a production candidate | | Host duties | Authentication, authorization, task lifecycle, timers, and retries are yours | diff --git a/docs/getting-started.md b/docs/getting-started.md index e4df30c..ed9c998 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -4,7 +4,7 @@ This guide writes three facts to an in-memory Triplex database, joins them with the result. It is the shortest complete path to a running program. ::: warning Pre-1.0 packages -The `@triplex-build` packages are available from npm and require `effect@4.0.0-rc.112`. +The `@triplex-build` packages are available from npm and require `effect@4.0.3`. Effect 3 is incompatible. Do not use the superseded `@bjacobso` package names for new work. ::: @@ -17,7 +17,7 @@ Effect 3 is incompatible. Do not use the superseded `@bjacobso` package names fo For an application, install the published core package and its Effect peer dependency: ```sh -npm install @triplex-build/triplex effect@4.0.0-rc.112 +npm install @triplex-build/triplex effect@4.0.3 ``` ## Run the example diff --git a/docs/host-integration.md b/docs/host-integration.md index b298e20..d673c53 100644 --- a/docs/host-integration.md +++ b/docs/host-integration.md @@ -97,7 +97,7 @@ A host-owned Effect SQL client can back Triplex without a hidden second pool: ```ts import { Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { EntityId, Triples, string } from "@triplex-build/triplex"; import { PgTriples, makePostgresqlLayerUnmigratedFromUrl } from "@triplex-build/triplex-postgres"; diff --git a/docs/index.md b/docs/index.md index 767f29b..4623b37 100644 --- a/docs/index.md +++ b/docs/index.md @@ -31,7 +31,7 @@ pageClass: triplex-index Start in your process ```sh -npm install @triplex-build/triplex effect@4.0.0-rc.112 +npm install @triplex-build/triplex effect@4.0.3 ``` Effect 4 required · First program → diff --git a/docs/releasing.md b/docs/releasing.md index 7e8eb13..5b28f3d 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -103,7 +103,7 @@ Install from the registry in a clean directory outside this monorepo: ```sh pnpm init -pnpm add effect@4.0.0-rc.112 \ +pnpm add effect@4.0.3 \ @triplex-build/triplex@next \ @triplex-build/triplex-sqlite@next \ @triplex-build/triplex-cli@next diff --git a/docs/sqlite.md b/docs/sqlite.md index c94f2f6..742951c 100644 --- a/docs/sqlite.md +++ b/docs/sqlite.md @@ -27,7 +27,7 @@ default shared conformance suite. Triplex remains pre-1.0; see [current state](/ Install the SQLite adapter with the compatible Effect version on Node.js 22 or newer: ```sh -npm install @triplex-build/triplex @triplex-build/triplex-sqlite effect@4.0.0-rc.112 +npm install @triplex-build/triplex @triplex-build/triplex-sqlite effect@4.0.3 ``` This writes a training fact and reads it through the same `Triples` service used by other backends: diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 07d9ed4..7352817 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -12,7 +12,7 @@ private workspace packages. Do not switch new examples back to the superseded `@ Keep every Triplex package on one coordinated release and use the exact Effect peer version declared by that release. The current source tree targets Node.js 22+ and -`effect@4.0.0-rc.112`; Effect 3 is incompatible. Multiple Effect copies or an RC mismatch can make +`effect@4.0.3`; Effect 3 is incompatible. Multiple Effect copies or a version mismatch can make service tags and runtime types disagree even when imports look correct. ## Why is `Triples` (or another service) missing? diff --git a/examples/http-api/src/server.ts b/examples/http-api/src/server.ts index 69a59c0..0bfd909 100644 --- a/examples/http-api/src/server.ts +++ b/examples/http-api/src/server.ts @@ -3,8 +3,8 @@ import { KvTriples } from "@triplex-build/triplex"; import { ConfigStore } from "@triplex-build/triplex/config"; import { SqliteTriples } from "@triplex-build/triplex-sqlite"; import { Effect, Layer, Option, Path, Schema } from "effect"; -import { Command, Flag } from "effect/unstable/cli"; -import { HttpRouter, HttpServer } from "effect/unstable/http"; +import { Command, Flag } from "effect/cli"; +import { HttpRouter, HttpServer } from "effect/http"; import { createServer } from "node:http"; import { routes } from "./api.js"; @@ -21,15 +21,15 @@ const logDocumentation = Effect.gen(function* () { const command = Command.make( "triplex-http-api", { - sqlite: Flag.string("sqlite").pipe( + sqlite: Flag.String("sqlite").pipe( Flag.withDescription("SQLite filename; omit to use ephemeral in-memory storage"), Flag.optional, ), - host: Flag.string("host").pipe( + host: Flag.String("host").pipe( Flag.withDescription("Host address to bind"), Flag.withDefault("127.0.0.1"), ), - port: Flag.integer("port").pipe( + port: Flag.Int("port").pipe( Flag.withDescription("Port to listen on; use 0 to allocate an available port"), Flag.withSchema( Schema.Number.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(65535)), diff --git a/examples/http-api/test/openapi.test.ts b/examples/http-api/test/openapi.test.ts index 44d3743..4eaa7c6 100644 --- a/examples/http-api/test/openapi.test.ts +++ b/examples/http-api/test/openapi.test.ts @@ -1,7 +1,7 @@ import { KvTriples } from "@triplex-build/triplex"; import { ConfigStore } from "@triplex-build/triplex/config"; import { Effect, Layer } from "effect"; -import { HttpRouter } from "effect/unstable/http"; +import { HttpRouter } from "effect/http"; import { format } from "oxfmt"; import { expect, it } from "vitest"; diff --git a/examples/http-api/test/openapi/latest.json b/examples/http-api/test/openapi/latest.json index f0844f7..de037b2 100644 --- a/examples/http-api/test/openapi/latest.json +++ b/examples/http-api/test/openapi/latest.json @@ -15,89 +15,89 @@ "responses": { "200": { "description": "TriplexConfigurationSchema", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexConfigurationSchema" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -112,85 +112,85 @@ "responses": { "200": { "description": "Success", + "content": { "application/json": { "schema": {} } }, "headers": { "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, - "content": { "application/json": { "schema": {} } } + } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -205,85 +205,85 @@ "responses": { "200": { "description": "Success", + "content": { "text/plain": { "schema": { "type": "string" } } }, "headers": { "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, - "content": { "text/plain": { "schema": { "type": "string" } } } + } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -348,9 +348,6 @@ "responses": { "200": { "description": "Success", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { @@ -366,82 +363,85 @@ "additionalProperties": false } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -454,88 +454,88 @@ "responses": { "201": { "description": "Employee", + "content": { + "application/json": { "schema": { "$ref": "#/components/schemas/Employee_1" } } + }, "headers": { "location": { "schema": { "type": "string" }, "required": true }, "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, - "content": { - "application/json": { "schema": { "$ref": "#/components/schemas/Employee_1" } } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } }, @@ -590,87 +590,87 @@ "responses": { "200": { "description": "Employee", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Employee" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -685,87 +685,87 @@ "responses": { "200": { "description": "Employee", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Employee" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } }, @@ -792,78 +792,78 @@ }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -872,19 +872,7 @@ }, "components": { "schemas": { - "TriplexConfigurationSchema": { - "type": "object", - "properties": { - "protocolVersion": { "type": "number", "enum": [1] }, - "snapshotId": { "type": "string" }, - "label": { "type": "string" }, - "entities": { "type": "array" }, - "constraints": { "type": "array" } - }, - "required": ["protocolVersion", "snapshotId", "label", "entities", "constraints"], - "additionalProperties": false - }, - "TriplexHttpError": { + "TriplexHttpError_6": { "type": "object", "properties": { "code": { "type": "string" }, @@ -894,7 +882,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_1": { + "TriplexHttpError_5": { "type": "object", "properties": { "code": { "type": "string" }, @@ -904,7 +892,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_2": { + "TriplexHttpError_4": { "type": "object", "properties": { "code": { "type": "string" }, @@ -924,7 +912,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_4": { + "TriplexHttpError_2": { "type": "object", "properties": { "code": { "type": "string" }, @@ -934,7 +922,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_5": { + "TriplexHttpError_1": { "type": "object", "properties": { "code": { "type": "string" }, @@ -944,7 +932,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_6": { + "TriplexHttpError": { "type": "object", "properties": { "code": { "type": "string" }, @@ -954,15 +942,6 @@ "required": ["code", "message"], "additionalProperties": false }, - "EmployeeAttributes": { - "type": "object", - "properties": { - ":employee/email": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, - ":employee/name": { "type": "string" } - }, - "required": [":employee/name"], - "additionalProperties": false - }, "Employee": { "type": "object", "properties": { @@ -973,20 +952,35 @@ "required": ["id", "type", "attributes"], "additionalProperties": false }, - "EmployeeAttributes_1": { + "EmployeeAttributes": { "type": "object", "properties": { ":employee/email": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, ":employee/name": { "type": "string" } }, "required": [":employee/name"], - "additionalProperties": false + "patternProperties": { "^Symbol\\(([\\s\\S]*)\\)$": {} }, + "allOf": [{ "type": "object", "additionalProperties": {} }], + "propertyNames": { "type": "string", "enum": [":employee/email", ":employee/name"] } }, - "EmployeeInput": { + "EmployeeInput_1": { "type": "object", - "properties": { "attributes": { "$ref": "#/components/schemas/EmployeeAttributes_1" } }, + "properties": { "attributes": { "$ref": "#/components/schemas/EmployeeAttributes_2" } }, "required": ["attributes"], - "additionalProperties": false + "patternProperties": { "^Symbol\\(([\\s\\S]*)\\)$": {} }, + "allOf": [{ "type": "object", "additionalProperties": {} }], + "propertyNames": { "anyOf": [{ "type": "string", "enum": ["attributes"] }] } + }, + "EmployeeAttributes_2": { + "type": "object", + "properties": { + ":employee/email": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, + ":employee/name": { "type": "string" } + }, + "required": [":employee/name"], + "patternProperties": { "^Symbol\\(([\\s\\S]*)\\)$": {} }, + "allOf": [{ "type": "object", "additionalProperties": {} }], + "propertyNames": { "type": "string", "enum": [":employee/email", ":employee/name"] } }, "Employee_1": { "type": "object", @@ -998,19 +992,35 @@ "required": ["id", "type", "attributes"], "additionalProperties": false }, - "EmployeeAttributes_2": { + "EmployeeInput": { + "type": "object", + "properties": { "attributes": { "$ref": "#/components/schemas/EmployeeAttributes_1" } }, + "required": ["attributes"], + "patternProperties": { "^Symbol\\(([\\s\\S]*)\\)$": {} }, + "allOf": [{ "type": "object", "additionalProperties": {} }], + "propertyNames": { "anyOf": [{ "type": "string", "enum": ["attributes"] }] } + }, + "EmployeeAttributes_1": { "type": "object", "properties": { ":employee/email": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, ":employee/name": { "type": "string" } }, "required": [":employee/name"], - "additionalProperties": false + "patternProperties": { "^Symbol\\(([\\s\\S]*)\\)$": {} }, + "allOf": [{ "type": "object", "additionalProperties": {} }], + "propertyNames": { "type": "string", "enum": [":employee/email", ":employee/name"] } }, - "EmployeeInput_1": { + "TriplexConfigurationSchema": { "type": "object", - "properties": { "attributes": { "$ref": "#/components/schemas/EmployeeAttributes_2" } }, - "required": ["attributes"], + "properties": { + "protocolVersion": { "type": "number", "enum": [1] }, + "snapshotId": { "type": "string" }, + "label": { "type": "string" }, + "entities": { "type": "array" }, + "constraints": { "type": "array" } + }, + "required": ["protocolVersion", "snapshotId", "label", "entities", "constraints"], "additionalProperties": false } }, diff --git a/examples/http-api/test/openapi/v1.json b/examples/http-api/test/openapi/v1.json index 7add00b..3b8da8b 100644 --- a/examples/http-api/test/openapi/v1.json +++ b/examples/http-api/test/openapi/v1.json @@ -15,89 +15,89 @@ "responses": { "200": { "description": "TriplexConfigurationSchema", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexConfigurationSchema" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -112,85 +112,85 @@ "responses": { "200": { "description": "Success", + "content": { "application/json": { "schema": {} } }, "headers": { "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, - "content": { "application/json": { "schema": {} } } + } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -205,85 +205,85 @@ "responses": { "200": { "description": "Success", + "content": { "text/plain": { "schema": { "type": "string" } } }, "headers": { "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, - "content": { "text/plain": { "schema": { "type": "string" } } } + } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -348,9 +348,6 @@ "responses": { "200": { "description": "Success", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { @@ -366,82 +363,85 @@ "additionalProperties": false } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -490,87 +490,87 @@ "responses": { "200": { "description": "Employee", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Employee" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -579,19 +579,7 @@ }, "components": { "schemas": { - "TriplexConfigurationSchema": { - "type": "object", - "properties": { - "protocolVersion": { "type": "number", "enum": [1] }, - "snapshotId": { "type": "string" }, - "label": { "type": "string" }, - "entities": { "type": "array" }, - "constraints": { "type": "array" } - }, - "required": ["protocolVersion", "snapshotId", "label", "entities", "constraints"], - "additionalProperties": false - }, - "TriplexHttpError": { + "TriplexHttpError_6": { "type": "object", "properties": { "code": { "type": "string" }, @@ -601,7 +589,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_1": { + "TriplexHttpError_5": { "type": "object", "properties": { "code": { "type": "string" }, @@ -611,7 +599,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_2": { + "TriplexHttpError_4": { "type": "object", "properties": { "code": { "type": "string" }, @@ -631,7 +619,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_4": { + "TriplexHttpError_2": { "type": "object", "properties": { "code": { "type": "string" }, @@ -641,7 +629,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_5": { + "TriplexHttpError_1": { "type": "object", "properties": { "code": { "type": "string" }, @@ -651,7 +639,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_6": { + "TriplexHttpError": { "type": "object", "properties": { "code": { "type": "string" }, @@ -661,12 +649,6 @@ "required": ["code", "message"], "additionalProperties": false }, - "EmployeeAttributes": { - "type": "object", - "properties": { ":employee/name": { "type": "string" } }, - "required": [":employee/name"], - "additionalProperties": false - }, "Employee": { "type": "object", "properties": { @@ -676,6 +658,26 @@ }, "required": ["id", "type", "attributes"], "additionalProperties": false + }, + "EmployeeAttributes": { + "type": "object", + "properties": { ":employee/name": { "type": "string" } }, + "required": [":employee/name"], + "patternProperties": { "^Symbol\\(([\\s\\S]*)\\)$": {} }, + "allOf": [{ "type": "object", "additionalProperties": {} }], + "propertyNames": { "anyOf": [{ "type": "string", "enum": [":employee/name"] }] } + }, + "TriplexConfigurationSchema": { + "type": "object", + "properties": { + "protocolVersion": { "type": "number", "enum": [1] }, + "snapshotId": { "type": "string" }, + "label": { "type": "string" }, + "entities": { "type": "array" }, + "constraints": { "type": "array" } + }, + "required": ["protocolVersion", "snapshotId", "label", "entities", "constraints"], + "additionalProperties": false } }, "securitySchemes": {} diff --git a/examples/http-api/test/openapi/v2.json b/examples/http-api/test/openapi/v2.json index faf84c3..8b07cdc 100644 --- a/examples/http-api/test/openapi/v2.json +++ b/examples/http-api/test/openapi/v2.json @@ -15,89 +15,89 @@ "responses": { "200": { "description": "TriplexConfigurationSchema", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexConfigurationSchema" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -112,85 +112,85 @@ "responses": { "200": { "description": "Success", + "content": { "application/json": { "schema": {} } }, "headers": { "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, - "content": { "application/json": { "schema": {} } } + } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -205,85 +205,85 @@ "responses": { "200": { "description": "Success", + "content": { "text/plain": { "schema": { "type": "string" } } }, "headers": { "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, - "content": { "text/plain": { "schema": { "type": "string" } } } + } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -348,9 +348,6 @@ "responses": { "200": { "description": "Success", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { @@ -366,82 +363,85 @@ "additionalProperties": false } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -490,87 +490,87 @@ "responses": { "200": { "description": "Employee", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Employee" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "400": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "401": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_1" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "403": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_2" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "404": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_3" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "405": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, - "allow": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_4" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true }, + "allow": { "schema": { "type": "string" }, "required": true } } }, "409": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_5" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } }, "500": { "description": "TriplexHttpError", - "headers": { - "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } - }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriplexHttpError_6" } } + }, + "headers": { + "x-triplex-config-snapshot": { "schema": { "type": "string" }, "required": true } } } } @@ -579,19 +579,7 @@ }, "components": { "schemas": { - "TriplexConfigurationSchema": { - "type": "object", - "properties": { - "protocolVersion": { "type": "number", "enum": [1] }, - "snapshotId": { "type": "string" }, - "label": { "type": "string" }, - "entities": { "type": "array" }, - "constraints": { "type": "array" } - }, - "required": ["protocolVersion", "snapshotId", "label", "entities", "constraints"], - "additionalProperties": false - }, - "TriplexHttpError": { + "TriplexHttpError_6": { "type": "object", "properties": { "code": { "type": "string" }, @@ -601,7 +589,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_1": { + "TriplexHttpError_5": { "type": "object", "properties": { "code": { "type": "string" }, @@ -611,7 +599,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_2": { + "TriplexHttpError_4": { "type": "object", "properties": { "code": { "type": "string" }, @@ -631,7 +619,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_4": { + "TriplexHttpError_2": { "type": "object", "properties": { "code": { "type": "string" }, @@ -641,7 +629,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_5": { + "TriplexHttpError_1": { "type": "object", "properties": { "code": { "type": "string" }, @@ -651,7 +639,7 @@ "required": ["code", "message"], "additionalProperties": false }, - "TriplexHttpError_6": { + "TriplexHttpError": { "type": "object", "properties": { "code": { "type": "string" }, @@ -661,6 +649,16 @@ "required": ["code", "message"], "additionalProperties": false }, + "Employee": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "type": { "type": "string", "enum": ["Employee"] }, + "attributes": { "$ref": "#/components/schemas/EmployeeAttributes" } + }, + "required": ["id", "type", "attributes"], + "additionalProperties": false + }, "EmployeeAttributes": { "type": "object", "properties": { @@ -668,16 +666,20 @@ ":employee/name": { "type": "string" } }, "required": [":employee/name"], - "additionalProperties": false + "patternProperties": { "^Symbol\\(([\\s\\S]*)\\)$": {} }, + "allOf": [{ "type": "object", "additionalProperties": {} }], + "propertyNames": { "type": "string", "enum": [":employee/email", ":employee/name"] } }, - "Employee": { + "TriplexConfigurationSchema": { "type": "object", "properties": { - "id": { "type": "string" }, - "type": { "type": "string", "enum": ["Employee"] }, - "attributes": { "$ref": "#/components/schemas/EmployeeAttributes" } + "protocolVersion": { "type": "number", "enum": [1] }, + "snapshotId": { "type": "string" }, + "label": { "type": "string" }, + "entities": { "type": "array" }, + "constraints": { "type": "array" } }, - "required": ["id", "type", "attributes"], + "required": ["protocolVersion", "snapshotId", "label", "entities", "constraints"], "additionalProperties": false } }, diff --git a/examples/tenant-host-cloudflare/alchemy.run.ts b/examples/tenant-host-cloudflare/alchemy.run.ts index 7b91e51..a5758eb 100644 --- a/examples/tenant-host-cloudflare/alchemy.run.ts +++ b/examples/tenant-host-cloudflare/alchemy.run.ts @@ -11,9 +11,9 @@ export default Alchemy.Stack( state: Cloudflare.state(), }, Effect.gen(function* () { - const adminToken = yield* Config.redacted("TRIPLEX_HOST_ADMIN_TOKEN"); - const internalCapability = yield* Config.redacted("TRIPLEX_HOST_INTERNAL_CAPABILITY"); - const tenantTokens = yield* Config.redacted("TRIPLEX_HOST_TENANT_TOKENS"); + const adminToken = yield* Config.Redacted("TRIPLEX_HOST_ADMIN_TOKEN"); + const internalCapability = yield* Config.Redacted("TRIPLEX_HOST_INTERNAL_CAPABILITY"); + const tenantTokens = yield* Config.Redacted("TRIPLEX_HOST_TENANT_TOKENS"); const worker = yield* Cloudflare.Worker("TenantHost", { name: "triplex-tenant-host", diff --git a/examples/tenant-host-cloudflare/vitest.workerd.config.ts b/examples/tenant-host-cloudflare/vitest.workerd.config.ts index 6700e4d..d6f8a72 100644 --- a/examples/tenant-host-cloudflare/vitest.workerd.config.ts +++ b/examples/tenant-host-cloudflare/vitest.workerd.config.ts @@ -12,6 +12,8 @@ export default defineConfig({ alias: workspaceAliases(), }, test: { + // Workerd cannot read Vitest 5's transformed modules from the host filesystem. + fsModuleCache: false, include: ["test/**/*.test.ts"], testTimeout: 30_000, }, diff --git a/package.json b/package.json index 37f5cb4..ef1d82d 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ }, "devDependencies": { "@changesets/cli": "catalog:", + "@effect/platform-browser": "catalog:", "@effect/platform-node": "catalog:", "@foldkit/ui": "catalog:", "@fontsource-variable/ibm-plex-sans": "catalog:", diff --git a/packages/cli/src/program.ts b/packages/cli/src/program.ts index 4c9f3a9..2cfab19 100644 --- a/packages/cli/src/program.ts +++ b/packages/cli/src/program.ts @@ -32,7 +32,7 @@ import { Stdio, Stream, } from "effect"; -import { Argument, Command, Flag } from "effect/unstable/cli"; +import { Argument, Command, Flag } from "effect/cli"; import { execute, executeDatabase, @@ -42,27 +42,27 @@ import { declare const __TRIPLEX_CLI_VERSION__: string; -const pretty = Flag.boolean("pretty").pipe( +const pretty = Flag.Boolean("pretty").pipe( Flag.withDescription("Pretty-print JSON output"), Flag.withDefault(false), ); -const sqlite = Flag.string("sqlite").pipe( +const sqlite = Flag.String("sqlite").pipe( Flag.withDescription("Standalone SQLite file path; defaults to ./triplex.sqlite"), Flag.withDefault("./triplex.sqlite"), ); -const dataDir = Flag.string("data-dir").pipe( +const dataDir = Flag.String("data-dir").pipe( Flag.withDescription("Directory for managed SQLite databases"), Flag.withDefault("./data"), ); -const postgresUrl = Flag.string("postgres-url").pipe( +const postgresUrl = Flag.String("postgres-url").pipe( Flag.withDescription("PostgreSQL URL; prefer TRIPLEX_POSTGRES_URL to avoid shell history"), Flag.optional, ); -const databaseId = Flag.string("database-id").pipe( +const databaseId = Flag.String("database-id").pipe( Flag.withDescription("Managed database to use for data commands"), Flag.withSchema(DatabaseId), Flag.optional, @@ -75,18 +75,18 @@ export const rootCommand = Command.make("triplex").pipe( ), ); -const input = Flag.string("input").pipe( +const input = Flag.String("input").pipe( Flag.withAlias("i"), Flag.withDescription("JSON input file, or - for stdin"), Flag.withDefault("-"), ); -const debug = Flag.boolean("debug").pipe( +const debug = Flag.Boolean("debug").pipe( Flag.withDescription("Include backend query diagnostics"), Flag.withDefault(false), ); -const limit = Flag.integer("limit").pipe( +const limit = Flag.Int("limit").pipe( Flag.withAlias("n"), Flag.withDescription("Page size (1-1000)"), Flag.withSchema( @@ -98,18 +98,18 @@ const limit = Flag.integer("limit").pipe( Flag.withDefault(100), ); -const includeSystem = Flag.boolean("include-system").pipe( +const includeSystem = Flag.Boolean("include-system").pipe( Flag.withDescription("Include Triplex-owned system entities"), Flag.withDefault(false), ); -const validAt = Flag.integer("valid-at").pipe( +const validAt = Flag.Int("valid-at").pipe( Flag.withDescription("Business-time basis as epoch milliseconds"), Flag.withSchema(Schema.Number.pipe(Schema.check(Schema.isGreaterThanOrEqualTo(0)))), Flag.optional, ); -const recordedAt = Flag.integer("recorded-at").pipe( +const recordedAt = Flag.Int("recorded-at").pipe( Flag.withDescription("Knowledge-time basis as epoch milliseconds"), Flag.withSchema(Schema.Number.pipe(Schema.check(Schema.isGreaterThanOrEqualTo(0)))), Flag.optional, @@ -232,9 +232,9 @@ const entityTypes = Command.make("types", { includeSystem }, ({ includeSystem }) const entityList = Command.make( "list", { - type: Flag.string("type").pipe(Flag.withDescription("Filter by entity type"), Flag.optional), + type: Flag.String("type").pipe(Flag.withDescription("Filter by entity type"), Flag.optional), limit, - after: Flag.string("after").pipe( + after: Flag.String("after").pipe( Flag.withDescription("Continue after this entity ID"), Flag.withSchema(EntityId), Flag.optional, @@ -259,7 +259,7 @@ const entityList = Command.make( const entityGet = Command.make( "get", { - entityId: Argument.string("entity-id").pipe(Argument.withSchema(EntityId)), + entityId: Argument.String("entity-id").pipe(Argument.withSchema(EntityId)), validAt, recordedAt, }, @@ -275,7 +275,7 @@ const entityGet = Command.make( const entityFacts = Command.make( "facts", - { entityId: Argument.string("entity-id").pipe(Argument.withSchema(EntityId)) }, + { entityId: Argument.String("entity-id").pipe(Argument.withSchema(EntityId)) }, ({ entityId }) => emit("entity.facts", { _tag: "entity-facts", entityId }), ).pipe( Command.withDescription("Read the complete assertion/retraction fact history for an entity"), @@ -284,13 +284,13 @@ const entityFacts = Command.make( const entityHistory = Command.make( "history", { - entityId: Argument.string("entity-id").pipe(Argument.withSchema(EntityId)), + entityId: Argument.String("entity-id").pipe(Argument.withSchema(EntityId)), limit, - snapshotPosition: Flag.integer("snapshot-position").pipe( + snapshotPosition: Flag.Int("snapshot-position").pipe( Flag.withSchema(Schema.Number.pipe(Schema.check(Schema.isGreaterThanOrEqualTo(0)))), Flag.optional, ), - beforePosition: Flag.integer("before-position").pipe( + beforePosition: Flag.Int("before-position").pipe( Flag.withSchema(Schema.Number.pipe(Schema.check(Schema.isGreaterThanOrEqualTo(0)))), Flag.optional, ), @@ -337,7 +337,7 @@ const fact = Command.make("fact").pipe( const queryRun = Command.make( "run", - { input, debug, validAt, recordedAt, limit, cursor: Flag.string("cursor").pipe(Flag.optional) }, + { input, debug, validAt, recordedAt, limit, cursor: Flag.String("cursor").pipe(Flag.optional) }, ({ input, debug, validAt, recordedAt, limit, cursor }) => Effect.gen(function* () { const query = yield* readWith(DatalogQuery, input); @@ -404,7 +404,7 @@ const transaction = Command.make("transaction").pipe( const journalList = Command.make( "list", { - after: Flag.integer("after").pipe( + after: Flag.Int("after").pipe( Flag.withSchema(Schema.Number.pipe(Schema.check(Schema.isGreaterThanOrEqualTo(0)))), Flag.withDefault(0), ), @@ -415,14 +415,14 @@ const journalList = Command.make( const journalReceipt = Command.make( "receipt", - { commandId: Argument.string("command-id") }, + { commandId: Argument.String("command-id") }, ({ commandId }) => emit("journal.receipt", { _tag: "journal-receipt", commandId }), ).pipe(Command.withDescription("Find an idempotent transaction receipt by command ID")); const journalTransaction = Command.make( "transaction", { - transactionId: Argument.string("transaction-id").pipe(Argument.withSchema(TransactionId)), + transactionId: Argument.String("transaction-id").pipe(Argument.withSchema(TransactionId)), }, ({ transactionId }) => emit("journal.transaction", { _tag: "journal-transaction", transactionId }), @@ -444,11 +444,11 @@ const configReleases = Command.make("releases", {}, () => const configRelease = Command.make( "release", { - snapshotId: Flag.string("snapshot").pipe( + snapshotId: Flag.String("snapshot").pipe( Flag.withSchema(ContentId.ContentIdSchema), Flag.optional, ), - ref: Flag.string("ref").pipe(Flag.optional), + ref: Flag.String("ref").pipe(Flag.optional), }, ({ snapshotId, ref }) => { if (Option.isNone(snapshotId) === Option.isNone(ref)) { @@ -465,8 +465,8 @@ const configRelease = Command.make( const configObjects = Command.make( "objects", { - kind: Flag.string("kind").pipe(Flag.optional), - activeOnly: Flag.boolean("active-only").pipe(Flag.withDefault(false)), + kind: Flag.String("kind").pipe(Flag.optional), + activeOnly: Flag.Boolean("active-only").pipe(Flag.withDefault(false)), }, ({ kind, activeOnly }) => emit("config.objects", { @@ -479,8 +479,8 @@ const configObjects = Command.make( const configObject = Command.make( "object", { - kind: Argument.string("kind"), - key: Argument.string("key"), + kind: Argument.String("kind"), + key: Argument.String("key"), }, ({ kind, key }) => emit("config.object", { _tag: "config-object", kind, key }), ).pipe(Command.withDescription("Inspect the complete immutable history of one config object")); @@ -488,15 +488,15 @@ const configObject = Command.make( const configSetRef = Command.make( "set-ref", { - name: Argument.string("name"), - snapshotId: Argument.string("snapshot-id").pipe(Argument.withSchema(ContentId.ContentIdSchema)), + name: Argument.String("name"), + snapshotId: Argument.String("snapshot-id").pipe(Argument.withSchema(ContentId.ContentIdSchema)), }, ({ name, snapshotId }) => emit("config.set-ref", { _tag: "config-set-ref", name, snapshotId }), ).pipe(Command.withDescription("Atomically move a configuration ref to an existing release")); const configImpact = Command.make( "impact", - { kind: Argument.string("kind"), key: Argument.string("key") }, + { kind: Argument.String("kind"), key: Argument.String("key") }, ({ kind, key }) => emit("config.impact", { _tag: "config-impact", kind, key }), ).pipe(Command.withDescription("Query reverse dependencies and deploy-impact candidates")); @@ -513,13 +513,13 @@ const config = Command.make("config").pipe( ]), ); -const managedDatabaseName = Argument.string("name").pipe(Argument.withSchema(DatabaseId)); +const managedDatabaseName = Argument.String("name").pipe(Argument.withSchema(DatabaseId)); const databaseCreate = Command.make( "create", { name: managedDatabaseName, - description: Flag.string("description").pipe( + description: Flag.String("description").pipe( Flag.withAlias("d"), Flag.withDescription("Human-readable database description"), Flag.optional, @@ -545,7 +545,7 @@ const databaseUpdate = Command.make( "update", { name: managedDatabaseName, - description: Flag.string("description").pipe( + description: Flag.String("description").pipe( Flag.withAlias("d"), Flag.withDescription("New human-readable database description"), ), @@ -554,7 +554,7 @@ const databaseUpdate = Command.make( emitDatabase("db.update", { _tag: "database-update", name, description }), ).pipe(Command.withDescription("Update managed database metadata")); -const yes = Flag.boolean("yes").pipe( +const yes = Flag.Boolean("yes").pipe( Flag.withAlias("y"), Flag.withDescription("Confirm the destructive operation"), Flag.withDefault(false), diff --git a/packages/cloudflare/vitest.workerd.config.ts b/packages/cloudflare/vitest.workerd.config.ts index b9700a4..8052133 100644 --- a/packages/cloudflare/vitest.workerd.config.ts +++ b/packages/cloudflare/vitest.workerd.config.ts @@ -12,6 +12,8 @@ export default defineConfig({ alias: workspaceAliases(), }, test: { + // Workerd cannot read Vitest 5's transformed modules from the host filesystem. + fsModuleCache: false, include: ["test/**/*.workerd.test.ts"], }, }); diff --git a/packages/core/README.md b/packages/core/README.md index fab8542..cebd4f3 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -14,7 +14,7 @@ and Effect services. ## Availability -Install `@triplex-build/triplex` from npm with Node.js 22+ and its `effect@4.0.0-rc.112` peer +Install `@triplex-build/triplex` from npm with Node.js 22+ and its `effect@4.0.3` peer dependency. See the [quickstart](../../docs/getting-started.md). Do not use the superseded `@bjacobso` canaries for new work. diff --git a/packages/core/src/Branded.ts b/packages/core/src/Branded.ts index fe86a70..3a936ce 100644 --- a/packages/core/src/Branded.ts +++ b/packages/core/src/Branded.ts @@ -6,7 +6,6 @@ const TripleIdSchema = Schema.String.pipe( ); export const TripleId = Object.assign(TripleIdSchema, { decode: (s: string) => Schema.decodeEffect(TripleIdSchema)(s), - make: (s: string): TripleId => Schema.decodeSync(TripleIdSchema)(s), }); export type TripleId = typeof TripleIdSchema.Type; @@ -16,7 +15,6 @@ const EntityIdSchema = Schema.String.pipe( ); export const EntityId = Object.assign(EntityIdSchema, { decode: (s: string) => Schema.decodeEffect(EntityIdSchema)(s), - make: (s: string): EntityId => Schema.decodeSync(EntityIdSchema)(s), }); export type EntityId = typeof EntityIdSchema.Type; @@ -38,7 +36,6 @@ const DatabaseIdSchema = Schema.String.pipe( ); export const DatabaseId = Object.assign(DatabaseIdSchema, { decode: (s: string) => Schema.decodeEffect(DatabaseIdSchema)(s), - make: (s: string): DatabaseId => Schema.decodeSync(DatabaseIdSchema)(s), }); export type DatabaseId = typeof DatabaseIdSchema.Type; @@ -48,7 +45,6 @@ const TransactionIdSchema = EntityId.pipe( ); export const TransactionId = Object.assign(TransactionIdSchema, { decode: (s: string) => Schema.decodeEffect(TransactionIdSchema)(s), - make: (s: string): TransactionId => Schema.decodeSync(TransactionIdSchema)(s), }); export type TransactionId = typeof TransactionIdSchema.Type; @@ -61,9 +57,9 @@ export const decode = { }; export const unsafe = { - tripleId: TripleId.make, - entityId: EntityId.make, + tripleId: (s: string) => TripleId.make(s), + entityId: (s: string) => EntityId.make(s), attribute: (s: string) => Schema.decodeSync(Attribute)(s), - databaseId: DatabaseId.make, - transactionId: TransactionId.make, + databaseId: (s: string) => DatabaseId.make(s), + transactionId: (s: string) => TransactionId.make(s), }; diff --git a/packages/core/src/EntityPage.ts b/packages/core/src/EntityPage.ts index 7983333..2dd9d9d 100644 --- a/packages/core/src/EntityPage.ts +++ b/packages/core/src/EntityPage.ts @@ -1,4 +1,5 @@ -import { Encoding, Result } from "effect"; +import { Result } from "effect"; +import { Base64Url } from "effect/encoding"; import type { TemporalBasis, ResolvedTemporalBasis } from "./Temporal.js"; import { resolveTemporalBasis } from "./Temporal.js"; @@ -47,7 +48,7 @@ const cursorError = (message: string, cause?: unknown) => const decode = (cursor: string): CursorEnvelope => { try { - const bytes = Encoding.decodeBase64Url(cursor); + const bytes = Base64Url.decode(cursor); if (Result.isFailure(bytes)) throw bytes.failure; const value: unknown = JSON.parse(decoder.decode(bytes.success)); if ( @@ -152,7 +153,7 @@ export const encodeEntityPageCursor = ( prepared: PreparedEntityPage, after: string, ): EntityPageCursor => - Encoding.encodeBase64Url( + Base64Url.encode( encoder.encode( JSON.stringify({ version: 1, diff --git a/packages/core/src/Pagination.ts b/packages/core/src/Pagination.ts index b37a869..96768cf 100644 --- a/packages/core/src/Pagination.ts +++ b/packages/core/src/Pagination.ts @@ -1,4 +1,5 @@ -import { Encoding, Result, Schema } from "effect"; +import { Result, Schema } from "effect"; +import { Base64Url } from "effect/encoding"; import type { WrappedQueryResult } from "./storage/QueryExecutor.js"; import type { DatalogQuery, OrderBySpec, WrappedQuery } from "./datalog/types.js"; @@ -147,7 +148,7 @@ const scopeFingerprint = (scope: string): string => const decodeEnvelope = (cursor: string): PaginationCursorEnvelope => { let unknown: unknown; try { - const decoded = Encoding.decodeBase64Url(cursor); + const decoded = Base64Url.decode(cursor); if (Result.isFailure(decoded)) throw decoded.failure; unknown = JSON.parse(textDecoder.decode(decoded.success)); } catch (cause) { @@ -297,7 +298,7 @@ export const preparePagination = (input: { }; const encodeEnvelope = (envelope: PaginationCursorEnvelope): PaginationCursor => - Encoding.encodeBase64Url(textEncoder.encode(JSON.stringify(envelope))) as PaginationCursor; + Base64Url.encode(textEncoder.encode(JSON.stringify(envelope))) as PaginationCursor; export const finishPagination = ( prepared: PreparedPagination, diff --git a/packages/core/src/config/TypeSchema.ts b/packages/core/src/config/TypeSchema.ts index 487e468..2a403ce 100644 --- a/packages/core/src/config/TypeSchema.ts +++ b/packages/core/src/config/TypeSchema.ts @@ -90,32 +90,30 @@ const go = (expr: TypeExpr.TypeExpr): Schema.Codec => { case "List": return Schema.Array(go(expr.item)) as Schema.Codec; case "Struct": - return Schema.Struct( - Object.fromEntries( - Object.entries(expr.fields).map(([name, field]) => [ - name, - field.optional - ? field.fallback === undefined - ? Schema.optional(go(field.type)) - : // Applied on decode and emitted on encode, so an omitted - // field and an explicitly-defaulted one produce identical - // bytes and therefore an identical content id. - go(field.type).pipe( - Schema.withDecodingDefaultType(Effect.succeed(field.fallback)), - ) - : go(field.type), - ]), + return Schema.StructWithRest( + Schema.Struct( + Object.fromEntries( + Object.entries(expr.fields).map(([name, field]) => [ + name, + field.optional + ? field.fallback === undefined + ? Schema.optional(go(field.type)) + : // Applied on decode and emitted on encode, so an omitted + // field and an explicitly-defaulted one produce identical + // bytes and therefore an identical content id. + go(field.type).pipe( + Schema.withDecodingDefaultType(Effect.succeed(field.fallback)), + ) + : go(field.type), + ]), + ), ), - // Structs are closed, and `TypeSubsumption` decides verdicts on that - // basis - dropping a field narrows precisely because a value still - // carrying it must be rejected. Effect ignores excess properties by - // default, so without this the two halves would disagree: subsumption - // would refuse a change the compiler would happily accept. Annotating - // the node rather than passing parse options means every caller of - // `compile` gets the same semantics, including nested uses. - ).annotate({ - parseOptions: { onExcessProperty: "error" }, - }) as unknown as Schema.Codec; + // Preserve excess keys so the property-name check can reject them. + // Effect 4 stable no longer applies parseOptions annotations. + [Schema.Record(Schema.Union([Schema.String, Schema.Symbol]), Schema.Unknown)], + ).check( + Schema.isPropertyNames(Schema.Literals(Object.keys(expr.fields))), + ) as unknown as Schema.Codec; case "Union": return Schema.Union(expr.members.map(go)) as unknown as Schema.Codec; case "Constrained": diff --git a/packages/core/src/store/TriplesLive.ts b/packages/core/src/store/TriplesLive.ts index dbf116e..d6ef6b0 100644 --- a/packages/core/src/store/TriplesLive.ts +++ b/packages/core/src/store/TriplesLive.ts @@ -81,13 +81,13 @@ const rowToTriple = (row: TripleRow): Triple => { value = { type: "string", value: row.value_string ?? "" }; break; case "number": - value = { type: "number", value: row.value_number ?? 0 }; + value = { type: "number", value: Number(row.value_number ?? 0) }; break; case "boolean": value = { type: "boolean", value: row.value_boolean === 1 }; break; case "datetime": - value = { type: "datetime", value: row.value_datetime ?? 0 }; + value = { type: "datetime", value: Number(row.value_datetime ?? 0) }; break; case "ref": value = { type: "ref", value: unsafe.entityId(row.value_string ?? "") }; diff --git a/packages/core/test/Branded.test.ts b/packages/core/test/Branded.test.ts new file mode 100644 index 0000000..b732ac4 --- /dev/null +++ b/packages/core/test/Branded.test.ts @@ -0,0 +1,22 @@ +import { Schema } from "effect"; +import { describe, expect, it } from "vitest"; + +import { DatabaseId, EntityId, TransactionId, TripleId, unsafe } from "../src/Branded.js"; + +describe("branded ID constructors", () => { + it.each([ + [TripleId, unsafe.tripleId, "01ARZ3NDEKTSV4RRFFQ69G5FAV", "invalid"], + [EntityId, unsafe.entityId, "worker:1", ""], + [DatabaseId, unsafe.databaseId, "customer-a", "Customer A"], + [TransactionId, unsafe.transactionId, "_tx/01ARZ3NDEKTSV4RRFFQ69G5FAV", "worker:1"], + ] as const)( + "validates %s through native make and unsafe helpers", + (schema, make, valid, invalid) => { + expect(schema.make(valid)).toBe(valid); + expect(make(valid)).toBe(valid); + expect(Schema.decodeSync(schema)(valid)).toBe(valid); + expect(() => schema.make(invalid)).toThrow(); + expect(() => make(invalid)).toThrow(); + }, + ); +}); diff --git a/packages/core/test/Pagination.test.ts b/packages/core/test/Pagination.test.ts index b3c532b..4b2b46a 100644 --- a/packages/core/test/Pagination.test.ts +++ b/packages/core/test/Pagination.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest"; -import { Encoding } from "effect"; +import { Base64Url } from "effect/encoding"; import { finishPagination, preparePagination } from "../src/Pagination.js"; import { PaginationCursorError } from "../src/errors/index.js"; @@ -16,7 +16,7 @@ const query: WrappedQuery = { }; const encoded = (value: unknown): string => - Encoding.encodeBase64Url(new TextEncoder().encode(JSON.stringify(value))); + Base64Url.encode(new TextEncoder().encode(JSON.stringify(value))); describe("paged query cursor contract", () => { it("defaults to a bounded page and reuses omitted temporal fields from the cursor", () => { @@ -111,7 +111,7 @@ describe("paged query cursor contract", () => { it.each([ ["invalid base64", "%%%"], - ["invalid JSON", Encoding.encodeBase64Url(new TextEncoder().encode("{"))], + ["invalid JSON", Base64Url.encode(new TextEncoder().encode("{"))], ["invalid shape", encoded({ version: 1, queryFingerprint: "x", scopeFingerprint: "y" })], ])("rejects %s with a typed error", (_label, cursor) => { expect(() => diff --git a/packages/core/test/config/TypeExpr.test.ts b/packages/core/test/config/TypeExpr.test.ts index 1562bed..e0aaf29 100644 --- a/packages/core/test/config/TypeExpr.test.ts +++ b/packages/core/test/config/TypeExpr.test.ts @@ -377,6 +377,14 @@ describe("TypeSchema closedness", () => { const outer = T.struct({ inner: T.required(type) }); expect(TypeSchema.is(outer, { inner: { a: "x" } })).toBe(true); expect(TypeSchema.is(outer, { inner: { a: "x", b: 1 } })).toBe(false); + expect(() => + Schema.decodeUnknownSync(TypeSchema.compile(outer))({ inner: { a: "x", b: 1 } }), + ).toThrow(); + expect(() => + Schema.decodeUnknownSync(TypeSchema.compile(type))({ a: "x", [Symbol("b")]: 1 }), + ).toThrow(); + expect(TypeSchema.is(T.struct({}), {})).toBe(true); + expect(TypeSchema.is(T.struct({}), { "": 1 })).toBe(false); }); it("makes the Narrows verdict for a dropped field a real one", () => { diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index daffc84..d28bf7b 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -15,6 +15,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { + "@effect/platform-browser": "catalog:", "@effect/platform-node": "catalog:", "@foldkit/ui": "catalog:", "@fontsource-variable/ibm-plex-sans": "catalog:", diff --git a/packages/dashboard/src/server.ts b/packages/dashboard/src/server.ts index 21cedc6..cc1727c 100644 --- a/packages/dashboard/src/server.ts +++ b/packages/dashboard/src/server.ts @@ -5,7 +5,7 @@ import { PgTriples } from "@triplex-build/triplex-postgres"; import { SqliteTriples } from "@triplex-build/triplex-sqlite"; import { ConfigStore } from "@triplex-build/triplex/config"; import { Effect, Layer, Schema } from "effect"; -import { HttpRouter, HttpServerResponse, HttpStaticServer } from "effect/unstable/http"; +import { HttpRouter, HttpServerResponse, HttpStaticServer } from "effect/http"; import { createServer } from "node:http"; import { resolve } from "node:path"; import { fileURLToPath } from "node:url"; diff --git a/packages/http/README.md b/packages/http/README.md index 93a4498..1875f70 100644 --- a/packages/http/README.md +++ b/packages/http/README.md @@ -1,6 +1,6 @@ # @triplex-build/triplex-http -> **Pre-1.0:** install `@triplex-build/triplex-http` from npm with `effect@4.0.0-rc.112`; +> **Pre-1.0:** install `@triplex-build/triplex-http` from npm with `effect@4.0.3`; > Effect 3 is not compatible. Configuration-derived REST and OpenAPI contracts for Triplex. The package is backend-neutral and diff --git a/packages/http/src/Authorization.ts b/packages/http/src/Authorization.ts index 19a9071..ba83f21 100644 --- a/packages/http/src/Authorization.ts +++ b/packages/http/src/Authorization.ts @@ -1,5 +1,5 @@ import { Context, Effect, Layer } from "effect"; -import type { HttpServerRequest } from "effect/unstable/http/HttpServerRequest"; +import type { HttpServerRequest } from "effect/http/HttpServerRequest"; import type { AuthorizationError } from "./Errors.js"; diff --git a/packages/http/src/EntityCodec.ts b/packages/http/src/EntityCodec.ts index f6c7991..2d9aab7 100644 --- a/packages/http/src/EntityCodec.ts +++ b/packages/http/src/EntityCodec.ts @@ -24,6 +24,13 @@ const valueSchema = (attribute: AttributeDescriptor): Schema.Codec(fields: Fields) => + Schema.StructWithRest(Schema.Struct(fields), [ + Schema.Record(Schema.Union([Schema.String, Schema.Symbol]), Schema.Unknown), + ]).check(Schema.isPropertyNames(Schema.Literals(Object.keys(fields)))); + export const attributesSchema = (entity: EntityDescriptor): Schema.Codec => { const fields = Object.fromEntries( entity.attributes.map((attribute) => [ @@ -31,16 +38,14 @@ export const attributesSchema = (entity: EntityDescriptor): Schema.Codec; }; export const inputSchema = (entity: EntityDescriptor): Schema.Codec => - Schema.Struct({ attributes: attributesSchema(entity) }).annotate({ + closedStruct({ attributes: attributesSchema(entity) }).annotate({ identifier: `${entity.entityType}Input`, - parseOptions: { onExcessProperty: "error" }, }) as Schema.Codec; export const outputSchema = (entity: EntityDescriptor): Schema.Codec => diff --git a/packages/http/src/EntityHttp.ts b/packages/http/src/EntityHttp.ts index 0912807..2ea8174 100644 --- a/packages/http/src/EntityHttp.ts +++ b/packages/http/src/EntityHttp.ts @@ -1,5 +1,5 @@ import { Effect, Layer } from "effect"; -import { HttpRouter } from "effect/unstable/http"; +import { HttpRouter } from "effect/http"; import { HttpAuthorization } from "./Authorization.js"; import type { ExposureOptions } from "./ConfigApi.js"; diff --git a/packages/http/src/EntityHttpApi.ts b/packages/http/src/EntityHttpApi.ts index 758aa61..3f8936b 100644 --- a/packages/http/src/EntityHttpApi.ts +++ b/packages/http/src/EntityHttpApi.ts @@ -1,11 +1,5 @@ import { Schema } from "effect"; -import { - HttpApi, - HttpApiEndpoint, - HttpApiGroup, - HttpApiSchema, - OpenApi, -} from "effect/unstable/httpapi"; +import { HttpApi, HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api"; import type { ConfigApiDescriptor, EntityDescriptor } from "./ConfigApi.js"; import { inputSchema, outputSchema } from "./EntityCodec.js"; diff --git a/packages/http/src/EntityHttpHandlers.ts b/packages/http/src/EntityHttpHandlers.ts index 1848f3f..69d0f3a 100644 --- a/packages/http/src/EntityHttpHandlers.ts +++ b/packages/http/src/EntityHttpHandlers.ts @@ -3,10 +3,11 @@ import { ConstraintViolationError, TransactionConflictError, } from "@triplex-build/triplex"; -import { Cause, Effect, Encoding, Result } from "effect"; -import type { HttpServerRequest } from "effect/unstable/http/HttpServerRequest"; -import { HttpRouter, HttpServerResponse } from "effect/unstable/http"; -import { HttpApiScalar } from "effect/unstable/httpapi"; +import { Cause, Effect, Result } from "effect"; +import { Base64Url } from "effect/encoding"; +import type { HttpServerRequest } from "effect/http/HttpServerRequest"; +import { HttpRouter, HttpServerResponse } from "effect/http"; +import { HttpApiScalar } from "effect/http-api"; import { HttpAuthorization } from "./Authorization.js"; import { @@ -189,8 +190,7 @@ const encodeCursor = (input: { readonly snapshotId: string; readonly exposureKey: string; readonly collection: string; -}): string => - Encoding.encodeBase64Url(cursorEncoder.encode(JSON.stringify({ version: 1, ...input }))); +}): string => Base64Url.encode(cursorEncoder.encode(JSON.stringify({ version: 1, ...input }))); const decodeCursor = ( cursor: string, @@ -201,7 +201,7 @@ const decodeCursor = ( }, ): string => { try { - const bytes = Encoding.decodeBase64Url(cursor); + const bytes = Base64Url.decode(cursor); if (Result.isFailure(bytes)) throw bytes.failure; const value: unknown = JSON.parse(cursorDecoder.decode(bytes.success)); if ( diff --git a/packages/http/test/config-api.test.ts b/packages/http/test/config-api.test.ts index 9b48abc..94266d9 100644 --- a/packages/http/test/config-api.test.ts +++ b/packages/http/test/config-api.test.ts @@ -5,13 +5,14 @@ import { InMemoryConfigStore, TypeExpr, } from "@triplex-build/triplex/config"; -import { Effect, Result } from "effect"; +import { Effect, Result, Schema } from "effect"; import { describe, expect, it } from "vitest"; import { compile } from "../src/ConfigApi.js"; import { compileHttpApi } from "../src/EntityHttpApi.js"; import { HandlerCache } from "../src/HandlerCache.js"; import * as HandlerCacheModule from "../src/HandlerCache.js"; +import { inputSchema } from "../src/EntityCodec.js"; const snapshot = Effect.gen(function* () { const Name = Attribute.text(":employer/name"); @@ -29,6 +30,21 @@ const snapshot = Effect.gen(function* () { }); describe("ConfigApi", () => { + it("rejects undeclared request and attribute keys with stable Effect schemas", async () => { + const descriptor = await Effect.runPromise( + snapshot.pipe(Effect.flatMap((release) => compile(release))), + ); + const schema = inputSchema(descriptor.entities[0]!); + const decode = Schema.decodeUnknownSync(schema); + expect(decode({ attributes: { ":employer/name": "Acme" } })).toEqual({ + attributes: { ":employer/name": "Acme" }, + }); + expect(() => decode({ attributes: { ":employer/name": "Acme" }, extra: true })).toThrow(); + expect(() => + decode({ attributes: { ":employer/name": "Acme", ":employer/extra": true } }), + ).toThrow(); + }); + it("compiles deterministic runtime schemas and OpenAPI from persisted nodes", async () => { const result = await Effect.runPromise( Effect.gen(function* () { diff --git a/packages/postgres/README.md b/packages/postgres/README.md index 44ecd54..87cbc0f 100644 --- a/packages/postgres/README.md +++ b/packages/postgres/README.md @@ -17,7 +17,7 @@ internal adapter SPI: ```ts import { Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { Triples } from "@triplex-build/triplex"; import { PgTriples, makePostgresqlLayerUnmigratedFromUrl } from "@triplex-build/triplex-postgres"; diff --git a/packages/postgres/src/PgTriples.ts b/packages/postgres/src/PgTriples.ts index 9d65a9a..b6f6a54 100644 --- a/packages/postgres/src/PgTriples.ts +++ b/packages/postgres/src/PgTriples.ts @@ -11,7 +11,7 @@ */ import { Layer } from "effect"; -import type { SqlClient } from "effect/unstable/sql"; +import type { SqlClient } from "effect/sql"; import { TriplesLive, CurrentDialect, diff --git a/packages/postgres/src/PostgresqlAdapter.ts b/packages/postgres/src/PostgresqlAdapter.ts index 552ea1f..eb533cb 100644 --- a/packages/postgres/src/PostgresqlAdapter.ts +++ b/packages/postgres/src/PostgresqlAdapter.ts @@ -6,7 +6,7 @@ */ import { Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { StorageAdapter, type StorageAdapterService, diff --git a/packages/postgres/src/PostgresqlBackend.ts b/packages/postgres/src/PostgresqlBackend.ts index 3004d54..f0027f8 100644 --- a/packages/postgres/src/PostgresqlBackend.ts +++ b/packages/postgres/src/PostgresqlBackend.ts @@ -7,7 +7,7 @@ */ import { Context, Effect, Layer, Redacted } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { PgClient } from "@effect/sql-pg"; import { createHash } from "node:crypto"; import type { DatabaseId } from "@triplex-build/triplex"; diff --git a/packages/postgres/test/integration/postgresql.test.ts b/packages/postgres/test/integration/postgresql.test.ts index 6269c01..87deb46 100644 --- a/packages/postgres/test/integration/postgresql.test.ts +++ b/packages/postgres/test/integration/postgresql.test.ts @@ -14,7 +14,7 @@ import { numericIndexPlan } from "../../../../test/fixtures/numeric-index.js"; import { describe, it, expect } from "vitest"; import { Context, Effect, Layer, Redacted } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { DatabaseId, DatabaseManager, diff --git a/packages/sql/src/DatabaseRegistryLayer.ts b/packages/sql/src/DatabaseRegistryLayer.ts index 9442e09..f3af3a9 100644 --- a/packages/sql/src/DatabaseRegistryLayer.ts +++ b/packages/sql/src/DatabaseRegistryLayer.ts @@ -5,7 +5,7 @@ */ import { Effect, Layer, Scope, Context, pipe, Exit } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { DatabaseRegistry, type DatabaseRegistryService, diff --git a/packages/sql/src/SqlQueryExecutor.ts b/packages/sql/src/SqlQueryExecutor.ts index 31cb51d..d53f1d9 100644 --- a/packages/sql/src/SqlQueryExecutor.ts +++ b/packages/sql/src/SqlQueryExecutor.ts @@ -9,7 +9,7 @@ */ import { Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { QueryExecutor, type QueryExecutorService, diff --git a/packages/sql/src/StorageBackend.ts b/packages/sql/src/StorageBackend.ts index 7a05962..14fa44c 100644 --- a/packages/sql/src/StorageBackend.ts +++ b/packages/sql/src/StorageBackend.ts @@ -6,7 +6,7 @@ */ import { Context, Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import type { SqlDialect, StorageAdapter } from "@triplex-build/triplex/internal"; import type { DatabaseId } from "@triplex-build/triplex"; diff --git a/packages/sql/src/migrations.ts b/packages/sql/src/migrations.ts index 8c18233..3eb9226 100644 --- a/packages/sql/src/migrations.ts +++ b/packages/sql/src/migrations.ts @@ -1,5 +1,5 @@ import { Effect } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { MigrationError } from "@triplex-build/triplex/internal"; import { TRIPLES_TABLE_DDL, diff --git a/packages/sqlite/src/SqliteAdapter.ts b/packages/sqlite/src/SqliteAdapter.ts index 1a018d8..2997363 100644 --- a/packages/sqlite/src/SqliteAdapter.ts +++ b/packages/sqlite/src/SqliteAdapter.ts @@ -7,7 +7,7 @@ */ import { Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { StorageAdapter, type StorageAdapterService, diff --git a/packages/sqlite/src/SqliteBackend.ts b/packages/sqlite/src/SqliteBackend.ts index 01c3304..2657d3b 100644 --- a/packages/sqlite/src/SqliteBackend.ts +++ b/packages/sqlite/src/SqliteBackend.ts @@ -32,7 +32,7 @@ export interface SqliteBackendConfig { const getDataDir = (config?: SqliteBackendConfig) => config?.dataDir ? Effect.succeed(config.dataDir) - : Config.string("DATA_DIR").pipe(Config.withDefault("./data")); + : Config.String("DATA_DIR").pipe(Config.withDefault("./data")); const databaseDbPath = (dataDir: string, database: DatabaseId): string => `${dataDir}/${database}.db`; diff --git a/packages/sqlite/src/SqliteLayer.ts b/packages/sqlite/src/SqliteLayer.ts index 00f778c..f7881cb 100644 --- a/packages/sqlite/src/SqliteLayer.ts +++ b/packages/sqlite/src/SqliteLayer.ts @@ -1,5 +1,5 @@ import { Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { SqliteClient } from "@effect/sql-sqlite-node"; import { runMigrations } from "@triplex-build/triplex-sql"; diff --git a/packages/sqlite/src/SqliteTriples.ts b/packages/sqlite/src/SqliteTriples.ts index d5e07dd..da95015 100644 --- a/packages/sqlite/src/SqliteTriples.ts +++ b/packages/sqlite/src/SqliteTriples.ts @@ -14,7 +14,7 @@ */ import { Layer } from "effect"; -import type { SqlClient } from "effect/unstable/sql"; +import type { SqlClient } from "effect/sql"; import { TriplesLive, CurrentDialect, diff --git a/packages/sqlite/test/migrations.test.ts b/packages/sqlite/test/migrations.test.ts index e050460..b42c40e 100644 --- a/packages/sqlite/test/migrations.test.ts +++ b/packages/sqlite/test/migrations.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; import { Effect } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { migrations, runMigrations } from "@triplex-build/triplex-sql"; import { makeSqliteLayerUnmigrated } from "../src/SqliteLayer.js"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72b89c6..dc79ac5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,29 +10,35 @@ catalogs: specifier: 3.0.1 version: 3.0.1 '@cloudflare/vitest-plugin': - specifier: 1.1.4 - version: 1.1.4 + specifier: 1.4.0 + version: 1.4.0 '@cloudflare/workers-types': - specifier: 5.20260904.1 - version: 5.20260904.1 + specifier: 5.20261006.1 + version: 5.20261006.1 + '@effect/platform-browser': + specifier: 4.0.3 + version: 4.0.3 '@effect/platform-node': - specifier: 4.0.0-rc.112 - version: 4.0.0-rc.112 + specifier: 4.0.3 + version: 4.0.3 + '@effect/platform-node-shared': + specifier: 4.0.3 + version: 4.0.3 '@effect/sql-pg': - specifier: 4.0.0-rc.112 - version: 4.0.0-rc.112 + specifier: 4.0.3 + version: 4.0.3 '@effect/sql-sqlite-node': - specifier: 4.0.0-rc.112 - version: 4.0.0-rc.112 + specifier: 4.0.3 + version: 4.0.3 '@effect/vitest': - specifier: 4.0.0-rc.112 - version: 4.0.0-rc.112 + specifier: 4.0.3 + version: 4.0.3 '@foldkit/ui': - specifier: 0.157.0 - version: 0.157.0 + specifier: 0.168.0 + version: 0.168.0 '@foldkit/vite-plugin': - specifier: 0.20.1 - version: 0.20.1 + specifier: 0.27.1 + version: 0.27.1 '@fontsource-variable/ibm-plex-sans': specifier: 5.3.0 version: 5.3.0 @@ -52,14 +58,14 @@ catalogs: specifier: 25.9.1 version: 25.9.1 alchemy: - specifier: 2.0.0-beta.76 - version: 2.0.0-beta.76 + specifier: 2.0.0-beta.80 + version: 2.0.0-beta.80 effect: - specifier: 4.0.0-rc.112 - version: 4.0.0-rc.112 + specifier: 4.0.3 + version: 4.0.3 foldkit: - specifier: 0.157.0 - version: 0.157.0 + specifier: 0.168.0 + version: 0.168.0 foundationdb: specifier: 2.0.1 version: 2.0.1 @@ -97,14 +103,15 @@ catalogs: specifier: 2.0.0-alpha.18 version: 2.0.0-alpha.18 vitest: - specifier: 4.1.11 - version: 4.1.11 + specifier: 5.0.4 + version: 5.0.4 vue: specifier: 3.5.40 version: 3.5.40 overrides: - '@effect/platform-node-shared': 4.0.0-rc.112 + '@foldkit/vite-plugin@0.27.1>@effect/platform-node': 4.0.3 + '@foldkit/vite-plugin@0.27.1>@effect/platform-node-shared': 4.0.3 better-sqlite3: 12.10.0 importers: @@ -114,12 +121,15 @@ importers: '@changesets/cli': specifier: 'catalog:' version: 3.0.1 + '@effect/platform-browser': + specifier: 'catalog:' + version: 4.0.3(effect@4.0.3) '@effect/platform-node': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1) + version: 4.0.3(effect@4.0.3)(redis@6.2.1) '@foldkit/ui': specifier: 'catalog:' - version: 0.157.0(effect@4.0.0-rc.112)(foldkit@0.157.0(effect@4.0.0-rc.112)) + version: 0.168.0(effect@4.0.3)(foldkit@0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3)) '@fontsource-variable/ibm-plex-sans': specifier: 'catalog:' version: 5.3.0 @@ -131,19 +141,19 @@ importers: version: 1.63.0 '@tailwindcss/vite': specifier: 'catalog:' - version: 4.3.3(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 4.3.3(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) '@types/node': specifier: 'catalog:' version: 25.9.1 alchemy: specifier: 'catalog:' - version: 2.0.0-beta.76(@effect/platform-node@4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1))(@effect/sql-pg@4.0.0-rc.112(effect@4.0.0-rc.112))(@types/node@25.9.1)(effect@4.0.0-rc.112)(pg@8.23.0)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)))(ws@8.21.3) + version: 2.0.0-beta.80(@effect/platform-node@4.0.3(effect@4.0.3)(redis@6.2.1))(@effect/sql-pg@4.0.3(effect@4.0.3))(@effect/vitest@4.0.3(effect@4.0.3)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))))(@types/node@25.9.1)(effect@4.0.3)(hono@4.11.4)(pg@8.23.0)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(ws@8.22.0) effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 foldkit: specifier: 'catalog:' - version: 0.157.0(effect@4.0.0-rc.112) + version: 0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3) oxfmt: specifier: 'catalog:' version: 0.44.0 @@ -167,10 +177,10 @@ importers: version: 6.0.2 vitepress: specifier: 'catalog:' - version: 2.0.0-alpha.18(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(postcss@8.5.28)(tsx@4.19.0)(typescript@6.0.2)(yaml@2.9.0) + version: 2.0.0-alpha.18(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(postcss@8.5.28)(tsx@4.19.0)(typescript@6.0.2)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) vue: specifier: 'catalog:' version: 3.5.40(typescript@6.0.2) @@ -182,7 +192,7 @@ importers: version: link:../../packages/core effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 devDependencies: '@types/node': specifier: 'catalog:' @@ -201,7 +211,7 @@ importers: version: link:../../packages/core effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 devDependencies: '@types/node': specifier: 'catalog:' @@ -220,7 +230,7 @@ importers: version: link:../../packages/core effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 devDependencies: '@types/node': specifier: 'catalog:' @@ -236,7 +246,7 @@ importers: dependencies: '@effect/platform-node': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1) + version: 4.0.3(effect@4.0.3)(redis@6.2.1) '@triplex-build/triplex': specifier: workspace:^ version: link:../../packages/core @@ -248,7 +258,7 @@ importers: version: link:../../packages/sqlite effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 devDependencies: '@types/node': specifier: 'catalog:' @@ -261,7 +271,7 @@ importers: version: 4.19.0 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) examples/tenant-host-cloudflare: dependencies: @@ -276,20 +286,20 @@ importers: version: link:../../packages/host effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 devDependencies: '@cloudflare/vitest-plugin': specifier: 'catalog:' - version: 1.1.4(@cloudflare/workers-types@5.20260904.1)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) + version: 1.4.0(@cloudflare/workers-types@5.20261006.1)(@types/node@25.9.1)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) '@cloudflare/workers-types': specifier: 'catalog:' - version: 5.20260904.1 + version: 5.20261006.1 '@types/node': specifier: 'catalog:' version: 25.9.1 alchemy: specifier: 'catalog:' - version: 2.0.0-beta.76(@effect/platform-node@4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1))(@effect/sql-pg@4.0.0-rc.112(effect@4.0.0-rc.112))(@types/node@25.9.1)(effect@4.0.0-rc.112)(pg@8.23.0)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)))(ws@8.21.3) + version: 2.0.0-beta.80(@effect/platform-node@4.0.3(effect@4.0.3)(redis@6.2.1))(@effect/sql-pg@4.0.3(effect@4.0.3))(@effect/vitest@4.0.3(effect@4.0.3)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))))(@types/node@25.9.1)(effect@4.0.3)(hono@4.11.4)(pg@8.23.0)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(ws@8.22.0) tsdown: specifier: 'catalog:' version: 0.21.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.11.3)(typescript@6.0.2) @@ -298,16 +308,16 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/cli: dependencies: '@effect/platform-node': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1) + version: 4.0.3(effect@4.0.3)(redis@6.2.1) '@effect/platform-node-shared': - specifier: 4.0.0-rc.112 - version: 4.0.0-rc.112(effect@4.0.0-rc.112) + specifier: 'catalog:' + version: 4.0.3(effect@4.0.3) '@triplex-build/triplex': specifier: workspace:^ version: link:../core @@ -326,13 +336,13 @@ importers: version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 tsx: specifier: 'catalog:' version: 4.19.0 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/cloudflare: dependencies: @@ -345,7 +355,7 @@ importers: devDependencies: '@cloudflare/vitest-plugin': specifier: 'catalog:' - version: 1.1.4(@cloudflare/workers-types@5.20260904.1)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) + version: 1.4.0(@cloudflare/workers-types@5.20261012.1)(@types/node@25.9.1)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) '@triplex-build/triplex-testkit': specifier: workspace:^ version: link:../testkit @@ -360,10 +370,10 @@ importers: version: 12.10.0 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/core: dependencies: @@ -373,25 +383,28 @@ importers: devDependencies: '@effect/vitest': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112)(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) + version: 4.0.3(effect@4.0.3)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) '@types/node': specifier: 'catalog:' version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/dashboard: dependencies: + '@effect/platform-browser': + specifier: 'catalog:' + version: 4.0.3(effect@4.0.3) '@effect/platform-node': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1) + version: 4.0.3(effect@4.0.3)(redis@6.2.1) '@foldkit/ui': specifier: 'catalog:' - version: 0.157.0(effect@4.0.0-rc.112)(foldkit@0.157.0(effect@4.0.0-rc.112)) + version: 0.168.0(effect@4.0.3)(foldkit@0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3)) '@fontsource-variable/ibm-plex-sans': specifier: 'catalog:' version: 5.3.0 @@ -409,17 +422,17 @@ importers: version: link:../sqlite effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 foldkit: specifier: 'catalog:' - version: 0.157.0(effect@4.0.0-rc.112) + version: 0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3) devDependencies: '@foldkit/vite-plugin': specifier: 'catalog:' - version: 0.20.1(effect@4.0.0-rc.112)(foldkit@0.157.0(effect@4.0.0-rc.112))(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 0.27.1(effect@4.0.3)(foldkit@0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3))(redis@6.2.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) '@tailwindcss/vite': specifier: 'catalog:' - version: 4.3.3(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 4.3.3(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) '@types/node': specifier: 'catalog:' version: 25.9.1 @@ -434,10 +447,10 @@ importers: version: 6.0.2 vite: specifier: 'catalog:' - version: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + version: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/foundationdb: dependencies: @@ -450,19 +463,19 @@ importers: devDependencies: '@effect/vitest': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112)(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) + version: 4.0.3(effect@4.0.3)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) '@types/node': specifier: 'catalog:' version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 testcontainers: specifier: 'catalog:' version: 11.14.0 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/host: dependencies: @@ -478,10 +491,10 @@ importers: version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/http: dependencies: @@ -497,16 +510,16 @@ importers: version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/postgres: dependencies: '@effect/sql-pg': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112) + version: 4.0.3(effect@4.0.3) '@triplex-build/triplex': specifier: workspace:^ version: link:../core @@ -522,13 +535,13 @@ importers: version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 testcontainers: specifier: 'catalog:' version: 11.14.0 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/sql: dependencies: @@ -541,16 +554,16 @@ importers: version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/sqlite: dependencies: '@effect/sql-sqlite-node': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112) + version: 4.0.3(effect@4.0.3) '@triplex-build/triplex': specifier: workspace:^ version: link:../core @@ -566,10 +579,10 @@ importers: version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages/testkit: dependencies: @@ -582,16 +595,16 @@ importers: version: 25.9.1 effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) test/integration: dependencies: '@effect/sql-sqlite-node': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112) + version: 4.0.3(effect@4.0.3) '@triplex-build/triplex': specifier: workspace:^ version: link:../../packages/core @@ -612,26 +625,26 @@ importers: version: link:../../packages/testkit effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 devDependencies: '@types/node': specifier: 'catalog:' version: 25.9.1 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) test/stress: dependencies: '@effect/platform-node': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1) + version: 4.0.3(effect@4.0.3)(redis@6.2.1) '@effect/sql-pg': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112) + version: 4.0.3(effect@4.0.3) '@effect/sql-sqlite-node': specifier: 'catalog:' - version: 4.0.0-rc.112(effect@4.0.0-rc.112) + version: 4.0.3(effect@4.0.3) '@triplex-build/triplex': specifier: workspace:^ version: link:../../packages/core @@ -649,7 +662,7 @@ importers: version: link:../../packages/sqlite effect: specifier: 'catalog:' - version: 4.0.0-rc.112 + version: 4.0.3 devDependencies: '@types/node': specifier: 'catalog:' @@ -662,21 +675,17 @@ importers: version: 4.19.0 vitest: specifier: 'catalog:' - version: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + version: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) packages: - '@alcalzone/ansi-tokenize@0.2.5': - resolution: {integrity: sha512-3NX/MpTdroi0aKz134A6RC2Gb2iXVECN4QaAXnvCIxxIm3C3AVB1mkUe8NaaiyvOpDfsrqWhYtj+Q6a62RrTsw==} - engines: {node: '>=18'} - - '@alchemy.run/cloudflare-runtime@2.0.0-beta.76': - resolution: {integrity: sha512-rH5BFh0Xq7aExpSpITyQbC+Jqfc9XgwJXidHVHTi1tNRC6/KAWg4tOzBfwiFIxljFLLYcApzlYFvLa/fTYcEjw==} + '@alchemy.run/cloudflare-runtime@2.0.0-beta.80': + resolution: {integrity: sha512-vrMDVAQ+LlzFGkgfIbi/65iwskdSxxWYhJX03sFL72mvkGxvb8RQSKrbxLGHhMz0QSZh796dOff1z9zOwxsIbA==} peerDependencies: - '@distilled.cloud/cloudflare': 1.0.0-rc.8 - '@effect/platform-bun': '>=4.0.0-rc.112 || >=4.0.0' - '@effect/platform-node': '>=4.0.0-rc.112 || >=4.0.0' - effect: '>=4.0.0-rc.112 || >=4.0.0' + '@distilled.cloud/cloudflare': 1.0.0-rc.13 + '@effect/platform-bun': ^4.0.0 + '@effect/platform-node': ^4.0.0 + effect: ^4.0.0 rolldown: 1.2.5 vite: ^7.0.0 || ^8.0.0 peerDependenciesMeta: @@ -689,88 +698,25 @@ packages: vite: optional: true - '@alchemy.run/floci@2.0.0-beta.76': - resolution: {integrity: sha512-UIKd+Hki3t5seDpLfyRBwWiNukKlbAqDCTOYBD+n49b/WQIgEWHhYXzGtnwC7OY/b3KAv5p7gsdn8IpPnRXR8g==} + '@alchemy.run/floci@2.0.0-beta.80': + resolution: {integrity: sha512-gtUXFitVY9pSQQYCDtSVyjfd5YOKY3Wleg3WCG5yWno7/l7xBo4kfOMbM63tzWnmka9LewVSITbMfwnC4D/73A==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' - - '@alchemy.run/node-utils@2.0.0-beta.76': - resolution: {integrity: sha512-KUAlGdoeWeMEToUP1V3I+mEf6FVzUjU+6Tc8savNvMsXN9t3uwZVqD1FeMzTMzMTJJijjxVljQTCtyoeE9W43w==} - - '@aws-crypto/crc32@5.2.0': - resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} - engines: {node: '>=16.0.0'} - - '@aws-crypto/util@5.2.0': - resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - - '@aws-sdk/core@3.977.9': - resolution: {integrity: sha512-reqPFEQrZxDZpeGj4PFMepBeR5LGYHRqq/L0motTzgFkCRBA4rFdaVXDSLYyGHhxVz7sT2PDnPN9CluGSfgyJA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-cognito-identity@3.972.69': - resolution: {integrity: sha512-vpsh9VWmQVC/nsdzf72F2yUMBOFT1aq+hoLseYV03zjVXVHkjqSNJskFRKPFxc3MRFrHNbSSmOwsbYE15u9ecw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-env@3.972.70': - resolution: {integrity: sha512-H404B7dJl2mCrBqahDEYsanB0xhdDp6tXnXcTUnXmmpy2Q3J0Ho0bUajZ2jr/RdwzCyS59Gi8xXIFwPLGBl6Uw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-http@3.972.72': - resolution: {integrity: sha512-X98zYOrVOeuosCX+6ktf29FC2N2GHPLia7qv6mzPzTc+RPAuHWCDS++Z6JK7eGYqb/v6uaW7bAXaOvDBfol+0w==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-ini@3.973.15': - resolution: {integrity: sha512-Rykg6s5ceBuynMOGWgoowO4N+27JfnqXAnVaSunZl0hOO1XodSrxGNz6sCEbnmS0lAfQZDKyb3fbr46gSuv6Sg==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-login@3.972.77': - resolution: {integrity: sha512-Jb59xfEISoN5mmbnA+HYqdtrSX3CgCtJoof+V5D8/TgUI56W63GEEd5Y58WijU3Ou6+WEgaLD1feVzaRXV5IDQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-node@3.972.82': - resolution: {integrity: sha512-znDkEOGXB8W3kG1LJUKP3foBZY/9qLM0eil/DxWXSp37XsdsRLQHE/d/OaCGGVgKpA6znR38h/+INk8do1FjiA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-process@3.972.70': - resolution: {integrity: sha512-2ry03fGRJr4sV3jI+ocjj5JqALnFD6ymM5KiNCDZMvq8bX2GSbE0vji4aM43TVCl2nXqqLRZaUxdq/KeWRAY4Q==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-sso@3.973.14': - resolution: {integrity: sha512-jkhg/8ocAAoc0RFyLMhCw+/zZh7gystQgd4F4hznNa8P4Cc501PQmxd+jGLiMHodPJ+7Zv/3znM62gZojyasmA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-provider-web-identity@3.972.76': - resolution: {integrity: sha512-d3AGyVu759PGr35mEB2s22xxlNEA5rpdxtSPJthfPFJvoQ8dt357iVPECqWfUxXp1toJAvKmbtcIYVGigaGsCA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-providers@3.1127.0': - resolution: {integrity: sha512-zyoeKOan26lklS12+Iwj1aX8EidoAheQaVRmltee0EAC3eydTy+AIXtLOsVicYSOVsDjPJMiVykT/7n47ARpag==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/nested-clients@3.997.44': - resolution: {integrity: sha512-NhEgryjlBF9w38ZXqGymQV28IhkYa1mKhlbYnqIis57AYwWGVYfUPgg/qC2rLRqOUfblxx++irvju10kVTa8Vw==} - engines: {node: '>=20.0.0'} + effect: ^4.0.0 - '@aws-sdk/signature-v4-multi-region@3.996.46': - resolution: {integrity: sha512-L+2xZTye/2T96f3lwCws0Zw6GG2JHZW9e8FpVgGBeeExSKyeoZ6CWRpBml/7DNiK/O26jrgPM9F+Ay8VkgzUWQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/token-providers@3.1116.0': - resolution: {integrity: sha512-ygIivKqh8aHzNkucOCXHyIBgBpLPfrSI0mCqXF+vLBsPTUKqj0VSqAY0GFPe7lQl4HntjOcQ+KSyS7oUV2C54Q==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/types@3.974.5': - resolution: {integrity: sha512-LkwLL2BLbC6wNNm4JaH9mbEqBMdOZCct6VAYqhdN4U1xrWM+fUJQEfbHwQgDypapOWTRtlk25akb5afM0P8CIQ==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/xml-builder@3.972.40': - resolution: {integrity: sha512-wlFmCIGUlwF4zx/kncw+bmxTQh1HeSJq4mYV/V5cZUSJadDP3kXvGW8Rn21cimj/7y9ju+47oYWXi97vF7czaA==} - engines: {node: '>=20.0.0'} + '@alchemy.run/node-utils@2.0.0-beta.80': + resolution: {integrity: sha512-uOhVDQZTjwh1AU4mrk0wB5rQaziTwSrVMfqwFP8wALfU//nveu4goOWZimHtqytXiybENh+iEbALH25EFAkc7A==} - '@aws/lambda-invoke-store@0.3.0': - resolution: {integrity: sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==} - engines: {node: '>=18.0.0'} + '@alchemy.run/sigil@0.1.0-alpha.1': + resolution: {integrity: sha512-RtHELG2w+GluVewRsuKm66idtPzC+4STptMr/61X1Vy5uBkDzcCzjzV8G6jUa4iBv6Il0hHV7UL6wvv//9nD/Q==} + engines: {node: '>=22'} + peerDependencies: + '@types/react': '>=19.2.0' + react-devtools-core: '>=6.1.2' + peerDependenciesMeta: + '@types/react': + optional: true + react-devtools-core: + optional: true '@babel/generator@8.0.0-rc.3': resolution: {integrity: sha512-em37/13/nR320G4jab/nIIHZgc2Wz2y/D39lxnTyxB4/D/omPQncl/lSdlnJY1OhQcRGugTSIF2l/69o31C9dA==} @@ -920,124 +866,169 @@ packages: workerd: optional: true - '@cloudflare/vitest-plugin@1.1.4': - resolution: {integrity: sha512-fzZFMo8NUv1S2lMPDgZYq1jg+0FwnrkF28iYzjFuN/Z1c0Fsnp6xrjyxapLaqrTqjDO66fvKTgbHL0yV1tZnPQ==} + '@cloudflare/unenv-preset@2.16.2': + resolution: {integrity: sha512-JBP1+Z7ZSNG/d4mRP+y8VC5dka3tZVMLEZRvS+rzQ4DGV1EoxRFQckcJTTkXbHSQiTj0DtNI01Zwb/V2fX0mvQ==} peerDependencies: - '@vitest/runner': ^4.1.0 - '@vitest/snapshot': ^4.1.0 - vitest: ^4.1.0 + unenv: 2.0.0-rc.24 + workerd: '>1.20260305.0 <2.0.0-0' + peerDependenciesMeta: + workerd: + optional: true + + '@cloudflare/vitest-plugin@1.4.0': + resolution: {integrity: sha512-SgIhyhpVH+2MVSJxidG8gosqrpzF25IwKevQhPykwulTgAFe4s0Nkj71pNzqCkwV2+A4NKkHJP2ReyyRsoIxsg==} + peerDependencies: + vitest: ^4.1.0 || ^5.0.0 - '@cloudflare/workerd-darwin-64@1.20260704.1': - resolution: {integrity: sha512-XO+vvdhhTNZSsIWCkZ+JaE/JrFUmQAB0H0y/sVkAf32xa2TYBRvFUMwjSqf6WxtlxcKPQvmbLfpO/UQ0l/q4eQ==} + '@cloudflare/workerd-darwin-64@1.20260918.1': + resolution: {integrity: sha512-H5Em6Wd0jjxaloYh2rp+WLBl2eWbkk7nSP1svGt6K1RSv/rNVqmKdpjZPJTBSavOmeYGa88qvtOWwS+33OHTqQ==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-64@1.20260903.1': - resolution: {integrity: sha512-FG+4mGxAXhKiL/1temH42alevIkumtYXNidhTa//3yULpzux6APw5UNVocI/vCQ1yG1YOEZRfbVy8lyuipM9MQ==} + '@cloudflare/workerd-darwin-64@1.20261006.1': + resolution: {integrity: sha512-lCX6avJO2It9AyDEYitjmOtJRVp/xmaW0TziyoLAnfxlzozyyRbSFfIIMMCiDx/sTP1++E4VLbV+7BHSD33f0Q==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260704.1': - resolution: {integrity: sha512-6iI7nbOOO8PzEQ6UZVBZB/hv95m8jl0yvyjMuWrF5cJbiLb5zPw3KnpqvGi+aeOs2ZmUkc81i1FWKfXwLXzPRA==} + '@cloudflare/workerd-darwin-arm64@1.20260918.1': + resolution: {integrity: sha512-CR9JRZEQo93fNgBVF4Df2H2/VYO4n7rxSseSwCVv3bJQEb0huADUSCj2FK4ipxar8ToOEB4wawyw0vJo5U/rQQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260903.1': - resolution: {integrity: sha512-o241VefnjG8eG+kGap5CjgV4zOT5UaAmS3OR1VZCpNj7vkXGxvp9KftKvtQgcCsIqJKaKx+7Xd7xq0L1DjkfPQ==} + '@cloudflare/workerd-darwin-arm64@1.20261006.1': + resolution: {integrity: sha512-PyFGjOaldtppnLuKsdkoYWXfLVpDjuf8u+uoykX+1Xvxo2EPmCVViq0iDKm+U7c7PRno85ehS3/MPVXyk2HwHw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260704.1': - resolution: {integrity: sha512-3mT0YHtxT7eLjghu3hKSJDUQoz+AYv8FM43nLPYhM0YiHOxr8OlmvnCb2Lp7v/U3bwd3Gnx7WEqjSppR583mGg==} + '@cloudflare/workerd-linux-64@1.20260918.1': + resolution: {integrity: sha512-UQ2nnY3qpXLzQ80frmWO+8HvtqyWaQILe8QYZwpemdjT+sqwCz4Dz+0/WVkFco0v/04kIIqikVeLTY/7gEhmkw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-64@1.20260903.1': - resolution: {integrity: sha512-/VEvvtQ/XKf6HlBbg6FbvpwcpfYUcx6Fv6RkASY8DyEmUyuJ8rc7Qxil83ClRFoBzz/GY0BV94UZ6F+wers/hg==} + '@cloudflare/workerd-linux-64@1.20261006.1': + resolution: {integrity: sha512-Ntf9S8eesmVufdjaT2kzWlz6Ng9XGYTc6cHQVRKAg59lFufwsIabGeMT6U4KkrpEeSIxgHq8aPtuLbZXE19tCA==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260704.1': - resolution: {integrity: sha512-Opo7cPTPg4x0WwK+eZSDszCyFLKQkOGNCWxF005HRTJ5SJH8h0K9KyrC1k4LBwx3haXSVi+E1eGqo1gZ1Hmhkg==} + '@cloudflare/workerd-linux-arm64@1.20260918.1': + resolution: {integrity: sha512-4rib51MaLNWweUIUxM/Xj558M5QmyZoBSf0ffv+lYah5VTrvwnez3XGxX72pElnBKHROvAPOi5msQ5Ts8JSI0A==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260903.1': - resolution: {integrity: sha512-OWhihGC6KoTXF4u2C1AonfpgXeM4/7p/1IXuALqXESmFUpLLP5gZhRzjSk/gWW+mrCZDfSrvnjifl+lRqselbA==} + '@cloudflare/workerd-linux-arm64@1.20261006.1': + resolution: {integrity: sha512-JyeDBymVWw5tVRebSsVE8ojDYxd6UlZrAseHU8G+NpIyd5wF61tXlF/axLeCUqu0pOhBFHb8I5QKi0jwrCK41Q==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260704.1': - resolution: {integrity: sha512-a97Ecnzhy04x3U052VKPCNp863F7Wf00WY7Ga5P0SbtYvaO1PDzylsHrvFMPKeiDFcOwqiredawmJ+v6bhIgeQ==} + '@cloudflare/workerd-windows-64@1.20260918.1': + resolution: {integrity: sha512-sATrMx5ShYYgmgUGrcTmvsFSJBFuN95NEkX3xwb1qk8w1A6h5N11sea7yN2IeibwPyPmXKjWNjXOno0hZAM71Q==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workerd-windows-64@1.20260903.1': - resolution: {integrity: sha512-soPMF9/aMHlHKK7M0vq5HrRRicPbnZO1F6ZZ7JWN8EltxWJU5L7CEq7CxjO878DzyPx7gYvqBFy3SVgdZKZjMQ==} + '@cloudflare/workerd-windows-64@1.20261006.1': + resolution: {integrity: sha512-nWP0URNqOBN9fa/gZ7eh/w051DwjOXN8j4lDZDYVXyQPsux6sV3DfyYZT+CjR/rt9nKBSmJT9QE9/bWT18+84w==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@5.20260904.1': - resolution: {integrity: sha512-SbulPvrdb4j5iISDr81Iw+YpNCG4Bb6xRqV3arkgn/Ib6STMaoG63lhPnuWqmZdakOn0qS1OUudBMdxtBFx0Jg==} + '@cloudflare/workers-types@5.20261006.1': + resolution: {integrity: sha512-5OclwQK1d8f5LCPvOlyldC3ryKLUa4nLXegcgPZeUxAPudczQ9xujJDdpS2Tenp7JqbBLW3OgGciHJmuc7QShg==} + + '@cloudflare/workers-types@5.20261012.1': + resolution: {integrity: sha512-5Y0NrKXG9CZaNUZ6Dt3TLRE4UQe2/DGuxIhTEVYHUl0jAlv1TpQtI59YBAszRpSaZAMzbM8nqGc1n9Z2q4TVyA==} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@distilled.cloud/aws@1.0.0-rc.8': - resolution: {integrity: sha512-eL4tRACU4TSykk/6+ItwUTZs93r3tRlrBn36ohqaUxqYYOfmssYlt/SLCzos4nlLgCxb+1T6BAstgYC848v1EQ==} + '@distilled.cloud/acme@1.0.0-rc.13': + resolution: {integrity: sha512-3rmzH125jQxk0zpCvXGNEybSaqpAolyCX+8LWDDrXf+wIKs67GflkJyQLjOOh0lKARe29hdUZGgqEbbvpp0LNA==} + peerDependencies: + effect: ^4.0.0 + + '@distilled.cloud/aws@1.0.0-rc.13': + resolution: {integrity: sha512-6ZGcp0LkniB0I2l8Gr7vKRQgTZTch0/07iuvuMZv9Nu+rWwNuZG9VHTUdlIoarWgCHFUNN8yvSYBGOjaeN99tQ==} + peerDependencies: + effect: ^4.0.0 + + '@distilled.cloud/axiom@1.0.0-rc.13': + resolution: {integrity: sha512-aRoJtvfXgWi5dtfjuJvDwnArRKvv2MPYHCxYeZcxZbqe62IaQA5yu/khft7TJvxeDyJoSDnVXZu3RyJjNmBA4g==} + peerDependencies: + effect: ^4.0.0 + + '@distilled.cloud/cloudflare@1.0.0-rc.13': + resolution: {integrity: sha512-Py5FoA6azyYExDb91VaeC+9x+ravOBSRhXeUmpcQjCtgqmOdiXgc2YZGMMPI68DF+kMuHRVIrR+2uRZNDOhYjw==} + peerDependencies: + effect: ^4.0.0 + + '@distilled.cloud/core@1.0.0-rc.13': + resolution: {integrity: sha512-RYyrxW+F5zrTuu1UWV/JoycholBCIkXIusYJdDniDwCdmbjdKGl07KlkkeeY774uBawNGf+pt1ESNGeLVnNHsg==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 - '@distilled.cloud/axiom@1.0.0-rc.8': - resolution: {integrity: sha512-lczeM0FPuF1mLZu7V8vcj8Klm9b1VSo4A75PP2a4km/cjphDl9LKamUwrSGLEY9denmqd1nn4+g2Svw1UmGpEw==} + '@distilled.cloud/doppler@1.0.0-rc.13': + resolution: {integrity: sha512-GgOEUCc4Bx0C+lYNfZ4OqaA3ULvqDUQTJC8gobSh1L0jfrWclv/kRcSr43v4IXyStld+saUvDfDZgeGzlE74OA==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 - '@distilled.cloud/cloudflare@1.0.0-rc.8': - resolution: {integrity: sha512-nhEyGOaupi/JmT0PS1DEMH5Ebwu004pvQv3Emzt9MJz3mF3LTdiuAnxP86rf3jsFtfa826TDokKArVMq55OKRA==} + '@distilled.cloud/fly-io@1.0.0-rc.13': + resolution: {integrity: sha512-Ipp+9nvs+PzqwDPhZq2/BEHNUeWzXKhrvjfT/eBLFHo/QpH0HgdMH8MSQe6/LGszZoormwA6ZrTv2wxaFO7ZiQ==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 - '@distilled.cloud/core@1.0.0-rc.8': - resolution: {integrity: sha512-baZMSaBh9kEyAqdhO+UbkvVDK+wqyI8d0UW0paSp5CqVResOl7ydHU4tCbBUOLoxOrqLRWfmImKrhW9SY1R8qw==} + '@distilled.cloud/gcp@1.0.0-rc.13': + resolution: {integrity: sha512-un8jqil9ejt96oN+OfEDUsbrEOpC6Ut4B/73DqKDttvt0Btal1OeBNTTQsftVCpeEzXAvkYKGRIT2AeEu1J5jA==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 - '@distilled.cloud/fly-io@1.0.0-rc.8': - resolution: {integrity: sha512-0HqVLIpBxmuvrIrnmziz8iK39F5cBxkHlz43WR2s+tFidbPlCzmnci6gxixxiwMBCzcmiRmv57xQxuQzgfDQMw==} + '@distilled.cloud/hetzner@1.0.0-rc.13': + resolution: {integrity: sha512-FvqofgMypNkeZbnjGjWMZqvqGd9GxcMzdbi/6JrbcPaHMJG+CCBGt/mAa7mLlEovzwVaGCsBnOXJ6rP5pZjB4Q==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 - '@distilled.cloud/hetzner@1.0.0-rc.8': - resolution: {integrity: sha512-CAPj912qUQXMetyFvJEc7PJnSG4DR6RBvGXCOfQcJVgGTspt/IdT3iIeIInTUf6rgFRsqoGiRfS4ywTqWoqLFA==} + '@distilled.cloud/infisical@1.0.0-rc.13': + resolution: {integrity: sha512-Zz8ksA/Y8UUUnWag2UBxB5WYA6wLqOS78ugWJ3cOr9Ot+4bC0NJYWanq35uFInozLXWhun84USU2wOI+mdwQUQ==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 - '@distilled.cloud/neon@1.0.0-rc.8': - resolution: {integrity: sha512-xIgxgoDyIs/G5lW8T2r4oyHpOcRzBO1wu7p46lU3ppuJ2rlJR4pmP9dF7KxStAVglr9yK3wmmmnraLoCAtd8Sg==} + '@distilled.cloud/neon@1.0.0-rc.13': + resolution: {integrity: sha512-2JvbBFj1kBfkDVPnWcJZ7TJ1cJwWBtScAY7SNJ2qNBUuAK1Wf2kjJXU0/j16eCJ48BQigPArQFWL51wVu/EUQQ==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 - '@distilled.cloud/planetscale@1.0.0-rc.8': - resolution: {integrity: sha512-D0mnkT2Gnk/SKWoz05rkf7+sngH8+5m5ugjQ1GycsFMfTxUVSIVUIHX9yrO5vFrTsMlNsmrMR+7a9R3ZMGCWkA==} + '@distilled.cloud/planetscale@1.0.0-rc.13': + resolution: {integrity: sha512-AM97YGRnDfZdqsxFgQMQ83p7ZlRqxS6/foTTJA5P590UMbbOyrQyFyd33BD0agul8a3ngZde3Oej6v7BN55aWw==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 - '@distilled.cloud/railway@1.0.0-rc.8': - resolution: {integrity: sha512-VW2YdbblVHhYww5JVtOjFlv3jBFl7xlt6/xTfkNxxgXgzJ5GYVlD3gPgBIpGy9Pcnv9rVRA6CL7QZeYeu47c9Q==} + '@distilled.cloud/prisma@1.0.0-rc.13': + resolution: {integrity: sha512-+UmHSp9JV8XQl5t5tTdQBY+dWZ9abrEoc7leYEctA0Ar1TrKZEl2EaeQDoumrg4RyGaacRlirEbxaDFI4SOPtQ==} peerDependencies: - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 + + '@distilled.cloud/railway@1.0.0-rc.13': + resolution: {integrity: sha512-yXalRS3GFLo3hWM0HXptqudi23NVCM4FRD20db2/Ob9FFcNrMJik1fopv+74HOiV+BuxfkCP609KsEK6LVdB/g==} + peerDependencies: + effect: ^4.0.0 + + '@distilled.cloud/stripe@1.0.0-rc.13': + resolution: {integrity: sha512-jLTJ1mg4U39lHZb9EGYBJLR91yB3LSG6fVxix+r1BbqaTovWzE+NuJ7fu9fRSeax9jRAqsGLLxe9IxJbOtwQnQ==} + peerDependencies: + effect: ^4.0.0 + + '@distilled.cloud/zerossl@1.0.0-rc.13': + resolution: {integrity: sha512-dnxhg39lZjpTdZbHCVYPoUC9E2r8eSHbqiYDhSq2EurVPJcc9YRXlxZR1bP1nniSp078XV8GA+aUECt/Z56aQg==} + peerDependencies: + effect: ^4.0.0 '@docsearch/css@4.7.0': resolution: {integrity: sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw==} @@ -1048,44 +1039,49 @@ packages: '@docsearch/sidepanel-js@4.7.0': resolution: {integrity: sha512-A8r34jCU8kcIk2viECEn2msA28ojUF1BLi/3v5OWWc5G2N3jOuuumBXoeYjfr8dA0UxgFSy5R2bt12dnFJQSyA==} - '@effect/platform-node-shared@4.0.0-rc.112': - resolution: {integrity: sha512-ttjz0xKamFN7vL8pNDYVwddJLjZvqKePc05djlz2VcdaKbLsnYbtMnL1rbOfHgEnIUSHGh7FkjaN4DM1Ov81sQ==} + '@effect/platform-browser@4.0.3': + resolution: {integrity: sha512-1heMTrwHkghTN2DWRb+Os+YdeowMFaxTbBqPzmqJDGU8DlBCKPGr+f4BIjWmnANxlnsIlKUqzr3gKqfR1ueicw==} + peerDependencies: + effect: ^4.0.3 + + '@effect/platform-node-shared@4.0.3': + resolution: {integrity: sha512-5srkJfmWklWSgwZwlkMeTXobfNtxuwuTCvY9JWdPXRv/PBXAe5kKSptzRxT778oFFsaE9IMI8X61pvkifT9Eug==} engines: {node: '>=18.0.0'} peerDependencies: - effect: ^4.0.0-rc.112 + effect: ^4.0.3 - '@effect/platform-node@4.0.0-rc.112': - resolution: {integrity: sha512-/BMAcdNGQQskLmI0Zoa95KfTZkr9HV9N4NSxaSrusG6GeW6Ulp9KvZ+Rlaiw8lnOt43CXjFLdfll5/k5rxL4hQ==} + '@effect/platform-node@4.0.3': + resolution: {integrity: sha512-ctvREpC1EzRVsOm0JyIzYHajAQScFaec6Gl+M7TEIpEqdmmx6Ju11Um92EA/CE2KBfY5Fp1QWlqTkK6lOL7tqg==} engines: {node: '>=18.0.0'} peerDependencies: - effect: ^4.0.0-rc.112 + effect: ^4.0.3 redis: '>=5.0.0 <7.0.0' - '@effect/sql-d1@4.0.0-rc.112': - resolution: {integrity: sha512-Wxdr6aU3pBHqhyBiybzbHmEK7qZ2w4iy0IxBgJHe9BLleYzCxObOaBQI9qq/VZSqEvc0IaOBMpbk2zh3dlPNSQ==} + '@effect/sql-d1@4.0.3': + resolution: {integrity: sha512-PPItxp9aAmJTRIfZtyJMuQCB7d1ExFvIRkGWnfQuWZlPxjtYfQT+V2kS9AUqf0OC1/nZnAFwLlFKCDgumLmy6A==} peerDependencies: - effect: ^4.0.0-rc.112 + effect: ^4.0.3 - '@effect/sql-pg@4.0.0-rc.112': - resolution: {integrity: sha512-UYUA3LAGH1Pg88Yau7eTlTLHRrIb/uTdxdPGxVcRdIjjrTzxtA7iKHR4hcmUeq5lQEcGLCopN7E4ffsAKF8vEQ==} + '@effect/sql-pg@4.0.3': + resolution: {integrity: sha512-pHrR3FGUIoqwkn/0X1yB5Gr1HkPMwzDt/9+cFv2e3eLlpVJwkgYUDeL+IRaO9fXTrKGwQw+y3948lv3x1nLOaQ==} peerDependencies: - effect: ^4.0.0-rc.112 + effect: ^4.0.3 - '@effect/sql-sqlite-do@4.0.0-rc.112': - resolution: {integrity: sha512-PewNVasimmhrdxYbNU91O0YlCcalIHOoF0H5XAWXrmzcEQrKM7kVCyb5h0gmJAZjBM4ZgWRvPY0PUOfbNmWchQ==} + '@effect/sql-sqlite-do@4.0.3': + resolution: {integrity: sha512-q3DeEnsmAbD2jQX9g3+U0iij7VFVgzPtSLoOwbB9oegeBkzzBXVDrblAvw2NgEfs0OctkaIkJhiYJROqSafQKA==} peerDependencies: - effect: ^4.0.0-rc.112 + effect: ^4.0.3 - '@effect/sql-sqlite-node@4.0.0-rc.112': - resolution: {integrity: sha512-jGRtbJsn5z7DqsMEPSbXq2Q9mYEvMy1v9DTeziTtDEnDzlxhxfrXkSeupZbYqAP5pukIM1JBa10zfAn6KnHG2Q==} + '@effect/sql-sqlite-node@4.0.3': + resolution: {integrity: sha512-u+b0X/yt8vATwUscXKHdWF75LRMQKBIkx9DsNw8tdgF9xxPOTfx+e30gdwBjd1kY1GmQYkzD7/cP+9mys2b0pg==} peerDependencies: - effect: ^4.0.0-rc.112 + effect: ^4.0.3 - '@effect/vitest@4.0.0-rc.112': - resolution: {integrity: sha512-mEKh/FI64mt8JK1/v9mpOrJYdnp+UFZdRUBMEdZMiKz7klg6NPqVgg/oeAGH6wOOQc2iAPcfc2H9BbAv1KyzMQ==} + '@effect/vitest@4.0.3': + resolution: {integrity: sha512-jsIkpssf0CFuOeycW2sQZkWx0qzlsRv+JIkzd9qQpoFDcHC9JZFSdIjEBAhsdp20pDy4Y/b2vT/ew7wXZxvEig==} peerDependencies: - effect: ^4.0.0-rc.112 - vitest: '>=4.1.0 <5.0.0' + effect: ^4.0.3 + vitest: '>=5.0.0 <6.0.0' '@electric-sql/pglite-socket@0.0.20': resolution: {integrity: sha512-J5nLGsicnD9wJHnno9r+DGxfcZWh+YJMCe0q/aCgtG6XOm9Z7fKeite8IZSNXgZeGltSigM9U/vAWZQWdgcSFg==} @@ -1119,8 +1115,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.28.1': - resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + '@esbuild/aix-ppc64@0.28.2': + resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1131,8 +1127,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.28.1': - resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + '@esbuild/android-arm64@0.28.2': + resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1143,8 +1139,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.28.1': - resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + '@esbuild/android-arm@0.28.2': + resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1155,8 +1151,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.28.1': - resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + '@esbuild/android-x64@0.28.2': + resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1167,8 +1163,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.28.1': - resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} + '@esbuild/darwin-arm64@0.28.2': + resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1179,8 +1175,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.28.1': - resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} + '@esbuild/darwin-x64@0.28.2': + resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1191,8 +1187,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.28.1': - resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} + '@esbuild/freebsd-arm64@0.28.2': + resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1203,8 +1199,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.28.1': - resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} + '@esbuild/freebsd-x64@0.28.2': + resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -1215,8 +1211,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.28.1': - resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} + '@esbuild/linux-arm64@0.28.2': + resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -1227,8 +1223,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.28.1': - resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} + '@esbuild/linux-arm@0.28.2': + resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -1239,8 +1235,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.28.1': - resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} + '@esbuild/linux-ia32@0.28.2': + resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -1251,8 +1247,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.28.1': - resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} + '@esbuild/linux-loong64@0.28.2': + resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -1263,8 +1259,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.28.1': - resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} + '@esbuild/linux-mips64el@0.28.2': + resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -1275,8 +1271,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.28.1': - resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} + '@esbuild/linux-ppc64@0.28.2': + resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -1287,8 +1283,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.28.1': - resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} + '@esbuild/linux-riscv64@0.28.2': + resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -1299,8 +1295,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.28.1': - resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} + '@esbuild/linux-s390x@0.28.2': + resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -1311,14 +1307,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.28.1': - resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} + '@esbuild/linux-x64@0.28.2': + resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.28.1': - resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} + '@esbuild/netbsd-arm64@0.28.2': + resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -1329,8 +1325,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.28.1': - resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} + '@esbuild/netbsd-x64@0.28.2': + resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -1341,8 +1337,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.28.1': - resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} + '@esbuild/openbsd-arm64@0.28.2': + resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -1353,14 +1349,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.28.1': - resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} + '@esbuild/openbsd-x64@0.28.2': + resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.28.1': - resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} + '@esbuild/openharmony-arm64@0.28.2': + resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -1371,8 +1367,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.28.1': - resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} + '@esbuild/sunos-x64@0.28.2': + resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -1383,8 +1379,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.28.1': - resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} + '@esbuild/win32-arm64@0.28.2': + resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -1395,8 +1391,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.28.1': - resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} + '@esbuild/win32-ia32@0.28.2': + resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -1407,8 +1403,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.28.1': - resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} + '@esbuild/win32-x64@0.28.2': + resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1422,20 +1418,20 @@ packages: '@floating-ui/utils@0.2.12': resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==} - '@foldkit/ui@0.157.0': - resolution: {integrity: sha512-fegKyWCYtkR7dz+iBbqmG/OZTy1CaQx2ts4xzL+DCNIBImOU+hWPgV86bLrIn5rBabrif/UrUho1GKFO/ba7nQ==} + '@foldkit/ui@0.168.0': + resolution: {integrity: sha512-PZNtVorDO6O45txndwouI8fOFHYcdZ3OP9amJKIR9gWJ13+rx+HaDRHYVnBHNp7fom/7qPEWd25wAJCpQF5i6w==} engines: {node: '>=18.0.0'} peerDependencies: - effect: 4.0.0-rc.112 - foldkit: '>=0.155.0' + effect: 4.0.0 + foldkit: '>=0.167.0' - '@foldkit/vite-plugin@0.20.1': - resolution: {integrity: sha512-nWUDL0GCWU5CJMkzJhtDRa7s0kDOUqIpufCaIsB5Hb3d6xKIg+F6IuckL7Vbt9dBPaPbpQZW5R1oOlNO76jVlw==} + '@foldkit/vite-plugin@0.27.1': + resolution: {integrity: sha512-sQ8y2v7w21wTwm+NGxboGokbZULmH0kuAg2EV6JH+1rXDBATOCcXIToUmw9ZmaVR14/4SlZIygVnNCRRcDtfQQ==} engines: {node: '>=20.19.0'} peerDependencies: - effect: 4.0.0-rc.112 - foldkit: '>=0.153.0' - vite: ^7.0.0 || ^8.0.0 + effect: 4.0.0 + foldkit: '>=0.167.0' + vite: ^8.0.0 '@fontsource-variable/ibm-plex-sans@5.3.0': resolution: {integrity: sha512-agG8tXFEo0hD9+J7npa4vbbWult52eMLVaQ6WQRlhs/iCAojrMAoejru85W9HTVXHfyUj96KM7gp/KGAS87XaQ==} @@ -1473,22 +1469,16 @@ packages: resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} - '@img/sharp-darwin-arm64@0.35.2': - resolution: {integrity: sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg==} - engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [darwin] - '@img/sharp-darwin-arm64@0.35.4': resolution: {integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==} engines: {node: '>=20.9.0'} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.35.2': - resolution: {integrity: sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw==} + '@img/sharp-darwin-arm64@0.35.5': + resolution: {integrity: sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==} engines: {node: '>=20.9.0'} - cpu: [x64] + cpu: [arm64] os: [darwin] '@img/sharp-darwin-x64@0.35.4': @@ -1497,29 +1487,30 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-freebsd-wasm32@0.35.2': - resolution: {integrity: sha512-YoAxdnd8hPUkvLHd3bWY+YA8nw3xM/RyRopYucNsWHVSan8NLVM3X2volsfoRDcXdUJPg6tXahSd7HXPK7lRnw==} + '@img/sharp-darwin-x64@0.35.5': + resolution: {integrity: sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==} engines: {node: '>=20.9.0'} - os: [freebsd] + cpu: [x64] + os: [darwin] '@img/sharp-freebsd-wasm32@0.35.4': resolution: {integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==} engines: {node: '>=20.9.0'} os: [freebsd] - '@img/sharp-libvips-darwin-arm64@1.3.1': - resolution: {integrity: sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g==} - cpu: [arm64] - os: [darwin] + '@img/sharp-freebsd-wasm32@0.35.5': + resolution: {integrity: sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==} + engines: {node: '>=20.9.0'} + os: [freebsd] '@img/sharp-libvips-darwin-arm64@1.3.3': resolution: {integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.3.1': - resolution: {integrity: sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ==} - cpu: [x64] + '@img/sharp-libvips-darwin-arm64@1.3.4': + resolution: {integrity: sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==} + cpu: [arm64] os: [darwin] '@img/sharp-libvips-darwin-x64@1.3.3': @@ -1527,19 +1518,19 @@ packages: cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.3.1': - resolution: {integrity: sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw==} - cpu: [arm64] - os: [linux] + '@img/sharp-libvips-darwin-x64@1.3.4': + resolution: {integrity: sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==} + cpu: [x64] + os: [darwin] '@img/sharp-libvips-linux-arm64@1.3.3': resolution: {integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.3.1': - resolution: {integrity: sha512-aGGy9aWzXgHBG7HNyQPWorZthlp7+x6fDRoPAQbGO3ThcttuTyKIx3NuSHb6zb4gBNq6/yNn9f1cy9nFKS/Vmg==} - cpu: [arm] + '@img/sharp-libvips-linux-arm64@1.3.4': + resolution: {integrity: sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==} + cpu: [arm64] os: [linux] '@img/sharp-libvips-linux-arm@1.3.3': @@ -1547,9 +1538,9 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.3.1': - resolution: {integrity: sha512-1EkwGNCZk6iWNCMWqrvdJ+r1j0PT1zIz60CNPhYnJlK/zyeWqlsPZIe+ocBVqPF8k/Ssee/NCk+tE9Ryrko6ng==} - cpu: [ppc64] + '@img/sharp-libvips-linux-arm@1.3.4': + resolution: {integrity: sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==} + cpu: [arm] os: [linux] '@img/sharp-libvips-linux-ppc64@1.3.3': @@ -1557,9 +1548,9 @@ packages: cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-riscv64@1.3.1': - resolution: {integrity: sha512-Ilays+w2bXdnxzxtQdmXR62u8o8GYa3eL4+Gr+1KiE4xperMZUslRaVPJwwPkzlHEjGfXAfRVAa/7CYCtSqsBw==} - cpu: [riscv64] + '@img/sharp-libvips-linux-ppc64@1.3.4': + resolution: {integrity: sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==} + cpu: [ppc64] os: [linux] '@img/sharp-libvips-linux-riscv64@1.3.3': @@ -1567,9 +1558,9 @@ packages: cpu: [riscv64] os: [linux] - '@img/sharp-libvips-linux-s390x@1.3.1': - resolution: {integrity: sha512-VfBwVHQTbRoj4XlpA/KLZ7ltgMpz+4WSejFzQ+GnoImjo1PtEJ59QB2qR1xQEeRPYIkNrPIm2L4cICMvz4C2ew==} - cpu: [s390x] + '@img/sharp-libvips-linux-riscv64@1.3.4': + resolution: {integrity: sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==} + cpu: [riscv64] os: [linux] '@img/sharp-libvips-linux-s390x@1.3.3': @@ -1577,9 +1568,9 @@ packages: cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.3.1': - resolution: {integrity: sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A==} - cpu: [x64] + '@img/sharp-libvips-linux-s390x@1.3.4': + resolution: {integrity: sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==} + cpu: [s390x] os: [linux] '@img/sharp-libvips-linux-x64@1.3.3': @@ -1587,9 +1578,9 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.3.1': - resolution: {integrity: sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw==} - cpu: [arm64] + '@img/sharp-libvips-linux-x64@1.3.4': + resolution: {integrity: sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==} + cpu: [x64] os: [linux] '@img/sharp-libvips-linuxmusl-arm64@1.3.3': @@ -1597,9 +1588,9 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.3.1': - resolution: {integrity: sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg==} - cpu: [x64] + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': + resolution: {integrity: sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==} + cpu: [arm64] os: [linux] '@img/sharp-libvips-linuxmusl-x64@1.3.3': @@ -1607,10 +1598,9 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.35.2': - resolution: {integrity: sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA==} - engines: {node: '>=20.9.0'} - cpu: [arm64] + '@img/sharp-libvips-linuxmusl-x64@1.3.4': + resolution: {integrity: sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==} + cpu: [x64] os: [linux] '@img/sharp-linux-arm64@0.35.4': @@ -1619,10 +1609,10 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.35.2': - resolution: {integrity: sha512-SE4kzF2mepn6z+6E7L6lsV8FzuLL6IPQdyX8ZiwROAG/G8td+hP/m7FsFPwidtrF19gvajuC9l6TxAVcsA4S7A==} + '@img/sharp-linux-arm64@0.35.5': + resolution: {integrity: sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==} engines: {node: '>=20.9.0'} - cpu: [arm] + cpu: [arm64] os: [linux] '@img/sharp-linux-arm@0.35.4': @@ -1631,10 +1621,10 @@ packages: cpu: [arm] os: [linux] - '@img/sharp-linux-ppc64@0.35.2': - resolution: {integrity: sha512-hYSBm7zcNtDCozCxQHYZJiu63b/bXsgRZuOxCIBZsStMM9Vap47iFHdbX4kCvQsblPB/k+clhELpdQJHQLSHvg==} + '@img/sharp-linux-arm@0.35.5': + resolution: {integrity: sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==} engines: {node: '>=20.9.0'} - cpu: [ppc64] + cpu: [arm] os: [linux] '@img/sharp-linux-ppc64@0.35.4': @@ -1643,10 +1633,10 @@ packages: cpu: [ppc64] os: [linux] - '@img/sharp-linux-riscv64@0.35.2': - resolution: {integrity: sha512-qQt0Kc13+Hoan/Awq/qMSQw3L+RI1NCRPgD5cUJ/1WSSmIoysLOc72jlRM3E0OHN9Yr313jgeQ2T+zW+F03QFA==} + '@img/sharp-linux-ppc64@0.35.5': + resolution: {integrity: sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==} engines: {node: '>=20.9.0'} - cpu: [riscv64] + cpu: [ppc64] os: [linux] '@img/sharp-linux-riscv64@0.35.4': @@ -1655,10 +1645,10 @@ packages: cpu: [riscv64] os: [linux] - '@img/sharp-linux-s390x@0.35.2': - resolution: {integrity: sha512-E4fLLfRPzDLlEeDaTzI98OFLcv++WL5ChLLMwPoVd0CIoZQqupBSNbOisPL5am9XsbQ9T84+iiMpUvbFtkunbA==} + '@img/sharp-linux-riscv64@0.35.5': + resolution: {integrity: sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==} engines: {node: '>=20.9.0'} - cpu: [s390x] + cpu: [riscv64] os: [linux] '@img/sharp-linux-s390x@0.35.4': @@ -1667,10 +1657,10 @@ packages: cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.35.2': - resolution: {integrity: sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA==} + '@img/sharp-linux-s390x@0.35.5': + resolution: {integrity: sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==} engines: {node: '>=20.9.0'} - cpu: [x64] + cpu: [s390x] os: [linux] '@img/sharp-linux-x64@0.35.4': @@ -1679,10 +1669,10 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.35.2': - resolution: {integrity: sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg==} + '@img/sharp-linux-x64@0.35.5': + resolution: {integrity: sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==} engines: {node: '>=20.9.0'} - cpu: [arm64] + cpu: [x64] os: [linux] '@img/sharp-linuxmusl-arm64@0.35.4': @@ -1691,10 +1681,10 @@ packages: cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.35.2': - resolution: {integrity: sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg==} + '@img/sharp-linuxmusl-arm64@0.35.5': + resolution: {integrity: sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==} engines: {node: '>=20.9.0'} - cpu: [x64] + cpu: [arm64] os: [linux] '@img/sharp-linuxmusl-x64@0.35.4': @@ -1703,29 +1693,29 @@ packages: cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.35.2': - resolution: {integrity: sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw==} + '@img/sharp-linuxmusl-x64@0.35.5': + resolution: {integrity: sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==} engines: {node: '>=20.9.0'} + cpu: [x64] + os: [linux] '@img/sharp-wasm32@0.35.4': resolution: {integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==} engines: {node: '>=20.9.0'} - '@img/sharp-webcontainers-wasm32@0.35.2': - resolution: {integrity: sha512-QNV27pxs9wpApEiCfvHM1RDoP1w1+2KrUWWDPEhEwg+latvOrfuhWrHWZKwdSFwU6jh3myjw/yOCRsUIuOft3g==} + '@img/sharp-wasm32@0.35.5': + resolution: {integrity: sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==} engines: {node: '>=20.9.0'} - cpu: [wasm32] '@img/sharp-webcontainers-wasm32@0.35.4': resolution: {integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==} engines: {node: '>=20.9.0'} cpu: [wasm32] - '@img/sharp-win32-arm64@0.35.2': - resolution: {integrity: sha512-BiVRYc/t6/Vl3e1hBx0hugG4oN9Pydf4fgMSpxTQJmwGUg/YoXTWHiFeRymHfCZzifxu4F4rpk/I67D0LQ20wQ==} + '@img/sharp-webcontainers-wasm32@0.35.5': + resolution: {integrity: sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==} engines: {node: '>=20.9.0'} - cpu: [arm64] - os: [win32] + cpu: [wasm32] '@img/sharp-win32-arm64@0.35.4': resolution: {integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==} @@ -1733,10 +1723,10 @@ packages: cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.35.2': - resolution: {integrity: sha512-YYEhx9PImCC7T0tI8JDMi4DB9LwLCXCU5OWNYEXAxh5Q1ShKkyC6byxzoBJ3gEFDnH2lQckWuDe70G7mB2XJog==} - engines: {node: ^20.9.0} - cpu: [ia32] + '@img/sharp-win32-arm64@0.35.5': + resolution: {integrity: sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==} + engines: {node: '>=20.9.0'} + cpu: [arm64] os: [win32] '@img/sharp-win32-ia32@0.35.4': @@ -1745,10 +1735,10 @@ packages: cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.35.2': - resolution: {integrity: sha512-imoOyBcoM/iiUr4J6VPpCNjPnjvP/Gks95898yB8YqoGGYmHYbOyCuNv9FMhFgtaiHFGbHW8bxKqRV6VjtXThQ==} - engines: {node: '>=20.9.0'} - cpu: [x64] + '@img/sharp-win32-ia32@0.35.5': + resolution: {integrity: sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==} + engines: {node: ^20.9.0} + cpu: [ia32] os: [win32] '@img/sharp-win32-x64@0.35.4': @@ -1757,6 +1747,12 @@ packages: cpu: [x64] os: [win32] + '@img/sharp-win32-x64@0.35.5': + resolution: {integrity: sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==} + engines: {node: '>=20.9.0'} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1774,6 +1770,9 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/sourcemap-codec@1.6.0': + resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} + '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} @@ -1859,36 +1858,6 @@ packages: resolution: {integrity: sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw==} engines: {node: '>=16'} - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4': - resolution: {integrity: sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==} - cpu: [arm64] - os: [darwin] - - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4': - resolution: {integrity: sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==} - cpu: [x64] - os: [darwin] - - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4': - resolution: {integrity: sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==} - cpu: [arm64] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4': - resolution: {integrity: sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==} - cpu: [arm] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4': - resolution: {integrity: sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==} - cpu: [x64] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4': - resolution: {integrity: sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==} - cpu: [x64] - os: [win32] - '@napi-rs/wasm-runtime@1.2.2': resolution: {integrity: sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==} engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} @@ -1899,20 +1868,14 @@ packages: '@neon-rs/load@0.0.4': resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} - '@nodable/entities@3.0.0': - resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} - - '@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'} + '@neon/functions@0.11.0': + resolution: {integrity: sha512-xyIEk9aULR2nBTzyTgxljkM8aS+Ppe9oVw/t5mdqYOlY/mLFppHSZHq8hiWVDWy6Ca8oLd3loTtfVz+cZQQjsA==} + engines: {node: '>=20.19.0'} + peerDependencies: + hono: ^4.7.8 + peerDependenciesMeta: + hono: + optional: true '@octokit/auth-token@6.0.0': resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} @@ -2742,60 +2705,13 @@ packages: resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} engines: {node: '>=18'} - '@smithy/core@3.33.3': - resolution: {integrity: sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg==} - engines: {node: '>=18.0.0'} - - '@smithy/credential-provider-imds@4.5.2': - resolution: {integrity: sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==} - engines: {node: '>=18.0.0'} - - '@smithy/fetch-http-handler@5.8.0': - resolution: {integrity: sha512-ycSJu3tFAQ4v04CBB0agqFMVsSQ1iG3yw+SpgxRqKfaURpQD4CZ8Wn0zPMmSnOuTpTh65Vz+EA0rMrw089wvkA==} - engines: {node: '>=18.0.0'} - - '@smithy/is-array-buffer@2.2.0': - resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} - engines: {node: '>=14.0.0'} - - '@smithy/node-config-provider@4.6.2': - resolution: {integrity: sha512-zMrXu/O5tPa7GLtra8L4wFG6DACcXT9QV4Ay+WEAjUhXm1dVq7c/q9Qv9gkJZNLY8hmQKg08778kDcxpKNMqOA==} - engines: {node: '>=18.0.0'} - - '@smithy/node-http-handler@4.12.1': - resolution: {integrity: sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==} - engines: {node: '>=18.0.0'} - - '@smithy/shared-ini-file-loader@4.7.2': - resolution: {integrity: sha512-XsIDj5gVG4YRxGS4n4TiBDAogPWRHXKZyor6JW/sEuaa/7BvKADe9j45jI2dPYCnYbKkLBmbZ4qN9ns0sH+kMQ==} - engines: {node: '>=18.0.0'} - - '@smithy/signature-v4@5.7.3': - resolution: {integrity: sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow==} - engines: {node: '>=18.0.0'} - '@smithy/types@4.18.0': resolution: {integrity: sha512-CgB6HHWer/vrKps24ulRIbpcpb7K4xAU7SkZ7YHzBPlwHsvsrCJFEXK421s+cJzX+ZrqtA/TuU5w1HzI7k9N8A==} engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.6.2': - resolution: {integrity: sha512-wTQX1hPfElIqY6AzM/s6c4UgpMxCL4MwJ5u6340ksLPq78lur6Y+keheIDk5gMX4G3KFh4MERcDt6xhRq+ie1Q==} - engines: {node: '>=18.0.0'} - - '@smithy/util-buffer-from@2.2.0': - resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} - engines: {node: '>=14.0.0'} - - '@smithy/util-utf8@2.3.0': - resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} - engines: {node: '>=14.0.0'} - '@speed-highlight/core@1.2.24': resolution: {integrity: sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==} - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@tailwindcss/node@4.3.3': resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==} @@ -2979,8 +2895,8 @@ packages: '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@types/ws@8.18.2': + resolution: {integrity: sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==} '@ungap/structured-clone@1.4.0': resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==} @@ -2992,13 +2908,10 @@ packages: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 vue: ^3.2.25 - '@vitest/expect@4.1.11': - resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==} - - '@vitest/mocker@4.1.11': - resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==} + '@vitest/mocker@5.0.4': + resolution: {integrity: sha512-tqAlrYWce4iUxhr3ncNohejtCTOcHeE8XWrSNZY3OhPoDn01yeGv+gnaBy64ATp7o6pb03eIbBAjzmibpc9vIQ==} peerDependencies: - msw: ^2.4.9 + msw: ^2.4.9 || ^3.0.0 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: @@ -3006,20 +2919,8 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.11': - resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==} - - '@vitest/runner@4.1.11': - resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==} - - '@vitest/snapshot@4.1.11': - resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==} - - '@vitest/spy@4.1.11': - resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==} - - '@vitest/utils@4.1.11': - resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==} + '@vitest/spy@5.0.4': + resolution: {integrity: sha512-MZKk/gSkm2q+ICobMxCpH1mA+cCAWm8WV7UhxlqGjq/sJ3AGc1BqFOs5CRVXxH78wQtme9q/NAAgBquj4AcyMw==} '@vue/compiler-core@3.5.40': resolution: {integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==} @@ -3119,25 +3020,28 @@ packages: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} - alchemy@2.0.0-beta.76: - resolution: {integrity: sha512-XpcsXWk38YV9nO0v7s5PPjlMVtF8OQPeP8YqLu1iMzrq33bwViEOqkwQn3cgFiD7/QsnNcCju+hCXyeBwXrdtg==} + alchemy@2.0.0-beta.80: + resolution: {integrity: sha512-2y7mswypPiApxuEdp8NGMfzCGB5+9W6OmQAuePyZ2xBkgoCpEqtKAnASuvKGUZPSYNESENbamXDuI5428ewu9w==} hasBin: true peerDependencies: - '@alchemy.run/frontend-frameworks': 2.0.0-beta.76 + '@alchemy.run/frontend-frameworks': 2.0.0-beta.80 '@aws/durable-execution-sdk-js': ^2.1.0 - '@effect/platform-bun': '>=4.0.0-rc.112 || >=4.0.0' - '@effect/platform-node': '>=4.0.0-rc.112 || >=4.0.0' - '@effect/sql-mysql2': '>=4.0.0-rc.112 || >=4.0.0' - '@effect/sql-pg': '>=4.0.0-rc.112 || >=4.0.0' + '@effect/platform-bun': ^4.0.0 + '@effect/platform-node': ^4.0.0 + '@effect/sql-mysql2': ^4.0.0 + '@effect/sql-pg': ^4.0.0 + '@effect/vitest': ^4.0.0 + '@prisma/orm-postgres': 8.0.0-rc.11 '@vercel/nft': ^1.10.2 drizzle-kit: 1.0.0-rc.5-ab785fc drizzle-orm: 1.0.0-rc.5-ab785fc - effect: '>=4.0.0-rc.112 || >=4.0.0' + effect: ^4.0.0 mongodb: ^6.10.0 mysql2: ^3.24.2 pg: ^8.22.0 + prisma: 8.0.0-rc.15 vite: ^8.0.7 - ws: ^8.20.0 + ws: ^8.21.0 peerDependenciesMeta: '@alchemy.run/frontend-frameworks': optional: true @@ -3151,6 +3055,10 @@ packages: optional: true '@effect/sql-pg': optional: true + '@effect/vitest': + optional: true + '@prisma/orm-postgres': + optional: true '@vercel/nft': optional: true drizzle-kit: @@ -3163,15 +3071,13 @@ packages: optional: true pg: optional: true + prisma: + optional: true vite: optional: true ws: optional: true - ansi-escapes@7.3.0: - resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} - engines: {node: '>=18'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3192,9 +3098,6 @@ packages: resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==} engines: {node: '>=14'} - anynum@1.0.1: - resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==} - archiver-utils@5.0.2: resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} engines: {node: '>= 14'} @@ -3220,13 +3123,6 @@ packages: async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - auto-bind@5.0.1: - resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - aws4fetch@1.0.20: - resolution: {integrity: sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==} - b4a@1.8.1: resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} peerDependencies: @@ -3303,16 +3199,9 @@ packages: blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - bowser@2.14.1: - resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - brace-expansion@2.1.4: resolution: {integrity: sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==} - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - buffer-crc32@1.0.0: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} @@ -3335,29 +3224,25 @@ packages: resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} engines: {node: '>=20.19.0'} - capnp-es@0.0.14: - resolution: {integrity: sha512-8lWj4GJISiqRSlAJGkWpI4Azib7QY5UDIkqxeHcI7aAnXVk9SFuWxl1Fme+2HhzNANV0WTJqwUZvvXvloc3sBA==} + capnp-es@0.0.16: + resolution: {integrity: sha512-pqhhnRqGfDdgHa+rz4JVO9j1jnkyqsHRYrD4RBtIwxCknYSRG7Mjs+x3IRfd20u+ZGS0IhW2L7cDv9ZcIkCYhQ==} hasBin: true peerDependencies: - typescript: ^5.7.3 + typescript: ^5.7.3 || ^6.0.0 peerDependenciesMeta: typescript: optional: true - capnweb@0.6.1: - resolution: {integrity: sha512-fmhV26QPd1ewf5R74h55oVZnGwIcSaRMzbfLQUy8+zOBjuTmT3KXoT8wxHvnp1m9Ht9BoUUS5ZwNLoVLfQTyBg==} + capnweb@0.12.0: + resolution: {integrity: sha512-jgZ/LMtMVTi+RVlooIslH78Gg23XbDTdvcLghWx3oz17D6u5GuJARt+uhZk/wcTo+f81eeabfnow4d3zLBj+JQ==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@6.2.2: - resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + chai@6.3.0: + resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==} engines: {node: '>=18'} - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -3367,24 +3252,16 @@ packages: chevrotain@10.5.0: resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-truncate@5.2.0: - resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} - engines: {node: '>=20'} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3397,10 +3274,6 @@ packages: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} - code-excerpt@4.0.0: - resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -3419,13 +3292,6 @@ packages: resolution: {integrity: sha512-AIi5H6p0xk5uknXcN3/rmhP8jgp69OfSe/JuKiQAFprJ7UGw7mwj7m4XcmDzlrnJDG+cGpphAINGdU3g3g7kDw==} engines: {node: '>=22'} - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - convert-to-spaces@2.0.1: - resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - cookie@1.1.1: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} @@ -3512,8 +3378,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - effect@4.0.0-rc.112: - resolution: {integrity: sha512-wXxwuh1Ywnv4cPRM3Wfa0vDwuOHnZ1TsTgHJkG9XgzND6inhBH9n1vBxhg3iIXOia/OrpmvVmd3lrD4vq6bF3A==} + effect@4.0.3: + resolution: {integrity: sha512-LoWn/Uwwx0JjHSDmBAAahx8sB+klzM6vsZovnbYowBNw6B4QScJLRLBByO61plvNiycx7HPN8FnsWUCu0eXW5w==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -3543,26 +3409,19 @@ packages: resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} engines: {node: '>=20.19.0'} - environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} - engines: {node: '>=18'} - error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} es-module-lexer@2.3.2: resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} - es-toolkit@1.52.0: - resolution: {integrity: sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA==} - esbuild@0.23.1: resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} engines: {node: '>=18'} hasBin: true - esbuild@0.28.1: - resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} + esbuild@0.28.2: + resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==} engines: {node: '>=18'} hasBin: true @@ -3570,10 +3429,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -3599,17 +3454,9 @@ packages: resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} - fast-check@4.9.0: - resolution: {integrity: sha512-7ms6T7SybUev/PQITciI0yLM2pOSFy5zpG8Ty7tQofcVaQUvrMXp6CBwqF6fThLCLOrfBtuHAtwq6Yu4XPCllg==} - engines: {node: '>=12.17.0'} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - 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==} @@ -3619,16 +3466,6 @@ packages: fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} - fast-xml-builder@1.3.1: - resolution: {integrity: sha512-pIM/1n3ntFXKYrUZwW7QCK0gAW7XY+wzj1YMIV3tLDvPj/V+zTGJK5e3/4WJfwj0qWw2ElNXiTixda/R+3YSug==} - - fast-xml-parser@5.11.1: - resolution: {integrity: sha512-TBw6K/fxoQGGjCmZDw9w/ZwP3uDcnTM4YH/g+PFRWr8sbe5idXtxNN6vITh4+1ruCZaho6uBFurElsA7F0zzgw==} - hasBin: true - - fastq@1.20.3: - resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==} - fdb-tuple@1.0.0: resolution: {integrity: sha512-8jSvKPCYCgTpi9Pt87qlfTk6griyMx4Gk3Xv31Dp72Qp8b6XgIyFsMm8KzPmFJ9iJ8K4pGvRxvOS8D0XGnrkjw==} @@ -3641,21 +3478,21 @@ packages: picomatch: optional: true + fflate@0.8.3: + resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} + file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - focus-trap@8.2.2: resolution: {integrity: sha512-qV0g8hRYBqgACcFOH3f9wXc4zPKhr/0z9RI2a6ZijZ72EeBi4g8oBy8zAWuUR1TsMpOzwpUMFvjdasrC41Joug==} - foldkit@0.157.0: - resolution: {integrity: sha512-I2ImNQqrM+ZRLm+S8xy0gm9G0BBmJYOq+6l4UcvrjBdRLuUrFyClKXsvycCFHlwqhbbz4tKrUhONyslACJqauw==} + foldkit@0.168.0: + resolution: {integrity: sha512-FyAY34MdmF1JwdKiPq12uKHBmLny3QxAJ6WdakbXCBh8KR1lQfvdKEygQ/XAlxb2ICSmpVaFga5RgDSnxZsFiw==} engines: {node: '>=20.19.0'} peerDependencies: - effect: 4.0.0-rc.112 + '@effect/platform-browser': 4.0.0 + effect: 4.0.0 foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} @@ -3694,10 +3531,6 @@ packages: github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me @@ -3712,6 +3545,10 @@ packages: graphmatch@1.1.1: resolution: {integrity: sha512-5ykVn/EXM1hF0XCaWh05VbYvEiOL2lY1kBxZtaYsyvjp7cmWOU1XsAdfQBwClraEofXDT197lFbXOEVMHpvQOg==} + graphql@16.11.0: + resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + hast-util-to-html@9.0.5: resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} @@ -3741,9 +3578,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} @@ -3751,60 +3585,19 @@ packages: resolution: {integrity: sha512-B6Lc2s6yApwnD2/pMzFh/d5AVjdsDXjgkeJ766FmFuJELIGHNycKRj+l3A39yZPM4CchqNCB4RITEAYB1KUM6A==} engines: {node: '>=20.19.0'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ink@6.8.0: - resolution: {integrity: sha512-sbl1RdLOgkO9isK42WCZlJCFN9hb++sX9dsklOvfd1YQ3bQ2AiFu12Q6tFlr0HvEUvzraJntQCCpfEoUe9DSzA==} - engines: {node: '>=20'} - peerDependencies: - '@types/react': '>=19.0.0' - react: '>=19.0.0' - react-devtools-core: '>=6.1.2' - peerDependenciesMeta: - '@types/react': - optional: true - react-devtools-core: - optional: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-fullwidth-code-point@5.1.0: - resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} - engines: {node: '>=18'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-in-ci@2.0.0: - resolution: {integrity: sha512-cFeerHriAnhrQSbpAxL37W1wcJKUUX07HyLWZCW1URJT/ra3GyUTzBgUnh24TMVfNTV2Hij2HLxkPHFZfOZy5w==} - engines: {node: '>=20'} - hasBin: true - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-unsafe@2.0.2: - resolution: {integrity: sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -3836,9 +3629,6 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -3864,9 +3654,6 @@ packages: cpu: [x64, arm64, wasm32, arm] os: [darwin, linux, win32] - lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - lightningcss-android-arm64@1.32.0: resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} @@ -4029,8 +3816,8 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - magic-string@1.2.3: - resolution: {integrity: sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==} + magic-string@1.4.3: + resolution: {integrity: sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==} mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} @@ -4038,10 +3825,6 @@ packages: mdast-util-to-hast@13.2.1: resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - micromark-util-character@2.1.1: resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} @@ -4057,25 +3840,17 @@ packages: micromark-util-types@2.0.2: resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime@4.1.0: - resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} + mime@4.1.1: + resolution: {integrity: sha512-YAApRsTpM2+gnUFHhRNGfkX8NK0V5xj1nyQLufGlwEI+eX4xRsTcel2IXDuMEGSGjBvzykNW4VuoEACgwYe7BQ==} engines: {node: '>=16'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - miniflare@5.20260903.0-alpha: - resolution: {integrity: sha512-VCZIFxOqFXeibRBJWwTlppqbv2lkeO10IX3QBRGK9j1QiMAfH/OSsCvbjp1MslBMhVZmy2VTRlVaVnsKnbDp6A==} + miniflare@5.20261006.1-alpha: + resolution: {integrity: sha512-6ylv8tamkrspDI2R/cAYfv+YWmfGNdXe76Pi9TauEUWsFVXn3LNF9Yk8oduzf1a+TYsSRYTqlOE7+nGGRsMHdw==} engines: {node: '>=22.0.0'} minimatch@5.1.9: @@ -4111,13 +3886,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msgpackr-extract@3.0.4: - resolution: {integrity: sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==} - hasBin: true - - msgpackr@2.1.0: - resolution: {integrity: sha512-p/pBCVO63CsvvpkomUnNNag6+n38rULuDA6HHe70o2gtC8ODI52foF/4ko2qQcp6OiErJXTmrZeXmsGGHsIQNQ==} - nan@2.28.0: resolution: {integrity: sha512-fTsDz99OTq2sVePhGdp4qQhggZFtKr64ZNVyVajRKtMOkJxYekplBh577PiJB12v/D3s2E5cGtOI45LWp6rnLQ==} @@ -4133,10 +3901,6 @@ packages: resolution: {integrity: sha512-rebQ/lz7i0EkoLzUVSrKRzA69zMkwLp95kKMWoMDkkM00Suxz0D7zEQPwRml5fQum24mj7bPvmlgLAmu2JCiYg==} engines: {node: '>=10'} - node-gyp-build-optional-packages@5.2.2: - resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} - hasBin: true - node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true @@ -4145,20 +3909,17 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - obug@2.1.4: resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} engines: {node: '>=12.20.0'} + obug@3.0.0: + resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==} + engines: {node: '>=12.20.0'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - oniguruma-parser@0.12.2: resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} @@ -4186,20 +3947,9 @@ packages: package-manager-detector@1.8.0: resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==} - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - parse5@8.0.1: resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} - patch-console@2.0.0: - resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-expression-matcher@1.6.2: - resolution: {integrity: sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==} - engines: {node: '>=14.0.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -4226,19 +3976,10 @@ packages: pg-connection-string@2.14.0: resolution: {integrity: sha512-XwWDGcLRGCXAR8F/AM5bG7Q+A3Wm2s6QeEjlOKZLlH3UYcguiqCWKyWXVag5TLTIjR7oOJUY8kcADaZgWPyLeg==} - pg-cursor@2.22.0: - resolution: {integrity: sha512-knzXLKqarTjOvb3qDSW0JiGsazmxwEKXrqHfWRte7XUsOYccQRafn3BLnQobWwInkzFJSyOej8y8cQRh2z3kGw==} - peerDependencies: - pg: ^8 - pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} - pg-numeric@1.0.2: - resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} - engines: {node: '>=4'} - pg-pool@3.14.0: resolution: {integrity: sha512-gKtPkFdQPU3DksooVLi9LsjZxrsBUZIpa+7aVx+LV5pNh0KzP4Zleud2po+ConrxbuXGBJ6Hfer6hdgpIBpBaw==} peerDependencies: @@ -4251,10 +3992,6 @@ packages: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg-types@4.1.0: - resolution: {integrity: sha512-o2XFanIMy/3+mThw69O8d4n1E5zsLhdO+OPqswezu7Z5ekP4hYDqlDjlmOpYMbzY2Br0ufCwJLdDIXeNVwcWFg==} - engines: {node: '>=10'} - pg@8.23.0: resolution: {integrity: sha512-Ip2EQCngowJLGOfCwkFhPXU7/ljlhn6Rxlmy4XYfL2Y+vyRM59+8uR2xqRWKdYmbXmxCFOAmKxBuSUCdF34qLg==} engines: {node: '>= 16.0.0'} @@ -4270,14 +4007,14 @@ 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.5: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + playwright-core@1.63.0: resolution: {integrity: sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==} engines: {node: '>=20'} @@ -4296,37 +4033,18 @@ packages: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} - postgres-array@3.0.4: - resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==} - engines: {node: '>=12'} - postgres-bytea@1.0.1: resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==} engines: {node: '>=0.10.0'} - postgres-bytea@3.0.0: - resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==} - engines: {node: '>= 6'} - postgres-date@1.0.7: resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} engines: {node: '>=0.10.0'} - postgres-date@2.1.0: - resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==} - engines: {node: '>=12'} - postgres-interval@1.2.0: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - postgres-interval@3.0.0: - resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==} - engines: {node: '>=12'} - - postgres-range@1.1.4: - resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} - prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} @@ -4360,29 +4078,13 @@ packages: pump@3.0.4: resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} - pure-rand@8.4.2: - resolution: {integrity: sha512-vvuOGgcuPJAirlHvuQw1TrOiw7ptaIXXmIbNuiNOY6lNGJJH49PQ1Kj4nd783nPdQhQdicgOjVI2yI/9BD6/Ng==} - quansync@1.0.0: resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-reconciler@0.33.0: - resolution: {integrity: sha512-KetWRytFv1epdpJc3J4G75I4WrplZE5jOL7Yq0p34+OVOKF4Se7WrdIdVC45XsSSmUTlht2FM/fM1FZb1mfQeA==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^19.2.0 - - react@19.2.8: - resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==} - engines: {node: '>=0.10.0'} - readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -4397,6 +4099,10 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@5.1.1: + resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==} + engines: {node: '>= 20.19.0'} + redis@6.2.1: resolution: {integrity: sha512-Z9VHtgYs48PiQC77X9O2Er8Hj4T+5BtFjT91/vi5Is1D04N72cA946ZslM1ImJw8ZctFBZWAVjM7S5wJNeHMpg==} engines: {node: '>= 20.0.0'} @@ -4423,18 +4129,10 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rolldown-plugin-dts@0.23.2: resolution: {integrity: sha512-PbSqLawLgZBGcOGT3yqWBGn4cX+wh2nt5FuBGdcMHyOhoukmjbhYAl8NT9sE4U38Cm9tqLOIQeOrvzeayM0DLQ==} engines: {node: '>=20.19.0'} @@ -4474,9 +4172,6 @@ packages: 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==} @@ -4486,21 +4181,11 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - scheduler@0.27.0: - resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} - semver@7.8.5: resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true - setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - - sharp@0.35.2: - resolution: {integrity: sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==} - engines: {node: '>=20.9.0'} - sharp@0.35.4: resolution: {integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==} engines: {node: '>=20.9.0'} @@ -4510,6 +4195,15 @@ packages: '@types/node': optional: true + sharp@0.35.5: + resolution: {integrity: sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -4526,9 +4220,6 @@ packages: resolution: {integrity: sha512-Mb/GvXPHBAXdgGIcnfU5L3ldpn1XcxrGkPHwqgRx17/I2XRfqlFKk2vGkHWINn1kdXvzJZeuO3is6I9KLPFm0g==} engines: {node: '>=20'} - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -4545,10 +4236,6 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - slice-ansi@8.0.0: - resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} - engines: {node: '>=20'} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4570,18 +4257,11 @@ packages: resolution: {integrity: sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ==} engines: {node: '>=10.16.0'} - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - std-env@3.10.0: resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - std-env@4.2.0: - resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} + std-env@4.3.0: + resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==} streamx@2.28.0: resolution: {integrity: sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==} @@ -4623,9 +4303,6 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - strnum@2.4.2: - resolution: {integrity: sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw==} - supports-color@10.2.2: resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} @@ -4633,10 +4310,6 @@ packages: tabbable@6.5.0: resolution: {integrity: sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==} - tagged-tag@1.0.0: - resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} - engines: {node: '>=20'} - tailwindcss@4.3.3: resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==} @@ -4660,23 +4333,24 @@ packages: teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - terminal-size@4.0.1: - resolution: {integrity: sha512-avMLDQpUI9I5XFrklECw1ZEUPJhqzcwSWsyyI8blhRLT+8N1jLJWLWWYQpB2q2xthq8xDvjZPISVh53T/+CLYQ==} - engines: {node: '>=18'} - testcontainers@11.14.0: resolution: {integrity: sha512-r9pniwv/iwzyHaI7gwAvAm4Y+IvjJg3vBWdjrUCaDMc2AXIr4jKbq7jJO18Mw2ybs73pZy1Aj7p/4RVBGMRWjg==} text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} - tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinybench@6.2.2: + resolution: {integrity: sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA==} + engines: {node: '>=20.0.0'} tinyexec@1.3.0: resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} engines: {node: '>=18'} + tinyexec@1.3.1: + resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==} + engines: {node: '>=18'} + tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -4685,18 +4359,10 @@ packages: resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} engines: {node: ^20.0.0 || >=22.0.0} - tinyrainbow@3.1.1: - resolution: {integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==} - engines: {node: '>=14.0.0'} - tmp@0.2.7: resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==} engines: {node: '>=14.14'} - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -4750,10 +4416,6 @@ packages: tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - type-fest@5.9.0: - resolution: {integrity: sha512-yANm3Jr3GiJ1qgJlxGAVxTOIcEOk1rhQHamlXtnrCK7EHP4HeM9OGxtMg/W7HFdrVzw/ZWJKGVIJusVH85sLtw==} - engines: {node: '>=20'} - typescript@6.0.2: resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} engines: {node: '>=14.17'} @@ -4776,8 +4438,12 @@ packages: resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==} engines: {node: '>=20.18.1'} - undici@8.10.1: - resolution: {integrity: sha512-YQ3WlbqjYMmNpdvDH64jAgLjxuAR9+649calDWhbshYaeQGO2bR4nI94ORJmwI3J9YhoKQnpyGOK+0zlWS5N5Q==} + undici@7.29.1: + resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==} + engines: {node: '>=20.18.1'} + + undici@8.11.2: + resolution: {integrity: sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==} engines: {node: '>=22.19.0'} unenv@2.0.0-rc.24: @@ -4876,6 +4542,14 @@ packages: yaml: optional: true + vitefu@1.1.3: + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + vitepress@2.0.0-alpha.18: resolution: {integrity: sha512-Lk1G2/QqSf+MwNLICl9fmzWOtoCEwjZoWgaQy41QvWTfcGpLE9XwJDbcCyES/9rj6R2g1zFqFvLVkYKLLDALFw==} hasBin: true @@ -4888,23 +4562,23 @@ packages: postcss: optional: true - vitest@4.1.11: - resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==} - engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + vitest@5.0.4: + resolution: {integrity: sha512-z0WxZRV2Sg48wF0FSgMq3TFG8JS38/Qr96vZVZdX6+Em9raQTvnXQvdTFJe2m3rfyJnEHeHQ/snceIdi8D1pVg==} + engines: {node: ^22.12.0 || ^24.0.0 || >=26.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.11 - '@vitest/browser-preview': 4.1.11 - '@vitest/browser-webdriverio': 4.1.11 - '@vitest/coverage-istanbul': 4.1.11 - '@vitest/coverage-v8': 4.1.11 - '@vitest/ui': 4.1.11 + '@types/node': ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 5.0.4 + '@vitest/browser-preview': 5.0.4 + '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0 + '@vitest/coverage-istanbul': 5.0.4 + '@vitest/coverage-v8': 5.0.4 + '@vitest/ui': 5.0.4 happy-dom: '*' jsdom: '*' - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + vite: ^6.4.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -4942,31 +4616,27 @@ packages: engines: {node: '>= 8'} hasBin: true - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} + why-is-node-running@3.2.1: + resolution: {integrity: sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==} + engines: {node: '>=20.11'} hasBin: true - widest-line@6.0.0: - resolution: {integrity: sha512-U89AsyEeAsyoF0zVJBkG9zBgekjgjK7yk9sje3F4IQpXBJ10TF6ByLlIfjMhcmHMJgHZI4KHt4rdNfktzxIAMA==} - engines: {node: '>=20'} - - workerd@1.20260704.1: - resolution: {integrity: sha512-GDZ0jzIYDYfN7rCt/oFJv4BG3QJ+4IS2kfRvxEMY9VKIfPhzo63PH69Ir7ug8LfORCgCtmfkiQVXrqbot7pZTQ==} + workerd@1.20260918.1: + resolution: {integrity: sha512-NsjfQlBNQ0iEniv/STOy4zbp8s5k60PzL1Ter02Eg44arbDhHtf6UOs03E31XDRmmBFxSIkAZuCyld3RKH1wqA==} engines: {node: '>=16'} hasBin: true - workerd@1.20260903.1: - resolution: {integrity: sha512-xJzt2RnCy7ulOULmZy/4JLbEPg1uisp9lVoOUsEz+UVhDsTmrSQ0rBXZMGcXuhr2HCGKs89bg8nnbbzvBSX1Ig==} + workerd@1.20261006.1: + resolution: {integrity: sha512-8MadBuffZ5NdpLwZjUmsqT5QlaKXq4gjgT6wzcKeynZTICNXyePhc+5QVoKiK7+MMhFTLNrRO2KXLlpk8Q6BkA==} engines: {node: '>=16'} hasBin: true - wrangler@4.129.0: - resolution: {integrity: sha512-PGPvs9UPoFrwxT0VogpESSZGvZIctAuTK3wGsLLPHtHsSgS85kNdvtpa2d14UzG8gwLWD64XUGFPGG9tOXG9VQ==} + wrangler@4.149.0: + resolution: {integrity: sha512-OzK7xmB5r5iLKb3cIT3783g13fe6T7xyeKu9LEdUyl+DKAM2KP/jkjnE0OUhyw+mB/XJM9ycjgF3MWm8PR9amg==} engines: {node: '>=22.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^5.20260903.1 + '@cloudflare/workers-types': ^5.20261006.1 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -5010,9 +4680,17 @@ packages: utf-8-validate: optional: true - xml-naming@0.3.0: - resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==} - engines: {node: '>=16.0.0'} + ws@8.22.0: + resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} @@ -5047,9 +4725,6 @@ packages: resolution: {integrity: sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==} engines: {node: '>=12'} - yoga-layout@3.2.1: - resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} - youch-core@0.3.3: resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} @@ -5063,219 +4738,47 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zod@4.6.5: + resolution: {integrity: sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: - '@alcalzone/ansi-tokenize@0.2.5': + '@alchemy.run/cloudflare-runtime@2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.3))(@effect/platform-node@4.0.3(effect@4.0.3)(redis@6.2.1))(@types/node@25.9.1)(effect@4.0.3)(rolldown@1.2.5)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))': dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 5.1.0 - - '@alchemy.run/cloudflare-runtime@2.0.0-beta.76(@distilled.cloud/cloudflare@1.0.0-rc.8(effect@4.0.0-rc.112))(@effect/platform-node@4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1))(@types/node@25.9.1)(effect@4.0.0-rc.112)(rolldown@1.2.5)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))': - dependencies: - '@alchemy.run/node-utils': 2.0.0-beta.76 - '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260704.1) - '@distilled.cloud/cloudflare': 1.0.0-rc.8(effect@4.0.0-rc.112) + '@alchemy.run/node-utils': 2.0.0-beta.80 + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1) + '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.3) '@puppeteer/browsers': 3.2.2(yauzl@3.4.0) - capnp-es: 0.0.14(typescript@6.0.2) - effect: 4.0.0-rc.112 + capnp-es: 0.0.16(typescript@6.0.2) + effect: 4.0.3 magic-string: 0.30.21 + mime: 4.1.1 sharp: 0.35.4(@types/node@25.9.1) unenv: 2.0.0-rc.24 - workerd: 1.20260704.1 + workerd: 1.20260918.1 yauzl: 3.4.0 optionalDependencies: - '@effect/platform-node': 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1) + '@effect/platform-node': 4.0.3(effect@4.0.3)(redis@6.2.1) rolldown: 1.2.5 - vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - proxy-agent - typescript - '@alchemy.run/floci@2.0.0-beta.76(effect@4.0.0-rc.112)': - dependencies: - effect: 4.0.0-rc.112 - - '@alchemy.run/node-utils@2.0.0-beta.76': {} - - '@aws-crypto/crc32@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.974.5 - tslib: 2.8.1 - - '@aws-crypto/util@5.2.0': - dependencies: - '@aws-sdk/types': 3.974.5 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 - - '@aws-sdk/core@3.977.9': - dependencies: - '@aws-sdk/types': 3.974.5 - '@aws-sdk/xml-builder': 3.972.40 - '@aws/lambda-invoke-store': 0.3.0 - '@smithy/core': 3.33.3 - '@smithy/signature-v4': 5.7.3 - '@smithy/types': 4.18.0 - bowser: 2.14.1 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-cognito-identity@3.972.69': + '@alchemy.run/floci@2.0.0-beta.80(effect@4.0.3)': dependencies: - '@aws-sdk/nested-clients': 3.997.44 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-env@3.972.70': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.972.72': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/fetch-http-handler': 5.8.0 - '@smithy/node-http-handler': 4.12.1 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.973.15': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/credential-provider-env': 3.972.70 - '@aws-sdk/credential-provider-http': 3.972.72 - '@aws-sdk/credential-provider-login': 3.972.77 - '@aws-sdk/credential-provider-process': 3.972.70 - '@aws-sdk/credential-provider-sso': 3.973.14 - '@aws-sdk/credential-provider-web-identity': 3.972.76 - '@aws-sdk/nested-clients': 3.997.44 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/credential-provider-imds': 4.5.2 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-login@3.972.77': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/nested-clients': 3.997.44 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-node@3.972.82': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.70 - '@aws-sdk/credential-provider-http': 3.972.72 - '@aws-sdk/credential-provider-ini': 3.973.15 - '@aws-sdk/credential-provider-process': 3.972.70 - '@aws-sdk/credential-provider-sso': 3.973.14 - '@aws-sdk/credential-provider-web-identity': 3.972.76 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/credential-provider-imds': 4.5.2 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-process@3.972.70': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.973.14': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/nested-clients': 3.997.44 - '@aws-sdk/token-providers': 3.1116.0 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-web-identity@3.972.76': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/nested-clients': 3.997.44 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 + effect: 4.0.3 - '@aws-sdk/credential-providers@3.1127.0': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/credential-provider-cognito-identity': 3.972.69 - '@aws-sdk/credential-provider-env': 3.972.70 - '@aws-sdk/credential-provider-http': 3.972.72 - '@aws-sdk/credential-provider-ini': 3.973.15 - '@aws-sdk/credential-provider-login': 3.972.77 - '@aws-sdk/credential-provider-node': 3.972.82 - '@aws-sdk/credential-provider-process': 3.972.70 - '@aws-sdk/credential-provider-sso': 3.973.14 - '@aws-sdk/credential-provider-web-identity': 3.972.76 - '@aws-sdk/nested-clients': 3.997.44 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/credential-provider-imds': 4.5.2 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/nested-clients@3.997.44': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/signature-v4-multi-region': 3.996.46 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/fetch-http-handler': 5.8.0 - '@smithy/node-http-handler': 4.12.1 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/signature-v4-multi-region@3.996.46': - dependencies: - '@aws-sdk/types': 3.974.5 - '@smithy/signature-v4': 5.7.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.1116.0': - dependencies: - '@aws-sdk/core': 3.977.9 - '@aws-sdk/nested-clients': 3.997.44 - '@aws-sdk/types': 3.974.5 - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/types@3.974.5': - dependencies: - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.972.40': + '@alchemy.run/node-utils@2.0.0-beta.80': dependencies: - '@smithy/types': 4.18.0 - tslib: 2.8.1 + chokidar: 5.0.0 + rolldown: 1.2.5 - '@aws/lambda-invoke-store@0.3.0': {} + '@alchemy.run/sigil@0.1.0-alpha.1': {} '@babel/generator@8.0.0-rc.3': dependencies: @@ -5458,121 +4961,164 @@ snapshots: '@cloudflare/kv-asset-handler@0.5.0': {} - '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260704.1)': + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260704.1 + workerd: 1.20260918.1 - '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260903.1)': + '@cloudflare/unenv-preset@2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260903.1 + workerd: 1.20261006.1 + + '@cloudflare/vitest-plugin@1.4.0(@cloudflare/workers-types@5.20261006.1)(@types/node@25.9.1)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)))': + dependencies: + cjs-module-lexer: 1.2.3 + esbuild: 0.28.2 + miniflare: 5.20261006.1-alpha(@types/node@25.9.1) + vitest: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + wrangler: 4.149.0(@cloudflare/workers-types@5.20261006.1)(@types/node@25.9.1) + zod: 4.6.5 + transitivePeerDependencies: + - '@cloudflare/workers-types' + - '@types/node' + - bufferutil + - utf-8-validate - '@cloudflare/vitest-plugin@1.1.4(@cloudflare/workers-types@5.20260904.1)(@vitest/runner@4.1.11)(@vitest/snapshot@4.1.11)(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)))': + '@cloudflare/vitest-plugin@1.4.0(@cloudflare/workers-types@5.20261012.1)(@types/node@25.9.1)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)))': dependencies: - '@vitest/runner': 4.1.11 - '@vitest/snapshot': 4.1.11 cjs-module-lexer: 1.2.3 - esbuild: 0.28.1 - miniflare: 5.20260903.0-alpha - vitest: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) - wrangler: 4.129.0(@cloudflare/workers-types@5.20260904.1) - zod: 4.4.3 + esbuild: 0.28.2 + miniflare: 5.20261006.1-alpha(@types/node@25.9.1) + vitest: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + wrangler: 4.149.0(@cloudflare/workers-types@5.20261012.1)(@types/node@25.9.1) + zod: 4.6.5 transitivePeerDependencies: - '@cloudflare/workers-types' + - '@types/node' - bufferutil - utf-8-validate - '@cloudflare/workerd-darwin-64@1.20260704.1': + '@cloudflare/workerd-darwin-64@1.20260918.1': optional: true - '@cloudflare/workerd-darwin-64@1.20260903.1': + '@cloudflare/workerd-darwin-64@1.20261006.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260704.1': + '@cloudflare/workerd-darwin-arm64@1.20260918.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260903.1': + '@cloudflare/workerd-darwin-arm64@1.20261006.1': optional: true - '@cloudflare/workerd-linux-64@1.20260704.1': + '@cloudflare/workerd-linux-64@1.20260918.1': optional: true - '@cloudflare/workerd-linux-64@1.20260903.1': + '@cloudflare/workerd-linux-64@1.20261006.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260704.1': + '@cloudflare/workerd-linux-arm64@1.20260918.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260903.1': + '@cloudflare/workerd-linux-arm64@1.20261006.1': optional: true - '@cloudflare/workerd-windows-64@1.20260704.1': + '@cloudflare/workerd-windows-64@1.20260918.1': optional: true - '@cloudflare/workerd-windows-64@1.20260903.1': + '@cloudflare/workerd-windows-64@1.20261006.1': optional: true - '@cloudflare/workers-types@5.20260904.1': {} + '@cloudflare/workers-types@5.20261006.1': {} + + '@cloudflare/workers-types@5.20261012.1': {} '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@distilled.cloud/aws@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/acme@1.0.0-rc.13(effect@4.0.3)': dependencies: - '@aws-crypto/crc32': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/credential-providers': 3.1127.0 - '@aws-sdk/types': 3.974.5 - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@smithy/shared-ini-file-loader': 4.7.2 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 + + '@distilled.cloud/aws@1.0.0-rc.13(effect@4.0.3)': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) '@smithy/types': 4.18.0 - '@smithy/util-base64': 4.6.2 - aws4fetch: 1.0.20 - effect: 4.0.0-rc.112 - fast-xml-parser: 5.11.1 + effect: 4.0.3 + + '@distilled.cloud/axiom@1.0.0-rc.13(effect@4.0.3)': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 + + '@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.3)': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 + + '@distilled.cloud/core@1.0.0-rc.13(effect@4.0.3)': + dependencies: + effect: 4.0.3 + graphql: 16.11.0 - '@distilled.cloud/axiom@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/doppler@1.0.0-rc.13(effect@4.0.3)': dependencies: - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - effect: 4.0.0-rc.112 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 - '@distilled.cloud/cloudflare@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/fly-io@1.0.0-rc.13(effect@4.0.3)': dependencies: - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - effect: 4.0.0-rc.112 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 - '@distilled.cloud/core@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/gcp@1.0.0-rc.13(effect@4.0.3)': dependencies: - effect: 4.0.0-rc.112 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 - '@distilled.cloud/fly-io@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/hetzner@1.0.0-rc.13(effect@4.0.3)': dependencies: - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - effect: 4.0.0-rc.112 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 - '@distilled.cloud/hetzner@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/infisical@1.0.0-rc.13(effect@4.0.3)': dependencies: - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - effect: 4.0.0-rc.112 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 - '@distilled.cloud/neon@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/neon@1.0.0-rc.13(effect@4.0.3)': dependencies: - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - effect: 4.0.0-rc.112 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 - '@distilled.cloud/planetscale@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/planetscale@1.0.0-rc.13(effect@4.0.3)': dependencies: - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - effect: 4.0.0-rc.112 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 - '@distilled.cloud/railway@1.0.0-rc.8(effect@4.0.0-rc.112)': + '@distilled.cloud/prisma@1.0.0-rc.13(effect@4.0.3)': dependencies: - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - effect: 4.0.0-rc.112 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 + + '@distilled.cloud/railway@1.0.0-rc.13(effect@4.0.3)': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 + + '@distilled.cloud/stripe@1.0.0-rc.13(effect@4.0.3)': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 + + '@distilled.cloud/zerossl@1.0.0-rc.13(effect@4.0.3)': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + effect: 4.0.3 '@docsearch/css@4.7.0': {} @@ -5580,54 +5126,50 @@ snapshots: '@docsearch/sidepanel-js@4.7.0': {} - '@effect/platform-node-shared@4.0.0-rc.112(effect@4.0.0-rc.112)': + '@effect/platform-browser@4.0.3(effect@4.0.3)': dependencies: - '@types/ws': 8.18.1 - effect: 4.0.0-rc.112 - ws: 8.21.3 + effect: 4.0.3 + + '@effect/platform-node-shared@4.0.3(effect@4.0.3)': + dependencies: + '@types/ws': 8.18.2 + effect: 4.0.3 + ws: 8.22.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/platform-node@4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1)': + '@effect/platform-node@4.0.3(effect@4.0.3)(redis@6.2.1)': dependencies: - '@effect/platform-node-shared': 4.0.0-rc.112(effect@4.0.0-rc.112) - effect: 4.0.0-rc.112 - mime: 4.1.0 + '@effect/platform-node-shared': 4.0.3(effect@4.0.3) + effect: 4.0.3 redis: 6.2.1 - undici: 8.10.1 + undici: 8.11.2 transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/sql-d1@4.0.0-rc.112(effect@4.0.0-rc.112)': + '@effect/sql-d1@4.0.3(effect@4.0.3)': dependencies: - '@cloudflare/workers-types': 5.20260904.1 - effect: 4.0.0-rc.112 + '@cloudflare/workers-types': 5.20261012.1 + effect: 4.0.3 - '@effect/sql-pg@4.0.0-rc.112(effect@4.0.0-rc.112)': + '@effect/sql-pg@4.0.3(effect@4.0.3)': dependencies: - effect: 4.0.0-rc.112 - pg: 8.23.0 - pg-connection-string: 2.14.0 - pg-cursor: 2.22.0(pg@8.23.0) - pg-pool: 3.14.0(pg@8.23.0) - pg-types: 4.1.0 - transitivePeerDependencies: - - pg-native + effect: 4.0.3 - '@effect/sql-sqlite-do@4.0.0-rc.112(effect@4.0.0-rc.112)': + '@effect/sql-sqlite-do@4.0.3(effect@4.0.3)': dependencies: - effect: 4.0.0-rc.112 + effect: 4.0.3 - '@effect/sql-sqlite-node@4.0.0-rc.112(effect@4.0.0-rc.112)': + '@effect/sql-sqlite-node@4.0.3(effect@4.0.3)': dependencies: - effect: 4.0.0-rc.112 + effect: 4.0.3 - '@effect/vitest@4.0.0-rc.112(effect@4.0.0-rc.112)(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)))': + '@effect/vitest@4.0.3(effect@4.0.3)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)))': dependencies: - effect: 4.0.0-rc.112 - vitest: 4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + effect: 4.0.3 + vitest: 5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)': dependencies: @@ -5663,151 +5205,151 @@ snapshots: '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/aix-ppc64@0.28.1': + '@esbuild/aix-ppc64@0.28.2': optional: true '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm64@0.28.1': + '@esbuild/android-arm64@0.28.2': optional: true '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-arm@0.28.1': + '@esbuild/android-arm@0.28.2': optional: true '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/android-x64@0.28.1': + '@esbuild/android-x64@0.28.2': optional: true '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.28.1': + '@esbuild/darwin-arm64@0.28.2': optional: true '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/darwin-x64@0.28.1': + '@esbuild/darwin-x64@0.28.2': optional: true '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.28.1': + '@esbuild/freebsd-arm64@0.28.2': optional: true '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.28.1': + '@esbuild/freebsd-x64@0.28.2': optional: true '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm64@0.28.1': + '@esbuild/linux-arm64@0.28.2': optional: true '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-arm@0.28.1': + '@esbuild/linux-arm@0.28.2': optional: true '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-ia32@0.28.1': + '@esbuild/linux-ia32@0.28.2': optional: true '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-loong64@0.28.1': + '@esbuild/linux-loong64@0.28.2': optional: true '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-mips64el@0.28.1': + '@esbuild/linux-mips64el@0.28.2': optional: true '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-ppc64@0.28.1': + '@esbuild/linux-ppc64@0.28.2': optional: true '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.28.1': + '@esbuild/linux-riscv64@0.28.2': optional: true '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-s390x@0.28.1': + '@esbuild/linux-s390x@0.28.2': optional: true '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/linux-x64@0.28.1': + '@esbuild/linux-x64@0.28.2': optional: true - '@esbuild/netbsd-arm64@0.28.1': + '@esbuild/netbsd-arm64@0.28.2': optional: true '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.28.1': + '@esbuild/netbsd-x64@0.28.2': optional: true '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.28.1': + '@esbuild/openbsd-arm64@0.28.2': optional: true '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.28.1': + '@esbuild/openbsd-x64@0.28.2': optional: true - '@esbuild/openharmony-arm64@0.28.1': + '@esbuild/openharmony-arm64@0.28.2': optional: true '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.28.1': + '@esbuild/sunos-x64@0.28.2': optional: true '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-arm64@0.28.1': + '@esbuild/win32-arm64@0.28.2': optional: true '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-ia32@0.28.1': + '@esbuild/win32-ia32@0.28.2': optional: true '@esbuild/win32-x64@0.23.1': optional: true - '@esbuild/win32-x64@0.28.1': + '@esbuild/win32-x64@0.28.2': optional: true '@floating-ui/core@1.8.0': @@ -5821,21 +5363,25 @@ snapshots: '@floating-ui/utils@0.2.12': {} - '@foldkit/ui@0.157.0(effect@4.0.0-rc.112)(foldkit@0.157.0(effect@4.0.0-rc.112))': + '@foldkit/ui@0.168.0(effect@4.0.3)(foldkit@0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3))': dependencies: '@floating-ui/dom': 1.8.0 - effect: 4.0.0-rc.112 - foldkit: 0.157.0(effect@4.0.0-rc.112) - - '@foldkit/vite-plugin@0.20.1(effect@4.0.0-rc.112)(foldkit@0.157.0(effect@4.0.0-rc.112))(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))': - dependencies: - effect: 4.0.0-rc.112 - foldkit: 0.157.0(effect@4.0.0-rc.112) - magic-string: 1.2.3 - vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + effect: 4.0.3 + foldkit: 0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3) + + '@foldkit/vite-plugin@0.27.1(effect@4.0.3)(foldkit@0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3))(redis@6.2.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))': + dependencies: + '@effect/platform-node': 4.0.3(effect@4.0.3)(redis@6.2.1) + '@effect/platform-node-shared': 4.0.3(effect@4.0.3) + effect: 4.0.3 + foldkit: 0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3) + magic-string: 1.4.3 + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) ws: 8.21.3 transitivePeerDependencies: - bufferutil + - redis - utf-8-validate '@fontsource-variable/ibm-plex-sans@5.3.0': {} @@ -5873,19 +5419,14 @@ snapshots: '@img/colour@1.1.0': {} - '@img/sharp-darwin-arm64@0.35.2': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.3.1 - optional: true - '@img/sharp-darwin-arm64@0.35.4': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.3.3 optional: true - '@img/sharp-darwin-x64@0.35.2': + '@img/sharp-darwin-arm64@0.35.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.3.1 + '@img/sharp-libvips-darwin-arm64': 1.3.4 optional: true '@img/sharp-darwin-x64@0.35.4': @@ -5893,9 +5434,9 @@ snapshots: '@img/sharp-libvips-darwin-x64': 1.3.3 optional: true - '@img/sharp-freebsd-wasm32@0.35.2': - dependencies: - '@img/sharp-wasm32': 0.35.2 + '@img/sharp-darwin-x64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.3.4 optional: true '@img/sharp-freebsd-wasm32@0.35.4': @@ -5903,69 +5444,69 @@ snapshots: '@img/sharp-wasm32': 0.35.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.3.1': + '@img/sharp-freebsd-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 optional: true '@img/sharp-libvips-darwin-arm64@1.3.3': optional: true - '@img/sharp-libvips-darwin-x64@1.3.1': + '@img/sharp-libvips-darwin-arm64@1.3.4': optional: true '@img/sharp-libvips-darwin-x64@1.3.3': optional: true - '@img/sharp-libvips-linux-arm64@1.3.1': + '@img/sharp-libvips-darwin-x64@1.3.4': optional: true '@img/sharp-libvips-linux-arm64@1.3.3': optional: true - '@img/sharp-libvips-linux-arm@1.3.1': + '@img/sharp-libvips-linux-arm64@1.3.4': optional: true '@img/sharp-libvips-linux-arm@1.3.3': optional: true - '@img/sharp-libvips-linux-ppc64@1.3.1': + '@img/sharp-libvips-linux-arm@1.3.4': optional: true '@img/sharp-libvips-linux-ppc64@1.3.3': optional: true - '@img/sharp-libvips-linux-riscv64@1.3.1': + '@img/sharp-libvips-linux-ppc64@1.3.4': optional: true '@img/sharp-libvips-linux-riscv64@1.3.3': optional: true - '@img/sharp-libvips-linux-s390x@1.3.1': + '@img/sharp-libvips-linux-riscv64@1.3.4': optional: true '@img/sharp-libvips-linux-s390x@1.3.3': optional: true - '@img/sharp-libvips-linux-x64@1.3.1': + '@img/sharp-libvips-linux-s390x@1.3.4': optional: true '@img/sharp-libvips-linux-x64@1.3.3': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.3.1': + '@img/sharp-libvips-linux-x64@1.3.4': optional: true '@img/sharp-libvips-linuxmusl-arm64@1.3.3': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.3.1': + '@img/sharp-libvips-linuxmusl-arm64@1.3.4': optional: true '@img/sharp-libvips-linuxmusl-x64@1.3.3': optional: true - '@img/sharp-linux-arm64@0.35.2': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.3.1 + '@img/sharp-libvips-linuxmusl-x64@1.3.4': optional: true '@img/sharp-linux-arm64@0.35.4': @@ -5973,9 +5514,9 @@ snapshots: '@img/sharp-libvips-linux-arm64': 1.3.3 optional: true - '@img/sharp-linux-arm@0.35.2': + '@img/sharp-linux-arm64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.3.1 + '@img/sharp-libvips-linux-arm64': 1.3.4 optional: true '@img/sharp-linux-arm@0.35.4': @@ -5983,9 +5524,9 @@ snapshots: '@img/sharp-libvips-linux-arm': 1.3.3 optional: true - '@img/sharp-linux-ppc64@0.35.2': + '@img/sharp-linux-arm@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.3.1 + '@img/sharp-libvips-linux-arm': 1.3.4 optional: true '@img/sharp-linux-ppc64@0.35.4': @@ -5993,9 +5534,9 @@ snapshots: '@img/sharp-libvips-linux-ppc64': 1.3.3 optional: true - '@img/sharp-linux-riscv64@0.35.2': + '@img/sharp-linux-ppc64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.3.1 + '@img/sharp-libvips-linux-ppc64': 1.3.4 optional: true '@img/sharp-linux-riscv64@0.35.4': @@ -6003,9 +5544,9 @@ snapshots: '@img/sharp-libvips-linux-riscv64': 1.3.3 optional: true - '@img/sharp-linux-s390x@0.35.2': + '@img/sharp-linux-riscv64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.3.1 + '@img/sharp-libvips-linux-riscv64': 1.3.4 optional: true '@img/sharp-linux-s390x@0.35.4': @@ -6013,9 +5554,9 @@ snapshots: '@img/sharp-libvips-linux-s390x': 1.3.3 optional: true - '@img/sharp-linux-x64@0.35.2': + '@img/sharp-linux-s390x@0.35.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.3.1 + '@img/sharp-libvips-linux-s390x': 1.3.4 optional: true '@img/sharp-linux-x64@0.35.4': @@ -6023,9 +5564,9 @@ snapshots: '@img/sharp-libvips-linux-x64': 1.3.3 optional: true - '@img/sharp-linuxmusl-arm64@0.35.2': + '@img/sharp-linux-x64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.3.1 + '@img/sharp-libvips-linux-x64': 1.3.4 optional: true '@img/sharp-linuxmusl-arm64@0.35.4': @@ -6033,9 +5574,9 @@ snapshots: '@img/sharp-libvips-linuxmusl-arm64': 1.3.3 optional: true - '@img/sharp-linuxmusl-x64@0.35.2': + '@img/sharp-linuxmusl-arm64@0.35.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.3.1 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 optional: true '@img/sharp-linuxmusl-x64@0.35.4': @@ -6043,9 +5584,9 @@ snapshots: '@img/sharp-libvips-linuxmusl-x64': 1.3.3 optional: true - '@img/sharp-wasm32@0.35.2': - dependencies: - '@emnapi/runtime': 1.11.3 + '@img/sharp-linuxmusl-x64@0.35.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 optional: true '@img/sharp-wasm32@0.35.4': @@ -6053,9 +5594,9 @@ snapshots: '@emnapi/runtime': 1.11.3 optional: true - '@img/sharp-webcontainers-wasm32@0.35.2': + '@img/sharp-wasm32@0.35.5': dependencies: - '@img/sharp-wasm32': 0.35.2 + '@emnapi/runtime': 1.11.3 optional: true '@img/sharp-webcontainers-wasm32@0.35.4': @@ -6063,24 +5604,29 @@ snapshots: '@img/sharp-wasm32': 0.35.4 optional: true - '@img/sharp-win32-arm64@0.35.2': + '@img/sharp-webcontainers-wasm32@0.35.5': + dependencies: + '@img/sharp-wasm32': 0.35.5 optional: true '@img/sharp-win32-arm64@0.35.4': optional: true - '@img/sharp-win32-ia32@0.35.2': + '@img/sharp-win32-arm64@0.35.5': optional: true '@img/sharp-win32-ia32@0.35.4': optional: true - '@img/sharp-win32-x64@0.35.2': + '@img/sharp-win32-ia32@0.35.5': optional: true '@img/sharp-win32-x64@0.35.4': optional: true + '@img/sharp-win32-x64@0.35.5': + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -6104,6 +5650,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/sourcemap-codec@1.6.0': {} + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -6112,7 +5660,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 '@js-sdsl/ordered-map@4.4.2': {} @@ -6153,8 +5701,8 @@ snapshots: '@libsql/isomorphic-ws@0.1.5': dependencies: - '@types/ws': 8.18.1 - ws: 8.21.3 + '@types/ws': 8.18.2 + ws: 8.22.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -6200,24 +5748,6 @@ snapshots: chevrotain: 10.5.0 lilconfig: 2.1.0 - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4': - optional: true - - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4': - optional: true - - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4': - optional: true - '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 @@ -6234,19 +5764,9 @@ snapshots: '@neon-rs/load@0.0.4': {} - '@nodable/entities@3.0.0': {} - - '@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.3 + '@neon/functions@0.11.0(hono@4.11.4)': + optionalDependencies: + hono: 4.11.4 '@octokit/auth-token@6.0.0': {} @@ -6801,72 +6321,12 @@ snapshots: '@sindresorhus/is@7.2.0': {} - '@smithy/core@3.33.3': - dependencies: - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@smithy/credential-provider-imds@4.5.2': - dependencies: - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@smithy/fetch-http-handler@5.8.0': - dependencies: - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@smithy/is-array-buffer@2.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/node-config-provider@4.6.2': - dependencies: - '@smithy/core': 3.33.3 - tslib: 2.8.1 - - '@smithy/node-http-handler@4.12.1': - dependencies: - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - - '@smithy/shared-ini-file-loader@4.7.2': - dependencies: - '@smithy/core': 3.33.3 - tslib: 2.8.1 - - '@smithy/signature-v4@5.7.3': - dependencies: - '@smithy/core': 3.33.3 - '@smithy/types': 4.18.0 - tslib: 2.8.1 - '@smithy/types@4.18.0': dependencies: tslib: 2.8.1 - '@smithy/util-base64@4.6.2': - dependencies: - '@smithy/core': 3.33.3 - tslib: 2.8.1 - - '@smithy/util-buffer-from@2.2.0': - dependencies: - '@smithy/is-array-buffer': 2.2.0 - tslib: 2.8.1 - - '@smithy/util-utf8@2.3.0': - dependencies: - '@smithy/util-buffer-from': 2.2.0 - tslib: 2.8.1 - '@speed-highlight/core@1.2.24': {} - '@standard-schema/spec@1.1.0': {} - '@tailwindcss/node@4.3.3': dependencies: '@jridgewell/remapping': 2.3.5 @@ -6928,12 +6388,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - '@tailwindcss/vite@4.3.3(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))': + '@tailwindcss/vite@4.3.3(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) '@turbo/darwin-64@2.8.20': optional: true @@ -7028,58 +6488,28 @@ snapshots: '@types/web-bluetooth@0.0.21': {} - '@types/ws@8.18.1': + '@types/ws@8.18.2': dependencies: '@types/node': 25.9.1 '@ungap/structured-clone@1.4.0': {} - '@vitejs/plugin-vue@6.0.8(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.2))': + '@vitejs/plugin-vue@6.0.8(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.2))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) vue: 3.5.40(typescript@6.0.2) - '@vitest/expect@4.1.11': - dependencies: - '@standard-schema/spec': 1.1.0 - '@types/chai': 5.2.3 - '@vitest/spy': 4.1.11 - '@vitest/utils': 4.1.11 - chai: 6.2.2 - tinyrainbow: 3.1.1 - - '@vitest/mocker@4.1.11(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))': + '@vitest/mocker@5.0.4(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.11 + '@jridgewell/trace-mapping': 0.3.31 + '@vitest/spy': 5.0.4 estree-walker: 3.0.3 - magic-string: 0.30.21 + magic-string: 1.4.3 optionalDependencies: - vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) - - '@vitest/pretty-format@4.1.11': - dependencies: - tinyrainbow: 3.1.1 - - '@vitest/runner@4.1.11': - dependencies: - '@vitest/utils': 4.1.11 - pathe: 2.0.3 - - '@vitest/snapshot@4.1.11': - dependencies: - '@vitest/pretty-format': 4.1.11 - '@vitest/utils': 4.1.11 - magic-string: 0.30.21 - pathe: 2.0.3 - - '@vitest/spy@4.1.11': {} + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) - '@vitest/utils@4.1.11': - dependencies: - '@vitest/pretty-format': 4.1.11 - convert-source-map: 2.0.0 - tinyrainbow: 3.1.1 + '@vitest/spy@5.0.4': {} '@vue/compiler-core@3.5.40': dependencies: @@ -7175,66 +6605,61 @@ snapshots: dependencies: event-target-shim: 5.0.1 - alchemy@2.0.0-beta.76(@effect/platform-node@4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1))(@effect/sql-pg@4.0.0-rc.112(effect@4.0.0-rc.112))(@types/node@25.9.1)(effect@4.0.0-rc.112)(pg@8.23.0)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)))(ws@8.21.3): - dependencies: - '@alchemy.run/cloudflare-runtime': 2.0.0-beta.76(@distilled.cloud/cloudflare@1.0.0-rc.8(effect@4.0.0-rc.112))(@effect/platform-node@4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1))(@types/node@25.9.1)(effect@4.0.0-rc.112)(rolldown@1.2.5)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) - '@alchemy.run/floci': 2.0.0-beta.76(effect@4.0.0-rc.112) - '@alchemy.run/node-utils': 2.0.0-beta.76 - '@aws-sdk/credential-providers': 3.1127.0 - '@clack/prompts': 1.7.0 - '@distilled.cloud/aws': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@distilled.cloud/axiom': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@distilled.cloud/cloudflare': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@distilled.cloud/core': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@distilled.cloud/fly-io': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@distilled.cloud/hetzner': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@distilled.cloud/neon': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@distilled.cloud/planetscale': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@distilled.cloud/railway': 1.0.0-rc.8(effect@4.0.0-rc.112) - '@effect/sql-d1': 4.0.0-rc.112(effect@4.0.0-rc.112) - '@effect/sql-sqlite-do': 4.0.0-rc.112(effect@4.0.0-rc.112) - '@effect/vitest': 4.0.0-rc.112(effect@4.0.0-rc.112)(vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) + alchemy@2.0.0-beta.80(@effect/platform-node@4.0.3(effect@4.0.3)(redis@6.2.1))(@effect/sql-pg@4.0.3(effect@4.0.3))(@effect/vitest@4.0.3(effect@4.0.3)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))))(@types/node@25.9.1)(effect@4.0.3)(hono@4.11.4)(pg@8.23.0)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(ws@8.22.0): + dependencies: + '@alchemy.run/cloudflare-runtime': 2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.3))(@effect/platform-node@4.0.3(effect@4.0.3)(redis@6.2.1))(@types/node@25.9.1)(effect@4.0.3)(rolldown@1.2.5)(typescript@6.0.2)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.3) + '@alchemy.run/node-utils': 2.0.0-beta.80 + '@alchemy.run/sigil': 0.1.0-alpha.1 + '@distilled.cloud/acme': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.3) + '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.3) + '@effect/sql-d1': 4.0.3(effect@4.0.3) + '@effect/sql-sqlite-do': 4.0.3(effect@4.0.3) '@libsql/client': 0.17.4 + '@neon/functions': 0.11.0(hono@4.11.4) '@octokit/rest': 22.0.1 '@octokit/webhooks': 14.2.0 '@prisma/dev': 0.20.0(typescript@6.0.2) - '@smithy/node-config-provider': 4.6.2 - '@smithy/shared-ini-file-loader': 4.7.2 - '@smithy/types': 4.18.0 '@types/aws-lambda': 8.10.163 - aws4fetch: 1.0.20 - capnweb: 0.6.1 - effect: 4.0.0-rc.112 - fast-glob: 3.3.3 - fast-xml-parser: 5.11.1 - ink: 6.8.0(react@19.2.8) - jszip: 3.10.1 + capnweb: 0.12.0 + effect: 4.0.3 + fflate: 0.8.3 libsodium-wrappers: 0.8.4 pathe: 2.0.3 picomatch: 4.0.5 - react: 19.2.8 rolldown: 1.2.5 - undici: 7.29.0 + tinyglobby: 0.2.17 yaml: 2.9.0 optionalDependencies: - '@effect/platform-node': 4.0.0-rc.112(effect@4.0.0-rc.112)(redis@6.2.1) - '@effect/sql-pg': 4.0.0-rc.112(effect@4.0.0-rc.112) + '@effect/platform-node': 4.0.3(effect@4.0.3)(redis@6.2.1) + '@effect/sql-pg': 4.0.3(effect@4.0.3) + '@effect/vitest': 4.0.3(effect@4.0.3)(vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))) pg: 8.23.0 - vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) - ws: 8.21.3 + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + ws: 8.22.0 transitivePeerDependencies: - '@types/node' - '@types/react' - bufferutil + - hono - proxy-agent - react-devtools-core - typescript - utf-8-validate - - vitest - - ansi-escapes@7.3.0: - dependencies: - environment: 1.1.0 ansi-regex@5.0.1: {} @@ -7248,8 +6673,6 @@ snapshots: ansis@4.3.1: {} - anynum@1.0.1: {} - archiver-utils@5.0.2: dependencies: glob: 10.5.0 @@ -7290,10 +6713,6 @@ snapshots: async@3.2.6: {} - auto-bind@5.0.1: {} - - aws4fetch@1.0.20: {} - b4a@1.8.1: {} balanced-match@1.0.2: {} @@ -7356,16 +6775,10 @@ snapshots: blake3-wasm@2.1.5: {} - bowser@2.14.1: {} - brace-expansion@2.1.4: dependencies: balanced-match: 1.0.2 - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - buffer-crc32@1.0.0: {} buffer@5.7.1: @@ -7385,17 +6798,15 @@ snapshots: cac@7.0.0: {} - capnp-es@0.0.14(typescript@6.0.2): + capnp-es@0.0.16(typescript@6.0.2): optionalDependencies: typescript: 6.0.2 - capnweb@0.6.1: {} + capnweb@0.12.0: {} ccount@2.0.1: {} - chai@6.2.2: {} - - chalk@5.6.2: {} + chai@6.3.0: {} character-entities-html4@2.1.0: {} @@ -7410,21 +6821,14 @@ snapshots: lodash: 4.17.21 regexp-to-ast: 0.5.0 + chokidar@5.0.0: + dependencies: + readdirp: 5.1.1 + chownr@1.1.4: {} cjs-module-lexer@1.2.3: {} - cli-boxes@3.0.0: {} - - cli-cursor@4.0.0: - dependencies: - restore-cursor: 4.0.0 - - cli-truncate@5.2.0: - dependencies: - slice-ansi: 8.0.0 - string-width: 8.2.2 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -7439,10 +6843,6 @@ snapshots: cluster-key-slot@1.1.2: {} - code-excerpt@4.0.0: - dependencies: - convert-to-spaces: 2.0.1 - color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -7461,10 +6861,6 @@ snapshots: content-type@3.0.0: {} - convert-source-map@2.0.0: {} - - convert-to-spaces@2.0.1: {} - cookie@1.1.1: {} core-util-is@1.0.3: {} @@ -7541,10 +6937,7 @@ snapshots: eastasianwidth@0.2.0: {} - effect@4.0.0-rc.112: - dependencies: - fast-check: 4.9.0 - msgpackr: 2.1.0 + effect@4.0.3: {} emoji-regex@10.6.0: {} @@ -7567,14 +6960,10 @@ snapshots: entities@8.0.0: {} - environment@1.1.0: {} - error-stack-parser-es@1.0.5: {} es-module-lexer@2.3.2: {} - es-toolkit@1.52.0: {} - esbuild@0.23.1: optionalDependencies: '@esbuild/aix-ppc64': 0.23.1 @@ -7602,39 +6991,37 @@ snapshots: '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 - esbuild@0.28.1: + esbuild@0.28.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.28.1 - '@esbuild/android-arm': 0.28.1 - '@esbuild/android-arm64': 0.28.1 - '@esbuild/android-x64': 0.28.1 - '@esbuild/darwin-arm64': 0.28.1 - '@esbuild/darwin-x64': 0.28.1 - '@esbuild/freebsd-arm64': 0.28.1 - '@esbuild/freebsd-x64': 0.28.1 - '@esbuild/linux-arm': 0.28.1 - '@esbuild/linux-arm64': 0.28.1 - '@esbuild/linux-ia32': 0.28.1 - '@esbuild/linux-loong64': 0.28.1 - '@esbuild/linux-mips64el': 0.28.1 - '@esbuild/linux-ppc64': 0.28.1 - '@esbuild/linux-riscv64': 0.28.1 - '@esbuild/linux-s390x': 0.28.1 - '@esbuild/linux-x64': 0.28.1 - '@esbuild/netbsd-arm64': 0.28.1 - '@esbuild/netbsd-x64': 0.28.1 - '@esbuild/openbsd-arm64': 0.28.1 - '@esbuild/openbsd-x64': 0.28.1 - '@esbuild/openharmony-arm64': 0.28.1 - '@esbuild/sunos-x64': 0.28.1 - '@esbuild/win32-arm64': 0.28.1 - '@esbuild/win32-ia32': 0.28.1 - '@esbuild/win32-x64': 0.28.1 + '@esbuild/aix-ppc64': 0.28.2 + '@esbuild/android-arm': 0.28.2 + '@esbuild/android-arm64': 0.28.2 + '@esbuild/android-x64': 0.28.2 + '@esbuild/darwin-arm64': 0.28.2 + '@esbuild/darwin-x64': 0.28.2 + '@esbuild/freebsd-arm64': 0.28.2 + '@esbuild/freebsd-x64': 0.28.2 + '@esbuild/linux-arm': 0.28.2 + '@esbuild/linux-arm64': 0.28.2 + '@esbuild/linux-ia32': 0.28.2 + '@esbuild/linux-loong64': 0.28.2 + '@esbuild/linux-mips64el': 0.28.2 + '@esbuild/linux-ppc64': 0.28.2 + '@esbuild/linux-riscv64': 0.28.2 + '@esbuild/linux-s390x': 0.28.2 + '@esbuild/linux-x64': 0.28.2 + '@esbuild/netbsd-arm64': 0.28.2 + '@esbuild/netbsd-x64': 0.28.2 + '@esbuild/openbsd-arm64': 0.28.2 + '@esbuild/openbsd-x64': 0.28.2 + '@esbuild/openharmony-arm64': 0.28.2 + '@esbuild/sunos-x64': 0.28.2 + '@esbuild/win32-arm64': 0.28.2 + '@esbuild/win32-ia32': 0.28.2 + '@esbuild/win32-x64': 0.28.2 escalade@3.2.0: {} - escape-string-regexp@2.0.0: {} - estree-walker@2.0.2: {} estree-walker@3.0.3: @@ -7655,20 +7042,8 @@ snapshots: expect-type@1.4.0: {} - fast-check@4.9.0: - dependencies: - pure-rand: 8.4.2 - fast-fifo@1.3.2: {} - 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@3.0.2: @@ -7679,43 +7054,24 @@ snapshots: dependencies: fast-string-width: 3.0.2 - fast-xml-builder@1.3.1: - dependencies: - path-expression-matcher: 1.6.2 - xml-naming: 0.3.0 - - fast-xml-parser@5.11.1: - dependencies: - '@nodable/entities': 3.0.0 - fast-xml-builder: 1.3.1 - is-unsafe: 2.0.2 - path-expression-matcher: 1.6.2 - strnum: 2.4.2 - xml-naming: 0.3.0 - - fastq@1.20.3: - dependencies: - reusify: 1.1.0 - fdb-tuple@1.0.0: {} fdir@6.5.0(picomatch@4.0.5): optionalDependencies: picomatch: 4.0.5 - file-uri-to-path@1.0.0: {} + fflate@0.8.3: {} - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 + file-uri-to-path@1.0.0: {} focus-trap@8.2.2: dependencies: tabbable: 6.5.0 - foldkit@0.157.0(effect@4.0.0-rc.112): + foldkit@0.168.0(@effect/platform-browser@4.0.3(effect@4.0.3))(effect@4.0.3): dependencies: - effect: 4.0.0-rc.112 + '@effect/platform-browser': 4.0.3(effect@4.0.3) + effect: 4.0.3 parse5: 8.0.1 foreground-child@3.3.1: @@ -7747,10 +7103,6 @@ snapshots: github-from-package@0.0.0: {} - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - glob@10.5.0: dependencies: foreground-child: 3.3.1 @@ -7766,6 +7118,8 @@ snapshots: graphmatch@1.1.1: {} + graphql@16.11.0: {} + hast-util-to-html@9.0.5: dependencies: '@types/hast': 3.0.5 @@ -7798,70 +7152,18 @@ snapshots: ieee754@1.2.1: {} - immediate@3.0.6: {} - import-meta-resolve@4.2.0: {} import-without-cache@0.2.5: {} - indent-string@5.0.0: {} - inherits@2.0.4: {} ini@1.3.8: {} - ink@6.8.0(react@19.2.8): - dependencies: - '@alcalzone/ansi-tokenize': 0.2.5 - ansi-escapes: 7.3.0 - ansi-styles: 6.2.3 - auto-bind: 5.0.1 - chalk: 5.6.2 - cli-boxes: 3.0.0 - cli-cursor: 4.0.0 - cli-truncate: 5.2.0 - code-excerpt: 4.0.0 - es-toolkit: 1.52.0 - indent-string: 5.0.0 - is-in-ci: 2.0.0 - patch-console: 2.0.0 - react: 19.2.8 - react-reconciler: 0.33.0(react@19.2.8) - scheduler: 0.27.0 - signal-exit: 3.0.7 - slice-ansi: 8.0.0 - stack-utils: 2.0.6 - string-width: 8.2.2 - terminal-size: 4.0.1 - type-fest: 5.9.0 - widest-line: 6.0.0 - wrap-ansi: 9.0.2 - ws: 8.21.3 - yoga-layout: 3.2.1 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - is-extglob@2.1.1: {} - is-fullwidth-code-point@3.0.0: {} - is-fullwidth-code-point@5.1.0: - dependencies: - get-east-asian-width: 1.6.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-in-ci@2.0.0: {} - - is-number@7.0.0: {} - is-stream@2.0.1: {} - is-unsafe@2.0.2: {} - isarray@1.0.0: {} isexe@2.0.0: {} @@ -7884,13 +7186,6 @@ snapshots: jsonc-parser@3.3.1: {} - jszip@3.10.1: - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.8 - setimmediate: 1.0.5 - kleur@4.1.5: {} launch-editor@2.14.1: @@ -7925,10 +7220,6 @@ snapshots: '@libsql/linux-x64-musl': 0.5.29 '@libsql/win32-x64-msvc': 0.5.29 - lie@3.3.0: - dependencies: - immediate: 3.0.6 - lightningcss-android-arm64@1.32.0: optional: true @@ -8043,9 +7334,9 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@1.2.3: + magic-string@1.4.3: dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 mark.js@8.11.1: {} @@ -8061,8 +7352,6 @@ snapshots: unist-util-visit: 5.1.0 vfile: 6.0.3 - merge2@1.4.1: {} - micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 @@ -8080,26 +7369,20 @@ snapshots: micromark-util-types@2.0.2: {} - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.2 - - mime@4.1.0: {} - - mimic-fn@2.1.0: {} + mime@4.1.1: {} mimic-response@3.1.0: {} - miniflare@5.20260903.0-alpha: + miniflare@5.20261006.1-alpha(@types/node@25.9.1): dependencies: '@cspotcode/source-map-support': 0.8.1 - sharp: 0.35.2 - undici: 7.29.0 - workerd: 1.20260903.1 + sharp: 0.35.5(@types/node@25.9.1) + undici: 7.29.1 + workerd: 1.20261006.1 ws: 8.21.0 youch: 4.1.0-beta.10 transitivePeerDependencies: + - '@types/node' - bufferutil - utf-8-validate @@ -8125,22 +7408,6 @@ snapshots: ms@2.1.3: {} - msgpackr-extract@3.0.4: - dependencies: - node-gyp-build-optional-packages: 5.2.2 - optionalDependencies: - '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.4 - '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.4 - '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.4 - '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.4 - '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.4 - '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.4 - optional: true - - msgpackr@2.1.0: - optionalDependencies: - msgpackr-extract: 3.0.4 - nan@2.28.0: optional: true @@ -8152,27 +7419,18 @@ snapshots: dependencies: semver: 7.8.5 - node-gyp-build-optional-packages@5.2.2: - dependencies: - detect-libc: 2.1.2 - optional: true - node-gyp-build@4.8.4: {} normalize-path@3.0.0: {} - obuf@1.1.2: {} - obug@2.1.4: {} + obug@3.0.0: {} + once@1.4.0: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - oniguruma-parser@0.12.2: {} oniguruma-to-es@4.3.6: @@ -8231,16 +7489,10 @@ snapshots: package-manager-detector@1.8.0: {} - pako@1.0.11: {} - parse5@8.0.1: dependencies: entities: 8.0.0 - patch-console@2.0.0: {} - - path-expression-matcher@1.6.2: {} - path-key@3.1.1: {} path-scurry@1.11.1: @@ -8259,21 +7511,19 @@ snapshots: pg-cloudflare@1.4.0: optional: true - pg-connection-string@2.14.0: {} - - pg-cursor@2.22.0(pg@8.23.0): - dependencies: - pg: 8.23.0 - - pg-int8@1.0.1: {} + pg-connection-string@2.14.0: + optional: true - pg-numeric@1.0.2: {} + pg-int8@1.0.1: + optional: true pg-pool@3.14.0(pg@8.23.0): dependencies: pg: 8.23.0 + optional: true - pg-protocol@1.16.0: {} + pg-protocol@1.16.0: + optional: true pg-types@2.2.0: dependencies: @@ -8282,16 +7532,7 @@ snapshots: postgres-bytea: 1.0.1 postgres-date: 1.0.7 postgres-interval: 1.2.0 - - pg-types@4.1.0: - dependencies: - pg-int8: 1.0.1 - pg-numeric: 1.0.2 - postgres-array: 3.0.4 - postgres-bytea: 3.0.0 - postgres-date: 2.1.0 - postgres-interval: 3.0.0 - postgres-range: 1.1.4 + optional: true pg@8.23.0: dependencies: @@ -8302,17 +7543,19 @@ snapshots: pgpass: 1.0.5 optionalDependencies: pg-cloudflare: 1.4.0 + optional: true pgpass@1.0.5: dependencies: split2: 4.2.0 + optional: true picocolors@1.1.1: {} - picomatch@2.3.2: {} - picomatch@4.0.5: {} + picomatch@4.0.7: {} + playwright-core@1.63.0: {} playwright@1.63.0: @@ -8325,27 +7568,19 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postgres-array@2.0.0: {} - - postgres-array@3.0.4: {} - - postgres-bytea@1.0.1: {} - - postgres-bytea@3.0.0: - dependencies: - obuf: 1.1.2 + postgres-array@2.0.0: + optional: true - postgres-date@1.0.7: {} + postgres-bytea@1.0.1: + optional: true - postgres-date@2.1.0: {} + postgres-date@1.0.7: + optional: true postgres-interval@1.2.0: dependencies: xtend: 4.0.2 - - postgres-interval@3.0.0: {} - - postgres-range@1.1.4: {} + optional: true prebuild-install@7.1.3: dependencies: @@ -8402,12 +7637,8 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 - pure-rand@8.4.2: {} - quansync@1.0.0: {} - queue-microtask@1.2.3: {} - rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -8415,13 +7646,6 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-reconciler@0.33.0(react@19.2.8): - dependencies: - react: 19.2.8 - scheduler: 0.27.0 - - react@19.2.8: {} - readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -8450,6 +7674,8 @@ snapshots: dependencies: minimatch: 5.1.9 + readdirp@5.1.1: {} + redis@6.2.1: dependencies: '@redis/bloom': 6.2.1(@redis/client@6.2.1) @@ -8479,15 +7705,8 @@ snapshots: resolve-pkg-maps@1.0.0: {} - restore-cursor@4.0.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - retry@0.12.0: {} - reusify@1.1.0: {} - rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.12(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0))(typescript@6.0.2): dependencies: '@babel/generator': 8.0.0-rc.3 @@ -8617,54 +7836,14 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.2.7 '@rolldown/binding-win32-x64-msvc': 1.2.7 - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} safer-buffer@2.1.2: {} - scheduler@0.27.0: {} - semver@7.8.5: {} - setimmediate@1.0.5: {} - - sharp@0.35.2: - dependencies: - '@img/colour': 1.1.0 - detect-libc: 2.1.2 - semver: 7.8.5 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.35.2 - '@img/sharp-darwin-x64': 0.35.2 - '@img/sharp-freebsd-wasm32': 0.35.2 - '@img/sharp-libvips-darwin-arm64': 1.3.1 - '@img/sharp-libvips-darwin-x64': 1.3.1 - '@img/sharp-libvips-linux-arm': 1.3.1 - '@img/sharp-libvips-linux-arm64': 1.3.1 - '@img/sharp-libvips-linux-ppc64': 1.3.1 - '@img/sharp-libvips-linux-riscv64': 1.3.1 - '@img/sharp-libvips-linux-s390x': 1.3.1 - '@img/sharp-libvips-linux-x64': 1.3.1 - '@img/sharp-libvips-linuxmusl-arm64': 1.3.1 - '@img/sharp-libvips-linuxmusl-x64': 1.3.1 - '@img/sharp-linux-arm': 0.35.2 - '@img/sharp-linux-arm64': 0.35.2 - '@img/sharp-linux-ppc64': 0.35.2 - '@img/sharp-linux-riscv64': 0.35.2 - '@img/sharp-linux-s390x': 0.35.2 - '@img/sharp-linux-x64': 0.35.2 - '@img/sharp-linuxmusl-arm64': 0.35.2 - '@img/sharp-linuxmusl-x64': 0.35.2 - '@img/sharp-webcontainers-wasm32': 0.35.2 - '@img/sharp-win32-arm64': 0.35.2 - '@img/sharp-win32-ia32': 0.35.2 - '@img/sharp-win32-x64': 0.35.2 - sharp@0.35.4(@types/node@25.9.1): dependencies: '@img/colour': 1.1.0 @@ -8698,6 +7877,39 @@ snapshots: '@img/sharp-win32-x64': 0.35.4 '@types/node': 25.9.1 + sharp@0.35.5(@types/node@25.9.1): + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.35.5 + '@img/sharp-darwin-x64': 0.35.5 + '@img/sharp-freebsd-wasm32': 0.35.5 + '@img/sharp-libvips-darwin-arm64': 1.3.4 + '@img/sharp-libvips-darwin-x64': 1.3.4 + '@img/sharp-libvips-linux-arm': 1.3.4 + '@img/sharp-libvips-linux-arm64': 1.3.4 + '@img/sharp-libvips-linux-ppc64': 1.3.4 + '@img/sharp-libvips-linux-riscv64': 1.3.4 + '@img/sharp-libvips-linux-s390x': 1.3.4 + '@img/sharp-libvips-linux-x64': 1.3.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.4 + '@img/sharp-linux-arm': 0.35.5 + '@img/sharp-linux-arm64': 0.35.5 + '@img/sharp-linux-ppc64': 0.35.5 + '@img/sharp-linux-riscv64': 0.35.5 + '@img/sharp-linux-s390x': 0.35.5 + '@img/sharp-linux-x64': 0.35.5 + '@img/sharp-linuxmusl-arm64': 0.35.5 + '@img/sharp-linuxmusl-x64': 0.35.5 + '@img/sharp-webcontainers-wasm32': 0.35.5 + '@img/sharp-win32-arm64': 0.35.5 + '@img/sharp-win32-ia32': 0.35.5 + '@img/sharp-win32-x64': 0.35.5 + '@types/node': 25.9.1 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -8717,8 +7929,6 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.5 - siginfo@2.0.0: {} - signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -8733,18 +7943,14 @@ snapshots: sisteransi@1.0.5: {} - slice-ansi@8.0.0: - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 5.1.0 - source-map-js@1.2.1: {} space-separated-tokens@2.0.2: {} split-ca@1.0.1: {} - split2@4.2.0: {} + split2@4.2.0: + optional: true ssh-remote-port-forward@1.0.4: dependencies: @@ -8759,15 +7965,9 @@ snapshots: cpu-features: 0.0.10 nan: 2.28.0 - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - - stackback@0.0.2: {} - std-env@3.10.0: {} - std-env@4.2.0: {} + std-env@4.3.0: {} streamx@2.28.0: dependencies: @@ -8824,16 +8024,10 @@ snapshots: strip-json-comments@2.0.1: {} - strnum@2.4.2: - dependencies: - anynum: 1.0.1 - supports-color@10.2.2: {} tabbable@6.5.0: {} - tagged-tag@1.0.0: {} - tailwindcss@4.3.3: {} tapable@2.3.3: {} @@ -8883,8 +8077,6 @@ snapshots: - bare-abort-controller - react-native-b4a - terminal-size@4.0.1: {} - testcontainers@11.14.0: dependencies: '@balena/dockerignore': 1.0.2 @@ -8914,10 +8106,12 @@ snapshots: transitivePeerDependencies: - react-native-b4a - tinybench@2.9.0: {} + tinybench@6.2.2: {} tinyexec@1.3.0: {} + tinyexec@1.3.1: {} + tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.5) @@ -8925,14 +8119,8 @@ snapshots: tinypool@2.1.0: {} - tinyrainbow@3.1.1: {} - tmp@0.2.7: {} - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - tree-kill@1.2.2: {} trim-lines@3.0.1: {} @@ -9019,10 +8207,6 @@ snapshots: tweetnacl@0.14.5: {} - type-fest@5.9.0: - dependencies: - tagged-tag: 1.0.0 - typescript@6.0.2: {} ulidx@2.4.1: @@ -9040,7 +8224,9 @@ snapshots: undici@7.29.0: {} - undici@8.10.1: {} + undici@7.29.1: {} + + undici@8.11.2: {} unenv@2.0.0-rc.24: dependencies: @@ -9093,7 +8279,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0): + vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 @@ -9102,13 +8288,17 @@ snapshots: tinyglobby: 0.2.17 optionalDependencies: '@types/node': 25.9.1 - esbuild: 0.28.1 + esbuild: 0.28.2 fsevents: 2.3.3 jiti: 2.7.0 tsx: 4.19.0 yaml: 2.9.0 - vitepress@2.0.0-alpha.18(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(postcss@8.5.28)(tsx@4.19.0)(typescript@6.0.2)(yaml@2.9.0): + vitefu@1.1.3(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)): + optionalDependencies: + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + + vitepress@2.0.0-alpha.18(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(postcss@8.5.28)(tsx@4.19.0)(typescript@6.0.2)(yaml@2.9.0): dependencies: '@docsearch/css': 4.7.0 '@docsearch/js': 4.7.0 @@ -9118,7 +8308,7 @@ snapshots: '@shikijs/transformers': 4.4.3 '@shikijs/types': 4.4.3 '@types/markdown-it': 14.2.0 - '@vitejs/plugin-vue': 6.0.8(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.2)) + '@vitejs/plugin-vue': 6.0.8(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.2)) '@vue/devtools-api': 8.2.1 '@vue/shared': 3.5.42 '@vueuse/core': 14.4.0(vue@3.5.40(typescript@6.0.2)) @@ -9127,7 +8317,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 4.4.3 - vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) vue: 3.5.40(typescript@6.0.2) optionalDependencies: postcss: 8.5.28 @@ -9157,28 +8347,22 @@ snapshots: - universal-cookie - yaml - vitest@4.1.11(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)): + vitest@5.0.4(@types/node@25.9.1)(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.11 - '@vitest/mocker': 4.1.11(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.11 - '@vitest/runner': 4.1.11 - '@vitest/snapshot': 4.1.11 - '@vitest/spy': 4.1.11 - '@vitest/utils': 4.1.11 + '@types/chai': 5.2.3 + '@vitest/mocker': 5.0.4(vite@8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0)) + chai: 6.3.0 es-module-lexer: 2.3.2 expect-type: 1.4.0 - magic-string: 0.30.21 - obug: 2.1.4 - pathe: 2.0.3 - picomatch: 4.0.5 - std-env: 4.2.0 - tinybench: 2.9.0 - tinyexec: 1.3.0 + magic-string: 1.4.3 + obug: 3.0.0 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 tinyglobby: 0.2.17 - tinyrainbow: 3.1.1 - vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) - why-is-node-running: 2.3.0 + vite: 8.2.2(@types/node@25.9.1)(esbuild@0.28.2)(jiti@2.7.0)(tsx@4.19.0)(yaml@2.9.0) + why-is-node-running: 3.2.1 optionalDependencies: '@types/node': 25.9.1 transitivePeerDependencies: @@ -9198,45 +8382,57 @@ snapshots: dependencies: isexe: 2.0.0 - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 + why-is-node-running@3.2.1: {} - widest-line@6.0.0: - dependencies: - string-width: 8.2.2 + workerd@1.20260918.1: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20260918.1 + '@cloudflare/workerd-darwin-arm64': 1.20260918.1 + '@cloudflare/workerd-linux-64': 1.20260918.1 + '@cloudflare/workerd-linux-arm64': 1.20260918.1 + '@cloudflare/workerd-windows-64': 1.20260918.1 - workerd@1.20260704.1: + workerd@1.20261006.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260704.1 - '@cloudflare/workerd-darwin-arm64': 1.20260704.1 - '@cloudflare/workerd-linux-64': 1.20260704.1 - '@cloudflare/workerd-linux-arm64': 1.20260704.1 - '@cloudflare/workerd-windows-64': 1.20260704.1 + '@cloudflare/workerd-darwin-64': 1.20261006.1 + '@cloudflare/workerd-darwin-arm64': 1.20261006.1 + '@cloudflare/workerd-linux-64': 1.20261006.1 + '@cloudflare/workerd-linux-arm64': 1.20261006.1 + '@cloudflare/workerd-windows-64': 1.20261006.1 - workerd@1.20260903.1: + wrangler@4.149.0(@cloudflare/workers-types@5.20261006.1)(@types/node@25.9.1): + dependencies: + '@cloudflare/kv-asset-handler': 0.5.0 + '@cloudflare/unenv-preset': 2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1) + blake3-wasm: 2.1.5 + esbuild: 0.28.2 + miniflare: 5.20261006.1-alpha(@types/node@25.9.1) + path-to-regexp: 6.3.0 + unenv: 2.0.0-rc.24 + workerd: 1.20261006.1 optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260903.1 - '@cloudflare/workerd-darwin-arm64': 1.20260903.1 - '@cloudflare/workerd-linux-64': 1.20260903.1 - '@cloudflare/workerd-linux-arm64': 1.20260903.1 - '@cloudflare/workerd-windows-64': 1.20260903.1 + '@cloudflare/workers-types': 5.20261006.1 + fsevents: 2.3.3 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - utf-8-validate - wrangler@4.129.0(@cloudflare/workers-types@5.20260904.1): + wrangler@4.149.0(@cloudflare/workers-types@5.20261012.1)(@types/node@25.9.1): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 - '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260903.1) + '@cloudflare/unenv-preset': 2.16.2(unenv@2.0.0-rc.24)(workerd@1.20261006.1) blake3-wasm: 2.1.5 - esbuild: 0.28.1 - miniflare: 5.20260903.0-alpha + esbuild: 0.28.2 + miniflare: 5.20261006.1-alpha(@types/node@25.9.1) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 - workerd: 1.20260903.1 + workerd: 1.20261006.1 optionalDependencies: - '@cloudflare/workers-types': 5.20260904.1 + '@cloudflare/workers-types': 5.20261012.1 fsevents: 2.3.3 transitivePeerDependencies: + - '@types/node' - bufferutil - utf-8-validate @@ -9264,9 +8460,10 @@ snapshots: ws@8.21.3: {} - xml-naming@0.3.0: {} + ws@8.22.0: {} - xtend@4.0.2: {} + xtend@4.0.2: + optional: true y18n@5.0.8: {} @@ -9299,8 +8496,6 @@ snapshots: dependencies: pend: 1.2.0 - yoga-layout@3.2.1: {} - youch-core@0.3.3: dependencies: '@poppinss/exception': 1.2.3 @@ -9325,6 +8520,6 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod@4.4.3: {} + zod@4.6.5: {} zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 75135a7..1d59709 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,31 +9,35 @@ onlyBuiltDependencies: - "workerd" overrides: - # rc.112's caret range otherwise resolves node-shared rc.113, which requires Effect rc.113. - "@effect/platform-node-shared": "4.0.0-rc.112" + # Foldkit's plugin pins 4.0.0 adapters; keep its tested Effect runtime aligned. + "@foldkit/vite-plugin@0.27.1>@effect/platform-node": "4.0.3" + "@foldkit/vite-plugin@0.27.1>@effect/platform-node-shared": "4.0.3" "better-sqlite3": "12.10.0" catalog: "@changesets/cli": 3.0.1 - "@cloudflare/vitest-plugin": 1.1.4 - "@cloudflare/workers-types": 5.20260904.1 - "@effect/platform-node": 4.0.0-rc.112 - "@effect/platform-node-shared": 4.0.0-rc.112 - "@effect/sql-pg": 4.0.0-rc.112 - "@effect/sql-sqlite-node": 4.0.0-rc.112 - "@effect/vitest": 4.0.0-rc.112 + "@cloudflare/vitest-plugin": 1.4.0 + "@cloudflare/workers-types": 5.20261006.1 + "@effect/platform-browser": 4.0.3 + "@effect/platform-node": 4.0.3 + "@effect/platform-node-shared": 4.0.3 + "@effect/sql-d1": 4.0.3 + "@effect/sql-pg": 4.0.3 + "@effect/sql-sqlite-do": 4.0.3 + "@effect/sql-sqlite-node": 4.0.3 + "@effect/vitest": 4.0.3 "@fontsource-variable/ibm-plex-sans": 5.3.0 "@fontsource/ibm-plex-mono": 5.3.0 "@playwright/test": 1.63.0 - "@foldkit/ui": 0.157.0 - "@foldkit/vite-plugin": 0.20.1 + "@foldkit/ui": 0.168.0 + "@foldkit/vite-plugin": 0.27.1 "@tailwindcss/vite": 4.3.3 "@types/node": 25.9.1 "@types/better-sqlite3": 7.6.13 - alchemy: 2.0.0-beta.76 + alchemy: 2.0.0-beta.80 better-sqlite3: 12.10.0 - effect: 4.0.0-rc.112 - foldkit: 0.157.0 + effect: 4.0.3 + foldkit: 0.168.0 foundationdb: 2.0.1 oxfmt: 0.44.0 oxlint: 1.59.0 @@ -45,6 +49,14 @@ catalog: ulidx: 2.4.1 vite: 8.2.2 vitepress: 2.0.0-alpha.18 - vitest: 4.1.11 + vitest: 5.0.4 vue: 3.5.40 tailwindcss: 4.3.3 + +# Exact exceptions for Foldkit's 4.0.0 peers, validated by check and test:e2e. +peerDependencyRules: + allowedVersions: + "foldkit@0.168.0>effect": "4.0.3" + "foldkit@0.168.0>@effect/platform-browser": "4.0.3" + "@foldkit/ui@0.168.0>effect": "4.0.3" + "@foldkit/vite-plugin@0.27.1>effect": "4.0.3" diff --git a/scripts/check-packages.mjs b/scripts/check-packages.mjs index b520dfa..259bb36 100644 --- a/scripts/check-packages.mjs +++ b/scripts/check-packages.mjs @@ -146,11 +146,6 @@ try { effect: effectVersion, typescript: "6.0.2", }, - overrides: { - // @effect/sql-sqlite-node 0.49 still declares v11. The workspace - // applies the same override because v12 provides Node 24 support. - "better-sqlite3": "12.10.0", - }, }, null, 2, @@ -328,11 +323,9 @@ if ( `, ); - // FoundationDB and SQLite both ship native addons. Install every package with - // lifecycle scripts disabled so the type-level consumer check is portable, - // then build only the SQLite addon exercised by the runtime smoke test. + // Skip FoundationDB's native addon install so the type-level check is portable. + // Effect 4 stable's SQLite driver uses node:sqlite for the runtime smoke test. run("npm", ["install", "--ignore-scripts", "--no-audit", "--no-fund"], consumerDir); - run("npm", ["rebuild", "better-sqlite3"], consumerDir); run("npx", ["tsc", "--project", "tsconfig.json"], consumerDir); run("node", ["smoke.mjs"], consumerDir); diff --git a/test/fixtures/numeric-index.ts b/test/fixtures/numeric-index.ts index d16702e..ce93e9d 100644 --- a/test/fixtures/numeric-index.ts +++ b/test/fixtures/numeric-index.ts @@ -1,5 +1,5 @@ import { Effect } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { Triples } from "@triplex-build/triplex"; import { expect } from "vitest"; diff --git a/test/integration/test/datalog.test.ts b/test/integration/test/datalog.test.ts index 2f99d09..ad8bb42 100644 --- a/test/integration/test/datalog.test.ts +++ b/test/integration/test/datalog.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from "vitest"; import { Effect } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { Triples, string, diff --git a/test/integration/test/http-api.test.ts b/test/integration/test/http-api.test.ts index 513fcfa..79a4ba9 100644 --- a/test/integration/test/http-api.test.ts +++ b/test/integration/test/http-api.test.ts @@ -16,7 +16,7 @@ import { } from "@triplex-build/triplex-http"; import { SqliteTriples } from "@triplex-build/triplex-sqlite"; import { Effect, Layer } from "effect"; -import { HttpRouter } from "effect/unstable/http"; +import { HttpRouter } from "effect/http"; import { describe, expect, it } from "vitest"; const EmployerName = Attribute.text(":employer/name"); diff --git a/test/stress/scripts/datalog-pagination.ts b/test/stress/scripts/datalog-pagination.ts index 393ee2a..17dc368 100644 --- a/test/stress/scripts/datalog-pagination.ts +++ b/test/stress/scripts/datalog-pagination.ts @@ -1,6 +1,6 @@ /** Opt-in query benchmark. PG_BENCH_URL must point to a disposable database. */ import { Effect } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { Triples, type DatalogQuery, type PagedQueryResponse } from "@triplex-build/triplex"; import { SqliteTriples } from "@triplex-build/triplex-sqlite"; import { PgTriples } from "@triplex-build/triplex-postgres"; diff --git a/test/stress/src/backend.ts b/test/stress/src/backend.ts index fbc55da..d3d38dd 100644 --- a/test/stress/src/backend.ts +++ b/test/stress/src/backend.ts @@ -19,7 +19,7 @@ */ import { Effect, Layer } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { SqliteClient } from "@effect/sql-sqlite-node"; import { NodeServices } from "@effect/platform-node"; import { DatabaseManager } from "@triplex-build/triplex"; diff --git a/test/stress/test/triples-stress.test.ts b/test/stress/test/triples-stress.test.ts index abcbd8d..289178c 100644 --- a/test/stress/test/triples-stress.test.ts +++ b/test/stress/test/triples-stress.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, beforeAll, afterAll } from "vitest"; import { Effect, Layer, Schedule } from "effect"; -import { SqlClient } from "effect/unstable/sql"; +import { SqlClient } from "effect/sql"; import { generateId } from "@triplex-build/triplex/internal"; import { EntityId, string, boolean, ref } from "@triplex-build/triplex"; import { writeFileSync } from "node:fs";