@dimina-kit/devtools 0.4.0 → 0.5.0-dev.20260908120530
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 +51 -660
- package/dist/main/api.d.ts +2 -1
- package/dist/main/app/app.d.ts +41 -12
- package/dist/main/app/app.js +299 -514
- package/dist/main/app/bootstrap.d.ts +8 -5
- package/dist/main/app/bootstrap.js +15 -15
- 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/lifecycle.d.ts +12 -1
- package/dist/main/app/lifecycle.js +27 -1
- package/dist/main/app/menu-setup.d.ts +13 -0
- package/dist/main/app/menu-setup.js +49 -0
- package/dist/main/app/native-overview.d.ts +1 -1
- 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 +197 -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 +11712 -9986
- package/dist/main/index.js +49 -1
- package/dist/main/ipc/app-lifecycle.d.ts +1 -31
- package/dist/main/ipc/app-lifecycle.js +1 -53
- package/dist/main/ipc/app.d.ts +4 -1
- package/dist/main/ipc/app.js +4 -3
- package/dist/main/ipc/bridge-router.d.ts +19 -116
- package/dist/main/ipc/bridge-router.js +28 -2128
- 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 +5 -0
- package/dist/main/ipc/index.js +5 -0
- package/dist/main/ipc/internal-devtools.d.ts +16 -0
- package/dist/main/ipc/internal-devtools.js +10 -0
- package/dist/main/ipc/page-scroll.d.ts +1 -13
- package/dist/main/ipc/page-scroll.js +1 -16
- package/dist/main/ipc/popover.d.ts +4 -1
- package/dist/main/ipc/popover.js +26 -19
- package/dist/main/ipc/project-create.d.ts +16 -0
- package/dist/main/ipc/project-create.js +27 -0
- package/dist/main/ipc/project-fs.d.ts +38 -3
- package/dist/main/ipc/project-fs.js +53 -22
- package/dist/main/ipc/projects.d.ts +3 -3
- package/dist/main/ipc/projects.js +47 -11
- package/dist/main/ipc/session-listener-bag.d.ts +1 -40
- package/dist/main/ipc/session-listener-bag.js +1 -39
- package/dist/main/ipc/session.d.ts +4 -1
- package/dist/main/ipc/session.js +26 -26
- package/dist/main/ipc/settings.d.ts +4 -1
- package/dist/main/ipc/settings.js +17 -19
- package/dist/main/ipc/simulator-module.d.ts +9 -3
- package/dist/main/ipc/simulator-module.js +13 -10
- package/dist/main/ipc/simulator.d.ts +4 -1
- package/dist/main/ipc/simulator.js +12 -18
- package/dist/main/ipc/tooltip.d.ts +14 -0
- package/dist/main/ipc/tooltip.js +29 -0
- package/dist/main/ipc/views.d.ts +19 -2
- package/dist/main/ipc/views.js +76 -8
- package/dist/main/runtime/devtools-backend-before-quit.harness.d.ts +43 -0
- package/dist/main/runtime/devtools-backend-before-quit.harness.js +87 -0
- package/dist/main/runtime/devtools-backend.js +60 -4
- 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/runtime/miniapp-runtime.d.ts +91 -22
- 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/cdp-session/index.d.ts +87 -0
- package/dist/main/services/cdp-session/index.js +173 -0
- package/dist/main/services/compile-standby.js +4 -0
- package/dist/main/services/console-forward/cdp-inject.d.ts +18 -0
- package/dist/main/services/console-forward/cdp-inject.js +30 -0
- package/dist/main/services/console-forward/global-console-mirror.d.ts +33 -0
- package/dist/main/services/console-forward/global-console-mirror.js +71 -0
- package/dist/main/services/console-forward/global-diagnostics-mirror.d.ts +33 -0
- package/dist/main/services/console-forward/global-diagnostics-mirror.js +73 -0
- package/dist/main/services/console-forward/index.d.ts +1 -46
- package/dist/main/services/console-forward/index.js +1 -185
- package/dist/main/services/console-forward/internal-log.d.ts +2 -0
- package/dist/main/services/console-forward/internal-log.js +2 -0
- package/dist/main/services/console-forward/open-gated-relay.d.ts +67 -0
- package/dist/main/services/console-forward/open-gated-relay.js +55 -0
- package/dist/main/services/default-adapter.js +1 -1
- package/dist/main/services/diagnostics/index.d.ts +1 -48
- package/dist/main/services/diagnostics/index.js +1 -60
- package/dist/main/services/dimina-resource-server.d.ts +1 -6
- package/dist/main/services/dimina-resource-server.js +1 -98
- package/dist/main/services/elements-forward/index.d.ts +132 -15
- package/dist/main/services/elements-forward/index.js +155 -304
- 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 +40 -0
- package/dist/main/services/fs-watch-sse.js +113 -0
- package/dist/main/services/http-json.d.ts +9 -0
- package/dist/main/services/http-json.js +6 -0
- package/dist/main/services/layout/index.d.ts +11 -0
- package/dist/main/services/layout/index.js +23 -0
- 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/server.d.ts +2 -1
- package/dist/main/services/mcp/server.js +29 -4
- package/dist/main/services/mcp/target-manager.d.ts +71 -23
- package/dist/main/services/mcp/target-manager.js +269 -138
- 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 +72 -0
- package/dist/main/services/mcp/tools/project-tools.js +133 -0
- package/dist/main/services/module.d.ts +13 -5
- package/dist/main/services/network-forward/body-cache.d.ts +72 -0
- package/dist/main/services/network-forward/body-cache.js +179 -0
- package/dist/main/services/network-forward/frontend-dispatch.d.ts +91 -0
- package/dist/main/services/network-forward/frontend-dispatch.js +148 -0
- package/dist/main/services/network-forward/global-body-gate.d.ts +46 -0
- package/dist/main/services/network-forward/global-body-gate.js +93 -0
- package/dist/main/services/network-forward/global-mirror-test-fixtures.d.ts +48 -0
- package/dist/main/services/network-forward/global-mirror-test-fixtures.js +96 -0
- package/dist/main/services/network-forward/http.d.ts +47 -0
- package/dist/main/services/network-forward/http.js +162 -0
- package/dist/main/services/network-forward/index.d.ts +135 -15
- package/dist/main/services/network-forward/index.js +854 -224
- package/dist/main/services/network-forward/request-ids.d.ts +5 -0
- package/dist/main/services/network-forward/request-ids.js +5 -0
- package/dist/main/services/network-forward/user-facing.d.ts +21 -0
- package/dist/main/services/network-forward/user-facing.js +50 -0
- package/dist/main/services/network-forward/websocket.d.ts +36 -0
- package/dist/main/services/network-forward/websocket.js +120 -0
- package/dist/main/services/notifications/renderer-notifier.d.ts +71 -9
- package/dist/main/services/notifications/renderer-notifier.js +45 -8
- package/dist/main/services/projects/create-project-service.js +19 -5
- package/dist/main/services/projects/local-provider.js +8 -4
- package/dist/main/services/projects/project-repository.d.ts +59 -7
- package/dist/main/services/projects/project-repository.js +285 -51
- package/dist/main/services/projects/types.d.ts +44 -34
- package/dist/main/services/render-inspect/index.d.ts +12 -2
- package/dist/main/services/render-inspect/index.js +21 -102
- package/dist/main/services/safe-area/index.d.ts +21 -6
- package/dist/main/services/safe-area/index.js +92 -46
- package/dist/main/services/service-host-pool/pool.d.ts +1 -196
- package/dist/main/services/service-host-pool/pool.js +1 -363
- package/dist/main/services/settings/index.d.ts +7 -1
- package/dist/main/services/settings/index.js +22 -2
- package/dist/main/services/simulator/custom-apis.d.ts +1 -42
- package/dist/main/services/simulator/custom-apis.js +1 -46
- package/dist/main/services/simulator/referer.d.ts +1 -9
- package/dist/main/services/simulator/referer.js +1 -19
- package/dist/main/services/simulator/ui-extensions.d.ts +21 -0
- package/dist/main/services/simulator/ui-extensions.js +176 -0
- package/dist/main/services/simulator-appdata/index.d.ts +6 -0
- package/dist/main/services/simulator-appdata/index.js +21 -2
- package/dist/main/services/simulator-current-page/index.d.ts +5 -3
- package/dist/main/services/simulator-current-page/index.js +8 -1
- package/dist/main/services/simulator-storage/index.d.ts +34 -5
- package/dist/main/services/simulator-storage/index.js +73 -71
- package/dist/main/services/simulator-storage/service-storage-ops.d.ts +1 -39
- package/dist/main/services/simulator-storage/service-storage-ops.js +1 -66
- 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/simulator-temp-files/disk.d.ts +1 -54
- package/dist/main/services/simulator-temp-files/disk.js +1 -237
- package/dist/main/services/simulator-temp-files/fs-channels.d.ts +1 -68
- package/dist/main/services/simulator-temp-files/fs-channels.js +1 -107
- package/dist/main/services/simulator-temp-files/index.d.ts +1 -32
- package/dist/main/services/simulator-temp-files/index.js +1 -181
- package/dist/main/services/simulator-temp-files/request-handler.d.ts +1 -29
- package/dist/main/services/simulator-temp-files/request-handler.js +1 -177
- package/dist/main/services/simulator-temp-files/resolver.d.ts +1 -21
- package/dist/main/services/simulator-temp-files/resolver.js +1 -21
- package/dist/main/services/simulator-temp-files/store.d.ts +1 -13
- package/dist/main/services/simulator-temp-files/store.js +1 -23
- package/dist/main/services/update/github-release-checker.js +22 -3
- package/dist/main/services/update/update-manager.d.ts +21 -4
- package/dist/main/services/update/update-manager.js +55 -11
- package/dist/main/services/views/clear-console-filter.d.ts +44 -0
- package/dist/main/services/views/clear-console-filter.js +86 -0
- package/dist/main/services/views/console-filter-test-fixtures.d.ts +94 -0
- package/dist/main/services/views/console-filter-test-fixtures.js +82 -0
- package/dist/main/services/views/console-filter.d.ts +94 -0
- package/dist/main/services/views/console-filter.js +190 -0
- package/dist/main/services/views/devtools-tabs.d.ts +24 -4
- package/dist/main/services/views/devtools-tabs.js +40 -21
- package/dist/main/services/views/frontend-bootstrap-gate.d.ts +59 -0
- package/dist/main/services/views/frontend-bootstrap-gate.js +117 -0
- package/dist/main/services/views/host-dialog-port-channel.d.ts +18 -0
- package/dist/main/services/views/host-dialog-port-channel.js +15 -0
- package/dist/main/services/views/host-dialog-session-runtime.d.ts +10 -0
- package/dist/main/services/views/host-dialog-session-runtime.js +17 -0
- package/dist/main/services/views/host-dialog-view.d.ts +95 -0
- package/dist/main/services/views/host-dialog-view.js +147 -0
- package/dist/main/services/views/host-sidebar-port-channel.d.ts +18 -0
- package/dist/main/services/views/host-sidebar-port-channel.js +15 -0
- package/dist/main/services/views/host-sidebar-session-runtime.d.ts +10 -0
- package/dist/main/services/views/host-sidebar-session-runtime.js +17 -0
- package/dist/main/services/views/host-sidebar-view.d.ts +59 -0
- package/dist/main/services/views/host-sidebar-view.js +44 -0
- package/dist/main/services/views/host-slot-port-channel.d.ts +124 -0
- package/dist/main/services/views/host-slot-port-channel.js +289 -0
- package/dist/main/services/views/host-slot-session-runtime.d.ts +40 -0
- package/dist/main/services/views/host-slot-session-runtime.js +50 -0
- package/dist/main/services/views/host-slot-view.d.ts +109 -0
- package/dist/main/services/views/host-slot-view.js +147 -0
- package/dist/main/services/views/host-toolbar-port-channel.d.ts +6 -91
- package/dist/main/services/views/host-toolbar-port-channel.js +10 -243
- package/dist/main/services/views/host-toolbar-session-runtime.d.ts +5 -30
- package/dist/main/services/views/host-toolbar-session-runtime.js +9 -47
- package/dist/main/services/views/host-toolbar-view.d.ts +34 -7
- package/dist/main/services/views/host-toolbar-view.js +30 -237
- package/dist/main/services/views/managed-web-contents-view.d.ts +48 -0
- package/dist/main/services/views/managed-web-contents-view.js +143 -0
- package/dist/main/services/views/miniapp-partition.d.ts +1 -89
- package/dist/main/services/views/miniapp-partition.js +1 -158
- package/dist/main/services/views/native-simulator-devtools-host.js +206 -68
- package/dist/main/services/views/native-simulator-view.d.ts +6 -0
- package/dist/main/services/views/native-simulator-view.js +47 -40
- package/dist/main/services/views/native-view-tree.d.ts +25 -0
- package/dist/main/services/views/native-view-tree.js +69 -0
- package/dist/main/services/views/overlay-panels-view.d.ts +63 -4
- package/dist/main/services/views/overlay-panels-view.js +257 -108
- package/dist/main/services/views/placement-reconciler.d.ts +18 -18
- package/dist/main/services/views/placement-reconciler.js +91 -29
- package/dist/main/services/views/placement-test-driver.d.ts +27 -0
- package/dist/main/services/views/placement-test-driver.js +29 -0
- package/dist/main/services/views/refresh-styles.d.ts +10 -0
- package/dist/main/services/views/refresh-styles.js +57 -0
- package/dist/main/services/views/simulator-session-policy.d.ts +1 -27
- package/dist/main/services/views/simulator-session-policy.js +1 -98
- package/dist/main/services/views/view-manager-devtools-host-test-fixtures.d.ts +76 -0
- package/dist/main/services/views/view-manager-devtools-host-test-fixtures.js +184 -0
- package/dist/main/services/views/view-manager.d.ts +69 -88
- package/dist/main/services/views/view-manager.js +62 -7
- package/dist/main/services/views/workbench-view.d.ts +2 -0
- package/dist/main/services/views/workbench-view.js +104 -17
- 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.d.ts +11 -0
- package/dist/main/services/workbench-coi-server.js +126 -126
- 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 +88 -8
- package/dist/main/services/workbench-context.js +54 -6
- package/dist/main/services/workspace/compile-log-buffer.d.ts +40 -0
- package/dist/main/services/workspace/compile-log-buffer.js +41 -0
- 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/open-project-guards.d.ts +16 -0
- package/dist/main/services/workspace/open-project-guards.js +42 -0
- package/dist/main/services/workspace/rebuild-status.d.ts +37 -0
- package/dist/main/services/workspace/rebuild-status.js +36 -0
- package/dist/main/services/workspace/session-status-store.d.ts +47 -0
- package/dist/main/services/workspace/session-status-store.js +73 -0
- package/dist/main/services/workspace/status-tap.d.ts +20 -0
- package/dist/main/services/workspace/status-tap.js +32 -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-lifecycle-race.testutil.d.ts +22 -0
- package/dist/main/services/workspace/workspace-lifecycle-race.testutil.js +62 -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 +7 -5
- package/dist/main/services/workspace/workspace-service.js +96 -135
- 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 +46 -21
- package/dist/main/utils/ipc-registry.js +166 -76
- package/dist/main/utils/paths.d.ts +18 -0
- package/dist/main/utils/paths.js +18 -0
- package/dist/main/utils/sender-policy.d.ts +10 -1
- package/dist/main/utils/sender-policy.js +42 -4
- package/dist/main/utils/theme.d.ts +18 -8
- package/dist/main/utils/theme.js +19 -9
- package/dist/main/windows/internal-devtools-window/index.d.ts +66 -0
- package/dist/main/windows/internal-devtools-window/index.js +160 -0
- 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/main/windows/service-host-window/create.d.ts +1 -92
- package/dist/main/windows/service-host-window/create.js +1 -154
- package/dist/native-host/common/common.js +173 -53
- package/dist/native-host/container/pageFrame.css +1 -1
- package/dist/native-host/render/render.js +8278 -3659
- package/dist/native-host/service/service.js +2 -2
- package/dist/preload/index.d.ts +2 -0
- package/dist/preload/index.js +1 -0
- package/dist/preload/instrumentation/app-data.d.ts +2 -2
- package/dist/preload/instrumentation/app-data.js +1 -1
- package/dist/preload/instrumentation/wxml.js +1 -1
- package/dist/preload/runtime/bridge.d.ts +3 -3
- package/dist/preload/runtime/bridge.js +2 -2
- package/dist/preload/runtime/clipboard.d.ts +6 -0
- package/dist/preload/runtime/clipboard.js +12 -0
- package/dist/preload/runtime/host-dialog-advertiser.d.ts +22 -0
- package/dist/preload/runtime/host-dialog-advertiser.js +37 -0
- package/dist/preload/runtime/host-dialog-port.d.ts +44 -0
- package/dist/preload/runtime/host-dialog-port.js +53 -0
- package/dist/preload/runtime/host-dialog-runtime.d.ts +28 -0
- package/dist/preload/runtime/host-dialog-runtime.js +36 -0
- package/dist/preload/runtime/host-sidebar-advertiser.d.ts +19 -0
- package/dist/preload/runtime/host-sidebar-advertiser.js +35 -0
- package/dist/preload/runtime/host-sidebar-port.d.ts +44 -0
- package/dist/preload/runtime/host-sidebar-port.js +53 -0
- package/dist/preload/runtime/host-sidebar-runtime.d.ts +28 -0
- package/dist/preload/runtime/host-sidebar-runtime.js +36 -0
- package/dist/preload/runtime/host-slot-port-bridge.d.ts +18 -0
- package/dist/preload/runtime/host-slot-port-bridge.js +112 -0
- package/dist/preload/runtime/host-toolbar-advertiser.d.ts +5 -13
- package/dist/preload/runtime/host-toolbar-advertiser.js +18 -38
- package/dist/preload/runtime/host-toolbar-port.d.ts +9 -0
- package/dist/preload/runtime/host-toolbar-port.js +11 -95
- package/dist/preload/runtime/native-host.d.ts +14 -0
- package/dist/preload/runtime/native-host.js +5 -8
- package/dist/preload/runtime/node-bindings.d.ts +18 -0
- package/dist/preload/runtime/node-bindings.js +44 -0
- package/dist/preload/runtime/temp-files.js +9 -2
- package/dist/preload/runtime/wait-for-slot-root.d.ts +23 -0
- package/dist/preload/runtime/wait-for-slot-root.js +80 -0
- package/dist/preload/shared/api-compat.js +63 -41
- package/dist/preload/windows/host-dialog-runtime.cjs +360 -0
- package/dist/preload/windows/host-dialog-runtime.cjs.map +7 -0
- package/dist/preload/windows/host-dialog-runtime.d.ts +2 -0
- package/dist/preload/windows/host-dialog-runtime.js +13 -0
- package/dist/preload/windows/host-sidebar-runtime.cjs +361 -0
- package/dist/preload/windows/host-sidebar-runtime.cjs.map +7 -0
- package/dist/preload/windows/host-sidebar-runtime.d.ts +2 -0
- package/dist/preload/windows/host-sidebar-runtime.js +13 -0
- package/dist/preload/windows/host-toolbar-runtime.cjs +142 -52
- package/dist/preload/windows/host-toolbar-runtime.cjs.map +3 -3
- package/dist/preload/windows/main.cjs +4922 -1246
- package/dist/preload/windows/main.cjs.map +4 -4
- package/dist/preload/windows/main.css +428 -0
- package/dist/preload/windows/main.css.map +7 -0
- package/dist/preload/windows/simulator.cjs +376 -322
- package/dist/preload/windows/simulator.cjs.map +4 -4
- package/dist/preload/windows/simulator.js +376 -322
- package/dist/render-host/pageFrame.html +4 -4
- package/dist/render-host/preload.cjs +30 -0
- package/dist/render-host/render-inspect.js +184 -115
- 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-cZ9FlZZw.js +2 -0
- 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-DIFlRMKe.js +2 -0
- package/dist/renderer/assets/hostSidebarDefault-DRWh6OCt.js +2 -0
- package/dist/renderer/assets/index-CEL_XFge.js +2 -0
- package/dist/renderer/assets/input-CAObw95L.js +2 -0
- 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-DIw5wnYl.js +9 -0
- 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-BmLqiYxn.js +2 -0
- 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-D6AxXRk5.js +2 -0
- package/dist/renderer/assets/types-Bh0hA7El.js +2 -0
- package/dist/renderer/assets/updateDialog-CwndJ0Bl.js +2 -0
- package/dist/renderer/assets/utils-sEB5OZEQ.js +2 -0
- 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-C0Jkdlps.js +5 -0
- package/dist/renderer/assets/workbenchSettings-YD0Ctbm_.js +8 -0
- package/dist/renderer/entries/device-picker/index.html +28 -0
- package/dist/renderer/entries/host-sidebar-default/index.html +22 -0
- package/dist/renderer/entries/main/index.html +16 -7
- package/dist/renderer/entries/popover/index.html +16 -6
- package/dist/renderer/entries/project-create-dialog/index.html +27 -0
- package/dist/renderer/entries/settings/index.html +10 -5
- package/dist/renderer/entries/tooltip/index.html +21 -0
- package/dist/renderer/entries/update-dialog/index.html +25 -0
- package/dist/renderer/entries/workbench/index.html +49 -0
- package/dist/renderer/entries/workbench-settings/index.html +12 -5
- package/dist/service-host/appdata-set-data.cjs +39 -0
- package/dist/service-host/host-env-update.cjs +23 -0
- package/dist/service-host/preload.cjs +54 -48
- package/dist/service-host/service-message-queue.cjs +71 -0
- package/dist/service-host/sync-impls/menu-button-geometry.js +16 -5
- package/dist/service-host/sync-impls/menu-button.js +5 -3
- package/dist/service-host/sync-impls/system-info.js +31 -9
- package/dist/shared/bridge-channels.d.ts +1 -416
- package/dist/shared/bridge-channels.js +1 -89
- 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/constants.d.ts +22 -0
- package/dist/shared/constants.js +22 -0
- package/dist/shared/dmb-resource-url.d.ts +2 -0
- package/dist/shared/dmb-resource-url.js +2 -0
- package/dist/shared/ipc-channels-overlays.d.ts +162 -0
- package/dist/shared/ipc-channels-overlays.js +203 -0
- package/dist/shared/ipc-channels.d.ts +24 -154
- package/dist/shared/ipc-channels.js +48 -96
- package/dist/shared/ipc-schemas.d.ts +143 -54
- package/dist/shared/ipc-schemas.js +137 -45
- package/dist/shared/node-bindings.d.ts +2 -0
- package/dist/shared/node-bindings.js +2 -0
- package/dist/shared/project-window-types.d.ts +42 -0
- package/dist/shared/project-window-types.js +2 -0
- package/dist/shared/simulator-route.d.ts +8 -0
- package/dist/shared/simulator-route.js +15 -0
- package/dist/shared/simulator-ui.d.ts +61 -0
- package/dist/shared/simulator-ui.js +12 -0
- package/dist/shared/types.d.ts +126 -41
- package/dist/shared/view-ids.d.ts +10 -0
- package/dist/shared/view-ids.js +23 -0
- 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-DucLepkm.js +431 -0
- package/dist/simulator/assets/simulator-B4rbcOVt.js +10 -0
- package/dist/simulator/assets/simulator-mini-app-DFo7fhi5.js +2 -0
- package/dist/simulator/assets/simulator-ui-BupATgKo.css +1 -0
- package/dist/simulator/assets/simulator-ui-i3GCc7YJ.js +2 -0
- package/dist/simulator/simulator.html +4 -3
- package/dist/simulator/temp-files.d.ts +35 -0
- package/dist/simulator/temp-files.js +121 -0
- package/dist/simulator/types.d.ts +50 -0
- package/dist/simulator/types.js +2 -0
- package/dist/vscode-workbench/assets/__vite-browser-external-JIkWewFf.js +1 -0
- package/dist/vscode-workbench/assets/{dist-TpGpmMGi.js → dist-CXG-u1VB.js} +3 -3
- package/dist/vscode-workbench/assets/fs-core-worker-urls-DZ1nod84.js +1 -0
- package/dist/vscode-workbench/assets/fs-core.worker-Bnmpp6fo.js +1 -0
- package/dist/vscode-workbench/assets/fs-query.worker-cZ-7Fjch.js +2 -0
- package/dist/vscode-workbench/assets/{iconv-lite-umd-C9tiCAJa.js → iconv-lite-umd-Dxx9Qyb4.js} +1 -1
- package/dist/vscode-workbench/assets/{index-DJ1HyMZ7.js → index-6VJMsaWj.js} +475 -475
- package/dist/vscode-workbench/assets/{jschardet-DE1jV513.js → jschardet-Ba3D16vt.js} +1 -1
- package/dist/vscode-workbench/index.html +21 -1
- package/package.json +23 -13
- package/dist/main/services/views/destroy-child-view.d.ts +0 -9
- package/dist/main/services/views/destroy-child-view.js +0 -23
- package/dist/preload/instrumentation/wxml-extract.d.ts +0 -11
- package/dist/preload/instrumentation/wxml-extract.js +0 -382
- package/dist/preload/shared/sid-registry.d.ts +0 -11
- package/dist/preload/shared/sid-registry.js +0 -38
- package/dist/renderer/assets/constants-EAMiwL9_.js +0 -2
- package/dist/renderer/assets/index-BMqyDx71.js +0 -49
- package/dist/renderer/assets/input-CDAEwpBO.js +0 -2
- package/dist/renderer/assets/ipc-transport-B7eFOR68.css +0 -1
- package/dist/renderer/assets/ipc-transport-_G1k5V1p.js +0 -9
- package/dist/renderer/assets/popover-DEdjK14m.js +0 -2
- package/dist/renderer/assets/select-DpKPCh3y.js +0 -2
- package/dist/renderer/assets/settings-M5q2elUr.js +0 -2
- package/dist/renderer/assets/settings-api-CDlZoHiO.js +0 -2
- package/dist/renderer/assets/workbenchSettings-CT_H1WhV.js +0 -8
- package/dist/shared/appdata-accumulator.d.ts +0 -95
- package/dist/shared/appdata-accumulator.js +0 -218
- package/dist/shared/request-core.d.ts +0 -84
- package/dist/shared/request-core.js +0 -168
- package/dist/shared/simulator-api-metadata.d.ts +0 -26
- package/dist/shared/simulator-api-metadata.js +0 -59
- package/dist/shared/vpath.d.ts +0 -42
- package/dist/shared/vpath.js +0 -105
- package/dist/simulator/assets/bridge-channels-zhsumfky.js +0 -2
- package/dist/simulator/assets/device-shell-C-wcFq3Z.js +0 -2
- package/dist/simulator/assets/device-shell-CS1rqAQz.css +0 -1
- package/dist/simulator/assets/jsx-runtime-BDTY6fEq.js +0 -2
- package/dist/simulator/assets/simulator-DU3-fS3v.js +0 -10
- package/dist/simulator/assets/simulator-mini-app-DzfMfnVM.js +0 -2
- package/dist/simulator/device-shell/menu-button-geometry.js +0 -8
- package/dist/vscode-workbench/assets/__vite-browser-external-CXi6Kz9W.js +0 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { app, shell } from 'electron';
|
|
2
|
-
import { UpdateChannel } from '../../../shared/ipc-channels.js';
|
|
2
|
+
import { UpdateChannel } from '../../../shared/ipc-channels-overlays.js';
|
|
3
3
|
import { IpcRegistry } from '../../utils/ipc-registry.js';
|
|
4
4
|
export class UpdateManager {
|
|
5
5
|
checker;
|
|
6
|
-
|
|
6
|
+
showUpdatePanel;
|
|
7
|
+
notifyDownloadProgress;
|
|
8
|
+
hideUpdatePanel;
|
|
7
9
|
getCurrentVersion;
|
|
8
10
|
latestUpdate = null;
|
|
9
11
|
downloadedPath = null;
|
|
@@ -20,9 +22,19 @@ export class UpdateManager {
|
|
|
20
22
|
timer = null;
|
|
21
23
|
initialTimer = null;
|
|
22
24
|
ipc;
|
|
25
|
+
/**
|
|
26
|
+
* Set by `dispose()`. Clearing the timers only stops FUTURE ticks — an
|
|
27
|
+
* in-flight `checkAndNotify()` invocation (already past its `await
|
|
28
|
+
* this.check()`) has no timer left to cancel it, and would otherwise call
|
|
29
|
+
* `showUpdatePanel` after dispose has torn down the overlay panel that
|
|
30
|
+
* owns (e.g. `views.disposeAll()` destroying its WebContentsView).
|
|
31
|
+
*/
|
|
32
|
+
disposed = false;
|
|
23
33
|
constructor(opts) {
|
|
24
34
|
this.checker = opts.checker;
|
|
25
|
-
this.
|
|
35
|
+
this.showUpdatePanel = opts.showUpdatePanel;
|
|
36
|
+
this.notifyDownloadProgress = opts.notifyDownloadProgress;
|
|
37
|
+
this.hideUpdatePanel = opts.hideUpdatePanel;
|
|
26
38
|
this.getCurrentVersion = opts.getCurrentVersion ?? (() => app.getVersion());
|
|
27
39
|
this.ipc = new IpcRegistry(opts.senderPolicy);
|
|
28
40
|
this.registerIpc();
|
|
@@ -32,15 +44,29 @@ export class UpdateManager {
|
|
|
32
44
|
this.ipc
|
|
33
45
|
.handle(UpdateChannel.Check, async () => this.check())
|
|
34
46
|
.handle(UpdateChannel.Download, async () => this.download())
|
|
35
|
-
.handle(UpdateChannel.Install, async () => this.install())
|
|
47
|
+
.handle(UpdateChannel.Install, async () => this.install())
|
|
48
|
+
.on(UpdateChannel.Close, () => this.hideUpdatePanel());
|
|
36
49
|
}
|
|
37
50
|
async check() {
|
|
38
51
|
try {
|
|
39
52
|
const currentVersion = this.getCurrentVersion();
|
|
40
53
|
const info = await this.checker.checkForUpdates(currentVersion);
|
|
41
54
|
if (info) {
|
|
55
|
+
// The periodic timer re-runs check() forever (see startPeriodicCheck),
|
|
56
|
+
// including after the user already downloaded this same update but
|
|
57
|
+
// before they clicked Install. Only invalidate downloadedPath when the
|
|
58
|
+
// update identity actually changed — unconditionally nulling it here
|
|
59
|
+
// would silently no-op a later install() (it's a bare `if (this.downloadedPath)`)
|
|
60
|
+
// for anyone who takes longer than one check interval to act. Compare
|
|
61
|
+
// downloadUrl too, not just version: a re-uploaded/replaced asset can
|
|
62
|
+
// keep the same version string under a different URL, and reusing the
|
|
63
|
+
// stale downloadedPath would then install bytes that were never
|
|
64
|
+
// actually verified against this checkForUpdates() result.
|
|
65
|
+
const isSameUpdate = this.latestUpdate?.version === info.version &&
|
|
66
|
+
this.latestUpdate?.downloadUrl === info.downloadUrl;
|
|
42
67
|
this.latestUpdate = info;
|
|
43
|
-
|
|
68
|
+
if (!isSameUpdate)
|
|
69
|
+
this.downloadedPath = null;
|
|
44
70
|
return { hasUpdate: true, info };
|
|
45
71
|
}
|
|
46
72
|
return { hasUpdate: false };
|
|
@@ -56,7 +82,7 @@ export class UpdateManager {
|
|
|
56
82
|
}
|
|
57
83
|
try {
|
|
58
84
|
const filePath = await this.checker.downloadUpdate(this.latestUpdate, (percent) => {
|
|
59
|
-
this.
|
|
85
|
+
this.notifyDownloadProgress(percent);
|
|
60
86
|
});
|
|
61
87
|
this.downloadedPath = filePath;
|
|
62
88
|
return { success: true, filePath };
|
|
@@ -66,11 +92,23 @@ export class UpdateManager {
|
|
|
66
92
|
return { success: false, error: String(err) };
|
|
67
93
|
}
|
|
68
94
|
}
|
|
69
|
-
install() {
|
|
70
|
-
if (this.downloadedPath) {
|
|
71
|
-
|
|
72
|
-
app.quit();
|
|
95
|
+
async install() {
|
|
96
|
+
if (!this.downloadedPath) {
|
|
97
|
+
return { success: false, error: 'No update downloaded' };
|
|
73
98
|
}
|
|
99
|
+
// shell.openPath() resolves (never rejects) with an empty string on
|
|
100
|
+
// success or an error message on failure — it was previously fired
|
|
101
|
+
// fire-and-forget immediately followed by app.quit(), so a failure (e.g.
|
|
102
|
+
// no application associated with the installer) silently closed the app
|
|
103
|
+
// without ever launching the installer, and the renderer had no way to
|
|
104
|
+
// know anything went wrong.
|
|
105
|
+
const failure = await shell.openPath(this.downloadedPath);
|
|
106
|
+
if (failure) {
|
|
107
|
+
console.warn('[UpdateManager] install failed:', failure);
|
|
108
|
+
return { success: false, error: failure };
|
|
109
|
+
}
|
|
110
|
+
app.quit();
|
|
111
|
+
return { success: true };
|
|
74
112
|
}
|
|
75
113
|
/**
|
|
76
114
|
* Tear down timers + IPC handlers. Returns a Promise so callers that need
|
|
@@ -79,6 +117,7 @@ export class UpdateManager {
|
|
|
79
117
|
* the timer clears + handler removals are scheduled synchronously.
|
|
80
118
|
*/
|
|
81
119
|
dispose() {
|
|
120
|
+
this.disposed = true;
|
|
82
121
|
if (this.timer) {
|
|
83
122
|
clearInterval(this.timer);
|
|
84
123
|
this.timer = null;
|
|
@@ -95,12 +134,17 @@ export class UpdateManager {
|
|
|
95
134
|
}
|
|
96
135
|
async checkAndNotify() {
|
|
97
136
|
const result = await this.check();
|
|
137
|
+
// dispose() only cancels the timers that SCHEDULE future ticks — a tick
|
|
138
|
+
// already in flight (past this await) has nothing left to cancel it, and
|
|
139
|
+
// must not call into a torn-down panel/registry after the fact.
|
|
140
|
+
if (this.disposed)
|
|
141
|
+
return;
|
|
98
142
|
if (!result.hasUpdate || !result.info)
|
|
99
143
|
return;
|
|
100
144
|
if (this.hasNotified)
|
|
101
145
|
return;
|
|
102
146
|
this.hasNotified = true;
|
|
103
|
-
this.
|
|
147
|
+
this.showUpdatePanel(result.info);
|
|
104
148
|
}
|
|
105
149
|
}
|
|
106
150
|
//# sourceMappingURL=update-manager.js.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clears the right-panel Console panel's text-filter box on a FRESH project
|
|
3
|
+
* open, together with the stale persisted keys behind it.
|
|
4
|
+
*
|
|
5
|
+
* ── Why this exists ──────────────────────────────────────────────────────
|
|
6
|
+
* The Console filter text is a DevTools-owned setting that DevTools itself
|
|
7
|
+
* persists: it lives on the `devtools://` origin's localStorage, backed by the
|
|
8
|
+
* default session's on-disk storage (verified on disk:
|
|
9
|
+
* `~/Library/Application Support/Dimina DevTools/Local Storage/leveldb` holds a
|
|
10
|
+
* `console.textFilter` entry). An earlier implementation of the internal-log
|
|
11
|
+
* hiding wrote `-/^\[service\]/`-style negative filters straight into the box
|
|
12
|
+
* (see console-filter.ts's header for that history); that value still sits in
|
|
13
|
+
* localStorage and is restored on every project reopen / app restart. We do NOT
|
|
14
|
+
* fight DevTools' persistence mechanism here — instead, on each fresh project
|
|
15
|
+
* open we remove the stale keys and reset the visible box, so a project starts
|
|
16
|
+
* with the developer's own filter surface genuinely empty.
|
|
17
|
+
*
|
|
18
|
+
* ── When it runs ─────────────────────────────────────────────────────────
|
|
19
|
+
* Only the PROJECT-OPEN path arms this (see native-simulator-devtools-host.ts:
|
|
20
|
+
* `attach()` sets the flag; the injection consumes it once). Service-host pool
|
|
21
|
+
* swaps (hot-reload respawn) rebuild the front-end host too, but deliberately do
|
|
22
|
+
* NOT clear — the developer may legitimately have typed a filter during the
|
|
23
|
+
* session and a respawn must not drop in-flight work.
|
|
24
|
+
*
|
|
25
|
+
* ── Discipline (mirrors console-filter.ts) ────────────────────────────────
|
|
26
|
+
* In-realm bootstrap probe before touching `Console.ConsoleView.instance()` (an
|
|
27
|
+
* early construction transitively creates IssuesManager and permanently kills
|
|
28
|
+
* the front-end's own bootstrap — see frontend-bootstrap-gate.ts); bounded
|
|
29
|
+
* retry; silent degradation on any failure. The main process additionally holds
|
|
30
|
+
* this whole injection behind `whenFrontendBootstrapped`.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Build the `executeJavaScript` source that clears the Console filter box.
|
|
34
|
+
*
|
|
35
|
+
* Two levers, belt-and-suspenders:
|
|
36
|
+
* 1. remove the stale persisted keys (`console.textFilter` — the on-disk
|
|
37
|
+
* leftover we actually observed, and its kebab-case sibling) so a Console
|
|
38
|
+
* view constructed after this script reads an empty setting;
|
|
39
|
+
* 2. reset the already-constructed panel's visible box via
|
|
40
|
+
* `filter.textFilterUI.setValue('')`, which persists the empty value back
|
|
41
|
+
* through the panel's own setting path.
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildClearConsoleFilterScript(): string;
|
|
44
|
+
//# sourceMappingURL=clear-console-filter.d.ts.map
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clears the right-panel Console panel's text-filter box on a FRESH project
|
|
3
|
+
* open, together with the stale persisted keys behind it.
|
|
4
|
+
*
|
|
5
|
+
* ── Why this exists ──────────────────────────────────────────────────────
|
|
6
|
+
* The Console filter text is a DevTools-owned setting that DevTools itself
|
|
7
|
+
* persists: it lives on the `devtools://` origin's localStorage, backed by the
|
|
8
|
+
* default session's on-disk storage (verified on disk:
|
|
9
|
+
* `~/Library/Application Support/Dimina DevTools/Local Storage/leveldb` holds a
|
|
10
|
+
* `console.textFilter` entry). An earlier implementation of the internal-log
|
|
11
|
+
* hiding wrote `-/^\[service\]/`-style negative filters straight into the box
|
|
12
|
+
* (see console-filter.ts's header for that history); that value still sits in
|
|
13
|
+
* localStorage and is restored on every project reopen / app restart. We do NOT
|
|
14
|
+
* fight DevTools' persistence mechanism here — instead, on each fresh project
|
|
15
|
+
* open we remove the stale keys and reset the visible box, so a project starts
|
|
16
|
+
* with the developer's own filter surface genuinely empty.
|
|
17
|
+
*
|
|
18
|
+
* ── When it runs ─────────────────────────────────────────────────────────
|
|
19
|
+
* Only the PROJECT-OPEN path arms this (see native-simulator-devtools-host.ts:
|
|
20
|
+
* `attach()` sets the flag; the injection consumes it once). Service-host pool
|
|
21
|
+
* swaps (hot-reload respawn) rebuild the front-end host too, but deliberately do
|
|
22
|
+
* NOT clear — the developer may legitimately have typed a filter during the
|
|
23
|
+
* session and a respawn must not drop in-flight work.
|
|
24
|
+
*
|
|
25
|
+
* ── Discipline (mirrors console-filter.ts) ────────────────────────────────
|
|
26
|
+
* In-realm bootstrap probe before touching `Console.ConsoleView.instance()` (an
|
|
27
|
+
* early construction transitively creates IssuesManager and permanently kills
|
|
28
|
+
* the front-end's own bootstrap — see frontend-bootstrap-gate.ts); bounded
|
|
29
|
+
* retry; silent degradation on any failure. The main process additionally holds
|
|
30
|
+
* this whole injection behind `whenFrontendBootstrapped`.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Build the `executeJavaScript` source that clears the Console filter box.
|
|
34
|
+
*
|
|
35
|
+
* Two levers, belt-and-suspenders:
|
|
36
|
+
* 1. remove the stale persisted keys (`console.textFilter` — the on-disk
|
|
37
|
+
* leftover we actually observed, and its kebab-case sibling) so a Console
|
|
38
|
+
* view constructed after this script reads an empty setting;
|
|
39
|
+
* 2. reset the already-constructed panel's visible box via
|
|
40
|
+
* `filter.textFilterUI.setValue('')`, which persists the empty value back
|
|
41
|
+
* through the panel's own setting path.
|
|
42
|
+
*/
|
|
43
|
+
export function buildClearConsoleFilterScript() {
|
|
44
|
+
return `(function(){
|
|
45
|
+
var attempts = 0;
|
|
46
|
+
var MAX = 100;
|
|
47
|
+
function bootstrapReady() {
|
|
48
|
+
try {
|
|
49
|
+
var eui = globalThis.EUI;
|
|
50
|
+
if (!eui || !eui.ShortcutRegistry || !eui.ShortcutRegistry.ShortcutRegistry) return false;
|
|
51
|
+
eui.ShortcutRegistry.ShortcutRegistry.instance();
|
|
52
|
+
return true;
|
|
53
|
+
} catch (_) { return false; }
|
|
54
|
+
}
|
|
55
|
+
function tryClear() {
|
|
56
|
+
attempts++;
|
|
57
|
+
var scheduleRetry = attempts < MAX;
|
|
58
|
+
if (!bootstrapReady()) {
|
|
59
|
+
if (scheduleRetry) { setTimeout(tryClear, 100); return; }
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
try { localStorage.removeItem('console.textFilter'); } catch(_) {}
|
|
64
|
+
try { localStorage.removeItem('console.text-filter'); } catch(_) {}
|
|
65
|
+
var ConsoleNS = globalThis.Console;
|
|
66
|
+
var view = ConsoleNS && ConsoleNS.ConsoleView ? ConsoleNS.ConsoleView.instance() : null;
|
|
67
|
+
var f = view ? view.filter : null;
|
|
68
|
+
var box = f && f.textFilterUI;
|
|
69
|
+
if (!box || typeof box.setValue !== 'function' || typeof box.value !== 'function') {
|
|
70
|
+
if (scheduleRetry) { setTimeout(tryClear, 100); return; }
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
var current = box.value();
|
|
74
|
+
if (current) {
|
|
75
|
+
box.setValue('');
|
|
76
|
+
if (typeof f.updateCurrentFilter === 'function') f.updateCurrentFilter();
|
|
77
|
+
if (typeof f.onFilterChanged === 'function') f.onFilterChanged();
|
|
78
|
+
}
|
|
79
|
+
} catch(_) {
|
|
80
|
+
if (scheduleRetry) setTimeout(tryClear, 100);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
tryClear();
|
|
84
|
+
})()`;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=clear-console-filter.js.map
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fakes shaped like the Chrome DevTools front-end objects
|
|
3
|
+
* `buildInternalLogHideScript()`'s generated source talks to, shared by
|
|
4
|
+
* console-filter.test.ts (what the hook does) and
|
|
5
|
+
* console-filter-degradation.test.ts (what happens when the panel is not there
|
|
6
|
+
* or the front-end API has moved).
|
|
7
|
+
*
|
|
8
|
+
* These are STUBS OF A FOREIGN API, not a second implementation: every test
|
|
9
|
+
* runs the real generated script string through `new Function`, so the fakes
|
|
10
|
+
* only have to expose the handful of members the script reaches for. What they
|
|
11
|
+
* cannot prove is that the real front-end still has those members — that is
|
|
12
|
+
* e2e/console-filter-live.spec.ts's job.
|
|
13
|
+
*/
|
|
14
|
+
import { type Mock } from 'vitest';
|
|
15
|
+
export interface FakeViewMessage {
|
|
16
|
+
consoleMessage: () => {
|
|
17
|
+
messageText: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export type ShouldBeVisible = (this: unknown, viewMessage: FakeViewMessage) => boolean;
|
|
21
|
+
export interface FakeConsoleFilterClass {
|
|
22
|
+
original: Mock<ShouldBeVisible>;
|
|
23
|
+
prototype: {
|
|
24
|
+
shouldBeVisible?: ShouldBeVisible;
|
|
25
|
+
};
|
|
26
|
+
newInstance: () => {
|
|
27
|
+
shouldBeVisible: ShouldBeVisible;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface FakeConsoleView {
|
|
31
|
+
view: {
|
|
32
|
+
filter: {
|
|
33
|
+
currentFilter: object;
|
|
34
|
+
textFilterUI: {
|
|
35
|
+
value: () => string;
|
|
36
|
+
setValue: Mock<(next: string) => void>;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
onFilterChanged: Mock<() => void>;
|
|
40
|
+
};
|
|
41
|
+
setValue: Mock<(next: string) => void>;
|
|
42
|
+
onFilterChanged: Mock<() => void>;
|
|
43
|
+
filterText: () => string;
|
|
44
|
+
}
|
|
45
|
+
/** A ConsoleViewMessage stub exposing the single field the hook inspects. */
|
|
46
|
+
export declare function createViewMessage(messageText: string): FakeViewMessage;
|
|
47
|
+
/**
|
|
48
|
+
* A ConsoleFilter "class": one shared prototype carrying `shouldBeVisible`,
|
|
49
|
+
* plus a factory for further instances off that same prototype — what
|
|
50
|
+
* `ConsoleFilter.clone()` produces. `original` is the pre-existing
|
|
51
|
+
* implementation the hook must delegate to.
|
|
52
|
+
*/
|
|
53
|
+
export declare function createConsoleFilterClass(verdict?: boolean | ShouldBeVisible): FakeConsoleFilterClass;
|
|
54
|
+
/** A ConsoleFilter whose prototype chain carries no `shouldBeVisible` at all. */
|
|
55
|
+
export declare function createConsoleFilterClassWithoutHook(): {
|
|
56
|
+
prototype: Record<string, unknown>;
|
|
57
|
+
newInstance: () => object;
|
|
58
|
+
};
|
|
59
|
+
/** The ConsoleView surface the script reaches through: filter + refresh entry point. */
|
|
60
|
+
export declare function createConsoleView(currentFilter: object, initialFilterText?: string): FakeConsoleView;
|
|
61
|
+
/** A front end whose bootstrap has finished: the probe returns instead of throwing. */
|
|
62
|
+
export declare function createReadyEui(): {
|
|
63
|
+
ShortcutRegistry: {
|
|
64
|
+
ShortcutRegistry: {
|
|
65
|
+
instance: () => {};
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
export declare function createGlobalThis(view: unknown): {
|
|
70
|
+
EUI: {
|
|
71
|
+
ShortcutRegistry: {
|
|
72
|
+
ShortcutRegistry: {
|
|
73
|
+
instance: () => {};
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
Console: {
|
|
78
|
+
ConsoleView: {
|
|
79
|
+
instance: () => unknown;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
export declare function run(script: string, fakeGlobalThis: object): void;
|
|
84
|
+
/**
|
|
85
|
+
* Collect `console.warn` output as plain strings for the whole test file.
|
|
86
|
+
*
|
|
87
|
+
* Reading `warnSpy.mock.calls` instead would hand every assertion an untyped
|
|
88
|
+
* `any[]`; the degradation tests care about WHICH warning was emitted, so the
|
|
89
|
+
* text has to survive into the assertion with its type intact.
|
|
90
|
+
*/
|
|
91
|
+
export declare function recordWarnings(): {
|
|
92
|
+
messages: string[];
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=console-filter-test-fixtures.d.ts.map
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fakes shaped like the Chrome DevTools front-end objects
|
|
3
|
+
* `buildInternalLogHideScript()`'s generated source talks to, shared by
|
|
4
|
+
* console-filter.test.ts (what the hook does) and
|
|
5
|
+
* console-filter-degradation.test.ts (what happens when the panel is not there
|
|
6
|
+
* or the front-end API has moved).
|
|
7
|
+
*
|
|
8
|
+
* These are STUBS OF A FOREIGN API, not a second implementation: every test
|
|
9
|
+
* runs the real generated script string through `new Function`, so the fakes
|
|
10
|
+
* only have to expose the handful of members the script reaches for. What they
|
|
11
|
+
* cannot prove is that the real front-end still has those members — that is
|
|
12
|
+
* e2e/console-filter-live.spec.ts's job.
|
|
13
|
+
*/
|
|
14
|
+
import { vi } from 'vitest';
|
|
15
|
+
/** A ConsoleViewMessage stub exposing the single field the hook inspects. */
|
|
16
|
+
export function createViewMessage(messageText) {
|
|
17
|
+
return { consoleMessage: () => ({ messageText }) };
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A ConsoleFilter "class": one shared prototype carrying `shouldBeVisible`,
|
|
21
|
+
* plus a factory for further instances off that same prototype — what
|
|
22
|
+
* `ConsoleFilter.clone()` produces. `original` is the pre-existing
|
|
23
|
+
* implementation the hook must delegate to.
|
|
24
|
+
*/
|
|
25
|
+
export function createConsoleFilterClass(verdict = true) {
|
|
26
|
+
const impl = typeof verdict === 'function' ? verdict : () => verdict;
|
|
27
|
+
const original = vi.fn(impl);
|
|
28
|
+
const prototype = { shouldBeVisible: original };
|
|
29
|
+
return {
|
|
30
|
+
original,
|
|
31
|
+
prototype,
|
|
32
|
+
newInstance: () => Object.create(prototype),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** A ConsoleFilter whose prototype chain carries no `shouldBeVisible` at all. */
|
|
36
|
+
export function createConsoleFilterClassWithoutHook() {
|
|
37
|
+
const prototype = Object.create(null);
|
|
38
|
+
return { prototype, newInstance: () => Object.create(prototype) };
|
|
39
|
+
}
|
|
40
|
+
/** The ConsoleView surface the script reaches through: filter + refresh entry point. */
|
|
41
|
+
export function createConsoleView(currentFilter, initialFilterText = '') {
|
|
42
|
+
let filterText = initialFilterText;
|
|
43
|
+
const setValue = vi.fn((next) => { filterText = next; });
|
|
44
|
+
const onFilterChanged = vi.fn();
|
|
45
|
+
return {
|
|
46
|
+
view: {
|
|
47
|
+
filter: {
|
|
48
|
+
currentFilter,
|
|
49
|
+
textFilterUI: { value: () => filterText, setValue },
|
|
50
|
+
},
|
|
51
|
+
onFilterChanged,
|
|
52
|
+
},
|
|
53
|
+
setValue,
|
|
54
|
+
onFilterChanged,
|
|
55
|
+
filterText: () => filterText,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** A front end whose bootstrap has finished: the probe returns instead of throwing. */
|
|
59
|
+
export function createReadyEui() {
|
|
60
|
+
return { ShortcutRegistry: { ShortcutRegistry: { instance: () => ({}) } } };
|
|
61
|
+
}
|
|
62
|
+
export function createGlobalThis(view) {
|
|
63
|
+
return { EUI: createReadyEui(), Console: { ConsoleView: { instance: () => view } } };
|
|
64
|
+
}
|
|
65
|
+
export function run(script, fakeGlobalThis) {
|
|
66
|
+
new Function('globalThis', script)(fakeGlobalThis);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Collect `console.warn` output as plain strings for the whole test file.
|
|
70
|
+
*
|
|
71
|
+
* Reading `warnSpy.mock.calls` instead would hand every assertion an untyped
|
|
72
|
+
* `any[]`; the degradation tests care about WHICH warning was emitted, so the
|
|
73
|
+
* text has to survive into the assertion with its type intact.
|
|
74
|
+
*/
|
|
75
|
+
export function recordWarnings() {
|
|
76
|
+
const record = { messages: [] };
|
|
77
|
+
vi.spyOn(console, 'warn').mockImplementation((...args) => {
|
|
78
|
+
record.messages.push(args.map((arg) => String(arg)).join(' '));
|
|
79
|
+
});
|
|
80
|
+
return record;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=console-filter-test-fixtures.js.map
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hides dimina framework internal log lines from the right-panel
|
|
3
|
+
* (user-facing) Console, WITHOUT occupying the panel's visible text-filter
|
|
4
|
+
* box (see console-forward/internal-log.ts for the prefix judge this
|
|
5
|
+
* mirrors). The framework prints these via a plain `console.log` call INSIDE
|
|
6
|
+
* the inspected service host itself; main has no interception point for a
|
|
7
|
+
* native console line (see console-forward/index.ts's header comment), so the
|
|
8
|
+
* lever has to live inside the front-end.
|
|
9
|
+
*
|
|
10
|
+
* ── Why not the text-filter box ──────────────────────────────────────────
|
|
11
|
+
* Writing `-/^\[service\]/` into the Console's filter input does hide the
|
|
12
|
+
* lines, but the string then sits in the box the developer uses for their own
|
|
13
|
+
* filtering: it looks like something they typed, it silently comes back after
|
|
14
|
+
* every re-point (an empty box is indistinguishable from "never set", so
|
|
15
|
+
* clearing it just invites the next injection to rewrite it), and it consumes
|
|
16
|
+
* the one filter slot the panel offers. Driving the panel's own visibility
|
|
17
|
+
* judge instead leaves the box genuinely empty and under the developer's sole
|
|
18
|
+
* control.
|
|
19
|
+
*
|
|
20
|
+
* ── Mechanism ────────────────────────────────────────────────────────────
|
|
21
|
+
* `Console.ConsoleView.instance().filter.currentFilter` is the ConsoleFilter
|
|
22
|
+
* object the panel consults for every message, through its prototype method
|
|
23
|
+
* `shouldBeVisible(viewMessage)`. Wrapping that PROTOTYPE method (not the
|
|
24
|
+
* instance) rejects internal-log lines ahead of the panel's normal logic:
|
|
25
|
+
* - `currentFilter` is not the only ConsoleFilter the panel judges with:
|
|
26
|
+
* `ConsoleFilter.clone()` returns `new ConsoleFilter(...)`, and the
|
|
27
|
+
* sidebar filters through those clones. They share the prototype, so one
|
|
28
|
+
* patch covers all of them — and keeps covering them if the panel ever
|
|
29
|
+
* replaces `currentFilter` outright. (Editing the filter box does NOT
|
|
30
|
+
* replace it today: `ConsoleViewFilter` builds `currentFilter` once in its
|
|
31
|
+
* constructor and `updateCurrentFilter()` mutates that same instance's
|
|
32
|
+
* `parsedFilters` / `levelsMask` / `executionContext` in place.)
|
|
33
|
+
* - The wrapper delegates to the original for everything else, so a
|
|
34
|
+
* developer's own filter keeps working exactly as before — this only ever
|
|
35
|
+
* subtracts internal-log lines.
|
|
36
|
+
* Verified end-to-end against the real bundled front-end
|
|
37
|
+
* (e2e/console-filter-live.spec.ts): filter box reads empty, a `[service]`
|
|
38
|
+
* line logged afterwards stays hidden, an ordinary business log stays visible.
|
|
39
|
+
*
|
|
40
|
+
* This patches only the realm of the wc it is injected into — the right-panel
|
|
41
|
+
* front-end. The standalone floating debug window is a separate front-end with
|
|
42
|
+
* its own realm, and its content arrives by a different route entirely
|
|
43
|
+
* (main-side CDP capture → console-forward → global-console-mirror, which is
|
|
44
|
+
* deliberately UNFILTERED), so framework internals stay fully visible there.
|
|
45
|
+
* That window is the escape hatch for anyone who needs to read them.
|
|
46
|
+
*
|
|
47
|
+
* ── Timing ───────────────────────────────────────────────────────────────
|
|
48
|
+
* `Console.ConsoleView` has no lifecycle EVENT marking "fully constructed" —
|
|
49
|
+
* only the checkable condition of whether `.instance()` and the reach into
|
|
50
|
+
* `.filter.currentFilter` throw. The injection therefore retries on a bounded
|
|
51
|
+
* interval (see `LIVE_FILTER_POLL_MAX_ATTEMPTS`/`_INTERVAL_MS`) rather than
|
|
52
|
+
* guessing a fixed delay, and stops as soon as the wrapper is installed.
|
|
53
|
+
*
|
|
54
|
+
* Every tick gates on the front-end bootstrap probe BEFORE touching
|
|
55
|
+
* `ConsoleView.instance()`: an early construction transitively creates
|
|
56
|
+
* IssuesManager and permanently kills the front-end's own bootstrap
|
|
57
|
+
* (`ensureFirst` conflict in MainImpl.#createAppUI) — see
|
|
58
|
+
* frontend-bootstrap-gate.ts for the full mechanism. The main process
|
|
59
|
+
* additionally holds this whole injection behind `whenFrontendBootstrapped`;
|
|
60
|
+
* the in-realm probe is defense in depth for any other caller.
|
|
61
|
+
*/
|
|
62
|
+
/**
|
|
63
|
+
* First-arg prefix marking a dimina SERVICE-layer framework log. A line counts
|
|
64
|
+
* as internal when its text IS this tag or starts with the tag plus a space —
|
|
65
|
+
* the same shape console-forward/internal-log.ts requires of the first arg, so
|
|
66
|
+
* a business line like '[service]业务状态' stays visible on both sides.
|
|
67
|
+
* These entries are captured
|
|
68
|
+
* directly by the native CDP `Runtime.consoleAPICalled` attach on the service
|
|
69
|
+
* host (service-host/preload.cjs deliberately does not monkeypatch
|
|
70
|
+
* `console.*` there — see its header comment — so there is no main-owned code
|
|
71
|
+
* between the framework's call and the attached DevTools), which is why the
|
|
72
|
+
* front-end is the only place they can be hidden.
|
|
73
|
+
*
|
|
74
|
+
* RENDER-layer framework noise (`[system]`) needs nothing here:
|
|
75
|
+
* `console-forward/index.ts`'s `forwardRenderToServiceHost` gates on
|
|
76
|
+
* `isInternalLogMessage` and never injects those entries into the service
|
|
77
|
+
* host's console at all — filtered at the source, in main-owned code.
|
|
78
|
+
*/
|
|
79
|
+
export declare const INTERNAL_LOG_HIDDEN_PREFIX = "[service]";
|
|
80
|
+
/** Marker property stamped on the patched prototype, so a re-point re-running
|
|
81
|
+
* this script wraps once rather than nesting a wrapper per injection. Also
|
|
82
|
+
* the signal e2e specs read to tell "wrapper installed" from "not yet". */
|
|
83
|
+
export declare const INTERNAL_LOG_WRAPPER_MARK = "__diminaInternalLogHidden";
|
|
84
|
+
/**
|
|
85
|
+
* Build the `executeJavaScript` source that installs the internal-log
|
|
86
|
+
* visibility wrapper described in this module's header comment.
|
|
87
|
+
*
|
|
88
|
+
* Failure is loud but non-fatal: a front-end whose ConsoleFilter prototype has
|
|
89
|
+
* no `shouldBeVisible` (a future Chromium reshuffle) warns once and gives up
|
|
90
|
+
* rather than retrying a structurally absent surface — the panel then simply
|
|
91
|
+
* shows framework lines, which is the pre-existing behavior, not a breakage.
|
|
92
|
+
*/
|
|
93
|
+
export declare function buildInternalLogHideScript(hiddenPrefix?: string): string;
|
|
94
|
+
//# sourceMappingURL=console-filter.d.ts.map
|