create-better-fullstack 1.7.1 → 1.8.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/README.md CHANGED
@@ -32,7 +32,7 @@ Configure your stack visually — pick every option from a UI, preview your choi
32
32
  ## Features
33
33
 
34
34
  - **425 options** — frontend, backend, database, auth, payments, AI, DevOps, and more
35
- - **5 ecosystems** — TypeScript, Rust, Python, Go, Java
35
+ - **7 ecosystems** — TypeScript, React Native, Rust, Python, Go, Java, Elixir
36
36
  - **Visual builder** — configure your stack in the browser
37
37
  - **Wired for you** — every picked integration is preconfigured and working out of the box
38
38
 
@@ -42,7 +42,7 @@ Configure your stack visually — pick every option from a UI, preview your choi
42
42
  --yes # Accept all defaults
43
43
  --yolo # Scaffold a random stack — good for exploring
44
44
  --template <name> # Use a preset (t3, mern, pern, uniwind)
45
- --ecosystem <lang> # Start in typescript, rust, python, go, or java mode
45
+ --ecosystem <lang> # Start in typescript, react-native, rust, python, go, java, or elixir mode
46
46
  --version-channel # Dependency channel: stable, latest, beta
47
47
  --no-git # Skip git initialization
48
48
  --no-install # Skip dependency installation
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import "./bts-config-YcroedMK.mjs";
3
+ import { i as setupLefthook, n as setupBiome, r as setupHusky, t as setupAddons } from "./addons-setup-CUmA_nra.mjs";
4
+
5
+ export { setupAddons };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { s as dependencyVersionMap, t as readBtsConfig } from "./bts-config-bOXo9tbL.mjs";
2
+ import { s as dependencyVersionMap, t as readBtsConfig } from "./bts-config-YcroedMK.mjs";
3
3
  import { autocompleteMultiselect, cancel, group, isCancel, log, multiselect, select, spinner } from "@clack/prompts";
4
4
  import pc from "picocolors";
5
5
  import fs from "fs-extra";
@@ -377,7 +377,7 @@ function uniqueValues$1(values) {
377
377
  return Array.from(new Set(values));
378
378
  }
379
379
  function hasReactBasedFrontend$1(frontend) {
380
- return frontend.includes("react-router") || frontend.includes("react-vite") || frontend.includes("tanstack-router") || frontend.includes("tanstack-start") || frontend.includes("next");
380
+ return frontend.includes("react-router") || frontend.includes("react-vite") || frontend.includes("tanstack-router") || frontend.includes("tanstack-start") || frontend.includes("next") || frontend.includes("vinext");
381
381
  }
382
382
  function hasNativeFrontend$1(frontend) {
383
383
  return frontend.includes("native-bare") || frontend.includes("native-uniwind") || frontend.includes("native-unistyles");
@@ -409,7 +409,7 @@ function getRecommendedMcpServers(config) {
409
409
  name: "shadcn",
410
410
  target: "npx -y shadcn@latest mcp"
411
411
  });
412
- if (config.frontend.includes("next")) servers.push({
412
+ if (config.frontend.includes("next") || config.frontend.includes("vinext")) servers.push({
413
413
  key: "next-devtools",
414
414
  label: "Next Devtools",
415
415
  name: "next-devtools",
@@ -1331,11 +1331,11 @@ async function setupWxt(config) {
1331
1331
  async function setupAddons(config) {
1332
1332
  const warnings = [];
1333
1333
  const { addons, frontend, projectDir } = config;
1334
- const hasReactWebFrontend = frontend.includes("react-router") || frontend.includes("react-vite") || frontend.includes("tanstack-router") || frontend.includes("next");
1334
+ const hasReactWebFrontend = frontend.includes("react-router") || frontend.includes("react-vite") || frontend.includes("tanstack-router") || frontend.includes("next") || frontend.includes("vinext");
1335
1335
  const hasNuxtFrontend = frontend.includes("nuxt");
1336
1336
  const hasSvelteFrontend = frontend.includes("svelte");
1337
1337
  const hasSolidFrontend = frontend.includes("solid");
1338
- const hasNextFrontend = frontend.includes("next");
1338
+ const hasNextFrontend = frontend.includes("next") || frontend.includes("vinext");
1339
1339
  if (addons.includes("tauri") && (hasReactWebFrontend || hasNuxtFrontend || hasSvelteFrontend || hasSolidFrontend || hasNextFrontend)) await /* @__PURE__ */ setupTauri(config);
1340
1340
  const hasUltracite = addons.includes("ultracite");
1341
1341
  const hasBiome = addons.includes("biome");
@@ -47,6 +47,7 @@ const DEFAULT_UI_LIBRARY_BY_FRONTEND = {
47
47
  "react-vite": "shadcn-ui",
48
48
  "tanstack-start": "shadcn-ui",
49
49
  next: "shadcn-ui",
50
+ vinext: "shadcn-ui",
50
51
  nuxt: "daisyui",
51
52
  svelte: "daisyui",
52
53
  solid: "daisyui",
@@ -109,6 +110,13 @@ async function writeBtsConfig(projectConfig) {
109
110
  observability: projectConfig.observability,
110
111
  featureFlags: projectConfig.featureFlags,
111
112
  analytics: projectConfig.analytics,
113
+ mobileNavigation: projectConfig.mobileNavigation,
114
+ mobileUI: projectConfig.mobileUI,
115
+ mobileStorage: projectConfig.mobileStorage,
116
+ mobileTesting: projectConfig.mobileTesting,
117
+ mobilePush: projectConfig.mobilePush,
118
+ mobileOTA: projectConfig.mobileOTA,
119
+ mobileDeepLinking: projectConfig.mobileDeepLinking,
112
120
  cms: projectConfig.cms,
113
121
  caching: projectConfig.caching,
114
122
  i18n: projectConfig.i18n,
@@ -145,6 +153,21 @@ async function writeBtsConfig(projectConfig) {
145
153
  javaAuth: projectConfig.javaAuth,
146
154
  javaLibraries: projectConfig.javaLibraries,
147
155
  javaTestingLibraries: projectConfig.javaTestingLibraries,
156
+ elixirWebFramework: projectConfig.elixirWebFramework,
157
+ elixirOrm: projectConfig.elixirOrm,
158
+ elixirAuth: projectConfig.elixirAuth,
159
+ elixirApi: projectConfig.elixirApi,
160
+ elixirRealtime: projectConfig.elixirRealtime,
161
+ elixirJobs: projectConfig.elixirJobs,
162
+ elixirValidation: projectConfig.elixirValidation,
163
+ elixirHttp: projectConfig.elixirHttp,
164
+ elixirJson: projectConfig.elixirJson,
165
+ elixirEmail: projectConfig.elixirEmail,
166
+ elixirCaching: projectConfig.elixirCaching,
167
+ elixirObservability: projectConfig.elixirObservability,
168
+ elixirTesting: projectConfig.elixirTesting,
169
+ elixirQuality: projectConfig.elixirQuality,
170
+ elixirDeploy: projectConfig.elixirDeploy,
148
171
  aiDocs: projectConfig.aiDocs
149
172
  };
150
173
  const baseContent = {
@@ -184,6 +207,13 @@ async function writeBtsConfig(projectConfig) {
184
207
  observability: btsConfig.observability,
185
208
  featureFlags: btsConfig.featureFlags,
186
209
  analytics: btsConfig.analytics,
210
+ mobileNavigation: btsConfig.mobileNavigation,
211
+ mobileUI: btsConfig.mobileUI,
212
+ mobileStorage: btsConfig.mobileStorage,
213
+ mobileTesting: btsConfig.mobileTesting,
214
+ mobilePush: btsConfig.mobilePush,
215
+ mobileOTA: btsConfig.mobileOTA,
216
+ mobileDeepLinking: btsConfig.mobileDeepLinking,
187
217
  cms: btsConfig.cms,
188
218
  caching: btsConfig.caching,
189
219
  i18n: btsConfig.i18n,
@@ -220,6 +250,21 @@ async function writeBtsConfig(projectConfig) {
220
250
  javaAuth: btsConfig.javaAuth,
221
251
  javaLibraries: btsConfig.javaLibraries,
222
252
  javaTestingLibraries: btsConfig.javaTestingLibraries,
253
+ elixirWebFramework: btsConfig.elixirWebFramework,
254
+ elixirOrm: btsConfig.elixirOrm,
255
+ elixirAuth: btsConfig.elixirAuth,
256
+ elixirApi: btsConfig.elixirApi,
257
+ elixirRealtime: btsConfig.elixirRealtime,
258
+ elixirJobs: btsConfig.elixirJobs,
259
+ elixirValidation: btsConfig.elixirValidation,
260
+ elixirHttp: btsConfig.elixirHttp,
261
+ elixirJson: btsConfig.elixirJson,
262
+ elixirEmail: btsConfig.elixirEmail,
263
+ elixirCaching: btsConfig.elixirCaching,
264
+ elixirObservability: btsConfig.elixirObservability,
265
+ elixirTesting: btsConfig.elixirTesting,
266
+ elixirQuality: btsConfig.elixirQuality,
267
+ elixirDeploy: btsConfig.elixirDeploy,
223
268
  aiDocs: btsConfig.aiDocs
224
269
  };
225
270
  let configContent = JSON.stringify(baseContent);
package/dist/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  //#region src/cli.ts
3
- if (process.argv[2] === "mcp" && process.argv.length === 3) import("./mcp-BxEilSGM.mjs").then((m) => m.startMcpServer());
3
+ if (process.argv[2] === "mcp" && process.argv.length === 3) import("./mcp-DoPutOIG.mjs").then((m) => m.startMcpServer());
4
4
  else import("./index.mjs").then((m) => m.createBtsCli().run());
5
5
 
6
6
  //#endregion