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 +1 -1
- package/dist/index.js +1 -1
- package/dist/{src-CUyDENe-.js → src-DRbWVyGH.js} +43 -20
- package/package.json +1 -1
package/dist/cli.js
CHANGED
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-
|
|
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
|
-
|
|
2043
|
-
label: "
|
|
2044
|
-
hint: "Template using
|
|
2045
|
-
value: "
|
|
2042
|
+
waku: {
|
|
2043
|
+
label: "Waku: Content Collections",
|
|
2044
|
+
hint: "Template using Waku with content collections",
|
|
2045
|
+
value: "waku"
|
|
2046
2046
|
},
|
|
2047
|
-
"react-router
|
|
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
|
-
"
|
|
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@
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
2309
|
-
message: "Choose
|
|
2310
|
-
options: Object.entries(
|
|
2329
|
+
agents: () => autocompleteMultiselect({
|
|
2330
|
+
message: "Choose agents",
|
|
2331
|
+
options: Object.entries(AGENTS).map(([key, agent]) => ({
|
|
2311
2332
|
value: key,
|
|
2312
|
-
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
|
|
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 (
|
|
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.
|
|
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",
|