From 65a6ed9045c6df4697f9dc2acf3c5a9403ff8520 Mon Sep 17 00:00:00 2001 From: Sebastian Jeltsch Date: Tue, 5 Aug 2025 11:38:50 +0200 Subject: [PATCH] Move TanStack/db example to a less missleading location, document it and update JS dependencies. --- docs/examples/record_api_ts/package.json | 2 +- docs/package.json | 2 +- examples/README.md | 27 +- examples/blog/web/package.json | 2 +- examples/coffee-vector-search/package.json | 2 +- examples/collab-clicker-ssr/package.json | 2 +- examples/data-cli-tutorial/package.json | 2 +- .../.gitignore | 0 .../.prettierrc | 0 .../README.md | 0 .../eslint.config.js | 0 .../index.html | 0 .../package.json | 12 +- .../screenshots/screenshot0.png | Bin 0 -> 30998 bytes .../src/App.tsx | 2 +- .../src/index.css | 0 .../src/index.tsx | 0 .../src/lib/color.ts | 0 .../src/vite-env.d.ts | 0 .../traildepot/.gitignore | 0 .../traildepot/config.textproto | 0 .../U1752518650__add_admin_user.sql | 0 .../U1752518653__create_table_todos.sql | 0 .../U1752518746__create_table_config.sql | 0 .../tsconfig.json | 0 .../vite.config.ts | 0 pnpm-lock.yaml | 334 +++++++++--------- pnpm-workspace.yaml | 2 +- trailbase-assets/js/admin/package.json | 4 +- .../js/admin/src/components/FormFields.tsx | 27 +- trailbase-assets/js/auth/package.json | 2 +- trailbase-assets/js/client/package.json | 2 +- trailbase-js/assets/runtime/package.json | 2 +- 33 files changed, 220 insertions(+), 206 deletions(-) rename examples/{local-first => tanstack-db-sync}/.gitignore (100%) rename examples/{local-first => tanstack-db-sync}/.prettierrc (100%) rename examples/{local-first => tanstack-db-sync}/README.md (100%) rename examples/{local-first => tanstack-db-sync}/eslint.config.js (100%) rename examples/{local-first => tanstack-db-sync}/index.html (100%) rename examples/{local-first => tanstack-db-sync}/package.json (79%) create mode 100644 examples/tanstack-db-sync/screenshots/screenshot0.png rename examples/{local-first => tanstack-db-sync}/src/App.tsx (99%) rename examples/{local-first => tanstack-db-sync}/src/index.css (100%) rename examples/{local-first => tanstack-db-sync}/src/index.tsx (100%) rename examples/{local-first => tanstack-db-sync}/src/lib/color.ts (100%) rename examples/{local-first => tanstack-db-sync}/src/vite-env.d.ts (100%) rename examples/{local-first => tanstack-db-sync}/traildepot/.gitignore (100%) rename examples/{local-first => tanstack-db-sync}/traildepot/config.textproto (100%) rename examples/{local-first => tanstack-db-sync}/traildepot/migrations/U1752518650__add_admin_user.sql (100%) rename examples/{local-first => tanstack-db-sync}/traildepot/migrations/U1752518653__create_table_todos.sql (100%) rename examples/{local-first => tanstack-db-sync}/traildepot/migrations/U1752518746__create_table_config.sql (100%) rename examples/{local-first => tanstack-db-sync}/tsconfig.json (100%) rename examples/{local-first => tanstack-db-sync}/vite.config.ts (100%) diff --git a/docs/examples/record_api_ts/package.json b/docs/examples/record_api_ts/package.json index ee74cbd8..4e8d54a1 100644 --- a/docs/examples/record_api_ts/package.json +++ b/docs/examples/record_api_ts/package.json @@ -12,7 +12,7 @@ "eslint": "^9.32.0", "prettier": "^3.6.2", "typescript": "^5.9.2", - "typescript-eslint": "^8.38.0", + "typescript-eslint": "^8.39.0", "vitest": "^3.2.4" }, "dependencies": { diff --git a/docs/package.json b/docs/package.json index d966b412..c0139c91 100644 --- a/docs/package.json +++ b/docs/package.json @@ -44,6 +44,6 @@ "prettier": "^3.6.2", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.6.14", - "typescript-eslint": "^8.38.0" + "typescript-eslint": "^8.39.0" } } diff --git a/examples/README.md b/examples/README.md index 84e50d42..64d8bdf8 100644 --- a/examples/README.md +++ b/examples/README.md @@ -22,7 +22,23 @@ A simple styled Blog example with UIs both for web and Flutter:

-#### [Collaborate Server-Side Rendered Clicker](collab-clicker-ssr/) +#### [TanStack/db Synced Todo Example](tanstack-db-sync/) + +A simple ToDo App demonstrating the use of +[TanStack/db](https://github.com/TanStack/db) to automatically sync +items and settings across tabs, Browsers and devices. + +

+ + ToDo example app using TanStack/db for cross-device sync + +

+ +#### [Server-Side Rendered Collaborative Clicker](collab-clicker-ssr/) A small clicker application, where we can collaboratively make it go 🚀. It show-cases server-side rendering using SolidJS, however it could equally be @@ -32,7 +48,7 @@ changes are streamed to everyone listening.

Collaborative acorn clicker @@ -55,9 +71,10 @@ A small single-page web app demonstrating vector search and custom JS/TS endpoin #### [Data CLI App](data-cli-tutorial/) -This code belongs to the [command-line app tutorial](https://trailbase.io/getting-started/first-cli-app): -IMDB data is ingested and queried both with curl using the record list API and a custom CLI. +A brief example of how TrailBase can be used in an command-line app to ingest +IMDB data and query it. This code belongs to the +[CLI tutorial](https://trailbase.io/getting-started/first-cli-app): #### [Custom Rust Binary](custom-binary/) -A quick example on how to use TrailBase as a library. +A quick example showcasing how one can use TrailBase as a library. diff --git a/examples/blog/web/package.json b/examples/blog/web/package.json index d7a10bc4..e27c1575 100644 --- a/examples/blog/web/package.json +++ b/examples/blog/web/package.json @@ -39,6 +39,6 @@ "quicktype": "^23.2.6", "sharp": "^0.34.3", "tailwindcss": "^3.4.17", - "typescript-eslint": "^8.38.0" + "typescript-eslint": "^8.39.0" } } diff --git a/examples/coffee-vector-search/package.json b/examples/coffee-vector-search/package.json index cac41920..650245ff 100644 --- a/examples/coffee-vector-search/package.json +++ b/examples/coffee-vector-search/package.json @@ -25,7 +25,7 @@ "globals": "^16.3.0", "prettier": "^3.6.2", "typescript": "^5.9.2", - "typescript-eslint": "^8.38.0", + "typescript-eslint": "^8.39.0", "vite": "^7.0.6" } } diff --git a/examples/collab-clicker-ssr/package.json b/examples/collab-clicker-ssr/package.json index fb115666..c521d68b 100644 --- a/examples/collab-clicker-ssr/package.json +++ b/examples/collab-clicker-ssr/package.json @@ -26,7 +26,7 @@ "prettier": "^3.6.2", "sirv": "^3.0.1", "tailwindcss": "^3.4.17", - "typescript-eslint": "^8.38.0", + "typescript-eslint": "^8.39.0", "vite": "^7.0.6", "vite-plugin-eslint": "^1.8.1", "vite-plugin-solid": "^2.11.8" diff --git a/examples/data-cli-tutorial/package.json b/examples/data-cli-tutorial/package.json index 810afd5c..91ecfc69 100644 --- a/examples/data-cli-tutorial/package.json +++ b/examples/data-cli-tutorial/package.json @@ -18,7 +18,7 @@ "quicktype": "^23.2.6", "ts-node": "^10.9.2", "typescript": "^5.9.2", - "typescript-eslint": "^8.38.0" + "typescript-eslint": "^8.39.0" }, "dependencies": { "csv-parse": "^5.6.0", diff --git a/examples/local-first/.gitignore b/examples/tanstack-db-sync/.gitignore similarity index 100% rename from examples/local-first/.gitignore rename to examples/tanstack-db-sync/.gitignore diff --git a/examples/local-first/.prettierrc b/examples/tanstack-db-sync/.prettierrc similarity index 100% rename from examples/local-first/.prettierrc rename to examples/tanstack-db-sync/.prettierrc diff --git a/examples/local-first/README.md b/examples/tanstack-db-sync/README.md similarity index 100% rename from examples/local-first/README.md rename to examples/tanstack-db-sync/README.md diff --git a/examples/local-first/eslint.config.js b/examples/tanstack-db-sync/eslint.config.js similarity index 100% rename from examples/local-first/eslint.config.js rename to examples/tanstack-db-sync/eslint.config.js diff --git a/examples/local-first/index.html b/examples/tanstack-db-sync/index.html similarity index 100% rename from examples/local-first/index.html rename to examples/tanstack-db-sync/index.html diff --git a/examples/local-first/package.json b/examples/tanstack-db-sync/package.json similarity index 79% rename from examples/local-first/package.json rename to examples/tanstack-db-sync/package.json index 6970344e..5f61a96f 100644 --- a/examples/local-first/package.json +++ b/examples/tanstack-db-sync/package.json @@ -1,5 +1,5 @@ { - "name": "local-first", + "name": "trailbase-sync-example", "private": true, "version": "0.0.0", "type": "module", @@ -12,11 +12,11 @@ "preview": "vite preview" }, "dependencies": { - "@tanstack/db": "^0.1.0", + "@tanstack/db": "^0.1.1", "@tanstack/query-core": "^5.83.1", - "@tanstack/query-db-collection": "^0.1.2", - "@tanstack/react-db": "^0.1.0", - "@tanstack/trailbase-db-collection": "^0.1.0", + "@tanstack/query-db-collection": "^0.2.0", + "@tanstack/react-db": "^0.1.1", + "@tanstack/trailbase-db-collection": "^0.1.1", "react": "^19.1.1", "react-dom": "^19.1.1", "tailwindcss": "^4.1.11", @@ -35,7 +35,7 @@ "prettier": "^3.6.2", "prettier-plugin-tailwindcss": "^0.6.14", "typescript": "^5.9.2", - "typescript-eslint": "^8.38.0", + "typescript-eslint": "^8.39.0", "vite": "^7.0.6" } } diff --git a/examples/tanstack-db-sync/screenshots/screenshot0.png b/examples/tanstack-db-sync/screenshots/screenshot0.png new file mode 100644 index 0000000000000000000000000000000000000000..78fd27004bfeae1bc01a63d6796b5a04dd39800d GIT binary patch literal 30998 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 z - TrailBase Todo + 💫 ToDos

diff --git a/examples/local-first/src/index.css b/examples/tanstack-db-sync/src/index.css similarity index 100% rename from examples/local-first/src/index.css rename to examples/tanstack-db-sync/src/index.css diff --git a/examples/local-first/src/index.tsx b/examples/tanstack-db-sync/src/index.tsx similarity index 100% rename from examples/local-first/src/index.tsx rename to examples/tanstack-db-sync/src/index.tsx diff --git a/examples/local-first/src/lib/color.ts b/examples/tanstack-db-sync/src/lib/color.ts similarity index 100% rename from examples/local-first/src/lib/color.ts rename to examples/tanstack-db-sync/src/lib/color.ts diff --git a/examples/local-first/src/vite-env.d.ts b/examples/tanstack-db-sync/src/vite-env.d.ts similarity index 100% rename from examples/local-first/src/vite-env.d.ts rename to examples/tanstack-db-sync/src/vite-env.d.ts diff --git a/examples/local-first/traildepot/.gitignore b/examples/tanstack-db-sync/traildepot/.gitignore similarity index 100% rename from examples/local-first/traildepot/.gitignore rename to examples/tanstack-db-sync/traildepot/.gitignore diff --git a/examples/local-first/traildepot/config.textproto b/examples/tanstack-db-sync/traildepot/config.textproto similarity index 100% rename from examples/local-first/traildepot/config.textproto rename to examples/tanstack-db-sync/traildepot/config.textproto diff --git a/examples/local-first/traildepot/migrations/U1752518650__add_admin_user.sql b/examples/tanstack-db-sync/traildepot/migrations/U1752518650__add_admin_user.sql similarity index 100% rename from examples/local-first/traildepot/migrations/U1752518650__add_admin_user.sql rename to examples/tanstack-db-sync/traildepot/migrations/U1752518650__add_admin_user.sql diff --git a/examples/local-first/traildepot/migrations/U1752518653__create_table_todos.sql b/examples/tanstack-db-sync/traildepot/migrations/U1752518653__create_table_todos.sql similarity index 100% rename from examples/local-first/traildepot/migrations/U1752518653__create_table_todos.sql rename to examples/tanstack-db-sync/traildepot/migrations/U1752518653__create_table_todos.sql diff --git a/examples/local-first/traildepot/migrations/U1752518746__create_table_config.sql b/examples/tanstack-db-sync/traildepot/migrations/U1752518746__create_table_config.sql similarity index 100% rename from examples/local-first/traildepot/migrations/U1752518746__create_table_config.sql rename to examples/tanstack-db-sync/traildepot/migrations/U1752518746__create_table_config.sql diff --git a/examples/local-first/tsconfig.json b/examples/tanstack-db-sync/tsconfig.json similarity index 100% rename from examples/local-first/tsconfig.json rename to examples/tanstack-db-sync/tsconfig.json diff --git a/examples/local-first/vite.config.ts b/examples/tanstack-db-sync/vite.config.ts similarity index 100% rename from examples/local-first/vite.config.ts rename to examples/tanstack-db-sync/vite.config.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9cd4819..d97cb1e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -100,8 +100,8 @@ importers: specifier: ^0.6.14 version: 0.6.14(prettier-plugin-astro@0.14.1)(prettier@3.6.2) typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) docs/examples/record_api_ts: dependencies: @@ -125,8 +125,8 @@ importers: specifier: ^5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) vitest: specifier: ^3.2.4 version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(happy-dom@15.11.7)(jiti@2.5.1)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.8.0) @@ -207,8 +207,8 @@ importers: specifier: ^3.4.17 version: 3.4.17(ts-node@10.9.2(@types/node@16.18.126)(typescript@4.9.4)) typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) examples/coffee-vector-search: dependencies: @@ -250,8 +250,8 @@ importers: specifier: ^5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) vite: specifier: ^7.0.6 version: 7.0.6(@types/node@24.2.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.8.0) @@ -296,8 +296,8 @@ importers: specifier: ^3.4.17 version: 3.4.17(ts-node@10.9.2(@types/node@24.2.0)(typescript@5.9.2)) typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) vite: specifier: ^7.0.6 version: 7.0.6(@types/node@24.2.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.8.0) @@ -339,26 +339,26 @@ importers: specifier: ^5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) - examples/local-first: + examples/tanstack-db-sync: dependencies: '@tanstack/db': - specifier: ^0.1.0 - version: 0.1.0(typescript@5.9.2) + specifier: ^0.1.1 + version: 0.1.1(typescript@5.9.2) '@tanstack/query-core': specifier: ^5.83.1 version: 5.83.1 '@tanstack/query-db-collection': - specifier: ^0.1.2 - version: 0.1.2(@tanstack/query-core@5.83.1)(typescript@5.9.2) + specifier: ^0.2.0 + version: 0.2.0(@tanstack/query-core@5.83.1)(typescript@5.9.2) '@tanstack/react-db': - specifier: ^0.1.0 - version: 0.1.0(react@19.1.1)(typescript@5.9.2) + specifier: ^0.1.1 + version: 0.1.1(react@19.1.1)(typescript@5.9.2) '@tanstack/trailbase-db-collection': - specifier: ^0.1.0 - version: 0.1.0(typescript@5.9.2) + specifier: ^0.1.1 + version: 0.1.1(typescript@5.9.2) react: specifier: ^19.1.1 version: 19.1.1 @@ -409,8 +409,8 @@ importers: specifier: ^5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) vite: specifier: ^7.0.6 version: 7.0.6(@types/node@24.2.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.8.0) @@ -460,8 +460,8 @@ importers: specifier: ^0.15.3 version: 0.15.3(solid-js@1.9.7) '@tanstack/solid-form': - specifier: ^1.16.0 - version: 1.16.0(solid-js@1.9.7) + specifier: ^1.17.0 + version: 1.17.0(solid-js@1.9.7) '@tanstack/solid-query': specifier: ^5.83.1 version: 5.83.1(solid-js@1.9.7) @@ -584,8 +584,8 @@ importers: specifier: ^5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) vite: specifier: ^7.0.6 version: 7.0.6(@types/node@24.2.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.8.0) @@ -690,8 +690,8 @@ importers: specifier: ^5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) trailbase-assets/js/client: dependencies: @@ -733,8 +733,8 @@ importers: specifier: ^5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) vite-node: specifier: ^3.2.4 version: 3.2.4(@types/node@24.2.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.8.0) @@ -757,8 +757,8 @@ importers: specifier: ^5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.38.0 - version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.39.0 + version: 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) vite: specifier: ^7.0.6 version: 7.0.6(@types/node@24.2.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.8.0) @@ -2189,30 +2189,30 @@ packages: peerDependencies: typescript: '>=4.7' - '@tanstack/db@0.1.0': - resolution: {integrity: sha512-KzRD/MKdq5NoTYTBykVtzFAUxhX3LBr6bSCFsbLRuS+MjevL+AwgvxvKmfMc9R7cEE7A3PV3aYJwOjbbQjtvtA==} + '@tanstack/db@0.1.1': + resolution: {integrity: sha512-WEaNEXspJrVQVjbeHFI2dIbtPINqaMCFDqFYhxwm6Ok8wS8SZ5grxbzMdZavvMapxrwdEHk3po2igEEfnTT6VQ==} peerDependencies: typescript: '>=4.7' - '@tanstack/form-core@1.16.0': - resolution: {integrity: sha512-K7s8SJ6qQTnVHE+DWjSaLy8r/GqW2Y2BQwBUtaN7t0o37i6b2cTksNobrEBN2+llYRir5+ubIGqgmJsvXsr/5Q==} + '@tanstack/form-core@1.17.0': + resolution: {integrity: sha512-H2sFmlcpvZaNDNPBJpMXYhvEPwdlpVh57lqwHQyxW+qhzCIk1OJNV7TUTr0xY4jwpUHDET9OkoajbsKCyOCe+Q==} '@tanstack/query-core@5.83.1': resolution: {integrity: sha512-OG69LQgT7jSp+5pPuCfzltq/+7l2xoweggjme9vlbCPa/d7D7zaqv5vN/S82SzSYZ4EDLTxNO1PWrv49RAS64Q==} - '@tanstack/query-db-collection@0.1.2': - resolution: {integrity: sha512-/L1lyifsLzyR8R3ZupiD5EHBrBUcWdnl+zRs8C/aOHbtc4+a9V0yEoxy5mk2POwE64DDTDwiMZ+Kvq9RKe4nUQ==} + '@tanstack/query-db-collection@0.2.0': + resolution: {integrity: sha512-45x9vX1nr3hC1SWfWEh00hIQEK9rydu8Fb7kGDobzshCHwJaWj0Cc9fBy9bpL7R/xaGu3pdTkzCsjolUcKxo3g==} peerDependencies: '@tanstack/query-core': ^5.0.0 typescript: '>=4.7' - '@tanstack/react-db@0.1.0': - resolution: {integrity: sha512-dHkh3RLnFSZ5vahPnhyEltQbIV2ReoR60RXP5vP5mUTd4hjDHtApMTdUyNJrJTdk4wX97rPLPe3fZRqA42gGeg==} + '@tanstack/react-db@0.1.1': + resolution: {integrity: sha512-W1aw3q9oyIBkW/FzlaNtyP1+Xq4xVsjWJgN3rQfAA6XjGw6VhnF9jERrXbq7dC79egY+ZnOPvWlJSxuEzTI9Lw==} peerDependencies: react: '>=16.8.0' - '@tanstack/solid-form@1.16.0': - resolution: {integrity: sha512-Hzt3ky19xBgoM80tcOsOZksSnVJFMZqwOdoJxUfTThg3b6hV3iqGgEmKT1CVIJf01utH6NJmZzI7qwU0bIKEVQ==} + '@tanstack/solid-form@1.17.0': + resolution: {integrity: sha512-tpLRtftNEArthVc7Lm5adMlTzcsR5SMOwvEfkgrSwwVjIwNeX1lb0CDYJjy5UPXXJYRjyMD1yhq+AmwB8mo0KA==} peerDependencies: solid-js: ^1.6.0 @@ -2239,8 +2239,8 @@ packages: resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} engines: {node: '>=12'} - '@tanstack/trailbase-db-collection@0.1.0': - resolution: {integrity: sha512-V6mmO/Ks4PpOofmIIgpoBTKNVz93Isi1sxqpVwi0ikFCEJZvw2VdhGHjajFHSQY9uKdafqYxMJqnMupWP5kBng==} + '@tanstack/trailbase-db-collection@0.1.1': + resolution: {integrity: sha512-omz1Ov/9kvvKSohlcGJIz5nTcDsvJNBAAleqJ3liCHITayUcl/qNgINx1mHaHAm9oljaLaHKyJU3LaFg7mrzBw==} peerDependencies: typescript: '>=4.7' @@ -2411,54 +2411,54 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.38.0': - resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==} + '@typescript-eslint/eslint-plugin@8.39.0': + resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.38.0 + '@typescript-eslint/parser': ^8.39.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.38.0': - resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==} + '@typescript-eslint/parser@8.39.0': + resolution: {integrity: sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.38.0': - resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==} + '@typescript-eslint/project-service@8.39.0': + resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/scope-manager@7.18.0': resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.38.0': - resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==} + '@typescript-eslint/scope-manager@8.39.0': + resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.38.0': - resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==} + '@typescript-eslint/tsconfig-utils@8.39.0': + resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.38.0': - resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==} + '@typescript-eslint/type-utils@8.39.0': + resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/types@7.18.0': resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.38.0': - resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==} + '@typescript-eslint/types@8.39.0': + resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -2470,11 +2470,11 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.38.0': - resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==} + '@typescript-eslint/typescript-estree@8.39.0': + resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/utils@7.18.0': resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} @@ -2482,19 +2482,19 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.38.0': - resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==} + '@typescript-eslint/utils@8.39.0': + resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/visitor-keys@7.18.0': resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.38.0': - resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==} + '@typescript-eslint/visitor-keys@8.39.0': + resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -3273,8 +3273,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.194: - resolution: {integrity: sha512-SdnWJwSUot04UR51I2oPD8kuP2VI37/CADR1OHsFOUzZIvfWJBO6q11k5P/uKNyTT3cdOsnyjkrZ+DDShqYqJA==} + electron-to-chromium@1.5.195: + resolution: {integrity: sha512-URclP0iIaDUzqcAyV1v2PgduJ9N0IdXmWsnPzPfelvBmjmZzEy6xJcjb1cXj+TbYqXgtLrjHEoaSIdTYhw4ezg==} emmet@2.4.11: resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} @@ -5706,12 +5706,12 @@ packages: typescript-auto-import-cache@0.3.6: resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} - typescript-eslint@8.38.0: - resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==} + typescript-eslint@8.39.0: + resolution: {integrity: sha512-lH8FvtdtzcHJCkMOKnN73LIn6SLTpoojgJqDAxPm1jCR14eWSGPX8ul/gggBdPMk/d5+u9V854vTYQ8T5jF/1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' typescript@4.9.4: resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} @@ -7972,35 +7972,35 @@ snapshots: sorted-btree: 1.8.1 typescript: 5.9.2 - '@tanstack/db@0.1.0(typescript@5.9.2)': + '@tanstack/db@0.1.1(typescript@5.9.2)': dependencies: '@standard-schema/spec': 1.0.0 '@tanstack/db-ivm': 0.1.0(typescript@5.9.2) typescript: 5.9.2 - '@tanstack/form-core@1.16.0': + '@tanstack/form-core@1.17.0': dependencies: '@tanstack/store': 0.7.2 '@tanstack/query-core@5.83.1': {} - '@tanstack/query-db-collection@0.1.2(@tanstack/query-core@5.83.1)(typescript@5.9.2)': + '@tanstack/query-db-collection@0.2.0(@tanstack/query-core@5.83.1)(typescript@5.9.2)': dependencies: - '@tanstack/db': 0.1.0(typescript@5.9.2) + '@tanstack/db': 0.1.1(typescript@5.9.2) '@tanstack/query-core': 5.83.1 typescript: 5.9.2 - '@tanstack/react-db@0.1.0(react@19.1.1)(typescript@5.9.2)': + '@tanstack/react-db@0.1.1(react@19.1.1)(typescript@5.9.2)': dependencies: - '@tanstack/db': 0.1.0(typescript@5.9.2) + '@tanstack/db': 0.1.1(typescript@5.9.2) react: 19.1.1 use-sync-external-store: 1.5.0(react@19.1.1) transitivePeerDependencies: - typescript - '@tanstack/solid-form@1.16.0(solid-js@1.9.7)': + '@tanstack/solid-form@1.17.0(solid-js@1.9.7)': dependencies: - '@tanstack/form-core': 1.16.0 + '@tanstack/form-core': 1.17.0 '@tanstack/solid-store': 0.7.3(solid-js@1.9.7) solid-js: 1.9.7 @@ -8023,10 +8023,10 @@ snapshots: '@tanstack/table-core@8.21.3': {} - '@tanstack/trailbase-db-collection@0.1.0(typescript@5.9.2)': + '@tanstack/trailbase-db-collection@0.1.1(typescript@5.9.2)': dependencies: '@standard-schema/spec': 1.0.0 - '@tanstack/db': 0.1.0(typescript@5.9.2) + '@tanstack/db': 0.1.1(typescript@5.9.2) '@tanstack/store': 0.7.2 debug: 4.4.1 trailbase: 0.7.1 @@ -8226,14 +8226,14 @@ snapshots: '@types/node': 24.2.0 optional: true - '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4)': + '@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/type-utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + '@typescript-eslint/visitor-keys': 8.39.0 eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 @@ -8243,14 +8243,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/type-utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.39.0 eslint: 9.32.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 @@ -8260,43 +8260,43 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4)': + '@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4)': dependencies: - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@4.9.4) - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@4.9.4) + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.1 eslint: 9.32.0(jiti@2.5.1) typescript: 4.9.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.1 eslint: 9.32.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.38.0(typescript@4.9.4)': + '@typescript-eslint/project-service@8.39.0(typescript@4.9.4)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@4.9.4) - '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@4.9.4) + '@typescript-eslint/types': 8.39.0 debug: 4.4.1 typescript: 4.9.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.38.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.39.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) - '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 debug: 4.4.1 typescript: 5.9.2 transitivePeerDependencies: @@ -8307,24 +8307,24 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.38.0': + '@typescript-eslint/scope-manager@8.39.0': dependencies: - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 - '@typescript-eslint/tsconfig-utils@8.38.0(typescript@4.9.4)': + '@typescript-eslint/tsconfig-utils@8.39.0(typescript@4.9.4)': dependencies: typescript: 4.9.4 - '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4)': + '@typescript-eslint/type-utils@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4)': dependencies: - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@4.9.4) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@4.9.4) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) debug: 4.4.1 eslint: 9.32.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@4.9.4) @@ -8332,11 +8332,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) debug: 4.4.1 eslint: 9.32.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.9.2) @@ -8346,7 +8346,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.38.0': {} + '@typescript-eslint/types@8.39.0': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.2)': dependencies: @@ -8363,12 +8363,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.38.0(typescript@4.9.4)': + '@typescript-eslint/typescript-estree@8.39.0(typescript@4.9.4)': dependencies: - '@typescript-eslint/project-service': 8.38.0(typescript@4.9.4) - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@4.9.4) - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/project-service': 8.39.0(typescript@4.9.4) + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@4.9.4) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -8379,12 +8379,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.39.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.38.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/visitor-keys': 8.38.0 + '@typescript-eslint/project-service': 8.39.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/visitor-keys': 8.39.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -8406,23 +8406,23 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4)': + '@typescript-eslint/utils@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@4.9.4) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@4.9.4) eslint: 9.32.0(jiti@2.5.1) typescript: 4.9.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/utils@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: @@ -8433,9 +8433,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.38.0': + '@typescript-eslint/visitor-keys@8.39.0': dependencies: - '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/types': 8.39.0 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -8694,8 +8694,8 @@ snapshots: astro-eslint-parser@1.2.2: dependencies: '@astrojs/compiler': 2.12.2 - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/scope-manager': 8.39.0 + '@typescript-eslint/types': 8.39.0 astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.12.2) debug: 4.4.1 entities: 6.0.1 @@ -9044,7 +9044,7 @@ snapshots: browserslist@4.25.1: dependencies: caniuse-lite: 1.0.30001731 - electron-to-chromium: 1.5.194 + electron-to-chromium: 1.5.195 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) @@ -9471,7 +9471,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.194: {} + electron-to-chromium@1.5.195: {} emmet@2.4.11: dependencies: @@ -9581,7 +9581,7 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1)) '@jridgewell/sourcemap-codec': 1.5.4 - '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/types': 8.39.0 astro-eslint-parser: 1.2.2 eslint: 9.32.0(jiti@2.5.1) eslint-compat-utils: 0.6.5(eslint@9.32.0(jiti@2.5.1)) @@ -9601,7 +9601,7 @@ snapshots: eslint-plugin-solid@0.14.5(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4): dependencies: - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) eslint: 9.32.0(jiti@2.5.1) estraverse: 5.3.0 is-html: 2.0.0 @@ -9614,7 +9614,7 @@ snapshots: eslint-plugin-solid@0.14.5(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) estraverse: 5.3.0 is-html: 2.0.0 @@ -12626,23 +12626,23 @@ snapshots: dependencies: semver: 7.7.2 - typescript-eslint@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4): + typescript-eslint@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) - '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) - '@typescript-eslint/typescript-estree': 8.38.0(typescript@4.9.4) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4))(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) + '@typescript-eslint/typescript-estree': 8.39.0(typescript@4.9.4) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@4.9.4) eslint: 9.32.0(jiti@2.5.1) typescript: 4.9.4 transitivePeerDependencies: - supports-color - typescript-eslint@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2): + typescript-eslint@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e9ecc62c..ee298c04 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,7 +5,7 @@ packages: - 'examples/coffee-vector-search' - 'examples/collab-clicker-ssr' - 'examples/data-cli-tutorial' - - 'examples/local-first' + - 'examples/tanstack-db-sync' - 'trailbase-assets/js/admin' - 'trailbase-assets/js/auth' - 'trailbase-assets/js/client' diff --git a/trailbase-assets/js/admin/package.json b/trailbase-assets/js/admin/package.json index 842bed81..e044f5d3 100644 --- a/trailbase-assets/js/admin/package.json +++ b/trailbase-assets/js/admin/package.json @@ -27,7 +27,7 @@ "@panzoom/panzoom": "^4.6.0", "@solid-primitives/memo": "^1.4.3", "@solidjs/router": "^0.15.3", - "@tanstack/solid-form": "^1.16.0", + "@tanstack/solid-form": "^1.17.0", "@tanstack/solid-query": "^5.83.1", "@tanstack/solid-table": "^8.21.3", "@tanstack/table-core": "^8.21.3", @@ -70,7 +70,7 @@ "tailwindcss": "^3.4.17", "ts-proto": "^2.7.5", "typescript": "^5.9.2", - "typescript-eslint": "^8.38.0", + "typescript-eslint": "^8.39.0", "vite": "^7.0.6", "vite-plugin-solid": "^2.11.8", "vite-tsconfig-paths": "^5.1.4", diff --git a/trailbase-assets/js/admin/src/components/FormFields.tsx b/trailbase-assets/js/admin/src/components/FormFields.tsx index 93c32ee9..0f4fc43e 100644 --- a/trailbase-assets/js/admin/src/components/FormFields.tsx +++ b/trailbase-assets/js/admin/src/components/FormFields.tsx @@ -1,13 +1,6 @@ -{ - /* eslint-disable @typescript-eslint/no-explicit-any */ -} +/* eslint-disable @typescript-eslint/no-explicit-any */ import { createSignal, Match, Switch, Show, type JSX } from "solid-js"; -import { - type FieldApi, - type FormState, - type FormApi, - type SolidFormApi, -} from "@tanstack/solid-form"; +import { type FieldApi, createForm } from "@tanstack/solid-form"; import { TbEye } from "solid-icons/tb"; import { urlSafeBase64Decode } from "trailbase"; @@ -42,15 +35,19 @@ import type { ColumnDataType } from "@bindings/ColumnDataType"; export { type AnyFieldApi } from "@tanstack/solid-form"; +// A typed form field where FieldT = TFormData[Key]. // prettier-ignore -export type FieldApiT = FieldApi; +export type FieldApiT = FieldApi< + /*TFormData=*/any, /*Key=*/any, FieldT, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any>; -// prettier-ignore -export type FormStateT = FormState; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function formApiTHelper() { + return createForm(() => ({ defaultValues: {} as TFormData })); +} -// prettier-ignore -export type FormApiT = FormApi & - SolidFormApi; +export type FormApiT = ReturnType>; + +export type FormStateT = FormApiT["state"]; type TextFieldOptions = { disabled?: boolean; diff --git a/trailbase-assets/js/auth/package.json b/trailbase-assets/js/auth/package.json index 771a2ba5..6f986035 100644 --- a/trailbase-assets/js/auth/package.json +++ b/trailbase-assets/js/auth/package.json @@ -43,6 +43,6 @@ "sharp": "^0.34.3", "tailwindcss": "^3.4.17", "typescript": "^5.9.2", - "typescript-eslint": "^8.38.0" + "typescript-eslint": "^8.39.0" } } diff --git a/trailbase-assets/js/client/package.json b/trailbase-assets/js/client/package.json index eaaef267..c7eea412 100644 --- a/trailbase-assets/js/client/package.json +++ b/trailbase-assets/js/client/package.json @@ -45,7 +45,7 @@ "prettier": "^3.6.2", "tinybench": "^4.0.1", "typescript": "^5.9.2", - "typescript-eslint": "^8.38.0", + "typescript-eslint": "^8.39.0", "vite-node": "^3.2.4", "vitest": "^3.2.4" }, diff --git a/trailbase-js/assets/runtime/package.json b/trailbase-js/assets/runtime/package.json index d0075386..54a2484e 100644 --- a/trailbase-js/assets/runtime/package.json +++ b/trailbase-js/assets/runtime/package.json @@ -16,7 +16,7 @@ "eslint": "^9.32.0", "prettier": "^3.6.2", "typescript": "^5.9.2", - "typescript-eslint": "^8.38.0", + "typescript-eslint": "^8.39.0", "vite": "^7.0.6", "vite-plugin-dts": "^4.5.4", "vitest": "^3.2.4"