@bolloon/bolloon-agent 0.5.0 → 0.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.
- package/README.md +39 -0
- package/dist/agents/agent-lang.js +101 -0
- package/dist/agents/agent-manifest-protocol.js +4 -0
- package/dist/agents/execution-supervisor.js +87 -5
- package/dist/agents/gateway-group.js +44 -3
- package/dist/agents/model-policy.js +651 -0
- package/dist/agents/pi-sdk-tools.js +84 -33
- package/dist/agents/pi-sdk.js +184 -31
- package/dist/agents/run-store.js +53 -0
- package/dist/agents/task/task-runner.js +8 -1
- package/dist/agents/workflow-pivot-loop.js +22 -13
- package/dist/cli/clipboard.js +65 -0
- package/dist/cli/ink-app.js +145 -17
- package/dist/cli/log-gate.js +386 -0
- package/dist/cli/mention-data.js +2 -0
- package/dist/cli/model-selector.js +538 -0
- package/dist/cli/reply-hygiene.js +54 -0
- package/dist/cli/setup-wizard.js +686 -69
- package/dist/cli/startup-notice.js +160 -0
- package/dist/cli/stores.js +22 -1
- package/dist/cli/theme.js +49 -0
- package/dist/cli/tui-select.js +970 -0
- package/dist/cli-entry.js +125 -18
- package/dist/efficode/compress.js +78 -0
- package/dist/efficode/crc32.js +38 -0
- package/dist/efficode/did.js +66 -0
- package/dist/efficode/index.js +24 -0
- package/dist/efficode/lz77.js +170 -0
- package/dist/efficode/negotiate.js +187 -0
- package/dist/efficode/ops.js +87 -0
- package/dist/efficode/packet.js +271 -0
- package/dist/efficode/types.js +45 -0
- package/dist/electron-build/agents/agent-manifest-protocol.js +4 -0
- package/dist/electron-build/agents/agent-manifest-protocol.js.map +1 -1
- package/dist/electron-build/agents/execution-supervisor.js +86 -4
- package/dist/electron-build/agents/execution-supervisor.js.map +1 -1
- package/dist/electron-build/agents/goal-store.js.map +1 -1
- package/dist/electron-build/agents/model-policy.js +706 -0
- package/dist/electron-build/agents/model-policy.js.map +1 -0
- package/dist/electron-build/agents/pi-sdk-tools.js +84 -33
- package/dist/electron-build/agents/pi-sdk-tools.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk-types.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk.js +185 -31
- package/dist/electron-build/agents/pi-sdk.js.map +1 -1
- package/dist/electron-build/agents/run-store.js +55 -1
- package/dist/electron-build/agents/run-store.js.map +1 -1
- package/dist/electron-build/agents/task/task-runner.js +8 -1
- package/dist/electron-build/agents/task/task-runner.js.map +1 -1
- package/dist/electron-build/agents/workflow-pivot-loop.js +22 -13
- package/dist/electron-build/agents/workflow-pivot-loop.js.map +1 -1
- package/dist/electron-build/llm/config-store.js +146 -6
- package/dist/electron-build/llm/config-store.js.map +1 -1
- package/dist/electron-build/llm/connection-probe.js +764 -0
- package/dist/electron-build/llm/connection-probe.js.map +1 -0
- package/dist/electron-build/llm/custom-provider-store.js +272 -0
- package/dist/electron-build/llm/custom-provider-store.js.map +1 -0
- package/dist/electron-build/llm/data/provider-catalog-baked.js +23 -0
- package/dist/electron-build/llm/data/provider-catalog-baked.js.map +1 -0
- package/dist/electron-build/llm/model-catalog.js +778 -0
- package/dist/electron-build/llm/model-catalog.js.map +1 -0
- package/dist/electron-build/llm/model-discovery.js +1202 -0
- package/dist/electron-build/llm/model-discovery.js.map +1 -0
- package/dist/electron-build/llm/model-selection.js +1315 -0
- package/dist/electron-build/llm/model-selection.js.map +1 -0
- package/dist/electron-build/llm/pi-ai.js +751 -55
- package/dist/electron-build/llm/pi-ai.js.map +1 -1
- package/dist/electron-build/llm/provider-catalog.js +969 -0
- package/dist/electron-build/llm/provider-catalog.js.map +1 -0
- package/dist/electron-build/llm/provider-registry.js +950 -0
- package/dist/electron-build/llm/provider-registry.js.map +1 -0
- package/dist/electron-build/llm/tool-name.js +266 -0
- package/dist/electron-build/llm/tool-name.js.map +1 -0
- package/dist/electron-build/utils/dual-source-facts.js +236 -0
- package/dist/electron-build/utils/dual-source-facts.js.map +1 -0
- package/dist/electron-build/utils/dual-source.js +32 -156
- package/dist/electron-build/utils/dual-source.js.map +1 -1
- package/dist/electron-build/utils/update-manager.js +22 -72
- package/dist/electron-build/utils/update-manager.js.map +1 -1
- package/dist/electron-build/utils/update-state.js +2 -19
- package/dist/electron-build/utils/update-state.js.map +1 -1
- package/dist/electron-build/utils/version-identity.js +193 -0
- package/dist/electron-build/utils/version-identity.js.map +1 -0
- package/dist/electron-build/utils/version-info.js +47 -101
- package/dist/electron-build/utils/version-info.js.map +1 -1
- package/dist/index.js +282 -96
- package/dist/ios/bolloon-web.json +10 -0
- package/dist/ios/mobile-contacts.js +44 -11
- package/dist/ios/mobile-core.js +1723 -84
- package/dist/ios/mobile-tasks.js +339 -0
- package/dist/ios/mobile-update.js +1442 -0
- package/dist/ios/mobile.js +308 -35
- package/dist/ios/routes-llm-config.js +344 -52
- package/dist/ios/routes-mobile-tasks.js +353 -0
- package/dist/ios/server.js +163 -4
- package/dist/ios/sw.js +1 -1
- package/dist/llm/config-store.js +146 -6
- package/dist/llm/connection-probe.js +744 -0
- package/dist/llm/custom-provider-store.js +224 -0
- package/dist/llm/data/provider-catalog-baked.js +19 -0
- package/dist/llm/model-catalog.js +717 -0
- package/dist/llm/model-discovery.js +1137 -0
- package/dist/llm/model-selection.js +1241 -0
- package/dist/llm/pi-ai.js +732 -54
- package/dist/llm/provider-catalog.js +898 -0
- package/dist/llm/provider-registry.js +917 -0
- package/dist/llm/tool-name.js +220 -0
- package/dist/setup/onboard.js +34 -8
- package/dist/utils/dual-source-facts.js +223 -0
- package/dist/utils/dual-source.js +12 -141
- package/dist/utils/update-manager.js +16 -59
- package/dist/utils/update-state.js +6 -18
- package/dist/utils/version-identity.js +176 -0
- package/dist/utils/version-info.js +9 -78
- package/dist/web/bolloon-web.json +10 -0
- package/dist/web/mobile-core.js +1721 -84
- package/dist/web/mobile-update.js +1442 -0
- package/dist/web/mobile.js +372 -35
- package/dist/web/routes-llm-config.js +344 -52
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/scripts/build-web.ts +36 -0
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* - 错误分类 `classifyGithubError` 与 §3 的 `classifyRegistryError` **并列, 不合并**
|
|
11
11
|
* - dev 快照的**取源与构建**也在这里 (update-manager 只负责"切换 + 验证 + 回滚", 不另造一套)
|
|
12
12
|
*
|
|
13
|
+
* 2026-09-26 拆分 (手机端要复用同一份语义): **纯语义那一半**去 `dual-source-facts.ts`
|
|
14
|
+
* (分类 / 交叉校验 / dev 快照比较 —— 无 `node:`, 因此能打进手机端 WebView bundle);
|
|
15
|
+
* 本文件只留**需要网络与子进程**的那一半 (真调 api.github.com / codeload / 现场构建),
|
|
16
|
+
* 并把纯那一半的名字原样再导出 —— 既有 `from './dual-source.js'` 的 import 一行不用改。
|
|
17
|
+
*
|
|
13
18
|
* 硬口径 (§12.5, 验收核心):
|
|
14
19
|
* - 源不可达 / 版本不存在 → **拒绝并说清** (带具体分类), 绝不静默装回旧版
|
|
15
20
|
* - 不编造不存在的路径: 本仓 GitHub 上**真的没有 Release** (0 个), 所以 "Release 缺" 时
|
|
@@ -49,14 +54,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
49
54
|
};
|
|
50
55
|
})();
|
|
51
56
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
exports.DEV_CHANNEL_WARNING = void 0;
|
|
53
|
-
exports.toGithubReport = toGithubReport;
|
|
54
|
-
exports.renderGithubReportLine = renderGithubReportLine;
|
|
55
|
-
exports.classifyGithubError = classifyGithubError;
|
|
57
|
+
exports.DEV_CHANNEL_WARNING = exports.compareDevSnapshots = exports.crossCheckStable = exports.renderGithubReportLine = exports.toGithubReport = exports.numericCompare = exports.newestGithubVersion = exports.classifyRegistryError = exports.classifyGithubError = exports.OFFLINE_CODES = exports.GITHUB_REASONS = void 0;
|
|
56
58
|
exports.fetchGithubFacts = fetchGithubFacts;
|
|
57
|
-
exports.newestGithubVersion = newestGithubVersion;
|
|
58
|
-
exports.crossCheckStable = crossCheckStable;
|
|
59
|
-
exports.compareDevSnapshots = compareDevSnapshots;
|
|
60
59
|
exports.prepareDevSnapshot = prepareDevSnapshot;
|
|
61
60
|
const fs = __importStar(require("fs"));
|
|
62
61
|
const fsp = __importStar(require("fs/promises"));
|
|
@@ -65,34 +64,24 @@ const http = __importStar(require("http"));
|
|
|
65
64
|
const https = __importStar(require("https"));
|
|
66
65
|
const child_process_1 = require("child_process");
|
|
67
66
|
const version_info_js_1 = require("./version-info.js");
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
function
|
|
86
|
-
if (!g)
|
|
87
|
-
return 'GitHub 源: 未查询';
|
|
88
|
-
if (!g.reachable) {
|
|
89
|
-
const retry = g.retryAt ? `, 限流重试时间 ${g.retryAt}` : '';
|
|
90
|
-
return `GitHub 源: 不可达 — github_unavailable(${g.reason}) ${g.detail || ''}${retry}`;
|
|
91
|
-
}
|
|
92
|
-
return `GitHub 源: 可达 · master HEAD ${g.headSha ? g.headSha.slice(0, 7) : '未知'} · Release ${g.releases ?? 0} 个 · Tag ${g.tags ?? 0} 个 · 最新版本标签 ${g.newestVersion || '无'}${g.partial ? ' (部分请求失败)' : ''}`;
|
|
93
|
-
}
|
|
94
|
-
// ── HTTP ────────────────────────────────────────────────────────────────────
|
|
95
|
-
const OFFLINE_CODES = new Set(['ENOTFOUND', 'EAI_AGAIN', 'ECONNREFUSED', 'ECONNRESET', 'ETIMEDOUT', 'EHOSTUNREACH', 'ENETUNREACH', 'ENETDOWN', 'EAI_FAIL', 'UND_ERR_CONNECT_TIMEOUT', 'CERT_HAS_EXPIRED']);
|
|
67
|
+
const dual_source_facts_js_1 = require("./dual-source-facts.js");
|
|
68
|
+
/**
|
|
69
|
+
* 纯语义那一半 (错误分类 / 交叉校验 / dev 快照比较 / 报告渲染) —— **唯一一份在
|
|
70
|
+
* `dual-source-facts.ts`** (桌面与手机端共用)。这里原样再导出: 桌面既有 import 路径不变,
|
|
71
|
+
* 手机端 WebView 直接 import 那份纯模块 (没有 `node:` ⇒ 能进 bundle)。
|
|
72
|
+
*/
|
|
73
|
+
var dual_source_facts_js_2 = require("./dual-source-facts.js");
|
|
74
|
+
Object.defineProperty(exports, "GITHUB_REASONS", { enumerable: true, get: function () { return dual_source_facts_js_2.GITHUB_REASONS; } });
|
|
75
|
+
Object.defineProperty(exports, "OFFLINE_CODES", { enumerable: true, get: function () { return dual_source_facts_js_2.OFFLINE_CODES; } });
|
|
76
|
+
Object.defineProperty(exports, "classifyGithubError", { enumerable: true, get: function () { return dual_source_facts_js_2.classifyGithubError; } });
|
|
77
|
+
Object.defineProperty(exports, "classifyRegistryError", { enumerable: true, get: function () { return dual_source_facts_js_2.classifyRegistryError; } });
|
|
78
|
+
Object.defineProperty(exports, "newestGithubVersion", { enumerable: true, get: function () { return dual_source_facts_js_2.newestGithubVersion; } });
|
|
79
|
+
Object.defineProperty(exports, "numericCompare", { enumerable: true, get: function () { return dual_source_facts_js_2.numericCompare; } });
|
|
80
|
+
Object.defineProperty(exports, "toGithubReport", { enumerable: true, get: function () { return dual_source_facts_js_2.toGithubReport; } });
|
|
81
|
+
Object.defineProperty(exports, "renderGithubReportLine", { enumerable: true, get: function () { return dual_source_facts_js_2.renderGithubReportLine; } });
|
|
82
|
+
Object.defineProperty(exports, "crossCheckStable", { enumerable: true, get: function () { return dual_source_facts_js_2.crossCheckStable; } });
|
|
83
|
+
Object.defineProperty(exports, "compareDevSnapshots", { enumerable: true, get: function () { return dual_source_facts_js_2.compareDevSnapshots; } });
|
|
84
|
+
Object.defineProperty(exports, "DEV_CHANNEL_WARNING", { enumerable: true, get: function () { return dual_source_facts_js_2.DEV_CHANNEL_WARNING; } });
|
|
96
85
|
/** 可选 GitHub token (只为提配额: 匿名 60 次/小时, 认证 5000 次/小时)。**永不打印、永不入库**。 */
|
|
97
86
|
function githubToken(env = process.env) {
|
|
98
87
|
const t = env.GITHUB_TOKEN || env.GH_TOKEN || env.BOLLOON_GITHUB_TOKEN;
|
|
@@ -118,26 +107,6 @@ function httpGetRaw(url, timeoutMs, token) {
|
|
|
118
107
|
req.on('timeout', () => { req.destroy(new Error('timeout')); });
|
|
119
108
|
});
|
|
120
109
|
}
|
|
121
|
-
/** 网络类 → offline; 403/429 → rate_limited; 404 → not_found; 其它 → http_error。 */
|
|
122
|
-
function classifyGithubError(err, httpStatus, headers = {}) {
|
|
123
|
-
const retryAt = headers['x-ratelimit-reset']
|
|
124
|
-
? new Date(Number(headers['x-ratelimit-reset']) * 1000).toISOString()
|
|
125
|
-
: null;
|
|
126
|
-
const code = String(err?.code || '');
|
|
127
|
-
if (OFFLINE_CODES.has(code) || /timeout|timed out|ENOTFOUND|getaddrinfo|network|socket hang up|超时/i.test(String(err?.message || ''))) {
|
|
128
|
-
return { kind: 'github_unavailable', reason: 'offline', detail: `${code || err?.message || '网络不可达'}`, retryAt: null };
|
|
129
|
-
}
|
|
130
|
-
if (httpStatus === 403 || httpStatus === 429) {
|
|
131
|
-
return { kind: 'github_unavailable', reason: 'rate_limited', detail: `GitHub 返回 HTTP ${httpStatus} (限流/权限)`, retryAt };
|
|
132
|
-
}
|
|
133
|
-
if (httpStatus === 404) {
|
|
134
|
-
return { kind: 'github_unavailable', reason: 'not_found', detail: `GitHub 上没有 ${version_info_js_1.GITHUB_UPSTREAM_SLUG} 的该项记录 (HTTP 404)`, retryAt: null };
|
|
135
|
-
}
|
|
136
|
-
if (httpStatus && httpStatus >= 400) {
|
|
137
|
-
return { kind: 'github_unavailable', reason: 'http_error', detail: `GitHub 返回 HTTP ${httpStatus}`, retryAt };
|
|
138
|
-
}
|
|
139
|
-
return { kind: 'github_unavailable', reason: 'http_error', detail: code || err?.message || '未知错误', retryAt: null };
|
|
140
|
-
}
|
|
141
110
|
/**
|
|
142
111
|
* 查 GitHub 的三个事实: Releases / Tags / master HEAD。
|
|
143
112
|
* **任何一个请求失败 → 整条 `github_unavailable`** (带分类), 但把已拿到的那部分 facts 一起带回去
|
|
@@ -167,11 +136,11 @@ async function fetchGithubFacts(opts = {}) {
|
|
|
167
136
|
releases = Array.isArray(arr) ? arr.map((x) => String(x?.tag_name || '')).filter(Boolean) : [];
|
|
168
137
|
}
|
|
169
138
|
else {
|
|
170
|
-
note(classifyGithubError(null, r.status, r.headers), 'releases');
|
|
139
|
+
note((0, dual_source_facts_js_1.classifyGithubError)(null, r.status, r.headers), 'releases');
|
|
171
140
|
}
|
|
172
141
|
}
|
|
173
142
|
catch (e) {
|
|
174
|
-
note(classifyGithubError(e), 'releases');
|
|
143
|
+
note((0, dual_source_facts_js_1.classifyGithubError)(e), 'releases');
|
|
175
144
|
}
|
|
176
145
|
// 2. Tags
|
|
177
146
|
try {
|
|
@@ -183,11 +152,11 @@ async function fetchGithubFacts(opts = {}) {
|
|
|
183
152
|
: [];
|
|
184
153
|
}
|
|
185
154
|
else {
|
|
186
|
-
note(classifyGithubError(null, r.status, r.headers), 'tags');
|
|
155
|
+
note((0, dual_source_facts_js_1.classifyGithubError)(null, r.status, r.headers), 'tags');
|
|
187
156
|
}
|
|
188
157
|
}
|
|
189
158
|
catch (e) {
|
|
190
|
-
note(classifyGithubError(e), 'tags');
|
|
159
|
+
note((0, dual_source_facts_js_1.classifyGithubError)(e), 'tags');
|
|
191
160
|
}
|
|
192
161
|
// 3. master HEAD (dev 通道的身份来源)
|
|
193
162
|
try {
|
|
@@ -200,11 +169,11 @@ async function fetchGithubFacts(opts = {}) {
|
|
|
200
169
|
}
|
|
201
170
|
else {
|
|
202
171
|
// 404 在这里的语义就是"没有 master 分支"(§12.3)
|
|
203
|
-
note(classifyGithubError(null, r.status, r.headers), 'head');
|
|
172
|
+
note((0, dual_source_facts_js_1.classifyGithubError)(null, r.status, r.headers), 'head');
|
|
204
173
|
}
|
|
205
174
|
}
|
|
206
175
|
catch (e) {
|
|
207
|
-
note(classifyGithubError(e), 'head');
|
|
176
|
+
note((0, dual_source_facts_js_1.classifyGithubError)(e), 'head');
|
|
208
177
|
}
|
|
209
178
|
const facts = {
|
|
210
179
|
slug, ref: `refs/heads/${version_info_js_1.DEV_BRANCH}`, headSha, releases, tags,
|
|
@@ -216,99 +185,6 @@ async function fetchGithubFacts(opts = {}) {
|
|
|
216
185
|
}
|
|
217
186
|
return { ok: true, facts };
|
|
218
187
|
}
|
|
219
|
-
/** GitHub 上出现过的最高版本号 (Release ∪ Tag, 去掉 v 前缀)。没有 → null。 */
|
|
220
|
-
function newestGithubVersion(facts) {
|
|
221
|
-
const all = [...facts.releases, ...facts.tags.map((t) => t.name)]
|
|
222
|
-
.map((n) => String(n).trim().replace(/^v/, ''))
|
|
223
|
-
.filter((n) => /^\d+\.\d+\.\d+/.test(n));
|
|
224
|
-
if (all.length === 0)
|
|
225
|
-
return null;
|
|
226
|
-
return all.sort((a, b) => (numericCompare(a, b) < 0 ? 1 : -1))[0];
|
|
227
|
-
}
|
|
228
|
-
/** 只比数值段 (与 update-manager 的 compareVersions 同语义, 这里不反向依赖它)。 */
|
|
229
|
-
function numericCompare(a, b) {
|
|
230
|
-
const p = (v) => v.split('-')[0].split('.').map((x) => parseInt(x.replace(/\D.*$/, ''), 10) || 0);
|
|
231
|
-
const pa = p(a);
|
|
232
|
-
const pb = p(b);
|
|
233
|
-
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
234
|
-
const x = pa[i] ?? 0;
|
|
235
|
-
const y = pb[i] ?? 0;
|
|
236
|
-
if (x < y)
|
|
237
|
-
return -1;
|
|
238
|
-
if (x > y)
|
|
239
|
-
return 1;
|
|
240
|
-
}
|
|
241
|
-
return 0;
|
|
242
|
-
}
|
|
243
|
-
function hasName(names, v) {
|
|
244
|
-
const set = new Set(names.map((n) => String(n).trim().replace(/^v/, '')));
|
|
245
|
-
return set.has(v.replace(/^v/, ''));
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* stable 的交叉校验 (§12.1/§12.5): npm 仍是权威, GitHub 只回答"这次发布的记录在不在"。
|
|
249
|
-
*
|
|
250
|
-
* agree npm 的 latest 在 GitHub 上有同名 tag/Release → 两条记录指向同一版
|
|
251
|
-
* mismatch GitHub 记录了**更新的**版本而 registry 上没有 → 拒绝 (不许按 tag 去装)
|
|
252
|
-
* missing_record registry 有该版本但 GitHub 缺这条记录 → **提醒级, 不阻塞** (§12.5 原文:
|
|
253
|
-
* "报发布记录缺 Tag (提醒级, 不阻塞 stable 更新)")
|
|
254
|
-
* no_record_at_all GitHub 上一条版本记录都没有 → 如实报"暂无 tag 可交叉校验"(不编造路径)
|
|
255
|
-
*/
|
|
256
|
-
function crossCheckStable(registryLatest, facts) {
|
|
257
|
-
const common = {
|
|
258
|
-
registryLatest, githubVersion: newestGithubVersion(facts),
|
|
259
|
-
releases: facts.releases.length, tags: facts.tags.length,
|
|
260
|
-
};
|
|
261
|
-
if (!registryLatest) {
|
|
262
|
-
return { ...common, kind: 'no_record_at_all', hasTag: false, hasRelease: false, blocking: false, detail: 'npm 没有给出 latest, 无从交叉校验' };
|
|
263
|
-
}
|
|
264
|
-
const allNames = [...facts.releases, ...facts.tags.map((t) => t.name)];
|
|
265
|
-
const hasTag = hasName(facts.tags.map((t) => t.name), registryLatest);
|
|
266
|
-
const hasRelease = hasName(facts.releases, registryLatest);
|
|
267
|
-
const ghNewest = common.githubVersion;
|
|
268
|
-
/**
|
|
269
|
-
* **先判"GitHub 记录了比 registry 更新的发布"** —— 这是 §12.5 的 "Release 存在但 registry 上没有该版本 → cross_check_mismatch"。
|
|
270
|
-
* 放在 agree 之前: 即使 registry 的 latest 自己也有 tag, 只要 GitHub 上还多出一条更新的发布记录, 两个源对
|
|
271
|
-
* "当前最新是哪一版"就是不一致的 —— 这种不一致必须拦住, 不能因为"latest 有 tag"就宣布一致。
|
|
272
|
-
*/
|
|
273
|
-
if (ghNewest && numericCompare(ghNewest, registryLatest) > 0) {
|
|
274
|
-
return {
|
|
275
|
-
...common, kind: 'mismatch', hasTag, hasRelease, blocking: true,
|
|
276
|
-
detail: `GitHub 上有 ${ghNewest} 的发布记录, 但 npm registry 的 latest 还是 ${registryLatest} — 拒绝按 GitHub 的记录安装`,
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
if (hasTag || hasRelease) {
|
|
280
|
-
return {
|
|
281
|
-
...common, kind: 'agree', hasTag, hasRelease, blocking: false,
|
|
282
|
-
detail: `npm latest=${registryLatest} 在 GitHub 上有同名记录 (${hasRelease ? `Release v${registryLatest}` : `Tag v${registryLatest}`}) — 两个源指向同一版`,
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
if (allNames.length === 0) {
|
|
286
|
-
return {
|
|
287
|
-
...common, kind: 'no_record_at_all', hasTag: false, hasRelease: false, blocking: false,
|
|
288
|
-
detail: `GitHub 上暂无任何 tag / Release (0 个) — 暂无可交叉校验的记录, npm 仍是权威 (latest=${registryLatest})`,
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
return {
|
|
292
|
-
...common, kind: 'missing_record', hasTag, hasRelease, blocking: false,
|
|
293
|
-
detail: `npm latest=${registryLatest} 在 GitHub 上没有对应记录 (GitHub 最新版本标签 ${ghNewest || '无'}; Release ${facts.releases.length} 个 / Tag ${facts.tags.length} 个) — 发布记录缺 Tag, 不阻塞 stable 更新`,
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
function compareDevSnapshots(installedSha, headSha, ref = `refs/heads/${version_info_js_1.DEV_BRANCH}`) {
|
|
297
|
-
const short = (s) => (s ? s.slice(0, 7) : '未知');
|
|
298
|
-
if (!headSha) {
|
|
299
|
-
return { ref, headSha, installedSha, same: false, behind: false, detail: `${ref} 的 HEAD 读不到 — 无法判定 dev 快照新旧` };
|
|
300
|
-
}
|
|
301
|
-
if (!installedSha) {
|
|
302
|
-
return { ref, headSha, installedSha, same: false, behind: false, detail: `当前不是 dev 快照 (stable 安装) — 切到 dev 将得到 ${ref} @ ${short(headSha)}` };
|
|
303
|
-
}
|
|
304
|
-
const same = installedSha.slice(0, 7) === headSha.slice(0, 7);
|
|
305
|
-
return {
|
|
306
|
-
ref, headSha, installedSha, same, behind: !same,
|
|
307
|
-
detail: same
|
|
308
|
-
? `已是最新的 dev 快照 (${ref} @ ${short(headSha)}) — 同一个 commit`
|
|
309
|
-
: `dev 快照落后: 已装 ${short(installedSha)} → master HEAD ${short(headSha)} (按 commit sha 判定, 不看版本号)`,
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
188
|
function defaultRunNpm(args, cwd) {
|
|
313
189
|
const r = (0, child_process_1.spawnSync)('npm', args, { cwd, encoding: 'utf-8', timeout: 900_000, maxBuffer: 32 * 1024 * 1024 });
|
|
314
190
|
return { code: r.status ?? 1, stdout: r.stdout || '', stderr: r.stderr || '' };
|
|
@@ -326,7 +202,7 @@ async function downloadGithubSnapshot(sha, destParent, env, timeoutMs) {
|
|
|
326
202
|
const tk = githubToken(env);
|
|
327
203
|
const req = client.get(url, { timeout: timeoutMs, headers: { 'User-Agent': 'bolloon-update', ...(tk ? { Authorization: `Bearer ${tk}` } : {}) } }, (res) => {
|
|
328
204
|
if ((res.statusCode || 0) >= 400) {
|
|
329
|
-
reject(classifyGithubError(null, res.statusCode, res.headers));
|
|
205
|
+
reject((0, dual_source_facts_js_1.classifyGithubError)(null, res.statusCode, res.headers));
|
|
330
206
|
return;
|
|
331
207
|
}
|
|
332
208
|
const chunks = [];
|
|
@@ -339,7 +215,7 @@ async function downloadGithubSnapshot(sha, destParent, env, timeoutMs) {
|
|
|
339
215
|
await fsp.writeFile(file, buf);
|
|
340
216
|
}
|
|
341
217
|
catch (e) {
|
|
342
|
-
const cls = e?.kind === 'github_unavailable' ? e : classifyGithubError(e);
|
|
218
|
+
const cls = e?.kind === 'github_unavailable' ? e : (0, dual_source_facts_js_1.classifyGithubError)(e);
|
|
343
219
|
return { ok: false, kind: 'github_unavailable', reason: cls.reason, detail: `取 ${url} 失败: ${cls.detail}` };
|
|
344
220
|
}
|
|
345
221
|
const extract = path.join(destParent, 'src');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dual-source.js","sourceRoot":"","sources":["../../../src/utils/dual-source.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dual-source.js","sourceRoot":"","sources":["../../../src/utils/dual-source.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,MAAY,EAAE,+BAAW;AACzB,MAAY,GAAG,wCAAoB;AAEnC,MAAY,IAAI,iCAAa;AAC7B,MAAY,IAAI,iCAAa;AAC7B,MAAY,KAAK,kCAAc;AAC/B,iDAA0C;AAC1C,uDAG2B;AAC3B,iEAGgC;AAEhC;;;;GAIG;AACH,+DAOgC;AAN9B,sHAAA,cAAc,OAAA;AAAE,qHAAA,aAAa,OAAA;AAC7B,2HAAA,mBAAmB,OAAA;AAAE,6HAAA,qBAAqB,OAAA;AAC1C,2HAAA,mBAAmB,OAAA;AAAE,sHAAA,cAAc,OAAA;AACnC,sHAAA,cAAc,OAAA;AAAE,8HAAA,sBAAsB,OAAA;AACtC,wHAAA,gBAAgB,OAAA;AAAE,2HAAA,mBAAmB,OAAA;AACrC,2HAAA,mBAAmB,OAAA;AAWrB,uEAAuE;AACvE,SAAS,WAAW,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IACvD,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,oBAAoB,CAAC;IACvE,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAqB;IACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1B,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE;gBACP,MAAM,EAAE,+CAA+C;gBACvD,YAAY,EAAE,gBAAgB;gBAC9B,iCAAiC;gBACjC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvD;SACF,EAAE,CAAC,GAAQ,EAAE,EAAE;YACd,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAA2B,EAAE,CAAC,CAAC,CAAC;QACpI,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC;AAcD;;;;GAIG;AACI,KAAK,2BAA2B,IAAI,GAAuB,EAAE;IAClE,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,iCAAe,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,sCAAoB,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IACxC,oDAAoD;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAgB,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,yCAAyC;IACzC,MAAM,QAAQ,GAAuE,EAAE,CAAC;IACxF,MAAM,IAAI,GAAG,CAAC,CAAmE,EAAE,IAAY,EAAE,EAAE;QACjG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC;IAEF,yCAAyC;IACzC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,IAAI,UAAU,IAAI,wBAAwB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1F,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAA,0CAAmB,EAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,IAAA,0CAAmB,EAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,UAAU;IACV,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,IAAI,UAAU,IAAI,oBAAoB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACtF,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBACvB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5I,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAA,0CAAmB,EAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,IAAA,0CAAmB,EAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,IAAI,UAAU,IAAI,YAAY,4BAAU,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1F,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,IAAI,CAAC,IAAA,0CAAmB,EAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,IAAA,0CAAmB,EAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAgB;QACzB,IAAI,EAAE,GAAG,EAAE,cAAc,4BAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI;QAC9D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO;KAC1E,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC9H,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAmBD,SAAS,aAAa,CAAC,IAAc,EAAE,GAAW;IAChD,MAAM,CAAC,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IAC5G,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;AACjF,CAAC;AAED,iEAAiE;AACjE,KAAK,UAAU,sBAAsB,CAAC,GAAW,EAAE,UAAkB,EAAE,GAAsB,EAAE,SAAiB;IAC9G,MAAM,QAAQ,GAAG,GAAG,CAAC,uBAAuB;WACvC,+BAA+B,sCAAoB,eAAe,CAAC;IACxE,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,4BAAU,CAAC,CAAC;IAC3E,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAQ,EAAE,EAAE;gBAC9J,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBAAC,MAAM,CAAC,IAAA,0CAAmB,EAAC,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC7G,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,0CAAmB,EAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IAC7G,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACrG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAC1J,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACvI,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;GAMG;AACI,KAAK,6BAA6B,IAAwB;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,0BAA0B,GAAG,IAAI,GAAG,qBAAqB,EAAE,CAAC;IAC3I,CAAC;IAED,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,GAAG,CAAC,sBAAsB,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,0BAA0B,MAAM,mBAAmB,EAAE,CAAC;QAC7I,CAAC;QACD,qDAAqD;QACrD,MAAM,KAAK,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjJ,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,mCAAmC,KAAK,GAAG,EAAE,CAAC;gBACpD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,MAAM,wBAAwB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,kDAAkD,EAAE,CAAC;YAC1L,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,iCAAiC,EAAE,CAAC;QACjM,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;QAAC,MAAM,GAAG,cAAc,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,aAAa,EAAE,qBAAqB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;QAC3F,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QACtB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;QAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,6BAA6B;IAC7B,MAAM,GAAG,GAAG,IAAA,+BAAa,EAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,qBAAqB,EAAE,CAAC;IAC9H,MAAM,WAAW,GAAG,IAAA,+BAAa,EAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAA,6BAAW,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC/C,KAAK,CAAC,QAAQ,EAAE,aAAa,QAAQ,EAAE,CAAC,CAAC;IAEzC,6CAA6C;IAC7C,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,QAAQ,EAAE,2CAA2C,CAAC,CAAC;QAC7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACnD;;;eAGG;YACH,MAAM,KAAK,GAAG,GAAG,CAAC,8BAA8B,CAAC;YACjD,IAAI,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBACrD,KAAK,CAAC,QAAQ,EAAE,WAAW,KAAK,kBAAkB,CAAC,CAAC;gBACpD,IAAI,CAAC;oBAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC9F,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC1G,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;gBACtJ,CAAC;YACH,CAAC;QACH,CAAC;QACD;;;;;;WAMG;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,CAAC,EAAE,GAAG,CAAC,CAAC;QAClG,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,4BAA4B,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QAClK,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACjJ,CAAC;QACD,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IAED,0CAA0C;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;IACvB,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,4BAA4B,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;QAC/E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,4BAAU,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;QAC7E,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,OAAO,EAAE,qCAAmB;KAC7B,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAE5B,uCAAuC;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzG,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAC9I,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IAChH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAC9H,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAEtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC/E,CAAC"}
|
|
@@ -52,14 +52,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
52
52
|
};
|
|
53
53
|
})();
|
|
54
54
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
55
|
-
exports.NPM_FETCH_RETRY_FLAGS = exports.IN_FLIGHT_STAGES = exports.MIN_FREE_BYTES = exports.REFUSED_STATUSES = exports.DEV_BACK_TO_STABLE_HINT = exports.DEV_CHANNEL_WARNING = void 0;
|
|
55
|
+
exports.NPM_FETCH_RETRY_FLAGS = exports.IN_FLIGHT_STAGES = exports.MIN_FREE_BYTES = exports.classifyRegistryError = exports.REFUSED_STATUSES = exports.checkExitCode = exports.isKnownVersion = exports.compareVersions = exports.parseVersion = exports.DEV_BACK_TO_STABLE_HINT = exports.DEV_CHANNEL_WARNING = void 0;
|
|
56
56
|
exports.parseJsonFromStdout = parseJsonFromStdout;
|
|
57
|
-
exports.parseVersion = parseVersion;
|
|
58
|
-
exports.compareVersions = compareVersions;
|
|
59
|
-
exports.isKnownVersion = isKnownVersion;
|
|
60
|
-
exports.classifyRegistryError = classifyRegistryError;
|
|
61
57
|
exports.queryRegistryDoc = queryRegistryDoc;
|
|
62
|
-
exports.checkExitCode = checkExitCode;
|
|
63
58
|
exports.checkForUpdate = checkForUpdate;
|
|
64
59
|
exports.freeBytesAt = freeBytesAt;
|
|
65
60
|
exports.buildUpdatePlan = buildUpdatePlan;
|
|
@@ -81,9 +76,18 @@ const child_process_1 = require("child_process");
|
|
|
81
76
|
const version_info_js_1 = require("./version-info.js");
|
|
82
77
|
Object.defineProperty(exports, "DEV_CHANNEL_WARNING", { enumerable: true, get: function () { return version_info_js_1.DEV_CHANNEL_WARNING; } });
|
|
83
78
|
Object.defineProperty(exports, "DEV_BACK_TO_STABLE_HINT", { enumerable: true, get: function () { return version_info_js_1.DEV_BACK_TO_STABLE_HINT; } });
|
|
79
|
+
const version_identity_js_1 = require("./version-identity.js");
|
|
80
|
+
Object.defineProperty(exports, "parseVersion", { enumerable: true, get: function () { return version_identity_js_1.parseVersion; } });
|
|
81
|
+
Object.defineProperty(exports, "compareVersions", { enumerable: true, get: function () { return version_identity_js_1.compareVersions; } });
|
|
82
|
+
Object.defineProperty(exports, "isKnownVersion", { enumerable: true, get: function () { return version_identity_js_1.isKnownVersion; } });
|
|
83
|
+
Object.defineProperty(exports, "checkExitCode", { enumerable: true, get: function () { return version_identity_js_1.checkExitCode; } });
|
|
84
|
+
Object.defineProperty(exports, "REFUSED_STATUSES", { enumerable: true, get: function () { return version_identity_js_1.REFUSED_STATUSES; } });
|
|
85
|
+
// registry 侧的错误分类也在纯那一半 (手机端要用同一份分类) —— 定义在 dual-source-facts.ts。
|
|
86
|
+
const dual_source_facts_js_1 = require("./dual-source-facts.js");
|
|
87
|
+
Object.defineProperty(exports, "classifyRegistryError", { enumerable: true, get: function () { return dual_source_facts_js_1.classifyRegistryError; } });
|
|
84
88
|
const dual_source_js_1 = require("./dual-source.js");
|
|
85
89
|
const update_state_js_1 = require("./update-state.js");
|
|
86
|
-
// ── 版本比较 (
|
|
90
|
+
// ── 版本比较 (唯一一份在 version-identity.ts; 上面已再导出) ────────────────
|
|
87
91
|
/**
|
|
88
92
|
* 从子进程 stdout 里取 JSON —— **不要**按"行首是否 { "过滤:
|
|
89
93
|
* `JSON.stringify(x, null, 2)` 是**多行**的, 只留第一行 `{` 会解析失败
|
|
@@ -111,28 +115,6 @@ function parseJsonFromStdout(stdout) {
|
|
|
111
115
|
return null;
|
|
112
116
|
}
|
|
113
117
|
}
|
|
114
|
-
function parseVersion(v) {
|
|
115
|
-
const clean = String(v || '').trim().replace(/^v/, '').split('-')[0];
|
|
116
|
-
const parts = clean.split('.').map((p) => parseInt(p.replace(/\D.*$/, ''), 10));
|
|
117
|
-
return parts.map((n) => (Number.isFinite(n) ? n : 0));
|
|
118
|
-
}
|
|
119
|
-
/** -1 = a<b, 0 = 相等, 1 = a>b (只比数值段, 忽略预发布标签) */
|
|
120
|
-
function compareVersions(a, b) {
|
|
121
|
-
const pa = parseVersion(a);
|
|
122
|
-
const pb = parseVersion(b);
|
|
123
|
-
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
124
|
-
const x = pa[i] ?? 0;
|
|
125
|
-
const y = pb[i] ?? 0;
|
|
126
|
-
if (x < y)
|
|
127
|
-
return -1;
|
|
128
|
-
if (x > y)
|
|
129
|
-
return 1;
|
|
130
|
-
}
|
|
131
|
-
return 0;
|
|
132
|
-
}
|
|
133
|
-
function isKnownVersion(v) {
|
|
134
|
-
return !!v && v !== 'unknown' && /^\d/.test(String(v).trim().replace(/^v/, ''));
|
|
135
|
-
}
|
|
136
118
|
function httpGetJson(url, timeoutMs = 10000) {
|
|
137
119
|
return new Promise((resolve, reject) => {
|
|
138
120
|
const client = url.startsWith('https') ? https : http;
|
|
@@ -145,27 +127,12 @@ function httpGetJson(url, timeoutMs = 10000) {
|
|
|
145
127
|
req.on('timeout', () => { req.destroy(new Error('timeout')); });
|
|
146
128
|
});
|
|
147
129
|
}
|
|
148
|
-
const OFFLINE_CODES = new Set(['ENOTFOUND', 'EAI_AGAIN', 'ECONNREFUSED', 'ECONNRESET', 'ETIMEDOUT', 'EHOSTUNREACH', 'ENETUNREACH', 'ENETDOWN', 'EAI_FAIL', 'UND_ERR_CONNECT_TIMEOUT']);
|
|
149
|
-
/** 网络类错误 → offline; 其它 (HTTP 5xx / 解析失败 / 包不存在) → registry_unavailable。 */
|
|
150
|
-
function classifyRegistryError(err, httpStatus) {
|
|
151
|
-
const code = String(err?.code || '');
|
|
152
|
-
if (OFFLINE_CODES.has(code) || /timeout|timed out|ENOTFOUND|getaddrinfo|network|socket hang up|超时/i.test(String(err?.message || ''))) {
|
|
153
|
-
return { kind: 'offline', detail: `${code || err?.message || '网络不可达'}` };
|
|
154
|
-
}
|
|
155
|
-
if (httpStatus && httpStatus >= 500)
|
|
156
|
-
return { kind: 'registry_unavailable', detail: `registry 返回 HTTP ${httpStatus}` };
|
|
157
|
-
if (httpStatus === 404)
|
|
158
|
-
return { kind: 'registry_unavailable', detail: `registry 上没有 ${version_info_js_1.PKG_NAME} (HTTP 404)` };
|
|
159
|
-
if (httpStatus && httpStatus >= 400)
|
|
160
|
-
return { kind: 'registry_unavailable', detail: `registry 返回 HTTP ${httpStatus}` };
|
|
161
|
-
return { kind: 'registry_unavailable', detail: code || err?.message || '未知错误' };
|
|
162
|
-
}
|
|
163
130
|
async function queryRegistryDoc(pkg = version_info_js_1.PKG_NAME, timeoutMs = 10000) {
|
|
164
131
|
const url = `${version_info_js_1.NPM_REGISTRY_BASE}/${encodeURIComponent(pkg).replace('%40', '@')}`;
|
|
165
132
|
try {
|
|
166
133
|
const { status, body } = await httpGetJson(url, timeoutMs);
|
|
167
134
|
if (status < 200 || status >= 300)
|
|
168
|
-
return { ok: false, ...classifyRegistryError(null, status) };
|
|
135
|
+
return { ok: false, ...(0, dual_source_facts_js_1.classifyRegistryError)(null, status) };
|
|
169
136
|
let raw;
|
|
170
137
|
try {
|
|
171
138
|
raw = JSON.parse(body);
|
|
@@ -187,32 +154,15 @@ async function queryRegistryDoc(pkg = version_info_js_1.PKG_NAME, timeoutMs = 10
|
|
|
187
154
|
return { ok: true, doc: { latest: distTags.latest || versions[versions.length - 1], distTags, versions, gitHeads } };
|
|
188
155
|
}
|
|
189
156
|
catch (e) {
|
|
190
|
-
return { ok: false, ...classifyRegistryError(e) };
|
|
157
|
+
return { ok: false, ...(0, dual_source_facts_js_1.classifyRegistryError)(e) };
|
|
191
158
|
}
|
|
192
159
|
}
|
|
193
160
|
/**
|
|
194
|
-
* 检查结论 → 退出码
|
|
195
|
-
*
|
|
161
|
+
* 检查结论 → 退出码 / "源不可达必拒" 的这一组结论:
|
|
162
|
+
* **唯一一份在 `version-identity.ts`** (上面已 import+再导出)。
|
|
196
163
|
* §12.5 的核心就是这一句: **源不可达 / 版本不存在 → 拒绝并说清 (退出码 2)**,
|
|
197
|
-
* 不许静默装回旧版, 也不许打印"✅ 已是最新"
|
|
198
|
-
*/
|
|
199
|
-
function checkExitCode(status) {
|
|
200
|
-
switch (status) {
|
|
201
|
-
case 'offline':
|
|
202
|
-
case 'registry_unavailable':
|
|
203
|
-
case 'local_version_unknown':
|
|
204
|
-
case 'github_unavailable':
|
|
205
|
-
case 'cross_check_mismatch':
|
|
206
|
-
return 2;
|
|
207
|
-
default:
|
|
208
|
-
return 0;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* "源不可达 / 版本不存在" 这一组结论 —— 它们必须**拒绝执行并说清**。
|
|
213
|
-
* 这是 §12.5 那一条的代码落点: 不许静默装回旧版, 也不许打印"已是最新"。
|
|
164
|
+
* 不许静默装回旧版, 也不许打印"✅ 已是最新"。桌面与手机共用同一份。
|
|
214
165
|
*/
|
|
215
|
-
exports.REFUSED_STATUSES = ['offline', 'registry_unavailable', 'local_version_unknown', 'github_unavailable', 'cross_check_mismatch'];
|
|
216
166
|
/**
|
|
217
167
|
* 检查更新。**这是唯一的检查入口** —— CLI / 启动后台 / Python 检查器 / 安装脚本都走它。
|
|
218
168
|
*
|
|
@@ -236,7 +186,7 @@ async function checkForUpdate(opts = {}) {
|
|
|
236
186
|
const channelKind = (0, version_info_js_1.channelKindOf)(channel);
|
|
237
187
|
const install = opts.installation || (0, version_info_js_1.detectInstallation)({ home });
|
|
238
188
|
const pkg = (0, version_info_js_1.readPackageAt)(install.packageRoot);
|
|
239
|
-
const current = isKnownVersion(pkg?.version) ? String(pkg?.version) : 'unknown';
|
|
189
|
+
const current = (0, version_identity_js_1.isKnownVersion)(pkg?.version) ? String(pkg?.version) : 'unknown';
|
|
240
190
|
const currentBase = (0, version_info_js_1.baseVersionOf)(current);
|
|
241
191
|
/** 磁盘身份里就是 dev 快照的 sha —— 不从状态文件猜 */
|
|
242
192
|
const installedDevSha = (0, version_info_js_1.devShaFromIdentity)(current);
|
|
@@ -280,7 +230,7 @@ async function checkForUpdate(opts = {}) {
|
|
|
280
230
|
return r;
|
|
281
231
|
};
|
|
282
232
|
// 1. 本地版本读不到 —— 不猜
|
|
283
|
-
if (!isKnownVersion(current)) {
|
|
233
|
+
if (!(0, version_identity_js_1.isKnownVersion)(current)) {
|
|
284
234
|
return commit({
|
|
285
235
|
...base, status: 'local_version_unknown', latestVersion: null,
|
|
286
236
|
installedChannel: null, installedDevSha: null,
|
|
@@ -424,7 +374,7 @@ async function checkForUpdate(opts = {}) {
|
|
|
424
374
|
reason: `当前装的是 dev 快照 ${current} → 切回 stable 的 ${latest || '未知'} (一键: ${version_info_js_1.DEV_BACK_TO_STABLE_HINT})`,
|
|
425
375
|
});
|
|
426
376
|
}
|
|
427
|
-
if (latest && compareVersions(currentBase, latest) < 0) {
|
|
377
|
+
if (latest && (0, version_identity_js_1.compareVersions)(currentBase, latest) < 0) {
|
|
428
378
|
return commit({
|
|
429
379
|
...stableBase, status: 'update_available', latestVersion: latest, targetPublished, rollbackSupported,
|
|
430
380
|
reason: `当前 ${current} → 目标 ${latest}${crossCheck ? ` · 交叉校验: ${crossCheck.kind}` : ''}`,
|
|
@@ -808,7 +758,7 @@ async function applyUpdate(opts = {}) {
|
|
|
808
758
|
* §12.5 的核心分流: **源不可达 / 版本不存在 → 拒绝并说清**,
|
|
809
759
|
* 绝不把"没查到"说成"已是最新"。
|
|
810
760
|
*/
|
|
811
|
-
const refused =
|
|
761
|
+
const refused = version_identity_js_1.REFUSED_STATUSES.includes(plan.check.status);
|
|
812
762
|
await stage('blocked', refused ? `拒绝更新 (${plan.check.status})` : '没有可执行的更新');
|
|
813
763
|
const reason = refused
|
|
814
764
|
? `拒绝更新 (${plan.check.status}): ${plan.check.reason || plan.blockers[0] || '源不可达 / 版本不存在'}`
|
|
@@ -830,7 +780,7 @@ async function applyUpdate(opts = {}) {
|
|
|
830
780
|
if (!lock.ok) {
|
|
831
781
|
const held = lock.heldBy;
|
|
832
782
|
await stage('blocked', `已有更新进程 (pid ${held?.pid})`);
|
|
833
|
-
return record({ stage: 'blocked', ok: false, from, to, durationMs: Date.now() - started, reason:
|
|
783
|
+
return record({ stage: 'blocked', ok: false, from, to, durationMs: Date.now() - started, reason: `另一个更新进程持有锁 (pid ${held?.pid}, ${held?.at})`, needsRestart: false }, 'blocked');
|
|
834
784
|
}
|
|
835
785
|
const tmpRoot = await fsp.mkdtemp(path.join(os.tmpdir(), 'bolloon-update-'));
|
|
836
786
|
const runNpm = opts.runNpm || defaultRunNpm;
|
|
@@ -979,7 +929,7 @@ async function readUpdateStatus(opts = {}) {
|
|
|
979
929
|
const lock = (0, update_state_js_1.readUpdateLock)(home);
|
|
980
930
|
const install = opts.installation || (0, version_info_js_1.detectInstallation)({ home });
|
|
981
931
|
const pkg = (0, version_info_js_1.readPackageAt)(install.packageRoot);
|
|
982
|
-
const currentVersion = isKnownVersion(pkg?.version) ? String(pkg?.version) : st.currentVersion;
|
|
932
|
+
const currentVersion = (0, version_identity_js_1.isKnownVersion)(pkg?.version) ? String(pkg?.version) : st.currentVersion;
|
|
983
933
|
const installedDevSha = (0, version_info_js_1.devShaFromIdentity)(currentVersion);
|
|
984
934
|
const channel = (0, version_info_js_1.resolveUpdateChannel)(opts.channel || prefs.channel);
|
|
985
935
|
return {
|