diff --git a/packages/adapters/graph/sqlite-wasm/src/database.ts b/packages/adapters/graph/sqlite-wasm/src/database.ts index 2ed8abf..9357e3a 100644 --- a/packages/adapters/graph/sqlite-wasm/src/database.ts +++ b/packages/adapters/graph/sqlite-wasm/src/database.ts @@ -4,6 +4,7 @@ import type { Sqlite3Static, } from "@sqlite.org/sqlite-wasm"; import type { Exclusive } from "@exadev/process-graph-store-sqlite"; +import { sqlJsCodecs } from "drizzle-orm/sql-js/codecs"; import { drizzle, type SqliteRemoteDatabase } from "drizzle-orm/sqlite-proxy"; /** Where the database lives: an OPFS `opfs-sahpool` pool and a file in it. */ @@ -38,24 +39,28 @@ export const openWorkerDatabase = ( let pool: Promise | undefined; let open: Database | undefined; - // The store reads through `values`, `all` and query builders, never `.get()`, so `get` is refused rather than answered: the proxy's declared result type has no way to say "no row", which Drizzle's `get` signals with a missing `rows`. - const db = drizzle(async (statement, params, method) => { - if (method === "get") { - throw new Error("The graph store's worker database does not serve get"); - } - if (open === undefined) { - throw new Error( - "The database was used outside a store operation; only the store's exclusive section may run statements", - ); - } - const rows = open.exec(statement, { - bind: params, - rowMode: "array", - returnValue: "resultRows", - }); + /* The store reads through `values`, `all` and query builders, never `.get()`, so `get` is refused rather than answered: the proxy's declared result type has no way to say "no row", which Drizzle's `get` signals with a missing `rows`. + The proxy driver decodes nothing by itself: the codecs say how SQLite's stored values become the columns' types (JSON text, booleans, timestamps). SQLite wasm answers in array mode with native JavaScript values and `Uint8Array` blobs, which is what sql.js answers with, so its codecs apply. */ + const db = drizzle( + async (statement, params, method) => { + if (method === "get") { + throw new Error("The graph store's worker database does not serve get"); + } + if (open === undefined) { + throw new Error( + "The database was used outside a store operation; only the store's exclusive section may run statements", + ); + } + const rows = open.exec(statement, { + bind: params, + rowMode: "array", + returnValue: "resultRows", + }); - return Promise.resolve({ rows }); - }); + return Promise.resolve({ rows }); + }, + { codecs: sqlJsCodecs }, + ); const exclusive: Exclusive = async (operation) => navigator.locks.request(location.pool, { mode: "exclusive" }, async () => { diff --git a/packages/adapters/graph/store-sqlite/README.md b/packages/adapters/graph/store-sqlite/README.md index 9e0a6b3..721876e 100644 --- a/packages/adapters/graph/store-sqlite/README.md +++ b/packages/adapters/graph/store-sqlite/README.md @@ -4,7 +4,7 @@ A private workspace package, not published on its own: it is bundled into [`process-graph`](../../../targets/process-graph/README.md), which exposes it as `process-graph/store`, beside the store contract. -The `GraphStore` port from `@exadev/process-graph-store-contract` on SQLite through [Drizzle](https://orm.drizzle.team) (`drizzle-orm` 1.0.0-rc.4). It is written against Drizzle's async SQLite database type, so any Drizzle SQLite driver plugs in: `@exadev/process-graph-sqlite-node` supplies `node:sqlite`, `@exadev/process-graph-sqlite-wasm` supplies SQLite in a browser worker on OPFS. `src/` imports nothing Node-only. +The `GraphStore` port from `@exadev/process-graph-store-contract` on SQLite through [Drizzle](https://orm.drizzle.team). It is written against Drizzle's async SQLite database type, so any Drizzle SQLite driver plugs in: `@exadev/process-graph-sqlite-node` supplies `node:sqlite`, `@exadev/process-graph-sqlite-wasm` supplies SQLite in a browser worker on OPFS. `src/` imports nothing Node-only. ```ts import { createGraphStoreRouter } from "@exadev/process-graph-store-contract"; diff --git a/packages/targets/process-graph/package.json b/packages/targets/process-graph/package.json index 562ccb8..ded271e 100644 --- a/packages/targets/process-graph/package.json +++ b/packages/targets/process-graph/package.json @@ -138,9 +138,9 @@ "@exadev/process-graph-store-sqlite": "1.2.2", "@exadev/process-graph-sync": "1.0.1", "@exadev/process-graph-ui": "1.1.2", - "@orpc/client": "2.0.0-beta.41", - "@orpc/contract": "2.0.0-beta.41", - "@orpc/server": "2.0.0-beta.41", + "@orpc/client": "2.0.0-beta.42", + "@orpc/contract": "2.0.0-beta.42", + "@orpc/server": "2.0.0-beta.42", "@sqlite.org/sqlite-wasm": "3.53.4-build2", "@stryker-mutator/core": "10.0.0", "@stryker-mutator/typescript-checker": "10.0.0", @@ -153,7 +153,7 @@ "@vitest/coverage-v8": "4.1.11", "@xyflow/react": "12.12.0", "commander": "15.0.0", - "drizzle-orm": "1.0.0-rc.4", + "drizzle-orm": "1.0.0-rc.5-5935859", "elkjs": "0.12.0", "eslint": "10.12.0", "playwright": "1.63.0", @@ -169,15 +169,15 @@ "zod": "4.6.5" }, "peerDependencies": { - "@orpc/client": "2.0.0-beta.41", - "@orpc/contract": "2.0.0-beta.41", - "@orpc/server": "2.0.0-beta.41", + "@orpc/client": "2.0.0-beta.42", + "@orpc/contract": "2.0.0-beta.42", + "@orpc/server": "2.0.0-beta.42", "@sqlite.org/sqlite-wasm": "3.53.4-build2", "@vanilla-extract/css": "^1.21.2", "@vanilla-extract/recipes": "^0.5.7", "@xyflow/react": "^12.12.0", "commander": "^15.0.0", - "drizzle-orm": "1.0.0-rc.4", + "drizzle-orm": "1.0.0-rc.5-5935859", "elkjs": "^0.12.0", "react": "^19.3.0", "react-dom": "^19.3.0" diff --git a/packages/targets/process-graph/test/consumer.global-setup.ts b/packages/targets/process-graph/test/consumer.global-setup.ts index 53b60de..d63eb4e 100644 --- a/packages/targets/process-graph/test/consumer.global-setup.ts +++ b/packages/targets/process-graph/test/consumer.global-setup.ts @@ -59,7 +59,7 @@ const consumerOf = (tarball: string, specifiers: readonly string[]): string => { join(consumer, "package.json"), JSON.stringify({ name: "consumer", private: true, type: "module" }), ); - // pnpm rather than npm: npm 11.19.0, the npm the pinned Node ships, cannot resolve drizzle-orm 1.0.0-rc.4's optional `effect` peer range at all (ERESOLVE, with or without this package), which npm 11.19.1 fixes. + // pnpm rather than npm: npm 11.19.0, the npm the pinned Node ships, cannot resolve the `effect` peer range of drizzle-orm's 1.0.0 release candidates at all (ERESOLVE, with or without this package), which npm 11.19.1 fixes. execFileSync("pnpm", ["add", "--ignore-scripts", tarball, ...specifiers], { cwd: consumer, // Output is captured rather than shown, and a failure's error carries pnpm's own report of why. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77a6d37..922e1e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -192,14 +192,14 @@ catalogs: specifier: 3.2.0 version: 3.2.0 '@orpc/client': - specifier: 2.0.0-beta.41 - version: 2.0.0-beta.41 + specifier: 2.0.0-beta.42 + version: 2.0.0-beta.42 '@orpc/contract': - specifier: 2.0.0-beta.41 - version: 2.0.0-beta.41 + specifier: 2.0.0-beta.42 + version: 2.0.0-beta.42 '@orpc/server': - specifier: 2.0.0-beta.41 - version: 2.0.0-beta.41 + specifier: 2.0.0-beta.42 + version: 2.0.0-beta.42 '@playwright/test': specifier: 1.63.0 version: 1.63.0 @@ -282,11 +282,11 @@ catalogs: specifier: 9.3.1 version: 9.3.1 drizzle-kit: - specifier: 1.0.0-rc.4 - version: 1.0.0-rc.4 + specifier: 1.0.0-rc.5-5935859 + version: 1.0.0-rc.5-5935859 drizzle-orm: - specifier: 1.0.0-rc.4 - version: 1.0.0-rc.4 + specifier: 1.0.0-rc.5-5935859 + version: 1.0.0-rc.5-5935859 elkjs: specifier: 0.12.0 version: 0.12.0 @@ -559,17 +559,17 @@ importers: version: link:../store-sqlite drizzle-orm: specifier: 'catalog:' - version: 1.0.0-rc.4(zod@4.6.5) + version: 1.0.0-rc.5-5935859(zod@4.6.5) devDependencies: '@arethetypeswrong/cli': specifier: 'catalog:' version: 0.18.5 '@orpc/client': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@stryker-mutator/core': specifier: 'catalog:' version: 10.0.0(@types/node@26.6.4) @@ -608,16 +608,16 @@ importers: version: link:../store-sqlite '@orpc/client': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@sqlite.org/sqlite-wasm': specifier: 'catalog:' version: 3.53.4-build2 drizzle-orm: specifier: 'catalog:' - version: 1.0.0-rc.4(zod@4.6.5) + version: 1.0.0-rc.5-5935859(zod@4.6.5) devDependencies: '@arethetypeswrong/cli': specifier: 'catalog:' @@ -660,10 +660,10 @@ importers: version: link:../../../core/graph/store-contract '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 drizzle-orm: specifier: 'catalog:' - version: 1.0.0-rc.4(zod@4.6.5) + version: 1.0.0-rc.5-5935859(zod@4.6.5) zod: specifier: 'catalog:' version: 4.6.5 @@ -688,7 +688,7 @@ importers: version: 4.1.11(@vitest/browser@4.1.11)(vitest@4.1.11) drizzle-kit: specifier: 'catalog:' - version: 1.0.0-rc.4 + version: 1.0.0-rc.5-5935859 eslint: specifier: 'catalog:' version: 10.12.0(jiti@2.7.0)(supports-color@7.2.0) @@ -948,13 +948,13 @@ importers: version: link:../schema '@orpc/client': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@orpc/contract': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 trilean: specifier: 'catalog:' version: 1.7.2 @@ -1003,10 +1003,10 @@ importers: version: link:../schema '@orpc/contract': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 trilean: specifier: 'catalog:' version: 1.7.2 @@ -1019,7 +1019,7 @@ importers: version: 0.18.5 '@orpc/client': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@stryker-mutator/core': specifier: 'catalog:' version: 10.0.0(@types/node@26.6.4) @@ -1058,7 +1058,7 @@ importers: version: link:../store-contract '@orpc/client': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 zod: specifier: 'catalog:' version: 4.6.5 @@ -1068,7 +1068,7 @@ importers: version: 0.18.5 '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@stryker-mutator/core': specifier: 'catalog:' version: 10.0.0(@types/node@26.6.4) @@ -1131,7 +1131,7 @@ importers: version: link:../../core/graph/sync '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 commander: specifier: 'catalog:' version: 15.0.0 @@ -1210,10 +1210,10 @@ importers: version: link:../../ui/graph/ui '@orpc/client': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 react: specifier: 'catalog:' version: 19.3.0 @@ -1352,14 +1352,14 @@ importers: specifier: 1.1.2 version: link:../../ui/graph/ui '@orpc/client': - specifier: 2.0.0-beta.41 - version: 2.0.0-beta.41 + specifier: 2.0.0-beta.42 + version: 2.0.0-beta.42 '@orpc/contract': - specifier: 2.0.0-beta.41 - version: 2.0.0-beta.41 + specifier: 2.0.0-beta.42 + version: 2.0.0-beta.42 '@orpc/server': - specifier: 2.0.0-beta.41 - version: 2.0.0-beta.41 + specifier: 2.0.0-beta.42 + version: 2.0.0-beta.42 '@sqlite.org/sqlite-wasm': specifier: 3.53.4-build2 version: 3.53.4-build2 @@ -1397,8 +1397,8 @@ importers: specifier: 15.0.0 version: 15.0.0 drizzle-orm: - specifier: 1.0.0-rc.4 - version: 1.0.0-rc.4(zod@4.6.5) + specifier: 1.0.0-rc.5-5935859 + version: 1.0.0-rc.5-5935859(zod@4.6.5) elkjs: specifier: 0.12.0 version: 0.12.0 @@ -1446,14 +1446,14 @@ importers: version: link:../../../core/graph/store-contract '@orpc/client': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 devDependencies: '@arethetypeswrong/cli': specifier: 'catalog:' version: 0.18.5 '@orpc/server': specifier: 'catalog:' - version: 2.0.0-beta.41 + version: 2.0.0-beta.42 '@stryker-mutator/core': specifier: 'catalog:' version: 10.0.0(@types/node@26.6.4) @@ -3193,14 +3193,14 @@ packages: '@octokit/types@18.0.0': resolution: {integrity: sha512-l6bAF43PNxkJp6g+W4PjoUSSkxHomXw2nOum5CTftJz1NlV3vu93NImgOYtLf6CbBUb5j+fiuzW0PPQ5JTSvZA==} - '@orpc/client@2.0.0-beta.41': - resolution: {integrity: sha512-0P6UxBpL6+0+lNu/gct5d9OibW94xp97UReblQVjqsWks7g8GOjzNRvP6b8MIGz1qpCKaNMOFAUdMJVF+BflJw==} + '@orpc/client@2.0.0-beta.42': + resolution: {integrity: sha512-5UVRiHw9UsOVsfK1EweJoOqDhnseIz1TG4U/pcGe/P6I/yBDafh+ijZ/ZaBrql2hC7PSgEwfCFljEG8IfxVGqA==} - '@orpc/contract@2.0.0-beta.41': - resolution: {integrity: sha512-zcRzv6N2SGHBXKEDA6n3nsZvtsPCde1kjhO5ZEH6TQw7BNIgq2v4bGM9GEsbczTptSr5B6ehEwE2/+aTlxEglw==} + '@orpc/contract@2.0.0-beta.42': + resolution: {integrity: sha512-cLtAdjHGwGy2kNASBsdGKwlhFmRwqmlCOb9Avi6asFoV2fJH3Phht7QHa2/g61Yz1qF8IM6NgJ2+OA7iXRmU/g==} - '@orpc/server@2.0.0-beta.41': - resolution: {integrity: sha512-66XM0e1p5uP78C77nONozn0igCjkoYiOnUOB1ScP8UE8EeVle0BFDQQViBqttYCYOSVr3P+8u3ru1bpKZk5fUg==} + '@orpc/server@2.0.0-beta.42': + resolution: {integrity: sha512-gZXjfrKnYBNTgv70C3OB1ct04rbbMXOzX+sVx393YvcoEOjUr1cO8BwMBpIAQwaS42NKcoIjjo4zXF0dXOyb3Q==} peerDependencies: crossws: '>=0.3.4' fastify: '>=5.6.1' @@ -3210,8 +3210,8 @@ packages: fastify: optional: true - '@orpc/shared@2.0.0-beta.41': - resolution: {integrity: sha512-bXqVa8wivVpMkdb8X0HnYI1CUA2hVuV1GSsjs2NIJ2oU/H6wRQi/R7XY/PPICYz0qFjwM2x2tUm1EH395fVd3A==} + '@orpc/shared@2.0.0-beta.42': + resolution: {integrity: sha512-jPmLnx9ZD39bXOlbCTYdopz/xN9iqGVHZnlo3QDVruRLHN0dUDzcVyfJE38DaBCJs5A6tFYRJTG3BJlO5rM/kw==} '@ota-meshi/ast-token-store@0.3.0': resolution: {integrity: sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==} @@ -5027,39 +5027,40 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - drizzle-kit@1.0.0-rc.4: - resolution: {integrity: sha512-KZCpjRyu+oYHLj/UJogfFlOkWhHVkaEI2EOT1U3NDVXUzLoTyPjqwFxwOrlQxsY6jzRyxcz4EacqboGfhEeYrA==} + drizzle-kit@1.0.0-rc.5-5935859: + resolution: {integrity: sha512-p//MvJbSeDFxa3pODv0ebNVJmk/5aAHHaCyQTtDGFlCYX4e7eY9rrSX/liBJ7098Ei9WUi9VT65JQkSFDuG1ng==} hasBin: true - drizzle-orm@1.0.0-rc.4: - resolution: {integrity: sha512-BT+pf+qoiYHqltoA88Jmf6ilGMXPlpfE0hEJKc2adRtMCAl25Swk/t5gXcWxZNAwdtf3F5gCd2FpeOyP/pT0Hw==} + drizzle-orm@1.0.0-rc.5-5935859: + resolution: {integrity: sha512-PkVjyxhamD7IOVfpDMn3BmV9afyvj3eeLvIPind3NmPv+cfv6/jh6GN0fHP0zzgrprGx/jGE4mkE0ttRFlzHwA==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=4' - '@effect/sql-d1': '>=4.0.0-beta.83 || >=4.0.0' - '@effect/sql-libsql': '>=4.0.0-beta.83 || >=4.0.0' - '@effect/sql-mysql2': '>=4.0.0-beta.83 || >=4.0.0' - '@effect/sql-pg': '>=4.0.0-beta.83 || >=4.0.0' - '@effect/sql-pglite': '>=4.0.0-beta.83 || >=4.0.0' - '@effect/sql-sqlite-bun': '>=4.0.0-beta.83 || >=4.0.0' - '@effect/sql-sqlite-do': '>=4.0.0-beta.83 || >=4.0.0' - '@effect/sql-sqlite-node': '>=4.0.0-beta.83 || >=4.0.0' - '@effect/sql-sqlite-wasm': '>=4.0.0-beta.83 || >=4.0.0' + '@drizzle-team/minipg': '>=0.3.2' + '@effect/sql-d1': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-libsql': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-mysql2': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-pg': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-pglite': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-sqlite-bun': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-sqlite-do': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-sqlite-node': '>=4.0.0-beta.105 || >=4.0.0' + '@effect/sql-sqlite-wasm': '>=4.0.0-beta.105 || >=4.0.0' '@electric-sql/pglite': '>=0.2.0' '@libsql/client': '>=0.10.0' '@libsql/client-wasm': '>=0.10.0' '@neondatabase/serverless': '>=0.10.0' - '@op-engineering/op-sqlite': '>=2' + '@op-engineering/op-sqlite': '>=17' '@opentelemetry/api': ^1.4.1 '@planetscale/database': '>=1.13' '@sinclair/typebox': '>=0.34.8' '@sqlitecloud/drivers': '>=1.0.653' '@tidbcloud/serverless': '*' - '@tursodatabase/database': '>=0.6.0-pre.28 || >=0.6.0' - '@tursodatabase/database-common': '>=0.6.0-pre.28 || >=0.6.0' - '@tursodatabase/database-wasm': '>=0.6.0-pre.28 || >=0.6.0' - '@tursodatabase/serverless': '>=1.1.3' - '@tursodatabase/sync': '>=0.6.0-pre.28 || >=0.6.0' + '@tursodatabase/database': '>=0.7.1' + '@tursodatabase/database-common': '>=0.7.1' + '@tursodatabase/database-wasm': '>=0.7.1' + '@tursodatabase/serverless': '>=1.4.0' + '@tursodatabase/sync': '>=0.7.1' '@types/better-sqlite3': '*' '@types/mssql': ^9.1.4 '@types/pg': '*' @@ -5070,7 +5071,7 @@ packages: arktype: '>=2.0.0' better-sqlite3: '>=9.3.0' bun-types: '*' - effect: '>=4.0.0-beta.83 || >=4.0.0' + effect: '>=4.0.0-beta.105 || >=4.0.0' expo-sqlite: '>=14.0.0' mssql: ^11.0.1 mysql2: '>=2' @@ -5078,7 +5079,7 @@ packages: postgres: '>=3' sql.js: '>=1' sqlite3: '>=5' - typebox: '>=1.0.0' + typebox: '>=1.2.0' valibot: '>=1.0.0-beta.7' zod: ^3.25.0 || ^4.0.0 peerDependenciesMeta: @@ -5086,6 +5087,8 @@ packages: optional: true '@cloudflare/workers-types': optional: true + '@drizzle-team/minipg': + optional: true '@effect/sql-d1': optional: true '@effect/sql-libsql': @@ -9655,24 +9658,24 @@ snapshots: dependencies: '@octokit/openapi-types': 29.0.1 - '@orpc/client@2.0.0-beta.41': + '@orpc/client@2.0.0-beta.42': dependencies: - '@orpc/shared': 2.0.0-beta.41 + '@orpc/shared': 2.0.0-beta.42 '@standard-server/core': 0.10.1 '@standard-server/fetch': 0.10.1 '@standard-server/peer': 0.10.1 - '@orpc/contract@2.0.0-beta.41': + '@orpc/contract@2.0.0-beta.42': dependencies: - '@orpc/client': 2.0.0-beta.41 - '@orpc/shared': 2.0.0-beta.41 + '@orpc/client': 2.0.0-beta.42 + '@orpc/shared': 2.0.0-beta.42 '@standard-schema/spec': 1.1.0 - '@orpc/server@2.0.0-beta.41': + '@orpc/server@2.0.0-beta.42': dependencies: - '@orpc/client': 2.0.0-beta.41 - '@orpc/contract': 2.0.0-beta.41 - '@orpc/shared': 2.0.0-beta.41 + '@orpc/client': 2.0.0-beta.42 + '@orpc/contract': 2.0.0-beta.42 + '@orpc/shared': 2.0.0-beta.42 '@standard-server/aws-lambda': 0.10.1 '@standard-server/core': 0.10.1 '@standard-server/fastify': 0.10.1 @@ -9681,7 +9684,7 @@ snapshots: '@standard-server/peer': 0.10.1 cookie: 2.0.1 - '@orpc/shared@2.0.0-beta.41': + '@orpc/shared@2.0.0-beta.42': dependencies: '@standard-server/shared': 0.10.1 radash: 12.1.1 @@ -11396,7 +11399,7 @@ snapshots: dependencies: is-obj: 2.0.0 - drizzle-kit@1.0.0-rc.4: + drizzle-kit@1.0.0-rc.5-5935859: dependencies: '@drizzle-team/brocli': 0.12.1 '@js-temporal/polyfill': 0.5.1 @@ -11404,7 +11407,7 @@ snapshots: get-tsconfig: 4.14.3 jiti: 2.7.0 - drizzle-orm@1.0.0-rc.4(zod@4.6.5): + drizzle-orm@1.0.0-rc.5-5935859(zod@4.6.5): optionalDependencies: zod: 4.6.5 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 2d457e2..d92c0f8 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -43,9 +43,9 @@ catalog: "@eslint/markdown": 8.0.3 "@exadev/eslint-config": 3.1.0 "@exadev/semantic-release-workspace": 3.2.0 - "@orpc/client": 2.0.0-beta.41 - "@orpc/contract": 2.0.0-beta.41 - "@orpc/server": 2.0.0-beta.41 + "@orpc/client": 2.0.0-beta.42 + "@orpc/contract": 2.0.0-beta.42 + "@orpc/server": 2.0.0-beta.42 "@playwright/test": 1.63.0 "@resvg/resvg-js": 2.6.2 "@semantic-release/changelog": 7.0.0 @@ -73,8 +73,8 @@ catalog: "@xyflow/react": 12.12.0 commander: 15.0.0 conventional-changelog-conventionalcommits: 9.3.1 - drizzle-kit: 1.0.0-rc.4 - drizzle-orm: 1.0.0-rc.4 + drizzle-kit: 1.0.0-rc.5-5935859 + drizzle-orm: 1.0.0-rc.5-5935859 elkjs: 0.12.0 eslint: 10.12.0 eslint-config-prettier: 10.1.8 diff --git a/scripts/check-published-manifests.ts b/scripts/check-published-manifests.ts index ebcfc8d..7a8f622 100644 --- a/scripts/check-published-manifests.ts +++ b/scripts/check-published-manifests.ts @@ -12,7 +12,7 @@ import { parse } from "yaml"; * * `dependencies` and `devDependencies` name exact versions, each third-party one equal to the catalog's and each sibling one equal to the sibling's own, so the published package was built and tested against what it installs. * - * `peerDependencies` are the consumer's own installs, so pinning one to a single version would force every consumer onto exactly that version. A peer with a stable version is declared as a caret range on one version, `^`, whose floor is the lowest version tested: the catalog's version, which every test in the workspace runs against, must satisfy it, and the smoke test installs the packed package beside each peer at its floor. A peer whose version is a prerelease (`2.0.0-beta.41`, `1.0.0-rc.4`) stays exact and equal to the catalog's, because a prerelease has no compatible-range semantics: a caret range on one matches only later prereleases of that same version, which may break anything, and no stable release. + * `peerDependencies` are the consumer's own installs, so pinning one to a single version would force every consumer onto exactly that version. A peer with a stable version is declared as a caret range on one version, `^`, whose floor is the lowest version tested: the catalog's version, which every test in the workspace runs against, must satisfy it, and the smoke test installs the packed package beside each peer at its floor. A peer whose version is a prerelease (`2.0.0-beta.42`, `1.0.0-rc.5-5935859`) stays exact and equal to the catalog's, because a prerelease has no compatible-range semantics: a caret range on one matches only later prereleases of that same version, which may break anything, and no stable release. */ /** One rule a manifest or the catalog breaks. */