@better-t-stack/template-generator 3.27.0 → 3.27.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -704,7 +704,7 @@ function renameDevScriptsForAlchemy(vfs, config) {
704
704
  //#endregion
705
705
  //#region src/utils/add-deps.ts
706
706
  const dependencyVersionMap = {
707
- typescript: "^5",
707
+ typescript: "^6",
708
708
  "better-auth": "1.5.5",
709
709
  "@better-auth/expo": "1.5.5",
710
710
  "@clerk/backend": "^3.2.1",
@@ -713,7 +713,7 @@ const dependencyVersionMap = {
713
713
  "@clerk/nextjs": "^7.0.5",
714
714
  "@clerk/react": "^6.1.1",
715
715
  "@clerk/react-router": "^3.0.5",
716
- "@clerk/tanstack-react-start": "^1.0.5",
716
+ "@clerk/tanstack-react-start": "^1.1.3",
717
717
  "@clerk/expo": "^3.1.3",
718
718
  "drizzle-orm": "^0.45.1",
719
719
  "drizzle-kit": "^0.31.8",
@@ -726,18 +726,18 @@ const dependencyVersionMap = {
726
726
  "@types/ws": "^8.18.1",
727
727
  ws: "^8.18.3",
728
728
  mysql2: "^3.14.0",
729
- "@prisma/client": "^7.2.0",
730
- prisma: "^7.2.0",
731
- "@prisma/adapter-d1": "^7.2.0",
732
- "@prisma/adapter-neon": "^7.2.0",
733
- "@prisma/adapter-mariadb": "^7.2.0",
734
- "@prisma/adapter-libsql": "^7.2.0",
735
- "@prisma/adapter-better-sqlite3": "^7.2.0",
736
- "@prisma/adapter-pg": "^7.2.0",
737
- "@prisma/adapter-planetscale": "^7.2.0",
729
+ "@prisma/client": "^7.7.0",
730
+ prisma: "^7.7.0",
731
+ "@prisma/adapter-d1": "^7.7.0",
732
+ "@prisma/adapter-neon": "^7.7.0",
733
+ "@prisma/adapter-mariadb": "^7.7.0",
734
+ "@prisma/adapter-libsql": "^7.7.0",
735
+ "@prisma/adapter-better-sqlite3": "^7.7.0",
736
+ "@prisma/adapter-pg": "^7.7.0",
737
+ "@prisma/adapter-planetscale": "^7.7.0",
738
738
  mongoose: "^8.14.0",
739
- "vite-plugin-pwa": "^1.0.1",
740
- "@vite-pwa/assets-generator": "^1.0.0",
739
+ "vite-plugin-pwa": "^1.2.0",
740
+ "@vite-pwa/assets-generator": "^1.0.2",
741
741
  "@tauri-apps/cli": "^2.4.0",
742
742
  "@biomejs/biome": "^2.2.0",
743
743
  oxlint: "^1.41.0",
@@ -771,14 +771,14 @@ const dependencyVersionMap = {
771
771
  "@ai-sdk/devtools": "^0.0.2",
772
772
  streamdown: "^1.6.10",
773
773
  shiki: "^3.20.0",
774
- "@orpc/server": "^1.12.2",
775
- "@orpc/client": "^1.12.2",
776
- "@orpc/openapi": "^1.12.2",
777
- "@orpc/zod": "^1.12.2",
778
- "@orpc/tanstack-query": "^1.13.6",
779
- "@trpc/tanstack-react-query": "^11.13.4",
780
- "@trpc/server": "^11.13.4",
781
- "@trpc/client": "^11.13.4",
774
+ "@orpc/server": "^1.13.14",
775
+ "@orpc/client": "^1.13.14",
776
+ "@orpc/openapi": "^1.13.14",
777
+ "@orpc/zod": "^1.13.14",
778
+ "@orpc/tanstack-query": "^1.13.14",
779
+ "@trpc/tanstack-react-query": "^11.16.0",
780
+ "@trpc/server": "^11.16.0",
781
+ "@trpc/client": "^11.16.0",
782
782
  next: "^16.2.0",
783
783
  convex: "^1.33.1",
784
784
  "@convex-dev/react-query": "^0.1.0",
@@ -786,7 +786,7 @@ const dependencyVersionMap = {
786
786
  "convex-svelte": "^0.0.12",
787
787
  "convex-nuxt": "0.1.5",
788
788
  "convex-vue": "^0.1.5",
789
- "@convex-dev/better-auth": "^0.11.3",
789
+ "@convex-dev/better-auth": "^0.11.4",
790
790
  "@tanstack/svelte-query": "^5.85.3",
791
791
  "@tanstack/svelte-query-devtools": "^5.85.3",
792
792
  "@tanstack/vue-query-devtools": "^6.1.5",
@@ -794,21 +794,21 @@ const dependencyVersionMap = {
794
794
  "@tanstack/react-query-devtools": "^5.91.1",
795
795
  "@tanstack/react-query": "^5.90.12",
796
796
  "@tanstack/react-form": "^1.28.0",
797
- "@tanstack/react-router-ssr-query": "^1.142.7",
797
+ "@tanstack/react-router-ssr-query": "^1.166.11",
798
798
  "@tanstack/solid-form": "^1.28.0",
799
799
  "@tanstack/svelte-form": "^1.28.0",
800
- "@tanstack/solid-query": "^5.87.4",
801
- "@tanstack/solid-query-devtools": "^5.87.4",
802
- "@tanstack/solid-router-devtools": "^1.131.44",
800
+ "@tanstack/solid-query": "^5.99.1",
801
+ "@tanstack/solid-query-devtools": "^5.99.1",
802
+ "@tanstack/solid-router-devtools": "^1.166.13",
803
803
  wrangler: "^4.77.0",
804
804
  "@cloudflare/vite-plugin": "^1.17.1",
805
805
  "@opennextjs/cloudflare": "^1.17.3",
806
806
  "nitro-cloudflare-dev": "^0.2.2",
807
- "@sveltejs/adapter-cloudflare": "^7.2.4",
807
+ "@sveltejs/adapter-cloudflare": "^7.2.8",
808
808
  "@cloudflare/workers-types": "^4.20251213.0",
809
809
  "@astrojs/cloudflare": "^13.0.1",
810
810
  "@astrojs/node": "^10.0.0-beta.9",
811
- alchemy: "^0.90.0",
811
+ alchemy: "^0.91.2",
812
812
  dotenv: "^17.2.2",
813
813
  tsdown: "^0.16.5",
814
814
  zod: "^4.1.13",
@@ -1121,7 +1121,7 @@ function processApiDeps(vfs, config) {
1121
1121
  addApiPackageDeps(vfs, api, backend, frontend, auth);
1122
1122
  addServerDeps(vfs, api, backend);
1123
1123
  addSelfBackendWebDeps(vfs, api, backend, frontendType);
1124
- addWebClientDeps(vfs, api, backend, frontendType);
1124
+ addWebClientDeps(vfs, api, backend, frontend, frontendType);
1125
1125
  if (frontendType.hasNative) addNativeDeps(vfs, api, backend);
1126
1126
  addQueryDeps(vfs, frontend, backend);
1127
1127
  }
@@ -1209,28 +1209,34 @@ function addSelfBackendWebDeps(vfs, api, backend, _frontendType) {
1209
1209
  ]
1210
1210
  });
1211
1211
  }
1212
- function addWebClientDeps(vfs, api, backend, frontendType) {
1212
+ function addWebClientDeps(vfs, api, backend, frontend, frontendType) {
1213
1213
  const webPath = "apps/web/package.json";
1214
1214
  if (!vfs.exists(webPath) || backend === "convex") return;
1215
- if (api === "trpc" && frontendType.hasReactWeb) addPackageDependency({
1216
- vfs,
1217
- packagePath: webPath,
1218
- dependencies: [
1215
+ if (api === "trpc" && frontendType.hasReactWeb) {
1216
+ const deps = [
1219
1217
  "@trpc/tanstack-react-query",
1220
1218
  "@trpc/client",
1221
1219
  "@trpc/server"
1222
- ]
1223
- });
1224
- else if (api === "orpc" && frontendType.hasReactWeb) addPackageDependency({
1225
- vfs,
1226
- packagePath: webPath,
1227
- dependencies: [
1220
+ ];
1221
+ if (frontend.includes("tanstack-start")) deps.push("@tanstack/react-router-ssr-query");
1222
+ addPackageDependency({
1223
+ vfs,
1224
+ packagePath: webPath,
1225
+ dependencies: deps
1226
+ });
1227
+ } else if (api === "orpc" && frontendType.hasReactWeb) {
1228
+ const deps = [
1228
1229
  "@orpc/tanstack-query",
1229
1230
  "@orpc/client",
1230
1231
  "@orpc/server"
1231
- ]
1232
- });
1233
- else if (api === "orpc" && frontendType.hasNuxtWeb) addPackageDependency({
1232
+ ];
1233
+ if (frontend.includes("tanstack-start")) deps.push("@tanstack/react-router-ssr-query");
1234
+ addPackageDependency({
1235
+ vfs,
1236
+ packagePath: webPath,
1237
+ dependencies: deps
1238
+ });
1239
+ } else if (api === "orpc" && frontendType.hasNuxtWeb) addPackageDependency({
1234
1240
  vfs,
1235
1241
  packagePath: webPath,
1236
1242
  dependencies: [
@@ -2062,7 +2068,7 @@ function buildConvexBackendVars(frontend, auth, examples) {
2062
2068
  const hasNextJs = frontend.includes("next");
2063
2069
  const hasNative = frontend.includes("native-bare") || frontend.includes("native-uniwind") || frontend.includes("native-unistyles");
2064
2070
  const hasWeb = frontend.includes("react-router") || frontend.includes("tanstack-router") || frontend.includes("tanstack-start") || hasNextJs || frontend.includes("nuxt") || frontend.includes("solid") || frontend.includes("svelte") || frontend.includes("astro");
2065
- const defaultSiteUrl = hasNative && !hasWeb ? "http://localhost:8081" : frontend.includes("react-router") || frontend.includes("tanstack-router") || frontend.includes("svelte") ? "http://localhost:5173" : frontend.includes("astro") ? "http://localhost:4321" : "http://localhost:3001";
2071
+ const defaultSiteUrl = hasNative && !hasWeb ? "http://localhost:8081" : frontend.includes("react-router") || frontend.includes("svelte") ? "http://localhost:5173" : frontend.includes("astro") ? "http://localhost:4321" : "http://localhost:3001";
2066
2072
  const vars = [];
2067
2073
  if (examples?.includes("ai")) vars.push({
2068
2074
  key: "GOOGLE_GENERATIVE_AI_API_KEY",
@@ -2100,7 +2106,7 @@ function buildConvexBackendVars(frontend, auth, examples) {
2100
2106
  function buildConvexCommentBlocks(frontend, auth, examples) {
2101
2107
  const hasNative = frontend.includes("native-bare") || frontend.includes("native-uniwind") || frontend.includes("native-unistyles");
2102
2108
  const hasWeb = frontend.includes("react-router") || frontend.includes("tanstack-router") || frontend.includes("tanstack-start") || frontend.includes("next") || frontend.includes("nuxt") || frontend.includes("solid") || frontend.includes("svelte") || frontend.includes("astro");
2103
- const defaultSiteUrl = hasNative && !hasWeb ? "http://localhost:8081" : frontend.includes("react-router") || frontend.includes("tanstack-router") || frontend.includes("svelte") ? "http://localhost:5173" : frontend.includes("astro") ? "http://localhost:4321" : "http://localhost:3001";
2109
+ const defaultSiteUrl = hasNative && !hasWeb ? "http://localhost:8081" : frontend.includes("react-router") || frontend.includes("svelte") ? "http://localhost:5173" : frontend.includes("astro") ? "http://localhost:4321" : "http://localhost:3001";
2104
2110
  let commentBlocks = "";
2105
2111
  if (examples?.includes("ai")) commentBlocks += `# Set Google AI API key for AI agent
2106
2112
  # npx convex env set GOOGLE_GENERATIVE_AI_API_KEY=your_google_api_key
@@ -2113,13 +2119,11 @@ ${hasWeb || hasNative ? `# npx convex env set SITE_URL ${defaultSiteUrl}\n` : ""
2113
2119
  }
2114
2120
  function buildServerVars(backend, frontend, auth, api, database, dbSetup, runtime, webDeploy, serverDeploy, payments, examples) {
2115
2121
  const hasReactRouter = frontend.includes("react-router");
2116
- const hasTanStackRouter = frontend.includes("tanstack-router");
2117
2122
  const hasSvelte = frontend.includes("svelte");
2118
2123
  const hasAstro = frontend.includes("astro");
2119
2124
  let corsOrigin = "http://localhost:3001";
2120
2125
  if (hasAstro) corsOrigin = "http://localhost:4321";
2121
- else if (hasReactRouter || hasTanStackRouter || hasSvelte) corsOrigin = "http://localhost:5173";
2122
- else if (backend === "self") corsOrigin = "http://localhost:3001";
2126
+ else if (hasReactRouter || hasSvelte) corsOrigin = "http://localhost:5173";
2123
2127
  let databaseUrl = null;
2124
2128
  if (database !== "none" && dbSetup === "none") switch (database) {
2125
2129
  case "postgres":
@@ -3980,7 +3984,7 @@ export default {
3980
3984
  "devDependencies": {
3981
3985
  "@types/bun": "^1.3.4",
3982
3986
  "concurrently": "^9.1.0",
3983
- "typescript": "^5"
3987
+ "typescript": "^6"
3984
3988
  }
3985
3989
  }
3986
3990
  `],
@@ -4030,7 +4034,6 @@ console.log("Electrobun desktop shell started.");
4030
4034
  "module": "ESNext",
4031
4035
  "moduleResolution": "bundler",
4032
4036
  "noEmit": true,
4033
- "baseUrl": ".",
4034
4037
  "paths": {
4035
4038
  "@/*": ["./src/*"]
4036
4039
  }
@@ -17147,8 +17150,7 @@ next-env.d.ts
17147
17150
  "compilerOptions": {
17148
17151
  "composite": true,
17149
17152
  "outDir": "dist",
17150
- "baseUrl": ".",
17151
- "paths": {
17153
+ "paths": {
17152
17154
  "@/*": ["./src/*"]
17153
17155
  },
17154
17156
  "jsx": "react-jsx"{{#if (eq backend "hono")}},
@@ -27737,7 +27739,6 @@ export const darkTheme = {
27737
27739
  "compilerOptions": {
27738
27740
  "strict": true,
27739
27741
  "jsx": "react-jsx",
27740
- "baseUrl": ".",
27741
27742
  "paths": {
27742
27743
  "@/*": ["*"]
27743
27744
  }
@@ -28697,7 +28698,6 @@ module.exports = uniwindConfig;
28697
28698
  "extends": "expo/tsconfig.base",
28698
28699
  "compilerOptions": {
28699
28700
  "strict": true,
28700
- "baseUrl": ".",
28701
28701
  "paths": {
28702
28702
  "@/*": ["./*"]
28703
28703
  }
@@ -29058,8 +29058,7 @@ initOpenNextCloudflareForDev();
29058
29058
  "@types/node": "^20",
29059
29059
  "@types/react": "^19.2.10",
29060
29060
  "@types/react-dom": "^19.2.3",
29061
- "tailwindcss": "^4.1.18",
29062
- "typescript": "^5"
29061
+ "tailwindcss": "^4.1.18"
29063
29062
  }
29064
29063
  }
29065
29064
  `],
@@ -29397,7 +29396,6 @@ export function ThemeProvider({
29397
29396
  "target": "ES2017",
29398
29397
  "lib": ["dom", "dom.iterable", "esnext"],
29399
29398
  "allowJs": true,
29400
- "baseUrl": ".",
29401
29399
  "skipLibCheck": true,
29402
29400
  "strict": true,
29403
29401
  "noEmit": true,
@@ -29449,28 +29447,27 @@ export function ThemeProvider({
29449
29447
  },
29450
29448
  "dependencies": {
29451
29449
  "@{{projectName}}/ui": "{{#if (eq packageManager "npm")}}*{{else}}workspace:*{{/if}}",
29452
- "@react-router/fs-routes": "^7.10.1",
29453
- "@react-router/node": "^7.10.1",
29454
- "@react-router/serve": "^7.10.1",
29455
- "isbot": "^5.1.28",
29456
- "lucide-react": "^0.546.0",
29450
+ "@react-router/fs-routes": "^7.14.1",
29451
+ "@react-router/node": "^7.14.1",
29452
+ "@react-router/serve": "^7.14.1",
29453
+ "isbot": "^5.1.39",
29454
+ "lucide-react": "^1.8.0",
29457
29455
  "next-themes": "^0.4.6",
29458
- "react": "^19.2.3",
29459
- "react-dom": "^19.2.3",
29460
- "react-router": "^7.10.1",
29461
- "sonner": "^2.0.5"
29456
+ "react": "^19.2.5",
29457
+ "react-dom": "^19.2.5",
29458
+ "react-router": "^7.14.1",
29459
+ "sonner": "^2.0.7"
29462
29460
  },
29463
29461
  "devDependencies": {
29464
- "@react-router/dev": "^7.10.1",
29465
- "@tailwindcss/vite": "^4.1.18",
29462
+ "@react-router/dev": "^7.14.1",
29463
+ "@tailwindcss/vite": "^4.2.2",
29466
29464
  "@types/node": "^20",
29467
- "@types/react": "^19.2.10",
29465
+ "@types/react": "^19.2.14",
29468
29466
  "@types/react-dom": "^19.2.3",
29469
29467
  "react-router-devtools": "^1.1.0",
29470
- "tailwindcss": "^4.1.18",
29471
- "typescript": "^5.8.3",
29472
- "vite": "^7.2.7",
29473
- "vite-tsconfig-paths": "^5.1.4"
29468
+ "tailwindcss": "^4.2.2",
29469
+ "vite": "^8.0.8",
29470
+ "vite-tsconfig-paths": "^6.1.1"
29474
29471
  }
29475
29472
  }
29476
29473
  `],
@@ -29941,7 +29938,6 @@ export default function Home() {
29941
29938
  "moduleResolution": "bundler",
29942
29939
  "jsx": "react-jsx",
29943
29940
  "rootDirs": [".", "./.react-router/types"],
29944
- "baseUrl": ".",
29945
29941
  "paths": {
29946
29942
  "@/*": ["./src/*"],
29947
29943
  "@{{projectName}}/ui/*": ["../../packages/ui/src/*"]
@@ -29994,26 +29990,26 @@ export default defineConfig({
29994
29990
  "check-types": "vite build && tsc --noEmit"
29995
29991
  },
29996
29992
  "dependencies": {
29997
- "@hookform/resolvers": "^5.1.1",
29993
+ "@hookform/resolvers": "^5.2.2",
29998
29994
  "@{{projectName}}/ui": "{{#if (eq packageManager "npm")}}*{{else}}workspace:*{{/if}}",
29999
- "@tailwindcss/vite": "^4.1.18",
30000
- "@tanstack/react-router": "^1.141.1",
30001
- "lucide-react": "^0.546.0",
29995
+ "@tailwindcss/vite": "^4.2.2",
29996
+ "@tanstack/react-router": "^1.168.22",
29997
+ "lucide-react": "^1.8.0",
30002
29998
  "next-themes": "^0.4.6",
30003
- "react": "^19.2.3",
30004
- "react-dom": "^19.2.3",
30005
- "sonner": "^2.0.5"
29999
+ "react": "^19.2.5",
30000
+ "react-dom": "^19.2.5",
30001
+ "sonner": "^2.0.7"
30006
30002
  },
30007
30003
  "devDependencies": {
30008
- "@tanstack/react-router-devtools": "^1.141.1",
30009
- "@tanstack/router-plugin": "^1.141.1",
30004
+ "@tanstack/react-router-devtools": "^1.166.13",
30005
+ "@tanstack/router-plugin": "^1.167.22",
30010
30006
  "@types/node": "^22.13.14",
30011
- "@types/react": "^19.2.10",
30007
+ "@types/react": "^19.2.14",
30012
30008
  "@types/react-dom": "^19.2.3",
30013
- "@vitejs/plugin-react": "^4.3.4",
30014
- "postcss": "^8.5.3",
30015
- "tailwindcss": "^4.1.18",
30016
- "vite": "^6.2.2"
30009
+ "@vitejs/plugin-react": "^6.0.1",
30010
+ "postcss": "^8.5.10",
30011
+ "tailwindcss": "^4.2.2",
30012
+ "vite": "^8.0.8"
30017
30013
  }
30018
30014
  }
30019
30015
  `],
@@ -30120,6 +30116,7 @@ function ClerkApiAuthBridge() {
30120
30116
  const router = createRouter({
30121
30117
  routeTree,
30122
30118
  defaultPreload: "intent",
30119
+ scrollRestoration: true,
30123
30120
  defaultPendingComponent: () => <Loader />,
30124
30121
  {{#if (eq api "orpc")}}
30125
30122
  context: { orpc, queryClient },
@@ -30401,11 +30398,9 @@ function HomeComponent() {
30401
30398
  "target": "ESNext",
30402
30399
  "module": "ESNext",
30403
30400
  "moduleResolution": "Bundler",
30404
- "verbatimModuleSyntax": true,
30405
30401
  "skipLibCheck": true,
30406
30402
  "types": ["vite/client"],
30407
30403
  "rootDirs": ["."],
30408
- "baseUrl": ".",
30409
30404
  "paths": {
30410
30405
  "@/*": ["./src/*"],
30411
30406
  "@{{projectName}}/ui/*": ["../../packages/ui/src/*"]
@@ -30416,24 +30411,25 @@ function HomeComponent() {
30416
30411
  ["frontend/react/tanstack-router/vite.config.ts.hbs", `import tailwindcss from "@tailwindcss/vite";
30417
30412
  import { tanstackRouter } from "@tanstack/router-plugin/vite";
30418
30413
  import react from "@vitejs/plugin-react";
30419
- import path from "node:path";
30420
30414
  import { defineConfig } from "vite";
30421
30415
 
30422
30416
  export default defineConfig({
30417
+ server: {
30418
+ port: 3001,
30419
+ },
30420
+ resolve: {
30421
+ tsconfigPaths: true,
30422
+ },
30423
30423
  plugins: [
30424
30424
  tailwindcss(),
30425
- tanstackRouter({}),
30425
+ tanstackRouter({
30426
+ target: "react",
30427
+ autoCodeSplitting: true,
30428
+ }),
30426
30429
  react(),
30427
30430
  ],
30428
- resolve: {
30429
- alias: {
30430
- "@": path.resolve(__dirname, "./src"),
30431
- },
30432
- },
30433
- server: {
30434
- port: 3001,
30435
- },
30436
- });`],
30431
+ });
30432
+ `],
30437
30433
  ["frontend/react/tanstack-start/package.json.hbs", `{
30438
30434
  "name": "web",
30439
30435
  "private": true,
@@ -30445,30 +30441,27 @@ export default defineConfig({
30445
30441
  },
30446
30442
  "dependencies": {
30447
30443
  "@{{projectName}}/ui": "{{#if (eq packageManager "npm")}}*{{else}}workspace:*{{/if}}",
30448
- "@tailwindcss/vite": "^4.1.18",
30449
- "@tanstack/react-query": "^5.80.6",
30450
- "@tanstack/react-router": "^1.141.1",
30451
- "@tanstack/react-router-with-query": "^1.130.17",
30452
- "@tanstack/react-start": "^1.141.1",
30453
- "@tanstack/router-plugin": "^1.141.1",
30454
- "lucide-react": "^0.546.0",
30444
+ "@tailwindcss/vite": "^4.2.2",
30445
+ "@tanstack/react-query": "^5.99.0",
30446
+ "@tanstack/react-router": "^1.168.22",
30447
+ "@tanstack/react-start": "^1.167.41",
30448
+ "lucide-react": "^1.8.0",
30455
30449
  "next-themes": "^0.4.6",
30456
- "react": "^19.2.3",
30457
- "react-dom": "^19.2.3",
30458
- "sonner": "^2.0.5",
30459
- "tailwindcss": "^4.1.18",
30460
- "vite-tsconfig-paths": "^5.1.4"
30450
+ "react": "^19.2.5",
30451
+ "react-dom": "^19.2.5",
30452
+ "sonner": "^2.0.7",
30453
+ "tailwindcss": "^4.2.2"
30461
30454
  },
30462
30455
  "devDependencies": {
30463
- "@tanstack/react-router-devtools": "^1.141.1",
30464
- "@testing-library/dom": "^10.4.0",
30465
- "@testing-library/react": "^16.2.0",
30466
- "@types/react": "^19.2.10",
30456
+ "@tanstack/react-router-devtools": "^1.166.13",
30457
+ "@testing-library/dom": "^10.4.1",
30458
+ "@testing-library/react": "^16.3.2",
30459
+ "@types/react": "^19.2.14",
30467
30460
  "@types/react-dom": "^19.2.3",
30468
- "@vitejs/plugin-react": "^5.0.4",
30469
- "jsdom": "^26.0.0",
30470
- "vite": "^7.0.2",
30471
- "web-vitals": "^5.0.3"
30461
+ "@vitejs/plugin-react": "^6.0.1",
30462
+ "jsdom": "^29.0.2",
30463
+ "vite": "^8.0.8",
30464
+ "web-vitals": "^5.2.0"
30472
30465
  }
30473
30466
  }
30474
30467
  `],
@@ -30491,7 +30484,8 @@ import Loader from "./components/loader";
30491
30484
  import "./index.css";
30492
30485
  import { routeTree } from "./routeTree.gen";
30493
30486
  {{#if (eq api "trpc")}}
30494
- import { QueryCache, QueryClient, QueryClientProvider } from "@tanstack/react-query";
30487
+ import { QueryCache, QueryClient } from "@tanstack/react-query";
30488
+ import { setupRouterSsrQueryIntegration } from "@tanstack/react-router-ssr-query";
30495
30489
  import { createTRPCClient, httpBatchLink } from "@trpc/client";
30496
30490
  import { createTRPCOptionsProxy } from "@trpc/tanstack-react-query";
30497
30491
  import { toast } from "sonner";
@@ -30504,7 +30498,7 @@ import { env } from "@{{projectName}}/env/web";
30504
30498
  import { getClerkAuthToken } from "@/utils/clerk-auth";
30505
30499
  {{/if}}
30506
30500
  {{else if (eq api "orpc")}}
30507
- import { QueryClientProvider } from "@tanstack/react-query";
30501
+ import { setupRouterSsrQueryIntegration } from "@tanstack/react-router-ssr-query";
30508
30502
  import { orpc, queryClient } from "./utils/orpc";
30509
30503
  {{/if}}
30510
30504
  {{/if}}
@@ -30604,22 +30598,20 @@ export const getRouter = () => {
30604
30598
  defaultNotFoundComponent: () => <div>Not Found</div>,
30605
30599
  {{#if (eq api "trpc")}}
30606
30600
  Wrap: ({ children }) => (
30607
- <QueryClientProvider client={queryClient}>
30608
- <TRPCProvider trpcClient={trpcClient} queryClient={queryClient}>
30609
- {children}
30610
- </TRPCProvider>
30611
- </QueryClientProvider>
30612
- ),
30613
- {{else if (eq api "orpc")}}
30614
- Wrap: ({ children }) => (
30615
- <QueryClientProvider client={queryClient}>
30601
+ <TRPCProvider trpcClient={trpcClient} queryClient={queryClient}>
30616
30602
  {children}
30617
- </QueryClientProvider>
30603
+ </TRPCProvider>
30618
30604
  ),
30619
- {{else}}
30620
- Wrap: ({ children }) => <>{children}</>,
30621
30605
  {{/if}}
30622
30606
  });
30607
+ {{#if (or (eq api "trpc") (eq api "orpc"))}}
30608
+
30609
+ setupRouterSsrQueryIntegration({
30610
+ router,
30611
+ queryClient,
30612
+ });
30613
+ {{/if}}
30614
+
30623
30615
  return router;
30624
30616
  };
30625
30617
  {{/if}}
@@ -30984,7 +30976,6 @@ function HomeComponent() {
30984
30976
  /* Bundler mode */
30985
30977
  "moduleResolution": "bundler",
30986
30978
  "allowImportingTsExtensions": true,
30987
- "verbatimModuleSyntax": true,
30988
30979
  "noEmit": true,
30989
30980
 
30990
30981
  /* Linting */
@@ -30994,7 +30985,6 @@ function HomeComponent() {
30994
30985
  "noUnusedParameters": true,
30995
30986
  "noFallthroughCasesInSwitch": true,
30996
30987
  "noUncheckedSideEffectImports": true,
30997
- "baseUrl": ".",
30998
30988
  "paths": {
30999
30989
  "@/*": ["./src/*"],
31000
30990
  "@{{projectName}}/ui/*": ["../../packages/ui/src/*"]
@@ -31003,21 +30993,22 @@ function HomeComponent() {
31003
30993
  }
31004
30994
  `],
31005
30995
  ["frontend/react/tanstack-start/vite.config.ts.hbs", `import { defineConfig } from "vite";
31006
- import tsconfigPaths from "vite-tsconfig-paths";
31007
30996
  import { tanstackStart } from "@tanstack/react-start/plugin/vite";
31008
30997
  import tailwindcss from "@tailwindcss/vite";
31009
30998
  import viteReact from "@vitejs/plugin-react";
31010
30999
 
31011
31000
  export default defineConfig({
31001
+ server: {
31002
+ port: 3001,
31003
+ },
31004
+ resolve: {
31005
+ tsconfigPaths: true,
31006
+ },
31012
31007
  plugins: [
31013
- tsconfigPaths(),
31014
31008
  tailwindcss(),
31015
31009
  tanstackStart(),
31016
31010
  viteReact(),
31017
31011
  ],
31018
- server: {
31019
- port: 3001,
31020
- },
31021
31012
  {{#if (and (eq backend "convex") (eq auth "better-auth"))}}
31022
31013
  ssr: {
31023
31014
  noExternal: ["@convex-dev/better-auth"],
@@ -31241,16 +31232,16 @@ dist-ssr
31241
31232
  "test": "vitest run"
31242
31233
  },
31243
31234
  "dependencies": {
31244
- "@tailwindcss/vite": "^4.1.13",
31245
- "@tanstack/router-plugin": "^1.131.44",
31246
- "@tanstack/solid-router": "^1.131.44",
31247
- "lucide-solid": "^0.544.0",
31248
- "solid-js": "^1.9.9",
31249
- "tailwindcss": "^4.1.13"
31235
+ "@tailwindcss/vite": "^4.2.2",
31236
+ "@tanstack/router-plugin": "^1.167.22",
31237
+ "@tanstack/solid-router": "^1.168.20",
31238
+ "lucide-solid": "^1.8.0",
31239
+ "solid-js": "^1.9.12",
31240
+ "tailwindcss": "^4.2.2"
31250
31241
  },
31251
31242
  "devDependencies": {
31252
- "vite": "^7.1.5",
31253
- "vite-plugin-solid": "^2.11.8"
31243
+ "vite": "^8.0.8",
31244
+ "vite-plugin-solid": "^2.11.12"
31254
31245
  }
31255
31246
  }
31256
31247
  `],
@@ -31486,7 +31477,6 @@ body {
31486
31477
  "noUncheckedSideEffectImports": true,
31487
31478
 
31488
31479
  "rootDirs": ["."],
31489
- "baseUrl": ".",
31490
31480
  "paths": {
31491
31481
  "@/*": ["./src/*"]
31492
31482
  }
@@ -31555,14 +31545,14 @@ vite.config.ts.timestamp-*
31555
31545
  "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
31556
31546
  },
31557
31547
  "devDependencies": {
31558
- "@sveltejs/adapter-auto": "^6.1.0",
31559
- "@sveltejs/kit": "^2.31.1",
31560
- "@sveltejs/vite-plugin-svelte": "^6.1.2",
31561
- "@tailwindcss/vite": "^4.1.12",
31562
- "svelte": "^5.38.1",
31563
- "svelte-check": "^4.3.1",
31564
- "tailwindcss": "^4.1.12",
31565
- "vite": "^7.1.2"
31548
+ "@sveltejs/adapter-auto": "^7.0.1",
31549
+ "@sveltejs/kit": "^2.57.1",
31550
+ "@sveltejs/vite-plugin-svelte": "^7.0.0",
31551
+ "@tailwindcss/vite": "^4.2.2",
31552
+ "svelte": "^5.55.4",
31553
+ "svelte-check": "^4.4.6",
31554
+ "tailwindcss": "^4.2.2",
31555
+ "vite": "^8.0.8"
31566
31556
  },
31567
31557
  "dependencies": {}
31568
31558
  }
@@ -32573,8 +32563,7 @@ await app.finalize();
32573
32563
  "devDependencies": {
32574
32564
  "@types/react": "^19.2.10",
32575
32565
  "@types/react-dom": "^19.2.3",
32576
- "tailwindcss": "^4.1.18",
32577
- "typescript": "^5.9.3"
32566
+ "tailwindcss": "^4.1.18"
32578
32567
  },
32579
32568
  "scripts": {
32580
32569
  "check-types": "tsc --noEmit"
@@ -33296,7 +33285,6 @@ export function cn(...inputs: ClassValue[]) {
33296
33285
  ["packages/ui/tsconfig.json.hbs", `{
33297
33286
  "extends": "@{{projectName}}/config/tsconfig.base.json",
33298
33287
  "compilerOptions": {
33299
- "baseUrl": ".",
33300
33288
  "jsx": "react-jsx",
33301
33289
  "lib": ["ESNext", "DOM", "DOM.Iterable"],
33302
33290
  "paths": {