create-message-kit 1.1.7-beta.22 → 1.1.7-beta.24

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/index.js +29 -33
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -5,6 +5,7 @@ import { fileURLToPath } from "node:url";
5
5
  import { log, outro, text, select } from "@clack/prompts";
6
6
  import { default as fs } from "fs-extra";
7
7
  import { isCancel } from "@clack/prompts";
8
+ import { detect } from "detect-package-manager";
8
9
  import pc from "picocolors";
9
10
 
10
11
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -15,9 +16,16 @@ const packageJson = JSON.parse(
15
16
  );
16
17
  const version = packageJson.version;
17
18
  program
18
- .name("byob")
19
+ .name("message-kit")
19
20
  .description("CLI to initialize projects")
20
21
  .action(async () => {
22
+ // Add Yarn 4 check at the start of the action
23
+ const pkgManager = detectPackageManager();
24
+ if (pkgManager.startsWith("yarn@4")) {
25
+ log.error("Yarn 4 is not supported. Please use bun, npm, or yarn v1");
26
+ process.exit(1);
27
+ }
28
+
21
29
  log.info(pc.cyan(`Welcome to MessageKit CLI v${version}!`));
22
30
  const coolLogo = `
23
31
  ███╗ ███╗███████╗███████╗███████╗ █████╗ ██████╗ ███████╗██╗ ██╗██╗████████╗
@@ -32,11 +40,6 @@ Powered by XMTP`;
32
40
 
33
41
  const { templateType, displayName, destDir } = await gatherProjectInfo();
34
42
 
35
- console.log("detected package manager", detectPackageManager());
36
-
37
- // Add package.json
38
- addPackagejson(destDir, displayName);
39
-
40
43
  // Create .gitignore
41
44
  createGitignore(destDir);
42
45
 
@@ -49,7 +52,8 @@ Powered by XMTP`;
49
52
  // Wrap up
50
53
  log.success(`Project launched in ${pc.red(destDir)}!`);
51
54
 
52
- const pkgManager = detectPackageManager();
55
+ // Add package.json
56
+ addPackagejson(destDir, displayName, pkgManager);
53
57
 
54
58
  // Create README.md file
55
59
  createReadme(destDir, templateType, displayName, pkgManager);
@@ -62,7 +66,7 @@ Powered by XMTP`;
62
66
 
63
67
  program.parse(process.argv);
64
68
 
65
- async function addPackagejson(destDir, name) {
69
+ async function addPackagejson(destDir, name, pkgManager) {
66
70
  // Create package.json based on the template
67
71
  let packageTemplate = {
68
72
  name: name,
@@ -77,12 +81,14 @@ async function addPackagejson(destDir, name) {
77
81
  dependencies: {
78
82
  "@xmtp/message-kit": "latest",
79
83
  },
84
+ devDependencies: {
85
+ typescript: "^5.4.5",
86
+ },
80
87
  engines: {
81
88
  node: ">=20",
82
89
  },
83
90
  };
84
- // Only add packageManager field if using yarn
85
- const pkgManager = detectPackageManager();
91
+
86
92
  if (pkgManager.startsWith("yarn")) {
87
93
  packageTemplate.packageManager = pkgManager;
88
94
  }
@@ -196,31 +202,21 @@ yarn-error.log*
196
202
  fs.writeFileSync(resolve(destDir, ".gitignore"), gitignoreContent.trim());
197
203
  }
198
204
 
199
- function detectPackageManager() {
200
- const userAgent = process.env.npm_config_user_agent;
201
- if (!userAgent) return "npm";
202
-
203
- // Improve package manager detection
204
- const managers = {
205
- bun: "bun",
206
- yarn: "yarn",
207
- pnpm: "pnpm",
208
- npm: "npm",
209
- };
210
-
211
- for (const [manager, value] of Object.entries(managers)) {
212
- if (userAgent.includes(manager)) {
213
- // Extract version for yarn
214
- if (manager === "yarn") {
215
- const version =
216
- userAgent.match(/yarn\/(\d+\.\d+\.\d+)/)?.[1] || "4.5.1";
217
- return `${value}@${version}`;
218
- }
219
- return value;
205
+ async function detectPackageManager() {
206
+ try {
207
+ const pkgManager = await detect();
208
+ // Still maintain the Yarn 4 check if needed
209
+ if (
210
+ pkgManager === "yarn" &&
211
+ process.env.npm_config_user_agent?.includes("yarn/4")
212
+ ) {
213
+ return "yarn@4";
220
214
  }
215
+ return pkgManager;
216
+ } catch (error) {
217
+ // Fallback to npm if detection fails
218
+ return "npm";
221
219
  }
222
-
223
- return "npm";
224
220
  }
225
221
 
226
222
  function kebabcase(str) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-message-kit",
3
- "version": "1.1.7-beta.22",
3
+ "version": "1.1.7-beta.24",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "index.js",