create-better-t-stack 3.44.2 → 3.45.0

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 { D as setProcessMode, i as SchemaNameSchema, l as create, m as getSchemaResult, s as add, u as createBtsCli, v as types_exports, y as getLatestCLIVersion } from "./src-DWTrkxVq.mjs";
2
+ import { D as setProcessMode, i as SchemaNameSchema, l as create, m as getSchemaResult, s as add, u as createBtsCli, v as types_exports, y as getLatestCLIVersion } from "./src-DIW_voYJ.mjs";
3
3
  import { lineByLineConsoleLogger } from "trpc-cli";
4
4
  import z from "zod";
5
5
  import { McpServer } from "@modelcontextprotocol/server";
package/dist/index.d.mts CHANGED
@@ -606,7 +606,6 @@ export declare const router: {
606
606
  oxlint: "oxlint";
607
607
  }>>;
608
608
  editors: z.ZodOptional<z.ZodArray<z.ZodEnum<{
609
- void: "void";
610
609
  antigravity: "antigravity";
611
610
  cursor: "cursor";
612
611
  vscode: "vscode";
@@ -615,16 +614,22 @@ export declare const router: {
615
614
  universal: "universal";
616
615
  bob: "bob";
617
616
  codebuddy: "codebuddy";
617
+ devin: "devin";
618
618
  trae: "trae";
619
+ void: "void";
619
620
  kiro: "kiro";
620
621
  }>>>;
621
622
  agents: z.ZodOptional<z.ZodArray<z.ZodEnum<{
622
623
  vercel: "vercel";
624
+ antigravity: "antigravity";
623
625
  cline: "cline";
624
626
  codex: "codex";
625
627
  opencode: "opencode";
626
628
  goose: "goose";
629
+ fx: "fx";
627
630
  "kilo-code": "kilo-code";
631
+ "kimi-code": "kimi-code";
632
+ "kiro-cli": "kiro-cli";
628
633
  universal: "universal";
629
634
  adal: "adal";
630
635
  amp: "amp";
@@ -635,6 +640,7 @@ export declare const router: {
635
640
  devin: "devin";
636
641
  droid: "droid";
637
642
  firebender: "firebender";
643
+ grok: "grok";
638
644
  junie: "junie";
639
645
  mcpjam: "mcpjam";
640
646
  "mistral-vibe": "mistral-vibe";
@@ -661,11 +667,17 @@ export declare const router: {
661
667
  qwen: "qwen";
662
668
  "amazon-q-cli": "amazon-q-cli";
663
669
  "cursor-cli": "cursor-cli";
670
+ "snowflake-coco": "snowflake-coco";
671
+ xum: "xum";
664
672
  }>>>;
665
673
  hooks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
666
674
  cursor: "cursor";
675
+ codex: "codex";
667
676
  windsurf: "windsurf";
668
677
  codebuddy: "codebuddy";
678
+ deepagents: "deepagents";
679
+ devin: "devin";
680
+ grok: "grok";
669
681
  claude: "claude";
670
682
  copilot: "copilot";
671
683
  }>>>;
@@ -1121,7 +1133,6 @@ export declare const router: {
1121
1133
  oxlint: "oxlint";
1122
1134
  }>>;
1123
1135
  editors: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1124
- void: "void";
1125
1136
  antigravity: "antigravity";
1126
1137
  cursor: "cursor";
1127
1138
  vscode: "vscode";
@@ -1130,16 +1141,22 @@ export declare const router: {
1130
1141
  universal: "universal";
1131
1142
  bob: "bob";
1132
1143
  codebuddy: "codebuddy";
1144
+ devin: "devin";
1133
1145
  trae: "trae";
1146
+ void: "void";
1134
1147
  kiro: "kiro";
1135
1148
  }>>>;
1136
1149
  agents: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1137
1150
  vercel: "vercel";
1151
+ antigravity: "antigravity";
1138
1152
  cline: "cline";
1139
1153
  codex: "codex";
1140
1154
  opencode: "opencode";
1141
1155
  goose: "goose";
1156
+ fx: "fx";
1142
1157
  "kilo-code": "kilo-code";
1158
+ "kimi-code": "kimi-code";
1159
+ "kiro-cli": "kiro-cli";
1143
1160
  universal: "universal";
1144
1161
  adal: "adal";
1145
1162
  amp: "amp";
@@ -1150,6 +1167,7 @@ export declare const router: {
1150
1167
  devin: "devin";
1151
1168
  droid: "droid";
1152
1169
  firebender: "firebender";
1170
+ grok: "grok";
1153
1171
  junie: "junie";
1154
1172
  mcpjam: "mcpjam";
1155
1173
  "mistral-vibe": "mistral-vibe";
@@ -1176,11 +1194,17 @@ export declare const router: {
1176
1194
  qwen: "qwen";
1177
1195
  "amazon-q-cli": "amazon-q-cli";
1178
1196
  "cursor-cli": "cursor-cli";
1197
+ "snowflake-coco": "snowflake-coco";
1198
+ xum: "xum";
1179
1199
  }>>>;
1180
1200
  hooks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1181
1201
  cursor: "cursor";
1202
+ codex: "codex";
1182
1203
  windsurf: "windsurf";
1183
1204
  codebuddy: "codebuddy";
1205
+ deepagents: "deepagents";
1206
+ devin: "devin";
1207
+ grok: "grok";
1184
1208
  claude: "claude";
1185
1209
  copilot: "copilot";
1186
1210
  }>>>;
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import { C as DirectoryConflictError, E as ValidationError, S as DatabaseSetupError, T as UserCancelledError, _ as ProjectLauncherSchema, a as TEMPLATE_COUNT, b as CLIError, c as builder, d as createVirtual, f as docs, g as sponsors, h as router, i as SchemaNameSchema, l as create, m as getSchemaResult, n as GeneratorError, o as VirtualFileSystem, p as generate, r as Result, s as add, t as EMBEDDED_TEMPLATES, u as createBtsCli, w as ProjectCreationError, x as CompatibilityError } from "./src-DWTrkxVq.mjs";
2
+ import { C as DirectoryConflictError, E as ValidationError, S as DatabaseSetupError, T as UserCancelledError, _ as ProjectLauncherSchema, a as TEMPLATE_COUNT, b as CLIError, c as builder, d as createVirtual, f as docs, g as sponsors, h as router, i as SchemaNameSchema, l as create, m as getSchemaResult, n as GeneratorError, o as VirtualFileSystem, p as generate, r as Result, s as add, t as EMBEDDED_TEMPLATES, u as createBtsCli, w as ProjectCreationError, x as CompatibilityError } from "./src-DIW_voYJ.mjs";
3
3
  export { CLIError, CompatibilityError, DatabaseSetupError, DirectoryConflictError, EMBEDDED_TEMPLATES, GeneratorError, ProjectCreationError, ProjectLauncherSchema, Result, SchemaNameSchema, TEMPLATE_COUNT, UserCancelledError, ValidationError, VirtualFileSystem, add, builder, create, createBtsCli, createVirtual, docs, generate, getSchemaResult, router, sponsors };
@@ -1916,12 +1916,19 @@ function getNodeToolingRequirements(config) {
1916
1916
  if (config.orm === "prisma") addNodeRequirement(requirements, "^20.19.0 || ^22.12.0 || >=24.0.0", "Prisma 7");
1917
1917
  if (config.orm === "mongoose") addNodeRequirement(requirements, ">=20.19.0", "Mongoose 9 and MongoDB 7");
1918
1918
  if (config.examples.includes("ai")) addNodeRequirement(requirements, ">=22.0.0", "AI SDK 7");
1919
+ requirements.push(...getAddonNodeRequirements(config));
1920
+ if (config.webDeploy === "cloudflare" || config.serverDeploy === "cloudflare") addNodeRequirement(requirements, ">=22.0.0", "Wrangler 4");
1921
+ return requirements;
1922
+ }
1923
+ function getAddonNodeRequirements(config) {
1924
+ const requirements = [];
1925
+ if (config.addons.includes("ultracite")) addNodeRequirement(requirements, ">=22.18.0", "the Ultracite CLI");
1919
1926
  if (config.addons.includes("oxlint") || config.addons.includes("ultracite") && config.addonOptions?.ultracite?.linter === "oxlint") addNodeRequirement(requirements, "^20.19.0 || >=22.12.0", "Oxlint and Oxfmt");
1920
1927
  if (config.addons.includes("husky")) addNodeRequirement(requirements, ">=22.22.1", "lint-staged 17");
1921
- if (config.addons.includes("vite-plus")) addNodeRequirement(requirements, "^20.19.0 || ^22.18.0 || >=24.11.0", "Vite+");
1928
+ if (config.addons.includes("vite-plus")) addNodeRequirement(requirements, "^22.18.0 || ^24.11.0 || >=26.0.0", "Vite+");
1922
1929
  if (config.addons.includes("starlight")) addNodeRequirement(requirements, ">=22.12.0", "Starlight's Astro toolchain");
1923
1930
  if (config.addons.includes("wxt")) addNodeRequirement(requirements, ">=22.0.0", "WXT");
1924
- if (config.webDeploy === "cloudflare" || config.serverDeploy === "cloudflare") addNodeRequirement(requirements, ">=22.0.0", "Wrangler 4");
1931
+ if (config.addons.includes("skills")) addNodeRequirement(requirements, ">=22.20.0", "the Skills CLI");
1925
1932
  return requirements;
1926
1933
  }
1927
1934
  function getHostRuntime() {
@@ -1941,7 +1948,10 @@ function getBaselineRequirements(packageManager, hostRuntime) {
1941
1948
  function getLocalVersionRequirements(config, hostRuntime) {
1942
1949
  const requirements = getBaselineRequirements(config.packageManager, hostRuntime);
1943
1950
  if (config.packageManager !== "bun") requirements.push(...getNodeToolingRequirements(config));
1944
- else if (config.runtime === "node") addNodeRequirement(requirements, ">=22.0.0", "the selected Node.js server runtime");
1951
+ else {
1952
+ requirements.push(...getAddonNodeRequirements(config));
1953
+ if (config.runtime === "node") addNodeRequirement(requirements, ">=22.0.0", "the selected Node.js server runtime");
1954
+ }
1945
1955
  return requirements;
1946
1956
  }
1947
1957
  function formatRequirementError(requirement, rawVersion) {
@@ -4448,58 +4458,37 @@ const LINTERS = {
4448
4458
  biome: { label: "Biome (Recommended)" },
4449
4459
  oxlint: { label: "Oxlint + Oxfmt" }
4450
4460
  };
4461
+ const EDITORS = {
4462
+ vscode: { label: "VS Code" },
4463
+ cursor: { label: "Cursor" },
4464
+ devin: { label: "Devin Desktop" },
4465
+ codebuddy: { label: "CodeBuddy" },
4466
+ antigravity: { label: "Antigravity IDE" },
4467
+ bob: { label: "IBM Bob" },
4468
+ kiro: { label: "Kiro" },
4469
+ trae: { label: "Trae" },
4470
+ void: { label: "Void" },
4471
+ zed: { label: "Zed" },
4472
+ universal: { label: "Universal (.vscode/settings.json)" }
4473
+ };
4451
4474
  const AGENTS = {
4452
4475
  universal: { label: "Universal (AGENTS.md — covers all agents)" },
4453
4476
  claude: { label: "Claude Code" },
4454
- codex: { label: "Codex" },
4455
- jules: { label: "Jules" },
4456
4477
  replit: { label: "Replit Agent" },
4457
- devin: { label: "Devin" },
4458
- lovable: { label: "Lovable" },
4459
- zencoder: { label: "Zencoder" },
4460
- ona: { label: "Ona" },
4461
- openclaw: { label: "OpenClaw" },
4462
- continue: { label: "Continue" },
4463
- "snowflake-cortex": { label: "Snowflake Cortex" },
4464
- deepagents: { label: "Deepagents" },
4465
- qoder: { label: "Qoder" },
4466
- "kimi-cli": { label: "Kimi CLI" },
4467
- mcpjam: { label: "MCPJam" },
4468
- mux: { label: "Mux" },
4469
- pi: { label: "Pi" },
4470
- adal: { label: "AdaL" },
4471
- copilot: { label: "GitHub Copilot" },
4472
- cline: { label: "Cline" },
4473
- amp: { label: "AMP" },
4474
4478
  aider: { label: "Aider" },
4475
- "firebase-studio": { label: "Firebase Studio" },
4476
- "open-hands": { label: "OpenHands" },
4477
- gemini: { label: "Gemini" },
4478
- junie: { label: "Junie" },
4479
- augmentcode: { label: "Augment Code" },
4480
- bob: { label: "IBM Bob" },
4481
- "kilo-code": { label: "Kilo Code" },
4482
- goose: { label: "Goose" },
4483
- "roo-code": { label: "Roo Code" },
4484
- warp: { label: "Warp" },
4485
- droid: { label: "Droid" },
4486
- opencode: { label: "OpenCode" },
4487
- crush: { label: "Crush" },
4488
- qwen: { label: "Qwen Code" },
4489
- "amazon-q-cli": { label: "Amazon Q CLI" },
4490
- firebender: { label: "Firebender" },
4491
- "cursor-cli": { label: "Cursor CLI" },
4492
- "mistral-vibe": { label: "Mistral Vibe" },
4493
- vercel: { label: "Vercel Agent" }
4479
+ gemini: { label: "Gemini CLI" }
4494
4480
  };
4495
4481
  const HOOKS = {
4496
4482
  cursor: { label: "Cursor" },
4497
- windsurf: { label: "Windsurf" },
4483
+ devin: { label: "Devin Desktop" },
4498
4484
  codebuddy: { label: "CodeBuddy" },
4499
4485
  claude: { label: "Claude Code" },
4500
- copilot: { label: "GitHub Copilot" }
4486
+ codex: { label: "Codex" },
4487
+ deepagents: { label: "Deep Agents" },
4488
+ copilot: { label: "GitHub Copilot" },
4489
+ grok: { label: "Grok Build" }
4501
4490
  };
4502
- const ULTRACITE_VERSION = "7.11.0";
4491
+ const ULTRACITE_VERSION = "8.0.0";
4503
4492
  const DEFAULT_LINTER = "biome";
4504
4493
  const DEFAULT_EDITORS = ["vscode"];
4505
4494
  const DEFAULT_AGENTS = ["universal"];
@@ -4540,6 +4529,7 @@ function buildUltraciteInitArgs({ packageManager, linter, frameworks, editors, a
4540
4529
  `ultracite@${ULTRACITE_VERSION}`,
4541
4530
  ...ultraciteArgs,
4542
4531
  "--skip-install",
4532
+ "--yes",
4543
4533
  "--quiet"
4544
4534
  ];
4545
4535
  }
@@ -4583,20 +4573,10 @@ async function setupUltracite(config, gitHooks) {
4583
4573
  return navigableMultiselect({
4584
4574
  message: "Which editors do you want to configure (recommended)?",
4585
4575
  required: false,
4586
- options: [
4587
- {
4588
- value: "vscode",
4589
- label: "VSCode / Cursor / Windsurf"
4590
- },
4591
- {
4592
- value: "zed",
4593
- label: "Zed"
4594
- },
4595
- {
4596
- value: "universal",
4597
- label: "Universal (.vscode/settings.json)"
4598
- }
4599
- ]
4576
+ options: Object.entries(EDITORS).map(([key, editor]) => ({
4577
+ value: key,
4578
+ label: editor.label
4579
+ }))
4600
4580
  });
4601
4581
  },
4602
4582
  agents: async () => {
@@ -7264,8 +7244,8 @@ function validateResolvedConfigCompatibility(config) {
7264
7244
  //#endregion
7265
7245
  //#region src/utils/file-formatter.ts
7266
7246
  const formatOptions = {
7267
- experimentalSortPackageJson: true,
7268
- experimentalSortImports: { order: "asc" }
7247
+ sortPackageJson: true,
7248
+ sortImports: { order: "asc" }
7269
7249
  };
7270
7250
  const ignoredDirectories = /* @__PURE__ */ new Set([
7271
7251
  "node_modules",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-better-t-stack",
3
- "version": "3.44.2",
3
+ "version": "3.45.0",
4
4
  "description": "A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations",
5
5
  "keywords": [
6
6
  "better-auth",
@@ -70,8 +70,8 @@
70
70
  "prepublishOnly": "npm run build"
71
71
  },
72
72
  "dependencies": {
73
- "@better-t-stack/template-generator": "^3.44.2",
74
- "@better-t-stack/types": "^3.44.2",
73
+ "@better-t-stack/template-generator": "^3.45.0",
74
+ "@better-t-stack/types": "^3.45.0",
75
75
  "@clack/core": "^1.5.0",
76
76
  "@clack/prompts": "^1.8.0",
77
77
  "@modelcontextprotocol/server": "2.0.0",
@@ -84,7 +84,7 @@
84
84
  "gradient-string": "^3.0.0",
85
85
  "handlebars": "^4.7.9",
86
86
  "jsonc-parser": "^3.3.1",
87
- "oxfmt": "^0.67.0",
87
+ "oxfmt": "^0.72.0",
88
88
  "picocolors": "^1.1.1",
89
89
  "semver": "^7.8.5",
90
90
  "tinyglobby": "^0.2.17",
@@ -95,6 +95,7 @@
95
95
  },
96
96
  "devDependencies": {
97
97
  "@modelcontextprotocol/client": "2.0.0",
98
+ "@playwright/test": "1.63.0",
98
99
  "@types/bun": "^1.4.2",
99
100
  "@types/fs-extra": "^11.0.4",
100
101
  "@types/node": "^26.5.0",