dsh-plugin 1.6.10 → 1.6.12
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/client/client.js +430 -360
- package/client/client.js.map +1 -1
- package/lib/services/install/registry-check.js +78 -0
- package/lib/services/install/task-queue.js +49 -5
- package/lib/types/services/install/registry-check.d.ts +15 -0
- package/lib/types/services/install/task-queue.d.ts +7 -1
- package/package.json +1 -1
- package/src/client/components/PluginHubSection.tsx +6 -5
- package/src/client/components/modals/NotificationsModal.tsx +35 -9
- package/src/client/components/modals/modals.tsx +43 -17
- package/src/client/locales.ts +32 -14
- package/src/client/logic/failures.ts +36 -2
- package/src/client/logic/urls.ts +40 -31
- package/src/server/services/install/registry-check.ts +83 -0
- package/src/server/services/install/task-queue.ts +49 -5
package/client/client.js
CHANGED
|
@@ -283,6 +283,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
283
283
|
errorTitleInstall: "安装失败",
|
|
284
284
|
errorTitleUninstall: "卸载失败",
|
|
285
285
|
errorTitleUpdate: "更新失败",
|
|
286
|
+
actionInstall: "安装",
|
|
287
|
+
actionUpdate: "更新",
|
|
288
|
+
actionUninstall: "卸载",
|
|
286
289
|
errorPlugin: "插件",
|
|
287
290
|
errorClose: "知道了",
|
|
288
291
|
errorCopy: "复制错误信息",
|
|
@@ -292,18 +295,19 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
292
295
|
failIssueBig: "一键提交 BUG 到 GitHub Issue 为开源作贡献",
|
|
293
296
|
failHubIssueHint: "此失败已被判定为环境或插件中心自身问题(非插件作者问题),带着错误日志到插件中心仓库一键提交 Issue",
|
|
294
297
|
failHubIssueBig: "反馈给插件中心排查",
|
|
295
|
-
failUnclassifiedHint: "
|
|
296
|
-
failHubStateHint: "
|
|
297
|
-
failTimeoutHint: "
|
|
298
|
-
failProfileLockHint: "DSH 在写入插件清单时等不到文件锁、超时中止 —— 通常是同时有另一个 DSH 进程或安装任务在写同一个 profile(也可能是上一次的进程没退干净留下的锁)。请先关掉其他 dsh 窗口或正在跑的命令,再重试一次;若反复出现,重启一次 DSH
|
|
298
|
+
failUnclassifiedHint: "{action}失败,原因未能自动识别。这通常不是插件自身的问题(可能与本机环境或插件中心有关),请将错误信息反馈给插件中心,由维护者排查。",
|
|
299
|
+
failHubStateHint: "插件列表状态已过期或与本地不一致:这次{action}的目标可能已经在列表里了(要升级请点「更新」),也可能已经不在已安装列表中,或已在队列中。这不是插件本身的问题 —— 请刷新页面后重试。",
|
|
300
|
+
failTimeoutHint: "本次操作耗时超过本地上限、已被中断 —— 但很可能其实已经生效了(安装器在超时后会先核对本地已安装列表)。请刷新页面确认当前状态;若确实没生效,可在终端手动执行一次对应命令查看完整输出。这不是插件本身的问题。",
|
|
301
|
+
failProfileLockHint: "DSH 在写入插件清单时等不到文件锁、超时中止 —— 通常是同时有另一个 DSH 进程或安装任务在写同一个 profile(也可能是上一次的进程没退干净留下的锁)。请先关掉其他 dsh 窗口或正在跑的命令,再重试一次;若反复出现,重启一次 DSH。这不是插件本身的问题,也不需要重复{action}。",
|
|
302
|
+
failHostCliSpawnHint: "DSH 没能启动自身来完成这次操作(系统报「找不到可执行文件」):通常是因为 DSH 的安装目录被移动或正在更新,或该 profile 目录还不存在。请重启一次 DSH 后重试;若反复出现,重新安装 DSH。这不是插件本身的问题,换别的插件也一样。",
|
|
299
303
|
failPrepareHint: "该插件安装时的构建脚本执行失败(git 分发常缺失子模块或构建产物),属插件打包分发问题。请向作者仓库提交 Issue 反馈。",
|
|
300
304
|
failMisjudgeHint: "如果这个插件其实能正常安装(上面这个判定是插件中心误报的),请反馈给插件中心:文字提示里的判据由市场自身产出,误报只有靠你的反馈才能被发现。",
|
|
301
305
|
failMisjudgeLink: "插件能装却被拦下?反馈给插件中心",
|
|
302
306
|
failPackagingHint: "该插件不支持官方默认安装方式:其 git 分发缺少它需要的文件(`main` / `exports` 声明的入口、补丁按本包名 mount 的入口,或 `dsh.bundle.patch` 声明的补丁),说明作者未适配官方安装流程。请到作者仓库提交 Issue 反馈,请其提交构建产物、改用预构建 release `.tgz` 直链(`releases/download/<tag>/<asset>.tgz`),或发布完整的 npm 版。",
|
|
303
|
-
failIgnoredBuild: "该插件(或其依赖)需要在安装时执行构建脚本,被 pnpm 的安全白名单(allowBuilds
|
|
307
|
+
failIgnoredBuild: "该插件(或其依赖)需要在安装时执行构建脚本,被 pnpm 的安全白名单(allowBuilds)默认拦截,本次操作因此失败(如原生模块 node-pty,或 git 安装时插件自己的 prepare 脚本)。安装器已自动放行该 key 并重试过一次;仍失败通常说明构建本身没通过。可先在终端手动执行一次安装命令查看完整构建错误;若确属插件的构建/分发问题,建议作者预置构建产物、发布 npm 包或预构建 .tgz。需要协助排查时也可反馈给插件中心。",
|
|
304
308
|
failNpmTooLow: "怀疑本机 npm 版本过低:npm 解析插件依赖时内部崩溃(这是 npm 自身的已知缺陷,不是插件问题)。请升级 npm 后重试:npm install -g npm@latest",
|
|
305
309
|
failNpmTooLowV: "本机 npm 版本过低(当前 v{v}):npm 解析插件依赖时内部崩溃(这是 npm 自身的已知缺陷,不是插件问题)。请升级 npm 后重试:npm install -g npm@latest",
|
|
306
|
-
failNetworkHint: "
|
|
310
|
+
failNetworkHint: "{action}前检测到网络不通:无法连接到安装源(可能是断网、DNS 解析失败、被防火墙拦截,或代理配置有问题)。这不是插件本身的问题 —— 请检查网络连接,或到「设置」里确认 HTTP 代理配置,再到「系统诊断」运行一次连通性检测,然后重试。",
|
|
307
311
|
failNetworkRegistryHint: "你的 npm/pnpm 源(registry)被配置为 {host},插件包需从该源下载但失败了。这通常是内网/自定义源没有同步该包(或需要内网认证)—— 请把 npm/pnpm 的 registry 指回官方源 https://registry.npmjs.org(或确认此源可访问该包)后重试。",
|
|
308
312
|
failNetworkTarget: "无法访问 {url} —— 你的网络连接不通",
|
|
309
313
|
failNetworkRunDiag: "去系统诊断检测网络",
|
|
@@ -316,6 +320,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
316
320
|
failPnpmUnusedPatchHint: "安装器调用 pnpm 时报「有些补丁没有被使用」(ERR_PNPM_UNUSED_PATCH):你的 profile 里留着一条指向旧版本 dsh-plugin 的补丁声明(例如 dsh-plugin@1.4.2),而本次安装解析到的版本已经不是它,pnpm 出于安全直接中止整次安装,因此任何插件都装不进来。这不是插件本身的问题——请在 profile 目录(~/.dsh/profiles/<profile>)的 pnpm-workspace.yaml(pnpm 11 及以上)或 package.json 的 pnpm.patchedDependencies(pnpm 10)里删除该 dsh-plugin 补丁条目后重试。",
|
|
317
321
|
failPnpmMissingDepTarget: "{pkg} 在 npm registry 上不存在(404)",
|
|
318
322
|
failPnpmMissingDepHint: "安装器调用 pnpm 时报「包不存在」(ERR_PNPM_FETCH_404):你的 profile 里留着一条指向 registry 上未发布包的依赖,pnpm 每次解析依赖都会先卡在它上面,因此任何插件都装不进来。这不是插件本身的问题——请在 profile 目录(~/.dsh/profiles/<profile>)的 package.json 里删除该依赖条目(同时删掉对应的 pnpm-lock.yaml 条目或整个锁文件)后重试。",
|
|
323
|
+
failRegistryMirrorLagHint: "安装器调用 pnpm 时报「包不存在」(ERR_PNPM_FETCH_404):该包在官方 npm 源上是有的,但你本机配置的 npm/pnpm 源(registry 或镜像)没有同步到它。请把 npm/pnpm 的 registry 指回官方源 https://registry.npmjs.org(或换一个已同步该包的镜像)后重试。这不是插件本身的问题。",
|
|
324
|
+
failPluginMissingDepTarget: "{pkg} 在官方 npm 源上不存在",
|
|
325
|
+
failPluginMissingDepHint: "该插件依赖的包在官方 npm 源上并不存在(已删除或从未发布):这是插件作者侧的依赖问题,不是你环境的问题。请向插件作者仓库反馈,请作者补上或修正该依赖,或改为随插件一起分发。",
|
|
319
326
|
failRegistryVersionStaleHint: "安装器调用 pnpm 时报「找不到匹配的版本」(ERR_PNPM_NO_MATCHING_VERSION):要装的这个版本在实际执行安装的 npm 源里查不到。常见原因是你设置的 npmRegistry 与本机 ~/.npmrc 用的不是同一个源——官方源刚发布、镜像还没同步上来(快则几分钟、慢则几小时),也可能只是版本号写错了。这不是插件本身的问题。可在插件市场设置里把 npmRegistry 改成与本机 ~/.npmrc 一致(或反过来),或那一次显式走官方源(https://registry.npmjs.org)、改用离线包后重试;若该版本刚发布不久,等镜像同步后重试即可。",
|
|
320
327
|
failPnpmLinkedDirMissingHint: "安装器调用 pnpm 时报「要安装的目录不存在」(ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND):你的 profile 里留着一条指向本机不存在目录的本地依赖(link: / file: 形式,例如用 dsh plugin add <本地路径> 装过开发中的插件,之后那个目录被删除或移动了)。pnpm 每次解析 profile 依赖都会先卡在它上面,因此任何插件都装不进来。这不是插件本身的问题——请在 profile 目录(~/.dsh/profiles/<profile>)的 package.json 里删除该本地依赖条目(同时删掉对应的 pnpm-lock.yaml 条目或整个锁文件),或把该目录恢复回原路径后重试。",
|
|
321
328
|
failFileLockedHint: "安装过程中 pnpm 无法替换 profile 里的文件:有程序正占用着它(Windows 常见报错 os error 32「另一个程序正在使用此文件」)。通常是 DeepSeek Harness 自身或杀毒软件的实时扫描持有文件句柄。这不是插件本身的问题——请完全退出 DeepSeek Harness(Windows 可在任务管理器确认进程已结束,必要时临时关闭杀毒软件实时防护)后重试。",
|
|
@@ -639,6 +646,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
639
646
|
errorTitleInstall: "Install failed",
|
|
640
647
|
errorTitleUninstall: "Removal failed",
|
|
641
648
|
errorTitleUpdate: "Update failed",
|
|
649
|
+
actionInstall: "install",
|
|
650
|
+
actionUpdate: "update",
|
|
651
|
+
actionUninstall: "removal",
|
|
642
652
|
errorPlugin: "Plugin",
|
|
643
653
|
errorClose: "Got it",
|
|
644
654
|
errorCopy: "Copy error",
|
|
@@ -648,18 +658,19 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
648
658
|
failIssueBig: "Report this bug to GitHub — contribute to open source",
|
|
649
659
|
failHubIssueHint: "This failure was classified as an environment or Plugin Hub issue (not a plugin-author issue). Open a pre-filled issue on the Plugin Hub repo with this error log.",
|
|
650
660
|
failHubIssueBig: "Report to the Plugin Hub for triage",
|
|
651
|
-
failUnclassifiedHint: "The
|
|
652
|
-
failHubStateHint: "The plugin list is out of date or out of sync: this
|
|
653
|
-
failTimeoutHint: "
|
|
654
|
-
failProfileLockHint: "DSH timed out waiting for the file lock while writing the plugin list — usually because another DSH process or install task is writing the same profile (sometimes a previous run left the lock behind). Close other dsh windows or running commands, then retry; if it keeps happening, restart DSH once. This is not a plugin problem, and
|
|
661
|
+
failUnclassifiedHint: "The {action} failed and the cause could not be identified automatically. This is usually not the plugin itself (it may relate to your local environment or the Plugin Hub). Please report the error to the Plugin Hub so the maintainers can triage it.",
|
|
662
|
+
failHubStateHint: "The plugin list is out of date or out of sync: the target of this {action} may already be in the list (use \"Update\" to upgrade), may no longer be in the installed list, or may already be queued. This is not a plugin problem — refresh the page and retry.",
|
|
663
|
+
failTimeoutHint: "This operation exceeded the local time limit and was interrupted — but it may well have taken effect already (the installer re-checks the installed list after a timeout). Refresh the page to confirm the current state; if it did not take effect, run the corresponding command in a terminal to see the full output. This is not a plugin problem.",
|
|
664
|
+
failProfileLockHint: "DSH timed out waiting for the file lock while writing the plugin list — usually because another DSH process or install task is writing the same profile (sometimes a previous run left the lock behind). Close other dsh windows or running commands, then retry; if it keeps happening, restart DSH once. This is not a plugin problem, and there is no need to repeat the {action}.",
|
|
665
|
+
failHostCliSpawnHint: "DSH could not start itself to perform this operation (the system reported that the executable was not found). This usually means the DSH installation folder has been moved or is being updated, or that the profile directory does not exist yet. Restart DSH and retry; if it keeps happening, reinstall DSH. This is not a plugin problem — other plugins would fail the same way.",
|
|
655
666
|
failPrepareHint: "This plugin failed while running its build scripts during install (git tarballs often miss submodules or build output). This is a packaging issue of the plugin itself — please report it to the author repository.",
|
|
656
667
|
failMisjudgeHint: "If this plugin actually installs fine (the verdict above is the Plugin Hub misjudging it), please report it to the Hub: that verdict is produced by the marketplace itself, so a false positive can only be found through your feedback.",
|
|
657
668
|
failMisjudgeLink: "Plugin installs fine but got blocked? Report to the Plugin Hub",
|
|
658
669
|
failPackagingHint: "This plugin does not support the official default install method: its git distribution lacks a file the package needs (the entry from `main` / `exports`, an entry its own patch mounts by name, or the patch declared by `dsh.bundle.patch`), so it has not been adapted to the official install flow. Please file an Issue on the author's repo asking for committed build output, a prebuilt release `.tgz` (`releases/download/<tag>/<asset>.tgz`), or a complete npm release.",
|
|
659
|
-
failIgnoredBuild: "This plugin (or one of its dependencies) needs to run build scripts at install time, which pnpm blocks by default via its allowBuilds allowlist — so
|
|
670
|
+
failIgnoredBuild: "This plugin (or one of its dependencies) needs to run build scripts at install time, which pnpm blocks by default via its allowBuilds allowlist — so this operation fails (e.g. native modules like node-pty, or the plugin's own prepare script on git installs). The installer already auto-allows that key and retries once; if it still fails, the build itself is usually the problem. Run the install command in a terminal to see the full build error; if it is indeed the plugin's build or distribution, the author can ship prebuilt output, an npm release, or a prebuilt .tgz. You can also report it to the Plugin Hub for triage.",
|
|
660
671
|
failNpmTooLow: "Your local npm may be too old: npm crashed internally while resolving the plugin's dependencies (a known npm bug — not a plugin issue). Please upgrade npm and retry: npm install -g npm@latest",
|
|
661
672
|
failNpmTooLowV: "Your local npm is too old (v{v}): npm crashed internally while resolving the plugin's dependencies (a known npm bug — not a plugin issue). Please upgrade npm and retry: npm install -g npm@latest",
|
|
662
|
-
failNetworkHint: "The network could not be reached before
|
|
673
|
+
failNetworkHint: "The network could not be reached before the {action}: the install source is unreachable (offline, DNS failure, firewall block, or a misconfigured proxy). This is not a problem with the plugin itself — please check your connection, confirm the HTTP proxy in Settings, run a connectivity check under System Diagnostics, then retry.",
|
|
663
674
|
failNetworkRegistryHint: "Your npm/pnpm registry is set to {host}, and the package tarball could not be downloaded from it. This usually means a private/internal mirror that has not synced the package (or requires intranet auth) — point the registry back to https://registry.npmjs.org (or make sure this source can serve the package), then retry.",
|
|
664
675
|
failNetworkTarget: "Cannot reach {url} — your network connection is down",
|
|
665
676
|
failNetworkRunDiag: "Run a network diagnostic",
|
|
@@ -672,6 +683,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
672
683
|
failPnpmUnusedPatchHint: "pnpm reported that some patches were not used (ERR_PNPM_UNUSED_PATCH): your profile still holds a patch entry for an older dsh-plugin version (for example dsh-plugin@1.4.2), while this install resolved a different version, so pnpm aborts the whole install for safety — no plugin can be installed into that profile. This is not a problem with the plugin itself. Remove that dsh-plugin patch entry from pnpm-workspace.yaml (pnpm 11+) or from pnpm.patchedDependencies in package.json (pnpm 10) inside the profile directory (~/.dsh/profiles/<profile>), then retry.",
|
|
673
684
|
failPnpmMissingDepTarget: "{pkg} was not found on the npm registry (404)",
|
|
674
685
|
failPnpmMissingDepHint: "pnpm reported that a package does not exist on the npm registry (ERR_PNPM_FETCH_404): your profile keeps a dependency on a package that was never published, and pnpm hits it every time it resolves dependencies — no plugin can be installed into that profile. This is not a problem with the plugin itself. Remove that dependency from package.json inside the profile directory (~/.dsh/profiles/<profile>) — along with its entry in pnpm-lock.yaml, or the lockfile itself — then retry.",
|
|
686
|
+
failRegistryMirrorLagHint: "pnpm reported that a package does not exist on the npm registry (ERR_PNPM_FETCH_404): that package does exist on the official npm registry, but the npm/pnpm registry (or mirror) configured on your machine has not synced it. Point the npm/pnpm registry back at the official one (https://registry.npmjs.org), or switch to a mirror that has the package, then retry. This is not a problem with the plugin itself.",
|
|
687
|
+
failPluginMissingDepTarget: "{pkg} does not exist on the official npm registry",
|
|
688
|
+
failPluginMissingDepHint: "A package this plugin depends on does not exist on the official npm registry (removed, or never published). This is a dependency problem on the plugin author side, not a problem with your environment. Please report it to the plugin repository so the author can fix that dependency or ship it together with the plugin.",
|
|
675
689
|
failRegistryVersionStaleHint: "pnpm reported that no matching version was found (ERR_PNPM_NO_MATCHING_VERSION): the version being installed does not exist in the npm registry that actually performs the install. This usually means the npmRegistry configured in the hub differs from the source in your local ~/.npmrc — the official registry has published it but the mirror has not synced yet (it can take minutes to hours) — or the version number was simply mistyped. This is not a problem with the plugin itself. Align the hub's npmRegistry with your local ~/.npmrc (or the other way round), or explicitly use the official registry (https://registry.npmjs.org) for that one install, or use an offline package, then retry; if the version was published only recently, waiting for the mirror to sync is enough.",
|
|
676
690
|
failPnpmLinkedDirMissingHint: "pnpm reported that a directory it needs to install from does not exist (ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND): your profile keeps a local dependency (a link: / file: entry, e.g. from `dsh plugin add <local path>`) whose target directory has since been deleted or moved. pnpm hits it every time it resolves profile dependencies, so no plugin can be installed into that profile. This is not a problem with the plugin itself. Remove that local dependency from package.json inside the profile directory (~/.dsh/profiles/<profile>) — along with its entry in pnpm-lock.yaml, or the lockfile itself — or restore the directory to its original path, then retry.",
|
|
677
691
|
failFileLockedHint: "During install, pnpm could not replace a file inside the profile because another program is holding it (on Windows this shows as os error 32, \"the process cannot access the file because it is being used by another process\"). Usually DeepSeek Harness itself or a real-time antivirus scan holds the handle. This is not a problem with the plugin itself — fully quit DeepSeek Harness (on Windows, confirm in Task Manager that the process has ended, and temporarily disable real-time antivirus protection if needed), then retry.",
|
|
@@ -738,42 +752,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
738
752
|
css: css$11
|
|
739
753
|
});
|
|
740
754
|
var Header_module_css_default = {
|
|
741
|
-
"
|
|
742
|
-
"
|
|
743
|
-
"
|
|
744
|
-
"
|
|
745
|
-
"segLabel": "qikqja_segLabel",
|
|
746
|
-
"version": "qikqja_version",
|
|
755
|
+
"taglineLink": "qikqja_taglineLink",
|
|
756
|
+
"copyIcon": "qikqja_copyIcon",
|
|
757
|
+
"resultSeg": "qikqja_resultSeg",
|
|
758
|
+
"searchRow": "qikqja_searchRow",
|
|
747
759
|
"logoIcon": "qikqja_logoIcon",
|
|
760
|
+
"tab": "qikqja_tab",
|
|
761
|
+
"adText": "qikqja_adText",
|
|
762
|
+
"versionBtn": "qikqja_versionBtn",
|
|
763
|
+
"segGroup": "qikqja_segGroup",
|
|
764
|
+
"headerRight": "qikqja_headerRight",
|
|
765
|
+
"segLabel": "qikqja_segLabel",
|
|
766
|
+
"adBadge": "qikqja_adBadge",
|
|
767
|
+
"controls": "qikqja_controls",
|
|
748
768
|
"tabCount": "qikqja_tabCount",
|
|
749
|
-
"
|
|
750
|
-
"langBtn": "qikqja_langBtn",
|
|
769
|
+
"adArrow": "qikqja_adArrow",
|
|
751
770
|
"githubLink": "qikqja_githubLink",
|
|
752
|
-
"
|
|
753
|
-
"title": "qikqja_title",
|
|
754
|
-
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
771
|
+
"version": "qikqja_version",
|
|
755
772
|
"segBtnActive": "qikqja_segBtnActive",
|
|
756
|
-
"
|
|
757
|
-
"
|
|
758
|
-
"
|
|
759
|
-
"
|
|
760
|
-
"versionBtn": "qikqja_versionBtn",
|
|
761
|
-
"tagline": "qikqja_tagline",
|
|
773
|
+
"tabActive": "qikqja_tabActive",
|
|
774
|
+
"sortGroup": "qikqja_sortGroup",
|
|
775
|
+
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
776
|
+
"langBtn": "qikqja_langBtn",
|
|
762
777
|
"githubIcon": "qikqja_githubIcon",
|
|
763
778
|
"aboutBtn": "qikqja_aboutBtn",
|
|
764
|
-
"
|
|
779
|
+
"tagline": "qikqja_tagline",
|
|
765
780
|
"segBtn": "qikqja_segBtn",
|
|
766
|
-
"copyIcon": "qikqja_copyIcon",
|
|
767
|
-
"adBadge": "qikqja_adBadge",
|
|
768
781
|
"root": "qikqja_root",
|
|
769
782
|
"resultCount": "qikqja_resultCount",
|
|
770
|
-
"
|
|
771
|
-
"
|
|
783
|
+
"header": "qikqja_header",
|
|
784
|
+
"adBanner": "qikqja_adBanner",
|
|
785
|
+
"tabsRow": "qikqja_tabsRow",
|
|
786
|
+
"tabs": "qikqja_tabs",
|
|
787
|
+
"title": "qikqja_title",
|
|
772
788
|
"headerTitleRow": "qikqja_headerTitleRow",
|
|
773
|
-
"
|
|
774
|
-
"
|
|
775
|
-
"adText": "qikqja_adText",
|
|
776
|
-
"segGroup": "qikqja_segGroup"
|
|
789
|
+
"brandTitle": "qikqja_brandTitle",
|
|
790
|
+
"search": "qikqja_search"
|
|
777
791
|
};
|
|
778
792
|
//#endregion
|
|
779
793
|
//#region \0dsh-css:src/client/styles/Modal.module.css.mjs
|
|
@@ -792,137 +806,137 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
792
806
|
css: css$10
|
|
793
807
|
});
|
|
794
808
|
var Modal_module_css_default = {
|
|
795
|
-
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
796
|
-
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
797
|
-
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
798
|
-
"progressHead": "BiQ1zG_progressHead",
|
|
799
|
-
"overlayIn": "BiQ1zG_overlayIn",
|
|
800
|
-
"failHead": "BiQ1zG_failHead",
|
|
801
|
-
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
802
|
-
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
803
|
-
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
804
|
-
"failList": "BiQ1zG_failList",
|
|
805
|
-
"modalWide": "BiQ1zG_modalWide",
|
|
806
|
-
"modalClose": "BiQ1zG_modalClose",
|
|
807
|
-
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
808
809
|
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
809
|
-
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
810
|
-
"linkIcon": "BiQ1zG_linkIcon",
|
|
811
|
-
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
812
|
-
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
813
|
-
"toastIn": "BiQ1zG_toastIn",
|
|
814
|
-
"toast": "BiQ1zG_toast",
|
|
815
|
-
"queueRow": "BiQ1zG_queueRow",
|
|
816
|
-
"modalCancel": "BiQ1zG_modalCancel",
|
|
817
|
-
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
818
|
-
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
819
|
-
"failClear": "BiQ1zG_failClear",
|
|
820
|
-
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
821
|
-
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
822
|
-
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
823
|
-
"detailRow": "BiQ1zG_detailRow",
|
|
824
|
-
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
825
|
-
"errorBox": "BiQ1zG_errorBox",
|
|
826
|
-
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
827
|
-
"detailArrow": "BiQ1zG_detailArrow",
|
|
828
|
-
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
829
|
-
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
830
|
-
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
831
|
-
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
832
|
-
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
833
|
-
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
834
|
-
"toastFail": "BiQ1zG_toastFail",
|
|
835
|
-
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
836
|
-
"modalIn": "BiQ1zG_modalIn",
|
|
837
|
-
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
838
|
-
"detailModal": "BiQ1zG_detailModal",
|
|
839
|
-
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
840
|
-
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
841
810
|
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
842
|
-
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
843
|
-
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
844
|
-
"noticeMain": "BiQ1zG_noticeMain",
|
|
845
|
-
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
846
|
-
"queueSection": "BiQ1zG_queueSection",
|
|
847
|
-
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
848
|
-
"detailDim": "BiQ1zG_detailDim",
|
|
849
|
-
"detailStars": "BiQ1zG_detailStars",
|
|
850
|
-
"logModal": "BiQ1zG_logModal",
|
|
851
811
|
"resultDesc": "BiQ1zG_resultDesc",
|
|
852
|
-
"
|
|
853
|
-
"
|
|
854
|
-
"
|
|
812
|
+
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
813
|
+
"resultTitle": "BiQ1zG_resultTitle",
|
|
814
|
+
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
815
|
+
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
855
816
|
"modalInstall": "BiQ1zG_modalInstall",
|
|
856
|
-
"
|
|
817
|
+
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
818
|
+
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
819
|
+
"restartNow": "BiQ1zG_restartNow",
|
|
820
|
+
"modalActions": "BiQ1zG_modalActions",
|
|
821
|
+
"noticeMain": "BiQ1zG_noticeMain",
|
|
822
|
+
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
823
|
+
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
824
|
+
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
825
|
+
"queueRow": "BiQ1zG_queueRow",
|
|
826
|
+
"progressHead": "BiQ1zG_progressHead",
|
|
827
|
+
"failList": "BiQ1zG_failList",
|
|
828
|
+
"detailArrow": "BiQ1zG_detailArrow",
|
|
829
|
+
"noticeList": "BiQ1zG_noticeList",
|
|
830
|
+
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
857
831
|
"modalLabel": "BiQ1zG_modalLabel",
|
|
832
|
+
"errorBox": "BiQ1zG_errorBox",
|
|
833
|
+
"resultCheck": "BiQ1zG_resultCheck",
|
|
834
|
+
"progressTrack": "BiQ1zG_progressTrack",
|
|
835
|
+
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
836
|
+
"modalClose": "BiQ1zG_modalClose",
|
|
837
|
+
"linkIcon": "BiQ1zG_linkIcon",
|
|
838
|
+
"queueSection": "BiQ1zG_queueSection",
|
|
839
|
+
"stripCancel": "BiQ1zG_stripCancel",
|
|
840
|
+
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
841
|
+
"progressFill": "BiQ1zG_progressFill",
|
|
842
|
+
"noticeRow": "BiQ1zG_noticeRow",
|
|
843
|
+
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
844
|
+
"errorHint": "BiQ1zG_errorHint",
|
|
858
845
|
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
859
|
-
"
|
|
860
|
-
"
|
|
861
|
-
"
|
|
862
|
-
"
|
|
846
|
+
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
847
|
+
"detailRow": "BiQ1zG_detailRow",
|
|
848
|
+
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
849
|
+
"modalHead": "BiQ1zG_modalHead",
|
|
850
|
+
"errorModal": "BiQ1zG_errorModal",
|
|
851
|
+
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
852
|
+
"detailMono": "BiQ1zG_detailMono",
|
|
853
|
+
"noticeTime": "BiQ1zG_noticeTime",
|
|
854
|
+
"toastFail": "BiQ1zG_toastFail",
|
|
855
|
+
"modalWide": "BiQ1zG_modalWide",
|
|
856
|
+
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
863
857
|
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
864
|
-
"
|
|
865
|
-
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
866
|
-
"helpModal": "BiQ1zG_helpModal",
|
|
867
|
-
"progressText": "BiQ1zG_progressText",
|
|
858
|
+
"detailStars": "BiQ1zG_detailStars",
|
|
868
859
|
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
869
|
-
"
|
|
870
|
-
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
871
|
-
"noticeRow": "BiQ1zG_noticeRow",
|
|
860
|
+
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
872
861
|
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
873
|
-
"detailMono": "BiQ1zG_detailMono",
|
|
874
|
-
"restartNow": "BiQ1zG_restartNow",
|
|
875
|
-
"result": "BiQ1zG_result",
|
|
876
|
-
"modalBody": "BiQ1zG_modalBody",
|
|
877
|
-
"trustHint": "BiQ1zG_trustHint",
|
|
878
|
-
"detailValue": "BiQ1zG_detailValue",
|
|
879
|
-
"detailLink": "BiQ1zG_detailLink",
|
|
880
|
-
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
881
|
-
"errorHint": "BiQ1zG_errorHint",
|
|
882
|
-
"modalLink": "BiQ1zG_modalLink",
|
|
883
|
-
"failRepo": "BiQ1zG_failRepo",
|
|
884
|
-
"modalDesc": "BiQ1zG_modalDesc",
|
|
885
|
-
"modalCopy": "BiQ1zG_modalCopy",
|
|
886
|
-
"modalRow": "BiQ1zG_modalRow",
|
|
887
|
-
"queuedHint": "BiQ1zG_queuedHint",
|
|
888
|
-
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
889
|
-
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
890
|
-
"modal": "BiQ1zG_modal",
|
|
891
|
-
"stripCancel": "BiQ1zG_stripCancel",
|
|
892
862
|
"noticeHead": "BiQ1zG_noticeHead",
|
|
863
|
+
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
893
864
|
"failCopy": "BiQ1zG_failCopy",
|
|
894
|
-
"
|
|
895
|
-
"
|
|
896
|
-
"
|
|
897
|
-
"
|
|
898
|
-
"
|
|
865
|
+
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
866
|
+
"detailDim": "BiQ1zG_detailDim",
|
|
867
|
+
"toast": "BiQ1zG_toast",
|
|
868
|
+
"failRow": "BiQ1zG_failRow",
|
|
869
|
+
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
870
|
+
"trustHint": "BiQ1zG_trustHint",
|
|
899
871
|
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
900
|
-
"
|
|
872
|
+
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
873
|
+
"detailValue": "BiQ1zG_detailValue",
|
|
901
874
|
"modalTitle": "BiQ1zG_modalTitle",
|
|
875
|
+
"detailModal": "BiQ1zG_detailModal",
|
|
902
876
|
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
903
|
-
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
904
|
-
"progress": "BiQ1zG_progress",
|
|
905
|
-
"errorTitle": "BiQ1zG_errorTitle",
|
|
906
877
|
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
907
|
-
"
|
|
878
|
+
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
879
|
+
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
880
|
+
"modalRow": "BiQ1zG_modalRow",
|
|
881
|
+
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
882
|
+
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
883
|
+
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
908
884
|
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
909
|
-
"
|
|
910
|
-
"
|
|
911
|
-
"
|
|
885
|
+
"modalCancel": "BiQ1zG_modalCancel",
|
|
886
|
+
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
887
|
+
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
888
|
+
"failMisjudgeLink": "BiQ1zG_failMisjudgeLink",
|
|
889
|
+
"logModal": "BiQ1zG_logModal",
|
|
890
|
+
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
891
|
+
"failClear": "BiQ1zG_failClear",
|
|
892
|
+
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
893
|
+
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
894
|
+
"modalCopy": "BiQ1zG_modalCopy",
|
|
895
|
+
"errorTitle": "BiQ1zG_errorTitle",
|
|
896
|
+
"result": "BiQ1zG_result",
|
|
897
|
+
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
898
|
+
"failHead": "BiQ1zG_failHead",
|
|
899
|
+
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
912
900
|
"detailPath": "BiQ1zG_detailPath",
|
|
913
|
-
"
|
|
914
|
-
"
|
|
915
|
-
"
|
|
916
|
-
"
|
|
917
|
-
"
|
|
918
|
-
"
|
|
919
|
-
"
|
|
901
|
+
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
902
|
+
"failRepo": "BiQ1zG_failRepo",
|
|
903
|
+
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
904
|
+
"modalBody": "BiQ1zG_modalBody",
|
|
905
|
+
"modalValue": "BiQ1zG_modalValue",
|
|
906
|
+
"helpModal": "BiQ1zG_helpModal",
|
|
907
|
+
"failEmpty": "BiQ1zG_failEmpty",
|
|
908
|
+
"modalCmd": "BiQ1zG_modalCmd",
|
|
920
909
|
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
910
|
+
"detailLink": "BiQ1zG_detailLink",
|
|
911
|
+
"modalIn": "BiQ1zG_modalIn",
|
|
912
|
+
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
913
|
+
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
914
|
+
"overlay": "BiQ1zG_overlay",
|
|
915
|
+
"toastIn": "BiQ1zG_toastIn",
|
|
916
|
+
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
917
|
+
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
918
|
+
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
919
|
+
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
920
|
+
"modalDesc": "BiQ1zG_modalDesc",
|
|
921
|
+
"aboutContent": "BiQ1zG_aboutContent",
|
|
922
|
+
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
923
|
+
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
924
|
+
"failKind": "BiQ1zG_failKind",
|
|
925
|
+
"progressText": "BiQ1zG_progressText",
|
|
926
|
+
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
927
|
+
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
928
|
+
"modalLink": "BiQ1zG_modalLink",
|
|
929
|
+
"detailGrid": "BiQ1zG_detailGrid",
|
|
930
|
+
"overlayIn": "BiQ1zG_overlayIn",
|
|
931
|
+
"progress": "BiQ1zG_progress",
|
|
932
|
+
"aboutModal": "BiQ1zG_aboutModal",
|
|
921
933
|
"detailLabel": "BiQ1zG_detailLabel",
|
|
922
|
-
"
|
|
923
|
-
"
|
|
924
|
-
"
|
|
925
|
-
"
|
|
934
|
+
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
935
|
+
"restartLater": "BiQ1zG_restartLater",
|
|
936
|
+
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
937
|
+
"queuedHint": "BiQ1zG_queuedHint",
|
|
938
|
+
"modal": "BiQ1zG_modal",
|
|
939
|
+
"detailPathText": "BiQ1zG_detailPathText"
|
|
926
940
|
};
|
|
927
941
|
//#endregion
|
|
928
942
|
//#region src/server/services/install/release-target.ts
|
|
@@ -1036,7 +1050,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1036
1050
|
* tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
|
|
1037
1051
|
* node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
|
|
1038
1052
|
*/
|
|
1039
|
-
const PLUGIN_VERSION = "1.6.
|
|
1053
|
+
const PLUGIN_VERSION = "1.6.12";
|
|
1040
1054
|
const CATEGORY_ORDER = [
|
|
1041
1055
|
"interface",
|
|
1042
1056
|
"session",
|
|
@@ -1673,7 +1687,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1673
1687
|
* registry 真实发布时间下发(同源),据此判断最准。门槛命中要单列成 `pending` 而不是
|
|
1674
1688
|
* 落回「无更新」——回落会让弹窗在本机版本落后时谎称「已是最新」。
|
|
1675
1689
|
*/
|
|
1676
|
-
const hubCurrentVersion = "1.6.
|
|
1690
|
+
const hubCurrentVersion = "1.6.12";
|
|
1677
1691
|
const hubUpdateState = (() => {
|
|
1678
1692
|
if (!hubUpdateInfo) return "none";
|
|
1679
1693
|
if (hubUpdateInfo.version === hubCurrentVersion) return "latest";
|
|
@@ -1865,6 +1879,19 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1865
1879
|
save(next);
|
|
1866
1880
|
return next;
|
|
1867
1881
|
}
|
|
1882
|
+
/** 动作词(英文):名词短语,标题与句子里都成立。 */
|
|
1883
|
+
function actionWordEn(action) {
|
|
1884
|
+
return action === "uninstall" ? "removal" : action === "update" ? "update" : "install";
|
|
1885
|
+
}
|
|
1886
|
+
/** 动作词(中文):安装 / 更新 / 卸载。 */
|
|
1887
|
+
function actionWordZh(action) {
|
|
1888
|
+
return action === "uninstall" ? "卸载" : action === "update" ? "更新" : "安装";
|
|
1889
|
+
}
|
|
1890
|
+
/** 记录的动作:老记录只有 kind,按 kind 兜底。 */
|
|
1891
|
+
function actionOfRecord(rec) {
|
|
1892
|
+
if (rec.action !== void 0) return rec.action;
|
|
1893
|
+
return rec.kind === "uninstall" ? "uninstall" : rec.kind === "update" ? "update" : "install";
|
|
1894
|
+
}
|
|
1868
1895
|
/** Match the pnpm error code, not a generic mention of checksum or integrity. */
|
|
1869
1896
|
function missingTarballIntegrity(message) {
|
|
1870
1897
|
return /\bERR_PNPM_MISSING_TARBALL_INTEGRITY\b/.test(message);
|
|
@@ -1913,6 +1940,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1913
1940
|
if (/ERR_PNPM_IGNORED_BUILDS|Ignored build scripts:|ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED/i.test(message)) return "pnpmIgnoredBuild";
|
|
1914
1941
|
if (/\[network\]|ERR_PNPM_GIT_FETCH_FAILED|ETIMEDOUT|ECONNREFUSED|ECONNRESET|ENOTFOUND|EAI_AGAIN|EPIPE|EHOSTUNREACH|ENETUNREACH|getaddrinfo|Could not connect|Could not resolve host|Network unreachable|Failed to connect|socket hang up|CERT_HAS_EXPIRED|SSL certificate problem|\bTLS\b|\bSSL\b|fetch failed|failed to fetch|\bGET https?:\/\/\S+\.tgz\s+error \(\d+\)/i.test(message)) return "network";
|
|
1915
1942
|
if (/\[packaging\]|entry file missing/i.test(message)) return "pluginPrepare";
|
|
1943
|
+
if (/\[registry-missing\]/i.test(message)) return "pluginMissingDep";
|
|
1916
1944
|
if (/ERR_PNPM_FETCH_404|404 Not Found|Not Found - 404/i.test(message)) return "pnpmMissingDep";
|
|
1917
1945
|
if (/\bERR_PNPM_NO_MATCHING_VERSION\b|\bETARGET\b|No matching version found/i.test(message)) return "registryVersionStale";
|
|
1918
1946
|
if (/\bERR_PNPM_LINKED_PKG_DIR_NOT_FOUND\b|Could not install from .+ as it does not exist/i.test(message)) return "pnpmLinkedDirMissing";
|
|
@@ -1920,6 +1948,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1920
1948
|
if (/plugin is not installed|plugin cannot be uninstalled here|already queued:|^already installed: \S+$/im.test(message)) return "hubState";
|
|
1921
1949
|
if (/^\[timed out\]$/m.test(message)) return "timeout";
|
|
1922
1950
|
if (/atomic-write: timed out waiting for the writer lock|timed out waiting for the writer lock/i.test(message)) return "profileLock";
|
|
1951
|
+
if (/git-hosted plugins build on install via their prepare script|add the exact key pnpm printed above under allowBuilds/i.test(message)) return "pnpmIgnoredBuild";
|
|
1952
|
+
if (/\[host-spawn\]/i.test(message)) return "hostCliSpawn";
|
|
1923
1953
|
return "hub";
|
|
1924
1954
|
}
|
|
1925
1955
|
/** 从服务端 `[npm-too-low]` 标记行提取本机 npm 版本(如 `[npm-too-low] npm@11.3.0` → "11.3.0");
|
|
@@ -1977,13 +2007,19 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1977
2007
|
const m = message.match(/\[?ERR_[A-Z0-9_]+\]?/);
|
|
1978
2008
|
return m ? m[0].replace(/^\[|\]$/g, "") : null;
|
|
1979
2009
|
}
|
|
2010
|
+
/** 「包在 registry 不存在」失败的提示变体:服务端用官方源复核过(会注入 `[registry-mirror-lag]`)
|
|
2011
|
+
* 时,说明包在官方源上存在、是本机镜像源未同步 → 提示换源;否则沿用既有的「profile 残留依赖」
|
|
2012
|
+
* 提示(#73:指向从未发布包的残留条目,任何插件都装不进来)。 */
|
|
2013
|
+
function registryMissingHintOf(message) {
|
|
2014
|
+
return /\[registry-mirror-lag\]/i.test(message) ? "failRegistryMirrorLagHint" : "failPnpmMissingDepHint";
|
|
2015
|
+
}
|
|
1980
2016
|
/** 提取「registry 上不存在的包名」:从 404 行(`ERR_PNPM_FETCH_404 GET <registry>/<pkg>: Not Found - 404`)
|
|
1981
2017
|
* 里取请求路径中的包名(含 scope,如 `@scope/name`);非 404 或提取不到返回 null。 */
|
|
1982
2018
|
function missingRegistryPackageOf(message) {
|
|
1983
2019
|
for (const line of message.split(/\r?\n/)) {
|
|
1984
2020
|
if (!/ERR_PNPM_FETCH_404|404/.test(line)) continue;
|
|
1985
2021
|
const m = line.match(/GET\s+https?:\/\/[^\s/]+\/((?:@[^/\s:]+\/)?[^/\s:]+)/);
|
|
1986
|
-
if (m) return m[1];
|
|
2022
|
+
if (m) return m[1].replace(/%40/gi, "@").replace(/%2f/gi, "/");
|
|
1987
2023
|
}
|
|
1988
2024
|
return null;
|
|
1989
2025
|
}
|
|
@@ -2048,18 +2084,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2048
2084
|
function pluginSiteUrl(repo) {
|
|
2049
2085
|
return siteUrl(`plugins/${repo}`);
|
|
2050
2086
|
}
|
|
2051
|
-
/**
|
|
2052
|
-
*
|
|
2053
|
-
|
|
2054
|
-
|
|
2087
|
+
/** 错误原因标题(对外英文):点明问题出在哪一侧,便于 issue 列表分流;
|
|
2088
|
+
* 动作级原因(未分类/超时…)带动作词,卸载失败不写成 install failed。 */
|
|
2089
|
+
function reasonTitleOf(kind, action) {
|
|
2090
|
+
const word = actionWordEn(action);
|
|
2055
2091
|
switch (kind) {
|
|
2056
|
-
case "npmTooOld": return
|
|
2092
|
+
case "npmTooOld": return `npm too old for this ${word}`;
|
|
2057
2093
|
case "dshMissing": return "dsh command not found on the user machine";
|
|
2058
2094
|
case "pnpmMissing": return "pnpm command not found on the user machine";
|
|
2059
2095
|
case "pnpmStore": return "pnpm store version mismatch on the user machine";
|
|
2060
|
-
case "pnpmWorkspace": return
|
|
2096
|
+
case "pnpmWorkspace": return `pnpm workspace-root check blocked the ${word} on the user machine`;
|
|
2061
2097
|
case "originRejected": return "request origin rejected by the local service on the user machine";
|
|
2062
|
-
case "pnpmPolicy": return
|
|
2098
|
+
case "pnpmPolicy": return `pnpm supply-chain policy blocked the ${word} on the user machine`;
|
|
2063
2099
|
case "pnpmUnusedPatch": return "stale pnpm patch entry on the user machine";
|
|
2064
2100
|
case "pnpmMissingDep": return "dependency not found on the npm registry on the user machine";
|
|
2065
2101
|
case "registryVersionStale": return "requested version not available on the npm registry in use on the user machine";
|
|
@@ -2070,11 +2106,13 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2070
2106
|
case "pnpmIgnoredBuild": return "build scripts blocked by pnpm allowlist";
|
|
2071
2107
|
case "pluginPrepare": return "plugin distribution incomplete";
|
|
2072
2108
|
case "network": return "network failure on the user side";
|
|
2073
|
-
case "
|
|
2074
|
-
case "
|
|
2109
|
+
case "hostCliSpawn": return "the DSH host could not be launched on the user machine";
|
|
2110
|
+
case "hubState": return `stale ${word} state in the plugin hub`;
|
|
2111
|
+
case "timeout": return `${word} timed out`;
|
|
2075
2112
|
case "profileLock": return "DSH profile is locked by another process";
|
|
2076
|
-
case "
|
|
2077
|
-
|
|
2113
|
+
case "pluginMissingDep": return "a dependency of the plugin is not published on npm";
|
|
2114
|
+
case "hub": return `${word} failed (cause unclassified)`;
|
|
2115
|
+
default: return `plugin ${word} failed`;
|
|
2078
2116
|
}
|
|
2079
2117
|
}
|
|
2080
2118
|
/**
|
|
@@ -2086,11 +2124,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2086
2124
|
* attempts(尝试过的安装方式,npm 反查 + 实际执行命令):作者看到我们查过/试过的命令,
|
|
2087
2125
|
* 组织 scope 与 GitHub 用户名不一致时也能直接指认正确的 npm 包名。
|
|
2088
2126
|
*/
|
|
2089
|
-
function pluginIssueUrl(repo, message, env, command, attempts) {
|
|
2127
|
+
function pluginIssueUrl(repo, message, env, command, attempts, action = "install") {
|
|
2090
2128
|
const kind = classifyFailure(message);
|
|
2091
2129
|
const executed = executedCommandOf(command, attempts);
|
|
2092
|
-
const
|
|
2093
|
-
const
|
|
2130
|
+
const zhWord = actionWordZh(action);
|
|
2131
|
+
const title = `[dsh-plugin.org | dsh-plugin-hub] ${reasonTitleOf(kind, action)}: ${repo}`;
|
|
2132
|
+
const reason = /\[packaging\]/i.test(message) ? "plugin distribution is incomplete — a file the package needs (its entry from main / exports, an entry a bundled patch mounts, or the patch declared by dsh.bundle.patch) is missing from the published package (github tarball or npm package); please commit build output or publish a complete package" : /\[registry-missing\]/i.test(message) ? "a dependency declared by the plugin is not published on the public npm registry (missing, removed, or never released); please publish or correct that dependency, or ship it with the plugin" : kind === "network" ? "network connectivity issue on the user side (DNS, proxy, firewall, or a blocked connection)" : kind === "pluginPrepare" ? "plugin prepare/build script failed during install (packaging/distribution issue)" : kind === "pnpmIgnoredBuild" ? "plugin depends on a native module whose build script pnpm blocks by default (use a prebuilt variant)" : kind === "originRejected" ? "the request never reached the install flow — the local service rejected its origin (local environment issue)" : kind === "pnpmPolicy" ? pnpmPolicyHintOf(message) === "failPnpmTarballIntegrityHint" ? "pnpm rejected a lockfile entry without tarball integrity; inspect and back up the profile lockfile before resolving it again, keeping integrity checks enabled" : "the pnpm supply-chain policy on the user machine blocked the install (minimum release age for freshly published packages / untrusted origin)" : kind === "pnpmUnusedPatch" ? "the profile keeps a pnpm patch entry for an older dsh-plugin version, so pnpm aborted the install (local config issue)" : kind === "fileLocked" ? "a file in the profile is locked by another process on the user machine (local environment issue)" : kind === "accessDenied" ? "the system denied write access to a file in the profile on the user machine (local environment issue)" : kind === "fsUnavailable" ? "the local file system could not accept the write — no space left, read-only volume, or too many open file handles on the user machine (local environment issue)" : "plugin-side install failure";
|
|
2094
2133
|
const code = coreErrorCode(message);
|
|
2095
2134
|
const build = (coreChars) => {
|
|
2096
2135
|
const body = [
|
|
@@ -2098,13 +2137,13 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2098
2137
|
`- Cause: ${reason}`,
|
|
2099
2138
|
...code ? [`- Key error: \`${code}\``] : [],
|
|
2100
2139
|
"",
|
|
2101
|
-
`## [DSH Plugin 插件市场](${SITE_URL}) ·
|
|
2102
|
-
`本错误信息由 [dsh-plugin-hub](${GITHUB_URL})
|
|
2103
|
-
`-
|
|
2104
|
-
`-
|
|
2140
|
+
`## [DSH Plugin 插件市场](${SITE_URL}) · ${zhWord} Plugin 失败错误信息`,
|
|
2141
|
+
`本错误信息由 [dsh-plugin-hub](${GITHUB_URL}) 插件市场的安装程序自动生成,随本次${zhWord}失败一并提交。`,
|
|
2142
|
+
`- 实际执行的${zhWord}命令:${executed ? `\`${executed}\`` : "unknown (no executed command recorded)"}`,
|
|
2143
|
+
`- 执行结果:${zhWord}失败,未能${zhWord}该插件。`,
|
|
2105
2144
|
...attempts && attempts.length > 0 ? [
|
|
2106
2145
|
"",
|
|
2107
|
-
"## Attempted
|
|
2146
|
+
"## Attempted channels(已尝试的方式)",
|
|
2108
2147
|
...attempts.map((a) => `- ${a}`)
|
|
2109
2148
|
] : [],
|
|
2110
2149
|
.../\[packaging\]/i.test(message) ? [
|
|
@@ -2154,27 +2193,28 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2154
2193
|
}
|
|
2155
2194
|
return url;
|
|
2156
2195
|
}
|
|
2157
|
-
function hubIssueUrl(pluginRepo, message, env, command, attempts, variant = "triage") {
|
|
2196
|
+
function hubIssueUrl(pluginRepo, message, env, command, attempts, variant = "triage", action = "install") {
|
|
2158
2197
|
const kind = classifyFailure(message);
|
|
2159
2198
|
const executed = executedCommandOf(command, attempts);
|
|
2199
|
+
const zhWord = actionWordZh(action);
|
|
2160
2200
|
const repo = pluginRepo && pluginRepo.trim() !== "" ? pluginRepo.trim() : "unknown";
|
|
2161
|
-
const title = variant === "misjudge" ? `[dsh-plugin-hub] possible misjudgment: ${repo}` : `[dsh-plugin-hub] ${reasonTitleOf(kind)}: ${repo}`;
|
|
2201
|
+
const title = variant === "misjudge" ? `[dsh-plugin-hub] possible misjudgment: ${repo}` : `[dsh-plugin-hub] ${reasonTitleOf(kind, action)}: ${repo}`;
|
|
2162
2202
|
const code = coreErrorCode(message);
|
|
2163
2203
|
const build = (coreChars) => {
|
|
2164
2204
|
const body = [
|
|
2165
2205
|
"## Summary",
|
|
2166
|
-
`- Auto-classified cause: ${reasonTitleOf(kind)}`,
|
|
2206
|
+
`- Auto-classified cause: ${reasonTitleOf(kind, action)}`,
|
|
2167
2207
|
`- Target plugin: \`${repo}\``,
|
|
2168
2208
|
...code ? [`- Key error: \`${code}\``] : [],
|
|
2169
2209
|
...variant === "misjudge" ? ["- Filed from: the plugin-prepare path (which normally routes to the plugin repo) — filed here because that verdict may be our own misjudgment.", "- Source of that verdict: produced by dsh-plugin-hub's own pre/post-install check, not by pnpm output."] : ["- Why filed here: the installer only routes a failure to the plugin repo when there is positive evidence the plugin build itself failed (pluginPrepare). This failure does not match that, so it is routed here for triage."],
|
|
2170
2210
|
"",
|
|
2171
|
-
`## [DSH Plugin 插件市场](${SITE_URL}) ·
|
|
2172
|
-
`本错误信息由 [dsh-plugin-hub](${GITHUB_URL})
|
|
2173
|
-
`-
|
|
2174
|
-
`-
|
|
2211
|
+
`## [DSH Plugin 插件市场](${SITE_URL}) · ${zhWord} Plugin 失败错误信息`,
|
|
2212
|
+
`本错误信息由 [dsh-plugin-hub](${GITHUB_URL}) 插件市场的安装程序自动生成,随本次${zhWord}失败一并提交。`,
|
|
2213
|
+
`- 实际执行的${zhWord}命令:${executed ? `\`${executed}\`` : "unknown (no executed command recorded)"}`,
|
|
2214
|
+
`- 执行结果:${zhWord}失败,未能${zhWord}该插件。`,
|
|
2175
2215
|
...attempts && attempts.length > 0 ? [
|
|
2176
2216
|
"",
|
|
2177
|
-
"## Attempted
|
|
2217
|
+
"## Attempted channels(已尝试的方式)",
|
|
2178
2218
|
...attempts.map((a) => `- ${a}`)
|
|
2179
2219
|
] : [],
|
|
2180
2220
|
"",
|
|
@@ -3509,10 +3549,10 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3509
3549
|
onClick: onConfirm
|
|
3510
3550
|
}, busy ? task && task.status === "pending" ? t("queuedUninstallTitle") : t("uninstalling") : t("uninstallConfirm"))))));
|
|
3511
3551
|
}
|
|
3512
|
-
/**
|
|
3513
|
-
|
|
3514
|
-
function ErrorModal({ message, repo, kind, command, attempts, t, env, onCopy, onClose, onRunDiagnostics }) {
|
|
3552
|
+
/** 安装/更新/卸载失败弹窗:标题、徽标、提示文案与 issue 正文都按传入的动作取词。 */
|
|
3553
|
+
function ErrorModal({ message, repo, action, command, attempts, t, env, onCopy, onClose, onRunDiagnostics }) {
|
|
3515
3554
|
const failureKind = classifyFailure(message);
|
|
3555
|
+
const actionWord = t(action === "uninstall" ? "actionUninstall" : action === "update" ? "actionUpdate" : "actionInstall");
|
|
3516
3556
|
const npmVersion = npmTooLowVersion(message);
|
|
3517
3557
|
const copyText = [
|
|
3518
3558
|
...command ? [command] : [],
|
|
@@ -3528,11 +3568,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3528
3568
|
className: Modal_module_css_default.errorModal,
|
|
3529
3569
|
role: "dialog",
|
|
3530
3570
|
"aria-modal": "true"
|
|
3531
|
-
}, (0, react.createElement)("div", { className: Modal_module_css_default.modalHead }, (0, react.createElement)("div", { className: Modal_module_css_default.errorTitle },
|
|
3571
|
+
}, (0, react.createElement)("div", { className: Modal_module_css_default.modalHead }, (0, react.createElement)("div", { className: Modal_module_css_default.errorTitle }, t(action === "uninstall" ? "errorTitleUninstall" : action === "update" ? "errorTitleUpdate" : "errorTitleInstall")), (0, react.createElement)("button", {
|
|
3532
3572
|
className: Modal_module_css_default.modalClose,
|
|
3533
3573
|
"aria-label": t("errorClose"),
|
|
3534
3574
|
onClick: onClose
|
|
3535
|
-
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.failRow }, (0, react.createElement)("div", { className: Modal_module_css_default.failHead }, (0, react.createElement)("span", { className:
|
|
3575
|
+
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.failRow }, (0, react.createElement)("div", { className: Modal_module_css_default.failHead }, (0, react.createElement)("span", { className: action === "install" ? Modal_module_css_default.failKindInstall : Modal_module_css_default.failKindUninstall }, actionWord), repo ? (0, react.createElement)("a", {
|
|
3536
3576
|
className: Modal_module_css_default.failRepo,
|
|
3537
3577
|
href: pluginSiteUrl(repo),
|
|
3538
3578
|
target: "_blank",
|
|
@@ -3544,7 +3584,20 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3544
3584
|
}, t("errorCopy"))), (0, react.createElement)("pre", { className: Modal_module_css_default.errorBox }, message), failureKind === "npmTooOld" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(npmVersion ? "failNpmTooLowV" : "failNpmTooLow", npmVersion ? { v: npmVersion } : void 0)) : failureKind === "dshMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failDshMissingHint")) : failureKind === "gitMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failGitMissingHint")) : failureKind === "pnpmMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmMissingHint")) : failureKind === "npmMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNpmMissingHint")) : failureKind === "pnpmWorkspace" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmWorkspaceHint")) : failureKind === "pnpmStore" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint")) : failureKind === "pnpmPolicy" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(pnpmPolicyHintOf(message), pnpmPolicyHintParams(message))) : failureKind === "pnpmUnusedPatch" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint")) : failureKind === "pnpmMissingDep" ? (0, react.createElement)("div", null, [(() => {
|
|
3545
3585
|
const pkg = missingRegistryPackageOf(message);
|
|
3546
3586
|
return pkg ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failPnpmMissingDepTarget", { pkg })) : null;
|
|
3547
|
-
})(), (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(
|
|
3587
|
+
})(), (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(registryMissingHintOf(message)))]) : failureKind === "pluginMissingDep" ? (0, react.createElement)("div", null, [
|
|
3588
|
+
(() => {
|
|
3589
|
+
const pkg = missingRegistryPackageOf(message);
|
|
3590
|
+
return pkg ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failPluginMissingDepTarget", { pkg })) : null;
|
|
3591
|
+
})(),
|
|
3592
|
+
(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPluginMissingDepHint")),
|
|
3593
|
+
repo ? (0, react.createElement)("a", {
|
|
3594
|
+
className: Modal_module_css_default.failBigIssue,
|
|
3595
|
+
href: pluginIssueUrl(repo, message, env, command, attempts, action),
|
|
3596
|
+
target: "_blank",
|
|
3597
|
+
rel: "noopener noreferrer",
|
|
3598
|
+
title: t("failIssueHint")
|
|
3599
|
+
}, t("failIssueBig")) : null
|
|
3600
|
+
]) : failureKind === "registryVersionStale" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failRegistryVersionStaleHint")) : failureKind === "pnpmLinkedDirMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmLinkedDirMissingHint")) : failureKind === "fileLocked" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failFileLockedHint")) : failureKind === "accessDenied" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failAccessDeniedHint")) : failureKind === "fsUnavailable" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failFsUnavailableHint")) : failureKind === "originRejected" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failOriginRejectedHint", { profile: env?.profile ?? "<profile>" })) : failureKind === "network" ? (0, react.createElement)("div", null, [
|
|
3548
3601
|
(() => {
|
|
3549
3602
|
const target = unreachableTargetOf(message);
|
|
3550
3603
|
return target ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failNetworkTarget", { url: target })) : null;
|
|
@@ -3553,7 +3606,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3553
3606
|
const host = registryHostOf(message);
|
|
3554
3607
|
return host ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNetworkRegistryHint", { host })) : null;
|
|
3555
3608
|
})(),
|
|
3556
|
-
(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNetworkHint")),
|
|
3609
|
+
(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNetworkHint", { action: actionWord })),
|
|
3557
3610
|
onRunDiagnostics ? (0, react.createElement)("button", {
|
|
3558
3611
|
className: Modal_module_css_default.failDiagBtn,
|
|
3559
3612
|
onClick: onRunDiagnostics
|
|
@@ -3562,21 +3615,21 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3562
3615
|
(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, /\[packaging\]/i.test(message) ? t("failPackagingHint") : t("failPrepareHint")),
|
|
3563
3616
|
repo ? (0, react.createElement)("a", {
|
|
3564
3617
|
className: Modal_module_css_default.failBigIssue,
|
|
3565
|
-
href: pluginIssueUrl(repo, message, env, command, attempts),
|
|
3618
|
+
href: pluginIssueUrl(repo, message, env, command, attempts, action),
|
|
3566
3619
|
target: "_blank",
|
|
3567
3620
|
rel: "noopener noreferrer",
|
|
3568
3621
|
title: t("failIssueHint")
|
|
3569
3622
|
}, t("failIssueBig")) : null,
|
|
3570
3623
|
repo ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failMisjudgeHint")), (0, react.createElement)("a", {
|
|
3571
3624
|
className: Modal_module_css_default.failMisjudgeLink,
|
|
3572
|
-
href: hubIssueUrl(repo, message, env, command, attempts, "misjudge"),
|
|
3625
|
+
href: hubIssueUrl(repo, message, env, command, attempts, "misjudge", action),
|
|
3573
3626
|
target: "_blank",
|
|
3574
3627
|
rel: "noopener noreferrer",
|
|
3575
3628
|
title: t("failHubIssueHint")
|
|
3576
3629
|
}, t("failMisjudgeLink"))]) : null
|
|
3577
|
-
]) : failureKind === "hubState" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failHubStateHint"))]) : failureKind === "timeout" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failTimeoutHint"))]) : failureKind === "profileLock" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileLockHint"))]) : (0, react.createElement)("div", null, [failureKind === "pnpmIgnoredBuild" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failIgnoredBuild")) : (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failUnclassifiedHint")), (0, react.createElement)("a", {
|
|
3630
|
+
]) : failureKind === "hubState" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failHubStateHint", { action: actionWord }))]) : failureKind === "timeout" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failTimeoutHint"))]) : failureKind === "profileLock" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileLockHint", { action: actionWord }))]) : failureKind === "hostCliSpawn" ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failHostCliSpawnHint"))]) : (0, react.createElement)("div", null, [failureKind === "pnpmIgnoredBuild" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failIgnoredBuild")) : (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failUnclassifiedHint", { action: actionWord })), (0, react.createElement)("a", {
|
|
3578
3631
|
className: Modal_module_css_default.failBigIssue,
|
|
3579
|
-
href: hubIssueUrl(repo, message, env, command, attempts),
|
|
3632
|
+
href: hubIssueUrl(repo, message, env, command, attempts, "triage", action),
|
|
3580
3633
|
target: "_blank",
|
|
3581
3634
|
rel: "noopener noreferrer",
|
|
3582
3635
|
title: t("failHubIssueHint")
|
|
@@ -4112,6 +4165,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4112
4165
|
}
|
|
4113
4166
|
}, (0, react.createElement)(CloseIcon))), !r.ok && (() => {
|
|
4114
4167
|
const kind = classifyFailure(r.message);
|
|
4168
|
+
const action = actionOfRecord(r);
|
|
4169
|
+
const actionWord = t(action === "uninstall" ? "actionUninstall" : action === "update" ? "actionUpdate" : "actionInstall");
|
|
4115
4170
|
if (kind === "npmTooOld") {
|
|
4116
4171
|
const v = npmTooLowVersion(r.message);
|
|
4117
4172
|
return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(v ? "failNpmTooLowV" : "failNpmTooLow", v ? { v } : void 0));
|
|
@@ -4126,7 +4181,21 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4126
4181
|
if (kind === "pnpmUnusedPatch") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint"));
|
|
4127
4182
|
if (kind === "pnpmMissingDep") {
|
|
4128
4183
|
const pkg = missingRegistryPackageOf(r.message);
|
|
4129
|
-
return (0, react.createElement)("div", null, [pkg ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failPnpmMissingDepTarget", { pkg })) : null, (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(
|
|
4184
|
+
return (0, react.createElement)("div", null, [pkg ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failPnpmMissingDepTarget", { pkg })) : null, (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(registryMissingHintOf(r.message)))]);
|
|
4185
|
+
}
|
|
4186
|
+
if (kind === "pluginMissingDep") {
|
|
4187
|
+
const pkg = missingRegistryPackageOf(r.message);
|
|
4188
|
+
return (0, react.createElement)("div", null, [
|
|
4189
|
+
pkg ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failPluginMissingDepTarget", { pkg })) : null,
|
|
4190
|
+
(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPluginMissingDepHint")),
|
|
4191
|
+
r.repo && shownRepo ? (0, react.createElement)("a", {
|
|
4192
|
+
className: Modal_module_css_default.failBigIssue,
|
|
4193
|
+
href: pluginIssueUrl(shownRepo, r.message, env, r.command, r.attempts, action),
|
|
4194
|
+
target: "_blank",
|
|
4195
|
+
rel: "noopener noreferrer",
|
|
4196
|
+
title: t("failIssueHint")
|
|
4197
|
+
}, t("failIssueBig")) : null
|
|
4198
|
+
]);
|
|
4130
4199
|
}
|
|
4131
4200
|
if (kind === "registryVersionStale") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failRegistryVersionStaleHint"));
|
|
4132
4201
|
if (kind === "pnpmLinkedDirMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmLinkedDirMissingHint"));
|
|
@@ -4143,7 +4212,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4143
4212
|
const host = registryHostOf(r.message);
|
|
4144
4213
|
return host ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNetworkRegistryHint", { host })) : null;
|
|
4145
4214
|
})(),
|
|
4146
|
-
(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNetworkHint")),
|
|
4215
|
+
(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNetworkHint", { action: actionWord })),
|
|
4147
4216
|
onRunDiagnostics ? (0, react.createElement)("button", {
|
|
4148
4217
|
className: Modal_module_css_default.failDiagBtn,
|
|
4149
4218
|
onClick: onRunDiagnostics
|
|
@@ -4153,25 +4222,26 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4153
4222
|
(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, /\[packaging\]/i.test(r.message) ? t("failPackagingHint") : t("failPrepareHint")),
|
|
4154
4223
|
r.repo && shownRepo ? (0, react.createElement)("a", {
|
|
4155
4224
|
className: Modal_module_css_default.failBigIssue,
|
|
4156
|
-
href: pluginIssueUrl(shownRepo, r.message, env, r.command, r.attempts),
|
|
4225
|
+
href: pluginIssueUrl(shownRepo, r.message, env, r.command, r.attempts, action),
|
|
4157
4226
|
target: "_blank",
|
|
4158
4227
|
rel: "noopener noreferrer",
|
|
4159
4228
|
title: t("failIssueHint")
|
|
4160
4229
|
}, t("failIssueBig")) : null,
|
|
4161
4230
|
r.repo && shownRepo ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failMisjudgeHint")), (0, react.createElement)("a", {
|
|
4162
4231
|
className: Modal_module_css_default.failMisjudgeLink,
|
|
4163
|
-
href: hubIssueUrl(shownRepo, r.message, env, r.command, r.attempts, "misjudge"),
|
|
4232
|
+
href: hubIssueUrl(shownRepo, r.message, env, r.command, r.attempts, "misjudge", action),
|
|
4164
4233
|
target: "_blank",
|
|
4165
4234
|
rel: "noopener noreferrer",
|
|
4166
4235
|
title: t("failHubIssueHint")
|
|
4167
4236
|
}, t("failMisjudgeLink"))]) : null
|
|
4168
4237
|
]);
|
|
4169
|
-
if (kind === "hubState") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failHubStateHint"))]);
|
|
4238
|
+
if (kind === "hubState") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failHubStateHint", { action: actionWord }))]);
|
|
4170
4239
|
if (kind === "timeout") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failTimeoutHint"))]);
|
|
4171
|
-
if (kind === "profileLock") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileLockHint"))]);
|
|
4172
|
-
|
|
4240
|
+
if (kind === "profileLock") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileLockHint", { action: actionWord }))]);
|
|
4241
|
+
if (kind === "hostCliSpawn") return (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failHostCliSpawnHint"))]);
|
|
4242
|
+
return (0, react.createElement)("div", null, [kind === "pnpmIgnoredBuild" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failIgnoredBuild")) : (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failUnclassifiedHint", { action: actionWord })), (0, react.createElement)("a", {
|
|
4173
4243
|
className: Modal_module_css_default.failBigIssue,
|
|
4174
|
-
href: hubIssueUrl(shownRepo || r.repo, r.message, env, r.command, r.attempts),
|
|
4244
|
+
href: hubIssueUrl(shownRepo || r.repo, r.message, env, r.command, r.attempts, "triage", action),
|
|
4175
4245
|
target: "_blank",
|
|
4176
4246
|
rel: "noopener noreferrer",
|
|
4177
4247
|
title: t("failHubIssueHint")
|
|
@@ -4356,40 +4426,40 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4356
4426
|
css: css$9
|
|
4357
4427
|
});
|
|
4358
4428
|
var List_module_css_default = {
|
|
4429
|
+
"list": "_3XaZHa_list",
|
|
4430
|
+
"verified": "_3XaZHa_verified",
|
|
4431
|
+
"body": "_3XaZHa_body",
|
|
4432
|
+
"topics": "_3XaZHa_topics",
|
|
4433
|
+
"cardSide": "_3XaZHa_cardSide",
|
|
4359
4434
|
"state": "_3XaZHa_state",
|
|
4360
|
-
"
|
|
4361
|
-
"stats": "_3XaZHa_stats",
|
|
4435
|
+
"stateDesc": "_3XaZHa_stateDesc",
|
|
4362
4436
|
"retryBtn": "_3XaZHa_retryBtn",
|
|
4363
|
-
"list": "_3XaZHa_list",
|
|
4364
4437
|
"stateActions": "_3XaZHa_stateActions",
|
|
4365
|
-
"
|
|
4366
|
-
"
|
|
4367
|
-
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4368
|
-
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4369
|
-
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
4370
|
-
"topics": "_3XaZHa_topics",
|
|
4371
|
-
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
4372
|
-
"body": "_3XaZHa_body",
|
|
4438
|
+
"versionBadge": "_3XaZHa_versionBadge",
|
|
4439
|
+
"cardTitle": "_3XaZHa_cardTitle",
|
|
4373
4440
|
"desc": "_3XaZHa_desc",
|
|
4374
|
-
"
|
|
4375
|
-
"star": "_3XaZHa_star",
|
|
4376
|
-
"stateTitle": "_3XaZHa_stateTitle",
|
|
4377
|
-
"cardHead": "_3XaZHa_cardHead",
|
|
4378
|
-
"updateBadge": "_3XaZHa_updateBadge",
|
|
4379
|
-
"installBtn": "_3XaZHa_installBtn",
|
|
4380
|
-
"cardSide": "_3XaZHa_cardSide",
|
|
4381
|
-
"footer": "_3XaZHa_footer",
|
|
4382
|
-
"topic": "_3XaZHa_topic",
|
|
4383
|
-
"card": "_3XaZHa_card",
|
|
4441
|
+
"stateTitle": "_3XaZHa_stateTitle",
|
|
4384
4442
|
"fork": "_3XaZHa_fork",
|
|
4443
|
+
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
4385
4444
|
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
4386
|
-
"verified": "_3XaZHa_verified",
|
|
4387
4445
|
"detailBtn": "_3XaZHa_detailBtn",
|
|
4388
|
-
"
|
|
4389
|
-
"
|
|
4446
|
+
"card": "_3XaZHa_card",
|
|
4447
|
+
"diagBtn": "_3XaZHa_diagBtn",
|
|
4390
4448
|
"footLink": "_3XaZHa_footLink",
|
|
4449
|
+
"actions": "_3XaZHa_actions",
|
|
4450
|
+
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
4451
|
+
"installBtn": "_3XaZHa_installBtn",
|
|
4452
|
+
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4453
|
+
"footer": "_3XaZHa_footer",
|
|
4391
4454
|
"cardMain": "_3XaZHa_cardMain",
|
|
4392
|
-
"
|
|
4455
|
+
"cardHead": "_3XaZHa_cardHead",
|
|
4456
|
+
"topic": "_3XaZHa_topic",
|
|
4457
|
+
"date": "_3XaZHa_date",
|
|
4458
|
+
"stats": "_3XaZHa_stats",
|
|
4459
|
+
"updateBadge": "_3XaZHa_updateBadge",
|
|
4460
|
+
"star": "_3XaZHa_star",
|
|
4461
|
+
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
4462
|
+
"uninstallBtn": "_3XaZHa_uninstallBtn"
|
|
4393
4463
|
};
|
|
4394
4464
|
//#endregion
|
|
4395
4465
|
//#region src/client/hooks/useIncrementalList.ts
|
|
@@ -4597,13 +4667,13 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4597
4667
|
});
|
|
4598
4668
|
var SectionTabs_module_css_default = {
|
|
4599
4669
|
"tabActive": "_7tvizq_tabActive",
|
|
4600
|
-
"tabCountActive": "_7tvizq_tabCountActive",
|
|
4601
4670
|
"tabIcon": "_7tvizq_tabIcon",
|
|
4602
|
-
"
|
|
4603
|
-
"root": "_7tvizq_root",
|
|
4671
|
+
"noticeBtn": "_7tvizq_noticeBtn",
|
|
4604
4672
|
"tab": "_7tvizq_tab",
|
|
4673
|
+
"root": "_7tvizq_root",
|
|
4674
|
+
"tabCountActive": "_7tvizq_tabCountActive",
|
|
4605
4675
|
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4606
|
-
"
|
|
4676
|
+
"tabCount": "_7tvizq_tabCount",
|
|
4607
4677
|
"noticeCount": "_7tvizq_noticeCount"
|
|
4608
4678
|
};
|
|
4609
4679
|
//#endregion
|
|
@@ -4681,42 +4751,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4681
4751
|
css: css$7
|
|
4682
4752
|
});
|
|
4683
4753
|
var InstalledView_module_css_default = {
|
|
4684
|
-
"
|
|
4685
|
-
"
|
|
4686
|
-
"
|
|
4687
|
-
"segBtn": "_1nXeGW_segBtn",
|
|
4688
|
-
"root": "_1nXeGW_root",
|
|
4689
|
-
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4754
|
+
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
4755
|
+
"rowDetail": "_1nXeGW_rowDetail",
|
|
4756
|
+
"empty": "_1nXeGW_empty",
|
|
4690
4757
|
"exampleRow": "_1nXeGW_exampleRow",
|
|
4691
|
-
"
|
|
4692
|
-
"
|
|
4693
|
-
"rowTitle": "_1nXeGW_rowTitle",
|
|
4694
|
-
"statusPending": "_1nXeGW_statusPending",
|
|
4695
|
-
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4696
|
-
"versionBadge": "_1nXeGW_versionBadge",
|
|
4697
|
-
"rowMain": "_1nXeGW_rowMain",
|
|
4698
|
-
"updateBadge": "_1nXeGW_updateBadge",
|
|
4699
|
-
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
4700
|
-
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4701
|
-
"rowActions": "_1nXeGW_rowActions",
|
|
4758
|
+
"rowCategory": "_1nXeGW_rowCategory",
|
|
4759
|
+
"list": "_1nXeGW_list",
|
|
4702
4760
|
"rowMeta": "_1nXeGW_rowMeta",
|
|
4703
|
-
"
|
|
4704
|
-
"
|
|
4761
|
+
"rowActions": "_1nXeGW_rowActions",
|
|
4762
|
+
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4705
4763
|
"exampleBadge": "_1nXeGW_exampleBadge",
|
|
4706
|
-
"
|
|
4707
|
-
"
|
|
4764
|
+
"rowTitle": "_1nXeGW_rowTitle",
|
|
4765
|
+
"root": "_1nXeGW_root",
|
|
4766
|
+
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4767
|
+
"rowRestart": "_1nXeGW_rowRestart",
|
|
4768
|
+
"rowMain": "_1nXeGW_rowMain",
|
|
4708
4769
|
"row": "_1nXeGW_row",
|
|
4709
|
-
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4710
|
-
"rowCategory": "_1nXeGW_rowCategory",
|
|
4711
4770
|
"rowRepo": "_1nXeGW_rowRepo",
|
|
4712
|
-
"
|
|
4771
|
+
"statusInactive": "_1nXeGW_statusInactive",
|
|
4772
|
+
"versionBadge": "_1nXeGW_versionBadge",
|
|
4773
|
+
"segRow": "_1nXeGW_segRow",
|
|
4774
|
+
"segGroup": "_1nXeGW_segGroup",
|
|
4775
|
+
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4776
|
+
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
4777
|
+
"rowDesc": "_1nXeGW_rowDesc",
|
|
4778
|
+
"updateBadge": "_1nXeGW_updateBadge",
|
|
4779
|
+
"searchInput": "_1nXeGW_searchInput",
|
|
4780
|
+
"toolbar": "_1nXeGW_toolbar",
|
|
4713
4781
|
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
4714
|
-
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
4715
|
-
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4716
4782
|
"statusDot": "_1nXeGW_statusDot",
|
|
4717
|
-
"
|
|
4718
|
-
"
|
|
4719
|
-
"
|
|
4783
|
+
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4784
|
+
"searchWrap": "_1nXeGW_searchWrap",
|
|
4785
|
+
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4786
|
+
"segLabel": "_1nXeGW_segLabel",
|
|
4787
|
+
"segBtn": "_1nXeGW_segBtn",
|
|
4788
|
+
"statusPending": "_1nXeGW_statusPending",
|
|
4789
|
+
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual"
|
|
4720
4790
|
};
|
|
4721
4791
|
//#endregion
|
|
4722
4792
|
//#region src/client/components/views/InstalledView.tsx
|
|
@@ -4965,28 +5035,28 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4965
5035
|
css: css$6
|
|
4966
5036
|
});
|
|
4967
5037
|
var CustomInstallView_module_css_default = {
|
|
4968
|
-
"installLabel": "zISxCG_installLabel",
|
|
4969
|
-
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4970
|
-
"installRow": "zISxCG_installRow",
|
|
4971
|
-
"installCards": "zISxCG_installCards",
|
|
4972
|
-
"channelOffText": "zISxCG_channelOffText",
|
|
4973
|
-
"desc": "zISxCG_desc",
|
|
4974
5038
|
"helpCmd": "zISxCG_helpCmd",
|
|
5039
|
+
"helpBody": "zISxCG_helpBody",
|
|
5040
|
+
"helpLine": "zISxCG_helpLine",
|
|
5041
|
+
"channelOffText": "zISxCG_channelOffText",
|
|
5042
|
+
"installError": "zISxCG_installError",
|
|
5043
|
+
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4975
5044
|
"root": "zISxCG_root",
|
|
4976
|
-
"
|
|
5045
|
+
"desc": "zISxCG_desc",
|
|
4977
5046
|
"installBtn": "zISxCG_installBtn",
|
|
4978
|
-
"
|
|
4979
|
-
"installError": "zISxCG_installError",
|
|
4980
|
-
"installInputError": "zISxCG_installInputError",
|
|
4981
|
-
"helpLine": "zISxCG_helpLine",
|
|
5047
|
+
"installCards": "zISxCG_installCards",
|
|
4982
5048
|
"helpNote": "zISxCG_helpNote",
|
|
4983
|
-
"
|
|
5049
|
+
"installInsertBtn": "zISxCG_installInsertBtn",
|
|
5050
|
+
"channelOff": "zISxCG_channelOff",
|
|
5051
|
+
"installCard": "zISxCG_installCard",
|
|
5052
|
+
"installRow": "zISxCG_installRow",
|
|
4984
5053
|
"installCardHead": "zISxCG_installCardHead",
|
|
4985
|
-
"installInput": "zISxCG_installInput",
|
|
4986
5054
|
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
4987
|
-
"
|
|
4988
|
-
"
|
|
4989
|
-
"
|
|
5055
|
+
"installLabel": "zISxCG_installLabel",
|
|
5056
|
+
"installInput": "zISxCG_installInput",
|
|
5057
|
+
"installInputError": "zISxCG_installInputError",
|
|
5058
|
+
"installExample": "zISxCG_installExample",
|
|
5059
|
+
"channelOffBtn": "zISxCG_channelOffBtn"
|
|
4990
5060
|
};
|
|
4991
5061
|
//#endregion
|
|
4992
5062
|
//#region src/client/components/views/CustomInstallView.tsx
|
|
@@ -5276,30 +5346,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5276
5346
|
css: css$5
|
|
5277
5347
|
});
|
|
5278
5348
|
var SettingsView_module_css_default = {
|
|
5349
|
+
"settingRowStack": "_506LLG_settingRowStack",
|
|
5350
|
+
"content": "_506LLG_content",
|
|
5351
|
+
"settingTitle": "_506LLG_settingTitle",
|
|
5352
|
+
"navItemActive": "_506LLG_navItemActive",
|
|
5353
|
+
"pageDesc": "_506LLG_pageDesc",
|
|
5279
5354
|
"card": "_506LLG_card",
|
|
5355
|
+
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
5356
|
+
"root": "_506LLG_root",
|
|
5357
|
+
"navIcon": "_506LLG_navIcon",
|
|
5358
|
+
"settingControlStack": "_506LLG_settingControlStack",
|
|
5359
|
+
"textInput": "_506LLG_textInput",
|
|
5280
5360
|
"proxyControl": "_506LLG_proxyControl",
|
|
5281
|
-
"
|
|
5282
|
-
"navItem": "_506LLG_navItem",
|
|
5283
|
-
"pageHeader": "_506LLG_pageHeader",
|
|
5361
|
+
"sidebar": "_506LLG_sidebar",
|
|
5284
5362
|
"settingLabel": "_506LLG_settingLabel",
|
|
5285
5363
|
"settingDesc": "_506LLG_settingDesc",
|
|
5286
|
-
"settingControl": "_506LLG_settingControl",
|
|
5287
|
-
"settingControlStack": "_506LLG_settingControlStack",
|
|
5288
|
-
"root": "_506LLG_root",
|
|
5289
|
-
"proxyHint": "_506LLG_proxyHint",
|
|
5290
|
-
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
5291
|
-
"resetBtn": "_506LLG_resetBtn",
|
|
5292
|
-
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
5293
|
-
"content": "_506LLG_content",
|
|
5294
|
-
"textInput": "_506LLG_textInput",
|
|
5295
|
-
"pageDesc": "_506LLG_pageDesc",
|
|
5296
5364
|
"controlDropdown": "_506LLG_controlDropdown",
|
|
5297
|
-
"
|
|
5298
|
-
"
|
|
5365
|
+
"resetBtn": "_506LLG_resetBtn",
|
|
5366
|
+
"pageHeader": "_506LLG_pageHeader",
|
|
5299
5367
|
"settingRow": "_506LLG_settingRow",
|
|
5300
|
-
"
|
|
5368
|
+
"navItem": "_506LLG_navItem",
|
|
5301
5369
|
"pageTitle": "_506LLG_pageTitle",
|
|
5302
|
-
"
|
|
5370
|
+
"settingControl": "_506LLG_settingControl",
|
|
5371
|
+
"proxyHint": "_506LLG_proxyHint",
|
|
5372
|
+
"proxyHintFail": "_506LLG_proxyHintFail"
|
|
5303
5373
|
};
|
|
5304
5374
|
//#endregion
|
|
5305
5375
|
//#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
|
|
@@ -5318,18 +5388,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5318
5388
|
css: css$4
|
|
5319
5389
|
});
|
|
5320
5390
|
var Dropdown_module_css_default = {
|
|
5321
|
-
"dropdown": "B_Gxsq_dropdown",
|
|
5322
|
-
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
5323
5391
|
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
5324
|
-
"
|
|
5392
|
+
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
5325
5393
|
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
5326
5394
|
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
5327
|
-
"
|
|
5395
|
+
"dropdown": "B_Gxsq_dropdown",
|
|
5328
5396
|
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
5329
|
-
"
|
|
5330
|
-
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
5397
|
+
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
5331
5398
|
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
5332
|
-
"
|
|
5399
|
+
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
5400
|
+
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
5401
|
+
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
5402
|
+
"dropdownArrow": "B_Gxsq_dropdownArrow"
|
|
5333
5403
|
};
|
|
5334
5404
|
//#endregion
|
|
5335
5405
|
//#region \0dsh-css:src/client/styles/Toggle.module.css.mjs
|
|
@@ -5348,9 +5418,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5348
5418
|
css: css$3
|
|
5349
5419
|
});
|
|
5350
5420
|
var Toggle_module_css_default = {
|
|
5421
|
+
"toggleOn": "k-cD4G_toggleOn",
|
|
5351
5422
|
"toggle": "k-cD4G_toggle",
|
|
5352
|
-
"knob": "k-cD4G_knob"
|
|
5353
|
-
"toggleOn": "k-cD4G_toggleOn"
|
|
5423
|
+
"knob": "k-cD4G_knob"
|
|
5354
5424
|
};
|
|
5355
5425
|
//#endregion
|
|
5356
5426
|
//#region src/client/components/ui/Toggle.tsx
|
|
@@ -5450,29 +5520,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5450
5520
|
css: css$2
|
|
5451
5521
|
});
|
|
5452
5522
|
var DiagnosticsView_module_css_default = {
|
|
5453
|
-
"
|
|
5454
|
-
"badgeIdle": "k9eRya_badgeIdle",
|
|
5523
|
+
"envTitle": "k9eRya_envTitle",
|
|
5455
5524
|
"runBtn": "k9eRya_runBtn",
|
|
5456
5525
|
"headHint": "k9eRya_headHint",
|
|
5457
|
-
"summary": "k9eRya_summary",
|
|
5458
|
-
"display": "k9eRya_display",
|
|
5459
|
-
"envTitle": "k9eRya_envTitle",
|
|
5460
|
-
"envLabel": "k9eRya_envLabel",
|
|
5461
|
-
"panel": "k9eRya_panel",
|
|
5462
5526
|
"badgeOk": "k9eRya_badgeOk",
|
|
5463
|
-
"badgeRunning": "k9eRya_badgeRunning",
|
|
5464
|
-
"meta": "k9eRya_meta",
|
|
5465
5527
|
"summaryFail": "k9eRya_summaryFail",
|
|
5466
|
-
"
|
|
5467
|
-
"
|
|
5468
|
-
"
|
|
5528
|
+
"panel": "k9eRya_panel",
|
|
5529
|
+
"badgeIdle": "k9eRya_badgeIdle",
|
|
5530
|
+
"envDesc": "k9eRya_envDesc",
|
|
5531
|
+
"envRow": "k9eRya_envRow",
|
|
5532
|
+
"display": "k9eRya_display",
|
|
5469
5533
|
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5470
|
-
"
|
|
5471
|
-
"
|
|
5534
|
+
"diagPulse": "k9eRya_diagPulse",
|
|
5535
|
+
"summary": "k9eRya_summary",
|
|
5536
|
+
"row": "k9eRya_row",
|
|
5537
|
+
"badgeRunning": "k9eRya_badgeRunning",
|
|
5472
5538
|
"summaryOk": "k9eRya_summaryOk",
|
|
5473
|
-
"
|
|
5474
|
-
"
|
|
5475
|
-
"
|
|
5539
|
+
"head": "k9eRya_head",
|
|
5540
|
+
"name": "k9eRya_name",
|
|
5541
|
+
"badgeFail": "k9eRya_badgeFail",
|
|
5542
|
+
"envLabel": "k9eRya_envLabel",
|
|
5543
|
+
"meta": "k9eRya_meta",
|
|
5544
|
+
"badge": "k9eRya_badge",
|
|
5545
|
+
"summaryRunning": "k9eRya_summaryRunning"
|
|
5476
5546
|
};
|
|
5477
5547
|
//#endregion
|
|
5478
5548
|
//#region src/client/components/views/DiagnosticsView.tsx
|
|
@@ -5650,57 +5720,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5650
5720
|
css: css$1
|
|
5651
5721
|
});
|
|
5652
5722
|
var LogsView_module_css_default = {
|
|
5653
|
-
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5654
|
-
"badge": "_3j77BW_badge",
|
|
5655
|
-
"actions": "_3j77BW_actions",
|
|
5656
|
-
"headActions": "_3j77BW_headActions",
|
|
5657
|
-
"message": "_3j77BW_message",
|
|
5658
|
-
"pathLabel": "_3j77BW_pathLabel",
|
|
5659
|
-
"more": "_3j77BW_more",
|
|
5660
|
-
"previewRow": "_3j77BW_previewRow",
|
|
5661
|
-
"foot": "_3j77BW_foot",
|
|
5662
|
-
"linkBtn": "_3j77BW_linkBtn",
|
|
5663
|
-
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5664
|
-
"footFail": "_3j77BW_footFail",
|
|
5665
|
-
"time": "_3j77BW_time",
|
|
5666
|
-
"panel": "_3j77BW_panel",
|
|
5667
|
-
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5668
|
-
"head": "_3j77BW_head",
|
|
5669
|
-
"searchInput": "_3j77BW_searchInput",
|
|
5670
5723
|
"pathDialog": "_3j77BW_pathDialog",
|
|
5724
|
+
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5671
5725
|
"pathDraft": "_3j77BW_pathDraft",
|
|
5672
|
-
"
|
|
5673
|
-
"
|
|
5674
|
-
"logList": "_3j77BW_logList",
|
|
5675
|
-
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5726
|
+
"filterBar": "_3j77BW_filterBar",
|
|
5727
|
+
"catUpdate": "_3j77BW_catUpdate",
|
|
5676
5728
|
"moreEnd": "_3j77BW_moreEnd",
|
|
5677
|
-
"footCount": "_3j77BW_footCount",
|
|
5678
5729
|
"footActions": "_3j77BW_footActions",
|
|
5679
|
-
"
|
|
5680
|
-
"
|
|
5681
|
-
"list": "_3j77BW_list",
|
|
5682
|
-
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5683
|
-
"filterBar": "_3j77BW_filterBar",
|
|
5730
|
+
"badgeDebug": "_3j77BW_badgeDebug",
|
|
5731
|
+
"actions": "_3j77BW_actions",
|
|
5684
5732
|
"badgeInfo": "_3j77BW_badgeInfo",
|
|
5685
|
-
"
|
|
5686
|
-
"pathText": "_3j77BW_pathText",
|
|
5687
|
-
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5688
|
-
"entry": "_3j77BW_entry",
|
|
5689
|
-
"event": "_3j77BW_event",
|
|
5733
|
+
"pathLabel": "_3j77BW_pathLabel",
|
|
5690
5734
|
"catInstall": "_3j77BW_catInstall",
|
|
5691
|
-
"
|
|
5735
|
+
"entry": "_3j77BW_entry",
|
|
5736
|
+
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5737
|
+
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5738
|
+
"empty": "_3j77BW_empty",
|
|
5739
|
+
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5740
|
+
"btn": "_3j77BW_btn",
|
|
5741
|
+
"head": "_3j77BW_head",
|
|
5742
|
+
"panel": "_3j77BW_panel",
|
|
5743
|
+
"search": "_3j77BW_search",
|
|
5744
|
+
"time": "_3j77BW_time",
|
|
5692
5745
|
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5693
5746
|
"catSettings": "_3j77BW_catSettings",
|
|
5747
|
+
"headActions": "_3j77BW_headActions",
|
|
5748
|
+
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5694
5749
|
"pathRow": "_3j77BW_pathRow",
|
|
5695
|
-
"
|
|
5696
|
-
"
|
|
5697
|
-
"badgeError": "_3j77BW_badgeError",
|
|
5698
|
-
"footPath": "_3j77BW_footPath",
|
|
5699
|
-
"badgeDebug": "_3j77BW_badgeDebug",
|
|
5750
|
+
"linkBtn": "_3j77BW_linkBtn",
|
|
5751
|
+
"footCount": "_3j77BW_footCount",
|
|
5700
5752
|
"catUninstall": "_3j77BW_catUninstall",
|
|
5753
|
+
"list": "_3j77BW_list",
|
|
5754
|
+
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5755
|
+
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5756
|
+
"clearBtn": "_3j77BW_clearBtn",
|
|
5757
|
+
"logList": "_3j77BW_logList",
|
|
5758
|
+
"badge": "_3j77BW_badge",
|
|
5759
|
+
"message": "_3j77BW_message",
|
|
5701
5760
|
"catSystem": "_3j77BW_catSystem",
|
|
5702
|
-
"
|
|
5703
|
-
"
|
|
5761
|
+
"searchInput": "_3j77BW_searchInput",
|
|
5762
|
+
"more": "_3j77BW_more",
|
|
5763
|
+
"filterChip": "_3j77BW_filterChip",
|
|
5764
|
+
"headHint": "_3j77BW_headHint",
|
|
5765
|
+
"pathText": "_3j77BW_pathText",
|
|
5766
|
+
"footPath": "_3j77BW_footPath",
|
|
5767
|
+
"event": "_3j77BW_event",
|
|
5768
|
+
"footFail": "_3j77BW_footFail",
|
|
5769
|
+
"badgeError": "_3j77BW_badgeError",
|
|
5770
|
+
"badgeWarn": "_3j77BW_badgeWarn",
|
|
5771
|
+
"catBadge": "_3j77BW_catBadge",
|
|
5772
|
+
"previewRow": "_3j77BW_previewRow",
|
|
5773
|
+
"foot": "_3j77BW_foot"
|
|
5704
5774
|
};
|
|
5705
5775
|
//#endregion
|
|
5706
5776
|
//#region src/client/components/modals/LogsModal.tsx
|
|
@@ -6593,7 +6663,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6593
6663
|
const [uninstallNeedsReload, setUninstallNeedsReload] = (0, react.useState)(false);
|
|
6594
6664
|
/** 结果视图「立即重启」:请求宿主重启后进入等待,服务回来后整页刷新 */
|
|
6595
6665
|
const [restarting, setRestarting] = (0, react.useState)(false);
|
|
6596
|
-
/**
|
|
6666
|
+
/** 操作失败信息 + 归属仓库 + 动作(决定弹窗标题与上报措辞)+ 命令与尝试记录(issue 预填用) */
|
|
6597
6667
|
const [errorMsg, setErrorMsg] = (0, react.useState)(null);
|
|
6598
6668
|
/** 通知中心记录:localStorage 持久化,每次安装/卸载任务成败都留痕(启动时读回) */
|
|
6599
6669
|
const [notifications, setNotifications] = (0, react.useState)(() => loadNotifications());
|
|
@@ -6660,7 +6730,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6660
6730
|
setErrorMsg({
|
|
6661
6731
|
message,
|
|
6662
6732
|
repo: issueRepo,
|
|
6663
|
-
kind,
|
|
6733
|
+
action: update ? "update" : kind,
|
|
6664
6734
|
command,
|
|
6665
6735
|
attempts
|
|
6666
6736
|
});
|
|
@@ -6977,7 +7047,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6977
7047
|
openSection: settingsSection,
|
|
6978
7048
|
onConsumedOpenSection: () => setSettingsSection(null)
|
|
6979
7049
|
}), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
|
|
6980
|
-
info: catalog.hubUpdateInfo ?? { version: "1.6.
|
|
7050
|
+
info: catalog.hubUpdateInfo ?? { version: "1.6.12" },
|
|
6981
7051
|
state: catalog.hubUpdateState,
|
|
6982
7052
|
currentVersion: catalog.hubCurrentVersion,
|
|
6983
7053
|
lang,
|
|
@@ -7201,7 +7271,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
7201
7271
|
}), errorMsg && (0, react.createElement)(ErrorModal, {
|
|
7202
7272
|
message: errorMsg.message,
|
|
7203
7273
|
repo: errorMsg.repo,
|
|
7204
|
-
|
|
7274
|
+
action: errorMsg.action,
|
|
7205
7275
|
command: errorMsg.command,
|
|
7206
7276
|
attempts: errorMsg.attempts,
|
|
7207
7277
|
t,
|