create-kofi-stack 1.2.9 → 1.2.10
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/index.js +43 -17
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { Command } from "commander";
|
|
5
5
|
import pc4 from "picocolors";
|
|
6
6
|
import gradient from "gradient-string";
|
|
7
|
+
import { createRequire } from "module";
|
|
7
8
|
|
|
8
9
|
// src/prompts/index.ts
|
|
9
10
|
import * as p5 from "@clack/prompts";
|
|
@@ -866,7 +867,7 @@ async function generatePackageJson(config, appDir) {
|
|
|
866
867
|
if (config.integrations.monitoring === "sentry") {
|
|
867
868
|
dependencies["@sentry/nextjs"] = "^10.0.0";
|
|
868
869
|
}
|
|
869
|
-
const
|
|
870
|
+
const packageJson2 = {
|
|
870
871
|
name: isMonorepo ? "@repo/web" : config.name,
|
|
871
872
|
version: "0.1.0",
|
|
872
873
|
private: true,
|
|
@@ -887,7 +888,7 @@ async function generatePackageJson(config, appDir) {
|
|
|
887
888
|
dependencies,
|
|
888
889
|
devDependencies
|
|
889
890
|
};
|
|
890
|
-
await writeJSON(path3.join(appDir, "package.json"),
|
|
891
|
+
await writeJSON(path3.join(appDir, "package.json"), packageJson2);
|
|
891
892
|
}
|
|
892
893
|
async function generateNextConfig(config, appDir) {
|
|
893
894
|
const isMonorepo = config.structure === "monorepo";
|
|
@@ -1983,7 +1984,7 @@ export const updateUserProfile = mutation({
|
|
|
1983
1984
|
await writeFile(path6.join(convexDir, "users.ts"), content);
|
|
1984
1985
|
}
|
|
1985
1986
|
async function generateConvexPackageJson(convexDir) {
|
|
1986
|
-
const
|
|
1987
|
+
const packageJson2 = {
|
|
1987
1988
|
name: "@repo/backend",
|
|
1988
1989
|
version: "0.1.0",
|
|
1989
1990
|
private: true,
|
|
@@ -1998,7 +1999,7 @@ async function generateConvexPackageJson(convexDir) {
|
|
|
1998
1999
|
}
|
|
1999
2000
|
};
|
|
2000
2001
|
const backendDir = path6.dirname(convexDir);
|
|
2001
|
-
await writeJSON(path6.join(backendDir, "package.json"),
|
|
2002
|
+
await writeJSON(path6.join(backendDir, "package.json"), packageJson2);
|
|
2002
2003
|
}
|
|
2003
2004
|
async function generateConvexTsConfig(convexDir) {
|
|
2004
2005
|
const tsConfig = {
|
|
@@ -2946,7 +2947,7 @@ async function generateTurborepo(config, targetDir) {
|
|
|
2946
2947
|
await generateSharedConfigs(targetDir);
|
|
2947
2948
|
}
|
|
2948
2949
|
async function generateRootPackageJson(config, targetDir) {
|
|
2949
|
-
const
|
|
2950
|
+
const packageJson2 = {
|
|
2950
2951
|
name: config.name,
|
|
2951
2952
|
version: "0.1.0",
|
|
2952
2953
|
private: true,
|
|
@@ -2973,7 +2974,7 @@ async function generateRootPackageJson(config, targetDir) {
|
|
|
2973
2974
|
"*.{json,md}": ["biome format --write"]
|
|
2974
2975
|
}
|
|
2975
2976
|
};
|
|
2976
|
-
await writeJSON(path14.join(targetDir, "package.json"),
|
|
2977
|
+
await writeJSON(path14.join(targetDir, "package.json"), packageJson2);
|
|
2977
2978
|
}
|
|
2978
2979
|
async function generateTurboJson(targetDir) {
|
|
2979
2980
|
const turboJson = {
|
|
@@ -3136,7 +3137,7 @@ async function generateUIPackage(config, targetDir) {
|
|
|
3136
3137
|
const uiDir = path14.join(targetDir, "packages/ui");
|
|
3137
3138
|
await ensureDir(path14.join(uiDir, "src/components/ui"));
|
|
3138
3139
|
await ensureDir(path14.join(uiDir, "src/lib"));
|
|
3139
|
-
const
|
|
3140
|
+
const packageJson2 = {
|
|
3140
3141
|
name: "@repo/ui",
|
|
3141
3142
|
version: "0.1.0",
|
|
3142
3143
|
private: true,
|
|
@@ -3171,7 +3172,7 @@ async function generateUIPackage(config, targetDir) {
|
|
|
3171
3172
|
react: "^19.0.0"
|
|
3172
3173
|
}
|
|
3173
3174
|
};
|
|
3174
|
-
await writeJSON(path14.join(uiDir, "package.json"),
|
|
3175
|
+
await writeJSON(path14.join(uiDir, "package.json"), packageJson2);
|
|
3175
3176
|
const tsConfig = {
|
|
3176
3177
|
extends: "@repo/config-typescript/base.json",
|
|
3177
3178
|
compilerOptions: {
|
|
@@ -3241,7 +3242,7 @@ async function generatePayload(config, marketingDir) {
|
|
|
3241
3242
|
await generatePayloadEnv(marketingDir);
|
|
3242
3243
|
}
|
|
3243
3244
|
async function generatePayloadPackageJson(marketingDir) {
|
|
3244
|
-
const
|
|
3245
|
+
const packageJson2 = {
|
|
3245
3246
|
name: "@repo/marketing",
|
|
3246
3247
|
version: "0.1.0",
|
|
3247
3248
|
private: true,
|
|
@@ -3279,7 +3280,7 @@ async function generatePayloadPackageJson(marketingDir) {
|
|
|
3279
3280
|
tsx: "^4.0.0"
|
|
3280
3281
|
}
|
|
3281
3282
|
};
|
|
3282
|
-
await writeJSON(path15.join(marketingDir, "package.json"),
|
|
3283
|
+
await writeJSON(path15.join(marketingDir, "package.json"), packageJson2);
|
|
3283
3284
|
}
|
|
3284
3285
|
async function generatePayloadConfig(config, marketingDir) {
|
|
3285
3286
|
const content = `import path from 'path'
|
|
@@ -4221,7 +4222,7 @@ async function generateFumadocs(config, docsDir) {
|
|
|
4221
4222
|
await generateFumadocsContent(config, docsDir);
|
|
4222
4223
|
}
|
|
4223
4224
|
async function generateFumadocsPackageJson(docsDir) {
|
|
4224
|
-
const
|
|
4225
|
+
const packageJson2 = {
|
|
4225
4226
|
name: "@repo/docs",
|
|
4226
4227
|
version: "0.1.0",
|
|
4227
4228
|
private: true,
|
|
@@ -4254,7 +4255,7 @@ async function generateFumadocsPackageJson(docsDir) {
|
|
|
4254
4255
|
typescript: "^5.0.0"
|
|
4255
4256
|
}
|
|
4256
4257
|
};
|
|
4257
|
-
await writeJSON(path16.join(docsDir, "package.json"),
|
|
4258
|
+
await writeJSON(path16.join(docsDir, "package.json"), packageJson2);
|
|
4258
4259
|
}
|
|
4259
4260
|
async function generateFumadocsNextConfig(docsDir) {
|
|
4260
4261
|
const content = `import { createMDX } from 'fumadocs-mdx/next'
|
|
@@ -4799,7 +4800,7 @@ async function generateDesignSystemApp(config, targetDir) {
|
|
|
4799
4800
|
await generateUtils(appDir);
|
|
4800
4801
|
}
|
|
4801
4802
|
async function generatePackageJson2(config, appDir) {
|
|
4802
|
-
const
|
|
4803
|
+
const packageJson2 = {
|
|
4803
4804
|
name: "@repo/design-system",
|
|
4804
4805
|
version: "0.1.0",
|
|
4805
4806
|
private: true,
|
|
@@ -4834,7 +4835,7 @@ async function generatePackageJson2(config, appDir) {
|
|
|
4834
4835
|
typescript: "^5.0.0"
|
|
4835
4836
|
}
|
|
4836
4837
|
};
|
|
4837
|
-
await writeJSON(path17.join(appDir, "package.json"),
|
|
4838
|
+
await writeJSON(path17.join(appDir, "package.json"), packageJson2);
|
|
4838
4839
|
}
|
|
4839
4840
|
async function generateTsConfig2(appDir) {
|
|
4840
4841
|
const tsConfig = {
|
|
@@ -7042,7 +7043,7 @@ async function generateNextjsMarketing(config, marketingDir) {
|
|
|
7042
7043
|
await ensureDir(path19.join(marketingDir, "src/app"));
|
|
7043
7044
|
await ensureDir(path19.join(marketingDir, "src/components"));
|
|
7044
7045
|
await ensureDir(path19.join(marketingDir, "public"));
|
|
7045
|
-
const
|
|
7046
|
+
const packageJson2 = {
|
|
7046
7047
|
name: "@repo/marketing",
|
|
7047
7048
|
version: "0.1.0",
|
|
7048
7049
|
private: true,
|
|
@@ -7073,7 +7074,7 @@ async function generateNextjsMarketing(config, marketingDir) {
|
|
|
7073
7074
|
};
|
|
7074
7075
|
await writeFile(
|
|
7075
7076
|
path19.join(marketingDir, "package.json"),
|
|
7076
|
-
JSON.stringify(
|
|
7077
|
+
JSON.stringify(packageJson2, null, 2)
|
|
7077
7078
|
);
|
|
7078
7079
|
const homePageContent = `export default function HomePage() {
|
|
7079
7080
|
return (
|
|
@@ -7213,6 +7214,8 @@ function displaySuccessMessage(config) {
|
|
|
7213
7214
|
}
|
|
7214
7215
|
|
|
7215
7216
|
// src/index.ts
|
|
7217
|
+
var require2 = createRequire(import.meta.url);
|
|
7218
|
+
var packageJson = require2("../package.json");
|
|
7216
7219
|
var BANNER = `
|
|
7217
7220
|
\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557
|
|
7218
7221
|
\u2588\u2588\u2551 \u2588\u2588\u2554\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2554\u255D
|
|
@@ -7231,7 +7234,7 @@ function printBanner() {
|
|
|
7231
7234
|
var program = new Command();
|
|
7232
7235
|
program.name("create-kofi-stack").description(
|
|
7233
7236
|
"Scaffold opinionated full-stack projects with Next.js, Convex, Better-Auth, and more"
|
|
7234
|
-
).version(
|
|
7237
|
+
).version(packageJson.version).argument("[project-name]", "Name of the project").option("--monorepo", "Use monorepo structure with Turborepo").option("--single", "Use single app structure").option(
|
|
7235
7238
|
"--marketing <type>",
|
|
7236
7239
|
"Marketing site type: payload, nextjs, none"
|
|
7237
7240
|
).option("--docs", "Include documentation site (Fumadocs)").option("--no-docs", "Exclude documentation site").option(
|
|
@@ -7266,4 +7269,27 @@ program.name("create-kofi-stack").description(
|
|
|
7266
7269
|
process.exit(1);
|
|
7267
7270
|
}
|
|
7268
7271
|
});
|
|
7272
|
+
program.command("update").description("Update create-kofi-stack to the latest version").action(async () => {
|
|
7273
|
+
const { execa: execa3 } = await import("execa");
|
|
7274
|
+
console.log(pc4.cyan("Checking for updates...\n"));
|
|
7275
|
+
try {
|
|
7276
|
+
const { stdout: latestVersion } = await execa3("npm", ["view", "create-kofi-stack", "version"]);
|
|
7277
|
+
const currentVersion = packageJson.version;
|
|
7278
|
+
if (latestVersion.trim() === currentVersion) {
|
|
7279
|
+
console.log(pc4.green(`\u2713 You're already on the latest version (${currentVersion})`));
|
|
7280
|
+
return;
|
|
7281
|
+
}
|
|
7282
|
+
console.log(pc4.dim(`Current version: ${currentVersion}`));
|
|
7283
|
+
console.log(pc4.dim(`Latest version: ${latestVersion.trim()}
|
|
7284
|
+
`));
|
|
7285
|
+
console.log(pc4.cyan("Updating...\n"));
|
|
7286
|
+
await execa3("npm", ["install", "-g", "create-kofi-stack@latest"], { stdio: "inherit" });
|
|
7287
|
+
console.log(pc4.green(`
|
|
7288
|
+
\u2713 Successfully updated to v${latestVersion.trim()}`));
|
|
7289
|
+
} catch (error) {
|
|
7290
|
+
console.error(pc4.red("Failed to update. Try running manually:"));
|
|
7291
|
+
console.log(pc4.dim(" npm install -g create-kofi-stack@latest"));
|
|
7292
|
+
process.exit(1);
|
|
7293
|
+
}
|
|
7294
|
+
});
|
|
7269
7295
|
program.parse();
|