@dimina-kit/devtools 0.4.0 → 0.5.0
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
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Devtools simulator temp-file registry.
|
|
3
|
+
*
|
|
4
|
+
* The simulator hands `chooseImage` / `chooseMedia` / `chooseVideo` /
|
|
5
|
+
* `compressImage` etc. results back to mini-program code as paths. Historically
|
|
6
|
+
* those paths were `blob:` URLs allocated via `URL.createObjectURL`, but the
|
|
7
|
+
* blob: scheme is local-to-the-renderer and cannot be served back into the
|
|
8
|
+
* webview's `persist:simulator` session through a `protocol.handle`. We switched
|
|
9
|
+
* to a custom `difile://_tmp/{uuid}` scheme so the main process can
|
|
10
|
+
* register a single `difile://` protocol handler and stream the bytes for any
|
|
11
|
+
* path, regardless of which renderer originally produced it.
|
|
12
|
+
*
|
|
13
|
+
* To keep the renderer-side cache and the main-process byte store in sync,
|
|
14
|
+
* `setTempFileSink` lets the preload bridge inject a sink that mirrors every
|
|
15
|
+
* `write` / `revoke` / `revokeAll` over IPC. Tests inject a stub sink.
|
|
16
|
+
*/
|
|
17
|
+
export interface TempFileSink {
|
|
18
|
+
write(path: string, blob: Blob): void;
|
|
19
|
+
writeAndWait?(path: string, blob: Blob): Promise<void>;
|
|
20
|
+
revoke(path: string): void;
|
|
21
|
+
revokeAll(): void;
|
|
22
|
+
}
|
|
23
|
+
export declare function setTempFileSink(sink: TempFileSink | null): void;
|
|
24
|
+
export declare function createTempFilePath(blob: Blob): string;
|
|
25
|
+
/**
|
|
26
|
+
* 返回路径前等待主进程确认字节已经登记。需要“成功回调后路径立即可读”的 API 使用此入口;
|
|
27
|
+
* 旧的同步创建入口保持不变,避免改变 chooseImage 等现有 API 的签名。
|
|
28
|
+
*/
|
|
29
|
+
export declare function createTempFilePathAsync(blob: Blob): Promise<string>;
|
|
30
|
+
export declare function registerTempFilePath(path: string, blob: Blob): void;
|
|
31
|
+
export declare function revokeTempFilePath(path: string): void;
|
|
32
|
+
export declare function revokeAllTempFilePaths(): void;
|
|
33
|
+
export declare function resolveTempFilePath(path: string): Promise<Blob>;
|
|
34
|
+
export declare function getTempFileName(path: string, blob: Blob, fallback?: string): string;
|
|
35
|
+
//# sourceMappingURL=temp-files.d.ts.map
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Devtools simulator temp-file registry.
|
|
3
|
+
*
|
|
4
|
+
* The simulator hands `chooseImage` / `chooseMedia` / `chooseVideo` /
|
|
5
|
+
* `compressImage` etc. results back to mini-program code as paths. Historically
|
|
6
|
+
* those paths were `blob:` URLs allocated via `URL.createObjectURL`, but the
|
|
7
|
+
* blob: scheme is local-to-the-renderer and cannot be served back into the
|
|
8
|
+
* webview's `persist:simulator` session through a `protocol.handle`. We switched
|
|
9
|
+
* to a custom `difile://_tmp/{uuid}` scheme so the main process can
|
|
10
|
+
* register a single `difile://` protocol handler and stream the bytes for any
|
|
11
|
+
* path, regardless of which renderer originally produced it.
|
|
12
|
+
*
|
|
13
|
+
* To keep the renderer-side cache and the main-process byte store in sync,
|
|
14
|
+
* `setTempFileSink` lets the preload bridge inject a sink that mirrors every
|
|
15
|
+
* `write` / `revoke` / `revokeAll` over IPC. Tests inject a stub sink.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* 和主进程那份存储用同一个上限(dimina-electron-runtime 的 `MAX_STORE_ENTRIES`),同样按
|
|
19
|
+
* 插入顺序淘汰。renderer 这份只是同一批字节的副本:主进程超出上限就把老的扔了,这边留更多
|
|
20
|
+
* 份也读不出别的东西,只是白占内存——一次 canvas 导出就可能有 32MB。被淘汰的路径下次读会
|
|
21
|
+
* 走 fetch 回主进程,拿不到才算真的过期。
|
|
22
|
+
*/
|
|
23
|
+
const MAX_TEMP_FILE_ENTRIES = 200;
|
|
24
|
+
const tempFiles = new Map();
|
|
25
|
+
let activeSink = null;
|
|
26
|
+
function rememberTempFile(path, blob) {
|
|
27
|
+
tempFiles.set(path, blob);
|
|
28
|
+
while (tempFiles.size > MAX_TEMP_FILE_ENTRIES) {
|
|
29
|
+
const oldest = tempFiles.keys().next();
|
|
30
|
+
if (oldest.done)
|
|
31
|
+
break;
|
|
32
|
+
tempFiles.delete(oldest.value);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function setTempFileSink(sink) {
|
|
36
|
+
activeSink = sink;
|
|
37
|
+
}
|
|
38
|
+
function cryptoRandomId() {
|
|
39
|
+
const c = globalThis.crypto;
|
|
40
|
+
if (c && typeof c.randomUUID === 'function')
|
|
41
|
+
return c.randomUUID();
|
|
42
|
+
return `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
43
|
+
}
|
|
44
|
+
function allocateTempFilePath(blob) {
|
|
45
|
+
const path = `difile://_tmp/${cryptoRandomId()}`;
|
|
46
|
+
rememberTempFile(path, blob);
|
|
47
|
+
return path;
|
|
48
|
+
}
|
|
49
|
+
export function createTempFilePath(blob) {
|
|
50
|
+
const path = allocateTempFilePath(blob);
|
|
51
|
+
activeSink?.write(path, blob);
|
|
52
|
+
return path;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 返回路径前等待主进程确认字节已经登记。需要“成功回调后路径立即可读”的 API 使用此入口;
|
|
56
|
+
* 旧的同步创建入口保持不变,避免改变 chooseImage 等现有 API 的签名。
|
|
57
|
+
*/
|
|
58
|
+
export async function createTempFilePathAsync(blob) {
|
|
59
|
+
const path = allocateTempFilePath(blob);
|
|
60
|
+
try {
|
|
61
|
+
if (activeSink?.writeAndWait) {
|
|
62
|
+
await activeSink.writeAndWait(path, blob);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
activeSink?.write(path, blob);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
// 写入没成功,这个路径就永远不会交到小程序手里,也就没有人再来 revoke 它。
|
|
70
|
+
// 留着 renderer 侧这份副本只会一直占内存——canvas 导出单份就可能有 32MB。
|
|
71
|
+
tempFiles.delete(path);
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
return path;
|
|
75
|
+
}
|
|
76
|
+
export function registerTempFilePath(path, blob) {
|
|
77
|
+
rememberTempFile(path, blob);
|
|
78
|
+
activeSink?.write(path, blob);
|
|
79
|
+
}
|
|
80
|
+
export function revokeTempFilePath(path) {
|
|
81
|
+
tempFiles.delete(path);
|
|
82
|
+
activeSink?.revoke(path);
|
|
83
|
+
}
|
|
84
|
+
export function revokeAllTempFilePaths() {
|
|
85
|
+
tempFiles.clear();
|
|
86
|
+
activeSink?.revokeAll();
|
|
87
|
+
}
|
|
88
|
+
export async function resolveTempFilePath(path) {
|
|
89
|
+
const cached = tempFiles.get(path);
|
|
90
|
+
if (cached)
|
|
91
|
+
return cached;
|
|
92
|
+
const response = await fetch(path);
|
|
93
|
+
if (!response.ok) {
|
|
94
|
+
throw new Error(`无法读取文件 ${path}`);
|
|
95
|
+
}
|
|
96
|
+
const blob = await response.blob();
|
|
97
|
+
// Cache the freshly fetched blob in-memory so subsequent reads are local.
|
|
98
|
+
// We bypass `registerTempFilePath` deliberately: this is a renderer-only
|
|
99
|
+
// cache fill, the main-process store already has the bytes (otherwise the
|
|
100
|
+
// fetch would not have returned them), so triggering sink.write would
|
|
101
|
+
// produce a redundant IPC.
|
|
102
|
+
rememberTempFile(path, blob);
|
|
103
|
+
return blob;
|
|
104
|
+
}
|
|
105
|
+
export function getTempFileName(path, blob, fallback = 'file') {
|
|
106
|
+
const named = blob;
|
|
107
|
+
if (typeof named.name === 'string' && named.name.trim()) {
|
|
108
|
+
return named.name;
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const url = new URL(path, window.location.href);
|
|
112
|
+
const segment = url.pathname.split('/').filter(Boolean).pop();
|
|
113
|
+
if (segment)
|
|
114
|
+
return decodeURIComponent(segment);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// Fall through to the caller-provided fallback.
|
|
118
|
+
}
|
|
119
|
+
return fallback;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=temp-files.js.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { NativeDeviceInfo } from '../shared/ipc-channels.js';
|
|
2
|
+
/** Callback type used by API functions */
|
|
3
|
+
export type Callback = (...args: unknown[]) => void;
|
|
4
|
+
/**
|
|
5
|
+
* Metric fallbacks derived from the CURRENTLY emulated device. Provided by
|
|
6
|
+
* SimulatorMiniApp.getDeviceMetrics() so the simulator-resident wx.* handlers
|
|
7
|
+
* (readWindowMetrics in simulator-api.ts) report the selected device instead
|
|
8
|
+
* of a hardcoded rect when neither `window.__deviceInfo` nor a host DOM rect
|
|
9
|
+
* is available.
|
|
10
|
+
*/
|
|
11
|
+
export interface DeviceMetrics {
|
|
12
|
+
pixelRatio: number;
|
|
13
|
+
screenWidth: number;
|
|
14
|
+
screenHeight: number;
|
|
15
|
+
statusBarHeight: number;
|
|
16
|
+
/** Per-edge safe-area insets (portrait). Single source of truth for the
|
|
17
|
+
* bottom inset — there is no separate `safeAreaBottom` field. */
|
|
18
|
+
safeAreaInsets: {
|
|
19
|
+
top: number;
|
|
20
|
+
right: number;
|
|
21
|
+
bottom: number;
|
|
22
|
+
left: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Context (`this`) available to each registered miniapp API handler.
|
|
27
|
+
* Bound by AppManager.registerApi → MiniApp.invokeApi.
|
|
28
|
+
*/
|
|
29
|
+
export interface MiniAppContext {
|
|
30
|
+
createCallbackFunction(fn: unknown): Callback | undefined;
|
|
31
|
+
appId: string;
|
|
32
|
+
parent?: {
|
|
33
|
+
el?: Element;
|
|
34
|
+
getStatusBarRect?: () => {
|
|
35
|
+
height: number;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Current device metric fallbacks (SimulatorMiniApp implements this; legacy
|
|
40
|
+
* or mock contexts without it keep the pre-device fallback behavior).
|
|
41
|
+
*/
|
|
42
|
+
getDeviceMetrics?(): DeviceMetrics;
|
|
43
|
+
/**
|
|
44
|
+
* The full currently-emulated device, when one is selected. Handlers that can
|
|
45
|
+
* answer from the runtime's single window-metric derivation
|
|
46
|
+
* (`deviceInfoToHostEnv`) use this instead of assembling their own rect.
|
|
47
|
+
*/
|
|
48
|
+
getCurrentDevice?(): NativeDeviceInfo | null;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./index-6VJMsaWj.js";var t=e(((e,t)=>{t.exports={}}));export default t();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./__vite-browser-external-
|
|
2
|
-
import{r as e,t}from"./index-DJ1HyMZ7.js";var n=class e{start;endExclusive;static ofLength(t){return new e(0,t)}static ofStartAndLength(t,n){return new e(t,t+n)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw Error(`Invalid range: [${e}, ${t})`)}get isEmpty(){return this.start===this.endExclusive}get length(){return this.endExclusive-this.start}delta(t){return new e(this.start+t,this.endExclusive+t)}deltaStart(t){return new e(this.start+t,this.endExclusive)}deltaEnd(t){return new e(this.start,this.endExclusive+t)}equals(e){return this.start===e.start&&this.endExclusive===e.endExclusive}containsRange(e){return this.start<=e.start&&e.endExclusive<=this.endExclusive}contains(e){return this.start<=e&&e<this.endExclusive}join(t){return new e(Math.min(this.start,t.start),Math.max(this.endExclusive,t.endExclusive))}intersect(t){let n=Math.max(this.start,t.start),r=Math.min(this.endExclusive,t.endExclusive);if(n<=r)return new e(n,r)}intersects(e){return Math.max(this.start,e.start)<Math.min(this.endExclusive,e.endExclusive)}intersectsOrTouches(e){return Math.max(this.start,e.start)<=Math.min(this.endExclusive,e.endExclusive)}slice(e){return e.slice(this.start,this.endExclusive)}toString(){return`[${this.start}, ${this.endExclusive})`}},r=class e{static instance=new e;isValid(){return!0}},i=class{timeout;startTime=Date.now();valid=!0;constructor(e){if(this.timeout=e,e<=0)throw Error(`timeout must be positive`)}isValid(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),this.valid}},a=class e{offset1;offset2;static zero=new e(0,0);static max=new e(2**53-1,2**53-1);constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(t){return t===0?this:new e(this.offset1+t,this.offset2+t)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},o=class e{seq1Range;seq2Range;static invert(t,n){let r=[];return c(t,(t,i)=>{r.push(e.fromOffsetPairs(t?t.getEndExclusives():a.zero,i?i.getStarts():new a(n,(t?t.seq2Range.endExclusive-t.seq1Range.endExclusive:0)+n)))}),r}static fromOffsetPairs(t,r){return new e(new n(t.offset1,r.offset1),new n(t.offset2,r.offset2))}static assertSorted(e){let t;for(let n of e){if(t&&!(t.seq1Range.endExclusive<=n.seq1Range.start&&t.seq2Range.endExclusive<=n.seq2Range.start))throw Error(`Sequence diffs must be sorted`);t=n}}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new e(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(t){return new e(this.seq1Range.join(t.seq1Range),this.seq2Range.join(t.seq2Range))}delta(t){return t===0?this:new e(this.seq1Range.delta(t),this.seq2Range.delta(t))}deltaStart(t){return t===0?this:new e(this.seq1Range.deltaStart(t),this.seq2Range.deltaStart(t))}deltaEnd(t){return t===0?this:new e(this.seq1Range.deltaEnd(t),this.seq2Range.deltaEnd(t))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(t){let n=this.seq1Range.intersect(t.seq1Range),r=this.seq2Range.intersect(t.seq2Range);if(!(!n||!r))return new e(n,r)}getStarts(){return new a(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new a(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},s=class e{diffs;hitTimeout;static trivial(t,r){return new e([new o(n.ofLength(t.length),n.ofLength(r.length))],!1)}static trivialTimedOut(t,r){return new e([new o(n.ofLength(t.length),n.ofLength(r.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}};function c(e,t){let n;for(let r of e)t(n,r),n=r;t(n,void 0)}var l=class{width;height;array=[];constructor(e,t){this.width=e,this.height=t,this.array=Array(e*t)}get(e,t){return this.array[e+t*this.width]}set(e,t,n){this.array[e+t*this.width]=n}},u=class{compute(e,t,i=r.instance,a){if(e.length===0||t.length===0)return s.trivial(e,t);let c=new l(e.length,t.length),u=new l(e.length,t.length),d=new l(e.length,t.length);for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++){if(!i.isValid())return s.trivialTimedOut(e,t);let o=n===0?0:c.get(n-1,r),l=r===0?0:c.get(n,r-1),f;e.getElement(n)===t.getElement(r)?(f=n===0||r===0?0:c.get(n-1,r-1),n>0&&r>0&&u.get(n-1,r-1)===3&&(f+=d.get(n-1,r-1)),f+=a?a(n,r):1):f=-1;let p=Math.max(o,l,f);if(p===f){let e=n>0&&r>0?d.get(n-1,r-1):0;d.set(n,r,e+1),u.set(n,r,3)}else p===o?(d.set(n,r,0),u.set(n,r,1)):p===l&&(d.set(n,r,0),u.set(n,r,2));c.set(n,r,p)}let f=[],p=e.length,m=t.length;function h(e,t){(e+1!==p||t+1!==m)&&f.push(new o(new n(e+1,p),new n(t+1,m))),p=e,m=t}let g=e.length-1,_=t.length-1;for(;g>=0&&_>=0;)u.get(g,_)===3?(h(g,_),g--,_--):u.get(g,_)===1?g--:_--;return h(-1,-1),f.reverse(),new s(f,!1)}},d=class{compute(e,t,i=r.instance){if(e.length===0||t.length===0)return s.trivial(e,t);let a=e,c=t;function l(e,t){for(;e<a.length&&t<c.length&&a.getElement(e)===c.getElement(t);)e++,t++;return e}let u=0,d=new p;d.set(0,l(0,0));let h=new m;h.set(0,d.get(0)===0?null:new f(null,0,0,d.get(0)));let g=0;loop:for(;;){if(u++,!i.isValid())return s.trivialTimedOut(a,c);let e=-Math.min(u,c.length+u%2),t=Math.min(u,a.length+u%2);for(g=e;g<=t;g+=2){let n=g===t?-1:d.get(g+1),r=g===e?-1:d.get(g-1)+1,i=Math.min(Math.max(n,r),a.length),o=i-g;if(i>a.length||o>c.length)continue;let s=l(i,o);d.set(g,s);let u=i===n?h.get(g+1):h.get(g-1);if(h.set(g,s===i?u:new f(u,i,o,s-i)),d.get(g)===a.length&&d.get(g)-g===c.length)break loop}}let _=h.get(g),v=[],y=a.length,b=c.length;for(;;){let e=_?_.x+_.length:0,t=_?_.y+_.length:0;if((e!==y||t!==b)&&v.push(new o(new n(e,y),new n(t,b))),!_)break;y=_.x,b=_.y,_=_.prev}return v.reverse(),new s(v,!1)}},f=class{prev;x;y;length;constructor(e,t,n,r){this.prev=e,this.x=t,this.y=n,this.length=r}},p=class{positiveArr=new Int32Array(10);negativeArr=new Int32Array(10);get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let e=this.negativeArr;this.negativeArr=new Int32Array(e.length*2),this.negativeArr.set(e)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){let e=this.positiveArr;this.positiveArr=new Int32Array(e.length*2),this.positiveArr.set(e)}this.positiveArr[e]=t}}},m=class{positiveArr=[];negativeArr=[];get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}};function h(e,t,n){let r=n;return r=g(e,t,r),r=g(e,t,r),r=_(e,t,r),r}function g(e,t,r){if(r.length===0)return r;let i=[];i.push(r[0]);for(let a=1;a<r.length;a++){let s=i[i.length-1],c=r[a];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){let r=c.seq1Range.start-s.seq1Range.endExclusive,a;for(a=1;a<=r&&!(e.getElement(c.seq1Range.start-a)!==e.getElement(c.seq1Range.endExclusive-a)||t.getElement(c.seq2Range.start-a)!==t.getElement(c.seq2Range.endExclusive-a));a++);if(a--,a===r){i[i.length-1]=new o(new n(s.seq1Range.start,c.seq1Range.endExclusive-r),new n(s.seq2Range.start,c.seq2Range.endExclusive-r));continue}c=c.delta(-a)}i.push(c)}let a=[];for(let r=0;r<i.length-1;r++){let s=i[r+1],c=i[r];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){let a=s.seq1Range.start-c.seq1Range.endExclusive,l;for(l=0;l<a&&!(!e.isStronglyEqual(c.seq1Range.start+l,c.seq1Range.endExclusive+l)||!t.isStronglyEqual(c.seq2Range.start+l,c.seq2Range.endExclusive+l));l++);if(l===a){i[r+1]=new o(new n(c.seq1Range.start+a,s.seq1Range.endExclusive),new n(c.seq2Range.start+a,s.seq2Range.endExclusive));continue}l>0&&(c=c.delta(l))}a.push(c)}return i.length>0&&a.push(i[i.length-1]),a}function _(e,t,r){if(!e.getBoundaryScore||!t.getBoundaryScore)return r;for(let i=0;i<r.length;i++){let a=i>0?r[i-1]:void 0,o=r[i],s=i+1<r.length?r[i+1]:void 0,c=new n(a?a.seq1Range.endExclusive+1:0,s?s.seq1Range.start-1:e.length),l=new n(a?a.seq2Range.endExclusive+1:0,s?s.seq2Range.start-1:t.length);o.seq1Range.isEmpty?r[i]=v(o,e,t,c,l):o.seq2Range.isEmpty&&(r[i]=v(o.swap(),t,e,l,c).swap())}return r}function v(e,t,n,r,i){let a=1;for(;e.seq1Range.start-a>=r.start&&e.seq2Range.start-a>=i.start&&n.isStronglyEqual(e.seq2Range.start-a,e.seq2Range.endExclusive-a)&&a<100;)a++;a--;let o=0;for(;e.seq1Range.start+o<r.endExclusive&&e.seq2Range.endExclusive+o<i.endExclusive&&n.isStronglyEqual(e.seq2Range.start+o,e.seq2Range.endExclusive+o)&&o<100;)o++;if(a===0&&o===0)return e;let s=0,c=-1;for(let r=-a;r<=o;r++){let i=e.seq2Range.start+r,a=e.seq2Range.endExclusive+r,o=e.seq1Range.start+r,l=t.getBoundaryScore(o)+n.getBoundaryScore(i)+n.getBoundaryScore(a);l>c&&(c=l,s=r)}return e.delta(s)}function y(e,t,n){let r=[];for(let e of n){let t=r[r.length-1];if(!t){r.push(e);continue}e.seq1Range.start-t.seq1Range.endExclusive<=2||e.seq2Range.start-t.seq2Range.endExclusive<=2?r[r.length-1]=new o(t.seq1Range.join(e.seq1Range),t.seq2Range.join(e.seq2Range)):r.push(e)}return r}function b(e,t,n,r,i=!1){let s=o.invert(n,e.length),c=[],l=new a(0,0);function u(n,a){if(n.offset1<l.offset1||n.offset2<l.offset2)return;let u=r(e,n.offset1),d=r(t,n.offset2);if(!u||!d)return;let f=new o(u,d),p=f.intersect(a),m=p.seq1Range.length,h=p.seq2Range.length;for(;s.length>0;){let n=s[0];if(!(n.seq1Range.intersects(f.seq1Range)||n.seq2Range.intersects(f.seq2Range)))break;let i=new o(r(e,n.seq1Range.start),r(t,n.seq2Range.start)),a=i.intersect(n);if(m+=a.seq1Range.length,h+=a.seq2Range.length,f=f.join(i),f.seq1Range.endExclusive>=n.seq1Range.endExclusive)s.shift();else break}(i&&m+h<f.seq1Range.length+f.seq2Range.length||m+h<(f.seq1Range.length+f.seq2Range.length)*2/3)&&c.push(f),l=f.getEndExclusives()}for(;s.length>0;){let e=s.shift();e.seq1Range.isEmpty||(u(e.getStarts(),e),u(e.getEndExclusives().delta(-1),e))}return x(n,c)}function x(e,t){let n=[];for(;e.length>0||t.length>0;){let r=e[0],i=t[0],a;a=r&&(!i||r.seq1Range.start<i.seq1Range.start)?e.shift():t.shift(),n.length>0&&n[n.length-1].seq1Range.endExclusive>=a.seq1Range.start?n[n.length-1]=n[n.length-1].join(a):n.push(a)}return n}function ee(e,t,r){let i=r;if(i.length===0)return i;let a=0,o;do{o=!1;let t=[i[0]];for(let r=1;r<i.length;r++){let a=i[r],s=t[t.length-1];function c(t,r){let i=new n(s.seq1Range.endExclusive,a.seq1Range.start);return e.getText(i).replace(/\s/g,``).length<=4&&(t.seq1Range.length+t.seq2Range.length>5||r.seq1Range.length+r.seq2Range.length>5)}c(s,a)?(o=!0,t[t.length-1]=t[t.length-1].join(a)):t.push(a)}i=t}while(a++<10&&o);return i}function te(e,t,r){let i=r;if(i.length===0)return i;let s=0,c;do{c=!1;let r=[i[0]];for(let a=1;a<i.length;a++){let o=i[a],s=r[r.length-1];function l(r,i){let a=new n(s.seq1Range.endExclusive,o.seq1Range.start);if(e.countLinesIn(a)>5||a.length>500)return!1;let c=e.getText(a).trim();if(c.length>20||c.split(/\r\n|\r|\n/).length>1)return!1;let l=e.countLinesIn(r.seq1Range),u=r.seq1Range.length,d=t.countLinesIn(r.seq2Range),f=r.seq2Range.length,p=e.countLinesIn(i.seq1Range),m=i.seq1Range.length,h=t.countLinesIn(i.seq2Range),g=i.seq2Range.length;function _(e){return Math.min(e,130)}return(_(l*40+u)**1.5+_(d*40+f)**1.5)**1.5+(_(p*40+m)**1.5+_(h*40+g)**1.5)**1.5>(130**1.5)**1.5*1.3}l(s,o)?(c=!0,r[r.length-1]=r[r.length-1].join(o)):r.push(o)}i=r}while(s++<10&&c);let l=[];return ne(i,(t,r,i)=>{let s=r;function c(e){return e.length>0&&e.trim().length<=3&&r.seq1Range.length+r.seq2Range.length>100}let u=e.extendToFullLines(r.seq1Range),d=e.getText(new n(u.start,r.seq1Range.start));c(d)&&(s=s.deltaStart(-d.length));let f=e.getText(new n(r.seq1Range.endExclusive,u.endExclusive));c(f)&&(s=s.deltaEnd(f.length));let p=o.fromOffsetPairs(t?t.getEndExclusives():a.zero,i?i.getStarts():a.max),m=s.intersect(p);l.length>0&&m.getStarts().equals(l[l.length-1].getEndExclusives())?l[l.length-1]=l[l.length-1].join(m):l.push(m)}),l}function ne(e,t){for(let n=0;n<e.length;n++)t(e[n-1],e[n],e[n+1])}var S={Space:32,Tab:9},re=class{trimmedHash;lines;constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){return 1e3-((e===0?0:ie(this.lines[e-1]))+(e===this.lines.length?0:ie(this.lines[e])))}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
|
|
3
|
-
`)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function ie(e){let t=0;for(;t<e.length&&(e.charCodeAt(t)===S.Space||e.charCodeAt(t)===S.Tab);)t++;return t}var C={LineFeed:10,CarriageReturn:13,Space:32,Tab:9,a:97,z:122,A:65,Z:90,Digit0:48,Digit9:57,Comma:44,Semicolon:59};function ae(e){return e===C.Space||e===C.Tab}var w=class e{startLineNumber;startColumn;endLineNumber;endColumn;constructor(e,t,n,r){this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r}static fromPositions(t,n){return new e(t.lineNumber,t.column,n.lineNumber,n.column)}},T=class{lineNumber;column;constructor(e,t){this.lineNumber=e,this.column=t}isBefore(e){return this.lineNumber<e.lineNumber?!0:e.lineNumber<this.lineNumber?!1:this.column<e.column}},oe=class{lines;considerWhitespaceChanges;elements=[];firstElementOffsetByLineIdx=[];lineStartOffsets=[];trimmedWsLengthsByLineIdx=[];_range;constructor(e,t,n){this.lines=e,this.considerWhitespaceChanges=n,this._range=t,this.firstElementOffsetByLineIdx.push(0);for(let t=this._range.startLineNumber;t<=this._range.endLineNumber;t++){let r=e[t-1],i=0;t===this._range.startLineNumber&&this._range.startColumn>1&&(i=this._range.startColumn-1,r=r.substring(i)),this.lineStartOffsets.push(i);let a=0;if(!n){let e=r.trimStart();a=r.length-e.length,r=e.trimEnd()}this.trimmedWsLengthsByLineIdx.push(a);let o=t===this._range.endLineNumber?Math.min(this._range.endColumn-1-i-a,r.length):r.length;for(let e=0;e<o;e++)this.elements.push(r.charCodeAt(e));t<this._range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new n(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(e=>String.fromCharCode(e)).join(``)}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let t=ue(e>0?this.elements[e-1]:-1),n=ue(e<this.elements.length?this.elements[e]:-1);if(t===7&&n===8)return 0;if(t===8)return 150;let r=0;return t!==n&&(r+=10,t===0&&n===1&&(r+=1)),r+=le(t),r+=le(n),r}translateOffset(e,t=`right`){let n=de(this.firstElementOffsetByLineIdx,t=>t<=e),r=e-this.firstElementOffsetByLineIdx[n];return new T(this._range.startLineNumber+n,1+this.lineStartOffsets[n]+r+(r===0&&t===`left`?0:this.trimmedWsLengthsByLineIdx[n]))}translateRange(e){let t=this.translateOffset(e.start,`right`),n=this.translateOffset(e.endExclusive,`left`);return n.isBefore(t)?w.fromPositions(n,n):w.fromPositions(t,n)}findWordContaining(e){if(e<0||e>=this.elements.length||!E(this.elements[e]))return;let t=e;for(;t>0&&E(this.elements[t-1]);)t--;let r=e;for(;r<this.elements.length&&E(this.elements[r]);)r++;return new n(t,r)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!E(this.elements[e]))return;let t=e;for(;t>0&&E(this.elements[t-1])&&!se(this.elements[t]);)t--;let r=e;for(;r<this.elements.length&&E(this.elements[r])&&!se(this.elements[r]);)r++;return new n(t,r)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){return new n(fe(this.firstElementOffsetByLineIdx,t=>t<=e.start)??0,pe(this.firstElementOffsetByLineIdx,t=>e.endExclusive<=t)??this.elements.length)}};function E(e){return e>=C.a&&e<=C.z||e>=C.A&&e<=C.Z||e>=C.Digit0&&e<=C.Digit9}function se(e){return e>=C.A&&e<=C.Z}var ce={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function le(e){return ce[e]}function ue(e){return e===C.LineFeed?8:e===C.CarriageReturn?7:ae(e)?6:e>=C.a&&e<=C.z?0:e>=C.A&&e<=C.Z?1:e>=C.Digit0&&e<=C.Digit9?2:e===-1?3:e===C.Comma||e===C.Semicolon?5:4}function de(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t(e[i])?n=i+1:r=i-1}return r}function fe(e,t){let n=de(e,t);return n>=0?e[n]:void 0}function pe(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t(e[i])?r=i-1:n=i+1}return n<e.length?e[n]:void 0}var D=class e{startLineNumber;endLineNumberExclusive;constructor(e,t){if(this.startLineNumber=e,this.endLineNumberExclusive=t,e>t)throw Error(`Invalid range: ${e} > ${t}`)}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(t){return new e(Math.min(this.startLineNumber,t.startLineNumber),Math.max(this.endLineNumberExclusive,t.endLineNumberExclusive))}intersectsOrTouches(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}toOffsetRange(){return new n(this.startLineNumber-1,this.endLineNumberExclusive-1)}toString(){return`[${this.startLineNumber}, ${this.endLineNumberExclusive})`}},O=class{originalRange;modifiedRange;constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`${me(this.originalRange)} <-> ${me(this.modifiedRange)}`}static assertSorted(e){for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(n.originalRange.endLineNumber<=r.originalRange.startLineNumber||n.originalRange.endLineNumber===r.originalRange.startLineNumber&&n.originalRange.endColumn<=r.originalRange.startColumn))throw Error(`RangeMappings must be sorted`)}}};function me(e){return`(${e.startLineNumber}:${e.startColumn})-(${e.endLineNumber}:${e.endColumn})`}var k=class{original;modified;constructor(e,t){this.original=e,this.modified=t}toString(){return`${this.original} <-> ${this.modified}`}toRangeMapping2(e,t){let n=(e,t)=>e>=1&&e<=t.length,r=(e,t,n)=>{if(e<1)return new T(1,1);if(e>n.length)return new T(n.length,n[n.length-1].length+1);let r=n[e-1];return t>r.length+1?new T(e,r.length+1):new T(e,t)};if(n(this.original.endLineNumberExclusive,e)&&n(this.modified.endLineNumberExclusive,t))return new O(new w(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new w(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new O(w.fromPositions(new T(this.original.startLineNumber,1),r(this.original.endLineNumberExclusive-1,2**53-1,e)),w.fromPositions(new T(this.modified.startLineNumber,1),r(this.modified.endLineNumberExclusive-1,2**53-1,t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new O(w.fromPositions(r(this.original.startLineNumber-1,2**53-1,e),r(this.original.endLineNumberExclusive-1,2**53-1,e)),w.fromPositions(r(this.modified.startLineNumber-1,2**53-1,t),r(this.modified.endLineNumberExclusive-1,2**53-1,t)));throw Error(`Invalid diff: cannot convert to range mapping`)}},A=class extends k{innerChanges;constructor(e,t,n){super(e,t),this.innerChanges=n}},j=class{changes;moves;hitTimeout;constructor(e,t,n){this.changes=e,this.moves=t,this.hitTimeout=n}},he=class{lineRangeMapping;changes;constructor(e,t){this.lineRangeMapping=e,this.changes=t}};function ge(e,t,n,r=!1){let i=[];for(let r of ve(e.map(e=>_e(e,t,n)),(e,t)=>e.original.intersectsOrTouches(t.original)||e.modified.intersectsOrTouches(t.modified))){let e=r[0],t=r[r.length-1];i.push(new A(e.original.join(t.original),e.modified.join(t.modified),r.map(e=>e.innerChanges[0])))}if(!r)for(let e=1;e<i.length;e++){let t=i[e-1],n=i[e];if(t.original.endLineNumberExclusive>n.original.startLineNumber||t.modified.endLineNumberExclusive>n.modified.startLineNumber)break}return i}function _e(e,t,n){let r=0,i=0;return e.modifiedRange.endColumn===1&&e.originalRange.endColumn===1&&e.originalRange.startLineNumber+r<=e.originalRange.endLineNumber&&e.modifiedRange.startLineNumber+r<=e.modifiedRange.endLineNumber&&(i=-1),e.modifiedRange.startColumn-1>=(n[e.modifiedRange.startLineNumber-1]?.length??0)&&e.originalRange.startColumn-1>=(t[e.originalRange.startLineNumber-1]?.length??0)&&e.originalRange.startLineNumber<=e.originalRange.endLineNumber+i&&e.modifiedRange.startLineNumber<=e.modifiedRange.endLineNumber+i&&(r=1),new A(new D(e.originalRange.startLineNumber+r,e.originalRange.endLineNumber+1+i),new D(e.modifiedRange.startLineNumber+r,e.modifiedRange.endLineNumber+1+i),[e])}function*ve(e,t){let n,r;for(let i of e)r!==void 0&&t(r,i)?n.push(i):(n&&(yield n),n=[i]),r=i;n&&(yield n)}var ye=class{lines;constructor(e){this.lines=e}get lineCount(){return this.lines.length}getLineContent(e){return this.lines[e-1]}},be=class{_dynamicProgrammingDiffing=new u;_myersDiffingAlgorithm=new d;computeDiff(e,t,a){if(e.length<=1&&Se(e,t))return new j([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new j([new A(new D(1,e.length+1),new D(1,t.length+1),[new O(new w(1,1,e.length,e[e.length-1].length+1),new w(1,1,t.length,t[t.length-1].length+1))])],[],!1);let s=a.maxComputationTimeMs===0?r.instance:new i(a.maxComputationTimeMs),c=!a.ignoreTrimWhitespace,l=new Map;function u(e){let t=l.get(e);return t===void 0&&(t=l.size,l.set(e,t)),t}let d=e.map(e=>u(e.trim())),f=t.map(e=>u(e.trim())),p=new re(d,e),m=new re(f,t),g=p.length+m.length<1700?this._dynamicProgrammingDiffing.compute(p,m,s,(n,r)=>e[n]===t[r]?t[r].length===0?.1:1+Math.log(1+t[r].length):.99):this._myersDiffingAlgorithm.compute(p,m,s),_=g.diffs,v=g.hitTimeout;_=h(p,m,_),_=ee(p,m,_);let y=[],b=r=>{if(c)for(let i=0;i<r;i++){let r=x+i,l=te+i;if(e[r]!==t[l]){let i=this._refineDiff(e,t,new o(new n(r,r+1),new n(l,l+1)),s,c,a);for(let e of i.mappings)y.push(e);i.hitTimeout&&(v=!0)}}},x=0,te=0;for(let n of _){b(n.seq1Range.start-x),x=n.seq1Range.endExclusive,te=n.seq2Range.endExclusive;let r=this._refineDiff(e,t,n,s,c,a);r.hitTimeout&&(v=!0);for(let e of r.mappings)y.push(e)}b(e.length-x);let ne=new ye(e),S=new ye(t);return new j(ge(y,ne.lines,S.lines),[],v)}_refineDiff(e,t,n,r,i,a){let o=xe(n).toRangeMapping2(e,t),s=new oe(e,o.originalRange,i),c=new oe(t,o.modifiedRange,i),l=s.length+c.length<500?this._dynamicProgrammingDiffing.compute(s,c,r):this._myersDiffingAlgorithm.compute(s,c,r),u=l.diffs;return u=h(s,c,u),u=b(s,c,u,(e,t)=>e.findWordContaining(t)),a.extendToSubwords&&(u=b(s,c,u,(e,t)=>e.findSubWordContaining(t),!0)),u=y(s,c,u),u=te(s,c,u),{mappings:u.map(e=>new O(s.translateRange(e.seq1Range),c.translateRange(e.seq2Range))),hitTimeout:l.hitTimeout}}};function xe(e){return new k(new D(e.seq1Range.start+1,e.seq1Range.endExclusive+1),new D(e.seq2Range.start+1,e.seq2Range.endExclusive+1))}function Se(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Ce(e,t,n){let r=B(e,K.__wbindgen_malloc,K.__wbindgen_realloc),i=G,a=B(t,K.__wbindgen_malloc,K.__wbindgen_realloc),o=G,s=K.computeDiff(r,i,a,o,n);if(s[2])throw V(s[1]);return V(s[0])}function we(e,t,n){let r=K.computeDiffLines(e,t,n);if(r[2])throw V(r[1]);return V(r[0])}function Te(){K.init()}function Ee(){return{__proto__:null,"./diff_wasm_bg.js":{__proto__:null,__wbg_Error_ef53bc310eb298a0:function(e,t){return Error(F(e,t))},__wbg_Number_6b506e6536831eaa:function(e){return Number(e)},__wbg_String_8564e559799eccda:function(e,t){let n=B(String(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;P().setInt32(e+4,r,!0),P().setInt32(e+0,n,!0)},__wbg___wbindgen_bigint_get_as_i64_38130e98eecd467d:function(e,t){let n=t,r=typeof n==`bigint`?n:void 0;P().setBigInt64(e+8,z(r)?BigInt(0):r,!0),P().setInt32(e+0,!z(r),!0)},__wbg___wbindgen_boolean_get_1a45e2c38d4d41b9:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return z(n)?16777215:+!!n},__wbg___wbindgen_debug_string_0accd80f45e5faa2:function(e,t){let n=B(M(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;P().setInt32(e+4,r,!0),P().setInt32(e+0,n,!0)},__wbg___wbindgen_in_70a403a56e771704:function(e,t){return e in t},__wbg___wbindgen_is_bigint_6ffd6468a9bc44b9:function(e){return typeof e==`bigint`},__wbg___wbindgen_is_function_754e9f305ff6029e:function(e){return typeof e==`function`},__wbg___wbindgen_is_null_87c3bfe968c6a5ad:function(e){return e===null},__wbg___wbindgen_is_object_56732c2bc353f41d:function(e){let t=e;return typeof t==`object`&&!!t},__wbg___wbindgen_is_undefined_67b456be8673d3d7:function(e){return e===void 0},__wbg___wbindgen_jsval_eq_1068e624fa87f6ab:function(e,t){return e===t},__wbg___wbindgen_jsval_loose_eq_2c56564c75129511:function(e,t){return e==t},__wbg___wbindgen_number_get_9bb1761122181af2:function(e,t){let n=t,r=typeof n==`number`?n:void 0;P().setFloat64(e+8,z(r)?0:r,!0),P().setInt32(e+0,!z(r),!0)},__wbg___wbindgen_string_get_72bdf95d3ae505b1:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=z(r)?0:B(r,K.__wbindgen_malloc,K.__wbindgen_realloc),a=G;P().setInt32(e+4,a,!0),P().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_1506f2235d1bdba0:function(e,t){throw Error(F(e,t))},__wbg_call_8a89609d89f6608a:function(){return R(function(e,t){return e.call(t)},arguments)},__wbg_done_60cf307fcc680536:function(e){return e.done},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(F(e,t))}finally{K.__wbindgen_free(n,r,1)}},__wbg_get_1f8f054ddbaa7db2:function(){return R(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_unchecked_33f6e5c9e2f2d6b2:function(e,t){return e[t>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(e,t){return e[t]},__wbg_instanceof_ArrayBuffer_8f49811467741499:function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Uint8Array_86f30649f63ef9c2:function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},__wbg_isArray_67c2c9c4313f4448:function(e){return Array.isArray(e)},__wbg_isSafeInteger_66acec27e09e99a7:function(e){return Number.isSafeInteger(e)},__wbg_iterator_8732428d309e270e:function(){return Symbol.iterator},__wbg_length_4a591ecaa01354d9:function(e){return e.length},__wbg_length_66f1a4b2e9026940:function(e){return e.length},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_new_578aeef4b6b94378:function(e){return new Uint8Array(e)},__wbg_new_ce1ab61c1c2b300d:function(){return{}},__wbg_new_d90091b82fdf5b91:function(){return[]},__wbg_next_9e03acdf51c4960d:function(e){return e.next},__wbg_next_eb8ca7351fa27906:function(){return R(function(e){return e.next()},arguments)},__wbg_prototypesetcall_3249fc62a0fafa30:function(e,t,n){Uint8Array.prototype.set.call(Oe(e,t),n)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_dca99999bba88a9a:function(e,t,n){e[t>>>0]=n},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=B(n,K.__wbindgen_malloc,K.__wbindgen_realloc),i=G;P().setInt32(e+4,i,!0),P().setInt32(e+0,r,!0)},__wbg_value_f3625092ee4b37f4:function(e){return e.value},__wbindgen_cast_0000000000000001:function(e){return e},__wbindgen_cast_0000000000000002:function(e,t){return F(e,t)},__wbindgen_cast_0000000000000003:function(e){return BigInt.asUintN(64,e)},__wbindgen_init_externref_table:function(){let e=K.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function De(e){let t=K.__externref_table_alloc();return K.__wbindgen_externrefs.set(t,e),t}function M(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,n=`[`;t>0&&(n+=M(e[0]));for(let r=1;r<t;r++)n+=`, `+M(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function Oe(e,t){return e>>>=0,L().subarray(e/1,e/1+t)}var N=null;function P(){return(N===null||N.buffer.detached===!0||N.buffer.detached===void 0&&N.buffer!==K.memory.buffer)&&(N=new DataView(K.memory.buffer)),N}function F(e,t){return Ae(e>>>0,t)}var I=null;function L(){return(I===null||I.byteLength===0)&&(I=new Uint8Array(K.memory.buffer)),I}function R(e,t){try{return e.apply(this,t)}catch(e){let t=De(e);K.__wbindgen_exn_store(t)}}function z(e){return e==null}function B(e,t,n){if(n===void 0){let n=W.encode(e),r=t(n.length,1)>>>0;return L().subarray(r,r+n.length).set(n),G=n.length,r}let r=e.length,i=t(r,1)>>>0,a=L(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=L().subarray(i+o,i+r),a=W.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return G=o,i}function V(e){let t=K.__wbindgen_externrefs.get(e);return K.__externref_table_dealloc(e),t}var H=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});H.decode();var ke=2146435072,U=0;function Ae(e,t){return U+=t,U>=ke&&(H=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),H.decode(),U=t),H.decode(L().subarray(e,e+t))}var W=new TextEncoder;`encodeInto`in W||(W.encodeInto=function(e,t){let n=W.encode(e);return t.set(n),{read:e.length,written:n.length}});var G=0,K;function je(e,t){return K=e.exports,N=null,I=null,K.__wbindgen_start(),K}async function Me(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}function Ne(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=Ee();return e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e)),je(new WebAssembly.Instance(e,t))}async function Pe(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),e===void 0&&(e=new URL(new URL(``+new URL(`diff_wasm_bg-c6YkaZRL-c6YkaZRL.wasm`,import.meta.url).href,``+import.meta.url).href));let t=Ee();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Me(await e,t);return je(n)}var Fe=Object.freeze({__proto__:null,computeDiff:Ce,computeDiffLines:we,default:Pe,init:Te,initSync:Ne}),q=null,J=null;async function Ie(){return q||J||(J=(async()=>{let n=new URL(new URL(``+new URL(`diff_wasm_bg-c6YkaZRL-c6YkaZRL.wasm`,import.meta.url).href,``+import.meta.url).href),r=n;if(typeof process<`u`&&process.versions?.node){let{readFile:i}=await t(async()=>{let{readFile:t}=await import(`./__vite-browser-external-CXi6Kz9W.js`).then(t=>e(t.default,1));return{readFile:t}},__vite__mapDeps([0,1]),import.meta.url);r=await i(n)}return await Pe({module_or_path:r}),Te(),q=Fe,q})(),J)}function Le(){if(!q)throw Error(`WASM not initialized. Call initWasm() first and await it.`);return q}function Re(e){return new j(e.changes.map(ze),e.moves.map(Ve),e.hitTimeout)}function ze(e){let t=e.innerChanges?.map(Be);return new A(new D(e.original.startLineNumber,e.original.endLineNumberExclusive),new D(e.modified.startLineNumber,e.modified.endLineNumberExclusive),t)}function Be(e){return new O(new w(e.originalStartLine,e.originalStartColumn,e.originalEndLine,e.originalEndColumn),new w(e.modifiedStartLine,e.modifiedStartColumn,e.modifiedEndLine,e.modifiedEndColumn))}function Ve(e){return new he(new k(new D(e.lineRangeMapping.original.startLineNumber,e.lineRangeMapping.original.endLineNumberExclusive),new D(e.lineRangeMapping.modified.startLineNumber,e.lineRangeMapping.modified.endLineNumberExclusive)),e.changes.map(ze))}var He=class{original;modified;constructor(e,t){this.original=e,this.modified=t}toString(){return`${this.original} <-> ${this.modified}`}},Y=class{range;newText;constructor(e,t){this.range=e,this.newText=t}get isEmpty(){return this.range.isEmpty&&this.newText.length===0}toString(){return`${this.range}->${JSON.stringify(this.newText)}`}},Ue=class e{replacements;static empty=new e([]);static single(t){return new e([t])}static of(t){for(let e=1;e<t.length;e++){let n=t[e-1],r=t[e];if(n.range.endExclusive>r.range.start)throw Error(`StringEdit.of: replacements must be sorted and non-overlapping (${n.range} vs ${r.range})`)}return new e(t)}constructor(e){this.replacements=e}get isEmpty(){return this.replacements.length===0}apply(e){if(this.replacements.length===0)return e;let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.range.start)),t.push(r.newText),n=r.range.endExclusive;return t.push(e.substring(n)),t.join(``)}inverse(t){let r=[],i=0;for(let e of this.replacements){let a=e.range.start+i,o=a+e.newText.length,s=t.substring(e.range.start,e.range.endExclusive);r.push(new Y(new n(a,o),s)),i+=e.newText.length-e.range.length}return new e(r)}normalize(){let t=[];for(let e of this.replacements){if(e.isEmpty)continue;let r=t[t.length-1];r&&r.range.endExclusive===e.range.start?t[t.length-1]=new Y(new n(r.range.start,e.range.endExclusive),r.newText+e.newText):t.push(e)}return new e(t)}toString(){return`StringEdit[${this.replacements.map(e=>e.toString()).join(`, `)}]`}},X=class{range;newText;data;constructor(e,t,n){this.range=e,this.newText=t,this.data=n}get isEmpty(){return this.range.isEmpty&&this.newText.length===0}toString(){return`${this.range}->${JSON.stringify(this.newText)}#${this.data}`}},We=class e{replacements;static empty(){return new e([])}static single(t){return new e([t])}static of(t){for(let e=1;e<t.length;e++){let n=t[e-1],r=t[e];if(n.range.endExclusive>r.range.start)throw Error(`AnnotatedStringEdit.of: replacements must be sorted and non-overlapping (${n.range} vs ${r.range})`)}return new e(t)}constructor(e){this.replacements=e}get isEmpty(){return this.replacements.length===0}apply(e){if(this.replacements.length===0)return e;let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.range.start)),t.push(r.newText),n=r.range.endExclusive;return t.push(e.substring(n)),t.join(``)}inverse(t,r){let i=[],a=0;for(let e of this.replacements){let o=e.range.start+a,s=o+e.newText.length,c=t.substring(e.range.start,e.range.endExclusive);i.push(new X(new n(o,s),c,r(e.data))),a+=e.newText.length-e.range.length}return new e(i)}normalize(){let t=[];for(let e of this.replacements){if(e.isEmpty)continue;let r=t[t.length-1];if(r&&r.range.endExclusive===e.range.start){let i=r.data.join(e.data);if(i!==void 0){t[t.length-1]=new X(new n(r.range.start,e.range.endExclusive),r.newText+e.newText,i);continue}}t.push(e)}return new e(t)}mapData(t){return new e(this.replacements.map(e=>new X(e.range,e.newText,t(e.data))))}stripData(){return Ue.of(this.replacements.map(e=>new Y(e.range,e.newText)))}toString(){return`AnnotatedStringEdit[${this.replacements.map(e=>e.toString()).join(`, `)}]`}},Ge=class e{isFormattingChange;static change=new e(!1);static formatting=new e(!0);constructor(e){this.isFormattingChange=e}join(e){if(this.isFormattingChange===e.isFormattingChange)return this}toString(){return this.isFormattingChange?`formatting`:`change`}},Ke=class{range;innerEdit;constructor(e,t){this.range=e,this.innerEdit=t}toString(){return`Move ${this.range}`+(this.innerEdit.isEmpty?``:` (${this.innerEdit})`)}},qe=class{edits;moves;hitTimeout;constructor(e,t,n){this.edits=e,this.moves=t,this.hitTimeout=n}};async function Je(e={}){return e.useWasm?(await Ie(),new Xe(e.algorithm)):new Ye(e.algorithm)}var Ye=class{_algorithm;_impl=new be;constructor(e){this._algorithm=e}computeDiff(e,t,n){let r=e.split(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./__vite-browser-external-JIkWewFf.js","./index-6VJMsaWj.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e,t}from"./index-6VJMsaWj.js";var n=class e{start;endExclusive;static ofLength(t){return new e(0,t)}static ofStartAndLength(t,n){return new e(t,t+n)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw Error(`Invalid range: [${e}, ${t})`)}get isEmpty(){return this.start===this.endExclusive}get length(){return this.endExclusive-this.start}delta(t){return new e(this.start+t,this.endExclusive+t)}deltaStart(t){return new e(this.start+t,this.endExclusive)}deltaEnd(t){return new e(this.start,this.endExclusive+t)}equals(e){return this.start===e.start&&this.endExclusive===e.endExclusive}containsRange(e){return this.start<=e.start&&e.endExclusive<=this.endExclusive}contains(e){return this.start<=e&&e<this.endExclusive}join(t){return new e(Math.min(this.start,t.start),Math.max(this.endExclusive,t.endExclusive))}intersect(t){let n=Math.max(this.start,t.start),r=Math.min(this.endExclusive,t.endExclusive);if(n<=r)return new e(n,r)}intersects(e){return Math.max(this.start,e.start)<Math.min(this.endExclusive,e.endExclusive)}intersectsOrTouches(e){return Math.max(this.start,e.start)<=Math.min(this.endExclusive,e.endExclusive)}slice(e){return e.slice(this.start,this.endExclusive)}toString(){return`[${this.start}, ${this.endExclusive})`}},r=class e{static instance=new e;isValid(){return!0}},i=class{timeout;startTime=Date.now();valid=!0;constructor(e){if(this.timeout=e,e<=0)throw Error(`timeout must be positive`)}isValid(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),this.valid}},a=class e{offset1;offset2;static zero=new e(0,0);static max=new e(2**53-1,2**53-1);constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(t){return t===0?this:new e(this.offset1+t,this.offset2+t)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},o=class e{seq1Range;seq2Range;static invert(t,n){let r=[];return c(t,(t,i)=>{r.push(e.fromOffsetPairs(t?t.getEndExclusives():a.zero,i?i.getStarts():new a(n,(t?t.seq2Range.endExclusive-t.seq1Range.endExclusive:0)+n)))}),r}static fromOffsetPairs(t,r){return new e(new n(t.offset1,r.offset1),new n(t.offset2,r.offset2))}static assertSorted(e){let t;for(let n of e){if(t&&!(t.seq1Range.endExclusive<=n.seq1Range.start&&t.seq2Range.endExclusive<=n.seq2Range.start))throw Error(`Sequence diffs must be sorted`);t=n}}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new e(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(t){return new e(this.seq1Range.join(t.seq1Range),this.seq2Range.join(t.seq2Range))}delta(t){return t===0?this:new e(this.seq1Range.delta(t),this.seq2Range.delta(t))}deltaStart(t){return t===0?this:new e(this.seq1Range.deltaStart(t),this.seq2Range.deltaStart(t))}deltaEnd(t){return t===0?this:new e(this.seq1Range.deltaEnd(t),this.seq2Range.deltaEnd(t))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(t){let n=this.seq1Range.intersect(t.seq1Range),r=this.seq2Range.intersect(t.seq2Range);if(!(!n||!r))return new e(n,r)}getStarts(){return new a(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new a(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},s=class e{diffs;hitTimeout;static trivial(t,r){return new e([new o(n.ofLength(t.length),n.ofLength(r.length))],!1)}static trivialTimedOut(t,r){return new e([new o(n.ofLength(t.length),n.ofLength(r.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}};function c(e,t){let n;for(let r of e)t(n,r),n=r;t(n,void 0)}var l=class{width;height;array=[];constructor(e,t){this.width=e,this.height=t,this.array=Array(e*t)}get(e,t){return this.array[e+t*this.width]}set(e,t,n){this.array[e+t*this.width]=n}},u=class{compute(e,t,i=r.instance,a){if(e.length===0||t.length===0)return s.trivial(e,t);let c=new l(e.length,t.length),u=new l(e.length,t.length),d=new l(e.length,t.length);for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++){if(!i.isValid())return s.trivialTimedOut(e,t);let o=n===0?0:c.get(n-1,r),l=r===0?0:c.get(n,r-1),f;e.getElement(n)===t.getElement(r)?(f=n===0||r===0?0:c.get(n-1,r-1),n>0&&r>0&&u.get(n-1,r-1)===3&&(f+=d.get(n-1,r-1)),f+=a?a(n,r):1):f=-1;let p=Math.max(o,l,f);if(p===f){let e=n>0&&r>0?d.get(n-1,r-1):0;d.set(n,r,e+1),u.set(n,r,3)}else p===o?(d.set(n,r,0),u.set(n,r,1)):p===l&&(d.set(n,r,0),u.set(n,r,2));c.set(n,r,p)}let f=[],p=e.length,m=t.length;function h(e,t){(e+1!==p||t+1!==m)&&f.push(new o(new n(e+1,p),new n(t+1,m))),p=e,m=t}let g=e.length-1,_=t.length-1;for(;g>=0&&_>=0;)u.get(g,_)===3?(h(g,_),g--,_--):u.get(g,_)===1?g--:_--;return h(-1,-1),f.reverse(),new s(f,!1)}},d=class{compute(e,t,i=r.instance){if(e.length===0||t.length===0)return s.trivial(e,t);let a=e,c=t;function l(e,t){for(;e<a.length&&t<c.length&&a.getElement(e)===c.getElement(t);)e++,t++;return e}let u=0,d=new p;d.set(0,l(0,0));let h=new m;h.set(0,d.get(0)===0?null:new f(null,0,0,d.get(0)));let g=0;loop:for(;;){if(u++,!i.isValid())return s.trivialTimedOut(a,c);let e=-Math.min(u,c.length+u%2),t=Math.min(u,a.length+u%2);for(g=e;g<=t;g+=2){let n=g===t?-1:d.get(g+1),r=g===e?-1:d.get(g-1)+1,i=Math.min(Math.max(n,r),a.length),o=i-g;if(i>a.length||o>c.length)continue;let s=l(i,o);d.set(g,s);let u=i===n?h.get(g+1):h.get(g-1);if(h.set(g,s===i?u:new f(u,i,o,s-i)),d.get(g)===a.length&&d.get(g)-g===c.length)break loop}}let _=h.get(g),v=[],y=a.length,b=c.length;for(;;){let e=_?_.x+_.length:0,t=_?_.y+_.length:0;if((e!==y||t!==b)&&v.push(new o(new n(e,y),new n(t,b))),!_)break;y=_.x,b=_.y,_=_.prev}return v.reverse(),new s(v,!1)}},f=class{prev;x;y;length;constructor(e,t,n,r){this.prev=e,this.x=t,this.y=n,this.length=r}},p=class{positiveArr=new Int32Array(10);negativeArr=new Int32Array(10);get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let e=this.negativeArr;this.negativeArr=new Int32Array(e.length*2),this.negativeArr.set(e)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){let e=this.positiveArr;this.positiveArr=new Int32Array(e.length*2),this.positiveArr.set(e)}this.positiveArr[e]=t}}},m=class{positiveArr=[];negativeArr=[];get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}};function h(e,t,n){let r=n;return r=g(e,t,r),r=g(e,t,r),r=_(e,t,r),r}function g(e,t,r){if(r.length===0)return r;let i=[];i.push(r[0]);for(let a=1;a<r.length;a++){let s=i[i.length-1],c=r[a];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){let r=c.seq1Range.start-s.seq1Range.endExclusive,a;for(a=1;a<=r&&!(e.getElement(c.seq1Range.start-a)!==e.getElement(c.seq1Range.endExclusive-a)||t.getElement(c.seq2Range.start-a)!==t.getElement(c.seq2Range.endExclusive-a));a++);if(a--,a===r){i[i.length-1]=new o(new n(s.seq1Range.start,c.seq1Range.endExclusive-r),new n(s.seq2Range.start,c.seq2Range.endExclusive-r));continue}c=c.delta(-a)}i.push(c)}let a=[];for(let r=0;r<i.length-1;r++){let s=i[r+1],c=i[r];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){let a=s.seq1Range.start-c.seq1Range.endExclusive,l;for(l=0;l<a&&!(!e.isStronglyEqual(c.seq1Range.start+l,c.seq1Range.endExclusive+l)||!t.isStronglyEqual(c.seq2Range.start+l,c.seq2Range.endExclusive+l));l++);if(l===a){i[r+1]=new o(new n(c.seq1Range.start+a,s.seq1Range.endExclusive),new n(c.seq2Range.start+a,s.seq2Range.endExclusive));continue}l>0&&(c=c.delta(l))}a.push(c)}return i.length>0&&a.push(i[i.length-1]),a}function _(e,t,r){if(!e.getBoundaryScore||!t.getBoundaryScore)return r;for(let i=0;i<r.length;i++){let a=i>0?r[i-1]:void 0,o=r[i],s=i+1<r.length?r[i+1]:void 0,c=new n(a?a.seq1Range.endExclusive+1:0,s?s.seq1Range.start-1:e.length),l=new n(a?a.seq2Range.endExclusive+1:0,s?s.seq2Range.start-1:t.length);o.seq1Range.isEmpty?r[i]=v(o,e,t,c,l):o.seq2Range.isEmpty&&(r[i]=v(o.swap(),t,e,l,c).swap())}return r}function v(e,t,n,r,i){let a=1;for(;e.seq1Range.start-a>=r.start&&e.seq2Range.start-a>=i.start&&n.isStronglyEqual(e.seq2Range.start-a,e.seq2Range.endExclusive-a)&&a<100;)a++;a--;let o=0;for(;e.seq1Range.start+o<r.endExclusive&&e.seq2Range.endExclusive+o<i.endExclusive&&n.isStronglyEqual(e.seq2Range.start+o,e.seq2Range.endExclusive+o)&&o<100;)o++;if(a===0&&o===0)return e;let s=0,c=-1;for(let r=-a;r<=o;r++){let i=e.seq2Range.start+r,a=e.seq2Range.endExclusive+r,o=e.seq1Range.start+r,l=t.getBoundaryScore(o)+n.getBoundaryScore(i)+n.getBoundaryScore(a);l>c&&(c=l,s=r)}return e.delta(s)}function y(e,t,n){let r=[];for(let e of n){let t=r[r.length-1];if(!t){r.push(e);continue}e.seq1Range.start-t.seq1Range.endExclusive<=2||e.seq2Range.start-t.seq2Range.endExclusive<=2?r[r.length-1]=new o(t.seq1Range.join(e.seq1Range),t.seq2Range.join(e.seq2Range)):r.push(e)}return r}function b(e,t,n,r,i=!1){let s=o.invert(n,e.length),c=[],l=new a(0,0);function u(n,a){if(n.offset1<l.offset1||n.offset2<l.offset2)return;let u=r(e,n.offset1),d=r(t,n.offset2);if(!u||!d)return;let f=new o(u,d),p=f.intersect(a),m=p.seq1Range.length,h=p.seq2Range.length;for(;s.length>0;){let n=s[0];if(!(n.seq1Range.intersects(f.seq1Range)||n.seq2Range.intersects(f.seq2Range)))break;let i=new o(r(e,n.seq1Range.start),r(t,n.seq2Range.start)),a=i.intersect(n);if(m+=a.seq1Range.length,h+=a.seq2Range.length,f=f.join(i),f.seq1Range.endExclusive>=n.seq1Range.endExclusive)s.shift();else break}(i&&m+h<f.seq1Range.length+f.seq2Range.length||m+h<(f.seq1Range.length+f.seq2Range.length)*2/3)&&c.push(f),l=f.getEndExclusives()}for(;s.length>0;){let e=s.shift();e.seq1Range.isEmpty||(u(e.getStarts(),e),u(e.getEndExclusives().delta(-1),e))}return x(n,c)}function x(e,t){let n=[];for(;e.length>0||t.length>0;){let r=e[0],i=t[0],a;a=r&&(!i||r.seq1Range.start<i.seq1Range.start)?e.shift():t.shift(),n.length>0&&n[n.length-1].seq1Range.endExclusive>=a.seq1Range.start?n[n.length-1]=n[n.length-1].join(a):n.push(a)}return n}function ee(e,t,r){let i=r;if(i.length===0)return i;let a=0,o;do{o=!1;let t=[i[0]];for(let r=1;r<i.length;r++){let a=i[r],s=t[t.length-1];function c(t,r){let i=new n(s.seq1Range.endExclusive,a.seq1Range.start);return e.getText(i).replace(/\s/g,``).length<=4&&(t.seq1Range.length+t.seq2Range.length>5||r.seq1Range.length+r.seq2Range.length>5)}c(s,a)?(o=!0,t[t.length-1]=t[t.length-1].join(a)):t.push(a)}i=t}while(a++<10&&o);return i}function te(e,t,r){let i=r;if(i.length===0)return i;let s=0,c;do{c=!1;let r=[i[0]];for(let a=1;a<i.length;a++){let o=i[a],s=r[r.length-1];function l(r,i){let a=new n(s.seq1Range.endExclusive,o.seq1Range.start);if(e.countLinesIn(a)>5||a.length>500)return!1;let c=e.getText(a).trim();if(c.length>20||c.split(/\r\n|\r|\n/).length>1)return!1;let l=e.countLinesIn(r.seq1Range),u=r.seq1Range.length,d=t.countLinesIn(r.seq2Range),f=r.seq2Range.length,p=e.countLinesIn(i.seq1Range),m=i.seq1Range.length,h=t.countLinesIn(i.seq2Range),g=i.seq2Range.length;function _(e){return Math.min(e,130)}return(_(l*40+u)**1.5+_(d*40+f)**1.5)**1.5+(_(p*40+m)**1.5+_(h*40+g)**1.5)**1.5>(130**1.5)**1.5*1.3}l(s,o)?(c=!0,r[r.length-1]=r[r.length-1].join(o)):r.push(o)}i=r}while(s++<10&&c);let l=[];return ne(i,(t,r,i)=>{let s=r;function c(e){return e.length>0&&e.trim().length<=3&&r.seq1Range.length+r.seq2Range.length>100}let u=e.extendToFullLines(r.seq1Range),d=e.getText(new n(u.start,r.seq1Range.start));c(d)&&(s=s.deltaStart(-d.length));let f=e.getText(new n(r.seq1Range.endExclusive,u.endExclusive));c(f)&&(s=s.deltaEnd(f.length));let p=o.fromOffsetPairs(t?t.getEndExclusives():a.zero,i?i.getStarts():a.max),m=s.intersect(p);l.length>0&&m.getStarts().equals(l[l.length-1].getEndExclusives())?l[l.length-1]=l[l.length-1].join(m):l.push(m)}),l}function ne(e,t){for(let n=0;n<e.length;n++)t(e[n-1],e[n],e[n+1])}var S={Space:32,Tab:9},re=class{trimmedHash;lines;constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){return 1e3-((e===0?0:ie(this.lines[e-1]))+(e===this.lines.length?0:ie(this.lines[e])))}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
|
|
3
|
+
`)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function ie(e){let t=0;for(;t<e.length&&(e.charCodeAt(t)===S.Space||e.charCodeAt(t)===S.Tab);)t++;return t}var C={LineFeed:10,CarriageReturn:13,Space:32,Tab:9,a:97,z:122,A:65,Z:90,Digit0:48,Digit9:57,Comma:44,Semicolon:59};function ae(e){return e===C.Space||e===C.Tab}var w=class e{startLineNumber;startColumn;endLineNumber;endColumn;constructor(e,t,n,r){this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r}static fromPositions(t,n){return new e(t.lineNumber,t.column,n.lineNumber,n.column)}},T=class{lineNumber;column;constructor(e,t){this.lineNumber=e,this.column=t}isBefore(e){return this.lineNumber<e.lineNumber?!0:e.lineNumber<this.lineNumber?!1:this.column<e.column}},oe=class{lines;considerWhitespaceChanges;elements=[];firstElementOffsetByLineIdx=[];lineStartOffsets=[];trimmedWsLengthsByLineIdx=[];_range;constructor(e,t,n){this.lines=e,this.considerWhitespaceChanges=n,this._range=t,this.firstElementOffsetByLineIdx.push(0);for(let t=this._range.startLineNumber;t<=this._range.endLineNumber;t++){let r=e[t-1],i=0;t===this._range.startLineNumber&&this._range.startColumn>1&&(i=this._range.startColumn-1,r=r.substring(i)),this.lineStartOffsets.push(i);let a=0;if(!n){let e=r.trimStart();a=r.length-e.length,r=e.trimEnd()}this.trimmedWsLengthsByLineIdx.push(a);let o=t===this._range.endLineNumber?Math.min(this._range.endColumn-1-i-a,r.length):r.length;for(let e=0;e<o;e++)this.elements.push(r.charCodeAt(e));t<this._range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new n(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(e=>String.fromCharCode(e)).join(``)}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let t=ue(e>0?this.elements[e-1]:-1),n=ue(e<this.elements.length?this.elements[e]:-1);if(t===7&&n===8)return 0;if(t===8)return 150;let r=0;return t!==n&&(r+=10,t===0&&n===1&&(r+=1)),r+=le(t),r+=le(n),r}translateOffset(e,t=`right`){let n=de(this.firstElementOffsetByLineIdx,t=>t<=e),r=e-this.firstElementOffsetByLineIdx[n];return new T(this._range.startLineNumber+n,1+this.lineStartOffsets[n]+r+(r===0&&t===`left`?0:this.trimmedWsLengthsByLineIdx[n]))}translateRange(e){let t=this.translateOffset(e.start,`right`),n=this.translateOffset(e.endExclusive,`left`);return n.isBefore(t)?w.fromPositions(n,n):w.fromPositions(t,n)}findWordContaining(e){if(e<0||e>=this.elements.length||!E(this.elements[e]))return;let t=e;for(;t>0&&E(this.elements[t-1]);)t--;let r=e;for(;r<this.elements.length&&E(this.elements[r]);)r++;return new n(t,r)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!E(this.elements[e]))return;let t=e;for(;t>0&&E(this.elements[t-1])&&!se(this.elements[t]);)t--;let r=e;for(;r<this.elements.length&&E(this.elements[r])&&!se(this.elements[r]);)r++;return new n(t,r)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){return new n(fe(this.firstElementOffsetByLineIdx,t=>t<=e.start)??0,pe(this.firstElementOffsetByLineIdx,t=>e.endExclusive<=t)??this.elements.length)}};function E(e){return e>=C.a&&e<=C.z||e>=C.A&&e<=C.Z||e>=C.Digit0&&e<=C.Digit9}function se(e){return e>=C.A&&e<=C.Z}var ce={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function le(e){return ce[e]}function ue(e){return e===C.LineFeed?8:e===C.CarriageReturn?7:ae(e)?6:e>=C.a&&e<=C.z?0:e>=C.A&&e<=C.Z?1:e>=C.Digit0&&e<=C.Digit9?2:e===-1?3:e===C.Comma||e===C.Semicolon?5:4}function de(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t(e[i])?n=i+1:r=i-1}return r}function fe(e,t){let n=de(e,t);return n>=0?e[n]:void 0}function pe(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t(e[i])?r=i-1:n=i+1}return n<e.length?e[n]:void 0}var D=class e{startLineNumber;endLineNumberExclusive;constructor(e,t){if(this.startLineNumber=e,this.endLineNumberExclusive=t,e>t)throw Error(`Invalid range: ${e} > ${t}`)}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(t){return new e(Math.min(this.startLineNumber,t.startLineNumber),Math.max(this.endLineNumberExclusive,t.endLineNumberExclusive))}intersectsOrTouches(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}toOffsetRange(){return new n(this.startLineNumber-1,this.endLineNumberExclusive-1)}toString(){return`[${this.startLineNumber}, ${this.endLineNumberExclusive})`}},O=class{originalRange;modifiedRange;constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`${me(this.originalRange)} <-> ${me(this.modifiedRange)}`}static assertSorted(e){for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(n.originalRange.endLineNumber<=r.originalRange.startLineNumber||n.originalRange.endLineNumber===r.originalRange.startLineNumber&&n.originalRange.endColumn<=r.originalRange.startColumn))throw Error(`RangeMappings must be sorted`)}}};function me(e){return`(${e.startLineNumber}:${e.startColumn})-(${e.endLineNumber}:${e.endColumn})`}var k=class{original;modified;constructor(e,t){this.original=e,this.modified=t}toString(){return`${this.original} <-> ${this.modified}`}toRangeMapping2(e,t){let n=(e,t)=>e>=1&&e<=t.length,r=(e,t,n)=>{if(e<1)return new T(1,1);if(e>n.length)return new T(n.length,n[n.length-1].length+1);let r=n[e-1];return t>r.length+1?new T(e,r.length+1):new T(e,t)};if(n(this.original.endLineNumberExclusive,e)&&n(this.modified.endLineNumberExclusive,t))return new O(new w(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new w(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new O(w.fromPositions(new T(this.original.startLineNumber,1),r(this.original.endLineNumberExclusive-1,2**53-1,e)),w.fromPositions(new T(this.modified.startLineNumber,1),r(this.modified.endLineNumberExclusive-1,2**53-1,t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new O(w.fromPositions(r(this.original.startLineNumber-1,2**53-1,e),r(this.original.endLineNumberExclusive-1,2**53-1,e)),w.fromPositions(r(this.modified.startLineNumber-1,2**53-1,t),r(this.modified.endLineNumberExclusive-1,2**53-1,t)));throw Error(`Invalid diff: cannot convert to range mapping`)}},A=class extends k{innerChanges;constructor(e,t,n){super(e,t),this.innerChanges=n}},j=class{changes;moves;hitTimeout;constructor(e,t,n){this.changes=e,this.moves=t,this.hitTimeout=n}},he=class{lineRangeMapping;changes;constructor(e,t){this.lineRangeMapping=e,this.changes=t}};function ge(e,t,n,r=!1){let i=[];for(let r of ve(e.map(e=>_e(e,t,n)),(e,t)=>e.original.intersectsOrTouches(t.original)||e.modified.intersectsOrTouches(t.modified))){let e=r[0],t=r[r.length-1];i.push(new A(e.original.join(t.original),e.modified.join(t.modified),r.map(e=>e.innerChanges[0])))}if(!r)for(let e=1;e<i.length;e++){let t=i[e-1],n=i[e];if(t.original.endLineNumberExclusive>n.original.startLineNumber||t.modified.endLineNumberExclusive>n.modified.startLineNumber)break}return i}function _e(e,t,n){let r=0,i=0;return e.modifiedRange.endColumn===1&&e.originalRange.endColumn===1&&e.originalRange.startLineNumber+r<=e.originalRange.endLineNumber&&e.modifiedRange.startLineNumber+r<=e.modifiedRange.endLineNumber&&(i=-1),e.modifiedRange.startColumn-1>=(n[e.modifiedRange.startLineNumber-1]?.length??0)&&e.originalRange.startColumn-1>=(t[e.originalRange.startLineNumber-1]?.length??0)&&e.originalRange.startLineNumber<=e.originalRange.endLineNumber+i&&e.modifiedRange.startLineNumber<=e.modifiedRange.endLineNumber+i&&(r=1),new A(new D(e.originalRange.startLineNumber+r,e.originalRange.endLineNumber+1+i),new D(e.modifiedRange.startLineNumber+r,e.modifiedRange.endLineNumber+1+i),[e])}function*ve(e,t){let n,r;for(let i of e)r!==void 0&&t(r,i)?n.push(i):(n&&(yield n),n=[i]),r=i;n&&(yield n)}var ye=class{lines;constructor(e){this.lines=e}get lineCount(){return this.lines.length}getLineContent(e){return this.lines[e-1]}},be=class{_dynamicProgrammingDiffing=new u;_myersDiffingAlgorithm=new d;computeDiff(e,t,a){if(e.length<=1&&Se(e,t))return new j([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new j([new A(new D(1,e.length+1),new D(1,t.length+1),[new O(new w(1,1,e.length,e[e.length-1].length+1),new w(1,1,t.length,t[t.length-1].length+1))])],[],!1);let s=a.maxComputationTimeMs===0?r.instance:new i(a.maxComputationTimeMs),c=!a.ignoreTrimWhitespace,l=new Map;function u(e){let t=l.get(e);return t===void 0&&(t=l.size,l.set(e,t)),t}let d=e.map(e=>u(e.trim())),f=t.map(e=>u(e.trim())),p=new re(d,e),m=new re(f,t),g=p.length+m.length<1700?this._dynamicProgrammingDiffing.compute(p,m,s,(n,r)=>e[n]===t[r]?t[r].length===0?.1:1+Math.log(1+t[r].length):.99):this._myersDiffingAlgorithm.compute(p,m,s),_=g.diffs,v=g.hitTimeout;_=h(p,m,_),_=ee(p,m,_);let y=[],b=r=>{if(c)for(let i=0;i<r;i++){let r=x+i,l=te+i;if(e[r]!==t[l]){let i=this._refineDiff(e,t,new o(new n(r,r+1),new n(l,l+1)),s,c,a);for(let e of i.mappings)y.push(e);i.hitTimeout&&(v=!0)}}},x=0,te=0;for(let n of _){b(n.seq1Range.start-x),x=n.seq1Range.endExclusive,te=n.seq2Range.endExclusive;let r=this._refineDiff(e,t,n,s,c,a);r.hitTimeout&&(v=!0);for(let e of r.mappings)y.push(e)}b(e.length-x);let ne=new ye(e),S=new ye(t);return new j(ge(y,ne.lines,S.lines),[],v)}_refineDiff(e,t,n,r,i,a){let o=xe(n).toRangeMapping2(e,t),s=new oe(e,o.originalRange,i),c=new oe(t,o.modifiedRange,i),l=s.length+c.length<500?this._dynamicProgrammingDiffing.compute(s,c,r):this._myersDiffingAlgorithm.compute(s,c,r),u=l.diffs;return u=h(s,c,u),u=b(s,c,u,(e,t)=>e.findWordContaining(t)),a.extendToSubwords&&(u=b(s,c,u,(e,t)=>e.findSubWordContaining(t),!0)),u=y(s,c,u),u=te(s,c,u),{mappings:u.map(e=>new O(s.translateRange(e.seq1Range),c.translateRange(e.seq2Range))),hitTimeout:l.hitTimeout}}};function xe(e){return new k(new D(e.seq1Range.start+1,e.seq1Range.endExclusive+1),new D(e.seq2Range.start+1,e.seq2Range.endExclusive+1))}function Se(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Ce(e,t,n){let r=B(e,K.__wbindgen_malloc,K.__wbindgen_realloc),i=G,a=B(t,K.__wbindgen_malloc,K.__wbindgen_realloc),o=G,s=K.computeDiff(r,i,a,o,n);if(s[2])throw V(s[1]);return V(s[0])}function we(e,t,n){let r=K.computeDiffLines(e,t,n);if(r[2])throw V(r[1]);return V(r[0])}function Te(){K.init()}function Ee(){return{__proto__:null,"./diff_wasm_bg.js":{__proto__:null,__wbg_Error_ef53bc310eb298a0:function(e,t){return Error(F(e,t))},__wbg_Number_6b506e6536831eaa:function(e){return Number(e)},__wbg_String_8564e559799eccda:function(e,t){let n=B(String(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;P().setInt32(e+4,r,!0),P().setInt32(e+0,n,!0)},__wbg___wbindgen_bigint_get_as_i64_38130e98eecd467d:function(e,t){let n=t,r=typeof n==`bigint`?n:void 0;P().setBigInt64(e+8,z(r)?BigInt(0):r,!0),P().setInt32(e+0,!z(r),!0)},__wbg___wbindgen_boolean_get_1a45e2c38d4d41b9:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return z(n)?16777215:+!!n},__wbg___wbindgen_debug_string_0accd80f45e5faa2:function(e,t){let n=B(M(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;P().setInt32(e+4,r,!0),P().setInt32(e+0,n,!0)},__wbg___wbindgen_in_70a403a56e771704:function(e,t){return e in t},__wbg___wbindgen_is_bigint_6ffd6468a9bc44b9:function(e){return typeof e==`bigint`},__wbg___wbindgen_is_function_754e9f305ff6029e:function(e){return typeof e==`function`},__wbg___wbindgen_is_null_87c3bfe968c6a5ad:function(e){return e===null},__wbg___wbindgen_is_object_56732c2bc353f41d:function(e){let t=e;return typeof t==`object`&&!!t},__wbg___wbindgen_is_undefined_67b456be8673d3d7:function(e){return e===void 0},__wbg___wbindgen_jsval_eq_1068e624fa87f6ab:function(e,t){return e===t},__wbg___wbindgen_jsval_loose_eq_2c56564c75129511:function(e,t){return e==t},__wbg___wbindgen_number_get_9bb1761122181af2:function(e,t){let n=t,r=typeof n==`number`?n:void 0;P().setFloat64(e+8,z(r)?0:r,!0),P().setInt32(e+0,!z(r),!0)},__wbg___wbindgen_string_get_72bdf95d3ae505b1:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=z(r)?0:B(r,K.__wbindgen_malloc,K.__wbindgen_realloc),a=G;P().setInt32(e+4,a,!0),P().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_1506f2235d1bdba0:function(e,t){throw Error(F(e,t))},__wbg_call_8a89609d89f6608a:function(){return R(function(e,t){return e.call(t)},arguments)},__wbg_done_60cf307fcc680536:function(e){return e.done},__wbg_error_a6fa202b58aa1cd3:function(e,t){let n,r;try{n=e,r=t,console.error(F(e,t))}finally{K.__wbindgen_free(n,r,1)}},__wbg_get_1f8f054ddbaa7db2:function(){return R(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_unchecked_33f6e5c9e2f2d6b2:function(e,t){return e[t>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(e,t){return e[t]},__wbg_instanceof_ArrayBuffer_8f49811467741499:function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Uint8Array_86f30649f63ef9c2:function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},__wbg_isArray_67c2c9c4313f4448:function(e){return Array.isArray(e)},__wbg_isSafeInteger_66acec27e09e99a7:function(e){return Number.isSafeInteger(e)},__wbg_iterator_8732428d309e270e:function(){return Symbol.iterator},__wbg_length_4a591ecaa01354d9:function(e){return e.length},__wbg_length_66f1a4b2e9026940:function(e){return e.length},__wbg_new_227d7c05414eb861:function(){return Error()},__wbg_new_578aeef4b6b94378:function(e){return new Uint8Array(e)},__wbg_new_ce1ab61c1c2b300d:function(){return{}},__wbg_new_d90091b82fdf5b91:function(){return[]},__wbg_next_9e03acdf51c4960d:function(e){return e.next},__wbg_next_eb8ca7351fa27906:function(){return R(function(e){return e.next()},arguments)},__wbg_prototypesetcall_3249fc62a0fafa30:function(e,t,n){Uint8Array.prototype.set.call(Oe(e,t),n)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_dca99999bba88a9a:function(e,t,n){e[t>>>0]=n},__wbg_stack_3b0d974bbf31e44f:function(e,t){let n=t.stack,r=B(n,K.__wbindgen_malloc,K.__wbindgen_realloc),i=G;P().setInt32(e+4,i,!0),P().setInt32(e+0,r,!0)},__wbg_value_f3625092ee4b37f4:function(e){return e.value},__wbindgen_cast_0000000000000001:function(e){return e},__wbindgen_cast_0000000000000002:function(e,t){return F(e,t)},__wbindgen_cast_0000000000000003:function(e){return BigInt.asUintN(64,e)},__wbindgen_init_externref_table:function(){let e=K.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}function De(e){let t=K.__externref_table_alloc();return K.__wbindgen_externrefs.set(t,e),t}function M(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,n=`[`;t>0&&(n+=M(e[0]));for(let r=1;r<t;r++)n+=`, `+M(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function Oe(e,t){return e>>>=0,L().subarray(e/1,e/1+t)}var N=null;function P(){return(N===null||N.buffer.detached===!0||N.buffer.detached===void 0&&N.buffer!==K.memory.buffer)&&(N=new DataView(K.memory.buffer)),N}function F(e,t){return Ae(e>>>0,t)}var I=null;function L(){return(I===null||I.byteLength===0)&&(I=new Uint8Array(K.memory.buffer)),I}function R(e,t){try{return e.apply(this,t)}catch(e){let t=De(e);K.__wbindgen_exn_store(t)}}function z(e){return e==null}function B(e,t,n){if(n===void 0){let n=W.encode(e),r=t(n.length,1)>>>0;return L().subarray(r,r+n.length).set(n),G=n.length,r}let r=e.length,i=t(r,1)>>>0,a=L(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=L().subarray(i+o,i+r),a=W.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return G=o,i}function V(e){let t=K.__wbindgen_externrefs.get(e);return K.__externref_table_dealloc(e),t}var H=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});H.decode();var ke=2146435072,U=0;function Ae(e,t){return U+=t,U>=ke&&(H=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),H.decode(),U=t),H.decode(L().subarray(e,e+t))}var W=new TextEncoder;`encodeInto`in W||(W.encodeInto=function(e,t){let n=W.encode(e);return t.set(n),{read:e.length,written:n.length}});var G=0,K;function je(e,t){return K=e.exports,N=null,I=null,K.__wbindgen_start(),K}async function Me(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}function Ne(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=Ee();return e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e)),je(new WebAssembly.Instance(e,t))}async function Pe(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),e===void 0&&(e=new URL(new URL(``+new URL(`diff_wasm_bg-c6YkaZRL-c6YkaZRL.wasm`,import.meta.url).href,``+import.meta.url).href));let t=Ee();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Me(await e,t);return je(n)}var Fe=Object.freeze({__proto__:null,computeDiff:Ce,computeDiffLines:we,default:Pe,init:Te,initSync:Ne}),q=null,J=null;async function Ie(){return q||J||(J=(async()=>{let n=new URL(new URL(``+new URL(`diff_wasm_bg-c6YkaZRL-c6YkaZRL.wasm`,import.meta.url).href,``+import.meta.url).href),r=n;if(typeof process<`u`&&process.versions?.node){let{readFile:i}=await t(async()=>{let{readFile:t}=await import(`./__vite-browser-external-JIkWewFf.js`).then(t=>e(t.default,1));return{readFile:t}},__vite__mapDeps([0,1]),import.meta.url);r=await i(n)}return await Pe({module_or_path:r}),Te(),q=Fe,q})(),J)}function Le(){if(!q)throw Error(`WASM not initialized. Call initWasm() first and await it.`);return q}function Re(e){return new j(e.changes.map(ze),e.moves.map(Ve),e.hitTimeout)}function ze(e){let t=e.innerChanges?.map(Be);return new A(new D(e.original.startLineNumber,e.original.endLineNumberExclusive),new D(e.modified.startLineNumber,e.modified.endLineNumberExclusive),t)}function Be(e){return new O(new w(e.originalStartLine,e.originalStartColumn,e.originalEndLine,e.originalEndColumn),new w(e.modifiedStartLine,e.modifiedStartColumn,e.modifiedEndLine,e.modifiedEndColumn))}function Ve(e){return new he(new k(new D(e.lineRangeMapping.original.startLineNumber,e.lineRangeMapping.original.endLineNumberExclusive),new D(e.lineRangeMapping.modified.startLineNumber,e.lineRangeMapping.modified.endLineNumberExclusive)),e.changes.map(ze))}var He=class{original;modified;constructor(e,t){this.original=e,this.modified=t}toString(){return`${this.original} <-> ${this.modified}`}},Y=class{range;newText;constructor(e,t){this.range=e,this.newText=t}get isEmpty(){return this.range.isEmpty&&this.newText.length===0}toString(){return`${this.range}->${JSON.stringify(this.newText)}`}},Ue=class e{replacements;static empty=new e([]);static single(t){return new e([t])}static of(t){for(let e=1;e<t.length;e++){let n=t[e-1],r=t[e];if(n.range.endExclusive>r.range.start)throw Error(`StringEdit.of: replacements must be sorted and non-overlapping (${n.range} vs ${r.range})`)}return new e(t)}constructor(e){this.replacements=e}get isEmpty(){return this.replacements.length===0}apply(e){if(this.replacements.length===0)return e;let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.range.start)),t.push(r.newText),n=r.range.endExclusive;return t.push(e.substring(n)),t.join(``)}inverse(t){let r=[],i=0;for(let e of this.replacements){let a=e.range.start+i,o=a+e.newText.length,s=t.substring(e.range.start,e.range.endExclusive);r.push(new Y(new n(a,o),s)),i+=e.newText.length-e.range.length}return new e(r)}normalize(){let t=[];for(let e of this.replacements){if(e.isEmpty)continue;let r=t[t.length-1];r&&r.range.endExclusive===e.range.start?t[t.length-1]=new Y(new n(r.range.start,e.range.endExclusive),r.newText+e.newText):t.push(e)}return new e(t)}toString(){return`StringEdit[${this.replacements.map(e=>e.toString()).join(`, `)}]`}},X=class{range;newText;data;constructor(e,t,n){this.range=e,this.newText=t,this.data=n}get isEmpty(){return this.range.isEmpty&&this.newText.length===0}toString(){return`${this.range}->${JSON.stringify(this.newText)}#${this.data}`}},We=class e{replacements;static empty(){return new e([])}static single(t){return new e([t])}static of(t){for(let e=1;e<t.length;e++){let n=t[e-1],r=t[e];if(n.range.endExclusive>r.range.start)throw Error(`AnnotatedStringEdit.of: replacements must be sorted and non-overlapping (${n.range} vs ${r.range})`)}return new e(t)}constructor(e){this.replacements=e}get isEmpty(){return this.replacements.length===0}apply(e){if(this.replacements.length===0)return e;let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.range.start)),t.push(r.newText),n=r.range.endExclusive;return t.push(e.substring(n)),t.join(``)}inverse(t,r){let i=[],a=0;for(let e of this.replacements){let o=e.range.start+a,s=o+e.newText.length,c=t.substring(e.range.start,e.range.endExclusive);i.push(new X(new n(o,s),c,r(e.data))),a+=e.newText.length-e.range.length}return new e(i)}normalize(){let t=[];for(let e of this.replacements){if(e.isEmpty)continue;let r=t[t.length-1];if(r&&r.range.endExclusive===e.range.start){let i=r.data.join(e.data);if(i!==void 0){t[t.length-1]=new X(new n(r.range.start,e.range.endExclusive),r.newText+e.newText,i);continue}}t.push(e)}return new e(t)}mapData(t){return new e(this.replacements.map(e=>new X(e.range,e.newText,t(e.data))))}stripData(){return Ue.of(this.replacements.map(e=>new Y(e.range,e.newText)))}toString(){return`AnnotatedStringEdit[${this.replacements.map(e=>e.toString()).join(`, `)}]`}},Ge=class e{isFormattingChange;static change=new e(!1);static formatting=new e(!0);constructor(e){this.isFormattingChange=e}join(e){if(this.isFormattingChange===e.isFormattingChange)return this}toString(){return this.isFormattingChange?`formatting`:`change`}},Ke=class{range;innerEdit;constructor(e,t){this.range=e,this.innerEdit=t}toString(){return`Move ${this.range}`+(this.innerEdit.isEmpty?``:` (${this.innerEdit})`)}},qe=class{edits;moves;hitTimeout;constructor(e,t,n){this.edits=e,this.moves=t,this.hitTimeout=n}};async function Je(e={}){return e.useWasm?(await Ie(),new Xe(e.algorithm)):new Ye(e.algorithm)}var Ye=class{_algorithm;_impl=new be;constructor(e){this._algorithm=e}computeDiff(e,t,n){let r=e.split(`
|
|
4
4
|
`),i=t.split(`
|
|
5
5
|
`),a={maxComputationTimeMs:n?.maxComputationTimeMs??0,ignoreTrimWhitespace:n?.ignoreTrimWhitespace??!1,computeMoves:n?.computeMoves??!1,extendToSubwords:n?.extendToSubwords??!1},o=this._impl.computeDiff(r,i,a);return this._algorithm,Qe(o,e,t,r,i)}},Xe=class{_algorithm;constructor(e){this._algorithm=e}computeDiff(e,t,n){let r=e.split(`
|
|
6
6
|
`),i=t.split(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=``+new URL(`fs-core.worker-Bnmpp6fo.js`,import.meta.url).href,t=``+new URL(`fs-query.worker-cZ-7Fjch.js`,import.meta.url).href;export{e as coreWorkerUrl,t as queryWorkerUrl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=new TextEncoder,t=new TextDecoder,n=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let e=0;e<8;e++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function r(e,t=0,r=e.length){let i=4294967295;for(let a=t;a<r;a++)i=n[(i^e[a])&255]^i>>>8;return(i^4294967295)>>>0}async function i(e){let t=await crypto.subtle.digest(`SHA-256`,e);return[...new Uint8Array(t)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}var a=1146569521,o=64;function s(e){let t=new ArrayBuffer(o),n=new DataView(t);return n.setUint32(0,a),n.setUint32(4,e.epoch),n.setFloat64(8,e.compactGen),n.setFloat64(16,e.walStartGen),n.setUint32(24,e.manifestCrc),n.setUint32(60,r(new Uint8Array(t,0,60))),new Uint8Array(t)}function c(e){if(e.length<o)return null;let t=new DataView(e.buffer,e.byteOffset,o);return t.getUint32(60)!==r(e,0,60)||t.getUint32(0)!==a?null:{epoch:t.getUint32(4),compactGen:t.getFloat64(8),walStartGen:t.getFloat64(16),manifestCrc:t.getUint32(24)}}function l(t,n,i,a){let o=e.encode(JSON.stringify(a)),s=15+o.length+4+1,c=new ArrayBuffer(4+s),l=new DataView(c),u=new Uint8Array(c);l.setUint32(0,s),l.setBigUint64(4,BigInt(t)),l.setUint32(12,n),l.setUint8(16,i),l.setUint16(17,o.length),u.set(o,19);let d=19+o.length;return l.setUint32(d,r(u,4,d)),l.setUint8(d+4,193),u}function u(e,n){if(n+4>e.length)return null;let i=new DataView(e.buffer,e.byteOffset),a=i.getUint32(n);if(a<20||n+4+a>e.length)return null;let o=Number(i.getBigUint64(n+4)),s=i.getUint32(n+12),c=i.getUint8(n+16),l=i.getUint16(n+17),u=n+19,d=u+l;if(d+5!==n+4+a||i.getUint32(d)!==r(e,n+4,d)||i.getUint8(d+4)!==193)return null;let f;try{f=JSON.parse(t.decode(e.subarray(u,d)))}catch{return null}return{rec:{gen:o,epoch:s,opcode:c,meta:f},next:n+4+a}}var d=[`node_modules/`,`.checkpoints/`];function f(e){if(typeof e!=`string`||!e||e.includes(`\0`)||e.includes(`\\`)||e.startsWith(`/`))return null;let t=[];for(let n of e.split(`/`))if(!(n===``||n===`.`)){if(n===`..`)return null;t.push(n)}return t.length?t.join(`/`):null}var p={WRITE:1,RM:2,MV:3,MKDIR:4,CHECKPOINT:5,RESTORE:6},m={1:`write`,2:`rm`,3:`mv`,4:`mkdir`,5:`checkpoint`,6:`restore`},h=new Set([p.WRITE,p.RM,p.MV,p.RESTORE]),ee=50,g=4*1024*1024,_=1024,te=12e4,v=1e3,y=4096,ne=20;function b(e,t,n){let r=Error(t);return r.code=e,n&&(r.extra=n),r}function x(e){return e.length?e[e.length-1].epoch:0}function S(e){return e.writerLockQueued=!0,new Promise((t,n)=>{navigator.locks.request(`dwc:writer:`+e.projectId,{mode:`exclusive`},n=>(e.writerLockQueued=!1,e.writerLockHeld=!0,t(n),new Promise(t=>{e.releaseLock=t}))).catch(t=>{e.writerLockQueued=!1,n(t instanceof Error?t:Error(String(t)))})})}function C(e){try{e.sbHandle?.close()}catch{}try{e.walHandle?.close()}catch{}e.sbHandle=null,e.walHandle=null,e.releaseLock&&=(e.releaseLock(),null),e.writerLockHeld=!1,e.mode=`dead`}function w(e,t){t.then(async t=>{if(!(!t||e.mode===`dead`))try{await e.enqueue(async()=>{await e.becomeWriter()})}catch(t){C(e),e.event({type:`FATAL`,error:`writer upgrade failed: `+String(t)})}},t=>{e.mode=`dead`,e.event({type:`FATAL`,error:`writer lock arbitration failed: `+String(t)})})}async function T(e,t){e.projectId=t,e.root=await(await navigator.storage.getDirectory()).getDirectoryHandle(t,{create:!0}),e.bc=new BroadcastChannel(`dwc:`+t),e.bc.onmessage=t=>e.onBroadcast(t.data);let n=S(e);if(await Promise.race([n,new Promise(e=>setTimeout(()=>e(`timeout`),3e3))])===`timeout`){await e.recover(),e.mode=`readonly`,e.pushFullToQuery(),e.welcome(),w(e,n);return}try{await e.becomeWriter()}catch(t){throw C(e),t}e.welcome()}function E(e){if(e.mode===`writer`)return{mode:`writer`};if(e.mode===`draining`)throw b(`draining`,`writer is handing over`);return e.mode===`readonly`?e.handoverRequested||e.writerLockHeld?{requested:!0}:(e.handoverRequested=!0,e.writerLockQueued||w(e,S(e)),e.bc.postMessage({type:`handover-request`}),{requested:!0}):{mode:e.mode}}async function D(e){e.handoverRequested=!1,await e.recover(),e.sbHandle=await(await e.root.getFileHandle(`superblock`,{create:!0})).createSyncAccessHandle(),e.epoch+=1,e.writeSuperblock();let t=`wal.`+e.lastSegStart;e.walHandle=await(await e.root.getFileHandle(t,{create:!0})).createSyncAccessHandle(),e.walOffset=e.lastSegValidEnd,e.mode=`writer`,e.pushFullToQuery(),e.event({evt:`writer-granted`,gen:e.memGen}),e.walOffset>g&&e.enqueue(()=>e.compactNow())}function O(e){let t=1-e.currentSlot,n=s({epoch:e.epoch,compactGen:e.compactGen,walStartGen:e.walStartGen,manifestCrc:e.manifestCrc||0}),r=e.sbHandle.write(n,{at:t*o});if(r!==o)throw Error(`superblock partial write: `+r);e.sbHandle.flush(),e.currentSlot=t}async function k(e){let t=null;try{let n=await(await e.root.getFileHandle(`superblock`)).getFile(),r=new Uint8Array(await n.arrayBuffer()),i=c(r.subarray(0,o)),a=r.length>=128?c(r.subarray(o,2*o)):null;i&&a?(t=a.compactGen>i.compactGen||a.compactGen===i.compactGen&&a.epoch>=i.epoch?a:i,e.currentSlot=+(t===a)):i?(t=i,e.currentSlot=0):a&&(t=a,e.currentSlot=1)}catch{}return t||(t={epoch:0,compactGen:0,walStartGen:1,manifestCrc:0},e.currentSlot=1),t}async function A(e,n){if(n<=0)return 0;let i=await(await(await e.root.getDirectoryHandle(`manifests`)).getFileHandle(n+`.json`)).getFile(),a=new Uint8Array(await i.arrayBuffer());if(r(a)!==e.manifestCrc)throw Error(`manifest CRC mismatch (gen `+n+`)`);let o=JSON.parse(t.decode(a));for(let[t,n]of Object.entries(o.files))e.mirror.set(t,{content:await e.readBlob(n.h),rev:n.rev});for(let[t,n]of Object.entries(o.checkpoints||{}))e.checkpoints.set(t,n);return o.gen}async function j(e){let t=[];for await(let[n]of e.root.entries()){let r=/^wal\.(\d+)$/.exec(n);r&&+r[1]>=e.walStartGen&&t.push(+r[1])}return t.sort((e,t)=>e-t),t}function M(e,t,n,r){return!e||e.rec.gen!==t+1||e.rec.gen>=n||e.rec.epoch<x(r)}async function N(e,t,n,r,i,a){let o=await(await e.root.getFileHandle(`wal.`+t)).getFile(),s=new Uint8Array(await o.arrayBuffer()),c=0;for(;c<s.length;){let t=u(s,c);if(M(t,r,n,i))break;await e.applyRecord(t.rec),r=t.rec.gen,i.push(t.rec);let o=t.rec.meta;e.audit({gen:r,opcode:t.rec.opcode,actor:o.actor,turnId:o.turnId,path:o.path,from:o.from,to:o.to,cpId:o.cpId}),c=t.next,a&&(e.lastSegValidEnd=c)}return r}async function P(e,t,n){let r=n,i=[];for(let n=0;n<t.length;n++){let a=n+1<t.length?t[n+1]:1/0;r=await N(e,t[n],a,r,i,t[n]===e.lastSegStart)}return{finalGen:r,replayed:i}}async function F(e){e.mirror.clear(),e.checkpoints.clear(),e.opIds.clear(),e.auditLog=[],e.turn=null;let t=await k(e);e.epoch=t.epoch,e.compactGen=t.compactGen,e.walStartGen=t.walStartGen,e.manifestCrc=t.manifestCrc;let n=await A(e,e.compactGen),r=await j(e);e.lastSegStart=r.length?r[r.length-1]:e.walStartGen,e.lastSegValidEnd=0;let{finalGen:i,replayed:a}=await P(e,r,n);n=i,e.appendedGen=e.walGen=e.memGen=e.ackGen=n,e.trimCheckpoints();for(let t of a.slice(-_))t.meta.opId&&e.rememberOpId(t.meta.opId,{gen:t.gen});r.length||await e.root.getFileHandle(`wal.`+e.walStartGen,{create:!0})}async function I(e,t){let n=t.meta;switch(t.opcode){case p.WRITE:{let r=n.payload?.inline===void 0?await e.readBlob(n.payload.h):n.payload.inline;e.mirror.set(n.path,{content:r,rev:t.gen});break}case p.RM:e.mirror.delete(n.path);break;case p.MV:{let r=e.mirror.get(n.from);r&&(e.mirror.delete(n.from),e.mirror.set(n.to,{content:r.content,rev:t.gen}));break}case p.MKDIR:break;case p.CHECKPOINT:e.checkpoints.set(n.cpId,{h:n.h,gen:t.gen});break;case p.RESTORE:{let r=JSON.parse(await e.readBlob(n.h)),i=new Map;for(let[n,a]of Object.entries(r))i.set(n,{content:await e.readBlob(a),rev:t.gen});e.mirror=i;break}}}async function L(t,n){let r=e.encode(n),a=await i(r),o=await(await t.root.getDirectoryHandle(`blobs`,{create:!0})).getDirectoryHandle(a.slice(0,2),{create:!0});try{return await o.getFileHandle(a),a}catch{}let s=await(await o.getFileHandle(a,{create:!0})).createSyncAccessHandle();return s.write(r),s.flush(),s.close(),a}async function R(e,t){return(await(await(await(await e.root.getDirectoryHandle(`blobs`)).getDirectoryHandle(t.slice(0,2))).getFileHandle(t)).getFile()).text()}function z(e,{path:t}){let n=f(t),r=n&&e.mirror.get(n);if(!r)throw b(`not-found`,String(t));return{content:r.content,rev:r.rev,gen:e.memGen}}function B(e){return{paths:[...e.mirror.keys()].sort(),gen:e.memGen}}function V(e){let{mode:t,appendedGen:n,walGen:r,memGen:i,ackGen:a,compactGen:o,epoch:s,walStartGen:c}=e;return{mode:t,appendedGen:n,walGen:r,memGen:i,ackGen:a,compactGen:o,epoch:s,walStartGen:c,checkpoints:[...e.checkpoints.keys()],turn:e.turn?{turnId:e.turn.turnId,cpId:e.turn.cpId,expiresAt:e.turn.expiresAt,ops:e.turn.ops}:null}}function H(e,t,n){if(!e.queryPort)return;let r={};for(let[e,n]of Object.entries(t))r[e]=n?{content:n.content,rev:n.rev}:null;e.queryPort.postMessage({gen:n,diff:r})}function U(e){if(!e.queryPort)return;let t={};for(let[n,r]of e.mirror)t[n]={content:r.content,rev:r.rev};e.queryPort.postMessage({gen:e.memGen,full:!0,files:t})}function W(e,t){e.clientPort&&e.clientPort.postMessage(t)}function G(e){e.event({type:`WELCOME`,epoch:e.epoch,memGen:e.memGen,readonly:e.mode!==`writer`,mode:e.mode})}async function K(e,t){if(t.type===`handover-done`&&e.mode!==`writer`){e.handoverRequested=!1;return}t.type===`handover-request`&&e.mode===`writer`&&(e.mode=`draining`,await e.enqueue(async()=>{e.flushWindow(),e.walHandle.close(),e.walHandle=null,e.sbHandle.close(),e.sbHandle=null,e.mode=`readonly`,e.releaseLock&&=(e.releaseLock(),null),e.writerLockHeld=!1,e.bc.postMessage({type:`handover-done`,gen:e.memGen}),e.event({evt:`writer-lost`,gen:e.memGen})}))}function q(e,t){let n=e.chain.then(t);return e.chain=n.catch(()=>{}),n}function J(e,t,n,r){if(e.mode!==`writer`)throw b(`readonly`,`fs-core is `+e.mode);if(r&&r(),e.walOffset>g)throw b(`rotate-needed`,`internal`);let i=e.appendedGen+1,a=l(i,e.epoch,t,n);if(e.walHandle.write(a,{at:e.walOffset})!==a.length)throw Error(`WAL partial write`);return e.walOffset+=a.length,e.appendedGen=i,e.audit({gen:i,opcode:t,actor:n.actor,turnId:n.turnId,path:n.path,from:n.from,to:n.to,cpId:n.cpId}),i}function Y(e,t){e.auditLog.push(t),e.auditLog.length>y&&e.auditLog.splice(0,e.auditLog.length-y)}function X(e,t,n,r){if(t!==`agent`)return;let i=e.turn;if(!i||i.turnId!==n)throw b(`turn-closed`,`agent write requires an active turn (got `+n+`)`);if(Date.now()>i.expiresAt)throw e.turn=null,b(`turn-closed`,`turn expired: `+n);if(e.agentToken!==null&&r!==e.agentToken)throw b(`agent-token-required`,`agent write requires a valid agent token`);if(++i.ops>v)throw b(`turn-quota`,`per-turn op quota exceeded (`+v+`)`)}function Z(e,t){if(typeof t!=`string`||!t)throw b(`bad-args`,`agent token must be a non-empty string`);if(e.agentToken===null)return e.agentToken=t,{armed:!0};if(e.agentToken===t)return{armed:!0,idempotent:!0};throw b(`agent-token-gate-armed`,`agent token gate already armed with a different token`)}function re(e,t){if((e.auditLog.length?e.auditLog[0].gen:e.appendedGen+1)>t+1)throw b(`restore-conflict`,`audit log does not cover baseGen `+t,{humanPaths:[],auditGap:!0});let n=[],r=new Set;for(let i of e.auditLog){if(i.gen<=t||i.actor!==`human`||!h.has(i.opcode))continue;let e=i.opcode===p.MV?i.to||i.from:i.opcode===p.RESTORE?`(restore:`+i.cpId+`)`:i.path;e&&!r.has(e)&&(r.add(e),n.push(e))}if(n.length)throw b(`restore-conflict`,`human edits since baseGen `+t,{humanPaths:n})}function ie(e,t){return e.staged.has(t)?e.staged.get(t)??null:e.mirror.get(t)||null}function ae(e,t,n,r){let i=f(t);if(!i)throw b(`bad-path`,`invalid path: `+t);for(let e of d)if(i.startsWith(e))throw b(`derived-readonly`,i+` is derived area`);if(e.mode===`draining`)throw b(`draining`,`writer is handing over`);let a=e.curOf(i);if(n===null&&a)throw b(`cas-mismatch`,i+` already exists`);if(typeof n==`number`&&(!a||a.rev!==n))throw b(`cas-mismatch`,i+` rev=`+(a?a.rev:`none`)+` ifMatch=`+n);return i}async function oe(e){e.walOffset<=g||await e.compactNow()}async function se(e,t){let n=`wal.`+t,r=await e.root.getFileHandle(n+`.tmp`,{create:!0}),i=await r.createSyncAccessHandle();if(i.flush(),i.close(),r.move)await r.move(n);else{await e.root.getFileHandle(n,{create:!0});try{await e.root.removeEntry(n+`.tmp`)}catch{}}e.walHandle=await(await e.root.getFileHandle(n)).createSyncAccessHandle(),e.walOffset=0}function ce(e){if(e.flushTimer&&=(clearTimeout(e.flushTimer),null),!e.windowOps.length)return;e.walHandle.flush(),e.walGen=e.appendedGen;let t={};for(let[n,r]of e.staged)r===null?e.mirror.delete(n):e.mirror.set(n,r),t[n]=r;e.staged.clear(),e.memGen=e.walGen,e.pushDiff(t,e.memGen);let n=[],r=`human`;for(let t of e.windowOps)e.ackGen=Math.max(e.ackGen,t.gen),t.opId&&e.rememberOpId(t.opId,{gen:t.gen,rev:t.gen,...t.extra}),t.respond({ok:!0,result:{gen:t.gen,rev:t.gen,...t.extra}}),t.path&&n.push(t.path),t.actor===`agent`&&(r=`agent`);e.windowOps=[],e.event({evt:`fs-change`,gen:e.memGen,actor:r,...n.length<=32?{paths:n}:{count:n.length}}),e.bc.postMessage({type:`fs-change`,gen:e.memGen})}function le(e,t,n){e.opIds.set(t,n),e.opIds.size>_&&e.opIds.delete(e.opIds.keys().next().value)}function ue(e,t){if(t){e.flushWindow();return}e.flushTimer||=setTimeout(()=>e.enqueue(()=>e.flushWindow()),ee)}async function de(t,{path:n,content:r,ifMatch:i,actor:a=`human`,turnId:o,agentToken:s,opId:c},l){if(typeof r!=`string`)throw b(`bad-args`,`content must be string`);await t.rotateIfNeeded();let u=e.encode(r).length<=4096?{inline:r}:{h:await t.ensureBlob(r)},d=f(n),m={opId:c,path:d,actor:a,turnId:o,ifMatch:i,payload:u},h=t.appendSync(p.WRITE,m,()=>{t.checkTurn(a,o,s),t.checkWrite(n,i,a)});t.staged.set(d,{content:r,rev:h}),t.windowOps.push({respond:l,gen:h,path:d,actor:a,opId:c}),t.scheduleFlush(a===`agent`)}async function fe(e,{path:t,old:n,next:r,ifMatch:i,actor:a=`human`,turnId:o,agentToken:s,opId:c},l){let u=f(t),d=u&&e.curOf(u);if(!d)throw b(`not-found`,String(t));let p=d.content.indexOf(n);if(p===-1)throw b(`edit-no-match`,`old string not found in `+u);if(d.content.indexOf(n,p+1)!==-1)throw b(`edit-ambiguous`,`old string not unique in `+u);let m=d.content.slice(0,p)+r+d.content.slice(p+n.length);return e.opWrite({path:t,content:m,ifMatch:i===void 0?d.rev:i,actor:a,turnId:o,agentToken:s,opId:c},l)}async function pe(e,{path:t,actor:n=`human`,turnId:r,agentToken:i,opId:a},o){await e.rotateIfNeeded();let s=e.appendSync(p.RM,{opId:a,path:f(t),actor:n,turnId:r},()=>{e.checkTurn(n,r,i);let a=e.checkWrite(t,void 0,n);if(!e.curOf(a))throw b(`not-found`,a)});e.staged.set(f(t),null),e.windowOps.push({respond:o,gen:s,path:f(t),actor:n,opId:a}),e.scheduleFlush(!0)}async function me(e,{from:t,to:n,actor:r=`human`,turnId:i,agentToken:a,opId:o},s){await e.rotateIfNeeded();let c=f(t),l=f(n),u=e.appendSync(p.MV,{opId:o,from:c,to:l,actor:r,turnId:i},()=>{if(e.checkTurn(r,i,a),e.checkWrite(t,void 0,r),e.checkWrite(n,void 0,r),!e.curOf(c))throw b(`not-found`,c);if(e.curOf(l))throw b(`cas-mismatch`,l+` exists`)}),d=e.curOf(c);e.staged.set(c,null),e.staged.set(l,{content:d.content,rev:u}),e.windowOps.push({respond:s,gen:u,path:l,actor:r,opId:o}),e.scheduleFlush(!0)}async function he(e,{opId:t,actor:n,turnId:r}){e.flushWindow(),await e.rotateIfNeeded();let i={};for(let[t,n]of e.mirror)i[t]=await e.ensureBlob(n.content);let a=await e.ensureBlob(JSON.stringify(i)),o=`cp-`+(e.appendedGen+1),s=e.appendSync(p.CHECKPOINT,{opId:t,cpId:o,h:a,actor:n,turnId:r},()=>{if(e.mode===`draining`)throw b(`draining`,`handing over`)});return e.checkpoints.set(o,{h:a,gen:s}),e.trimCheckpoints(),{cpId:o,gen:s}}function ge(e){for(;e.checkpoints.size>ne;)e.checkpoints.delete(e.checkpoints.keys().next().value)}async function _e(e,{actor:t=`human`,turnId:n,agentToken:r,opId:i},a){e.checkTurn(t,n,r);let{cpId:o,gen:s}=await e.makeCheckpoint({opId:i,actor:t,turnId:n});e.windowOps.push({respond:a,gen:s,actor:t,opId:i,extra:{cpId:o}}),e.scheduleFlush(!0)}async function ve(e,{turnId:t,ttlMs:n,opId:r},i){if(!t||typeof t!=`string`)throw b(`bad-args`,`turnId required`);if(e.turn&&Date.now()<=e.turn.expiresAt)throw b(`turn-active`,`a turn is already active: `+e.turn.turnId);let{cpId:a,gen:o}=await e.makeCheckpoint({opId:r,actor:`agent`,turnId:t}),s=Date.now()+(n||te);e.turn={turnId:t,cpId:a,expiresAt:s,ops:0},e.windowOps.push({respond:i,gen:o,actor:`agent`,opId:r,extra:{turnId:t,cpId:a,expiresAt:s}}),e.scheduleFlush(!0)}function ye(e,{turnId:t},n){let r=!!(e.turn&&e.turn.turnId===t),i=r?e.turn.ops:0;r&&(e.turn=null),n({ok:!0,result:{turnId:t,closed:r,ops:i}})}function be(e,{turnId:t}){return{turnId:t,changes:e.auditLog.filter(e=>e.turnId===t&&e.opcode!==p.CHECKPOINT).map(e=>({gen:e.gen,op:m[e.opcode],path:e.path,from:e.from,to:e.to})),cpId:e.turn&&e.turn.turnId===t?e.turn.cpId:(e.auditLog.find(e=>e.turnId===t&&e.opcode===p.CHECKPOINT)||{}).cpId,auditWindow:{cap:y,sinceGen:e.auditLog.length?e.auditLog[0].gen:e.memGen}}}async function xe(e,{cpId:t,baseGen:n,force:r=!1,actor:i=`human`,turnId:a,agentToken:o,opId:s},c){e.flushWindow(),await e.rotateIfNeeded();let l=e.checkpoints.get(t);if(!l)throw b(`not-found`,`checkpoint `+t);let u=typeof n==`number`?n:l.gen,d=JSON.parse(await e.readBlob(l.h)),f={};for(let[t,n]of Object.entries(d))f[t]=await e.readBlob(n);let m=e.appendSync(p.RESTORE,{opId:s,cpId:t,h:l.h,actor:i,turnId:a},()=>{if(e.checkTurn(i,a,o),e.mode===`draining`)throw b(`draining`,`handing over`);r||e.checkRestoreConflict(u)});e.walHandle.flush(),e.walGen=m;let h=new Map;for(let[e,t]of Object.entries(f))h.set(e,{content:t,rev:m});e.mirror=h,e.memGen=e.walGen,e.ackGen=m,s&&e.rememberOpId(s,{gen:m,restored:Object.keys(f).length}),e.pushFullToQuery(),c({ok:!0,result:{gen:m,restored:Object.keys(f).length}}),e.event({evt:`fs-change`,gen:m,actor:i,count:Object.keys(f).length,restore:t}),e.bc.postMessage({type:`fs-change`,gen:m})}async function Q(e,t,n){n({ok:!0,result:await e.compactNow()})}async function Se(e){let t={};for(let[n,r]of e.mirror)t[n]={h:await e.ensureBlob(r.content),rev:r.rev};return t}async function Ce(e,t,n){let r=await e.root.getDirectoryHandle(`manifests`,{create:!0}),i=await(await r.getFileHandle(t+`.json`,{create:!0})).createSyncAccessHandle();return i.write(n),i.flush(),i.close(),r}async function we(e){let t=[];for await(let[n]of e.root.entries()){let e=/^wal\.(\d+)$/.exec(n);e&&t.push(+e[1])}return t}async function Te(e,t){for(let n of t)try{await e.root.removeEntry(`wal.`+n)}catch{}}async function Ee(e,t){let n=new Set(Object.values(t).map(e=>e.h));for(let t of e.checkpoints.values()){n.add(t.h);try{for(let r of Object.values(JSON.parse(await e.readBlob(t.h))))n.add(r)}catch{}}return n}async function De(e,t){try{let n=await e.root.getDirectoryHandle(`blobs`);for await(let[e,r]of n.entries())if(r.kind===`directory`){for await(let[e]of r.entries())if(!t.has(e))try{await r.removeEntry(e)}catch{}}}catch{}}async function Oe(e,t,n){try{for await(let[e]of t.entries())if(e!==n)try{await t.removeEntry(e)}catch{}}catch{}}async function ke(t){t.flushWindow();let n=t.memGen;if(n===t.compactGen)return{gen:n,skipped:!0};let i=await Se(t),a=Object.fromEntries(t.checkpoints),o=e.encode(JSON.stringify({gen:n,epoch:t.epoch,files:i,checkpoints:a})),s=await Ce(t,n,o),c=await we(t);return t.walHandle.close(),await t.newSegment(n+1),t.lastSegStart=n+1,t.manifestCrc=r(o),t.compactGen=n,t.walStartGen=n+1,t.writeSuperblock(),await Te(t,c),await De(t,await Ee(t,i)),await Oe(t,s,n+`.json`),{gen:n}}var $=new class{mode=`starting`;mirror=new Map;checkpoints=new Map;opIds=new Map;appendedGen=0;walGen=0;memGen=0;ackGen=0;compactGen=0;epoch=0;walStartGen=1;staged=new Map;windowOps=[];flushTimer=null;chain=Promise.resolve();clientPort=null;queryPort=null;releaseLock=null;walHandle=null;walOffset=0;sbHandle=null;currentSlot=0;turn=null;auditLog=[];agentToken=null;projectId;root;bc;lastSegStart;lastSegValidEnd;manifestCrc;writerLockQueued=!1;writerLockHeld=!1;handoverRequested=!1;start(e){return T(this,e)}becomeWriter(){return D(this)}writeSuperblock(){O(this)}recover(){return F(this)}applyRecord(e){return I(this,e)}epochFloor(e){return x(e)}ensureBlob(e){return L(this,e)}readBlob(e){return R(this,e)}opRead(e){return z(this,e)}opLs(){return B(this)}opStatus(){return V(this)}pushDiff(e,t){H(this,e,t)}pushFullToQuery(){U(this)}event(e){W(this,e)}welcome(){G(this)}onBroadcast(e){return K(this,e)}requestHandover(){return E(this)}enqueue(e){return q(this,e)}appendSync(e,t,n){return J(this,e,t,n)}audit(e){Y(this,e)}checkTurn(e,t,n){X(this,e,t,n)}armAgentToken(e){return Z(this,e)}checkRestoreConflict(e){re(this,e)}curOf(e){return ie(this,e)}checkWrite(e,t,n){return ae(this,e,t,n)}rotateIfNeeded(){return oe(this)}newSegment(e){return se(this,e)}flushWindow(){ce(this)}rememberOpId(e,t){le(this,e,t)}scheduleFlush(e){ue(this,e)}opWrite(e,t){return de(this,e,t)}opEdit(e,t){return fe(this,e,t)}opRm(e,t){return pe(this,e,t)}opMv(e,t){return me(this,e,t)}makeCheckpoint(e){return he(this,e)}trimCheckpoints(){ge(this)}opCheckpoint(e,t){return _e(this,e,t)}opTurnBegin(e,t){return ve(this,e,t)}opTurnEnd(e,t){ye(this,e,t)}opDiff(e){return be(this,e)}opRestore(e,t){return xe(this,e,t)}opCompact(e,t){return Q(this,e,t)}compactNow(){return ke(this)}handleRpc(e){let t=t=>this.clientPort.postMessage({id:e.id,...t}),n=e=>t({ok:!1,code:e.code||`internal`,error:e.message||String(e),...e.extra||{}});if(e.opId&&this.opIds.has(e.opId)){let n=this.opIds.get(e.opId);t({ok:!0,result:{rev:n.gen,...n,idempotent:!0}});return}let r={...e.args,opId:e.opId},i={write:()=>this.opWrite(r,t),edit:()=>this.opEdit(r,t),rm:()=>this.opRm(r,t),mv:()=>this.opMv(r,t),mkdir:()=>{t({ok:!0,result:{gen:this.memGen}})},checkpoint:()=>this.opCheckpoint(r,t),restore:()=>this.opRestore(r,t),compact:()=>this.opCompact(r,t),turnBegin:()=>this.opTurnBegin(r,t),turnEnd:()=>this.opTurnEnd(r,t),diff:()=>t({ok:!0,result:this.opDiff(r)}),read:()=>t({ok:!0,result:this.opRead(r)}),ls:()=>t({ok:!0,result:this.opLs()}),status:()=>t({ok:!0,result:this.opStatus()}),armAgentTokenGate:()=>t({ok:!0,result:this.armAgentToken(r.token)}),requestHandover:()=>t({ok:!0,result:this.requestHandover()})}[e.op];if(!i){n(b(`bad-op`,String(e.op)));return}if([`write`,`edit`,`rm`,`mv`,`checkpoint`,`restore`,`compact`,`turnBegin`,`turnEnd`].includes(e.op))this.enqueue(async()=>{try{await i()}catch(e){n(e)}});else try{i()}catch(e){n(e)}}};self.onmessage=async e=>{let t=e.data;if(t.type===`HELLO`){$.clientPort=self,$.queryPort=t.queryPort||null;try{await $.start(t.projectId)}catch(e){let t=e instanceof Error?e.stack:void 0;self.postMessage({type:`FATAL`,error:String(t||e)})}return}if(t.type===`PING`){self.postMessage({type:`PONG`,t:t.t});return}t.id!==void 0&&$.handleRpc(t)};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e={mirror:new Map,gen:-1,waiters:[]};function t(t){if(t.full){e.mirror.clear();for(let[n,r]of Object.entries(t.files||{}))e.mirror.set(n,r)}else for(let[n,r]of Object.entries(t.diff||{}))r===null?e.mirror.delete(n):e.mirror.set(n,r);e.gen=t.gen,e.waiters=e.waiters.filter(t=>e.gen>=t.gen?(clearTimeout(t.timer),t.resolve(),!1):!0)}function n(t){return t===void 0||e.gen>=t?Promise.resolve():new Promise(n=>{let r={gen:t,resolve:n,timer:setTimeout(()=>{e.waiters=e.waiters.filter(e=>e!==r),n()},5e3)};e.waiters.push(r)})}var r=/[.+^${}()|[\]\\]/;function i(e,t){let n=e[t];if(n===`*`){if(e[t+1]===`*`){let n=e[t+2]===`/`;return{token:n?`(?:.*/)?`:`.*`,skip:n?2:1}}return{token:`[^/]*`,skip:0}}return n===`?`?{token:`[^/]`,skip:0}:{token:r.test(n)?`\\`+n:n,skip:0}}function a(e){let t=``;for(let n=0;n<e.length;n++){let{token:r,skip:a}=i(e,n);t+=r,n+=a}return RegExp(`^`+t+`$`)}var o={async snapshot({gen:t}){await n(t);let r={};for(let[t,n]of e.mirror)r[t]=n.content;return{files:r,gen:e.gen,stale:t!==void 0&&e.gen<t}},async read({path:t,gen:r}){await n(r);let i=e.mirror.get(t);if(!i)throw Object.assign(Error(t),{code:`not-found`});return{content:i.content,rev:i.rev,gen:e.gen}},async glob({pattern:t,gen:r}){await n(r);let i=a(t);return{paths:[...e.mirror.keys()].filter(e=>i.test(e)).sort(),gen:e.gen}},async grep({pattern:t,flags:r=``,glob:i,gen:o,limit:s=200}){await n(o);let c=new RegExp(t,r.replace(`g`,``)),l=i?a(i):null,u=[];for(let[t,n]of e.mirror){if(l&&!l.test(t))continue;let r=n.content.split(`
|
|
2
|
+
`);for(let n=0;n<r.length;n++)if(c.test(r[n])&&(u.push({path:t,lineNo:n+1,line:r[n].slice(0,500)}),u.length>=s))return{hits:u,gen:e.gen,truncated:!0}}return{hits:u,gen:e.gen,truncated:!1}}};self.onmessage=async e=>{let n=e.data;if(n.type===`init`){n.corePort.onmessage=e=>t(e.data),self.postMessage({type:`ready`});return}if(n.id!==void 0)try{let e=await o[n.op](n.args||{});self.postMessage({id:n.id,ok:!0,result:e})}catch(e){let t=e;self.postMessage({id:n.id,ok:!1,code:t.code||`internal`,error:t.message||String(e)})}};
|