dsh-plugin 1.3.10 → 1.4.0
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 +9 -9
- package/README.md +21 -21
- package/client/client.js +379 -341
- package/client/client.js.map +1 -1
- package/lib/http/routes.js +10 -5
- package/package.json +1 -1
- package/src/client/components/PluginHubSection.tsx +3 -4
- package/src/client/components/modals/NotificationsModal.tsx +15 -0
- package/src/client/components/modals/modals.tsx +13 -2
- package/src/client/components/ui/icons.tsx +1 -1
- package/src/client/components/views/DiagnosticsView.tsx +6 -4
- package/src/client/components/views/InstalledView.tsx +1 -1
- package/src/client/hooks/useCatalog.ts +15 -1
- package/src/client/hooks/useIncrementalList.ts +1 -1
- package/src/client/hooks/useLanguage.ts +14 -10
- package/src/client/locales.ts +20 -14
- package/src/client/logic/constants.ts +2 -2
- package/src/client/logic/failures.ts +35 -1
- package/src/client/logic/urls.ts +7 -4
- package/src/client/styles/InstalledView.module.css +2 -2
- package/src/client/styles/Modal.module.css +8 -8
- package/src/client/types.ts +4 -3
- package/src/server/http/routes.ts +9 -5
package/client/client.js
CHANGED
|
@@ -14,11 +14,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
14
14
|
* zh/en dictionaries for the DSH Plugin Hub settings section.
|
|
15
15
|
*/
|
|
16
16
|
const zh = {
|
|
17
|
-
nav: "
|
|
17
|
+
nav: "插件市场",
|
|
18
18
|
title: "DSH Plugin Hub",
|
|
19
|
-
tagline: "DSH Plugin
|
|
19
|
+
tagline: "DSH Plugin 插件市场:面向 DeepSeek Harness 插件收录平台,人工审验、来源可溯,免费安装",
|
|
20
20
|
adBadge: "推荐",
|
|
21
|
-
ad: "DSH Plugin
|
|
21
|
+
ad: "DSH Plugin 插件市场:收录 {total} 款插件,{verified} 款人工精选验证,每日更新",
|
|
22
22
|
search: "搜索插件名称、描述、标签…",
|
|
23
23
|
all: "全部",
|
|
24
24
|
sortStars: "Star",
|
|
@@ -31,15 +31,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
31
31
|
fork: "Fork",
|
|
32
32
|
loading: "正在加载插件数据…",
|
|
33
33
|
failed: "插件数据加载失败",
|
|
34
|
-
failedDescNoProxy: "
|
|
35
|
-
failedDescProxy: "你的网络似乎不通,或设置里的 HTTP
|
|
34
|
+
failedDescNoProxy: "你的网络似乎不通,无法获取插件目录数据。请检查网络连接后重试;或点击右上角按钮在浏览器中打开插件市场。",
|
|
35
|
+
failedDescProxy: "你的网络似乎不通,或设置里的 HTTP 代理地址不可达,无法获取插件目录数据。请检查代理设置与网络连接后重试;或点击右上角按钮在浏览器中打开插件市场。",
|
|
36
36
|
retry: "重试",
|
|
37
37
|
install: "安装",
|
|
38
38
|
cliOnlyHint: "此插件可能需命令行辅助,失败时复制上方命令到 dsh 终端",
|
|
39
39
|
failedCopyHint: "安装失败。请复制上方安装命令到 dsh 终端手动执行(原生依赖构建脚本可能需要人工放行,如 pnpm approve-builds)",
|
|
40
40
|
toastCopied: "安装命令已复制,去 dsh 终端粘贴即可安装",
|
|
41
41
|
installed: "已安装",
|
|
42
|
-
viewMarket: "
|
|
42
|
+
viewMarket: "插件市场",
|
|
43
43
|
viewInstalled: "已安装",
|
|
44
44
|
viewCustom: "自定义安装",
|
|
45
45
|
viewSettings: "设置",
|
|
@@ -76,8 +76,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
76
76
|
customLabel: "自定义安装",
|
|
77
77
|
installedSearch: "搜索已安装的插件…",
|
|
78
78
|
installedFilterCatalog: "目录插件",
|
|
79
|
-
hubInstall: "
|
|
80
|
-
hubInstallHint: "
|
|
79
|
+
hubInstall: "插件市场",
|
|
80
|
+
hubInstallHint: "来自插件市场收录的目录插件",
|
|
81
81
|
manualInstall: "手动安装",
|
|
82
82
|
manualInstallHint: "非目录收录,通过命令行手动安装",
|
|
83
83
|
filterByLabel: "来源",
|
|
@@ -108,7 +108,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
108
108
|
settingsUpdate: "更新设置",
|
|
109
109
|
settingsUpdateDesc: "更新检查方式与安装走到的网络通道",
|
|
110
110
|
settingsCheckOnStart: "启动时检查更新",
|
|
111
|
-
settingsCheckOnStartDesc: "
|
|
111
|
+
settingsCheckOnStartDesc: "打开插件市场时检查已安装插件是否有新版,发现更新会提示",
|
|
112
112
|
settingsProxy: "HTTP 代理",
|
|
113
113
|
settingsProxyDesc: "npm / git / 目录数据请求统一走该代理;留空直连",
|
|
114
114
|
proxyCheckChecking: "正在测试该代理地址…",
|
|
@@ -187,6 +187,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
187
187
|
diagNpmUnset: "未配置(跟随本机 npm 配置)",
|
|
188
188
|
diagGithub: "GitHub",
|
|
189
189
|
diagCatalog: "目录站点",
|
|
190
|
+
diagCatalogTarget: "插件市场",
|
|
190
191
|
diagProxy: "HTTP 代理",
|
|
191
192
|
diagOk: "OK",
|
|
192
193
|
diagChecking: "检测中…",
|
|
@@ -206,7 +207,6 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
206
207
|
settingsResetRun: "恢复默认",
|
|
207
208
|
settingsResetConfirm: "确认恢复",
|
|
208
209
|
settingsResetConfirmDetail: "确定要恢复默认设置吗?更新策略、镜像源、代理与安全限制将全部回到出厂默认值。",
|
|
209
|
-
updatesFound: "发现 {n} 个插件可更新,已加入通知中心",
|
|
210
210
|
updateNoticeTitle: "发现新版本",
|
|
211
211
|
updateNoticeGo: "去更新",
|
|
212
212
|
ignoreUpdateRun: "忽略本次更新",
|
|
@@ -291,8 +291,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
291
291
|
failNetworkTarget: "无法访问 {url} —— 你的网络连接不通",
|
|
292
292
|
failNetworkRunDiag: "去系统诊断检测网络",
|
|
293
293
|
failDshMissingHint: "系统找不到 dsh 命令(dsh 未加入系统 PATH),无法调用安装器执行安装。请确认 DeepSeek Harness 已正确安装、dsh 已加入 PATH(或重新安装),然后重试。这不是插件本身的问题。",
|
|
294
|
+
failGitMissingHint: "系统找不到 git 命令(Git 未安装或未加入系统 PATH),无法从 GitHub 源安装插件。请先安装 Git(如 git-scm.com/downloads)或把 git 加入 PATH,重启 DSH 后重试。这不是插件本身的问题。",
|
|
294
295
|
failPnpmMissingHint: "安装器找到了 dsh,但系统里没有 pnpm 命令(dsh 用它来管理 profile 插件)。请先安装 pnpm(如 npm install -g pnpm),确认 pnpm 已加入 PATH 后重试。这不是插件本身的问题。",
|
|
296
|
+
failNpmMissingHint: "系统找不到 npm 命令(npm 未安装或未加入系统 PATH),无法执行全局安装。请先安装 Node.js(自带 npm),确认 npm 已加入 PATH 后重试。这不是插件本身的问题。",
|
|
295
297
|
failPnpmStoreHint: "安装器调用 pnpm 时报「store 位置不匹配」(ERR_PNPM_UNEXPECTED_STORE):你的 profile 目录里旧插件依赖是用另一个大版本的 pnpm 生成的,当前 pnpm 出于安全不认旧目录,导致任何插件装进该 profile 都会失败。请删除该 profile 目录下的 node_modules 与 pnpm-lock.yaml(可先到「系统日志」或 ~/.dsh/profiles/<profile>/hub.log 查看完整报错),再重新安装。这不是插件本身的问题。",
|
|
298
|
+
failPnpmPolicyHint: "安装器调用 pnpm 时被其供应链安全策略拦截——装任何插件都会撞墙,不是插件本身的问题。分两种情况处理:① 提示「Minimum release age」(ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION):包发布还不满 24 小时,pnpm 11 出于安全会拒收这种刚发布的新包。可在 pnpm 配置(pnpm-workspace.yaml)里加 minimumReleaseAge: 0 豁免,或等满 24 小时后重试。② 提示「untrusted origin」(ERR_PNPM_UNTRUSTED_ORIGIN):依赖来源不被本机 pnpm 信任,通常是该 profile 里之前用 github: 或非官方 npm 源装过插件,锁文件记录了不受信任的来源。请删除该 profile 目录下的 node_modules 与 pnpm-lock.yaml 后重新安装(可先到「系统日志」或 ~/.dsh/profiles/<profile>/hub.log 查看完整报错)。",
|
|
296
299
|
installChannelNpm: "NPM 包",
|
|
297
300
|
installChannelGit: "GitHub 源码",
|
|
298
301
|
installChannelDsh: "DSH 命令",
|
|
@@ -509,6 +512,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
509
512
|
diagNpmUnset: "Unset (follow local npm config)",
|
|
510
513
|
diagGithub: "GitHub",
|
|
511
514
|
diagCatalog: "Catalog site",
|
|
515
|
+
diagCatalogTarget: "Plugin marketplace",
|
|
512
516
|
diagProxy: "HTTP proxy",
|
|
513
517
|
diagOk: "OK",
|
|
514
518
|
diagChecking: "Checking…",
|
|
@@ -528,7 +532,6 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
528
532
|
settingsResetRun: "Restore Defaults",
|
|
529
533
|
settingsResetConfirm: "Restore Defaults",
|
|
530
534
|
settingsResetConfirmDetail: "Reset all settings to factory defaults? Update policy, npm mirror, proxy and security restrictions will be cleared.",
|
|
531
|
-
updatesFound: "{n} plugin(s) have updates — check the notification center",
|
|
532
535
|
updateNoticeTitle: "Update available",
|
|
533
536
|
updateNoticeGo: "Update",
|
|
534
537
|
ignoreUpdateRun: "Ignore this update",
|
|
@@ -614,8 +617,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
614
617
|
failNetworkTarget: "Cannot reach {url} — your network connection is down",
|
|
615
618
|
failNetworkRunDiag: "Run a network diagnostic",
|
|
616
619
|
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.",
|
|
620
|
+
failGitMissingHint: "The git command could not be found (Git is not installed or not on the system PATH), so GitHub-source plugins cannot be installed. Please install Git (e.g. from git-scm.com/downloads) or add git to your PATH, restart DSH, then retry. This is not a problem with the plugin itself.",
|
|
617
621
|
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.",
|
|
622
|
+
failNpmMissingHint: "The npm command could not be found (npm is not installed or not on the system PATH), so a global install cannot run. Please install Node.js (which bundles npm), make sure npm is on your PATH, then retry. This is not a problem with the plugin itself.",
|
|
618
623
|
failPnpmStoreHint: "pnpm reported an unexpected store location (ERR_PNPM_UNEXPECTED_STORE): the profile directory was previously set up with a different major version of pnpm, and the current pnpm refuses to reuse it — no plugin can be installed into that profile. Delete node_modules and pnpm-lock.yaml under the profile directory (see System Logs or ~/.dsh/profiles/<profile>/hub.log for the full output), then reinstall. This is not a problem with the plugin itself.",
|
|
624
|
+
failPnpmPolicyHint: "The installer was blocked by pnpm supply-chain security policy — every plugin install would hit the same wall, so this is not a problem with the plugin itself. Two cases: ① \"Minimum release age\" (ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION): the package was published less than 24 hours ago, and pnpm 11 refuses freshly-published packages for safety. Add minimumReleaseAge: 0 to your pnpm config (pnpm-workspace.yaml) to opt out, or wait until the 24 hours have passed and retry. ② \"untrusted origin\" (ERR_PNPM_UNTRUSTED_ORIGIN): a dependency source is not trusted by this machine, usually because plugins were previously installed via github: or a non-official npm registry, so the lockfile records an untrusted source. Delete node_modules and pnpm-lock.yaml under the profile directory (see System Logs or ~/.dsh/profiles/<profile>/hub.log for the full output), then reinstall.",
|
|
619
625
|
installChannelNpm: "NPM package",
|
|
620
626
|
installChannelGit: "GitHub source",
|
|
621
627
|
installChannelDsh: "DSH command",
|
|
@@ -672,46 +678,46 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
672
678
|
css: css$11
|
|
673
679
|
});
|
|
674
680
|
var Header_module_css_default = {
|
|
675
|
-
"
|
|
676
|
-
"tabs": "qikqja_tabs",
|
|
677
|
-
"adText": "qikqja_adText",
|
|
681
|
+
"githubLink": "qikqja_githubLink",
|
|
678
682
|
"resultCount": "qikqja_resultCount",
|
|
679
|
-
"logoIcon": "qikqja_logoIcon",
|
|
680
|
-
"tabCount": "qikqja_tabCount",
|
|
681
|
-
"tabActive": "qikqja_tabActive",
|
|
682
|
-
"adBanner": "qikqja_adBanner",
|
|
683
683
|
"segLabel": "qikqja_segLabel",
|
|
684
|
-
"
|
|
685
|
-
"githubIcon": "qikqja_githubIcon",
|
|
684
|
+
"logoIcon": "qikqja_logoIcon",
|
|
686
685
|
"tagline": "qikqja_tagline",
|
|
687
|
-
"aboutBtn": "qikqja_aboutBtn",
|
|
688
|
-
"root": "qikqja_root",
|
|
689
|
-
"versionBtn": "qikqja_versionBtn",
|
|
690
|
-
"searchRow": "qikqja_searchRow",
|
|
691
|
-
"segBtnActive": "qikqja_segBtnActive",
|
|
692
|
-
"version": "qikqja_version",
|
|
693
686
|
"tab": "qikqja_tab",
|
|
694
|
-
"langBtn": "qikqja_langBtn",
|
|
695
|
-
"adArrow": "qikqja_adArrow",
|
|
696
|
-
"headerRight": "qikqja_headerRight",
|
|
697
|
-
"tabsRow": "qikqja_tabsRow",
|
|
698
687
|
"search": "qikqja_search",
|
|
699
|
-
"
|
|
700
|
-
"
|
|
701
|
-
"
|
|
688
|
+
"copyIcon": "qikqja_copyIcon",
|
|
689
|
+
"root": "qikqja_root",
|
|
690
|
+
"githubIcon": "qikqja_githubIcon",
|
|
702
691
|
"controls": "qikqja_controls",
|
|
703
|
-
"
|
|
692
|
+
"sortGroup": "qikqja_sortGroup",
|
|
693
|
+
"header": "qikqja_header",
|
|
694
|
+
"aboutBtn": "qikqja_aboutBtn",
|
|
704
695
|
"resultSeg": "qikqja_resultSeg",
|
|
696
|
+
"headerTitleRow": "qikqja_headerTitleRow",
|
|
697
|
+
"segBtnActive": "qikqja_segBtnActive",
|
|
698
|
+
"searchRow": "qikqja_searchRow",
|
|
699
|
+
"tabs": "qikqja_tabs",
|
|
700
|
+
"adText": "qikqja_adText",
|
|
701
|
+
"adArrow": "qikqja_adArrow",
|
|
702
|
+
"tabActive": "qikqja_tabActive",
|
|
703
|
+
"segGroup": "qikqja_segGroup",
|
|
704
|
+
"headerRight": "qikqja_headerRight",
|
|
705
|
+
"langBtn": "qikqja_langBtn",
|
|
706
|
+
"version": "qikqja_version",
|
|
705
707
|
"segBtn": "qikqja_segBtn",
|
|
706
708
|
"adBadge": "qikqja_adBadge",
|
|
707
|
-
"
|
|
709
|
+
"tabsRow": "qikqja_tabsRow",
|
|
710
|
+
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
708
711
|
"taglineLink": "qikqja_taglineLink",
|
|
709
|
-
"
|
|
710
|
-
"
|
|
712
|
+
"versionBtn": "qikqja_versionBtn",
|
|
713
|
+
"tabCount": "qikqja_tabCount",
|
|
714
|
+
"brandTitle": "qikqja_brandTitle",
|
|
715
|
+
"adBanner": "qikqja_adBanner",
|
|
716
|
+
"title": "qikqja_title"
|
|
711
717
|
};
|
|
712
718
|
//#endregion
|
|
713
719
|
//#region \0dsh-css:src/client/styles/Modal.module.css.mjs
|
|
714
|
-
const css$10 = ".BiQ1zG_overlay{z-index:998;-webkit-user-select:none;user-select:none;background:#00000061;justify-content:center;align-items:center;animation:.16s ease-out BiQ1zG_overlayIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.BiQ1zG_modal,.BiQ1zG_errorModal{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:10px;flex-direction:column;gap:10px;width:420px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:14px 16px;animation:.18s ease-out BiQ1zG_modalIn;display:flex;box-shadow:0 12px 40px #0000003d}.BiQ1zG_errorModal{width:640px;max-width:calc(100vw - 48px)}.BiQ1zG_modalWide{width:560px;max-width:calc(100vw - 48px)}.BiQ1zG_helpModal{width:720px;max-width:calc(100vw - 48px)}.BiQ1zG_logModal{width:780px;max-width:calc(100vw - 48px);height:min(540px,100vh - 64px)}.BiQ1zG_modalHead{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.BiQ1zG_modalTitle{color:var(--hub-text-primary);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_modalTitleBusy{color:var(--hub-brand)}.BiQ1zG_modalTitleQueued{color:var(--hub-warning)}.BiQ1zG_modalClose{width:24px;height:24px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.BiQ1zG_modalClose:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalCloseIcon{flex-shrink:0;width:14px;height:14px}.BiQ1zG_confirmIconWrap{justify-content:center;padding:2px 0 6px;display:flex}.BiQ1zG_confirmIcon{background:var(--hub-brand);border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;box-shadow:0 4px 12px #4f6ef747}.BiQ1zG_confirmIconDanger{background:var(--hub-danger);box-shadow:0 4px 12px #d1242f4d}.BiQ1zG_dangerConfirm{color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:background-color .12s,border-color .12s}.BiQ1zG_dangerConfirm:hover:not(:disabled){background:var(--hub-danger-hover);border-color:var(--hub-danger-hover)}.BiQ1zG_dangerConfirm:disabled{opacity:.55;cursor:default}.BiQ1zG_confirmPrimary{color:#fff;background:var(--hub-brand);border:1px solid var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:filter .12s}.BiQ1zG_confirmPrimary:hover:not(:disabled){filter:brightness(1.08)}.BiQ1zG_confirmPrimary:disabled{opacity:.55;cursor:default}.BiQ1zG_modalDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_trustHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_cliOnlyHint{color:var(--hub-text-secondary);background:var(--hub-bg-hover);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_failedCopyHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_modalRow{align-items:baseline;gap:8px;min-width:0;font-size:12px;line-height:18px;display:flex}.BiQ1zG_modalLabel{min-width:64px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_modalValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);font-weight:500;overflow:hidden}.BiQ1zG_modalLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex;overflow:hidden}.BiQ1zG_modalLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_linkIcon{flex-shrink:0}.BiQ1zG_modalCmd{color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_modalCmd:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_modalCmdText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.BiQ1zG_modalCmdCopy{color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:1px 7px;font-family:inherit;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_modalCmdCopy:hover{color:var(--hub-brand-hover);background:var(--hub-bg-2)}.BiQ1zG_modalActions{justify-content:flex-end;align-items:center;gap:8px;margin-top:2px;display:flex}.BiQ1zG_modalBody{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.BiQ1zG_toast{z-index:1000;background:var(--hub-btn-fill);color:var(--hub-text-on-fill);pointer-events:none;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:500;line-height:18px;animation:.22s ease-out BiQ1zG_toastIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000047}@keyframes BiQ1zG_toastIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.BiQ1zG_toastFail{background:var(--hub-danger);color:#fff;border-color:#ffffff3d}.BiQ1zG_queueSection{flex-direction:column;gap:6px;display:flex}.BiQ1zG_queueSectionTitle{color:var(--hub-text-secondary);padding:4px 2px 0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_pendingRowStatus{color:var(--hub-warn);flex-shrink:0;font-weight:500}.BiQ1zG_pendingRowActions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.BiQ1zG_queueRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;font-size:12px;line-height:18px;transition:background .12s;display:flex}.BiQ1zG_queueRow:hover{background:var(--hub-brand-tint)}.BiQ1zG_queueRowHead{align-items:center;gap:10px;display:flex}.BiQ1zG_queueRowTarget{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.BiQ1zG_queueRowDesc{color:var(--hub-text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.BiQ1zG_queueRowBody{align-items:center;gap:8px;display:flex}.BiQ1zG_queueRowStatus{color:var(--hub-brand);flex-shrink:0;font-weight:500}.BiQ1zG_queueRowTrack{flex:1;min-width:0}.BiQ1zG_queueRowPct{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.BiQ1zG_stripCancel{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 10px;font-size:12px;line-height:18px;transition:background .12s,color .12s}.BiQ1zG_stripCancel:hover{background:var(--hub-danger-tint);color:var(--hub-danger-text)}.BiQ1zG_stripCancel:disabled{opacity:.45;cursor:default}.BiQ1zG_queuedHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:5px 10px;font-size:12px;line-height:18px}.BiQ1zG_errorTitle{color:var(--hub-danger-text);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_errorBox{border:1px solid var(--hub-danger-border);background:var(--hub-danger-tint-weak);max-height:240px;color:var(--hub-text-primary);white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;border-radius:6px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:17px;overflow:auto}.BiQ1zG_errorCopySoft{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_errorCopySoft:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_errorHint{color:var(--hub-text-tertiary);font-size:12px;line-height:18px}.BiQ1zG_modalCancel,.BiQ1zG_modalCopy{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_modalCancel:hover,.BiQ1zG_modalCopy:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalInstall{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_modalInstall:hover{background:var(--hub-btn-hover)}.BiQ1zG_modalCopy:disabled,.BiQ1zG_modalInstall:disabled,.BiQ1zG_modalCancel:disabled,.BiQ1zG_modalClose:disabled,.BiQ1zG_uninstallConfirm:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_uninstallConfirm{color:#fff;background:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_uninstallConfirm:hover{background:var(--hub-danger-hover)}.BiQ1zG_result{text-align:center;flex-direction:column;align-items:center;gap:5px;padding:10px 0 2px;display:flex}.BiQ1zG_resultCheck{background:var(--hub-success-tint);width:40px;height:40px;color:var(--hub-success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:3px;display:inline-flex}.BiQ1zG_resultCheckIcon{flex-shrink:0;width:20px;height:20px}.BiQ1zG_resultTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_resultDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_resultRestarting{color:var(--hub-text-tertiary);padding:12px 0 6px;font-size:12px;line-height:18px}.BiQ1zG_restartLater{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_restartLater:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_restartNow{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNow:hover{background:var(--hub-btn-hover)}.BiQ1zG_restartNow:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_restartNowWarning{color:#fff;background:var(--hub-warning);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNowWarning:hover{background:var(--hub-warning-hover)}.BiQ1zG_restartNowWarning:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_result .BiQ1zG_modalActions{justify-content:center;gap:10px;margin-top:0;padding:6px 0 2px}.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartLater,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNow,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNowWarning{min-width:100px}.BiQ1zG_progress{margin:10px 0 2px}.BiQ1zG_progressHead{justify-content:flex-end;align-items:center;margin-bottom:3px;display:flex}.BiQ1zG_progressText{color:var(--hub-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:14px}.BiQ1zG_progressTrack{background:var(--hub-border-2);border-radius:2px;height:4px;overflow:hidden}.BiQ1zG_progressFill{background:var(--hub-brand);border-radius:2px;height:100%;transition:width .32s}.BiQ1zG_progressFillFail{background:var(--hub-danger)}@keyframes BiQ1zG_overlayIn{0%{opacity:0}to{opacity:1}}@keyframes BiQ1zG_modalIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.BiQ1zG_failList{flex-direction:column;gap:12px;padding-right:2px;display:flex}.BiQ1zG_failRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.BiQ1zG_failHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeList{flex-direction:column;gap:10px;padding-right:2px;display:flex}.BiQ1zG_noticeRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;display:flex}.BiQ1zG_noticeRowMain{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.BiQ1zG_noticeBadgeOk,.BiQ1zG_noticeBadgeFail{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;box-shadow:0 2px 6px #0000002e}.BiQ1zG_noticeBadgeOk{background:var(--hub-success)}.BiQ1zG_noticeBadgeFail{background:var(--hub-danger)}.BiQ1zG_noticeBadgeIcon{flex-shrink:0;width:12px;height:12px}.BiQ1zG_noticeMain{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeTextOk{color:var(--hub-success);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeTextFail{color:var(--hub-danger-text);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeFoot{justify-content:flex-end;align-items:center;display:flex}.BiQ1zG_noticeTime{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px;line-height:16px}.BiQ1zG_noticeRemove{width:22px;height:22px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_noticeRemove:hover{color:var(--hub-danger-text);background:var(--hub-danger-tint)}.BiQ1zG_noticeRowOk .BiQ1zG_noticeRemove{margin-left:0}.BiQ1zG_noticeRowOk .BiQ1zG_noticeTime{margin-left:auto}.BiQ1zG_noticeRowUpdate{cursor:pointer;transition:border-color .12s,background .12s}.BiQ1zG_noticeRowUpdate:hover{border-color:var(--hub-brand);background:var(--hub-brand-tint)}.BiQ1zG_noticeVersion{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border);font-variant-numeric:tabular-nums;border-radius:5px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:600;line-height:18px}.BiQ1zG_noticeUpdateGo{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:5px;flex-shrink:0;margin-left:2px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;transition:background .12s}.BiQ1zG_noticeUpdateGo:hover{background:var(--hub-brand-hover)}.BiQ1zG_noticeIgnore{color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:5px;flex-shrink:0;margin-left:2px;padding:1px 8px;font-size:11px;font-weight:500;line-height:16px;transition:color .12s,border-color .12s,background .12s}.BiQ1zG_noticeIgnore:hover{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKind{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;font-weight:500;line-height:16px}.BiQ1zG_failKindInstall{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKindUninstall{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}.BiQ1zG_failRepo{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:18px;text-decoration:none;overflow:hidden}.BiQ1zG_failRepo:hover{text-decoration:underline}.BiQ1zG_failCopy{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_failCopy:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_failEmpty{text-align:center;color:var(--hub-text-tertiary);padding:24px 0;font-size:12px;line-height:18px}.BiQ1zG_failClear{color:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_failClear:hover{color:#fff;background:var(--hub-danger)}.BiQ1zG_failBigIssue{box-sizing:border-box;text-align:center;color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;margin-top:4px;padding:3px 16px;font-size:13px;font-weight:600;line-height:18px;text-decoration:none;transition:background .12s,border-color .12s,box-shadow .12s;display:block}.BiQ1zG_failBigIssue:hover{background:var(--hub-danger-hover);border-color:var(--hub-danger-hover);box-shadow:0 3px 10px #d1242f59}.BiQ1zG_failPrepareHint{color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:12px;line-height:18px}.BiQ1zG_failDiagBtn{box-sizing:border-box;text-align:center;width:100%;color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:8px;margin-top:8px;padding:5px 16px;font-size:13px;font-weight:600;line-height:18px;transition:background .12s,box-shadow .12s;display:block}.BiQ1zG_failDiagBtn:hover{background:var(--hub-btn-hover);box-shadow:0 3px 10px #0000001f}.BiQ1zG_failNetworkTarget{word-break:break-all;color:var(--hub-danger);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:13px;font-weight:700;line-height:20px}.BiQ1zG_aboutModal{width:460px;max-width:calc(100vw - 48px)}.BiQ1zG_aboutContent{min-height:0;max-height:340px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_aboutContent>:first-child{margin-top:0}.BiQ1zG_aboutContent>:last-child{margin-bottom:0}.BiQ1zG_aboutContent h2,.BiQ1zG_aboutContent h3,.BiQ1zG_aboutContent h4,.BiQ1zG_aboutContent h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_aboutContent h2{font-size:14px}.BiQ1zG_aboutContent p{margin:4px 0}.BiQ1zG_aboutContent ul,.BiQ1zG_aboutContent ol{margin:4px 0;padding-left:18px}.BiQ1zG_aboutContent li{margin:2px 0}.BiQ1zG_aboutContent code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_aboutContent pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_aboutContent pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_aboutContent blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_aboutContent a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_aboutContent a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_aboutContent img{border-radius:8px;max-width:100%;max-height:220px;margin:8px auto;display:block;box-shadow:0 2px 8px #0000001f}.BiQ1zG_aboutContent img[width=\"100\"]{object-fit:contain;width:100px;height:100px;max-height:100px}.BiQ1zG_aboutMeta{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}.BiQ1zG_hubUpdateModal{width:520px;max-width:calc(100vw - 48px)}.BiQ1zG_hubUpdateMeta{flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;line-height:18px;display:flex}.BiQ1zG_hubUpdateMetaItem{color:var(--hub-text-tertiary)}.BiQ1zG_hubUpdateNotes{min-height:0;max-height:300px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_hubUpdateNotes>:first-child{margin-top:0}.BiQ1zG_hubUpdateNotes>:last-child{margin-bottom:0}.BiQ1zG_hubUpdateNotes h2,.BiQ1zG_hubUpdateNotes h3,.BiQ1zG_hubUpdateNotes h4,.BiQ1zG_hubUpdateNotes h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_hubUpdateNotes h2{font-size:14px}.BiQ1zG_hubUpdateNotes p{margin:4px 0}.BiQ1zG_hubUpdateNotes ul,.BiQ1zG_hubUpdateNotes ol{margin:4px 0;padding-left:18px}.BiQ1zG_hubUpdateNotes li{margin:2px 0}.BiQ1zG_hubUpdateNotes code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_hubUpdateNotes pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_hubUpdateNotes pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_hubUpdateNotes blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_hubUpdateNotes a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_hubUpdateNotes a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailModal{width:480px;max-width:calc(100vw - 48px)}.BiQ1zG_detailUpdateHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_detailGrid{flex-direction:column;gap:6px;display:flex}.BiQ1zG_detailRow{align-items:baseline;gap:10px;min-width:0;font-size:12px;line-height:20px;display:flex}.BiQ1zG_detailLabel{text-align:right;width:76px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_detailValue{min-width:0;color:var(--hub-text-primary);flex-wrap:wrap;flex:auto;align-items:baseline;gap:4px 6px;font-weight:500;display:flex}.BiQ1zG_detailMono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:500}.BiQ1zG_detailArrow{color:var(--hub-text-tertiary);align-items:baseline;gap:4px;display:inline-flex}.BiQ1zG_detailDim{color:var(--hub-text-tertiary);font-size:11px;font-weight:400}.BiQ1zG_detailLink{min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex}.BiQ1zG_detailLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailStars{color:#b45309;font-weight:600}.BiQ1zG_detailPath{min-width:0;color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:6px;flex:auto;justify-content:space-between;align-items:center;gap:6px;padding:3px 3px 3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_detailPath:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_detailPathText{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;overflow:hidden}.BiQ1zG_detailPathActions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.BiQ1zG_detailPathBtn{width:28px;height:28px;color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.BiQ1zG_detailPathBtn svg{width:15px;height:15px}.BiQ1zG_detailPathBtn:hover{color:#fff;background:var(--hub-brand);border-color:var(--hub-brand)}.BiQ1zG_detailStatusRunning,.BiQ1zG_detailStatusPending{border-radius:50%;flex-shrink:0;align-self:center;width:8px;height:8px}.BiQ1zG_detailStatusRunning{background:var(--hub-success)}.BiQ1zG_detailStatusPending{background:var(--hub-warning)}.BiQ1zG_detailStatusText{font-weight:500}";
|
|
720
|
+
const css$10 = ".BiQ1zG_overlay{z-index:998;-webkit-user-select:none;user-select:none;background:#00000061;justify-content:center;align-items:center;animation:.16s ease-out BiQ1zG_overlayIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.BiQ1zG_modal,.BiQ1zG_errorModal{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:10px;flex-direction:column;gap:10px;width:540px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:14px 16px;animation:.18s ease-out BiQ1zG_modalIn;display:flex;box-shadow:0 12px 40px #0000003d}.BiQ1zG_errorModal{width:720px;max-width:calc(100vw - 48px)}.BiQ1zG_modalWide{width:640px;max-width:calc(100vw - 48px)}.BiQ1zG_helpModal{width:760px;max-width:calc(100vw - 48px)}.BiQ1zG_logModal{width:820px;max-width:calc(100vw - 48px);height:min(540px,100vh - 64px)}.BiQ1zG_modalHead{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.BiQ1zG_modalTitle{color:var(--hub-text-primary);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_modalTitleBusy{color:var(--hub-brand)}.BiQ1zG_modalTitleQueued{color:var(--hub-warning)}.BiQ1zG_modalClose{width:24px;height:24px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.BiQ1zG_modalClose:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalCloseIcon{flex-shrink:0;width:14px;height:14px}.BiQ1zG_confirmIconWrap{justify-content:center;padding:2px 0 6px;display:flex}.BiQ1zG_confirmIcon{background:var(--hub-brand);border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;box-shadow:0 4px 12px #4f6ef747}.BiQ1zG_confirmIconDanger{background:var(--hub-danger);box-shadow:0 4px 12px #d1242f4d}.BiQ1zG_dangerConfirm{color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:background-color .12s,border-color .12s}.BiQ1zG_dangerConfirm:hover:not(:disabled){background:var(--hub-danger-hover);border-color:var(--hub-danger-hover)}.BiQ1zG_dangerConfirm:disabled{opacity:.55;cursor:default}.BiQ1zG_confirmPrimary{color:#fff;background:var(--hub-brand);border:1px solid var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:filter .12s}.BiQ1zG_confirmPrimary:hover:not(:disabled){filter:brightness(1.08)}.BiQ1zG_confirmPrimary:disabled{opacity:.55;cursor:default}.BiQ1zG_modalDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_trustHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_cliOnlyHint{color:var(--hub-text-secondary);background:var(--hub-bg-hover);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_failedCopyHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_modalRow{align-items:baseline;gap:8px;min-width:0;font-size:12px;line-height:18px;display:flex}.BiQ1zG_modalLabel{min-width:64px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_modalValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);font-weight:500;overflow:hidden}.BiQ1zG_modalLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex;overflow:hidden}.BiQ1zG_modalLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_linkIcon{flex-shrink:0}.BiQ1zG_modalCmd{color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_modalCmd:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_modalCmdText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.BiQ1zG_modalCmdCopy{color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:1px 7px;font-family:inherit;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_modalCmdCopy:hover{color:var(--hub-brand-hover);background:var(--hub-bg-2)}.BiQ1zG_modalActions{justify-content:flex-end;align-items:center;gap:8px;margin-top:2px;display:flex}.BiQ1zG_modalBody{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.BiQ1zG_toast{z-index:1000;background:var(--hub-btn-fill);color:var(--hub-text-on-fill);pointer-events:none;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:500;line-height:18px;animation:.22s ease-out BiQ1zG_toastIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000047}@keyframes BiQ1zG_toastIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.BiQ1zG_toastFail{background:var(--hub-danger);color:#fff;border-color:#ffffff3d}.BiQ1zG_queueSection{flex-direction:column;gap:6px;display:flex}.BiQ1zG_queueSectionTitle{color:var(--hub-text-secondary);padding:4px 2px 0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_pendingRowStatus{color:var(--hub-warn);flex-shrink:0;font-weight:500}.BiQ1zG_pendingRowActions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.BiQ1zG_queueRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;font-size:12px;line-height:18px;transition:background .12s;display:flex}.BiQ1zG_queueRow:hover{background:var(--hub-brand-tint)}.BiQ1zG_queueRowHead{align-items:center;gap:10px;display:flex}.BiQ1zG_queueRowTarget{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.BiQ1zG_queueRowDesc{color:var(--hub-text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.BiQ1zG_queueRowBody{align-items:center;gap:8px;display:flex}.BiQ1zG_queueRowStatus{color:var(--hub-brand);flex-shrink:0;font-weight:500}.BiQ1zG_queueRowTrack{flex:1;min-width:0}.BiQ1zG_queueRowPct{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.BiQ1zG_stripCancel{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 10px;font-size:12px;line-height:18px;transition:background .12s,color .12s}.BiQ1zG_stripCancel:hover{background:var(--hub-danger-tint);color:var(--hub-danger-text)}.BiQ1zG_stripCancel:disabled{opacity:.45;cursor:default}.BiQ1zG_queuedHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:5px 10px;font-size:12px;line-height:18px}.BiQ1zG_errorTitle{color:var(--hub-danger-text);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_errorBox{border:1px solid var(--hub-danger-border);background:var(--hub-danger-tint-weak);max-height:240px;color:var(--hub-text-primary);white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;border-radius:6px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:17px;overflow:auto}.BiQ1zG_errorCopySoft{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_errorCopySoft:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_errorHint{color:var(--hub-text-tertiary);font-size:12px;line-height:18px}.BiQ1zG_modalCancel,.BiQ1zG_modalCopy{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_modalCancel:hover,.BiQ1zG_modalCopy:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalInstall{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_modalInstall:hover{background:var(--hub-btn-hover)}.BiQ1zG_modalCopy:disabled,.BiQ1zG_modalInstall:disabled,.BiQ1zG_modalCancel:disabled,.BiQ1zG_modalClose:disabled,.BiQ1zG_uninstallConfirm:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_uninstallConfirm{color:#fff;background:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_uninstallConfirm:hover{background:var(--hub-danger-hover)}.BiQ1zG_result{text-align:center;flex-direction:column;align-items:center;gap:5px;padding:10px 0 2px;display:flex}.BiQ1zG_resultCheck{background:var(--hub-success-tint);width:40px;height:40px;color:var(--hub-success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:3px;display:inline-flex}.BiQ1zG_resultCheckIcon{flex-shrink:0;width:20px;height:20px}.BiQ1zG_resultTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_resultDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_resultRestarting{color:var(--hub-text-tertiary);padding:12px 0 6px;font-size:12px;line-height:18px}.BiQ1zG_restartLater{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_restartLater:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_restartNow{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNow:hover{background:var(--hub-btn-hover)}.BiQ1zG_restartNow:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_restartNowWarning{color:#fff;background:var(--hub-warning);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNowWarning:hover{background:var(--hub-warning-hover)}.BiQ1zG_restartNowWarning:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_result .BiQ1zG_modalActions{justify-content:center;gap:10px;margin-top:0;padding:6px 0 2px}.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartLater,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNow,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNowWarning{min-width:100px}.BiQ1zG_progress{margin:10px 0 2px}.BiQ1zG_progressHead{justify-content:flex-end;align-items:center;margin-bottom:3px;display:flex}.BiQ1zG_progressText{color:var(--hub-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:14px}.BiQ1zG_progressTrack{background:var(--hub-border-2);border-radius:2px;height:4px;overflow:hidden}.BiQ1zG_progressFill{background:var(--hub-brand);border-radius:2px;height:100%;transition:width .32s}.BiQ1zG_progressFillFail{background:var(--hub-danger)}@keyframes BiQ1zG_overlayIn{0%{opacity:0}to{opacity:1}}@keyframes BiQ1zG_modalIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.BiQ1zG_failList{flex-direction:column;gap:12px;padding-right:2px;display:flex}.BiQ1zG_failRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.BiQ1zG_failHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeList{flex-direction:column;gap:10px;padding-right:2px;display:flex}.BiQ1zG_noticeRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;display:flex}.BiQ1zG_noticeRowMain{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.BiQ1zG_noticeBadgeOk,.BiQ1zG_noticeBadgeFail{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;box-shadow:0 2px 6px #0000002e}.BiQ1zG_noticeBadgeOk{background:var(--hub-success)}.BiQ1zG_noticeBadgeFail{background:var(--hub-danger)}.BiQ1zG_noticeBadgeIcon{flex-shrink:0;width:12px;height:12px}.BiQ1zG_noticeMain{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeTextOk{color:var(--hub-success);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeTextFail{color:var(--hub-danger-text);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeFoot{justify-content:flex-end;align-items:center;display:flex}.BiQ1zG_noticeTime{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px;line-height:16px}.BiQ1zG_noticeRemove{width:22px;height:22px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_noticeRemove:hover{color:var(--hub-danger-text);background:var(--hub-danger-tint)}.BiQ1zG_noticeRowOk .BiQ1zG_noticeRemove{margin-left:0}.BiQ1zG_noticeRowOk .BiQ1zG_noticeTime{margin-left:auto}.BiQ1zG_noticeRowUpdate{cursor:pointer;transition:border-color .12s,background .12s}.BiQ1zG_noticeRowUpdate:hover{border-color:var(--hub-brand);background:var(--hub-brand-tint)}.BiQ1zG_noticeVersion{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border);font-variant-numeric:tabular-nums;border-radius:5px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:600;line-height:18px}.BiQ1zG_noticeUpdateGo{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:5px;flex-shrink:0;margin-left:2px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;transition:background .12s}.BiQ1zG_noticeUpdateGo:hover{background:var(--hub-brand-hover)}.BiQ1zG_noticeIgnore{color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:5px;flex-shrink:0;margin-left:2px;padding:1px 8px;font-size:11px;font-weight:500;line-height:16px;transition:color .12s,border-color .12s,background .12s}.BiQ1zG_noticeIgnore:hover{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKind{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;font-weight:500;line-height:16px}.BiQ1zG_failKindInstall{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKindUninstall{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}.BiQ1zG_failRepo{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:18px;text-decoration:none;overflow:hidden}.BiQ1zG_failRepo:hover{text-decoration:underline}.BiQ1zG_failCopy{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_failCopy:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_failEmpty{text-align:center;color:var(--hub-text-tertiary);padding:24px 0;font-size:12px;line-height:18px}.BiQ1zG_failClear{color:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_failClear:hover{color:#fff;background:var(--hub-danger)}.BiQ1zG_failBigIssue{box-sizing:border-box;text-align:center;color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;margin-top:4px;padding:3px 16px;font-size:13px;font-weight:600;line-height:18px;text-decoration:none;transition:background .12s,border-color .12s,box-shadow .12s;display:block}.BiQ1zG_failBigIssue:hover{background:var(--hub-danger-hover);border-color:var(--hub-danger-hover);box-shadow:0 3px 10px #d1242f59}.BiQ1zG_failPrepareHint{color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:12px;line-height:18px}.BiQ1zG_failDiagBtn{box-sizing:border-box;text-align:center;width:100%;color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:8px;margin-top:8px;padding:5px 16px;font-size:13px;font-weight:600;line-height:18px;transition:background .12s,box-shadow .12s;display:block}.BiQ1zG_failDiagBtn:hover{background:var(--hub-btn-hover);box-shadow:0 3px 10px #0000001f}.BiQ1zG_failNetworkTarget{word-break:break-all;color:var(--hub-danger);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:13px;font-weight:700;line-height:20px}.BiQ1zG_aboutModal{width:560px;max-width:calc(100vw - 48px)}.BiQ1zG_aboutContent{min-height:0;max-height:340px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_aboutContent>:first-child{margin-top:0}.BiQ1zG_aboutContent>:last-child{margin-bottom:0}.BiQ1zG_aboutContent h2,.BiQ1zG_aboutContent h3,.BiQ1zG_aboutContent h4,.BiQ1zG_aboutContent h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_aboutContent h2{font-size:14px}.BiQ1zG_aboutContent p{margin:4px 0}.BiQ1zG_aboutContent ul,.BiQ1zG_aboutContent ol{margin:4px 0;padding-left:18px}.BiQ1zG_aboutContent li{margin:2px 0}.BiQ1zG_aboutContent code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_aboutContent pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_aboutContent pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_aboutContent blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_aboutContent a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_aboutContent a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_aboutContent img{border-radius:8px;max-width:100%;max-height:220px;margin:8px auto;display:block;box-shadow:0 2px 8px #0000001f}.BiQ1zG_aboutContent img[width=\"100\"]{object-fit:contain;width:100px;height:100px;max-height:100px}.BiQ1zG_aboutMeta{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}.BiQ1zG_hubUpdateModal{width:620px;max-width:calc(100vw - 48px)}.BiQ1zG_hubUpdateMeta{flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;line-height:18px;display:flex}.BiQ1zG_hubUpdateMetaItem{color:var(--hub-text-tertiary)}.BiQ1zG_hubUpdateNotes{min-height:0;max-height:300px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_hubUpdateNotes>:first-child{margin-top:0}.BiQ1zG_hubUpdateNotes>:last-child{margin-bottom:0}.BiQ1zG_hubUpdateNotes h2,.BiQ1zG_hubUpdateNotes h3,.BiQ1zG_hubUpdateNotes h4,.BiQ1zG_hubUpdateNotes h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_hubUpdateNotes h2{font-size:14px}.BiQ1zG_hubUpdateNotes p{margin:4px 0}.BiQ1zG_hubUpdateNotes ul,.BiQ1zG_hubUpdateNotes ol{margin:4px 0;padding-left:18px}.BiQ1zG_hubUpdateNotes li{margin:2px 0}.BiQ1zG_hubUpdateNotes code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_hubUpdateNotes pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_hubUpdateNotes pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_hubUpdateNotes blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_hubUpdateNotes a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_hubUpdateNotes a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailModal{width:580px;max-width:calc(100vw - 48px)}.BiQ1zG_detailUpdateHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_detailGrid{flex-direction:column;gap:6px;display:flex}.BiQ1zG_detailRow{align-items:baseline;gap:10px;min-width:0;font-size:12px;line-height:20px;display:flex}.BiQ1zG_detailLabel{text-align:right;width:76px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_detailValue{min-width:0;color:var(--hub-text-primary);flex-wrap:wrap;flex:auto;align-items:baseline;gap:4px 6px;font-weight:500;display:flex}.BiQ1zG_detailMono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:500}.BiQ1zG_detailArrow{color:var(--hub-text-tertiary);align-items:baseline;gap:4px;display:inline-flex}.BiQ1zG_detailDim{color:var(--hub-text-tertiary);font-size:11px;font-weight:400}.BiQ1zG_detailLink{min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex}.BiQ1zG_detailLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailStars{color:#b45309;font-weight:600}.BiQ1zG_detailPath{min-width:0;color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:6px;flex:auto;justify-content:space-between;align-items:center;gap:6px;padding:3px 3px 3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_detailPath:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_detailPathText{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;overflow:hidden}.BiQ1zG_detailPathActions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.BiQ1zG_detailPathBtn{width:28px;height:28px;color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.BiQ1zG_detailPathBtn svg{width:15px;height:15px}.BiQ1zG_detailPathBtn:hover{color:#fff;background:var(--hub-brand);border-color:var(--hub-brand)}.BiQ1zG_detailStatusRunning,.BiQ1zG_detailStatusPending{border-radius:50%;flex-shrink:0;align-self:center;width:8px;height:8px}.BiQ1zG_detailStatusRunning{background:var(--hub-success)}.BiQ1zG_detailStatusPending{background:var(--hub-warning)}.BiQ1zG_detailStatusText{font-weight:500}";
|
|
715
721
|
const tagId$10 = "dsh-plugin/Modal.module.css";
|
|
716
722
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
|
|
717
723
|
const tag = document.createElement("style");
|
|
@@ -726,136 +732,136 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
726
732
|
css: css$10
|
|
727
733
|
});
|
|
728
734
|
var Modal_module_css_default = {
|
|
729
|
-
"
|
|
730
|
-
"aboutModal": "BiQ1zG_aboutModal",
|
|
731
|
-
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
732
|
-
"detailLink": "BiQ1zG_detailLink",
|
|
733
|
-
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
734
|
-
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
735
|
-
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
736
|
-
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
737
|
-
"queueRow": "BiQ1zG_queueRow",
|
|
738
|
-
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
735
|
+
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
739
736
|
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
737
|
+
"modalTitle": "BiQ1zG_modalTitle",
|
|
738
|
+
"noticeHead": "BiQ1zG_noticeHead",
|
|
739
|
+
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
740
|
+
"modalBody": "BiQ1zG_modalBody",
|
|
741
|
+
"resultDesc": "BiQ1zG_resultDesc",
|
|
742
|
+
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
743
|
+
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
744
|
+
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
745
|
+
"restartLater": "BiQ1zG_restartLater",
|
|
746
|
+
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
747
|
+
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
748
|
+
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
749
|
+
"progressFill": "BiQ1zG_progressFill",
|
|
750
|
+
"modalHead": "BiQ1zG_modalHead",
|
|
751
|
+
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
752
|
+
"detailDim": "BiQ1zG_detailDim",
|
|
753
|
+
"detailLink": "BiQ1zG_detailLink",
|
|
740
754
|
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
741
|
-
"
|
|
742
|
-
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
755
|
+
"modalClose": "BiQ1zG_modalClose",
|
|
743
756
|
"linkIcon": "BiQ1zG_linkIcon",
|
|
744
|
-
"
|
|
745
|
-
"
|
|
746
|
-
"
|
|
747
|
-
"
|
|
748
|
-
"
|
|
749
|
-
"
|
|
757
|
+
"modalCancel": "BiQ1zG_modalCancel",
|
|
758
|
+
"restartNow": "BiQ1zG_restartNow",
|
|
759
|
+
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
760
|
+
"failCopy": "BiQ1zG_failCopy",
|
|
761
|
+
"modalActions": "BiQ1zG_modalActions",
|
|
762
|
+
"errorHint": "BiQ1zG_errorHint",
|
|
763
|
+
"detailModal": "BiQ1zG_detailModal",
|
|
764
|
+
"progressTrack": "BiQ1zG_progressTrack",
|
|
765
|
+
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
766
|
+
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
767
|
+
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
768
|
+
"modalRow": "BiQ1zG_modalRow",
|
|
769
|
+
"overlay": "BiQ1zG_overlay",
|
|
770
|
+
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
771
|
+
"resultCheck": "BiQ1zG_resultCheck",
|
|
772
|
+
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
773
|
+
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
774
|
+
"progressText": "BiQ1zG_progressText",
|
|
775
|
+
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
776
|
+
"toastIn": "BiQ1zG_toastIn",
|
|
777
|
+
"toast": "BiQ1zG_toast",
|
|
778
|
+
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
779
|
+
"detailValue": "BiQ1zG_detailValue",
|
|
780
|
+
"failList": "BiQ1zG_failList",
|
|
781
|
+
"queueSection": "BiQ1zG_queueSection",
|
|
782
|
+
"modalCmd": "BiQ1zG_modalCmd",
|
|
783
|
+
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
784
|
+
"modal": "BiQ1zG_modal",
|
|
785
|
+
"queueRow": "BiQ1zG_queueRow",
|
|
786
|
+
"modalCopy": "BiQ1zG_modalCopy",
|
|
787
|
+
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
750
788
|
"modalInstall": "BiQ1zG_modalInstall",
|
|
751
|
-
"
|
|
789
|
+
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
752
790
|
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
791
|
+
"failClear": "BiQ1zG_failClear",
|
|
792
|
+
"detailGrid": "BiQ1zG_detailGrid",
|
|
753
793
|
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
754
|
-
"result": "BiQ1zG_result",
|
|
755
|
-
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
756
|
-
"modalWide": "BiQ1zG_modalWide",
|
|
757
|
-
"resultCheck": "BiQ1zG_resultCheck",
|
|
758
|
-
"noticeList": "BiQ1zG_noticeList",
|
|
759
|
-
"failEmpty": "BiQ1zG_failEmpty",
|
|
760
|
-
"detailLabel": "BiQ1zG_detailLabel",
|
|
761
|
-
"noticeRow": "BiQ1zG_noticeRow",
|
|
762
|
-
"modalLabel": "BiQ1zG_modalLabel",
|
|
763
|
-
"detailValue": "BiQ1zG_detailValue",
|
|
764
|
-
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
765
|
-
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
766
|
-
"toastFail": "BiQ1zG_toastFail",
|
|
767
|
-
"detailPath": "BiQ1zG_detailPath",
|
|
768
|
-
"noticeMain": "BiQ1zG_noticeMain",
|
|
769
|
-
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
770
|
-
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
771
|
-
"restartLater": "BiQ1zG_restartLater",
|
|
772
|
-
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
773
|
-
"modalDesc": "BiQ1zG_modalDesc",
|
|
774
|
-
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
775
794
|
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
776
|
-
"
|
|
777
|
-
"
|
|
778
|
-
"
|
|
779
|
-
"
|
|
780
|
-
"
|
|
795
|
+
"modalValue": "BiQ1zG_modalValue",
|
|
796
|
+
"noticeList": "BiQ1zG_noticeList",
|
|
797
|
+
"detailArrow": "BiQ1zG_detailArrow",
|
|
798
|
+
"modalIn": "BiQ1zG_modalIn",
|
|
799
|
+
"logModal": "BiQ1zG_logModal",
|
|
781
800
|
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
782
|
-
"
|
|
783
|
-
"errorHint": "BiQ1zG_errorHint",
|
|
784
|
-
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
785
|
-
"overlayIn": "BiQ1zG_overlayIn",
|
|
786
|
-
"progressHead": "BiQ1zG_progressHead",
|
|
801
|
+
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
787
802
|
"failHead": "BiQ1zG_failHead",
|
|
788
|
-
"
|
|
789
|
-
"
|
|
790
|
-
"
|
|
791
|
-
"
|
|
792
|
-
"
|
|
803
|
+
"noticeTime": "BiQ1zG_noticeTime",
|
|
804
|
+
"detailRow": "BiQ1zG_detailRow",
|
|
805
|
+
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
806
|
+
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
807
|
+
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
808
|
+
"failRepo": "BiQ1zG_failRepo",
|
|
809
|
+
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
810
|
+
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
811
|
+
"queuedHint": "BiQ1zG_queuedHint",
|
|
812
|
+
"detailPathText": "BiQ1zG_detailPathText",
|
|
813
|
+
"noticeMain": "BiQ1zG_noticeMain",
|
|
814
|
+
"errorTitle": "BiQ1zG_errorTitle",
|
|
815
|
+
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
793
816
|
"resultTitle": "BiQ1zG_resultTitle",
|
|
794
|
-
"
|
|
795
|
-
"
|
|
796
|
-
"
|
|
797
|
-
"
|
|
798
|
-
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
799
|
-
"modalHead": "BiQ1zG_modalHead",
|
|
800
|
-
"failCopy": "BiQ1zG_failCopy",
|
|
801
|
-
"modalIn": "BiQ1zG_modalIn",
|
|
802
|
-
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
817
|
+
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
818
|
+
"toastFail": "BiQ1zG_toastFail",
|
|
819
|
+
"aboutModal": "BiQ1zG_aboutModal",
|
|
820
|
+
"failEmpty": "BiQ1zG_failEmpty",
|
|
803
821
|
"modalLink": "BiQ1zG_modalLink",
|
|
822
|
+
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
823
|
+
"detailPath": "BiQ1zG_detailPath",
|
|
804
824
|
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
805
|
-
"failList": "BiQ1zG_failList",
|
|
806
|
-
"failRepo": "BiQ1zG_failRepo",
|
|
807
825
|
"trustHint": "BiQ1zG_trustHint",
|
|
826
|
+
"modalLabel": "BiQ1zG_modalLabel",
|
|
827
|
+
"aboutContent": "BiQ1zG_aboutContent",
|
|
828
|
+
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
829
|
+
"progress": "BiQ1zG_progress",
|
|
830
|
+
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
831
|
+
"stripCancel": "BiQ1zG_stripCancel",
|
|
832
|
+
"detailMono": "BiQ1zG_detailMono",
|
|
833
|
+
"progressHead": "BiQ1zG_progressHead",
|
|
834
|
+
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
835
|
+
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
836
|
+
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
837
|
+
"modalDesc": "BiQ1zG_modalDesc",
|
|
838
|
+
"detailLabel": "BiQ1zG_detailLabel",
|
|
839
|
+
"errorBox": "BiQ1zG_errorBox",
|
|
840
|
+
"noticeRow": "BiQ1zG_noticeRow",
|
|
808
841
|
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
809
|
-
"
|
|
810
|
-
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
811
|
-
"restartNow": "BiQ1zG_restartNow",
|
|
812
|
-
"errorTitle": "BiQ1zG_errorTitle",
|
|
813
|
-
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
814
|
-
"noticeTime": "BiQ1zG_noticeTime",
|
|
815
|
-
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
816
|
-
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
842
|
+
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
817
843
|
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
818
|
-
"
|
|
819
|
-
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
844
|
+
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
820
845
|
"errorModal": "BiQ1zG_errorModal",
|
|
821
|
-
"
|
|
822
|
-
"
|
|
823
|
-
"
|
|
824
|
-
"
|
|
825
|
-
"
|
|
826
|
-
"
|
|
827
|
-
"detailGrid": "BiQ1zG_detailGrid",
|
|
828
|
-
"failClear": "BiQ1zG_failClear",
|
|
829
|
-
"overlay": "BiQ1zG_overlay",
|
|
830
|
-
"modalValue": "BiQ1zG_modalValue",
|
|
831
|
-
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
832
|
-
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
833
|
-
"queueSection": "BiQ1zG_queueSection",
|
|
846
|
+
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
847
|
+
"helpModal": "BiQ1zG_helpModal",
|
|
848
|
+
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
849
|
+
"modalWide": "BiQ1zG_modalWide",
|
|
850
|
+
"overlayIn": "BiQ1zG_overlayIn",
|
|
851
|
+
"result": "BiQ1zG_result",
|
|
834
852
|
"failKind": "BiQ1zG_failKind",
|
|
835
|
-
"modalClose": "BiQ1zG_modalClose",
|
|
836
|
-
"modalBody": "BiQ1zG_modalBody",
|
|
837
|
-
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
838
|
-
"toast": "BiQ1zG_toast",
|
|
839
|
-
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
840
|
-
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
841
|
-
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
842
|
-
"noticeHead": "BiQ1zG_noticeHead",
|
|
843
|
-
"detailRow": "BiQ1zG_detailRow",
|
|
844
|
-
"detailDim": "BiQ1zG_detailDim",
|
|
845
|
-
"modalCmd": "BiQ1zG_modalCmd",
|
|
846
|
-
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
847
|
-
"detailPathText": "BiQ1zG_detailPathText",
|
|
848
|
-
"stripCancel": "BiQ1zG_stripCancel",
|
|
849
853
|
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
850
|
-
"
|
|
851
|
-
"
|
|
852
|
-
"
|
|
853
|
-
"
|
|
854
|
-
"
|
|
855
|
-
"
|
|
856
|
-
"
|
|
857
|
-
"
|
|
858
|
-
"
|
|
854
|
+
"detailStars": "BiQ1zG_detailStars",
|
|
855
|
+
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
856
|
+
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
857
|
+
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
858
|
+
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
859
|
+
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
860
|
+
"failRow": "BiQ1zG_failRow",
|
|
861
|
+
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
862
|
+
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
863
|
+
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
864
|
+
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon"
|
|
859
865
|
};
|
|
860
866
|
//#endregion
|
|
861
867
|
//#region src/client/logic/install-command.ts
|
|
@@ -907,9 +913,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
907
913
|
}
|
|
908
914
|
//#endregion
|
|
909
915
|
//#region src/client/logic/constants.ts
|
|
910
|
-
/**
|
|
916
|
+
/** 插件市场官网地址。 */
|
|
911
917
|
const SITE_URL = "https://dsh-plugin.org/";
|
|
912
|
-
/**
|
|
918
|
+
/** 插件市场源码仓库:头部右上角 GitHub 图标的跳转地址 */
|
|
913
919
|
const GITHUB_URL = "https://github.com/dshplugin/dsh-plugin-hub";
|
|
914
920
|
/**
|
|
915
921
|
* Hub 自我更新版本控制(接口中心 Pages:api.dsh-plugin.org,静态 JSON 发布)。
|
|
@@ -925,7 +931,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
925
931
|
* tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
|
|
926
932
|
* node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
|
|
927
933
|
*/
|
|
928
|
-
const PLUGIN_VERSION = "1.
|
|
934
|
+
const PLUGIN_VERSION = "1.4.0";
|
|
929
935
|
const CATEGORY_ORDER = [
|
|
930
936
|
"interface",
|
|
931
937
|
"session",
|
|
@@ -1555,10 +1561,22 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1555
1561
|
* 以 Worker 版本控制中心返回的「最新版本」为准,与当前运行的版本号比对——
|
|
1556
1562
|
* 构建时注入的 PLUGIN_VERSION 是运行 bundle 的真实版本;测试/异常场景缺失时
|
|
1557
1563
|
* 回退到安装时记录的版本。版本号不等即新版(版本号只在发版时变更,绝无降级场景)。
|
|
1564
|
+
*
|
|
1565
|
+
* 另加 pnpm 供应链安全门槛:新版本发布还不满 24 小时(+30 分钟缓冲)时,pnpm 会静默
|
|
1566
|
+
* 回退到旧版本,此时若提示「可更新」用户点了也更新不到。publishedAt 由接口中心按 npm
|
|
1567
|
+
* registry 真实发布时间下发(同源),据此判断最准。
|
|
1558
1568
|
*/
|
|
1559
1569
|
const hubHasUpdate = (() => {
|
|
1560
1570
|
if (!hubUpdateInfo) return false;
|
|
1561
|
-
|
|
1571
|
+
if (hubUpdateInfo.version === "1.4.0") return false;
|
|
1572
|
+
const publishedAt = hubUpdateInfo.publishedAt;
|
|
1573
|
+
if (publishedAt) {
|
|
1574
|
+
const publishedMs = Date.parse(publishedAt);
|
|
1575
|
+
if (!Number.isNaN(publishedMs)) {
|
|
1576
|
+
if (Date.now() - publishedMs < 882e5) return false;
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
return true;
|
|
1562
1580
|
})();
|
|
1563
1581
|
(0, react.useMemo)(() => {
|
|
1564
1582
|
if (!plugins) return [];
|
|
@@ -1746,14 +1764,31 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1746
1764
|
* - dshMissing:安装器 spawn 的 `dsh` 命令找不到(Windows cmd「不是内部或外部命令」/ POSIX
|
|
1747
1765
|
* 「command not found」/ spawn ENOENT)—— 是本机 DSH 未正确安装或不在 PATH,不是插件问题
|
|
1748
1766
|
* → 提示检查 PATH/重装 DSH,不引导提 Issue
|
|
1767
|
+
* - gitMissing:安装器调用 `git` 时找不到可执行文件(Windows cmd「'git' is not recognized」/
|
|
1768
|
+
* POSIX「git: command not found」/ spawn ENOENT)—— 是本机 Git 未安装或不在 PATH,不是插件
|
|
1769
|
+
* 问题。pnpm 会把缺失 git 报成 `ERR_PNPM_GIT_RESOLVE_FAILED`(git ls-remote failed),若只看
|
|
1770
|
+
* 错误码会误归插件侧失败;且 dshMissing 的通用「not recognized」模式会先把它吞成 dsh 缺失,
|
|
1771
|
+
* 所以必须在 dshMissing 之前判断(dsh-plugin-hub#21:Win 下装 git 源插件,
|
|
1772
|
+
* `'git' is not recognized` 被误归仓库问题引导去提 Issue)→ 提示安装 Git / 加入 PATH,不引导提 Issue
|
|
1749
1773
|
* - pnpmMissing:dsh 存在但调用的 `pnpm` 找不到(dsh 报 `pnpm not found on PATH`/POSIX
|
|
1750
1774
|
* 「pnpm: command not found」/ spawn ENOENT)—— 本机缺 pnpm(dsh 用 pnpm 管理 profile 插件),
|
|
1751
1775
|
* 不是插件问题(dsh-plugin-hub#13:Linux 下 `dsh: pnpm not found on PATH` 被误归插件侧失败)
|
|
1752
1776
|
* → 提示安装/开启 pnpm,不引导提 Issue
|
|
1777
|
+
* - npmMissing:全局 npm 安装通道(`npm install -g ...`)spawn 的 `npm` 命令找不到
|
|
1778
|
+
* (Windows cmd「'npm' is not recognized」/ POSIX「npm: command not found」/ spawn ENOENT)——
|
|
1779
|
+
* 本机 npm 未安装或不在 PATH,不是插件问题。dshMissing 的通用「not recognized」模式会把
|
|
1780
|
+
* `'npm' is not recognized` 吞成 dsh 缺失,所以必须在 dshMissing 之前判断
|
|
1781
|
+
* → 提示安装 npm(Node.js 自带)/加入 PATH,不引导提 Issue
|
|
1753
1782
|
* - pnpmStore:pnpm 存在但报 store 位置不匹配(`ERR_PNPM_UNEXPECTED_STORE` / `Unexpected store
|
|
1754
1783
|
* location`)—— profile 目录的 node_modules 是用不同大版本的 pnpm 生成的,当前 pnpm 不认,
|
|
1755
1784
|
* 任何插件装进该 profile 都会失败;不是插件问题(dsh-plugin-hub#14:macOS 下
|
|
1756
1785
|
* `ERR_PNPM_UNEXPECTED_STORE` 被误归插件侧失败)→ 提示清理 profile 依赖目录重建,不引导提 Issue
|
|
1786
|
+
* - pnpmPolicy:pnpm 11 的供应链安全策略拒绝安装(`ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION` /
|
|
1787
|
+
* `Minimum release age` —— 锁文件里包的发布时间还不满 24 小时被拒;`untrusted origin` —— 依赖来源未被
|
|
1788
|
+
* 本机 pnpm 信任)。拦的是「刚发布的新包」与「未被信任的来源」,装任何新插件都会撞墙,不是
|
|
1789
|
+
* 插件问题(dsh-plugin-hub#15/#16:用户装官方 dsh-plugin 也被这两类策略拦下并误归插件侧失败)
|
|
1790
|
+
* → 提示按子场景给解法(发布未满 24 小时 → `minimumReleaseAge: 0` 豁免或等满 24 小时;untrusted
|
|
1791
|
+
* origin → 删除 profile 的 node_modules + pnpm-lock.yaml 清掉不受信任来源后重装),不引导提 Issue
|
|
1757
1792
|
* - network:安装前连通性预检拦截(服务端 `[network]` 标记)或底层连接失败
|
|
1758
1793
|
* (ERR_PNPM_GIT_FETCH_FAILED / ETIMEDOUT / DNS 解析 / TLS 握手 / 代理拒绝)——
|
|
1759
1794
|
* 是本机网络不通/被墙/代理有问题,不是插件问题 → 提示检查网络,不引导提 Issue
|
|
@@ -1768,8 +1803,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1768
1803
|
function classifyFailure(message) {
|
|
1769
1804
|
if (/\[npm-too-low\]|edgesOut/i.test(message)) return "npmTooOld";
|
|
1770
1805
|
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";
|
|
1806
|
+
if (/\[git-missing\]|spawn git ENOENT|'git' 不是内部或外部命令|"git" 不是内部或外部命令|git['"]?\s*is not recognized|git: command not found/i.test(message)) return "gitMissing";
|
|
1807
|
+
if (/\[npm-missing\]|spawn npm ENOENT|'npm' 不是内部或外部命令|"npm" 不是内部或外部命令|npm['"]?\s*is not recognized|npm: command not found/i.test(message)) return "npmMissing";
|
|
1771
1808
|
if (/\[dsh-missing\]|不是内部或外部命令|is not recognized as an internal or external command|command not found|spawn dsh ENOENT/i.test(message)) return "dshMissing";
|
|
1772
1809
|
if (/ERR_PNPM_UNEXPECTED_STORE|Unexpected store location/i.test(message)) return "pnpmStore";
|
|
1810
|
+
if (/ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION|Minimum release age|untrusted origin/i.test(message)) return "pnpmPolicy";
|
|
1773
1811
|
if (/ERR_PNPM_IGNORED_BUILDS|Ignored build scripts:|ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED/i.test(message)) return "pnpmIgnoredBuild";
|
|
1774
1812
|
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";
|
|
1775
1813
|
if (/\[packaging\]|entry file missing/i.test(message)) return "pluginPrepare";
|
|
@@ -1865,6 +1903,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1865
1903
|
case "dshMissing": return "dsh command not found on the user machine";
|
|
1866
1904
|
case "pnpmMissing": return "pnpm command not found on the user machine";
|
|
1867
1905
|
case "pnpmStore": return "pnpm store version mismatch on the user machine";
|
|
1906
|
+
case "pnpmPolicy": return "pnpm supply-chain policy blocked the install on the user machine";
|
|
1868
1907
|
case "pnpmIgnoredBuild": return "build scripts blocked by pnpm allowlist";
|
|
1869
1908
|
case "pluginPrepare": return "plugin distribution incomplete";
|
|
1870
1909
|
case "network": return "network failure on the user side";
|
|
@@ -1883,7 +1922,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1883
1922
|
function pluginIssueUrl(repo, message, env, command, attempts) {
|
|
1884
1923
|
const kind = classifyFailure(message);
|
|
1885
1924
|
const title = `[dsh-plugin.org | dsh-plugin-hub] ${reasonTitleOf(kind)}: ${repo}`;
|
|
1886
|
-
const reason = /\[packaging\]/i.test(message) ? "plugin distribution is incomplete — the entry file declared in package.json is missing from the published package (github tarball or npm package); please commit build output or publish a complete package" : kind === "network" ? "network connectivity issue on the user side (DNS, proxy, firewall, or a blocked connection)" : kind === "pluginPrepare" ? "plugin prepare/build script failed during install (packaging/distribution issue)" : kind === "pnpmIgnoredBuild" ? "plugin depends on a native module whose build script pnpm blocks by default (use a prebuilt variant)" : "plugin-side install failure";
|
|
1925
|
+
const reason = /\[packaging\]/i.test(message) ? "plugin distribution is incomplete — the entry file declared in package.json is missing from the published package (github tarball or npm package); please commit build output or publish a complete package" : kind === "network" ? "network connectivity issue on the user side (DNS, proxy, firewall, or a blocked connection)" : kind === "pluginPrepare" ? "plugin prepare/build script failed during install (packaging/distribution issue)" : kind === "pnpmIgnoredBuild" ? "plugin depends on a native module whose build script pnpm blocks by default (use a prebuilt variant)" : kind === "pnpmPolicy" ? "the pnpm supply-chain policy on the user machine blocked the install (minimum release age for freshly published packages / untrusted origin)" : "plugin-side install failure";
|
|
1887
1926
|
const code = coreErrorCode(message);
|
|
1888
1927
|
const build = (coreChars) => {
|
|
1889
1928
|
const body = [
|
|
@@ -1891,8 +1930,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1891
1930
|
`- Cause: ${reason}`,
|
|
1892
1931
|
...code ? [`- Key error: \`${code}\``] : [],
|
|
1893
1932
|
"",
|
|
1894
|
-
`## [DSH Plugin
|
|
1895
|
-
`本错误信息由 [dsh-plugin-hub](${GITHUB_URL})
|
|
1933
|
+
`## [DSH Plugin 插件市场](${SITE_URL}) · 安装 Plugin 失败错误信息`,
|
|
1934
|
+
`本错误信息由 [dsh-plugin-hub](${GITHUB_URL}) 插件市场的安装程序自动生成,随本次安装失败一并提交。`,
|
|
1896
1935
|
`- 实际执行的安装命令:\`${command ?? `dsh plugin${env?.profile ? ` --profile ${env.profile}` : ""} add git+https://github.com/${repo}.git`}\``,
|
|
1897
1936
|
`- 执行结果:安装失败,未能安装该插件。`,
|
|
1898
1937
|
...attempts && attempts.length > 0 ? [
|
|
@@ -1954,15 +1993,16 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1954
1993
|
* Website: https://dsh-plugin.org
|
|
1955
1994
|
* GitHub: https://github.com/dshplugin/dsh-plugin-hub
|
|
1956
1995
|
*
|
|
1957
|
-
* Language state for the section:
|
|
1958
|
-
*
|
|
1959
|
-
*
|
|
1960
|
-
*
|
|
1996
|
+
* Language state for the section: the Hub shares the host (system) locale —
|
|
1997
|
+
* the header language toggle writes the host locale preference via setLocale,
|
|
1998
|
+
* so the host chrome (left sidebar, settings dialog) and the Hub panel switch
|
|
1999
|
+
* together instead of drifting apart. Exposes the localized dictionary lookup
|
|
2000
|
+
* `t()` plus the zh/en language flag and the /zh/ URL path prefix.
|
|
1961
2001
|
*/
|
|
1962
2002
|
function useLanguage(locale) {
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
const lang =
|
|
2003
|
+
const [, setRev] = (0, react.useState)(0);
|
|
2004
|
+
(0, react.useEffect)(() => locale.subscribe(() => setRev((r) => r + 1)), [locale]);
|
|
2005
|
+
const lang = locale.getSnapshot().active;
|
|
1966
2006
|
const langKey = lang === "en" ? "en" : "zh";
|
|
1967
2007
|
const langPath = langPathOf(lang);
|
|
1968
2008
|
const dict = langKey === "en" ? en : zh;
|
|
@@ -1975,7 +2015,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1975
2015
|
langKey,
|
|
1976
2016
|
langPath,
|
|
1977
2017
|
t,
|
|
1978
|
-
toggleLang: () =>
|
|
2018
|
+
toggleLang: () => locale.setLocale(lang === "en" ? "zh" : "en")
|
|
1979
2019
|
};
|
|
1980
2020
|
}
|
|
1981
2021
|
//#endregion
|
|
@@ -2787,7 +2827,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2787
2827
|
strokeLinejoin: "round"
|
|
2788
2828
|
}));
|
|
2789
2829
|
}
|
|
2790
|
-
/**
|
|
2830
|
+
/** 插件市场图标:店面货架(stroke 继承 currentColor),一级导航「插件市场」tab 用。 */
|
|
2791
2831
|
function MarketIcon() {
|
|
2792
2832
|
return (0, react.createElement)("svg", {
|
|
2793
2833
|
viewBox: "0 0 24 24",
|
|
@@ -3265,7 +3305,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3265
3305
|
}, repo) : null, (0, react.createElement)("button", {
|
|
3266
3306
|
className: Modal_module_css_default.errorCopySoft,
|
|
3267
3307
|
onClick: () => onCopy(copyText)
|
|
3268
|
-
}, 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 === "pnpmStore" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint")) : failureKind === "network" ? (0, react.createElement)("div", null, [
|
|
3308
|
+
}, t("errorCopy"))), (0, react.createElement)("pre", { className: Modal_module_css_default.errorBox }, message), failureKind === "npmTooOld" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(npmVersion ? "failNpmTooLowV" : "failNpmTooLow", npmVersion ? { v: npmVersion } : void 0)) : failureKind === "dshMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failDshMissingHint")) : failureKind === "gitMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failGitMissingHint")) : failureKind === "pnpmMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmMissingHint")) : failureKind === "npmMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNpmMissingHint")) : failureKind === "pnpmStore" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint")) : failureKind === "pnpmPolicy" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmPolicyHint")) : failureKind === "network" ? (0, react.createElement)("div", null, [
|
|
3269
3309
|
(() => {
|
|
3270
3310
|
const target = unreachableTargetOf(message);
|
|
3271
3311
|
return target ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failNetworkTarget", { url: target })) : null;
|
|
@@ -3294,7 +3334,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3294
3334
|
}
|
|
3295
3335
|
/** 全局反馈 Toast:复制成功(反色)/ 安装完成(反色)/ 安装失败(红色)/ 卸载结果 */
|
|
3296
3336
|
function Toast({ toast, t }) {
|
|
3297
|
-
const text = toast.kind === "copied" ? t("toastCopied") : toast.kind === "errCopied" ? t("errCopied") : toast.kind === "done" ? t("installDone") : toast.kind === "fail" ? t("installFail") : toast.kind === "removed" ? t("uninstallDone") : toast.kind === "revealFail" ? t("openFolderFail") :
|
|
3337
|
+
const text = toast.kind === "copied" ? t("toastCopied") : toast.kind === "errCopied" ? t("errCopied") : toast.kind === "done" ? t("installDone") : toast.kind === "fail" ? t("installFail") : toast.kind === "removed" ? t("uninstallDone") : toast.kind === "revealFail" ? t("openFolderFail") : t("uninstallFail");
|
|
3298
3338
|
const fail = toast.kind === "fail" || toast.kind === "removeFail" || toast.kind === "revealFail";
|
|
3299
3339
|
return (0, react.createElement)("div", {
|
|
3300
3340
|
key: toast.id,
|
|
@@ -3817,8 +3857,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3817
3857
|
return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(v ? "failNpmTooLowV" : "failNpmTooLow", v ? { v } : void 0));
|
|
3818
3858
|
}
|
|
3819
3859
|
if (kind === "dshMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failDshMissingHint"));
|
|
3860
|
+
if (kind === "gitMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failGitMissingHint"));
|
|
3820
3861
|
if (kind === "pnpmMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmMissingHint"));
|
|
3862
|
+
if (kind === "npmMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNpmMissingHint"));
|
|
3821
3863
|
if (kind === "pnpmStore") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint"));
|
|
3864
|
+
if (kind === "pnpmPolicy") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmPolicyHint"));
|
|
3822
3865
|
if (kind === "network") return (0, react.createElement)("div", null, [
|
|
3823
3866
|
(() => {
|
|
3824
3867
|
const target = unreachableTargetOf(r.message);
|
|
@@ -4024,40 +4067,40 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4024
4067
|
css: css$9
|
|
4025
4068
|
});
|
|
4026
4069
|
var List_module_css_default = {
|
|
4027
|
-
"date": "_3XaZHa_date",
|
|
4028
|
-
"retryBtn": "_3XaZHa_retryBtn",
|
|
4029
|
-
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4030
|
-
"installBtn": "_3XaZHa_installBtn",
|
|
4031
|
-
"state": "_3XaZHa_state",
|
|
4032
|
-
"stateTitle": "_3XaZHa_stateTitle",
|
|
4033
|
-
"cardMain": "_3XaZHa_cardMain",
|
|
4034
|
-
"stats": "_3XaZHa_stats",
|
|
4035
|
-
"topics": "_3XaZHa_topics",
|
|
4036
4070
|
"body": "_3XaZHa_body",
|
|
4037
|
-
"
|
|
4038
|
-
"
|
|
4039
|
-
"
|
|
4040
|
-
"diagBtn": "_3XaZHa_diagBtn",
|
|
4041
|
-
"desc": "_3XaZHa_desc",
|
|
4042
|
-
"verified": "_3XaZHa_verified",
|
|
4071
|
+
"topics": "_3XaZHa_topics",
|
|
4072
|
+
"detailBtn": "_3XaZHa_detailBtn",
|
|
4073
|
+
"cardTitle": "_3XaZHa_cardTitle",
|
|
4043
4074
|
"list": "_3XaZHa_list",
|
|
4075
|
+
"stateActions": "_3XaZHa_stateActions",
|
|
4076
|
+
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
4077
|
+
"verified": "_3XaZHa_verified",
|
|
4078
|
+
"state": "_3XaZHa_state",
|
|
4044
4079
|
"footLink": "_3XaZHa_footLink",
|
|
4080
|
+
"updateBadge": "_3XaZHa_updateBadge",
|
|
4081
|
+
"versionBadge": "_3XaZHa_versionBadge",
|
|
4082
|
+
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4083
|
+
"stats": "_3XaZHa_stats",
|
|
4045
4084
|
"star": "_3XaZHa_star",
|
|
4085
|
+
"desc": "_3XaZHa_desc",
|
|
4086
|
+
"date": "_3XaZHa_date",
|
|
4087
|
+
"actions": "_3XaZHa_actions",
|
|
4088
|
+
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
4089
|
+
"cardMain": "_3XaZHa_cardMain",
|
|
4046
4090
|
"topic": "_3XaZHa_topic",
|
|
4047
|
-
"
|
|
4048
|
-
"
|
|
4049
|
-
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
4091
|
+
"stateDesc": "_3XaZHa_stateDesc",
|
|
4092
|
+
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4050
4093
|
"cardHead": "_3XaZHa_cardHead",
|
|
4094
|
+
"stateTitle": "_3XaZHa_stateTitle",
|
|
4095
|
+
"card": "_3XaZHa_card",
|
|
4051
4096
|
"footer": "_3XaZHa_footer",
|
|
4052
|
-
"
|
|
4053
|
-
"
|
|
4054
|
-
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
4055
|
-
"stateActions": "_3XaZHa_stateActions",
|
|
4056
|
-
"detailBtn": "_3XaZHa_detailBtn",
|
|
4057
|
-
"actions": "_3XaZHa_actions",
|
|
4058
|
-
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
4097
|
+
"cardSide": "_3XaZHa_cardSide",
|
|
4098
|
+
"diagBtn": "_3XaZHa_diagBtn",
|
|
4059
4099
|
"fork": "_3XaZHa_fork",
|
|
4060
|
-
"
|
|
4100
|
+
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
4101
|
+
"retryBtn": "_3XaZHa_retryBtn",
|
|
4102
|
+
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
4103
|
+
"installBtn": "_3XaZHa_installBtn"
|
|
4061
4104
|
};
|
|
4062
4105
|
//#endregion
|
|
4063
4106
|
//#region src/client/hooks/useIncrementalList.ts
|
|
@@ -4068,7 +4111,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4068
4111
|
*
|
|
4069
4112
|
* Incremental list: renders only the first batch of a (potentially huge)
|
|
4070
4113
|
* result set and appends the next batch whenever the end sentinel scrolls
|
|
4071
|
-
* into view, so the plugin
|
|
4114
|
+
* into view, so the plugin market never mounts thousands of cards at once.
|
|
4072
4115
|
* The items reference is the list identity — category / search / sort
|
|
4073
4116
|
* changes produce a new array, which resets the window to the first batch.
|
|
4074
4117
|
*/
|
|
@@ -4264,15 +4307,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4264
4307
|
css: css$8
|
|
4265
4308
|
});
|
|
4266
4309
|
var SectionTabs_module_css_default = {
|
|
4267
|
-
"tabCountActive": "_7tvizq_tabCountActive",
|
|
4268
|
-
"noticeBtn": "_7tvizq_noticeBtn",
|
|
4269
|
-
"tab": "_7tvizq_tab",
|
|
4270
|
-
"tabIcon": "_7tvizq_tabIcon",
|
|
4271
4310
|
"root": "_7tvizq_root",
|
|
4311
|
+
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4312
|
+
"tabIcon": "_7tvizq_tabIcon",
|
|
4272
4313
|
"tabActive": "_7tvizq_tabActive",
|
|
4314
|
+
"tabCountActive": "_7tvizq_tabCountActive",
|
|
4315
|
+
"noticeCount": "_7tvizq_noticeCount",
|
|
4316
|
+
"noticeBtn": "_7tvizq_noticeBtn",
|
|
4273
4317
|
"tabCount": "_7tvizq_tabCount",
|
|
4274
|
-
"
|
|
4275
|
-
"noticeCount": "_7tvizq_noticeCount"
|
|
4318
|
+
"tab": "_7tvizq_tab"
|
|
4276
4319
|
};
|
|
4277
4320
|
//#endregion
|
|
4278
4321
|
//#region src/client/components/layout/SectionTabs.tsx
|
|
@@ -4349,42 +4392,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4349
4392
|
css: css$7
|
|
4350
4393
|
});
|
|
4351
4394
|
var InstalledView_module_css_default = {
|
|
4352
|
-
"
|
|
4353
|
-
"
|
|
4395
|
+
"segLabel": "_1nXeGW_segLabel",
|
|
4396
|
+
"searchWrap": "_1nXeGW_searchWrap",
|
|
4397
|
+
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
4398
|
+
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
4354
4399
|
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4355
|
-
"
|
|
4356
|
-
"
|
|
4357
|
-
"
|
|
4358
|
-
"rowCategory": "_1nXeGW_rowCategory",
|
|
4359
|
-
"rowActions": "_1nXeGW_rowActions",
|
|
4360
|
-
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4361
|
-
"versionBadge": "_1nXeGW_versionBadge",
|
|
4400
|
+
"empty": "_1nXeGW_empty",
|
|
4401
|
+
"segBtn": "_1nXeGW_segBtn",
|
|
4402
|
+
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4362
4403
|
"updateBadge": "_1nXeGW_updateBadge",
|
|
4363
|
-
"
|
|
4364
|
-
"row": "_1nXeGW_row",
|
|
4365
|
-
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
4404
|
+
"rowRepo": "_1nXeGW_rowRepo",
|
|
4366
4405
|
"rowMeta": "_1nXeGW_rowMeta",
|
|
4367
|
-
"
|
|
4368
|
-
"
|
|
4406
|
+
"root": "_1nXeGW_root",
|
|
4407
|
+
"rowRestart": "_1nXeGW_rowRestart",
|
|
4369
4408
|
"rowDetail": "_1nXeGW_rowDetail",
|
|
4370
|
-
"
|
|
4371
|
-
"
|
|
4372
|
-
"
|
|
4373
|
-
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4409
|
+
"rowTitle": "_1nXeGW_rowTitle",
|
|
4410
|
+
"toolbar": "_1nXeGW_toolbar",
|
|
4411
|
+
"searchInput": "_1nXeGW_searchInput",
|
|
4374
4412
|
"statusDot": "_1nXeGW_statusDot",
|
|
4375
|
-
"
|
|
4413
|
+
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4414
|
+
"statusPending": "_1nXeGW_statusPending",
|
|
4415
|
+
"rowDesc": "_1nXeGW_rowDesc",
|
|
4416
|
+
"row": "_1nXeGW_row",
|
|
4417
|
+
"versionBadge": "_1nXeGW_versionBadge",
|
|
4418
|
+
"rowActions": "_1nXeGW_rowActions",
|
|
4419
|
+
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4420
|
+
"rowMain": "_1nXeGW_rowMain",
|
|
4421
|
+
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4422
|
+
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
4423
|
+
"list": "_1nXeGW_list",
|
|
4376
4424
|
"segGroup": "_1nXeGW_segGroup",
|
|
4377
|
-
"
|
|
4378
|
-
"rowRestart": "_1nXeGW_rowRestart",
|
|
4379
|
-
"rowRepo": "_1nXeGW_rowRepo",
|
|
4380
|
-
"segLabel": "_1nXeGW_segLabel",
|
|
4381
|
-
"empty": "_1nXeGW_empty",
|
|
4382
|
-
"segBtn": "_1nXeGW_segBtn",
|
|
4425
|
+
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
4383
4426
|
"exampleBadge": "_1nXeGW_exampleBadge",
|
|
4384
|
-
"
|
|
4385
|
-
"
|
|
4386
|
-
"
|
|
4387
|
-
"
|
|
4427
|
+
"exampleRow": "_1nXeGW_exampleRow",
|
|
4428
|
+
"statusInactive": "_1nXeGW_statusInactive",
|
|
4429
|
+
"rowCategory": "_1nXeGW_rowCategory",
|
|
4430
|
+
"segRow": "_1nXeGW_segRow"
|
|
4388
4431
|
};
|
|
4389
4432
|
//#endregion
|
|
4390
4433
|
//#region src/client/components/views/InstalledView.tsx
|
|
@@ -4630,28 +4673,28 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4630
4673
|
css: css$6
|
|
4631
4674
|
});
|
|
4632
4675
|
var CustomInstallView_module_css_default = {
|
|
4676
|
+
"root": "zISxCG_root",
|
|
4677
|
+
"installRow": "zISxCG_installRow",
|
|
4633
4678
|
"installBtn": "zISxCG_installBtn",
|
|
4634
|
-
"helpLine": "zISxCG_helpLine",
|
|
4635
|
-
"channelOffText": "zISxCG_channelOffText",
|
|
4636
|
-
"installInputError": "zISxCG_installInputError",
|
|
4637
|
-
"installInsertBtn": "zISxCG_installInsertBtn",
|
|
4638
4679
|
"installExample": "zISxCG_installExample",
|
|
4680
|
+
"installCardHead": "zISxCG_installCardHead",
|
|
4639
4681
|
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
4682
|
+
"installInput": "zISxCG_installInput",
|
|
4683
|
+
"helpLine": "zISxCG_helpLine",
|
|
4684
|
+
"helpCmd": "zISxCG_helpCmd",
|
|
4640
4685
|
"installCards": "zISxCG_installCards",
|
|
4641
|
-
"
|
|
4642
|
-
"channelOff": "zISxCG_channelOff",
|
|
4643
|
-
"desc": "zISxCG_desc",
|
|
4686
|
+
"installError": "zISxCG_installError",
|
|
4644
4687
|
"installCard": "zISxCG_installCard",
|
|
4645
|
-
"helpCmd": "zISxCG_helpCmd",
|
|
4646
|
-
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4647
4688
|
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4648
|
-
"installRow": "zISxCG_installRow",
|
|
4649
|
-
"installLabel": "zISxCG_installLabel",
|
|
4650
|
-
"installInput": "zISxCG_installInput",
|
|
4651
|
-
"installError": "zISxCG_installError",
|
|
4652
|
-
"root": "zISxCG_root",
|
|
4653
4689
|
"helpBody": "zISxCG_helpBody",
|
|
4654
|
-
"
|
|
4690
|
+
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4691
|
+
"installInsertBtn": "zISxCG_installInsertBtn",
|
|
4692
|
+
"helpNote": "zISxCG_helpNote",
|
|
4693
|
+
"installInputError": "zISxCG_installInputError",
|
|
4694
|
+
"installLabel": "zISxCG_installLabel",
|
|
4695
|
+
"channelOff": "zISxCG_channelOff",
|
|
4696
|
+
"channelOffText": "zISxCG_channelOffText",
|
|
4697
|
+
"desc": "zISxCG_desc"
|
|
4655
4698
|
};
|
|
4656
4699
|
//#endregion
|
|
4657
4700
|
//#region src/client/components/views/CustomInstallView.tsx
|
|
@@ -4941,30 +4984,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4941
4984
|
css: css$5
|
|
4942
4985
|
});
|
|
4943
4986
|
var SettingsView_module_css_default = {
|
|
4944
|
-
"proxyHint": "_506LLG_proxyHint",
|
|
4945
|
-
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
4946
|
-
"resetBtn": "_506LLG_resetBtn",
|
|
4947
|
-
"proxyControl": "_506LLG_proxyControl",
|
|
4948
|
-
"settingTitle": "_506LLG_settingTitle",
|
|
4949
|
-
"settingLabel": "_506LLG_settingLabel",
|
|
4950
4987
|
"navIcon": "_506LLG_navIcon",
|
|
4951
|
-
"card": "_506LLG_card",
|
|
4952
|
-
"navItemActive": "_506LLG_navItemActive",
|
|
4953
4988
|
"pageTitle": "_506LLG_pageTitle",
|
|
4989
|
+
"sidebar": "_506LLG_sidebar",
|
|
4990
|
+
"settingControl": "_506LLG_settingControl",
|
|
4991
|
+
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
4992
|
+
"settingTitle": "_506LLG_settingTitle",
|
|
4993
|
+
"settingRowStack": "_506LLG_settingRowStack",
|
|
4954
4994
|
"navItem": "_506LLG_navItem",
|
|
4955
|
-
"
|
|
4956
|
-
"pageDesc": "_506LLG_pageDesc",
|
|
4957
|
-
"textInput": "_506LLG_textInput",
|
|
4995
|
+
"content": "_506LLG_content",
|
|
4958
4996
|
"controlDropdown": "_506LLG_controlDropdown",
|
|
4959
|
-
"
|
|
4997
|
+
"settingLabel": "_506LLG_settingLabel",
|
|
4998
|
+
"card": "_506LLG_card",
|
|
4960
4999
|
"pageHeader": "_506LLG_pageHeader",
|
|
4961
|
-
"
|
|
4962
|
-
"
|
|
4963
|
-
"
|
|
4964
|
-
"
|
|
4965
|
-
"settingDesc": "_506LLG_settingDesc",
|
|
5000
|
+
"pageDesc": "_506LLG_pageDesc",
|
|
5001
|
+
"proxyHint": "_506LLG_proxyHint",
|
|
5002
|
+
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
5003
|
+
"navItemActive": "_506LLG_navItemActive",
|
|
4966
5004
|
"root": "_506LLG_root",
|
|
4967
|
-
"
|
|
5005
|
+
"settingDesc": "_506LLG_settingDesc",
|
|
5006
|
+
"proxyControl": "_506LLG_proxyControl",
|
|
5007
|
+
"resetBtn": "_506LLG_resetBtn",
|
|
5008
|
+
"textInput": "_506LLG_textInput",
|
|
5009
|
+
"settingControlStack": "_506LLG_settingControlStack",
|
|
5010
|
+
"settingRow": "_506LLG_settingRow"
|
|
4968
5011
|
};
|
|
4969
5012
|
//#endregion
|
|
4970
5013
|
//#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
|
|
@@ -4983,18 +5026,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4983
5026
|
css: css$4
|
|
4984
5027
|
});
|
|
4985
5028
|
var Dropdown_module_css_default = {
|
|
4986
|
-
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
4987
|
-
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
4988
|
-
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
4989
5029
|
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
4990
|
-
"
|
|
4991
|
-
"
|
|
4992
|
-
"
|
|
5030
|
+
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
5031
|
+
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
5032
|
+
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
4993
5033
|
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
4994
5034
|
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
4995
|
-
"
|
|
4996
|
-
"
|
|
4997
|
-
"
|
|
5035
|
+
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
5036
|
+
"dropdown": "B_Gxsq_dropdown",
|
|
5037
|
+
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
5038
|
+
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
5039
|
+
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
5040
|
+
"dropdownCount": "B_Gxsq_dropdownCount"
|
|
4998
5041
|
};
|
|
4999
5042
|
//#endregion
|
|
5000
5043
|
//#region \0dsh-css:src/client/styles/Toggle.module.css.mjs
|
|
@@ -5013,9 +5056,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5013
5056
|
css: css$3
|
|
5014
5057
|
});
|
|
5015
5058
|
var Toggle_module_css_default = {
|
|
5059
|
+
"knob": "k-cD4G_knob",
|
|
5016
5060
|
"toggle": "k-cD4G_toggle",
|
|
5017
|
-
"toggleOn": "k-cD4G_toggleOn"
|
|
5018
|
-
"knob": "k-cD4G_knob"
|
|
5061
|
+
"toggleOn": "k-cD4G_toggleOn"
|
|
5019
5062
|
};
|
|
5020
5063
|
//#endregion
|
|
5021
5064
|
//#region src/client/components/ui/Toggle.tsx
|
|
@@ -5115,29 +5158,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5115
5158
|
css: css$2
|
|
5116
5159
|
});
|
|
5117
5160
|
var DiagnosticsView_module_css_default = {
|
|
5118
|
-
"badgeOk": "k9eRya_badgeOk",
|
|
5119
|
-
"envRow": "k9eRya_envRow",
|
|
5120
|
-
"meta": "k9eRya_meta",
|
|
5121
|
-
"badgeRunning": "k9eRya_badgeRunning",
|
|
5122
|
-
"badgeFail": "k9eRya_badgeFail",
|
|
5123
|
-
"summary": "k9eRya_summary",
|
|
5124
5161
|
"head": "k9eRya_head",
|
|
5125
|
-
"
|
|
5126
|
-
"
|
|
5162
|
+
"envLabel": "k9eRya_envLabel",
|
|
5163
|
+
"diagPulse": "k9eRya_diagPulse",
|
|
5127
5164
|
"summaryRunning": "k9eRya_summaryRunning",
|
|
5128
|
-
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5129
|
-
"row": "k9eRya_row",
|
|
5130
|
-
"summaryFail": "k9eRya_summaryFail",
|
|
5131
|
-
"envDesc": "k9eRya_envDesc",
|
|
5132
5165
|
"runBtn": "k9eRya_runBtn",
|
|
5133
|
-
"
|
|
5166
|
+
"badgeFail": "k9eRya_badgeFail",
|
|
5167
|
+
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5168
|
+
"badgeOk": "k9eRya_badgeOk",
|
|
5169
|
+
"summary": "k9eRya_summary",
|
|
5134
5170
|
"envTitle": "k9eRya_envTitle",
|
|
5135
|
-
"
|
|
5136
|
-
"
|
|
5171
|
+
"summaryOk": "k9eRya_summaryOk",
|
|
5172
|
+
"summaryFail": "k9eRya_summaryFail",
|
|
5137
5173
|
"badge": "k9eRya_badge",
|
|
5174
|
+
"meta": "k9eRya_meta",
|
|
5175
|
+
"display": "k9eRya_display",
|
|
5176
|
+
"envRow": "k9eRya_envRow",
|
|
5177
|
+
"headHint": "k9eRya_headHint",
|
|
5178
|
+
"badgeRunning": "k9eRya_badgeRunning",
|
|
5138
5179
|
"badgeIdle": "k9eRya_badgeIdle",
|
|
5139
5180
|
"panel": "k9eRya_panel",
|
|
5140
|
-
"
|
|
5181
|
+
"row": "k9eRya_row",
|
|
5182
|
+
"name": "k9eRya_name",
|
|
5183
|
+
"envDesc": "k9eRya_envDesc"
|
|
5141
5184
|
};
|
|
5142
5185
|
//#endregion
|
|
5143
5186
|
//#region src/client/components/views/DiagnosticsView.tsx
|
|
@@ -5175,7 +5218,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5175
5218
|
},
|
|
5176
5219
|
{
|
|
5177
5220
|
key: "github",
|
|
5178
|
-
display: "github.com
|
|
5221
|
+
display: "github.com",
|
|
5179
5222
|
nameKey: "diagGithub",
|
|
5180
5223
|
status: "idle",
|
|
5181
5224
|
ms: null,
|
|
@@ -5183,7 +5226,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5183
5226
|
},
|
|
5184
5227
|
{
|
|
5185
5228
|
key: "catalog",
|
|
5186
|
-
display: "
|
|
5229
|
+
display: "",
|
|
5187
5230
|
nameKey: "diagCatalog",
|
|
5188
5231
|
status: "idle",
|
|
5189
5232
|
ms: null,
|
|
@@ -5292,7 +5335,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5292
5335
|
disabled: r.status === "running",
|
|
5293
5336
|
onClick: () => run(r.key),
|
|
5294
5337
|
title: t("diagRecheck")
|
|
5295
|
-
}, (0, react.createElement)("span", { className: DiagnosticsView_module_css_default.name }, t(r.nameKey)), (0, react.createElement)("span", { className: DiagnosticsView_module_css_default.display }, r.display !== "" ? r.display : t("diagNpmUnset")), (0, react.createElement)("span", { className: DiagnosticsView_module_css_default.meta }, r.status === "ok" && r.ms !== null ? `${r.ms} ms` : ""), badge);
|
|
5338
|
+
}, (0, react.createElement)("span", { className: DiagnosticsView_module_css_default.name }, t(r.nameKey)), (0, react.createElement)("span", { className: DiagnosticsView_module_css_default.display }, r.key === "catalog" ? t("diagCatalogTarget") : r.display !== "" ? r.display : t("diagNpmUnset")), (0, react.createElement)("span", { className: DiagnosticsView_module_css_default.meta }, r.status === "ok" && r.ms !== null ? `${r.ms} ms` : ""), badge);
|
|
5296
5339
|
}), (0, react.createElement)("div", { className: `${DiagnosticsView_module_css_default.summary} ${anyRunning ? DiagnosticsView_module_css_default.summaryRunning : allOk ? DiagnosticsView_module_css_default.summaryOk : DiagnosticsView_module_css_default.summaryFail}` }, anyRunning ? t("diagSummaryRunning") : allOk ? t("diagSummaryOk") : t("diagSummaryFail")));
|
|
5297
5340
|
}
|
|
5298
5341
|
//#endregion
|
|
@@ -5312,57 +5355,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5312
5355
|
css: css$1
|
|
5313
5356
|
});
|
|
5314
5357
|
var LogsView_module_css_default = {
|
|
5315
|
-
"
|
|
5316
|
-
"
|
|
5317
|
-
"
|
|
5318
|
-
"
|
|
5319
|
-
"
|
|
5320
|
-
"
|
|
5358
|
+
"searchInput": "_3j77BW_searchInput",
|
|
5359
|
+
"time": "_3j77BW_time",
|
|
5360
|
+
"badgeWarn": "_3j77BW_badgeWarn",
|
|
5361
|
+
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5362
|
+
"catSystem": "_3j77BW_catSystem",
|
|
5363
|
+
"search": "_3j77BW_search",
|
|
5364
|
+
"catInstall": "_3j77BW_catInstall",
|
|
5365
|
+
"pathDraft": "_3j77BW_pathDraft",
|
|
5321
5366
|
"pathDialog": "_3j77BW_pathDialog",
|
|
5322
|
-
"head": "_3j77BW_head",
|
|
5323
|
-
"logList": "_3j77BW_logList",
|
|
5324
|
-
"event": "_3j77BW_event",
|
|
5325
|
-
"moreEnd": "_3j77BW_moreEnd",
|
|
5326
|
-
"badge": "_3j77BW_badge",
|
|
5327
|
-
"actions": "_3j77BW_actions",
|
|
5328
|
-
"badgeInfo": "_3j77BW_badgeInfo",
|
|
5329
|
-
"catUninstall": "_3j77BW_catUninstall",
|
|
5330
5367
|
"catSettings": "_3j77BW_catSettings",
|
|
5368
|
+
"badgeDebug": "_3j77BW_badgeDebug",
|
|
5331
5369
|
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5332
|
-
"
|
|
5333
|
-
"
|
|
5334
|
-
"footCount": "_3j77BW_footCount",
|
|
5335
|
-
"catInstall": "_3j77BW_catInstall",
|
|
5336
|
-
"catSystem": "_3j77BW_catSystem",
|
|
5337
|
-
"filterChip": "_3j77BW_filterChip",
|
|
5370
|
+
"catUpdate": "_3j77BW_catUpdate",
|
|
5371
|
+
"moreEnd": "_3j77BW_moreEnd",
|
|
5338
5372
|
"empty": "_3j77BW_empty",
|
|
5339
|
-
"
|
|
5373
|
+
"message": "_3j77BW_message",
|
|
5374
|
+
"clearBtn": "_3j77BW_clearBtn",
|
|
5375
|
+
"linkBtn": "_3j77BW_linkBtn",
|
|
5376
|
+
"catUninstall": "_3j77BW_catUninstall",
|
|
5340
5377
|
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5341
|
-
"
|
|
5342
|
-
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5343
|
-
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5344
|
-
"filterBar": "_3j77BW_filterBar",
|
|
5345
|
-
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5346
|
-
"previewRow": "_3j77BW_previewRow",
|
|
5347
|
-
"list": "_3j77BW_list",
|
|
5348
|
-
"badgeWarn": "_3j77BW_badgeWarn",
|
|
5378
|
+
"pathLabel": "_3j77BW_pathLabel",
|
|
5349
5379
|
"panel": "_3j77BW_panel",
|
|
5350
|
-
"
|
|
5351
|
-
"
|
|
5352
|
-
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5353
|
-
"badgeDebug": "_3j77BW_badgeDebug",
|
|
5380
|
+
"badgeInfo": "_3j77BW_badgeInfo",
|
|
5381
|
+
"headHint": "_3j77BW_headHint",
|
|
5354
5382
|
"catBadge": "_3j77BW_catBadge",
|
|
5355
|
-
"
|
|
5383
|
+
"btn": "_3j77BW_btn",
|
|
5384
|
+
"list": "_3j77BW_list",
|
|
5385
|
+
"filterBar": "_3j77BW_filterBar",
|
|
5386
|
+
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5387
|
+
"logList": "_3j77BW_logList",
|
|
5388
|
+
"footActions": "_3j77BW_footActions",
|
|
5389
|
+
"event": "_3j77BW_event",
|
|
5390
|
+
"head": "_3j77BW_head",
|
|
5356
5391
|
"footPath": "_3j77BW_footPath",
|
|
5357
|
-
"
|
|
5392
|
+
"actions": "_3j77BW_actions",
|
|
5393
|
+
"pathText": "_3j77BW_pathText",
|
|
5358
5394
|
"headActions": "_3j77BW_headActions",
|
|
5395
|
+
"previewRow": "_3j77BW_previewRow",
|
|
5396
|
+
"footCount": "_3j77BW_footCount",
|
|
5397
|
+
"foot": "_3j77BW_foot",
|
|
5398
|
+
"badge": "_3j77BW_badge",
|
|
5359
5399
|
"entry": "_3j77BW_entry",
|
|
5360
|
-
"
|
|
5361
|
-
"
|
|
5362
|
-
"
|
|
5363
|
-
"
|
|
5400
|
+
"badgeError": "_3j77BW_badgeError",
|
|
5401
|
+
"filterChip": "_3j77BW_filterChip",
|
|
5402
|
+
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5403
|
+
"footFail": "_3j77BW_footFail",
|
|
5364
5404
|
"pathRow": "_3j77BW_pathRow",
|
|
5365
|
-
"
|
|
5405
|
+
"more": "_3j77BW_more",
|
|
5406
|
+
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5407
|
+
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5408
|
+
"badgeSuccess": "_3j77BW_badgeSuccess"
|
|
5366
5409
|
};
|
|
5367
5410
|
//#endregion
|
|
5368
5411
|
//#region src/client/components/modals/LogsModal.tsx
|
|
@@ -6179,7 +6222,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6179
6222
|
const catalog = useCatalog(lang);
|
|
6180
6223
|
/** 设置状态:服务端 hub-settings.json 持久化,本地乐观更新即时生效 */
|
|
6181
6224
|
const { settings: hubSettings, ready: settingsReady, update: updateSettings, reset: resetSettings } = useSettings();
|
|
6182
|
-
/**
|
|
6225
|
+
/** 一级导航:插件市场 / 已安装 / 自定义安装 / 设置 */
|
|
6183
6226
|
const [view, setView] = (0, react.useState)("market");
|
|
6184
6227
|
/** 外部跳转设置分组的一次性信号(错误弹窗「去系统诊断」→ 设置 → 系统诊断):
|
|
6185
6228
|
* 传给 SettingsView 消费后即清空,避免下次进设置被强制带跳 */
|
|
@@ -6348,12 +6391,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6348
6391
|
if (!settingsReady || catalog.plugins === null || catalog.failed) return;
|
|
6349
6392
|
startupCheckedRef.current = true;
|
|
6350
6393
|
if (!hubSettings.checkUpdatesOnStart) return;
|
|
6351
|
-
|
|
6352
|
-
if (added > 0) setToast({
|
|
6353
|
-
id: Date.now(),
|
|
6354
|
-
kind: "updates",
|
|
6355
|
-
n: added
|
|
6356
|
-
});
|
|
6394
|
+
syncUpdateNotices();
|
|
6357
6395
|
}, [
|
|
6358
6396
|
settingsReady,
|
|
6359
6397
|
hubSettings,
|
|
@@ -6607,7 +6645,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6607
6645
|
openSection: settingsSection,
|
|
6608
6646
|
onConsumedOpenSection: () => setSettingsSection(null)
|
|
6609
6647
|
}), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
|
|
6610
|
-
info: catalog.hubUpdateInfo ?? { version: "1.
|
|
6648
|
+
info: catalog.hubUpdateInfo ?? { version: "1.4.0" },
|
|
6611
6649
|
lang,
|
|
6612
6650
|
t,
|
|
6613
6651
|
hasUpdate: catalog.hubHasUpdate,
|