create-better-fullstack 2.1.8 → 2.2.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.
Files changed (26) hide show
  1. package/dist/{add-handler-ztNjzoMN.mjs → add-handler-CE3XIs3y.mjs} +8 -8
  2. package/dist/{addons-setup-LaAj43NP.mjs → addons-setup-DR924M7b.mjs} +1 -1
  3. package/dist/addons-setup-Du2VSv8V.mjs +7 -0
  4. package/dist/{analytics-DVltG11u.mjs → analytics-BXlOG6u6.mjs} +1 -1
  5. package/dist/{bts-config-DQVWvPDs.mjs → bts-config-B_HhcMXL.mjs} +30 -0
  6. package/dist/cli.mjs +2 -2
  7. package/dist/{config-processing-D9-F2Us9.mjs → config-processing-DJisMeW-.mjs} +17 -1
  8. package/dist/{doctor-a4ca3SMd.mjs → doctor-Cc7sLuow.mjs} +2 -2
  9. package/dist/{file-formatter-gvmrpd-g.mjs → file-formatter-BgbfpYf4.mjs} +442 -22
  10. package/dist/{gen-CCClL7Ve.mjs → gen-BZ0QCxCC.mjs} +1 -1
  11. package/dist/{generated-checks-BV9jol5h.mjs → generated-checks-CbioGjCh.mjs} +1 -1
  12. package/dist/index.d.mts +461 -183
  13. package/dist/index.mjs +20 -9
  14. package/dist/{install-dependencies-RoUyaE8o.mjs → install-dependencies-D__bmW4k.mjs} +86 -18
  15. package/dist/{mcp-492OkjcS.mjs → mcp-DNKAo8nO.mjs} +5 -5
  16. package/dist/mcp-entry.mjs +37 -225
  17. package/dist/{registry-DSf2CEaU.mjs → registry-Cm3D45oT.mjs} +1 -1
  18. package/dist/run-C_S7ujfY.mjs +15 -0
  19. package/dist/{run-T6g1jkfy.mjs → run-DmN7QRt5.mjs} +1155 -292
  20. package/dist/scaffold-manifest-ByKtMhTd.mjs +4 -0
  21. package/dist/{scaffold-manifest-Dyi0voqE.mjs → scaffold-manifest-CNFz-lmH.mjs} +34 -5
  22. package/dist/{update-DJ8CI5KW.mjs → update-B270pWHc.mjs} +182 -25
  23. package/package.json +6 -6
  24. package/dist/addons-setup-DnLjAzTw.mjs +0 -7
  25. package/dist/run-CD8f7PHh.mjs +0 -15
  26. package/dist/scaffold-manifest-DGRyepdb.mjs +0 -4
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
- import { a as updateBtsConfig, r as readBtsConfig, v as getDefaultConfig } from "./bts-config-DQVWvPDs.mjs";
2
+ import { a as updateBtsConfig, r as readBtsConfig, v as getDefaultConfig } from "./bts-config-B_HhcMXL.mjs";
3
3
  import { t as renderTitle } from "./render-title-zvyKC1ej.mjs";
4
4
  import { c as isSilent, l as runWithContextAsync, n as UserCancelledError, t as CLIError } from "./errors-ns_o2OKg.mjs";
5
5
  import "./prompt-environment-BR0Kkw2W.mjs";
6
- import { i as trackEvent, r as maybeShowTelemetryNotice } from "./analytics-DVltG11u.mjs";
7
- import "./file-formatter-gvmrpd-g.mjs";
8
- import { c as applyDependencyVersionChannel, t as installDependencies, u as getAddonsToAdd } from "./install-dependencies-RoUyaE8o.mjs";
9
- import "./scaffold-manifest-Dyi0voqE.mjs";
10
- import { t as setupAddons } from "./addons-setup-LaAj43NP.mjs";
11
- import { o as applyStackUpdate, u as planStackUpdate } from "./mcp-entry.mjs";
6
+ import { i as trackEvent, r as maybeShowTelemetryNotice } from "./analytics-BXlOG6u6.mjs";
7
+ import "./file-formatter-BgbfpYf4.mjs";
8
+ import { c as applyDependencyVersionChannel, t as installDependencies, u as getAddonsToAdd } from "./install-dependencies-D__bmW4k.mjs";
9
+ import "./scaffold-manifest-CNFz-lmH.mjs";
10
+ import { t as setupAddons } from "./addons-setup-DR924M7b.mjs";
11
+ import { p as planStackUpdate, s as applyStackUpdate } from "./mcp-entry.mjs";
12
12
  import { intro, log, outro } from "@clack/prompts";
13
13
  import pc from "picocolors";
14
14
  import fs from "fs-extra";
@@ -211,7 +211,7 @@ async function addHandlerInternal(input) {
211
211
  const existingAddons = btsConfig.addons || [];
212
212
  let addonsToAdd = [];
213
213
  if (input.addons && input.addons.length > 0) addonsToAdd = input.addons.filter((addon) => addon !== "none" && !existingAddons.includes(addon));
214
- else addonsToAdd = (await getAddonsToAdd(btsConfig.frontend || [], existingAddons, btsConfig.auth)).filter((addon) => addon !== "none");
214
+ else addonsToAdd = (await getAddonsToAdd(btsConfig.frontend || [], existingAddons, btsConfig.auth, btsConfig.backend, btsConfig.runtime, btsConfig.api ?? "none")).filter((addon) => addon !== "none");
215
215
  if (addonsToAdd.length === 0) {
216
216
  if (!isSilent()) {
217
217
  log.info(pc.dim("No new addons selected."));
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { r as readBtsConfig } from "./bts-config-DQVWvPDs.mjs";
2
+ import { r as readBtsConfig } from "./bts-config-B_HhcMXL.mjs";
3
3
  import { c as isSilent, r as exitCancelled } from "./errors-ns_o2OKg.mjs";
4
4
  import { t as canPromptInteractively } from "./prompt-environment-BR0Kkw2W.mjs";
5
5
  import { autocompleteMultiselect, group, isCancel, log, multiselect, select, spinner } from "@clack/prompts";
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import "./bts-config-B_HhcMXL.mjs";
3
+ import "./errors-ns_o2OKg.mjs";
4
+ import "./prompt-environment-BR0Kkw2W.mjs";
5
+ import { t as setupAddons } from "./addons-setup-DR924M7b.mjs";
6
+
7
+ export { setupAddons };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { m as getLatestCLIVersion } from "./bts-config-DQVWvPDs.mjs";
2
+ import { m as getLatestCLIVersion } from "./bts-config-B_HhcMXL.mjs";
3
3
  import { t as canPromptInteractively } from "./prompt-environment-BR0Kkw2W.mjs";
4
4
  import { log } from "@clack/prompts";
5
5
  import pc from "picocolors";
@@ -52,6 +52,8 @@ const DEFAULT_UI_LIBRARY_BY_FRONTEND = {
52
52
  "tanstack-router": "shadcn-ui",
53
53
  "react-router": "shadcn-ui",
54
54
  "react-vite": "shadcn-ui",
55
+ "vanilla-vite": "none",
56
+ vue: "none",
55
57
  "tanstack-start": "shadcn-ui",
56
58
  next: "shadcn-ui",
57
59
  vinext: "shadcn-ui",
@@ -313,6 +315,12 @@ function normalizeGraphConfigForPersistence(projectConfig, stackParts) {
313
315
  normalized.goCaching = "none";
314
316
  normalized.goConfig = "none";
315
317
  normalized.goObservability = "none";
318
+ normalized.goValidation = "none";
319
+ normalized.goQuality = "none";
320
+ normalized.goMigrations = "none";
321
+ normalized.goTemplating = "none";
322
+ normalized.goProtoTooling = "none";
323
+ normalized.goDI = "none";
316
324
  }
317
325
  if (selectedEcosystems.has("go") && projectConfig.auth === "go-better-auth" && legacyConfig.auth === "none") normalized.auth = projectConfig.auth;
318
326
  if (!selectedEcosystems.has("java")) {
@@ -536,6 +544,12 @@ function buildBtsConfigForPersistence(projectConfig, metadata = {}) {
536
544
  goCaching: persistedConfig.goCaching,
537
545
  goConfig: persistedConfig.goConfig,
538
546
  goObservability: persistedConfig.goObservability,
547
+ goValidation: persistedConfig.goValidation,
548
+ goQuality: persistedConfig.goQuality,
549
+ goMigrations: persistedConfig.goMigrations,
550
+ goTemplating: persistedConfig.goTemplating,
551
+ goProtoTooling: persistedConfig.goProtoTooling,
552
+ goDI: persistedConfig.goDI,
539
553
  javaLanguage: persistedConfig.javaLanguage,
540
554
  javaWebFramework: persistedConfig.javaWebFramework,
541
555
  javaBuildTool: persistedConfig.javaBuildTool,
@@ -570,6 +584,11 @@ function buildBtsConfigForPersistence(projectConfig, metadata = {}) {
570
584
  elixirObservability: persistedConfig.elixirObservability,
571
585
  elixirTesting: persistedConfig.elixirTesting,
572
586
  elixirQuality: persistedConfig.elixirQuality,
587
+ elixirI18n: persistedConfig.elixirI18n,
588
+ elixirHttpServer: persistedConfig.elixirHttpServer,
589
+ elixirApplicationFramework: persistedConfig.elixirApplicationFramework,
590
+ elixirDocumentation: persistedConfig.elixirDocumentation,
591
+ elixirClustering: persistedConfig.elixirClustering,
573
592
  elixirDeploy: persistedConfig.elixirDeploy,
574
593
  elixirLibraries: persistedConfig.elixirLibraries,
575
594
  aiDocs: persistedConfig.aiDocs,
@@ -693,6 +712,12 @@ async function writeBtsConfig(projectConfig, metadata = {}) {
693
712
  goCaching: btsConfig.goCaching,
694
713
  goConfig: btsConfig.goConfig,
695
714
  goObservability: btsConfig.goObservability,
715
+ goValidation: btsConfig.goValidation,
716
+ goQuality: btsConfig.goQuality,
717
+ goMigrations: btsConfig.goMigrations,
718
+ goTemplating: btsConfig.goTemplating,
719
+ goProtoTooling: btsConfig.goProtoTooling,
720
+ goDI: btsConfig.goDI,
696
721
  javaLanguage: btsConfig.javaLanguage,
697
722
  javaWebFramework: btsConfig.javaWebFramework,
698
723
  javaBuildTool: btsConfig.javaBuildTool,
@@ -727,6 +752,11 @@ async function writeBtsConfig(projectConfig, metadata = {}) {
727
752
  elixirObservability: btsConfig.elixirObservability,
728
753
  elixirTesting: btsConfig.elixirTesting,
729
754
  elixirQuality: btsConfig.elixirQuality,
755
+ elixirI18n: btsConfig.elixirI18n,
756
+ elixirHttpServer: btsConfig.elixirHttpServer,
757
+ elixirApplicationFramework: btsConfig.elixirApplicationFramework,
758
+ elixirDocumentation: btsConfig.elixirDocumentation,
759
+ elixirClustering: btsConfig.elixirClustering,
730
760
  elixirDeploy: btsConfig.elixirDeploy,
731
761
  elixirLibraries: btsConfig.elixirLibraries,
732
762
  aiDocs: btsConfig.aiDocs,
package/dist/cli.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  //#region src/cli.ts
3
- if (process.argv[2] === "mcp" && process.argv.length === 3) import("./mcp-492OkjcS.mjs").then((m) => m.startMcpServer());
4
- else import("./run-CD8f7PHh.mjs").then((m) => m.createBtsCli().run());
3
+ if (process.argv[2] === "mcp" && process.argv.length === 3) import("./mcp-DNKAo8nO.mjs").then((m) => m.startMcpServer());
4
+ else import("./run-C_S7ujfY.mjs").then((m) => m.createBtsCli().run());
5
5
 
6
6
  //#endregion
7
7
  export { };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { b as types_exports } from "./bts-config-DQVWvPDs.mjs";
2
+ import { b as types_exports } from "./bts-config-B_HhcMXL.mjs";
3
3
  import path from "node:path";
4
4
  import { cliInputToProjectConfigPartial } from "@better-fullstack/types/stack-translation";
5
5
 
@@ -177,6 +177,11 @@ function appendGraphExtraFlags(flags, config) {
177
177
  appendChangedGraphStringFlag(flags, config, "observability", "elixir", "elixir-observability", config.elixirObservability, "telemetry");
178
178
  appendChangedGraphStringFlag(flags, config, "testing", "elixir", "elixir-testing", config.elixirTesting, "ex_unit");
179
179
  appendChangedOwnedGraphStringFlag(flags, config, "backend", "codeQuality", "elixir", "elixir-quality", config.elixirQuality, "credo");
180
+ appendChangedGraphStringFlag(flags, config, "i18n", "elixir", "elixir-i18n", config.elixirI18n, "none");
181
+ appendChangedGraphStringFlag(flags, config, "runtime", "elixir", "elixir-http-server", config.elixirHttpServer, "cowboy");
182
+ appendChangedGraphStringFlag(flags, config, "libraries", "elixir", "elixir-application-framework", config.elixirApplicationFramework, "none");
183
+ appendChangedGraphStringFlag(flags, config, "documentation", "elixir", "elixir-documentation", config.elixirDocumentation, "none");
184
+ appendChangedGraphStringFlag(flags, config, "config", "elixir", "elixir-clustering", config.elixirClustering, "none");
180
185
  appendChangedGraphStringFlag(flags, config, "deploy", "elixir", "elixir-deploy", config.elixirDeploy, "none");
181
186
  }
182
187
  }
@@ -321,6 +326,12 @@ function getGoFlags(config) {
321
326
  flags.push(`--go-caching ${config.goCaching}`);
322
327
  flags.push(`--go-config ${config.goConfig}`);
323
328
  flags.push(`--go-observability ${config.goObservability}`);
329
+ flags.push(`--go-validation ${config.goValidation ?? "none"}`);
330
+ flags.push(`--go-quality ${config.goQuality ?? "none"}`);
331
+ flags.push(`--go-migrations ${config.goMigrations ?? "none"}`);
332
+ flags.push(`--go-templating ${config.goTemplating ?? "none"}`);
333
+ flags.push(`--go-proto-tooling ${config.goProtoTooling ?? "none"}`);
334
+ flags.push(`--go-di ${config.goDI ?? "none"}`);
324
335
  flags.push(`--auth ${config.auth}`);
325
336
  appendSharedNonTypeScriptFlags(flags, config);
326
337
  appendCommonFlags(flags, config);
@@ -373,6 +384,11 @@ function getElixirFlags(config) {
373
384
  flags.push(`--elixir-observability ${config.elixirObservability}`);
374
385
  flags.push(`--elixir-testing ${config.elixirTesting}`);
375
386
  flags.push(`--elixir-quality ${config.elixirQuality}`);
387
+ flags.push(`--elixir-i18n ${config.elixirI18n}`);
388
+ flags.push(`--elixir-http-server ${config.elixirHttpServer}`);
389
+ flags.push(`--elixir-application-framework ${config.elixirApplicationFramework}`);
390
+ flags.push(`--elixir-documentation ${config.elixirDocumentation}`);
391
+ flags.push(`--elixir-clustering ${config.elixirClustering}`);
376
392
  flags.push(`--elixir-deploy ${config.elixirDeploy}`);
377
393
  flags.push(formatArrayFlag("elixir-libraries", config.elixirLibraries));
378
394
  appendCommonFlags(flags, config);
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { r as readBtsConfig } from "./bts-config-DQVWvPDs.mjs";
2
+ import { r as readBtsConfig } from "./bts-config-B_HhcMXL.mjs";
3
3
  import { t as renderTitle } from "./render-title-zvyKC1ej.mjs";
4
4
  import { a as handleError } from "./errors-ns_o2OKg.mjs";
5
- import { t as runGeneratedChecks } from "./generated-checks-BV9jol5h.mjs";
5
+ import { t as runGeneratedChecks } from "./generated-checks-CbioGjCh.mjs";
6
6
  import { intro, log, spinner } from "@clack/prompts";
7
7
  import pc from "picocolors";
8
8
  import fs from "fs-extra";