create-better-t-stack 2.33.8 → 2.33.9-canary.2ec142a9

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.
Files changed (34) hide show
  1. package/README.md +2 -1
  2. package/dist/cli.js +1 -1
  3. package/dist/index.d.ts +17 -4
  4. package/dist/index.js +1 -1
  5. package/dist/{src-jDxvJPRx.js → src-DlHyCY_I.js} +1466 -562
  6. package/package.json +7 -4
  7. package/templates/addons/biome/biome.json.hbs +1 -0
  8. package/templates/addons/ruler/.ruler/mcp.json.hbs +1 -1
  9. package/templates/addons/ultracite/biome.json.hbs +1 -0
  10. package/templates/auth/server/base/src/lib/auth.ts.hbs +37 -4
  11. package/templates/backend/server/server-base/_gitignore +1 -0
  12. package/templates/backend/server/server-base/tsconfig.json.hbs +1 -1
  13. package/templates/base/_gitignore +2 -0
  14. package/templates/db/drizzle/sqlite/drizzle.config.ts.hbs +2 -0
  15. package/templates/deploy/alchemy/alchemy.run.ts.hbs +208 -0
  16. package/templates/deploy/alchemy/env.d.ts.hbs +20 -0
  17. package/templates/deploy/alchemy/wrangler.jsonc.hbs +11 -0
  18. package/templates/deploy/{web → wrangler/web}/nuxt/wrangler.jsonc.hbs +1 -1
  19. package/templates/deploy/{web → wrangler/web}/react/next/wrangler.jsonc.hbs +1 -1
  20. package/templates/deploy/{web → wrangler/web}/react/react-router/wrangler.jsonc.hbs +1 -1
  21. package/templates/deploy/{web → wrangler/web}/react/tanstack-router/wrangler.jsonc.hbs +1 -1
  22. package/templates/deploy/{web → wrangler/web}/react/tanstack-start/wrangler.jsonc.hbs +1 -1
  23. package/templates/deploy/{web → wrangler/web}/solid/wrangler.jsonc.hbs +1 -1
  24. package/templates/deploy/{web → wrangler/web}/svelte/wrangler.jsonc.hbs +1 -1
  25. package/templates/frontend/nuxt/_gitignore +3 -0
  26. package/templates/frontend/nuxt/tsconfig.json.hbs +1 -3
  27. package/templates/frontend/react/web-base/_gitignore +1 -0
  28. package/templates/frontend/react/web-base/src/components/header.tsx.hbs +0 -1
  29. package/templates/frontend/solid/_gitignore +1 -0
  30. package/templates/frontend/solid/package.json.hbs +0 -1
  31. package/templates/frontend/svelte/_gitignore +1 -0
  32. package/templates/frontend/svelte/package.json.hbs +11 -13
  33. /package/templates/{runtime/workers/apps → deploy/wrangler}/server/wrangler.jsonc.hbs +0 -0
  34. /package/templates/deploy/{web → wrangler/web}/react/next/open-next.config.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-better-t-stack",
3
- "version": "2.33.8",
3
+ "version": "2.33.9-canary.2ec142a9",
4
4
  "description": "A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -52,7 +52,8 @@
52
52
  "dev": "tsdown --watch",
53
53
  "check-types": "tsc --noEmit",
54
54
  "check": "biome check --write .",
55
- "test": "bun run build && vitest --ui",
55
+ "test": "bun run build && vitest run",
56
+ "test:ui": "bun run build && vitest --ui",
56
57
  "test:with-build": "bun run build && WITH_BUILD=1 vitest --ui",
57
58
  "prepublishOnly": "npm run build"
58
59
  },
@@ -63,22 +64,24 @@
63
64
  }
64
65
  },
65
66
  "dependencies": {
67
+ "@biomejs/js-api": "^3.0.0",
68
+ "@biomejs/wasm-nodejs": "^2.2.0",
66
69
  "@clack/prompts": "^0.11.0",
67
70
  "consola": "^3.4.2",
68
71
  "execa": "^9.6.0",
69
72
  "fs-extra": "^11.3.1",
70
- "globby": "^14.1.0",
71
73
  "gradient-string": "^3.0.0",
72
74
  "handlebars": "^4.7.8",
73
75
  "jsonc-parser": "^3.3.1",
74
76
  "picocolors": "^1.1.1",
77
+ "tinyglobby": "^0.2.14",
75
78
  "trpc-cli": "^0.10.2",
76
79
  "ts-morph": "^26.0.0",
77
80
  "zod": "^4.0.17"
78
81
  },
79
82
  "devDependencies": {
80
83
  "@types/fs-extra": "^11.0.4",
81
- "@types/node": "^24.2.1",
84
+ "@types/node": "^24.3.0",
82
85
  "@vitest/ui": "^3.2.4",
83
86
  "tsdown": "^0.14.1",
84
87
  "typescript": "^5.9.2",
@@ -21,6 +21,7 @@
21
21
  "!bts.jsonc",
22
22
  "!**/.expo",
23
23
  "!**/.wrangler",
24
+ "!**/.alchemy",
24
25
  "!**/wrangler.jsonc",
25
26
  "!**/.source"
26
27
  ]
@@ -4,7 +4,7 @@
4
4
  "type": "stdio",
5
5
  "command": "npx",
6
6
  "args": ["-y", "@upstash/context7-mcp"]
7
- }{{#if (or (eq runtime "workers") (eq webDeploy "workers"))}},
7
+ }{{#if (or (eq runtime "workers") (eq webDeploy "wrangler"))}},
8
8
  "cloudflare": {
9
9
  "command": "npx",
10
10
  "args": ["mcp-remote", "https://docs.mcp.cloudflare.com/sse"]
@@ -16,6 +16,7 @@
16
16
  "!bts.jsonc",
17
17
  "!**/.expo",
18
18
  "!**/.wrangler",
19
+ "!**/.alchemy",
19
20
  "!**/wrangler.jsonc",
20
21
  "!**/.source"
21
22
  ]
@@ -21,6 +21,13 @@ export const auth = betterAuth({
21
21
  ],
22
22
  emailAndPassword: {
23
23
  enabled: true,
24
+ },
25
+ advanced: {
26
+ defaultCookieAttributes: {
27
+ sameSite: "none",
28
+ secure: true,
29
+ httpOnly: true,
30
+ },
24
31
  }
25
32
  {{#if (or (includes frontend "native-nativewind") (includes frontend "native-unistyles"))}}
26
33
  , plugins: [expo()]
@@ -54,8 +61,13 @@ export const auth = betterAuth({
54
61
  emailAndPassword: {
55
62
  enabled: true,
56
63
  },
57
- secret: process.env.BETTER_AUTH_SECRET,
58
- baseURL: process.env.BETTER_AUTH_URL,
64
+ advanced: {
65
+ defaultCookieAttributes: {
66
+ sameSite: "none",
67
+ secure: true,
68
+ httpOnly: true,
69
+ },
70
+ },
59
71
  {{#if (or (includes frontend "native-nativewind") (includes frontend "native-unistyles"))}}
60
72
  plugins: [expo()],
61
73
  {{/if}}
@@ -73,7 +85,7 @@ import * as schema from "../db/schema/auth";
73
85
  import { env } from "cloudflare:workers";
74
86
 
75
87
  export const auth = betterAuth({
76
- database: drizzleAdapter(db, {
88
+ database: drizzleAdapter(db, {
77
89
  {{#if (eq database "postgres")}}provider: "pg",{{/if}}
78
90
  {{#if (eq database "sqlite")}}provider: "sqlite",{{/if}}
79
91
  {{#if (eq database "mysql")}}provider: "mysql",{{/if}}
@@ -85,6 +97,13 @@ export const auth = betterAuth({
85
97
  },
86
98
  secret: env.BETTER_AUTH_SECRET,
87
99
  baseURL: env.BETTER_AUTH_URL,
100
+ advanced: {
101
+ defaultCookieAttributes: {
102
+ sameSite: "none",
103
+ secure: true,
104
+ httpOnly: true,
105
+ },
106
+ },
88
107
  {{#if (or (includes frontend "native-nativewind") (includes frontend "native-unistyles"))}}
89
108
  plugins: [expo()],
90
109
  {{/if}}
@@ -110,6 +129,13 @@ export const auth = betterAuth({
110
129
  ],
111
130
  emailAndPassword: {
112
131
  enabled: true,
132
+ },
133
+ advanced: {
134
+ defaultCookieAttributes: {
135
+ sameSite: "none",
136
+ secure: true,
137
+ httpOnly: true,
138
+ },
113
139
  }
114
140
  {{#if (or (includes frontend "native-nativewind") (includes frontend "native-unistyles"))}}
115
141
  , plugins: [expo()]
@@ -133,9 +159,16 @@ export const auth = betterAuth({
133
159
  ],
134
160
  emailAndPassword: {
135
161
  enabled: true,
162
+ },
163
+ advanced: {
164
+ defaultCookieAttributes: {
165
+ sameSite: "none",
166
+ secure: true,
167
+ httpOnly: true,
168
+ },
136
169
  }
137
170
  {{#if (or (includes frontend "native-nativewind") (includes frontend "native-unistyles"))}}
138
171
  , plugins: [expo()]
139
172
  {{/if}}
140
173
  });
141
- {{/if}}
174
+ {{/if}}
@@ -16,6 +16,7 @@ dist/
16
16
  .idea/usage.statistics.xml
17
17
  .idea/shelf
18
18
  .wrangler
19
+ .alchemy
19
20
  /.next/
20
21
  .vercel
21
22
 
@@ -20,7 +20,7 @@
20
20
  {{else if (eq runtime "bun")}}
21
21
  "bun"
22
22
  {{else if (eq runtime "workers")}}
23
- "./worker-configuration",
23
+ "@cloudflare/workers-types",
24
24
  "node"
25
25
  {{else}}
26
26
  "node",
@@ -1,2 +1,4 @@
1
1
  node_modules
2
2
  .turbo
3
+ .alchemy
4
+ .env
@@ -7,11 +7,13 @@ export default defineConfig({
7
7
  // DOCS: https://orm.drizzle.team/docs/guides/d1-http-with-drizzle-kit
8
8
  dialect: "sqlite",
9
9
  driver: "d1-http",
10
+ {{#if (eq serverDeploy "wrangler")}}
10
11
  dbCredentials: {
11
12
  accountId: process.env.CLOUDFLARE_ACCOUNT_ID!,
12
13
  databaseId: process.env.CLOUDFLARE_DATABASE_ID!,
13
14
  token: process.env.CLOUDFLARE_D1_TOKEN!,
14
15
  },
16
+ {{/if}}
15
17
  {{else}}
16
18
  dialect: "turso",
17
19
  dbCredentials: {
@@ -0,0 +1,208 @@
1
+ import alchemy from "alchemy";
2
+ {{#if (eq webDeploy "alchemy")}}
3
+ {{#if (includes frontend "next")}}
4
+ import { Next } from "alchemy/cloudflare";
5
+ {{else if (includes frontend "nuxt")}}
6
+ import { Nuxt } from "alchemy/cloudflare";
7
+ {{else if (includes frontend "svelte")}}
8
+ import { SvelteKit } from "alchemy/cloudflare";
9
+ {{else if (includes frontend "tanstack-start")}}
10
+ import { TanStackStart } from "alchemy/cloudflare";
11
+ {{else if (includes frontend "tanstack-router")}}
12
+ import { Vite } from "alchemy/cloudflare";
13
+ {{else if (includes frontend "react-router")}}
14
+ import { ReactRouter } from "alchemy/cloudflare";
15
+ {{else if (includes frontend "solid")}}
16
+ import { Vite } from "alchemy/cloudflare";
17
+ {{/if}}
18
+ {{/if}}
19
+ {{#if (eq serverDeploy "alchemy")}}
20
+ import { Worker, WranglerJson } from "alchemy/cloudflare";
21
+ {{#if (eq dbSetup "d1")}}
22
+ import { D1Database } from "alchemy/cloudflare";
23
+ {{/if}}
24
+ {{/if}}
25
+ {{#if (and (eq serverDeploy "alchemy") (eq dbSetup "d1"))}}
26
+ import { Exec } from "alchemy/os";
27
+ {{/if}}
28
+ import { config } from "dotenv";
29
+
30
+ {{#if (and (eq webDeploy "alchemy") (eq serverDeploy "alchemy"))}}
31
+ config({ path: "./.env" });
32
+ config({ path: "./apps/web/.env" });
33
+ config({ path: "./apps/server/.env" });
34
+ {{else if (or (eq webDeploy "alchemy") (eq serverDeploy "alchemy"))}}
35
+ config({ path: "./.env" });
36
+ {{/if}}
37
+
38
+ const app = await alchemy("{{projectName}}");
39
+
40
+ {{#if (and (eq serverDeploy "alchemy") (eq dbSetup "d1"))}}
41
+ await Exec("db-generate", {
42
+ {{#if (and (eq webDeploy "alchemy") (eq serverDeploy "alchemy"))}}cwd: "apps/server",{{/if}}
43
+ command: "{{packageManager}} run db:generate",
44
+ });
45
+
46
+ const db = await D1Database("database", {
47
+ name: `${app.name}-${app.stage}-db`,
48
+ migrationsDir: "apps/server/src/db/migrations",
49
+ });
50
+ {{/if}}
51
+
52
+ {{#if (eq webDeploy "alchemy")}}
53
+ {{#if (includes frontend "next")}}
54
+ export const web = await Next("web", {
55
+ {{#if (eq serverDeploy "alchemy")}}cwd: "apps/web",{{/if}}
56
+ name: `${app.name}-${app.stage}-web`,
57
+ bindings: {
58
+ {{#if (eq backend "convex")}}
59
+ NEXT_PUBLIC_CONVEX_URL: process.env.NEXT_PUBLIC_CONVEX_URL || "",
60
+ {{else}}
61
+ NEXT_PUBLIC_SERVER_URL: process.env.NEXT_PUBLIC_SERVER_URL || "",
62
+ {{/if}}
63
+ },
64
+ dev: {
65
+ command: "{{packageManager}} run dev"
66
+ }
67
+ });
68
+ {{else if (includes frontend "nuxt")}}
69
+ export const web = await Nuxt("web", {
70
+ {{#if (eq serverDeploy "alchemy")}}cwd: "apps/web",{{/if}}
71
+ name: `${app.name}-${app.stage}-web`,
72
+ bindings: {
73
+ {{#if (eq backend "convex")}}
74
+ NUXT_PUBLIC_CONVEX_URL: process.env.NUXT_PUBLIC_CONVEX_URL || "",
75
+ {{else}}
76
+ NUXT_PUBLIC_SERVER_URL: process.env.NUXT_PUBLIC_SERVER_URL || "",
77
+ {{/if}}
78
+ },
79
+ dev: {
80
+ command: "{{packageManager}} run dev"
81
+ }
82
+ });
83
+ {{else if (includes frontend "svelte")}}
84
+ export const web = await SvelteKit("web", {
85
+ {{#if (eq serverDeploy "alchemy")}}cwd: "apps/web",{{/if}}
86
+ name: `${app.name}-${app.stage}-web`,
87
+ bindings: {
88
+ {{#if (eq backend "convex")}}
89
+ PUBLIC_CONVEX_URL: process.env.PUBLIC_CONVEX_URL || "",
90
+ {{else}}
91
+ PUBLIC_SERVER_URL: process.env.PUBLIC_SERVER_URL || "",
92
+ {{/if}}
93
+ },
94
+ dev: {
95
+ command: "{{packageManager}} run dev"
96
+ }
97
+ });
98
+ {{else if (includes frontend "tanstack-start")}}
99
+ export const web = await TanStackStart("web", {
100
+ {{#if (eq serverDeploy "alchemy")}}cwd: "apps/web",{{/if}}
101
+ name: `${app.name}-${app.stage}-web`,
102
+ bindings: {
103
+ {{#if (eq backend "convex")}}
104
+ VITE_CONVEX_URL: process.env.VITE_CONVEX_URL || "",
105
+ {{else}}
106
+ VITE_SERVER_URL: process.env.VITE_SERVER_URL || "",
107
+ {{/if}}
108
+ },
109
+ dev: {
110
+ command: "{{packageManager}} run dev"
111
+ }
112
+ });
113
+ {{else if (includes frontend "tanstack-router")}}
114
+ export const web = await Vite("web", {
115
+ {{#if (eq serverDeploy "alchemy")}}cwd: "apps/web",{{/if}}
116
+ name: `${app.name}-${app.stage}-web`,
117
+ assets: "dist",
118
+ bindings: {
119
+ {{#if (eq backend "convex")}}
120
+ VITE_CONVEX_URL: process.env.VITE_CONVEX_URL || "",
121
+ {{else}}
122
+ VITE_SERVER_URL: process.env.VITE_SERVER_URL || "",
123
+ {{/if}}
124
+ },
125
+ dev: {
126
+ command: "{{packageManager}} run dev"
127
+ }
128
+ });
129
+ {{else if (includes frontend "react-router")}}
130
+ export const web = await ReactRouter("web", {
131
+ {{#if (eq serverDeploy "alchemy")}}cwd: "apps/web",{{/if}}
132
+ name: `${app.name}-${app.stage}-web`,
133
+ bindings: {
134
+ {{#if (eq backend "convex")}}
135
+ VITE_CONVEX_URL: process.env.VITE_CONVEX_URL || "",
136
+ {{else}}
137
+ VITE_SERVER_URL: process.env.VITE_SERVER_URL || "",
138
+ {{/if}}
139
+ },
140
+ dev: {
141
+ command: "{{packageManager}} run dev"
142
+ }
143
+ });
144
+ {{else if (includes frontend "solid")}}
145
+ export const web = await Vite("web", {
146
+ {{#if (eq serverDeploy "alchemy")}}cwd: "apps/web",{{/if}}
147
+ name: `${app.name}-${app.stage}-web`,
148
+ assets: "dist",
149
+ bindings: {
150
+ {{#if (eq backend "convex")}}
151
+ VITE_CONVEX_URL: process.env.VITE_CONVEX_URL || "",
152
+ {{else}}
153
+ VITE_SERVER_URL: process.env.VITE_SERVER_URL || "",
154
+ {{/if}}
155
+ },
156
+ dev: {
157
+ command: "{{packageManager}} run dev"
158
+ }
159
+ });
160
+ {{/if}}
161
+ {{/if}}
162
+
163
+ {{#if (eq serverDeploy "alchemy")}}
164
+ export const server = await Worker("server", {
165
+ {{#if (eq webDeploy "alchemy")}}cwd: "apps/server",{{/if}}
166
+ name: `${app.name}-${app.stage}`,
167
+ entrypoint: "src/index.ts",
168
+ compatibility: "node",
169
+ bindings: {
170
+ {{#if (eq dbSetup "d1")}}
171
+ DB: db,
172
+ {{else if (and (ne database "none") (ne dbSetup "none"))}}
173
+ DATABASE_URL: alchemy.secret(process.env.DATABASE_URL),
174
+ {{/if}}
175
+ CORS_ORIGIN: process.env.CORS_ORIGIN || "",
176
+ {{#if auth}}
177
+ BETTER_AUTH_SECRET: alchemy.secret(process.env.BETTER_AUTH_SECRET),
178
+ BETTER_AUTH_URL: process.env.BETTER_AUTH_URL || "",
179
+ {{/if}}
180
+ {{#if (includes examples "ai")}}
181
+ GOOGLE_GENERATIVE_AI_API_KEY: alchemy.secret(process.env.GOOGLE_GENERATIVE_AI_API_KEY),
182
+ {{/if}}
183
+ {{#if (eq dbSetup "turso")}}
184
+ DATABASE_AUTH_TOKEN: alchemy.secret(process.env.DATABASE_AUTH_TOKEN),
185
+ {{/if}}
186
+ },
187
+ dev: {
188
+ port: 3000,
189
+ },
190
+ });
191
+
192
+ await WranglerJson("wrangler", {
193
+ worker: server,
194
+ });
195
+ {{/if}}
196
+
197
+
198
+
199
+ {{#if (and (eq webDeploy "alchemy") (eq serverDeploy "alchemy"))}}
200
+ console.log(`Web -> ${web.url}`);
201
+ console.log(`Server -> ${server.url}`);
202
+ {{else if (eq webDeploy "alchemy")}}
203
+ console.log(`Web -> ${web.url}`);
204
+ {{else if (eq serverDeploy "alchemy")}}
205
+ console.log(`Server -> ${server.url}`);
206
+ {{/if}}
207
+
208
+ await app.finalize();
@@ -0,0 +1,20 @@
1
+ // This file infers types for the cloudflare:workers environment from your Alchemy Worker.
2
+ // @see https://alchemy.run/concepts/bindings/#type-safe-bindings
3
+
4
+ {{#if (eq webDeploy "alchemy")}}
5
+ import type { server } from "../../alchemy.run";
6
+ {{else}}
7
+ import type { server } from "./alchemy.run";
8
+ {{/if}}
9
+
10
+ export type CloudflareEnv = typeof server.Env;
11
+
12
+ declare global {
13
+ type Env = CloudflareEnv;
14
+ }
15
+
16
+ declare module "cloudflare:workers" {
17
+ namespace Cloudflare {
18
+ export interface Env extends CloudflareEnv {}
19
+ }
20
+ }
@@ -0,0 +1,11 @@
1
+ // This is a temporary wrangler.jsonc file that will be overwritten by alchemy
2
+ // It's only here so that `wrangler dev` can work or use alchemy dev instead
3
+ {
4
+ "name": "{{projectName}}",
5
+ "main": "src/index.ts",
6
+ "compatibility_date": "2025-08-16",
7
+ "compatibility_flags": [
8
+ "nodejs_compat",
9
+ "nodejs_compat_populate_process_env"
10
+ ]
11
+ }
@@ -3,7 +3,7 @@
3
3
  * https://developers.cloudflare.com/workers/wrangler/configuration/
4
4
  */
5
5
  {
6
- "$schema": "../../node_modules/wrangler/config-schema.json",
6
+ "$schema": "./node_modules/wrangler/config-schema.json",
7
7
  "name": "{{projectName}}",
8
8
  "main": "./.output/server/index.mjs",
9
9
  "compatibility_date": "2025-07-01",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "../../node_modules/wrangler/config-schema.json",
2
+ "$schema": "./node_modules/wrangler/config-schema.json",
3
3
  "main": ".open-next/worker.js",
4
4
  "name": "{{projectName}}",
5
5
  "compatibility_date": "2025-07-05",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "../../node_modules/wrangler/config-schema.json",
2
+ "$schema": "./node_modules/wrangler/config-schema.json",
3
3
  "name": "{{projectName}}",
4
4
  "compatibility_date": "2025-04-03",
5
5
  "assets": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "../../node_modules/wrangler/config-schema.json",
2
+ "$schema": "./node_modules/wrangler/config-schema.json",
3
3
  "name": "{{projectName}}",
4
4
  "compatibility_date": "2025-04-03",
5
5
  "assets": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "../../node_modules/wrangler/config-schema.json",
2
+ "$schema": "./node_modules/wrangler/config-schema.json",
3
3
  "name": "{{projectName}}",
4
4
  "main": ".output/server/index.mjs",
5
5
  "compatibility_date": "2025-07-05",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "../../node_modules/wrangler/config-schema.json",
2
+ "$schema": "./node_modules/wrangler/config-schema.json",
3
3
  "name": "{{projectName}}",
4
4
  "compatibility_date": "2025-04-03",
5
5
  "assets": {
@@ -3,7 +3,7 @@
3
3
  * https://developers.cloudflare.com/workers/wrangler/configuration/
4
4
  */
5
5
  {
6
- "$schema": "../../node_modules/wrangler/config-schema.json",
6
+ "$schema": "./node_modules/wrangler/config-schema.json",
7
7
  "name": "{{projectName}}",
8
8
  "main": ".svelte-kit/cloudflare/_worker.js",
9
9
  "compatibility_date": "2025-07-05",
@@ -5,6 +5,8 @@
5
5
  .nitro
6
6
  .cache
7
7
  dist
8
+ .wrangler
9
+ .alchemy
8
10
 
9
11
  # Node dependencies
10
12
  node_modules
@@ -22,3 +24,4 @@ logs
22
24
  .env
23
25
  .env.*
24
26
  !.env.example
27
+
@@ -12,9 +12,7 @@
12
12
  },
13
13
  {
14
14
  "path": "./.nuxt/tsconfig.node.json"
15
- }
16
- {{#unless (or (eq backend "convex") (eq backend "none"))}}
17
- ,
15
+ }{{#unless (or (eq backend "convex") (eq backend "none"))}},
18
16
  {
19
17
  "path": "../server"
20
18
  }
@@ -26,6 +26,7 @@
26
26
  .vercel
27
27
  .netlify
28
28
  .wrangler
29
+ .alchemy
29
30
 
30
31
  # Environment & local files
31
32
  .env*
@@ -6,7 +6,6 @@ import { NavLink } from "react-router";
6
6
  {{else if (or (includes frontend "tanstack-router") (includes frontend "tanstack-start"))}}
7
7
  import { Link } from "@tanstack/react-router";
8
8
  {{/if}}
9
-
10
9
  {{#unless (includes frontend "tanstack-start")}}
11
10
  import { ModeToggle } from "./mode-toggle";
12
11
  {{/unless}}
@@ -7,4 +7,5 @@ dist-ssr
7
7
  .env.*
8
8
 
9
9
  .wrangler
10
+ .alchemy
10
11
  .dev.vars*
@@ -13,7 +13,6 @@
13
13
  "@tanstack/router-plugin": "^1.109.2",
14
14
  "@tanstack/solid-form": "^1.9.0",
15
15
  "@tanstack/solid-router": "^1.110.0",
16
- "@tanstack/solid-router-devtools": "^1.109.2",
17
16
  "lucide-solid": "^0.507.0",
18
17
  "solid-js": "^1.9.4",
19
18
  "tailwindcss": "^4.0.6",
@@ -5,6 +5,7 @@ node_modules
5
5
  .vercel
6
6
  .netlify
7
7
  .wrangler
8
+ .alchemy
8
9
  /.svelte-kit
9
10
  /build
10
11
 
@@ -12,20 +12,18 @@
12
12
  "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
13
13
  },
14
14
  "devDependencies": {
15
- "@sveltejs/adapter-auto": "^6.0.0",
16
- "@sveltejs/kit": "^2.20.7",
17
- "@sveltejs/vite-plugin-svelte": "^5.0.3",
18
- "@tailwindcss/vite": "^4.1.4",
19
- "svelte": "^5.28.2",
20
- "svelte-check": "^4.1.6",
21
- "tailwindcss": "^4.1.4",
22
- "typescript": "^5.8.3",
23
- "@tanstack/svelte-query-devtools": "^5.74.6",
24
- "vite": "^7.0.2"
15
+ "@sveltejs/adapter-auto": "^6.1.0",
16
+ "@sveltejs/kit": "^2.31.1",
17
+ "@sveltejs/vite-plugin-svelte": "^6.1.2",
18
+ "@tailwindcss/vite": "^4.1.12",
19
+ "svelte": "^5.38.1",
20
+ "svelte-check": "^4.3.1",
21
+ "tailwindcss": "^4.1.12",
22
+ "typescript": "^5.9.2",
23
+ "vite": "^7.1.2"
25
24
  },
26
25
  "dependencies": {
27
- "@tanstack/svelte-form": "^1.7.0",
28
- "@tanstack/svelte-query": "^5.74.4",
29
- "zod": "^4.0.2"
26
+ "@tanstack/svelte-form": "^1.19.2",
27
+ "zod": "^4.0.17"
30
28
  }
31
29
  }