foco-cli 0.2.3 → 0.2.4
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Check for CLI updates. Uses 24h cache to avoid hitting npm on every run.
|
|
3
|
-
*
|
|
3
|
+
* Auto-upgrades via `npm install -g`, falls back to manual prompt on failure.
|
|
4
4
|
*/
|
|
5
5
|
export declare function checkForUpdate(currentVersion: string): Promise<void>;
|
|
6
6
|
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"AAyCA;;;GAGG;AACH,wBAAsB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC1E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
|
+
import { execSync } from "node:child_process";
|
|
4
5
|
const CACHE_PATH = join(homedir(), ".foco", "version-cache.json");
|
|
5
6
|
const CACHE_TTL = 24 * 60 * 60 * 1000; // 24 hours
|
|
6
7
|
const PKG_NAME = "foco-cli";
|
|
@@ -35,7 +36,7 @@ function writeCache(cache) {
|
|
|
35
36
|
}
|
|
36
37
|
/**
|
|
37
38
|
* Check for CLI updates. Uses 24h cache to avoid hitting npm on every run.
|
|
38
|
-
*
|
|
39
|
+
* Auto-upgrades via `npm install -g`, falls back to manual prompt on failure.
|
|
39
40
|
*/
|
|
40
41
|
export async function checkForUpdate(currentVersion) {
|
|
41
42
|
const cache = readCache();
|
|
@@ -59,8 +60,19 @@ export async function checkForUpdate(currentVersion) {
|
|
|
59
60
|
return;
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
if (compareVersions(latestVersion, currentVersion)
|
|
63
|
-
|
|
63
|
+
if (compareVersions(latestVersion, currentVersion) <= 0)
|
|
64
|
+
return;
|
|
65
|
+
// Try auto-upgrade
|
|
66
|
+
try {
|
|
67
|
+
execSync(`npm install -g ${PKG_NAME}@${latestVersion}`, {
|
|
68
|
+
stdio: "pipe",
|
|
69
|
+
timeout: 30000,
|
|
70
|
+
});
|
|
71
|
+
process.stderr.write(`foco-cli: 已自动升级 ${currentVersion} → ${latestVersion}\n`);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Permission or network failure — fall back to manual prompt
|
|
75
|
+
process.stderr.write(`foco-cli: 新版本 ${latestVersion} 可用 (当前 ${currentVersion}),自动升级失败,请手动运行: npm install -g ${PKG_NAME}@${latestVersion}\n`);
|
|
64
76
|
}
|
|
65
77
|
}
|
|
66
78
|
//# sourceMappingURL=version-check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"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"}
|