@dimina-kit/devtools 0.3.2-dev.20260525152421 → 0.3.2-dev.20260610082053
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.md +43 -40
- package/dist/main/api.d.ts +0 -1
- package/dist/main/api.js +5 -1
- package/dist/main/app/app.d.ts +15 -5
- package/dist/main/app/app.js +247 -110
- package/dist/main/app/bootstrap.d.ts +16 -0
- package/dist/main/app/bootstrap.js +20 -0
- package/dist/main/app/launch.d.ts +8 -4
- package/dist/main/app/launch.js +9 -4
- package/dist/main/index.bundle.js +6607 -2102
- package/dist/main/index.js +9 -1
- package/dist/main/ipc/app.d.ts +1 -1
- package/dist/main/ipc/bridge-router.d.ts +61 -0
- package/dist/main/ipc/bridge-router.js +1300 -0
- package/dist/main/ipc/panels.d.ts +1 -1
- package/dist/main/ipc/panels.js +6 -2
- package/dist/main/ipc/popover.d.ts +1 -1
- package/dist/main/ipc/project-fs.d.ts +57 -0
- package/dist/main/ipc/project-fs.js +448 -0
- package/dist/main/ipc/projects.d.ts +1 -1
- package/dist/main/ipc/session.d.ts +1 -1
- package/dist/main/ipc/settings.d.ts +1 -1
- package/dist/main/ipc/simulator-module.d.ts +6 -0
- package/dist/main/ipc/simulator-module.js +11 -1
- package/dist/main/ipc/simulator.d.ts +2 -2
- package/dist/main/ipc/simulator.js +49 -5
- package/dist/main/ipc/toolbar.d.ts +1 -1
- package/dist/main/ipc/views.d.ts +19 -0
- package/dist/main/ipc/views.js +65 -0
- package/dist/main/runtime/devtools-backend.d.ts +17 -0
- package/dist/main/runtime/devtools-backend.js +49 -0
- package/dist/main/runtime/miniapp-runtime.d.ts +39 -0
- package/dist/main/runtime/miniapp-runtime.js +17 -0
- package/dist/main/services/automation/exec.d.ts +27 -2
- package/dist/main/services/automation/exec.js +37 -3
- package/dist/main/services/automation/handlers/app.js +127 -11
- package/dist/main/services/automation/handlers/page.js +36 -19
- package/dist/main/services/automation/index.js +40 -13
- package/dist/main/services/automation/wait-active-page.d.ts +56 -0
- package/dist/main/services/automation/wait-active-page.js +71 -0
- package/dist/main/services/console-forward/index.d.ts +36 -0
- package/dist/main/services/console-forward/index.js +81 -0
- package/dist/main/services/dimina-resource-server.d.ts +7 -0
- package/dist/main/services/dimina-resource-server.js +99 -0
- package/dist/main/services/elements-forward/index.d.ts +66 -0
- package/dist/main/services/elements-forward/index.js +583 -0
- package/dist/main/services/layout/index.d.ts +23 -1
- package/dist/main/services/layout/index.js +28 -3
- package/dist/main/services/mcp/index.d.ts +1 -0
- package/dist/main/services/mcp/index.js +3 -0
- package/dist/main/services/mcp/server.d.ts +1 -1
- package/dist/main/services/mcp/server.js +1 -1
- package/dist/main/services/mcp/target-manager.d.ts +35 -0
- package/dist/main/services/mcp/target-manager.js +63 -1
- package/dist/main/services/mcp/tools/context-tools.js +15 -1
- package/dist/main/services/module.d.ts +1 -1
- package/dist/main/services/network-forward/index.d.ts +190 -0
- package/dist/main/services/network-forward/index.js +765 -0
- package/dist/main/services/notifications/renderer-notifier.d.ts +11 -0
- package/dist/main/services/notifications/renderer-notifier.js +7 -1
- package/dist/main/services/render-inspect/index.d.ts +41 -0
- package/dist/main/services/render-inspect/index.js +88 -0
- package/dist/main/services/safe-area/index.d.ts +17 -0
- package/dist/main/services/safe-area/index.js +59 -0
- package/dist/main/services/service-host-pool/pool.d.ts +197 -0
- package/dist/main/services/service-host-pool/pool.js +364 -0
- package/dist/main/services/simulator/custom-apis.d.ts +34 -0
- package/dist/main/services/simulator/custom-apis.js +22 -0
- package/dist/main/services/simulator-appdata/index.d.ts +35 -0
- package/dist/main/services/simulator-appdata/index.js +71 -0
- package/dist/main/services/simulator-current-page/index.d.ts +24 -0
- package/dist/main/services/simulator-current-page/index.js +19 -0
- package/dist/main/services/simulator-storage/index.d.ts +37 -2
- package/dist/main/services/simulator-storage/index.js +209 -32
- package/dist/main/services/simulator-storage/service-storage-ops.d.ts +40 -0
- package/dist/main/services/simulator-storage/service-storage-ops.js +67 -0
- package/dist/main/services/simulator-temp-files/fs-channels.js +1 -1
- package/dist/main/services/simulator-temp-files/index.d.ts +1 -1
- package/dist/main/services/simulator-temp-files/index.js +1 -1
- package/dist/main/services/simulator-temp-files/request-handler.js +1 -1
- package/dist/main/services/simulator-wxml/index.d.ts +29 -0
- package/dist/main/services/simulator-wxml/index.js +28 -0
- package/dist/main/services/update/update-manager.d.ts +10 -0
- package/dist/main/services/update/update-manager.js +16 -3
- package/dist/main/services/views/devtools-tabs.d.ts +47 -0
- package/dist/main/services/views/devtools-tabs.js +95 -0
- package/dist/main/services/views/view-manager.d.ts +142 -4
- package/dist/main/services/views/view-manager.js +909 -17
- package/dist/main/services/workbench-context.d.ts +66 -1
- package/dist/main/services/workbench-context.js +6 -1
- package/dist/main/services/workspace/workspace-service.d.ts +8 -0
- package/dist/main/services/workspace/workspace-service.js +12 -0
- package/dist/main/utils/ipc-registry.d.ts +11 -2
- package/dist/main/utils/ipc-registry.js +63 -3
- package/dist/main/utils/paths.d.ts +15 -0
- package/dist/main/utils/paths.js +19 -0
- package/dist/main/utils/sender-policy.d.ts +9 -3
- package/dist/main/utils/sender-policy.js +18 -4
- package/dist/main/utils/theme.d.ts +1 -1
- package/dist/main/utils/theme.js +1 -1
- package/dist/main/windows/main-window/create.d.ts +0 -6
- package/dist/main/windows/main-window/create.js +11 -59
- package/dist/main/windows/main-window/events.d.ts +1 -1
- package/dist/main/windows/main-window/events.js +1 -1
- package/dist/main/windows/service-host-window/create.d.ts +52 -0
- package/dist/main/windows/service-host-window/create.js +112 -0
- package/dist/native-host/common/common.js +368 -0
- package/dist/native-host/container/pageFrame.css +1 -0
- package/dist/native-host/render/render.js +9334 -0
- package/dist/native-host/service/service.js +6 -0
- package/dist/preload/index.d.ts +2 -0
- package/dist/preload/index.js +6 -0
- package/dist/preload/instrumentation/app-data.d.ts +18 -20
- package/dist/preload/instrumentation/app-data.js +23 -160
- package/dist/preload/instrumentation/wxml-extract.d.ts +1 -1
- package/dist/preload/instrumentation/wxml-extract.js +1 -1
- package/dist/preload/runtime/bridge.d.ts +3 -8
- package/dist/preload/runtime/bridge.js +2 -32
- package/dist/preload/runtime/custom-apis.js +20 -17
- package/dist/preload/runtime/host-toolbar-advertiser.d.ts +27 -0
- package/dist/preload/runtime/host-toolbar-advertiser.js +55 -0
- package/dist/preload/runtime/main-api-runner.d.ts +9 -0
- package/dist/preload/runtime/main-api-runner.js +85 -0
- package/dist/preload/runtime/native-host.d.ts +43 -0
- package/dist/preload/runtime/native-host.js +83 -0
- package/dist/preload/shared/expose.d.ts +10 -5
- package/dist/preload/shared/expose.js +29 -11
- package/dist/preload/shared/sid-registry.d.ts +11 -0
- package/dist/preload/shared/sid-registry.js +38 -0
- package/dist/preload/windows/host-toolbar.cjs +161 -0
- package/dist/preload/windows/host-toolbar.cjs.map +7 -0
- package/dist/preload/windows/host-toolbar.d.ts +2 -0
- package/dist/preload/windows/host-toolbar.js +12 -0
- package/dist/preload/windows/main.cjs +1939 -0
- package/dist/preload/windows/main.cjs.map +4 -4
- package/dist/preload/windows/simulator.cjs +925 -0
- package/dist/preload/windows/simulator.cjs.map +7 -0
- package/dist/preload/windows/simulator.js +243 -573
- package/dist/render-host/pageFrame.html +29 -0
- package/dist/render-host/preload.cjs +154 -0
- package/dist/render-host/render-inspect.js +295 -0
- package/dist/renderer/assets/abap-DiwvWnMr.js +2 -0
- package/dist/renderer/assets/apex-CmtZjKlf.js +2 -0
- package/dist/renderer/assets/azcli-DL2My_i-.js +2 -0
- package/dist/renderer/assets/bat-B-nC98wG.js +2 -0
- package/dist/renderer/assets/bicep-Ju5MwOgh.js +3 -0
- package/dist/renderer/assets/cameligo-8Eu1TyBr.js +2 -0
- package/dist/renderer/assets/chunk-DPI0Y_ll.js +1 -0
- package/dist/renderer/assets/clojure-u-RpMkH3.js +2 -0
- package/dist/renderer/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist/renderer/assets/coffee-CdA7bbTe.js +2 -0
- package/dist/renderer/assets/constants-CLAQX6VZ.js +2 -0
- package/dist/renderer/assets/cpp-CzNFP8ks.js +2 -0
- package/dist/renderer/assets/csharp-j1LThmcE.js +2 -0
- package/dist/renderer/assets/csp-CLRC61y6.js +2 -0
- package/dist/renderer/assets/css-r6rC_7P2.js +4 -0
- package/dist/renderer/assets/css.worker-DyDu5ynT.js +90 -0
- package/dist/renderer/assets/cssMode-BCBgxrnA.js +2 -0
- package/dist/renderer/assets/cypher-CW08XVUh.js +2 -0
- package/dist/renderer/assets/dart-Cs9aL5T_.js +2 -0
- package/dist/renderer/assets/dockerfile-BWM0M184.js +2 -0
- package/dist/renderer/assets/ecl-MJJuer5P.js +2 -0
- package/dist/renderer/assets/editor-CWI9TnMM.css +1 -0
- package/dist/renderer/assets/editor.api2-BTaYmRq7.js +873 -0
- package/dist/renderer/assets/editor.worker-Dpt_xPrs.js +27 -0
- package/dist/renderer/assets/elixir-D2AIuXqn.js +2 -0
- package/dist/renderer/assets/flow9-B2H24giC.js +2 -0
- package/dist/renderer/assets/freemarker2-DGDGzimW.js +4 -0
- package/dist/renderer/assets/fsharp-CMk2OIJN.js +2 -0
- package/dist/renderer/assets/go-BrMkuJg0.js +2 -0
- package/dist/renderer/assets/graphql-PSR1UKGv.js +2 -0
- package/dist/renderer/assets/handlebars-bOHhw3EG.js +2 -0
- package/dist/renderer/assets/hcl-DAQrbDOW.js +2 -0
- package/dist/renderer/assets/html-BMyuX0_c.js +2 -0
- package/dist/renderer/assets/html.worker-IWNXhnIC.js +503 -0
- package/dist/renderer/assets/htmlMode-DR4kXJ7l.js +2 -0
- package/dist/renderer/assets/index-CcJKzatF.js +50 -0
- package/dist/renderer/assets/ini-0TG5BxW0.js +2 -0
- package/dist/renderer/assets/input-QGx6FFX1.js +2 -0
- package/dist/renderer/assets/ipc-transport-BT4QYQqu.css +1 -0
- package/dist/renderer/assets/{ipc-transport-BzPzxPwf.js → ipc-transport-DvZvwK-Z.js} +5 -5
- package/dist/renderer/assets/java-rgorz17v.js +2 -0
- package/dist/renderer/assets/javascript-Bu-tl1P7.js +2 -0
- package/dist/renderer/assets/json.worker-c4h5s80L.js +59 -0
- package/dist/renderer/assets/jsonMode-MQV_ffLR.js +8 -0
- package/dist/renderer/assets/julia-C8VMdHm8.js +2 -0
- package/dist/renderer/assets/kotlin-AhhC4Qhm.js +2 -0
- package/dist/renderer/assets/less-Cgca25AP.js +3 -0
- package/dist/renderer/assets/lexon-D0GHdBaw.js +2 -0
- package/dist/renderer/assets/liquid-ClkfOvhB.js +2 -0
- package/dist/renderer/assets/lspLanguageFeatures-Bke_4Ie9.js +5 -0
- package/dist/renderer/assets/lua-DmRsNG-P.js +2 -0
- package/dist/renderer/assets/m3-BgL5dNKT.js +2 -0
- package/dist/renderer/assets/markdown-BuJfycGS.js +2 -0
- package/dist/renderer/assets/mdx-RZdUskPu.js +2 -0
- package/dist/renderer/assets/mips-C9m_93PR.js +2 -0
- package/dist/renderer/assets/monaco.contribution-B7rUMaEv.js +3 -0
- package/dist/renderer/assets/msdax-CpFHC9OI.js +2 -0
- package/dist/renderer/assets/mysql-qFvltsqN.js +2 -0
- package/dist/renderer/assets/objective-c-Bnmr858J.js +2 -0
- package/dist/renderer/assets/pascal-WP0_D5AO.js +2 -0
- package/dist/renderer/assets/pascaligo-Blom4Rij.js +2 -0
- package/dist/renderer/assets/perl-B-vk8g64.js +2 -0
- package/dist/renderer/assets/pgsql-Cgvz6v67.js +2 -0
- package/dist/renderer/assets/php-8a3Lrw9m.js +2 -0
- package/dist/renderer/assets/pla-DuFqEZ8V.js +2 -0
- package/dist/renderer/assets/popover-BOH1If1J.js +2 -0
- package/dist/renderer/assets/postiats-DkLtSgkp.js +2 -0
- package/dist/renderer/assets/powerquery-BJ1aNepW.js +2 -0
- package/dist/renderer/assets/powershell-rE98k687.js +2 -0
- package/dist/renderer/assets/protobuf-CUheFacr.js +3 -0
- package/dist/renderer/assets/pug-LDcAMD8w.js +2 -0
- package/dist/renderer/assets/python-Cobrm_-8.js +2 -0
- package/dist/renderer/assets/qsharp-DUKSQoR1.js +2 -0
- package/dist/renderer/assets/r-D-QApv87.js +2 -0
- package/dist/renderer/assets/razor-BEUIQFNJ.js +2 -0
- package/dist/renderer/assets/redis-SXdDyWR9.js +2 -0
- package/dist/renderer/assets/redshift-Y6lsCryn.js +2 -0
- package/dist/renderer/assets/restructuredtext-edObr9a8.js +2 -0
- package/dist/renderer/assets/ruby-CNnUfF-8.js +2 -0
- package/dist/renderer/assets/rust-IHUZWzBr.js +2 -0
- package/dist/renderer/assets/sb-DrUvY44N.js +2 -0
- package/dist/renderer/assets/scala-B4hbXGLM.js +2 -0
- package/dist/renderer/assets/scheme-BGrd12j3.js +2 -0
- package/dist/renderer/assets/scss-x5G1ES4U.js +4 -0
- package/dist/renderer/assets/select-C7JQ8G5N.js +2 -0
- package/dist/renderer/assets/settings-DpAbTJyF.js +2 -0
- package/dist/renderer/assets/{settings-api-BXCw9vOZ.js → settings-api-RD2IZF53.js} +2 -2
- package/dist/renderer/assets/shell-DOehe2Y8.js +2 -0
- package/dist/renderer/assets/solidity-BeRvcwWV.js +2 -0
- package/dist/renderer/assets/sophia-DZbkUNjy.js +2 -0
- package/dist/renderer/assets/sparql-B7_oi5-h.js +2 -0
- package/dist/renderer/assets/sql-CTlsFWVE.js +2 -0
- package/dist/renderer/assets/st-DJVEJdPE.js +2 -0
- package/dist/renderer/assets/swift-CwhT3fYa.js +2 -0
- package/dist/renderer/assets/systemverilog-BQN63pkN.js +2 -0
- package/dist/renderer/assets/tcl-DqwfpskA.js +2 -0
- package/dist/renderer/assets/ts.worker-BwM5Ha3L.js +67720 -0
- package/dist/renderer/assets/tsMode-BHa7dl9v.js +12 -0
- package/dist/renderer/assets/twig-BiyenUgc.js +2 -0
- package/dist/renderer/assets/typescript-15aT0Yj8.js +2 -0
- package/dist/renderer/assets/typespec-CWOJribt.js +2 -0
- package/dist/renderer/assets/vb-Cq5F87m3.js +2 -0
- package/dist/renderer/assets/wgsl-BAvW2lVr.js +299 -0
- package/dist/renderer/assets/workbenchSettings-CNJX4Qna.js +8 -0
- package/dist/renderer/assets/workers-CRBS0W-v.js +2 -0
- package/dist/renderer/assets/xml-bR2Zh-HV.js +2 -0
- package/dist/renderer/assets/yaml-Bdk54Qrb.js +2 -0
- package/dist/renderer/entries/main/index.html +29 -6
- package/dist/renderer/entries/popover/index.html +7 -6
- package/dist/renderer/entries/settings/index.html +6 -5
- package/dist/renderer/entries/workbench-settings/index.html +6 -5
- package/dist/service-host/preload.cjs +254 -0
- package/dist/service-host/service.html +10 -0
- package/dist/service-host/sourcemap-rewrite.cjs +58 -0
- package/dist/service-host/sync-api-patch.js +20 -0
- package/dist/service-host/sync-impls/menu-button.js +16 -0
- package/dist/service-host/sync-impls/storage.js +50 -0
- package/dist/service-host/sync-impls/system-info.js +54 -0
- package/dist/shared/appdata-accumulator.d.ts +95 -0
- package/dist/shared/appdata-accumulator.js +213 -0
- package/dist/shared/bridge-channels.d.ts +364 -0
- package/dist/shared/bridge-channels.js +54 -0
- package/dist/shared/constants.d.ts +0 -4
- package/dist/shared/constants.js +0 -4
- package/dist/shared/ipc-channels.d.ts +108 -1
- package/dist/shared/ipc-channels.js +127 -10
- package/dist/shared/ipc-schemas.d.ts +65 -2
- package/dist/shared/ipc-schemas.js +79 -3
- package/dist/shared/open-in-editor.d.ts +71 -0
- package/dist/shared/open-in-editor.js +138 -0
- package/dist/shared/simulator-api-metadata.d.ts +21 -0
- package/dist/shared/simulator-api-metadata.js +23 -0
- package/dist/shared/types.d.ts +2 -2
- package/dist/shared/vpath.d.ts +42 -0
- package/dist/shared/vpath.js +105 -0
- package/dist/simulator/assets/device-shell-DsdcNEkt.css +1 -0
- package/dist/simulator/assets/device-shell-vwYSOVrh.js +2 -0
- package/dist/simulator/assets/jsx-runtime-P6ZegaOf.js +2 -0
- package/dist/simulator/assets/simulator-DddliUL5.js +10 -0
- package/dist/simulator/assets/simulator-mini-app-BDNu5n26.js +2 -0
- package/dist/simulator/device-shell/menu-button-geometry.js +8 -0
- package/dist/simulator/simulator.html +2 -112
- package/package.json +9 -9
- package/dist/main/utils/disposable.d.ts +0 -18
- package/dist/main/utils/disposable.js +0 -67
- package/dist/renderer/assets/constants-DI382mTP.js +0 -2
- package/dist/renderer/assets/index-4lkyF644.js +0 -46
- package/dist/renderer/assets/input-D4byFOLS.js +0 -2
- package/dist/renderer/assets/ipc-transport-DqbRdZNO.css +0 -1
- package/dist/renderer/assets/popover-cxKrg_os.js +0 -2
- package/dist/renderer/assets/select-BgSkkdHW.js +0 -2
- package/dist/renderer/assets/settings-oD2K1jdT.js +0 -2
- package/dist/renderer/assets/workbenchSettings-CTNBpTft.js +0 -8
- package/dist/simulator/assets/simulator-CVOFTpSj.js +0 -9
package/README.md
CHANGED
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
基于 Electron 的小程序开发者工具。提供模拟器、Chrome DevTools 面板、WXML/AppData/Storage 面板、编译配置等功能。
|
|
4
4
|
|
|
5
|
-
下游 host 通过 `
|
|
5
|
+
下游 host 通过 `launch(config)` 集成并定制 devtools(零配置直接 `launch()`,配置驱动 `launch({...})`;见下方「两种用法」)。两种用法都经领域中立的 [`@dimina-kit/electron-deck`](../electron-deck) 框架编排——框架接管 Electron 进程生命周期(whenReady / will-quit)、wire/trust 原语,devtools 作为 `RuntimeBackend` 注入完整运行时(见 [`framework-extraction-v2.md`](../electron-deck/docs/framework-extraction-v2.md))。
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 两种用法
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
单一入口 `launch(config?)`——不传配置即零配置直接运行,传 `WorkbenchAppConfig` 即配置驱动定制。
|
|
12
|
+
|
|
13
|
+
| 用法 | 调用 | 控制力 | 适合场景 |
|
|
12
14
|
| ------------ | ---------------------- | --------------------- | -------------- |
|
|
13
15
|
| **零配置** | `launch()` | 无 | 直接运行 |
|
|
14
|
-
| **配置驱动** | `
|
|
16
|
+
| **配置驱动** | `launch({...})` | 配置 Provider + 扩展点 | 品牌化、深度定制 |
|
|
15
17
|
|
|
16
18
|
### 零配置
|
|
17
19
|
|
|
@@ -22,17 +24,17 @@ launch()
|
|
|
22
24
|
|
|
23
25
|
### 配置驱动
|
|
24
26
|
|
|
25
|
-
扩展点分两类:**配置 Provider**(构造期、一对一,替换某个内置能力)走 `
|
|
27
|
+
扩展点分两类:**配置 Provider**(构造期、一对一,替换某个内置能力)走 `launch` 配置字段;**Contribution**(`onSetup` 期、一对多,添加多个同类条目)走 `onSetup(instance)` 上的 typed 方法。所有 Contribution 都 per-context,随 context 自动销毁。
|
|
26
28
|
|
|
27
29
|
```typescript
|
|
28
30
|
import { suppressEpipe } from '@dimina-kit/devtools/bootstrap'
|
|
29
|
-
import {
|
|
31
|
+
import { launch } from '@dimina-kit/devtools'
|
|
30
32
|
import { rendererDir } from '@dimina-kit/devtools/paths'
|
|
31
33
|
import { Menu } from 'electron'
|
|
32
34
|
|
|
33
35
|
suppressEpipe()
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
launch({
|
|
36
38
|
// ── 配置 Provider(构造期,一对一)──
|
|
37
39
|
appName: '我的开发工具',
|
|
38
40
|
adapter: myAdapter,
|
|
@@ -69,7 +71,7 @@ createWorkbenchApp({
|
|
|
69
71
|
onBeforeClose: ({ context }) => {
|
|
70
72
|
// 窗口关闭前的自定义清理;session 关闭和 view 销毁由框架自动处理
|
|
71
73
|
},
|
|
72
|
-
})
|
|
74
|
+
})
|
|
73
75
|
```
|
|
74
76
|
|
|
75
77
|
> Contribution 注册物全部自动进 `context.registry`,host 无需手写 cleanup。devtools 内部仍用 `WorkbenchModule` 组织内置 IPC 模块,但这是实现细节,不再作为对外接入方式导出。
|
|
@@ -88,7 +90,7 @@ src/
|
|
|
88
90
|
api.ts # 公共 API 聚合入口(package main)
|
|
89
91
|
app/
|
|
90
92
|
launch.ts # 零配置入口
|
|
91
|
-
app.ts #
|
|
93
|
+
app.ts # createDevtoolsRuntime 装配体 + runDevtoolsBootstrap
|
|
92
94
|
bootstrap.ts # suppressEpipe / setupCdpPort
|
|
93
95
|
lifecycle.ts # Electron app 生命周期注册
|
|
94
96
|
ipc/ # 只做 handler 注册,不写业务
|
|
@@ -118,8 +120,7 @@ src/
|
|
|
118
120
|
default-adapter.ts # 默认 CompilationAdapter
|
|
119
121
|
menu/ # 应用菜单
|
|
120
122
|
utils/
|
|
121
|
-
paths.ts # rendererDir / defaultPreloadPath / simulatorDir
|
|
122
|
-
disposable.ts # DisposableRegistry + AggregateError 聚合
|
|
123
|
+
paths.ts # rendererDir / defaultPreloadPath / simulatorDir / cjsSiblingPreloadPath
|
|
123
124
|
ipc-registry.ts # ipcMain.handle 包装 + SenderPolicy 闸门
|
|
124
125
|
sender-policy.ts # sender webContents id 白名单
|
|
125
126
|
ipc-schema.ts # zod schema 校验工具
|
|
@@ -131,7 +132,7 @@ src/
|
|
|
131
132
|
preload/ # 按注入目标分
|
|
132
133
|
windows/ # contextBridge 类型 preload
|
|
133
134
|
main.ts # workbench 三窗口 preload,仅暴露 window.devtools.ipc
|
|
134
|
-
simulator.ts # simulator
|
|
135
|
+
simulator.ts # simulator(WCV)frame preload(native-host 跑其 .cjs sibling)
|
|
135
136
|
shared/ # preload 之间共享
|
|
136
137
|
api-compat.ts # setupApiCompatHook
|
|
137
138
|
constants.ts
|
|
@@ -140,7 +141,6 @@ src/
|
|
|
140
141
|
console.ts # 控制台拦截
|
|
141
142
|
app-data.ts # Worker setData 拦截 → createAppDataSource
|
|
142
143
|
wxml.ts # Vue 组件树提取 → createWxmlSource
|
|
143
|
-
disposable.ts # instrumentation 共用的清理工具
|
|
144
144
|
miniapp-snapshot/ # 面板数据统一快照框架(docs/miniapp-snapshot.md)
|
|
145
145
|
types.ts # MiniappSnapshotSource / SnapshotEnvelope
|
|
146
146
|
host.ts # createMiniappSnapshotHost → push/pull/__miniappSnapshot
|
|
@@ -181,21 +181,21 @@ src/
|
|
|
181
181
|
|
|
182
182
|
### WorkbenchConfig
|
|
183
183
|
|
|
184
|
-
`launch()`
|
|
184
|
+
`launch()` 接受的基础字段(`WorkbenchConfig`):
|
|
185
185
|
|
|
186
186
|
| 字段 | 类型 | 默认值 | 说明 |
|
|
187
187
|
| ------------------ | -------------------- | ------------------- | ---------------------------------- |
|
|
188
188
|
| `appName` | `string` | `'Dimina DevTools'` | 窗口标题 |
|
|
189
189
|
| `adapter` | `CompilationAdapter` | 内置 | 项目编译适配器 |
|
|
190
190
|
| `panels` | `BuiltinPanelId[]` | 全部四个 | 显示哪些内置面板 |
|
|
191
|
-
| `preloadPath` | `string` | 内置 |
|
|
191
|
+
| `preloadPath` | `string` | 内置 | 统一的 host 级 preload 入口;native-host simulator(WCV)自动跑其 `.cjs` sibling(`cjsSiblingPreloadPath`) |
|
|
192
192
|
| `apiNamespaces` | `string[]` | `[]` | 自定义 API 命名空间(如 `['qd']`) |
|
|
193
193
|
| `brandingProvider` | `() => { appName }` | — | 品牌信息 provider |
|
|
194
194
|
| `headerHeight` | `number` | `40` | 头部栏高度(px),同步下发 main + renderer |
|
|
195
195
|
|
|
196
196
|
### WorkbenchAppConfig(扩展 WorkbenchConfig)
|
|
197
197
|
|
|
198
|
-
`
|
|
198
|
+
`launch()` 完整接受的 `WorkbenchAppConfig` 额外支持:
|
|
199
199
|
|
|
200
200
|
| 字段 | 类型 | 默认值 | 说明 |
|
|
201
201
|
| --------------- | ------------------------------------------- | ----------- | ------------------------------------------------- |
|
|
@@ -232,7 +232,7 @@ src/
|
|
|
232
232
|
|
|
233
233
|
## Embedding & Extending the Project Panel
|
|
234
234
|
|
|
235
|
-
宿主(如 qdmp)通过 `
|
|
235
|
+
宿主(如 qdmp)通过 `launch({...})` 嵌入 devtools 时,可对项目面板做三个正交扩展:
|
|
236
236
|
|
|
237
237
|
| 扩展点 | 用途 |
|
|
238
238
|
| --- | --- |
|
|
@@ -251,7 +251,7 @@ src/
|
|
|
251
251
|
### 最小示例
|
|
252
252
|
|
|
253
253
|
```typescript
|
|
254
|
-
import {
|
|
254
|
+
import { launch } from '@dimina-kit/devtools'
|
|
255
255
|
import type { ProjectsProvider, ProjectTemplate } from '@dimina-kit/devtools/projects-provider'
|
|
256
256
|
import { BrowserWindow } from 'electron'
|
|
257
257
|
|
|
@@ -293,7 +293,7 @@ const qdmpBlank: ProjectTemplate = {
|
|
|
293
293
|
source: { type: 'directory', path: '/abs/path/to/template' },
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
-
|
|
296
|
+
launch({
|
|
297
297
|
projectsProvider: provider,
|
|
298
298
|
projectTemplates: [qdmpBlank],
|
|
299
299
|
builtinTemplates: ['taro-todo'], // 只保留 taro-todo,干掉默认 blank
|
|
@@ -312,7 +312,7 @@ createWorkbenchApp({
|
|
|
312
312
|
win.on('closed', () => resolve(null))
|
|
313
313
|
})
|
|
314
314
|
},
|
|
315
|
-
})
|
|
315
|
+
})
|
|
316
316
|
```
|
|
317
317
|
|
|
318
318
|
### `customCreateProjectDialog` 返回值
|
|
@@ -376,13 +376,13 @@ const myAdapter: CompilationAdapter = {
|
|
|
376
376
|
|
|
377
377
|
## Preload Instrumentation
|
|
378
378
|
|
|
379
|
-
模拟器
|
|
379
|
+
模拟器 frame 注入 preload 脚本,在其全局上安装两类东西:**桥接**(把数据通道暴露到运行时全局)+ **instrumentation**(监听运行时事件并写入桥接)。内置 preload 见 `src/preload/windows/simulator.ts`(native-host simulator 跑其 `.cjs` sibling)。
|
|
380
380
|
|
|
381
381
|
### 必装:桥接
|
|
382
382
|
|
|
383
383
|
| 函数 | 作用 | 不装会怎样 |
|
|
384
384
|
| --- | --- | --- |
|
|
385
|
-
| `installSimulatorBridge()` | 暴露 `window.__simulatorData`,承载 `highlightElement` / `unhighlightElement` / `getAppdata` / `getWxml` / `getStorageSnapshot` 等只读 API(供主进程 `executeJavaScript` 拉取) | 元素选区 overlay 不显示;automation `Page.getData` 返回空对象;MCP `simulator_get_overview` 在 hints 中追加 `simulator bridge not ready (window.__simulatorData missing)
|
|
385
|
+
| `installSimulatorBridge()` | 暴露 `window.__simulatorData`,承载 `highlightElement` / `unhighlightElement` / `getAppdata` / `getWxml` / `getStorageSnapshot` 等只读 API(供主进程 `executeJavaScript` 拉取) | 元素选区 overlay 不显示;automation `Page.getData` 返回空对象;MCP `simulator_get_overview` 在 hints 中追加 `simulator bridge not ready (window.__simulatorData missing)`。注:三个右侧面板的数据都另有来源(Storage 走主进程 CDP;AppData/WXML 走主进程 `SimulatorAppDataChannel` / `SimulatorWxmlChannel`;Console 走 render-host/service-host guest preload → 主进程 `consoleLog`),均不依赖 `window.__simulatorData`,不受影响 |
|
|
386
386
|
| `installCustomApisBridge()` | 暴露 `window.__diminaCustomApis`,承载 `list` / `invoke`,让模拟器侧把主进程注册的 API 代理回小程序 runtime | `registerSimulatorApi` 注册的业务 API 在小程序里调用全部 no-op(参见下方 "Simulator 自定义 API") |
|
|
387
387
|
| `setupApiCompatHook()` | 兼容上游 API 名称变更 | 部分 API 调用兼容性问题 |
|
|
388
388
|
|
|
@@ -390,14 +390,16 @@ const myAdapter: CompilationAdapter = {
|
|
|
390
390
|
|
|
391
391
|
### 按需:instrumentation
|
|
392
392
|
|
|
393
|
-
|
|
393
|
+
这些探针是**可组合的 preload API**:`@dimina-kit/devtools/preload` 把它们导出,供下游自己拼装自定义 preload。下表是各探针自身的契约(捕获什么 + 推到哪个通道)。
|
|
394
394
|
|
|
395
395
|
| 探针 | 捕获内容 | 数据通道 |
|
|
396
396
|
| --- | --- | --- |
|
|
397
|
-
| `installConsoleInstrumentation()` | `console.*`、`window.onerror`、未捕获 rejection | `sendToHost
|
|
397
|
+
| `installConsoleInstrumentation()` | `console.*`、`window.onerror`、未捕获 rejection | `sendToHost`(guest → embedder) |
|
|
398
398
|
| `createAppDataSource()` | Worker `ub` 消息、setData / page init | miniappSnapshot 框架(`miniapp-snapshot:push`) |
|
|
399
399
|
| `createWxmlSource()` | Vue 组件树提取、MutationObserver 自动更新 | miniappSnapshot 框架(`miniapp-snapshot:push`) |
|
|
400
400
|
|
|
401
|
+
> ⚠️ **内置 native-host 运行时并不靠这条 `miniapp-snapshot:push` 通道喂面板**:右侧 WXML / AppData 面板的数据由主进程服务(`SimulatorWxmlChannel` / `SimulatorAppDataChannel`)直接供给(见下方「数据流」)。内置 simulator preload 仍调用 `createAppDataSource().start()`,但只为副作用(填 `window.__simulatorData.getAppdata()` 供 automation / MCP 读取),并**不**把它 wrap 进 `MiniappSnapshotHost`——所以 `miniapp-snapshot:push` 在内置路径下无消费者。该框架契约(含 `createWxmlSource`)仍为外部/组合式 preload 保留导出(详见 `docs/miniapp-snapshot.md`)。
|
|
402
|
+
|
|
401
403
|
> Storage 面板的数据由主进程通过 CDP `DOMStorage` 域抓取(`src/main/services/simulator-storage`),**不需要 preload 侧 instrumentation**。
|
|
402
404
|
|
|
403
405
|
各面板的数据流详见下方 "数据流" 章节。
|
|
@@ -463,7 +465,7 @@ launch({ preloadPath: '/absolute/path/to/my-preload.js' })
|
|
|
463
465
|
| `wx.getStorage(...)` 覆盖内置 | `'getStorage'`(小心:这会**屏蔽** dimina 容器的实现) |
|
|
464
466
|
|
|
465
467
|
```typescript
|
|
466
|
-
|
|
468
|
+
launch({
|
|
467
469
|
onSetup: (instance) => {
|
|
468
470
|
// 提供 wx.login 的实现(dimina 容器默认未实现,注册后才能用)
|
|
469
471
|
const dispose = instance.registerSimulatorApi('login', async ({ success }) => {
|
|
@@ -495,13 +497,12 @@ createWorkbenchApp({
|
|
|
495
497
|
`@dimina-kit/devtools` 的公共入口。`api.ts`(根入口)聚合了所有公共 API,优先从根入口导入。
|
|
496
498
|
|
|
497
499
|
```
|
|
498
|
-
@dimina-kit/devtools launch,
|
|
500
|
+
@dimina-kit/devtools launch, buildDefaultMenu,
|
|
499
501
|
openSettingsWindow, suppressEpipe, setupCdpPort,
|
|
500
502
|
createWorkbenchContext, createMainWindow,
|
|
501
503
|
createViewManager, IpcRegistry,
|
|
502
504
|
UpdateManager, createGitHubReleaseChecker, ...
|
|
503
505
|
@dimina-kit/devtools/launch launch(config?), buildDefaultMenu, openSettingsWindow
|
|
504
|
-
@dimina-kit/devtools/app createWorkbenchApp(config?)
|
|
505
506
|
@dimina-kit/devtools/types TypeScript 类型定义
|
|
506
507
|
@dimina-kit/devtools/bootstrap suppressEpipe(), setupCdpPort()
|
|
507
508
|
@dimina-kit/devtools/context createWorkbenchContext(opts),
|
|
@@ -574,21 +575,23 @@ interface WorkbenchContext {
|
|
|
574
575
|
flowchart TB
|
|
575
576
|
subgraph BW["BrowserWindow"]
|
|
576
577
|
direction TB
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
578
|
+
Z4["⑤ popoverView [顶层]<br/>entries/popover/index.html<br/>全屏透明遮罩 + 编译配置表单"]
|
|
579
|
+
Z3["④ settingsView<br/>entries/settings/index.html<br/>固定宽度 320px,右侧对齐"]
|
|
580
|
+
Z2["② simulatorView<br/>Chrome DevTools 面板(绑到活跃 render-host guest / service host)"]
|
|
581
|
+
Z1["① nativeSimulatorView : WebContentsView<br/>模拟器主进程顶层 WCV(跑 simulator/main.tsx 的 DeviceShell)<br/>partition=persist:simulator,托管每页 render-host <webview> guest"]
|
|
582
|
+
subgraph Z0["⓪ mainWindow [底层] entries/main/index.html"]
|
|
581
583
|
direction LR
|
|
582
|
-
SIM["
|
|
584
|
+
SIM["<SimulatorPanel> 占位 / 锚点<br/>(仅 nativeSimulatorView 的 bounds target,无 webview)"]
|
|
583
585
|
PNL["WXML / AppData / Storage<br/>React 中直接渲染"]
|
|
584
586
|
end
|
|
587
|
+
Z4 -. 覆盖 .-> Z3
|
|
585
588
|
Z3 -. 覆盖 .-> Z2
|
|
586
589
|
Z2 -. 覆盖 .-> Z1
|
|
587
590
|
Z1 -. 覆盖 .-> Z0
|
|
588
591
|
end
|
|
589
592
|
```
|
|
590
593
|
|
|
591
|
-
层级由 `addChildView()` 调用顺序决定,后添加的 View
|
|
594
|
+
层级由 `addChildView()` 调用顺序决定,后添加的 View 在上层。overlay 栈里有**两个不同的** simulator 相关 view:`nativeSimulatorView`(模拟器本体,主进程顶层 `WebContentsView`,跑 `simulator/main.tsx` 的 DeviceShell,内部托管每页 render-host `<webview>` guest)和 `simulatorView`(Chrome DevTools 面板本身,绑到活跃 render-host guest / service host)。模拟器**不是** mainWindow renderer 里的 `<webview>`——主 renderer 的 `<SimulatorPanel>` 只画一个空占位 div 当 `nativeSimulatorView` 的 bounds 锚点(手机框 / 圆角 / 刘海 / 页面 `<webview>` 都在那个 WCV 内部的 DeviceShell 里)。内置面板(WXML / AppData / Storage)不使用独立 WebContentsView,直接在主窗口 React 中渲染;只有 nativeSimulator / Chrome DevTools / settings / popover 需要 View 覆盖。
|
|
592
595
|
|
|
593
596
|
### 数据流
|
|
594
597
|
|
|
@@ -596,10 +599,10 @@ flowchart TB
|
|
|
596
599
|
|
|
597
600
|
| 面板 / 场景 | 模式 | 路径 |
|
|
598
601
|
| --- | --- | --- |
|
|
599
|
-
| Console | 推送 |
|
|
600
|
-
| AppData / WXML 树 | 推送 + 拉取 |
|
|
602
|
+
| Console | 推送 | render-host / service-host preload monkeypatch `console.*` → 主进程 `consoleLog` 容器消息 → bridge-router → `ctx.guestConsole.emit` → `services/console-forward`。render(视图)层条目以 `[视图]` 前缀注入挂在 service host 上的 Chrome DevTools,service 层本就原生显示在同一面板;automation WS 等外部订阅者也从这里 fan-out |
|
|
603
|
+
| AppData / WXML 树 | 推送 + 拉取 | 主进程服务,镜像 Storage 的 main→renderer 契约:WXML 由 `services/simulator-wxml` 经 render-inspect 从活跃 render-host `<webview>` guest 拉树(`SimulatorWxmlChannel.GetSnapshot`),render 活动时推 `SimulatorWxmlChannel.Event`;AppData 由 `services/simulator-appdata` 在 bridge-router 里 tap service→render 的 setData 流,推 `SimulatorAppDataChannel.Event` |
|
|
601
604
|
| Storage | 拉取 + 推送 | renderer `ipcInvoke(SimulatorStorageChannel.GetSnapshot)` → 主进程 CDP `DOMStorage` 域;变更事件由主进程通过 `SimulatorStorageChannel.Event` 推回 renderer |
|
|
602
|
-
| 元素选区 / `Page.getData` / MCP overview | 拉取 | 主进程 `webContents.executeJavaScript(...)` 或 `Runtime.evaluate(...)` 读 `window.__simulatorData.*`(由 `installSimulatorBridge`
|
|
605
|
+
| 元素选区 / `Page.getData` / MCP overview | 拉取 | 主进程 `webContents.executeJavaScript(...)` 或 `Runtime.evaluate(...)` 读 `window.__simulatorData.*`(由 `installSimulatorBridge` 暴露) |
|
|
603
606
|
|
|
604
607
|
> `src/main/ipc/panels.ts` 暴露 `panel:eval` handler 供外部 host 自定义面板复用,内置 renderer 不消费它。
|
|
605
608
|
|
|
@@ -617,14 +620,14 @@ Electron 对 `chrome.devtools.panels.create()` 的支持**长期不稳定**。
|
|
|
617
620
|
|
|
618
621
|
**影响范围**:从 Electron 7 到 39 均有报告([#23662](https://github.com/electron/electron/issues/23662)、[#41613](https://github.com/electron/electron/issues/41613)、[#48705](https://github.com/electron/electron/issues/48705)),非特定版本 bug,而是系统性实现缺陷。官方文档声称完全支持,但实际因竞态条件和实现不完整导致面板无法可靠渲染。Electron 团队无修复计划。
|
|
619
622
|
|
|
620
|
-
**当前方案**:内置面板(WXML / AppData / Storage)直接在主窗口 React
|
|
623
|
+
**当前方案**:内置面板(WXML / AppData / Storage)直接在主窗口 React 中渲染,数据由主进程服务直接供给——WXML / AppData 走 `SimulatorWxmlChannel` / `SimulatorAppDataChannel`(main → renderer 的 seed `GetSnapshot` + push `Event`),Storage 走 CDP `DOMStorage` 域(详见上方「数据流」);Chrome DevTools 仍作为独立 `WebContentsView` 通过 `setDevToolsWebContents()` 挂载。面板切换由 renderer toolbar 的 tab 栏控制,主进程负责 nativeSimulator/settings/popover View 的创建、定位和显隐。详见 `src/main/ipc/panels.ts` 和 `src/main/ipc/simulator.ts`。
|
|
621
624
|
|
|
622
625
|
---
|
|
623
626
|
|
|
624
627
|
## 调试
|
|
625
628
|
|
|
626
629
|
- **Cmd+Shift+I** / **Ctrl+Shift+I** — 打开 mainWindow 的 Electron DevTools(调试 React 渲染层)
|
|
627
|
-
-
|
|
630
|
+
- 模拟器活跃 render-host `<webview>` guest 的 Chrome DevTools 在编译完成、`dom-ready` 后自动打开
|
|
628
631
|
- 开发模式(`!app.isPackaged`)下 mainWindow DevTools 自动以 detach 模式打开
|
|
629
632
|
|
|
630
633
|
---
|
|
@@ -648,7 +651,7 @@ pnpm test # 运行测试
|
|
|
648
651
|
本工具仅用于本地开发调试。当前的安全配置:
|
|
649
652
|
|
|
650
653
|
- **Workbench 窗口**(main / settings / popover overlay)均启用 `contextIsolation` 并禁用 `nodeIntegration`;renderer 通过 main preload 经 `contextBridge` 拿到 `window.devtools.ipc`,每个 IPC handler 经 sender whitelist 校验调用方
|
|
651
|
-
- **Simulator
|
|
654
|
+
- **Simulator 本体** 是主进程顶层 `WebContentsView`(`nativeSimulatorView`,`partition='persist:simulator'`、`nodeIntegration=false`),其 preload 由 `webPreferences.preload = cjsSiblingPreloadPath(ctx.preloadPath)` 在创建时(`attachNativeSimulator`)固定;session 层的 `configureSimulatorSession()` 只设 Referer/CORS 头,不注册 frame preload。**小程序的每页代码** 运行在该 WCV 内部 DeviceShell 托管的 render-host `<webview>` guest 里(同 `persist:simulator` partition、`nodeIntegration=false`),承载逐页沙箱;guest 的 contextIsolation/sandbox 由主进程 `will-attach-webview` 钉死,渲染进程无法替换
|
|
652
655
|
- **renderer 入口** 启用了保守 CSP;`will-navigate` / `setWindowOpenHandler` 屏蔽外部跳转
|
|
653
656
|
|
|
654
657
|
仍然不要在 devtools 窗口中加载不受信任的远程内容;本工具不打算在非本地环境部署。
|
|
@@ -657,6 +660,6 @@ pnpm test # 运行测试
|
|
|
657
660
|
|
|
658
661
|
内置的 MCP server 默认关闭,由 `startMcpServer` 入口显式启动,或通过 workbench 设置中的 `mcp.enabled` 开启。开启后会在本机监听 SSE 端点,向任何可以连接到该端点的 MCP 客户端暴露一组工具,能力包括:读取 DOM 结构、截屏、拉取网络日志、触发导航等。
|
|
659
662
|
|
|
660
|
-
`workbench_evaluate` 已从 MCP 工具集中移除,workbench 只暴露只读诊断工具(截屏、console 日志、DOM、网络日志等)。`simulator_evaluate`
|
|
663
|
+
`workbench_evaluate` 已从 MCP 工具集中移除,workbench 只暴露只读诊断工具(截屏、console 日志、DOM、网络日志等)。`simulator_evaluate` 仍然保留,但小程序页面跑在 render-host `<webview>` guest 里(`nodeIntegration=false`),其 `evaluate` 仅在页面 JS 上下文执行,不具备 Node API 访问能力。
|
|
661
664
|
|
|
662
665
|
仅在连接到可信的本机 MCP 客户端或被信任的 AI 工具时启用该功能;不要在公共 WiFi、共享机器或存在远程 SSH 端口转发的场景下开启,以免监听端口被非预期的客户端访问。
|
package/dist/main/api.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { launch, buildDefaultMenu, openSettingsWindow } from './app/launch.js';
|
|
2
|
-
export { createWorkbenchApp } from './app/app.js';
|
|
3
2
|
export type { WorkbenchAppInstance } from './app/app.js';
|
|
4
3
|
export { suppressEpipe, setupCdpPort } from './app/bootstrap.js';
|
|
5
4
|
export { createWorkbenchContext, hasBuiltinPanel, getDefaultTab } from './services/workbench-context.js';
|
package/dist/main/api.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// ── Primary API ──────────────────────────────────────────────────────────
|
|
2
|
+
// `launch` boots through the @dimina-kit/electron-deck framework
|
|
3
|
+
// (process-lifecycle gate + wire/trust) with the devtools RuntimeBackend
|
|
4
|
+
// supplying the full runtime. The instance builder (`createDevtoolsRuntime`) is
|
|
5
|
+
// internal — hosts integrate via `launch(config)`; the `WorkbenchAppInstance`
|
|
6
|
+
// type (what `onSetup(instance)` receives) is re-exported for typing host callbacks.
|
|
2
7
|
export { launch, buildDefaultMenu, openSettingsWindow } from './app/launch.js';
|
|
3
|
-
export { createWorkbenchApp } from './app/app.js';
|
|
4
8
|
// ── Bootstrap utilities ──────────────────────────────────────────────────
|
|
5
9
|
export { suppressEpipe, setupCdpPort } from './app/bootstrap.js';
|
|
6
10
|
// ── Context & views (for module-assembly consumers) ──────────────────────
|
package/dist/main/app/app.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { SimulatorApiHandler } from '../services/simulator/custom-apis.js';
|
|
|
4
4
|
import { type WorkbenchContext } from '../services/workbench-context.js';
|
|
5
5
|
import { type AutomationServer } from '../services/automation/index.js';
|
|
6
6
|
import { UpdateManager } from '../services/update/index.js';
|
|
7
|
-
import { type Disposable } from '
|
|
7
|
+
import { type Disposable } from '@dimina-kit/electron-deck/main';
|
|
8
8
|
import { IpcRegistry } from '../utils/ipc-registry.js';
|
|
9
9
|
export interface WorkbenchAppInstance {
|
|
10
10
|
mainWindow: BrowserWindow;
|
|
@@ -23,8 +23,18 @@ export interface WorkbenchAppInstance {
|
|
|
23
23
|
updateManager?: UpdateManager;
|
|
24
24
|
dispose: () => Promise<void>;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Pre-ready bootstrap side effects (app name, CDP port, CSP suppression,
|
|
28
|
+
* privileged scheme). MUST run before `app.whenReady()`. Extracted so the `RuntimeBackend.beforeReady` hook (which launch()
|
|
29
|
+
* routes through) runs it before the framework awaits app.whenReady().
|
|
30
|
+
*/
|
|
31
|
+
export declare function runDevtoolsBootstrap(config?: WorkbenchAppConfig): void;
|
|
32
|
+
/**
|
|
33
|
+
* Domain runtime assembly — the post-whenReady body. Builds the main window +
|
|
34
|
+
* context, registers IPC modules, stands up simulator/storage/CDP/native-host
|
|
35
|
+
* services, and returns the fat {@link WorkbenchAppInstance}. Extracted so the
|
|
36
|
+
* v2 `RuntimeBackend.assemble` reuses the exact same body (parity by shared
|
|
37
|
+
* implementation, not behavioural re-creation).
|
|
38
|
+
*/
|
|
39
|
+
export declare function createDevtoolsRuntime(config?: WorkbenchAppConfig): Promise<WorkbenchAppInstance>;
|
|
30
40
|
//# sourceMappingURL=app.d.ts.map
|