create-better-fullstack 1.5.0 → 1.5.1

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.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { s as createBtsCli } from "./src-DaUU4ThO.mjs";
2
+ import { s as createBtsCli } from "./src-hfdQPH0o.mjs";
3
3
 
4
4
  //#region src/cli.ts
5
5
  createBtsCli().run();
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import { a as builder, c as createVirtual, d as history, f as router, i as add, l as docs, n as TEMPLATE_COUNT, o as create, p as sponsors, r as VirtualFileSystem, s as createBtsCli, t as EMBEDDED_TEMPLATES, u as generateVirtualProject } from "./src-DaUU4ThO.mjs";
2
+ import { a as builder, c as createVirtual, d as history, f as router, i as add, l as docs, n as TEMPLATE_COUNT, o as create, p as sponsors, r as VirtualFileSystem, s as createBtsCli, t as EMBEDDED_TEMPLATES, u as generateVirtualProject } from "./src-hfdQPH0o.mjs";
3
3
 
4
4
  export { EMBEDDED_TEMPLATES, TEMPLATE_COUNT, VirtualFileSystem, add, builder, create, createBtsCli, createVirtual, docs, generateVirtualProject, history, router, sponsors };
@@ -5206,6 +5206,12 @@ const ICON_LIBRARY_OPTIONS = [
5206
5206
  }
5207
5207
  ];
5208
5208
  const COLOR_THEME_OPTIONS = [
5209
+ {
5210
+ value: "neutral",
5211
+ label: "── Neutrals ──",
5212
+ hint: "",
5213
+ disabled: true
5214
+ },
5209
5215
  {
5210
5216
  value: "neutral",
5211
5217
  label: "Neutral",
@@ -5226,20 +5232,52 @@ const COLOR_THEME_OPTIONS = [
5226
5232
  label: "Gray",
5227
5233
  hint: "Blue-tinted neutral"
5228
5234
  },
5235
+ {
5236
+ value: "neutral",
5237
+ label: "── Cool ──",
5238
+ hint: "",
5239
+ disabled: true
5240
+ },
5229
5241
  {
5230
5242
  value: "blue",
5231
5243
  label: "Blue",
5232
5244
  hint: "Trust and reliability"
5233
5245
  },
5246
+ {
5247
+ value: "indigo",
5248
+ label: "Indigo",
5249
+ hint: "Deep and focused"
5250
+ },
5234
5251
  {
5235
5252
  value: "violet",
5236
5253
  label: "Violet",
5237
5254
  hint: "Creative and modern"
5238
5255
  },
5239
5256
  {
5240
- value: "green",
5241
- label: "Green",
5242
- hint: "Growth and success"
5257
+ value: "purple",
5258
+ label: "Purple",
5259
+ hint: "Royal and elegant"
5260
+ },
5261
+ {
5262
+ value: "cyan",
5263
+ label: "Cyan",
5264
+ hint: "Cool and refreshing"
5265
+ },
5266
+ {
5267
+ value: "sky",
5268
+ label: "Sky",
5269
+ hint: "Light and airy"
5270
+ },
5271
+ {
5272
+ value: "teal",
5273
+ label: "Teal",
5274
+ hint: "Calm and sophisticated"
5275
+ },
5276
+ {
5277
+ value: "neutral",
5278
+ label: "── Warm ──",
5279
+ hint: "",
5280
+ disabled: true
5243
5281
  },
5244
5282
  {
5245
5283
  value: "red",
@@ -5271,36 +5309,16 @@ const COLOR_THEME_OPTIONS = [
5271
5309
  label: "Lime",
5272
5310
  hint: "Fresh and lively"
5273
5311
  },
5312
+ {
5313
+ value: "green",
5314
+ label: "Green",
5315
+ hint: "Growth and success"
5316
+ },
5274
5317
  {
5275
5318
  value: "emerald",
5276
5319
  label: "Emerald",
5277
5320
  hint: "Rich and luxurious"
5278
5321
  },
5279
- {
5280
- value: "teal",
5281
- label: "Teal",
5282
- hint: "Calm and sophisticated"
5283
- },
5284
- {
5285
- value: "cyan",
5286
- label: "Cyan",
5287
- hint: "Cool and refreshing"
5288
- },
5289
- {
5290
- value: "sky",
5291
- label: "Sky",
5292
- hint: "Light and airy"
5293
- },
5294
- {
5295
- value: "indigo",
5296
- label: "Indigo",
5297
- hint: "Deep and focused"
5298
- },
5299
- {
5300
- value: "purple",
5301
- label: "Purple",
5302
- hint: "Royal and elegant"
5303
- },
5304
5322
  {
5305
5323
  value: "fuchsia",
5306
5324
  label: "Fuchsia",
@@ -6988,6 +7006,15 @@ function validateDatabaseSetup(config, providedFlags) {
6988
7006
  function validateEcosystemAuthCompatibility(config, providedFlags) {
6989
7007
  const auth = config.auth;
6990
7008
  if (!auth || auth === "none") return;
7009
+ if (auth === "better-auth" && config.orm && [
7010
+ "typeorm",
7011
+ "sequelize",
7012
+ "mikroorm"
7013
+ ].includes(config.orm)) {
7014
+ config.auth = "none";
7015
+ if (providedFlags?.has("auth") && !isSilent()) consola.warn(pc.yellow(`Unsupported auth selection '${auth}' with ${config.orm}: no Better Auth adapter exists. Falling back to '--auth none'.`));
7016
+ return;
7017
+ }
6991
7018
  const normalized = (0, types_exports.normalizeCapabilitySelection)("auth", {
6992
7019
  ecosystem: config.ecosystem,
6993
7020
  backend: config.backend,
@@ -8520,7 +8547,7 @@ async function displayPostInstallInstructions(config) {
8520
8547
  let output = `${pc.bold("Next steps")}\n${pc.cyan("1.")} ${cdCmd}\n`;
8521
8548
  let stepCounter = 2;
8522
8549
  if (!depsInstalled) output += `${pc.cyan(`${stepCounter++}.`)} ${packageManager} install\n`;
8523
- if (hasFresh) output += `${pc.yellow("NOTE:")} Fresh projects require ${pc.white("deno")} on your PATH\n`;
8550
+ if (hasFresh) output += `${pc.yellow("NOTE:")} Fresh projects require ${pc.white("deno")} on your PATH.\n Install: ${pc.underline("https://docs.deno.com/runtime/getting_started/installation/")}\n`;
8524
8551
  if (database === "sqlite" && dbSetup !== "d1") output += `${pc.cyan(`${stepCounter++}.`)} ${runCmd} db:local\n${pc.dim(" (optional - starts local SQLite database)")}\n`;
8525
8552
  if (isConvex) {
8526
8553
  output += `${pc.cyan(`${stepCounter++}.`)} ${runCmd} dev:setup\n${pc.dim(" (this will guide you through Convex project setup)")}\n`;
@@ -8608,7 +8635,7 @@ async function getDatabaseInstructions(database, orm, runCmd, _runtime, dbSetup,
8608
8635
  }
8609
8636
  if (dbSetup === "turso" && orm === "prisma") instructions.push(`${pc.yellow("NOTE:")} Follow Turso's Prisma guide for migrations via the Turso CLI:\n https://docs.turso.tech/sdk/ts/orm/prisma`);
8610
8637
  if (orm === "prisma") {
8611
- if (database === "mongodb" && dbSetup === "docker") instructions.push(`${pc.yellow("WARNING:")} Prisma + MongoDB + Docker combination\n may not work.`);
8638
+ if (database === "mongodb" && dbSetup === "docker") instructions.push(`${pc.yellow("WARNING:")} Prisma + MongoDB + Docker: this combination has known issues.\n Consider using MongoDB Atlas (${pc.underline("https://www.mongodb.com/atlas")}) for reliable Prisma + MongoDB support.`);
8612
8639
  if (dbSetup === "docker") instructions.push(`${pc.cyan("•")} Start docker container: ${`${runCmd} db:start`}`);
8613
8640
  if (!(dbSetup === "d1" && serverDeploy === "cloudflare")) {
8614
8641
  instructions.push(`${pc.cyan("•")} Generate Prisma Client: ${`${runCmd} db:generate`}`);
@@ -9276,7 +9303,7 @@ const router = os.router({
9276
9303
  log.message(`Please visit ${DOCS_URL}`);
9277
9304
  }
9278
9305
  }),
9279
- builder: os.meta({ description: "Open the web-based stack builder" }).handler(async () => {
9306
+ builder: os.meta({ description: "Open the interactive web-based stack builder at better-fullstack.dev" }).handler(async () => {
9280
9307
  const BUILDER_URL = "https://better-fullstack-web.vercel.app/new";
9281
9308
  try {
9282
9309
  await openUrl(BUILDER_URL);
@@ -9285,7 +9312,7 @@ const router = os.router({
9285
9312
  log.message(`Please visit ${BUILDER_URL}`);
9286
9313
  }
9287
9314
  }),
9288
- add: os.meta({ description: "Add addons to an existing Better Fullstack project" }).input(z.object({
9315
+ add: os.meta({ description: "Add addons or deployment targets to an existing Better Fullstack project" }).input(z.object({
9289
9316
  addons: z.array(types_exports.AddonsSchema).optional().describe("Addons to add"),
9290
9317
  webDeploy: types_exports.WebDeploySchema.optional().describe("Web deployment option to set"),
9291
9318
  serverDeploy: types_exports.ServerDeploySchema.optional().describe("Server deployment option to set"),
@@ -9295,7 +9322,7 @@ const router = os.router({
9295
9322
  })).handler(async ({ input }) => {
9296
9323
  await addHandler(input);
9297
9324
  }),
9298
- history: os.meta({ description: "Show project creation history" }).input(z.object({
9325
+ history: os.meta({ description: "Show history of scaffolded projects with reproducible commands" }).input(z.object({
9299
9326
  limit: z.number().optional().default(10).describe("Number of entries to show"),
9300
9327
  clear: z.boolean().optional().default(false).describe("Clear all history"),
9301
9328
  json: z.boolean().optional().default(false).describe("Output as JSON")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-better-fullstack",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "Scaffold production-ready fullstack apps in seconds. Pick your stack from 270+ options — the CLI wires everything together.",
5
5
  "keywords": [
6
6
  "angular",
@@ -108,17 +108,17 @@
108
108
  "prepublishOnly": "npm run build"
109
109
  },
110
110
  "dependencies": {
111
- "@better-fullstack/template-generator": "^1.5.0",
112
- "@better-fullstack/types": "^1.5.0",
111
+ "@better-fullstack/template-generator": "^1.5.1",
112
+ "@better-fullstack/types": "^1.5.1",
113
113
  "@clack/core": "^0.5.0",
114
114
  "@clack/prompts": "^1.1.0",
115
- "@orpc/server": "^1.13.9",
115
+ "@orpc/server": "^1.13.13",
116
116
  "consola": "^3.4.2",
117
117
  "env-paths": "^4.0.0",
118
118
  "execa": "^9.6.1",
119
119
  "fs-extra": "^11.3.4",
120
120
  "gradient-string": "^3.0.0",
121
- "handlebars": "^4.7.8",
121
+ "handlebars": "^4.7.9",
122
122
  "jsonc-parser": "^3.3.1",
123
123
  "oxfmt": "^0.19.0",
124
124
  "picocolors": "^1.1.1",