dsh-plugin 2.0.3 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +2 -0
- package/README.md +2 -0
- package/client/client.js +388 -335
- package/client/client.js.map +1 -1
- package/lib/http/catalog.js +22 -3
- package/lib/http/diagnostics.js +36 -9
- package/lib/services/install/task-queue.js +6 -1
- package/lib/services/probe.js +10 -5
- package/lib/services/profile/profile.js +14 -0
- package/lib/types/services/install/install-types.d.ts +3 -1
- package/lib/types/services/probe.d.ts +2 -1
- package/lib/types/services/profile/profile.d.ts +3 -0
- package/package.json +1 -1
- package/src/client/components/PluginHubSection.tsx +6 -1
- package/src/client/components/catalog/CatalogList.tsx +5 -1
- package/src/client/components/layout/SectionTabs.tsx +2 -1
- package/src/client/components/modals/NotificationsModal.tsx +4 -0
- package/src/client/components/modals/modals.tsx +11 -2
- package/src/client/components/views/MarketView.tsx +1 -0
- package/src/client/data/catalog.ts +9 -7
- package/src/client/hooks/useCatalog.ts +10 -4
- package/src/client/hooks/useTaskQueue.ts +14 -7
- package/src/client/locales.ts +18 -4
- package/src/client/logic/failures.ts +18 -4
- package/src/client/styles/Modal.module.css +9 -0
- package/src/client/styles/SectionTabs.module.css +18 -0
- package/src/server/http/catalog.ts +24 -3
- package/src/server/http/diagnostics.ts +36 -10
- package/src/server/services/install/install-types.ts +3 -1
- package/src/server/services/install/task-queue.ts +6 -1
- package/src/server/services/probe.ts +10 -5
- package/src/server/services/profile/profile.ts +15 -0
package/client/client.js
CHANGED
|
@@ -31,9 +31,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
31
31
|
fork: "Fork",
|
|
32
32
|
loading: "正在加载插件数据…",
|
|
33
33
|
failed: "插件数据加载失败",
|
|
34
|
-
failedDescNoProxy: "
|
|
35
|
-
failedDescProxy: "
|
|
34
|
+
failedDescNoProxy: "无法获取插件目录数据(有数 MB)。网络较慢时首次加载可能超时,可重试或点「强制刷新」跳过本地缓存重新下载;加载成功后会缓存 1 小时。若持续失败,请点「网络诊断」确认目录站点可达。",
|
|
35
|
+
failedDescProxy: "无法获取插件目录数据(有数 MB)。网络较慢,或设置里的 HTTP 代理不可达/链路抖动时,首次加载可能超时;可重试或点「强制刷新」跳过缓存重新下载。加载成功后会缓存 1 小时。",
|
|
36
36
|
retry: "重试",
|
|
37
|
+
forceReload: "强制刷新",
|
|
38
|
+
forceReloadHint: "跳过本地缓存的插件目录,重新从服务器下载(缓存异常或弱网重试时用)",
|
|
37
39
|
install: "安装",
|
|
38
40
|
cliOnlyHint: "此插件的安装需要在 dsh 终端里完成(网页端无法代跑它所需的构建或装配步骤),请复制上方命令到终端执行",
|
|
39
41
|
manualInstallOnlyHint: "此插件需要你在 dsh 终端手动安装:网页端的一键安装替代不了终端里的构建与装配步骤。请复制上方命令到终端执行(Windows 用 Git Bash 或 PowerShell,macOS/Linux 用终端),完整步骤见作者仓库的安装说明。",
|
|
@@ -301,6 +303,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
301
303
|
failGitMissingHint: "系统找不到 git 命令(Git 未安装或未加入系统 PATH),无法从 GitHub 源安装插件。请先安装 Git(如 git-scm.com/downloads)或把 git 加入 PATH,重启 DSH 后重试。这不是插件本身的问题。",
|
|
302
304
|
failPnpmMissingHint: "安装器找到了 dsh,但系统里没有 pnpm 命令(dsh 用它来管理 profile 插件)。请先安装 pnpm(如 npm install -g pnpm),确认 pnpm 已加入 PATH 后重试。这不是插件本身的问题。",
|
|
303
305
|
failNpmMissingHint: "系统找不到 npm 命令(npm 未安装或未加入系统 PATH),无法执行全局安装。请先安装 Node.js(自带 npm),确认 npm 已加入 PATH 后重试。这不是插件本身的问题。",
|
|
306
|
+
failBuildToolchainHint: "这个插件依赖需要在本机编译的原生模块,但机器上缺少可用的编译工具链。请按系统安装后重试:Windows 安装 Visual Studio Build Tools(含「使用 C++ 的桌面开发」);macOS 执行 xcode-select --install;Linux 安装 build-essential、python3 与 make。若装好工具链后仍然失败,再向插件作者反馈,请其提供预构建产物。",
|
|
307
|
+
bundleDeselectedHint: "注意:插件市场在当前 profile 的 bundle 列表中被取消勾选,重启宿主后它不会出现。请到「设置 → 插件」重新勾选 dsh-plugin。",
|
|
304
308
|
failPnpmStoreHint: "安装器调用 pnpm 时报「store 位置不匹配」(ERR_PNPM_UNEXPECTED_STORE):你的 profile 目录里旧插件依赖是用另一个大版本的 pnpm 生成的,当前 pnpm 出于安全不认旧目录,导致任何插件装进该 profile 都会失败。请删除该 profile 目录下的 node_modules 与 pnpm-lock.yaml(可先到「系统日志」或 ~/.dsh/profiles/<profile>/hub.log 查看完整报错),再重新安装。这不是插件本身的问题。",
|
|
305
309
|
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 补丁条目后重试。",
|
|
306
310
|
failPnpmMissingDepTarget: "{pkg} 在 npm registry 上不存在(404)",
|
|
@@ -321,6 +325,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
321
325
|
failReason_pnpmMissing: "安装器通过 pnpm 安装插件,但机器上找不到 pnpm。",
|
|
322
326
|
failKind_npmMissing: "本机缺少 npm",
|
|
323
327
|
failReason_npmMissing: "安装流程需要 npm,但机器上找不到它。",
|
|
328
|
+
failKind_buildToolchainMissing: "本机缺少原生构建工具链",
|
|
329
|
+
failReason_buildToolchainMissing: "这个插件依赖需要在本机编译的原生模块,但找不到可用的编译器。",
|
|
324
330
|
failKind_pnpmStore: "pnpm store 版本不匹配",
|
|
325
331
|
failReason_pnpmStore: "profile 里的依赖由另一大版本的 pnpm 生成,当前 pnpm 不认。",
|
|
326
332
|
failKind_pnpmWorkspace: "workspace 根校验阻止了安装",
|
|
@@ -370,6 +376,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
370
376
|
failFsUnavailableHint: "安装过程中 pnpm 无法把文件写进本机磁盘(这类报错与装哪个插件无关,任何插件装在同一目录都会失败,不是插件本身的问题)。请按报错对号入座:① 磁盘空间不足(ENOSPC / no space left on device,Windows 为 os error 112)——请清理 profile 所在磁盘的剩余空间后重试;② 磁盘或挂载点只读、带写保护(EROFS / read-only file system,Windows 为 os error 19)——请确认 profile 目录所在磁盘可写(外接盘/U 盘、带写保护的移动盘或只读挂载的分区都会触发),必要时把插件目录换到系统盘的可写位置;③ 进程可用的文件句柄被耗尽(EMFILE / ENFILE / too many open files)——请关闭占用大量文件的程序并重启 DeepSeek Harness 后重试。",
|
|
371
377
|
failPnpmWorkspaceHint: "安装器调用 pnpm 时报「不能把依赖装到 workspace 根目录」(ERR_PNPM_ADDING_TO_ROOT):你的 profile 目录被 pnpm 视为 workspace 根目录,而本次安装命令没有声明在根目录操作,pnpm 直接拒绝执行,因此任何插件装进来都会失败。这不是插件本身的问题——可在 profile 目录(~/.dsh/profiles/<profile>)的 .npmrc 里加一行 ignore-workspace-root-check=true 后重试,或把 DeepSeek Harness 升级到最新版再试。",
|
|
372
378
|
failPnpmTarballIntegrityHint: "pnpm 报 ERR_PNPM_MISSING_TARBALL_INTEGRITY:锁文件中的 tarball 条目没有校验值,无法验证下载的包。先查看完整日志,完全退出 DeepSeek Harness,并检查、备份当前 profile 的 package.json、pnpm-lock.yaml 和 pnpm-workspace.yaml。确认依赖来源后,将 pnpm-lock.yaml 改名保留,再通过同一 DSH 安装器安装适配当前宿主版本的插件,重新生成锁文件。重建会重新解析 profile 依赖,请核对新旧版本;保持完整性校验开启。",
|
|
379
|
+
failPnpmTarballMismatchHint: "pnpm 报 ERR_PNPM_TARBALL_INTEGRITY:profile 里某个从 GitHub 分支安装的依赖(例如 github:owner/repo#main)在远端更新了,tarball 内容变了,但 pnpm-lock.yaml 里存的还是旧校验和,于是整个 profile 的依赖安装都会卡在它上面。处理:打开 ~/.dsh/profiles/<profile>/pnpm-lock.yaml,删掉该 GitHub 依赖对应的条目(不确定是哪个就把整份锁文件改名备份),再重新安装;长期做法是把依赖固定到具体 commit(github:owner/repo#<commit>),分支再更新也不会改变校验和。",
|
|
373
380
|
failPnpmPolicyHint: "安装器调用 pnpm 时被其供应链安全策略拦截——装任何插件都会撞墙,不是插件本身的问题。分两种情况处理:① 提示「Minimum release age」(ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION):包发布还不满 24 小时,pnpm 11 出于安全会拒收这种刚发布的新包。可在 pnpm 配置(pnpm-workspace.yaml)里加 minimumReleaseAge: 0 豁免,或等满 24 小时后重试。② 提示「untrusted origin」(ERR_PNPM_UNTRUSTED_ORIGIN):依赖来源不被本机 pnpm 信任,通常是该 profile 里之前用 github: 或非官方 npm 源装过插件,锁文件记录了不受信任的来源。请删除该 profile 目录下的 node_modules 与 pnpm-lock.yaml 后重新安装(可先到「系统日志」或 ~/.dsh/profiles/<profile>/hub.log 查看完整报错)。",
|
|
374
381
|
failPnpmReleaseAgeHint: "安装器调用 pnpm 时被其供应链安全策略拦住了,任何插件装进这个 profile 都会先撞上它——与插件本身无关。原因是这个包发布还不满 24 小时,pnpm 11 出于安全会拒收刚发布的新包,这段时间内该 profile 的安装与卸载都会被拦下。可重试时间:{time}(即该包发布满 24 小时后)。如确需立刻安装,可在 profile 目录(~/.dsh/profiles/<profile>)的 pnpm-workspace.yaml 里加 minimumReleaseAge: 0 豁免,但这会放宽整个 profile 的供应链保护。",
|
|
375
382
|
installChannelNpm: "NPM 包",
|
|
@@ -429,9 +436,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
429
436
|
fork: "Fork",
|
|
430
437
|
loading: "Loading plugin data…",
|
|
431
438
|
failed: "Failed to load plugin data",
|
|
432
|
-
failedDescNoProxy: "
|
|
433
|
-
failedDescProxy: "
|
|
439
|
+
failedDescNoProxy: "The plugin catalog could not be loaded (a few MB). The first load can time out on a slow connection — retry, or use \"Force refresh\" to skip the local cache and download it again. Once it succeeds the catalog is cached for an hour. If it keeps failing, run the network diagnostic.",
|
|
440
|
+
failedDescProxy: "The plugin catalog could not be loaded (a few MB). A slow connection, or an unreachable/unstable HTTP proxy in Settings, can make the first load time out — retry, or use \"Force refresh\" to skip the cache. Once it succeeds the catalog is cached for an hour.",
|
|
434
441
|
retry: "Retry",
|
|
442
|
+
forceReload: "Force refresh",
|
|
443
|
+
forceReloadHint: "Skip the cached catalog and download it again from the server (use when the cache looks wrong or on a slow network)",
|
|
435
444
|
install: "Install",
|
|
436
445
|
cliOnlyHint: "This plugin has to be installed in your dsh terminal (the web UI cannot run the build or assembly steps it needs) — copy the command above and run it there",
|
|
437
446
|
manualInstallOnlyHint: "This plugin has to be installed by hand in your dsh terminal — one-click install from the web UI cannot run the build and assembly steps it needs. Copy the command above and run it there (Git Bash or PowerShell on Windows, Terminal on macOS/Linux); the author's repo has the full steps.",
|
|
@@ -702,6 +711,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
702
711
|
failGitMissingHint: "The git command could not be found (Git is not installed or not on the system PATH), so GitHub-source plugins cannot be installed. Please install Git (e.g. from git-scm.com/downloads) or add git to your PATH, restart DSH, then retry. This is not a problem with the plugin itself.",
|
|
703
712
|
failPnpmMissingHint: "The installer found dsh, but pnpm is missing on this machine (dsh uses it to manage profile plugins). Please install pnpm first (e.g. npm install -g pnpm), make sure it is on your PATH, then retry. This is not a problem with the plugin itself.",
|
|
704
713
|
failNpmMissingHint: "The npm command could not be found (npm is not installed or not on the system PATH), so a global install cannot run. Please install Node.js (which bundles npm), make sure npm is on your PATH, then retry. This is not a problem with the plugin itself.",
|
|
714
|
+
failBuildToolchainHint: "This plugin depends on a native module that must be compiled on your machine, but no usable build toolchain is available. Install one and retry: on Windows install Visual Studio Build Tools with the \"Desktop development with C++\" workload; on macOS run xcode-select --install; on Linux install build-essential, python3 and make. If it still fails after the toolchain is installed, report it to the plugin author and ask for a prebuilt package.",
|
|
715
|
+
bundleDeselectedHint: "Note: the marketplace is unchecked in this profile's bundle list, so it will not appear after the host restarts. Re-check dsh-plugin under Settings → Plugins.",
|
|
705
716
|
failPnpmStoreHint: "pnpm reported an unexpected store location (ERR_PNPM_UNEXPECTED_STORE): the profile directory was previously set up with a different major version of pnpm, and the current pnpm refuses to reuse it — no plugin can be installed into that profile. Delete node_modules and pnpm-lock.yaml under the profile directory (see System Logs or ~/.dsh/profiles/<profile>/hub.log for the full output), then reinstall. This is not a problem with the plugin itself.",
|
|
706
717
|
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.",
|
|
707
718
|
failPnpmMissingDepTarget: "{pkg} was not found on the npm registry (404)",
|
|
@@ -722,6 +733,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
722
733
|
failReason_pnpmMissing: "The installer uses pnpm to add plugins, but pnpm cannot be found.",
|
|
723
734
|
failKind_npmMissing: "npm is not installed on this machine",
|
|
724
735
|
failReason_npmMissing: "The install flow needs npm, but it cannot be found.",
|
|
736
|
+
failKind_buildToolchainMissing: "native build toolchain is missing",
|
|
737
|
+
failReason_buildToolchainMissing: "A dependency of this plugin must be compiled locally, but no usable compiler was found.",
|
|
725
738
|
failKind_pnpmStore: "pnpm store version mismatch",
|
|
726
739
|
failReason_pnpmStore: "The profile dependencies were written by a different pnpm major, which the current pnpm does not accept.",
|
|
727
740
|
failKind_pnpmWorkspace: "workspace-root check blocked the install",
|
|
@@ -771,6 +784,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
771
784
|
failFsUnavailableHint: "During install, pnpm could not write files to the local disk — this has nothing to do with which plugin you are installing: any plugin installed into the same directory would fail the same way, so it is not a problem with the plugin itself. Match the error you see: ① Out of space (ENOSPC / no space left on device, os error 112 on Windows) — free up space on the drive that holds the profile and retry. ② Read-only or write-protected volume (EROFS / read-only file system, os error 19 on Windows) — make sure the drive holding the profile directory is writable (external or USB drives, write-protected media, and read-only mounts all trigger this); move the plugin directory to a writable location on the system drive if needed. ③ File handles exhausted (EMFILE / ENFILE / too many open files) — close programs that hold many files open, restart DeepSeek Harness, then retry.",
|
|
772
785
|
failPnpmWorkspaceHint: "pnpm refused to add the dependency to the workspace root (ERR_PNPM_ADDING_TO_ROOT): the profile directory is treated as a pnpm workspace root, and this install command did not declare that it operates at the root, so pnpm rejected it outright — no plugin can be installed into that profile. This is not a problem with the plugin itself. Add `ignore-workspace-root-check=true` to the `.npmrc` inside the profile directory (~/.dsh/profiles/<profile>) and retry, or upgrade DeepSeek Harness and try again.",
|
|
773
786
|
failPnpmTarballIntegrityHint: "pnpm reported ERR_PNPM_MISSING_TARBALL_INTEGRITY: a tarball entry in the lockfile has no checksum to verify the downloaded package. Read the full log, fully quit DeepSeek Harness, and inspect and back up package.json, pnpm-lock.yaml and pnpm-workspace.yaml in the affected profile. Once the dependency sources are verified, rename pnpm-lock.yaml to preserve it, then use the same DSH installer to install a plugin version compatible with the host and regenerate the lockfile. This resolves profile dependencies again: compare the old and new versions, and keep integrity checks enabled.",
|
|
787
|
+
failPnpmTarballMismatchHint: "pnpm reported ERR_PNPM_TARBALL_INTEGRITY: a dependency installed from a GitHub branch (for example github:owner/repo#main) changed upstream, so the tarball content no longer matches the checksum stored in pnpm-lock.yaml — and every install into that profile now stops on it. To fix: open ~/.dsh/profiles/<profile>/pnpm-lock.yaml, remove the entry for that GitHub dependency (or rename the whole lockfile as a backup if unsure which one it is), then reinstall. Long term, pin the dependency to a commit (github:owner/repo#<commit>) so branch updates no longer change its checksum.",
|
|
774
788
|
failPnpmPolicyHint: "The installer was blocked by pnpm supply-chain security policy — every plugin install would hit the same wall, so this is not a problem with the plugin itself. Two cases: ① \"Minimum release age\" (ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION): the package was published less than 24 hours ago, and pnpm 11 refuses freshly-published packages for safety. Add minimumReleaseAge: 0 to your pnpm config (pnpm-workspace.yaml) to opt out, or wait until the 24 hours have passed and retry. ② \"untrusted origin\" (ERR_PNPM_UNTRUSTED_ORIGIN): a dependency source is not trusted by this machine, usually because plugins were previously installed via github: or a non-official npm registry, so the lockfile records an untrusted source. Delete node_modules and pnpm-lock.yaml under the profile directory (see System Logs or ~/.dsh/profiles/<profile>/hub.log for the full output), then reinstall.",
|
|
775
789
|
failPnpmReleaseAgeHint: "The installer was blocked by pnpm supply-chain security policy, and every plugin installed into this profile would hit the same wall — this is not a problem with the plugin itself. The package was published less than 24 hours ago, and pnpm 11 refuses freshly-published packages for safety, so both installs and removals are blocked for this profile in the meantime. Retry after: {time} (i.e. 24 hours after the package was published). If you must install right now, add minimumReleaseAge: 0 to pnpm-workspace.yaml inside the profile directory (~/.dsh/profiles/<profile>) to opt out, but that loosens supply-chain protection for the whole profile.",
|
|
776
790
|
installChannelNpm: "NPM package",
|
|
@@ -828,46 +842,46 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
828
842
|
css: css$11
|
|
829
843
|
});
|
|
830
844
|
var Header_module_css_default = {
|
|
831
|
-
"segBtn": "qikqja_segBtn",
|
|
832
|
-
"adBadge": "qikqja_adBadge",
|
|
833
|
-
"langBtn": "qikqja_langBtn",
|
|
834
|
-
"tabActive": "qikqja_tabActive",
|
|
835
|
-
"controls": "qikqja_controls",
|
|
836
|
-
"adText": "qikqja_adText",
|
|
837
|
-
"tabs": "qikqja_tabs",
|
|
838
|
-
"logoIcon": "qikqja_logoIcon",
|
|
839
845
|
"brandTitle": "qikqja_brandTitle",
|
|
840
|
-
"
|
|
841
|
-
"
|
|
846
|
+
"root": "qikqja_root",
|
|
847
|
+
"controls": "qikqja_controls",
|
|
848
|
+
"headerTitleRow": "qikqja_headerTitleRow",
|
|
842
849
|
"resultCount": "qikqja_resultCount",
|
|
843
|
-
"
|
|
844
|
-
"
|
|
845
|
-
"
|
|
846
|
-
"
|
|
847
|
-
"resultSeg": "qikqja_resultSeg",
|
|
850
|
+
"version": "qikqja_version",
|
|
851
|
+
"adBadge": "qikqja_adBadge",
|
|
852
|
+
"searchRow": "qikqja_searchRow",
|
|
853
|
+
"adArrow": "qikqja_adArrow",
|
|
848
854
|
"taglineLink": "qikqja_taglineLink",
|
|
849
|
-
"
|
|
850
|
-
"
|
|
851
|
-
"root": "qikqja_root",
|
|
852
|
-
"sortGroup": "qikqja_sortGroup",
|
|
855
|
+
"search": "qikqja_search",
|
|
856
|
+
"tab": "qikqja_tab",
|
|
853
857
|
"githubIcon": "qikqja_githubIcon",
|
|
858
|
+
"sortGroup": "qikqja_sortGroup",
|
|
859
|
+
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
860
|
+
"adText": "qikqja_adText",
|
|
861
|
+
"tabActive": "qikqja_tabActive",
|
|
862
|
+
"resultSeg": "qikqja_resultSeg",
|
|
854
863
|
"githubLink": "qikqja_githubLink",
|
|
855
|
-
"
|
|
856
|
-
"
|
|
857
|
-
"tagline": "qikqja_tagline",
|
|
858
|
-
"version": "qikqja_version",
|
|
864
|
+
"versionBtn": "qikqja_versionBtn",
|
|
865
|
+
"tabsRow": "qikqja_tabsRow",
|
|
859
866
|
"aboutBtn": "qikqja_aboutBtn",
|
|
860
|
-
"
|
|
861
|
-
"
|
|
862
|
-
"
|
|
867
|
+
"logoIcon": "qikqja_logoIcon",
|
|
868
|
+
"langBtn": "qikqja_langBtn",
|
|
869
|
+
"tagline": "qikqja_tagline",
|
|
870
|
+
"segBtn": "qikqja_segBtn",
|
|
871
|
+
"segGroup": "qikqja_segGroup",
|
|
872
|
+
"tabs": "qikqja_tabs",
|
|
873
|
+
"copyIcon": "qikqja_copyIcon",
|
|
874
|
+
"tabCount": "qikqja_tabCount",
|
|
863
875
|
"segLabel": "qikqja_segLabel",
|
|
864
|
-
"
|
|
865
|
-
"
|
|
866
|
-
"
|
|
876
|
+
"headerRight": "qikqja_headerRight",
|
|
877
|
+
"header": "qikqja_header",
|
|
878
|
+
"adBanner": "qikqja_adBanner",
|
|
879
|
+
"segBtnActive": "qikqja_segBtnActive",
|
|
880
|
+
"title": "qikqja_title"
|
|
867
881
|
};
|
|
868
882
|
//#endregion
|
|
869
883
|
//#region \0dsh-css:src/client/styles/Modal.module.css.mjs
|
|
870
|
-
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_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}";
|
|
884
|
+
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}";
|
|
871
885
|
const tagId$10 = "dsh-plugin/Modal.module.css";
|
|
872
886
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
|
|
873
887
|
const tag = document.createElement("style");
|
|
@@ -882,141 +896,142 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
882
896
|
css: css$10
|
|
883
897
|
});
|
|
884
898
|
var Modal_module_css_default = {
|
|
885
|
-
"
|
|
886
|
-
"
|
|
887
|
-
"
|
|
888
|
-
"
|
|
889
|
-
"failRepoUrl": "BiQ1zG_failRepoUrl",
|
|
890
|
-
"modalClose": "BiQ1zG_modalClose",
|
|
891
|
-
"queueSection": "BiQ1zG_queueSection",
|
|
892
|
-
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
893
|
-
"toastFail": "BiQ1zG_toastFail",
|
|
899
|
+
"progressHead": "BiQ1zG_progressHead",
|
|
900
|
+
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
901
|
+
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
902
|
+
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
894
903
|
"modal": "BiQ1zG_modal",
|
|
895
|
-
"
|
|
896
|
-
"
|
|
897
|
-
"
|
|
898
|
-
"
|
|
899
|
-
"
|
|
900
|
-
"
|
|
901
|
-
"
|
|
902
|
-
"
|
|
903
|
-
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
904
|
-
"noticeHead": "BiQ1zG_noticeHead",
|
|
905
|
-
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
906
|
-
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
907
|
-
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
908
|
-
"resultDesc": "BiQ1zG_resultDesc",
|
|
909
|
-
"failClear": "BiQ1zG_failClear",
|
|
910
|
-
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
911
|
-
"modalRow": "BiQ1zG_modalRow",
|
|
904
|
+
"restartLater": "BiQ1zG_restartLater",
|
|
905
|
+
"modalHead": "BiQ1zG_modalHead",
|
|
906
|
+
"stripCancel": "BiQ1zG_stripCancel",
|
|
907
|
+
"failRow": "BiQ1zG_failRow",
|
|
908
|
+
"detailStars": "BiQ1zG_detailStars",
|
|
909
|
+
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
910
|
+
"progressText": "BiQ1zG_progressText",
|
|
911
|
+
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
912
912
|
"modalLink": "BiQ1zG_modalLink",
|
|
913
|
-
"
|
|
914
|
-
"
|
|
913
|
+
"aboutContent": "BiQ1zG_aboutContent",
|
|
914
|
+
"modalLabel": "BiQ1zG_modalLabel",
|
|
915
|
+
"queueSection": "BiQ1zG_queueSection",
|
|
915
916
|
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
916
|
-
"
|
|
917
|
-
"
|
|
918
|
-
"
|
|
917
|
+
"modalInstall": "BiQ1zG_modalInstall",
|
|
918
|
+
"failHead": "BiQ1zG_failHead",
|
|
919
|
+
"noticeList": "BiQ1zG_noticeList",
|
|
920
|
+
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
921
|
+
"aboutModal": "BiQ1zG_aboutModal",
|
|
922
|
+
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
923
|
+
"failReason": "BiQ1zG_failReason",
|
|
919
924
|
"modalActions": "BiQ1zG_modalActions",
|
|
920
|
-
"
|
|
925
|
+
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
926
|
+
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
927
|
+
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
928
|
+
"trustHint": "BiQ1zG_trustHint",
|
|
929
|
+
"progressFill": "BiQ1zG_progressFill",
|
|
930
|
+
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
921
931
|
"errorBox": "BiQ1zG_errorBox",
|
|
922
|
-
"
|
|
932
|
+
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
933
|
+
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
934
|
+
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
935
|
+
"noticeTime": "BiQ1zG_noticeTime",
|
|
936
|
+
"detailMono": "BiQ1zG_detailMono",
|
|
937
|
+
"errorHint": "BiQ1zG_errorHint",
|
|
938
|
+
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
939
|
+
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
940
|
+
"modalRow": "BiQ1zG_modalRow",
|
|
941
|
+
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
923
942
|
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
924
|
-
"
|
|
925
|
-
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
926
|
-
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
927
|
-
"failRepoLabel": "BiQ1zG_failRepoLabel",
|
|
928
|
-
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
929
|
-
"modalDesc": "BiQ1zG_modalDesc",
|
|
930
|
-
"queuedHint": "BiQ1zG_queuedHint",
|
|
931
|
-
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
932
|
-
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
933
|
-
"overlayIn": "BiQ1zG_overlayIn",
|
|
934
|
-
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
935
|
-
"progressHead": "BiQ1zG_progressHead",
|
|
936
|
-
"aboutContent": "BiQ1zG_aboutContent",
|
|
937
|
-
"detailDim": "BiQ1zG_detailDim",
|
|
938
|
-
"trustHint": "BiQ1zG_trustHint",
|
|
939
|
-
"failList": "BiQ1zG_failList",
|
|
940
|
-
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
941
|
-
"modalCopy": "BiQ1zG_modalCopy",
|
|
943
|
+
"resultCheck": "BiQ1zG_resultCheck",
|
|
942
944
|
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
943
|
-
"
|
|
945
|
+
"detailDim": "BiQ1zG_detailDim",
|
|
946
|
+
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
947
|
+
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
948
|
+
"noticeMain": "BiQ1zG_noticeMain",
|
|
944
949
|
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
945
|
-
"logModal": "BiQ1zG_logModal",
|
|
946
|
-
"detailStars": "BiQ1zG_detailStars",
|
|
947
|
-
"detailValue": "BiQ1zG_detailValue",
|
|
948
|
-
"modalHead": "BiQ1zG_modalHead",
|
|
949
|
-
"resultCheck": "BiQ1zG_resultCheck",
|
|
950
|
-
"errorHint": "BiQ1zG_errorHint",
|
|
951
|
-
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
952
|
-
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
953
|
-
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
954
|
-
"noticeRow": "BiQ1zG_noticeRow",
|
|
955
|
-
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
956
|
-
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
957
|
-
"modalTitle": "BiQ1zG_modalTitle",
|
|
958
|
-
"restartLater": "BiQ1zG_restartLater",
|
|
959
|
-
"detailArrow": "BiQ1zG_detailArrow",
|
|
960
|
-
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
961
|
-
"failEmpty": "BiQ1zG_failEmpty",
|
|
962
|
-
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
963
|
-
"progressTrack": "BiQ1zG_progressTrack",
|
|
964
|
-
"progressFill": "BiQ1zG_progressFill",
|
|
965
|
-
"failReason": "BiQ1zG_failReason",
|
|
966
|
-
"detailGrid": "BiQ1zG_detailGrid",
|
|
967
|
-
"detailPath": "BiQ1zG_detailPath",
|
|
968
|
-
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
969
950
|
"toast": "BiQ1zG_toast",
|
|
970
951
|
"resultTitle": "BiQ1zG_resultTitle",
|
|
971
|
-
"
|
|
972
|
-
"failKindTitle": "BiQ1zG_failKindTitle",
|
|
973
|
-
"errorTitle": "BiQ1zG_errorTitle",
|
|
974
|
-
"detailMono": "BiQ1zG_detailMono",
|
|
952
|
+
"detailRow": "BiQ1zG_detailRow",
|
|
975
953
|
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
976
|
-
"
|
|
977
|
-
"
|
|
978
|
-
"
|
|
979
|
-
"
|
|
980
|
-
"
|
|
954
|
+
"failCopy": "BiQ1zG_failCopy",
|
|
955
|
+
"result": "BiQ1zG_result",
|
|
956
|
+
"modalCmd": "BiQ1zG_modalCmd",
|
|
957
|
+
"restartNow": "BiQ1zG_restartNow",
|
|
958
|
+
"bundleDeselectedHint": "BiQ1zG_bundleDeselectedHint",
|
|
981
959
|
"detailLabel": "BiQ1zG_detailLabel",
|
|
982
|
-
"noticeMain": "BiQ1zG_noticeMain",
|
|
983
|
-
"failRow": "BiQ1zG_failRow",
|
|
984
|
-
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
985
|
-
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
986
|
-
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
987
|
-
"detailLink": "BiQ1zG_detailLink",
|
|
988
960
|
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
989
|
-
"
|
|
990
|
-
"
|
|
991
|
-
"
|
|
992
|
-
"
|
|
961
|
+
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
962
|
+
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
963
|
+
"modalCopy": "BiQ1zG_modalCopy",
|
|
964
|
+
"detailValue": "BiQ1zG_detailValue",
|
|
965
|
+
"modalTitle": "BiQ1zG_modalTitle",
|
|
966
|
+
"progressTrack": "BiQ1zG_progressTrack",
|
|
967
|
+
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
968
|
+
"detailPath": "BiQ1zG_detailPath",
|
|
969
|
+
"noticeHead": "BiQ1zG_noticeHead",
|
|
970
|
+
"errorModal": "BiQ1zG_errorModal",
|
|
971
|
+
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
972
|
+
"detailLink": "BiQ1zG_detailLink",
|
|
973
|
+
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
974
|
+
"queueRow": "BiQ1zG_queueRow",
|
|
975
|
+
"toastIn": "BiQ1zG_toastIn",
|
|
976
|
+
"failKind": "BiQ1zG_failKind",
|
|
993
977
|
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
994
|
-
"
|
|
995
|
-
"
|
|
996
|
-
"
|
|
997
|
-
"failHead": "BiQ1zG_failHead",
|
|
998
|
-
"modalWide": "BiQ1zG_modalWide",
|
|
999
|
-
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
1000
|
-
"failNetworkTarget": "BiQ1zG_failNetworkTarget",
|
|
1001
|
-
"restartNow": "BiQ1zG_restartNow",
|
|
1002
|
-
"modalLabel": "BiQ1zG_modalLabel",
|
|
978
|
+
"failMisjudgeLink": "BiQ1zG_failMisjudgeLink",
|
|
979
|
+
"failRepoUrl": "BiQ1zG_failRepoUrl",
|
|
980
|
+
"detailModal": "BiQ1zG_detailModal",
|
|
1003
981
|
"linkIcon": "BiQ1zG_linkIcon",
|
|
1004
|
-
"
|
|
1005
|
-
"
|
|
982
|
+
"detailArrow": "BiQ1zG_detailArrow",
|
|
983
|
+
"modalCancel": "BiQ1zG_modalCancel",
|
|
984
|
+
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
985
|
+
"failKindTitle": "BiQ1zG_failKindTitle",
|
|
986
|
+
"failRepo": "BiQ1zG_failRepo",
|
|
987
|
+
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
988
|
+
"failClear": "BiQ1zG_failClear",
|
|
989
|
+
"failRepoLabel": "BiQ1zG_failRepoLabel",
|
|
990
|
+
"errorTitle": "BiQ1zG_errorTitle",
|
|
991
|
+
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
992
|
+
"detailPathText": "BiQ1zG_detailPathText",
|
|
993
|
+
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
994
|
+
"modalDesc": "BiQ1zG_modalDesc",
|
|
995
|
+
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
996
|
+
"modalValue": "BiQ1zG_modalValue",
|
|
997
|
+
"failEmpty": "BiQ1zG_failEmpty",
|
|
998
|
+
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
1006
999
|
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
1007
|
-
"
|
|
1008
|
-
"queueRow": "BiQ1zG_queueRow",
|
|
1000
|
+
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
1009
1001
|
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
1010
|
-
"
|
|
1011
|
-
"
|
|
1002
|
+
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
1003
|
+
"progress": "BiQ1zG_progress",
|
|
1004
|
+
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
1005
|
+
"overlayIn": "BiQ1zG_overlayIn",
|
|
1006
|
+
"failList": "BiQ1zG_failList",
|
|
1007
|
+
"modalBody": "BiQ1zG_modalBody",
|
|
1008
|
+
"queuedHint": "BiQ1zG_queuedHint",
|
|
1012
1009
|
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
1013
|
-
"
|
|
1014
|
-
"
|
|
1015
|
-
"
|
|
1016
|
-
"stripCancel": "BiQ1zG_stripCancel",
|
|
1017
|
-
"detailRow": "BiQ1zG_detailRow",
|
|
1010
|
+
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
1011
|
+
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
1012
|
+
"overlay": "BiQ1zG_overlay",
|
|
1018
1013
|
"helpModal": "BiQ1zG_helpModal",
|
|
1019
|
-
"
|
|
1014
|
+
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
1015
|
+
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
1016
|
+
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
1017
|
+
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
1018
|
+
"noticeRow": "BiQ1zG_noticeRow",
|
|
1019
|
+
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
1020
|
+
"detailGrid": "BiQ1zG_detailGrid",
|
|
1021
|
+
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
1022
|
+
"modalWide": "BiQ1zG_modalWide",
|
|
1023
|
+
"modalClose": "BiQ1zG_modalClose",
|
|
1024
|
+
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
1025
|
+
"toastFail": "BiQ1zG_toastFail",
|
|
1026
|
+
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
1027
|
+
"failDiagBtn": "BiQ1zG_failDiagBtn",
|
|
1028
|
+
"modalIn": "BiQ1zG_modalIn",
|
|
1029
|
+
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
1030
|
+
"logModal": "BiQ1zG_logModal",
|
|
1031
|
+
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
1032
|
+
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
1033
|
+
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
1034
|
+
"resultDesc": "BiQ1zG_resultDesc"
|
|
1020
1035
|
};
|
|
1021
1036
|
//#endregion
|
|
1022
1037
|
//#region src/server/services/install/release-target.ts
|
|
@@ -1106,7 +1121,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1106
1121
|
* tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
|
|
1107
1122
|
* node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
|
|
1108
1123
|
*/
|
|
1109
|
-
const PLUGIN_VERSION = "2.0.
|
|
1124
|
+
const PLUGIN_VERSION = "2.0.5";
|
|
1110
1125
|
const CATEGORY_ORDER = [
|
|
1111
1126
|
"interface",
|
|
1112
1127
|
"session",
|
|
@@ -1364,8 +1379,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1364
1379
|
//#endregion
|
|
1365
1380
|
//#region src/client/data/catalog.ts
|
|
1366
1381
|
const PROXY_BASE = "/dsh-plugin-hub/catalog";
|
|
1367
|
-
const PLUGINS_URL = (lang) => `${PROXY_BASE}?lang=${lang}`;
|
|
1368
|
-
const STATS_URL = `${PROXY_BASE}?stats=1`;
|
|
1382
|
+
const PLUGINS_URL = (lang, refresh) => `${PROXY_BASE}?lang=${lang}${refresh ? "&refresh=1" : ""}`;
|
|
1383
|
+
const STATS_URL = (refresh) => `${PROXY_BASE}?stats=1${refresh ? "&refresh=1" : ""}`;
|
|
1369
1384
|
async function fetchJson(url, signal) {
|
|
1370
1385
|
const res = await fetch(url, {
|
|
1371
1386
|
cache: "no-store",
|
|
@@ -1375,14 +1390,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1375
1390
|
return res.json();
|
|
1376
1391
|
}
|
|
1377
1392
|
/** 目录插件列表(在线 API 已只返回 verified;过滤与排序由上层负责)。
|
|
1378
|
-
* signal 可选:宿主重启/代理抖动导致请求挂起时,上层可中止旧请求释放连接。
|
|
1379
|
-
|
|
1380
|
-
|
|
1393
|
+
* signal 可选:宿主重启/代理抖动导致请求挂起时,上层可中止旧请求释放连接。
|
|
1394
|
+
* refresh=true 跳过服务端缓存,强制回源。 */
|
|
1395
|
+
async function fetchCatalog(lang, signal, refresh = false) {
|
|
1396
|
+
const data = await fetchJson(PLUGINS_URL(lang, refresh), signal);
|
|
1381
1397
|
return (Array.isArray(data) ? data : []).map((item) => normalize(item));
|
|
1382
1398
|
}
|
|
1383
1399
|
/** 收录/精选统计(/api/stats.json);字段不完整返回 null。 */
|
|
1384
|
-
async function fetchStats(signal) {
|
|
1385
|
-
const s = await fetchJson(STATS_URL, signal);
|
|
1400
|
+
async function fetchStats(signal, refresh = false) {
|
|
1401
|
+
const s = await fetchJson(STATS_URL(refresh), signal);
|
|
1386
1402
|
if (s && typeof s.total === "number" && typeof s.verified === "number") return {
|
|
1387
1403
|
total: s.total,
|
|
1388
1404
|
verified: s.verified
|
|
@@ -1646,10 +1662,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1646
1662
|
* 界面停在「正在加载插件数据…」假死 —— 超时自动重拉,最多自动重试 2 次后转失败态;
|
|
1647
1663
|
* 用户手动刷新(reload)时清零重新计数。 */
|
|
1648
1664
|
const loadRetriesRef = (0, react.useRef)(0);
|
|
1649
|
-
/** 目录加载超时阈值:超过即判定挂起,强制刷新一次(服务端代理 curl 上限
|
|
1650
|
-
const LOAD_TIMEOUT_MS =
|
|
1651
|
-
/** 挂起后最多自动重试次数:避免代理持续不通时无限循环刷新(每次重试仍
|
|
1665
|
+
/** 目录加载超时阈值:超过即判定挂起,强制刷新一次(服务端代理 curl 上限 60s,客户端 30s 先兜底) */
|
|
1666
|
+
const LOAD_TIMEOUT_MS = 3e4;
|
|
1667
|
+
/** 挂起后最多自动重试次数:避免代理持续不通时无限循环刷新(每次重试仍 30s,2 次后转失败界面可手动重试) */
|
|
1652
1668
|
const MAX_LOAD_RETRIES = 2;
|
|
1669
|
+
/** 本次 reload 是否强制回源(跳过服务端 1 小时缓存):由「强制刷新」置位,读取后立即复位 */
|
|
1670
|
+
const forceRefreshRef = (0, react.useRef)(false);
|
|
1653
1671
|
/** 点击排序按钮:同一按钮切换正/倒序,新按钮用默认方向 */
|
|
1654
1672
|
function toggleSort(key) {
|
|
1655
1673
|
if (key === sort) setSortDir((d) => d === "asc" ? "desc" : "asc");
|
|
@@ -1688,11 +1706,13 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1688
1706
|
let cancelled = false;
|
|
1689
1707
|
let settled = false;
|
|
1690
1708
|
const controller = new AbortController();
|
|
1709
|
+
const refresh = forceRefreshRef.current;
|
|
1710
|
+
forceRefreshRef.current = false;
|
|
1691
1711
|
setPlugins(null);
|
|
1692
1712
|
setHubPlugin(null);
|
|
1693
1713
|
setStats(null);
|
|
1694
1714
|
setFailed(false);
|
|
1695
|
-
const load = () => Promise.all([fetchCatalog(lang, controller.signal), fetchStats(controller.signal)]);
|
|
1715
|
+
const load = () => Promise.all([fetchCatalog(lang, controller.signal, refresh), fetchStats(controller.signal, refresh)]);
|
|
1696
1716
|
load().then(([list, stats]) => {
|
|
1697
1717
|
if (cancelled) return;
|
|
1698
1718
|
settled = true;
|
|
@@ -1855,7 +1875,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1855
1875
|
* registry 真实发布时间下发(同源),据此判断最准。门槛命中要单列成 `pending` 而不是
|
|
1856
1876
|
* 落回「无更新」——回落会让弹窗在本机版本落后时谎称「已是最新」。
|
|
1857
1877
|
*/
|
|
1858
|
-
const hubCurrentVersion = "2.0.
|
|
1878
|
+
const hubCurrentVersion = "2.0.5";
|
|
1859
1879
|
const hubUpdateState = (() => {
|
|
1860
1880
|
if (!hubUpdateInfo) return "none";
|
|
1861
1881
|
if (hubUpdateInfo.version === hubCurrentVersion) return "latest";
|
|
@@ -1906,6 +1926,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1906
1926
|
loadRetriesRef.current = 0;
|
|
1907
1927
|
setReloadKey((k) => k + 1);
|
|
1908
1928
|
},
|
|
1929
|
+
/** 强制刷新:跳过服务端 1 小时缓存直接回源,成功后覆盖缓存(失败仍回退旧缓存) */
|
|
1930
|
+
forceReload: () => {
|
|
1931
|
+
loadRetriesRef.current = 0;
|
|
1932
|
+
forceRefreshRef.current = true;
|
|
1933
|
+
setReloadKey((k) => k + 1);
|
|
1934
|
+
},
|
|
1909
1935
|
installed,
|
|
1910
1936
|
installedItems,
|
|
1911
1937
|
installedName,
|
|
@@ -2059,6 +2085,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2059
2085
|
function missingTarballIntegrity(message) {
|
|
2060
2086
|
return /\bERR_PNPM_MISSING_TARBALL_INTEGRITY\b/.test(message);
|
|
2061
2087
|
}
|
|
2088
|
+
/** GitHub 分支 tarball 内容变了、锁文件里还是旧校验和(ERR_PNPM_TARBALL_INTEGRITY)。
|
|
2089
|
+
* \b 保证不会命中 ERR_PNPM_MISSING_TARBALL_INTEGRITY:前者是有校验值但对不上,
|
|
2090
|
+
* 后者是锁文件里压根没有校验值。 */
|
|
2091
|
+
function mismatchedTarballIntegrity(message) {
|
|
2092
|
+
return /\bERR_PNPM_TARBALL_INTEGRITY\b/.test(message);
|
|
2093
|
+
}
|
|
2062
2094
|
/** pnpm 拒收「刚发布」包时,报错里带着发布时间;这里从报错文本算出「发布满 24h」的可重试时刻(UTC,分钟精度)。 */
|
|
2063
2095
|
function releaseAgeRetryAfter(message) {
|
|
2064
2096
|
const match = /published at (\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z)/.exec(message);
|
|
@@ -2073,6 +2105,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2073
2105
|
* 避免出现「预计可重试时间:」后接空值的残缺句子。
|
|
2074
2106
|
*/
|
|
2075
2107
|
function pnpmPolicyHintOf(message) {
|
|
2108
|
+
if (mismatchedTarballIntegrity(message)) return "failPnpmTarballMismatchHint";
|
|
2076
2109
|
if (missingTarballIntegrity(message)) return "failPnpmTarballIntegrityHint";
|
|
2077
2110
|
if (/ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION|ERR_PNPM_NO_MATURE_MATCHING_VERSION|Minimum release age|minimumReleaseAge/i.test(message) && releaseAgeRetryAfter(message) !== null) return "failPnpmReleaseAgeHint";
|
|
2078
2111
|
return "failPnpmPolicyHint";
|
|
@@ -2096,18 +2129,20 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2096
2129
|
if (/ERR_PNPM_UNEXPECTED_(VIRTUAL_)?STORE|Unexpected (virtual )?store location/i.test(message)) return "pnpmStore";
|
|
2097
2130
|
if (/ERR_PNPM_ADDING_TO_ROOT|add the dependency to the workspace root/i.test(message)) return "pnpmWorkspace";
|
|
2098
2131
|
if (/(^|\n)untrusted origin\s*$/.test(message)) return "originRejected";
|
|
2099
|
-
if (missingTarballIntegrity(message) || /ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION|ERR_PNPM_NO_MATURE_MATCHING_VERSION|Minimum release age|minimumReleaseAge|untrusted origin/i.test(message)) return "pnpmPolicy";
|
|
2132
|
+
if (missingTarballIntegrity(message) || mismatchedTarballIntegrity(message) || /ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION|ERR_PNPM_NO_MATURE_MATCHING_VERSION|Minimum release age|minimumReleaseAge|untrusted origin/i.test(message)) return "pnpmPolicy";
|
|
2100
2133
|
if (/ERR_PNPM_UNUSED_PATCH|patches were not used/i.test(message)) return "pnpmUnusedPatch";
|
|
2101
2134
|
if (/os error 32|EBUSY|resource busy or locked|being used by another process/i.test(message)) return "fileLocked";
|
|
2102
2135
|
if (/os error 5\b|ERROR_ACCESS_DENIED|\bEPERM\b|\bEACCES\b|access is denied/i.test(message)) return "accessDenied";
|
|
2103
2136
|
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";
|
|
2104
2137
|
if (/ERR_PNPM_IGNORED_BUILDS|Ignored build scripts:|ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED/i.test(message)) return "pnpmIgnoredBuild";
|
|
2105
2138
|
if (/\[network\]|ERR_PNPM_GIT_FETCH_FAILED|ETIMEDOUT|ECONNREFUSED|ECONNRESET|ENOTFOUND|EAI_AGAIN|EPIPE|EHOSTUNREACH|ENETUNREACH|UND_ERR_[A-Z0-9_]+|getaddrinfo|Could not connect|Could not resolve host|Network unreachable|Failed to connect|socket hang up|CERT_HAS_EXPIRED|SSL certificate problem|\bTLS\b|\bSSL\b|fetch failed|failed to fetch|\bGET https?:\/\/\S+\.tgz\s+error \([A-Za-z0-9_]+\)/i.test(message)) return "network";
|
|
2139
|
+
if (/\[request-timeout\]/i.test(message)) return "network";
|
|
2106
2140
|
if (/\[packaging\]|entry file missing/i.test(message)) return "pluginPrepare";
|
|
2107
2141
|
if (/\[registry-missing\]/i.test(message)) return "pluginMissingDep";
|
|
2108
2142
|
if (/ERR_PNPM_FETCH_404|404 Not Found|Not Found - 404/i.test(message)) return "pnpmMissingDep";
|
|
2109
2143
|
if (/\bERR_PNPM_NO_MATCHING_VERSION\b|\bETARGET\b|No matching version found/i.test(message)) return "registryVersionStale";
|
|
2110
2144
|
if (/\bERR_PNPM_LINKED_PKG_DIR_NOT_FOUND\b|Could not install from .+ as it does not exist/i.test(message)) return "pnpmLinkedDirMissing";
|
|
2145
|
+
if (/Unable to detect compiler type|gyp ERR!|Could not find any Visual Studio|No Xcode or CLT version detected|xcode-select|python(?:3)? is (?:not set|not found)|Could not find Python|\bmake: not found\b|\bgcc: not found\b|\bg\+\+: not found\b|\bMSB\d{4}\b/i.test(message)) return "buildToolchainMissing";
|
|
2111
2146
|
if (/ERR_PNPM_PREPARE_PACKAGE|ELIFECYCLE|prepare-guard/i.test(message) || /Command failed/.test(message)) return "pluginPrepare";
|
|
2112
2147
|
if (/plugin is not installed|plugin cannot be uninstalled here|already queued:|^already installed: \S+$/im.test(message)) return "hubState";
|
|
2113
2148
|
if (/^\[timed out\]$/m.test(message)) return "timeout";
|
|
@@ -2668,7 +2703,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2668
2703
|
desc: q.desc,
|
|
2669
2704
|
version: q.version
|
|
2670
2705
|
});
|
|
2671
|
-
onInstallDone(modalTaskRef.current === q.id, q.repo, q.needsRestart, q.action === "update", q.needsReload ?? false);
|
|
2706
|
+
onInstallDone(modalTaskRef.current === q.id, q.repo, q.needsRestart, q.action === "update", q.needsReload ?? false, q.bundleDeselected === true);
|
|
2672
2707
|
}
|
|
2673
2708
|
} else {
|
|
2674
2709
|
const rawDetail = lines.length > 0 ? [...lines].reverse().join("\n") : q.kind === "uninstall" ? t("uninstallFail") : t("installFail");
|
|
@@ -2709,6 +2744,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2709
2744
|
let status = "failed";
|
|
2710
2745
|
let lines = [];
|
|
2711
2746
|
let attempts;
|
|
2747
|
+
let bundleDeselected;
|
|
2712
2748
|
try {
|
|
2713
2749
|
const res = await fetch(`/dsh-plugin-hub/status?task=${q.id}`, { cache: "no-store" });
|
|
2714
2750
|
if (res.ok) {
|
|
@@ -2717,13 +2753,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2717
2753
|
status = task.status ?? "failed";
|
|
2718
2754
|
lines = task.lines ?? [];
|
|
2719
2755
|
attempts = Array.isArray(task.attempts) ? task.attempts : void 0;
|
|
2756
|
+
bundleDeselected = task.bundleDeselected === true ? true : void 0;
|
|
2720
2757
|
const needsRestart = typeof task.needsRestart === "boolean" ? task.needsRestart : q.needsRestart;
|
|
2721
2758
|
const needsReload = typeof task.needsReload === "boolean" ? task.needsReload : q.needsReload ?? false;
|
|
2722
2759
|
if (status === "done") {
|
|
2723
2760
|
const settled = {
|
|
2724
2761
|
...q,
|
|
2725
2762
|
needsRestart,
|
|
2726
|
-
needsReload
|
|
2763
|
+
needsReload,
|
|
2764
|
+
bundleDeselected: bundleDeselected === true ? true : q.bundleDeselected
|
|
2727
2765
|
};
|
|
2728
2766
|
if (q.kind === "uninstall") settleDone(settled, lines);
|
|
2729
2767
|
else finishQueueTask(true, settled, lines);
|
|
@@ -2774,6 +2812,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2774
2812
|
lines: Array.isArray(a.lines) ? a.lines : prevTask?.lines ?? [],
|
|
2775
2813
|
attempts: Array.isArray(a.attempts) ? a.attempts : prevTask?.attempts ?? [],
|
|
2776
2814
|
needsRestart: typeof a.needsRestart === "boolean" ? a.needsRestart : prevTask?.needsRestart ?? true,
|
|
2815
|
+
bundleDeselected: a.bundleDeselected === true || prevTask?.bundleDeselected === true,
|
|
2777
2816
|
channel: a.installChannel === "npm" ? "npm" : prevTask?.channel
|
|
2778
2817
|
});
|
|
2779
2818
|
}
|
|
@@ -2903,7 +2942,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2903
2942
|
pollQueue();
|
|
2904
2943
|
} catch (err) {
|
|
2905
2944
|
applyQueue((prev) => prev.filter((x) => x.id !== tempId));
|
|
2906
|
-
const reason = err?.name === "AbortError" ? t("requestTimeout") : err instanceof Error && err.message ? err.message : String(err ?? "");
|
|
2945
|
+
const reason = err?.name === "AbortError" ? `${t("requestTimeout")}\n[request-timeout]` : err instanceof Error && err.message ? err.message : String(err ?? "");
|
|
2907
2946
|
const entry = entryLineOf(t, input.channel);
|
|
2908
2947
|
const msg = reason ? `${t("installFail")} — ${reason}` : t("installFail");
|
|
2909
2948
|
onError(entry ? `${entry}\n${msg}` : msg, input.repo, "install", input.command);
|
|
@@ -3003,7 +3042,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3003
3042
|
}]);
|
|
3004
3043
|
pollQueue();
|
|
3005
3044
|
} catch (err) {
|
|
3006
|
-
const reason = err?.name === "AbortError" ? t("requestTimeout") : err instanceof Error && err.message ? err.message : String(err ?? "");
|
|
3045
|
+
const reason = err?.name === "AbortError" ? `${t("requestTimeout")}\n[request-timeout]` : err instanceof Error && err.message ? err.message : String(err ?? "");
|
|
3007
3046
|
onError(reason ? `${t("uninstallFail")} — ${reason}` : t("uninstallFail"), repo, "uninstall");
|
|
3008
3047
|
} finally {
|
|
3009
3048
|
window.clearTimeout(timeout);
|
|
@@ -3582,7 +3621,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3582
3621
|
* 按钮(重启会中断进行中的任务,故仍需用户确认),关闭即放弃;
|
|
3583
3622
|
* - 其余(含 needsReload=true 的「已热挂载、仅剩客户端 UI」)→ 仅「完成」按钮:关闭结果弹窗时
|
|
3584
3623
|
* 上层自动刷新页面让插件生效,不再给「稍后/立即刷新」手动选择。 */
|
|
3585
|
-
function ResultView({ title, desc, t, restarting, needsRestart, needsReload, onRestart, onClose }) {
|
|
3624
|
+
function ResultView({ title, desc, t, restarting, needsRestart, needsReload, bundleDeselected, onRestart, onClose }) {
|
|
3586
3625
|
return (0, react.createElement)("div", { className: Modal_module_css_default.result }, (0, react.createElement)("div", { className: Modal_module_css_default.resultCheck }, (0, react.createElement)("svg", {
|
|
3587
3626
|
className: Modal_module_css_default.resultCheckIcon,
|
|
3588
3627
|
viewBox: "0 0 16 16",
|
|
@@ -3596,7 +3635,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3596
3635
|
strokeWidth: 2,
|
|
3597
3636
|
strokeLinecap: "round",
|
|
3598
3637
|
strokeLinejoin: "round"
|
|
3599
|
-
}))), (0, react.createElement)("div", { className: Modal_module_css_default.resultTitle }, title), desc ? (0, react.createElement)("div", { className: Modal_module_css_default.resultDesc }, desc) : null, needsRestart ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.resultRestarting }, restarting ? t("restarting") : t("restartHint")), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
3638
|
+
}))), (0, react.createElement)("div", { className: Modal_module_css_default.resultTitle }, title), desc ? (0, react.createElement)("div", { className: Modal_module_css_default.resultDesc }, desc) : null, bundleDeselected ? (0, react.createElement)("div", { className: Modal_module_css_default.bundleDeselectedHint }, t("bundleDeselectedHint")) : null, needsRestart ? (0, react.createElement)("div", null, [(0, react.createElement)("div", { className: Modal_module_css_default.resultRestarting }, restarting ? t("restarting") : t("restartHint")), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
3600
3639
|
className: Modal_module_css_default.restartNowWarning,
|
|
3601
3640
|
onClick: onRestart,
|
|
3602
3641
|
disabled: restarting
|
|
@@ -3611,7 +3650,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3611
3650
|
* 目录插件与命令行安装(customTarget 模式)共用同一套确认/进度/结果流程。
|
|
3612
3651
|
*/
|
|
3613
3652
|
function InstallModal(props) {
|
|
3614
|
-
const { plugin, customTarget, globalNpm, done, task, t, langPath, restarting, submitting, update, cliOnly, needsRestart, needsReload, onClose, onCopy, onInstall, onRestart } = props;
|
|
3653
|
+
const { plugin, customTarget, globalNpm, done, task, t, langPath, restarting, submitting, update, cliOnly, needsRestart, needsReload, bundleDeselected, onClose, onCopy, onInstall, onRestart } = props;
|
|
3615
3654
|
const busy = submitting || task !== null && (task.status === "pending" || task.status === "running");
|
|
3616
3655
|
const name = customTarget ?? (globalNpm !== void 0 && globalNpm.length > 0 ? globalNpm.join(" ") : void 0) ?? plugin?.displayName ?? plugin?.slug ?? "";
|
|
3617
3656
|
const busyTitle = (label) => langPath === "zh/" ? `${name} 插件${label}` : `${label} ${name}`;
|
|
@@ -3636,6 +3675,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3636
3675
|
restarting,
|
|
3637
3676
|
needsRestart,
|
|
3638
3677
|
needsReload,
|
|
3678
|
+
bundleDeselected,
|
|
3639
3679
|
onRestart,
|
|
3640
3680
|
onClose
|
|
3641
3681
|
}) : (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, !busy ? (0, react.createElement)("div", { className: Modal_module_css_default.confirmIconWrap }, (0, react.createElement)(ConfirmIcon, { type: "question" })) : null, (0, react.createElement)("div", { className: Modal_module_css_default.trustHint }, t("confirmDesc")), (0, react.createElement)("div", { className: Modal_module_css_default.modalRow }, (0, react.createElement)("span", { className: Modal_module_css_default.modalLabel }, t("confirmPlugin")), (0, react.createElement)("span", {
|
|
@@ -3750,7 +3790,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3750
3790
|
})() : null, (0, react.createElement)("button", {
|
|
3751
3791
|
className: Modal_module_css_default.errorCopySoft,
|
|
3752
3792
|
onClick: () => onCopy(copyText)
|
|
3753
|
-
}, 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 === "pnpmWorkspace" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmWorkspaceHint")) : failureKind === "pnpmStore" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint")) : failureKind === "pnpmPolicy" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(pnpmPolicyHintOf(message), pnpmPolicyHintParams(message))) : failureKind === "pnpmUnusedPatch" ? (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmUnusedPatchHint")) : failureKind === "pnpmMissingDep" ? (0, react.createElement)("div", null, [(() => {
|
|
3793
|
+
}, 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 === "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 === "pnpmMissingDep" ? (0, react.createElement)("div", null, [(() => {
|
|
3754
3794
|
const pkg = missingRegistryPackageOf(message);
|
|
3755
3795
|
return pkg ? (0, react.createElement)("div", { className: Modal_module_css_default.failNetworkTarget }, t("failPnpmMissingDepTarget", { pkg })) : null;
|
|
3756
3796
|
})(), (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(registryMissingHintOf(message)))]) : failureKind === "pluginMissingDep" ? (0, react.createElement)("div", null, [
|
|
@@ -4366,6 +4406,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4366
4406
|
if (kind === "gitMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failGitMissingHint"));
|
|
4367
4407
|
if (kind === "pnpmMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmMissingHint"));
|
|
4368
4408
|
if (kind === "npmMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failNpmMissingHint"));
|
|
4409
|
+
if (kind === "buildToolchainMissing") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failBuildToolchainHint"));
|
|
4369
4410
|
if (kind === "pnpmWorkspace") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmWorkspaceHint"));
|
|
4370
4411
|
if (kind === "pnpmStore") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("failPnpmStoreHint"));
|
|
4371
4412
|
if (kind === "pnpmPolicy") return (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t(pnpmPolicyHintOf(r.message), pnpmPolicyHintParams(r.message)));
|
|
@@ -4645,40 +4686,40 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4645
4686
|
css: css$9
|
|
4646
4687
|
});
|
|
4647
4688
|
var List_module_css_default = {
|
|
4648
|
-
"updateBadge": "_3XaZHa_updateBadge",
|
|
4649
|
-
"state": "_3XaZHa_state",
|
|
4650
|
-
"detailBtn": "_3XaZHa_detailBtn",
|
|
4651
|
-
"date": "_3XaZHa_date",
|
|
4652
|
-
"star": "_3XaZHa_star",
|
|
4653
|
-
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4654
|
-
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4655
|
-
"cardMain": "_3XaZHa_cardMain",
|
|
4656
|
-
"stateActions": "_3XaZHa_stateActions",
|
|
4657
|
-
"retryBtn": "_3XaZHa_retryBtn",
|
|
4658
|
-
"diagBtn": "_3XaZHa_diagBtn",
|
|
4659
|
-
"list": "_3XaZHa_list",
|
|
4660
|
-
"footer": "_3XaZHa_footer",
|
|
4661
|
-
"stateDesc": "_3XaZHa_stateDesc",
|
|
4662
|
-
"topic": "_3XaZHa_topic",
|
|
4663
|
-
"stats": "_3XaZHa_stats",
|
|
4664
|
-
"verified": "_3XaZHa_verified",
|
|
4665
4689
|
"topics": "_3XaZHa_topics",
|
|
4690
|
+
"topic": "_3XaZHa_topic",
|
|
4691
|
+
"cardHead": "_3XaZHa_cardHead",
|
|
4666
4692
|
"card": "_3XaZHa_card",
|
|
4667
|
-
"installBtn": "_3XaZHa_installBtn",
|
|
4668
|
-
"stateTitle": "_3XaZHa_stateTitle",
|
|
4669
4693
|
"versionBadge": "_3XaZHa_versionBadge",
|
|
4670
4694
|
"footLink": "_3XaZHa_footLink",
|
|
4671
|
-
"body": "_3XaZHa_body",
|
|
4672
4695
|
"actions": "_3XaZHa_actions",
|
|
4673
|
-
"
|
|
4674
|
-
"
|
|
4675
|
-
"
|
|
4696
|
+
"body": "_3XaZHa_body",
|
|
4697
|
+
"cardSide": "_3XaZHa_cardSide",
|
|
4698
|
+
"detailBtn": "_3XaZHa_detailBtn",
|
|
4699
|
+
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
4700
|
+
"installBtn": "_3XaZHa_installBtn",
|
|
4676
4701
|
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
4702
|
+
"verified": "_3XaZHa_verified",
|
|
4703
|
+
"star": "_3XaZHa_star",
|
|
4677
4704
|
"fork": "_3XaZHa_fork",
|
|
4705
|
+
"retryBtn": "_3XaZHa_retryBtn",
|
|
4706
|
+
"stateActions": "_3XaZHa_stateActions",
|
|
4707
|
+
"cardTitle": "_3XaZHa_cardTitle",
|
|
4708
|
+
"stateDesc": "_3XaZHa_stateDesc",
|
|
4709
|
+
"footer": "_3XaZHa_footer",
|
|
4710
|
+
"desc": "_3XaZHa_desc",
|
|
4711
|
+
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
4712
|
+
"list": "_3XaZHa_list",
|
|
4678
4713
|
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
4679
|
-
"
|
|
4680
|
-
"
|
|
4681
|
-
"
|
|
4714
|
+
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
4715
|
+
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
4716
|
+
"stateTitle": "_3XaZHa_stateTitle",
|
|
4717
|
+
"state": "_3XaZHa_state",
|
|
4718
|
+
"diagBtn": "_3XaZHa_diagBtn",
|
|
4719
|
+
"updateBadge": "_3XaZHa_updateBadge",
|
|
4720
|
+
"date": "_3XaZHa_date",
|
|
4721
|
+
"cardMain": "_3XaZHa_cardMain",
|
|
4722
|
+
"stats": "_3XaZHa_stats"
|
|
4682
4723
|
};
|
|
4683
4724
|
//#endregion
|
|
4684
4725
|
//#region src/client/hooks/useIncrementalList.ts
|
|
@@ -4776,7 +4817,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4776
4817
|
* 目录列表:承载加载/失败/空三态、插件卡片与计数页脚的滚动容器。分类或安装状态
|
|
4777
4818
|
* 筛选变化时重置滚动位置,避免替换后的内容被误当成「没变化」。
|
|
4778
4819
|
*/
|
|
4779
|
-
function CatalogList({ plugins, failed, visible, total, t, langPath, reload, category, copied, installedName, installedVersion, hasUpdate, langKey, onInstall, onUninstall, hasProxy, onOpenDiagnostics }) {
|
|
4820
|
+
function CatalogList({ plugins, failed, visible, total, t, langPath, reload, forceReload, category, copied, installedName, installedVersion, hasUpdate, langKey, onInstall, onUninstall, hasProxy, onOpenDiagnostics }) {
|
|
4780
4821
|
/** 列表滚动容器:分类/搜索切换后列表内容替换但 scrollTop 保留,会让用户误以为列表没更新,需重置回顶部 */
|
|
4781
4822
|
const listRef = (0, react.useRef)(null);
|
|
4782
4823
|
/** 增量渲染:全量目录太大(4400+),只渲染首批,滚动接近底部时自动追加下一批 */
|
|
@@ -4791,6 +4832,10 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4791
4832
|
className: List_module_css_default.retryBtn,
|
|
4792
4833
|
onClick: () => reload()
|
|
4793
4834
|
}, t("retry")), (0, react.createElement)("button", {
|
|
4835
|
+
className: List_module_css_default.retryBtn,
|
|
4836
|
+
onClick: () => forceReload(),
|
|
4837
|
+
title: t("forceReloadHint")
|
|
4838
|
+
}, t("forceReload")), (0, react.createElement)("button", {
|
|
4794
4839
|
className: List_module_css_default.diagBtn,
|
|
4795
4840
|
onClick: onOpenDiagnostics
|
|
4796
4841
|
}, t("failNetworkRunDiag")))), plugins !== null && !failed && visible.length === 0 && (0, react.createElement)("div", { className: List_module_css_default.state }, (0, react.createElement)("div", { className: List_module_css_default.stateTitle }, t("noResult")), (0, react.createElement)("div", { className: List_module_css_default.stateDesc }, t("noResultDesc"))), plugins !== null && !failed && shown.map((p) => (0, react.createElement)(PluginCard, {
|
|
@@ -4849,6 +4894,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4849
4894
|
t,
|
|
4850
4895
|
langPath,
|
|
4851
4896
|
reload: catalog.reload,
|
|
4897
|
+
forceReload: catalog.forceReload,
|
|
4852
4898
|
category: catalog.category,
|
|
4853
4899
|
copied,
|
|
4854
4900
|
installedName: catalog.installedName,
|
|
@@ -4863,7 +4909,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4863
4909
|
}
|
|
4864
4910
|
//#endregion
|
|
4865
4911
|
//#region \0dsh-css:src/client/styles/SectionTabs.module.css.mjs
|
|
4866
|
-
const css$8 = "._7tvizq_root{border-bottom:1px solid var(--hub-border-1);flex-shrink:0;align-items:stretch;gap:28px;padding:0 2px;display:flex}._7tvizq_tab,._7tvizq_tabActive{cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;gap:7px;height:38px;padding:0 4px;font-size:14px;line-height:38px;transition:color .12s;display:inline-flex;position:relative}._7tvizq_tab{color:var(--hub-text-secondary)}._7tvizq_tab:hover{color:var(--hub-text-primary)}._7tvizq_tabActive{color:var(--hub-text-primary);font-weight:600}._7tvizq_tabIcon{flex-shrink:0;align-items:center;line-height:1;display:inline-flex}._7tvizq_tabActive:after{content:\"\";background:var(--hub-brand);border-radius:1px;height:2px;position:absolute;bottom:-1px;left:0;right:0}._7tvizq_tabCount,._7tvizq_tabCountActive{text-align:center;border-radius:999px;min-width:18px;padding:0 6px;font-size:11px;line-height:16px}._7tvizq_tabCount{color:var(--hub-text-tertiary);background:var(--hub-bg-btn)}._7tvizq_tabActive ._7tvizq_tabCountActive{color:var(--hub-text-on-fill);background:var(--hub-btn-fill)}._7tvizq_noticeBtn{box-sizing:border-box;height:26px;color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;align-self:center;align-items:center;gap:5px;margin-left:auto;padding:0 8px;font-size:12px;line-height:24px;transition:color .12s,background .12s;display:inline-flex;position:relative}._7tvizq_noticeBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover);border-color:var(--hub-border-2)}._7tvizq_noticeIcon{align-items:center;line-height:1;display:inline-flex}._7tvizq_noticeCount{text-align:center;color:#fff;background:var(--hub-danger);border-radius:999px;min-width:17px;height:17px;padding:0 5px;font-size:11px;font-weight:600;line-height:17px;box-shadow:0 1px 3px #d1242f59}";
|
|
4912
|
+
const css$8 = "._7tvizq_root{border-bottom:1px solid var(--hub-border-1);flex-shrink:0;align-items:stretch;gap:28px;padding:0 2px;display:flex;container-type:inline-size}._7tvizq_tab,._7tvizq_tabActive{white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-shrink:0;align-items:center;gap:7px;height:38px;padding:0 4px;font-size:14px;line-height:38px;transition:color .12s;display:inline-flex;position:relative}._7tvizq_tab{color:var(--hub-text-secondary)}._7tvizq_tab:hover{color:var(--hub-text-primary)}._7tvizq_tabActive{color:var(--hub-text-primary);font-weight:600}@container (width<=440px){._7tvizq_tabLabel{display:none}._7tvizq_tab,._7tvizq_tabActive{padding:0 2px}}._7tvizq_tabIcon{flex-shrink:0;align-items:center;line-height:1;display:inline-flex}._7tvizq_tabActive:after{content:\"\";background:var(--hub-brand);border-radius:1px;height:2px;position:absolute;bottom:-1px;left:0;right:0}._7tvizq_tabCount,._7tvizq_tabCountActive{text-align:center;border-radius:999px;min-width:18px;padding:0 6px;font-size:11px;line-height:16px}._7tvizq_tabCount{color:var(--hub-text-tertiary);background:var(--hub-bg-btn)}._7tvizq_tabActive ._7tvizq_tabCountActive{color:var(--hub-text-on-fill);background:var(--hub-btn-fill)}._7tvizq_noticeBtn{box-sizing:border-box;height:26px;color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;align-self:center;align-items:center;gap:5px;margin-left:auto;padding:0 8px;font-size:12px;line-height:24px;transition:color .12s,background .12s;display:inline-flex;position:relative}._7tvizq_noticeBtn:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover);border-color:var(--hub-border-2)}._7tvizq_noticeIcon{align-items:center;line-height:1;display:inline-flex}._7tvizq_noticeCount{text-align:center;color:#fff;background:var(--hub-danger);border-radius:999px;min-width:17px;height:17px;padding:0 5px;font-size:11px;font-weight:600;line-height:17px;box-shadow:0 1px 3px #d1242f59}";
|
|
4867
4913
|
const tagId$8 = "dsh-plugin/SectionTabs.module.css";
|
|
4868
4914
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
|
|
4869
4915
|
const tag = document.createElement("style");
|
|
@@ -4878,15 +4924,16 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4878
4924
|
css: css$8
|
|
4879
4925
|
});
|
|
4880
4926
|
var SectionTabs_module_css_default = {
|
|
4927
|
+
"tabIcon": "_7tvizq_tabIcon",
|
|
4881
4928
|
"tabCountActive": "_7tvizq_tabCountActive",
|
|
4929
|
+
"tabActive": "_7tvizq_tabActive",
|
|
4882
4930
|
"noticeBtn": "_7tvizq_noticeBtn",
|
|
4931
|
+
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4932
|
+
"tabLabel": "_7tvizq_tabLabel",
|
|
4883
4933
|
"noticeCount": "_7tvizq_noticeCount",
|
|
4934
|
+
"tabCount": "_7tvizq_tabCount",
|
|
4884
4935
|
"tab": "_7tvizq_tab",
|
|
4885
|
-
"
|
|
4886
|
-
"noticeIcon": "_7tvizq_noticeIcon",
|
|
4887
|
-
"root": "_7tvizq_root",
|
|
4888
|
-
"tabIcon": "_7tvizq_tabIcon",
|
|
4889
|
-
"tabCount": "_7tvizq_tabCount"
|
|
4936
|
+
"root": "_7tvizq_root"
|
|
4890
4937
|
};
|
|
4891
4938
|
//#endregion
|
|
4892
4939
|
//#region src/client/components/layout/SectionTabs.tsx
|
|
@@ -4934,9 +4981,10 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4934
4981
|
role: "tab",
|
|
4935
4982
|
"aria-selected": view === id,
|
|
4936
4983
|
title: t(hintKey),
|
|
4984
|
+
"aria-label": t(labelKey),
|
|
4937
4985
|
className: view === id ? SectionTabs_module_css_default.tabActive : SectionTabs_module_css_default.tab,
|
|
4938
4986
|
onClick: () => setView(id)
|
|
4939
|
-
}, (0, react.createElement)("span", { className: SectionTabs_module_css_default.tabIcon }, (0, react.createElement)(Icon)), t(labelKey), id === "installed" && installedCount > 0 ? (0, react.createElement)("span", { className: view === id ? SectionTabs_module_css_default.tabCountActive : SectionTabs_module_css_default.tabCount }, installedCount) : null)), (0, react.createElement)("button", {
|
|
4987
|
+
}, (0, react.createElement)("span", { className: SectionTabs_module_css_default.tabIcon }, (0, react.createElement)(Icon)), (0, react.createElement)("span", { className: SectionTabs_module_css_default.tabLabel }, t(labelKey)), id === "installed" && installedCount > 0 ? (0, react.createElement)("span", { className: view === id ? SectionTabs_module_css_default.tabCountActive : SectionTabs_module_css_default.tabCount }, installedCount) : null)), (0, react.createElement)("button", {
|
|
4940
4988
|
type: "button",
|
|
4941
4989
|
className: SectionTabs_module_css_default.noticeBtn,
|
|
4942
4990
|
onClick: onOpenNotifications,
|
|
@@ -4961,42 +5009,42 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4961
5009
|
css: css$7
|
|
4962
5010
|
});
|
|
4963
5011
|
var InstalledView_module_css_default = {
|
|
4964
|
-
"
|
|
4965
|
-
"
|
|
4966
|
-
"
|
|
4967
|
-
"
|
|
5012
|
+
"rowRestart": "_1nXeGW_rowRestart",
|
|
5013
|
+
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
5014
|
+
"rowMain": "_1nXeGW_rowMain",
|
|
5015
|
+
"rowDesc": "_1nXeGW_rowDesc",
|
|
4968
5016
|
"statusDot": "_1nXeGW_statusDot",
|
|
4969
|
-
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
4970
|
-
"statusInactive": "_1nXeGW_statusInactive",
|
|
4971
|
-
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
4972
|
-
"rowCategory": "_1nXeGW_rowCategory",
|
|
4973
5017
|
"toolbar": "_1nXeGW_toolbar",
|
|
4974
|
-
"
|
|
4975
|
-
"
|
|
5018
|
+
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
5019
|
+
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
5020
|
+
"segGroup": "_1nXeGW_segGroup",
|
|
5021
|
+
"searchWrap": "_1nXeGW_searchWrap",
|
|
4976
5022
|
"searchInput": "_1nXeGW_searchInput",
|
|
4977
|
-
"
|
|
5023
|
+
"empty": "_1nXeGW_empty",
|
|
4978
5024
|
"exampleBadge": "_1nXeGW_exampleBadge",
|
|
4979
|
-
"rowDesc": "_1nXeGW_rowDesc",
|
|
4980
|
-
"segRow": "_1nXeGW_segRow",
|
|
4981
|
-
"updateBadge": "_1nXeGW_updateBadge",
|
|
4982
|
-
"segLabel": "_1nXeGW_segLabel",
|
|
4983
5025
|
"list": "_1nXeGW_list",
|
|
4984
|
-
"
|
|
4985
|
-
"
|
|
4986
|
-
"
|
|
4987
|
-
"versionBadge": "_1nXeGW_versionBadge",
|
|
4988
|
-
"exampleRow": "_1nXeGW_exampleRow",
|
|
4989
|
-
"segGroup": "_1nXeGW_segGroup",
|
|
4990
|
-
"rowRepo": "_1nXeGW_rowRepo",
|
|
4991
|
-
"statusPending": "_1nXeGW_statusPending",
|
|
4992
|
-
"empty": "_1nXeGW_empty",
|
|
5026
|
+
"segLabel": "_1nXeGW_segLabel",
|
|
5027
|
+
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
5028
|
+
"statusInactive": "_1nXeGW_statusInactive",
|
|
4993
5029
|
"root": "_1nXeGW_root",
|
|
4994
|
-
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4995
|
-
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4996
|
-
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
4997
5030
|
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
5031
|
+
"rowTitle": "_1nXeGW_rowTitle",
|
|
5032
|
+
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
5033
|
+
"segBtn": "_1nXeGW_segBtn",
|
|
5034
|
+
"row": "_1nXeGW_row",
|
|
5035
|
+
"versionBadge": "_1nXeGW_versionBadge",
|
|
5036
|
+
"segRow": "_1nXeGW_segRow",
|
|
5037
|
+
"rowCategory": "_1nXeGW_rowCategory",
|
|
5038
|
+
"rowActions": "_1nXeGW_rowActions",
|
|
5039
|
+
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
5040
|
+
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
5041
|
+
"updateBadge": "_1nXeGW_updateBadge",
|
|
5042
|
+
"statusPending": "_1nXeGW_statusPending",
|
|
5043
|
+
"rowDetail": "_1nXeGW_rowDetail",
|
|
5044
|
+
"rowRepo": "_1nXeGW_rowRepo",
|
|
4998
5045
|
"rowMeta": "_1nXeGW_rowMeta",
|
|
4999
|
-
"
|
|
5046
|
+
"exampleRow": "_1nXeGW_exampleRow",
|
|
5047
|
+
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual"
|
|
5000
5048
|
};
|
|
5001
5049
|
//#endregion
|
|
5002
5050
|
//#region src/client/components/views/InstalledView.tsx
|
|
@@ -5240,27 +5288,27 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5240
5288
|
css: css$6
|
|
5241
5289
|
});
|
|
5242
5290
|
var CustomInstallView_module_css_default = {
|
|
5243
|
-
"desc": "zISxCG_desc",
|
|
5244
|
-
"installCardHead": "zISxCG_installCardHead",
|
|
5245
5291
|
"installCards": "zISxCG_installCards",
|
|
5246
|
-
"
|
|
5247
|
-
"
|
|
5292
|
+
"helpNote": "zISxCG_helpNote",
|
|
5293
|
+
"root": "zISxCG_root",
|
|
5248
5294
|
"installExample": "zISxCG_installExample",
|
|
5249
|
-
"
|
|
5250
|
-
"installInputError": "zISxCG_installInputError",
|
|
5251
|
-
"installBtn": "zISxCG_installBtn",
|
|
5295
|
+
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
5252
5296
|
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
5253
|
-
"
|
|
5254
|
-
"
|
|
5255
|
-
"
|
|
5256
|
-
"root": "zISxCG_root",
|
|
5257
|
-
"helpBody": "zISxCG_helpBody",
|
|
5297
|
+
"desc": "zISxCG_desc",
|
|
5298
|
+
"installBtn": "zISxCG_installBtn",
|
|
5299
|
+
"installCardHead": "zISxCG_installCardHead",
|
|
5258
5300
|
"helpCmd": "zISxCG_helpCmd",
|
|
5259
|
-
"
|
|
5301
|
+
"installLabel": "zISxCG_installLabel",
|
|
5302
|
+
"installRow": "zISxCG_installRow",
|
|
5260
5303
|
"installCard": "zISxCG_installCard",
|
|
5261
|
-
"channelOff": "zISxCG_channelOff",
|
|
5262
5304
|
"helpLine": "zISxCG_helpLine",
|
|
5263
|
-
"
|
|
5305
|
+
"channelOff": "zISxCG_channelOff",
|
|
5306
|
+
"helpBody": "zISxCG_helpBody",
|
|
5307
|
+
"installError": "zISxCG_installError",
|
|
5308
|
+
"installInput": "zISxCG_installInput",
|
|
5309
|
+
"installInputError": "zISxCG_installInputError",
|
|
5310
|
+
"channelOffText": "zISxCG_channelOffText",
|
|
5311
|
+
"installHelpBtn": "zISxCG_installHelpBtn"
|
|
5264
5312
|
};
|
|
5265
5313
|
//#endregion
|
|
5266
5314
|
//#region src/client/components/views/CustomInstallView.tsx
|
|
@@ -5416,30 +5464,30 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5416
5464
|
css: css$5
|
|
5417
5465
|
});
|
|
5418
5466
|
var SettingsView_module_css_default = {
|
|
5467
|
+
"proxyHint": "_506LLG_proxyHint",
|
|
5419
5468
|
"resetBtn": "_506LLG_resetBtn",
|
|
5420
|
-
"
|
|
5421
|
-
"
|
|
5422
|
-
"
|
|
5469
|
+
"settingControlStack": "_506LLG_settingControlStack",
|
|
5470
|
+
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
5471
|
+
"navIcon": "_506LLG_navIcon",
|
|
5472
|
+
"proxyControl": "_506LLG_proxyControl",
|
|
5423
5473
|
"settingTitle": "_506LLG_settingTitle",
|
|
5424
5474
|
"navItem": "_506LLG_navItem",
|
|
5425
|
-
"navIcon": "_506LLG_navIcon",
|
|
5426
|
-
"pageHeader": "_506LLG_pageHeader",
|
|
5427
5475
|
"settingRow": "_506LLG_settingRow",
|
|
5476
|
+
"sidebar": "_506LLG_sidebar",
|
|
5477
|
+
"settingRowStack": "_506LLG_settingRowStack",
|
|
5428
5478
|
"root": "_506LLG_root",
|
|
5429
|
-
"
|
|
5430
|
-
"
|
|
5479
|
+
"controlDropdown": "_506LLG_controlDropdown",
|
|
5480
|
+
"pageHeader": "_506LLG_pageHeader",
|
|
5481
|
+
"pageTitle": "_506LLG_pageTitle",
|
|
5482
|
+
"settingLabel": "_506LLG_settingLabel",
|
|
5431
5483
|
"textInput": "_506LLG_textInput",
|
|
5432
|
-
"
|
|
5484
|
+
"settingDesc": "_506LLG_settingDesc",
|
|
5485
|
+
"settingControl": "_506LLG_settingControl",
|
|
5486
|
+
"pageDesc": "_506LLG_pageDesc",
|
|
5487
|
+
"card": "_506LLG_card",
|
|
5433
5488
|
"proxyHintOk": "_506LLG_proxyHintOk",
|
|
5434
|
-
"settingRowStack": "_506LLG_settingRowStack",
|
|
5435
|
-
"sidebar": "_506LLG_sidebar",
|
|
5436
|
-
"navItemActive": "_506LLG_navItemActive",
|
|
5437
|
-
"settingControlStack": "_506LLG_settingControlStack",
|
|
5438
5489
|
"content": "_506LLG_content",
|
|
5439
|
-
"
|
|
5440
|
-
"proxyHintFail": "_506LLG_proxyHintFail",
|
|
5441
|
-
"card": "_506LLG_card",
|
|
5442
|
-
"settingLabel": "_506LLG_settingLabel"
|
|
5490
|
+
"navItemActive": "_506LLG_navItemActive"
|
|
5443
5491
|
};
|
|
5444
5492
|
//#endregion
|
|
5445
5493
|
//#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
|
|
@@ -5458,18 +5506,18 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5458
5506
|
css: css$4
|
|
5459
5507
|
});
|
|
5460
5508
|
var Dropdown_module_css_default = {
|
|
5461
|
-
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
5462
|
-
"dropdown": "B_Gxsq_dropdown",
|
|
5463
|
-
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
5464
|
-
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
5465
|
-
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
5466
5509
|
"dropdownFill": "B_Gxsq_dropdownFill",
|
|
5510
|
+
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
5511
|
+
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
5467
5512
|
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
5513
|
+
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
5514
|
+
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
5468
5515
|
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
5469
|
-
"
|
|
5516
|
+
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
5470
5517
|
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen",
|
|
5471
|
-
"
|
|
5472
|
-
"
|
|
5518
|
+
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
5519
|
+
"dropdown": "B_Gxsq_dropdown",
|
|
5520
|
+
"dropdownPanel": "B_Gxsq_dropdownPanel"
|
|
5473
5521
|
};
|
|
5474
5522
|
//#endregion
|
|
5475
5523
|
//#region \0dsh-css:src/client/styles/Toggle.module.css.mjs
|
|
@@ -5488,9 +5536,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5488
5536
|
css: css$3
|
|
5489
5537
|
});
|
|
5490
5538
|
var Toggle_module_css_default = {
|
|
5491
|
-
"
|
|
5539
|
+
"toggle": "k-cD4G_toggle",
|
|
5492
5540
|
"knob": "k-cD4G_knob",
|
|
5493
|
-
"
|
|
5541
|
+
"toggleOn": "k-cD4G_toggleOn"
|
|
5494
5542
|
};
|
|
5495
5543
|
//#endregion
|
|
5496
5544
|
//#region src/client/components/ui/Toggle.tsx
|
|
@@ -5587,29 +5635,29 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5587
5635
|
css: css$2
|
|
5588
5636
|
});
|
|
5589
5637
|
var DiagnosticsView_module_css_default = {
|
|
5590
|
-
"summary": "k9eRya_summary",
|
|
5591
|
-
"envRow": "k9eRya_envRow",
|
|
5592
|
-
"row": "k9eRya_row",
|
|
5593
|
-
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5594
|
-
"meta": "k9eRya_meta",
|
|
5595
5638
|
"envLabel": "k9eRya_envLabel",
|
|
5639
|
+
"head": "k9eRya_head",
|
|
5640
|
+
"envTitle": "k9eRya_envTitle",
|
|
5641
|
+
"summary": "k9eRya_summary",
|
|
5642
|
+
"badge": "k9eRya_badge",
|
|
5643
|
+
"panel": "k9eRya_panel",
|
|
5596
5644
|
"headHint": "k9eRya_headHint",
|
|
5645
|
+
"diagPulse": "k9eRya_diagPulse",
|
|
5646
|
+
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
5647
|
+
"badgeIdle": "k9eRya_badgeIdle",
|
|
5648
|
+
"summaryFail": "k9eRya_summaryFail",
|
|
5649
|
+
"envRow": "k9eRya_envRow",
|
|
5597
5650
|
"name": "k9eRya_name",
|
|
5598
|
-
"
|
|
5651
|
+
"meta": "k9eRya_meta",
|
|
5599
5652
|
"badgeFail": "k9eRya_badgeFail",
|
|
5600
|
-
"
|
|
5601
|
-
"summaryRunning": "k9eRya_summaryRunning",
|
|
5602
|
-
"badgeOk": "k9eRya_badgeOk",
|
|
5603
|
-
"head": "k9eRya_head",
|
|
5604
|
-
"runBtn": "k9eRya_runBtn",
|
|
5605
|
-
"badgeRunning": "k9eRya_badgeRunning",
|
|
5653
|
+
"row": "k9eRya_row",
|
|
5606
5654
|
"envDesc": "k9eRya_envDesc",
|
|
5607
|
-
"badgeIdle": "k9eRya_badgeIdle",
|
|
5608
|
-
"panel": "k9eRya_panel",
|
|
5609
|
-
"envTitle": "k9eRya_envTitle",
|
|
5610
5655
|
"display": "k9eRya_display",
|
|
5611
|
-
"
|
|
5612
|
-
"
|
|
5656
|
+
"runBtn": "k9eRya_runBtn",
|
|
5657
|
+
"badgeRunning": "k9eRya_badgeRunning",
|
|
5658
|
+
"badgeOk": "k9eRya_badgeOk",
|
|
5659
|
+
"summaryOk": "k9eRya_summaryOk",
|
|
5660
|
+
"summaryRunning": "k9eRya_summaryRunning"
|
|
5613
5661
|
};
|
|
5614
5662
|
//#endregion
|
|
5615
5663
|
//#region src/client/components/views/DiagnosticsView.tsx
|
|
@@ -5784,57 +5832,57 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5784
5832
|
css: css$1
|
|
5785
5833
|
});
|
|
5786
5834
|
var LogsView_module_css_default = {
|
|
5787
|
-
"headActions": "_3j77BW_headActions",
|
|
5788
|
-
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5789
|
-
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5790
|
-
"moreEnd": "_3j77BW_moreEnd",
|
|
5791
|
-
"empty": "_3j77BW_empty",
|
|
5792
|
-
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5793
|
-
"actions": "_3j77BW_actions",
|
|
5794
|
-
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5795
|
-
"foot": "_3j77BW_foot",
|
|
5796
|
-
"catSettings": "_3j77BW_catSettings",
|
|
5797
|
-
"pathDraft": "_3j77BW_pathDraft",
|
|
5798
|
-
"badgeDebug": "_3j77BW_badgeDebug",
|
|
5799
|
-
"badge": "_3j77BW_badge",
|
|
5800
|
-
"catUpdate": "_3j77BW_catUpdate",
|
|
5801
|
-
"pathText": "_3j77BW_pathText",
|
|
5802
|
-
"footFail": "_3j77BW_footFail",
|
|
5803
|
-
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5804
|
-
"pathDialog": "_3j77BW_pathDialog",
|
|
5805
|
-
"btn": "_3j77BW_btn",
|
|
5806
|
-
"event": "_3j77BW_event",
|
|
5807
|
-
"head": "_3j77BW_head",
|
|
5808
5835
|
"pathRow": "_3j77BW_pathRow",
|
|
5836
|
+
"foot": "_3j77BW_foot",
|
|
5809
5837
|
"message": "_3j77BW_message",
|
|
5838
|
+
"more": "_3j77BW_more",
|
|
5839
|
+
"badgeWarn": "_3j77BW_badgeWarn",
|
|
5840
|
+
"badgeInfo": "_3j77BW_badgeInfo",
|
|
5810
5841
|
"time": "_3j77BW_time",
|
|
5811
|
-
"
|
|
5842
|
+
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5843
|
+
"headHint": "_3j77BW_headHint",
|
|
5812
5844
|
"clearBtn": "_3j77BW_clearBtn",
|
|
5845
|
+
"filterChip": "_3j77BW_filterChip",
|
|
5846
|
+
"searchInput": "_3j77BW_searchInput",
|
|
5847
|
+
"pathText": "_3j77BW_pathText",
|
|
5813
5848
|
"footActions": "_3j77BW_footActions",
|
|
5814
|
-
"
|
|
5849
|
+
"badgeError": "_3j77BW_badgeError",
|
|
5850
|
+
"list": "_3j77BW_list",
|
|
5851
|
+
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5852
|
+
"previewRow": "_3j77BW_previewRow",
|
|
5853
|
+
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5854
|
+
"entry": "_3j77BW_entry",
|
|
5855
|
+
"pathLabel": "_3j77BW_pathLabel",
|
|
5815
5856
|
"catUninstall": "_3j77BW_catUninstall",
|
|
5857
|
+
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5858
|
+
"empty": "_3j77BW_empty",
|
|
5859
|
+
"catUpdate": "_3j77BW_catUpdate",
|
|
5860
|
+
"logList": "_3j77BW_logList",
|
|
5816
5861
|
"catInstall": "_3j77BW_catInstall",
|
|
5817
|
-
"
|
|
5818
|
-
"catSystem": "_3j77BW_catSystem",
|
|
5819
|
-
"linkBtn": "_3j77BW_linkBtn",
|
|
5862
|
+
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5820
5863
|
"search": "_3j77BW_search",
|
|
5821
|
-
"
|
|
5822
|
-
"
|
|
5823
|
-
"
|
|
5824
|
-
"
|
|
5825
|
-
"
|
|
5826
|
-
"pathLabel": "_3j77BW_pathLabel",
|
|
5827
|
-
"filterChip": "_3j77BW_filterChip",
|
|
5828
|
-
"more": "_3j77BW_more",
|
|
5829
|
-
"previewRow": "_3j77BW_previewRow",
|
|
5864
|
+
"pathDialog": "_3j77BW_pathDialog",
|
|
5865
|
+
"moreEnd": "_3j77BW_moreEnd",
|
|
5866
|
+
"footFail": "_3j77BW_footFail",
|
|
5867
|
+
"catSettings": "_3j77BW_catSettings",
|
|
5868
|
+
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
5830
5869
|
"filterBar": "_3j77BW_filterBar",
|
|
5831
|
-
"
|
|
5832
|
-
"
|
|
5833
|
-
"
|
|
5834
|
-
"
|
|
5870
|
+
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
5871
|
+
"event": "_3j77BW_event",
|
|
5872
|
+
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5873
|
+
"actions": "_3j77BW_actions",
|
|
5874
|
+
"linkBtn": "_3j77BW_linkBtn",
|
|
5875
|
+
"pathDraft": "_3j77BW_pathDraft",
|
|
5876
|
+
"headActions": "_3j77BW_headActions",
|
|
5835
5877
|
"catBadge": "_3j77BW_catBadge",
|
|
5836
|
-
"
|
|
5837
|
-
"
|
|
5878
|
+
"footCount": "_3j77BW_footCount",
|
|
5879
|
+
"btn": "_3j77BW_btn",
|
|
5880
|
+
"catSystem": "_3j77BW_catSystem",
|
|
5881
|
+
"footPath": "_3j77BW_footPath",
|
|
5882
|
+
"head": "_3j77BW_head",
|
|
5883
|
+
"badge": "_3j77BW_badge",
|
|
5884
|
+
"panel": "_3j77BW_panel",
|
|
5885
|
+
"badgeDebug": "_3j77BW_badgeDebug"
|
|
5838
5886
|
};
|
|
5839
5887
|
//#endregion
|
|
5840
5888
|
//#region src/client/components/modals/LogsModal.tsx
|
|
@@ -6698,6 +6746,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6698
6746
|
/** 结果视图是否显示「关闭后自动刷新」说明:插件已热挂进运行中 loader(安装)、或卸载后
|
|
6699
6747
|
* 插件面板仍残留在当前页面(卸载)。关闭弹窗即整页刷新,不给手动刷新按钮。 */
|
|
6700
6748
|
const [installNeedsReload, setInstallNeedsReload] = (0, react.useState)(false);
|
|
6749
|
+
/** 市场自更新成功、但 profile 的 bundle 列表里已不含 dsh-plugin:结果页提示重新勾选 */
|
|
6750
|
+
const [installBundleDeselected, setInstallBundleDeselected] = (0, react.useState)(false);
|
|
6701
6751
|
const [uninstallNeedsReload, setUninstallNeedsReload] = (0, react.useState)(false);
|
|
6702
6752
|
/** 结果视图「立即重启」:请求宿主重启后进入等待,服务回来后整页刷新 */
|
|
6703
6753
|
const [restarting, setRestarting] = (0, react.useState)(false);
|
|
@@ -6732,10 +6782,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6732
6782
|
t,
|
|
6733
6783
|
langKey,
|
|
6734
6784
|
refreshInstalled: catalog.refreshInstalled,
|
|
6735
|
-
onInstallDone: (viaModal, repo, needsRestart, update, needsReload) => {
|
|
6785
|
+
onInstallDone: (viaModal, repo, needsRestart, update, needsReload, bundleDeselected) => {
|
|
6736
6786
|
const reload = needsReload === true;
|
|
6737
6787
|
setInstallNeedsRestart(needsRestart);
|
|
6738
6788
|
setInstallNeedsReload(reload);
|
|
6789
|
+
setInstallBundleDeselected(bundleDeselected === true);
|
|
6739
6790
|
if (viaModal) setInstallDone(true);
|
|
6740
6791
|
else setToast({
|
|
6741
6792
|
id: Date.now(),
|
|
@@ -7092,7 +7143,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
7092
7143
|
openSection: settingsSection,
|
|
7093
7144
|
onConsumedOpenSection: () => setSettingsSection(null)
|
|
7094
7145
|
}), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
|
|
7095
|
-
info: catalog.hubUpdateInfo ?? { version: "2.0.
|
|
7146
|
+
info: catalog.hubUpdateInfo ?? { version: "2.0.5" },
|
|
7096
7147
|
state: catalog.hubUpdateState,
|
|
7097
7148
|
currentVersion: catalog.hubCurrentVersion,
|
|
7098
7149
|
lang,
|
|
@@ -7184,9 +7235,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
7184
7235
|
submitting: queue.submitting,
|
|
7185
7236
|
needsRestart: installNeedsRestart,
|
|
7186
7237
|
needsReload: installNeedsReload,
|
|
7238
|
+
bundleDeselected: installBundleDeselected,
|
|
7187
7239
|
onClose: () => {
|
|
7188
7240
|
const reload = installDone && installNeedsReload;
|
|
7189
7241
|
setConfirmPlugin(null);
|
|
7242
|
+
setInstallBundleDeselected(false);
|
|
7190
7243
|
if (reload) window.location.reload();
|
|
7191
7244
|
},
|
|
7192
7245
|
onCopy: () => copyCommand(confirmPlugin),
|