From 8d64a6fc5e72c629d12b6a2aabfb9d299635064d Mon Sep 17 00:00:00 2001 From: Sebastian Jeltsch Date: Sun, 22 Mar 2026 13:33:11 +0100 Subject: [PATCH 1/2] Update TrailBase client and lock e2e-test server to a specific version. The latter is in preparation to changing the message format to add sequence numbers and eventually implement TanStack/db truncating for the TrailBase integration. --- .changeset/update-tb-deps.md | 5 +++ examples/react/todo/package.json | 2 +- examples/solid/todo/package.json | 2 +- .../trailbase-db-collection/e2e/Dockerfile | 2 +- packages/trailbase-db-collection/package.json | 2 +- .../trailbase-db-collection/src/trailbase.ts | 12 +++---- .../tests/trailbase.test.ts | 3 ++ pnpm-lock.yaml | 31 +++++++++++++------ 8 files changed, 40 insertions(+), 19 deletions(-) create mode 100644 .changeset/update-tb-deps.md diff --git a/.changeset/update-tb-deps.md b/.changeset/update-tb-deps.md new file mode 100644 index 000000000..f91299a41 --- /dev/null +++ b/.changeset/update-tb-deps.md @@ -0,0 +1,5 @@ +--- +'@tanstack/trailbase-db-collection': patch +--- + +Update TrailBase's client to v0.10 and lock-down server version for e2e tests. diff --git a/examples/react/todo/package.json b/examples/react/todo/package.json index 70864ed23..881d4d387 100644 --- a/examples/react/todo/package.json +++ b/examples/react/todo/package.json @@ -18,7 +18,7 @@ "react": "^19.2.4", "react-dom": "^19.2.4", "tailwindcss": "^4.1.18", - "trailbase": "^0.8.0", + "trailbase": "^0.10.0", "vite-tsconfig-paths": "^5.1.4", "zod": "^4.3.6" }, diff --git a/examples/solid/todo/package.json b/examples/solid/todo/package.json index d5e077c4d..d02796963 100644 --- a/examples/solid/todo/package.json +++ b/examples/solid/todo/package.json @@ -17,7 +17,7 @@ "postgres": "^3.4.8", "solid-js": "^1.9.11", "tailwindcss": "^4.1.18", - "trailbase": "^0.8.0", + "trailbase": "^0.10.0", "vite-tsconfig-paths": "^5.1.4" }, "devDependencies": { diff --git a/packages/trailbase-db-collection/e2e/Dockerfile b/packages/trailbase-db-collection/e2e/Dockerfile index caea23727..03450d7b9 100644 --- a/packages/trailbase-db-collection/e2e/Dockerfile +++ b/packages/trailbase-db-collection/e2e/Dockerfile @@ -1,4 +1,4 @@ -FROM trailbase/trailbase:latest +FROM trailbase/trailbase:0.25.1 COPY traildepot /app/traildepot/ EXPOSE 4000 diff --git a/packages/trailbase-db-collection/package.json b/packages/trailbase-db-collection/package.json index 5b434c4f5..dda793e70 100644 --- a/packages/trailbase-db-collection/package.json +++ b/packages/trailbase-db-collection/package.json @@ -50,7 +50,7 @@ "@tanstack/db": "workspace:*", "@tanstack/store": "^0.9.2", "debug": "^4.4.3", - "trailbase": "^0.8.0" + "trailbase": "^0.10.0" }, "peerDependencies": { "typescript": ">=4.7" diff --git a/packages/trailbase-db-collection/src/trailbase.ts b/packages/trailbase-db-collection/src/trailbase.ts index f012ff26f..edcd783fa 100644 --- a/packages/trailbase-db-collection/src/trailbase.ts +++ b/packages/trailbase-db-collection/src/trailbase.ts @@ -94,9 +94,9 @@ export interface TrailBaseCollectionConfig< TRecord extends ShapeOf = TItem, TKey extends string | number = string | number, > extends Omit< - BaseCollectionConfig, - `onInsert` | `onUpdate` | `onDelete` | `syncMode` -> { + BaseCollectionConfig, + `onInsert` | `onUpdate` | `onDelete` | `syncMode` + > { /** * Record API name */ @@ -486,9 +486,9 @@ function buildFilters< } function serializeValue(column: string, value: T): string { - const convert = (config.serialize as any)[column] - if (convert) { - return `${convert(value)}` + const conv = (config.serialize as any)[column] + if (conv) { + return `${conv(value)}` } if (typeof value === 'boolean') { diff --git a/packages/trailbase-db-collection/tests/trailbase.test.ts b/packages/trailbase-db-collection/tests/trailbase.test.ts index 7e42efd52..c2c084514 100644 --- a/packages/trailbase-db-collection/tests/trailbase.test.ts +++ b/packages/trailbase-db-collection/tests/trailbase.test.ts @@ -48,6 +48,9 @@ class MockRecordApi implements RecordApi { listOp = vi.fn((_opts?: ListOpts): ListOperation => { throw `listOp` }) + listGeoOp = vi.fn((_geometryColumn: string, _opts?: ListOpts) => { + throw `listGeoOp` + }) read = vi.fn( ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e26fe256..b84a83ad1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -657,8 +657,8 @@ importers: specifier: ^4.1.18 version: 4.2.1 trailbase: - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.10.0 + version: 0.10.0 vite-tsconfig-paths: specifier: ^5.1.4 version: 5.1.4(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.2)(jiti@2.6.1)(lightningcss@1.31.1)(sass@1.90.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) @@ -775,8 +775,8 @@ importers: specifier: ^4.1.18 version: 4.2.1 trailbase: - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.10.0 + version: 0.10.0 vite-tsconfig-paths: specifier: ^5.1.4 version: 5.1.4(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.2)(jiti@2.6.1)(lightningcss@1.31.1)(sass@1.90.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) @@ -1470,8 +1470,8 @@ importers: specifier: ^4.4.3 version: 4.4.3 trailbase: - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.10.0 + version: 0.10.0 typescript: specifier: '>=4.7' version: 5.9.3 @@ -5696,6 +5696,9 @@ packages: '@types/fs-extra@8.1.5': resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==} + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -8141,6 +8144,10 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + geojson@0.5.0: + resolution: {integrity: sha512-/Bx5lEn+qRF4TfQ5aLu6NH+UKtvIv7Lhc487y/c8BdludrCTpiWf9wyI0RTyqg49MFefIAvFDuEi5Dfd/zgNxQ==} + engines: {node: '>= 0.10'} + get-browser-rtc@1.1.0: resolution: {integrity: sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==} @@ -11581,8 +11588,8 @@ packages: resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} engines: {node: '>=20'} - trailbase@0.8.0: - resolution: {integrity: sha512-8lMmQJoQQtsjiy9GxEaJjR754kSAV+0iY7gnu4qhL52Ph7OnZWt1an0IB8A1IPuf3pmWUO/c+WpIF/Uwg7HehQ==} + trailbase@0.10.0: + resolution: {integrity: sha512-IGIofZQWU3RRUZVXIAztWQ1vBabtbcuFFLZhTLj5gtZOIR2ml/levQgKaWNE+RhcDsFE/pD1gf+tfHVfrC9NGw==} tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} @@ -17657,6 +17664,8 @@ snapshots: dependencies: '@types/node': 25.2.2 + '@types/geojson@7946.0.16': {} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 25.2.2 @@ -20755,6 +20764,8 @@ snapshots: gensync@1.0.0-beta.2: {} + geojson@0.5.0: {} + get-browser-rtc@1.1.0: {} get-caller-file@2.0.5: {} @@ -24964,9 +24975,11 @@ snapshots: dependencies: punycode: 2.3.1 - trailbase@0.8.0: + trailbase@0.10.0: dependencies: + '@types/geojson': 7946.0.16 '@ungap/raw-json': 0.4.4 + geojson: 0.5.0 jwt-decode: 4.0.0 uuid: 13.0.0 From 53a975c2b899703dbd1556b581d60717da77b4de Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Sun, 22 Mar 2026 13:58:19 +0000 Subject: [PATCH 2/2] ci: apply automated fixes --- packages/trailbase-db-collection/src/trailbase.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/trailbase-db-collection/src/trailbase.ts b/packages/trailbase-db-collection/src/trailbase.ts index edcd783fa..b47728d86 100644 --- a/packages/trailbase-db-collection/src/trailbase.ts +++ b/packages/trailbase-db-collection/src/trailbase.ts @@ -94,9 +94,9 @@ export interface TrailBaseCollectionConfig< TRecord extends ShapeOf = TItem, TKey extends string | number = string | number, > extends Omit< - BaseCollectionConfig, - `onInsert` | `onUpdate` | `onDelete` | `syncMode` - > { + BaseCollectionConfig, + `onInsert` | `onUpdate` | `onDelete` | `syncMode` +> { /** * Record API name */