create-better-t-stack 3.44.3 → 3.46.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-_HMF_A8q.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
@@ -615,16 +615,21 @@ export declare const router: {
615
615
  universal: "universal";
616
616
  bob: "bob";
617
617
  codebuddy: "codebuddy";
618
+ devin: "devin";
618
619
  trae: "trae";
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
  }>>>;
@@ -1130,16 +1142,21 @@ export declare const router: {
1130
1142
  universal: "universal";
1131
1143
  bob: "bob";
1132
1144
  codebuddy: "codebuddy";
1145
+ devin: "devin";
1133
1146
  trae: "trae";
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-_HMF_A8q.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 };
@@ -1898,9 +1898,12 @@ function getNodeToolingRequirements(config) {
1898
1898
  break;
1899
1899
  case "svelte":
1900
1900
  case "tanstack-router":
1901
- case "tanstack-start":
1902
1901
  addNodeRequirement(requirements, "^20.19.0 || >=22.12.0", "Vite 8");
1903
1902
  break;
1903
+ case "tanstack-start":
1904
+ addNodeRequirement(requirements, ">=22.12.0", "TanStack Start 1.169");
1905
+ addNodeRequirement(requirements, "^22.22.2 || ^24.15.0 || >=26.0.0", "TanStack Start test tooling (jsdom 30.1)");
1906
+ break;
1904
1907
  case "next":
1905
1908
  addNodeRequirement(requirements, ">=20.9.0", "Next.js 16");
1906
1909
  break;
@@ -1916,12 +1919,20 @@ function getNodeToolingRequirements(config) {
1916
1919
  if (config.orm === "prisma") addNodeRequirement(requirements, "^20.19.0 || ^22.12.0 || >=24.0.0", "Prisma 7");
1917
1920
  if (config.orm === "mongoose") addNodeRequirement(requirements, ">=20.19.0", "Mongoose 9 and MongoDB 7");
1918
1921
  if (config.examples.includes("ai")) addNodeRequirement(requirements, ">=22.0.0", "AI SDK 7");
1922
+ requirements.push(...getAddonNodeRequirements(config));
1923
+ if (config.webDeploy === "cloudflare" || config.serverDeploy === "cloudflare") addNodeRequirement(requirements, ">=22.0.0", "Wrangler 4");
1924
+ if ((0, types_exports.isAlchemyDeployTarget)(config.webDeploy) || (0, types_exports.isAlchemyDeployTarget)(config.serverDeploy) || config.addons.includes("axiom")) addNodeRequirement(requirements, "^24.11.1 || >=25.1.0", "the Alchemy CLI");
1925
+ return requirements;
1926
+ }
1927
+ function getAddonNodeRequirements(config) {
1928
+ const requirements = [];
1929
+ if (config.addons.includes("ultracite")) addNodeRequirement(requirements, ">=22.18.0", "the Ultracite CLI");
1919
1930
  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
1931
  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+");
1932
+ if (config.addons.includes("vite-plus")) addNodeRequirement(requirements, "^22.18.0 || ^24.11.0 || >=26.0.0", "Vite+");
1922
1933
  if (config.addons.includes("starlight")) addNodeRequirement(requirements, ">=22.12.0", "Starlight's Astro toolchain");
1923
1934
  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");
1935
+ if (config.addons.includes("skills")) addNodeRequirement(requirements, ">=22.20.0", "the Skills CLI");
1925
1936
  return requirements;
1926
1937
  }
1927
1938
  function getHostRuntime() {
@@ -1941,7 +1952,10 @@ function getBaselineRequirements(packageManager, hostRuntime) {
1941
1952
  function getLocalVersionRequirements(config, hostRuntime) {
1942
1953
  const requirements = getBaselineRequirements(config.packageManager, hostRuntime);
1943
1954
  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");
1955
+ else {
1956
+ requirements.push(...getAddonNodeRequirements(config));
1957
+ if (config.runtime === "node") addNodeRequirement(requirements, ">=22.0.0", "the selected Node.js server runtime");
1958
+ }
1945
1959
  return requirements;
1946
1960
  }
1947
1961
  function formatRequirementError(requirement, rawVersion) {
@@ -4448,58 +4462,37 @@ const LINTERS = {
4448
4462
  biome: { label: "Biome (Recommended)" },
4449
4463
  oxlint: { label: "Oxlint + Oxfmt" }
4450
4464
  };
4465
+ const EDITORS = {
4466
+ vscode: { label: "VS Code" },
4467
+ cursor: { label: "Cursor" },
4468
+ devin: { label: "Devin Desktop" },
4469
+ codebuddy: { label: "CodeBuddy" },
4470
+ antigravity: { label: "Antigravity IDE" },
4471
+ bob: { label: "IBM Bob" },
4472
+ kiro: { label: "Kiro" },
4473
+ trae: { label: "Trae" },
4474
+ void: { label: "Void" },
4475
+ zed: { label: "Zed" },
4476
+ universal: { label: "Universal (.vscode/settings.json)" }
4477
+ };
4451
4478
  const AGENTS = {
4452
4479
  universal: { label: "Universal (AGENTS.md — covers all agents)" },
4453
4480
  claude: { label: "Claude Code" },
4454
- codex: { label: "Codex" },
4455
- jules: { label: "Jules" },
4456
4481
  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
4482
  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" }
4483
+ gemini: { label: "Gemini CLI" }
4494
4484
  };
4495
4485
  const HOOKS = {
4496
4486
  cursor: { label: "Cursor" },
4497
- windsurf: { label: "Windsurf" },
4487
+ devin: { label: "Devin Desktop" },
4498
4488
  codebuddy: { label: "CodeBuddy" },
4499
4489
  claude: { label: "Claude Code" },
4500
- copilot: { label: "GitHub Copilot" }
4490
+ codex: { label: "Codex" },
4491
+ deepagents: { label: "Deep Agents" },
4492
+ copilot: { label: "GitHub Copilot" },
4493
+ grok: { label: "Grok Build" }
4501
4494
  };
4502
- const ULTRACITE_VERSION = "7.11.0";
4495
+ const ULTRACITE_VERSION = "8.0.0";
4503
4496
  const DEFAULT_LINTER = "biome";
4504
4497
  const DEFAULT_EDITORS = ["vscode"];
4505
4498
  const DEFAULT_AGENTS = ["universal"];
@@ -4540,6 +4533,7 @@ function buildUltraciteInitArgs({ packageManager, linter, frameworks, editors, a
4540
4533
  `ultracite@${ULTRACITE_VERSION}`,
4541
4534
  ...ultraciteArgs,
4542
4535
  "--skip-install",
4536
+ "--yes",
4543
4537
  "--quiet"
4544
4538
  ];
4545
4539
  }
@@ -4583,20 +4577,10 @@ async function setupUltracite(config, gitHooks) {
4583
4577
  return navigableMultiselect({
4584
4578
  message: "Which editors do you want to configure (recommended)?",
4585
4579
  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
- ]
4580
+ options: Object.entries(EDITORS).map(([key, editor]) => ({
4581
+ value: key,
4582
+ label: editor.label
4583
+ }))
4600
4584
  });
4601
4585
  },
4602
4586
  agents: async () => {
@@ -7264,8 +7248,8 @@ function validateResolvedConfigCompatibility(config) {
7264
7248
  //#endregion
7265
7249
  //#region src/utils/file-formatter.ts
7266
7250
  const formatOptions = {
7267
- experimentalSortPackageJson: true,
7268
- experimentalSortImports: { order: "asc" }
7251
+ sortPackageJson: true,
7252
+ sortImports: { order: "asc" }
7269
7253
  };
7270
7254
  const ignoredDirectories = /* @__PURE__ */ new Set([
7271
7255
  "node_modules",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-better-t-stack",
3
- "version": "3.44.3",
3
+ "version": "3.46.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,12 +70,12 @@
70
70
  "prepublishOnly": "npm run build"
71
71
  },
72
72
  "dependencies": {
73
- "@better-t-stack/template-generator": "^3.44.3",
74
- "@better-t-stack/types": "^3.44.3",
73
+ "@better-t-stack/template-generator": "^3.46.0",
74
+ "@better-t-stack/types": "^3.46.0",
75
75
  "@clack/core": "^1.5.0",
76
76
  "@clack/prompts": "^1.8.0",
77
77
  "@modelcontextprotocol/server": "2.0.0",
78
- "@orpc/server": "^1.15.0",
78
+ "@orpc/server": "^1.15.6",
79
79
  "better-result": "^3.0.1",
80
80
  "consola": "^3.4.2",
81
81
  "env-paths": "^4.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",