@my-life-buddies/cli 0.23.0-dev.1 → 0.23.0-rc.0
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/README.md +77 -78
- package/dist/bin/buddy.js +32 -32
- package/dist/bin/buddy.js.map +2 -2
- package/dist/bin/core.js +453 -552
- package/dist/bin/core.js.map +4 -4
- package/dist/bin/preview.js +290 -55
- package/dist/bin/preview.js.map +4 -4
- package/dist/web/app.js +2 -2
- package/dist/web/widget-document.js +41 -0
- package/dist/web/widgets.js +88 -54
- package/package.json +6 -6
package/dist/bin/buddy.js
CHANGED
|
@@ -95,8 +95,8 @@ import {
|
|
|
95
95
|
connectPreviewBridge
|
|
96
96
|
} from "./preview.js";
|
|
97
97
|
var PREVIEW_COMMAND_HELP = `\u7528\u6CD5:
|
|
98
|
-
buddy-cli-
|
|
99
|
-
buddy-cli-
|
|
98
|
+
buddy-cli-prod preview [--directory <\u9879\u76EE\u76EE\u5F55>] [--buddy-id <\u642D\u5B50 ID>] [--developer-web <\u540E\u53F0 URL>] [--app-server <App Server URL>] [--no-open]
|
|
99
|
+
buddy-cli-prod preview --local [--directory <\u9879\u76EE\u76EE\u5F55>] [--port <\u672C\u5730\u7AEF\u53E3>]
|
|
100
100
|
|
|
101
101
|
\u8BF4\u660E:
|
|
102
102
|
\u9ED8\u8BA4\u6253\u5F00\u5F53\u524D\u642D\u5B50\u7684\u521B\u9020\u8005\u540E\u53F0\u300C\u5F00\u53D1\u8C03\u8BD5\u300D\uFF0C\u8FDE\u63A5\u672C\u5730\u5DE5\u7A0B\uFF1B\u5728\u540E\u53F0\u542F\u52A8/\u505C\u6B62 DEV\u3001\u8BD5\u804A\u3001\u67E5\u770B Widget\u3001\u65F6\u95F4\u7EBF\u4E0E\u534F\u8BAE\u65E5\u5FD7\u3001\u771F\u673A\u9884\u89C8\u3002
|
|
@@ -106,14 +106,15 @@ var PREVIEW_COMMAND_HELP = `\u7528\u6CD5:
|
|
|
106
106
|
--local \u662F\u540E\u53F0\u4E0D\u53EF\u7528\u65F6\u7684\u72EC\u7ACB\u672C\u5730\u9884\u89C8\u5907\u7528\u5165\u53E3\uFF0C--port \u4EC5\u4E0E --local \u4E00\u8D77\u4F7F\u7528\u3002
|
|
107
107
|
\u4FDD\u6301\u7EC8\u7AEF\u8FD0\u884C\uFF1BCtrl+C \u6216\u5173\u95ED\u7EC8\u7AEF\u4F1A\u505C\u6B62 DEV \u5E76\u65AD\u5F00\u8FDE\u63A5\uFF0C\u5237\u65B0\u540E\u53F0\u4E0D\u4F1A\u81EA\u52A8\u542F\u52A8 DEV\u3002
|
|
108
108
|
DEV \u5931\u8D25\u5148\u67E5\u770B\u5177\u4F53\u9519\u8BEF\u548C\u8FD0\u884C\u65E5\u5FD7\uFF1B\u5347\u7EA7 CLI \u540E\u9000\u51FA\u65E7 preview \u8FDB\u7A0B\u5E76\u91CD\u65B0\u8FDE\u63A5\uFF0C\u518D\u542F\u52A8 DEV\u3002
|
|
109
|
-
\u540E\u53F0\u53EF\u5F3A\u5236\u65AD\u8FDE\uFF1B\u672C\u673A\u505C\u6B62\u672A\u786E\u8BA4\u65F6\uFF0C\u5728\u539F\u5DE5\u7A0B\u76EE\u5F55\u6267\u884C buddy-cli-
|
|
110
|
-
\
|
|
111
|
-
|
|
112
|
-
CLI \u7EDF\u4E00\u542F\u52A8\u5E76\u7BA1\u7406\u5DE5\u7A0B\u4E2D\u7684\u5B98\u65B9 Runtime\uFF1B\u6BCF\u6B21\u542F\u52A8\u6216\u91CD\u8F7D\u68C0\u67E5\u5DE5\u7A0B
|
|
109
|
+
\u540E\u53F0\u53EF\u5F3A\u5236\u65AD\u8FDE\uFF1B\u672C\u673A\u505C\u6B62\u672A\u786E\u8BA4\u65F6\uFF0C\u5728\u539F\u5DE5\u7A0B\u76EE\u5F55\u6267\u884C buddy-cli-prod dev stop\u3002\u8BE5\u547D\u4EE4\u4E0D\u91CD\u8FDE\u3001\u4E0D\u91CD\u542F\u3002
|
|
110
|
+
\u56FA\u5B9A\u8FDE\u63A5 MLB PROD ${DEFAULT_MLB_TEST_URL}\uFF08HTTPS\uFF09\u3002
|
|
111
|
+
PROD \u5305\u56FA\u5B9A\u8FDE\u63A5 PROD\uFF1B\u5730\u5740\u53C2\u6570\u53EA\u6821\u9A8C\u56FA\u5B9A\u76EE\u6807\uFF0C\u4E0D\u80FD\u5207\u6362\u5E73\u53F0\u3002Runtime \u7F51\u5173\u7531 CLI \u6CE8\u5165\u3002
|
|
112
|
+
CLI \u7EDF\u4E00\u542F\u52A8\u5E76\u7BA1\u7406\u5DE5\u7A0B\u4E2D\u7684\u5B98\u65B9 Runtime\uFF1B\u6BCF\u6B21\u542F\u52A8\u6216\u91CD\u8F7D\u68C0\u67E5\u5DE5\u7A0B Runtime \u4E0E npm latest \u6700\u65B0\u6B63\u5F0F\u7248\u3001\u5B9E\u9645\u5B89\u88C5\u548C\u9501\u6587\u4EF6\u4E00\u81F4\u3002
|
|
113
113
|
\u8EAB\u4EFD\u8BFB\u53D6 package.json.buddyId\uFF1B.env \u4FDD\u5B58 Token\uFF0C\u542F\u52A8\u524D\u5411 Server \u6821\u9A8C\u6240\u5C5E\u642D\u5B50\u3002
|
|
114
114
|
\u8FDE\u63A5\u524D\u81EA\u68C0 .env \u7F51\u5173\uFF1B\u53D1\u73B0\u5176\u4ED6\u73AF\u5883\u5730\u5740\u65F6\u505C\u6B62\uFF1B\u8BF7\u4F7F\u7528\u5BF9\u5E94 CLI\uFF0C\u8FC1\u79FB\u65F6\u65B0\u5EFA\u8EAB\u4EFD\u4E14\u4E0D\u590D\u5236\u51ED\u636E\u3002
|
|
115
115
|
--refresh-token \u91CD\u65B0\u9886\u53D6\u5DF2\u6709\u5F00\u53D1 Token\uFF0C\u66F4\u65B0\u540C\u4E00\u73AF\u5883\u7684\u5DE5\u7A0B .env\uFF1B\u4E0D\u80FD\u5207\u6362\u5E73\u53F0\uFF0C\u4E0D\u4F1A\u751F\u6210\u65B0\u5BC6\u94A5\u3002
|
|
116
116
|
Widget \u6D88\u606F\u5361\u7247\u4FDD\u7559\u6307\u5B9A\u8BB0\u5F55\u7684\u6253\u5F00\u76EE\u6807\uFF0C\u5C0F\u6302\u4EF6\u5217\u8868\u6253\u5F00\u9ED8\u8BA4\u89C6\u56FE\u3002
|
|
117
|
+
PROD \u540E\u53F0\u652F\u6301\u6309 Schema \u7F16\u8F91 Widget \u8BB0\u5F55\u4E0E\u4E0A\u4F20\u56FE\u7247\uFF1B\u901A\u8FC7 window.dadaWidget \u8C03\u7528\uFF0C\u5173\u95ED\u540E\u805A\u5408\u53D8\u66F4\u901A\u77E5\u3002\u771F\u673A\u7F16\u8F91\u4ECD\u9700\u5BA2\u6237\u7AEF\u652F\u6301\u3002
|
|
117
118
|
\u6A21\u62DF\u5668\u4F7F\u7528\u5F53\u524D\u5F00\u53D1\u8005\u8D26\u53F7\u8BBF\u95EE <buddyId>-dev \u8C03\u8BD5\u5206\u8EAB\u3002`;
|
|
118
119
|
function valueAfter(args, index, flag) {
|
|
119
120
|
const value = args[index + 1];
|
|
@@ -453,7 +454,7 @@ var BuddyPlatformHost = class {
|
|
|
453
454
|
// apps/cli/src/platform-support.ts
|
|
454
455
|
var UnsupportedDeveloperPlatformError = class extends Error {
|
|
455
456
|
constructor(platform) {
|
|
456
|
-
super(`buddy-cli-
|
|
457
|
+
super(`buddy-cli-prod V1 \u76EE\u524D\u53EA\u652F\u6301 macOS\uFF0C\u5F53\u524D\u7CFB\u7EDF\u662F ${platform}`);
|
|
457
458
|
this.platform = platform;
|
|
458
459
|
this.name = "UnsupportedDeveloperPlatformError";
|
|
459
460
|
}
|
|
@@ -476,7 +477,7 @@ import { dirname, join } from "node:path";
|
|
|
476
477
|
import { homedir } from "node:os";
|
|
477
478
|
import { createHash as createHash2 } from "node:crypto";
|
|
478
479
|
import { setTimeout as delay } from "node:timers/promises";
|
|
479
|
-
var defaultUpdateCache = () => join(homedir(), ".cache", "buddy-cli-
|
|
480
|
+
var defaultUpdateCache = () => join(homedir(), ".cache", "buddy-cli-prod", "updates");
|
|
480
481
|
var globalUpdateLock = (cache, prefix) => join(cache, "locks", createHash2("sha256").update(prefix).digest("hex"));
|
|
481
482
|
async function withUpdateLock(path, signal, action) {
|
|
482
483
|
await mkdir(dirname(path), { recursive: true, mode: 448 });
|
|
@@ -565,15 +566,15 @@ async function globalInstallation(packageRoot, packageName) {
|
|
|
565
566
|
// apps/cli/src/self-update.ts
|
|
566
567
|
var PACKAGE = "@my-life-buddies/cli";
|
|
567
568
|
var REGISTRY = "https://registry.npmjs.org/";
|
|
568
|
-
var MANUAL_UPDATE = `npm install --global --prefix "$HOME/.local/share/buddy-cli/
|
|
569
|
+
var MANUAL_UPDATE = `npm install --global --prefix "$HOME/.local/share/buddy-cli/prod" ${PACKAGE}@prod --registry=${REGISTRY} --prefer-online`;
|
|
569
570
|
var execute = promisify(execFile);
|
|
570
571
|
var HELP = `\u7528\u6CD5:
|
|
571
|
-
buddy-cli-
|
|
572
|
-
buddy-cli-
|
|
573
|
-
buddy-cli-
|
|
572
|
+
buddy-cli-prod --version [--json]
|
|
573
|
+
buddy-cli-prod update --check [--json]
|
|
574
|
+
buddy-cli-prod update [--json]
|
|
574
575
|
|
|
575
576
|
--version \u67E5\u770B\u5F53\u524D\u8FD0\u884C\u7684 CLI \u7248\u672C\uFF08\u65E0\u9700\u8054\u7F51\uFF09
|
|
576
|
-
--check \u68C0\u67E5\u516C\u5171 npm \u7684
|
|
577
|
+
--check \u68C0\u67E5\u516C\u5171 npm \u7684 prod \u7248\u672C\uFF0C\u4E0D\u5B89\u88C5
|
|
577
578
|
--json \u8F93\u51FA JSON\uFF0C\u4F9B Coding Agent \u6216\u811A\u672C\u8BFB\u53D6
|
|
578
579
|
|
|
579
580
|
\u65E0\u9700\u767B\u5F55\u642D\u642D\u8D26\u53F7\uFF0C\u4E5F\u65E0\u9700\u8FDB\u5165\u642D\u5B50\u5DE5\u7A0B\u3002
|
|
@@ -581,7 +582,7 @@ var HELP = `\u7528\u6CD5:
|
|
|
581
582
|
\u5B89\u88C5\u4E3B\u52A8\u5237\u65B0 npm \u7248\u672C\u7F13\u5B58\uFF0C\u627E\u4E0D\u5230\u7248\u672C\uFF08ETARGET\uFF09\u65F6\u6700\u591A\u91CD\u8BD5\u4E00\u6B21\uFF1B\u5931\u8D25\u8BF4\u660E\u5177\u4F53\u539F\u56E0\u3002
|
|
582
583
|
--help\u3001\u5404\u547D\u4EE4 --help \u4E0E --version \u79BB\u7EBF\u53EF\u7528\uFF1B\u67E5\u8BE2\u6216\u66F4\u65B0\u5931\u8D25\u65F6\u505C\u6B62\u4E1A\u52A1\u64CD\u4F5C\u3002
|
|
583
584
|
update \u66F4\u65B0\u5F53\u524D CLI \u6240\u5728\u7684 npm \u5B89\u88C5\u76EE\u5F55\uFF08\u542B --global --prefix \u81EA\u5B9A\u4E49\u76EE\u5F55\uFF09\uFF0C\u4E0D\u4FEE\u6539\u5176\u4ED6\u5B89\u88C5\u6216\u5DE5\u7A0B Runtime \u4F9D\u8D56\u3002
|
|
584
|
-
\u540C\u4E00\u5305 latest/dev \u9700\u5206\u76EE\u5F55\u5B89\u88C5\u624D\u80FD\u5171\u5B58\
|
|
585
|
+
\u540C\u4E00\u5305 latest/dev/prod \u9700\u5206\u76EE\u5F55\u5B89\u88C5\u624D\u80FD\u5171\u5B58\uFF1BPROD \u547D\u4EE4\u4E3A buddy-cli-prod\uFF0C\u6B63\u5F0F\u547D\u4EE4\u4E3A buddy-cli\u3002
|
|
585
586
|
\u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u6216\u5F53\u524D\u7248\u672C\u66F4\u9AD8\u65F6\u4E0D\u5B89\u88C5\u3001\u4E0D\u964D\u7EA7\u3002
|
|
586
587
|
\u6E90\u7801\u3001npm link\u3001\u5C40\u90E8\u5B89\u88C5\u6216 npx \u7684\u6B63\u5E38\u547D\u4EE4\u4F7F\u7528\u7F13\u5B58\u7684\u65B0\u7248\u6267\u884C\uFF0C\u4E0D\u8986\u76D6\u6E90\u7801\u6216\u5DE5\u7A0B\u4F9D\u8D56\u3002
|
|
587
588
|
\u4E0A\u8FF0\u5B89\u88C5\u65B9\u5F0F\u4E0D\u80FD\u7528 update \u5355\u72EC\u4FEE\u6539\u539F\u5B89\u88C5\uFF0C\u8BF7\u6CBF\u7528\u539F\u6765\u7684\u5B89\u88C5\u65B9\u5F0F\u66F4\u65B0\u3002
|
|
@@ -619,7 +620,7 @@ async function latestVersion(options) {
|
|
|
619
620
|
const timeout = AbortSignal.timeout(1e4);
|
|
620
621
|
const signal = options.signal ? AbortSignal.any([options.signal, timeout]) : timeout;
|
|
621
622
|
try {
|
|
622
|
-
const response = await (options.fetch ?? globalThis.fetch)(`${REGISTRY}${encodeURIComponent(PACKAGE)}/
|
|
623
|
+
const response = await (options.fetch ?? globalThis.fetch)(`${REGISTRY}${encodeURIComponent(PACKAGE)}/prod`, {
|
|
623
624
|
signal,
|
|
624
625
|
headers: { Accept: "application/json" },
|
|
625
626
|
redirect: "error"
|
|
@@ -628,7 +629,7 @@ async function latestVersion(options) {
|
|
|
628
629
|
const metadata = await response.json();
|
|
629
630
|
if (metadata?.name !== PACKAGE) throw new Error("npm \u8FD4\u56DE\u7684\u5305\u540D\u4E0D\u5339\u914D");
|
|
630
631
|
parseVersion(metadata.version);
|
|
631
|
-
if (typeof metadata.version !== "string" || !/^\d+\.\d+\.\d+-
|
|
632
|
+
if (typeof metadata.version !== "string" || !/^\d+\.\d+\.\d+-rc\.\d+$/.test(metadata.version)) throw new Error("npm prod \u672A\u6307\u5411 x.y.z-rc.N \u7248\u672C\uFF1BPROD CLI \u4E0D\u4F1A\u8DE8\u6E20\u9053\u66F4\u65B0\uFF0C\u8BF7\u8054\u7CFB\u53D1\u5E03\u8005\u4FEE\u6B63 prod \u6807\u7B7E");
|
|
632
633
|
return metadata.version;
|
|
633
634
|
} catch (cause) {
|
|
634
635
|
if (options.signal?.aborted) throw new Error("\u64CD\u4F5C\u5DF2\u53D6\u6D88\u3002");
|
|
@@ -637,19 +638,19 @@ async function latestVersion(options) {
|
|
|
637
638
|
}
|
|
638
639
|
}
|
|
639
640
|
async function installUpdate(version, options) {
|
|
640
|
-
if (!/^\d+\.\d+\.\d+-
|
|
641
|
+
if (!/^\d+\.\d+\.\d+-rc\.\d+$/.test(version)) throw new Error("PROD CLI \u53EA\u80FD\u66F4\u65B0 x.y.z-rc.N \u7248\u672C\uFF0C\u4E0D\u4F1A\u8DE8\u6E20\u9053\u5B89\u88C5\u3002");
|
|
641
642
|
const runNpm = options.runNpm ?? ((args, settings2) => execute("npm", args, { ...settings2, encoding: "utf8", maxBuffer: 4 * 1024 * 1024 }));
|
|
642
643
|
const settings = { cwd: homedir2(), signal: options.signal, timeout: 1e4 };
|
|
643
644
|
const installation = await globalInstallation(options.packageRoot, PACKAGE);
|
|
644
645
|
if (!installation) {
|
|
645
|
-
throw new Error("\u5F53\u524D CLI \u662F\u6E90\u7801\u3001\u94FE\u63A5\u6216\u9879\u76EE\u5185\u5B89\u88C5\uFF0C\u4E0D\u80FD\u76F4\u63A5\u6539\u5199\u539F\u5B89\u88C5\u3002\u6B63\u5E38\u547D\u4EE4\u4F1A\u4ECE
|
|
646
|
+
throw new Error("\u5F53\u524D CLI \u662F\u6E90\u7801\u3001\u94FE\u63A5\u6216\u9879\u76EE\u5185\u5B89\u88C5\uFF0C\u4E0D\u80FD\u76F4\u63A5\u6539\u5199\u539F\u5B89\u88C5\u3002\u6B63\u5E38\u547D\u4EE4\u4F1A\u4ECE PROD \u72EC\u7ACB\u7F13\u5B58\u8FD0\u884C\u65B0\u7248\uFF1B\u5355\u72EC\u66F4\u65B0\u8BF7\u6CBF\u7528\u539F\u6765\u7684\u5B89\u88C5\u65B9\u5F0F\u3002");
|
|
646
647
|
}
|
|
647
648
|
const { root: installedRoot, prefix } = installation;
|
|
648
|
-
const manualUpdate = `npm install --global --prefix '${prefix.replace(/'/gu, "'\\''")}' ${PACKAGE}@
|
|
649
|
+
const manualUpdate = `npm install --global --prefix '${prefix.replace(/'/gu, "'\\''")}' ${PACKAGE}@prod --registry=${REGISTRY} --prefer-online`;
|
|
649
650
|
await withUpdateLock(globalUpdateLock(options.cacheDirectory ?? defaultUpdateCache(), prefix), options.signal, async () => {
|
|
650
651
|
const current = JSON.parse(await readFile(join3(installedRoot, "package.json"), "utf8"));
|
|
651
|
-
if (current.name !== PACKAGE || !/^\d+\.\d+\.\d+-
|
|
652
|
-
throw new Error("\u5F53\u524D\u5B89\u88C5\u76EE\u5F55\u5DF2\u88AB\u5176\u4ED6\u6E20\u9053\u66FF\u6362\uFF0C\u5DF2\u505C\u6B62\u66F4\u65B0\u3002\u8BF7\u5C06 latest \u548C
|
|
652
|
+
if (current.name !== PACKAGE || !/^\d+\.\d+\.\d+-rc\.\d+$/.test(current.version)) {
|
|
653
|
+
throw new Error("\u5F53\u524D\u5B89\u88C5\u76EE\u5F55\u5DF2\u88AB\u5176\u4ED6\u6E20\u9053\u66FF\u6362\uFF0C\u5DF2\u505C\u6B62\u66F4\u65B0\u3002\u8BF7\u5C06 latest\u3001dev \u548C prod \u5B89\u88C5\u5230\u4E0D\u540C\u76EE\u5F55\uFF0C\u518D\u91CD\u65B0\u8FD0\u884C buddy-cli-prod\u3002");
|
|
653
654
|
}
|
|
654
655
|
if (current.name === PACKAGE && current.version === version) return;
|
|
655
656
|
if (current.name === PACKAGE && compareVersions(current.version, version) > 0) throw new Error("\u53E6\u4E00\u4E2A\u8FDB\u7A0B\u5DF2\u5B89\u88C5\u66F4\u65B0\u7684 CLI\uFF0C\u8BF7\u91CD\u65B0\u6267\u884C\u547D\u4EE4\u3002");
|
|
@@ -667,13 +668,13 @@ async function installUpdate(version, options) {
|
|
|
667
668
|
"--no-fund"
|
|
668
669
|
], { ...settings, timeout: 18e4 }, runNpm);
|
|
669
670
|
} catch (cause) {
|
|
670
|
-
if (options.signal?.aborted) throw new Error("\u66F4\u65B0\u5DF2\u53D6\u6D88\uFF0C\u8BF7\u8FD0\u884C buddy-cli-
|
|
671
|
+
if (options.signal?.aborted) throw new Error("\u66F4\u65B0\u5DF2\u53D6\u6D88\uFF0C\u8BF7\u8FD0\u884C buddy-cli-prod --version \u68C0\u67E5\u5B89\u88C5\u72B6\u6001\u3002");
|
|
671
672
|
throw new Error(`${cause instanceof Error ? cause.message : "npm \u5B89\u88C5\u672A\u5B8C\u6210\u3002"}
|
|
672
673
|
\u4E5F\u53EF\u624B\u52A8\u5B89\u88C5\uFF1A${manualUpdate}`);
|
|
673
674
|
}
|
|
674
675
|
const installed = JSON.parse(await readFile(join3(installedRoot, "package.json"), "utf8"));
|
|
675
676
|
if (installed.name !== PACKAGE || installed.version !== version) {
|
|
676
|
-
throw new Error(`npm \u5DF2\u7ED3\u675F\uFF0C\u4F46\u672A\u786E\u8BA4\u5B89\u88C5\u5230 ${version}\u3002\u8BF7\u8FD0\u884C buddy-cli-
|
|
677
|
+
throw new Error(`npm \u5DF2\u7ED3\u675F\uFF0C\u4F46\u672A\u786E\u8BA4\u5B89\u88C5\u5230 ${version}\u3002\u8BF7\u8FD0\u884C buddy-cli-prod --version \u68C0\u67E5\uFF0C\u5FC5\u8981\u65F6\u91CD\u8BD5\uFF1A${manualUpdate}`);
|
|
677
678
|
}
|
|
678
679
|
});
|
|
679
680
|
}
|
|
@@ -683,13 +684,13 @@ async function runSelfUpdateCommand(args, io, options) {
|
|
|
683
684
|
const json = args.includes("--json");
|
|
684
685
|
const fail = (message, exitCode) => {
|
|
685
686
|
if (json) io.write(JSON.stringify({ package: PACKAGE, currentVersion: options.version, error: message }));
|
|
686
|
-
else io.writeError(`buddy-cli-
|
|
687
|
+
else io.writeError(`buddy-cli-prod: ${message}`);
|
|
687
688
|
return { exitCode };
|
|
688
689
|
};
|
|
689
690
|
const flags = args.slice(1);
|
|
690
691
|
const allowed = versionOnly ? ["--json", "--help", "-h"] : ["--check", "--json", "--help", "-h"];
|
|
691
692
|
if (flags.some((flag) => !allowed.includes(flag)) || new Set(flags).size !== flags.length) {
|
|
692
|
-
return fail("\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u8FD0\u884C buddy-cli-
|
|
693
|
+
return fail("\u53C2\u6570\u65E0\u6548\uFF0C\u8BF7\u8FD0\u884C buddy-cli-prod update --help \u67E5\u770B\u7528\u6CD5\u3002", 2);
|
|
693
694
|
}
|
|
694
695
|
if (flags.includes("--help") || flags.includes("-h")) {
|
|
695
696
|
if (json) io.write(JSON.stringify({ help: HELP }));
|
|
@@ -723,8 +724,8 @@ async function runSelfUpdateCommand(args, io, options) {
|
|
|
723
724
|
...updated ? { installedVersion: latest } : {}
|
|
724
725
|
}));
|
|
725
726
|
} else if (updated) io.write(`CLI \u5DF2\u66F4\u65B0\uFF1A${options.version} \u2192 ${latest}\u3002`);
|
|
726
|
-
else if (comparison > 0) io.write(`\u53D1\u73B0\u65B0\u7248\u672C\uFF1A${options.version} \u2192 ${latest}\u3002\u8FD0\u884C buddy-cli-
|
|
727
|
-
else if (comparison < 0) io.write(`\u5F53\u524D\u7248\u672C ${options.version} \u9AD8\u4E8E npm
|
|
727
|
+
else if (comparison > 0) io.write(`\u53D1\u73B0\u65B0\u7248\u672C\uFF1A${options.version} \u2192 ${latest}\u3002\u8FD0\u884C buddy-cli-prod update \u66F4\u65B0\u3002`);
|
|
728
|
+
else if (comparison < 0) io.write(`\u5F53\u524D\u7248\u672C ${options.version} \u9AD8\u4E8E npm prod ${latest}\uFF0C\u65E0\u9700\u66F4\u65B0\u3002`);
|
|
728
729
|
else io.write(`\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\uFF1A${options.version}\u3002`);
|
|
729
730
|
return { exitCode: 0 };
|
|
730
731
|
} catch (cause) {
|
|
@@ -756,7 +757,7 @@ import { promisify as promisify2 } from "node:util";
|
|
|
756
757
|
var PACKAGE2 = "@my-life-buddies/cli";
|
|
757
758
|
var REGISTRY2 = "https://registry.npmjs.org/";
|
|
758
759
|
var execute2 = promisify2(execFile2);
|
|
759
|
-
var HANDOFF_ENV = "
|
|
760
|
+
var HANDOFF_ENV = "BUDDY_CLI_PROD_UPDATE_HANDOFF";
|
|
760
761
|
async function installedVersion(root) {
|
|
761
762
|
try {
|
|
762
763
|
const pkg = JSON.parse(await readFile2(join4(root, "package.json"), "utf8"));
|
|
@@ -851,7 +852,7 @@ async function runAutoUpdate(args, io, options) {
|
|
|
851
852
|
const env = { ...options.env ?? process.env };
|
|
852
853
|
const pin = env.BUDDY_CLI_PIN_VERSION;
|
|
853
854
|
if (pin !== void 0) {
|
|
854
|
-
if (!/^\d+\.\d+\.\d+-
|
|
855
|
+
if (!/^\d+\.\d+\.\d+-rc\.\d+$/.test(pin) || pin !== options.version) {
|
|
855
856
|
throw new Error(`CLI \u7248\u672C\u9501\u5B9A\u4E0D\u5339\u914D\uFF1A\u8981\u6C42 ${pin}\uFF0C\u5F53\u524D ${options.version}\u3002\u8BF7\u5B89\u88C5 @my-life-buddies/cli@${pin} \u6216 unset BUDDY_CLI_PIN_VERSION\u3002`);
|
|
856
857
|
}
|
|
857
858
|
return void 0;
|
|
@@ -980,10 +981,9 @@ try {
|
|
|
980
981
|
if (maintenance === void 0 && !offlineHelp) resolvePlatformUrl2();
|
|
981
982
|
const result = maintenance ?? await runBuddyCli(args, terminal, {
|
|
982
983
|
runtimeCatalog: { signal: lifecycle.signal },
|
|
983
|
-
scaffoldPlatformAgent: (root, name
|
|
984
|
+
scaffoldPlatformAgent: (root, name) => scaffoldPlatformAgent(root, name, {
|
|
984
985
|
resolveDependencies: (template) => latestRuntimeTemplate(template, {
|
|
985
986
|
signal: lifecycle.signal,
|
|
986
|
-
runtimeVersion,
|
|
987
987
|
report: (message) => terminal.write(message)
|
|
988
988
|
})
|
|
989
989
|
}),
|
|
@@ -997,7 +997,7 @@ try {
|
|
|
997
997
|
process.exitCode = result.exitCode;
|
|
998
998
|
} catch (cause) {
|
|
999
999
|
const message = cause instanceof Error ? cause.message : String(cause);
|
|
1000
|
-
terminal.writeError(`buddy-cli-
|
|
1000
|
+
terminal.writeError(`buddy-cli-prod: ${message}`);
|
|
1001
1001
|
process.exitCode = 1;
|
|
1002
1002
|
} finally {
|
|
1003
1003
|
unbindTermination();
|