create-better-t-stack 2.36.0 → 2.36.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/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { createBtsCli } from "./src-tnvyXvhu.js";
2
+ import { createBtsCli } from "./src-BUa64nwX.js";
3
3
 
4
4
  //#region src/cli.ts
5
5
  createBtsCli().run();
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import { builder, createBtsCli, docs, init, router, sponsors } from "./src-tnvyXvhu.js";
2
+ import { builder, createBtsCli, docs, init, router, sponsors } from "./src-BUa64nwX.js";
3
3
 
4
4
  export { builder, createBtsCli, docs, init, router, sponsors };
@@ -128,7 +128,7 @@ const dependencyVersionMap = {
128
128
  "@opennextjs/cloudflare": "^1.3.0",
129
129
  "nitro-cloudflare-dev": "^0.2.2",
130
130
  "@sveltejs/adapter-cloudflare": "^7.2.1",
131
- "@cloudflare/workers-types": "^4.20250813.0",
131
+ "@cloudflare/workers-types": "^4.20250822.0",
132
132
  alchemy: "^0.62.1",
133
133
  nitropack: "^2.12.4",
134
134
  dotenv: "^17.2.1"
@@ -2990,7 +2990,8 @@ async function setupAlchemyServerDeploy(serverDir, _packageManager) {
2990
2990
  "alchemy",
2991
2991
  "wrangler",
2992
2992
  "@types/node",
2993
- "dotenv"
2993
+ "dotenv",
2994
+ "@cloudflare/workers-types"
2994
2995
  ],
2995
2996
  projectDir: serverDir
2996
2997
  });
@@ -5627,7 +5628,7 @@ async function getDockerStatus(database) {
5627
5628
  async function displayPostInstallInstructions(config) {
5628
5629
  const { database, relativePath, packageManager, depsInstalled, orm, addons, runtime, frontend, backend, dbSetup, webDeploy, serverDeploy } = config;
5629
5630
  const isConvex = backend === "convex";
5630
- const runCmd = packageManager === "npm" ? "npm run" : packageManager;
5631
+ const runCmd = packageManager === "npm" ? "npm run" : packageManager === "pnpm" ? "pnpm run" : "bun run";
5631
5632
  const cdCmd = `cd ${relativePath}`;
5632
5633
  const hasHuskyOrBiome = addons?.includes("husky") || addons?.includes("biome");
5633
5634
  const databaseInstructions = !isConvex && database !== "none" ? await getDatabaseInstructions(database, orm, runCmd, runtime, dbSetup, serverDeploy) : "";
@@ -5716,21 +5717,21 @@ async function getDatabaseInstructions(database, orm, runCmd, _runtime, dbSetup,
5716
5717
  instructions.push(`${pc.cyan("1.")} Login to Cloudflare: ${pc.white(`${packageManager} wrangler login`)}`);
5717
5718
  instructions.push(`${pc.cyan("2.")} Create D1 database: ${pc.white(`${packageManager} wrangler d1 create your-database-name`)}`);
5718
5719
  instructions.push(`${pc.cyan("3.")} Update apps/server/wrangler.jsonc with database_id and database_name`);
5719
- instructions.push(`${pc.cyan("4.")} Generate migrations: ${pc.white(`cd apps/server && ${packageManager} db:generate`)}`);
5720
+ instructions.push(`${pc.cyan("4.")} Generate migrations: ${pc.white(`cd apps/server && ${runCmd} db:generate`)}`);
5720
5721
  instructions.push(`${pc.cyan("5.")} Apply migrations locally: ${pc.white(`${packageManager} wrangler d1 migrations apply YOUR_DB_NAME --local`)}`);
5721
5722
  instructions.push(`${pc.cyan("6.")} Apply migrations to production: ${pc.white(`${packageManager} wrangler d1 migrations apply YOUR_DB_NAME`)}`);
5722
5723
  }
5723
- if (dbSetup === "d1" && serverDeploy === "alchemy") {}
5724
+ if (dbSetup === "d1" && serverDeploy === "alchemy") instructions.push(`${pc.yellow("NOTE:")} D1 migrations are automatically handled by Alchemy`);
5724
5725
  if (orm === "prisma") {
5725
5726
  if (dbSetup === "turso") instructions.push(`${pc.yellow("NOTE:")} Turso support with Prisma is in Early Access and requires\n additional setup. Learn more at:\n https://www.prisma.io/docs/orm/overview/databases/turso`);
5726
5727
  if (database === "mongodb" && dbSetup === "docker") instructions.push(`${pc.yellow("WARNING:")} Prisma + MongoDB + Docker combination\n may not work.`);
5727
5728
  if (dbSetup === "docker") instructions.push(`${pc.cyan("•")} Start docker container: ${`${runCmd} db:start`}`);
5728
5729
  instructions.push(`${pc.cyan("•")} Apply schema: ${`${runCmd} db:push`}`);
5729
- instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
5730
+ if (!(dbSetup === "d1" && serverDeploy === "alchemy")) instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
5730
5731
  } else if (orm === "drizzle") {
5731
5732
  if (dbSetup === "docker") instructions.push(`${pc.cyan("•")} Start docker container: ${`${runCmd} db:start`}`);
5732
5733
  if (dbSetup !== "d1") instructions.push(`${pc.cyan("•")} Apply schema: ${`${runCmd} db:push`}`);
5733
- instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
5734
+ if (!(dbSetup === "d1" && serverDeploy === "alchemy")) instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
5734
5735
  if (database === "sqlite" && dbSetup !== "d1") instructions.push(`${pc.cyan("•")} Start local DB (if needed): ${`cd apps/server && ${runCmd} db:local`}`);
5735
5736
  } else if (orm === "mongoose") {
5736
5737
  if (dbSetup === "docker") instructions.push(`${pc.cyan("•")} Start docker container: ${`${runCmd} db:start`}`);
@@ -5760,9 +5761,9 @@ function getWranglerDeployInstructions(runCmd, webDeploy, serverDeploy) {
5760
5761
  }
5761
5762
  function getAlchemyDeployInstructions(runCmd, webDeploy, serverDeploy) {
5762
5763
  const instructions = [];
5763
- if (webDeploy === "alchemy" && serverDeploy !== "alchemy") instructions.push(`${pc.bold("Deploy web to Alchemy:")}\n${pc.cyan("•")} Deploy: ${`cd apps/web && ${runCmd} deploy`}`);
5764
- else if (serverDeploy === "alchemy" && webDeploy !== "alchemy") instructions.push(`${pc.bold("Deploy server to Alchemy:")}\n${pc.cyan("•")} Deploy: ${`cd apps/server && ${runCmd} deploy`}`);
5765
- else if (webDeploy === "alchemy" && serverDeploy === "alchemy") instructions.push(`${pc.bold("Deploy to Alchemy:")}\n${pc.cyan("•")} Deploy: ${`${runCmd} deploy`}`);
5764
+ if (webDeploy === "alchemy" && serverDeploy !== "alchemy") instructions.push(`${pc.bold("Deploy web with Alchemy:")}\n${pc.cyan("•")} Dev: ${`cd apps/web && ${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`cd apps/web && ${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`cd apps/web && ${runCmd} destroy`}`);
5765
+ else if (serverDeploy === "alchemy" && webDeploy !== "alchemy") instructions.push(`${pc.bold("Deploy server with Alchemy:")}\n${pc.cyan("•")} Dev: ${`cd apps/server && ${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`cd apps/server && ${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`cd apps/server && ${runCmd} destroy`}`);
5766
+ else if (webDeploy === "alchemy" && serverDeploy === "alchemy") instructions.push(`${pc.bold("Deploy with Alchemy:")}\n${pc.cyan("•")} Dev: ${`${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`${runCmd} destroy`}`);
5766
5767
  return instructions.length ? `\n${instructions.join("\n")}` : "";
5767
5768
  }
5768
5769
 
@@ -5801,13 +5802,13 @@ async function updateRootPackageJson(projectDir, options) {
5801
5802
  if (options.backend === "convex") scripts["dev:setup"] = `turbo -F ${backendPackageName} dev:setup`;
5802
5803
  if (needsDbScripts) {
5803
5804
  scripts["db:push"] = `turbo -F ${backendPackageName} db:push`;
5804
- scripts["db:studio"] = `turbo -F ${backendPackageName} db:studio`;
5805
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = `turbo -F ${backendPackageName} db:studio`;
5805
5806
  if (options.orm === "prisma") {
5806
5807
  scripts["db:generate"] = `turbo -F ${backendPackageName} db:generate`;
5807
- scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
5808
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
5808
5809
  } else if (options.orm === "drizzle") {
5809
5810
  scripts["db:generate"] = `turbo -F ${backendPackageName} db:generate`;
5810
- scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
5811
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
5811
5812
  }
5812
5813
  }
5813
5814
  if (options.dbSetup === "docker") {
@@ -5826,13 +5827,13 @@ async function updateRootPackageJson(projectDir, options) {
5826
5827
  if (options.backend === "convex") scripts["dev:setup"] = `pnpm --filter ${backendPackageName} dev:setup`;
5827
5828
  if (needsDbScripts) {
5828
5829
  scripts["db:push"] = `pnpm --filter ${backendPackageName} db:push`;
5829
- scripts["db:studio"] = `pnpm --filter ${backendPackageName} db:studio`;
5830
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = `pnpm --filter ${backendPackageName} db:studio`;
5830
5831
  if (options.orm === "prisma") {
5831
5832
  scripts["db:generate"] = `pnpm --filter ${backendPackageName} db:generate`;
5832
- scripts["db:migrate"] = `pnpm --filter ${backendPackageName} db:migrate`;
5833
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `pnpm --filter ${backendPackageName} db:migrate`;
5833
5834
  } else if (options.orm === "drizzle") {
5834
5835
  scripts["db:generate"] = `pnpm --filter ${backendPackageName} db:generate`;
5835
- scripts["db:migrate"] = `pnpm --filter ${backendPackageName} db:migrate`;
5836
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `pnpm --filter ${backendPackageName} db:migrate`;
5836
5837
  }
5837
5838
  }
5838
5839
  if (options.dbSetup === "docker") {
@@ -5851,13 +5852,13 @@ async function updateRootPackageJson(projectDir, options) {
5851
5852
  if (options.backend === "convex") scripts["dev:setup"] = `npm run dev:setup --workspace ${backendPackageName}`;
5852
5853
  if (needsDbScripts) {
5853
5854
  scripts["db:push"] = `npm run db:push --workspace ${backendPackageName}`;
5854
- scripts["db:studio"] = `npm run db:studio --workspace ${backendPackageName}`;
5855
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = `npm run db:studio --workspace ${backendPackageName}`;
5855
5856
  if (options.orm === "prisma") {
5856
5857
  scripts["db:generate"] = `npm run db:generate --workspace ${backendPackageName}`;
5857
- scripts["db:migrate"] = `npm run db:migrate --workspace ${backendPackageName}`;
5858
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `npm run db:migrate --workspace ${backendPackageName}`;
5858
5859
  } else if (options.orm === "drizzle") {
5859
5860
  scripts["db:generate"] = `npm run db:generate --workspace ${backendPackageName}`;
5860
- scripts["db:migrate"] = `npm run db:migrate --workspace ${backendPackageName}`;
5861
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `npm run db:migrate --workspace ${backendPackageName}`;
5861
5862
  }
5862
5863
  }
5863
5864
  if (options.dbSetup === "docker") {
@@ -5876,13 +5877,13 @@ async function updateRootPackageJson(projectDir, options) {
5876
5877
  if (options.backend === "convex") scripts["dev:setup"] = `bun run --filter ${backendPackageName} dev:setup`;
5877
5878
  if (needsDbScripts) {
5878
5879
  scripts["db:push"] = `bun run --filter ${backendPackageName} db:push`;
5879
- scripts["db:studio"] = `bun run --filter ${backendPackageName} db:studio`;
5880
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = `bun run --filter ${backendPackageName} db:studio`;
5880
5881
  if (options.orm === "prisma") {
5881
5882
  scripts["db:generate"] = `bun run --filter ${backendPackageName} db:generate`;
5882
- scripts["db:migrate"] = `bun run --filter ${backendPackageName} db:migrate`;
5883
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `bun run --filter ${backendPackageName} db:migrate`;
5883
5884
  } else if (options.orm === "drizzle") {
5884
5885
  scripts["db:generate"] = `bun run --filter ${backendPackageName} db:generate`;
5885
- scripts["db:migrate"] = `bun run --filter ${backendPackageName} db:migrate`;
5886
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = `bun run --filter ${backendPackageName} db:migrate`;
5886
5887
  }
5887
5888
  }
5888
5889
  if (options.dbSetup === "docker") {
@@ -5920,14 +5921,14 @@ async function updateServerPackageJson(projectDir, options) {
5920
5921
  if (options.database === "sqlite" && options.orm === "drizzle" && options.dbSetup !== "d1") scripts["db:local"] = "turso dev --db-file local.db";
5921
5922
  if (options.orm === "prisma") {
5922
5923
  scripts["db:push"] = "prisma db push";
5923
- scripts["db:studio"] = "prisma studio";
5924
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = "prisma studio";
5924
5925
  scripts["db:generate"] = "prisma generate";
5925
- scripts["db:migrate"] = "prisma migrate dev";
5926
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = "prisma migrate dev";
5926
5927
  } else if (options.orm === "drizzle") {
5927
5928
  scripts["db:push"] = "drizzle-kit push";
5928
- scripts["db:studio"] = "drizzle-kit studio";
5929
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:studio"] = "drizzle-kit studio";
5929
5930
  scripts["db:generate"] = "drizzle-kit generate";
5930
- scripts["db:migrate"] = "drizzle-kit migrate";
5931
+ if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) scripts["db:migrate"] = "drizzle-kit migrate";
5931
5932
  }
5932
5933
  }
5933
5934
  if (options.dbSetup === "docker") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-better-t-stack",
3
- "version": "2.36.0",
3
+ "version": "2.36.2",
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",
@@ -22,7 +22,8 @@
22
22
  {{else}}
23
23
  "node",
24
24
  "bun"
25
- {{/if}}
25
+ {{/if}}{{#if (eq serverDeploy "alchemy")}},
26
+ "@cloudflare/workers-types"{{/if}}
26
27
  ]{{#unless (or (eq backend "convex") (eq backend "none"))}},
27
28
  "composite": true{{/unless}},
28
29
  "jsx": "react-jsx"{{#if (eq backend "hono")}},