dsh-plugin 2.3.1 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/client/client.js CHANGED
@@ -361,7 +361,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
361
361
  failKind_pluginMissingDep: "插件依赖未发布",
362
362
  failReason_pluginMissingDep: "插件声明依赖的包在官方 npm 源上不存在(已删除或从未发布)。",
363
363
  failKind_registryVersionStale: "该版本在所用源上不存在",
364
- failReason_registryVersionStale: "实际安装用的源还没同步到这个版本,或版本号写错。",
364
+ failReason_registryVersionStale: "实际安装用的源还没同步到这个版本。可稍后重试,或到「设置 → npm 镜像源」换成官方源;也可先安装上一个可用版本。",
365
365
  failKind_registryAuth: "npm 源拒绝了访问",
366
366
  failReason_registryAuth: "registry 返回 401/403:这个源需要登录凭据,或当前网络不被允许。",
367
367
  failKind_profileExclusive: "profile 由桌面应用独占管理",
@@ -458,7 +458,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
458
458
  hubPendingDesc: "最新版已发布,但发布尚未满 24 小时:此时更新会被 pnpm 静默回退到旧版本,因此暂不提示。稍后这里会自动出现更新入口。",
459
459
  followUs: "关注我们",
460
460
  aboutTitle: "关注我们",
461
- aboutDesc: "了解 DSH Plugin Hub 是做什么的,加入用户反馈群随时交流。",
461
+ aboutDesc: "了解 DSH Plugin Hub 是做什么的,访问主站浏览插件,或到 GitHub 提交 Issue。",
462
462
  aboutEmpty: "内容暂未发布,敬请期待。",
463
463
  aboutUpdated: "更新于",
464
464
  empty: "该分类暂无插件",
@@ -812,7 +812,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
812
812
  failKind_pluginMissingDep: "plugin dependency is not published",
813
813
  failReason_pluginMissingDep: "A package the plugin depends on does not exist on the official npm registry.",
814
814
  failKind_registryVersionStale: "this version is not available on the registry in use",
815
- failReason_registryVersionStale: "The registry that actually performs the install has not synced this version yet, or the version is mistyped.",
815
+ failReason_registryVersionStale: "The registry that actually performs the install has not synced this version yet. Retry later, switch to the official registry under Settings → npm mirror, or install a previous version for now.",
816
816
  failKind_registryAuth: "the npm registry rejected access",
817
817
  failReason_registryAuth: "The registry returned 401/403: it needs credentials, or the current network is not allowed.",
818
818
  failKind_profileExclusive: "the profile is managed only by the desktop app",
@@ -909,7 +909,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
909
909
  hubPendingDesc: "The latest version has been released, but it is still within the 24-hour window where pnpm silently falls back to the older version, so the update is not offered yet. The update entry will appear here shortly.",
910
910
  followUs: "Follow us",
911
911
  aboutTitle: "Follow us",
912
- aboutDesc: "Learn what DSH Plugin Hub does and join our user feedback group.",
912
+ aboutDesc: "Learn what DSH Plugin Hub does — browse plugins on the website, or open an Issue on GitHub.",
913
913
  aboutEmpty: "Content not published yet — stay tuned.",
914
914
  aboutUpdated: "Updated",
915
915
  empty: "No plugins in this category yet",
@@ -932,42 +932,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
932
932
  css: css$11
933
933
  });
934
934
  var Header_module_css_default = {
935
+ "adBadge": "qikqja_adBadge",
936
+ "adText": "qikqja_adText",
937
+ "adArrow": "qikqja_adArrow",
938
+ "root": "qikqja_root",
939
+ "segBtnActive": "qikqja_segBtnActive",
940
+ "header": "qikqja_header",
941
+ "versionBtn": "qikqja_versionBtn",
942
+ "hubUpdateBadge": "qikqja_hubUpdateBadge",
935
943
  "langBtn": "qikqja_langBtn",
944
+ "githubIcon": "qikqja_githubIcon",
945
+ "resultCount": "qikqja_resultCount",
946
+ "search": "qikqja_search",
947
+ "controls": "qikqja_controls",
936
948
  "tabs": "qikqja_tabs",
937
- "tabsRow": "qikqja_tabsRow",
949
+ "segGroup": "qikqja_segGroup",
950
+ "segBtn": "qikqja_segBtn",
951
+ "resultSeg": "qikqja_resultSeg",
952
+ "segLabel": "qikqja_segLabel",
953
+ "version": "qikqja_version",
938
954
  "tagline": "qikqja_tagline",
955
+ "searchRow": "qikqja_searchRow",
939
956
  "tabActive": "qikqja_tabActive",
940
- "headerRight": "qikqja_headerRight",
957
+ "title": "qikqja_title",
958
+ "tab": "qikqja_tab",
959
+ "tabCount": "qikqja_tabCount",
941
960
  "aboutBtn": "qikqja_aboutBtn",
942
- "segBtn": "qikqja_segBtn",
943
- "versionBtn": "qikqja_versionBtn",
944
961
  "brandTitle": "qikqja_brandTitle",
945
- "title": "qikqja_title",
946
- "version": "qikqja_version",
947
- "header": "qikqja_header",
948
- "copyIcon": "qikqja_copyIcon",
949
- "segGroup": "qikqja_segGroup",
950
- "resultSeg": "qikqja_resultSeg",
951
- "adArrow": "qikqja_adArrow",
952
- "adText": "qikqja_adText",
962
+ "sortGroup": "qikqja_sortGroup",
953
963
  "adBanner": "qikqja_adBanner",
954
- "tabCount": "qikqja_tabCount",
955
964
  "taglineLink": "qikqja_taglineLink",
956
- "root": "qikqja_root",
957
- "logoIcon": "qikqja_logoIcon",
958
- "hubUpdateBadge": "qikqja_hubUpdateBadge",
959
- "headerTitleRow": "qikqja_headerTitleRow",
960
- "controls": "qikqja_controls",
961
- "segLabel": "qikqja_segLabel",
962
- "resultCount": "qikqja_resultCount",
963
- "segBtnActive": "qikqja_segBtnActive",
964
- "adBadge": "qikqja_adBadge",
965
- "search": "qikqja_search",
966
- "githubIcon": "qikqja_githubIcon",
967
965
  "githubLink": "qikqja_githubLink",
968
- "sortGroup": "qikqja_sortGroup",
969
- "tab": "qikqja_tab",
970
- "searchRow": "qikqja_searchRow"
966
+ "headerRight": "qikqja_headerRight",
967
+ "tabsRow": "qikqja_tabsRow",
968
+ "headerTitleRow": "qikqja_headerTitleRow",
969
+ "logoIcon": "qikqja_logoIcon",
970
+ "copyIcon": "qikqja_copyIcon"
971
971
  };
972
972
  //#endregion
973
973
  //#region \0dsh-css:src/client/styles/Modal.module.css.mjs
@@ -986,147 +986,147 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
986
986
  css: css$10
987
987
  });
988
988
  var Modal_module_css_default = {
989
+ "resultTitle": "BiQ1zG_resultTitle",
990
+ "detailPathBtn": "BiQ1zG_detailPathBtn",
991
+ "noticeHead": "BiQ1zG_noticeHead",
992
+ "detailStatusText": "BiQ1zG_detailStatusText",
993
+ "detailArrow": "BiQ1zG_detailArrow",
994
+ "detailPathActions": "BiQ1zG_detailPathActions",
995
+ "progressHead": "BiQ1zG_progressHead",
996
+ "failCopy": "BiQ1zG_failCopy",
997
+ "noticeTextFail": "BiQ1zG_noticeTextFail",
998
+ "noticeTextOk": "BiQ1zG_noticeTextOk",
999
+ "hubStateLatest": "BiQ1zG_hubStateLatest",
1000
+ "restartNow": "BiQ1zG_restartNow",
1001
+ "confirmPrimary": "BiQ1zG_confirmPrimary",
1002
+ "logModal": "BiQ1zG_logModal",
1003
+ "modalDesc": "BiQ1zG_modalDesc",
1004
+ "noticeRemove": "BiQ1zG_noticeRemove",
1005
+ "detailDim": "BiQ1zG_detailDim",
1006
+ "noticeRowMain": "BiQ1zG_noticeRowMain",
1007
+ "failKind": "BiQ1zG_failKind",
1008
+ "noticeRow": "BiQ1zG_noticeRow",
1009
+ "noticeTime": "BiQ1zG_noticeTime",
1010
+ "failedCopyHint": "BiQ1zG_failedCopyHint",
1011
+ "cliOnlyHint": "BiQ1zG_cliOnlyHint",
1012
+ "modalCmdCopy": "BiQ1zG_modalCmdCopy",
1013
+ "modalCloseIcon": "BiQ1zG_modalCloseIcon",
1014
+ "queueRowDesc": "BiQ1zG_queueRowDesc",
1015
+ "hubStateAvailable": "BiQ1zG_hubStateAvailable",
1016
+ "detailRow": "BiQ1zG_detailRow",
989
1017
  "hubVersionNumber": "BiQ1zG_hubVersionNumber",
990
1018
  "detailPathText": "BiQ1zG_detailPathText",
991
- "queueRowTarget": "BiQ1zG_queueRowTarget",
992
- "modalTitleQueued": "BiQ1zG_modalTitleQueued",
993
- "queueRowHead": "BiQ1zG_queueRowHead",
994
- "noticeMain": "BiQ1zG_noticeMain",
995
- "dangerConfirm": "BiQ1zG_dangerConfirm",
996
- "logModal": "BiQ1zG_logModal",
997
- "modalIn": "BiQ1zG_modalIn",
998
- "failClear": "BiQ1zG_failClear",
999
- "failReason": "BiQ1zG_failReason",
1000
- "failEmpty": "BiQ1zG_failEmpty",
1001
- "detailMono": "BiQ1zG_detailMono",
1002
1019
  "hubUpdateModal": "BiQ1zG_hubUpdateModal",
1020
+ "progressFillFail": "BiQ1zG_progressFillFail",
1021
+ "noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
1022
+ "detailStatusPending": "BiQ1zG_detailStatusPending",
1023
+ "errorModal": "BiQ1zG_errorModal",
1003
1024
  "failList": "BiQ1zG_failList",
1025
+ "aboutModal": "BiQ1zG_aboutModal",
1026
+ "progress": "BiQ1zG_progress",
1027
+ "failMisjudgeLink": "BiQ1zG_failMisjudgeLink",
1028
+ "failEmpty": "BiQ1zG_failEmpty",
1029
+ "detailGrid": "BiQ1zG_detailGrid",
1030
+ "trustHint": "BiQ1zG_trustHint",
1031
+ "errorCopySoft": "BiQ1zG_errorCopySoft",
1032
+ "modalTitle": "BiQ1zG_modalTitle",
1033
+ "result": "BiQ1zG_result",
1034
+ "modalBody": "BiQ1zG_modalBody",
1035
+ "modalTitleQueued": "BiQ1zG_modalTitleQueued",
1036
+ "modalCmd": "BiQ1zG_modalCmd",
1037
+ "noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
1004
1038
  "modalClose": "BiQ1zG_modalClose",
1039
+ "aboutContent": "BiQ1zG_aboutContent",
1040
+ "modalActions": "BiQ1zG_modalActions",
1041
+ "confirmIconWrap": "BiQ1zG_confirmIconWrap",
1042
+ "aboutMeta": "BiQ1zG_aboutMeta",
1043
+ "failKindInstall": "BiQ1zG_failKindInstall",
1044
+ "modalLabel": "BiQ1zG_modalLabel",
1045
+ "noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
1046
+ "detailPath": "BiQ1zG_detailPath",
1047
+ "detailStars": "BiQ1zG_detailStars",
1048
+ "uninstallConfirm": "BiQ1zG_uninstallConfirm",
1005
1049
  "noticeList": "BiQ1zG_noticeList",
1050
+ "queueRowPct": "BiQ1zG_queueRowPct",
1051
+ "resultDesc": "BiQ1zG_resultDesc",
1052
+ "dangerConfirm": "BiQ1zG_dangerConfirm",
1006
1053
  "queuedHint": "BiQ1zG_queuedHint",
1007
- "uninstallConfirm": "BiQ1zG_uninstallConfirm",
1054
+ "restartLater": "BiQ1zG_restartLater",
1055
+ "noticeIgnore": "BiQ1zG_noticeIgnore",
1056
+ "toastIn": "BiQ1zG_toastIn",
1057
+ "modalHead": "BiQ1zG_modalHead",
1058
+ "hubStateChip": "BiQ1zG_hubStateChip",
1059
+ "failReason": "BiQ1zG_failReason",
1060
+ "progressTrack": "BiQ1zG_progressTrack",
1061
+ "noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
1062
+ "toast": "BiQ1zG_toast",
1063
+ "modalCopy": "BiQ1zG_modalCopy",
1064
+ "progressText": "BiQ1zG_progressText",
1065
+ "failClear": "BiQ1zG_failClear",
1008
1066
  "hubVersionBar": "BiQ1zG_hubVersionBar",
1009
- "failRepo": "BiQ1zG_failRepo",
1010
- "queueRowBody": "BiQ1zG_queueRowBody",
1011
- "failKindInstall": "BiQ1zG_failKindInstall",
1012
- "modal": "BiQ1zG_modal",
1013
- "confirmPrimary": "BiQ1zG_confirmPrimary",
1014
- "noticeRemove": "BiQ1zG_noticeRemove",
1015
- "queueRowPct": "BiQ1zG_queueRowPct",
1016
- "failRepoLabel": "BiQ1zG_failRepoLabel",
1017
- "failCopy": "BiQ1zG_failCopy",
1067
+ "pendingRowStatus": "BiQ1zG_pendingRowStatus",
1068
+ "hubVersionDate": "BiQ1zG_hubVersionDate",
1069
+ "detailLabel": "BiQ1zG_detailLabel",
1070
+ "detailModal": "BiQ1zG_detailModal",
1018
1071
  "hubStatePending": "BiQ1zG_hubStatePending",
1019
- "noticeRowOk": "BiQ1zG_noticeRowOk",
1020
- "detailStatusText": "BiQ1zG_detailStatusText",
1072
+ "confirmIconDanger": "BiQ1zG_confirmIconDanger",
1073
+ "errorTitle": "BiQ1zG_errorTitle",
1021
1074
  "overlay": "BiQ1zG_overlay",
1022
- "queueRow": "BiQ1zG_queueRow",
1023
- "noticeTextOk": "BiQ1zG_noticeTextOk",
1024
- "noticeVersion": "BiQ1zG_noticeVersion",
1075
+ "helpModal": "BiQ1zG_helpModal",
1076
+ "noticeRowOk": "BiQ1zG_noticeRowOk",
1025
1077
  "modalTitleBusy": "BiQ1zG_modalTitleBusy",
1026
- "aboutMeta": "BiQ1zG_aboutMeta",
1027
- "pendingRowActions": "BiQ1zG_pendingRowActions",
1028
- "detailStars": "BiQ1zG_detailStars",
1029
- "modalInstall": "BiQ1zG_modalInstall",
1030
- "noticeRowMain": "BiQ1zG_noticeRowMain",
1031
- "restartLater": "BiQ1zG_restartLater",
1032
- "progressTrack": "BiQ1zG_progressTrack",
1078
+ "modalLink": "BiQ1zG_modalLink",
1079
+ "noticeVersion": "BiQ1zG_noticeVersion",
1080
+ "queueRowTrack": "BiQ1zG_queueRowTrack",
1081
+ "confirmIcon": "BiQ1zG_confirmIcon",
1033
1082
  "errorHint": "BiQ1zG_errorHint",
1034
- "queueSection": "BiQ1zG_queueSection",
1035
- "helpModal": "BiQ1zG_helpModal",
1036
- "stripCancel": "BiQ1zG_stripCancel",
1037
- "restartNowWarning": "BiQ1zG_restartNowWarning",
1038
- "failNetworkTarget": "BiQ1zG_failNetworkTarget",
1039
- "modalActions": "BiQ1zG_modalActions",
1040
1083
  "modalRow": "BiQ1zG_modalRow",
1084
+ "resultRestarting": "BiQ1zG_resultRestarting",
1085
+ "failHead": "BiQ1zG_failHead",
1041
1086
  "failRepoUrl": "BiQ1zG_failRepoUrl",
1042
- "bundleDeselectedHint": "BiQ1zG_bundleDeselectedHint",
1043
- "detailStatusRunning": "BiQ1zG_detailStatusRunning",
1044
1087
  "detailLink": "BiQ1zG_detailLink",
1045
- "queueRowStatus": "BiQ1zG_queueRowStatus",
1046
- "aboutContent": "BiQ1zG_aboutContent",
1047
- "overlayIn": "BiQ1zG_overlayIn",
1048
- "resultDesc": "BiQ1zG_resultDesc",
1049
- "noticeTextFail": "BiQ1zG_noticeTextFail",
1050
- "errorModal": "BiQ1zG_errorModal",
1051
- "aboutModal": "BiQ1zG_aboutModal",
1052
- "failKind": "BiQ1zG_failKind",
1053
- "modalCmdCopy": "BiQ1zG_modalCmdCopy",
1054
- "modalHead": "BiQ1zG_modalHead",
1055
- "hubStateLatest": "BiQ1zG_hubStateLatest",
1056
- "confirmIcon": "BiQ1zG_confirmIcon",
1057
- "hubVersionDate": "BiQ1zG_hubVersionDate",
1058
- "linkIcon": "BiQ1zG_linkIcon",
1059
- "detailPath": "BiQ1zG_detailPath",
1060
- "resultRestarting": "BiQ1zG_resultRestarting",
1061
- "queueRowDesc": "BiQ1zG_queueRowDesc",
1062
- "result": "BiQ1zG_result",
1063
- "modalCmd": "BiQ1zG_modalCmd",
1064
- "resultCheck": "BiQ1zG_resultCheck",
1065
- "progress": "BiQ1zG_progress",
1066
- "hubStateChip": "BiQ1zG_hubStateChip",
1088
+ "detailStatusRunning": "BiQ1zG_detailStatusRunning",
1089
+ "queueSection": "BiQ1zG_queueSection",
1067
1090
  "modalCancel": "BiQ1zG_modalCancel",
1068
- "detailGrid": "BiQ1zG_detailGrid",
1069
- "detailModal": "BiQ1zG_detailModal",
1070
- "detailPathBtn": "BiQ1zG_detailPathBtn",
1071
- "noticeTime": "BiQ1zG_noticeTime",
1072
- "modalLabel": "BiQ1zG_modalLabel",
1073
- "noticeIgnore": "BiQ1zG_noticeIgnore",
1074
- "noticeRow": "BiQ1zG_noticeRow",
1075
- "modalDesc": "BiQ1zG_modalDesc",
1076
- "progressFill": "BiQ1zG_progressFill",
1077
- "hubStateAvailable": "BiQ1zG_hubStateAvailable",
1078
- "failedCopyHint": "BiQ1zG_failedCopyHint",
1079
- "failMisjudgeLink": "BiQ1zG_failMisjudgeLink",
1080
- "modalCmdText": "BiQ1zG_modalCmdText",
1081
- "modalCloseIcon": "BiQ1zG_modalCloseIcon",
1082
- "toastIn": "BiQ1zG_toastIn",
1083
- "detailPathActions": "BiQ1zG_detailPathActions",
1084
- "modalTitle": "BiQ1zG_modalTitle",
1085
- "failRow": "BiQ1zG_failRow",
1091
+ "resultCheck": "BiQ1zG_resultCheck",
1092
+ "overlayIn": "BiQ1zG_overlayIn",
1093
+ "detailMono": "BiQ1zG_detailMono",
1094
+ "queueRowBody": "BiQ1zG_queueRowBody",
1086
1095
  "failKindTitle": "BiQ1zG_failKindTitle",
1087
- "cliOnlyHint": "BiQ1zG_cliOnlyHint",
1088
- "noticeFoot": "BiQ1zG_noticeFoot",
1089
- "progressHead": "BiQ1zG_progressHead",
1090
- "errorCopySoft": "BiQ1zG_errorCopySoft",
1091
- "queueSectionTitle": "BiQ1zG_queueSectionTitle",
1092
- "trustHint": "BiQ1zG_trustHint",
1093
- "progressFillFail": "BiQ1zG_progressFillFail",
1094
- "detailLabel": "BiQ1zG_detailLabel",
1095
- "confirmIconWrap": "BiQ1zG_confirmIconWrap",
1096
- "detailValue": "BiQ1zG_detailValue",
1097
- "detailStatusPending": "BiQ1zG_detailStatusPending",
1098
- "queueRowTrack": "BiQ1zG_queueRowTrack",
1099
- "noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
1100
- "modalValue": "BiQ1zG_modalValue",
1101
- "modalLink": "BiQ1zG_modalLink",
1102
- "errorBox": "BiQ1zG_errorBox",
1103
- "noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
1104
- "modalBody": "BiQ1zG_modalBody",
1105
- "resultTitle": "BiQ1zG_resultTitle",
1106
- "detailArrow": "BiQ1zG_detailArrow",
1107
- "errorTitle": "BiQ1zG_errorTitle",
1108
- "noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
1109
- "failDiagBtn": "BiQ1zG_failDiagBtn",
1110
- "confirmIconDanger": "BiQ1zG_confirmIconDanger",
1111
- "progressText": "BiQ1zG_progressText",
1112
- "modalCopy": "BiQ1zG_modalCopy",
1113
1096
  "failPrepareHint": "BiQ1zG_failPrepareHint",
1097
+ "modalIn": "BiQ1zG_modalIn",
1098
+ "queueRowStatus": "BiQ1zG_queueRowStatus",
1114
1099
  "resultCheckIcon": "BiQ1zG_resultCheckIcon",
1115
- "noticeHead": "BiQ1zG_noticeHead",
1116
- "restartNow": "BiQ1zG_restartNow",
1117
- "toast": "BiQ1zG_toast",
1100
+ "hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
1101
+ "failNetworkTarget": "BiQ1zG_failNetworkTarget",
1102
+ "modalValue": "BiQ1zG_modalValue",
1118
1103
  "toastFail": "BiQ1zG_toastFail",
1119
- "noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
1120
- "noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
1121
- "detailDim": "BiQ1zG_detailDim",
1104
+ "stripCancel": "BiQ1zG_stripCancel",
1105
+ "bundleDeselectedHint": "BiQ1zG_bundleDeselectedHint",
1106
+ "failRepo": "BiQ1zG_failRepo",
1107
+ "failDiagBtn": "BiQ1zG_failDiagBtn",
1108
+ "failRepoLabel": "BiQ1zG_failRepoLabel",
1122
1109
  "failBigIssue": "BiQ1zG_failBigIssue",
1123
- "detailRow": "BiQ1zG_detailRow",
1110
+ "detailValue": "BiQ1zG_detailValue",
1111
+ "restartNowWarning": "BiQ1zG_restartNowWarning",
1112
+ "errorBox": "BiQ1zG_errorBox",
1113
+ "modalInstall": "BiQ1zG_modalInstall",
1124
1114
  "modalWide": "BiQ1zG_modalWide",
1125
- "failKindUninstall": "BiQ1zG_failKindUninstall",
1115
+ "modal": "BiQ1zG_modal",
1116
+ "progressFill": "BiQ1zG_progressFill",
1126
1117
  "detailUpdateHint": "BiQ1zG_detailUpdateHint",
1127
- "pendingRowStatus": "BiQ1zG_pendingRowStatus",
1128
- "hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
1129
- "failHead": "BiQ1zG_failHead"
1118
+ "linkIcon": "BiQ1zG_linkIcon",
1119
+ "noticeMain": "BiQ1zG_noticeMain",
1120
+ "queueSectionTitle": "BiQ1zG_queueSectionTitle",
1121
+ "pendingRowActions": "BiQ1zG_pendingRowActions",
1122
+ "failKindUninstall": "BiQ1zG_failKindUninstall",
1123
+ "queueRowHead": "BiQ1zG_queueRowHead",
1124
+ "noticeFoot": "BiQ1zG_noticeFoot",
1125
+ "queueRowTarget": "BiQ1zG_queueRowTarget",
1126
+ "noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
1127
+ "modalCmdText": "BiQ1zG_modalCmdText",
1128
+ "failRow": "BiQ1zG_failRow",
1129
+ "queueRow": "BiQ1zG_queueRow"
1130
1130
  };
1131
1131
  //#endregion
1132
1132
  //#region src/server/services/install/release-target.ts
@@ -1171,11 +1171,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
1171
1171
  }
1172
1172
  /** 展示用安装命令(复制/弹窗):目录下发的权威命令优先(CLI-only 插件如 dsh-tui
1173
1173
  * 需专属 profile(--profile dsh-tui),无法从 npm 包名推断,必须用官方命令);
1174
- * 常规插件无目录命令时用 npm 包名回退生成。 */
1175
- function installCommandOf(p, withProfile = false) {
1174
+ * 常规插件无目录命令时用 npm 包名回退生成。
1175
+ * version 为已过供应链门禁的版本:带上它,手抄命令与原位安装的执行结果一致,
1176
+ * 不会因 pnpm 门禁静默回退到很旧的版本。 */
1177
+ function installCommandOf(p, withProfile = false, version) {
1176
1178
  const cmd = p.install?.command;
1177
1179
  if (cmd) return cmd;
1178
- return `${`dsh plugin${withProfile ? " --profile web" : ""} add `}${installTargetOf(p)}`;
1180
+ const prefix = `dsh plugin${withProfile ? " --profile web" : ""} add `;
1181
+ const target = installTargetOf(p);
1182
+ return `${prefix}${version === void 0 || version === "" ? target : `${target}@${version}`}`;
1179
1183
  }
1180
1184
  /** 把任务/安装目标归一化为 owner/repo 展示身份。 */
1181
1185
  function repoFromInstallTarget(value) {
@@ -1216,7 +1220,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
1216
1220
  * tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
1217
1221
  * node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
1218
1222
  */
1219
- const PLUGIN_VERSION = "2.3.1";
1223
+ const PLUGIN_VERSION = "2.3.2";
1220
1224
  const CATEGORY_ORDER = [
1221
1225
  "interface",
1222
1226
  "session",
@@ -2137,7 +2141,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
2137
2141
  * registry 真实发布时间下发(同源),据此判断最准。门槛命中要单列成 `pending` 而不是
2138
2142
  * 落回「无更新」——回落会让弹窗在本机版本落后时谎称「已是最新」。
2139
2143
  */
2140
- const hubCurrentVersion = "2.3.1";
2144
+ const hubCurrentVersion = "2.3.2";
2141
2145
  const hubUpdateResult = hubUpdateInfo === null ? {
2142
2146
  state: "none",
2143
2147
  target: null
@@ -3356,7 +3360,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
3356
3360
  desc: p.description,
3357
3361
  version: p.version,
3358
3362
  updatedAt: p.dates?.repoUpdatedAt,
3359
- command: installCommandOf(p, true),
3363
+ command: installCommandOf(p, true, opts?.pinVersion),
3360
3364
  source: "catalog",
3361
3365
  update: opts?.update,
3362
3366
  pinVersion: opts?.pinVersion
@@ -4043,7 +4047,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4043
4047
  * 目录插件与命令行安装(customTarget 模式)共用同一套确认/进度/结果流程。
4044
4048
  */
4045
4049
  function InstallModal(props) {
4046
- const { plugin, customTarget, globalNpm, done, task, t, langPath, restarting, submitting, update, cliOnly, needsRestart, needsReload, bundleDeselected, onClose, onCopy, onInstall, onRestart } = props;
4050
+ const { plugin, customTarget, globalNpm, done, task, t, langPath, restarting, submitting, update, pinVersion, cliOnly, needsRestart, needsReload, bundleDeselected, onClose, onCopy, onInstall, onRestart } = props;
4047
4051
  const busy = submitting || task !== null && (task.status === "pending" || task.status === "running");
4048
4052
  const name = customTarget ?? (globalNpm !== void 0 && globalNpm.length > 0 ? globalNpm.join(" ") : void 0) ?? plugin?.displayName ?? plugin?.slug ?? "";
4049
4053
  const busyTitle = (label) => langPath === "zh/" ? `${name} 插件${label}` : `${label} ${name}`;
@@ -4086,7 +4090,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
4086
4090
  title: t("copyInstallCommand"),
4087
4091
  role: "button",
4088
4092
  tabIndex: 0
4089
- }, (0, react.createElement)("span", { className: Modal_module_css_default.modalCmdText }, globalNpm !== void 0 && globalNpm.length > 0 ? `npm install -g ${globalNpm.join(" ")}` : customTarget ? `pnpm add ${customTarget}` : installCommandOf(plugin)), (0, react.createElement)("span", { className: Modal_module_css_default.modalCmdCopy }, (0, react.createElement)(CopyIcon), t("copyCmdLabel"))), globalNpm !== void 0 && globalNpm.length > 0 ? (0, react.createElement)("div", { className: Modal_module_css_default.cliOnlyHint }, t("globalNpmHint")) : null, cliOnly ? (0, react.createElement)("div", { className: Modal_module_css_default.cliOnlyHint }, t(plugin?.install?.manualInstall === true ? "manualInstallOnlyHint" : "cliOnlyHint")) : null, task && task.status === "pending" ? (0, react.createElement)("div", { className: Modal_module_css_default.queuedHint }, t("queuedHint")) : null, task ? (0, react.createElement)(ProgressView, { task }) : null, task && task.status === "failed" ? (0, react.createElement)("div", { className: Modal_module_css_default.failedCopyHint }, t("failedCopyHint")) : null, (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
4093
+ }, (0, react.createElement)("span", { className: Modal_module_css_default.modalCmdText }, globalNpm !== void 0 && globalNpm.length > 0 ? `npm install -g ${globalNpm.join(" ")}` : customTarget ? `pnpm add ${customTarget}` : installCommandOf(plugin, false, pinVersion)), (0, react.createElement)("span", { className: Modal_module_css_default.modalCmdCopy }, (0, react.createElement)(CopyIcon), t("copyCmdLabel"))), globalNpm !== void 0 && globalNpm.length > 0 ? (0, react.createElement)("div", { className: Modal_module_css_default.cliOnlyHint }, t("globalNpmHint")) : null, cliOnly ? (0, react.createElement)("div", { className: Modal_module_css_default.cliOnlyHint }, t(plugin?.install?.manualInstall === true ? "manualInstallOnlyHint" : "cliOnlyHint")) : null, task && task.status === "pending" ? (0, react.createElement)("div", { className: Modal_module_css_default.queuedHint }, t("queuedHint")) : null, task ? (0, react.createElement)(ProgressView, { task }) : null, task && task.status === "failed" ? (0, react.createElement)("div", { className: Modal_module_css_default.failedCopyHint }, t("failedCopyHint")) : null, (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
4090
4094
  className: Modal_module_css_default.modalCopy,
4091
4095
  disabled: busy,
4092
4096
  onClick: onCopy
@@ -5209,42 +5213,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5209
5213
  css: css$9
5210
5214
  });
5211
5215
  var List_module_css_default = {
5212
- "categoryBadge": "_3XaZHa_categoryBadge",
5213
- "cardTitleRow": "_3XaZHa_cardTitleRow",
5214
- "topics": "_3XaZHa_topics",
5215
- "actions": "_3XaZHa_actions",
5216
- "moreSentinel": "_3XaZHa_moreSentinel",
5217
- "authorBadge": "_3XaZHa_authorBadge",
5218
- "installBtn": "_3XaZHa_installBtn",
5219
- "state": "_3XaZHa_state",
5220
- "stateDesc": "_3XaZHa_stateDesc",
5216
+ "cardBadgeRow": "_3XaZHa_cardBadgeRow",
5217
+ "fork": "_3XaZHa_fork",
5218
+ "detailBtn": "_3XaZHa_detailBtn",
5221
5219
  "installBtnCopied": "_3XaZHa_installBtnCopied",
5220
+ "diagBtn": "_3XaZHa_diagBtn",
5222
5221
  "footLink": "_3XaZHa_footLink",
5222
+ "verified": "_3XaZHa_verified",
5223
+ "desc": "_3XaZHa_desc",
5223
5224
  "cardTitle": "_3XaZHa_cardTitle",
5224
- "date": "_3XaZHa_date",
5225
- "cardBadgeRow": "_3XaZHa_cardBadgeRow",
5226
5225
  "cardMain": "_3XaZHa_cardMain",
5227
5226
  "versionBadge": "_3XaZHa_versionBadge",
5228
- "retryBtn": "_3XaZHa_retryBtn",
5229
- "stats": "_3XaZHa_stats",
5227
+ "card": "_3XaZHa_card",
5228
+ "body": "_3XaZHa_body",
5229
+ "installBtn": "_3XaZHa_installBtn",
5230
+ "installBtnInstalled": "_3XaZHa_installBtnInstalled",
5231
+ "installBtnUpdate": "_3XaZHa_installBtnUpdate",
5232
+ "uninstallBtn": "_3XaZHa_uninstallBtn",
5233
+ "footer": "_3XaZHa_footer",
5230
5234
  "topic": "_3XaZHa_topic",
5235
+ "categoryBadge": "_3XaZHa_categoryBadge",
5236
+ "topics": "_3XaZHa_topics",
5237
+ "state": "_3XaZHa_state",
5238
+ "cardTitleRow": "_3XaZHa_cardTitleRow",
5239
+ "authorBadge": "_3XaZHa_authorBadge",
5240
+ "stateActions": "_3XaZHa_stateActions",
5231
5241
  "cardSide": "_3XaZHa_cardSide",
5242
+ "date": "_3XaZHa_date",
5232
5243
  "updateBadge": "_3XaZHa_updateBadge",
5233
- "star": "_3XaZHa_star",
5234
- "fork": "_3XaZHa_fork",
5235
- "footer": "_3XaZHa_footer",
5236
- "installBtnInstalled": "_3XaZHa_installBtnInstalled",
5237
- "desc": "_3XaZHa_desc",
5238
- "detailBtn": "_3XaZHa_detailBtn",
5239
- "diagBtn": "_3XaZHa_diagBtn",
5240
- "verified": "_3XaZHa_verified",
5244
+ "stats": "_3XaZHa_stats",
5241
5245
  "stateTitle": "_3XaZHa_stateTitle",
5242
- "card": "_3XaZHa_card",
5243
- "stateActions": "_3XaZHa_stateActions",
5244
- "list": "_3XaZHa_list",
5245
- "uninstallBtn": "_3XaZHa_uninstallBtn",
5246
- "body": "_3XaZHa_body",
5247
- "installBtnUpdate": "_3XaZHa_installBtnUpdate"
5246
+ "stateDesc": "_3XaZHa_stateDesc",
5247
+ "star": "_3XaZHa_star",
5248
+ "retryBtn": "_3XaZHa_retryBtn",
5249
+ "moreSentinel": "_3XaZHa_moreSentinel",
5250
+ "actions": "_3XaZHa_actions",
5251
+ "list": "_3XaZHa_list"
5248
5252
  };
5249
5253
  //#endregion
5250
5254
  //#region src/client/hooks/useIncrementalList.ts
@@ -5465,16 +5469,16 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5465
5469
  css: css$8
5466
5470
  });
5467
5471
  var SectionTabs_module_css_default = {
5472
+ "tabLabel": "_7tvizq_tabLabel",
5473
+ "tab": "_7tvizq_tab",
5474
+ "root": "_7tvizq_root",
5475
+ "tabIcon": "_7tvizq_tabIcon",
5468
5476
  "tabCount": "_7tvizq_tabCount",
5469
- "noticeCount": "_7tvizq_noticeCount",
5470
5477
  "tabActive": "_7tvizq_tabActive",
5471
- "noticeIcon": "_7tvizq_noticeIcon",
5472
5478
  "noticeBtn": "_7tvizq_noticeBtn",
5473
- "tab": "_7tvizq_tab",
5474
- "tabLabel": "_7tvizq_tabLabel",
5475
- "tabIcon": "_7tvizq_tabIcon",
5476
- "tabCountActive": "_7tvizq_tabCountActive",
5477
- "root": "_7tvizq_root"
5479
+ "noticeIcon": "_7tvizq_noticeIcon",
5480
+ "noticeCount": "_7tvizq_noticeCount",
5481
+ "tabCountActive": "_7tvizq_tabCountActive"
5478
5482
  };
5479
5483
  //#endregion
5480
5484
  //#region src/client/components/layout/SectionTabs.tsx
@@ -5550,46 +5554,46 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5550
5554
  css: css$7
5551
5555
  });
5552
5556
  var InstalledView_module_css_default = {
5553
- "segBtnActive": "_1nXeGW_segBtnActive",
5554
- "rowTitleLine": "_1nXeGW_rowTitleLine",
5555
- "rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
5556
- "rowDetail": "_1nXeGW_rowDetail",
5557
- "rowUpdate": "_1nXeGW_rowUpdate",
5558
- "statusDot": "_1nXeGW_statusDot",
5557
+ "exampleBadge": "_1nXeGW_exampleBadge",
5559
5558
  "statusInactive": "_1nXeGW_statusInactive",
5559
+ "rowDesc": "_1nXeGW_rowDesc",
5560
+ "emptyDesc": "_1nXeGW_emptyDesc",
5561
+ "statusDot": "_1nXeGW_statusDot",
5562
+ "segRow": "_1nXeGW_segRow",
5563
+ "rowMain": "_1nXeGW_rowMain",
5564
+ "emptyTitle": "_1nXeGW_emptyTitle",
5565
+ "rowStats": "_1nXeGW_rowStats",
5560
5566
  "list": "_1nXeGW_list",
5561
- "rowActionLine": "_1nXeGW_rowActionLine",
5562
- "rowActions": "_1nXeGW_rowActions",
5563
- "updateBadge": "_1nXeGW_updateBadge",
5567
+ "rowFork": "_1nXeGW_rowFork",
5568
+ "rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
5569
+ "rowCategory": "_1nXeGW_rowCategory",
5564
5570
  "toolbar": "_1nXeGW_toolbar",
5565
- "rowSourceTag": "_1nXeGW_rowSourceTag",
5566
- "rowTitle": "_1nXeGW_rowTitle",
5567
- "searchWrap": "_1nXeGW_searchWrap",
5571
+ "searchInput": "_1nXeGW_searchInput",
5572
+ "row": "_1nXeGW_row",
5568
5573
  "rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
5569
- "rowRepo": "_1nXeGW_rowRepo",
5570
- "rowUninstall": "_1nXeGW_rowUninstall",
5571
- "versionBadge": "_1nXeGW_versionBadge",
5572
- "emptyDesc": "_1nXeGW_emptyDesc",
5574
+ "segBtnActive": "_1nXeGW_segBtnActive",
5575
+ "updateBadge": "_1nXeGW_updateBadge",
5576
+ "rowActions": "_1nXeGW_rowActions",
5573
5577
  "rowRestart": "_1nXeGW_rowRestart",
5578
+ "statusPending": "_1nXeGW_statusPending",
5579
+ "searchWrap": "_1nXeGW_searchWrap",
5580
+ "root": "_1nXeGW_root",
5581
+ "rowTitleLine": "_1nXeGW_rowTitleLine",
5582
+ "rowTitle": "_1nXeGW_rowTitle",
5583
+ "rowActionLine": "_1nXeGW_rowActionLine",
5574
5584
  "segBtn": "_1nXeGW_segBtn",
5575
- "searchInput": "_1nXeGW_searchInput",
5576
- "exampleBadge": "_1nXeGW_exampleBadge",
5577
- "rowCategory": "_1nXeGW_rowCategory",
5578
- "exampleRow": "_1nXeGW_exampleRow",
5579
- "rowMeta": "_1nXeGW_rowMeta",
5580
- "rowDesc": "_1nXeGW_rowDesc",
5581
- "segLabel": "_1nXeGW_segLabel",
5585
+ "rowRepo": "_1nXeGW_rowRepo",
5586
+ "rowSourceTag": "_1nXeGW_rowSourceTag",
5587
+ "versionBadge": "_1nXeGW_versionBadge",
5582
5588
  "empty": "_1nXeGW_empty",
5583
- "rowMain": "_1nXeGW_rowMain",
5584
- "statusPending": "_1nXeGW_statusPending",
5585
- "segRow": "_1nXeGW_segRow",
5589
+ "rowMeta": "_1nXeGW_rowMeta",
5586
5590
  "rowStar": "_1nXeGW_rowStar",
5591
+ "segLabel": "_1nXeGW_segLabel",
5587
5592
  "segGroup": "_1nXeGW_segGroup",
5588
- "rowStats": "_1nXeGW_rowStats",
5589
- "rowFork": "_1nXeGW_rowFork",
5590
- "row": "_1nXeGW_row",
5591
- "root": "_1nXeGW_root",
5592
- "emptyTitle": "_1nXeGW_emptyTitle"
5593
+ "rowDetail": "_1nXeGW_rowDetail",
5594
+ "rowUpdate": "_1nXeGW_rowUpdate",
5595
+ "rowUninstall": "_1nXeGW_rowUninstall",
5596
+ "exampleRow": "_1nXeGW_exampleRow"
5593
5597
  };
5594
5598
  //#endregion
5595
5599
  //#region src/client/components/views/InstalledView.tsx
@@ -5858,27 +5862,27 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
5858
5862
  css: css$6
5859
5863
  });
5860
5864
  var CustomInstallView_module_css_default = {
5861
- "helpBody": "zISxCG_helpBody",
5862
- "installExample": "zISxCG_installExample",
5863
- "installCardDisabled": "zISxCG_installCardDisabled",
5864
- "installCards": "zISxCG_installCards",
5865
- "installRow": "zISxCG_installRow",
5866
5865
  "installHelpBtn": "zISxCG_installHelpBtn",
5867
- "desc": "zISxCG_desc",
5868
- "helpCmd": "zISxCG_helpCmd",
5869
- "installError": "zISxCG_installError",
5870
- "helpNote": "zISxCG_helpNote",
5866
+ "installBtn": "zISxCG_installBtn",
5867
+ "installCards": "zISxCG_installCards",
5871
5868
  "installInputError": "zISxCG_installInputError",
5872
- "helpLine": "zISxCG_helpLine",
5873
- "installCardHead": "zISxCG_installCardHead",
5874
- "channelOffText": "zISxCG_channelOffText",
5875
- "channelOff": "zISxCG_channelOff",
5876
- "channelOffBtn": "zISxCG_channelOffBtn",
5877
5869
  "installCard": "zISxCG_installCard",
5878
- "root": "zISxCG_root",
5879
5870
  "installInput": "zISxCG_installInput",
5871
+ "installError": "zISxCG_installError",
5872
+ "desc": "zISxCG_desc",
5873
+ "channelOff": "zISxCG_channelOff",
5874
+ "channelOffText": "zISxCG_channelOffText",
5875
+ "root": "zISxCG_root",
5876
+ "installCardHead": "zISxCG_installCardHead",
5880
5877
  "installLabel": "zISxCG_installLabel",
5881
- "installBtn": "zISxCG_installBtn"
5878
+ "helpBody": "zISxCG_helpBody",
5879
+ "helpLine": "zISxCG_helpLine",
5880
+ "channelOffBtn": "zISxCG_channelOffBtn",
5881
+ "helpNote": "zISxCG_helpNote",
5882
+ "installRow": "zISxCG_installRow",
5883
+ "installCardDisabled": "zISxCG_installCardDisabled",
5884
+ "helpCmd": "zISxCG_helpCmd",
5885
+ "installExample": "zISxCG_installExample"
5882
5886
  };
5883
5887
  //#endregion
5884
5888
  //#region src/client/components/views/CustomInstallView.tsx
@@ -6034,30 +6038,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
6034
6038
  css: css$5
6035
6039
  });
6036
6040
  var SettingsView_module_css_default = {
6037
- "controlDropdown": "_506LLG_controlDropdown",
6038
- "settingDesc": "_506LLG_settingDesc",
6039
- "proxyHintFail": "_506LLG_proxyHintFail",
6040
- "navItem": "_506LLG_navItem",
6041
6041
  "pageTitle": "_506LLG_pageTitle",
6042
- "settingLabel": "_506LLG_settingLabel",
6043
- "settingTitle": "_506LLG_settingTitle",
6044
- "root": "_506LLG_root",
6045
- "settingControl": "_506LLG_settingControl",
6046
- "pageHeader": "_506LLG_pageHeader",
6047
- "pageDesc": "_506LLG_pageDesc",
6048
- "settingRow": "_506LLG_settingRow",
6049
- "navIcon": "_506LLG_navIcon",
6050
- "card": "_506LLG_card",
6051
6042
  "proxyHint": "_506LLG_proxyHint",
6043
+ "settingDesc": "_506LLG_settingDesc",
6044
+ "card": "_506LLG_card",
6045
+ "pageHeader": "_506LLG_pageHeader",
6052
6046
  "settingControlStack": "_506LLG_settingControlStack",
6053
- "settingRowStack": "_506LLG_settingRowStack",
6054
6047
  "textInput": "_506LLG_textInput",
6055
- "sidebar": "_506LLG_sidebar",
6056
- "content": "_506LLG_content",
6057
6048
  "proxyControl": "_506LLG_proxyControl",
6049
+ "sidebar": "_506LLG_sidebar",
6050
+ "proxyHintFail": "_506LLG_proxyHintFail",
6051
+ "settingRowStack": "_506LLG_settingRowStack",
6052
+ "settingTitle": "_506LLG_settingTitle",
6053
+ "settingControl": "_506LLG_settingControl",
6058
6054
  "resetBtn": "_506LLG_resetBtn",
6059
- "proxyHintOk": "_506LLG_proxyHintOk",
6060
- "navItemActive": "_506LLG_navItemActive"
6055
+ "content": "_506LLG_content",
6056
+ "controlDropdown": "_506LLG_controlDropdown",
6057
+ "navIcon": "_506LLG_navIcon",
6058
+ "navItemActive": "_506LLG_navItemActive",
6059
+ "navItem": "_506LLG_navItem",
6060
+ "pageDesc": "_506LLG_pageDesc",
6061
+ "settingRow": "_506LLG_settingRow",
6062
+ "root": "_506LLG_root",
6063
+ "settingLabel": "_506LLG_settingLabel",
6064
+ "proxyHintOk": "_506LLG_proxyHintOk"
6061
6065
  };
6062
6066
  //#endregion
6063
6067
  //#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
@@ -6076,18 +6080,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
6076
6080
  css: css$4
6077
6081
  });
6078
6082
  var Dropdown_module_css_default = {
6079
- "dropdownCountActive": "B_Gxsq_dropdownCountActive",
6083
+ "dropdownFill": "B_Gxsq_dropdownFill",
6080
6084
  "dropdownArrow": "B_Gxsq_dropdownArrow",
6085
+ "dropdownPanel": "B_Gxsq_dropdownPanel",
6086
+ "dropdownItemActive": "B_Gxsq_dropdownItemActive",
6087
+ "dropdownLabel": "B_Gxsq_dropdownLabel",
6088
+ "dropdown": "B_Gxsq_dropdown",
6081
6089
  "dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
6082
- "dropdownItem": "B_Gxsq_dropdownItem",
6083
6090
  "dropdownCount": "B_Gxsq_dropdownCount",
6084
- "dropdownFill": "B_Gxsq_dropdownFill",
6085
- "dropdownBtn": "B_Gxsq_dropdownBtn",
6086
- "dropdown": "B_Gxsq_dropdown",
6091
+ "dropdownCountActive": "B_Gxsq_dropdownCountActive",
6092
+ "dropdownItem": "B_Gxsq_dropdownItem",
6087
6093
  "dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
6088
- "dropdownPanel": "B_Gxsq_dropdownPanel",
6089
- "dropdownItemActive": "B_Gxsq_dropdownItemActive",
6090
- "dropdownLabel": "B_Gxsq_dropdownLabel"
6094
+ "dropdownBtn": "B_Gxsq_dropdownBtn"
6091
6095
  };
6092
6096
  //#endregion
6093
6097
  //#region \0dsh-css:src/client/styles/Toggle.module.css.mjs
@@ -6205,29 +6209,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
6205
6209
  css: css$2
6206
6210
  });
6207
6211
  var DiagnosticsView_module_css_default = {
6208
- "summaryOk": "k9eRya_summaryOk",
6209
- "diagPulse": "k9eRya_diagPulse",
6212
+ "badgeIdle": "k9eRya_badgeIdle",
6213
+ "head": "k9eRya_head",
6214
+ "summary": "k9eRya_summary",
6215
+ "runBtn": "k9eRya_runBtn",
6216
+ "envRow": "k9eRya_envRow",
6217
+ "display": "k9eRya_display",
6218
+ "envDesc": "k9eRya_envDesc",
6219
+ "summaryRunning": "k9eRya_summaryRunning",
6210
6220
  "meta": "k9eRya_meta",
6211
6221
  "badge": "k9eRya_badge",
6212
- "envCopyBtn": "k9eRya_envCopyBtn",
6213
- "panel": "k9eRya_panel",
6214
- "display": "k9eRya_display",
6215
6222
  "row": "k9eRya_row",
6216
- "badgeRunning": "k9eRya_badgeRunning",
6217
- "runBtn": "k9eRya_runBtn",
6218
6223
  "name": "k9eRya_name",
6219
- "summaryRunning": "k9eRya_summaryRunning",
6220
- "head": "k9eRya_head",
6221
- "summary": "k9eRya_summary",
6224
+ "badgeFail": "k9eRya_badgeFail",
6225
+ "diagPulse": "k9eRya_diagPulse",
6226
+ "summaryOk": "k9eRya_summaryOk",
6222
6227
  "summaryFail": "k9eRya_summaryFail",
6228
+ "envCopyBtn": "k9eRya_envCopyBtn",
6229
+ "headHint": "k9eRya_headHint",
6230
+ "envLabel": "k9eRya_envLabel",
6231
+ "panel": "k9eRya_panel",
6223
6232
  "envTitle": "k9eRya_envTitle",
6224
6233
  "badgeOk": "k9eRya_badgeOk",
6225
- "badgeFail": "k9eRya_badgeFail",
6226
- "headHint": "k9eRya_headHint",
6227
- "badgeIdle": "k9eRya_badgeIdle",
6228
- "envDesc": "k9eRya_envDesc",
6229
- "envRow": "k9eRya_envRow",
6230
- "envLabel": "k9eRya_envLabel"
6234
+ "badgeRunning": "k9eRya_badgeRunning"
6231
6235
  };
6232
6236
  //#endregion
6233
6237
  //#region src/client/components/views/DiagnosticsView.tsx
@@ -6402,57 +6406,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
6402
6406
  css: css$1
6403
6407
  });
6404
6408
  var LogsView_module_css_default = {
6405
- "btn": "_3j77BW_btn",
6406
- "message": "_3j77BW_message",
6407
- "more": "_3j77BW_more",
6408
- "filterBar": "_3j77BW_filterBar",
6409
- "head": "_3j77BW_head",
6410
- "time": "_3j77BW_time",
6411
- "previewRow": "_3j77BW_previewRow",
6412
- "headHint": "_3j77BW_headHint",
6413
- "badge": "_3j77BW_badge",
6414
- "badgeDebug": "_3j77BW_badgeDebug",
6415
- "event": "_3j77BW_event",
6416
- "linkBtn": "_3j77BW_linkBtn",
6417
- "search": "_3j77BW_search",
6418
- "logList": "_3j77BW_logList",
6409
+ "filterChipActive": "_3j77BW_filterChipActive",
6410
+ "headActions": "_3j77BW_headActions",
6419
6411
  "pathLabel": "_3j77BW_pathLabel",
6420
- "pathDialogHint": "_3j77BW_pathDialogHint",
6421
- "badgeWarn": "_3j77BW_badgeWarn",
6422
- "catUpdate": "_3j77BW_catUpdate",
6423
- "catSystem": "_3j77BW_catSystem",
6424
6412
  "actions": "_3j77BW_actions",
6425
- "filterChipActive": "_3j77BW_filterChipActive",
6426
- "footFail": "_3j77BW_footFail",
6427
- "footCount": "_3j77BW_footCount",
6428
- "catSettings": "_3j77BW_catSettings",
6429
- "catDiagnostics": "_3j77BW_catDiagnostics",
6430
- "pathRow": "_3j77BW_pathRow",
6431
- "entry": "_3j77BW_entry",
6432
- "list": "_3j77BW_list",
6433
- "pathText": "_3j77BW_pathText",
6434
- "pathDialog": "_3j77BW_pathDialog",
6435
6413
  "pathDraft": "_3j77BW_pathDraft",
6414
+ "btn": "_3j77BW_btn",
6415
+ "list": "_3j77BW_list",
6416
+ "entry": "_3j77BW_entry",
6417
+ "footFail": "_3j77BW_footFail",
6418
+ "filterChip": "_3j77BW_filterChip",
6419
+ "more": "_3j77BW_more",
6436
6420
  "moreEnd": "_3j77BW_moreEnd",
6437
- "pathDialogFoot": "_3j77BW_pathDialogFoot",
6438
- "headActions": "_3j77BW_headActions",
6439
- "footPath": "_3j77BW_footPath",
6421
+ "pathDialogReset": "_3j77BW_pathDialogReset",
6422
+ "footCount": "_3j77BW_footCount",
6423
+ "badgeSuccess": "_3j77BW_badgeSuccess",
6424
+ "pathDialogDesc": "_3j77BW_pathDialogDesc",
6440
6425
  "badgeError": "_3j77BW_badgeError",
6426
+ "badgeWarn": "_3j77BW_badgeWarn",
6427
+ "head": "_3j77BW_head",
6428
+ "logList": "_3j77BW_logList",
6429
+ "badgeDebug": "_3j77BW_badgeDebug",
6430
+ "catSettings": "_3j77BW_catSettings",
6431
+ "badge": "_3j77BW_badge",
6441
6432
  "empty": "_3j77BW_empty",
6433
+ "headHint": "_3j77BW_headHint",
6434
+ "pathRow": "_3j77BW_pathRow",
6442
6435
  "pathDialogRow": "_3j77BW_pathDialogRow",
6443
- "pathDialogReset": "_3j77BW_pathDialogReset",
6444
- "pathDialogDesc": "_3j77BW_pathDialogDesc",
6445
- "foot": "_3j77BW_foot",
6446
- "panel": "_3j77BW_panel",
6436
+ "time": "_3j77BW_time",
6437
+ "event": "_3j77BW_event",
6438
+ "footPath": "_3j77BW_footPath",
6439
+ "catDiagnostics": "_3j77BW_catDiagnostics",
6447
6440
  "badgeInfo": "_3j77BW_badgeInfo",
6441
+ "panel": "_3j77BW_panel",
6448
6442
  "catInstall": "_3j77BW_catInstall",
6443
+ "catSystem": "_3j77BW_catSystem",
6444
+ "catUpdate": "_3j77BW_catUpdate",
6445
+ "linkBtn": "_3j77BW_linkBtn",
6446
+ "pathDialogFoot": "_3j77BW_pathDialogFoot",
6447
+ "message": "_3j77BW_message",
6448
+ "filterBar": "_3j77BW_filterBar",
6449
6449
  "footActions": "_3j77BW_footActions",
6450
+ "search": "_3j77BW_search",
6451
+ "previewRow": "_3j77BW_previewRow",
6452
+ "catBadge": "_3j77BW_catBadge",
6453
+ "clearBtn": "_3j77BW_clearBtn",
6450
6454
  "catUninstall": "_3j77BW_catUninstall",
6455
+ "foot": "_3j77BW_foot",
6451
6456
  "searchInput": "_3j77BW_searchInput",
6452
- "badgeSuccess": "_3j77BW_badgeSuccess",
6453
- "filterChip": "_3j77BW_filterChip",
6454
- "clearBtn": "_3j77BW_clearBtn",
6455
- "catBadge": "_3j77BW_catBadge"
6457
+ "pathText": "_3j77BW_pathText",
6458
+ "pathDialog": "_3j77BW_pathDialog",
6459
+ "pathDialogHint": "_3j77BW_pathDialogHint"
6456
6460
  };
6457
6461
  //#endregion
6458
6462
  //#region src/client/components/modals/LogsModal.tsx
@@ -7291,9 +7295,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7291
7295
  const [confirmPlugin, setConfirmPlugin] = (0, react.useState)(null);
7292
7296
  /** 弹窗动作是否为「更新」:已安装插件点「更新」→ 走同一条 add 命令原位覆盖重装,文案区分安装/更新 */
7293
7297
  const [confirmIsUpdate, setConfirmIsUpdate] = (0, react.useState)(false);
7294
- /** Hub 自我更新指定的精确版本:连续发版时提示的是「已过供应链门禁」的旧一版,
7295
- * 安装必须钉在该版本上,否则又会被 @latest 带回门禁内的最新版。 */
7298
+ /** 安装要钉住的精确版本:Hub 连续发版时提示的旧一版、以及新安装的「已过供应链门禁」版本,
7299
+ * 都必须钉住,否则 @latest 会被 pnpm 门禁带回门禁内的版本或静默回退到很旧的版本。 */
7296
7300
  const [confirmPinVersion, setConfirmPinVersion] = (0, react.useState)(null);
7301
+ /** 门禁版本查询的在途序号:只采用最后一次弹窗的查询结果,避免切换插件后旧结果覆盖 */
7302
+ const installPinSeq = (0, react.useRef)(0);
7297
7303
  /** 命令行安装确认弹窗:记录待安装的裸目标(npm 包名)——
7298
7304
  * 与应用商店同一套确认/进度/结果弹窗,提供时 plugin 传 null 走 customTarget 模式 */
7299
7305
  const [confirmCustomTarget, setConfirmCustomTarget] = (0, react.useState)(null);
@@ -7543,9 +7549,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7543
7549
  return catalog.installedItems.some((i) => i.name.toLowerCase() === pkg) || Object.keys(catalog.installed).some((k) => k.toLowerCase() === pkg);
7544
7550
  };
7545
7551
  /** 弹窗动作一:复制安装命令到剪贴板,引导去终端粘贴执行(npm 安装显示包名命令)。 */
7546
- const copyCommand = async (p) => {
7552
+ const copyCommand = async (p, version) => {
7547
7553
  const repo = p.source?.repo ?? "";
7548
- if (await doCopy(installCommandOf(p))) {
7554
+ if (await doCopy(installCommandOf(p, false, version))) {
7549
7555
  setCopied(repo);
7550
7556
  setToast({
7551
7557
  id: Date.now(),
@@ -7555,6 +7561,19 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7555
7561
  }
7556
7562
  setConfirmPlugin(null);
7557
7563
  };
7564
+ /** 新安装先查「已过 pnpm 供应链门禁」的版本:命令条与执行都钉住它,
7565
+ * 否则 pnpm 会把发布未满 24h 的最新版静默回退成很旧的版本。查不到则不钉,由服务端兜底解析。 */
7566
+ const resolveInstallPin = (p) => {
7567
+ if (p.install?.command !== void 0 && p.install.command !== "") return;
7568
+ const pkg = installTargetOf(p);
7569
+ if (!pkg) return;
7570
+ const seq = ++installPinSeq.current;
7571
+ fetchNpmReleaseAge([pkg]).then((res) => {
7572
+ if (installPinSeq.current !== seq) return;
7573
+ const version = res?.[pkg]?.installable?.version;
7574
+ if (version !== void 0 && version !== "") setConfirmPinVersion(version);
7575
+ });
7576
+ };
7558
7577
  /** 卸载弹窗动作:复制卸载命令,万一直接卸载失败可去终端手动执行。
7559
7578
  * 自定义安装(无目录数据)按已安装项包名直卸,同样给复制通道。 */
7560
7579
  const copyUninstallCommand = async () => {
@@ -7647,11 +7666,14 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7647
7666
  copied,
7648
7667
  resultText: catalog.plugins === null || catalog.failed ? null : catalog.category === "all" && count === total ? t("pluginsTotal", { n: count }) : t("filterResults", { n: count }),
7649
7668
  onInstall: (p, opts) => {
7669
+ const update = opts?.update ?? false;
7650
7670
  setInstallDone(false);
7651
- setConfirmIsUpdate(opts?.update ?? false);
7671
+ setConfirmIsUpdate(update);
7652
7672
  setConfirmPinVersion(null);
7673
+ ++installPinSeq.current;
7653
7674
  queue.clearModalTask();
7654
7675
  setConfirmPlugin(p);
7676
+ if (!update) resolveInstallPin(p);
7655
7677
  },
7656
7678
  onUninstall: (p) => {
7657
7679
  setUninstallDone(false);
@@ -7676,6 +7698,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7676
7698
  setInstallDone(false);
7677
7699
  setConfirmIsUpdate(true);
7678
7700
  setConfirmPinVersion(null);
7701
+ ++installPinSeq.current;
7679
7702
  queue.clearModalTask();
7680
7703
  setConfirmPlugin(item.plugin);
7681
7704
  },
@@ -7726,7 +7749,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7726
7749
  openSection: settingsSection,
7727
7750
  onConsumedOpenSection: () => setSettingsSection(null)
7728
7751
  }), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
7729
- info: catalog.hubUpdateTarget ?? catalog.hubUpdateInfo ?? { version: "2.3.1" },
7752
+ info: catalog.hubUpdateTarget ?? catalog.hubUpdateInfo ?? { version: "2.3.2" },
7730
7753
  state: catalog.hubUpdateState,
7731
7754
  currentVersion: catalog.hubCurrentVersion,
7732
7755
  lang,
@@ -7738,6 +7761,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7738
7761
  setInstallDone(false);
7739
7762
  setConfirmIsUpdate(true);
7740
7763
  setConfirmPinVersion(catalog.hubUpdateTarget?.version ?? null);
7764
+ ++installPinSeq.current;
7741
7765
  queue.clearModalTask();
7742
7766
  setConfirmPlugin(hubEntry);
7743
7767
  }
@@ -7816,6 +7840,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7816
7840
  langPath,
7817
7841
  restarting,
7818
7842
  update: confirmIsUpdate,
7843
+ pinVersion: confirmPinVersion ?? void 0,
7819
7844
  cliOnly: confirmPlugin.install?.webInstallable === false || confirmPlugin.install?.manualInstall === true,
7820
7845
  submitting: queue.submitting,
7821
7846
  needsRestart: installNeedsRestart,
@@ -7827,11 +7852,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
7827
7852
  setInstallBundleDeselected(false);
7828
7853
  if (reload) window.location.reload();
7829
7854
  },
7830
- onCopy: () => copyCommand(confirmPlugin),
7831
- onInstall: () => queue.installNow(confirmPlugin, confirmIsUpdate ? {
7832
- update: true,
7855
+ onCopy: () => copyCommand(confirmPlugin, confirmPinVersion ?? void 0),
7856
+ onInstall: () => queue.installNow(confirmPlugin, {
7857
+ update: confirmIsUpdate,
7833
7858
  pinVersion: confirmPinVersion ?? void 0
7834
- } : void 0),
7859
+ }),
7835
7860
  onRestart: () => setShowRestartConfirm(true)
7836
7861
  }), confirmCustomTarget && (0, react.createElement)(InstallModal, {
7837
7862
  plugin: null,