dsh-plugin 1.4.12 → 1.4.14
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.en.md +11 -11
- package/README.md +11 -11
- package/client/client.js +374 -303
- package/client/client.js.map +1 -1
- package/lib/http/routes.js +17 -10
- package/lib/services/install/npm-resolve.js +29 -13
- package/lib/services/install/preflight.js +5 -0
- package/lib/services/install/release-target.js +38 -0
- package/lib/services/profile/profile.js +6 -0
- package/lib/types/services/install/npm-resolve.d.ts +22 -0
- package/lib/types/services/install/release-target.d.ts +28 -0
- package/package.json +1 -1
- package/src/client/components/modals/AboutModal.tsx +18 -2
- package/src/client/components/modals/NotificationsModal.tsx +11 -1
- package/src/client/components/modals/modals.tsx +12 -1
- package/src/client/locales.ts +7 -0
- package/src/client/logic/failures.ts +31 -5
- package/src/client/logic/install-command.ts +18 -8
- package/src/client/logic/urls.ts +1 -0
- package/src/server/http/routes.ts +17 -10
- package/src/server/services/install/npm-resolve.ts +41 -13
- package/src/server/services/install/preflight.ts +4 -0
- package/src/server/services/install/release-target.ts +46 -0
- package/src/server/services/profile/profile.ts +5 -0
package/client/client.js
CHANGED
|
@@ -301,6 +301,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
301
301
|
failNpmMissingHint: "系统找不到 npm 命令(npm 未安装或未加入系统 PATH),无法执行全局安装。请先安装 Node.js(自带 npm),确认 npm 已加入 PATH 后重试。这不是插件本身的问题。",
|
|
302
302
|
failPnpmStoreHint: "安装器调用 pnpm 时报「store 位置不匹配」(ERR_PNPM_UNEXPECTED_STORE):你的 profile 目录里旧插件依赖是用另一个大版本的 pnpm 生成的,当前 pnpm 出于安全不认旧目录,导致任何插件装进该 profile 都会失败。请删除该 profile 目录下的 node_modules 与 pnpm-lock.yaml(可先到「系统日志」或 ~/.dsh/profiles/<profile>/hub.log 查看完整报错),再重新安装。这不是插件本身的问题。",
|
|
303
303
|
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 补丁条目后重试。",
|
|
304
|
+
failPnpmMissingDepTarget: "{pkg} 在 npm registry 上不存在(404)",
|
|
305
|
+
failPnpmMissingDepHint: "安装器调用 pnpm 时报「包不存在」(ERR_PNPM_FETCH_404):你的 profile 里留着一条指向 registry 上未发布包的依赖,pnpm 每次解析依赖都会先卡在它上面,因此任何插件都装不进来。这不是插件本身的问题——请在 profile 目录(~/.dsh/profiles/<profile>)的 package.json 里删除该依赖条目(同时删掉对应的 pnpm-lock.yaml 条目或整个锁文件)后重试。",
|
|
304
306
|
failFileLockedHint: "安装过程中 pnpm 无法替换 profile 里的文件:有程序正占用着它(Windows 常见报错 os error 32「另一个程序正在使用此文件」)。通常是 DeepSeek Harness 自身或杀毒软件的实时扫描持有文件句柄。这不是插件本身的问题——请完全退出 DeepSeek Harness(Windows 可在任务管理器确认进程已结束,必要时临时关闭杀毒软件实时防护)后重试。",
|
|
305
307
|
failAccessDeniedHint: "安装过程中 pnpm 写入 profile 里的文件被系统拒绝访问(Windows 常见报错 os error 5「拒绝访问」,英文为 Access is denied;Node 下的 EPERM / EACCES 同理)。常见原因是该文件或目录正被其他进程占用、文件带只读属性、目录权限受限,或杀毒软件实时防护拦截了写入——这与「文件正被占用」(os error 32)同属本机文件系统问题,任何插件装进该目录都会一样失败,不是插件本身的问题。请完全退出 DeepSeek Harness(Windows 可在任务管理器确认进程已结束,必要时临时关闭杀毒软件实时防护)后重试;若仍然失败,请检查 profile 目录及其文件是否被设为只读,并以管理员身份重新运行。",
|
|
306
308
|
failFsUnavailableHint: "安装过程中 pnpm 无法把文件写进本机磁盘(这类报错与装哪个插件无关,任何插件装在同一目录都会失败,不是插件本身的问题)。请按报错对号入座:① 磁盘空间不足(ENOSPC / no space left on device,Windows 为 os error 112)——请清理 profile 所在磁盘的剩余空间后重试;② 磁盘或挂载点只读、带写保护(EROFS / read-only file system,Windows 为 os error 19)——请确认 profile 目录所在磁盘可写(外接盘/U 盘、带写保护的移动盘或只读挂载的分区都会触发),必要时把插件目录换到系统盘的可写位置;③ 进程可用的文件句柄被耗尽(EMFILE / ENFILE / too many open files)——请关闭占用大量文件的程序并重启 DeepSeek Harness 后重试。",
|
|
@@ -637,6 +639,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
637
639
|
failNpmMissingHint: "The npm command could not be found (npm is not installed or not on the system PATH), so a global install cannot run. Please install Node.js (which bundles npm), make sure npm is on your PATH, then retry. This is not a problem with the plugin itself.",
|
|
638
640
|
failPnpmStoreHint: "pnpm reported an unexpected store location (ERR_PNPM_UNEXPECTED_STORE): the profile directory was previously set up with a different major version of pnpm, and the current pnpm refuses to reuse it — no plugin can be installed into that profile. Delete node_modules and pnpm-lock.yaml under the profile directory (see System Logs or ~/.dsh/profiles/<profile>/hub.log for the full output), then reinstall. This is not a problem with the plugin itself.",
|
|
639
641
|
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.",
|
|
642
|
+
failPnpmMissingDepTarget: "{pkg} was not found on the npm registry (404)",
|
|
643
|
+
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.",
|
|
640
644
|
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.",
|
|
641
645
|
failAccessDeniedHint: "During install, Windows denied pnpm access to a file inside the profile (this shows as os error 5, \"Access is denied\"; on Node the equivalent codes are EPERM / EACCES). Typical causes: the file or directory is held by another process, the file is marked read-only, the directory permissions are restricted, or a real-time antivirus scan blocked the write. This is the same class of local file-system problem as a locked file (os error 32) — no plugin can be installed into that directory, so it 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. If it still fails, check whether the profile directory or its files are read-only and run as administrator.",
|
|
642
646
|
failFsUnavailableHint: "During install, pnpm could not write files to the local disk — this has nothing to do with which plugin you are installing: any plugin installed into the same directory would fail the same way, so it is not a problem with the plugin itself. Match the error you see: ① Out of space (ENOSPC / no space left on device, os error 112 on Windows) — free up space on the drive that holds the profile and retry. ② Read-only or write-protected volume (EROFS / read-only file system, os error 19 on Windows) — make sure the drive holding the profile directory is writable (external or USB drives, write-protected media, and read-only mounts all trigger this); move the plugin directory to a writable location on the system drive if needed. ③ File handles exhausted (EMFILE / ENFILE / too many open files) — close programs that hold many files open, restart DeepSeek Harness, then retry.",
|
|
@@ -698,42 +702,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
698
702
|
css: css$11
|
|
699
703
|
});
|
|
700
704
|
var Header_module_css_default = {
|
|
701
|
-
"
|
|
702
|
-
"aboutBtn": "qikqja_aboutBtn",
|
|
703
|
-
"copyIcon": "qikqja_copyIcon",
|
|
704
|
-
"segBtn": "qikqja_segBtn",
|
|
705
|
-
"header": "qikqja_header",
|
|
706
|
-
"version": "qikqja_version",
|
|
707
|
-
"logoIcon": "qikqja_logoIcon",
|
|
708
|
-
"headerRight": "qikqja_headerRight",
|
|
709
|
-
"adText": "qikqja_adText",
|
|
710
|
-
"githubIcon": "qikqja_githubIcon",
|
|
705
|
+
"tab": "qikqja_tab",
|
|
711
706
|
"taglineLink": "qikqja_taglineLink",
|
|
712
|
-
"
|
|
707
|
+
"tabCount": "qikqja_tabCount",
|
|
713
708
|
"search": "qikqja_search",
|
|
714
|
-
"
|
|
715
|
-
"
|
|
709
|
+
"sortGroup": "qikqja_sortGroup",
|
|
710
|
+
"versionBtn": "qikqja_versionBtn",
|
|
711
|
+
"githubIcon": "qikqja_githubIcon",
|
|
712
|
+
"tabs": "qikqja_tabs",
|
|
713
|
+
"adBadge": "qikqja_adBadge",
|
|
714
|
+
"tagline": "qikqja_tagline",
|
|
715
|
+
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
716
|
+
"adText": "qikqja_adText",
|
|
717
|
+
"headerRight": "qikqja_headerRight",
|
|
718
|
+
"aboutBtn": "qikqja_aboutBtn",
|
|
719
|
+
"title": "qikqja_title",
|
|
716
720
|
"resultCount": "qikqja_resultCount",
|
|
717
721
|
"segLabel": "qikqja_segLabel",
|
|
718
|
-
"
|
|
719
|
-
"githubLink": "qikqja_githubLink",
|
|
722
|
+
"copyIcon": "qikqja_copyIcon",
|
|
720
723
|
"headerTitleRow": "qikqja_headerTitleRow",
|
|
721
|
-
"
|
|
724
|
+
"resultSeg": "qikqja_resultSeg",
|
|
725
|
+
"logoIcon": "qikqja_logoIcon",
|
|
722
726
|
"tabActive": "qikqja_tabActive",
|
|
727
|
+
"brandTitle": "qikqja_brandTitle",
|
|
723
728
|
"segGroup": "qikqja_segGroup",
|
|
724
|
-
"
|
|
725
|
-
"
|
|
726
|
-
"tabsRow": "qikqja_tabsRow",
|
|
727
|
-
"root": "qikqja_root",
|
|
729
|
+
"segBtn": "qikqja_segBtn",
|
|
730
|
+
"adBanner": "qikqja_adBanner",
|
|
728
731
|
"langBtn": "qikqja_langBtn",
|
|
729
|
-
"
|
|
732
|
+
"adArrow": "qikqja_adArrow",
|
|
733
|
+
"root": "qikqja_root",
|
|
734
|
+
"controls": "qikqja_controls",
|
|
735
|
+
"version": "qikqja_version",
|
|
730
736
|
"segBtnActive": "qikqja_segBtnActive",
|
|
731
|
-
"
|
|
732
|
-
"
|
|
733
|
-
"
|
|
734
|
-
"
|
|
735
|
-
"tab": "qikqja_tab",
|
|
736
|
-
"tabCount": "qikqja_tabCount"
|
|
737
|
+
"header": "qikqja_header",
|
|
738
|
+
"githubLink": "qikqja_githubLink",
|
|
739
|
+
"searchRow": "qikqja_searchRow",
|
|
740
|
+
"tabsRow": "qikqja_tabsRow"
|
|
737
741
|
};
|
|
738
742
|
//#endregion
|
|
739
743
|
//#region \0dsh-css:src/client/styles/Modal.module.css.mjs
|
|
@@ -752,143 +756,169 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
752
756
|
css: css$10
|
|
753
757
|
});
|
|
754
758
|
var Modal_module_css_default = {
|
|
755
|
-
"
|
|
756
|
-
"
|
|
759
|
+
"restartLater": "BiQ1zG_restartLater",
|
|
760
|
+
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
757
761
|
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
762
|
+
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
763
|
+
"detailDim": "BiQ1zG_detailDim",
|
|
764
|
+
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
765
|
+
"modalCancel": "BiQ1zG_modalCancel",
|
|
766
|
+
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
767
|
+
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
768
|
+
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
769
|
+
"noticeMain": "BiQ1zG_noticeMain",
|
|
770
|
+
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
771
|
+
"toastIn": "BiQ1zG_toastIn",
|
|
758
772
|
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
759
|
-
"
|
|
760
|
-
"queueSection": "BiQ1zG_queueSection",
|
|
761
|
-
"modalLabel": "BiQ1zG_modalLabel",
|
|
773
|
+
"modalTitle": "BiQ1zG_modalTitle",
|
|
762
774
|
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
763
|
-
"
|
|
764
|
-
"
|
|
765
|
-
"resultCheck": "BiQ1zG_resultCheck",
|
|
766
|
-
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
767
|
-
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
768
|
-
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
769
|
-
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
770
|
-
"detailValue": "BiQ1zG_detailValue",
|
|
771
|
-
"failCopy": "BiQ1zG_failCopy",
|
|
772
|
-
"modalCopy": "BiQ1zG_modalCopy",
|
|
775
|
+
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
776
|
+
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
773
777
|
"modalClose": "BiQ1zG_modalClose",
|
|
774
|
-
"
|
|
775
|
-
"
|
|
776
|
-
"
|
|
778
|
+
"noticeList": "BiQ1zG_noticeList",
|
|
779
|
+
"aboutContent": "BiQ1zG_aboutContent",
|
|
780
|
+
"noticeRow": "BiQ1zG_noticeRow",
|
|
781
|
+
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
782
|
+
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
777
783
|
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
778
|
-
"
|
|
779
|
-
"toastFail": "BiQ1zG_toastFail",
|
|
780
|
-
"progressText": "BiQ1zG_progressText",
|
|
781
|
-
"detailPathText": "BiQ1zG_detailPathText",
|
|
782
|
-
"failEmpty": "BiQ1zG_failEmpty",
|
|
783
|
-
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
784
|
-
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
785
|
-
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
786
|
-
"noticeHead": "BiQ1zG_noticeHead",
|
|
787
|
-
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
788
|
-
"modalActions": "BiQ1zG_modalActions",
|
|
789
|
-
"progressFill": "BiQ1zG_progressFill",
|
|
784
|
+
"detailArrow": "BiQ1zG_detailArrow",
|
|
790
785
|
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
791
|
-
"
|
|
792
|
-
"
|
|
793
|
-
"
|
|
794
|
-
"
|
|
786
|
+
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
787
|
+
"restartNow": "BiQ1zG_restartNow",
|
|
788
|
+
"modalActions": "BiQ1zG_modalActions",
|
|
789
|
+
"detailLink": "BiQ1zG_detailLink",
|
|
790
|
+
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
791
|
+
"stripCancel": "BiQ1zG_stripCancel",
|
|
792
|
+
"result": "BiQ1zG_result",
|
|
793
|
+
"detailPath": "BiQ1zG_detailPath",
|
|
794
|
+
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
795
|
+
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
795
796
|
"progress": "BiQ1zG_progress",
|
|
797
|
+
"failList": "BiQ1zG_failList",
|
|
798
|
+
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
799
|
+
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
800
|
+
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
801
|
+
"resultDesc": "BiQ1zG_resultDesc",
|
|
796
802
|
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
797
|
-
"
|
|
798
|
-
"
|
|
799
|
-
"aboutModal": "BiQ1zG_aboutModal",
|
|
800
|
-
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
801
|
-
"modalRow": "BiQ1zG_modalRow",
|
|
802
|
-
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
803
|
-
"failHead": "BiQ1zG_failHead",
|
|
803
|
+
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
804
|
+
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
804
805
|
"detailModal": "BiQ1zG_detailModal",
|
|
805
|
-
"
|
|
806
|
-
"
|
|
807
|
-
"toastIn": "BiQ1zG_toastIn",
|
|
808
|
-
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
809
|
-
"modal": "BiQ1zG_modal",
|
|
810
|
-
"detailDim": "BiQ1zG_detailDim",
|
|
811
|
-
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
812
|
-
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
813
|
-
"errorModal": "BiQ1zG_errorModal",
|
|
814
|
-
"modalTitle": "BiQ1zG_modalTitle",
|
|
815
|
-
"overlayIn": "BiQ1zG_overlayIn",
|
|
806
|
+
"queueRow": "BiQ1zG_queueRow",
|
|
807
|
+
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
816
808
|
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
817
|
-
"
|
|
809
|
+
"failClear": "BiQ1zG_failClear",
|
|
810
|
+
"failEmpty": "BiQ1zG_failEmpty",
|
|
811
|
+
"modalBody": "BiQ1zG_modalBody",
|
|
812
|
+
"failKind": "BiQ1zG_failKind",
|
|
813
|
+
"noticeTime": "BiQ1zG_noticeTime",
|
|
814
|
+
"progressHead": "BiQ1zG_progressHead",
|
|
815
|
+
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
816
|
+
"queueSection": "BiQ1zG_queueSection",
|
|
817
|
+
"progressFill": "BiQ1zG_progressFill",
|
|
818
|
+
"detailLabel": "BiQ1zG_detailLabel",
|
|
819
|
+
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
820
|
+
"progressTrack": "BiQ1zG_progressTrack",
|
|
821
|
+
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
822
|
+
"resultCheck": "BiQ1zG_resultCheck",
|
|
823
|
+
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
824
|
+
"toastFail": "BiQ1zG_toastFail",
|
|
825
|
+
"modalCopy": "BiQ1zG_modalCopy",
|
|
826
|
+
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
827
|
+
"modalHead": "BiQ1zG_modalHead",
|
|
828
|
+
"failRepo": "BiQ1zG_failRepo",
|
|
829
|
+
"queuedHint": "BiQ1zG_queuedHint",
|
|
830
|
+
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
831
|
+
"detailPathText": "BiQ1zG_detailPathText",
|
|
832
|
+
"overlayIn": "BiQ1zG_overlayIn",
|
|
833
|
+
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
834
|
+
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
835
|
+
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
836
|
+
"modalDesc": "BiQ1zG_modalDesc",
|
|
837
|
+
"detailGrid": "BiQ1zG_detailGrid",
|
|
838
|
+
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
839
|
+
"failHead": "BiQ1zG_failHead",
|
|
840
|
+
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
818
841
|
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
819
|
-
"
|
|
820
|
-
"
|
|
842
|
+
"failCopy": "BiQ1zG_failCopy",
|
|
843
|
+
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
844
|
+
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
845
|
+
"helpModal": "BiQ1zG_helpModal",
|
|
821
846
|
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
847
|
+
"noticeHead": "BiQ1zG_noticeHead",
|
|
822
848
|
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
823
|
-
"
|
|
824
|
-
"
|
|
825
|
-
"
|
|
826
|
-
"
|
|
827
|
-
"
|
|
828
|
-
"
|
|
829
|
-
"
|
|
830
|
-
"
|
|
831
|
-
"linkIcon": "BiQ1zG_linkIcon",
|
|
832
|
-
"failClear": "BiQ1zG_failClear",
|
|
833
|
-
"detailLink": "BiQ1zG_detailLink",
|
|
834
|
-
"logModal": "BiQ1zG_logModal",
|
|
835
|
-
"failList": "BiQ1zG_failList",
|
|
836
|
-
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
849
|
+
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
850
|
+
"errorBox": "BiQ1zG_errorBox",
|
|
851
|
+
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
852
|
+
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
853
|
+
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
854
|
+
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
855
|
+
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
856
|
+
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
837
857
|
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
838
|
-
"
|
|
839
|
-
"
|
|
840
|
-
"
|
|
858
|
+
"detailValue": "BiQ1zG_detailValue",
|
|
859
|
+
"modalLink": "BiQ1zG_modalLink",
|
|
860
|
+
"detailMono": "BiQ1zG_detailMono",
|
|
861
|
+
"modalRow": "BiQ1zG_modalRow",
|
|
841
862
|
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
842
|
-
"
|
|
843
|
-
"
|
|
863
|
+
"modalIn": "BiQ1zG_modalIn",
|
|
864
|
+
"modalInstall": "BiQ1zG_modalInstall",
|
|
865
|
+
"toast": "BiQ1zG_toast",
|
|
866
|
+
"errorHint": "BiQ1zG_errorHint",
|
|
867
|
+
"modalLabel": "BiQ1zG_modalLabel",
|
|
844
868
|
"trustHint": "BiQ1zG_trustHint",
|
|
869
|
+
"logModal": "BiQ1zG_logModal",
|
|
870
|
+
"aboutModal": "BiQ1zG_aboutModal",
|
|
871
|
+
"linkIcon": "BiQ1zG_linkIcon",
|
|
872
|
+
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
873
|
+
"errorModal": "BiQ1zG_errorModal",
|
|
874
|
+
"modalWide": "BiQ1zG_modalWide",
|
|
875
|
+
"modalValue": "BiQ1zG_modalValue",
|
|
845
876
|
"failRow": "BiQ1zG_failRow",
|
|
846
877
|
"resultTitle": "BiQ1zG_resultTitle",
|
|
847
|
-
"
|
|
848
|
-
"
|
|
849
|
-
"
|
|
850
|
-
"noticeMain": "BiQ1zG_noticeMain",
|
|
851
|
-
"modalInstall": "BiQ1zG_modalInstall",
|
|
852
|
-
"noticeRow": "BiQ1zG_noticeRow",
|
|
853
|
-
"detailLabel": "BiQ1zG_detailLabel",
|
|
854
|
-
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
855
|
-
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
856
|
-
"failRepo": "BiQ1zG_failRepo",
|
|
857
|
-
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
858
|
-
"progressTrack": "BiQ1zG_progressTrack",
|
|
859
|
-
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
860
|
-
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
861
|
-
"modalDesc": "BiQ1zG_modalDesc",
|
|
862
|
-
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
863
|
-
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
864
|
-
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
878
|
+
"overlay": "BiQ1zG_overlay",
|
|
879
|
+
"errorTitle": "BiQ1zG_errorTitle",
|
|
880
|
+
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
865
881
|
"detailRow": "BiQ1zG_detailRow",
|
|
866
|
-
"
|
|
867
|
-
"
|
|
868
|
-
"
|
|
869
|
-
"
|
|
870
|
-
"
|
|
871
|
-
"
|
|
872
|
-
"
|
|
873
|
-
"modalBody": "BiQ1zG_modalBody",
|
|
874
|
-
"detailMono": "BiQ1zG_detailMono",
|
|
875
|
-
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
876
|
-
"modalHead": "BiQ1zG_modalHead",
|
|
877
|
-
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
878
|
-
"failKind": "BiQ1zG_failKind",
|
|
879
|
-
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
880
|
-
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
881
|
-
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
882
|
-
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
883
|
-
"result": "BiQ1zG_result",
|
|
884
|
-
"modalLink": "BiQ1zG_modalLink"
|
|
882
|
+
"modalCmd": "BiQ1zG_modalCmd",
|
|
883
|
+
"progressText": "BiQ1zG_progressText",
|
|
884
|
+
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
885
|
+
"detailStars": "BiQ1zG_detailStars",
|
|
886
|
+
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
887
|
+
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
888
|
+
"modal": "BiQ1zG_modal"
|
|
885
889
|
};
|
|
886
890
|
//#endregion
|
|
891
|
+
//#region src/server/services/install/release-target.ts
|
|
892
|
+
/** 目录权威命令:`dsh plugin --profile <p> add|update <target>`(与 profile.ts installTargetOf 同口径)。 */
|
|
893
|
+
const DSH_PLUGIN_CMD_RE$1 = /^dsh[ \t]+plugin[ \t]+--profile(?:[ \t]+|=)[A-Za-z0-9_-]+[ \t]+(?:add|update)[ \t]+(.+)$/i;
|
|
894
|
+
/** 固定形态的 release .tgz 直链:主机、路径段与扩展名全部锁死。 */
|
|
895
|
+
const RELEASE_URL_RE = /^https:\/\/github\.com\/([A-Za-z0-9._-]+)\/([A-Za-z0-9._-]+)\/releases\/download\/([A-Za-z0-9._+-]+)\/([A-Za-z0-9._+-]+\.tgz)$/;
|
|
896
|
+
/**
|
|
897
|
+
* 解析一个 release 安装目标。
|
|
898
|
+
* @param value - 目录命令(`dsh plugin --profile web add <url>`)或裸直链。
|
|
899
|
+
* @returns 命中返回 `{ target, repo }`,否则 null。
|
|
900
|
+
*/
|
|
901
|
+
function githubReleaseTarget(value) {
|
|
902
|
+
const input = typeof value === "string" ? value.trim() : "";
|
|
903
|
+
if (input === "") return null;
|
|
904
|
+
const command = DSH_PLUGIN_CMD_RE$1.exec(input);
|
|
905
|
+
const raw = command !== null ? command[1].trim() : input;
|
|
906
|
+
const match = RELEASE_URL_RE.exec(raw);
|
|
907
|
+
if (match === null) return null;
|
|
908
|
+
if (match.slice(1).some((part) => part === "." || part === "..")) return null;
|
|
909
|
+
return {
|
|
910
|
+
target: raw,
|
|
911
|
+
repo: `${match[1]}/${match[2]}`
|
|
912
|
+
};
|
|
913
|
+
}
|
|
914
|
+
//#endregion
|
|
887
915
|
//#region src/client/logic/install-command.ts
|
|
888
916
|
/**
|
|
889
917
|
* 安装通道决策(用户无感知):目录探测到 npm 包名 → 用 npm 包名安装
|
|
890
|
-
* (走 npm registry tarball,更快、与 GitHub
|
|
891
|
-
*
|
|
918
|
+
* (走 npm registry tarball,更快、与 GitHub 网络无关);其次用「同仓库」的权威
|
|
919
|
+
* release 包直链(仓库 HEAD 往往是 monorepo 根、装不上,release .tgz 才是完整产物);
|
|
920
|
+
* 都没有 → git 直装。
|
|
921
|
+
* 返回值 target 即传给后端 /install 的安装目标(npm 包名 / release URL / owner/repo)。
|
|
892
922
|
*/
|
|
893
923
|
function installTargetOf(p) {
|
|
894
924
|
const pkg = (p.source?.npmPackage ?? "").trim();
|
|
@@ -897,6 +927,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
897
927
|
target: pkg,
|
|
898
928
|
via: "npm"
|
|
899
929
|
};
|
|
930
|
+
const release = githubReleaseTarget(p.install?.githubCommand ?? "");
|
|
931
|
+
if (release !== null && repo !== "" && release.repo.toLowerCase() === repo.toLowerCase()) return {
|
|
932
|
+
target: release.target,
|
|
933
|
+
via: "release"
|
|
934
|
+
};
|
|
900
935
|
return {
|
|
901
936
|
target: repo,
|
|
902
937
|
via: "github"
|
|
@@ -914,7 +949,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
914
949
|
const cmd = p.install?.githubCommand;
|
|
915
950
|
if (cmd) return cmd;
|
|
916
951
|
}
|
|
917
|
-
|
|
952
|
+
const prefix = `dsh plugin${withProfile ? " --profile web" : ""} add `;
|
|
953
|
+
if (via === "npm" || via === "release") return `${prefix}${target}`;
|
|
954
|
+
return `${prefix}git+https://github.com/${target}.git`;
|
|
918
955
|
}
|
|
919
956
|
/** Normalize a task/install target to its owner/repo display identity. */
|
|
920
957
|
function repoFromInstallTarget(value) {
|
|
@@ -951,7 +988,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
951
988
|
* tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
|
|
952
989
|
* node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
|
|
953
990
|
*/
|
|
954
|
-
const PLUGIN_VERSION = "1.4.
|
|
991
|
+
const PLUGIN_VERSION = "1.4.14";
|
|
955
992
|
const CATEGORY_ORDER = [
|
|
956
993
|
"interface",
|
|
957
994
|
"session",
|
|
@@ -1588,7 +1625,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1588
1625
|
*/
|
|
1589
1626
|
const hubHasUpdate = (() => {
|
|
1590
1627
|
if (!hubUpdateInfo) return false;
|
|
1591
|
-
if (hubUpdateInfo.version === "1.4.
|
|
1628
|
+
if (hubUpdateInfo.version === "1.4.14") return false;
|
|
1592
1629
|
const publishedAt = hubUpdateInfo.publishedAt;
|
|
1593
1630
|
if (publishedAt) {
|
|
1594
1631
|
const publishedMs = Date.parse(publishedAt);
|
|
@@ -1812,6 +1849,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1812
1849
|
* - pnpmUnusedPatch:profile 里留着指向旧版本 dsh-plugin 的 patch 声明,本次安装解析到的版本
|
|
1813
1850
|
* 已经不是它(`ERR_PNPM_UNUSED_PATCH` / `The following patches were not used: dsh-plugin@1.4.2`)
|
|
1814
1851
|
* —— pnpm 发现补丁没被用上即中止整次安装 → 提示删掉该条目后重试
|
|
1852
|
+
* - pnpmMissingDep:profile 里留着一条指向 registry 上不存在的包的依赖,pnpm 解析时收到 404
|
|
1853
|
+
* (`ERR_PNPM_FETCH_404` / `Not Found - 404`)—— 该 profile 的任何安装都会先卡在这条依赖上
|
|
1854
|
+
* → 提示按包名删掉该条目后重试(404 的包通常不是正在安装的插件,故不引导提 Issue)
|
|
1815
1855
|
* - fileLocked:pnpm 无法替换 profile 里被其他进程占用的文件(Windows `os error 32`
|
|
1816
1856
|
* 「另一个程序正在使用此文件」/ `EBUSY` / `resource busy or locked`)—— 通常是宿主进程或
|
|
1817
1857
|
* 杀毒软件实时扫描持有句柄 → 提示完全退出宿主后重试
|
|
@@ -1857,7 +1897,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1857
1897
|
if (/ERR_PNPM_IGNORED_BUILDS|Ignored build scripts:|ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED/i.test(message)) return "pnpmIgnoredBuild";
|
|
1858
1898
|
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";
|
|
1859
1899
|
if (/\[packaging\]|entry file missing/i.test(message)) return "pluginPrepare";
|
|
1860
|
-
if (/
|
|
1900
|
+
if (/ERR_PNPM_FETCH_404|404 Not Found|Not Found - 404/i.test(message)) return "pnpmMissingDep";
|
|
1901
|
+
if (/ERR_PNPM_PREPARE_PACKAGE|ELIFECYCLE|prepare-guard/i.test(message) || /Command failed/.test(message)) return "pluginPrepare";
|
|
1861
1902
|
return "repo";
|
|
1862
1903
|
}
|
|
1863
1904
|
/** 从服务端 `[npm-too-low]` 标记行提取本机 npm 版本(如 `[npm-too-low] npm@11.3.0` → "11.3.0");
|
|
@@ -1908,11 +1949,23 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1908
1949
|
} else out = core.join("\n");
|
|
1909
1950
|
return out.length > maxChars ? `${out.slice(0, maxChars)}\n… (truncated)` : out;
|
|
1910
1951
|
}
|
|
1911
|
-
/** 提取首个错误代码(如 ERR_PNPM_PREPARE_PACKAGE),无则 null。
|
|
1952
|
+
/** 提取首个错误代码(如 ERR_PNPM_PREPARE_PACKAGE),无则 null。
|
|
1953
|
+
* 代码里可能含数字(ERR_PNPM_FETCH_404 / ERR_PNPM_EBADPLATFORM_...),字符类需带上 0-9,
|
|
1954
|
+
* 否则会被截断成 `ERR_PNPM_FETCH_`。 */
|
|
1912
1955
|
function coreErrorCode(message) {
|
|
1913
|
-
const m = message.match(/\[?ERR_[A-
|
|
1956
|
+
const m = message.match(/\[?ERR_[A-Z0-9_]+\]?/);
|
|
1914
1957
|
return m ? m[0].replace(/^\[|\]$/g, "") : null;
|
|
1915
1958
|
}
|
|
1959
|
+
/** 提取「registry 上不存在的包名」:从 404 行(`ERR_PNPM_FETCH_404 GET <registry>/<pkg>: Not Found - 404`)
|
|
1960
|
+
* 里取请求路径中的包名(含 scope,如 `@scope/name`);非 404 或提取不到返回 null。 */
|
|
1961
|
+
function missingRegistryPackageOf(message) {
|
|
1962
|
+
for (const line of message.split(/\r?\n/)) {
|
|
1963
|
+
if (!/ERR_PNPM_FETCH_404|404/.test(line)) continue;
|
|
1964
|
+
const m = line.match(/GET\s+https?:\/\/[^\s/]+\/((?:@[^/\s:]+\/)?[^/\s:]+)/);
|
|
1965
|
+
if (m) return m[1];
|
|
1966
|
+
}
|
|
1967
|
+
return null;
|
|
1968
|
+
}
|
|
1916
1969
|
/**
|
|
1917
1970
|
* 从网络类失败消息里提取「具体连不上的地址」,供弹窗精准提示(你的网络无法访问什么)。
|
|
1918
1971
|
* 优先取服务端 [network] 预检消息括号里的探测地址(中文「(…)」/ 英文「(…)」),
|
|
@@ -1987,6 +2040,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1987
2040
|
case "originRejected": return "request origin rejected by the local service on the user machine";
|
|
1988
2041
|
case "pnpmPolicy": return "pnpm supply-chain policy blocked the install on the user machine";
|
|
1989
2042
|
case "pnpmUnusedPatch": return "stale pnpm patch entry on the user machine";
|
|
2043
|
+
case "pnpmMissingDep": return "dependency not found on the npm registry on the user machine";
|
|
1990
2044
|
case "fileLocked": return "file locked by another process on the user machine";
|
|
1991
2045
|
case "accessDenied": return "file write access denied on the user machine";
|
|
1992
2046
|
case "fsUnavailable": return "local file system unavailable on the user machine";
|
|
@@ -3391,7 +3445,10 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3391
3445
|
}, repo) : null, (0, react.createElement)("button", {
|
|
3392
3446
|
className: Modal_module_css_default.errorCopySoft,
|
|
3393
3447
|
onClick: () => onCopy(copyText)
|
|
3394
|
-
}, 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("failPnpmPolicyHint")) : failureKind === "pnpmUnusedPatch" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint")) : failureKind === "
|
|
3448
|
+
}, 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("failPnpmPolicyHint")) : failureKind === "pnpmUnusedPatch" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint")) : failureKind === "pnpmMissingDep" ? (0, react.createElement)("div", null, [(() => {
|
|
3449
|
+
const pkg = missingRegistryPackageOf(message);
|
|
3450
|
+
return pkg ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failPnpmMissingDepTarget", { pkg })) : null;
|
|
3451
|
+
})(), (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmMissingDepHint"))]) : 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")) : failureKind === "network" ? (0, react.createElement)("div", null, [
|
|
3395
3452
|
(() => {
|
|
3396
3453
|
const target = unreachableTargetOf(message);
|
|
3397
3454
|
return target ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failNetworkTarget", { url: target })) : null;
|
|
@@ -3569,9 +3626,19 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3569
3626
|
* 客户端按接口返回渲染,不内置固定文案。
|
|
3570
3627
|
* 图片(反馈群二维码)经 renderMarkdown 的  语法嵌入,居中、最大高度受控。
|
|
3571
3628
|
*/
|
|
3629
|
+
/**
|
|
3630
|
+
* 反馈群二维码 URL 恒定(每次换码都是同名覆盖,文件名不变),浏览器 / CDN 会按
|
|
3631
|
+
* URL 缓存旧图。这里在渲染前给二维码 URL 实时拼一个新的时间戳,强制每次打开
|
|
3632
|
+
* 「关注我们」都回源拉取最新图片,无需重新构建 / 部署接口中心。
|
|
3633
|
+
* 匹配规则与 renderMarkdown 的二维码识别保持一致(dsh-plugin-user-group-qr 前缀)。
|
|
3634
|
+
*/
|
|
3635
|
+
function bustQrCache(md, ts) {
|
|
3636
|
+
return md.replace(/(!\[[^\]]*\]\()([^)\s]*dsh-plugin-user-group-qr[^)\s]*)/g, (_m, pre, url) => `${pre}${String(url).split("?")[0]}?v=${ts}`);
|
|
3637
|
+
}
|
|
3572
3638
|
function AboutModal({ info, lang, t, onClose }) {
|
|
3573
3639
|
const contentRaw = info ? typeof info.content === "string" ? info.content : info.content && typeof info.content === "object" ? lang === "en" ? info.content.en ?? info.content.zh ?? "" : info.content.zh ?? info.content.en ?? "" : "" : "";
|
|
3574
|
-
const
|
|
3640
|
+
const qrTs = (0, react.useMemo)(() => Date.now(), []);
|
|
3641
|
+
const contentHtml = contentRaw.trim() ? renderMarkdown(bustQrCache(contentRaw, qrTs)) : null;
|
|
3575
3642
|
let updated = null;
|
|
3576
3643
|
if (info?.updatedAt) {
|
|
3577
3644
|
const d = new Date(info.updatedAt);
|
|
@@ -3954,6 +4021,10 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3954
4021
|
if (kind === "pnpmStore") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint"));
|
|
3955
4022
|
if (kind === "pnpmPolicy") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmPolicyHint"));
|
|
3956
4023
|
if (kind === "pnpmUnusedPatch") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint"));
|
|
4024
|
+
if (kind === "pnpmMissingDep") {
|
|
4025
|
+
const pkg = missingRegistryPackageOf(r.message);
|
|
4026
|
+
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("failPnpmMissingDepHint"))]);
|
|
4027
|
+
}
|
|
3957
4028
|
if (kind === "fileLocked") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failFileLockedHint"));
|
|
3958
4029
|
if (kind === "accessDenied") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failAccessDeniedHint"));
|
|
3959
4030
|
if (kind === "fsUnavailable") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failFsUnavailableHint"));
|
|
@@ -4167,40 +4238,40 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4167
4238
|
css: css$9
|
|
4168
4239
|
});
|
|
4169
4240
|
var List_module_css_default = {
|
|
4170
|
-
"
|
|
4171
|
-
"desc": "_3XaZHa_desc",
|
|
4172
|
-
"stats": "_3XaZHa_stats",
|
|
4173
|
-
"star": "_3XaZHa_star",
|
|
4174
|
-
"cardTitle": "_3XaZHa_cardTitle",
|
|
4175
|
-
"stateActions": "_3XaZHa_stateActions",
|
|
4241
|
+
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
4176
4242
|
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4177
|
-
"
|
|
4178
|
-
"
|
|
4243
|
+
"topic": "_3XaZHa_topic",
|
|
4244
|
+
"diagBtn": "_3XaZHa_diagBtn",
|
|
4245
|
+
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4246
|
+
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
4247
|
+
"detailBtn": "_3XaZHa_detailBtn",
|
|
4248
|
+
"cardHead": "_3XaZHa_cardHead",
|
|
4249
|
+
"stateTitle": "_3XaZHa_stateTitle",
|
|
4250
|
+
"updateBadge": "_3XaZHa_updateBadge",
|
|
4251
|
+
"stateDesc": "_3XaZHa_stateDesc",
|
|
4252
|
+
"cardMain": "_3XaZHa_cardMain",
|
|
4179
4253
|
"fork": "_3XaZHa_fork",
|
|
4180
|
-
"
|
|
4181
|
-
"
|
|
4254
|
+
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
4255
|
+
"state": "_3XaZHa_state",
|
|
4256
|
+
"stateActions": "_3XaZHa_stateActions",
|
|
4257
|
+
"footer": "_3XaZHa_footer",
|
|
4182
4258
|
"footLink": "_3XaZHa_footLink",
|
|
4183
|
-
"
|
|
4259
|
+
"retryBtn": "_3XaZHa_retryBtn",
|
|
4260
|
+
"cardTitle": "_3XaZHa_cardTitle",
|
|
4261
|
+
"actions": "_3XaZHa_actions",
|
|
4262
|
+
"stats": "_3XaZHa_stats",
|
|
4184
4263
|
"list": "_3XaZHa_list",
|
|
4264
|
+
"star": "_3XaZHa_star",
|
|
4265
|
+
"verified": "_3XaZHa_verified",
|
|
4185
4266
|
"card": "_3XaZHa_card",
|
|
4186
|
-
"
|
|
4267
|
+
"cardSide": "_3XaZHa_cardSide",
|
|
4268
|
+
"body": "_3XaZHa_body",
|
|
4187
4269
|
"versionBadge": "_3XaZHa_versionBadge",
|
|
4188
|
-
"stateTitle": "_3XaZHa_stateTitle",
|
|
4189
|
-
"date": "_3XaZHa_date",
|
|
4190
4270
|
"installBtn": "_3XaZHa_installBtn",
|
|
4191
|
-
"
|
|
4192
|
-
"
|
|
4193
|
-
"
|
|
4194
|
-
"
|
|
4195
|
-
"footer": "_3XaZHa_footer",
|
|
4196
|
-
"verified": "_3XaZHa_verified",
|
|
4197
|
-
"stateDesc": "_3XaZHa_stateDesc",
|
|
4198
|
-
"cardHead": "_3XaZHa_cardHead",
|
|
4199
|
-
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4200
|
-
"diagBtn": "_3XaZHa_diagBtn",
|
|
4201
|
-
"topics": "_3XaZHa_topics",
|
|
4202
|
-
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
4203
|
-
"installBtnInstalled": "_3XaZHa_installBtnInstalled"
|
|
4271
|
+
"desc": "_3XaZHa_desc",
|
|
4272
|
+
"date": "_3XaZHa_date",
|
|
4273
|
+
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
4274
|
+
"topics": "_3XaZHa_topics"
|
|
4204
4275
|
};
|
|
4205
4276
|
//#endregion
|
|
4206
4277
|
//#region src/client/hooks/useIncrementalList.ts
|
|
@@ -4407,15 +4478,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4407
4478
|
css: css$8
|
|
4408
4479
|
});
|
|
4409
4480
|
var SectionTabs_module_css_default = {
|
|
4481
|
+
"tab": "_7tvizq_tab",
|
|
4482
|
+
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4483
|
+
"root": "_7tvizq_root",
|
|
4484
|
+
"tabCount": "_7tvizq_tabCount",
|
|
4410
4485
|
"noticeBtn": "_7tvizq_noticeBtn",
|
|
4411
|
-
"tabIcon": "_7tvizq_tabIcon",
|
|
4412
4486
|
"tabCountActive": "_7tvizq_tabCountActive",
|
|
4413
4487
|
"noticeCount": "_7tvizq_noticeCount",
|
|
4414
|
-
"
|
|
4415
|
-
"
|
|
4416
|
-
"tabActive": "_7tvizq_tabActive",
|
|
4417
|
-
"tabCount": "_7tvizq_tabCount",
|
|
4418
|
-
"noticeIcon": "_7tvizq_noticeIcon"
|
|
4488
|
+
"tabIcon": "_7tvizq_tabIcon",
|
|
4489
|
+
"tabActive": "_7tvizq_tabActive"
|
|
4419
4490
|
};
|
|
4420
4491
|
//#endregion
|
|
4421
4492
|
//#region src/client/components/layout/SectionTabs.tsx
|
|
@@ -4492,42 +4563,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4492
4563
|
css: css$7
|
|
4493
4564
|
});
|
|
4494
4565
|
var InstalledView_module_css_default = {
|
|
4495
|
-
"rowTitle": "_1nXeGW_rowTitle",
|
|
4496
|
-
"segRow": "_1nXeGW_segRow",
|
|
4497
|
-
"segLabel": "_1nXeGW_segLabel",
|
|
4498
|
-
"segGroup": "_1nXeGW_segGroup",
|
|
4499
|
-
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
4500
|
-
"rowMeta": "_1nXeGW_rowMeta",
|
|
4501
|
-
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
4502
4566
|
"list": "_1nXeGW_list",
|
|
4503
|
-
"
|
|
4504
|
-
"
|
|
4505
|
-
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4506
|
-
"statusPending": "_1nXeGW_statusPending",
|
|
4567
|
+
"updateBadge": "_1nXeGW_updateBadge",
|
|
4568
|
+
"statusDot": "_1nXeGW_statusDot",
|
|
4507
4569
|
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
4508
|
-
"
|
|
4509
|
-
"rowDesc": "_1nXeGW_rowDesc",
|
|
4510
|
-
"versionBadge": "_1nXeGW_versionBadge",
|
|
4570
|
+
"rowMain": "_1nXeGW_rowMain",
|
|
4511
4571
|
"segBtn": "_1nXeGW_segBtn",
|
|
4512
|
-
"
|
|
4513
|
-
"rowDetail": "_1nXeGW_rowDetail",
|
|
4572
|
+
"rowMeta": "_1nXeGW_rowMeta",
|
|
4514
4573
|
"rowRestart": "_1nXeGW_rowRestart",
|
|
4515
|
-
"
|
|
4516
|
-
"
|
|
4574
|
+
"searchInput": "_1nXeGW_searchInput",
|
|
4575
|
+
"exampleRow": "_1nXeGW_exampleRow",
|
|
4576
|
+
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
4577
|
+
"rowTitle": "_1nXeGW_rowTitle",
|
|
4578
|
+
"statusPending": "_1nXeGW_statusPending",
|
|
4579
|
+
"searchWrap": "_1nXeGW_searchWrap",
|
|
4580
|
+
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4581
|
+
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
4517
4582
|
"rowCategory": "_1nXeGW_rowCategory",
|
|
4583
|
+
"rowDetail": "_1nXeGW_rowDetail",
|
|
4584
|
+
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
4585
|
+
"segGroup": "_1nXeGW_segGroup",
|
|
4586
|
+
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4518
4587
|
"statusInactive": "_1nXeGW_statusInactive",
|
|
4519
|
-
"searchWrap": "_1nXeGW_searchWrap",
|
|
4520
|
-
"rowMain": "_1nXeGW_rowMain",
|
|
4521
4588
|
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4522
|
-
"
|
|
4523
|
-
"
|
|
4524
|
-
"
|
|
4525
|
-
"
|
|
4589
|
+
"rowActions": "_1nXeGW_rowActions",
|
|
4590
|
+
"rowDesc": "_1nXeGW_rowDesc",
|
|
4591
|
+
"segLabel": "_1nXeGW_segLabel",
|
|
4592
|
+
"segRow": "_1nXeGW_segRow",
|
|
4526
4593
|
"exampleBadge": "_1nXeGW_exampleBadge",
|
|
4527
|
-
"
|
|
4528
|
-
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4594
|
+
"rowRepo": "_1nXeGW_rowRepo",
|
|
4529
4595
|
"root": "_1nXeGW_root",
|
|
4530
|
-
"
|
|
4596
|
+
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4597
|
+
"empty": "_1nXeGW_empty",
|
|
4598
|
+
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4599
|
+
"toolbar": "_1nXeGW_toolbar",
|
|
4600
|
+
"versionBadge": "_1nXeGW_versionBadge",
|
|
4601
|
+
"row": "_1nXeGW_row"
|
|
4531
4602
|
};
|
|
4532
4603
|
//#endregion
|
|
4533
4604
|
//#region src/client/components/views/InstalledView.tsx
|
|
@@ -4773,28 +4844,28 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4773
4844
|
css: css$6
|
|
4774
4845
|
});
|
|
4775
4846
|
var CustomInstallView_module_css_default = {
|
|
4847
|
+
"helpCmd": "zISxCG_helpCmd",
|
|
4848
|
+
"installBtn": "zISxCG_installBtn",
|
|
4776
4849
|
"helpNote": "zISxCG_helpNote",
|
|
4777
|
-
"installCards": "zISxCG_installCards",
|
|
4778
|
-
"installInsertBtn": "zISxCG_installInsertBtn",
|
|
4779
4850
|
"installInput": "zISxCG_installInput",
|
|
4780
4851
|
"installInputError": "zISxCG_installInputError",
|
|
4781
|
-
"installBtn": "zISxCG_installBtn",
|
|
4782
|
-
"installCard": "zISxCG_installCard",
|
|
4783
|
-
"channelOffText": "zISxCG_channelOffText",
|
|
4784
|
-
"installError": "zISxCG_installError",
|
|
4785
|
-
"helpCmd": "zISxCG_helpCmd",
|
|
4786
|
-
"channelOff": "zISxCG_channelOff",
|
|
4787
|
-
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4788
|
-
"desc": "zISxCG_desc",
|
|
4789
|
-
"installLabel": "zISxCG_installLabel",
|
|
4790
|
-
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4791
4852
|
"helpBody": "zISxCG_helpBody",
|
|
4792
4853
|
"installExample": "zISxCG_installExample",
|
|
4793
|
-
"
|
|
4794
|
-
"root": "zISxCG_root",
|
|
4854
|
+
"desc": "zISxCG_desc",
|
|
4795
4855
|
"installRow": "zISxCG_installRow",
|
|
4856
|
+
"installLabel": "zISxCG_installLabel",
|
|
4857
|
+
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4858
|
+
"root": "zISxCG_root",
|
|
4859
|
+
"channelOff": "zISxCG_channelOff",
|
|
4860
|
+
"channelOffText": "zISxCG_channelOffText",
|
|
4861
|
+
"installCards": "zISxCG_installCards",
|
|
4862
|
+
"installCard": "zISxCG_installCard",
|
|
4796
4863
|
"installCardHead": "zISxCG_installCardHead",
|
|
4797
|
-
"
|
|
4864
|
+
"installInsertBtn": "zISxCG_installInsertBtn",
|
|
4865
|
+
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4866
|
+
"installError": "zISxCG_installError",
|
|
4867
|
+
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
4868
|
+
"helpLine": "zISxCG_helpLine"
|
|
4798
4869
|
};
|
|
4799
4870
|
//#endregion
|
|
4800
4871
|
//#region src/client/components/views/CustomInstallView.tsx
|
|
@@ -5084,30 +5155,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5084
5155
|
css: css$5
|
|
5085
5156
|
});
|
|
5086
5157
|
var SettingsView_module_css_default = {
|
|
5087
|
-
"
|
|
5158
|
+
"navItemActive": "_506LLG_navItemActive",
|
|
5088
5159
|
"navIcon": "_506LLG_navIcon",
|
|
5089
5160
|
"navItem": "_506LLG_navItem",
|
|
5090
|
-
"navItemActive": "_506LLG_navItemActive",
|
|
5091
5161
|
"content": "_506LLG_content",
|
|
5092
|
-
"card": "_506LLG_card",
|
|
5093
|
-
"settingControlStack": "_506LLG_settingControlStack",
|
|
5094
|
-
"proxyHint": "_506LLG_proxyHint",
|
|
5095
|
-
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
5096
|
-
"pageHeader": "_506LLG_pageHeader",
|
|
5097
|
-
"settingTitle": "_506LLG_settingTitle",
|
|
5098
|
-
"pageTitle": "_506LLG_pageTitle",
|
|
5099
|
-
"sidebar": "_506LLG_sidebar",
|
|
5100
|
-
"settingDesc": "_506LLG_settingDesc",
|
|
5101
5162
|
"settingControl": "_506LLG_settingControl",
|
|
5163
|
+
"sidebar": "_506LLG_sidebar",
|
|
5102
5164
|
"proxyControl": "_506LLG_proxyControl",
|
|
5103
|
-
"
|
|
5104
|
-
"resetBtn": "_506LLG_resetBtn",
|
|
5105
|
-
"pageDesc": "_506LLG_pageDesc",
|
|
5165
|
+
"settingTitle": "_506LLG_settingTitle",
|
|
5106
5166
|
"textInput": "_506LLG_textInput",
|
|
5167
|
+
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
5168
|
+
"root": "_506LLG_root",
|
|
5107
5169
|
"settingRow": "_506LLG_settingRow",
|
|
5108
5170
|
"settingRowStack": "_506LLG_settingRowStack",
|
|
5171
|
+
"pageDesc": "_506LLG_pageDesc",
|
|
5172
|
+
"settingDesc": "_506LLG_settingDesc",
|
|
5173
|
+
"settingControlStack": "_506LLG_settingControlStack",
|
|
5109
5174
|
"controlDropdown": "_506LLG_controlDropdown",
|
|
5110
|
-
"
|
|
5175
|
+
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
5176
|
+
"card": "_506LLG_card",
|
|
5177
|
+
"settingLabel": "_506LLG_settingLabel",
|
|
5178
|
+
"proxyHint": "_506LLG_proxyHint",
|
|
5179
|
+
"pageTitle": "_506LLG_pageTitle",
|
|
5180
|
+
"pageHeader": "_506LLG_pageHeader",
|
|
5181
|
+
"resetBtn": "_506LLG_resetBtn"
|
|
5111
5182
|
};
|
|
5112
5183
|
//#endregion
|
|
5113
5184
|
//#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
|
|
@@ -5126,17 +5197,17 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5126
5197
|
css: css$4
|
|
5127
5198
|
});
|
|
5128
5199
|
var Dropdown_module_css_default = {
|
|
5129
|
-
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
5130
|
-
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
5131
|
-
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
5132
5200
|
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
5133
|
-
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
5134
|
-
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
5135
|
-
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
5136
|
-
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
5137
|
-
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
5138
5201
|
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
5202
|
+
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
5203
|
+
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
5204
|
+
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
5205
|
+
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
5139
5206
|
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
5207
|
+
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
5208
|
+
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
5209
|
+
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
5210
|
+
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
5140
5211
|
"dropdown": "B_Gxsq_dropdown"
|
|
5141
5212
|
};
|
|
5142
5213
|
//#endregion
|
|
@@ -5258,29 +5329,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5258
5329
|
css: css$2
|
|
5259
5330
|
});
|
|
5260
5331
|
var DiagnosticsView_module_css_default = {
|
|
5261
|
-
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5262
5332
|
"head": "k9eRya_head",
|
|
5263
|
-
"
|
|
5333
|
+
"display": "k9eRya_display",
|
|
5334
|
+
"badgeOk": "k9eRya_badgeOk",
|
|
5335
|
+
"row": "k9eRya_row",
|
|
5336
|
+
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5337
|
+
"envDesc": "k9eRya_envDesc",
|
|
5338
|
+
"badgeFail": "k9eRya_badgeFail",
|
|
5339
|
+
"badge": "k9eRya_badge",
|
|
5264
5340
|
"diagPulse": "k9eRya_diagPulse",
|
|
5265
|
-
"
|
|
5341
|
+
"badgeIdle": "k9eRya_badgeIdle",
|
|
5266
5342
|
"runBtn": "k9eRya_runBtn",
|
|
5267
|
-
"envLabel": "k9eRya_envLabel",
|
|
5268
|
-
"headHint": "k9eRya_headHint",
|
|
5269
|
-
"badge": "k9eRya_badge",
|
|
5270
|
-
"envTitle": "k9eRya_envTitle",
|
|
5271
5343
|
"panel": "k9eRya_panel",
|
|
5272
|
-
"
|
|
5273
|
-
"
|
|
5274
|
-
"
|
|
5344
|
+
"summary": "k9eRya_summary",
|
|
5345
|
+
"meta": "k9eRya_meta",
|
|
5346
|
+
"envLabel": "k9eRya_envLabel",
|
|
5275
5347
|
"badgeRunning": "k9eRya_badgeRunning",
|
|
5276
|
-
"badgeIdle": "k9eRya_badgeIdle",
|
|
5277
|
-
"badgeOk": "k9eRya_badgeOk",
|
|
5278
|
-
"badgeFail": "k9eRya_badgeFail",
|
|
5279
5348
|
"summaryOk": "k9eRya_summaryOk",
|
|
5280
|
-
"
|
|
5349
|
+
"summaryFail": "k9eRya_summaryFail",
|
|
5350
|
+
"summaryRunning": "k9eRya_summaryRunning",
|
|
5351
|
+
"envTitle": "k9eRya_envTitle",
|
|
5352
|
+
"envRow": "k9eRya_envRow",
|
|
5281
5353
|
"name": "k9eRya_name",
|
|
5282
|
-
"
|
|
5283
|
-
"summaryRunning": "k9eRya_summaryRunning"
|
|
5354
|
+
"headHint": "k9eRya_headHint"
|
|
5284
5355
|
};
|
|
5285
5356
|
//#endregion
|
|
5286
5357
|
//#region src/client/components/views/DiagnosticsView.tsx
|
|
@@ -5458,57 +5529,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5458
5529
|
css: css$1
|
|
5459
5530
|
});
|
|
5460
5531
|
var LogsView_module_css_default = {
|
|
5461
|
-
"
|
|
5462
|
-
"
|
|
5463
|
-
"
|
|
5464
|
-
"
|
|
5465
|
-
"
|
|
5466
|
-
"badgeWarn": "_3j77BW_badgeWarn",
|
|
5467
|
-
"catInstall": "_3j77BW_catInstall",
|
|
5468
|
-
"headHint": "_3j77BW_headHint",
|
|
5469
|
-
"filterBar": "_3j77BW_filterBar",
|
|
5470
|
-
"filterChip": "_3j77BW_filterChip",
|
|
5471
|
-
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5472
|
-
"event": "_3j77BW_event",
|
|
5473
|
-
"footActions": "_3j77BW_footActions",
|
|
5474
|
-
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5475
|
-
"actions": "_3j77BW_actions",
|
|
5532
|
+
"moreEnd": "_3j77BW_moreEnd",
|
|
5533
|
+
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5534
|
+
"entry": "_3j77BW_entry",
|
|
5535
|
+
"pathDialog": "_3j77BW_pathDialog",
|
|
5536
|
+
"catBadge": "_3j77BW_catBadge",
|
|
5476
5537
|
"pathText": "_3j77BW_pathText",
|
|
5477
|
-
"
|
|
5478
|
-
"
|
|
5479
|
-
"
|
|
5538
|
+
"footActions": "_3j77BW_footActions",
|
|
5539
|
+
"badgeInfo": "_3j77BW_badgeInfo",
|
|
5540
|
+
"catSettings": "_3j77BW_catSettings",
|
|
5480
5541
|
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5481
|
-
"
|
|
5482
|
-
"
|
|
5542
|
+
"actions": "_3j77BW_actions",
|
|
5543
|
+
"logList": "_3j77BW_logList",
|
|
5544
|
+
"foot": "_3j77BW_foot",
|
|
5545
|
+
"badgeError": "_3j77BW_badgeError",
|
|
5546
|
+
"catSystem": "_3j77BW_catSystem",
|
|
5483
5547
|
"list": "_3j77BW_list",
|
|
5548
|
+
"pathLabel": "_3j77BW_pathLabel",
|
|
5549
|
+
"pathDraft": "_3j77BW_pathDraft",
|
|
5484
5550
|
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5485
|
-
"
|
|
5486
|
-
"
|
|
5551
|
+
"previewRow": "_3j77BW_previewRow",
|
|
5552
|
+
"pathRow": "_3j77BW_pathRow",
|
|
5553
|
+
"btn": "_3j77BW_btn",
|
|
5487
5554
|
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5555
|
+
"footCount": "_3j77BW_footCount",
|
|
5556
|
+
"catInstall": "_3j77BW_catInstall",
|
|
5557
|
+
"clearBtn": "_3j77BW_clearBtn",
|
|
5488
5558
|
"message": "_3j77BW_message",
|
|
5489
|
-
"
|
|
5559
|
+
"footPath": "_3j77BW_footPath",
|
|
5560
|
+
"badgeWarn": "_3j77BW_badgeWarn",
|
|
5561
|
+
"headHint": "_3j77BW_headHint",
|
|
5562
|
+
"footFail": "_3j77BW_footFail",
|
|
5563
|
+
"badge": "_3j77BW_badge",
|
|
5564
|
+
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5565
|
+
"catUpdate": "_3j77BW_catUpdate",
|
|
5566
|
+
"panel": "_3j77BW_panel",
|
|
5567
|
+
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5490
5568
|
"searchInput": "_3j77BW_searchInput",
|
|
5491
|
-
"
|
|
5492
|
-
"
|
|
5493
|
-
"
|
|
5569
|
+
"head": "_3j77BW_head",
|
|
5570
|
+
"filterChip": "_3j77BW_filterChip",
|
|
5571
|
+
"search": "_3j77BW_search",
|
|
5494
5572
|
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5495
|
-
"
|
|
5496
|
-
"footFail": "_3j77BW_footFail",
|
|
5497
|
-
"badgeDebug": "_3j77BW_badgeDebug",
|
|
5498
|
-
"pathDialog": "_3j77BW_pathDialog",
|
|
5499
|
-
"catSettings": "_3j77BW_catSettings",
|
|
5500
|
-
"entry": "_3j77BW_entry",
|
|
5501
|
-
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5573
|
+
"time": "_3j77BW_time",
|
|
5502
5574
|
"linkBtn": "_3j77BW_linkBtn",
|
|
5503
|
-
"
|
|
5504
|
-
"pathRow": "_3j77BW_pathRow",
|
|
5575
|
+
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5505
5576
|
"more": "_3j77BW_more",
|
|
5506
|
-
"
|
|
5507
|
-
"
|
|
5508
|
-
"
|
|
5577
|
+
"catUninstall": "_3j77BW_catUninstall",
|
|
5578
|
+
"event": "_3j77BW_event",
|
|
5579
|
+
"filterBar": "_3j77BW_filterBar",
|
|
5509
5580
|
"headActions": "_3j77BW_headActions",
|
|
5510
|
-
"
|
|
5511
|
-
"
|
|
5581
|
+
"empty": "_3j77BW_empty",
|
|
5582
|
+
"badgeDebug": "_3j77BW_badgeDebug"
|
|
5512
5583
|
};
|
|
5513
5584
|
//#endregion
|
|
5514
5585
|
//#region src/client/components/modals/LogsModal.tsx
|
|
@@ -6757,7 +6828,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6757
6828
|
openSection: settingsSection,
|
|
6758
6829
|
onConsumedOpenSection: () => setSettingsSection(null)
|
|
6759
6830
|
}), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
|
|
6760
|
-
info: catalog.hubUpdateInfo ?? { version: "1.4.
|
|
6831
|
+
info: catalog.hubUpdateInfo ?? { version: "1.4.14" },
|
|
6761
6832
|
lang,
|
|
6762
6833
|
t,
|
|
6763
6834
|
hasUpdate: catalog.hubHasUpdate,
|