ccjk 13.5.1 → 13.5.2

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.
@@ -305,16 +305,8 @@ async function checkAndUpdateTools(skipPrompt = false) {
305
305
  console.warn(a.yellow(`\u26A0 Duplicate installation check failed: ${errorMessage}`));
306
306
  }
307
307
  const results = [];
308
- console.log(a.bold("\u{1F4E6} CCJK"));
309
- try {
310
- await checkCcjkVersionAndPrompt(skipPrompt);
311
- results.push({ tool: "CCJK", success: true });
312
- } catch (error) {
313
- const errorMessage = error instanceof Error ? error.message : String(error);
314
- console.error(a.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCJK" })}: ${errorMessage}`));
315
- results.push({ tool: "CCJK", success: false, error: errorMessage });
316
- }
317
- console.log();
308
+ let ccjkUpdated = false;
309
+ let ccjkResult = null;
318
310
  console.log(a.bold("\u{1F500} CCR"));
319
311
  try {
320
312
  const success = await updateCcr(false, skipPrompt);
@@ -342,13 +334,24 @@ async function checkAndUpdateTools(skipPrompt = false) {
342
334
  console.error(a.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCometixLine" })}: ${errorMessage}`));
343
335
  results.push({ tool: "CCometixLine", success: false, error: errorMessage });
344
336
  }
337
+ console.log();
338
+ console.log(a.bold("\u{1F4E6} CCJK"));
339
+ try {
340
+ const result = await checkCcjkVersionAndPrompt(skipPrompt);
341
+ ccjkUpdated = result.updated;
342
+ ccjkResult = {
343
+ tool: "CCJK",
344
+ success: result.success,
345
+ error: result.error
346
+ };
347
+ } catch (error) {
348
+ const errorMessage = error instanceof Error ? error.message : String(error);
349
+ console.error(a.red(`\u274C ${format(i18n.t("updater:updateFailed"), { tool: "CCJK" })}: ${errorMessage}`));
350
+ ccjkResult = { tool: "CCJK", success: false, error: errorMessage };
351
+ }
345
352
  console.log(a.bold.cyan(`
346
353
  \u{1F4CB} ${i18n.t("updater:updateSummary")}`));
347
- let ccjkUpdated = false;
348
- for (const result of results) {
349
- if (result.tool === "CCJK" && result.success) {
350
- ccjkUpdated = true;
351
- }
354
+ for (const result of ccjkResult ? [ccjkResult, ...results] : results) {
352
355
  if (result.success) {
353
356
  console.log(a.green(`\u2714 ${result.tool}: ${i18n.t("updater:success")}`));
354
357
  } else {
@@ -375,7 +378,7 @@ async function checkCcjkVersionAndPrompt(skipPrompt) {
375
378
  console.log(a.cyan(`${i18n.t("updater:latestVersion")} v${latestVersion}`));
376
379
  if (currentVersion === latestVersion) {
377
380
  console.log(a.green(`\u2713 ${i18n.t("updater:alreadyLatest")}`));
378
- return;
381
+ return { success: true, updated: false };
379
382
  }
380
383
  console.log(a.green(`\u2714 ${i18n.t("updater:updatePrompt")} Yes`));
381
384
  console.log(a.dim("Clearing npx cache..."));
@@ -388,13 +391,18 @@ async function checkCcjkVersionAndPrompt(skipPrompt) {
388
391
  try {
389
392
  await execWithSudoIfNeeded("npm", ["install", "-g", "ccjk@latest", "--force"]);
390
393
  updateSpinner.succeed(a.green(`\u2713 CCJK updated to v${latestVersion}`));
394
+ return { success: true, updated: true };
391
395
  } catch (error) {
396
+ const errorMessage = error instanceof Error ? error.message : String(error);
392
397
  updateSpinner.fail(a.red("\u2717 CCJK update failed"));
393
- console.error(a.red(error instanceof Error ? error.message : String(error)));
398
+ console.error(a.red(errorMessage));
394
399
  console.log(a.gray("\nTry manually: npm install -g ccjk@latest"));
400
+ return { success: false, updated: false, error: errorMessage };
395
401
  }
396
402
  } catch (error) {
397
- console.error(a.red(`${i18n.t("updater:checkFailed")} ${error instanceof Error ? error.message : String(error)}`));
403
+ const errorMessage = error instanceof Error ? error.message : String(error);
404
+ console.error(a.red(`${i18n.t("updater:checkFailed")} ${errorMessage}`));
405
+ return { success: false, updated: false, error: errorMessage };
398
406
  }
399
407
  }
400
408
 
@@ -1,3 +1,3 @@
1
- const version = "13.5.1";
1
+ const version = "13.5.2";
2
2
 
3
3
  export { version };
package/dist/cli.mjs CHANGED
File without changes
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "ccjk",
3
3
  "type": "module",
4
- "version": "13.5.1",
4
+ "version": "13.5.2",
5
+ "packageManager": "pnpm@10.17.1",
5
6
  "description": "Turn Claude Code into a production-ready AI dev environment with one-command setup, persistent memory, MCP automation, cloud sync, and zero-config browser workflows.",
6
7
  "author": {
7
8
  "name": "CCJK Team",
@@ -80,69 +81,6 @@
80
81
  "engines": {
81
82
  "node": ">=20"
82
83
  },
83
- "dependencies": {
84
- "better-sqlite3": "^12.6.2",
85
- "fdir": "^6.5.0",
86
- "globby": "^14.1.0",
87
- "ioredis": "^5.9.3",
88
- "node-cron": "^4.2.1",
89
- "sql.js": "^1.14.0",
90
- "tar": "^7.5.9",
91
- "tinyglobby": "^0.2.15",
92
- "web-tree-sitter": "^0.26.5"
93
- },
94
- "devDependencies": {
95
- "@antfu/eslint-config": "^5.4.1",
96
- "@anthropic-ai/sdk": "^0.52.0",
97
- "@types/better-sqlite3": "^7.6.13",
98
- "@types/fs-extra": "^11.0.4",
99
- "@types/inquirer": "^9.0.9",
100
- "@types/node": "^22.18.6",
101
- "@types/node-cron": "^3.0.11",
102
- "@types/semver": "^7.7.1",
103
- "@types/uuid": "^11.0.0",
104
- "@typescript-eslint/eslint-plugin": "^6.0.0",
105
- "@typescript-eslint/parser": "^6.0.0",
106
- "@vitest/coverage-v8": "^3.2.4",
107
- "@vitest/ui": "^3.2.4",
108
- "ansis": "^4.2.0",
109
- "cac": "^6.7.14",
110
- "chokidar": "^4.0.3",
111
- "concurrently": "^9.2.1",
112
- "consola": "^3.4.2",
113
- "dayjs": "^1.11.19",
114
- "eslint": "^9.36.0",
115
- "eslint-plugin-format": "^1.4.0",
116
- "find-up-simple": "^1.0.1",
117
- "fs-extra": "^11.3.3",
118
- "gray-matter": "^4.0.3",
119
- "handlebars": "^4.7.8",
120
- "husky": "^9.1.7",
121
- "i18next": "^25.8.13",
122
- "i18next-fs-backend": "^2.6.1",
123
- "inquirer": "^12.9.6",
124
- "inquirer-toggle": "^1.0.1",
125
- "lint-staged": "^16.2.7",
126
- "lowdb": "^7.0.1",
127
- "nanoid": "^5.1.6",
128
- "ofetch": "^1.5.1",
129
- "ohash": "^1.1.4",
130
- "ora": "^8.2.0",
131
- "pathe": "^2.0.3",
132
- "pkgroll": "^2.26.3",
133
- "prettier": "^3.8.1",
134
- "semver": "^7.7.4",
135
- "shx": "^0.4.0",
136
- "smol-toml": "^1.6.0",
137
- "tinyexec": "^1.0.2",
138
- "trash": "^10.1.0",
139
- "tsx": "^4.21.0",
140
- "tweetnacl": "^1.0.3",
141
- "typescript": "^5.9.3",
142
- "unbuild": "^3.6.1",
143
- "uuid": "^11.1.0",
144
- "vitest": "^3.2.4"
145
- },
146
84
  "scripts": {
147
85
  "dev": "tsx ./src/cli.ts",
148
86
  "build": "unbuild",
@@ -150,6 +88,7 @@
150
88
  "typecheck": "tsc --noEmit",
151
89
  "release:verify": "node scripts/release-verify.mjs",
152
90
  "release:verify:full": "node scripts/release-verify.mjs --with-tests",
91
+ "prepublishOnly": "node scripts/validate-prepublish.mjs && pnpm contract:check && pnpm build",
153
92
  "lint": "eslint",
154
93
  "lint:fix": "eslint --fix",
155
94
  "test": "vitest",
@@ -171,6 +110,7 @@
171
110
  "test:integration:run": "NODE_ENV=test vitest run --config vitest.integration.config.ts",
172
111
  "test:integration:ui": "NODE_ENV=test vitest --config vitest.integration.config.ts --ui",
173
112
  "test:integration:coverage": "NODE_ENV=test vitest run --config vitest.integration.config.ts --coverage",
113
+ "prepare": "husky",
174
114
  "format": "prettier --write src/**/*.ts",
175
115
  "prepublish:fix": "node scripts/fix-package-catalog.mjs",
176
116
  "cleanup": "node scripts/cleanup.js",
@@ -205,5 +145,68 @@
205
145
  "i18n:check": "tsx scripts/check-i18n.ts",
206
146
  "i18n:report": "tsx scripts/check-i18n.ts --report",
207
147
  "contract:check": "node scripts/check-remote-contract.mjs"
148
+ },
149
+ "dependencies": {
150
+ "better-sqlite3": "^12.6.2",
151
+ "fdir": "^6.5.0",
152
+ "globby": "^14.1.0",
153
+ "ioredis": "^5.9.3",
154
+ "node-cron": "^4.2.1",
155
+ "sql.js": "^1.14.0",
156
+ "tar": "^7.5.9",
157
+ "tinyglobby": "^0.2.15",
158
+ "web-tree-sitter": "^0.26.5"
159
+ },
160
+ "devDependencies": {
161
+ "@antfu/eslint-config": "^5.4.1",
162
+ "@anthropic-ai/sdk": "^0.52.0",
163
+ "@types/better-sqlite3": "^7.6.13",
164
+ "@types/fs-extra": "^11.0.4",
165
+ "@types/inquirer": "^9.0.9",
166
+ "@types/node": "^22.18.6",
167
+ "@types/node-cron": "^3.0.11",
168
+ "@types/semver": "^7.7.1",
169
+ "@types/uuid": "^11.0.0",
170
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
171
+ "@typescript-eslint/parser": "^6.0.0",
172
+ "@vitest/coverage-v8": "^3.2.4",
173
+ "@vitest/ui": "^3.2.4",
174
+ "ansis": "^4.2.0",
175
+ "cac": "^6.7.14",
176
+ "chokidar": "^4.0.3",
177
+ "concurrently": "^9.2.1",
178
+ "consola": "^3.4.2",
179
+ "dayjs": "^1.11.19",
180
+ "eslint": "^9.36.0",
181
+ "eslint-plugin-format": "^1.4.0",
182
+ "find-up-simple": "^1.0.1",
183
+ "fs-extra": "^11.3.3",
184
+ "gray-matter": "^4.0.3",
185
+ "handlebars": "^4.7.8",
186
+ "husky": "^9.1.7",
187
+ "i18next": "^25.8.13",
188
+ "i18next-fs-backend": "^2.6.1",
189
+ "inquirer": "^12.9.6",
190
+ "inquirer-toggle": "^1.0.1",
191
+ "lint-staged": "^16.2.7",
192
+ "lowdb": "^7.0.1",
193
+ "nanoid": "^5.1.6",
194
+ "ofetch": "^1.5.1",
195
+ "ohash": "^1.1.4",
196
+ "ora": "^8.2.0",
197
+ "pathe": "^2.0.3",
198
+ "pkgroll": "^2.26.3",
199
+ "prettier": "^3.8.1",
200
+ "semver": "^7.7.4",
201
+ "shx": "^0.4.0",
202
+ "smol-toml": "^1.6.0",
203
+ "tinyexec": "^1.0.2",
204
+ "trash": "^10.1.0",
205
+ "tsx": "^4.21.0",
206
+ "tweetnacl": "^1.0.3",
207
+ "typescript": "^5.9.3",
208
+ "unbuild": "^3.6.1",
209
+ "uuid": "^11.1.0",
210
+ "vitest": "^3.2.4"
208
211
  }
209
- }
212
+ }