create-kofi-stack 1.2.8 → 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.
Files changed (2) hide show
  1. package/dist/index.js +48 -18
  2. 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 packageJson = {
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"), packageJson);
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 packageJson = {
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"), packageJson);
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 packageJson = {
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"), packageJson);
2977
+ await writeJSON(path14.join(targetDir, "package.json"), packageJson2);
2977
2978
  }
2978
2979
  async function generateTurboJson(targetDir) {
2979
2980
  const turboJson = {
@@ -3094,6 +3095,10 @@ async function generateSharedConfigs(targetDir) {
3094
3095
  name: "@repo/config-typescript",
3095
3096
  version: "0.1.0",
3096
3097
  private: true,
3098
+ exports: {
3099
+ "./base.json": "./base.json",
3100
+ "./nextjs.json": "./nextjs.json"
3101
+ },
3097
3102
  files: ["base.json", "nextjs.json"]
3098
3103
  };
3099
3104
  await writeJSON(
@@ -3132,7 +3137,7 @@ async function generateUIPackage(config, targetDir) {
3132
3137
  const uiDir = path14.join(targetDir, "packages/ui");
3133
3138
  await ensureDir(path14.join(uiDir, "src/components/ui"));
3134
3139
  await ensureDir(path14.join(uiDir, "src/lib"));
3135
- const packageJson = {
3140
+ const packageJson2 = {
3136
3141
  name: "@repo/ui",
3137
3142
  version: "0.1.0",
3138
3143
  private: true,
@@ -3167,7 +3172,7 @@ async function generateUIPackage(config, targetDir) {
3167
3172
  react: "^19.0.0"
3168
3173
  }
3169
3174
  };
3170
- await writeJSON(path14.join(uiDir, "package.json"), packageJson);
3175
+ await writeJSON(path14.join(uiDir, "package.json"), packageJson2);
3171
3176
  const tsConfig = {
3172
3177
  extends: "@repo/config-typescript/base.json",
3173
3178
  compilerOptions: {
@@ -3237,7 +3242,7 @@ async function generatePayload(config, marketingDir) {
3237
3242
  await generatePayloadEnv(marketingDir);
3238
3243
  }
3239
3244
  async function generatePayloadPackageJson(marketingDir) {
3240
- const packageJson = {
3245
+ const packageJson2 = {
3241
3246
  name: "@repo/marketing",
3242
3247
  version: "0.1.0",
3243
3248
  private: true,
@@ -3275,7 +3280,7 @@ async function generatePayloadPackageJson(marketingDir) {
3275
3280
  tsx: "^4.0.0"
3276
3281
  }
3277
3282
  };
3278
- await writeJSON(path15.join(marketingDir, "package.json"), packageJson);
3283
+ await writeJSON(path15.join(marketingDir, "package.json"), packageJson2);
3279
3284
  }
3280
3285
  async function generatePayloadConfig(config, marketingDir) {
3281
3286
  const content = `import path from 'path'
@@ -4217,7 +4222,7 @@ async function generateFumadocs(config, docsDir) {
4217
4222
  await generateFumadocsContent(config, docsDir);
4218
4223
  }
4219
4224
  async function generateFumadocsPackageJson(docsDir) {
4220
- const packageJson = {
4225
+ const packageJson2 = {
4221
4226
  name: "@repo/docs",
4222
4227
  version: "0.1.0",
4223
4228
  private: true,
@@ -4250,7 +4255,7 @@ async function generateFumadocsPackageJson(docsDir) {
4250
4255
  typescript: "^5.0.0"
4251
4256
  }
4252
4257
  };
4253
- await writeJSON(path16.join(docsDir, "package.json"), packageJson);
4258
+ await writeJSON(path16.join(docsDir, "package.json"), packageJson2);
4254
4259
  }
4255
4260
  async function generateFumadocsNextConfig(docsDir) {
4256
4261
  const content = `import { createMDX } from 'fumadocs-mdx/next'
@@ -4299,7 +4304,7 @@ export const source = loader({
4299
4304
  await writeFile(path16.join(docsDir, "src/lib/source.ts"), content);
4300
4305
  }
4301
4306
  async function generateFumadocsAppFiles(config, docsDir) {
4302
- const layoutContent = `import { RootProvider } from 'fumadocs-ui/provider'
4307
+ const layoutContent = `import { RootProvider } from 'fumadocs-ui/providers'
4303
4308
  import { Inter } from 'next/font/google'
4304
4309
  import type { Metadata } from 'next'
4305
4310
  import type { ReactNode } from 'react'
@@ -4795,7 +4800,7 @@ async function generateDesignSystemApp(config, targetDir) {
4795
4800
  await generateUtils(appDir);
4796
4801
  }
4797
4802
  async function generatePackageJson2(config, appDir) {
4798
- const packageJson = {
4803
+ const packageJson2 = {
4799
4804
  name: "@repo/design-system",
4800
4805
  version: "0.1.0",
4801
4806
  private: true,
@@ -4830,7 +4835,7 @@ async function generatePackageJson2(config, appDir) {
4830
4835
  typescript: "^5.0.0"
4831
4836
  }
4832
4837
  };
4833
- await writeJSON(path17.join(appDir, "package.json"), packageJson);
4838
+ await writeJSON(path17.join(appDir, "package.json"), packageJson2);
4834
4839
  }
4835
4840
  async function generateTsConfig2(appDir) {
4836
4841
  const tsConfig = {
@@ -7038,7 +7043,7 @@ async function generateNextjsMarketing(config, marketingDir) {
7038
7043
  await ensureDir(path19.join(marketingDir, "src/app"));
7039
7044
  await ensureDir(path19.join(marketingDir, "src/components"));
7040
7045
  await ensureDir(path19.join(marketingDir, "public"));
7041
- const packageJson = {
7046
+ const packageJson2 = {
7042
7047
  name: "@repo/marketing",
7043
7048
  version: "0.1.0",
7044
7049
  private: true,
@@ -7069,7 +7074,7 @@ async function generateNextjsMarketing(config, marketingDir) {
7069
7074
  };
7070
7075
  await writeFile(
7071
7076
  path19.join(marketingDir, "package.json"),
7072
- JSON.stringify(packageJson, null, 2)
7077
+ JSON.stringify(packageJson2, null, 2)
7073
7078
  );
7074
7079
  const homePageContent = `export default function HomePage() {
7075
7080
  return (
@@ -7209,6 +7214,8 @@ function displaySuccessMessage(config) {
7209
7214
  }
7210
7215
 
7211
7216
  // src/index.ts
7217
+ var require2 = createRequire(import.meta.url);
7218
+ var packageJson = require2("../package.json");
7212
7219
  var BANNER = `
7213
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
7214
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
@@ -7227,7 +7234,7 @@ function printBanner() {
7227
7234
  var program = new Command();
7228
7235
  program.name("create-kofi-stack").description(
7229
7236
  "Scaffold opinionated full-stack projects with Next.js, Convex, Better-Auth, and more"
7230
- ).version("1.0.0").argument("[project-name]", "Name of the project").option("--monorepo", "Use monorepo structure with Turborepo").option("--single", "Use single app structure").option(
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(
7231
7238
  "--marketing <type>",
7232
7239
  "Marketing site type: payload, nextjs, none"
7233
7240
  ).option("--docs", "Include documentation site (Fumadocs)").option("--no-docs", "Exclude documentation site").option(
@@ -7262,4 +7269,27 @@ program.name("create-kofi-stack").description(
7262
7269
  process.exit(1);
7263
7270
  }
7264
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
+ });
7265
7295
  program.parse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-kofi-stack",
3
- "version": "1.2.8",
3
+ "version": "1.2.10",
4
4
  "description": "Scaffold opinionated full-stack projects with Next.js, Convex, Better-Auth, and more",
5
5
  "type": "module",
6
6
  "bin": {