dsh-plugin 2.2.7 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/client.js +422 -338
- package/client/client.js.map +1 -1
- package/lib/http/catalog.js +3 -1
- package/lib/services/probe.js +23 -7
- package/lib/types/services/probe.d.ts +1 -0
- package/package.json +1 -1
- package/src/client/components/catalog/PluginCard.tsx +26 -6
- package/src/client/components/modals/HubUpdateModal.tsx +21 -8
- package/src/client/components/modals/NotificationsModal.tsx +5 -0
- package/src/client/components/modals/modals.tsx +4 -0
- package/src/client/components/views/InstalledView.tsx +62 -24
- package/src/client/locales.ts +30 -12
- package/src/client/logic/failures.ts +18 -1
- package/src/client/logic/urls.ts +4 -1
- package/src/client/styles/InstalledView.module.css +72 -19
- package/src/client/styles/List.module.css +33 -3
- package/src/client/styles/Modal.module.css +42 -5
- package/src/server/http/catalog.ts +3 -1
- package/src/server/services/probe.ts +24 -8
package/client/client.js
CHANGED
|
@@ -313,6 +313,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
313
313
|
failPnpmUnusedPatchHint: "安装器调用 pnpm 时报「有些补丁没有被使用」(ERR_PNPM_UNUSED_PATCH):你的 profile 里留着一条指向旧版本 dsh-plugin 的补丁声明(例如 dsh-plugin@1.4.2),而本次安装解析到的版本已经不是它,pnpm 出于安全直接中止整次安装,因此任何插件都装不进来。这不是插件本身的问题——请在 profile 目录(~/.dsh/profiles/<profile>)的 pnpm-workspace.yaml(pnpm 11 及以上)或 package.json 的 pnpm.patchedDependencies(pnpm 10)里删除该 dsh-plugin 补丁条目后重试。",
|
|
314
314
|
failProfileStateHint: "安装器调用 pnpm 时报 profile 的元数据与当前环境对不上(如 ERR_PNPM_OUTDATED_LOCKFILE / ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND / ERR_PNPM_BAD_PM_VERSION / ERR_PNPM_PATCH_NOT_APPLIED):profile 里的 pnpm-lock.yaml、package.json 或补丁声明与当前 pnpm 版本不一致,pnpm 在真正装插件之前就中止了,所以这个 profile 里装任何插件都会失败。这不是插件本身的问题——请在 profile 目录(~/.dsh/profiles/<profile>)里删除 pnpm-lock.yaml 后重试(pnpm 会按当前依赖重新生成);若报的是 packageManager 版本不符,把 package.json 里的 packageManager 字段改成当前 pnpm 的大版本或直接删掉该字段;仍不行请重建该 profile 的依赖。",
|
|
315
315
|
failProfileYamlHint: "安装器调用 pnpm 时报「YAML 配置损坏」(duplicated mapping key):profile 目录里的 pnpm-workspace.yaml 或 pnpm-lock.yaml 出现了重复的键(多见于手工编辑、合并冲突残留,或第三方工具重复写入同一条目)。pnpm 在解析阶段就直接退出,依赖根本没开始装,所以这个 profile 里装任何插件都会失败。这不是插件本身的问题——请打开 ~/.dsh/profiles/<profile>/ 检查这两个文件,删掉重复的那一行或那一段;不确定该改哪一处时,可以先删掉 pnpm-lock.yaml(必要时连 node_modules 一起)让 pnpm 重新生成,然后重试。",
|
|
316
|
+
failProfileLocalBuildHint: "安装器调用 pnpm 时,pnpm 拒绝了 profile 里某个本地包的构建脚本:这台机器的 profile 已经装了一个用 file: / link: 指向本地目录的插件,它的 postinstall 等脚本跑不通。pnpm 每次 add 都会重校验整个 profile 的依赖树,所以这一个坏包会让这个 profile 里装任何插件都失败——与本次要装的插件无关,也不该去找它的作者。请打开 profile 目录(~/.dsh/profiles/<profile>)的 package.json,看 dependencies 里值是 file: / link: 的那几项,把它们临时移除(或修好对应目录里缺失的脚本文件)后重试;pnpm 报错里「Ignored build scripts」后面列出的包名就是出错的那个。",
|
|
316
317
|
failNodeEngineHint: "这个插件(或它的某个依赖)声明了更高的 Node / pnpm 版本要求(ERR_PNPM_UNSUPPORTED_ENGINE / EBADENGINE),当前版本不满足,pnpm 在安装阶段直接拒绝。这不是插件本身的问题——请把 Node 升级到要求的版本(nvm / fnm 切换,或安装新版 Node.js),确认 node -v 与 pnpm -v 都满足要求后重试。",
|
|
317
318
|
failPnpmMissingDepTarget: "{pkg} 在 npm registry 上不存在(404)",
|
|
318
319
|
failPnpmMissingDepHint: "安装器调用 pnpm 时报「包不存在」(ERR_PNPM_FETCH_404):你的 profile 里留着一条指向 registry 上未发布包的依赖,pnpm 每次解析依赖都会先卡在它上面,因此任何插件都装不进来。这不是插件本身的问题——请在 profile 目录(~/.dsh/profiles/<profile>)的 package.json 里删除该依赖条目(同时删掉对应的 pnpm-lock.yaml 条目或整个锁文件)后重试。",
|
|
@@ -349,6 +350,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
349
350
|
failReason_pnpmUnusedPatch: "profile 里留着指向旧版本 dsh-plugin 的补丁,pnpm 出于安全中止了安装。",
|
|
350
351
|
failKind_profileYamlCorrupted: "profile 的 YAML 配置损坏",
|
|
351
352
|
failReason_profileYamlCorrupted: "profile 目录里的 pnpm-workspace.yaml 或 pnpm-lock.yaml 有重复的键,pnpm 在解析阶段就退出了。",
|
|
353
|
+
failKind_profileLocalBuild: "profile 里已有的本地插件构建失败",
|
|
354
|
+
failReason_profileLocalBuild: "pnpm 每次安装都会重校验整个 profile,这次失败来自 profile 里已有的 file:/link: 本地插件的构建脚本,和本次要装的插件无关。",
|
|
352
355
|
failKind_profileState: "profile 的 pnpm 元数据与本机不一致",
|
|
353
356
|
failReason_profileState: "profile 的 lockfile / package.json / packageManager 版本与当前 pnpm 对不上,安装没开始就被中止。",
|
|
354
357
|
failKind_nodeEngine: "本机 Node / pnpm 版本不满足要求",
|
|
@@ -371,8 +374,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
371
374
|
failReason_accessDenied: "系统拒绝 pnpm 写入 profile 里的文件。",
|
|
372
375
|
failKind_fsUnavailable: "磁盘不可写",
|
|
373
376
|
failReason_fsUnavailable: "磁盘已满、处于只读,或文件句柄耗尽。",
|
|
374
|
-
failKind_pnpmIgnoredBuild: "
|
|
375
|
-
failReason_pnpmIgnoredBuild: "
|
|
377
|
+
failKind_pnpmIgnoredBuild: "依赖的构建脚本被 pnpm 拦截",
|
|
378
|
+
failReason_pnpmIgnoredBuild: "这次要装的插件(或其依赖)声明了构建脚本,pnpm 默认拦下未放行的构建(不一定是原生模块)。",
|
|
376
379
|
failKind_pluginPrepare: "插件分发不完整",
|
|
377
380
|
failReason_pluginPrepare: "作者发布的包里缺文件,或构建脚本执行失败。",
|
|
378
381
|
failKind_hostIncompatible: "插件不支持当前的 DSH 版本({version})",
|
|
@@ -421,6 +424,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
421
424
|
installEntryLine: "安装入口:{c}。",
|
|
422
425
|
reportIssue: "去插件仓库提交 Issue",
|
|
423
426
|
detail: "打开详情",
|
|
427
|
+
installDetail: "安装详情",
|
|
428
|
+
author: "作者",
|
|
424
429
|
noResult: "没有找到匹配的插件",
|
|
425
430
|
noResultDesc: "换个关键词试试,或前往网站浏览全部插件。",
|
|
426
431
|
today: "今天更新",
|
|
@@ -440,15 +445,17 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
440
445
|
updatePendingHint: "新版本发布未满 24 小时,pnpm 供应链门禁会拦下;到时间后再更新即可",
|
|
441
446
|
hubUpdateHint: "检测到 DSH Plugin Hub 新版本,点击查看更新内容并更新",
|
|
442
447
|
hubUpdateTitle: "DSH Plugin Hub 有新版本",
|
|
443
|
-
hubUpdateDesc: "
|
|
448
|
+
hubUpdateDesc: "点击下方按钮即可更新,完成后需重启宿主生效。",
|
|
444
449
|
hubUpdatePublished: "发布于",
|
|
445
450
|
hubUpdateNotes: "更新记录",
|
|
446
451
|
hubUpdateLater: "稍后再说",
|
|
447
452
|
versionHint: "查看版本信息与更新记录",
|
|
448
453
|
hubCurrentTitle: "当前版本",
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
454
|
+
hubVersionStateLatest: "已是最新",
|
|
455
|
+
hubVersionStateAvailable: "可更新",
|
|
456
|
+
hubVersionStatePending: "暂缓提示",
|
|
457
|
+
close: "关闭",
|
|
458
|
+
hubPendingDesc: "最新版已发布,但发布尚未满 24 小时:此时更新会被 pnpm 静默回退到旧版本,因此暂不提示。稍后这里会自动出现更新入口。",
|
|
452
459
|
followUs: "关注我们",
|
|
453
460
|
aboutTitle: "关注我们",
|
|
454
461
|
aboutDesc: "了解 DSH Plugin Hub 是做什么的,加入用户反馈群随时交流。",
|
|
@@ -757,6 +764,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
757
764
|
failPnpmUnusedPatchHint: "pnpm reported that some patches were not used (ERR_PNPM_UNUSED_PATCH): your profile still holds a patch entry for an older dsh-plugin version (for example dsh-plugin@1.4.2), while this install resolved a different version, so pnpm aborts the whole install for safety — no plugin can be installed into that profile. This is not a problem with the plugin itself. Remove that dsh-plugin patch entry from pnpm-workspace.yaml (pnpm 11+) or from pnpm.patchedDependencies in package.json (pnpm 10) inside the profile directory (~/.dsh/profiles/<profile>), then retry.",
|
|
758
765
|
failProfileStateHint: "pnpm reported that the profile metadata does not match the current environment (e.g. ERR_PNPM_OUTDATED_LOCKFILE / ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND / ERR_PNPM_BAD_PM_VERSION / ERR_PNPM_PATCH_NOT_APPLIED): pnpm-lock.yaml, package.json or the patch declarations inside the profile disagree with the pnpm version in use, so pnpm aborts before installing anything — every plugin install into this profile will fail. This is not a problem with the plugin itself. Delete pnpm-lock.yaml inside the profile directory (~/.dsh/profiles/<profile>) and retry (pnpm regenerates it from the declared dependencies); if the error is about packageManager, set that field in package.json to the current pnpm major or remove it; if it still fails, rebuild the profile dependencies.",
|
|
759
766
|
failProfileYamlHint: "pnpm reported a broken YAML config (duplicated mapping key): a YAML file inside the profile directory — pnpm-workspace.yaml or pnpm-lock.yaml — contains a duplicate key, usually after a manual edit, a leftover merge conflict, or a tool writing the same entry twice. pnpm stops at parse time and nothing is installed, so every plugin install into this profile fails the same way. This is not a problem with the plugin itself. Open ~/.dsh/profiles/<profile>/ and remove the duplicated line or block; if you are not sure which file to fix, delete pnpm-lock.yaml (and node_modules if needed) so pnpm regenerates them, then retry.",
|
|
767
|
+
failProfileLocalBuildHint: "pnpm rejected a build script of a local package already in the profile: this machine's profile contains a plugin wired to a local directory with file: / link:, and its postinstall (or another build script) cannot run. pnpm re-validates the whole profile dependency tree on every add, so that one broken package makes every install into this profile fail — it is unrelated to the plugin you were installing, and reporting it to that plugin's author will not help. Open package.json in the profile directory (~/.dsh/profiles/<profile>), find the dependencies whose version starts with file: or link:, remove them temporarily (or fix the missing script in that directory), then retry. The package names after \"Ignored build scripts\" in the pnpm error tell you which one is failing.",
|
|
760
768
|
failNodeEngineHint: "This plugin (or one of its dependencies) declares a higher Node / pnpm version (ERR_PNPM_UNSUPPORTED_ENGINE / EBADENGINE), which the current one does not satisfy, so pnpm refuses at install time. This is not a problem with the plugin itself. Upgrade Node to the required version (switch with nvm / fnm, or install a newer Node.js), confirm node -v and pnpm -v both satisfy it, then retry.",
|
|
761
769
|
failPnpmMissingDepTarget: "{pkg} was not found on the npm registry (404)",
|
|
762
770
|
failPnpmMissingDepHint: "pnpm reported that a package does not exist on the npm registry (ERR_PNPM_FETCH_404): your profile keeps a dependency on a package that was never published, and pnpm hits it every time it resolves dependencies — no plugin can be installed into that profile. This is not a problem with the plugin itself. Remove that dependency from package.json inside the profile directory (~/.dsh/profiles/<profile>) — along with its entry in pnpm-lock.yaml, or the lockfile itself — then retry.",
|
|
@@ -793,6 +801,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
793
801
|
failReason_pnpmUnusedPatch: "The profile keeps a patch for an older dsh-plugin version, so pnpm aborted for safety.",
|
|
794
802
|
failKind_profileYamlCorrupted: "profile YAML config is corrupted",
|
|
795
803
|
failReason_profileYamlCorrupted: "A YAML file in the profile directory has a duplicate key, so pnpm aborts at parse time.",
|
|
804
|
+
failKind_profileLocalBuild: "a local plugin already in the profile fails its build",
|
|
805
|
+
failReason_profileLocalBuild: "pnpm re-validates the whole profile on every install; this failure comes from the build script of a local (file:/link:) package already in the profile, not from the plugin being installed.",
|
|
796
806
|
failKind_profileState: "profile pnpm metadata does not match this machine",
|
|
797
807
|
failReason_profileState: "The profile lockfile / package.json / packageManager version disagrees with the current pnpm, so the install aborts before starting.",
|
|
798
808
|
failKind_nodeEngine: "Node / pnpm on this machine is below the required version",
|
|
@@ -815,8 +825,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
815
825
|
failReason_accessDenied: "The system denied pnpm write access to files inside the profile.",
|
|
816
826
|
failKind_fsUnavailable: "the disk is not writable",
|
|
817
827
|
failReason_fsUnavailable: "The disk is full or read-only, or file handles are exhausted.",
|
|
818
|
-
failKind_pnpmIgnoredBuild: "
|
|
819
|
-
failReason_pnpmIgnoredBuild: "
|
|
828
|
+
failKind_pnpmIgnoredBuild: "build scripts blocked by pnpm",
|
|
829
|
+
failReason_pnpmIgnoredBuild: "The plugin being installed (or one of its dependencies) declares a build script that pnpm blocks by default; the blocked script is not necessarily a native module.",
|
|
820
830
|
failKind_pluginPrepare: "plugin distribution is incomplete",
|
|
821
831
|
failReason_pluginPrepare: "The published package is missing files, or its build script failed.",
|
|
822
832
|
failKind_hostIncompatible: "plugin does not support the DSH version in use ({version})",
|
|
@@ -865,6 +875,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
865
875
|
installEntryLine: "Install entry: {c}.",
|
|
866
876
|
reportIssue: "Report an Issue to the plugin repo",
|
|
867
877
|
detail: "Open details",
|
|
878
|
+
installDetail: "Install details",
|
|
879
|
+
author: "Author",
|
|
868
880
|
noResult: "No plugins match your search",
|
|
869
881
|
noResultDesc: "Try another keyword, or browse all plugins on the website.",
|
|
870
882
|
today: "updated today",
|
|
@@ -884,15 +896,17 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
884
896
|
updatePendingHint: "The new release is less than 24 hours old, so the pnpm supply-chain hold rejects it until then",
|
|
885
897
|
hubUpdateHint: "A new DSH Plugin Hub version is available — click to view the changelog and update",
|
|
886
898
|
hubUpdateTitle: "A new DSH Plugin Hub version is available",
|
|
887
|
-
hubUpdateDesc: "
|
|
899
|
+
hubUpdateDesc: "Click below to update, then restart the host to apply it.",
|
|
888
900
|
hubUpdatePublished: "Published",
|
|
889
901
|
hubUpdateNotes: "What's new",
|
|
890
902
|
hubUpdateLater: "Later",
|
|
891
903
|
versionHint: "View version info and changelog",
|
|
892
904
|
hubCurrentTitle: "Current version",
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
905
|
+
hubVersionStateLatest: "Up to date",
|
|
906
|
+
hubVersionStateAvailable: "Update available",
|
|
907
|
+
hubVersionStatePending: "Held for 24h",
|
|
908
|
+
close: "Close",
|
|
909
|
+
hubPendingDesc: "The latest version has been released, but it is still within the 24-hour window where pnpm silently falls back to the older version, so the update is not offered yet. The update entry will appear here shortly.",
|
|
896
910
|
followUs: "Follow us",
|
|
897
911
|
aboutTitle: "Follow us",
|
|
898
912
|
aboutDesc: "Learn what DSH Plugin Hub does and join our user feedback group.",
|
|
@@ -919,45 +933,45 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
919
933
|
});
|
|
920
934
|
var Header_module_css_default = {
|
|
921
935
|
"langBtn": "qikqja_langBtn",
|
|
922
|
-
"
|
|
923
|
-
"
|
|
936
|
+
"tabs": "qikqja_tabs",
|
|
937
|
+
"tabsRow": "qikqja_tabsRow",
|
|
938
|
+
"tagline": "qikqja_tagline",
|
|
939
|
+
"tabActive": "qikqja_tabActive",
|
|
940
|
+
"headerRight": "qikqja_headerRight",
|
|
941
|
+
"aboutBtn": "qikqja_aboutBtn",
|
|
942
|
+
"segBtn": "qikqja_segBtn",
|
|
943
|
+
"versionBtn": "qikqja_versionBtn",
|
|
944
|
+
"brandTitle": "qikqja_brandTitle",
|
|
945
|
+
"title": "qikqja_title",
|
|
924
946
|
"version": "qikqja_version",
|
|
925
|
-
"
|
|
926
|
-
"segLabel": "qikqja_segLabel",
|
|
927
|
-
"tabCount": "qikqja_tabCount",
|
|
928
|
-
"adArrow": "qikqja_adArrow",
|
|
947
|
+
"header": "qikqja_header",
|
|
929
948
|
"copyIcon": "qikqja_copyIcon",
|
|
949
|
+
"segGroup": "qikqja_segGroup",
|
|
930
950
|
"resultSeg": "qikqja_resultSeg",
|
|
931
|
-
"
|
|
951
|
+
"adArrow": "qikqja_adArrow",
|
|
952
|
+
"adText": "qikqja_adText",
|
|
953
|
+
"adBanner": "qikqja_adBanner",
|
|
954
|
+
"tabCount": "qikqja_tabCount",
|
|
955
|
+
"taglineLink": "qikqja_taglineLink",
|
|
956
|
+
"root": "qikqja_root",
|
|
957
|
+
"logoIcon": "qikqja_logoIcon",
|
|
958
|
+
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
959
|
+
"headerTitleRow": "qikqja_headerTitleRow",
|
|
960
|
+
"controls": "qikqja_controls",
|
|
961
|
+
"segLabel": "qikqja_segLabel",
|
|
962
|
+
"resultCount": "qikqja_resultCount",
|
|
932
963
|
"segBtnActive": "qikqja_segBtnActive",
|
|
933
|
-
"
|
|
934
|
-
"
|
|
935
|
-
"headerRight": "qikqja_headerRight",
|
|
964
|
+
"adBadge": "qikqja_adBadge",
|
|
965
|
+
"search": "qikqja_search",
|
|
936
966
|
"githubIcon": "qikqja_githubIcon",
|
|
937
|
-
"
|
|
967
|
+
"githubLink": "qikqja_githubLink",
|
|
938
968
|
"sortGroup": "qikqja_sortGroup",
|
|
939
|
-
"controls": "qikqja_controls",
|
|
940
|
-
"adBadge": "qikqja_adBadge",
|
|
941
|
-
"headerTitleRow": "qikqja_headerTitleRow",
|
|
942
|
-
"header": "qikqja_header",
|
|
943
|
-
"adText": "qikqja_adText",
|
|
944
|
-
"tagline": "qikqja_tagline",
|
|
945
|
-
"tabActive": "qikqja_tabActive",
|
|
946
|
-
"tabs": "qikqja_tabs",
|
|
947
|
-
"title": "qikqja_title",
|
|
948
|
-
"searchRow": "qikqja_searchRow",
|
|
949
|
-
"aboutBtn": "qikqja_aboutBtn",
|
|
950
|
-
"root": "qikqja_root",
|
|
951
|
-
"brandTitle": "qikqja_brandTitle",
|
|
952
|
-
"versionBtn": "qikqja_versionBtn",
|
|
953
969
|
"tab": "qikqja_tab",
|
|
954
|
-
"
|
|
955
|
-
"adBanner": "qikqja_adBanner",
|
|
956
|
-
"search": "qikqja_search"
|
|
970
|
+
"searchRow": "qikqja_searchRow"
|
|
957
971
|
};
|
|
958
972
|
//#endregion
|
|
959
973
|
//#region \0dsh-css:src/client/styles/Modal.module.css.mjs
|
|
960
|
-
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:72px;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_bundleDeselectedHint{text-align:left;color:var(--hub-warning);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:none}a.BiQ1zG_failRepo{color:#2f6feb}.BiQ1zG_failRepoLabel{color:var(--hub-text-secondary)}a.BiQ1zG_failRepo:hover .BiQ1zG_failRepoUrl{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_failKindTitle{text-align:left;color:var(--hub-danger-text);margin-top:10px;font-size:15px;font-weight:700;line-height:22px}.BiQ1zG_failReason{white-space:pre-line;text-align:left;color:var(--hub-text-secondary);margin-top:2px;font-size:12.5px;font-weight:400;line-height:19px}.BiQ1zG_failPrepareHint{white-space:pre-line;text-align:left;color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);border-radius:6px;margin-top:6px;margin-bottom:12px;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_failMisjudgeLink{color:var(--hub-text-tertiary);cursor:pointer;margin-top:6px;font-size:12px;line-height:18px;text-decoration:underline;display:inline-block}.BiQ1zG_failMisjudgeLink:hover{color:var(--hub-text-secondary)}.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}";
|
|
974
|
+
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:72px;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_bundleDeselectedHint{text-align:left;color:var(--hub-warning);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:none}a.BiQ1zG_failRepo{color:#2f6feb}.BiQ1zG_failRepoLabel{color:var(--hub-text-secondary)}a.BiQ1zG_failRepo:hover .BiQ1zG_failRepoUrl{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_failKindTitle{text-align:left;color:var(--hub-danger-text);margin-top:10px;font-size:15px;font-weight:700;line-height:22px}.BiQ1zG_failReason{white-space:pre-line;text-align:left;color:var(--hub-text-secondary);margin-top:2px;font-size:12.5px;font-weight:400;line-height:19px}.BiQ1zG_failPrepareHint{white-space:pre-line;text-align:left;color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);border-radius:6px;margin-top:6px;margin-bottom:12px;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_failMisjudgeLink{color:var(--hub-text-tertiary);cursor:pointer;margin-top:6px;font-size:12px;line-height:18px;text-decoration:underline;display:inline-block}.BiQ1zG_failMisjudgeLink:hover{color:var(--hub-text-secondary)}.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_hubVersionBar{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.BiQ1zG_hubVersionNumber{color:var(--hub-text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:18px;font-weight:600;line-height:26px}.BiQ1zG_hubStateChip{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:0 8px;font-size:11px;line-height:18px}.BiQ1zG_hubStateLatest{color:var(--hub-success);border-color:var(--hub-success-border);background:var(--hub-success-tint)}.BiQ1zG_hubStateAvailable{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}.BiQ1zG_hubStatePending{color:var(--hub-text-tertiary);border-color:var(--hub-border-2)}.BiQ1zG_hubVersionDate{color:var(--hub-text-tertiary);margin-left:auto;font-size:12px;line-height:18px}.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}";
|
|
961
975
|
const tagId$10 = "dsh-plugin/Modal.module.css";
|
|
962
976
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
|
|
963
977
|
const tag = document.createElement("style");
|
|
@@ -972,142 +986,147 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
972
986
|
css: css$10
|
|
973
987
|
});
|
|
974
988
|
var Modal_module_css_default = {
|
|
975
|
-
"
|
|
976
|
-
"
|
|
977
|
-
"
|
|
978
|
-
"modalIn": "BiQ1zG_modalIn",
|
|
979
|
-
"modalHead": "BiQ1zG_modalHead",
|
|
980
|
-
"toast": "BiQ1zG_toast",
|
|
981
|
-
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
989
|
+
"hubVersionNumber": "BiQ1zG_hubVersionNumber",
|
|
990
|
+
"detailPathText": "BiQ1zG_detailPathText",
|
|
991
|
+
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
982
992
|
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
983
|
-
"
|
|
993
|
+
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
994
|
+
"noticeMain": "BiQ1zG_noticeMain",
|
|
995
|
+
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
996
|
+
"logModal": "BiQ1zG_logModal",
|
|
997
|
+
"modalIn": "BiQ1zG_modalIn",
|
|
998
|
+
"failClear": "BiQ1zG_failClear",
|
|
999
|
+
"failReason": "BiQ1zG_failReason",
|
|
984
1000
|
"failEmpty": "BiQ1zG_failEmpty",
|
|
985
|
-
"
|
|
986
|
-
"
|
|
987
|
-
"
|
|
988
|
-
"
|
|
1001
|
+
"detailMono": "BiQ1zG_detailMono",
|
|
1002
|
+
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
1003
|
+
"failList": "BiQ1zG_failList",
|
|
1004
|
+
"modalClose": "BiQ1zG_modalClose",
|
|
1005
|
+
"noticeList": "BiQ1zG_noticeList",
|
|
1006
|
+
"queuedHint": "BiQ1zG_queuedHint",
|
|
1007
|
+
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
1008
|
+
"hubVersionBar": "BiQ1zG_hubVersionBar",
|
|
1009
|
+
"failRepo": "BiQ1zG_failRepo",
|
|
1010
|
+
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
989
1011
|
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
990
|
-
"
|
|
991
|
-
"queueRow": "BiQ1zG_queueRow",
|
|
992
|
-
"bundleDeselectedHint": "BiQ1zG_bundleDeselectedHint",
|
|
993
|
-
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
994
|
-
"modalDesc": "BiQ1zG_modalDesc",
|
|
995
|
-
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
996
|
-
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
997
|
-
"modalCancel": "BiQ1zG_modalCancel",
|
|
998
|
-
"detailValue": "BiQ1zG_detailValue",
|
|
999
|
-
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
1000
|
-
"detailDim": "BiQ1zG_detailDim",
|
|
1001
|
-
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
1002
|
-
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
1003
|
-
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
1004
|
-
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
1005
|
-
"toastFail": "BiQ1zG_toastFail",
|
|
1006
|
-
"modalCopy": "BiQ1zG_modalCopy",
|
|
1012
|
+
"modal": "BiQ1zG_modal",
|
|
1007
1013
|
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
1008
|
-
"
|
|
1009
|
-
"
|
|
1010
|
-
"
|
|
1011
|
-
"
|
|
1012
|
-
"
|
|
1013
|
-
"aboutModal": "BiQ1zG_aboutModal",
|
|
1014
|
-
"noticeTime": "BiQ1zG_noticeTime",
|
|
1015
|
-
"modalInstall": "BiQ1zG_modalInstall",
|
|
1016
|
-
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
1017
|
-
"result": "BiQ1zG_result",
|
|
1018
|
-
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
1019
|
-
"failKindTitle": "BiQ1zG_failKindTitle",
|
|
1020
|
-
"resultDesc": "BiQ1zG_resultDesc",
|
|
1021
|
-
"modalLink": "BiQ1zG_modalLink",
|
|
1022
|
-
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
1023
|
-
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
1024
|
-
"trustHint": "BiQ1zG_trustHint",
|
|
1025
|
-
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
1026
|
-
"linkIcon": "BiQ1zG_linkIcon",
|
|
1027
|
-
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
1014
|
+
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
1015
|
+
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
1016
|
+
"failRepoLabel": "BiQ1zG_failRepoLabel",
|
|
1017
|
+
"failCopy": "BiQ1zG_failCopy",
|
|
1018
|
+
"hubStatePending": "BiQ1zG_hubStatePending",
|
|
1028
1019
|
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
1029
1020
|
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
1030
|
-
"
|
|
1031
|
-
"
|
|
1032
|
-
"progressFill": "BiQ1zG_progressFill",
|
|
1033
|
-
"noticeMain": "BiQ1zG_noticeMain",
|
|
1034
|
-
"resultCheck": "BiQ1zG_resultCheck",
|
|
1035
|
-
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
1036
|
-
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
1037
|
-
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
1038
|
-
"failHead": "BiQ1zG_failHead",
|
|
1039
|
-
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
1040
|
-
"progressHead": "BiQ1zG_progressHead",
|
|
1041
|
-
"aboutContent": "BiQ1zG_aboutContent",
|
|
1042
|
-
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
1043
|
-
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
1044
|
-
"detailLabel": "BiQ1zG_detailLabel",
|
|
1045
|
-
"failCopy": "BiQ1zG_failCopy",
|
|
1046
|
-
"detailLink": "BiQ1zG_detailLink",
|
|
1047
|
-
"modalClose": "BiQ1zG_modalClose",
|
|
1048
|
-
"failRow": "BiQ1zG_failRow",
|
|
1049
|
-
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
1050
|
-
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
1021
|
+
"overlay": "BiQ1zG_overlay",
|
|
1022
|
+
"queueRow": "BiQ1zG_queueRow",
|
|
1051
1023
|
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
1052
|
-
"
|
|
1053
|
-
"
|
|
1054
|
-
"
|
|
1055
|
-
"
|
|
1024
|
+
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
1025
|
+
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
1026
|
+
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
1027
|
+
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
1028
|
+
"detailStars": "BiQ1zG_detailStars",
|
|
1029
|
+
"modalInstall": "BiQ1zG_modalInstall",
|
|
1030
|
+
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
1056
1031
|
"restartLater": "BiQ1zG_restartLater",
|
|
1032
|
+
"progressTrack": "BiQ1zG_progressTrack",
|
|
1033
|
+
"errorHint": "BiQ1zG_errorHint",
|
|
1034
|
+
"queueSection": "BiQ1zG_queueSection",
|
|
1057
1035
|
"helpModal": "BiQ1zG_helpModal",
|
|
1036
|
+
"stripCancel": "BiQ1zG_stripCancel",
|
|
1037
|
+
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
1038
|
+
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
1039
|
+
"modalActions": "BiQ1zG_modalActions",
|
|
1040
|
+
"modalRow": "BiQ1zG_modalRow",
|
|
1041
|
+
"failRepoUrl": "BiQ1zG_failRepoUrl",
|
|
1042
|
+
"bundleDeselectedHint": "BiQ1zG_bundleDeselectedHint",
|
|
1043
|
+
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
1044
|
+
"detailLink": "BiQ1zG_detailLink",
|
|
1058
1045
|
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
1059
|
-
"
|
|
1060
|
-
"
|
|
1061
|
-
"
|
|
1062
|
-
"
|
|
1063
|
-
"noticeRow": "BiQ1zG_noticeRow",
|
|
1064
|
-
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
1046
|
+
"aboutContent": "BiQ1zG_aboutContent",
|
|
1047
|
+
"overlayIn": "BiQ1zG_overlayIn",
|
|
1048
|
+
"resultDesc": "BiQ1zG_resultDesc",
|
|
1049
|
+
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
1065
1050
|
"errorModal": "BiQ1zG_errorModal",
|
|
1066
|
-
"
|
|
1067
|
-
"modalLabel": "BiQ1zG_modalLabel",
|
|
1068
|
-
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
1051
|
+
"aboutModal": "BiQ1zG_aboutModal",
|
|
1069
1052
|
"failKind": "BiQ1zG_failKind",
|
|
1070
|
-
"
|
|
1071
|
-
"
|
|
1072
|
-
"
|
|
1073
|
-
"
|
|
1074
|
-
"
|
|
1075
|
-
"
|
|
1076
|
-
"
|
|
1077
|
-
"
|
|
1078
|
-
"
|
|
1079
|
-
"
|
|
1053
|
+
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
1054
|
+
"modalHead": "BiQ1zG_modalHead",
|
|
1055
|
+
"hubStateLatest": "BiQ1zG_hubStateLatest",
|
|
1056
|
+
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
1057
|
+
"hubVersionDate": "BiQ1zG_hubVersionDate",
|
|
1058
|
+
"linkIcon": "BiQ1zG_linkIcon",
|
|
1059
|
+
"detailPath": "BiQ1zG_detailPath",
|
|
1060
|
+
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
1061
|
+
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
1062
|
+
"result": "BiQ1zG_result",
|
|
1063
|
+
"modalCmd": "BiQ1zG_modalCmd",
|
|
1064
|
+
"resultCheck": "BiQ1zG_resultCheck",
|
|
1065
|
+
"progress": "BiQ1zG_progress",
|
|
1066
|
+
"hubStateChip": "BiQ1zG_hubStateChip",
|
|
1067
|
+
"modalCancel": "BiQ1zG_modalCancel",
|
|
1080
1068
|
"detailGrid": "BiQ1zG_detailGrid",
|
|
1081
|
-
"
|
|
1082
|
-
"
|
|
1069
|
+
"detailModal": "BiQ1zG_detailModal",
|
|
1070
|
+
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
1071
|
+
"noticeTime": "BiQ1zG_noticeTime",
|
|
1072
|
+
"modalLabel": "BiQ1zG_modalLabel",
|
|
1073
|
+
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
1074
|
+
"noticeRow": "BiQ1zG_noticeRow",
|
|
1075
|
+
"modalDesc": "BiQ1zG_modalDesc",
|
|
1076
|
+
"progressFill": "BiQ1zG_progressFill",
|
|
1077
|
+
"hubStateAvailable": "BiQ1zG_hubStateAvailable",
|
|
1078
|
+
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
1079
|
+
"failMisjudgeLink": "BiQ1zG_failMisjudgeLink",
|
|
1080
|
+
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
1081
|
+
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
1082
|
+
"toastIn": "BiQ1zG_toastIn",
|
|
1083
|
+
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
1083
1084
|
"modalTitle": "BiQ1zG_modalTitle",
|
|
1084
|
-
"
|
|
1085
|
-
"
|
|
1086
|
-
"
|
|
1087
|
-
"
|
|
1088
|
-
"
|
|
1089
|
-
"
|
|
1085
|
+
"failRow": "BiQ1zG_failRow",
|
|
1086
|
+
"failKindTitle": "BiQ1zG_failKindTitle",
|
|
1087
|
+
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
1088
|
+
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
1089
|
+
"progressHead": "BiQ1zG_progressHead",
|
|
1090
|
+
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
1091
|
+
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
1092
|
+
"trustHint": "BiQ1zG_trustHint",
|
|
1090
1093
|
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
1091
|
-
"
|
|
1092
|
-
"
|
|
1093
|
-
"
|
|
1094
|
-
"
|
|
1095
|
-
"
|
|
1094
|
+
"detailLabel": "BiQ1zG_detailLabel",
|
|
1095
|
+
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
1096
|
+
"detailValue": "BiQ1zG_detailValue",
|
|
1097
|
+
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
1098
|
+
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
1099
|
+
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
1100
|
+
"modalValue": "BiQ1zG_modalValue",
|
|
1101
|
+
"modalLink": "BiQ1zG_modalLink",
|
|
1102
|
+
"errorBox": "BiQ1zG_errorBox",
|
|
1103
|
+
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
1096
1104
|
"modalBody": "BiQ1zG_modalBody",
|
|
1097
|
-
"
|
|
1098
|
-
"stripCancel": "BiQ1zG_stripCancel",
|
|
1099
|
-
"progress": "BiQ1zG_progress",
|
|
1100
|
-
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
1101
|
-
"detailMono": "BiQ1zG_detailMono",
|
|
1102
|
-
"logModal": "BiQ1zG_logModal",
|
|
1103
|
-
"failList": "BiQ1zG_failList",
|
|
1105
|
+
"resultTitle": "BiQ1zG_resultTitle",
|
|
1104
1106
|
"detailArrow": "BiQ1zG_detailArrow",
|
|
1105
|
-
"detailStars": "BiQ1zG_detailStars",
|
|
1106
|
-
"modal": "BiQ1zG_modal",
|
|
1107
|
-
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
1108
|
-
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
1109
1107
|
"errorTitle": "BiQ1zG_errorTitle",
|
|
1110
|
-
"
|
|
1108
|
+
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
1109
|
+
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
1110
|
+
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
1111
|
+
"progressText": "BiQ1zG_progressText",
|
|
1112
|
+
"modalCopy": "BiQ1zG_modalCopy",
|
|
1113
|
+
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
1114
|
+
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
1115
|
+
"noticeHead": "BiQ1zG_noticeHead",
|
|
1116
|
+
"restartNow": "BiQ1zG_restartNow",
|
|
1117
|
+
"toast": "BiQ1zG_toast",
|
|
1118
|
+
"toastFail": "BiQ1zG_toastFail",
|
|
1119
|
+
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
1120
|
+
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
1121
|
+
"detailDim": "BiQ1zG_detailDim",
|
|
1122
|
+
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
1123
|
+
"detailRow": "BiQ1zG_detailRow",
|
|
1124
|
+
"modalWide": "BiQ1zG_modalWide",
|
|
1125
|
+
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
1126
|
+
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
1127
|
+
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
1128
|
+
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
1129
|
+
"failHead": "BiQ1zG_failHead"
|
|
1111
1130
|
};
|
|
1112
1131
|
//#endregion
|
|
1113
1132
|
//#region src/server/services/install/release-target.ts
|
|
@@ -1197,7 +1216,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1197
1216
|
* tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
|
|
1198
1217
|
* node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
|
|
1199
1218
|
*/
|
|
1200
|
-
const PLUGIN_VERSION = "2.
|
|
1219
|
+
const PLUGIN_VERSION = "2.3.1";
|
|
1201
1220
|
const CATEGORY_ORDER = [
|
|
1202
1221
|
"interface",
|
|
1203
1222
|
"session",
|
|
@@ -2118,7 +2137,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2118
2137
|
* registry 真实发布时间下发(同源),据此判断最准。门槛命中要单列成 `pending` 而不是
|
|
2119
2138
|
* 落回「无更新」——回落会让弹窗在本机版本落后时谎称「已是最新」。
|
|
2120
2139
|
*/
|
|
2121
|
-
const hubCurrentVersion = "2.
|
|
2140
|
+
const hubCurrentVersion = "2.3.1";
|
|
2122
2141
|
const hubUpdateResult = hubUpdateInfo === null ? {
|
|
2123
2142
|
state: "none",
|
|
2124
2143
|
target: null
|
|
@@ -2327,6 +2346,17 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2327
2346
|
if (rec.action !== void 0) return rec.action;
|
|
2328
2347
|
return rec.kind === "uninstall" ? "uninstall" : rec.kind === "update" ? "update" : "install";
|
|
2329
2348
|
}
|
|
2349
|
+
/**
|
|
2350
|
+
* `Ignored build scripts:` 名单是否**全部**是 profile 本地的 file:/link: 依赖。
|
|
2351
|
+
* 已发布插件无法依赖用户机器上的本地路径,这类条目只可能来自 profile 里已有的别的插件;
|
|
2352
|
+
* 而 pnpm 每次 add 都会重校验整棵 profile 依赖树,本地包构建失败会让本次安装同样失败,
|
|
2353
|
+
* 与本次要装的插件无关。
|
|
2354
|
+
*/
|
|
2355
|
+
function localBuildScriptsOnly(message) {
|
|
2356
|
+
const specs = (/Ignored build scripts:\s*([^\n]*)/i.exec(message)?.[1] ?? "").split(",").map((spec) => spec.trim()).filter((spec) => spec !== "");
|
|
2357
|
+
if (specs.length === 0) return false;
|
|
2358
|
+
return specs.every((spec) => /(?:^|@)(?:file|link):/i.test(spec));
|
|
2359
|
+
}
|
|
2330
2360
|
/** 只匹配 pnpm 的错误码,不匹配泛泛出现的 checksum / integrity 字样。 */
|
|
2331
2361
|
function missingTarballIntegrity(message) {
|
|
2332
2362
|
return /\bERR_PNPM_MISSING_TARBALL_INTEGRITY\b/.test(message);
|
|
@@ -2385,6 +2415,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2385
2415
|
if (/os error 32|EBUSY|resource busy or locked|being used by another process/i.test(message)) return "fileLocked";
|
|
2386
2416
|
if (/os error 5\b|ERROR_ACCESS_DENIED|\bEPERM\b|\bEACCES\b|access is denied/i.test(message)) return "accessDenied";
|
|
2387
2417
|
if (/os error 112\b|os error 19\b|ERROR_DISK_FULL|ERROR_WRITE_PROTECT|\bENOSPC\b|\bEROFS\b|\bEMFILE\b|\bENFILE\b|no space left on device|read-only file system|too many open files/i.test(message)) return "fsUnavailable";
|
|
2418
|
+
if (localBuildScriptsOnly(message)) return "profileLocalBuild";
|
|
2388
2419
|
if (/ERR_PNPM_IGNORED_BUILDS|Ignored build scripts:|ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED/i.test(message)) return "pnpmIgnoredBuild";
|
|
2389
2420
|
if (/ERR_PNPM_FETCH_40[13]\b|\bE40[13]\b|(?:Unauthorized|Forbidden)\s*-\s*40[13]\b/i.test(message)) return "registryAuth";
|
|
2390
2421
|
if (/ERR_PNPM_LINKED_PKG_DIR_NOT_FOUND|Could not install from .+ as it does not exist|pnpm:\s*ENOENT: no such file or directory,\s*(?:lstat|scandir|readlink)/i.test(message)) return "pnpmLinkedDirMissing";
|
|
@@ -2633,6 +2664,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2633
2664
|
case "nodeEngine": return `Node / pnpm on the user machine is below the version this ${word} requires`;
|
|
2634
2665
|
case "profileState": return `the user profile's pnpm metadata does not match the local pnpm for this ${word}`;
|
|
2635
2666
|
case "profileYamlCorrupted": return "the user profile has a corrupted YAML config (duplicated mapping key)";
|
|
2667
|
+
case "profileLocalBuild": return "a local (file:/link:) plugin already in the user profile has a failing build script";
|
|
2636
2668
|
case "dshMissing": return "dsh command not found on the user machine";
|
|
2637
2669
|
case "pnpmMissing": return "pnpm command not found on the user machine";
|
|
2638
2670
|
case "pnpmStore": return "pnpm store version mismatch on the user machine";
|
|
@@ -2680,7 +2712,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2680
2712
|
const executed = executedCommandOf(command, attempts);
|
|
2681
2713
|
const zhWord = actionWordZh(action);
|
|
2682
2714
|
const title = `[dsh-plugin.org | dsh-plugin-hub] ${reasonTitleOf(kind, action)}: ${repo}`;
|
|
2683
|
-
const reason = kind === "hostIncompatible" ? "the plugin declares a dsh compatibility range that does not include the runtime in use, so the host rejects it before installing anything; please extend the supported dsh versions or publish a compatible release" : /\[packaging\]/i.test(message) ? "plugin distribution is incomplete — a file the package needs (its entry from main / exports, an entry a bundled patch mounts, or the patch declared by dsh.bundle.patch) is missing from the published npm package; please publish a complete package" : /\[registry-missing\]/i.test(message) ? "a dependency declared by the plugin is not published on the public npm registry (missing, removed, or never released); please publish or correct that dependency, or ship it with the plugin" : kind === "network" ? "network connectivity issue on the user side (DNS, proxy, firewall, or a blocked connection)" : kind === "tlsTrust" ? "the local certificate chain is not trusted by Node/pnpm (corporate SSL inspection, antivirus web shield, or a local MITM proxy) — local environment issue" : kind === "localEnv" ? "no evidence of a plugin-side cause; the log shows local-environment signals (system error codes, certificates/proxy, or a broken local config), so this is reported for triage of the classifier only" : kind === "dshTooOld" ? "the plugin declares a minimum DSH version this host does not meet — upgrade DSH first (local environment issue)" : kind === "pnpmModulesMismatch" ? "the profile node_modules was created with a different pnpm config (hoisting / virtual store settings), so pnpm refuses to reuse it (local environment issue)" : kind === "profileBundleMissing" ? "the profile declares a bundle that is not installed in it (interrupted install or incomplete app update), so the host aborts before installing anything (local environment issue)" : kind === "registryAuth" ? "the npm registry rejected the request with 401/403 — the configured registry needs credentials or blocks this network (local environment issue)" : kind === "profileExclusive" ? "the desktop profile can only be managed by the Electron app, and the install was attempted from an external CLI (local environment issue)" : kind === "pluginPrepare" ? "plugin prepare/build script failed during install (packaging/distribution issue)" : kind === "pnpmIgnoredBuild" ? "plugin
|
|
2715
|
+
const reason = kind === "hostIncompatible" ? "the plugin declares a dsh compatibility range that does not include the runtime in use, so the host rejects it before installing anything; please extend the supported dsh versions or publish a compatible release" : /\[packaging\]/i.test(message) ? "plugin distribution is incomplete — a file the package needs (its entry from main / exports, an entry a bundled patch mounts, or the patch declared by dsh.bundle.patch) is missing from the published npm package; please publish a complete package" : /\[registry-missing\]/i.test(message) ? "a dependency declared by the plugin is not published on the public npm registry (missing, removed, or never released); please publish or correct that dependency, or ship it with the plugin" : kind === "network" ? "network connectivity issue on the user side (DNS, proxy, firewall, or a blocked connection)" : kind === "tlsTrust" ? "the local certificate chain is not trusted by Node/pnpm (corporate SSL inspection, antivirus web shield, or a local MITM proxy) — local environment issue" : kind === "profileLocalBuild" ? "no plugin-side cause found — pnpm rejects a build script of a local (file:/link:) package that already exists in the user profile, so every install into that profile fails the same way (local environment issue)" : kind === "localEnv" ? "no evidence of a plugin-side cause; the log shows local-environment signals (system error codes, certificates/proxy, or a broken local config), so this is reported for triage of the classifier only" : kind === "dshTooOld" ? "the plugin declares a minimum DSH version this host does not meet — upgrade DSH first (local environment issue)" : kind === "pnpmModulesMismatch" ? "the profile node_modules was created with a different pnpm config (hoisting / virtual store settings), so pnpm refuses to reuse it (local environment issue)" : kind === "profileBundleMissing" ? "the profile declares a bundle that is not installed in it (interrupted install or incomplete app update), so the host aborts before installing anything (local environment issue)" : kind === "registryAuth" ? "the npm registry rejected the request with 401/403 — the configured registry needs credentials or blocks this network (local environment issue)" : kind === "profileExclusive" ? "the desktop profile can only be managed by the Electron app, and the install was attempted from an external CLI (local environment issue)" : kind === "pluginPrepare" ? "plugin prepare/build script failed during install (packaging/distribution issue)" : kind === "pnpmIgnoredBuild" ? "a package in this plugin's install tree (the plugin itself or one of its dependencies) declares a build script that pnpm blocks by default; pnpm fails the whole install until it is approved, and the blocked script is not necessarily a native module" : kind === "originRejected" ? "the request never reached the install flow — the local service rejected its origin (local environment issue)" : kind === "pnpmPolicy" ? pnpmPolicyHintOf(message) === "failPnpmTarballIntegrityHint" ? "pnpm rejected a lockfile entry without tarball integrity; inspect and back up the profile lockfile before resolving it again, keeping integrity checks enabled" : "the pnpm supply-chain policy on the user machine blocked the install (minimum release age for freshly published packages / untrusted origin)" : kind === "pnpmUnusedPatch" ? "the profile keeps a pnpm patch entry for an older dsh-plugin version, so pnpm aborted the install (local config issue)" : kind === "fileLocked" ? "a file in the profile is locked by another process on the user machine (local environment issue)" : kind === "accessDenied" ? "the system denied write access to a file in the profile on the user machine (local environment issue)" : kind === "fsUnavailable" ? "the local file system could not accept the write — no space left, read-only volume, or too many open file handles on the user machine (local environment issue)" : "plugin-side install failure";
|
|
2684
2716
|
const code = coreErrorCode(message);
|
|
2685
2717
|
const build = (coreChars) => {
|
|
2686
2718
|
const body = [
|
|
@@ -4151,7 +4183,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4151
4183
|
})() : null, (0, react.createElement)("button", {
|
|
4152
4184
|
className: Modal_module_css_default.errorCopySoft,
|
|
4153
4185
|
onClick: () => onCopy(copyText)
|
|
4154
|
-
}, t("errorCopy"))), (0, react.createElement)("pre", { className: Modal_module_css_default.errorBox }, displayMessage), (0, react.createElement)("div", { className: Modal_module_css_default.failKindTitle }, t(`failKind_${failureKind}`, failureKind === "hostIncompatible" ? { version: /incompatible with dsh\s+([^\s:;,]+)/i.exec(message)?.[1] ?? "" } : void 0)), failureKind === "hostIncompatible" ? null : (0, react.createElement)("div", { className: Modal_module_css_default.failReason }, t(`failReason_${failureKind}`)), 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 === "buildToolchainMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failBuildToolchainHint")) : failureKind === "pnpmWorkspace" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmWorkspaceHint")) : failureKind === "pnpmModulesMismatch" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmModulesMismatchHint")) : failureKind === "pnpmStore" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint")) : failureKind === "pnpmPolicy" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(pnpmPolicyHintOf(message), pnpmPolicyHintParams(message))) : failureKind === "pnpmUnusedPatch" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint")) : failureKind === "profileYamlCorrupted" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileYamlHint")) : failureKind === "profileState" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileStateHint")) : failureKind === "nodeEngine" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNodeEngineHint")) : failureKind === "pnpmMissingDep" ? (0, react.createElement)("div", null, [(() => {
|
|
4186
|
+
}, t("errorCopy"))), (0, react.createElement)("pre", { className: Modal_module_css_default.errorBox }, displayMessage), (0, react.createElement)("div", { className: Modal_module_css_default.failKindTitle }, t(`failKind_${failureKind}`, failureKind === "hostIncompatible" ? { version: /incompatible with dsh\s+([^\s:;,]+)/i.exec(message)?.[1] ?? "" } : void 0)), failureKind === "hostIncompatible" ? null : (0, react.createElement)("div", { className: Modal_module_css_default.failReason }, t(`failReason_${failureKind}`)), 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 === "buildToolchainMissing" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failBuildToolchainHint")) : failureKind === "pnpmWorkspace" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmWorkspaceHint")) : failureKind === "pnpmModulesMismatch" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmModulesMismatchHint")) : failureKind === "pnpmStore" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint")) : failureKind === "pnpmPolicy" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(pnpmPolicyHintOf(message), pnpmPolicyHintParams(message))) : failureKind === "pnpmUnusedPatch" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint")) : failureKind === "profileYamlCorrupted" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileYamlHint")) : failureKind === "profileLocalBuild" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileLocalBuildHint")) : failureKind === "profileState" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileStateHint")) : failureKind === "nodeEngine" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNodeEngineHint")) : failureKind === "pnpmMissingDep" ? (0, react.createElement)("div", null, [(() => {
|
|
4155
4187
|
const pkg = missingRegistryPackageOf(message);
|
|
4156
4188
|
return pkg ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failPnpmMissingDepTarget", { pkg })) : null;
|
|
4157
4189
|
})(), (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(registryMissingHintOf(message)))]) : failureKind === "pluginMissingDep" ? (0, react.createElement)("div", null, [
|
|
@@ -4484,8 +4516,21 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4484
4516
|
const hasUpdate = state === "available";
|
|
4485
4517
|
const pending = state === "pending";
|
|
4486
4518
|
const shownVersion = hasUpdate || pending ? info.version : currentVersion || info.version;
|
|
4519
|
+
const chip = hasUpdate ? {
|
|
4520
|
+
className: Modal_module_css_default.hubStateAvailable,
|
|
4521
|
+
label: t("hubVersionStateAvailable")
|
|
4522
|
+
} : pending ? {
|
|
4523
|
+
className: Modal_module_css_default.hubStatePending,
|
|
4524
|
+
label: t("hubVersionStatePending")
|
|
4525
|
+
} : {
|
|
4526
|
+
className: Modal_module_css_default.hubStateLatest,
|
|
4527
|
+
label: t("hubVersionStateLatest")
|
|
4528
|
+
};
|
|
4487
4529
|
const notesRaw = typeof info.notes === "string" ? info.notes : info.notes && typeof info.notes === "object" ? lang === "en" ? info.notes.en ?? info.notes.zh ?? "" : info.notes.zh ?? info.notes.en ?? "" : "";
|
|
4488
|
-
const
|
|
4530
|
+
const notesStripped = notesRaw.replace(/^\s*#\s*DSH Plugin Hub[^\n]*\n+/, "");
|
|
4531
|
+
const notesBody = notesStripped.trim() === "" ? notesRaw : notesStripped;
|
|
4532
|
+
const notesHtml = notesBody.trim() ? renderMarkdown(notesBody) : null;
|
|
4533
|
+
const desc = hasUpdate ? t("hubUpdateDesc") : pending ? t("hubPendingDesc") : null;
|
|
4489
4534
|
let published = null;
|
|
4490
4535
|
if (info.publishedAt) {
|
|
4491
4536
|
const d = new Date(info.publishedAt);
|
|
@@ -4502,9 +4547,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4502
4547
|
"aria-modal": "true"
|
|
4503
4548
|
}, (0, react.createElement)("div", { className: Modal_module_css_default.modalHead }, (0, react.createElement)("div", { className: Modal_module_css_default.modalTitle }, t(hasUpdate || pending ? "hubUpdateTitle" : "hubCurrentTitle")), (0, react.createElement)("button", {
|
|
4504
4549
|
className: Modal_module_css_default.modalClose,
|
|
4505
|
-
"aria-label": t("
|
|
4550
|
+
"aria-label": t("close"),
|
|
4506
4551
|
onClick: () => onClose()
|
|
4507
|
-
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.
|
|
4552
|
+
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.hubVersionBar }, (0, react.createElement)("span", { className: Modal_module_css_default.hubVersionNumber }, `v${shownVersion}`), (0, react.createElement)("span", { className: `${Modal_module_css_default.hubStateChip} ${chip.className}` }, chip.label), published ? (0, react.createElement)("span", { className: Modal_module_css_default.hubVersionDate }, `${t("hubUpdatePublished")} ${published}`) : null), desc ? (0, react.createElement)("div", { className: Modal_module_css_default.modalDesc }, desc) : null, notesHtml ? (0, react.createElement)("div", {
|
|
4508
4553
|
className: Modal_module_css_default.hubUpdateNotes,
|
|
4509
4554
|
dangerouslySetInnerHTML: { __html: notesHtml }
|
|
4510
4555
|
}) : null, (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, hasUpdate ? [(0, react.createElement)("button", {
|
|
@@ -4516,7 +4561,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4516
4561
|
}, t("updateNow"))] : (0, react.createElement)("button", {
|
|
4517
4562
|
className: Modal_module_css_default.modalInstall,
|
|
4518
4563
|
onClick: onClose
|
|
4519
|
-
}, t(
|
|
4564
|
+
}, t("close")))));
|
|
4520
4565
|
}
|
|
4521
4566
|
//#endregion
|
|
4522
4567
|
//#region src/client/logic/format.ts
|
|
@@ -4831,6 +4876,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4831
4876
|
if (kind === "pnpmPolicy") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(pnpmPolicyHintOf(r.message), pnpmPolicyHintParams(r.message)));
|
|
4832
4877
|
if (kind === "pnpmUnusedPatch") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint"));
|
|
4833
4878
|
if (kind === "profileYamlCorrupted") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileYamlHint"));
|
|
4879
|
+
if (kind === "profileLocalBuild") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileLocalBuildHint"));
|
|
4834
4880
|
if (kind === "profileState") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failProfileStateHint"));
|
|
4835
4881
|
if (kind === "nodeEngine") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNodeEngineHint"));
|
|
4836
4882
|
if (kind === "pnpmMissingDep") {
|
|
@@ -5148,7 +5194,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5148
5194
|
}
|
|
5149
5195
|
//#endregion
|
|
5150
5196
|
//#region \0dsh-css:src/client/styles/List.module.css.mjs
|
|
5151
|
-
const css$9 = "._3XaZHa_body{flex-direction:column;flex:1;min-height:0;display:flex}._3XaZHa_list{flex-direction:column;flex:1;gap:6px;min-height:0;padding:2px 4px 4px 2px;display:flex;overflow-y:auto}._3XaZHa_moreSentinel{flex-shrink:0;height:1px}._3XaZHa_card{border:1px solid var(--hub-border-2);background:var(--hub-bg-1);border-radius:8px;justify-content:space-between;align-items:stretch;gap:12px;padding:9px 12px;transition:border-color .12s,background .12s;display:flex}._3XaZHa_card:hover{border-color:var(--hub-brand);background:var(--hub-bg-2)}._3XaZHa_cardMain{flex-direction:column;gap:4px;min-width:0;display:flex}.
|
|
5197
|
+
const css$9 = "._3XaZHa_body{flex-direction:column;flex:1;min-height:0;display:flex}._3XaZHa_list{flex-direction:column;flex:1;gap:6px;min-height:0;padding:2px 4px 4px 2px;display:flex;overflow-y:auto}._3XaZHa_moreSentinel{flex-shrink:0;height:1px}._3XaZHa_card{border:1px solid var(--hub-border-2);background:var(--hub-bg-1);border-radius:8px;justify-content:space-between;align-items:stretch;gap:12px;padding:9px 12px;transition:border-color .12s,background .12s;display:flex}._3XaZHa_card:hover{border-color:var(--hub-brand);background:var(--hub-bg-2)}._3XaZHa_cardMain{flex-direction:column;gap:4px;min-width:0;display:flex}._3XaZHa_cardTitleRow{align-items:center;gap:6px;min-width:0;display:flex}._3XaZHa_cardTitle{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:inherit;flex:0 auto;font-size:13px;font-weight:600;line-height:18px;text-decoration:none;transition:color .12s;overflow:hidden}a._3XaZHa_cardTitle:hover{color:var(--hub-brand);text-decoration:underline}._3XaZHa_cardBadgeRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}._3XaZHa_categoryBadge,._3XaZHa_verified,._3XaZHa_authorBadge,._3XaZHa_versionBadge,._3XaZHa_updateBadge{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 5px;font-size:10px;line-height:14px}._3XaZHa_authorBadge{color:var(--hub-text-tertiary);border-color:var(--hub-border-ghost);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._3XaZHa_categoryBadge{color:var(--hub-brand);border-color:var(--hub-border-ghost)}._3XaZHa_verified{color:var(--hub-success);border-color:var(--hub-success-border)}._3XaZHa_versionBadge{color:var(--hub-text-secondary);border-color:var(--hub-border-input)}._3XaZHa_updateBadge{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}._3XaZHa_desc{color:var(--hub-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}._3XaZHa_topics{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}._3XaZHa_topic{color:var(--hub-text-tertiary);background:var(--hub-bg-3);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}._3XaZHa_cardSide{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:6px;display:flex}._3XaZHa_stats{flex-direction:column;align-items:flex-end;gap:1px;display:flex}._3XaZHa_star{color:var(--hub-warn);white-space:nowrap;font-size:11px;line-height:16px}._3XaZHa_fork{color:var(--hub-text-tertiary);white-space:nowrap;font-size:11px;line-height:16px}._3XaZHa_date{color:var(--hub-text-tertiary);white-space:nowrap;font-size:10px;line-height:14px}._3XaZHa_installBtn,._3XaZHa_installBtnCopied,._3XaZHa_installBtnInstalled,._3XaZHa_installBtnUpdate,._3XaZHa_uninstallBtn,._3XaZHa_detailBtn{cursor:pointer;border-radius:6px;padding:2px 10px;font-size:11px;line-height:18px;transition:color .12s,border-color .12s,background .12s}._3XaZHa_installBtnInstalled{color:var(--hub-success);background:var(--hub-success-tint);cursor:default;-webkit-user-select:none;user-select:none;border:none}._3XaZHa_installBtnUpdate{color:#fff;background:var(--hub-warn);-webkit-user-select:none;user-select:none;border:none;font-weight:500}._3XaZHa_installBtnUpdate:hover{background:var(--hub-warn-strong)}._3XaZHa_uninstallBtn{color:var(--hub-danger);background:var(--hub-danger-tint);-webkit-user-select:none;user-select:none;border:none}._3XaZHa_uninstallBtn:hover{color:#fff;background:var(--hub-danger-hover)}body[data-ds-dark-theme] ._3XaZHa_uninstallBtn{color:#fff;background:var(--hub-danger)}body[data-ds-dark-theme] ._3XaZHa_uninstallBtn:hover{background:var(--hub-danger-hover)}._3XaZHa_installBtn{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);-webkit-user-select:none;user-select:none;border:none;font-weight:500}._3XaZHa_installBtn:hover{background:var(--hub-btn-hover)}._3XaZHa_detailBtn{color:var(--hub-text-secondary);-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;text-decoration:none;display:inline-flex}._3XaZHa_detailBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}._3XaZHa_actions{align-items:center;gap:6px;display:flex}._3XaZHa_installBtnCopied{color:var(--hub-success);background:var(--hub-success-tint);-webkit-user-select:none;user-select:none;border:none}._3XaZHa_state{text-align:center;min-height:160px;color:var(--hub-text-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:12px;line-height:18px;display:flex}._3XaZHa_stateTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600}._3XaZHa_stateDesc{max-width:420px}._3XaZHa_retryBtn{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:4px 12px;font-size:12px;line-height:18px}._3XaZHa_retryBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}._3XaZHa_stateActions{align-items:center;gap:8px;margin-top:4px;display:flex}._3XaZHa_diagBtn{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:4px 12px;font-size:12px;line-height:18px}._3XaZHa_diagBtn:hover{background:var(--hub-brand-hover)}._3XaZHa_footer{border-top:1px solid var(--hub-border-1);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:6px 4px 0;display:flex}._3XaZHa_footLink{color:var(--hub-brand);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:11px;line-height:16px;text-decoration:none}._3XaZHa_footLink:hover{text-decoration:underline}";
|
|
5152
5198
|
const tagId$9 = "dsh-plugin/List.module.css";
|
|
5153
5199
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$9) + "]") === null) {
|
|
5154
5200
|
const tag = document.createElement("style");
|
|
@@ -5163,39 +5209,41 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5163
5209
|
css: css$9
|
|
5164
5210
|
});
|
|
5165
5211
|
var List_module_css_default = {
|
|
5166
|
-
"detailBtn": "_3XaZHa_detailBtn",
|
|
5167
|
-
"body": "_3XaZHa_body",
|
|
5168
|
-
"date": "_3XaZHa_date",
|
|
5169
5212
|
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
5170
|
-
"
|
|
5171
|
-
"
|
|
5172
|
-
"versionBadge": "_3XaZHa_versionBadge",
|
|
5173
|
-
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
5174
|
-
"fork": "_3XaZHa_fork",
|
|
5213
|
+
"cardTitleRow": "_3XaZHa_cardTitleRow",
|
|
5214
|
+
"topics": "_3XaZHa_topics",
|
|
5175
5215
|
"actions": "_3XaZHa_actions",
|
|
5176
|
-
"footLink": "_3XaZHa_footLink",
|
|
5177
|
-
"star": "_3XaZHa_star",
|
|
5178
5216
|
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
5179
|
-
"
|
|
5180
|
-
"
|
|
5181
|
-
"stateActions": "_3XaZHa_stateActions",
|
|
5182
|
-
"footer": "_3XaZHa_footer",
|
|
5217
|
+
"authorBadge": "_3XaZHa_authorBadge",
|
|
5218
|
+
"installBtn": "_3XaZHa_installBtn",
|
|
5183
5219
|
"state": "_3XaZHa_state",
|
|
5184
5220
|
"stateDesc": "_3XaZHa_stateDesc",
|
|
5221
|
+
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
5222
|
+
"footLink": "_3XaZHa_footLink",
|
|
5223
|
+
"cardTitle": "_3XaZHa_cardTitle",
|
|
5224
|
+
"date": "_3XaZHa_date",
|
|
5225
|
+
"cardBadgeRow": "_3XaZHa_cardBadgeRow",
|
|
5226
|
+
"cardMain": "_3XaZHa_cardMain",
|
|
5227
|
+
"versionBadge": "_3XaZHa_versionBadge",
|
|
5228
|
+
"retryBtn": "_3XaZHa_retryBtn",
|
|
5185
5229
|
"stats": "_3XaZHa_stats",
|
|
5186
5230
|
"topic": "_3XaZHa_topic",
|
|
5187
5231
|
"cardSide": "_3XaZHa_cardSide",
|
|
5188
|
-
"
|
|
5189
|
-
"
|
|
5190
|
-
"
|
|
5232
|
+
"updateBadge": "_3XaZHa_updateBadge",
|
|
5233
|
+
"star": "_3XaZHa_star",
|
|
5234
|
+
"fork": "_3XaZHa_fork",
|
|
5235
|
+
"footer": "_3XaZHa_footer",
|
|
5236
|
+
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
5191
5237
|
"desc": "_3XaZHa_desc",
|
|
5192
|
-
"
|
|
5193
|
-
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
5238
|
+
"detailBtn": "_3XaZHa_detailBtn",
|
|
5194
5239
|
"diagBtn": "_3XaZHa_diagBtn",
|
|
5195
|
-
"
|
|
5196
|
-
"
|
|
5197
|
-
"
|
|
5198
|
-
"
|
|
5240
|
+
"verified": "_3XaZHa_verified",
|
|
5241
|
+
"stateTitle": "_3XaZHa_stateTitle",
|
|
5242
|
+
"card": "_3XaZHa_card",
|
|
5243
|
+
"stateActions": "_3XaZHa_stateActions",
|
|
5244
|
+
"list": "_3XaZHa_list",
|
|
5245
|
+
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
5246
|
+
"body": "_3XaZHa_body",
|
|
5199
5247
|
"installBtnUpdate": "_3XaZHa_installBtnUpdate"
|
|
5200
5248
|
};
|
|
5201
5249
|
//#endregion
|
|
@@ -5251,7 +5299,14 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5251
5299
|
const update = hasUpdate(p);
|
|
5252
5300
|
const pendingUntil = isInstalled && !update ? updatePendingUntil(p) : null;
|
|
5253
5301
|
const versionShown = isInstalled ? installedVersion(p) : p.version;
|
|
5254
|
-
|
|
5302
|
+
const author = p.ownerSlug ?? repo.split("/")[0]?.toLowerCase() ?? "";
|
|
5303
|
+
return (0, react.createElement)("div", { className: List_module_css_default.card }, (0, react.createElement)("div", { className: List_module_css_default.cardMain }, (0, react.createElement)("div", { className: List_module_css_default.cardTitleRow }, repo ? (0, react.createElement)("a", {
|
|
5304
|
+
className: List_module_css_default.cardTitle,
|
|
5305
|
+
href: pluginDetailUrl(p, langPath),
|
|
5306
|
+
target: "_blank",
|
|
5307
|
+
rel: "noopener noreferrer",
|
|
5308
|
+
title: p.description ?? ""
|
|
5309
|
+
}, p.displayName ?? p.slug) : (0, react.createElement)("div", {
|
|
5255
5310
|
className: List_module_css_default.cardTitle,
|
|
5256
5311
|
title: p.description ?? ""
|
|
5257
5312
|
}, p.displayName ?? p.slug), versionShown ? (0, react.createElement)("span", {
|
|
@@ -5263,7 +5318,10 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5263
5318
|
}, t("updateAvailable")) : null, pendingUntil !== null ? (0, react.createElement)("span", {
|
|
5264
5319
|
className: List_module_css_default.updateBadge,
|
|
5265
5320
|
title: t("updatePendingHint")
|
|
5266
|
-
}, t("updatePending", { time: clockTime(pendingUntil) })) : null
|
|
5321
|
+
}, t("updatePending", { time: clockTime(pendingUntil) })) : null), author || p.category || p.compatibility?.status === "verified" ? (0, react.createElement)("div", { className: List_module_css_default.cardBadgeRow }, author ? (0, react.createElement)("span", {
|
|
5322
|
+
className: List_module_css_default.authorBadge,
|
|
5323
|
+
title: t("author")
|
|
5324
|
+
}, `@${author}`) : null, p.category ? (0, react.createElement)("span", { className: List_module_css_default.categoryBadge }, categoryLabel(CATEGORY_LABELS, p.category, langKey)) : null, p.compatibility?.status === "verified" ? (0, react.createElement)("span", { className: List_module_css_default.verified }, t("verified")) : null) : null, p.description ? (0, react.createElement)("p", { className: List_module_css_default.desc }, p.description) : null, (p.topics?.length ?? 0) > 0 ? (0, react.createElement)("div", { className: List_module_css_default.topics }, p.topics.slice(0, 3).map((topic) => (0, react.createElement)("span", {
|
|
5267
5325
|
key: topic,
|
|
5268
5326
|
className: List_module_css_default.topic
|
|
5269
5327
|
}, topic))) : null), (0, react.createElement)("div", { className: List_module_css_default.cardSide }, (0, react.createElement)("div", { className: List_module_css_default.stats }, (0, react.createElement)("span", { className: List_module_css_default.star }, "★ ", fmtStars(p.stats?.stargazers_count)), (0, react.createElement)("span", { className: List_module_css_default.fork }, t("fork"), " ", fmtStars(p.stats?.forks_count)), (0, react.createElement)("span", { className: List_module_css_default.date }, relTime(p.dates?.repoUpdatedAt, t))), repo ? (0, react.createElement)("div", { className: List_module_css_default.actions }, (0, react.createElement)("a", {
|
|
@@ -5407,16 +5465,16 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5407
5465
|
css: css$8
|
|
5408
5466
|
});
|
|
5409
5467
|
var SectionTabs_module_css_default = {
|
|
5410
|
-
"tabIcon": "_7tvizq_tabIcon",
|
|
5411
|
-
"tabCountActive": "_7tvizq_tabCountActive",
|
|
5412
|
-
"noticeBtn": "_7tvizq_noticeBtn",
|
|
5413
|
-
"noticeCount": "_7tvizq_noticeCount",
|
|
5414
5468
|
"tabCount": "_7tvizq_tabCount",
|
|
5415
|
-
"
|
|
5469
|
+
"noticeCount": "_7tvizq_noticeCount",
|
|
5416
5470
|
"tabActive": "_7tvizq_tabActive",
|
|
5417
|
-
"
|
|
5471
|
+
"noticeIcon": "_7tvizq_noticeIcon",
|
|
5472
|
+
"noticeBtn": "_7tvizq_noticeBtn",
|
|
5473
|
+
"tab": "_7tvizq_tab",
|
|
5418
5474
|
"tabLabel": "_7tvizq_tabLabel",
|
|
5419
|
-
"
|
|
5475
|
+
"tabIcon": "_7tvizq_tabIcon",
|
|
5476
|
+
"tabCountActive": "_7tvizq_tabCountActive",
|
|
5477
|
+
"root": "_7tvizq_root"
|
|
5420
5478
|
};
|
|
5421
5479
|
//#endregion
|
|
5422
5480
|
//#region src/client/components/layout/SectionTabs.tsx
|
|
@@ -5477,7 +5535,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5477
5535
|
}
|
|
5478
5536
|
//#endregion
|
|
5479
5537
|
//#region \0dsh-css:src/client/styles/InstalledView.module.css.mjs
|
|
5480
|
-
const css$7 = "._1nXeGW_root{flex-direction:column;gap:8px;min-width:0;display:flex}._1nXeGW_toolbar{border-bottom:1px solid var(--hub-border-1);flex-direction:column;flex-shrink:0;gap:8px;padding:0 2px 10px;display:flex}._1nXeGW_searchWrap{width:100%;min-width:0;height:28px}._1nXeGW_searchInput{width:100%;height:28px;color:var(--hub-text-primary);border:1px solid var(--hub-border-2);background:0 0;border-radius:6px;outline:none;padding:0 9px;font-size:12px;line-height:26px;transition:border-color .12s}._1nXeGW_searchInput::placeholder{color:var(--hub-text-tertiary)}._1nXeGW_searchInput:focus{border-color:var(--hub-brand)}._1nXeGW_segRow{align-items:center;gap:8px;min-width:0;display:flex}._1nXeGW_segLabel{color:var(--hub-text-tertiary);flex-shrink:0;font-size:11px;line-height:16px}._1nXeGW_segGroup{border:1px solid var(--hub-border-2);border-radius:6px;flex-shrink:0;align-items:center;display:inline-flex;overflow:hidden}._1nXeGW_segBtn{height:24px;color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:none;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-family:inherit;font-size:12px;line-height:24px;transition:color .12s,background .12s;display:inline-flex}._1nXeGW_segBtn svg{flex-shrink:0;display:block}._1nXeGW_segBtn+._1nXeGW_segBtn{border-left:1px solid var(--hub-border-2)}._1nXeGW_segBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}._1nXeGW_segBtnActive,._1nXeGW_segBtnActive:hover{color:#fff;background:var(--hub-brand)}._1nXeGW_empty{color:var(--hub-text-tertiary);text-align:center;border:1px dashed var(--hub-border-2);border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:36px 12px;font-size:12px;line-height:18px;display:flex}._1nXeGW_emptyTitle{color:var(--hub-text-secondary);font-size:13px;font-weight:600}._1nXeGW_emptyDesc{color:var(--hub-text-tertiary)}._1nXeGW_list{border:1px solid var(--hub-border-1);border-radius:8px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}._1nXeGW_row{background:var(--hub-bg-1);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;gap:4px;padding:8px 10px;transition:background .12s;display:flex}._1nXeGW_row+._1nXeGW_row{border-top:1px solid var(--hub-border-1)}._1nXeGW_row:hover{background:var(--hub-bg-2)}._1nXeGW_rowTitleLine{align-items:center;gap:8px;min-width:0;display:flex}._1nXeGW_rowDesc{color:var(--hub-text-tertiary);white-space:nowrap;text-overflow:ellipsis;min-width:0;padding-left:16px;font-size:11px;line-height:16px;overflow:hidden}._1nXeGW_statusDot{background:var(--hub-success);border-radius:50%;flex-shrink:0;width:8px;height:8px}._1nXeGW_statusDot._1nXeGW_statusPending{background:var(--hub-warning)}._1nXeGW_statusDot._1nXeGW_statusInactive{background:var(--hub-text-tertiary)}._1nXeGW_rowMain{flex:auto;align-items:baseline;gap:6px;min-width:0;display:flex}._1nXeGW_rowTitle{color:var(--hub-text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:600;line-height:18px;overflow:hidden}._1nXeGW_versionBadge{color:var(--hub-text-tertiary);background:var(--hub-bg-hover);border-radius:4px;flex-shrink:0;padding:0 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:
|
|
5538
|
+
const css$7 = "._1nXeGW_root{flex-direction:column;gap:8px;min-width:0;display:flex}._1nXeGW_toolbar{border-bottom:1px solid var(--hub-border-1);flex-direction:column;flex-shrink:0;gap:8px;padding:0 2px 10px;display:flex}._1nXeGW_searchWrap{width:100%;min-width:0;height:28px}._1nXeGW_searchInput{width:100%;height:28px;color:var(--hub-text-primary);border:1px solid var(--hub-border-2);background:0 0;border-radius:6px;outline:none;padding:0 9px;font-size:12px;line-height:26px;transition:border-color .12s}._1nXeGW_searchInput::placeholder{color:var(--hub-text-tertiary)}._1nXeGW_searchInput:focus{border-color:var(--hub-brand)}._1nXeGW_segRow{align-items:center;gap:8px;min-width:0;display:flex}._1nXeGW_segLabel{color:var(--hub-text-tertiary);flex-shrink:0;font-size:11px;line-height:16px}._1nXeGW_segGroup{border:1px solid var(--hub-border-2);border-radius:6px;flex-shrink:0;align-items:center;display:inline-flex;overflow:hidden}._1nXeGW_segBtn{height:24px;color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:none;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-family:inherit;font-size:12px;line-height:24px;transition:color .12s,background .12s;display:inline-flex}._1nXeGW_segBtn svg{flex-shrink:0;display:block}._1nXeGW_segBtn+._1nXeGW_segBtn{border-left:1px solid var(--hub-border-2)}._1nXeGW_segBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}._1nXeGW_segBtnActive,._1nXeGW_segBtnActive:hover{color:#fff;background:var(--hub-brand)}._1nXeGW_empty{color:var(--hub-text-tertiary);text-align:center;border:1px dashed var(--hub-border-2);border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:36px 12px;font-size:12px;line-height:18px;display:flex}._1nXeGW_emptyTitle{color:var(--hub-text-secondary);font-size:13px;font-weight:600}._1nXeGW_emptyDesc{color:var(--hub-text-tertiary)}._1nXeGW_list{border:1px solid var(--hub-border-1);border-radius:8px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}._1nXeGW_row{background:var(--hub-bg-1);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;gap:4px;padding:8px 10px;transition:background .12s;display:flex}._1nXeGW_row+._1nXeGW_row{border-top:1px solid var(--hub-border-1)}._1nXeGW_row:hover{background:var(--hub-bg-2)}._1nXeGW_rowTitleLine{align-items:center;gap:8px;min-width:0;display:flex}._1nXeGW_rowDesc{color:var(--hub-text-tertiary);white-space:nowrap;text-overflow:ellipsis;min-width:0;padding-left:16px;font-size:11px;line-height:16px;overflow:hidden}._1nXeGW_statusDot{background:var(--hub-success);border-radius:50%;flex-shrink:0;width:8px;height:8px}._1nXeGW_statusDot._1nXeGW_statusPending{background:var(--hub-warning)}._1nXeGW_statusDot._1nXeGW_statusInactive{background:var(--hub-text-tertiary)}._1nXeGW_rowMain{flex:auto;align-items:baseline;gap:6px;min-width:0;display:flex}._1nXeGW_rowStats{white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}._1nXeGW_rowStar{color:var(--hub-warn);font-size:11px;line-height:16px}._1nXeGW_rowFork{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}._1nXeGW_rowTitle{color:var(--hub-text-primary);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:12px;font-weight:600;line-height:18px;text-decoration:none;overflow:hidden}a._1nXeGW_rowTitle:hover{color:var(--hub-brand);text-decoration:underline}._1nXeGW_versionBadge{color:var(--hub-text-tertiary);background:var(--hub-bg-hover);border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;line-height:14px}._1nXeGW_updateBadge{color:var(--hub-warn);background:var(--hub-warn-tint);border:1px solid var(--hub-warn-border);border-radius:4px;flex-shrink:0;padding:0 5px;font-size:10px;font-weight:500;line-height:14px}._1nXeGW_rowSourceTag{box-sizing:border-box;text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;flex-shrink:0;width:60px;padding:0 4px;font-size:10px;font-weight:500;line-height:14px;overflow:hidden}._1nXeGW_rowSourceTagHub{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft)}._1nXeGW_rowSourceTagManual{color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border)}._1nXeGW_exampleBadge{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:4px;flex-shrink:0;padding:0 5px;font-size:10px;font-weight:500;line-height:14px}._1nXeGW_exampleRow{align-items:center;min-width:0;padding-left:16px;display:flex}._1nXeGW_rowMeta{align-items:center;gap:8px;min-width:0;padding-left:16px;display:flex;overflow:hidden}._1nXeGW_rowRepo{color:var(--hub-text-tertiary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:16px;text-decoration:none;overflow:hidden}a._1nXeGW_rowRepo:hover{color:var(--hub-brand);text-decoration:underline}._1nXeGW_rowCategory{color:var(--hub-text-tertiary);background:var(--hub-bg-hover);border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 5px;font-size:10px;line-height:14px}._1nXeGW_rowActionLine{justify-content:flex-end;align-items:center;gap:8px;min-width:0;padding-left:16px;display:flex}._1nXeGW_rowActions{flex-shrink:0;align-items:center;gap:4px;display:flex}._1nXeGW_rowDetail{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:6px;padding:2px 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;transition:color .12s,background .12s,border-color .12s}._1nXeGW_rowDetail:hover{color:var(--hub-text-primary);border-color:var(--hub-border-2);background:var(--hub-bg-hover)}._1nXeGW_rowRestart{color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:2px 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;transition:color .12s,background .12s,border-color .12s}._1nXeGW_rowRestart:hover{color:#fff;background:var(--hub-warning);border-color:var(--hub-warning)}._1nXeGW_rowUpdate{color:#fff;background:var(--hub-warn);border:1px solid var(--hub-warn);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:2px 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;transition:background .12s}._1nXeGW_rowUpdate:hover{background:var(--hub-warn-strong)}._1nXeGW_rowUninstall{color:var(--hub-danger);border:1px solid var(--hub-danger-border-soft);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:6px;padding:2px 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;transition:color .12s,background .12s,border-color .12s}._1nXeGW_rowUninstall:hover,body[data-ds-dark-theme] ._1nXeGW_rowUninstall{color:#fff;background:var(--hub-danger);border-color:var(--hub-danger)}body[data-ds-dark-theme] ._1nXeGW_rowUninstall:hover{background:var(--hub-danger-hover);border-color:var(--hub-danger-hover)}";
|
|
5481
5539
|
const tagId$7 = "dsh-plugin/InstalledView.module.css";
|
|
5482
5540
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
|
|
5483
5541
|
const tag = document.createElement("style");
|
|
@@ -5492,42 +5550,46 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5492
5550
|
css: css$7
|
|
5493
5551
|
});
|
|
5494
5552
|
var InstalledView_module_css_default = {
|
|
5495
|
-
"
|
|
5496
|
-
"versionBadge": "_1nXeGW_versionBadge",
|
|
5497
|
-
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
5498
|
-
"statusPending": "_1nXeGW_statusPending",
|
|
5553
|
+
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
5499
5554
|
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
5500
|
-
"updateBadge": "_1nXeGW_updateBadge",
|
|
5501
|
-
"segLabel": "_1nXeGW_segLabel",
|
|
5502
5555
|
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
5556
|
+
"rowDetail": "_1nXeGW_rowDetail",
|
|
5557
|
+
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
5558
|
+
"statusDot": "_1nXeGW_statusDot",
|
|
5559
|
+
"statusInactive": "_1nXeGW_statusInactive",
|
|
5560
|
+
"list": "_1nXeGW_list",
|
|
5561
|
+
"rowActionLine": "_1nXeGW_rowActionLine",
|
|
5562
|
+
"rowActions": "_1nXeGW_rowActions",
|
|
5563
|
+
"updateBadge": "_1nXeGW_updateBadge",
|
|
5564
|
+
"toolbar": "_1nXeGW_toolbar",
|
|
5503
5565
|
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
5504
|
-
"
|
|
5566
|
+
"rowTitle": "_1nXeGW_rowTitle",
|
|
5567
|
+
"searchWrap": "_1nXeGW_searchWrap",
|
|
5568
|
+
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
5505
5569
|
"rowRepo": "_1nXeGW_rowRepo",
|
|
5506
|
-
"
|
|
5507
|
-
"
|
|
5508
|
-
"
|
|
5509
|
-
"row": "_1nXeGW_row",
|
|
5510
|
-
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
5511
|
-
"segGroup": "_1nXeGW_segGroup",
|
|
5570
|
+
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
5571
|
+
"versionBadge": "_1nXeGW_versionBadge",
|
|
5572
|
+
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
5512
5573
|
"rowRestart": "_1nXeGW_rowRestart",
|
|
5513
|
-
"toolbar": "_1nXeGW_toolbar",
|
|
5514
|
-
"searchInput": "_1nXeGW_searchInput",
|
|
5515
5574
|
"segBtn": "_1nXeGW_segBtn",
|
|
5516
|
-
"
|
|
5575
|
+
"searchInput": "_1nXeGW_searchInput",
|
|
5517
5576
|
"exampleBadge": "_1nXeGW_exampleBadge",
|
|
5518
|
-
"rowActions": "_1nXeGW_rowActions",
|
|
5519
|
-
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
5520
5577
|
"rowCategory": "_1nXeGW_rowCategory",
|
|
5521
|
-
"searchWrap": "_1nXeGW_searchWrap",
|
|
5522
|
-
"empty": "_1nXeGW_empty",
|
|
5523
|
-
"list": "_1nXeGW_list",
|
|
5524
|
-
"statusInactive": "_1nXeGW_statusInactive",
|
|
5525
|
-
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
5526
5578
|
"exampleRow": "_1nXeGW_exampleRow",
|
|
5579
|
+
"rowMeta": "_1nXeGW_rowMeta",
|
|
5580
|
+
"rowDesc": "_1nXeGW_rowDesc",
|
|
5581
|
+
"segLabel": "_1nXeGW_segLabel",
|
|
5582
|
+
"empty": "_1nXeGW_empty",
|
|
5583
|
+
"rowMain": "_1nXeGW_rowMain",
|
|
5584
|
+
"statusPending": "_1nXeGW_statusPending",
|
|
5527
5585
|
"segRow": "_1nXeGW_segRow",
|
|
5528
|
-
"
|
|
5529
|
-
"
|
|
5530
|
-
"
|
|
5586
|
+
"rowStar": "_1nXeGW_rowStar",
|
|
5587
|
+
"segGroup": "_1nXeGW_segGroup",
|
|
5588
|
+
"rowStats": "_1nXeGW_rowStats",
|
|
5589
|
+
"rowFork": "_1nXeGW_rowFork",
|
|
5590
|
+
"row": "_1nXeGW_row",
|
|
5591
|
+
"root": "_1nXeGW_root",
|
|
5592
|
+
"emptyTitle": "_1nXeGW_emptyTitle"
|
|
5531
5593
|
};
|
|
5532
5594
|
//#endregion
|
|
5533
5595
|
//#region src/client/components/views/InstalledView.tsx
|
|
@@ -5589,7 +5651,14 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5589
5651
|
className: item.loaded ? InstalledView_module_css_default.statusDot : item.dshCapable && pendingRestart ? `${InstalledView_module_css_default.statusDot} ${InstalledView_module_css_default.statusPending}` : `${InstalledView_module_css_default.statusDot} ${InstalledView_module_css_default.statusInactive}`,
|
|
5590
5652
|
title: item.loaded ? t("statusRunning") : item.dshCapable && pendingRestart ? t("statusPending") : item.dshCapable ? t("statusInactive") : t("exampleHint"),
|
|
5591
5653
|
"aria-label": item.loaded ? t("statusRunning") : item.dshCapable && pendingRestart ? t("statusPending") : item.dshCapable ? t("statusInactive") : t("exampleHint")
|
|
5592
|
-
}), (0, react.createElement)("div", { className: InstalledView_module_css_default.rowMain },
|
|
5654
|
+
}), (0, react.createElement)("div", { className: InstalledView_module_css_default.rowMain }, repo ? (0, react.createElement)("a", {
|
|
5655
|
+
className: InstalledView_module_css_default.rowTitle,
|
|
5656
|
+
href: pluginSiteUrl(repo),
|
|
5657
|
+
target: "_blank",
|
|
5658
|
+
rel: "noopener noreferrer",
|
|
5659
|
+
title: t("detail"),
|
|
5660
|
+
onClick: (e) => e.stopPropagation()
|
|
5661
|
+
}, name) : (0, react.createElement)("span", { className: InstalledView_module_css_default.rowTitle }, name), item.installedVersion ? (0, react.createElement)("span", {
|
|
5593
5662
|
className: InstalledView_module_css_default.versionBadge,
|
|
5594
5663
|
title: t("installedVersionLabel")
|
|
5595
5664
|
}, item.installedVersion) : null, item.hasUpdate ? (0, react.createElement)("span", {
|
|
@@ -5598,10 +5667,23 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5598
5667
|
}, t("updateAvailable")) : item.pendingUntil != null ? (0, react.createElement)("span", {
|
|
5599
5668
|
className: InstalledView_module_css_default.updateBadge,
|
|
5600
5669
|
title: t("updatePendingHint")
|
|
5601
|
-
}, t("updatePending", { time: clockTime(item.pendingUntil) })) : null), (0, react.createElement)("span", {
|
|
5670
|
+
}, t("updatePending", { time: clockTime(item.pendingUntil) })) : null), item.plugin ? (0, react.createElement)("div", { className: InstalledView_module_css_default.rowStats }, (0, react.createElement)("span", { className: InstalledView_module_css_default.rowStar }, "★ ", fmtStars(item.plugin.stats?.stargazers_count)), (0, react.createElement)("span", { className: InstalledView_module_css_default.rowFork }, t("fork"), " ", fmtStars(item.plugin.stats?.forks_count))) : null), !item.dshCapable ? (0, react.createElement)("div", { className: InstalledView_module_css_default.exampleRow }, (0, react.createElement)("span", {
|
|
5671
|
+
className: InstalledView_module_css_default.exampleBadge,
|
|
5672
|
+
title: t("exampleHint")
|
|
5673
|
+
}, t("exampleLabel"))) : null, (0, react.createElement)("div", { className: InstalledView_module_css_default.rowMeta }, item.repo ? (0, react.createElement)("a", {
|
|
5674
|
+
className: InstalledView_module_css_default.rowRepo,
|
|
5675
|
+
href: pluginSiteUrl(item.repo),
|
|
5676
|
+
target: "_blank",
|
|
5677
|
+
rel: "noopener noreferrer",
|
|
5678
|
+
title: t("detail"),
|
|
5679
|
+
onClick: (e) => e.stopPropagation()
|
|
5680
|
+
}, item.repo) : null, category ? (0, react.createElement)("span", { className: InstalledView_module_css_default.rowCategory }, categoryLabel(CATEGORY_LABELS, category, langKey)) : null, (0, react.createElement)("span", {
|
|
5602
5681
|
className: isCustom ? `${InstalledView_module_css_default.rowSourceTag} ${InstalledView_module_css_default.rowSourceTagManual}` : `${InstalledView_module_css_default.rowSourceTag} ${InstalledView_module_css_default.rowSourceTagHub}`,
|
|
5603
5682
|
title: isCustom ? t("manualInstallHint") : t("hubInstallHint")
|
|
5604
|
-
}, isCustom ? t("manualInstall") : t("hubInstall"))
|
|
5683
|
+
}, isCustom ? t("manualInstall") : t("hubInstall"))), desc ? (0, react.createElement)("div", {
|
|
5684
|
+
className: InstalledView_module_css_default.rowDesc,
|
|
5685
|
+
title: desc
|
|
5686
|
+
}, desc) : null, (0, react.createElement)("div", { className: InstalledView_module_css_default.rowActionLine }, (0, react.createElement)("div", { className: InstalledView_module_css_default.rowActions }, !item.loaded && item.dshCapable && pendingRestart ? (0, react.createElement)("button", {
|
|
5605
5687
|
className: InstalledView_module_css_default.rowRestart,
|
|
5606
5688
|
type: "button",
|
|
5607
5689
|
title: t("restartPendingHint"),
|
|
@@ -5616,7 +5698,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5616
5698
|
e.stopPropagation();
|
|
5617
5699
|
onReveal(item);
|
|
5618
5700
|
}
|
|
5619
|
-
}, revealLabel) : null,
|
|
5701
|
+
}, revealLabel) : null, (0, react.createElement)("button", {
|
|
5702
|
+
className: InstalledView_module_css_default.rowDetail,
|
|
5703
|
+
type: "button",
|
|
5704
|
+
title: t("detail"),
|
|
5705
|
+
onClick: (e) => {
|
|
5706
|
+
e.stopPropagation();
|
|
5707
|
+
onOpenDetail(item);
|
|
5708
|
+
}
|
|
5709
|
+
}, t("installDetail")), item.hasUpdate && item.plugin ? (0, react.createElement)("button", {
|
|
5620
5710
|
className: InstalledView_module_css_default.rowUpdate,
|
|
5621
5711
|
type: "button",
|
|
5622
5712
|
title: t("updateAvailableHint"),
|
|
@@ -5631,13 +5721,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5631
5721
|
e.stopPropagation();
|
|
5632
5722
|
onUninstall(item);
|
|
5633
5723
|
}
|
|
5634
|
-
}, t("uninstall"))))
|
|
5635
|
-
className: InstalledView_module_css_default.exampleBadge,
|
|
5636
|
-
title: t("exampleHint")
|
|
5637
|
-
}, t("exampleLabel"))) : null, repo || category ? (0, react.createElement)("div", { className: InstalledView_module_css_default.rowMeta }, item.repo ? (0, react.createElement)("span", { className: InstalledView_module_css_default.rowRepo }, item.repo) : null, category ? (0, react.createElement)("span", { className: InstalledView_module_css_default.rowCategory }, categoryLabel(CATEGORY_LABELS, category, langKey)) : null) : null, desc ? (0, react.createElement)("div", {
|
|
5638
|
-
className: InstalledView_module_css_default.rowDesc,
|
|
5639
|
-
title: desc
|
|
5640
|
-
}, desc) : null);
|
|
5724
|
+
}, t("uninstall")))));
|
|
5641
5725
|
}
|
|
5642
5726
|
/** 行列表:单个已安装列表(自定义安装与目录插件混排,靠徽标区分)。 */
|
|
5643
5727
|
function RowList({ items, t, langKey, canReveal, revealLabel, pendingRestarts, onOpenDetail, onReveal, onUpdate, onUninstall, onRestart }) {
|
|
@@ -5774,27 +5858,27 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5774
5858
|
css: css$6
|
|
5775
5859
|
});
|
|
5776
5860
|
var CustomInstallView_module_css_default = {
|
|
5777
|
-
"installInput": "zISxCG_installInput",
|
|
5778
|
-
"root": "zISxCG_root",
|
|
5779
|
-
"installLabel": "zISxCG_installLabel",
|
|
5780
|
-
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
5781
|
-
"installError": "zISxCG_installError",
|
|
5782
|
-
"installExample": "zISxCG_installExample",
|
|
5783
|
-
"helpLine": "zISxCG_helpLine",
|
|
5784
|
-
"channelOffText": "zISxCG_channelOffText",
|
|
5785
|
-
"desc": "zISxCG_desc",
|
|
5786
5861
|
"helpBody": "zISxCG_helpBody",
|
|
5787
|
-
"
|
|
5788
|
-
"
|
|
5862
|
+
"installExample": "zISxCG_installExample",
|
|
5863
|
+
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
5789
5864
|
"installCards": "zISxCG_installCards",
|
|
5790
|
-
"
|
|
5865
|
+
"installRow": "zISxCG_installRow",
|
|
5791
5866
|
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
5792
|
-
"
|
|
5793
|
-
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
5867
|
+
"desc": "zISxCG_desc",
|
|
5794
5868
|
"helpCmd": "zISxCG_helpCmd",
|
|
5869
|
+
"installError": "zISxCG_installError",
|
|
5870
|
+
"helpNote": "zISxCG_helpNote",
|
|
5871
|
+
"installInputError": "zISxCG_installInputError",
|
|
5872
|
+
"helpLine": "zISxCG_helpLine",
|
|
5873
|
+
"installCardHead": "zISxCG_installCardHead",
|
|
5874
|
+
"channelOffText": "zISxCG_channelOffText",
|
|
5875
|
+
"channelOff": "zISxCG_channelOff",
|
|
5876
|
+
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
5795
5877
|
"installCard": "zISxCG_installCard",
|
|
5796
|
-
"
|
|
5797
|
-
"
|
|
5878
|
+
"root": "zISxCG_root",
|
|
5879
|
+
"installInput": "zISxCG_installInput",
|
|
5880
|
+
"installLabel": "zISxCG_installLabel",
|
|
5881
|
+
"installBtn": "zISxCG_installBtn"
|
|
5798
5882
|
};
|
|
5799
5883
|
//#endregion
|
|
5800
5884
|
//#region src/client/components/views/CustomInstallView.tsx
|
|
@@ -5950,30 +6034,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5950
6034
|
css: css$5
|
|
5951
6035
|
});
|
|
5952
6036
|
var SettingsView_module_css_default = {
|
|
5953
|
-
"textInput": "_506LLG_textInput",
|
|
5954
|
-
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
5955
|
-
"settingControlStack": "_506LLG_settingControlStack",
|
|
5956
|
-
"proxyControl": "_506LLG_proxyControl",
|
|
5957
|
-
"settingRowStack": "_506LLG_settingRowStack",
|
|
5958
|
-
"settingDesc": "_506LLG_settingDesc",
|
|
5959
|
-
"settingTitle": "_506LLG_settingTitle",
|
|
5960
|
-
"proxyHint": "_506LLG_proxyHint",
|
|
5961
6037
|
"controlDropdown": "_506LLG_controlDropdown",
|
|
5962
|
-
"
|
|
5963
|
-
"
|
|
5964
|
-
"
|
|
6038
|
+
"settingDesc": "_506LLG_settingDesc",
|
|
6039
|
+
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
6040
|
+
"navItem": "_506LLG_navItem",
|
|
6041
|
+
"pageTitle": "_506LLG_pageTitle",
|
|
5965
6042
|
"settingLabel": "_506LLG_settingLabel",
|
|
6043
|
+
"settingTitle": "_506LLG_settingTitle",
|
|
6044
|
+
"root": "_506LLG_root",
|
|
5966
6045
|
"settingControl": "_506LLG_settingControl",
|
|
6046
|
+
"pageHeader": "_506LLG_pageHeader",
|
|
6047
|
+
"pageDesc": "_506LLG_pageDesc",
|
|
5967
6048
|
"settingRow": "_506LLG_settingRow",
|
|
5968
|
-
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
5969
|
-
"navItem": "_506LLG_navItem",
|
|
5970
|
-
"navItemActive": "_506LLG_navItemActive",
|
|
5971
6049
|
"navIcon": "_506LLG_navIcon",
|
|
5972
|
-
"pageTitle": "_506LLG_pageTitle",
|
|
5973
6050
|
"card": "_506LLG_card",
|
|
5974
|
-
"
|
|
5975
|
-
"
|
|
5976
|
-
"
|
|
6051
|
+
"proxyHint": "_506LLG_proxyHint",
|
|
6052
|
+
"settingControlStack": "_506LLG_settingControlStack",
|
|
6053
|
+
"settingRowStack": "_506LLG_settingRowStack",
|
|
6054
|
+
"textInput": "_506LLG_textInput",
|
|
6055
|
+
"sidebar": "_506LLG_sidebar",
|
|
6056
|
+
"content": "_506LLG_content",
|
|
6057
|
+
"proxyControl": "_506LLG_proxyControl",
|
|
6058
|
+
"resetBtn": "_506LLG_resetBtn",
|
|
6059
|
+
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
6060
|
+
"navItemActive": "_506LLG_navItemActive"
|
|
5977
6061
|
};
|
|
5978
6062
|
//#endregion
|
|
5979
6063
|
//#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
|
|
@@ -5992,18 +6076,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5992
6076
|
css: css$4
|
|
5993
6077
|
});
|
|
5994
6078
|
var Dropdown_module_css_default = {
|
|
5995
|
-
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
5996
|
-
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
5997
|
-
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
5998
|
-
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
5999
|
-
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
6000
6079
|
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
6080
|
+
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
6081
|
+
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
6001
6082
|
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
6002
|
-
"
|
|
6003
|
-
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
6083
|
+
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
6004
6084
|
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
6005
|
-
"
|
|
6006
|
-
"
|
|
6085
|
+
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
6086
|
+
"dropdown": "B_Gxsq_dropdown",
|
|
6087
|
+
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
6088
|
+
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
6089
|
+
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
6090
|
+
"dropdownLabel": "B_Gxsq_dropdownLabel"
|
|
6007
6091
|
};
|
|
6008
6092
|
//#endregion
|
|
6009
6093
|
//#region \0dsh-css:src/client/styles/Toggle.module.css.mjs
|
|
@@ -6022,9 +6106,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6022
6106
|
css: css$3
|
|
6023
6107
|
});
|
|
6024
6108
|
var Toggle_module_css_default = {
|
|
6109
|
+
"toggleOn": "k-cD4G_toggleOn",
|
|
6025
6110
|
"knob": "k-cD4G_knob",
|
|
6026
|
-
"toggle": "k-cD4G_toggle"
|
|
6027
|
-
"toggleOn": "k-cD4G_toggleOn"
|
|
6111
|
+
"toggle": "k-cD4G_toggle"
|
|
6028
6112
|
};
|
|
6029
6113
|
//#endregion
|
|
6030
6114
|
//#region src/client/components/ui/Toggle.tsx
|
|
@@ -6121,29 +6205,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6121
6205
|
css: css$2
|
|
6122
6206
|
});
|
|
6123
6207
|
var DiagnosticsView_module_css_default = {
|
|
6124
|
-
"
|
|
6208
|
+
"summaryOk": "k9eRya_summaryOk",
|
|
6209
|
+
"diagPulse": "k9eRya_diagPulse",
|
|
6125
6210
|
"meta": "k9eRya_meta",
|
|
6126
|
-
"summaryFail": "k9eRya_summaryFail",
|
|
6127
|
-
"name": "k9eRya_name",
|
|
6128
|
-
"summaryRunning": "k9eRya_summaryRunning",
|
|
6129
6211
|
"badge": "k9eRya_badge",
|
|
6130
|
-
"
|
|
6131
|
-
"
|
|
6212
|
+
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
6213
|
+
"panel": "k9eRya_panel",
|
|
6132
6214
|
"display": "k9eRya_display",
|
|
6215
|
+
"row": "k9eRya_row",
|
|
6216
|
+
"badgeRunning": "k9eRya_badgeRunning",
|
|
6217
|
+
"runBtn": "k9eRya_runBtn",
|
|
6218
|
+
"name": "k9eRya_name",
|
|
6219
|
+
"summaryRunning": "k9eRya_summaryRunning",
|
|
6220
|
+
"head": "k9eRya_head",
|
|
6133
6221
|
"summary": "k9eRya_summary",
|
|
6222
|
+
"summaryFail": "k9eRya_summaryFail",
|
|
6134
6223
|
"envTitle": "k9eRya_envTitle",
|
|
6135
|
-
"
|
|
6136
|
-
"envRow": "k9eRya_envRow",
|
|
6137
|
-
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
6138
|
-
"envLabel": "k9eRya_envLabel",
|
|
6139
|
-
"runBtn": "k9eRya_runBtn",
|
|
6224
|
+
"badgeOk": "k9eRya_badgeOk",
|
|
6140
6225
|
"badgeFail": "k9eRya_badgeFail",
|
|
6141
|
-
"badgeRunning": "k9eRya_badgeRunning",
|
|
6142
|
-
"badgeIdle": "k9eRya_badgeIdle",
|
|
6143
|
-
"panel": "k9eRya_panel",
|
|
6144
6226
|
"headHint": "k9eRya_headHint",
|
|
6145
|
-
"
|
|
6146
|
-
"
|
|
6227
|
+
"badgeIdle": "k9eRya_badgeIdle",
|
|
6228
|
+
"envDesc": "k9eRya_envDesc",
|
|
6229
|
+
"envRow": "k9eRya_envRow",
|
|
6230
|
+
"envLabel": "k9eRya_envLabel"
|
|
6147
6231
|
};
|
|
6148
6232
|
//#endregion
|
|
6149
6233
|
//#region src/client/components/views/DiagnosticsView.tsx
|
|
@@ -6318,57 +6402,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6318
6402
|
css: css$1
|
|
6319
6403
|
});
|
|
6320
6404
|
var LogsView_module_css_default = {
|
|
6321
|
-
"
|
|
6322
|
-
"
|
|
6323
|
-
"
|
|
6405
|
+
"btn": "_3j77BW_btn",
|
|
6406
|
+
"message": "_3j77BW_message",
|
|
6407
|
+
"more": "_3j77BW_more",
|
|
6408
|
+
"filterBar": "_3j77BW_filterBar",
|
|
6409
|
+
"head": "_3j77BW_head",
|
|
6324
6410
|
"time": "_3j77BW_time",
|
|
6325
|
-
"
|
|
6411
|
+
"previewRow": "_3j77BW_previewRow",
|
|
6412
|
+
"headHint": "_3j77BW_headHint",
|
|
6413
|
+
"badge": "_3j77BW_badge",
|
|
6326
6414
|
"badgeDebug": "_3j77BW_badgeDebug",
|
|
6327
|
-
"
|
|
6415
|
+
"event": "_3j77BW_event",
|
|
6416
|
+
"linkBtn": "_3j77BW_linkBtn",
|
|
6417
|
+
"search": "_3j77BW_search",
|
|
6328
6418
|
"logList": "_3j77BW_logList",
|
|
6419
|
+
"pathLabel": "_3j77BW_pathLabel",
|
|
6420
|
+
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
6421
|
+
"badgeWarn": "_3j77BW_badgeWarn",
|
|
6329
6422
|
"catUpdate": "_3j77BW_catUpdate",
|
|
6330
|
-
"searchInput": "_3j77BW_searchInput",
|
|
6331
|
-
"pathDialog": "_3j77BW_pathDialog",
|
|
6332
|
-
"clearBtn": "_3j77BW_clearBtn",
|
|
6333
|
-
"empty": "_3j77BW_empty",
|
|
6334
|
-
"search": "_3j77BW_search",
|
|
6335
6423
|
"catSystem": "_3j77BW_catSystem",
|
|
6336
|
-
"previewRow": "_3j77BW_previewRow",
|
|
6337
|
-
"pathRow": "_3j77BW_pathRow",
|
|
6338
|
-
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
6339
|
-
"headHint": "_3j77BW_headHint",
|
|
6340
|
-
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
6341
|
-
"badgeInfo": "_3j77BW_badgeInfo",
|
|
6342
6424
|
"actions": "_3j77BW_actions",
|
|
6343
|
-
"linkBtn": "_3j77BW_linkBtn",
|
|
6344
|
-
"badgeWarn": "_3j77BW_badgeWarn",
|
|
6345
|
-
"catSettings": "_3j77BW_catSettings",
|
|
6346
|
-
"pathDraft": "_3j77BW_pathDraft",
|
|
6347
|
-
"footCount": "_3j77BW_footCount",
|
|
6348
6425
|
"filterChipActive": "_3j77BW_filterChipActive",
|
|
6426
|
+
"footFail": "_3j77BW_footFail",
|
|
6427
|
+
"footCount": "_3j77BW_footCount",
|
|
6428
|
+
"catSettings": "_3j77BW_catSettings",
|
|
6429
|
+
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
6430
|
+
"pathRow": "_3j77BW_pathRow",
|
|
6431
|
+
"entry": "_3j77BW_entry",
|
|
6349
6432
|
"list": "_3j77BW_list",
|
|
6350
|
-
"
|
|
6433
|
+
"pathText": "_3j77BW_pathText",
|
|
6434
|
+
"pathDialog": "_3j77BW_pathDialog",
|
|
6435
|
+
"pathDraft": "_3j77BW_pathDraft",
|
|
6436
|
+
"moreEnd": "_3j77BW_moreEnd",
|
|
6437
|
+
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
6438
|
+
"headActions": "_3j77BW_headActions",
|
|
6439
|
+
"footPath": "_3j77BW_footPath",
|
|
6440
|
+
"badgeError": "_3j77BW_badgeError",
|
|
6441
|
+
"empty": "_3j77BW_empty",
|
|
6442
|
+
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
6443
|
+
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
6351
6444
|
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
6352
|
-
"
|
|
6445
|
+
"foot": "_3j77BW_foot",
|
|
6353
6446
|
"panel": "_3j77BW_panel",
|
|
6354
|
-
"
|
|
6355
|
-
"more": "_3j77BW_more",
|
|
6356
|
-
"head": "_3j77BW_head",
|
|
6357
|
-
"footActions": "_3j77BW_footActions",
|
|
6358
|
-
"badgeError": "_3j77BW_badgeError",
|
|
6447
|
+
"badgeInfo": "_3j77BW_badgeInfo",
|
|
6359
6448
|
"catInstall": "_3j77BW_catInstall",
|
|
6360
|
-
"
|
|
6361
|
-
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
6449
|
+
"footActions": "_3j77BW_footActions",
|
|
6362
6450
|
"catUninstall": "_3j77BW_catUninstall",
|
|
6363
|
-
"
|
|
6364
|
-
"
|
|
6365
|
-
"foot": "_3j77BW_foot",
|
|
6366
|
-
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
6367
|
-
"moreEnd": "_3j77BW_moreEnd",
|
|
6368
|
-
"badge": "_3j77BW_badge",
|
|
6451
|
+
"searchInput": "_3j77BW_searchInput",
|
|
6452
|
+
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
6369
6453
|
"filterChip": "_3j77BW_filterChip",
|
|
6370
|
-
"
|
|
6371
|
-
"
|
|
6454
|
+
"clearBtn": "_3j77BW_clearBtn",
|
|
6455
|
+
"catBadge": "_3j77BW_catBadge"
|
|
6372
6456
|
};
|
|
6373
6457
|
//#endregion
|
|
6374
6458
|
//#region src/client/components/modals/LogsModal.tsx
|
|
@@ -7642,7 +7726,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
7642
7726
|
openSection: settingsSection,
|
|
7643
7727
|
onConsumedOpenSection: () => setSettingsSection(null)
|
|
7644
7728
|
}), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
|
|
7645
|
-
info: catalog.hubUpdateTarget ?? catalog.hubUpdateInfo ?? { version: "2.
|
|
7729
|
+
info: catalog.hubUpdateTarget ?? catalog.hubUpdateInfo ?? { version: "2.3.1" },
|
|
7646
7730
|
state: catalog.hubUpdateState,
|
|
7647
7731
|
currentVersion: catalog.hubCurrentVersion,
|
|
7648
7732
|
lang,
|