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.
+
+
+
+
+
+
+
+#### [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.
@@ -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"