@dimina-kit/devtools 0.4.0-dev.20260828161241 → 0.4.0-dev.20260907055341
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 +52 -729
- package/dist/main/app/app.d.ts +27 -7
- package/dist/main/app/app.js +285 -681
- package/dist/main/app/editor-view.d.ts +21 -0
- package/dist/main/app/editor-view.js +71 -0
- package/dist/main/app/global-mirrors.d.ts +23 -0
- package/dist/main/app/global-mirrors.js +37 -0
- package/dist/main/app/host-sidebar-default.d.ts +19 -0
- package/dist/main/app/host-sidebar-default.js +44 -0
- package/dist/main/app/menu-setup.d.ts +13 -0
- package/dist/main/app/menu-setup.js +49 -0
- package/dist/main/app/open-project-ipc.d.ts +13 -0
- package/dist/main/app/open-project-ipc.js +21 -0
- package/dist/main/app/project-list-surface.d.ts +31 -0
- package/dist/main/app/project-list-surface.js +20 -0
- package/dist/main/app/project-window.d.ts +36 -0
- package/dist/main/app/project-window.js +93 -0
- package/dist/main/app/servers.d.ts +17 -0
- package/dist/main/app/servers.js +60 -0
- package/dist/main/app/ui-extension-targets.d.ts +42 -0
- package/dist/main/app/ui-extension-targets.js +101 -0
- package/dist/main/app/window-close-reveal.harness.d.ts +34 -0
- package/dist/main/app/window-close-reveal.harness.js +65 -0
- package/dist/main/app/window-events.d.ts +15 -0
- package/dist/main/app/window-events.js +45 -0
- package/dist/main/app/window-runtime-services.d.ts +41 -0
- package/dist/main/app/window-runtime-services.js +178 -0
- package/dist/main/app/workbench-modules.d.ts +24 -0
- package/dist/main/app/workbench-modules.js +51 -0
- package/dist/main/app/workbench-window.d.ts +85 -0
- package/dist/main/app/workbench-window.js +310 -0
- package/dist/main/index.bundle.js +10669 -9096
- package/dist/main/ipc/app.d.ts +4 -1
- package/dist/main/ipc/app.js +4 -3
- package/dist/main/ipc/device-picker.d.ts +16 -0
- package/dist/main/ipc/device-picker.js +27 -0
- package/dist/main/ipc/index.d.ts +1 -0
- package/dist/main/ipc/index.js +1 -0
- package/dist/main/ipc/internal-devtools.d.ts +2 -1
- package/dist/main/ipc/internal-devtools.js +4 -3
- package/dist/main/ipc/popover.d.ts +4 -1
- package/dist/main/ipc/popover.js +25 -9
- package/dist/main/ipc/project-create.d.ts +2 -1
- package/dist/main/ipc/project-create.js +6 -5
- package/dist/main/ipc/project-fs.d.ts +3 -1
- package/dist/main/ipc/project-fs.js +17 -17
- package/dist/main/ipc/projects.d.ts +3 -3
- package/dist/main/ipc/projects.js +13 -12
- package/dist/main/ipc/session.d.ts +4 -1
- package/dist/main/ipc/session.js +16 -11
- package/dist/main/ipc/settings.d.ts +4 -1
- package/dist/main/ipc/settings.js +12 -19
- package/dist/main/ipc/simulator-module.d.ts +5 -0
- package/dist/main/ipc/simulator-module.js +9 -5
- package/dist/main/ipc/simulator.d.ts +4 -1
- package/dist/main/ipc/simulator.js +12 -18
- package/dist/main/ipc/tooltip.d.ts +2 -1
- package/dist/main/ipc/tooltip.js +8 -7
- package/dist/main/ipc/views.d.ts +4 -1
- package/dist/main/ipc/views.js +20 -9
- package/dist/main/runtime/devtools-backend-before-quit.harness.d.ts +2 -20
- package/dist/main/runtime/devtools-backend-before-quit.harness.js +14 -283
- package/dist/main/runtime/devtools-backend.js +14 -3
- package/dist/main/runtime/devtools-runtime-mock.harness.d.ts +21 -0
- package/dist/main/runtime/devtools-runtime-mock.harness.js +313 -0
- package/dist/main/services/app-services.d.ts +62 -0
- package/dist/main/services/app-services.js +64 -0
- package/dist/main/services/automation/connection-target.d.ts +36 -0
- package/dist/main/services/automation/connection-target.js +29 -0
- package/dist/main/services/automation/console-bridge.d.ts +28 -0
- package/dist/main/services/automation/console-bridge.js +91 -0
- package/dist/main/services/automation/handlers/app.js +4 -4
- package/dist/main/services/automation/handlers/element.js +55 -21
- package/dist/main/services/automation/index.d.ts +12 -1
- package/dist/main/services/automation/index.js +54 -133
- package/dist/main/services/default-adapter.js +1 -1
- package/dist/main/services/fs-bridge-protocol.d.ts +61 -0
- package/dist/main/services/fs-bridge-protocol.js +34 -0
- package/dist/main/services/fs-watch-sse.d.ts +8 -1
- package/dist/main/services/fs-watch-sse.js +19 -5
- package/dist/main/services/mcp/connection-owner.d.ts +38 -0
- package/dist/main/services/mcp/connection-owner.js +79 -0
- package/dist/main/services/mcp/index.d.ts +3 -1
- package/dist/main/services/mcp/index.js +4 -3
- package/dist/main/services/mcp/opened-project.d.ts +88 -0
- package/dist/main/services/mcp/opened-project.js +60 -0
- package/dist/main/services/mcp/target-manager.d.ts +71 -23
- package/dist/main/services/mcp/target-manager.js +269 -142
- package/dist/main/services/mcp/target-selection.d.ts +47 -0
- package/dist/main/services/mcp/target-selection.js +71 -0
- package/dist/main/services/mcp/tools/context-tools.js +20 -5
- package/dist/main/services/mcp/tools/project-tools.d.ts +29 -6
- package/dist/main/services/mcp/tools/project-tools.js +37 -25
- package/dist/main/services/module.d.ts +13 -5
- package/dist/main/services/notifications/renderer-notifier.d.ts +28 -4
- package/dist/main/services/notifications/renderer-notifier.js +15 -3
- package/dist/main/services/projects/local-provider.js +2 -0
- package/dist/main/services/projects/project-repository.d.ts +31 -1
- package/dist/main/services/projects/project-repository.js +144 -20
- package/dist/main/services/projects/types.d.ts +31 -8
- package/dist/main/services/safe-area/index.d.ts +19 -5
- package/dist/main/services/safe-area/index.js +38 -13
- package/dist/main/services/simulator/ui-extensions.d.ts +8 -0
- package/dist/main/services/simulator/ui-extensions.js +16 -6
- package/dist/main/services/simulator-storage/index.d.ts +12 -1
- package/dist/main/services/simulator-storage/index.js +22 -7
- package/dist/main/services/simulator-storage/window-scope.d.ts +20 -0
- package/dist/main/services/simulator-storage/window-scope.js +20 -0
- package/dist/main/services/views/host-slot-port-channel.d.ts +20 -3
- package/dist/main/services/views/host-slot-port-channel.js +33 -5
- package/dist/main/services/views/managed-web-contents-view.js +21 -1
- package/dist/main/services/views/native-simulator-view.js +13 -16
- package/dist/main/services/views/overlay-panels-view.d.ts +13 -0
- package/dist/main/services/views/overlay-panels-view.js +31 -0
- package/dist/main/services/views/view-manager.d.ts +1 -1
- package/dist/main/services/views/view-manager.js +3 -0
- package/dist/main/services/window-contexts/context-router.d.ts +36 -0
- package/dist/main/services/window-contexts/context-router.js +55 -0
- package/dist/main/services/workbench-coi-host.d.ts +52 -0
- package/dist/main/services/workbench-coi-host.js +227 -0
- package/dist/main/services/workbench-coi-server.js +75 -133
- package/dist/main/services/workbench-coi-shutdown.d.ts +40 -0
- package/dist/main/services/workbench-coi-shutdown.js +69 -0
- package/dist/main/services/workbench-coi-static.d.ts +23 -0
- package/dist/main/services/workbench-coi-static.js +87 -0
- package/dist/main/services/workbench-context.d.ts +27 -3
- package/dist/main/services/workbench-context.js +10 -5
- package/dist/main/services/workspace/compile-mode-adapter.d.ts +18 -0
- package/dist/main/services/workspace/compile-mode-adapter.js +57 -0
- package/dist/main/services/workspace/compile-mode-store.d.ts +25 -0
- package/dist/main/services/workspace/compile-mode-store.js +71 -0
- package/dist/main/services/workspace/workspace-compile-modes.d.ts +59 -0
- package/dist/main/services/workspace/workspace-compile-modes.js +93 -0
- package/dist/main/services/workspace/workspace-referer.d.ts +17 -0
- package/dist/main/services/workspace/workspace-referer.js +26 -0
- package/dist/main/services/workspace/workspace-service.d.ts +4 -0
- package/dist/main/services/workspace/workspace-service.js +51 -84
- package/dist/main/services/workspace/workspace-thumbnails.d.ts +22 -0
- package/dist/main/services/workspace/workspace-thumbnails.js +67 -0
- package/dist/main/utils/ipc-context-source.d.ts +40 -0
- package/dist/main/utils/ipc-context-source.js +23 -0
- package/dist/main/utils/ipc-registry.d.ts +42 -36
- package/dist/main/utils/ipc-registry.js +117 -50
- package/dist/main/utils/sender-policy.d.ts +9 -0
- package/dist/main/utils/sender-policy.js +26 -3
- package/dist/main/utils/theme.d.ts +3 -2
- package/dist/main/utils/theme.js +3 -2
- package/dist/main/windows/main-window/create.d.ts +16 -0
- package/dist/main/windows/main-window/create.js +19 -11
- package/dist/main/windows/main-window/events.d.ts +1 -1
- package/dist/main/windows/main-window/events.js +26 -13
- package/dist/main/windows/main-window/index.d.ts +1 -1
- package/dist/main/windows/main-window/index.js +1 -1
- package/dist/native-host/common/common.js +94 -73
- package/dist/native-host/render/render.js +4079 -3171
- package/dist/native-host/service/service.js +2 -2
- package/dist/preload/runtime/native-host.d.ts +4 -0
- package/dist/preload/runtime/temp-files.js +9 -2
- package/dist/preload/runtime/wait-for-slot-root.d.ts +7 -4
- package/dist/preload/runtime/wait-for-slot-root.js +36 -8
- package/dist/preload/windows/host-dialog-runtime.cjs +10 -3
- package/dist/preload/windows/host-dialog-runtime.cjs.map +2 -2
- package/dist/preload/windows/host-sidebar-runtime.cjs +10 -3
- package/dist/preload/windows/host-sidebar-runtime.cjs.map +2 -2
- package/dist/preload/windows/host-toolbar-runtime.cjs +10 -3
- package/dist/preload/windows/host-toolbar-runtime.cjs.map +2 -2
- package/dist/preload/windows/main.cjs +181 -4
- package/dist/preload/windows/main.cjs.map +4 -4
- package/dist/preload/windows/simulator.cjs +10 -0
- package/dist/preload/windows/simulator.cjs.map +2 -2
- package/dist/preload/windows/simulator.js +10 -0
- package/dist/render-host/pageFrame.html +1 -1
- package/dist/render-host/preload.cjs +16 -4
- package/dist/renderer/assets/button-CB2MWjHY.js +2 -0
- package/dist/renderer/assets/constants-CkoGPQTS.js +2 -0
- package/dist/renderer/assets/constants-zQZ2-y21.js +2 -0
- package/dist/renderer/assets/{createLucideIcon-Bqi8hpdi.js → createLucideIcon-cZ9FlZZw.js} +2 -2
- package/dist/renderer/assets/devicePicker-H2eIO4e1.js +2 -0
- package/dist/renderer/assets/dialog-pHzEA8Vx.js +46 -0
- package/dist/renderer/assets/dist-B5HADirS.js +2 -0
- package/dist/renderer/assets/{dist-DKWdE1TK.js → dist-DIFlRMKe.js} +2 -2
- package/dist/renderer/assets/hostSidebarDefault-DRWh6OCt.js +2 -0
- package/dist/renderer/assets/index-CEL_XFge.js +2 -0
- package/dist/renderer/assets/{input-Ct3alvkq.js → input-CAObw95L.js} +2 -2
- package/dist/renderer/assets/ipc-channels-overlays-gIPUFnqc.js +2 -0
- package/dist/renderer/assets/jsx-runtime-DICEQH_0.css +1 -0
- package/dist/renderer/assets/{jsx-runtime-DGLHmmOq.js → jsx-runtime-DIw5wnYl.js} +1 -1
- package/dist/renderer/assets/plus-BQ9u5EbL.js +2 -0
- package/dist/renderer/assets/popover-Cw7G2Ctp.js +2 -0
- package/dist/renderer/assets/presets-DMZOb9ay.js +2 -0
- package/dist/renderer/assets/project-api-YTOr_Yvo.js +2 -0
- package/dist/renderer/assets/{projectCreateDialog-Bbjz75bP.js → projectCreateDialog-BmLqiYxn.js} +2 -2
- package/dist/renderer/assets/search-BMvuYF48.js +2 -0
- package/dist/renderer/assets/select-nFP95TxM.js +2 -0
- package/dist/renderer/assets/settings-CnpVfSWt.js +2 -0
- package/dist/renderer/assets/settings-api-Ccsf-Nsj.js +2 -0
- package/dist/renderer/assets/settings-tab-bar-CAzrv32m.js +2 -0
- package/dist/renderer/assets/smartphone-Bb2GdIKy.js +2 -0
- package/dist/renderer/assets/tabs-CPKN3Mmq.js +2 -0
- package/dist/renderer/assets/{tooltip-B_-_YVbw.js → tooltip-D6AxXRk5.js} +2 -2
- package/dist/renderer/assets/types-Bh0hA7El.js +2 -0
- package/dist/renderer/assets/updateDialog-CwndJ0Bl.js +2 -0
- package/dist/renderer/assets/{utils-kfQov6Pa.js → utils-sEB5OZEQ.js} +2 -2
- package/dist/renderer/assets/view-api-B-2zPBR5.js +2 -0
- package/dist/renderer/assets/view-ids-BfaDVV5P.js +2 -0
- package/dist/renderer/assets/workbench-BLJ0wKsg.js +5 -0
- package/dist/renderer/assets/{workbenchSettings-CV4LVA9b.js → workbenchSettings-YD0Ctbm_.js} +3 -3
- package/dist/renderer/entries/device-picker/index.html +28 -0
- package/dist/renderer/entries/host-sidebar-default/index.html +6 -5
- package/dist/renderer/entries/main/index.html +16 -17
- package/dist/renderer/entries/popover/index.html +16 -10
- package/dist/renderer/entries/project-create-dialog/index.html +12 -12
- package/dist/renderer/entries/settings/index.html +10 -10
- package/dist/renderer/entries/tooltip/index.html +5 -5
- package/dist/renderer/entries/update-dialog/index.html +10 -10
- package/dist/renderer/entries/workbench/index.html +49 -0
- package/dist/renderer/entries/workbench-settings/index.html +12 -11
- package/dist/service-host/host-env-update.cjs +23 -0
- package/dist/service-host/preload.cjs +24 -49
- package/dist/service-host/service-message-queue.cjs +71 -0
- package/dist/service-host/sync-impls/system-info.js +31 -9
- package/dist/shared/compile-mode-state.d.ts +73 -0
- package/dist/shared/compile-mode-state.js +100 -0
- package/dist/shared/compile-modes.d.ts +152 -0
- package/dist/shared/compile-modes.js +237 -0
- package/dist/shared/ipc-channels-overlays.d.ts +8 -2
- package/dist/shared/ipc-channels-overlays.js +19 -2
- package/dist/shared/ipc-channels.d.ts +5 -10
- package/dist/shared/ipc-channels.js +17 -14
- package/dist/shared/ipc-schemas.d.ts +76 -24
- package/dist/shared/ipc-schemas.js +55 -10
- package/dist/shared/project-window-types.d.ts +42 -0
- package/dist/shared/project-window-types.js +2 -0
- package/dist/shared/types.d.ts +43 -17
- package/dist/shared/view-ids.d.ts +1 -0
- package/dist/shared/view-ids.js +3 -1
- package/dist/simulator/assets/bridge-channels-B3JAmRfl.js +2 -0
- package/dist/simulator/assets/device-shell-ATEhHV2_.css +1 -0
- package/dist/simulator/assets/device-shell-pxnZZp10.js +431 -0
- package/dist/simulator/assets/simulator-Dwp7lnvu.js +10 -0
- package/dist/simulator/assets/simulator-mini-app-DFo7fhi5.js +2 -0
- package/dist/simulator/assets/simulator-ui-B2ddJB1R.js +2 -0
- package/dist/simulator/simulator.html +3 -3
- package/dist/simulator/temp-files.d.ts +6 -0
- package/dist/simulator/temp-files.js +46 -4
- package/dist/simulator/types.d.ts +7 -0
- package/dist/vscode-workbench/assets/__vite-browser-external-JIkWewFf.js +1 -0
- package/dist/vscode-workbench/assets/{dist-CMfmHflW.js → dist-CXG-u1VB.js} +3 -3
- package/dist/vscode-workbench/assets/{iconv-lite-umd-Bx8CgaZq.js → iconv-lite-umd-Dxx9Qyb4.js} +1 -1
- package/dist/vscode-workbench/assets/{index-CdG6YWhW.js → index-6VJMsaWj.js} +460 -460
- package/dist/vscode-workbench/assets/{jschardet-M0qgd2lN.js → jschardet-Ba3D16vt.js} +1 -1
- package/dist/vscode-workbench/index.html +1 -1
- package/package.json +11 -8
- package/dist/renderer/assets/button-D5Q2wkXq.js +0 -2
- package/dist/renderer/assets/constants-D7DfVqMp.js +0 -2
- package/dist/renderer/assets/constants-D8zsejFq.js +0 -2
- package/dist/renderer/assets/dialog-e1TecTOY.js +0 -46
- package/dist/renderer/assets/hostSidebarDefault-B3yLfy8j.js +0 -2
- package/dist/renderer/assets/index-CsPD68N_.js +0 -5
- package/dist/renderer/assets/ipc-channels-overlays-LsDzGAtV.js +0 -2
- package/dist/renderer/assets/jsx-runtime-2vXHouwr.css +0 -1
- package/dist/renderer/assets/popover-Dix5cm_b.js +0 -2
- package/dist/renderer/assets/project-api-k7Oq9iaq.js +0 -2
- package/dist/renderer/assets/select-acGb0AmJ.js +0 -2
- package/dist/renderer/assets/settings-CQrTMr43.js +0 -2
- package/dist/renderer/assets/settings-api-CrUQ9rYV.js +0 -2
- package/dist/renderer/assets/settings-tab-bar-Cw1kVIf2.js +0 -2
- package/dist/renderer/assets/types-CsEKtFyr.js +0 -2
- package/dist/renderer/assets/updateDialog-NsF8223A.js +0 -2
- package/dist/renderer/assets/view-api-CLn3rcQE.js +0 -2
- package/dist/simulator/assets/bridge-channels-zhsumfky.js +0 -2
- package/dist/simulator/assets/device-shell-CmtM1QxP.js +0 -2
- package/dist/simulator/assets/device-shell-iFZo1igL.css +0 -1
- package/dist/simulator/assets/simulator-CIobn3Mh.js +0 -10
- package/dist/simulator/assets/simulator-mini-app-CRe6n9br.js +0 -2
- package/dist/simulator/assets/simulator-ui-C_cP602X.js +0 -2
- package/dist/vscode-workbench/assets/__vite-browser-external-Bc1vizTf.js +0 -1
|
@@ -26,23 +26,22 @@
|
|
|
26
26
|
overflow: hidden;
|
|
27
27
|
}
|
|
28
28
|
</style>
|
|
29
|
-
<script type="module" crossorigin src="../../assets/index-
|
|
30
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
31
|
-
<link rel="modulepreload" crossorigin href="../../assets/utils-
|
|
32
|
-
<link rel="modulepreload" crossorigin href="../../assets/button-
|
|
33
|
-
<link rel="modulepreload" crossorigin href="../../assets/dist-
|
|
34
|
-
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-
|
|
35
|
-
<link rel="modulepreload" crossorigin href="../../assets/dialog-
|
|
36
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
37
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
38
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
39
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
40
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-
|
|
41
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
42
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
43
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
44
|
-
<link rel="
|
|
45
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
|
|
29
|
+
<script type="module" crossorigin src="../../assets/index-CEL_XFge.js"></script>
|
|
30
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DIw5wnYl.js">
|
|
31
|
+
<link rel="modulepreload" crossorigin href="../../assets/utils-sEB5OZEQ.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-CB2MWjHY.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DIFlRMKe.js">
|
|
34
|
+
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-cZ9FlZZw.js">
|
|
35
|
+
<link rel="modulepreload" crossorigin href="../../assets/dialog-pHzEA8Vx.js">
|
|
36
|
+
<link rel="modulepreload" crossorigin href="../../assets/plus-BQ9u5EbL.js">
|
|
37
|
+
<link rel="modulepreload" crossorigin href="../../assets/search-BMvuYF48.js">
|
|
38
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-gIPUFnqc.js">
|
|
39
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-B-2zPBR5.js">
|
|
40
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-ids-BfaDVV5P.js">
|
|
41
|
+
<link rel="modulepreload" crossorigin href="../../assets/project-api-YTOr_Yvo.js">
|
|
42
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-CAObw95L.js">
|
|
43
|
+
<link rel="modulepreload" crossorigin href="../../assets/types-Bh0hA7El.js">
|
|
44
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-DICEQH_0.css">
|
|
46
45
|
</head>
|
|
47
46
|
<body>
|
|
48
47
|
<div id="root"></div>
|
|
@@ -8,16 +8,22 @@
|
|
|
8
8
|
<style>
|
|
9
9
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
|
|
10
10
|
</style>
|
|
11
|
-
<script type="module" crossorigin src="../../assets/popover-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
19
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
20
|
-
<link rel="
|
|
11
|
+
<script type="module" crossorigin src="../../assets/popover-Cw7G2Ctp.js"></script>
|
|
12
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DIw5wnYl.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DIFlRMKe.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/utils-sEB5OZEQ.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/tabs-CPKN3Mmq.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-CB2MWjHY.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-cZ9FlZZw.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/dialog-pHzEA8Vx.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-B5HADirS.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="../../assets/plus-BQ9u5EbL.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-gIPUFnqc.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-B-2zPBR5.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-CAObw95L.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="../../assets/constants-CkoGPQTS.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="../../assets/select-nFP95TxM.js">
|
|
26
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-DICEQH_0.css">
|
|
21
27
|
</head>
|
|
22
28
|
<body>
|
|
23
29
|
<div id="root"></div>
|
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
<style>
|
|
9
9
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
|
|
10
10
|
</style>
|
|
11
|
-
<script type="module" crossorigin src="../../assets/projectCreateDialog-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="../../assets/utils-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/button-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/dist-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/dialog-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="../../assets/project-api-
|
|
20
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-api-
|
|
21
|
-
<link rel="modulepreload" crossorigin href="../../assets/input-
|
|
22
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
11
|
+
<script type="module" crossorigin src="../../assets/projectCreateDialog-BmLqiYxn.js"></script>
|
|
12
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DIw5wnYl.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="../../assets/utils-sEB5OZEQ.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-CB2MWjHY.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DIFlRMKe.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-cZ9FlZZw.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/dialog-pHzEA8Vx.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-gIPUFnqc.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="../../assets/project-api-YTOr_Yvo.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-B-2zPBR5.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-CAObw95L.js">
|
|
22
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-DICEQH_0.css">
|
|
23
23
|
</head>
|
|
24
24
|
<body>
|
|
25
25
|
<div id="root"></div>
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
closes the overlay — mirrors the popover entry. */
|
|
12
12
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
|
|
13
13
|
</style>
|
|
14
|
-
<script type="module" crossorigin src="../../assets/settings-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/dist-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/utils-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
19
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
20
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
21
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
22
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
23
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
14
|
+
<script type="module" crossorigin src="../../assets/settings-CnpVfSWt.js"></script>
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DIw5wnYl.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DIFlRMKe.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/utils-sEB5OZEQ.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/tabs-CPKN3Mmq.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-CAzrv32m.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-gIPUFnqc.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-api-Ccsf-Nsj.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-B-2zPBR5.js">
|
|
23
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-DICEQH_0.css">
|
|
24
24
|
</head>
|
|
25
25
|
<body>
|
|
26
26
|
<div id="root"></div>
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
html, body { margin: 0; padding: 0; width: -moz-max-content; width: max-content; height: -moz-max-content; height: max-content; overflow: hidden; background: transparent !important; }
|
|
10
10
|
#root { width: -moz-max-content; width: max-content; height: -moz-max-content; height: max-content; display: block; overflow: visible; }
|
|
11
11
|
</style>
|
|
12
|
-
<script type="module" crossorigin src="../../assets/tooltip-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-api-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
12
|
+
<script type="module" crossorigin src="../../assets/tooltip-D6AxXRk5.js"></script>
|
|
13
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DIw5wnYl.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-gIPUFnqc.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-B-2zPBR5.js">
|
|
16
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-DICEQH_0.css">
|
|
17
17
|
</head>
|
|
18
18
|
<body>
|
|
19
19
|
<div id="root"></div>
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
<style>
|
|
9
9
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
|
|
10
10
|
</style>
|
|
11
|
-
<script type="module" crossorigin src="../../assets/updateDialog-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="../../assets/utils-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/button-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/dist-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/dialog-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-api-
|
|
20
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
11
|
+
<script type="module" crossorigin src="../../assets/updateDialog-CwndJ0Bl.js"></script>
|
|
12
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DIw5wnYl.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="../../assets/utils-sEB5OZEQ.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-CB2MWjHY.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DIFlRMKe.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-cZ9FlZZw.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/dialog-pHzEA8Vx.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-gIPUFnqc.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-B-2zPBR5.js">
|
|
20
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-DICEQH_0.css">
|
|
21
21
|
</head>
|
|
22
22
|
<body>
|
|
23
23
|
<div id="root"></div>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<!--
|
|
6
|
+
CSP: deliberately permissive (B5 phase). Inline JS/CSS + eval are kept for
|
|
7
|
+
dev tooling / nodeIntegration:true; connect-src spans http/ws because
|
|
8
|
+
automation, MCP, and the simulator dev server all open sockets. Tighten in
|
|
9
|
+
C-phase once the preload bridge removes the need for `unsafe-*`.
|
|
10
|
+
-->
|
|
11
|
+
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http: https:; font-src 'self' data:; media-src 'self' blob: http: https:; connect-src 'self' http: https: ws: wss:;" />
|
|
12
|
+
<title>Dimina DevTools</title>
|
|
13
|
+
<style>
|
|
14
|
+
/*
|
|
15
|
+
* The React tree always occupies the full window. Main-process overlays
|
|
16
|
+
* (the simulator's Chromium DevTools WebContentsView, the console, and the
|
|
17
|
+
* workbench editor WebContentsView) are positioned to match measured
|
|
18
|
+
* placeholder rects inside the React tree (see useViewAnchor /
|
|
19
|
+
* createPlacementAnchor in project-runtime.tsx).
|
|
20
|
+
*/
|
|
21
|
+
html, body, #root { margin: 0; padding: 0; }
|
|
22
|
+
html, body { width: 100vw; height: 100vh; overflow: hidden; }
|
|
23
|
+
#root {
|
|
24
|
+
position: fixed;
|
|
25
|
+
inset: 0;
|
|
26
|
+
overflow: hidden;
|
|
27
|
+
}
|
|
28
|
+
</style>
|
|
29
|
+
<script type="module" crossorigin src="../../assets/workbench-BLJ0wKsg.js"></script>
|
|
30
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DIw5wnYl.js">
|
|
31
|
+
<link rel="modulepreload" crossorigin href="../../assets/presets-DMZOb9ay.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="../../assets/utils-sEB5OZEQ.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-CB2MWjHY.js">
|
|
34
|
+
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-cZ9FlZZw.js">
|
|
35
|
+
<link rel="modulepreload" crossorigin href="../../assets/smartphone-Bb2GdIKy.js">
|
|
36
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-gIPUFnqc.js">
|
|
37
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-B-2zPBR5.js">
|
|
38
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-ids-BfaDVV5P.js">
|
|
39
|
+
<link rel="modulepreload" crossorigin href="../../assets/project-api-YTOr_Yvo.js">
|
|
40
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-api-Ccsf-Nsj.js">
|
|
41
|
+
<link rel="modulepreload" crossorigin href="../../assets/constants-CkoGPQTS.js">
|
|
42
|
+
<link rel="modulepreload" crossorigin href="../../assets/select-nFP95TxM.js">
|
|
43
|
+
<link rel="modulepreload" crossorigin href="../../assets/constants-zQZ2-y21.js">
|
|
44
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-DICEQH_0.css">
|
|
45
|
+
</head>
|
|
46
|
+
<body>
|
|
47
|
+
<div id="root"></div>
|
|
48
|
+
</body>
|
|
49
|
+
</html>
|
|
@@ -6,17 +6,18 @@
|
|
|
6
6
|
<!-- See entries/main/index.html for CSP rationale. -->
|
|
7
7
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http: https:; font-src 'self' data:; media-src 'self' blob: http: https:; connect-src 'self' http: https: ws: wss:;" />
|
|
8
8
|
<title>开发工具设置</title>
|
|
9
|
-
<script type="module" crossorigin src="../../assets/workbenchSettings-
|
|
10
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
12
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
13
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
19
|
-
<link rel="
|
|
9
|
+
<script type="module" crossorigin src="../../assets/workbenchSettings-YD0Ctbm_.js"></script>
|
|
10
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DIw5wnYl.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="../../assets/utils-sEB5OZEQ.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-CB2MWjHY.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DIFlRMKe.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/tabs-CPKN3Mmq.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-CAzrv32m.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-gIPUFnqc.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-api-Ccsf-Nsj.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-CAObw95L.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="../../assets/constants-CkoGPQTS.js">
|
|
20
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-DICEQH_0.css">
|
|
20
21
|
</head>
|
|
21
22
|
<body>
|
|
22
23
|
<div id="root"></div>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `hostEnvUpdate` is the ONE message that carries a device change into a
|
|
3
|
+
* running service host (bridge-router's `setDevice` → `applyDeviceToSession`).
|
|
4
|
+
* service.js consumes it for the async `wx.getSystemInfo` path; the sync
|
|
5
|
+
* `wx.getSystemInfoSync()` patch instead reads `__diminaSpawnContext
|
|
6
|
+
* .hostEnvSnapshot` on every call, so the preload merges the same message into
|
|
7
|
+
* that snapshot BEFORE handing it to service.js. Doing it on the same delivery
|
|
8
|
+
* keeps ordering: the `pageResize` that follows in the same batch already sees
|
|
9
|
+
* the new metrics from inside `Page.onResize`.
|
|
10
|
+
*
|
|
11
|
+
* Returns true when the message was a well-formed hostEnvUpdate and the
|
|
12
|
+
* snapshot was replaced; false leaves `ctx` untouched.
|
|
13
|
+
*/
|
|
14
|
+
function applyHostEnvUpdate(ctx, msg) {
|
|
15
|
+
if (!ctx || typeof ctx !== 'object') return false
|
|
16
|
+
if (!msg || typeof msg !== 'object' || msg.type !== 'hostEnvUpdate') return false
|
|
17
|
+
const systemInfo = msg.body && msg.body.systemInfo
|
|
18
|
+
if (!systemInfo || typeof systemInfo !== 'object') return false
|
|
19
|
+
ctx.hostEnvSnapshot = { ...(ctx.hostEnvSnapshot || {}), ...systemInfo }
|
|
20
|
+
return true
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
module.exports = { applyHostEnvUpdate }
|
|
@@ -4,10 +4,6 @@ const CHANNELS = {
|
|
|
4
4
|
SERVICE_INVOKE: 'dmb:service:invoke',
|
|
5
5
|
SERVICE_PUBLISH: 'dmb:service:publish',
|
|
6
6
|
TO_SERVICE: 'dmb:to-service',
|
|
7
|
-
// main → this window: live-update the host-env snapshot on a device change so
|
|
8
|
-
// wx.getSystemInfoSync() reflects the newly-selected device without a
|
|
9
|
-
// relaunch. Mirrors ServiceHostChannel.HostEnvUpdate in shared/ipc-channels.ts.
|
|
10
|
-
HOST_ENV_UPDATE: 'service-host:host-env:update',
|
|
11
7
|
// main → this window: AppData-panel edit write-back. Mirrors
|
|
12
8
|
// ServiceHostChannel.AppDataSetData in shared/ipc-channels.ts.
|
|
13
9
|
APPDATA_SET_DATA: 'service-host:appdata:set-data',
|
|
@@ -15,9 +11,8 @@ const CHANNELS = {
|
|
|
15
11
|
|
|
16
12
|
const params = new URLSearchParams(globalThis.location && globalThis.location.search || '')
|
|
17
13
|
const bridgeId = params.get('bridgeId')
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
let drainScheduled = false
|
|
14
|
+
const { createDeliveryQueue } = require('./service-message-queue.cjs')
|
|
15
|
+
const { applyHostEnvUpdate } = require('./host-env-update.cjs')
|
|
21
16
|
|
|
22
17
|
if (!bridgeId) {
|
|
23
18
|
// Warming idle: a pre-warm pool loads this preload against about:blank (no
|
|
@@ -73,69 +68,46 @@ globalThis.__diminaRegisteredApis = registeredApisRaw
|
|
|
73
68
|
? registeredApisRaw.split(',').map((name) => name.trim()).filter(Boolean)
|
|
74
69
|
: []
|
|
75
70
|
|
|
76
|
-
// Live host-env updates (native-host device dropdown). The binding above is
|
|
77
|
-
// non-configurable, but the inner object's properties are writable — merge the
|
|
78
|
-
// pushed metrics into `hostEnvSnapshot` in place. `sync-impls/system-info.ts`
|
|
79
|
-
// reads `this.hostEnvSnapshot` fresh on every `getSystemInfoSync()`, so the
|
|
80
|
-
// next call (and the mini-app code that invokes it) sees the new device.
|
|
81
|
-
ipcRenderer.on(CHANNELS.HOST_ENV_UPDATE, (_event, snapshot) => {
|
|
82
|
-
if (!snapshot || typeof snapshot !== 'object') return
|
|
83
|
-
const ctx = globalThis.__diminaSpawnContext
|
|
84
|
-
if (!ctx) return
|
|
85
|
-
ctx.hostEnvSnapshot = { ...(ctx.hostEnvSnapshot || {}), ...snapshot }
|
|
86
|
-
})
|
|
87
|
-
|
|
88
71
|
function reportError(stage, error) {
|
|
89
72
|
const message = error && error.stack ? error.stack : String(error)
|
|
90
73
|
console.error(`[service-host] ${stage}`, error)
|
|
91
74
|
ipcRenderer.send(CHANNELS.SERVICE_INVOKE, {
|
|
92
|
-
bridgeId,
|
|
93
75
|
msg: {
|
|
94
76
|
type: 'serviceHostError',
|
|
95
77
|
target: 'container',
|
|
96
|
-
|
|
78
|
+
// The spawn page goes in the body, where main reads page ids from
|
|
79
|
+
// (`readBridgeId`) — an error raised while it is still up is attributed
|
|
80
|
+
// to it, and one raised after it is gone falls back to the active page.
|
|
81
|
+
body: { stage, message, bridgeId },
|
|
97
82
|
},
|
|
98
83
|
})
|
|
99
84
|
}
|
|
100
85
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
onMessageFn(msg)
|
|
108
|
-
} catch (error) {
|
|
109
|
-
reportError('onMessage', error)
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function scheduleDrain() {
|
|
114
|
-
if (drainScheduled) return
|
|
115
|
-
drainScheduled = true
|
|
116
|
-
queueMicrotask(() => {
|
|
117
|
-
drainScheduled = false
|
|
118
|
-
while (onMessageFn && pendingMessages.length > 0) {
|
|
119
|
-
deliver(pendingMessages.shift())
|
|
120
|
-
}
|
|
121
|
-
})
|
|
122
|
-
}
|
|
86
|
+
const queue = createDeliveryQueue({
|
|
87
|
+
// hostEnvUpdate patches the spawn snapshot right before the service reads the same
|
|
88
|
+
// message, so a queued pageResize sees the geometry that was current when it was sent.
|
|
89
|
+
beforeDispatch: (msg) => applyHostEnvUpdate(globalThis.__diminaSpawnContext, msg),
|
|
90
|
+
onError: reportError,
|
|
91
|
+
})
|
|
123
92
|
|
|
124
93
|
Object.defineProperty(globalThis, 'DiminaServiceBridge', {
|
|
125
94
|
value: {
|
|
126
95
|
get onMessage() {
|
|
127
|
-
return
|
|
96
|
+
return queue.getHandler()
|
|
128
97
|
},
|
|
129
98
|
set onMessage(handler) {
|
|
130
|
-
|
|
131
|
-
scheduleDrain()
|
|
99
|
+
queue.setHandler(handler)
|
|
132
100
|
},
|
|
101
|
+
// Neither send stamps this window's spawn bridgeId: it names the page this
|
|
102
|
+
// service host was STARTED for, which a reLaunch/redirectTo can close while
|
|
103
|
+
// the host keeps serving the session. Main routes by the sending
|
|
104
|
+
// webContents plus the page id the message itself carries.
|
|
133
105
|
invoke(msg) {
|
|
134
|
-
ipcRenderer.send(CHANNELS.SERVICE_INVOKE, {
|
|
106
|
+
ipcRenderer.send(CHANNELS.SERVICE_INVOKE, { msg })
|
|
135
107
|
return undefined
|
|
136
108
|
},
|
|
137
109
|
publish(targetBridgeId, msg) {
|
|
138
|
-
ipcRenderer.send(CHANNELS.SERVICE_PUBLISH, {
|
|
110
|
+
ipcRenderer.send(CHANNELS.SERVICE_PUBLISH, { targetBridgeId, msg })
|
|
139
111
|
},
|
|
140
112
|
},
|
|
141
113
|
writable: false,
|
|
@@ -212,8 +184,11 @@ if (typeof globalThis.importScripts !== 'function') {
|
|
|
212
184
|
}
|
|
213
185
|
}
|
|
214
186
|
|
|
187
|
+
// Device changes ride the ordinary service channel as `hostEnvUpdate`; the queue's
|
|
188
|
+
// beforeDispatch merges them into `__diminaSpawnContext.hostEnvSnapshot` (the object is
|
|
189
|
+
// writable even though the binding is not) in stream order.
|
|
215
190
|
ipcRenderer.on(CHANNELS.TO_SERVICE, (_event, payload) => {
|
|
216
|
-
deliver(payload && payload.msg)
|
|
191
|
+
queue.deliver(payload && payload.msg)
|
|
217
192
|
})
|
|
218
193
|
|
|
219
194
|
// AppData-panel edit write-back. The service runtime evaluates in THIS window's
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Orders every message from main to the service exactly as it arrived, even when the
|
|
5
|
+
* service registers its onMessage handler late or a handler re-enters `deliver`.
|
|
6
|
+
* Every message goes through one FIFO; only the drain loop dispatches, so a message
|
|
7
|
+
* delivered while a drain is pending or running always lands behind what is already
|
|
8
|
+
* queued. Without a handler the backlog waits; `setHandler` drains it on a microtask,
|
|
9
|
+
* and with nothing queued a delivery dispatches synchronously.
|
|
10
|
+
*
|
|
11
|
+
* `beforeDispatch` runs right before the handler sees each message — never at enqueue
|
|
12
|
+
* time — so side effects it carries (like a hostEnvUpdate patching the spawn context)
|
|
13
|
+
* become visible in the same order the service observes the message stream. A throw in
|
|
14
|
+
* either step is reported through `onError` and never drops the message or stops the
|
|
15
|
+
* stream.
|
|
16
|
+
*/
|
|
17
|
+
function createDeliveryQueue({ beforeDispatch, onError } = {}) {
|
|
18
|
+
const pending = []
|
|
19
|
+
let handler = null
|
|
20
|
+
let drainScheduled = false
|
|
21
|
+
let draining = false
|
|
22
|
+
|
|
23
|
+
function report(stage, error) {
|
|
24
|
+
if (onError) onError(stage, error)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function dispatch(msg) {
|
|
28
|
+
if (beforeDispatch) {
|
|
29
|
+
try {
|
|
30
|
+
beforeDispatch(msg)
|
|
31
|
+
} catch (error) {
|
|
32
|
+
report('beforeDispatch', error)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
handler(msg)
|
|
37
|
+
} catch (error) {
|
|
38
|
+
report('onMessage', error)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function drain() {
|
|
43
|
+
if (draining) return
|
|
44
|
+
draining = true
|
|
45
|
+
try {
|
|
46
|
+
while (handler && pending.length > 0) dispatch(pending.shift())
|
|
47
|
+
} finally {
|
|
48
|
+
draining = false
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function deliver(msg) {
|
|
53
|
+
pending.push(msg)
|
|
54
|
+
if (handler && !drainScheduled) drain()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function setHandler(fn) {
|
|
58
|
+
handler = typeof fn === 'function' ? fn : null
|
|
59
|
+
// An empty backlog needs no deferred drain, so the next deliver dispatches at once.
|
|
60
|
+
if (!handler || drainScheduled || pending.length === 0) return
|
|
61
|
+
drainScheduled = true
|
|
62
|
+
queueMicrotask(() => {
|
|
63
|
+
drainScheduled = false
|
|
64
|
+
drain()
|
|
65
|
+
})
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return { deliver, setHandler, getHandler: () => handler }
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
module.exports = { createDeliveryQueue }
|
|
@@ -6,6 +6,34 @@ export function getSystemInfoSync() {
|
|
|
6
6
|
const windowHeight = numberOr(snapshot.windowHeight, globalThis.innerHeight, screenHeight);
|
|
7
7
|
const statusBarHeight = numberOr(snapshot.statusBarHeight, 0);
|
|
8
8
|
const safeAreaBottom = windowHeight;
|
|
9
|
+
const deviceOrientation = snapshot.deviceOrientation ?? 'portrait';
|
|
10
|
+
// A snapshot minted by the runtime's `deviceInfoToHostEnv` already carries
|
|
11
|
+
// the resolved rect — it is the single source of truth for these numbers, so
|
|
12
|
+
// carry it through rather than re-deriving and risking a different answer
|
|
13
|
+
// from the async and per-spawn paths.
|
|
14
|
+
const resolved = snapshot.safeArea;
|
|
15
|
+
// Older snapshots carry only the measured per-edge insets (safeAreaInsets):
|
|
16
|
+
// right/bottom are distances from the far edge, so they convert to the
|
|
17
|
+
// left/top-origin safeArea rect by subtracting from the window size. Neither
|
|
18
|
+
// present (no device selected yet) falls back to top=statusBarHeight only.
|
|
19
|
+
const insets = snapshot.safeAreaInsets;
|
|
20
|
+
const safeArea = resolved ?? (insets
|
|
21
|
+
? {
|
|
22
|
+
left: insets.left,
|
|
23
|
+
top: insets.top,
|
|
24
|
+
right: windowWidth - insets.right,
|
|
25
|
+
bottom: windowHeight - insets.bottom,
|
|
26
|
+
width: windowWidth - insets.right - insets.left,
|
|
27
|
+
height: windowHeight - insets.bottom - insets.top,
|
|
28
|
+
}
|
|
29
|
+
: {
|
|
30
|
+
width: windowWidth,
|
|
31
|
+
height: windowHeight - statusBarHeight,
|
|
32
|
+
top: statusBarHeight,
|
|
33
|
+
bottom: safeAreaBottom,
|
|
34
|
+
left: 0,
|
|
35
|
+
right: windowWidth,
|
|
36
|
+
});
|
|
9
37
|
return {
|
|
10
38
|
brand: stringOr(snapshot.brand, 'devtools'),
|
|
11
39
|
model: stringOr(snapshot.model, 'devtools'),
|
|
@@ -21,16 +49,10 @@ export function getSystemInfoSync() {
|
|
|
21
49
|
platform: stringOr(snapshot.platform, navigator.platform || 'ios'),
|
|
22
50
|
fontSizeSetting: 16,
|
|
23
51
|
SDKVersion: stringOr(snapshot.SDKVersion, '3.0.0'),
|
|
24
|
-
deviceOrientation
|
|
52
|
+
deviceOrientation,
|
|
25
53
|
theme: stringOr(snapshot.theme, globalThis.matchMedia?.('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'),
|
|
26
|
-
safeArea
|
|
27
|
-
|
|
28
|
-
height: windowHeight - statusBarHeight,
|
|
29
|
-
top: statusBarHeight,
|
|
30
|
-
bottom: safeAreaBottom,
|
|
31
|
-
left: 0,
|
|
32
|
-
right: windowWidth,
|
|
33
|
-
},
|
|
54
|
+
safeArea,
|
|
55
|
+
screenTop: numberOr(snapshot.screenTop, statusBarHeight),
|
|
34
56
|
};
|
|
35
57
|
}
|
|
36
58
|
export function getAccountInfoSync() {
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory compile-mode model: selection tracks a minted id, not an index
|
|
3
|
+
* into a list. Storage (`CompileModes`, WeChat's `condition.miniprogram`
|
|
4
|
+
* shape) stays index-based so `project.config.json` keeps round-tripping —
|
|
5
|
+
* `stateFromStored`/`storedFromState` are the only two places index
|
|
6
|
+
* arithmetic happens at all. Everywhere else (in particular
|
|
7
|
+
* `applyCompileModeCommand`) only ever compares/reassigns ids, so deleting or
|
|
8
|
+
* reordering entries can never select the wrong mode by shifting a stale
|
|
9
|
+
* index onto it.
|
|
10
|
+
*/
|
|
11
|
+
import { type CompileMode, type CompileModes } from './compile-modes.js';
|
|
12
|
+
export type CompileModeId = string;
|
|
13
|
+
export interface CompileModeEntry {
|
|
14
|
+
id: CompileModeId;
|
|
15
|
+
mode: CompileMode;
|
|
16
|
+
}
|
|
17
|
+
export interface CompileModeState {
|
|
18
|
+
/** `null` selects 普通编译. */
|
|
19
|
+
selectedId: CompileModeId | null;
|
|
20
|
+
entries: CompileModeEntry[];
|
|
21
|
+
}
|
|
22
|
+
export type MintId = () => CompileModeId;
|
|
23
|
+
/** An empty model — no custom modes, 普通编译 selected. */
|
|
24
|
+
export declare function emptyCompileModeState(): CompileModeState;
|
|
25
|
+
/**
|
|
26
|
+
* Build the in-memory state from whatever is on disk, minting a fresh id for
|
|
27
|
+
* each surviving entry in list order. Selection is carried across as the
|
|
28
|
+
* entry's identity (the freshly minted id), not the raw numeric `current` —
|
|
29
|
+
* `normalizeCompileModes` may have already remapped `current` when dropping
|
|
30
|
+
* a malformed earlier entry, so the id assigned here already points at the
|
|
31
|
+
* same data the stored `current` named.
|
|
32
|
+
*/
|
|
33
|
+
export declare function stateFromStored(raw: unknown, mintId: MintId): CompileModeState;
|
|
34
|
+
/** Project the in-memory state back into the on-disk index-based shape. */
|
|
35
|
+
export declare function storedFromState(state: CompileModeState): CompileModes;
|
|
36
|
+
/** The selected entry's mode, or `null` for 普通编译 (including a ghost id). */
|
|
37
|
+
export declare function selectedMode(state: CompileModeState): CompileMode | null;
|
|
38
|
+
export type CompileModeCommand = {
|
|
39
|
+
type: 'select';
|
|
40
|
+
id: CompileModeId | null;
|
|
41
|
+
} | {
|
|
42
|
+
type: 'add';
|
|
43
|
+
mode: CompileMode;
|
|
44
|
+
} | {
|
|
45
|
+
type: 'update';
|
|
46
|
+
id: CompileModeId;
|
|
47
|
+
mode: CompileMode;
|
|
48
|
+
} | {
|
|
49
|
+
type: 'remove';
|
|
50
|
+
id: CompileModeId;
|
|
51
|
+
};
|
|
52
|
+
export interface CompileModeApplyResult {
|
|
53
|
+
state: CompileModeState;
|
|
54
|
+
relaunch: boolean;
|
|
55
|
+
}
|
|
56
|
+
/** A `CompileModeStore`'s current contents, tagged with a monotonic revision so a stale fetch racing a push can be told apart from a fresher one. */
|
|
57
|
+
export interface CompileModeSnapshot {
|
|
58
|
+
revision: number;
|
|
59
|
+
state: CompileModeState;
|
|
60
|
+
}
|
|
61
|
+
/** A snapshot plus whether the change affects what's currently running, for `RendererNotifier.compileModesChanged` pushes. */
|
|
62
|
+
export interface CompileModeChange extends CompileModeSnapshot {
|
|
63
|
+
relaunch: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Interpret one command against the current state. `relaunch` reports
|
|
67
|
+
* whether the running configuration changed, so a caller only restarts the
|
|
68
|
+
* simulator when the selected mode itself moved. A command that names an id
|
|
69
|
+
* nothing matches is a no-op and returns the SAME state reference (not a
|
|
70
|
+
* copy) so a caller can cheaply tell "nothing changed" from "changed".
|
|
71
|
+
*/
|
|
72
|
+
export declare function applyCompileModeCommand(state: CompileModeState, command: CompileModeCommand, mintId: MintId): CompileModeApplyResult;
|
|
73
|
+
//# sourceMappingURL=compile-mode-state.d.ts.map
|