create-better-t-stack 3.2.9 → 3.2.11

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.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as createBtsCli } from "./src-CUyDENe-.js";
2
+ import { n as createBtsCli } from "./src-DRbWVyGH.js";
3
3
 
4
4
  //#region src/cli.ts
5
5
  createBtsCli().run();
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import { a as router, i as init, n as createBtsCli, o as sponsors, r as docs, t as builder } from "./src-CUyDENe-.js";
2
+ import { a as router, i as init, n as createBtsCli, o as sponsors, r as docs, t as builder } from "./src-DRbWVyGH.js";
3
3
 
4
4
  export { builder, createBtsCli, docs, init, router, sponsors };
@@ -2039,17 +2039,22 @@ const TEMPLATES = {
2039
2039
  hint: "Recommended template with MDX support",
2040
2040
  value: "+next+fuma-docs-mdx"
2041
2041
  },
2042
- "next-content-collections": {
2043
- label: "Next.js: Content Collections",
2044
- hint: "Template using Next.js content collections",
2045
- value: "+next+content-collections"
2042
+ waku: {
2043
+ label: "Waku: Content Collections",
2044
+ hint: "Template using Waku with content collections",
2045
+ value: "waku"
2046
2046
  },
2047
- "react-router-mdx-remote": {
2047
+ "react-router": {
2048
2048
  label: "React Router: MDX Remote",
2049
2049
  hint: "Template for React Router with MDX remote",
2050
2050
  value: "react-router"
2051
2051
  },
2052
- "tanstack-start-mdx-remote": {
2052
+ "react-router-spa": {
2053
+ label: "React Router: SPA",
2054
+ hint: "Template for React Router SPA",
2055
+ value: "react-router-spa"
2056
+ },
2057
+ "tanstack-start": {
2053
2058
  label: "Tanstack Start: MDX Remote",
2054
2059
  hint: "Template for Tanstack Start with MDX remote",
2055
2060
  value: "tanstack-start"
@@ -2069,17 +2074,16 @@ async function setupFumadocs(config) {
2069
2074
  initialValue: "next-mdx"
2070
2075
  });
2071
2076
  if (isCancel(template)) return exitCancelled("Operation cancelled");
2072
- const fumadocsInitCommand = getPackageExecutionCommand(packageManager, `create-fumadocs-app@latest fumadocs --template ${TEMPLATES[template].value} --src --no-install --pm ${packageManager} --no-eslint --no-git`);
2073
- const s = spinner();
2074
- s.start("Setting up Fumadocs...");
2077
+ const fumadocsInitCommand = getPackageExecutionCommand(packageManager, `create-fumadocs-app@16.0.4 fumadocs --template ${TEMPLATES[template].value} --src --pm ${packageManager} --no-git`);
2075
2078
  const appsDir = path.join(projectDir, "apps");
2076
2079
  await fs.ensureDir(appsDir);
2080
+ const s = spinner();
2081
+ s.start("Setting up Fumadocs...");
2077
2082
  await execa(fumadocsInitCommand, {
2078
2083
  cwd: appsDir,
2079
2084
  env: { CI: "true" },
2080
2085
  shell: true
2081
2086
  });
2082
- s.stop("Fumadocs setup complete!");
2083
2087
  const fumadocsDir = path.join(projectDir, "apps", "fumadocs");
2084
2088
  const packageJsonPath = path.join(fumadocsDir, "package.json");
2085
2089
  if (await fs.pathExists(packageJsonPath)) {
@@ -2088,7 +2092,7 @@ async function setupFumadocs(config) {
2088
2092
  if (packageJson.scripts?.dev) packageJson.scripts.dev = `${packageJson.scripts.dev} --port=4000`;
2089
2093
  await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
2090
2094
  }
2091
- log.success("Fumadocs setup successfully!");
2095
+ s.stop("Fumadocs setup complete!");
2092
2096
  } catch (error) {
2093
2097
  log.error(pc.red("Failed to set up Fumadocs"));
2094
2098
  if (error instanceof Error) consola.error(pc.red(error.message));
@@ -2272,7 +2276,7 @@ const EDITORS = {
2272
2276
  vscode: { label: "VSCode / Cursor / Windsurf" },
2273
2277
  zed: { label: "Zed" }
2274
2278
  };
2275
- const RULES = {
2279
+ const AGENTS = {
2276
2280
  "vscode-copilot": { label: "VS Code Copilot" },
2277
2281
  cursor: { label: "Cursor" },
2278
2282
  windsurf: { label: "Windsurf" },
@@ -2289,10 +2293,27 @@ const RULES = {
2289
2293
  junie: { label: "Junie" },
2290
2294
  augmentcode: { label: "AugmentCode" },
2291
2295
  "kilo-code": { label: "Kilo Code" },
2292
- goose: { label: "Goose" }
2296
+ goose: { label: "Goose" },
2297
+ "roo-code": { label: "Roo Code" }
2293
2298
  };
2299
+ function getFrameworksFromFrontend(frontend) {
2300
+ const frameworkMap = {
2301
+ "tanstack-router": "react",
2302
+ "react-router": "react",
2303
+ "tanstack-start": "react",
2304
+ next: "next",
2305
+ nuxt: "vue",
2306
+ "native-nativewind": "react",
2307
+ "native-unistyles": "react",
2308
+ svelte: "svelte",
2309
+ solid: "solid"
2310
+ };
2311
+ const frameworks = /* @__PURE__ */ new Set();
2312
+ for (const f of frontend) if (f !== "none" && frameworkMap[f]) frameworks.add(frameworkMap[f]);
2313
+ return Array.from(frameworks);
2314
+ }
2294
2315
  async function setupUltracite(config, hasHusky) {
2295
- const { packageManager, projectDir } = config;
2316
+ const { packageManager, projectDir, frontend } = config;
2296
2317
  try {
2297
2318
  log.info("Setting up Ultracite...");
2298
2319
  await setupBiome(projectDir);
@@ -2305,11 +2326,11 @@ async function setupUltracite(config, hasHusky) {
2305
2326
  })),
2306
2327
  required: true
2307
2328
  }),
2308
- rules: () => autocompleteMultiselect({
2309
- message: "Choose rules",
2310
- options: Object.entries(RULES).map(([key, rule]) => ({
2329
+ agents: () => autocompleteMultiselect({
2330
+ message: "Choose agents",
2331
+ options: Object.entries(AGENTS).map(([key, agent]) => ({
2311
2332
  value: key,
2312
- label: rule.label
2333
+ label: agent.label
2313
2334
  })),
2314
2335
  required: true
2315
2336
  })
@@ -2317,14 +2338,16 @@ async function setupUltracite(config, hasHusky) {
2317
2338
  exitCancelled("Operation cancelled");
2318
2339
  } });
2319
2340
  const editors = result.editors;
2320
- const rules = result.rules;
2341
+ const agents = result.agents;
2342
+ const frameworks = getFrameworksFromFrontend(frontend);
2321
2343
  const ultraciteArgs = [
2322
2344
  "init",
2323
2345
  "--pm",
2324
2346
  packageManager
2325
2347
  ];
2348
+ if (frameworks.length > 0) ultraciteArgs.push("--frameworks", ...frameworks);
2326
2349
  if (editors.length > 0) ultraciteArgs.push("--editors", ...editors);
2327
- if (rules.length > 0) ultraciteArgs.push("--rules", ...rules);
2350
+ if (agents.length > 0) ultraciteArgs.push("--agents", ...agents);
2328
2351
  if (hasHusky) ultraciteArgs.push("--integrations", "husky", "lint-staged");
2329
2352
  const ultraciteInitCommand = getPackageExecutionCommand(packageManager, `ultracite@latest ${ultraciteArgs.join(" ")} --skip-install`);
2330
2353
  const s = spinner();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-better-t-stack",
3
- "version": "3.2.9",
3
+ "version": "3.2.11",
4
4
  "description": "A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations",
5
5
  "type": "module",
6
6
  "license": "MIT",