dsh-plugin-upgrader 1.6.0 → 1.6.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/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.6.2 — 2026-11-02
4
+
5
+ - **A DSH Store notice was re-checked against the current code, not taken at face value.**
6
+ Issue #1550 listed eight reasons, but they were a scan of v1.0.1: four of them (the three
7
+ missing runtime artifacts and the incomplete scan) and `prepare`/`engines.dsh` were all
8
+ fixed in 1.5.0. Re-running the store's own review code against the current tree leaves
9
+ one catalog reason this release could act on — the runtime dependency — and three
10
+ capability signals (`files`, `network`, `credentials`) that are the plugin's actual job.
11
+ Those three sit on the store's review list rather than its reject list, so they need a
12
+ maintainer admission record, not a code change; rewriting the plugin to stop touching
13
+ files, the network or the environment would be removing the feature.
14
+ - **`@deepseek-ai/schemastery` is a peer dependency, not a bundled one.** 1.6.0 declared it
15
+ as a dependency so the `Config` schema would be built by the same library the loader
16
+ validates with — but that argument points at a peer, not at a copy: a peer guarantees one
17
+ instance, while a bundled copy can produce two. The host already ships it (`DSH desktop`
18
+ depends on it directly and `dsh-plugin-manager` does too), so the package no longer pulls
19
+ its own. It stays in `devDependencies` for building and testing.
20
+ - **The package now declares per-release DSH compatibility.** `dsh.compatibility.dshReleases`
21
+ records `0.2.1-rc.5` as `compatible` — the release this plugin actually runs on. The two
22
+ other releases in the rolling window (`0.2.1-rc.4`, `0.2.2-alpha.2`) are inside the
23
+ `engines.dsh` range but were never exercised here, so they are deliberately left
24
+ undeclared and read as `unknown`. `dshOperations` is left out for the same reason rather
25
+ than filled with `passed`. This is Catalog metadata only; the host does not read it.
26
+ - **README gains a permissions / dependencies / external services / failure-bounds section**
27
+ in both languages, so a review does not have to infer the blast radius from the source.
28
+
29
+ ## 1.6.1 — 2026-10-30
30
+
31
+ - **The source test no longer calls a working mirror unreachable.** The probe tried
32
+ `/-/ping` first and the registry root only if that failed, with 1500 ms for the whole
33
+ thing. `registry.npmmirror.com` answers `/-/ping` in 3 to 15 seconds on some networks
34
+ while its root answers in 0.3 s, so the mainland mirror — the mirror this feature exists
35
+ for — came back as "unreachable", and so did `registry.npmjs.org` on a slow link at
36
+ 2.2 s. Both paths are now asked at the same time, the first 2xx wins, and
37
+ `PROBE_TIMEOUT_MS` is 5 s for the whole probe rather than per request.
38
+ - **A failed test now says which failure it was.** A status line ("HTTP 503" — the host is
39
+ up and unhappy) is reported ahead of a timeout, and a timeout is reported as
40
+ `timed out after 5000 ms` instead of passing `AbortSignal.timeout`'s
41
+ `The operation was aborted due to timeout` straight into the dialog.
42
+
3
43
  ## 1.6.0 — 2026-10-30
4
44
 
5
45
  - **The install source is now a setting, not a file edit.** The Versions tab header
@@ -14,8 +54,7 @@
14
54
  - **The control opens a dialog that manages sources, not just picks one.** It lists
15
55
  every source the tab can use — the two built-in addresses, the ones `pluginManager`
16
56
  is configured with, and the ones the user added — and each row can be tested against
17
- the host (`/-/ping`, falling back to the registry root, 1500 ms — the same endpoint
18
- and deadline the harness's own registry probe uses) and switched to with one click,
57
+ the host (`/-/ping`, falling back to the registry root) and switched to with one click,
19
58
  so "is this mirror actually up" is answered in the place the user picks it instead of
20
59
  by a failed install.
21
60
  - **The built-in sources have no edit and no delete, by construction.** They are
package/README.en.md CHANGED
@@ -12,7 +12,7 @@ plugin adds a **Versions** tab to that page and fills both gaps.
12
12
 
13
13
  English · [中文](./README.md)
14
14
 
15
- ![Versions tab](./screenshots/history.png)
15
+ ![Versions tab](https://raw.githubusercontent.com/zuwenyin/dsh-plugin-upgrader/main/screenshots/history.png)
16
16
 
17
17
  ## Features
18
18
 
@@ -39,6 +39,8 @@ English · [中文](./README.md)
39
39
  Built-ins cannot be edited or deleted; your own can. Every row can be tested on its
40
40
  own, and so can the source currently in use.
41
41
 
42
+ ![Source manager](https://raw.githubusercontent.com/zuwenyin/dsh-plugin-upgrader/main/screenshots/sources.png)
43
+
42
44
  > **Changing this repo? Read [AGENTS.md](./AGENTS.md) first.** It lists the behaviour
43
45
  > that already works and must keep working, with the code location and the test that
44
46
  > guards each one. Two of those features (the `GH` links and the in-place upgrade)
@@ -46,7 +48,9 @@ English · [中文](./README.md)
46
48
 
47
49
  ## Where it shows up
48
50
 
49
- A **Versions** tab appears next to *Installed* and *Discover* on the Plugins page:
51
+ A **Versions** tab appears next to *Installed* and the market tab on the Plugins
52
+ page (that tab is **Market** with `dshmarket` installed, and **Discover** in DSH's
53
+ own market page):
50
54
 
51
55
  - Header counts: upgradable / installed / version count
52
56
  - The header **Registry** control opens the source dialog:
@@ -55,8 +59,10 @@ A **Versions** tab appears next to *Installed* and *Discover* on the Plugins pag
55
59
  - sources from `pluginManager`: use one directly, or keep it in your own list
56
60
  - sources you added: edit and delete; deleting the one in use falls back to
57
61
  *Follow pnpm's config*
58
- - **Test** on a row sends one `/-/ping` (falling back to the registry root) with a
59
- 1.5 s deadline and shows the verdict under that row
62
+ - **Test** on a row asks `/-/ping` and the registry root at the same time and keeps
63
+ whichever answers first, with a 5 s budget for the whole probe (a sequential probe
64
+ reported mainland mirrors as unreachable — their `/-/ping` can take 15 s while the
65
+ root answers in 0.3 s), and shows the verdict under that row
60
66
  - the footer's *Follow pnpm's config* keeps pnpm's own registry (usually `.npmrc`)
61
67
  - **Upgrade all** handles every upgradable plugin; the selection bar below handles
62
68
  **Upgrade selected**
@@ -70,11 +76,12 @@ A **Versions** tab appears next to *Installed* and *Discover* on the Plugins pag
70
76
  - the version was not tagged, or the GitHub list is unreadable (rate limit,
71
77
  offline) → the repository's `releases` feed
72
78
 
73
- ![Expanded history](./screenshots/selection.png)
79
+ ![Expanded history](https://raw.githubusercontent.com/zuwenyin/dsh-plugin-upgrader/main/screenshots/selection.png)
74
80
 
75
81
  ## Install
76
82
 
77
- Search `dsh-plugin-upgrader` on the Plugins page's **Discover** tab and hit install.
83
+ Search `dsh-plugin-upgrader` on the Plugins page's market tab (**Discover** in DSH
84
+ itself, **Market** with `dshmarket` installed) and hit install.
78
85
  On the desktop app use its own plugin manager — the CLI cannot change the profile
79
86
  an app has open.
80
87
 
@@ -213,6 +220,88 @@ error:
213
220
  A restart interrupts the job in flight; the UI reports that as a failure rather than
214
221
  spinning forever.
215
222
 
223
+ ## Permissions, dependencies and external services
224
+
225
+ This section states the capabilities the plugin actually uses, so a review or a bug
226
+ report does not have to read the source to find out.
227
+
228
+ ### What it touches
229
+
230
+ | Capability | Scope | Notes |
231
+ | --- | --- | --- |
232
+ | Files | **the profile directory only** | Reads and writes `package.json`, writes `package.json.upgrader-journal.json`, reads `package.json.lock`. No filesystem walking, nothing outside the profile |
233
+ | Network (outbound) | the configured npm registry, the GitHub API | `GET` only, see below |
234
+ | Commands | **none** | No `child_process`, no spawned processes; installs go through the host's `pluginManager` |
235
+ | Credentials | **none** | No tokens, no `.npmrc` reads, no authentication. Private registries rely on pnpm's own configuration |
236
+
237
+ The registry choice (`registry` / `customRegistries`) is written into the profile's
238
+ `cordis.patch.yml` by the **host's settings service**, not by the plugin editing files:
239
+ the plugin only calls `configForms.set()`.
240
+
241
+ Three environment variables are read, all to *locate the profile directory*:
242
+ `DSH_PROFILE_DIR`, `DSH_HOME` and `DSH_PROFILE`. When the desktop shell exports none of
243
+ them, a working directory that parses as a profile is used instead. They are not
244
+ secrets, but a bare `process.env` counts as one "credentials" signal in a static scan,
245
+ so the real purpose is spelled out here.
246
+
247
+ ### External services
248
+
249
+ | Target | Purpose | On failure |
250
+ | --- | --- | --- |
251
+ | `{configured npm registry}/{package}` | packument fetch, to list published versions (5 minute cache, 20 second timeout, at most 4 concurrent) | that row shows `versionError` and a retry entry; other rows are unaffected |
252
+ | `https://registry.npmjs.org/{package}` | only when the configured registry is not the official one: an extra upstream check that reports a lagging mirror | an unreadable upstream means "no gap", never "everything is missing" |
253
+ | `https://api.github.com/repos/{owner}/{repo}/tags?per_page=100` | tag list, to decide whether a version can link to `releases/tag/v…` (30 minute cache, 8 second timeout) | falls back to the `releases` list; never guesses a tag that 404s |
254
+ | `{the address being tested}/-/ping` and its root | *Test* in the Registry dialog probes both **concurrently**, first 2xx wins (5 s budget for the whole probe) | reports the most specific reason: status code first, then timeout, then the raw network error |
255
+ | the local DSH web server | the plugin's own four `/api/plugin-upgrader/*` routes | — |
256
+
257
+ The default registry is whatever pnpm is configured with (usually `.npmrc`); the
258
+ **Registry** button on the Versions tab switches to the official registry, mainland
259
+ mirror, or a source you add yourself. **No telemetry** of any kind is sent.
260
+
261
+ ### Dependencies
262
+
263
+ There are **no bundled runtime dependencies**. The single external module,
264
+ `@deepseek-ai/schemastery` (used for the Config schema, `~3.18.5`), is declared in
265
+ `peerDependencies` and supplied by the host: DSH desktop ships it as its own dependency
266
+ and first-party packages such as `dsh-plugin-manager` depend on it too, so it always
267
+ resolves inside a profile. The copy needed for building and testing lives in
268
+ `devDependencies`.
269
+
270
+ The remaining `devDependencies` (TypeScript, esbuild, `@types/*`, `@deepseek-ai/dsh-*`)
271
+ are development-time only and are not part of the published tarball's runtime.
272
+
273
+ ### Failure bounds
274
+
275
+ - **One batch at a time**: a second submission gets `409 busy`; the UI adopts the batch
276
+ that is running instead of reporting an error.
277
+ - **A job heartbeats every 2 seconds** and is declared abandoned after 15 minutes of
278
+ no progress, so it cannot occupy the slot forever. A host restart interrupts the job
279
+ in flight and the UI reports that as a failure.
280
+ - **Writer lock**: the manager's own budget is 120 seconds; a timeout is translated
281
+ into who holds the lock and whether a restart clears it.
282
+ - **A failed upgrade**: the in-place path journals the dropped dependency before
283
+ removing it and restores it on failure; a killed process is repaired on the next
284
+ load. The plugin stays installed and keeps its enabled state.
285
+ - **Unreachable registry, rate-limited GitHub, offline**: every one of them degrades to
286
+ "this one thing could not be read, here is why, retry", never to a silent "no new
287
+ version" or "no version history".
288
+
289
+ ### DSH compatibility
290
+
291
+ Node.js `>=20` and DSH `>=0.2.1-rc.3 <0.3.0-0` (the `engines` field).
292
+ `dsh.compatibility.dshReleases` records **only the releases actually exercised**:
293
+
294
+ | DSH release | Status |
295
+ | --- | --- |
296
+ | `0.2.1-rc.5` | compatible |
297
+
298
+ `0.2.1-rc.4` and `0.2.2-alpha.2` fall inside the `engines` range but were not each
299
+ exercised, so they are **not** listed (an undeclared release reads as `unknown`). These
300
+ are **source-side compatibility declarations**, not a substitute for per-operation
301
+ acceptance. `dshOperations` (install / start / uninstall / rollback) follows the same
302
+ rule: left out rather than filled with `passed` before there is a per-release run behind
303
+ it.
304
+
216
305
  ## Project layout
217
306
 
218
307
  ```
package/README.md CHANGED
@@ -10,7 +10,7 @@ DSH 自带的插件页能装、能卸、能看已安装列表,但缺两件事
10
10
 
11
11
  [English](./README.en.md) · 中文
12
12
 
13
- ![版本标签](./screenshots/history.png)
13
+ ![版本标签](https://raw.githubusercontent.com/zuwenyin/dsh-plugin-upgrader/main/screenshots/history.png)
14
14
 
15
15
  ## 功能
16
16
 
@@ -29,20 +29,25 @@ DSH 自带的插件页能装、能卸、能看已安装列表,但缺两件事
29
29
  和用户自己加的源;自带源不能改也不能删,自己加的可以随时改/删。每一行都能单独
30
30
  「测试」能不能连上,当前在用的那个也能一键测。
31
31
 
32
+ ![安装源管理](https://raw.githubusercontent.com/zuwenyin/dsh-plugin-upgrader/main/screenshots/sources.png)
33
+
32
34
  > **要改这个仓库?先读 [AGENTS.md](./AGENTS.md)。** 那里逐条写了「已经实现并且必须继续成立」
33
35
  > 的行为、对应代码位置和守护它的测试。上面这些功能里,`GH` 链接和 in-place 升级都曾经
34
36
  > 被无意改掉过一次。
35
37
 
36
38
  ## 界面位置
37
39
 
38
- 插件页顶部标签栏多出一个「版本」标签,与「已安装」「发现」并列:
40
+ 插件页顶部标签栏多出一个「版本」标签,与「已安装」以及市场标签并列
41
+ (市场标签在装了 `dshmarket` 的界面里叫「插件市场」,DSH 自带的那个叫「发现」):
39
42
 
40
43
  - 顶部统计:可升级数量 / 已安装数量 / 每个插件的版本数
41
44
  - 顶部「注册表」按钮打开安装源对话框:
42
45
  - 自带源(官方源、大陆镜像):只能切过去和测试,不能改也不能删
43
46
  - `pluginManager` 里配的源:可以「收进列表」变成自己的常用源,或直接用
44
47
  - 自己加的源:可以改、可以删,删掉的如果正在用会自动退回「跟随 pnpm 配置」
45
- - 每行「测试」发一次 `/-/ping`(连不上时退回根地址),1.5 秒超时,结果显示在那一行下面
48
+ - 每行「测试」同时打 `/-/ping` 和根地址,谁先答应用谁,整次探测 5 秒预算
49
+ (串行探测会把大陆镜像报成连不上:`/-/ping` 有时要 15 秒,根地址只要 0.3 秒),
50
+ 结果显示在那一行下面
46
51
  - 底部「跟随 pnpm 配置」用 pnpm 自己的源(通常是 `~/.npmrc` 里的那个)
47
52
  - 「一键升级」升全部可升级插件;下面一条选择栏负责「升级选中」
48
53
  - 「检查更新」强制刷新 registry 缓存(默认缓存 5 分钟)
@@ -55,11 +60,12 @@ DSH 自带的插件页能装、能卸、能看已安装列表,但缺两件事
55
60
  - 该版本没打 tag,或 GitHub 列表读不到(限流 / 离线)→ 退回仓库的发布列表 `releases`,
56
61
  不在页面上放一个点进去是 404 的版本号
57
62
 
58
- ![展开历史版本](./screenshots/selection.png)
63
+ ![展开历史版本](https://raw.githubusercontent.com/zuwenyin/dsh-plugin-upgrader/main/screenshots/selection.png)
59
64
 
60
65
  ## 安装
61
66
 
62
- 在「插件」页的**发现**标签里搜索 `dsh-plugin-upgrader`,点安装即可。
67
+ 在「插件」页的市场标签里搜索 `dsh-plugin-upgrader`(自带的是「发现」,
68
+ 装了 `dshmarket` 的界面里叫「插件市场」),点安装即可。
63
69
  桌面版请用它自带的插件管理界面安装,命令行改动不了正在运行的桌面 profile。
64
70
 
65
71
  用 `dsh` 命令行(把 `web` 换成你自己的 profile 名):
@@ -179,6 +185,74 @@ atomic-write: timed out waiting for the writer lock at …/package.json.lock
179
185
 
180
186
  主进程重启会让正在跑的 job 中断,界面会把这种情况显示为失败而不是永远转圈。
181
187
 
188
+ ## 权限、依赖与外部服务
189
+
190
+ 这一节把插件实际用到的能力写清楚,方便审核和排障时对照,而不是让人去读源码猜。
191
+
192
+ ### 读写什么
193
+
194
+ | 能力 | 范围 | 说明 |
195
+ | --- | --- | --- |
196
+ | 文件 | **仅 profile 目录** | 读写 `package.json`、写 `package.json.upgrader-journal.json`、读 `package.json.lock`。不遍历文件系统,不碰 profile 以外的路径 |
197
+ | 网络(出站) | 配置的 npm 源、GitHub API | 只发 `GET`,见下 |
198
+ | 命令 | **无** | 不调用 `child_process`,不 spawn 任何进程;安装动作交给宿主的 `pluginManager` |
199
+ | 凭据 | **无** | 不读 token,不读 `.npmrc`,不做任何认证。私有源依赖 pnpm 自己的配置 |
200
+
201
+ 安装源的选择(`registry` / `customRegistries`)由**宿主的设置服务**写进 profile 的
202
+ `cordis.patch.yml`,不是插件自己改文件——插件只调 `configForms` 的 `set()`。
203
+
204
+ 宿主进程的环境变量只用了 `DSH_PROFILE_DIR` / `DSH_HOME` / `DSH_PROFILE` 三个来**定位 profile
205
+ 目录**(桌面壳不导出它们时,退回「当前工作目录看起来像不像一个 profile」)。它们不是密钥,但
206
+ 静态扫描器会把裸 `process.env` 记成一次「凭据」信号,这里说明清楚它的真实用途。
207
+
208
+ ### 外部服务
209
+
210
+ | 目标 | 用途 | 失败时 |
211
+ | --- | --- | --- |
212
+ | `{配置的 npm 源}/{包名}` | 拉 packument,列出已发布版本(5 分钟缓存,20 秒超时,最多 4 个并发) | 该行显示 `versionError` 和「重试」,其它行不受影响 |
213
+ | `https://registry.npmjs.org/{包名}` | 只当配置的不是官方源时,额外查一次上游,报告「镜像落后」 | 读不到就当作没有缺口 |
214
+ | `https://api.github.com/repos/{owner}/{repo}/tags?per_page=100` | 取 tag 列表,判断某个版本号能不能链到 `releases/tag/v…`(30 分钟缓存,8 秒超时) | 退到 `releases` 列表页,绝不猜一个 404 的 tag |
215
+ | `{被测试的地址}/-/ping` 与根地址 | 「注册表」对话框里点「测试」时,**并发**探测这两条,谁先 2xx 用谁(整次探测 5 秒预算) | 报最具体的原因:状态码优先,其次超时,最后网络错误原文 |
216
+ | 本机 DSH Web 服务 | `/api/plugin-upgrader/*` 自己的四个路由 | — |
217
+
218
+ 默认源是 pnpm 自己配置的那个(通常是 `.npmrc` 里的),也可以在「版本」页的「注册表」按钮里
219
+ 换成官方源、大陆镜像或自己加的源。**没有任何遥测**,不向第三方发送使用数据。
220
+
221
+ ### 依赖
222
+
223
+ 运行时**没有自带依赖**。唯一的外部模块 `@deepseek-ai/schemastery`(Config schema 用,要求
224
+ `~3.18.5`)声明在 `peerDependencies` 里,由宿主提供——DSH 桌面端把它作为自身依赖发布,
225
+ `dsh-plugin-manager` 等第一方包也依赖它,所以 profile 里一定解析得到。构建和测试需要的那一份
226
+ 放在 `devDependencies`。
227
+
228
+ `devDependencies` 其余各项(TypeScript、esbuild、`@types/*`、`@deepseek-ai/dsh-*`)只在开发和
229
+ 构建时使用,不会进入发布的 tarball 运行时。
230
+
231
+ ### 失败边界
232
+
233
+ - **一次只跑一批**:第二个提交拿 `409 busy`,界面接管正在跑的那一批,不报错。
234
+ - **job 心跳 2 秒**,15 分钟没进展判废,不会永久占位;主进程重启会中断正在跑的 job,
235
+ 界面显示为失败而不是永远转圈。
236
+ - **写入锁**:manager 自己的预算是 120 秒,超时会把锁的状态翻成人话(谁持有、要不要重启)。
237
+ - **升级失败**:in-place 替换会先把被摘掉的依赖记进 journal,失败就还原;进程被杀掉时,
238
+ 下次加载会把依赖补回去。失败了插件仍在、启用状态仍在。
239
+ - **registry 读不到 / GitHub 限流 / 离线**:都降级成「这一项读不到 + 原因 + 重试入口」,
240
+ 不会伪装成「没有新版本」「没有历史版本」。
241
+
242
+ ### DSH 兼容性
243
+
244
+ 要求 Node.js `>=20`,DSH `>=0.2.1-rc.3 <0.3.0-0`(`package.json` 的 `engines`)。
245
+ `dsh.compatibility.dshReleases` 只记录**真的跑过**的版本:
246
+
247
+ | DSH 版本 | 状态 |
248
+ | --- | --- |
249
+ | `0.2.1-rc.5` | compatible |
250
+
251
+ `0.2.1-rc.4` 和 `0.2.2-alpha.2` 虽然落在 `engines` 范围内,但没有逐一实测过,所以**不写进去**
252
+ (未声明的版本按 `unknown` 处理)。这是**来源侧的兼容声明**,不代替逐项的操作验收;
253
+ `dshOperations`(install / start / uninstall / rollback)同理,没有逐版本的实测记录就留空,
254
+ 不写 `passed`。
255
+
182
256
  ## 项目结构
183
257
 
184
258
  ```
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * The overview payload the Versions tab renders.
3
3
  *
4
- * One request answers everything the tab needs 鈥?installed bundles, their
5
- * published versions, which of them are upgradable 鈥?because a per-bundle
4
+ * One request answers everything the tab needs — installed bundles, their
5
+ * published versions, which of them are upgradable — because a per-bundle
6
6
  * request would turn one page open into a dozen round trips.
7
7
  *
8
8
  * @module dsh-plugin-upgrader/lib/overview
@@ -19,7 +19,7 @@ const INLINE_ICON_LIMIT = 2048;
19
19
  * The first version of this used `Promise.all`, which fired every package
20
20
  * lookup at the mirror simultaneously. Eleven concurrent connections to
21
21
  * `registry.npmmirror.com` timed out, while the same eleven asked one at a time
22
- * answered in under 1.2 s 鈥?and each timeout rendered as a plugin with no
22
+ * answered in under 1.2 s — and each timeout rendered as a plugin with no
23
23
  * version history. The cap is what keeps one page load from becoming a burst.
24
24
  *
25
25
  * @param items - the work items.
@@ -181,11 +181,14 @@ export declare function versionsMissingFromMirror(base: string, packageName: str
181
181
  /**
182
182
  * How long a reachability probe waits before calling a source unreachable.
183
183
  *
184
- * The harness's own registry probe uses the same 1500 ms deadline, measured
185
- * against the same two addresses. Long enough for a mirror on a slow link,
186
- * short enough that a user clicking "test" gets an answer instead of a spinner.
184
+ * The harness's own registry probe uses 1500 ms, but it can afford to: it runs
185
+ * against the two addresses it already knows and only picks a default. A user
186
+ * clicking "test" here may be typing a private registry address on a slow link,
187
+ * and the two paths are raced, so the deadline bounds the whole probe rather
188
+ * than each request. 5 s is long enough for a genuinely slow mirror to answer and
189
+ * short enough that a spinner never becomes the answer.
187
190
  */
188
- export declare const PROBE_TIMEOUT_MS = 1500;
191
+ export declare const PROBE_TIMEOUT_MS = 5000;
189
192
  /** What a reachability probe found. */
190
193
  export interface ProbeResult {
191
194
  /** Whether the source answered with a 2xx. */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/host/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/host/registry.ts"],"names":[],"mappings":"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"}
@@ -314,11 +314,14 @@ export async function versionsMissingFromMirror(base, packageName, above, cache,
314
314
  /**
315
315
  * How long a reachability probe waits before calling a source unreachable.
316
316
  *
317
- * The harness's own registry probe uses the same 1500 ms deadline, measured
318
- * against the same two addresses. Long enough for a mirror on a slow link,
319
- * short enough that a user clicking "test" gets an answer instead of a spinner.
317
+ * The harness's own registry probe uses 1500 ms, but it can afford to: it runs
318
+ * against the two addresses it already knows and only picks a default. A user
319
+ * clicking "test" here may be typing a private registry address on a slow link,
320
+ * and the two paths are raced, so the deadline bounds the whole probe rather
321
+ * than each request. 5 s is long enough for a genuinely slow mirror to answer and
322
+ * short enough that a spinner never becomes the answer.
320
323
  */
321
- export const PROBE_TIMEOUT_MS = 1500;
324
+ export const PROBE_TIMEOUT_MS = 5000;
322
325
  /**
323
326
  * Ask one registry whether it is reachable right now.
324
327
  *
@@ -340,31 +343,91 @@ export async function probeRegistry(base) {
340
343
  if (root === '')
341
344
  return { ok: false, detail: 'no address' };
342
345
  /*
343
- * Two paths, in order: the npm ping endpoint most registries serve, then the
344
- * bare root. A mirror that only answers one of them is still usable, and
345
- * asking both costs one extra request only in the failing case.
346
+ * Two paths, asked at the same time: the npm ping endpoint most registries
347
+ * serve, and the bare root. They are NOT asked in sequence, because they are
348
+ * not equally fast — registry.npmmirror.com answers `/-/ping` in 3 to 15
349
+ * seconds on this network while its root answers in a quarter of a second.
350
+ * A sequential ping-then-root probe therefore spent the whole deadline on the
351
+ * slow path and called a perfectly usable mirror unreachable, which is the one
352
+ * wrong answer that matters here: the mirror is what this feature exists for.
353
+ * Racing them means the cheap answer wins, and a failure still costs one
354
+ * deadline instead of two.
346
355
  */
347
356
  const targets = [`${root}/-/ping`, `${root}/`];
348
- let lastError = 'registry unreachable';
349
- for (const target of targets) {
350
- const startedAt = Date.now();
351
- try {
352
- const response = await fetch(target, {
353
- headers: { accept: FULL_ACCEPT },
354
- signal: AbortSignal.timeout(PROBE_TIMEOUT_MS),
357
+ const startedAt = Date.now();
358
+ const answers = new Array(targets.length);
359
+ const firstGood = new Promise((resolve) => {
360
+ let outstanding = targets.length;
361
+ targets.forEach((target, index) => {
362
+ void probeOne(target, startedAt).then((answer) => {
363
+ answers[index] = answer;
364
+ if (answer.ok) {
365
+ resolve(answer);
366
+ return;
367
+ }
368
+ outstanding -= 1;
369
+ if (outstanding === 0)
370
+ resolve(undefined);
355
371
  });
356
- const ms = Date.now() - startedAt;
357
- if (response.ok)
358
- return { ok: true, detail: `HTTP ${response.status}`, ms };
359
- // A reachable registry that refuses this path is not unreachable; try
360
- // the next one before reporting the status.
361
- lastError = `HTTP ${response.status}`;
362
- }
363
- catch (error) {
364
- lastError = describeFetchError(error);
365
- }
372
+ });
373
+ });
374
+ const winner = await firstGood;
375
+ if (winner !== undefined)
376
+ return winner;
377
+ /*
378
+ * Nothing answered. Report the most specific cause available: a status line
379
+ * ("HTTP 503" — the host is up and unhappy) says more than a timeout, and a
380
+ * timeout says more than a bare network error. Picking the specific one is the
381
+ * whole reason the probe reports a cause at all.
382
+ */
383
+ const settled = answers.filter((answer) => answer !== undefined);
384
+ const ranked = settled.find((answer) => answer.detail.startsWith('HTTP '))
385
+ ?? settled.find((answer) => !answer.detail.startsWith('timed out'))
386
+ ?? settled[0];
387
+ return ranked ?? { ok: false, detail: 'registry unreachable' };
388
+ }
389
+ /**
390
+ * Ask one path on one registry whether it answers.
391
+ *
392
+ * @param target - the exact URL to fetch.
393
+ * @param startedAt - when the probe began, so the reported latency is the whole
394
+ * probe's, not this one request's.
395
+ * @returns the answer, never a rejection.
396
+ */
397
+ async function probeOne(target, startedAt) {
398
+ try {
399
+ const response = await fetch(target, {
400
+ headers: { accept: FULL_ACCEPT },
401
+ signal: AbortSignal.timeout(PROBE_TIMEOUT_MS),
402
+ });
403
+ if (response.ok)
404
+ return { ok: true, detail: `HTTP ${response.status}`, ms: Date.now() - startedAt };
405
+ /*
406
+ * A reachable registry that refuses this path is not unreachable; the other
407
+ * path still gets its chance.
408
+ */
409
+ return { ok: false, detail: `HTTP ${response.status}` };
366
410
  }
367
- return { ok: false, detail: lastError };
411
+ catch (error) {
412
+ return { ok: false, detail: probeFailure(error) };
413
+ }
414
+ }
415
+ /**
416
+ * Describe why one probe attempt produced no answer.
417
+ *
418
+ * @param error - whatever `fetch` threw.
419
+ * @returns the cause, in the same terms the rest of the tab uses.
420
+ */
421
+ function probeFailure(error) {
422
+ /*
423
+ * `AbortSignal.timeout` rejects with a DOMException whose message is the
424
+ * opaque "The operation was aborted due to timeout". The probe knows its own
425
+ * deadline, so it can say what actually happened.
426
+ */
427
+ const name = error instanceof Error ? error.name : '';
428
+ if (name === 'TimeoutError' || name === 'AbortError')
429
+ return `timed out after ${PROBE_TIMEOUT_MS} ms`;
430
+ return describeFetchError(error);
368
431
  }
369
432
  /**
370
433
  * Trim one packument down to what the tab renders.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/host/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/host/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAyC,MAAM,WAAW,CAAA;AAE9E,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAE7C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,qCAAqC,CAAA;AAEhE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAEtC,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAA;AAE9B;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEzC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAE1C,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAA;AA8BvC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAA;AAE3C,yDAAyD;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAqCtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,WAAmB,EACnB,KAAkC,EAClC,KAAc;IAEd,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,WAAW,EAAE,CAAA;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACxC,sEAAsE;QACtE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,gBAAgB;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;QAChG,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,kBAAkB;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;IACtG,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAA;IACvI,IAAI,SAAS,GAAG,sBAAsB,CAAA;IACtC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC;aAClD,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,mEAAmE;gBACnE,MAAM,KAAK,GAAG,YAAY,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;gBAC3F,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC1D,OAAO,EAAE,KAAK,EAAE,CAAA;YAClB,CAAC;YACD,IAAI,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACzC,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,uEAAuE;gBACvE,qEAAqE;gBACrE,+DAA+D;gBAC/D,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;wBAC5B,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;wBAChC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC;qBAClD,CAAC,CAAA;oBACF,IAAI,IAAI,CAAC,EAAE;wBAAE,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;gBACvC,CAAC;gBAAC,MAAM,CAAC;oBACP,iCAAiC;gBACnC,CAAC;YACH,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;YACxC,OAAO,EAAE,IAAI,EAAE,CAAA;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,yBAAyB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;QAClE,CAAC;IACH,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACrE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,qBAAqB,CAAC,IAAa;IAC1C,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3D,MAAM,MAAM,GAAG,IAA+B,CAAA;IAC9C,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAClG,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAChC,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACnE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAgC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/G,MAAM,UAAU,GACd,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAQ,QAAoC,CAAC,MAAM,CAAC,KAAK,QAAQ;QAC7F,CAAC,CAAC,CAAE,QAAoC,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAmC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACpE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CACjC,CAAC,SAAS,EAAwC,EAAE,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,CACzG,CAAA;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,SAAS,CAAC,KAAK,CACpB,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CACtG,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAA;IAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAA;IACnF,CAAC;IACD,MAAM,MAAM,GAAG,KAA8C,CAAA;IAC7D,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACtE,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnF,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,KAAK,OAAO,EAAE,CAAA;IACpD,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;AACjD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,EAAU;IACzD,MAAM,KAAK,GAAG,4DAA4D,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxF,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAA;IACnE,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;IAC7B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,gCAAgC,KAAK,IAAI,IAAI,oBAAoB,EACjE;YACE,OAAO,EAAE,EAAE,MAAM,EAAE,6BAA6B,EAAE,YAAY,EAAE,qBAAqB,EAAE;YACvF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC;SAC7C,CACF,CAAA;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAA;YAC1F,OAAO,EAAE,KAAK,EAAE,UAAU,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,CAAA;QAC5D,CAAC;QACD,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,EAAE,CAAA;QAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,KAAK,MAAM,KAAK,IAAI,IAA4B,EAAE,CAAC;YACjD,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,EAAE,KAAK,EAAE,uBAAuB,OAAO,EAAE,EAAE,EAAE,EAAE,CAAA;IACxD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,KAA4B,EAC5B,KAAc;IAEd,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAA;QAChE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG;YAAE,OAAO,GAAG,CAAC,IAAI,CAAA;IAChD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACpD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC3B,OAAO,OAAO,CAAC,IAAI,CAAA;AACrB,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,iBAAiB,GAAG,4BAA4B,CAAA;AAE7D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAY,EACZ,WAAmB,EACnB,KAAyB,EACzB,KAAkC,EAClC,KAAc;IAEd,uEAAuE;IACvE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,iBAAiB;QAAE,OAAO,EAAE,CAAA;IAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IACtE,MAAM,KAAK,GAAI,IAA2D,EAAE,QAAQ,IAAI,EAAE,CAAA;IAC1F,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,cAAc,CAAC,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IAC7F,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IACrC,MAAM,MAAM,GAAI,QAAmD,CAAC,QAAQ,IAAI,EAAE,CAAA;IAClF,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;YAAE,SAAQ;QAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC;YAAE,SAAQ;QACzE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAC3D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAYpC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC5C,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;IAC3D;;;;;;;;;;OAUG;IACH,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,SAAS,EAAE,GAAG,IAAI,GAAG,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,KAAK,CAA0B,OAAO,CAAC,MAAM,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE;QACjE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,CAAA;QAChC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,KAAK,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/C,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;gBACvB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;oBACd,OAAO,CAAC,MAAM,CAAC,CAAA;oBACf,OAAM;gBACR,CAAC;gBACD,WAAW,IAAI,CAAC,CAAA;gBAChB,IAAI,WAAW,KAAK,CAAC;oBAAE,OAAO,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IACvC;;;;;OAKG;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAyB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;WACrE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;WAChE,OAAO,CAAC,CAAC,CAAC,CAAA;IACf,OAAO,MAAM,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAA;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,SAAiB;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE;YACnC,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;YAChC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAA;QACF,IAAI,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAA;QACnG;;;WAGG;QACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAA;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAA;IACnD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC;;;;OAIG;IACH,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACrD,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,mBAAmB,gBAAgB,KAAK,CAAA;IACrG,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAoC,EACpC,gBAAoC,EACpC,QAAyC;IAEzC,MAAM,cAAc,GAAG,SAAS,EAAE,QAAQ,CAAA;IAC1C,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QAClG,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,+BAA+B,EAAE,CAAA;IAClF,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,WAAW,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ;QACnF,CAAC,CAAE,OAAmC;QACtC,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,MAAM,UAAU,GAAG,SAAS,EAAE,IAAI,KAAK,IAAI,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;QAChH,CAAC,CAAE,SAAS,CAAC,IAAgC;QAC7C,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IACtD,MAAM,IAAI,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAC9C,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAA;QACpE,OAAO;YACL,OAAO;YACP,IAAI,EAAE,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,UAAU,CAAC,OAAO,CAAY,CAAC,CAAC,CAAC,SAAS;YAC3F,UAAU,EAAE,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACrF,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACvD,OAAO,EAAE,OAAO,KAAK,gBAAgB;YACrC,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC;SAC1E,CAAA;IACH,CAAC,CAAC,CAAA;IACF,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IACxE,8EAA8E;IAC9E,MAAM,MAAM,GACV,MAAM,KAAK,SAAS;QACpB,gBAAgB,KAAK,SAAS;QAC9B,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC/C,IAAI,MAAM,GAAG,MAAM,CAAA;IACnB,IAAI,MAAM,EAAE,CAAC;QACX,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,gBAA0B,CAAC,GAAG,CAAC,CAAC,CAAA;QAChG,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9D,MAAM,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAA;IAClD,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,KAAK,MAAM,CAAA;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACjF,OAAO;QACL,MAAM,EAAE,MAAM;QACd,OAAO;QACP,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,MAAM,CAAC,WAAW,CACtB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAW,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CACpD;QAC3B,aAAa,EAAE,IAAI,CAAC,MAAM;QAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-upgrader",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "One-click upgrades, version history and rollback for plugins on the DeepSeek Harness Plugins page",
5
5
  "keywords": [
6
6
  "dsh",
@@ -62,6 +62,11 @@
62
62
  "@deepseek-ai/dsh-client-locale",
63
63
  "@deepseek-ai/dsh-client-ui-settings"
64
64
  ]
65
+ },
66
+ "compatibility": {
67
+ "dshReleases": {
68
+ "0.2.1-rc.5": "compatible"
69
+ }
65
70
  }
66
71
  },
67
72
  "devDependencies": {
@@ -70,12 +75,13 @@
70
75
  "@deepseek-ai/dsh-client-ui-slots": "^0.2.1-rc.2",
71
76
  "@deepseek-ai/dsh-host-webserver": "^0.2.1-rc.2",
72
77
  "@deepseek-ai/dsh-plugin-manager": "^0.2.1-rc.2",
78
+ "@deepseek-ai/schemastery": "~3.18.5",
73
79
  "@types/node": "^26.6.5",
74
80
  "@types/react": "^19.3.0",
75
81
  "esbuild": "^0.28.2",
76
82
  "typescript": "^7.0.2"
77
83
  },
78
- "dependencies": {
84
+ "peerDependencies": {
79
85
  "@deepseek-ai/schemastery": "~3.18.5"
80
86
  },
81
87
  "scripts": {