dsh-plugin 1.3.7 → 1.3.9
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 +12 -12
- package/README.md +12 -12
- package/client/client.js +389 -321
- package/client/client.js.map +1 -1
- package/lib/http/routes.js +10 -0
- package/lib/services/install/task-queue.js +55 -9
- package/lib/types/services/install/install-types.d.ts +4 -0
- package/lib/types/services/install/task-queue.d.ts +5 -0
- package/package.json +1 -1
- package/src/client/components/PluginHubSection.tsx +20 -3
- package/src/client/components/catalog/CatalogList.tsx +11 -3
- package/src/client/components/modals/NotificationsModal.tsx +10 -0
- package/src/client/components/modals/modals.tsx +9 -1
- package/src/client/components/views/CustomInstallView.tsx +9 -7
- package/src/client/components/views/MarketView.tsx +5 -1
- package/src/client/hooks/useTaskQueue.ts +47 -11
- package/src/client/locales.ts +22 -2
- package/src/client/logic/failures.ts +23 -3
- package/src/client/logic/urls.ts +2 -0
- package/src/client/styles/List.module.css +24 -1
- package/src/client/types.ts +4 -0
- package/src/server/http/routes.ts +10 -0
- package/src/server/services/install/install-types.ts +4 -1
- package/src/server/services/install/task-queue.ts +58 -9
package/client/client.js
CHANGED
|
@@ -31,7 +31,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
31
31
|
fork: "Fork",
|
|
32
32
|
loading: "正在加载插件数据…",
|
|
33
33
|
failed: "插件数据加载失败",
|
|
34
|
-
|
|
34
|
+
failedDescNoProxy: "你的网络似乎不通,无法获取插件目录数据。请检查网络连接后重试;或点击右上角按钮在浏览器中打开插件中心。",
|
|
35
|
+
failedDescProxy: "你的网络似乎不通,或设置里的 HTTP 代理地址不可达,无法获取插件目录数据。请检查代理设置与网络连接后重试;或点击右上角按钮在浏览器中打开插件中心。",
|
|
35
36
|
retry: "重试",
|
|
36
37
|
install: "安装",
|
|
37
38
|
cliOnlyHint: "此插件可能需命令行辅助,失败时复制上方命令到 dsh 终端",
|
|
@@ -289,6 +290,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
289
290
|
failNetworkHint: "安装前检测到网络不通:无法连接到安装源(可能是断网、DNS 解析失败、被防火墙拦截,或代理配置有问题)。这不是插件本身的问题 —— 请检查网络连接,或到「设置」里确认 HTTP 代理配置,再到「系统诊断」运行一次连通性检测,然后重试。",
|
|
290
291
|
failNetworkTarget: "无法访问 {url} —— 你的网络连接不通",
|
|
291
292
|
failNetworkRunDiag: "去系统诊断检测网络",
|
|
293
|
+
failDshMissingHint: "系统找不到 dsh 命令(dsh 未加入系统 PATH),无法调用安装器执行安装。请确认 DeepSeek Harness 已正确安装、dsh 已加入 PATH(或重新安装),然后重试。这不是插件本身的问题。",
|
|
294
|
+
failPnpmMissingHint: "安装器找到了 dsh,但系统里没有 pnpm 命令(dsh 用它来管理 profile 插件)。请先安装 pnpm(如 npm install -g pnpm),确认 pnpm 已加入 PATH 后重试。这不是插件本身的问题。",
|
|
295
|
+
installChannelNpm: "NPM 包",
|
|
296
|
+
installChannelGit: "GitHub 源码",
|
|
297
|
+
installChannelDsh: "DSH 命令",
|
|
298
|
+
installEntryLine: "安装入口:{c}。",
|
|
292
299
|
reportIssue: "去插件仓库提交 Issue",
|
|
293
300
|
detail: "打开详情",
|
|
294
301
|
noResult: "没有找到匹配的插件",
|
|
@@ -343,7 +350,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
343
350
|
fork: "Fork",
|
|
344
351
|
loading: "Loading plugin data…",
|
|
345
352
|
failed: "Failed to load plugin data",
|
|
346
|
-
|
|
353
|
+
failedDescNoProxy: "Your network seems unreachable, so the plugin catalog could not be loaded. Please check your connection and retry; or open the hub in your browser with the button above.",
|
|
354
|
+
failedDescProxy: "Your network seems unreachable, or the HTTP proxy in Settings is unreachable, so the plugin catalog could not be loaded. Please check the proxy address and your connection, then retry; or open the hub in your browser with the button above.",
|
|
347
355
|
retry: "Retry",
|
|
348
356
|
install: "Install",
|
|
349
357
|
cliOnlyHint: "This plugin may need command-line help; if it fails, copy the command above and run it in your dsh terminal",
|
|
@@ -604,6 +612,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
604
612
|
failNetworkHint: "The network could not be reached before install: 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.",
|
|
605
613
|
failNetworkTarget: "Cannot reach {url} — your network connection is down",
|
|
606
614
|
failNetworkRunDiag: "Run a network diagnostic",
|
|
615
|
+
failDshMissingHint: "The dsh command could not be found (it is not on the system PATH), so the installer could not run. Please make sure DeepSeek Harness is installed correctly and dsh is on your PATH (or reinstall it), then retry. This is not a problem with the plugin itself.",
|
|
616
|
+
failPnpmMissingHint: "The installer found dsh, but pnpm is missing on this machine (dsh uses it to manage profile plugins). Please install pnpm first (e.g. npm install -g pnpm), make sure it is on your PATH, then retry. This is not a problem with the plugin itself.",
|
|
617
|
+
installChannelNpm: "NPM package",
|
|
618
|
+
installChannelGit: "GitHub source",
|
|
619
|
+
installChannelDsh: "DSH command",
|
|
620
|
+
installEntryLine: "Install entry: {c}.",
|
|
607
621
|
reportIssue: "Report an Issue to the plugin repo",
|
|
608
622
|
detail: "Open details",
|
|
609
623
|
noResult: "No plugins match your search",
|
|
@@ -656,42 +670,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
656
670
|
css: css$11
|
|
657
671
|
});
|
|
658
672
|
var Header_module_css_default = {
|
|
659
|
-
"
|
|
660
|
-
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
661
|
-
"resultCount": "qikqja_resultCount",
|
|
662
|
-
"taglineLink": "qikqja_taglineLink",
|
|
663
|
-
"sortGroup": "qikqja_sortGroup",
|
|
664
|
-
"header": "qikqja_header",
|
|
673
|
+
"tagline": "qikqja_tagline",
|
|
665
674
|
"tab": "qikqja_tab",
|
|
666
|
-
"
|
|
667
|
-
"
|
|
668
|
-
"
|
|
675
|
+
"adBanner": "qikqja_adBanner",
|
|
676
|
+
"adBadge": "qikqja_adBadge",
|
|
677
|
+
"sortGroup": "qikqja_sortGroup",
|
|
678
|
+
"search": "qikqja_search",
|
|
669
679
|
"tabsRow": "qikqja_tabsRow",
|
|
670
|
-
"
|
|
671
|
-
"tabs": "qikqja_tabs",
|
|
672
|
-
"title": "qikqja_title",
|
|
680
|
+
"adText": "qikqja_adText",
|
|
673
681
|
"logoIcon": "qikqja_logoIcon",
|
|
682
|
+
"tabActive": "qikqja_tabActive",
|
|
683
|
+
"header": "qikqja_header",
|
|
684
|
+
"versionBtn": "qikqja_versionBtn",
|
|
685
|
+
"segBtnActive": "qikqja_segBtnActive",
|
|
686
|
+
"aboutBtn": "qikqja_aboutBtn",
|
|
674
687
|
"githubIcon": "qikqja_githubIcon",
|
|
675
|
-
"
|
|
676
|
-
"
|
|
677
|
-
"segLabel": "qikqja_segLabel",
|
|
688
|
+
"segGroup": "qikqja_segGroup",
|
|
689
|
+
"segBtn": "qikqja_segBtn",
|
|
678
690
|
"headerRight": "qikqja_headerRight",
|
|
679
|
-
"
|
|
691
|
+
"langBtn": "qikqja_langBtn",
|
|
680
692
|
"resultSeg": "qikqja_resultSeg",
|
|
693
|
+
"githubLink": "qikqja_githubLink",
|
|
694
|
+
"version": "qikqja_version",
|
|
695
|
+
"copyIcon": "qikqja_copyIcon",
|
|
681
696
|
"headerTitleRow": "qikqja_headerTitleRow",
|
|
697
|
+
"resultCount": "qikqja_resultCount",
|
|
698
|
+
"adArrow": "qikqja_adArrow",
|
|
699
|
+
"brandTitle": "qikqja_brandTitle",
|
|
682
700
|
"controls": "qikqja_controls",
|
|
683
|
-
"
|
|
684
|
-
"root": "qikqja_root",
|
|
685
|
-
"aboutBtn": "qikqja_aboutBtn",
|
|
686
|
-
"version": "qikqja_version",
|
|
701
|
+
"segLabel": "qikqja_segLabel",
|
|
687
702
|
"searchRow": "qikqja_searchRow",
|
|
688
|
-
"
|
|
689
|
-
"
|
|
690
|
-
"
|
|
691
|
-
"
|
|
692
|
-
"
|
|
693
|
-
"
|
|
694
|
-
"tabActive": "qikqja_tabActive"
|
|
703
|
+
"taglineLink": "qikqja_taglineLink",
|
|
704
|
+
"tabs": "qikqja_tabs",
|
|
705
|
+
"title": "qikqja_title",
|
|
706
|
+
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
707
|
+
"tabCount": "qikqja_tabCount",
|
|
708
|
+
"root": "qikqja_root"
|
|
695
709
|
};
|
|
696
710
|
//#endregion
|
|
697
711
|
//#region \0dsh-css:src/client/styles/Modal.module.css.mjs
|
|
@@ -710,136 +724,136 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
710
724
|
css: css$10
|
|
711
725
|
});
|
|
712
726
|
var Modal_module_css_default = {
|
|
713
|
-
"
|
|
714
|
-
"
|
|
715
|
-
"
|
|
716
|
-
"progressTrack": "BiQ1zG_progressTrack",
|
|
717
|
-
"errorTitle": "BiQ1zG_errorTitle",
|
|
718
|
-
"modal": "BiQ1zG_modal",
|
|
719
|
-
"restartNow": "BiQ1zG_restartNow",
|
|
720
|
-
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
721
|
-
"restartLater": "BiQ1zG_restartLater",
|
|
722
|
-
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
723
|
-
"modalHead": "BiQ1zG_modalHead",
|
|
727
|
+
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
728
|
+
"result": "BiQ1zG_result",
|
|
729
|
+
"failKind": "BiQ1zG_failKind",
|
|
724
730
|
"progressText": "BiQ1zG_progressText",
|
|
725
|
-
"
|
|
726
|
-
"
|
|
727
|
-
"
|
|
728
|
-
"
|
|
729
|
-
"
|
|
730
|
-
"
|
|
731
|
-
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
732
|
-
"detailValue": "BiQ1zG_detailValue",
|
|
733
|
-
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
734
|
-
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
735
|
-
"detailModal": "BiQ1zG_detailModal",
|
|
736
|
-
"detailGrid": "BiQ1zG_detailGrid",
|
|
731
|
+
"progressFill": "BiQ1zG_progressFill",
|
|
732
|
+
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
733
|
+
"aboutModal": "BiQ1zG_aboutModal",
|
|
734
|
+
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
735
|
+
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
736
|
+
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
737
737
|
"modalIn": "BiQ1zG_modalIn",
|
|
738
|
-
"
|
|
739
|
-
"
|
|
740
|
-
"
|
|
741
|
-
"
|
|
742
|
-
"noticeMain": "BiQ1zG_noticeMain",
|
|
743
|
-
"aboutContent": "BiQ1zG_aboutContent",
|
|
744
|
-
"errorHint": "BiQ1zG_errorHint",
|
|
745
|
-
"noticeTime": "BiQ1zG_noticeTime",
|
|
738
|
+
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
739
|
+
"failClear": "BiQ1zG_failClear",
|
|
740
|
+
"modalCopy": "BiQ1zG_modalCopy",
|
|
741
|
+
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
746
742
|
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
747
|
-
"
|
|
748
|
-
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
749
|
-
"errorBox": "BiQ1zG_errorBox",
|
|
750
|
-
"detailStars": "BiQ1zG_detailStars",
|
|
751
|
-
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
752
|
-
"logModal": "BiQ1zG_logModal",
|
|
753
|
-
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
754
|
-
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
755
|
-
"linkIcon": "BiQ1zG_linkIcon",
|
|
743
|
+
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
756
744
|
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
745
|
+
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
757
746
|
"toastFail": "BiQ1zG_toastFail",
|
|
758
|
-
"
|
|
759
|
-
"
|
|
760
|
-
"
|
|
761
|
-
"
|
|
762
|
-
"
|
|
763
|
-
"
|
|
747
|
+
"modalValue": "BiQ1zG_modalValue",
|
|
748
|
+
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
749
|
+
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
750
|
+
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
751
|
+
"modalCancel": "BiQ1zG_modalCancel",
|
|
752
|
+
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
753
|
+
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
754
|
+
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
755
|
+
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
764
756
|
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
765
|
-
"
|
|
766
|
-
"
|
|
757
|
+
"failHead": "BiQ1zG_failHead",
|
|
758
|
+
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
759
|
+
"detailRow": "BiQ1zG_detailRow",
|
|
760
|
+
"errorModal": "BiQ1zG_errorModal",
|
|
761
|
+
"progress": "BiQ1zG_progress",
|
|
762
|
+
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
763
|
+
"detailPathText": "BiQ1zG_detailPathText",
|
|
764
|
+
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
765
|
+
"toast": "BiQ1zG_toast",
|
|
766
|
+
"noticeMain": "BiQ1zG_noticeMain",
|
|
767
|
+
"modalDesc": "BiQ1zG_modalDesc",
|
|
768
|
+
"queueRow": "BiQ1zG_queueRow",
|
|
769
|
+
"resultCheck": "BiQ1zG_resultCheck",
|
|
770
|
+
"modalClose": "BiQ1zG_modalClose",
|
|
771
|
+
"progressHead": "BiQ1zG_progressHead",
|
|
767
772
|
"detailLabel": "BiQ1zG_detailLabel",
|
|
768
|
-
"
|
|
769
|
-
"modalCancel": "BiQ1zG_modalCancel",
|
|
770
|
-
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
771
|
-
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
773
|
+
"failRow": "BiQ1zG_failRow",
|
|
772
774
|
"noticeList": "BiQ1zG_noticeList",
|
|
773
|
-
"
|
|
774
|
-
"
|
|
775
|
-
"
|
|
775
|
+
"linkIcon": "BiQ1zG_linkIcon",
|
|
776
|
+
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
777
|
+
"restartLater": "BiQ1zG_restartLater",
|
|
778
|
+
"modalRow": "BiQ1zG_modalRow",
|
|
779
|
+
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
780
|
+
"resultDesc": "BiQ1zG_resultDesc",
|
|
781
|
+
"detailPath": "BiQ1zG_detailPath",
|
|
782
|
+
"modal": "BiQ1zG_modal",
|
|
776
783
|
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
777
|
-
"
|
|
778
|
-
"
|
|
779
|
-
"
|
|
780
|
-
"
|
|
781
|
-
"
|
|
784
|
+
"progressTrack": "BiQ1zG_progressTrack",
|
|
785
|
+
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
786
|
+
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
787
|
+
"stripCancel": "BiQ1zG_stripCancel",
|
|
788
|
+
"overlayIn": "BiQ1zG_overlayIn",
|
|
782
789
|
"detailLink": "BiQ1zG_detailLink",
|
|
783
|
-
"
|
|
784
|
-
"
|
|
785
|
-
"
|
|
786
|
-
"
|
|
787
|
-
"
|
|
788
|
-
"
|
|
790
|
+
"modalWide": "BiQ1zG_modalWide",
|
|
791
|
+
"modalActions": "BiQ1zG_modalActions",
|
|
792
|
+
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
793
|
+
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
794
|
+
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
795
|
+
"errorTitle": "BiQ1zG_errorTitle",
|
|
796
|
+
"noticeTime": "BiQ1zG_noticeTime",
|
|
797
|
+
"queueSection": "BiQ1zG_queueSection",
|
|
798
|
+
"failRepo": "BiQ1zG_failRepo",
|
|
799
|
+
"helpModal": "BiQ1zG_helpModal",
|
|
789
800
|
"noticeRow": "BiQ1zG_noticeRow",
|
|
790
|
-
"
|
|
791
|
-
"
|
|
792
|
-
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
793
|
-
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
801
|
+
"modalHead": "BiQ1zG_modalHead",
|
|
802
|
+
"errorBox": "BiQ1zG_errorBox",
|
|
794
803
|
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
795
|
-
"
|
|
796
|
-
"
|
|
797
|
-
"
|
|
798
|
-
"
|
|
804
|
+
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
805
|
+
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
806
|
+
"restartNow": "BiQ1zG_restartNow",
|
|
807
|
+
"modalTitle": "BiQ1zG_modalTitle",
|
|
808
|
+
"modalBody": "BiQ1zG_modalBody",
|
|
809
|
+
"toastIn": "BiQ1zG_toastIn",
|
|
810
|
+
"failList": "BiQ1zG_failList",
|
|
799
811
|
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
800
|
-
"helpModal": "BiQ1zG_helpModal",
|
|
801
|
-
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
802
|
-
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
803
812
|
"detailMono": "BiQ1zG_detailMono",
|
|
804
|
-
"
|
|
805
|
-
"
|
|
813
|
+
"aboutContent": "BiQ1zG_aboutContent",
|
|
814
|
+
"overlay": "BiQ1zG_overlay",
|
|
815
|
+
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
816
|
+
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
817
|
+
"modalCmd": "BiQ1zG_modalCmd",
|
|
818
|
+
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
819
|
+
"noticeHead": "BiQ1zG_noticeHead",
|
|
820
|
+
"queuedHint": "BiQ1zG_queuedHint",
|
|
806
821
|
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
807
822
|
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
808
|
-
"
|
|
823
|
+
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
809
824
|
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
810
|
-
"
|
|
811
|
-
"
|
|
812
|
-
"
|
|
813
|
-
"
|
|
814
|
-
"
|
|
815
|
-
"
|
|
816
|
-
"
|
|
817
|
-
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
818
|
-
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
819
|
-
"trustHint": "BiQ1zG_trustHint",
|
|
820
|
-
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
821
|
-
"modalActions": "BiQ1zG_modalActions",
|
|
822
|
-
"toast": "BiQ1zG_toast",
|
|
823
|
-
"progressHead": "BiQ1zG_progressHead",
|
|
824
|
-
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
825
|
-
"overlayIn": "BiQ1zG_overlayIn",
|
|
826
|
-
"modalRow": "BiQ1zG_modalRow",
|
|
827
|
-
"detailRow": "BiQ1zG_detailRow",
|
|
825
|
+
"detailValue": "BiQ1zG_detailValue",
|
|
826
|
+
"errorHint": "BiQ1zG_errorHint",
|
|
827
|
+
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
828
|
+
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
829
|
+
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
830
|
+
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
831
|
+
"detailModal": "BiQ1zG_detailModal",
|
|
828
832
|
"failEmpty": "BiQ1zG_failEmpty",
|
|
829
|
-
"
|
|
830
|
-
"noticeHead": "BiQ1zG_noticeHead",
|
|
831
|
-
"failRow": "BiQ1zG_failRow",
|
|
832
|
-
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
833
|
-
"queueSection": "BiQ1zG_queueSection",
|
|
834
|
-
"modalBody": "BiQ1zG_modalBody",
|
|
835
|
-
"failClear": "BiQ1zG_failClear",
|
|
833
|
+
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
836
834
|
"detailArrow": "BiQ1zG_detailArrow",
|
|
837
|
-
"
|
|
835
|
+
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
836
|
+
"logModal": "BiQ1zG_logModal",
|
|
837
|
+
"modalLabel": "BiQ1zG_modalLabel",
|
|
838
|
+
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
838
839
|
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
839
|
-
"
|
|
840
|
-
"
|
|
841
|
-
"
|
|
842
|
-
"
|
|
840
|
+
"detailDim": "BiQ1zG_detailDim",
|
|
841
|
+
"modalInstall": "BiQ1zG_modalInstall",
|
|
842
|
+
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
843
|
+
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
844
|
+
"resultTitle": "BiQ1zG_resultTitle",
|
|
845
|
+
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
846
|
+
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
847
|
+
"detailStars": "BiQ1zG_detailStars",
|
|
848
|
+
"detailGrid": "BiQ1zG_detailGrid",
|
|
849
|
+
"modalLink": "BiQ1zG_modalLink",
|
|
850
|
+
"failCopy": "BiQ1zG_failCopy",
|
|
851
|
+
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
852
|
+
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
853
|
+
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
854
|
+
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
855
|
+
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
856
|
+
"trustHint": "BiQ1zG_trustHint"
|
|
843
857
|
};
|
|
844
858
|
//#endregion
|
|
845
859
|
//#region src/client/logic/install-command.ts
|
|
@@ -909,7 +923,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
909
923
|
* tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
|
|
910
924
|
* node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
|
|
911
925
|
*/
|
|
912
|
-
const PLUGIN_VERSION = "1.3.
|
|
926
|
+
const PLUGIN_VERSION = "1.3.9";
|
|
913
927
|
const CATEGORY_ORDER = [
|
|
914
928
|
"interface",
|
|
915
929
|
"session",
|
|
@@ -1542,7 +1556,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1542
1556
|
*/
|
|
1543
1557
|
const hubHasUpdate = (() => {
|
|
1544
1558
|
if (!hubUpdateInfo) return false;
|
|
1545
|
-
return hubUpdateInfo.version !== "1.3.
|
|
1559
|
+
return hubUpdateInfo.version !== "1.3.9";
|
|
1546
1560
|
})();
|
|
1547
1561
|
(0, react.useMemo)(() => {
|
|
1548
1562
|
if (!plugins) return [];
|
|
@@ -1721,12 +1735,19 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1721
1735
|
return next;
|
|
1722
1736
|
}
|
|
1723
1737
|
/**
|
|
1724
|
-
*
|
|
1738
|
+
* 失败归类,七态。无论底层机制如何(pnpm 白名单拦截 / 构建脚本被忽略 / prepare 失败),
|
|
1725
1739
|
* 对用户而言结果都一样 —— 当前安装通道(npm 或 git)装不上,就是插件分发/依赖的问题,
|
|
1726
|
-
* 一律引导提 Issue
|
|
1740
|
+
* 一律引导提 Issue;唯一的例外是本机环境问题(npm 版本过低 / 找不到 dsh / 找不到 pnpm / 网络不通):
|
|
1727
1741
|
* - npmTooOld:失败输出含 npm arborist 的 `edgesOut` 崩溃特征(build-ideal-tree.js 解 peer 依赖时
|
|
1728
1742
|
* 内部抛错,npm 11.6.0 前必现的已知缺陷,npm/cli#8261、#9787),或服务端已核实本机版本低于
|
|
1729
1743
|
* 阈值并打了 `[npm-too-low]` 标记 —— 是本机 npm 版本过低/自身缺陷,不是插件问题 → 引导升级 npm
|
|
1744
|
+
* - dshMissing:安装器 spawn 的 `dsh` 命令找不到(Windows cmd「不是内部或外部命令」/ POSIX
|
|
1745
|
+
* 「command not found」/ spawn ENOENT)—— 是本机 DSH 未正确安装或不在 PATH,不是插件问题
|
|
1746
|
+
* → 提示检查 PATH/重装 DSH,不引导提 Issue
|
|
1747
|
+
* - pnpmMissing:dsh 存在但调用的 `pnpm` 找不到(dsh 报 `pnpm not found on PATH`/POSIX
|
|
1748
|
+
* 「pnpm: command not found」/ spawn ENOENT)—— 本机缺 pnpm(dsh 用 pnpm 管理 profile 插件),
|
|
1749
|
+
* 不是插件问题(dsh-plugin-hub#13:Linux 下 `dsh: pnpm not found on PATH` 被误归插件侧失败)
|
|
1750
|
+
* → 提示安装/开启 pnpm,不引导提 Issue
|
|
1730
1751
|
* - network:安装前连通性预检拦截(服务端 `[network]` 标记)或底层连接失败
|
|
1731
1752
|
* (ERR_PNPM_GIT_FETCH_FAILED / ETIMEDOUT / DNS 解析 / TLS 握手 / 代理拒绝)——
|
|
1732
1753
|
* 是本机网络不通/被墙/代理有问题,不是插件问题 → 提示检查网络,不引导提 Issue
|
|
@@ -1740,6 +1761,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1740
1761
|
*/
|
|
1741
1762
|
function classifyFailure(message) {
|
|
1742
1763
|
if (/\[npm-too-low\]|edgesOut/i.test(message)) return "npmTooOld";
|
|
1764
|
+
if (/\[pnpm-missing\]|pnpm not found|pnpm: command not found|spawn pnpm ENOENT|'pnpm' 不是内部或外部命令|"pnpm" 不是内部或外部命令|pnpm['"]?\s*is not recognized/i.test(message)) return "pnpmMissing";
|
|
1765
|
+
if (/\[dsh-missing\]|不是内部或外部命令|is not recognized as an internal or external command|command not found|spawn dsh ENOENT/i.test(message)) return "dshMissing";
|
|
1743
1766
|
if (/ERR_PNPM_IGNORED_BUILDS|Ignored build scripts:|ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED/i.test(message)) return "pnpmIgnoredBuild";
|
|
1744
1767
|
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/i.test(message)) return "network";
|
|
1745
1768
|
if (/\[packaging\]|entry file missing/i.test(message)) return "pluginPrepare";
|
|
@@ -1832,6 +1855,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1832
1855
|
function reasonTitleOf(kind) {
|
|
1833
1856
|
switch (kind) {
|
|
1834
1857
|
case "npmTooOld": return "npm too old to install";
|
|
1858
|
+
case "dshMissing": return "dsh command not found on the user machine";
|
|
1859
|
+
case "pnpmMissing": return "pnpm command not found on the user machine";
|
|
1835
1860
|
case "pnpmIgnoredBuild": return "build scripts blocked by pnpm allowlist";
|
|
1836
1861
|
case "pluginPrepare": return "plugin distribution incomplete";
|
|
1837
1862
|
case "network": return "network failure on the user side";
|
|
@@ -2033,6 +2058,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2033
2058
|
/** 安装/卸载请求超时(ms):服务端 preflight + npm 反查可能耗时(各自都有超时,合计约 20~30s),
|
|
2034
2059
|
* 给足余量;超时主动中止,避免服务端 preflight 网络挂起时前端永久卡「安装中 0%」。 */
|
|
2035
2060
|
const REQUEST_TIMEOUT_MS = 6e4;
|
|
2061
|
+
/** 入口渠道的 i18n key:NPM 包 / GitHub 源码 / DSH 命令。 */
|
|
2062
|
+
const channelKeyOf = (channel) => channel === "git" ? "installChannelGit" : channel === "dsh" ? "installChannelDsh" : "installChannelNpm";
|
|
2063
|
+
/** 失败消息的入口溯源前缀:自定义安装(带渠道)在错误正文顶部精准指出从哪张卡片发起;
|
|
2064
|
+
* 目录插件安装(无渠道)返回 null,错误正文保持原样。 */
|
|
2065
|
+
const entryLineOf = (t, channel) => channel ? t("installEntryLine", { c: t(channelKeyOf(channel)) }) : null;
|
|
2036
2066
|
function useTaskQueue(opts) {
|
|
2037
2067
|
const { t, langKey, refreshInstalled, onInstallDone, onUninstallDone, onError, installPlugin, installCustomTarget, installGlobalTarget, uninstallPlugin, uninstallName, installedName, resolvePending } = opts;
|
|
2038
2068
|
const [queue, setQueue] = (0, react.useState)([]);
|
|
@@ -2146,8 +2176,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2146
2176
|
onInstallDone(modalTaskRef.current === q.id, q.repo, q.needsRestart, q.action === "update");
|
|
2147
2177
|
}
|
|
2148
2178
|
} else {
|
|
2149
|
-
const
|
|
2150
|
-
|
|
2179
|
+
const rawDetail = lines.length > 0 ? [...lines].reverse().join("\n") : q.kind === "uninstall" ? t("uninstallFail") : t("installFail");
|
|
2180
|
+
const entry = entryLineOf(t, q.channel);
|
|
2181
|
+
onError(entry ? `${entry}\n${rawDetail}` : rawDetail, q.repo, q.kind, q.command, q.attempts, q.action === "update");
|
|
2151
2182
|
}
|
|
2152
2183
|
maybeStopPoll();
|
|
2153
2184
|
};
|
|
@@ -2245,7 +2276,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2245
2276
|
progress: typeof a.progress === "number" ? a.progress : prevTask?.progress ?? 0,
|
|
2246
2277
|
lines: Array.isArray(a.lines) ? a.lines : prevTask?.lines ?? [],
|
|
2247
2278
|
attempts: Array.isArray(a.attempts) ? a.attempts : prevTask?.attempts ?? [],
|
|
2248
|
-
needsRestart: typeof a.needsRestart === "boolean" ? a.needsRestart : prevTask?.needsRestart ?? true
|
|
2279
|
+
needsRestart: typeof a.needsRestart === "boolean" ? a.needsRestart : prevTask?.needsRestart ?? true,
|
|
2280
|
+
channel: a.installChannel === "npm" || a.installChannel === "git" || a.installChannel === "dsh" ? a.installChannel : prevTask?.channel
|
|
2249
2281
|
});
|
|
2250
2282
|
}
|
|
2251
2283
|
const keepOpt = prev.filter((q) => q.optimistic && !next.some((x) => x.id === q.id));
|
|
@@ -2290,7 +2322,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2290
2322
|
progress: typeof a.progress === "number" ? a.progress : 0,
|
|
2291
2323
|
lines: Array.isArray(a.lines) ? a.lines : [],
|
|
2292
2324
|
attempts: Array.isArray(a.attempts) ? a.attempts : [],
|
|
2293
|
-
needsRestart: typeof a.needsRestart === "boolean" ? a.needsRestart : true
|
|
2325
|
+
needsRestart: typeof a.needsRestart === "boolean" ? a.needsRestart : true,
|
|
2326
|
+
channel: a.installChannel === "npm" || a.installChannel === "git" || a.installChannel === "dsh" ? a.installChannel : void 0
|
|
2294
2327
|
};
|
|
2295
2328
|
});
|
|
2296
2329
|
if (items.length > 0 || pendingRef.current.length > 0) {
|
|
@@ -2328,6 +2361,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2328
2361
|
lines: [],
|
|
2329
2362
|
optimistic: true,
|
|
2330
2363
|
command: input.command,
|
|
2364
|
+
channel: input.channel,
|
|
2331
2365
|
action: input.update ? "update" : "add",
|
|
2332
2366
|
attempts: [],
|
|
2333
2367
|
needsRestart: true
|
|
@@ -2345,6 +2379,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2345
2379
|
source: input.source,
|
|
2346
2380
|
mode: input.update ? "update" : void 0,
|
|
2347
2381
|
...langKey ? { lang: langKey } : {},
|
|
2382
|
+
...input.channel ? { installChannel: input.channel } : {},
|
|
2348
2383
|
...input.globalNpm && input.globalNpm.length > 0 ? { globalNpm: input.globalNpm } : {}
|
|
2349
2384
|
}),
|
|
2350
2385
|
signal: controller.signal
|
|
@@ -2352,7 +2387,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2352
2387
|
const data = await res.json();
|
|
2353
2388
|
if (!data.ok || typeof data.task !== "number") {
|
|
2354
2389
|
applyQueue((prev) => prev.filter((x) => x.id !== tempId));
|
|
2355
|
-
|
|
2390
|
+
const entry = entryLineOf(t, input.channel);
|
|
2391
|
+
const msg = data.error || `HTTP ${res.status}`;
|
|
2392
|
+
onError(entry ? `${entry}\n${msg}` : msg, input.repo, "install", input.command, data.attempts);
|
|
2356
2393
|
return;
|
|
2357
2394
|
}
|
|
2358
2395
|
const taskId = data.task;
|
|
@@ -2370,7 +2407,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2370
2407
|
} catch (err) {
|
|
2371
2408
|
applyQueue((prev) => prev.filter((x) => x.id !== tempId));
|
|
2372
2409
|
const reason = err?.name === "AbortError" ? t("requestTimeout") : err instanceof Error && err.message ? err.message : String(err ?? "");
|
|
2373
|
-
|
|
2410
|
+
const entry = entryLineOf(t, input.channel);
|
|
2411
|
+
const msg = reason ? `${t("installFail")} — ${reason}` : t("installFail");
|
|
2412
|
+
onError(entry ? `${entry}\n${msg}` : msg, input.repo, "install", input.command);
|
|
2374
2413
|
} finally {
|
|
2375
2414
|
window.clearTimeout(timeout);
|
|
2376
2415
|
submittingRef.current.delete(input.repo);
|
|
@@ -2396,6 +2435,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2396
2435
|
};
|
|
2397
2436
|
/** 命令行安装:用户手输 npm 包名或 GitHub 地址,走 custom 源(受安全开关控制)。
|
|
2398
2437
|
* update=true 时对已安装目标放行覆盖重装(与目录插件「更新」同一语义)。
|
|
2438
|
+
* channel=入口渠道(NPM 包 / GitHub 源码 / DSH 命令卡片):上报服务端落日志,
|
|
2439
|
+
* 失败弹窗/通知据此精准溯源。
|
|
2399
2440
|
* 队列展示/防重一律用归一化身份(owner/repo 或 npm 包名):与服务端 /active 合并、
|
|
2400
2441
|
* 弹窗目标匹配同口径,npm 包名透传不受影响。 */
|
|
2401
2442
|
const installCustom = async (raw, opts) => {
|
|
@@ -2407,11 +2448,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2407
2448
|
repo,
|
|
2408
2449
|
command: `pnpm add ${target}`,
|
|
2409
2450
|
source: "custom",
|
|
2410
|
-
update: opts?.update
|
|
2451
|
+
update: opts?.update,
|
|
2452
|
+
channel: opts?.channel
|
|
2411
2453
|
});
|
|
2412
2454
|
};
|
|
2413
2455
|
/** 全局 npm 安装(官方 README 的 `npm install -g <pkgs>`):不进任何 profile、无需宿主重启。
|
|
2414
|
-
* 队列展示/防重用包列表空格拼接的身份(与服务端 target
|
|
2456
|
+
* 队列展示/防重用包列表空格拼接的身份(与服务端 target 同口径);入口渠道固定为 npm(NPM 包卡片)。 */
|
|
2415
2457
|
const installGlobalNpm = async (pkgs, opts) => {
|
|
2416
2458
|
const list = (pkgs ?? []).map((p) => p.trim()).filter((p) => p !== "");
|
|
2417
2459
|
if (list.length === 0) return;
|
|
@@ -2422,7 +2464,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2422
2464
|
command: `npm install -g ${identity}`,
|
|
2423
2465
|
source: "custom",
|
|
2424
2466
|
globalNpm: list,
|
|
2425
|
-
update: opts?.update
|
|
2467
|
+
update: opts?.update,
|
|
2468
|
+
channel: opts?.channel ?? "npm"
|
|
2426
2469
|
});
|
|
2427
2470
|
};
|
|
2428
2471
|
/** 卸载入队核心:按 npm 包名直卸(目录插件与自定义安装共用,弹窗进度匹配同源)。 */
|
|
@@ -3210,7 +3253,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3210
3253
|
}, repo) : null, (0, react.createElement)("button", {
|
|
3211
3254
|
className: Modal_module_css_default.errorCopySoft,
|
|
3212
3255
|
onClick: () => onCopy(copyText)
|
|
3213
|
-
}, 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 === "network" ? (0, react.createElement)("div", null, [
|
|
3256
|
+
}, 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 === "pnpmMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmMissingHint")) : failureKind === "network" ? (0, react.createElement)("div", null, [
|
|
3214
3257
|
(() => {
|
|
3215
3258
|
const target = unreachableTargetOf(message);
|
|
3216
3259
|
return target ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failNetworkTarget", { url: target })) : null;
|
|
@@ -3761,6 +3804,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3761
3804
|
const v = npmTooLowVersion(r.message);
|
|
3762
3805
|
return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(v ? "failNpmTooLowV" : "failNpmTooLow", v ? { v } : void 0));
|
|
3763
3806
|
}
|
|
3807
|
+
if (kind === "dshMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failDshMissingHint"));
|
|
3808
|
+
if (kind === "pnpmMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmMissingHint"));
|
|
3764
3809
|
if (kind === "network") return (0, react.createElement)("div", null, [
|
|
3765
3810
|
(() => {
|
|
3766
3811
|
const target = unreachableTargetOf(r.message);
|
|
@@ -3951,7 +3996,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3951
3996
|
}
|
|
3952
3997
|
//#endregion
|
|
3953
3998
|
//#region \0dsh-css:src/client/styles/List.module.css.mjs
|
|
3954
|
-
const css$9 = "._3XaZHa_body{flex-direction:column;flex:1;min-height:0;display:flex}._3XaZHa_list{flex-direction:column;flex:1;gap:6px;min-height:0;padding:2px 4px 4px 2px;display:flex;overflow-y:auto}._3XaZHa_moreSentinel{flex-shrink:0;height:1px}._3XaZHa_card{border:1px solid var(--hub-border-2);background:var(--hub-bg-1);border-radius:8px;justify-content:space-between;align-items:stretch;gap:12px;padding:9px 12px;transition:border-color .12s,background .12s;display:flex}._3XaZHa_card:hover{border-color:var(--hub-brand);background:var(--hub-bg-2)}._3XaZHa_cardMain{flex-direction:column;gap:4px;min-width:0;display:flex}._3XaZHa_cardHead{align-items:center;gap:6px;min-width:0;display:flex}._3XaZHa_cardTitle{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:18px;overflow:hidden}._3XaZHa_categoryBadge,._3XaZHa_verified,._3XaZHa_versionBadge,._3XaZHa_updateBadge{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}._3XaZHa_categoryBadge{color:var(--hub-brand);border-color:var(--hub-border-ghost)}._3XaZHa_verified{color:var(--hub-success);border-color:var(--hub-success-border)}._3XaZHa_versionBadge{color:var(--hub-text-secondary);border-color:var(--hub-border-input)}._3XaZHa_updateBadge{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}._3XaZHa_desc{color:var(--hub-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}._3XaZHa_topics{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}._3XaZHa_topic{color:var(--hub-text-tertiary);background:var(--hub-bg-3);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}._3XaZHa_cardSide{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:6px;display:flex}._3XaZHa_stats{flex-direction:column;align-items:flex-end;gap:1px;display:flex}._3XaZHa_star{color:var(--hub-warn);white-space:nowrap;font-size:11px;line-height:16px}._3XaZHa_fork{color:var(--hub-text-tertiary);white-space:nowrap;font-size:11px;line-height:16px}._3XaZHa_date{color:var(--hub-text-tertiary);white-space:nowrap;font-size:10px;line-height:14px}._3XaZHa_installBtn,._3XaZHa_installBtnCopied,._3XaZHa_installBtnInstalled,._3XaZHa_installBtnUpdate,._3XaZHa_uninstallBtn,._3XaZHa_detailBtn{cursor:pointer;border-radius:6px;padding:2px 10px;font-size:11px;line-height:18px;transition:color .12s,border-color .12s,background .12s}._3XaZHa_installBtnInstalled{color:var(--hub-success);background:var(--hub-success-tint);cursor:default;-webkit-user-select:none;user-select:none;border:none}._3XaZHa_installBtnUpdate{color:#fff;background:var(--hub-warn);-webkit-user-select:none;user-select:none;border:none;font-weight:500}._3XaZHa_installBtnUpdate:hover{background:var(--hub-warn-strong)}._3XaZHa_uninstallBtn{color:var(--hub-danger);background:var(--hub-danger-tint);-webkit-user-select:none;user-select:none;border:none}._3XaZHa_uninstallBtn:hover{color:#fff;background:var(--hub-danger-hover)}body[data-ds-dark-theme] ._3XaZHa_uninstallBtn{color:#fff;background:var(--hub-danger)}body[data-ds-dark-theme] ._3XaZHa_uninstallBtn:hover{background:var(--hub-danger-hover)}._3XaZHa_installBtn{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);-webkit-user-select:none;user-select:none;border:none;font-weight:500}._3XaZHa_installBtn:hover{background:var(--hub-btn-hover)}._3XaZHa_detailBtn{color:var(--hub-text-secondary);-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;text-decoration:none;display:inline-flex}._3XaZHa_detailBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}._3XaZHa_actions{align-items:center;gap:6px;display:flex}._3XaZHa_installBtnCopied{color:var(--hub-success);background:var(--hub-success-tint);-webkit-user-select:none;user-select:none;border:none}._3XaZHa_state{text-align:center;min-height:160px;color:var(--hub-text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:12px;line-height:18px;display:flex}._3XaZHa_stateTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600}._3XaZHa_stateDesc{max-width:420px}._3XaZHa_retryBtn{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;
|
|
3999
|
+
const css$9 = "._3XaZHa_body{flex-direction:column;flex:1;min-height:0;display:flex}._3XaZHa_list{flex-direction:column;flex:1;gap:6px;min-height:0;padding:2px 4px 4px 2px;display:flex;overflow-y:auto}._3XaZHa_moreSentinel{flex-shrink:0;height:1px}._3XaZHa_card{border:1px solid var(--hub-border-2);background:var(--hub-bg-1);border-radius:8px;justify-content:space-between;align-items:stretch;gap:12px;padding:9px 12px;transition:border-color .12s,background .12s;display:flex}._3XaZHa_card:hover{border-color:var(--hub-brand);background:var(--hub-bg-2)}._3XaZHa_cardMain{flex-direction:column;gap:4px;min-width:0;display:flex}._3XaZHa_cardHead{align-items:center;gap:6px;min-width:0;display:flex}._3XaZHa_cardTitle{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:18px;overflow:hidden}._3XaZHa_categoryBadge,._3XaZHa_verified,._3XaZHa_versionBadge,._3XaZHa_updateBadge{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}._3XaZHa_categoryBadge{color:var(--hub-brand);border-color:var(--hub-border-ghost)}._3XaZHa_verified{color:var(--hub-success);border-color:var(--hub-success-border)}._3XaZHa_versionBadge{color:var(--hub-text-secondary);border-color:var(--hub-border-input)}._3XaZHa_updateBadge{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}._3XaZHa_desc{color:var(--hub-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}._3XaZHa_topics{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}._3XaZHa_topic{color:var(--hub-text-tertiary);background:var(--hub-bg-3);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}._3XaZHa_cardSide{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:6px;display:flex}._3XaZHa_stats{flex-direction:column;align-items:flex-end;gap:1px;display:flex}._3XaZHa_star{color:var(--hub-warn);white-space:nowrap;font-size:11px;line-height:16px}._3XaZHa_fork{color:var(--hub-text-tertiary);white-space:nowrap;font-size:11px;line-height:16px}._3XaZHa_date{color:var(--hub-text-tertiary);white-space:nowrap;font-size:10px;line-height:14px}._3XaZHa_installBtn,._3XaZHa_installBtnCopied,._3XaZHa_installBtnInstalled,._3XaZHa_installBtnUpdate,._3XaZHa_uninstallBtn,._3XaZHa_detailBtn{cursor:pointer;border-radius:6px;padding:2px 10px;font-size:11px;line-height:18px;transition:color .12s,border-color .12s,background .12s}._3XaZHa_installBtnInstalled{color:var(--hub-success);background:var(--hub-success-tint);cursor:default;-webkit-user-select:none;user-select:none;border:none}._3XaZHa_installBtnUpdate{color:#fff;background:var(--hub-warn);-webkit-user-select:none;user-select:none;border:none;font-weight:500}._3XaZHa_installBtnUpdate:hover{background:var(--hub-warn-strong)}._3XaZHa_uninstallBtn{color:var(--hub-danger);background:var(--hub-danger-tint);-webkit-user-select:none;user-select:none;border:none}._3XaZHa_uninstallBtn:hover{color:#fff;background:var(--hub-danger-hover)}body[data-ds-dark-theme] ._3XaZHa_uninstallBtn{color:#fff;background:var(--hub-danger)}body[data-ds-dark-theme] ._3XaZHa_uninstallBtn:hover{background:var(--hub-danger-hover)}._3XaZHa_installBtn{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);-webkit-user-select:none;user-select:none;border:none;font-weight:500}._3XaZHa_installBtn:hover{background:var(--hub-btn-hover)}._3XaZHa_detailBtn{color:var(--hub-text-secondary);-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;text-decoration:none;display:inline-flex}._3XaZHa_detailBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}._3XaZHa_actions{align-items:center;gap:6px;display:flex}._3XaZHa_installBtnCopied{color:var(--hub-success);background:var(--hub-success-tint);-webkit-user-select:none;user-select:none;border:none}._3XaZHa_state{text-align:center;min-height:160px;color:var(--hub-text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:12px;line-height:18px;display:flex}._3XaZHa_stateTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600}._3XaZHa_stateDesc{max-width:420px}._3XaZHa_retryBtn{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:4px 12px;font-size:12px;line-height:18px}._3XaZHa_retryBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}._3XaZHa_stateActions{align-items:center;gap:8px;margin-top:4px;display:flex}._3XaZHa_diagBtn{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:4px 12px;font-size:12px;line-height:18px}._3XaZHa_diagBtn:hover{background:var(--hub-brand-hover)}._3XaZHa_footer{border-top:1px solid var(--hub-border-1);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:6px 4px 0;display:flex}._3XaZHa_footLink{color:var(--hub-brand);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:11px;line-height:16px;text-decoration:none}._3XaZHa_footLink:hover{text-decoration:underline}";
|
|
3955
4000
|
const tagId$9 = "dsh-plugin/List.module.css";
|
|
3956
4001
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$9) + "]") === null) {
|
|
3957
4002
|
const tag = document.createElement("style");
|
|
@@ -3966,38 +4011,40 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3966
4011
|
css: css$9
|
|
3967
4012
|
});
|
|
3968
4013
|
var List_module_css_default = {
|
|
4014
|
+
"list": "_3XaZHa_list",
|
|
4015
|
+
"cardSide": "_3XaZHa_cardSide",
|
|
4016
|
+
"state": "_3XaZHa_state",
|
|
4017
|
+
"star": "_3XaZHa_star",
|
|
4018
|
+
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
4019
|
+
"verified": "_3XaZHa_verified",
|
|
3969
4020
|
"stats": "_3XaZHa_stats",
|
|
3970
|
-
"
|
|
4021
|
+
"diagBtn": "_3XaZHa_diagBtn",
|
|
4022
|
+
"updateBadge": "_3XaZHa_updateBadge",
|
|
3971
4023
|
"date": "_3XaZHa_date",
|
|
3972
|
-
"
|
|
3973
|
-
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4024
|
+
"actions": "_3XaZHa_actions",
|
|
3974
4025
|
"footer": "_3XaZHa_footer",
|
|
3975
|
-
"
|
|
4026
|
+
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4027
|
+
"stateActions": "_3XaZHa_stateActions",
|
|
4028
|
+
"stateTitle": "_3XaZHa_stateTitle",
|
|
4029
|
+
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4030
|
+
"topic": "_3XaZHa_topic",
|
|
4031
|
+
"versionBadge": "_3XaZHa_versionBadge",
|
|
4032
|
+
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
3976
4033
|
"card": "_3XaZHa_card",
|
|
4034
|
+
"stateDesc": "_3XaZHa_stateDesc",
|
|
4035
|
+
"desc": "_3XaZHa_desc",
|
|
4036
|
+
"cardMain": "_3XaZHa_cardMain",
|
|
4037
|
+
"fork": "_3XaZHa_fork",
|
|
4038
|
+
"cardHead": "_3XaZHa_cardHead",
|
|
4039
|
+
"body": "_3XaZHa_body",
|
|
3977
4040
|
"footLink": "_3XaZHa_footLink",
|
|
3978
|
-
"installBtn": "_3XaZHa_installBtn",
|
|
3979
4041
|
"cardTitle": "_3XaZHa_cardTitle",
|
|
3980
|
-
"
|
|
3981
|
-
"
|
|
3982
|
-
"list": "_3XaZHa_list",
|
|
3983
|
-
"state": "_3XaZHa_state",
|
|
3984
|
-
"stateTitle": "_3XaZHa_stateTitle",
|
|
3985
|
-
"cardSide": "_3XaZHa_cardSide",
|
|
4042
|
+
"topics": "_3XaZHa_topics",
|
|
4043
|
+
"retryBtn": "_3XaZHa_retryBtn",
|
|
3986
4044
|
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
3987
|
-
"
|
|
3988
|
-
"cardHead": "_3XaZHa_cardHead",
|
|
3989
|
-
"updateBadge": "_3XaZHa_updateBadge",
|
|
3990
|
-
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
4045
|
+
"detailBtn": "_3XaZHa_detailBtn",
|
|
3991
4046
|
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
3992
|
-
"
|
|
3993
|
-
"actions": "_3XaZHa_actions",
|
|
3994
|
-
"cardMain": "_3XaZHa_cardMain",
|
|
3995
|
-
"verified": "_3XaZHa_verified",
|
|
3996
|
-
"versionBadge": "_3XaZHa_versionBadge",
|
|
3997
|
-
"retryBtn": "_3XaZHa_retryBtn",
|
|
3998
|
-
"topic": "_3XaZHa_topic",
|
|
3999
|
-
"topics": "_3XaZHa_topics",
|
|
4000
|
-
"fork": "_3XaZHa_fork"
|
|
4047
|
+
"installBtn": "_3XaZHa_installBtn"
|
|
4001
4048
|
};
|
|
4002
4049
|
//#endregion
|
|
4003
4050
|
//#region src/client/hooks/useIncrementalList.ts
|
|
@@ -4100,7 +4147,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4100
4147
|
* the category or install-status filter changes so the replaced content is
|
|
4101
4148
|
* not mistaken for a no-op update.
|
|
4102
4149
|
*/
|
|
4103
|
-
function CatalogList({ plugins, failed, visible, total, t, langPath, reload, category, copied, installedName, installedVersion, hasUpdate, langKey, onInstall, onUninstall }) {
|
|
4150
|
+
function CatalogList({ plugins, failed, visible, total, t, langPath, reload, category, copied, installedName, installedVersion, hasUpdate, langKey, onInstall, onUninstall, hasProxy, onOpenDiagnostics }) {
|
|
4104
4151
|
/** 列表滚动容器:分类/搜索切换后列表内容替换但 scrollTop 保留,会让用户误以为列表没更新,需重置回顶部 */
|
|
4105
4152
|
const listRef = (0, react.useRef)(null);
|
|
4106
4153
|
/** 增量渲染:全量目录太大(4400+),只渲染首批,滚动接近底部时自动追加下一批 */
|
|
@@ -4111,10 +4158,13 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4111
4158
|
return (0, react.createElement)("div", { className: List_module_css_default.body }, (0, react.createElement)("div", {
|
|
4112
4159
|
ref: listRef,
|
|
4113
4160
|
className: List_module_css_default.list
|
|
4114
|
-
}, plugins === null && !failed && (0, react.createElement)("div", { className: List_module_css_default.state }, t("loading")), failed && (0, react.createElement)("div", { className: List_module_css_default.state }, (0, react.createElement)("div", { className: List_module_css_default.stateTitle }, t("failed")), (0, react.createElement)("div", { className: List_module_css_default.stateDesc }, t("
|
|
4161
|
+
}, plugins === null && !failed && (0, react.createElement)("div", { className: List_module_css_default.state }, t("loading")), failed && (0, react.createElement)("div", { className: List_module_css_default.state }, (0, react.createElement)("div", { className: List_module_css_default.stateTitle }, t("failed")), (0, react.createElement)("div", { className: List_module_css_default.stateDesc }, t(hasProxy ? "failedDescProxy" : "failedDescNoProxy")), (0, react.createElement)("div", { className: List_module_css_default.stateActions }, (0, react.createElement)("button", {
|
|
4115
4162
|
className: List_module_css_default.retryBtn,
|
|
4116
4163
|
onClick: () => reload()
|
|
4117
|
-
}, t("retry"))
|
|
4164
|
+
}, t("retry")), (0, react.createElement)("button", {
|
|
4165
|
+
className: List_module_css_default.diagBtn,
|
|
4166
|
+
onClick: onOpenDiagnostics
|
|
4167
|
+
}, t("failNetworkRunDiag")))), plugins !== null && !failed && visible.length === 0 && (0, react.createElement)("div", { className: List_module_css_default.state }, (0, react.createElement)("div", { className: List_module_css_default.stateTitle }, t("noResult")), (0, react.createElement)("div", { className: List_module_css_default.stateDesc }, t("noResultDesc"))), plugins !== null && !failed && shown.map((p) => (0, react.createElement)(PluginCard, {
|
|
4118
4168
|
key: p.ownerSlug ? `${p.ownerSlug}/${p.slug}` : p.slug,
|
|
4119
4169
|
plugin: p,
|
|
4120
4170
|
copied,
|
|
@@ -4149,7 +4199,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4149
4199
|
* it wires catalog state (query/sort/filter/category) to the small
|
|
4150
4200
|
* presentational components so PluginHubSection stays free of view internals.
|
|
4151
4201
|
*/
|
|
4152
|
-
function MarketView({ catalog, t, langPath, langKey, copied, resultText, onInstall, onUninstall }) {
|
|
4202
|
+
function MarketView({ catalog, t, langPath, langKey, copied, resultText, onInstall, onUninstall, hasProxy, onOpenDiagnostics }) {
|
|
4153
4203
|
return (0, react.createElement)(react.Fragment, null, (0, react.createElement)(CategoryTabs, {
|
|
4154
4204
|
category: catalog.category,
|
|
4155
4205
|
setCategory: catalog.setCategory,
|
|
@@ -4179,7 +4229,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4179
4229
|
hasUpdate: catalog.hasUpdate,
|
|
4180
4230
|
langKey,
|
|
4181
4231
|
onInstall,
|
|
4182
|
-
onUninstall
|
|
4232
|
+
onUninstall,
|
|
4233
|
+
hasProxy,
|
|
4234
|
+
onOpenDiagnostics
|
|
4183
4235
|
}));
|
|
4184
4236
|
}
|
|
4185
4237
|
//#endregion
|
|
@@ -4199,15 +4251,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4199
4251
|
css: css$8
|
|
4200
4252
|
});
|
|
4201
4253
|
var SectionTabs_module_css_default = {
|
|
4254
|
+
"tabCount": "_7tvizq_tabCount",
|
|
4255
|
+
"noticeCount": "_7tvizq_noticeCount",
|
|
4256
|
+
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4257
|
+
"root": "_7tvizq_root",
|
|
4202
4258
|
"tab": "_7tvizq_tab",
|
|
4203
4259
|
"noticeBtn": "_7tvizq_noticeBtn",
|
|
4204
|
-
"root": "_7tvizq_root",
|
|
4205
|
-
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4206
|
-
"noticeCount": "_7tvizq_noticeCount",
|
|
4207
4260
|
"tabCountActive": "_7tvizq_tabCountActive",
|
|
4208
4261
|
"tabActive": "_7tvizq_tabActive",
|
|
4209
|
-
"tabIcon": "_7tvizq_tabIcon"
|
|
4210
|
-
"tabCount": "_7tvizq_tabCount"
|
|
4262
|
+
"tabIcon": "_7tvizq_tabIcon"
|
|
4211
4263
|
};
|
|
4212
4264
|
//#endregion
|
|
4213
4265
|
//#region src/client/components/layout/SectionTabs.tsx
|
|
@@ -4284,42 +4336,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4284
4336
|
css: css$7
|
|
4285
4337
|
});
|
|
4286
4338
|
var InstalledView_module_css_default = {
|
|
4287
|
-
"rowRestart": "_1nXeGW_rowRestart",
|
|
4288
|
-
"statusDot": "_1nXeGW_statusDot",
|
|
4289
|
-
"rowActions": "_1nXeGW_rowActions",
|
|
4290
|
-
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
4291
|
-
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4292
|
-
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4293
4339
|
"toolbar": "_1nXeGW_toolbar",
|
|
4294
|
-
"
|
|
4295
|
-
"
|
|
4296
|
-
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4297
|
-
"exampleRow": "_1nXeGW_exampleRow",
|
|
4298
|
-
"statusInactive": "_1nXeGW_statusInactive",
|
|
4299
|
-
"rowMain": "_1nXeGW_rowMain",
|
|
4300
|
-
"rowCategory": "_1nXeGW_rowCategory",
|
|
4301
|
-
"segLabel": "_1nXeGW_segLabel",
|
|
4302
|
-
"list": "_1nXeGW_list",
|
|
4340
|
+
"statusPending": "_1nXeGW_statusPending",
|
|
4341
|
+
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
4303
4342
|
"rowDetail": "_1nXeGW_rowDetail",
|
|
4304
|
-
"
|
|
4305
|
-
"
|
|
4343
|
+
"segLabel": "_1nXeGW_segLabel",
|
|
4344
|
+
"searchWrap": "_1nXeGW_searchWrap",
|
|
4345
|
+
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4346
|
+
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4306
4347
|
"segBtn": "_1nXeGW_segBtn",
|
|
4348
|
+
"exampleBadge": "_1nXeGW_exampleBadge",
|
|
4307
4349
|
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4308
|
-
"
|
|
4309
|
-
"searchInput": "_1nXeGW_searchInput",
|
|
4310
|
-
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
4311
|
-
"rowDesc": "_1nXeGW_rowDesc",
|
|
4312
|
-
"rowRepo": "_1nXeGW_rowRepo",
|
|
4313
|
-
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
4350
|
+
"statusDot": "_1nXeGW_statusDot",
|
|
4314
4351
|
"empty": "_1nXeGW_empty",
|
|
4315
4352
|
"row": "_1nXeGW_row",
|
|
4353
|
+
"statusInactive": "_1nXeGW_statusInactive",
|
|
4354
|
+
"rowRepo": "_1nXeGW_rowRepo",
|
|
4355
|
+
"rowMain": "_1nXeGW_rowMain",
|
|
4356
|
+
"exampleRow": "_1nXeGW_exampleRow",
|
|
4357
|
+
"searchInput": "_1nXeGW_searchInput",
|
|
4316
4358
|
"rowMeta": "_1nXeGW_rowMeta",
|
|
4317
|
-
"
|
|
4318
|
-
"segRow": "_1nXeGW_segRow",
|
|
4319
|
-
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4359
|
+
"versionBadge": "_1nXeGW_versionBadge",
|
|
4320
4360
|
"updateBadge": "_1nXeGW_updateBadge",
|
|
4361
|
+
"root": "_1nXeGW_root",
|
|
4321
4362
|
"segGroup": "_1nXeGW_segGroup",
|
|
4322
|
-
"
|
|
4363
|
+
"list": "_1nXeGW_list",
|
|
4364
|
+
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
4365
|
+
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
4366
|
+
"rowDesc": "_1nXeGW_rowDesc",
|
|
4367
|
+
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
4368
|
+
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4369
|
+
"rowCategory": "_1nXeGW_rowCategory",
|
|
4370
|
+
"segRow": "_1nXeGW_segRow",
|
|
4371
|
+
"rowActions": "_1nXeGW_rowActions",
|
|
4372
|
+
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4373
|
+
"rowTitle": "_1nXeGW_rowTitle",
|
|
4374
|
+
"rowRestart": "_1nXeGW_rowRestart"
|
|
4323
4375
|
};
|
|
4324
4376
|
//#endregion
|
|
4325
4377
|
//#region src/client/components/views/InstalledView.tsx
|
|
@@ -4565,28 +4617,28 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4565
4617
|
css: css$6
|
|
4566
4618
|
});
|
|
4567
4619
|
var CustomInstallView_module_css_default = {
|
|
4568
|
-
"
|
|
4569
|
-
"
|
|
4570
|
-
"
|
|
4571
|
-
"
|
|
4620
|
+
"desc": "zISxCG_desc",
|
|
4621
|
+
"root": "zISxCG_root",
|
|
4622
|
+
"installInputError": "zISxCG_installInputError",
|
|
4623
|
+
"helpBody": "zISxCG_helpBody",
|
|
4624
|
+
"helpCmd": "zISxCG_helpCmd",
|
|
4625
|
+
"helpNote": "zISxCG_helpNote",
|
|
4572
4626
|
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
4627
|
+
"channelOff": "zISxCG_channelOff",
|
|
4628
|
+
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4629
|
+
"installExample": "zISxCG_installExample",
|
|
4573
4630
|
"installError": "zISxCG_installError",
|
|
4574
|
-
"installCardHead": "zISxCG_installCardHead",
|
|
4575
4631
|
"helpLine": "zISxCG_helpLine",
|
|
4576
|
-
"helpNote": "zISxCG_helpNote",
|
|
4577
|
-
"desc": "zISxCG_desc",
|
|
4578
4632
|
"channelOffText": "zISxCG_channelOffText",
|
|
4579
|
-
"
|
|
4580
|
-
"installExample": "zISxCG_installExample",
|
|
4581
|
-
"helpBody": "zISxCG_helpBody",
|
|
4582
|
-
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4583
|
-
"installInputError": "zISxCG_installInputError",
|
|
4584
|
-
"helpCmd": "zISxCG_helpCmd",
|
|
4633
|
+
"installCard": "zISxCG_installCard",
|
|
4585
4634
|
"installBtn": "zISxCG_installBtn",
|
|
4635
|
+
"installInput": "zISxCG_installInput",
|
|
4586
4636
|
"installCards": "zISxCG_installCards",
|
|
4587
|
-
"
|
|
4588
|
-
"
|
|
4589
|
-
"
|
|
4637
|
+
"installRow": "zISxCG_installRow",
|
|
4638
|
+
"installCardHead": "zISxCG_installCardHead",
|
|
4639
|
+
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4640
|
+
"installLabel": "zISxCG_installLabel",
|
|
4641
|
+
"installInsertBtn": "zISxCG_installInsertBtn"
|
|
4590
4642
|
};
|
|
4591
4643
|
//#endregion
|
|
4592
4644
|
//#region src/client/components/views/CustomInstallView.tsx
|
|
@@ -4714,8 +4766,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4714
4766
|
setNpmError(t("npmInstallInvalid"));
|
|
4715
4767
|
return;
|
|
4716
4768
|
}
|
|
4717
|
-
if (parsed.kind === "global") onInstallCustom(raw, {
|
|
4718
|
-
|
|
4769
|
+
if (parsed.kind === "global") onInstallCustom(raw, {
|
|
4770
|
+
installChannel: "npm",
|
|
4771
|
+
globalNpm: parsed.pkgs
|
|
4772
|
+
});
|
|
4773
|
+
else onInstallCustom(parsed.target, { installChannel: "npm" });
|
|
4719
4774
|
setNpmQuery("");
|
|
4720
4775
|
setNpmError("");
|
|
4721
4776
|
};
|
|
@@ -4726,7 +4781,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4726
4781
|
setGitError(t("gitInstallInvalid"));
|
|
4727
4782
|
return;
|
|
4728
4783
|
}
|
|
4729
|
-
onInstallCustom(target);
|
|
4784
|
+
onInstallCustom(target, { installChannel: "git" });
|
|
4730
4785
|
setGitQuery("");
|
|
4731
4786
|
setGitError("");
|
|
4732
4787
|
};
|
|
@@ -4738,7 +4793,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4738
4793
|
setCmdError(t("dshCmdInvalid"));
|
|
4739
4794
|
return;
|
|
4740
4795
|
}
|
|
4741
|
-
onInstallCustom(parsed.target);
|
|
4796
|
+
onInstallCustom(parsed.target, { installChannel: "dsh" });
|
|
4742
4797
|
setCmdQuery("");
|
|
4743
4798
|
setCmdError("");
|
|
4744
4799
|
};
|
|
@@ -4873,30 +4928,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4873
4928
|
css: css$5
|
|
4874
4929
|
});
|
|
4875
4930
|
var SettingsView_module_css_default = {
|
|
4876
|
-
"
|
|
4877
|
-
"proxyHint": "_506LLG_proxyHint",
|
|
4878
|
-
"pageHeader": "_506LLG_pageHeader",
|
|
4879
|
-
"controlDropdown": "_506LLG_controlDropdown",
|
|
4880
|
-
"settingControlStack": "_506LLG_settingControlStack",
|
|
4881
|
-
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
4882
|
-
"navItemActive": "_506LLG_navItemActive",
|
|
4931
|
+
"pageDesc": "_506LLG_pageDesc",
|
|
4883
4932
|
"settingDesc": "_506LLG_settingDesc",
|
|
4884
4933
|
"textInput": "_506LLG_textInput",
|
|
4885
|
-
"settingTitle": "_506LLG_settingTitle",
|
|
4886
4934
|
"proxyControl": "_506LLG_proxyControl",
|
|
4887
|
-
"
|
|
4888
|
-
"
|
|
4935
|
+
"proxyHint": "_506LLG_proxyHint",
|
|
4936
|
+
"settingControlStack": "_506LLG_settingControlStack",
|
|
4937
|
+
"resetBtn": "_506LLG_resetBtn",
|
|
4938
|
+
"settingLabel": "_506LLG_settingLabel",
|
|
4939
|
+
"navIcon": "_506LLG_navIcon",
|
|
4940
|
+
"pageHeader": "_506LLG_pageHeader",
|
|
4941
|
+
"settingTitle": "_506LLG_settingTitle",
|
|
4942
|
+
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
4943
|
+
"root": "_506LLG_root",
|
|
4944
|
+
"card": "_506LLG_card",
|
|
4889
4945
|
"sidebar": "_506LLG_sidebar",
|
|
4946
|
+
"navItemActive": "_506LLG_navItemActive",
|
|
4947
|
+
"content": "_506LLG_content",
|
|
4890
4948
|
"settingControl": "_506LLG_settingControl",
|
|
4891
|
-
"
|
|
4892
|
-
"
|
|
4893
|
-
"resetBtn": "_506LLG_resetBtn",
|
|
4949
|
+
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
4950
|
+
"navItem": "_506LLG_navItem",
|
|
4894
4951
|
"settingRow": "_506LLG_settingRow",
|
|
4895
|
-
"
|
|
4896
|
-
"
|
|
4897
|
-
"
|
|
4898
|
-
"pageTitle": "_506LLG_pageTitle",
|
|
4899
|
-
"navIcon": "_506LLG_navIcon"
|
|
4952
|
+
"controlDropdown": "_506LLG_controlDropdown",
|
|
4953
|
+
"settingRowStack": "_506LLG_settingRowStack",
|
|
4954
|
+
"pageTitle": "_506LLG_pageTitle"
|
|
4900
4955
|
};
|
|
4901
4956
|
//#endregion
|
|
4902
4957
|
//#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
|
|
@@ -4915,18 +4970,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4915
4970
|
css: css$4
|
|
4916
4971
|
});
|
|
4917
4972
|
var Dropdown_module_css_default = {
|
|
4973
|
+
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
4918
4974
|
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
4919
|
-
"
|
|
4920
|
-
"
|
|
4921
|
-
"
|
|
4975
|
+
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
4976
|
+
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
4977
|
+
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
4922
4978
|
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
4923
|
-
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
4924
4979
|
"dropdown": "B_Gxsq_dropdown",
|
|
4980
|
+
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
4925
4981
|
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
4926
|
-
"
|
|
4927
|
-
"
|
|
4928
|
-
"
|
|
4929
|
-
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel"
|
|
4982
|
+
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
4983
|
+
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
4984
|
+
"dropdownBtn": "B_Gxsq_dropdownBtn"
|
|
4930
4985
|
};
|
|
4931
4986
|
//#endregion
|
|
4932
4987
|
//#region \0dsh-css:src/client/styles/Toggle.module.css.mjs
|
|
@@ -4945,9 +5000,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4945
5000
|
css: css$3
|
|
4946
5001
|
});
|
|
4947
5002
|
var Toggle_module_css_default = {
|
|
4948
|
-
"toggle": "k-cD4G_toggle",
|
|
4949
5003
|
"toggleOn": "k-cD4G_toggleOn",
|
|
4950
|
-
"knob": "k-cD4G_knob"
|
|
5004
|
+
"knob": "k-cD4G_knob",
|
|
5005
|
+
"toggle": "k-cD4G_toggle"
|
|
4951
5006
|
};
|
|
4952
5007
|
//#endregion
|
|
4953
5008
|
//#region src/client/components/ui/Toggle.tsx
|
|
@@ -5047,29 +5102,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5047
5102
|
css: css$2
|
|
5048
5103
|
});
|
|
5049
5104
|
var DiagnosticsView_module_css_default = {
|
|
5050
|
-
"
|
|
5051
|
-
"
|
|
5052
|
-
"
|
|
5053
|
-
"name": "k9eRya_name",
|
|
5054
|
-
"badgeOk": "k9eRya_badgeOk",
|
|
5055
|
-
"badge": "k9eRya_badge",
|
|
5105
|
+
"envLabel": "k9eRya_envLabel",
|
|
5106
|
+
"meta": "k9eRya_meta",
|
|
5107
|
+
"badgeIdle": "k9eRya_badgeIdle",
|
|
5056
5108
|
"summaryFail": "k9eRya_summaryFail",
|
|
5109
|
+
"head": "k9eRya_head",
|
|
5110
|
+
"display": "k9eRya_display",
|
|
5057
5111
|
"runBtn": "k9eRya_runBtn",
|
|
5058
|
-
"
|
|
5112
|
+
"summaryRunning": "k9eRya_summaryRunning",
|
|
5113
|
+
"badgeFail": "k9eRya_badgeFail",
|
|
5114
|
+
"envDesc": "k9eRya_envDesc",
|
|
5115
|
+
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5116
|
+
"badge": "k9eRya_badge",
|
|
5117
|
+
"badgeOk": "k9eRya_badgeOk",
|
|
5059
5118
|
"summaryOk": "k9eRya_summaryOk",
|
|
5060
|
-
"envLabel": "k9eRya_envLabel",
|
|
5061
|
-
"envRow": "k9eRya_envRow",
|
|
5062
|
-
"row": "k9eRya_row",
|
|
5063
5119
|
"badgeRunning": "k9eRya_badgeRunning",
|
|
5064
|
-
"
|
|
5120
|
+
"row": "k9eRya_row",
|
|
5121
|
+
"summary": "k9eRya_summary",
|
|
5065
5122
|
"diagPulse": "k9eRya_diagPulse",
|
|
5066
|
-
"
|
|
5067
|
-
"badgeFail": "k9eRya_badgeFail",
|
|
5068
|
-
"badgeIdle": "k9eRya_badgeIdle",
|
|
5069
|
-
"display": "k9eRya_display",
|
|
5070
|
-
"headHint": "k9eRya_headHint",
|
|
5123
|
+
"panel": "k9eRya_panel",
|
|
5071
5124
|
"envTitle": "k9eRya_envTitle",
|
|
5072
|
-
"
|
|
5125
|
+
"headHint": "k9eRya_headHint",
|
|
5126
|
+
"name": "k9eRya_name",
|
|
5127
|
+
"envRow": "k9eRya_envRow"
|
|
5073
5128
|
};
|
|
5074
5129
|
//#endregion
|
|
5075
5130
|
//#region src/client/components/views/DiagnosticsView.tsx
|
|
@@ -5244,57 +5299,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5244
5299
|
css: css$1
|
|
5245
5300
|
});
|
|
5246
5301
|
var LogsView_module_css_default = {
|
|
5247
|
-
"catUpdate": "_3j77BW_catUpdate",
|
|
5248
|
-
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5249
|
-
"badgeError": "_3j77BW_badgeError",
|
|
5250
|
-
"pathDialog": "_3j77BW_pathDialog",
|
|
5251
|
-
"empty": "_3j77BW_empty",
|
|
5252
|
-
"message": "_3j77BW_message",
|
|
5253
|
-
"list": "_3j77BW_list",
|
|
5254
5302
|
"head": "_3j77BW_head",
|
|
5303
|
+
"searchInput": "_3j77BW_searchInput",
|
|
5304
|
+
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5305
|
+
"badgeInfo": "_3j77BW_badgeInfo",
|
|
5306
|
+
"catBadge": "_3j77BW_catBadge",
|
|
5307
|
+
"catInstall": "_3j77BW_catInstall",
|
|
5308
|
+
"empty": "_3j77BW_empty",
|
|
5309
|
+
"search": "_3j77BW_search",
|
|
5310
|
+
"clearBtn": "_3j77BW_clearBtn",
|
|
5255
5311
|
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5256
|
-
"
|
|
5312
|
+
"filterBar": "_3j77BW_filterBar",
|
|
5313
|
+
"linkBtn": "_3j77BW_linkBtn",
|
|
5314
|
+
"moreEnd": "_3j77BW_moreEnd",
|
|
5315
|
+
"catUninstall": "_3j77BW_catUninstall",
|
|
5316
|
+
"btn": "_3j77BW_btn",
|
|
5317
|
+
"panel": "_3j77BW_panel",
|
|
5318
|
+
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5319
|
+
"logList": "_3j77BW_logList",
|
|
5257
5320
|
"more": "_3j77BW_more",
|
|
5258
5321
|
"footPath": "_3j77BW_footPath",
|
|
5259
|
-
"
|
|
5260
|
-
"filterChip": "_3j77BW_filterChip",
|
|
5261
|
-
"badgeInfo": "_3j77BW_badgeInfo",
|
|
5262
|
-
"pathRow": "_3j77BW_pathRow",
|
|
5322
|
+
"list": "_3j77BW_list",
|
|
5263
5323
|
"footActions": "_3j77BW_footActions",
|
|
5264
|
-
"
|
|
5265
|
-
"
|
|
5266
|
-
"event": "_3j77BW_event",
|
|
5324
|
+
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5325
|
+
"previewRow": "_3j77BW_previewRow",
|
|
5267
5326
|
"badgeWarn": "_3j77BW_badgeWarn",
|
|
5268
|
-
"
|
|
5269
|
-
"footFail": "_3j77BW_footFail",
|
|
5270
|
-
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5271
|
-
"moreEnd": "_3j77BW_moreEnd",
|
|
5272
|
-
"filterBar": "_3j77BW_filterBar",
|
|
5327
|
+
"pathDialog": "_3j77BW_pathDialog",
|
|
5273
5328
|
"pathDraft": "_3j77BW_pathDraft",
|
|
5274
|
-
"catBadge": "_3j77BW_catBadge",
|
|
5275
|
-
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5276
|
-
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5277
5329
|
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5330
|
+
"badge": "_3j77BW_badge",
|
|
5331
|
+
"headHint": "_3j77BW_headHint",
|
|
5332
|
+
"pathText": "_3j77BW_pathText",
|
|
5278
5333
|
"badgeDebug": "_3j77BW_badgeDebug",
|
|
5279
5334
|
"catSettings": "_3j77BW_catSettings",
|
|
5280
|
-
"catInstall": "_3j77BW_catInstall",
|
|
5281
5335
|
"actions": "_3j77BW_actions",
|
|
5282
|
-
"clearBtn": "_3j77BW_clearBtn",
|
|
5283
|
-
"pathText": "_3j77BW_pathText",
|
|
5284
|
-
"search": "_3j77BW_search",
|
|
5285
|
-
"foot": "_3j77BW_foot",
|
|
5286
|
-
"panel": "_3j77BW_panel",
|
|
5287
5336
|
"headActions": "_3j77BW_headActions",
|
|
5288
|
-
"
|
|
5289
|
-
"
|
|
5290
|
-
"
|
|
5291
|
-
"
|
|
5337
|
+
"badgeError": "_3j77BW_badgeError",
|
|
5338
|
+
"event": "_3j77BW_event",
|
|
5339
|
+
"foot": "_3j77BW_foot",
|
|
5340
|
+
"catSystem": "_3j77BW_catSystem",
|
|
5292
5341
|
"pathLabel": "_3j77BW_pathLabel",
|
|
5293
|
-
"
|
|
5342
|
+
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5343
|
+
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5344
|
+
"footCount": "_3j77BW_footCount",
|
|
5345
|
+
"catUpdate": "_3j77BW_catUpdate",
|
|
5346
|
+
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5294
5347
|
"entry": "_3j77BW_entry",
|
|
5295
|
-
"
|
|
5296
|
-
"
|
|
5297
|
-
"
|
|
5348
|
+
"filterChip": "_3j77BW_filterChip",
|
|
5349
|
+
"time": "_3j77BW_time",
|
|
5350
|
+
"message": "_3j77BW_message",
|
|
5351
|
+
"pathRow": "_3j77BW_pathRow",
|
|
5352
|
+
"footFail": "_3j77BW_footFail"
|
|
5298
5353
|
};
|
|
5299
5354
|
//#endregion
|
|
5300
5355
|
//#region src/client/components/modals/LogsModal.tsx
|
|
@@ -6145,6 +6200,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6145
6200
|
/** 命令行安装确认弹窗:记录待安装的裸目标(npm 包名 / GitHub 地址,DSH 命令已剥成裸目标)——
|
|
6146
6201
|
* 与应用商店同一套确认/进度/结果弹窗,提供时 plugin 传 null 走 customTarget 模式 */
|
|
6147
6202
|
const [confirmCustomTarget, setConfirmCustomTarget] = (0, react.useState)(null);
|
|
6203
|
+
/** 自定义安装入口渠道(三张卡片之一):随确认弹窗记录,提交时上报服务端,
|
|
6204
|
+
* 报错/日志据此精准溯源「从哪个入口发起」(npm 全局安装固定为 'npm') */
|
|
6205
|
+
const [confirmCustomChannel, setConfirmCustomChannel] = (0, react.useState)(null);
|
|
6148
6206
|
/** 全局 npm 安装确认弹窗(官方 `npm install -g <pkgs>`):记录原始命令 + 解析出的包列表,
|
|
6149
6207
|
* 走与应用商店同一套确认/进度/结果弹窗(plugin 传 null,InstallModal 走 globalNpm 模式) */
|
|
6150
6208
|
const [confirmGlobalNpm, setConfirmGlobalNpm] = (0, react.useState)(null);
|
|
@@ -6297,6 +6355,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6297
6355
|
if (e.key === "Escape") {
|
|
6298
6356
|
setConfirmPlugin(null);
|
|
6299
6357
|
setConfirmCustomTarget(null);
|
|
6358
|
+
setConfirmCustomChannel(null);
|
|
6300
6359
|
setConfirmGlobalNpm(null);
|
|
6301
6360
|
setUninstallPlugin(null);
|
|
6302
6361
|
setUninstallItem(null);
|
|
@@ -6465,7 +6524,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6465
6524
|
setUninstallDone(false);
|
|
6466
6525
|
queue.clearModalTask();
|
|
6467
6526
|
setUninstallPlugin(p);
|
|
6468
|
-
}
|
|
6527
|
+
},
|
|
6528
|
+
hasProxy: (hubSettings.proxy ?? "").trim() !== "",
|
|
6529
|
+
onOpenDiagnostics: openDiagnostics
|
|
6469
6530
|
}) : view === "installed" ? (0, react.createElement)(InstalledView, {
|
|
6470
6531
|
items: catalog.installedItems,
|
|
6471
6532
|
langKey,
|
|
@@ -6504,6 +6565,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6504
6565
|
queue.clearModalTask();
|
|
6505
6566
|
if (opts?.globalNpm && opts.globalNpm.length > 0) {
|
|
6506
6567
|
setConfirmCustomTarget(null);
|
|
6568
|
+
setConfirmCustomChannel(null);
|
|
6507
6569
|
setConfirmIsUpdate(false);
|
|
6508
6570
|
setConfirmGlobalNpm({
|
|
6509
6571
|
raw,
|
|
@@ -6512,6 +6574,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6512
6574
|
return;
|
|
6513
6575
|
}
|
|
6514
6576
|
setConfirmGlobalNpm(null);
|
|
6577
|
+
setConfirmCustomChannel(opts.installChannel);
|
|
6515
6578
|
setConfirmIsUpdate(customTargetInstalled(target));
|
|
6516
6579
|
setConfirmCustomTarget(target);
|
|
6517
6580
|
}
|
|
@@ -6531,7 +6594,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6531
6594
|
openSection: settingsSection,
|
|
6532
6595
|
onConsumedOpenSection: () => setSettingsSection(null)
|
|
6533
6596
|
}), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
|
|
6534
|
-
info: catalog.hubUpdateInfo ?? { version: "1.3.
|
|
6597
|
+
info: catalog.hubUpdateInfo ?? { version: "1.3.9" },
|
|
6535
6598
|
lang,
|
|
6536
6599
|
t,
|
|
6537
6600
|
hasUpdate: catalog.hubHasUpdate,
|
|
@@ -6640,6 +6703,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6640
6703
|
onClose: () => {
|
|
6641
6704
|
setInstallDone(false);
|
|
6642
6705
|
setConfirmCustomTarget(null);
|
|
6706
|
+
setConfirmCustomChannel(null);
|
|
6643
6707
|
},
|
|
6644
6708
|
onCopy: () => {
|
|
6645
6709
|
doCopy(`pnpm add ${confirmCustomTarget}`);
|
|
@@ -6648,7 +6712,10 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6648
6712
|
kind: "copied"
|
|
6649
6713
|
});
|
|
6650
6714
|
},
|
|
6651
|
-
onInstall: () => void queue.installCustom(confirmCustomTarget,
|
|
6715
|
+
onInstall: () => void queue.installCustom(confirmCustomTarget, {
|
|
6716
|
+
update: confirmIsUpdate,
|
|
6717
|
+
channel: confirmCustomChannel ?? "npm"
|
|
6718
|
+
}),
|
|
6652
6719
|
onRestart: () => setShowRestartConfirm(true)
|
|
6653
6720
|
}), confirmGlobalNpm && (0, react.createElement)(InstallModal, {
|
|
6654
6721
|
plugin: null,
|
|
@@ -6665,6 +6732,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6665
6732
|
onClose: () => {
|
|
6666
6733
|
setInstallDone(false);
|
|
6667
6734
|
setConfirmGlobalNpm(null);
|
|
6735
|
+
setConfirmCustomChannel(null);
|
|
6668
6736
|
},
|
|
6669
6737
|
onCopy: () => {
|
|
6670
6738
|
doCopy(`npm install -g ${confirmGlobalNpm.pkgs.join(" ")}`);
|
|
@@ -6673,7 +6741,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6673
6741
|
kind: "copied"
|
|
6674
6742
|
});
|
|
6675
6743
|
},
|
|
6676
|
-
onInstall: () => void queue.installGlobalNpm(confirmGlobalNpm.pkgs),
|
|
6744
|
+
onInstall: () => void queue.installGlobalNpm(confirmGlobalNpm.pkgs, { channel: "npm" }),
|
|
6677
6745
|
onRestart: () => setShowRestartConfirm(true)
|
|
6678
6746
|
}), (uninstallPlugin || uninstallItem) && (0, react.createElement)(UninstallModal, {
|
|
6679
6747
|
plugin: uninstallPlugin ?? pluginOfItem(uninstallItem),
|