@better-t-stack/template-generator 3.35.1 → 3.35.3
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.d.mts +86 -86
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +301 -280
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -385,27 +385,27 @@ function updatePackageJsonsWithCatalogs(vfs, packagesInfo, catalog) {
|
|
|
385
385
|
//#region src/utils/add-deps.ts
|
|
386
386
|
const dependencyVersionMap = {
|
|
387
387
|
typescript: "^6",
|
|
388
|
-
"better-auth": "1.6.
|
|
389
|
-
"@better-auth/expo": "1.6.
|
|
390
|
-
"@clerk/backend": "^3.
|
|
391
|
-
"@clerk/express": "^2.
|
|
392
|
-
"@clerk/fastify": "^3.1.
|
|
393
|
-
"@clerk/nextjs": "^7.
|
|
394
|
-
"@clerk/react": "^6.
|
|
395
|
-
"@clerk/react-router": "^3.
|
|
396
|
-
"@clerk/tanstack-react-start": "^1.
|
|
397
|
-
"@clerk/expo": "^3.
|
|
398
|
-
"drizzle-orm": "^0.45.
|
|
399
|
-
"drizzle-kit": "^0.31.
|
|
400
|
-
"@planetscale/database": "^1.
|
|
401
|
-
"@libsql/client": "0.
|
|
402
|
-
libsql: "0.5.
|
|
403
|
-
"@neondatabase/serverless": "^1.0
|
|
404
|
-
pg: "^8.
|
|
405
|
-
"@types/pg": "^8.
|
|
388
|
+
"better-auth": "1.6.23",
|
|
389
|
+
"@better-auth/expo": "1.6.23",
|
|
390
|
+
"@clerk/backend": "^3.10.0",
|
|
391
|
+
"@clerk/express": "^2.1.35",
|
|
392
|
+
"@clerk/fastify": "^3.1.45",
|
|
393
|
+
"@clerk/nextjs": "^7.5.12",
|
|
394
|
+
"@clerk/react": "^6.11.3",
|
|
395
|
+
"@clerk/react-router": "^3.5.4",
|
|
396
|
+
"@clerk/tanstack-react-start": "^1.4.12",
|
|
397
|
+
"@clerk/expo": "^3.6.5",
|
|
398
|
+
"drizzle-orm": "^0.45.2",
|
|
399
|
+
"drizzle-kit": "^0.31.10",
|
|
400
|
+
"@planetscale/database": "^1.20.1",
|
|
401
|
+
"@libsql/client": "0.17.4",
|
|
402
|
+
libsql: "0.5.29",
|
|
403
|
+
"@neondatabase/serverless": "^1.1.0",
|
|
404
|
+
pg: "^8.22.0",
|
|
405
|
+
"@types/pg": "^8.20.0",
|
|
406
406
|
"@types/ws": "^8.18.1",
|
|
407
|
-
ws: "^8.
|
|
408
|
-
mysql2: "^3.
|
|
407
|
+
ws: "^8.21.0",
|
|
408
|
+
mysql2: "^3.22.5",
|
|
409
409
|
"@prisma/client": "^7.8.0",
|
|
410
410
|
prisma: "^7.8.0",
|
|
411
411
|
"@prisma/adapter-d1": "^7.8.0",
|
|
@@ -415,57 +415,57 @@ const dependencyVersionMap = {
|
|
|
415
415
|
"@prisma/adapter-better-sqlite3": "^7.8.0",
|
|
416
416
|
"@prisma/adapter-pg": "^7.8.0",
|
|
417
417
|
"@prisma/adapter-planetscale": "^7.8.0",
|
|
418
|
-
mongoose: "^9.
|
|
419
|
-
mongodb: "^7.
|
|
418
|
+
mongoose: "^9.7.3",
|
|
419
|
+
mongodb: "^7.4.0",
|
|
420
420
|
"vite-plugin-pwa": "^1.3.0",
|
|
421
421
|
"@vite-pwa/assets-generator": "^1.0.2",
|
|
422
|
-
"@tauri-apps/cli": "^2.11.
|
|
423
|
-
"@biomejs/biome": "^2.
|
|
424
|
-
oxlint: "^1.
|
|
425
|
-
oxfmt: "^0.
|
|
422
|
+
"@tauri-apps/cli": "^2.11.4",
|
|
423
|
+
"@biomejs/biome": "^2.5.2",
|
|
424
|
+
oxlint: "^1.72.0",
|
|
425
|
+
oxfmt: "^0.57.0",
|
|
426
426
|
husky: "^9.1.7",
|
|
427
427
|
lefthook: "^2.1.9",
|
|
428
428
|
"lint-staged": "^17.0.7",
|
|
429
|
-
tsx: "^4.
|
|
429
|
+
tsx: "^4.22.5",
|
|
430
430
|
"@types/node": "^22.13.14",
|
|
431
|
-
"@types/bun": "^1.3.
|
|
431
|
+
"@types/bun": "^1.3.14",
|
|
432
432
|
"@elysiajs/node": "^1.4.5",
|
|
433
|
-
"@elysiajs/cors": "^1.4.
|
|
433
|
+
"@elysiajs/cors": "^1.4.2",
|
|
434
434
|
"@elysiajs/trpc": "^1.1.0",
|
|
435
|
-
elysia: "^1.4.
|
|
435
|
+
elysia: "^1.4.29",
|
|
436
436
|
"@sinclair/typebox": "^0.34.49",
|
|
437
|
-
"@hono/node-server": "^
|
|
438
|
-
"@hono/trpc-server": "^0.4.
|
|
439
|
-
hono: "^4.
|
|
440
|
-
cors: "^2.8.
|
|
441
|
-
express: "^5.1
|
|
442
|
-
"@types/express": "^5.0.
|
|
443
|
-
"@types/cors": "^2.8.
|
|
444
|
-
fastify: "^5.
|
|
445
|
-
"@fastify/cors": "^11.0
|
|
446
|
-
turbo: "^2.
|
|
447
|
-
nx: "^
|
|
448
|
-
"vite-plus": "0.
|
|
449
|
-
rolldown: "1.1.
|
|
450
|
-
ai: "^7.0.
|
|
451
|
-
"@ai-sdk/google": "^4.0.
|
|
452
|
-
"@ai-sdk/vue": "^4.0.
|
|
453
|
-
"@ai-sdk/svelte": "^5.0.
|
|
454
|
-
"@ai-sdk/react": "^4.0.
|
|
455
|
-
"@ai-sdk/devtools": "^1.0.
|
|
437
|
+
"@hono/node-server": "^2.0.8",
|
|
438
|
+
"@hono/trpc-server": "^0.4.2",
|
|
439
|
+
hono: "^4.12.27",
|
|
440
|
+
cors: "^2.8.6",
|
|
441
|
+
express: "^5.2.1",
|
|
442
|
+
"@types/express": "^5.0.6",
|
|
443
|
+
"@types/cors": "^2.8.19",
|
|
444
|
+
fastify: "^5.9.0",
|
|
445
|
+
"@fastify/cors": "^11.2.0",
|
|
446
|
+
turbo: "^2.10.2",
|
|
447
|
+
nx: "^23.0.1",
|
|
448
|
+
"vite-plus": "0.2.2",
|
|
449
|
+
rolldown: "1.1.4",
|
|
450
|
+
ai: "^7.0.13",
|
|
451
|
+
"@ai-sdk/google": "^4.0.7",
|
|
452
|
+
"@ai-sdk/vue": "^4.0.13",
|
|
453
|
+
"@ai-sdk/svelte": "^5.0.13",
|
|
454
|
+
"@ai-sdk/react": "^4.0.14",
|
|
455
|
+
"@ai-sdk/devtools": "^1.0.1",
|
|
456
456
|
streamdown: "^2.5.0",
|
|
457
|
-
shiki: "^3.
|
|
457
|
+
shiki: "^4.3.0",
|
|
458
458
|
"@orpc/server": "^1.14.6",
|
|
459
459
|
"@orpc/client": "^1.14.6",
|
|
460
460
|
"@orpc/openapi": "^1.14.6",
|
|
461
461
|
"@orpc/zod": "^1.14.6",
|
|
462
462
|
"@orpc/tanstack-query": "^1.14.6",
|
|
463
|
-
"@trpc/tanstack-react-query": "^11.
|
|
464
|
-
"@trpc/server": "^11.
|
|
465
|
-
"@trpc/client": "^11.
|
|
463
|
+
"@trpc/tanstack-react-query": "^11.18.0",
|
|
464
|
+
"@trpc/server": "^11.18.0",
|
|
465
|
+
"@trpc/client": "^11.18.0",
|
|
466
466
|
next: "^16.2.0",
|
|
467
|
-
nitro: "^3.0.
|
|
468
|
-
convex: "^1.42.
|
|
467
|
+
nitro: "^3.0.260610-beta",
|
|
468
|
+
convex: "^1.42.1",
|
|
469
469
|
"@convex-dev/react-query": "^0.1.0",
|
|
470
470
|
"@convex-dev/agent": "^0.6.4",
|
|
471
471
|
"@convex-dev/polar": "^0.9.2",
|
|
@@ -473,40 +473,40 @@ const dependencyVersionMap = {
|
|
|
473
473
|
"convex-nuxt": "0.1.5",
|
|
474
474
|
"convex-vue": "^0.1.5",
|
|
475
475
|
"@convex-dev/better-auth": "^0.12.5",
|
|
476
|
-
"@tanstack/svelte-query": "^
|
|
477
|
-
"@tanstack/svelte-query-devtools": "^
|
|
478
|
-
"@tanstack/vue-query-devtools": "^6.1.
|
|
479
|
-
"@tanstack/vue-query": "^5.
|
|
480
|
-
"@tanstack/react-query-devtools": "^5.
|
|
481
|
-
"@tanstack/react-query": "^5.
|
|
482
|
-
"@tanstack/react-form": "^1.
|
|
483
|
-
"@tanstack/react-router-ssr-query": "^1.
|
|
484
|
-
"@tanstack/solid-form": "^1.
|
|
485
|
-
"@tanstack/svelte-form": "^1.
|
|
486
|
-
"@tanstack/solid-query": "^5.
|
|
487
|
-
"@tanstack/solid-query-devtools": "^5.
|
|
488
|
-
"@tanstack/solid-router-devtools": "^1.
|
|
489
|
-
wrangler: "^4.
|
|
490
|
-
"@cloudflare/vite-plugin": "^1.
|
|
491
|
-
"@opennextjs/cloudflare": "^1.
|
|
476
|
+
"@tanstack/svelte-query": "^6.1.36",
|
|
477
|
+
"@tanstack/svelte-query-devtools": "^6.1.36",
|
|
478
|
+
"@tanstack/vue-query-devtools": "^6.1.36",
|
|
479
|
+
"@tanstack/vue-query": "^5.101.2",
|
|
480
|
+
"@tanstack/react-query-devtools": "^5.101.2",
|
|
481
|
+
"@tanstack/react-query": "^5.101.2",
|
|
482
|
+
"@tanstack/react-form": "^1.33.0",
|
|
483
|
+
"@tanstack/react-router-ssr-query": "^1.167.1",
|
|
484
|
+
"@tanstack/solid-form": "^1.33.0",
|
|
485
|
+
"@tanstack/svelte-form": "^1.33.0",
|
|
486
|
+
"@tanstack/solid-query": "^5.101.2",
|
|
487
|
+
"@tanstack/solid-query-devtools": "^5.101.2",
|
|
488
|
+
"@tanstack/solid-router-devtools": "^1.167.0",
|
|
489
|
+
wrangler: "^4.107.0",
|
|
490
|
+
"@cloudflare/vite-plugin": "^1.43.0",
|
|
491
|
+
"@opennextjs/cloudflare": "^1.20.1",
|
|
492
492
|
"nitro-cloudflare-dev": "^0.2.2",
|
|
493
|
-
"@sveltejs/adapter-cloudflare": "^7.2.
|
|
494
|
-
"@sveltejs/adapter-node": "^5.5.
|
|
495
|
-
"@cloudflare/workers-types": "^4.
|
|
496
|
-
"@astrojs/cloudflare": "^14.0
|
|
497
|
-
"@astrojs/node": "^11.0.
|
|
498
|
-
alchemy: "^0.
|
|
499
|
-
dotenv: "^17.
|
|
500
|
-
tsdown: "^0.
|
|
501
|
-
zod: "^4.
|
|
502
|
-
"@t3-oss/env-core": "^0.13.
|
|
503
|
-
"@t3-oss/env-nextjs": "^0.13.
|
|
504
|
-
"@t3-oss/env-nuxt": "^0.13.
|
|
493
|
+
"@sveltejs/adapter-cloudflare": "^7.2.9",
|
|
494
|
+
"@sveltejs/adapter-node": "^5.5.7",
|
|
495
|
+
"@cloudflare/workers-types": "^4.20260702.1",
|
|
496
|
+
"@astrojs/cloudflare": "^14.1.0",
|
|
497
|
+
"@astrojs/node": "^11.0.1",
|
|
498
|
+
alchemy: "^0.93.12",
|
|
499
|
+
dotenv: "^17.4.2",
|
|
500
|
+
tsdown: "^0.22.3",
|
|
501
|
+
zod: "^4.4.3",
|
|
502
|
+
"@t3-oss/env-core": "^0.13.11",
|
|
503
|
+
"@t3-oss/env-nextjs": "^0.13.11",
|
|
504
|
+
"@t3-oss/env-nuxt": "^0.13.11",
|
|
505
505
|
"@polar-sh/better-auth": "^1.8.4",
|
|
506
|
-
"@polar-sh/checkout": "^0.
|
|
506
|
+
"@polar-sh/checkout": "^0.4.0",
|
|
507
507
|
"@polar-sh/sdk": "^0.47.1",
|
|
508
|
-
"@stripe/react-stripe-js": "^
|
|
509
|
-
"@stripe/stripe-js": "^
|
|
508
|
+
"@stripe/react-stripe-js": "^5.6.1",
|
|
509
|
+
"@stripe/stripe-js": "^8.11.0",
|
|
510
510
|
evlog: "^2.19.2"
|
|
511
511
|
};
|
|
512
512
|
/**
|
|
@@ -676,8 +676,7 @@ function updateRootPackageJson(vfs, config) {
|
|
|
676
676
|
};
|
|
677
677
|
if (hasVitePlus) pkgJson.overrides = {
|
|
678
678
|
...pkgJson.overrides,
|
|
679
|
-
vite: `npm:@voidzero-dev/vite-plus-core@${VITE_PLUS_VERSION}
|
|
680
|
-
vitest: `npm:@voidzero-dev/vite-plus-test@${VITE_PLUS_VERSION}`
|
|
679
|
+
vite: `npm:@voidzero-dev/vite-plus-core@${VITE_PLUS_VERSION}`
|
|
681
680
|
};
|
|
682
681
|
if (backend === "convex") {
|
|
683
682
|
if (!workspaces.includes("packages/*")) workspaces.push("packages/*");
|
|
@@ -2519,10 +2518,25 @@ function processEnvVariables(vfs, config) {
|
|
|
2519
2518
|
const hasSvelte = frontend.includes("svelte");
|
|
2520
2519
|
const hasSolid = frontend.includes("solid");
|
|
2521
2520
|
const hasAstro = frontend.includes("astro");
|
|
2522
|
-
|
|
2521
|
+
const hasWebFrontend = hasReactRouter || hasTanStackRouter || hasTanStackStart || hasNextJs || hasNuxt || hasSolid || hasSvelte || hasAstro;
|
|
2522
|
+
if (hasWebFrontend) {
|
|
2523
2523
|
const clientDir = "apps/web";
|
|
2524
2524
|
if (vfs.directoryExists(clientDir)) writeEnvFile(vfs, `${clientDir}/.env`, buildClientVars(frontend, backend, auth));
|
|
2525
2525
|
}
|
|
2526
|
+
if (webDeploy === "docker" && hasWebFrontend) {
|
|
2527
|
+
const rootComposeVars = [{
|
|
2528
|
+
key: hasNextJs ? "NEXT_PUBLIC_CONVEX_URL" : hasSvelte || hasAstro ? "PUBLIC_CONVEX_URL" : "VITE_CONVEX_URL",
|
|
2529
|
+
value: CONVEX_URL_PLACEHOLDER,
|
|
2530
|
+
condition: backend === "convex" && !hasNuxt,
|
|
2531
|
+
comment: "Baked into the web image at docker compose build time"
|
|
2532
|
+
}, {
|
|
2533
|
+
key: hasNextJs ? "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY" : "VITE_CLERK_PUBLISHABLE_KEY",
|
|
2534
|
+
value: "",
|
|
2535
|
+
condition: auth === "clerk" && (hasNextJs || hasReactRouter || hasTanStackRouter || hasTanStackStart),
|
|
2536
|
+
comment: "Baked into the web image at docker compose build time"
|
|
2537
|
+
}];
|
|
2538
|
+
if (rootComposeVars.some((v) => v.condition)) writeEnvFile(vfs, ".env", rootComposeVars);
|
|
2539
|
+
}
|
|
2526
2540
|
if (frontend.includes("native-bare") || frontend.includes("native-uniwind") || frontend.includes("native-unistyles")) {
|
|
2527
2541
|
const nativeDir = "apps/native";
|
|
2528
2542
|
if (vfs.directoryExists(nativeDir)) writeEnvFile(vfs, `${nativeDir}/.env`, buildNativeVars(frontend, backend, auth));
|
|
@@ -4502,7 +4516,6 @@ export default {
|
|
|
4502
4516
|
},
|
|
4503
4517
|
"devDependencies": {
|
|
4504
4518
|
"@types/bun": "^1.3.14",
|
|
4505
|
-
"@types/three": "^0.165.0",
|
|
4506
4519
|
"concurrently": "^10.0.3",
|
|
4507
4520
|
"typescript": "^6"
|
|
4508
4521
|
}
|
|
@@ -16646,7 +16659,7 @@ export const authClient = createAuthClient({
|
|
|
16646
16659
|
const sessionQuery = authClient.useSession();
|
|
16647
16660
|
|
|
16648
16661
|
{{#if (eq api "orpc")}}
|
|
16649
|
-
const privateDataQuery = createQuery(orpc.privateData.queryOptions());
|
|
16662
|
+
const privateDataQuery = createQuery(() => orpc.privateData.queryOptions());
|
|
16650
16663
|
{{/if}}
|
|
16651
16664
|
|
|
16652
16665
|
$effect(() => {
|
|
@@ -16675,7 +16688,7 @@ export const authClient = createAuthClient({
|
|
|
16675
16688
|
<h1>Dashboard</h1>
|
|
16676
16689
|
<p>Welcome {$sessionQuery.data.user.name}</p>
|
|
16677
16690
|
{{#if (eq api "orpc")}}
|
|
16678
|
-
<p>API: {
|
|
16691
|
+
<p>API: {privateDataQuery.data?.message}</p>
|
|
16679
16692
|
{{/if}}
|
|
16680
16693
|
{{#if (eq payments "polar")}}
|
|
16681
16694
|
<p>Plan: {customerState?.activeSubscriptions?.length > 0 ? "Pro" : "Free"}</p>
|
|
@@ -19426,7 +19439,7 @@ temp
|
|
|
19426
19439
|
|
|
19427
19440
|
services:
|
|
19428
19441
|
mongodb:
|
|
19429
|
-
image: mongo
|
|
19442
|
+
image: mongo:8
|
|
19430
19443
|
container_name: {{projectName}}-mongodb
|
|
19431
19444
|
environment:
|
|
19432
19445
|
MONGO_INITDB_ROOT_USERNAME: root
|
|
@@ -19449,7 +19462,7 @@ volumes:
|
|
|
19449
19462
|
|
|
19450
19463
|
services:
|
|
19451
19464
|
mysql:
|
|
19452
|
-
image: mysql
|
|
19465
|
+
image: mysql:8.4
|
|
19453
19466
|
container_name: {{projectName}}-mysql
|
|
19454
19467
|
environment:
|
|
19455
19468
|
MYSQL_ROOT_PASSWORD: password
|
|
@@ -19473,7 +19486,7 @@ volumes:
|
|
|
19473
19486
|
|
|
19474
19487
|
services:
|
|
19475
19488
|
postgres:
|
|
19476
|
-
image: postgres
|
|
19489
|
+
image: postgres:18
|
|
19477
19490
|
container_name: {{projectName}}-postgres
|
|
19478
19491
|
environment:
|
|
19479
19492
|
POSTGRES_DB: {{projectName}}
|
|
@@ -20257,10 +20270,10 @@ services:
|
|
|
20257
20270
|
{{#if (includes frontend "next")}}NEXT_PUBLIC_SERVER_URL{{else if (or (includes frontend "svelte") (includes frontend "astro"))}}PUBLIC_SERVER_URL{{else}}VITE_SERVER_URL{{/if}}: http://localhost:3000
|
|
20258
20271
|
{{/if}}
|
|
20259
20272
|
{{#if (eq backend "convex")}}
|
|
20260
|
-
{{#if (includes frontend "next")}}NEXT_PUBLIC_CONVEX_URL{{else if (or (includes frontend "svelte") (includes frontend "astro"))}}PUBLIC_CONVEX_URL{{else}}VITE_CONVEX_URL{{/if}}
|
|
20273
|
+
{{#if (includes frontend "next")}}NEXT_PUBLIC_CONVEX_URL: \${NEXT_PUBLIC_CONVEX_URL:-}{{else if (or (includes frontend "svelte") (includes frontend "astro"))}}PUBLIC_CONVEX_URL: \${PUBLIC_CONVEX_URL:-}{{else}}VITE_CONVEX_URL: \${VITE_CONVEX_URL:-}{{/if}}
|
|
20261
20274
|
{{/if}}
|
|
20262
20275
|
{{#if (and (eq auth "clerk") (or (includes frontend "next") (includes frontend "react-router") (includes frontend "tanstack-router") (includes frontend "tanstack-start")))}}
|
|
20263
|
-
{{#if (includes frontend "next")}}NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY{{else}}VITE_CLERK_PUBLISHABLE_KEY{{/if}}
|
|
20276
|
+
{{#if (includes frontend "next")}}NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: \${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY:-}{{else}}VITE_CLERK_PUBLISHABLE_KEY: \${VITE_CLERK_PUBLISHABLE_KEY:-}{{/if}}
|
|
20264
20277
|
{{/if}}
|
|
20265
20278
|
{{/if}}
|
|
20266
20279
|
init: true
|
|
@@ -20311,6 +20324,22 @@ services:
|
|
|
20311
20324
|
condition: service_healthy
|
|
20312
20325
|
{{/if}}
|
|
20313
20326
|
{{/if}}
|
|
20327
|
+
healthcheck:
|
|
20328
|
+
{{#if (or (includes frontend "tanstack-router") (includes frontend "react-router") (includes frontend "solid"))}}
|
|
20329
|
+
test: ["CMD", "wget", "-q", "--spider", "http://localhost:80/"]
|
|
20330
|
+
{{else}}
|
|
20331
|
+
test:
|
|
20332
|
+
[
|
|
20333
|
+
"CMD",
|
|
20334
|
+
"node",
|
|
20335
|
+
"-e",
|
|
20336
|
+
"fetch('http://localhost:3001/').then((r) => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))",
|
|
20337
|
+
]
|
|
20338
|
+
{{/if}}
|
|
20339
|
+
interval: 10s
|
|
20340
|
+
timeout: 5s
|
|
20341
|
+
retries: 5
|
|
20342
|
+
start_period: 10s
|
|
20314
20343
|
restart: unless-stopped
|
|
20315
20344
|
|
|
20316
20345
|
{{/if}}
|
|
@@ -20363,7 +20392,7 @@ services:
|
|
|
20363
20392
|
{{#if (eq dbSetup "docker")}}
|
|
20364
20393
|
{{#if (eq database "postgres")}}
|
|
20365
20394
|
postgres:
|
|
20366
|
-
image: postgres
|
|
20395
|
+
image: postgres:18
|
|
20367
20396
|
container_name: {{projectName}}-postgres
|
|
20368
20397
|
environment:
|
|
20369
20398
|
POSTGRES_DB: {{projectName}}
|
|
@@ -20382,7 +20411,7 @@ services:
|
|
|
20382
20411
|
{{/if}}
|
|
20383
20412
|
{{#if (eq database "mysql")}}
|
|
20384
20413
|
mysql:
|
|
20385
|
-
image: mysql
|
|
20414
|
+
image: mysql:8.4
|
|
20386
20415
|
container_name: {{projectName}}-mysql
|
|
20387
20416
|
environment:
|
|
20388
20417
|
MYSQL_ROOT_PASSWORD: \${MYSQL_ROOT_PASSWORD:-password}
|
|
@@ -20402,7 +20431,7 @@ services:
|
|
|
20402
20431
|
{{/if}}
|
|
20403
20432
|
{{#if (eq database "mongodb")}}
|
|
20404
20433
|
mongodb:
|
|
20405
|
-
image: mongo
|
|
20434
|
+
image: mongo:8
|
|
20406
20435
|
container_name: {{projectName}}-mongodb
|
|
20407
20436
|
environment:
|
|
20408
20437
|
MONGO_INITDB_ROOT_USERNAME: root
|
|
@@ -20429,7 +20458,7 @@ volumes:
|
|
|
20429
20458
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20430
20459
|
{{/if}}
|
|
20431
20460
|
{{#if (eq packageManager "pnpm")}}
|
|
20432
|
-
RUN npm install -g pnpm
|
|
20461
|
+
RUN npm install -g pnpm@11
|
|
20433
20462
|
{{/if}}
|
|
20434
20463
|
WORKDIR /app
|
|
20435
20464
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -20468,7 +20497,7 @@ CMD ["node", "dist/index.mjs"]
|
|
|
20468
20497
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20469
20498
|
{{/if}}
|
|
20470
20499
|
{{#if (eq packageManager "pnpm")}}
|
|
20471
|
-
RUN npm install -g pnpm
|
|
20500
|
+
RUN npm install -g pnpm@11
|
|
20472
20501
|
{{/if}}
|
|
20473
20502
|
WORKDIR /app
|
|
20474
20503
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -20520,7 +20549,7 @@ CMD ["node", "dist/server/entry.mjs"]
|
|
|
20520
20549
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20521
20550
|
{{/if}}
|
|
20522
20551
|
{{#if (eq packageManager "pnpm")}}
|
|
20523
|
-
RUN npm install -g pnpm
|
|
20552
|
+
RUN npm install -g pnpm@11
|
|
20524
20553
|
{{/if}}
|
|
20525
20554
|
WORKDIR /app
|
|
20526
20555
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -20562,7 +20591,7 @@ CMD ["node", "server/index.mjs"]
|
|
|
20562
20591
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20563
20592
|
{{/if}}
|
|
20564
20593
|
{{#if (eq packageManager "pnpm")}}
|
|
20565
|
-
RUN npm install -g pnpm
|
|
20594
|
+
RUN npm install -g pnpm@11
|
|
20566
20595
|
{{/if}}
|
|
20567
20596
|
WORKDIR /app
|
|
20568
20597
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -20598,6 +20627,8 @@ ENV NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=\${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY}
|
|
|
20598
20627
|
{{/if}}
|
|
20599
20628
|
ENV NODE_ENV=production
|
|
20600
20629
|
RUN cd apps/web && {{packageManager}} run build
|
|
20630
|
+
# standalone output excludes public/; ensure it exists so the runner copy never fails
|
|
20631
|
+
RUN mkdir -p apps/web/public
|
|
20601
20632
|
|
|
20602
20633
|
FROM node:24-slim AS runner
|
|
20603
20634
|
WORKDIR /app
|
|
@@ -20605,6 +20636,7 @@ ENV NODE_ENV=production
|
|
|
20605
20636
|
|
|
20606
20637
|
COPY --from=builder /app/apps/web/.next/standalone ./
|
|
20607
20638
|
COPY --from=builder /app/apps/web/.next/static ./apps/web/.next/static
|
|
20639
|
+
COPY --from=builder /app/apps/web/public ./apps/web/public
|
|
20608
20640
|
|
|
20609
20641
|
ENV HOSTNAME=0.0.0.0
|
|
20610
20642
|
ENV PORT=3001
|
|
@@ -20617,7 +20649,7 @@ CMD ["node", "apps/web/server.js"]
|
|
|
20617
20649
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20618
20650
|
{{/if}}
|
|
20619
20651
|
{{#if (eq packageManager "pnpm")}}
|
|
20620
|
-
RUN npm install -g pnpm
|
|
20652
|
+
RUN npm install -g pnpm@11
|
|
20621
20653
|
{{/if}}
|
|
20622
20654
|
WORKDIR /app
|
|
20623
20655
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -20684,7 +20716,7 @@ CMD ["nginx", "-g", "daemon off;"]
|
|
|
20684
20716
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20685
20717
|
{{/if}}
|
|
20686
20718
|
{{#if (eq packageManager "pnpm")}}
|
|
20687
|
-
RUN npm install -g pnpm
|
|
20719
|
+
RUN npm install -g pnpm@11
|
|
20688
20720
|
{{/if}}
|
|
20689
20721
|
WORKDIR /app
|
|
20690
20722
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -20751,7 +20783,7 @@ CMD ["nginx", "-g", "daemon off;"]
|
|
|
20751
20783
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20752
20784
|
{{/if}}
|
|
20753
20785
|
{{#if (eq packageManager "pnpm")}}
|
|
20754
|
-
RUN npm install -g pnpm
|
|
20786
|
+
RUN npm install -g pnpm@11
|
|
20755
20787
|
{{/if}}
|
|
20756
20788
|
WORKDIR /app
|
|
20757
20789
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -20808,7 +20840,7 @@ CMD ["node", ".output/server/index.mjs"]
|
|
|
20808
20840
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20809
20841
|
{{/if}}
|
|
20810
20842
|
{{#if (eq packageManager "pnpm")}}
|
|
20811
|
-
RUN npm install -g pnpm
|
|
20843
|
+
RUN npm install -g pnpm@11
|
|
20812
20844
|
{{/if}}
|
|
20813
20845
|
WORKDIR /app
|
|
20814
20846
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -20871,7 +20903,7 @@ CMD ["nginx", "-g", "daemon off;"]
|
|
|
20871
20903
|
COPY --from=oven/bun:1 /usr/local/bin/bun /usr/local/bin/bun
|
|
20872
20904
|
{{/if}}
|
|
20873
20905
|
{{#if (eq packageManager "pnpm")}}
|
|
20874
|
-
RUN npm install -g pnpm
|
|
20906
|
+
RUN npm install -g pnpm@11
|
|
20875
20907
|
{{/if}}
|
|
20876
20908
|
WORKDIR /app
|
|
20877
20909
|
ENV SKIP_ENV_VALIDATION=1
|
|
@@ -29460,12 +29492,12 @@ function TodosRoute() {
|
|
|
29460
29492
|
let newTodoText = $state('');
|
|
29461
29493
|
|
|
29462
29494
|
{{#if (eq api "orpc")}}
|
|
29463
|
-
const todosQuery = createQuery(orpc.todo.getAll.queryOptions());
|
|
29495
|
+
const todosQuery = createQuery(() => orpc.todo.getAll.queryOptions());
|
|
29464
29496
|
|
|
29465
|
-
const addMutation = createMutation(
|
|
29497
|
+
const addMutation = createMutation(() =>
|
|
29466
29498
|
orpc.todo.create.mutationOptions({
|
|
29467
29499
|
onSuccess: () => {
|
|
29468
|
-
|
|
29500
|
+
todosQuery.refetch();
|
|
29469
29501
|
newTodoText = '';
|
|
29470
29502
|
},
|
|
29471
29503
|
onError: (error) => {
|
|
@@ -29474,10 +29506,10 @@ function TodosRoute() {
|
|
|
29474
29506
|
})
|
|
29475
29507
|
);
|
|
29476
29508
|
|
|
29477
|
-
const toggleMutation = createMutation(
|
|
29509
|
+
const toggleMutation = createMutation(() =>
|
|
29478
29510
|
orpc.todo.toggle.mutationOptions({
|
|
29479
29511
|
onSuccess: () => {
|
|
29480
|
-
|
|
29512
|
+
todosQuery.refetch();
|
|
29481
29513
|
},
|
|
29482
29514
|
onError: (error) => {
|
|
29483
29515
|
console.error('Failed to toggle todo:', error?.message ?? error);
|
|
@@ -29485,10 +29517,10 @@ function TodosRoute() {
|
|
|
29485
29517
|
})
|
|
29486
29518
|
);
|
|
29487
29519
|
|
|
29488
|
-
const deleteMutation = createMutation(
|
|
29520
|
+
const deleteMutation = createMutation(() =>
|
|
29489
29521
|
orpc.todo.delete.mutationOptions({
|
|
29490
29522
|
onSuccess: () => {
|
|
29491
|
-
|
|
29523
|
+
todosQuery.refetch();
|
|
29492
29524
|
},
|
|
29493
29525
|
onError: (error) => {
|
|
29494
29526
|
console.error('Failed to delete todo:', error?.message ?? error);
|
|
@@ -29501,22 +29533,22 @@ function TodosRoute() {
|
|
|
29501
29533
|
event.preventDefault();
|
|
29502
29534
|
const text = newTodoText.trim();
|
|
29503
29535
|
if (text) {
|
|
29504
|
-
|
|
29536
|
+
addMutation.mutate({ text });
|
|
29505
29537
|
}
|
|
29506
29538
|
}
|
|
29507
29539
|
|
|
29508
29540
|
function handleToggleTodo(id: number, completed: boolean) {
|
|
29509
|
-
|
|
29541
|
+
toggleMutation.mutate({ id, completed: !completed });
|
|
29510
29542
|
}
|
|
29511
29543
|
|
|
29512
29544
|
function handleDeleteTodo(id: number) {
|
|
29513
|
-
|
|
29545
|
+
deleteMutation.mutate({ id });
|
|
29514
29546
|
}
|
|
29515
29547
|
|
|
29516
|
-
const isAdding = $derived(
|
|
29548
|
+
const isAdding = $derived(addMutation.isPending);
|
|
29517
29549
|
const canAdd = $derived(!isAdding && newTodoText.trim().length > 0);
|
|
29518
|
-
const isLoadingTodos = $derived(
|
|
29519
|
-
const todos = $derived(
|
|
29550
|
+
const isLoadingTodos = $derived(todosQuery.isLoading);
|
|
29551
|
+
const todos = $derived(todosQuery.data ?? []);
|
|
29520
29552
|
const hasTodos = $derived(todos.length > 0);
|
|
29521
29553
|
|
|
29522
29554
|
<\/script>
|
|
@@ -29548,8 +29580,8 @@ function TodosRoute() {
|
|
|
29548
29580
|
{:else}
|
|
29549
29581
|
<ul class="space-y-1">
|
|
29550
29582
|
{#each todos as todo (todo.id)}
|
|
29551
|
-
{@const isToggling =
|
|
29552
|
-
{@const isDeleting =
|
|
29583
|
+
{@const isToggling = toggleMutation.isPending && toggleMutation.variables?.id === todo.id}
|
|
29584
|
+
{@const isDeleting = deleteMutation.isPending && deleteMutation.variables?.id === todo.id}
|
|
29553
29585
|
{@const isDisabled = isToggling || isDeleting}
|
|
29554
29586
|
<li
|
|
29555
29587
|
class="flex items-center justify-between p-2 "
|
|
@@ -29584,24 +29616,24 @@ function TodosRoute() {
|
|
|
29584
29616
|
</ul>
|
|
29585
29617
|
{/if}
|
|
29586
29618
|
|
|
29587
|
-
{#if
|
|
29619
|
+
{#if todosQuery.isError}
|
|
29588
29620
|
<p class="mt-4 text-red-500">
|
|
29589
|
-
Error loading: {
|
|
29621
|
+
Error loading: {todosQuery.error?.message ?? 'Unknown error'}
|
|
29590
29622
|
</p>
|
|
29591
29623
|
{/if}
|
|
29592
|
-
{#if
|
|
29624
|
+
{#if addMutation.isError}
|
|
29593
29625
|
<p class="mt-4 text-red-500">
|
|
29594
|
-
Error adding: {
|
|
29626
|
+
Error adding: {addMutation.error?.message ?? 'Unknown error'}
|
|
29595
29627
|
</p>
|
|
29596
29628
|
{/if}
|
|
29597
|
-
{#if
|
|
29629
|
+
{#if toggleMutation.isError}
|
|
29598
29630
|
<p class="mt-4 text-red-500">
|
|
29599
|
-
Error updating: {
|
|
29631
|
+
Error updating: {toggleMutation.error?.message ?? 'Unknown error'}
|
|
29600
29632
|
</p>
|
|
29601
29633
|
{/if}
|
|
29602
|
-
{#if
|
|
29634
|
+
{#if deleteMutation.isError}
|
|
29603
29635
|
<p class="mt-4 text-red-500">
|
|
29604
|
-
Error deleting: {
|
|
29636
|
+
Error deleting: {deleteMutation.error?.message ?? 'Unknown error'}
|
|
29605
29637
|
</p>
|
|
29606
29638
|
{/if}
|
|
29607
29639
|
</div>
|
|
@@ -29646,20 +29678,14 @@ declare module "cloudflare:workers" {
|
|
|
29646
29678
|
["extras/pnpm-workspace.yaml.hbs", `packages:
|
|
29647
29679
|
- "apps/*"
|
|
29648
29680
|
- "packages/*"
|
|
29649
|
-
{{#if (or (eq runtime "node") (eq webDeploy "cloudflare") (eq serverDeploy "cloudflare") (eq webDeploy "docker") (eq serverDeploy "docker") (eq orm "prisma") (includes addons "lefthook") (includes addons "nx") (includes addons "pwa") (includes addons "
|
|
29681
|
+
{{#if (or (eq runtime "node") (eq webDeploy "cloudflare") (eq serverDeploy "cloudflare") (eq webDeploy "docker") (eq serverDeploy "docker") (eq orm "prisma") (includes addons "lefthook") (includes addons "nx") (includes addons "pwa") (includes addons "turborepo") (includes addons "vite-plus") (includes frontend "react-router") (includes frontend "next") (includes frontend "nuxt"))}}
|
|
29650
29682
|
|
|
29651
29683
|
# pnpm 11 blocks dependency lifecycle scripts unless they are approved here.
|
|
29652
29684
|
# Entries are scoped to packages this generated stack can pull in.
|
|
29653
29685
|
allowBuilds:
|
|
29654
|
-
{{#if (or (eq runtime "node") (eq webDeploy "cloudflare") (eq serverDeploy "cloudflare") (eq webDeploy "docker") (eq serverDeploy "docker") (includes addons "vite-plus") (includes frontend "
|
|
29686
|
+
{{#if (or (eq runtime "node") (eq webDeploy "cloudflare") (eq serverDeploy "cloudflare") (eq webDeploy "docker") (eq serverDeploy "docker") (includes addons "turborepo") (includes addons "vite-plus") (includes frontend "react-router") (includes frontend "nuxt"))}}
|
|
29655
29687
|
esbuild: true
|
|
29656
29688
|
{{/if}}
|
|
29657
|
-
{{#if (or (includes frontend "tanstack-router") (includes frontend "react-router") (includes frontend "tanstack-start") (includes frontend "next"))}}
|
|
29658
|
-
msw: true
|
|
29659
|
-
{{/if}}
|
|
29660
|
-
{{#if (or (includes frontend "native-bare") (includes frontend "native-uniwind") (includes frontend "native-unistyles"))}}
|
|
29661
|
-
msgpackr-extract: true
|
|
29662
|
-
{{/if}}
|
|
29663
29689
|
{{#if (includes frontend "nuxt")}}
|
|
29664
29690
|
"@parcel/watcher": true
|
|
29665
29691
|
vue-demi: true
|
|
@@ -29751,11 +29777,11 @@ export default defineConfig({
|
|
|
29751
29777
|
"astro": "astro"
|
|
29752
29778
|
},
|
|
29753
29779
|
"dependencies": {
|
|
29754
|
-
"astro": "^7.0.
|
|
29780
|
+
"astro": "^7.0.5"
|
|
29755
29781
|
},
|
|
29756
29782
|
"devDependencies": {
|
|
29757
|
-
"@tailwindcss/vite": "^4.3.
|
|
29758
|
-
"tailwindcss": "^4.3.
|
|
29783
|
+
"@tailwindcss/vite": "^4.3.2",
|
|
29784
|
+
"tailwindcss": "^4.3.2"
|
|
29759
29785
|
}
|
|
29760
29786
|
}
|
|
29761
29787
|
`],
|
|
@@ -31109,39 +31135,38 @@ module.exports = config;
|
|
|
31109
31135
|
"web": "expo start --web"
|
|
31110
31136
|
},
|
|
31111
31137
|
"dependencies": {
|
|
31112
|
-
"@expo/ui": "~
|
|
31138
|
+
"@expo/ui": "~57.0.1",
|
|
31113
31139
|
"@expo/vector-icons": "^15.1.1",
|
|
31114
|
-
"@tanstack/react-query": "^5.
|
|
31140
|
+
"@tanstack/react-query": "^5.101.2",
|
|
31115
31141
|
{{#if (includes examples "ai")}}
|
|
31116
31142
|
"@stardazed/streams-text-encoding": "^1.0.2",
|
|
31117
|
-
"@ungap/structured-clone": "^1.3.
|
|
31143
|
+
"@ungap/structured-clone": "^1.3.2",
|
|
31118
31144
|
{{/if}}
|
|
31119
|
-
"expo": "~
|
|
31120
|
-
"expo-constants": "~
|
|
31121
|
-
"expo-crypto": "~
|
|
31122
|
-
"expo-font": "~
|
|
31123
|
-
"expo-linking": "~
|
|
31124
|
-
"expo-network": "~
|
|
31125
|
-
"expo-router": "~
|
|
31126
|
-
"expo-secure-store": "~
|
|
31127
|
-
"expo-splash-screen": "~
|
|
31128
|
-
"expo-status-bar": "~
|
|
31129
|
-
"expo-system-ui": "~
|
|
31130
|
-
"expo-web-browser": "~
|
|
31145
|
+
"expo": "~57.0.1",
|
|
31146
|
+
"expo-constants": "~57.0.2",
|
|
31147
|
+
"expo-crypto": "~57.0.0",
|
|
31148
|
+
"expo-font": "~57.0.0",
|
|
31149
|
+
"expo-linking": "~57.0.1",
|
|
31150
|
+
"expo-network": "~57.0.0",
|
|
31151
|
+
"expo-router": "~57.0.2",
|
|
31152
|
+
"expo-secure-store": "~57.0.0",
|
|
31153
|
+
"expo-splash-screen": "~57.0.1",
|
|
31154
|
+
"expo-status-bar": "~57.0.0",
|
|
31155
|
+
"expo-system-ui": "~57.0.0",
|
|
31156
|
+
"expo-web-browser": "~57.0.0",
|
|
31131
31157
|
"react": "19.2.3",
|
|
31132
31158
|
"react-dom": "19.2.3",
|
|
31133
|
-
"react-native": "0.
|
|
31134
|
-
"react-native-gesture-handler": "~2.
|
|
31135
|
-
"react-native-reanimated": "4.
|
|
31159
|
+
"react-native": "0.86.0",
|
|
31160
|
+
"react-native-gesture-handler": "~2.32.0",
|
|
31161
|
+
"react-native-reanimated": "4.5.0",
|
|
31136
31162
|
"react-native-safe-area-context": "~5.7.0",
|
|
31137
31163
|
"react-native-screens": "4.25.2",
|
|
31138
31164
|
"react-native-web": "~0.21.0",
|
|
31139
|
-
"react-native-worklets": "0.
|
|
31165
|
+
"react-native-worklets": "0.10.0"
|
|
31140
31166
|
},
|
|
31141
31167
|
"devDependencies": {
|
|
31142
|
-
"@
|
|
31143
|
-
"
|
|
31144
|
-
"typescript": "^6"
|
|
31168
|
+
"@types/react": "~19.2.17",
|
|
31169
|
+
"typescript": "~6.0.3"
|
|
31145
31170
|
},
|
|
31146
31171
|
"private": true
|
|
31147
31172
|
}
|
|
@@ -32442,40 +32467,39 @@ module.exports = config;
|
|
|
32442
32467
|
"@expo/vector-icons": "^15.1.1",
|
|
32443
32468
|
{{#if (includes examples "ai")}}
|
|
32444
32469
|
"@stardazed/streams-text-encoding": "^1.0.2",
|
|
32445
|
-
"@ungap/structured-clone": "^1.3.
|
|
32470
|
+
"@ungap/structured-clone": "^1.3.2",
|
|
32446
32471
|
{{/if}}
|
|
32447
|
-
"babel-preset-expo": "~
|
|
32448
|
-
"expo": "~
|
|
32449
|
-
"expo-constants": "~
|
|
32450
|
-
"expo-crypto": "~
|
|
32451
|
-
"expo-dev-client": "~
|
|
32452
|
-
"expo-font": "~
|
|
32453
|
-
"expo-linking": "~
|
|
32454
|
-
"expo-network": "~
|
|
32455
|
-
"expo-router": "~
|
|
32456
|
-
"expo-secure-store": "~
|
|
32457
|
-
"expo-splash-screen": "~
|
|
32458
|
-
"expo-status-bar": "~
|
|
32459
|
-
"expo-system-ui": "~
|
|
32460
|
-
"expo-web-browser": "~
|
|
32472
|
+
"babel-preset-expo": "~57.0.1",
|
|
32473
|
+
"expo": "~57.0.1",
|
|
32474
|
+
"expo-constants": "~57.0.2",
|
|
32475
|
+
"expo-crypto": "~57.0.0",
|
|
32476
|
+
"expo-dev-client": "~57.0.3",
|
|
32477
|
+
"expo-font": "~57.0.0",
|
|
32478
|
+
"expo-linking": "~57.0.1",
|
|
32479
|
+
"expo-network": "~57.0.0",
|
|
32480
|
+
"expo-router": "~57.0.2",
|
|
32481
|
+
"expo-secure-store": "~57.0.0",
|
|
32482
|
+
"expo-splash-screen": "~57.0.1",
|
|
32483
|
+
"expo-status-bar": "~57.0.0",
|
|
32484
|
+
"expo-system-ui": "~57.0.0",
|
|
32485
|
+
"expo-web-browser": "~57.0.0",
|
|
32461
32486
|
"react": "19.2.3",
|
|
32462
32487
|
"react-dom": "19.2.3",
|
|
32463
|
-
"react-native": "0.
|
|
32464
|
-
"react-native-
|
|
32465
|
-
"react-native-
|
|
32466
|
-
"react-native-
|
|
32467
|
-
"react-native-reanimated": "4.3.1",
|
|
32488
|
+
"react-native": "0.86.0",
|
|
32489
|
+
"react-native-gesture-handler": "~2.32.0",
|
|
32490
|
+
"react-native-nitro-modules": "0.36.1",
|
|
32491
|
+
"react-native-reanimated": "4.5.0",
|
|
32468
32492
|
"react-native-safe-area-context": "~5.7.0",
|
|
32469
32493
|
"react-native-screens": "4.25.2",
|
|
32470
|
-
"react-native-unistyles": "^3.2.
|
|
32494
|
+
"react-native-unistyles": "^3.2.5",
|
|
32471
32495
|
"react-native-web": "~0.21.0",
|
|
32472
|
-
"react-native-worklets": "0.
|
|
32496
|
+
"react-native-worklets": "0.10.0"
|
|
32473
32497
|
},
|
|
32474
32498
|
"devDependencies": {
|
|
32475
32499
|
"ajv": "^8.20.0",
|
|
32476
|
-
"@babel/core": "^7.29.
|
|
32477
|
-
"@types/react": "~19.2.
|
|
32478
|
-
"typescript": "
|
|
32500
|
+
"@babel/core": "^7.29.7",
|
|
32501
|
+
"@types/react": "~19.2.17",
|
|
32502
|
+
"typescript": "~6.0.3"
|
|
32479
32503
|
}
|
|
32480
32504
|
}
|
|
32481
32505
|
`],
|
|
@@ -33573,44 +33597,44 @@ module.exports = uniwindConfig;
|
|
|
33573
33597
|
"web": "expo start --web"
|
|
33574
33598
|
},
|
|
33575
33599
|
"dependencies": {
|
|
33576
|
-
"@expo/metro-runtime": "~
|
|
33600
|
+
"@expo/metro-runtime": "~57.0.2",
|
|
33577
33601
|
"@expo/vector-icons": "^15.1.1",
|
|
33578
33602
|
"@gorhom/bottom-sheet": "^5.2.14",
|
|
33579
33603
|
{{#if (includes examples "ai")}}
|
|
33580
33604
|
"@stardazed/streams-text-encoding": "^1.0.2",
|
|
33581
|
-
"@ungap/structured-clone": "^1.3.
|
|
33605
|
+
"@ungap/structured-clone": "^1.3.2",
|
|
33582
33606
|
{{/if}}
|
|
33583
|
-
"expo": "~
|
|
33584
|
-
"expo-constants": "~
|
|
33585
|
-
"expo-font": "~
|
|
33586
|
-
"expo-haptics": "~
|
|
33587
|
-
"expo-linking": "~
|
|
33588
|
-
"expo-network": "~
|
|
33589
|
-
"expo-router": "~
|
|
33590
|
-
"expo-secure-store": "~
|
|
33591
|
-
"expo-status-bar": "~
|
|
33592
|
-
"expo-web-browser": "~
|
|
33593
|
-
"heroui-native": "^1.0.
|
|
33607
|
+
"expo": "~57.0.1",
|
|
33608
|
+
"expo-constants": "~57.0.2",
|
|
33609
|
+
"expo-font": "~57.0.0",
|
|
33610
|
+
"expo-haptics": "~57.0.0",
|
|
33611
|
+
"expo-linking": "~57.0.1",
|
|
33612
|
+
"expo-network": "~57.0.0",
|
|
33613
|
+
"expo-router": "~57.0.2",
|
|
33614
|
+
"expo-secure-store": "~57.0.0",
|
|
33615
|
+
"expo-status-bar": "~57.0.0",
|
|
33616
|
+
"expo-web-browser": "~57.0.0",
|
|
33617
|
+
"heroui-native": "^1.0.5",
|
|
33594
33618
|
"react": "19.2.3",
|
|
33595
33619
|
"react-dom": "19.2.3",
|
|
33596
|
-
"react-native": "0.
|
|
33597
|
-
"react-native-gesture-handler": "~2.
|
|
33598
|
-
"react-native-keyboard-controller": "1.21.
|
|
33599
|
-
"react-native-reanimated": "4.
|
|
33620
|
+
"react-native": "0.86.0",
|
|
33621
|
+
"react-native-gesture-handler": "~2.32.0",
|
|
33622
|
+
"react-native-keyboard-controller": "1.21.9",
|
|
33623
|
+
"react-native-reanimated": "4.5.0",
|
|
33600
33624
|
"react-native-safe-area-context": "~5.7.0",
|
|
33601
33625
|
"react-native-screens": "4.25.2",
|
|
33602
33626
|
"react-native-svg": "15.15.4",
|
|
33603
33627
|
"react-native-web": "~0.21.0",
|
|
33604
|
-
"react-native-worklets": "0.
|
|
33628
|
+
"react-native-worklets": "0.10.0",
|
|
33605
33629
|
"tailwind-merge": "^3.6.0",
|
|
33606
33630
|
"tailwind-variants": "^3.2.2",
|
|
33607
|
-
"tailwindcss": "^4.3.
|
|
33608
|
-
"uniwind": "^1.
|
|
33631
|
+
"tailwindcss": "^4.3.2",
|
|
33632
|
+
"uniwind": "^1.10.0"
|
|
33609
33633
|
},
|
|
33610
33634
|
"devDependencies": {
|
|
33611
|
-
"@types/node": "^
|
|
33612
|
-
"@types/react": "~19.2.
|
|
33613
|
-
"typescript": "
|
|
33635
|
+
"@types/node": "^26.0.1",
|
|
33636
|
+
"@types/react": "~19.2.17",
|
|
33637
|
+
"typescript": "~6.0.3"
|
|
33614
33638
|
}
|
|
33615
33639
|
}
|
|
33616
33640
|
`],
|
|
@@ -33895,13 +33919,13 @@ export default defineNuxtConfig({
|
|
|
33895
33919
|
"postinstall": "nuxt prepare"
|
|
33896
33920
|
},
|
|
33897
33921
|
"dependencies": {
|
|
33898
|
-
"@nuxt/ui": "^4.
|
|
33899
|
-
"nuxt": "^4.4.
|
|
33900
|
-
"vue": "^3.5.
|
|
33922
|
+
"@nuxt/ui": "^4.9.0",
|
|
33923
|
+
"nuxt": "^4.4.8",
|
|
33924
|
+
"vue": "^3.5.39"
|
|
33901
33925
|
},
|
|
33902
33926
|
"devDependencies": {
|
|
33903
|
-
"tailwindcss": "^4.3.
|
|
33904
|
-
"@iconify-json/lucide": "^1.2.
|
|
33927
|
+
"tailwindcss": "^4.3.2",
|
|
33928
|
+
"@iconify-json/lucide": "^1.2.115"
|
|
33905
33929
|
}
|
|
33906
33930
|
}
|
|
33907
33931
|
`],
|
|
@@ -33978,7 +34002,7 @@ initOpenNextCloudflareForDev();
|
|
|
33978
34002
|
"dependencies": {
|
|
33979
34003
|
"@{{projectName}}/ui": "{{#if (eq packageManager "npm")}}*{{else}}workspace:*{{/if}}",
|
|
33980
34004
|
"@swc/helpers": "^0.5.23",
|
|
33981
|
-
"lucide-react": "^1.
|
|
34005
|
+
"lucide-react": "^1.23.0",
|
|
33982
34006
|
"next": "^16.2.0",
|
|
33983
34007
|
"next-themes": "^0.4.6",
|
|
33984
34008
|
"react": "^19.2.7",
|
|
@@ -33987,11 +34011,11 @@ initOpenNextCloudflareForDev();
|
|
|
33987
34011
|
"babel-plugin-react-compiler": "^1.0.0"
|
|
33988
34012
|
},
|
|
33989
34013
|
"devDependencies": {
|
|
33990
|
-
"@tailwindcss/postcss": "^4.3.
|
|
34014
|
+
"@tailwindcss/postcss": "^4.3.2",
|
|
33991
34015
|
"@types/node": "^20",
|
|
33992
34016
|
"@types/react": "^19.2.17",
|
|
33993
34017
|
"@types/react-dom": "^19.2.3",
|
|
33994
|
-
"tailwindcss": "^4.3.
|
|
34018
|
+
"tailwindcss": "^4.3.2"
|
|
33995
34019
|
}
|
|
33996
34020
|
}
|
|
33997
34021
|
`],
|
|
@@ -34380,26 +34404,26 @@ export function ThemeProvider({
|
|
|
34380
34404
|
},
|
|
34381
34405
|
"dependencies": {
|
|
34382
34406
|
"@{{projectName}}/ui": "{{#if (eq packageManager "npm")}}*{{else}}workspace:*{{/if}}",
|
|
34383
|
-
"@react-router/fs-routes": "^
|
|
34384
|
-
"@react-router/node": "^
|
|
34385
|
-
"@react-router/serve": "^
|
|
34386
|
-
"isbot": "^5.1.
|
|
34387
|
-
"lucide-react": "^1.
|
|
34407
|
+
"@react-router/fs-routes": "^8.1.0",
|
|
34408
|
+
"@react-router/node": "^8.1.0",
|
|
34409
|
+
"@react-router/serve": "^8.1.0",
|
|
34410
|
+
"isbot": "^5.1.44",
|
|
34411
|
+
"lucide-react": "^1.23.0",
|
|
34388
34412
|
"next-themes": "^0.4.6",
|
|
34389
34413
|
"react": "^19.2.7",
|
|
34390
34414
|
"react-dom": "^19.2.7",
|
|
34391
|
-
"react-router": "^
|
|
34415
|
+
"react-router": "^8.1.0",
|
|
34392
34416
|
"sonner": "^2.0.7"
|
|
34393
34417
|
},
|
|
34394
34418
|
"devDependencies": {
|
|
34395
|
-
"@react-router/dev": "^
|
|
34396
|
-
"@tailwindcss/vite": "^4.3.
|
|
34397
|
-
"@types/node": "^
|
|
34419
|
+
"@react-router/dev": "^8.1.0",
|
|
34420
|
+
"@tailwindcss/vite": "^4.3.2",
|
|
34421
|
+
"@types/node": "^22.13.14",
|
|
34398
34422
|
"@types/react": "^19.2.17",
|
|
34399
34423
|
"@types/react-dom": "^19.2.3",
|
|
34400
|
-
"react-router-devtools": "^
|
|
34401
|
-
"tailwindcss": "^4.3.
|
|
34402
|
-
"vite": "^
|
|
34424
|
+
"react-router-devtools": "^6.2.1",
|
|
34425
|
+
"tailwindcss": "^4.3.2",
|
|
34426
|
+
"vite": "^7.3.6",
|
|
34403
34427
|
"vite-tsconfig-paths": "^6.1.1"
|
|
34404
34428
|
}
|
|
34405
34429
|
}
|
|
@@ -34410,9 +34434,6 @@ export function ThemeProvider({
|
|
|
34410
34434
|
export default {
|
|
34411
34435
|
ssr: false,
|
|
34412
34436
|
appDirectory: "src",
|
|
34413
|
-
future: {
|
|
34414
|
-
v8_middleware: true,
|
|
34415
|
-
},
|
|
34416
34437
|
} satisfies Config;
|
|
34417
34438
|
`],
|
|
34418
34439
|
["frontend/react/react-router/src/components/mode-toggle.tsx.hbs", `import { Moon, Sun } from "lucide-react";
|
|
@@ -34918,26 +34939,26 @@ export default defineConfig({
|
|
|
34918
34939
|
"check-types": "vite build && tsc --noEmit"
|
|
34919
34940
|
},
|
|
34920
34941
|
"dependencies": {
|
|
34921
|
-
"@hookform/resolvers": "^5.
|
|
34942
|
+
"@hookform/resolvers": "^5.4.0",
|
|
34922
34943
|
"@{{projectName}}/ui": "{{#if (eq packageManager "npm")}}*{{else}}workspace:*{{/if}}",
|
|
34923
|
-
"@tailwindcss/vite": "^4.3.
|
|
34924
|
-
"@tanstack/react-router": "^1.
|
|
34925
|
-
"lucide-react": "^1.
|
|
34944
|
+
"@tailwindcss/vite": "^4.3.2",
|
|
34945
|
+
"@tanstack/react-router": "^1.170.17",
|
|
34946
|
+
"lucide-react": "^1.23.0",
|
|
34926
34947
|
"next-themes": "^0.4.6",
|
|
34927
34948
|
"react": "^19.2.7",
|
|
34928
34949
|
"react-dom": "^19.2.7",
|
|
34929
34950
|
"sonner": "^2.0.7"
|
|
34930
34951
|
},
|
|
34931
34952
|
"devDependencies": {
|
|
34932
|
-
"@tanstack/react-router-devtools": "^1.
|
|
34933
|
-
"@tanstack/router-plugin": "^1.
|
|
34953
|
+
"@tanstack/react-router-devtools": "^1.167.0",
|
|
34954
|
+
"@tanstack/router-plugin": "^1.168.19",
|
|
34934
34955
|
"@types/node": "^22.13.14",
|
|
34935
34956
|
"@types/react": "^19.2.17",
|
|
34936
34957
|
"@types/react-dom": "^19.2.3",
|
|
34937
|
-
"@vitejs/plugin-react": "^6.0.
|
|
34938
|
-
"postcss": "^8.5.
|
|
34939
|
-
"tailwindcss": "^4.3.
|
|
34940
|
-
"vite": "^8.
|
|
34958
|
+
"@vitejs/plugin-react": "^6.0.3",
|
|
34959
|
+
"postcss": "^8.5.16",
|
|
34960
|
+
"tailwindcss": "^4.3.2",
|
|
34961
|
+
"vite": "^8.1.3"
|
|
34941
34962
|
}
|
|
34942
34963
|
}
|
|
34943
34964
|
`],
|
|
@@ -35363,27 +35384,27 @@ export default defineConfig({
|
|
|
35363
35384
|
},
|
|
35364
35385
|
"dependencies": {
|
|
35365
35386
|
"@{{projectName}}/ui": "{{#if (eq packageManager "npm")}}*{{else}}workspace:*{{/if}}",
|
|
35366
|
-
"@tailwindcss/vite": "^4.3.
|
|
35367
|
-
"@tanstack/react-query": "^5.
|
|
35368
|
-
"@tanstack/react-router": "^1.
|
|
35369
|
-
"@tanstack/react-start": "^1.
|
|
35370
|
-
"lucide-react": "^1.
|
|
35387
|
+
"@tailwindcss/vite": "^4.3.2",
|
|
35388
|
+
"@tanstack/react-query": "^5.101.2",
|
|
35389
|
+
"@tanstack/react-router": "^1.170.17",
|
|
35390
|
+
"@tanstack/react-start": "^1.168.27",
|
|
35391
|
+
"lucide-react": "^1.23.0",
|
|
35371
35392
|
"next-themes": "^0.4.6",
|
|
35372
35393
|
"react": "^19.2.7",
|
|
35373
35394
|
"react-dom": "^19.2.7",
|
|
35374
35395
|
"sonner": "^2.0.7",
|
|
35375
|
-
"tailwindcss": "^4.3.
|
|
35396
|
+
"tailwindcss": "^4.3.2"
|
|
35376
35397
|
},
|
|
35377
35398
|
"devDependencies": {
|
|
35378
|
-
"@tanstack/react-router-devtools": "^1.
|
|
35399
|
+
"@tanstack/react-router-devtools": "^1.167.0",
|
|
35379
35400
|
"@testing-library/dom": "^10.4.1",
|
|
35380
35401
|
"@testing-library/react": "^16.3.2",
|
|
35381
35402
|
"@types/react": "^19.2.17",
|
|
35382
35403
|
"@types/react-dom": "^19.2.3",
|
|
35383
|
-
"@vitejs/plugin-react": "^6.0.
|
|
35384
|
-
"jsdom": "^29.
|
|
35385
|
-
"vite": "^8.
|
|
35386
|
-
"web-vitals": "^5.
|
|
35404
|
+
"@vitejs/plugin-react": "^6.0.3",
|
|
35405
|
+
"jsdom": "^29.1.1",
|
|
35406
|
+
"vite": "^8.1.3",
|
|
35407
|
+
"web-vitals": "^5.3.0"
|
|
35387
35408
|
}
|
|
35388
35409
|
}
|
|
35389
35410
|
`],
|
|
@@ -36173,16 +36194,16 @@ dist-ssr
|
|
|
36173
36194
|
"test": "vitest run"
|
|
36174
36195
|
},
|
|
36175
36196
|
"dependencies": {
|
|
36176
|
-
"@tailwindcss/vite": "^4.3.
|
|
36177
|
-
"@tanstack/router-plugin": "^1.
|
|
36178
|
-
"@tanstack/solid-router": "^1.
|
|
36179
|
-
"lucide-solid": "^1.
|
|
36180
|
-
"solid-js": "^1.9.
|
|
36181
|
-
"tailwindcss": "^4.3.
|
|
36197
|
+
"@tailwindcss/vite": "^4.3.2",
|
|
36198
|
+
"@tanstack/router-plugin": "^1.168.19",
|
|
36199
|
+
"@tanstack/solid-router": "^1.170.17",
|
|
36200
|
+
"lucide-solid": "^1.23.0",
|
|
36201
|
+
"solid-js": "^1.9.14",
|
|
36202
|
+
"tailwindcss": "^4.3.2"
|
|
36182
36203
|
},
|
|
36183
36204
|
"devDependencies": {
|
|
36184
|
-
"@tanstack/solid-router-devtools": "^1.
|
|
36185
|
-
"vite": "^8.
|
|
36205
|
+
"@tanstack/solid-router-devtools": "^1.167.0",
|
|
36206
|
+
"vite": "^8.1.3",
|
|
36186
36207
|
"vite-plugin-solid": "^2.11.12"
|
|
36187
36208
|
}
|
|
36188
36209
|
}
|
|
@@ -36493,13 +36514,13 @@ vite.config.ts.timestamp-*
|
|
|
36493
36514
|
{{else}}
|
|
36494
36515
|
"@sveltejs/adapter-auto": "^7.0.1",
|
|
36495
36516
|
{{/if}}
|
|
36496
|
-
"@sveltejs/kit": "^2.
|
|
36497
|
-
"@sveltejs/vite-plugin-svelte": "^7.
|
|
36498
|
-
"@tailwindcss/vite": "^4.3.
|
|
36499
|
-
"svelte": "^5.
|
|
36500
|
-
"svelte-check": "^4.
|
|
36501
|
-
"tailwindcss": "^4.3.
|
|
36502
|
-
"vite": "^8.
|
|
36517
|
+
"@sveltejs/kit": "^2.69.0",
|
|
36518
|
+
"@sveltejs/vite-plugin-svelte": "^7.1.2",
|
|
36519
|
+
"@tailwindcss/vite": "^4.3.2",
|
|
36520
|
+
"svelte": "^5.56.4",
|
|
36521
|
+
"svelte-check": "^4.7.1",
|
|
36522
|
+
"tailwindcss": "^4.3.2",
|
|
36523
|
+
"vite": "^8.1.3"
|
|
36503
36524
|
},
|
|
36504
36525
|
"dependencies": {}
|
|
36505
36526
|
}
|
|
@@ -36695,7 +36716,7 @@ const TITLE_TEXT = \`
|
|
|
36695
36716
|
{{#if (eq api "orpc")}}
|
|
36696
36717
|
import { orpc } from "$lib/orpc";
|
|
36697
36718
|
import { createQuery } from "@tanstack/svelte-query";
|
|
36698
|
-
const healthCheck = createQuery(orpc.healthCheck.queryOptions());
|
|
36719
|
+
const healthCheck = createQuery(() => orpc.healthCheck.queryOptions());
|
|
36699
36720
|
{{/if}}
|
|
36700
36721
|
|
|
36701
36722
|
const TITLE_TEXT = \`
|
|
@@ -36723,12 +36744,12 @@ const TITLE_TEXT = \`
|
|
|
36723
36744
|
<h2 class="mb-2 font-medium">API Status</h2>
|
|
36724
36745
|
<div class="flex items-center gap-2">
|
|
36725
36746
|
<div
|
|
36726
|
-
class={\`h-2 w-2 rounded-full \${
|
|
36747
|
+
class={\`h-2 w-2 rounded-full \${healthCheck.data ? "bg-green-500" : "bg-red-500"}\`}
|
|
36727
36748
|
></div>
|
|
36728
36749
|
<span class="text-muted-foreground text-sm">
|
|
36729
|
-
{
|
|
36750
|
+
{healthCheck.isLoading
|
|
36730
36751
|
? "Checking..."
|
|
36731
|
-
:
|
|
36752
|
+
: healthCheck.data
|
|
36732
36753
|
? "Connected"
|
|
36733
36754
|
: "Disconnected"}
|
|
36734
36755
|
</span>
|
|
@@ -37654,11 +37675,11 @@ await app.finalize();
|
|
|
37654
37675
|
},
|
|
37655
37676
|
"dependencies": {
|
|
37656
37677
|
"@base-ui/react": "^1.6.0",
|
|
37657
|
-
"@shadcn/react": "^0.
|
|
37678
|
+
"@shadcn/react": "^0.2.0",
|
|
37658
37679
|
"shadcn": "^4.12.0",
|
|
37659
37680
|
"class-variance-authority": "^0.7.1",
|
|
37660
37681
|
"clsx": "^2.1.1",
|
|
37661
|
-
"lucide-react": "^1.
|
|
37682
|
+
"lucide-react": "^1.23.0",
|
|
37662
37683
|
"next-themes": "^0.4.6",
|
|
37663
37684
|
"react": "^19.2.7",
|
|
37664
37685
|
"react-dom": "^19.2.7",
|
|
@@ -37667,10 +37688,10 @@ await app.finalize();
|
|
|
37667
37688
|
"tw-animate-css": "^1.4.0"
|
|
37668
37689
|
},
|
|
37669
37690
|
"devDependencies": {
|
|
37670
|
-
"@tailwindcss/postcss": "^4.3.
|
|
37691
|
+
"@tailwindcss/postcss": "^4.3.2",
|
|
37671
37692
|
"@types/react": "^19.2.17",
|
|
37672
37693
|
"@types/react-dom": "^19.2.3",
|
|
37673
|
-
"tailwindcss": "^4.3.
|
|
37694
|
+
"tailwindcss": "^4.3.2"
|
|
37674
37695
|
},
|
|
37675
37696
|
"scripts": {
|
|
37676
37697
|
"check-types": "tsc --noEmit"
|