@1e0zj/dsh-plugin-mall 0.1.15 → 0.1.16

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 CHANGED
@@ -140,6 +140,14 @@ dsh plugin --profile web add link:C:\path\to\dsh-plugin-mall
140
140
  (文本级精准移除,用户手写的行不受影响)。
141
141
  - 安装源解析:`github:owner/repo` 优先改写为同名 npm 包(仅当 registry
142
142
  条目的 repository 指回该仓库,防止抢注),否则用 GitHub 全仓库 spec。
143
+ - 「更新至 x.y.z」按钮传的是 **`包名@版本`** 而不是裸包名。pnpm 11 有
144
+ `minimumReleaseAge` 供应链防护,默认拒绝发布不足 24 小时的版本:传裸包名
145
+ 等于让 pnpm 自己挑「最新**可安装**版本」,于是按钮写着「更新至 0.12.3」、
146
+ pnpm 却回落到 0.12.2 并报 `Already up to date`,点多少次都不动。带上版本号
147
+ 是明确指定,pnpm 照装并自行往 `minimumReleaseAgeExclude` 记一条豁免
148
+ (这行会出现在任务日志里)。更新检查读的是 registry 的 `/latest` 端点,
149
+ 不经过该策略,所以两边看到的「最新版本」本就可能不同。
150
+ 首次安装(卡片按钮)不带版本,沿用 pnpm 的策略默认值即可。
143
151
  - GitHub 源的插件、以及带原生模块的包安装时要跑构建脚本,pnpm 默认拦截;
144
152
  本插件检测到拦截后会把包名自动合并进 profile 的 `pnpm-workspace.yaml` 的
145
153
  `allowBuilds` 并自动重试一次。合并时跟随文件里已有的形状(pnpm 两种都认:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1e0zj/dsh-plugin-mall",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "description": "dsh 插件市场:搜索 GitHub dsh-plugin 话题下的插件仓库,一键安装到本地 dsh profile(agent 工具 + 设置页插件市场 tab)",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
package/src/client.js CHANGED
@@ -244,9 +244,14 @@ window.__ModuleLoader__.load({
244
244
  h("span", { className: "mkt_desc" }, dep.name + "@" + dep.version),
245
245
  h("span", { className: "mkt_depActions" },
246
246
  h("span", { className: "mkt_badge" }, kindLabel(dep.kind)),
247
+ // 必须带上版本号。传裸包名等于让 pnpm 自己挑"最新可安装
248
+ // 版本",而 pnpm 11 的 minimumReleaseAge 会拒绝发布不足
249
+ // 24 小时的版本并回落到旧版 —— 按钮写着"更新至 0.12.3",
250
+ // pnpm 却报 "Already up to date",点多少次都不动。
251
+ // 带上版本是明确指定,pnpm 照装并自行记一条豁免。
247
252
  upd && upd.hasUpdate ? h("button", {
248
253
  className: "mkt_btn mkt_btnSm",
249
- onClick: function () { props.onInstallSpec(dep.name); },
254
+ onClick: function () { props.onInstallSpec(dep.name + "@" + upd.latest); },
250
255
  }, "更新至 " + upd.latest) : null,
251
256
  h("button", {
252
257
  className: "mkt_btn mkt_btnDanger mkt_btnSm",