@noego/wood 0.4.9 → 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 +118 -42
- package/bin/axe.js +313 -98
- package/dist/{loader/__fixtures__/layouts/app.load.cjs → automation/actions.cjs} +3 -13
- package/dist/automation/actions.cjs.map +1 -0
- package/dist/automation/actions.d.cts +57 -0
- package/dist/automation/actions.d.ts +57 -0
- package/dist/automation/actions.js +1 -0
- package/dist/automation/actions.js.map +1 -0
- package/dist/automation/actions_executor.cjs +101 -0
- package/dist/automation/actions_executor.cjs.map +1 -0
- package/dist/automation/actions_executor.d.cts +16 -0
- package/dist/automation/actions_executor.d.ts +16 -0
- package/dist/automation/actions_executor.js +76 -0
- package/dist/automation/actions_executor.js.map +1 -0
- package/dist/automation/connection.cjs +86 -0
- package/dist/automation/connection.cjs.map +1 -0
- package/dist/automation/connection.d.cts +18 -0
- package/dist/automation/connection.d.ts +18 -0
- package/dist/automation/connection.js +51 -0
- package/dist/automation/connection.js.map +1 -0
- package/dist/{middleware/__fixtures__/middleware/sequence.cjs → automation/errors.cjs} +25 -22
- package/dist/automation/errors.cjs.map +1 -0
- package/dist/automation/errors.d.cts +31 -0
- package/dist/automation/errors.d.ts +31 -0
- package/dist/automation/errors.js +24 -0
- package/dist/automation/errors.js.map +1 -0
- package/dist/automation/index.cjs +49 -0
- package/dist/automation/index.cjs.map +1 -0
- package/dist/automation/index.d.cts +16 -0
- package/dist/automation/index.d.ts +16 -0
- package/dist/automation/index.js +15 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/automation/introspection_reader.cjs +75 -0
- package/dist/automation/introspection_reader.cjs.map +1 -0
- package/dist/automation/introspection_reader.d.cts +20 -0
- package/dist/automation/introspection_reader.d.ts +20 -0
- package/dist/automation/introspection_reader.js +48 -0
- package/dist/automation/introspection_reader.js.map +1 -0
- package/dist/automation/locator.cjs +102 -0
- package/dist/automation/locator.cjs.map +1 -0
- package/dist/automation/locator.d.cts +51 -0
- package/dist/automation/locator.d.ts +51 -0
- package/dist/automation/locator.js +75 -0
- package/dist/automation/locator.js.map +1 -0
- package/dist/{loader/__fixtures__/views/test/page.load.cjs → automation/observation.cjs} +3 -13
- package/dist/automation/observation.cjs.map +1 -0
- package/dist/automation/observation.d.cts +44 -0
- package/dist/automation/observation.d.ts +44 -0
- package/dist/automation/observation.js +1 -0
- package/dist/automation/observation.js.map +1 -0
- package/dist/{controller/__fixtures__/controllers/test.cjs → automation/receipts.cjs} +3 -15
- package/dist/automation/receipts.cjs.map +1 -0
- package/dist/automation/receipts.d.cts +27 -0
- package/dist/automation/receipts.d.ts +27 -0
- package/dist/automation/receipts.js +1 -0
- package/dist/automation/receipts.js.map +1 -0
- package/dist/automation/scenario.cjs +696 -0
- package/dist/automation/scenario.cjs.map +1 -0
- package/dist/automation/scenario.d.cts +89 -0
- package/dist/automation/scenario.d.ts +89 -0
- package/dist/automation/scenario.js +660 -0
- package/dist/automation/scenario.js.map +1 -0
- package/dist/automation/scrolling.cjs +17 -0
- package/dist/automation/scrolling.cjs.map +1 -0
- package/dist/automation/scrolling.d.cts +51 -0
- package/dist/automation/scrolling.d.ts +51 -0
- package/dist/automation/scrolling.js +1 -0
- package/dist/automation/scrolling.js.map +1 -0
- package/dist/automation/scrolling_executor.cjs +109 -0
- package/dist/automation/scrolling_executor.cjs.map +1 -0
- package/dist/automation/scrolling_executor.d.cts +13 -0
- package/dist/automation/scrolling_executor.d.ts +13 -0
- package/dist/automation/scrolling_executor.js +84 -0
- package/dist/automation/scrolling_executor.js.map +1 -0
- package/dist/automation/target_identity.cjs +17 -0
- package/dist/automation/target_identity.cjs.map +1 -0
- package/dist/automation/target_identity.d.cts +28 -0
- package/dist/automation/target_identity.d.ts +28 -0
- package/dist/automation/target_identity.js +1 -0
- package/dist/automation/target_identity.js.map +1 -0
- package/dist/automation/target_registry.cjs +148 -0
- package/dist/automation/target_registry.cjs.map +1 -0
- package/dist/automation/target_registry.d.cts +32 -0
- package/dist/automation/target_registry.d.ts +32 -0
- package/dist/automation/target_registry.js +122 -0
- package/dist/automation/target_registry.js.map +1 -0
- package/dist/automation/waits.cjs +17 -0
- package/dist/automation/waits.cjs.map +1 -0
- package/dist/automation/waits.d.cts +44 -0
- package/dist/automation/waits.d.ts +44 -0
- package/dist/automation/waits.js +1 -0
- package/dist/automation/waits.js.map +1 -0
- package/dist/automation/waits_executor.cjs +104 -0
- package/dist/automation/waits_executor.cjs.map +1 -0
- package/dist/automation/waits_executor.d.cts +14 -0
- package/dist/automation/waits_executor.d.ts +14 -0
- package/dist/automation/waits_executor.js +79 -0
- package/dist/automation/waits_executor.js.map +1 -0
- package/dist/bridge/backend_bridge.cjs.map +1 -1
- package/dist/bridge/backend_bridge.js.map +1 -1
- package/dist/client/index.cjs +78 -21
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +19 -3
- package/dist/client/index.d.ts +19 -3
- package/dist/client/index.js +80 -22
- package/dist/client/index.js.map +1 -1
- package/dist/client/renderer_log_transport.cjs +151 -0
- package/dist/client/renderer_log_transport.cjs.map +1 -0
- package/dist/client/renderer_log_transport.d.cts +54 -0
- package/dist/client/renderer_log_transport.d.ts +54 -0
- package/dist/client/renderer_log_transport.js +123 -0
- package/dist/client/renderer_log_transport.js.map +1 -0
- package/dist/codegen/controller_registration_generator.cjs +13 -2
- package/dist/codegen/controller_registration_generator.cjs.map +1 -1
- package/dist/codegen/controller_registration_generator.d.cts +12 -1
- package/dist/codegen/controller_registration_generator.d.ts +12 -1
- package/dist/codegen/controller_registration_generator.js +10 -1
- package/dist/codegen/controller_registration_generator.js.map +1 -1
- package/dist/codegen/index.d.cts +1 -0
- package/dist/codegen/index.d.ts +1 -0
- package/dist/codegen/preload_generator.cjs +13 -6
- package/dist/codegen/preload_generator.cjs.map +1 -1
- package/dist/codegen/preload_generator.d.cts +11 -2
- package/dist/codegen/preload_generator.d.ts +11 -2
- package/dist/codegen/preload_generator.js +13 -6
- package/dist/codegen/preload_generator.js.map +1 -1
- package/dist/codegen/renderer_app_generator.cjs +95 -44
- package/dist/codegen/renderer_app_generator.cjs.map +1 -1
- package/dist/codegen/renderer_app_generator.js +95 -44
- package/dist/codegen/renderer_app_generator.js.map +1 -1
- package/dist/codegen/type_generator.cjs +1 -0
- package/dist/codegen/type_generator.cjs.map +1 -1
- package/dist/codegen/type_generator.js +1 -0
- package/dist/codegen/type_generator.js.map +1 -1
- package/dist/config/config_parser.cjs +95 -4
- package/dist/config/config_parser.cjs.map +1 -1
- package/dist/config/config_parser.d.cts +10 -2
- package/dist/config/config_parser.d.ts +10 -2
- package/dist/config/config_parser.js +92 -3
- package/dist/config/config_parser.js.map +1 -1
- package/dist/config/index.cjs +6 -2
- package/dist/config/index.cjs.map +1 -1
- package/dist/config/index.d.cts +2 -2
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.js +8 -2
- package/dist/config/index.js.map +1 -1
- package/dist/controller/controller_resolver.cjs +51 -3
- package/dist/controller/controller_resolver.cjs.map +1 -1
- package/dist/controller/controller_resolver.d.cts +27 -4
- package/dist/controller/controller_resolver.d.ts +27 -4
- package/dist/controller/controller_resolver.js +48 -2
- package/dist/controller/controller_resolver.js.map +1 -1
- package/dist/controller/index.cjs +6 -2
- package/dist/controller/index.cjs.map +1 -1
- package/dist/controller/index.d.cts +1 -1
- package/dist/controller/index.d.ts +1 -1
- package/dist/controller/index.js +4 -2
- package/dist/controller/index.js.map +1 -1
- package/dist/dev/wood_dev_server.cjs +4 -1
- package/dist/dev/wood_dev_server.cjs.map +1 -1
- package/dist/dev/wood_dev_server.js +5 -2
- package/dist/dev/wood_dev_server.js.map +1 -1
- package/dist/dev/yaml_watcher.cjs +1 -1
- package/dist/dev/yaml_watcher.cjs.map +1 -1
- package/dist/dev/yaml_watcher.d.cts +4 -0
- package/dist/dev/yaml_watcher.d.ts +4 -0
- package/dist/dev/yaml_watcher.js +1 -1
- package/dist/dev/yaml_watcher.js.map +1 -1
- package/dist/frontend/frontend_lifecycle.cjs +74 -0
- package/dist/frontend/frontend_lifecycle.cjs.map +1 -0
- package/dist/frontend/frontend_lifecycle.d.cts +50 -0
- package/dist/frontend/frontend_lifecycle.d.ts +50 -0
- package/dist/frontend/frontend_lifecycle.js +50 -0
- package/dist/frontend/frontend_lifecycle.js.map +1 -0
- package/dist/frontend/frontend_page.cjs +122 -0
- package/dist/frontend/frontend_page.cjs.map +1 -0
- package/dist/frontend/frontend_page.d.cts +62 -0
- package/dist/frontend/frontend_page.d.ts +62 -0
- package/dist/frontend/frontend_page.js +98 -0
- package/dist/frontend/frontend_page.js.map +1 -0
- package/dist/frontend/frontend_surface.cjs +249 -0
- package/dist/frontend/frontend_surface.cjs.map +1 -0
- package/dist/frontend/frontend_surface.d.cts +64 -0
- package/dist/frontend/frontend_surface.d.ts +64 -0
- package/dist/frontend/frontend_surface.js +224 -0
- package/dist/frontend/frontend_surface.js.map +1 -0
- package/dist/frontend/index.cjs +52 -0
- package/dist/frontend/index.cjs.map +1 -0
- package/dist/frontend/index.d.cts +10 -0
- package/dist/frontend/index.d.ts +10 -0
- package/dist/frontend/index.js +19 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/frontend/page_catalog.cjs +135 -0
- package/dist/frontend/page_catalog.cjs.map +1 -0
- package/dist/frontend/page_catalog.d.cts +56 -0
- package/dist/frontend/page_catalog.d.ts +56 -0
- package/dist/frontend/page_catalog.js +108 -0
- package/dist/frontend/page_catalog.js.map +1 -0
- package/dist/frontend/tracked_transport.cjs +55 -0
- package/dist/frontend/tracked_transport.cjs.map +1 -0
- package/dist/frontend/tracked_transport.d.cts +36 -0
- package/dist/frontend/tracked_transport.d.ts +36 -0
- package/dist/frontend/tracked_transport.js +31 -0
- package/dist/frontend/tracked_transport.js.map +1 -0
- package/dist/frontend/work_registry.cjs +153 -0
- package/dist/frontend/work_registry.cjs.map +1 -0
- package/dist/frontend/work_registry.d.cts +70 -0
- package/dist/frontend/work_registry.d.ts +70 -0
- package/dist/frontend/work_registry.js +128 -0
- package/dist/frontend/work_registry.js.map +1 -0
- package/dist/index.cjs +24 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -7
- package/dist/index.d.ts +11 -7
- package/dist/index.js +27 -4
- package/dist/index.js.map +1 -1
- package/dist/main/index.cjs +10 -0
- package/dist/main/index.cjs.map +1 -1
- package/dist/main/index.d.cts +14 -2
- package/dist/main/index.d.ts +14 -2
- package/dist/main/index.js +16 -0
- package/dist/main/index.js.map +1 -1
- package/dist/middleware/middleware_resolver.cjs +22 -1
- package/dist/middleware/middleware_resolver.cjs.map +1 -1
- package/dist/middleware/middleware_resolver.d.cts +13 -1
- package/dist/middleware/middleware_resolver.d.ts +13 -1
- package/dist/middleware/middleware_resolver.js +22 -1
- package/dist/middleware/middleware_resolver.js.map +1 -1
- package/dist/navigation/automation_introspection.cjs +110 -0
- package/dist/navigation/automation_introspection.cjs.map +1 -0
- package/dist/navigation/automation_introspection.d.cts +60 -0
- package/dist/navigation/automation_introspection.d.ts +60 -0
- package/dist/navigation/automation_introspection.js +85 -0
- package/dist/navigation/automation_introspection.js.map +1 -0
- package/dist/navigation/index.cjs +10 -2
- package/dist/navigation/index.cjs.map +1 -1
- package/dist/navigation/index.d.cts +27 -1
- package/dist/navigation/index.d.ts +27 -1
- package/dist/navigation/index.js +6 -1
- package/dist/navigation/index.js.map +1 -1
- package/dist/{middleware/__fixtures__/middleware/auth.cjs → navigation/layout_preservation.cjs} +18 -20
- package/dist/navigation/layout_preservation.cjs.map +1 -0
- package/dist/navigation/layout_preservation.d.cts +2 -0
- package/dist/navigation/layout_preservation.d.ts +2 -0
- package/dist/navigation/layout_preservation.js +18 -0
- package/dist/navigation/layout_preservation.js.map +1 -0
- package/dist/parser/index.cjs +2 -0
- package/dist/parser/index.cjs.map +1 -1
- package/dist/parser/index.d.cts +1 -1
- package/dist/parser/index.d.ts +1 -1
- package/dist/parser/index.js +2 -1
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/operations_parser.cjs +6 -0
- package/dist/parser/operations_parser.cjs.map +1 -1
- package/dist/parser/operations_parser.d.cts +9 -2
- package/dist/parser/operations_parser.d.ts +9 -2
- package/dist/parser/operations_parser.js +5 -0
- package/dist/parser/operations_parser.js.map +1 -1
- package/dist/parser/views_parser.cjs.map +1 -1
- package/dist/parser/views_parser.js.map +1 -1
- package/dist/router/index.d.cts +1 -0
- package/dist/router/index.d.ts +1 -0
- package/dist/router/wood_router.cjs +35 -3
- package/dist/router/wood_router.cjs.map +1 -1
- package/dist/router/wood_router.d.cts +15 -0
- package/dist/router/wood_router.d.ts +15 -0
- package/dist/router/wood_router.js +36 -4
- package/dist/router/wood_router.js.map +1 -1
- package/dist/runtime/get_container.cjs +9 -34
- package/dist/runtime/get_container.cjs.map +1 -1
- package/dist/runtime/get_container.d.cts +24 -4
- package/dist/runtime/get_container.d.ts +24 -4
- package/dist/runtime/get_container.js +8 -23
- package/dist/runtime/get_container.js.map +1 -1
- package/dist/runtime/index.cjs +9 -0
- package/dist/runtime/index.cjs.map +1 -1
- package/dist/runtime/index.d.cts +5 -2
- package/dist/runtime/index.d.ts +5 -2
- package/dist/runtime/index.js +10 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/renderer_config_extension.cjs +50 -0
- package/dist/runtime/renderer_config_extension.cjs.map +1 -0
- package/dist/runtime/renderer_config_extension.d.cts +19 -0
- package/dist/runtime/renderer_config_extension.d.ts +19 -0
- package/dist/runtime/renderer_config_extension.js +24 -0
- package/dist/runtime/renderer_config_extension.js.map +1 -0
- package/dist/runtime/renderer_log_batch_receiver.cjs +73 -0
- package/dist/runtime/renderer_log_batch_receiver.cjs.map +1 -0
- package/dist/runtime/renderer_log_batch_receiver.d.cts +29 -0
- package/dist/runtime/renderer_log_batch_receiver.d.ts +29 -0
- package/dist/runtime/renderer_log_batch_receiver.js +48 -0
- package/dist/runtime/renderer_log_batch_receiver.js.map +1 -0
- package/dist/runtime/renderer_trace_batch_receiver_registry.d.cts +1 -1
- package/dist/runtime/renderer_trace_batch_receiver_registry.d.ts +1 -1
- package/dist/runtime/runtime.cjs +14 -0
- package/dist/runtime/runtime.cjs.map +1 -1
- package/dist/runtime/runtime.d.cts +2 -1
- package/dist/runtime/runtime.d.ts +2 -1
- package/dist/runtime/runtime.js +14 -0
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/stick/index.cjs.map +1 -1
- package/dist/stick/index.js.map +1 -1
- package/dist/testing/automation_assertions.cjs +417 -0
- package/dist/testing/automation_assertions.cjs.map +1 -0
- package/dist/testing/automation_assertions.d.cts +44 -0
- package/dist/testing/automation_assertions.d.ts +44 -0
- package/dist/testing/automation_assertions.js +385 -0
- package/dist/testing/automation_assertions.js.map +1 -0
- package/dist/testing/browser.cjs +130 -57
- package/dist/testing/browser.cjs.map +1 -1
- package/dist/testing/browser.d.cts +10 -4
- package/dist/testing/browser.d.ts +10 -4
- package/dist/testing/browser.js +132 -53
- package/dist/testing/browser.js.map +1 -1
- package/dist/testing/create_controller_harness.cjs +28 -8
- package/dist/testing/create_controller_harness.cjs.map +1 -1
- package/dist/testing/create_controller_harness.d.cts +18 -2
- package/dist/testing/create_controller_harness.d.ts +18 -2
- package/dist/testing/create_controller_harness.js +28 -8
- package/dist/testing/create_controller_harness.js.map +1 -1
- package/dist/testing/create_router_bridge.d.cts +1 -0
- package/dist/testing/create_router_bridge.d.ts +1 -0
- package/dist/testing/create_test_router.d.cts +1 -0
- package/dist/testing/create_test_router.d.ts +1 -0
- package/dist/testing/geometry.cjs +109 -0
- package/dist/testing/geometry.cjs.map +1 -0
- package/dist/testing/geometry.d.cts +45 -0
- package/dist/testing/geometry.d.ts +45 -0
- package/dist/testing/geometry.js +79 -0
- package/dist/testing/geometry.js.map +1 -0
- package/dist/testing/index.cjs +62 -2
- package/dist/testing/index.cjs.map +1 -1
- package/dist/testing/index.d.cts +23 -4
- package/dist/testing/index.d.ts +23 -4
- package/dist/testing/index.js +50 -2
- package/dist/testing/index.js.map +1 -1
- package/dist/{controller/__fixtures__/controllers/not_a_class.cjs → testing/test_wood.cjs} +15 -7
- package/dist/testing/test_wood.cjs.map +1 -0
- package/dist/testing/test_wood.d.cts +16 -0
- package/dist/testing/test_wood.d.ts +16 -0
- package/dist/testing/test_wood.js +12 -0
- package/dist/testing/test_wood.js.map +1 -0
- package/dist/testing/test_wood_config.cjs +272 -0
- package/dist/testing/test_wood_config.cjs.map +1 -0
- package/dist/testing/test_wood_config.d.cts +111 -0
- package/dist/testing/test_wood_config.d.ts +111 -0
- package/dist/testing/test_wood_config.js +247 -0
- package/dist/testing/test_wood_config.js.map +1 -0
- package/dist/testing/wood_config_source.cjs +146 -0
- package/dist/testing/wood_config_source.cjs.map +1 -0
- package/dist/testing/wood_config_source.d.cts +36 -0
- package/dist/testing/wood_config_source.d.ts +36 -0
- package/dist/testing/wood_config_source.js +112 -0
- package/dist/testing/wood_config_source.js.map +1 -0
- package/dist/testing/wood_env_renderer.cjs +210 -0
- package/dist/testing/wood_env_renderer.cjs.map +1 -0
- package/dist/testing/wood_env_renderer.d.cts +74 -0
- package/dist/testing/wood_env_renderer.d.ts +74 -0
- package/dist/testing/wood_env_renderer.js +188 -0
- package/dist/testing/wood_env_renderer.js.map +1 -0
- package/dist/testing/wood_test_selection.cjs +94 -0
- package/dist/testing/wood_test_selection.cjs.map +1 -0
- package/dist/testing/wood_test_selection.d.cts +39 -0
- package/dist/testing/wood_test_selection.d.ts +39 -0
- package/dist/testing/wood_test_selection.js +68 -0
- package/dist/testing/wood_test_selection.js.map +1 -0
- package/dist/trace-testing/index.d.cts +1 -2
- package/dist/trace-testing/index.d.ts +1 -2
- package/dist/trace-testing/trace_recorder.cjs +1 -1
- package/dist/trace-testing/trace_recorder.cjs.map +1 -1
- package/dist/trace-testing/trace_recorder.d.cts +1 -2
- package/dist/trace-testing/trace_recorder.d.ts +1 -2
- package/dist/trace-testing/trace_recorder.js +1 -1
- package/dist/trace-testing/trace_recorder.js.map +1 -1
- package/dist/trace-transport/index.d.cts +1 -1
- package/dist/trace-transport/index.d.ts +1 -1
- package/dist/{trace_hub-Cob54qRx.d.cts → trace_hub-Cpo_nVze.d.cts} +21 -1
- package/dist/{trace_hub-Cob54qRx.d.ts → trace_hub-Cpo_nVze.d.ts} +21 -1
- package/dist/tracing/index.cjs +9 -2
- package/dist/tracing/index.cjs.map +1 -1
- package/dist/tracing/index.d.cts +3 -2
- package/dist/tracing/index.d.ts +3 -2
- package/dist/tracing/index.js +7 -1
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/renderer_trace_batch_host.d.cts +1 -1
- package/dist/tracing/renderer_trace_batch_host.d.ts +1 -1
- package/dist/tracing/renderer_trace_batch_transport.cjs +48 -6
- package/dist/tracing/renderer_trace_batch_transport.cjs.map +1 -1
- package/dist/tracing/renderer_trace_batch_transport.d.cts +17 -1
- package/dist/tracing/renderer_trace_batch_transport.d.ts +17 -1
- package/dist/tracing/renderer_trace_batch_transport.js +48 -6
- package/dist/tracing/renderer_trace_batch_transport.js.map +1 -1
- package/dist/tracing/trace_batch_adapter.cjs +110 -0
- package/dist/tracing/trace_batch_adapter.cjs.map +1 -0
- package/dist/tracing/trace_batch_adapter.d.cts +36 -0
- package/dist/tracing/trace_batch_adapter.d.ts +36 -0
- package/dist/tracing/trace_batch_adapter.js +86 -0
- package/dist/tracing/trace_batch_adapter.js.map +1 -0
- package/dist/tracing/trace_commit_writer.d.cts +1 -1
- package/dist/tracing/trace_commit_writer.d.ts +1 -1
- package/dist/tracing/trace_hub.cjs +87 -20
- package/dist/tracing/trace_hub.cjs.map +1 -1
- package/dist/tracing/trace_hub.d.cts +1 -1
- package/dist/tracing/trace_hub.d.ts +1 -1
- package/dist/tracing/trace_hub.js +85 -20
- package/dist/tracing/trace_hub.js.map +1 -1
- package/dist/tracing/trace_provider.cjs +21 -6
- package/dist/tracing/trace_provider.cjs.map +1 -1
- package/dist/tracing/trace_provider.d.cts +13 -4
- package/dist/tracing/trace_provider.d.ts +13 -4
- package/dist/tracing/trace_provider.js +22 -7
- package/dist/tracing/trace_provider.js.map +1 -1
- package/dist/tracing/types/wood_trace_batch.types.cjs.map +1 -1
- package/dist/tracing/types/wood_trace_batch.types.d.cts +15 -1
- package/dist/tracing/types/wood_trace_batch.types.d.ts +15 -1
- package/dist/tracing/types/wood_trace_sink.types.d.cts +1 -1
- package/dist/tracing/types/wood_trace_sink.types.d.ts +1 -1
- package/dist/tracing/wood_trace_batch_contract.cjs +2 -0
- package/dist/tracing/wood_trace_batch_contract.cjs.map +1 -1
- package/dist/tracing/wood_trace_batch_contract.d.cts +1 -1
- package/dist/tracing/wood_trace_batch_contract.d.ts +1 -1
- package/dist/tracing/wood_trace_batch_contract.js +2 -0
- package/dist/tracing/wood_trace_batch_contract.js.map +1 -1
- package/dist/transport/build_transport_bridge.cjs +4 -2
- package/dist/transport/build_transport_bridge.cjs.map +1 -1
- package/dist/transport/build_transport_bridge.d.cts +7 -1
- package/dist/transport/build_transport_bridge.d.ts +7 -1
- package/dist/transport/build_transport_bridge.js +2 -1
- package/dist/transport/build_transport_bridge.js.map +1 -1
- package/dist/transport/in_process_router_transport.d.cts +1 -0
- package/dist/transport/in_process_router_transport.d.ts +1 -0
- package/dist/transport/index.d.cts +1 -0
- package/dist/transport/index.d.ts +1 -0
- package/dist/types/config.cjs.map +1 -1
- package/dist/types/config.d.cts +47 -1
- package/dist/types/config.d.ts +47 -1
- package/dist/types/context.cjs +12 -0
- package/dist/types/context.cjs.map +1 -1
- package/dist/types/context.d.cts +27 -1
- package/dist/types/context.d.ts +27 -1
- package/dist/types/context.js +4 -0
- package/dist/types/context.js.map +1 -1
- package/dist/types/index.d.cts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/operations.cjs.map +1 -1
- package/dist/types/operations.d.cts +2 -0
- package/dist/types/operations.d.ts +2 -0
- package/docs/axe.md +706 -0
- package/package.json +19 -5
- package/src/components/NavigationShell.scopes.browser.test.ts +363 -0
- package/src/components/NavigationShell.svelte +126 -49
- package/dist/controller/__fixtures__/controllers/chat.cjs +0 -32
- package/dist/controller/__fixtures__/controllers/chat.cjs.map +0 -1
- package/dist/controller/__fixtures__/controllers/chat.d.cts +0 -11
- package/dist/controller/__fixtures__/controllers/chat.d.ts +0 -11
- package/dist/controller/__fixtures__/controllers/chat.js +0 -12
- package/dist/controller/__fixtures__/controllers/chat.js.map +0 -1
- package/dist/controller/__fixtures__/controllers/not_a_class.cjs.map +0 -1
- package/dist/controller/__fixtures__/controllers/not_a_class.d.cts +0 -3
- package/dist/controller/__fixtures__/controllers/not_a_class.d.ts +0 -3
- package/dist/controller/__fixtures__/controllers/not_a_class.js +0 -5
- package/dist/controller/__fixtures__/controllers/not_a_class.js.map +0 -1
- package/dist/controller/__fixtures__/controllers/settings.controller.cjs +0 -32
- package/dist/controller/__fixtures__/controllers/settings.controller.cjs.map +0 -1
- package/dist/controller/__fixtures__/controllers/settings.controller.d.cts +0 -12
- package/dist/controller/__fixtures__/controllers/settings.controller.d.ts +0 -12
- package/dist/controller/__fixtures__/controllers/settings.controller.js +0 -12
- package/dist/controller/__fixtures__/controllers/settings.controller.js.map +0 -1
- package/dist/controller/__fixtures__/controllers/test.cjs.map +0 -1
- package/dist/controller/__fixtures__/controllers/test.d.cts +0 -7
- package/dist/controller/__fixtures__/controllers/test.d.ts +0 -7
- package/dist/controller/__fixtures__/controllers/test.js +0 -9
- package/dist/controller/__fixtures__/controllers/test.js.map +0 -1
- package/dist/loader/__fixtures__/layouts/app.load.cjs.map +0 -1
- package/dist/loader/__fixtures__/layouts/app.load.d.cts +0 -5
- package/dist/loader/__fixtures__/layouts/app.load.d.ts +0 -5
- package/dist/loader/__fixtures__/layouts/app.load.js +0 -7
- package/dist/loader/__fixtures__/layouts/app.load.js.map +0 -1
- package/dist/loader/__fixtures__/views/test/page.load.cjs.map +0 -1
- package/dist/loader/__fixtures__/views/test/page.load.d.cts +0 -6
- package/dist/loader/__fixtures__/views/test/page.load.d.ts +0 -6
- package/dist/loader/__fixtures__/views/test/page.load.js +0 -7
- package/dist/loader/__fixtures__/views/test/page.load.js.map +0 -1
- package/dist/middleware/__fixtures__/middleware/auth.cjs.map +0 -1
- package/dist/middleware/__fixtures__/middleware/auth.d.cts +0 -6
- package/dist/middleware/__fixtures__/middleware/auth.d.ts +0 -6
- package/dist/middleware/__fixtures__/middleware/auth.js +0 -19
- package/dist/middleware/__fixtures__/middleware/auth.js.map +0 -1
- package/dist/middleware/__fixtures__/middleware/sequence.cjs.map +0 -1
- package/dist/middleware/__fixtures__/middleware/sequence.d.cts +0 -7
- package/dist/middleware/__fixtures__/middleware/sequence.d.ts +0 -7
- package/dist/middleware/__fixtures__/middleware/sequence.js +0 -21
- package/dist/middleware/__fixtures__/middleware/sequence.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { c as TraceLevel } from '../trace_hub-
|
|
1
|
+
import { c as TraceLevel } from '../trace_hub-Cpo_nVze.cjs';
|
|
2
2
|
import { TraceRecorder } from '../trace-testing/trace_recorder.cjs';
|
|
3
3
|
import { WoodRpcTransport } from '../transport/wood_rpc_transport.cjs';
|
|
4
|
+
import { RectAxis } from './geometry.cjs';
|
|
4
5
|
import 'rxjs';
|
|
5
6
|
import '@noego/trace/testing';
|
|
6
7
|
import '../tracing/trace_provider.cjs';
|
|
7
|
-
import '@noego/ioc';
|
|
8
8
|
|
|
9
9
|
type MaybePromise<T> = T | Promise<T>;
|
|
10
10
|
type BrowserName = 'chromium' | 'firefox' | 'webkit';
|
|
@@ -156,7 +156,7 @@ interface WoodRectSnapshot {
|
|
|
156
156
|
height: number;
|
|
157
157
|
}
|
|
158
158
|
/** Axis along which edge-to-edge spacing is measured. */
|
|
159
|
-
type WoodSpacingAxis =
|
|
159
|
+
type WoodSpacingAxis = RectAxis;
|
|
160
160
|
/**
|
|
161
161
|
* Description of the top-most element painted at a hit-test point, plus its
|
|
162
162
|
* relationship to the queried target. `document.elementFromPoint` honours
|
|
@@ -394,6 +394,12 @@ declare function createBrowserBridgeFixture(input: WoodBridgeFixtureInput | unde
|
|
|
394
394
|
manifest: RuntimeBridgeManifestEntry[];
|
|
395
395
|
bridgeInit: string;
|
|
396
396
|
};
|
|
397
|
+
declare function startSharedBrowserViteServer(input: {
|
|
398
|
+
rootDir: string;
|
|
399
|
+
}): Promise<{
|
|
400
|
+
url: string;
|
|
401
|
+
close: () => Promise<void>;
|
|
402
|
+
}>;
|
|
397
403
|
declare function createHarness(config?: WoodBrowserHarnessConfig): Promise<WoodBrowserHarness>;
|
|
398
404
|
declare const browser: {
|
|
399
405
|
createHarness: typeof createHarness;
|
|
@@ -413,4 +419,4 @@ declare global {
|
|
|
413
419
|
}
|
|
414
420
|
}
|
|
415
421
|
|
|
416
|
-
export { type MountComponentOptions, type MountRouteOptions, type MountTreeOptions, type MountedWoodBridge, type MountedWoodComponent, type MountedWoodNavigation, type MountedWoodRoute, type MountedWoodSurface, type MountedWoodTree, type WoodBridgeFixtureContext, type WoodBridgeFixtureInput, type WoodBridgeRecordedCall, type WoodBridgeRecordedEvent, type WoodBrowserExpect, type WoodBrowserHarness, type WoodBrowserHarnessConfig, type WoodBrowserPageContext, type WoodBrowserTraceConfig, type WoodHitTestResult, type WoodRectSnapshot, type WoodRpcManifestEntryInput, type WoodSpacingAxis, type WoodViewport, browser, createBrowserBridgeFixture };
|
|
422
|
+
export { type MountComponentOptions, type MountRouteOptions, type MountTreeOptions, type MountedWoodBridge, type MountedWoodComponent, type MountedWoodNavigation, type MountedWoodRoute, type MountedWoodSurface, type MountedWoodTree, type WoodBridgeFixtureContext, type WoodBridgeFixtureInput, type WoodBridgeRecordedCall, type WoodBridgeRecordedEvent, type WoodBrowserExpect, type WoodBrowserHarness, type WoodBrowserHarnessConfig, type WoodBrowserPageContext, type WoodBrowserTraceConfig, type WoodHitTestResult, type WoodRectSnapshot, type WoodRpcManifestEntryInput, type WoodSpacingAxis, type WoodViewport, browser, createBrowserBridgeFixture, startSharedBrowserViteServer };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { c as TraceLevel } from '../trace_hub-
|
|
1
|
+
import { c as TraceLevel } from '../trace_hub-Cpo_nVze.js';
|
|
2
2
|
import { TraceRecorder } from '../trace-testing/trace_recorder.js';
|
|
3
3
|
import { WoodRpcTransport } from '../transport/wood_rpc_transport.js';
|
|
4
|
+
import { RectAxis } from './geometry.js';
|
|
4
5
|
import 'rxjs';
|
|
5
6
|
import '@noego/trace/testing';
|
|
6
7
|
import '../tracing/trace_provider.js';
|
|
7
|
-
import '@noego/ioc';
|
|
8
8
|
|
|
9
9
|
type MaybePromise<T> = T | Promise<T>;
|
|
10
10
|
type BrowserName = 'chromium' | 'firefox' | 'webkit';
|
|
@@ -156,7 +156,7 @@ interface WoodRectSnapshot {
|
|
|
156
156
|
height: number;
|
|
157
157
|
}
|
|
158
158
|
/** Axis along which edge-to-edge spacing is measured. */
|
|
159
|
-
type WoodSpacingAxis =
|
|
159
|
+
type WoodSpacingAxis = RectAxis;
|
|
160
160
|
/**
|
|
161
161
|
* Description of the top-most element painted at a hit-test point, plus its
|
|
162
162
|
* relationship to the queried target. `document.elementFromPoint` honours
|
|
@@ -394,6 +394,12 @@ declare function createBrowserBridgeFixture(input: WoodBridgeFixtureInput | unde
|
|
|
394
394
|
manifest: RuntimeBridgeManifestEntry[];
|
|
395
395
|
bridgeInit: string;
|
|
396
396
|
};
|
|
397
|
+
declare function startSharedBrowserViteServer(input: {
|
|
398
|
+
rootDir: string;
|
|
399
|
+
}): Promise<{
|
|
400
|
+
url: string;
|
|
401
|
+
close: () => Promise<void>;
|
|
402
|
+
}>;
|
|
397
403
|
declare function createHarness(config?: WoodBrowserHarnessConfig): Promise<WoodBrowserHarness>;
|
|
398
404
|
declare const browser: {
|
|
399
405
|
createHarness: typeof createHarness;
|
|
@@ -413,4 +419,4 @@ declare global {
|
|
|
413
419
|
}
|
|
414
420
|
}
|
|
415
421
|
|
|
416
|
-
export { type MountComponentOptions, type MountRouteOptions, type MountTreeOptions, type MountedWoodBridge, type MountedWoodComponent, type MountedWoodNavigation, type MountedWoodRoute, type MountedWoodSurface, type MountedWoodTree, type WoodBridgeFixtureContext, type WoodBridgeFixtureInput, type WoodBridgeRecordedCall, type WoodBridgeRecordedEvent, type WoodBrowserExpect, type WoodBrowserHarness, type WoodBrowserHarnessConfig, type WoodBrowserPageContext, type WoodBrowserTraceConfig, type WoodHitTestResult, type WoodRectSnapshot, type WoodRpcManifestEntryInput, type WoodSpacingAxis, type WoodViewport, browser, createBrowserBridgeFixture };
|
|
422
|
+
export { type MountComponentOptions, type MountRouteOptions, type MountTreeOptions, type MountedWoodBridge, type MountedWoodComponent, type MountedWoodNavigation, type MountedWoodRoute, type MountedWoodSurface, type MountedWoodTree, type WoodBridgeFixtureContext, type WoodBridgeFixtureInput, type WoodBridgeRecordedCall, type WoodBridgeRecordedEvent, type WoodBrowserExpect, type WoodBrowserHarness, type WoodBrowserHarnessConfig, type WoodBrowserPageContext, type WoodBrowserTraceConfig, type WoodHitTestResult, type WoodRectSnapshot, type WoodRpcManifestEntryInput, type WoodSpacingAxis, type WoodViewport, browser, createBrowserBridgeFixture, startSharedBrowserViteServer };
|
package/dist/testing/browser.js
CHANGED
|
@@ -7,6 +7,14 @@ import {
|
|
|
7
7
|
dispatchRendererTracePayload
|
|
8
8
|
} from "../tracing/index.js";
|
|
9
9
|
import { TraceRecorder } from "../trace-testing/index.js";
|
|
10
|
+
import {
|
|
11
|
+
axisEdges,
|
|
12
|
+
axisGap,
|
|
13
|
+
evenSpacing as evenSpacingRects,
|
|
14
|
+
rectsOverlap,
|
|
15
|
+
sharedEdges as sharedRectEdges,
|
|
16
|
+
snapshotRectsOverlap
|
|
17
|
+
} from "./geometry.js";
|
|
10
18
|
const DEFAULT_VIEWPORT = {
|
|
11
19
|
width: 1280,
|
|
12
20
|
height: 800
|
|
@@ -16,6 +24,7 @@ const DEFAULT_RESOURCE_CLOSE_TIMEOUT_MS = 5e3;
|
|
|
16
24
|
const WORKER_RUNTIME_IDLE_CLOSE_MS = 5e3;
|
|
17
25
|
const browserWorkerRuntimes = /* @__PURE__ */ new Map();
|
|
18
26
|
const browserWorkerCacheDirs = /* @__PURE__ */ new Set();
|
|
27
|
+
const browserConnectWarnings = /* @__PURE__ */ new Set();
|
|
19
28
|
process.on("exit", () => {
|
|
20
29
|
for (const cacheDir of browserWorkerCacheDirs) {
|
|
21
30
|
try {
|
|
@@ -179,8 +188,9 @@ function buildBridgeInitScript(manifest, traceConfig, transportMode) {
|
|
|
179
188
|
})();
|
|
180
189
|
`;
|
|
181
190
|
}
|
|
182
|
-
async function loadPlaywright(browserName) {
|
|
183
|
-
const
|
|
191
|
+
async function loadPlaywright(browserName, rootDir) {
|
|
192
|
+
const playwrightPath = resolvePackageModule(rootDir, "playwright");
|
|
193
|
+
const playwright = playwrightPath ? await import(pathToFileURL(playwrightPath).href) : await import("playwright");
|
|
184
194
|
return playwright[browserName];
|
|
185
195
|
}
|
|
186
196
|
async function loadVite() {
|
|
@@ -281,7 +291,14 @@ async function createViteServer(rootDir, cacheDir) {
|
|
|
281
291
|
resolve: {
|
|
282
292
|
dedupe: ["svelte"]
|
|
283
293
|
},
|
|
284
|
-
server: {
|
|
294
|
+
server: {
|
|
295
|
+
port: 0,
|
|
296
|
+
// Browser harnesses write independent HTML/entry files concurrently.
|
|
297
|
+
// HMR would broadcast another harness's temp-file changes to every page,
|
|
298
|
+
// causing unrelated mounts to reload; tests only need request-time transforms.
|
|
299
|
+
hmr: false,
|
|
300
|
+
fs: { allow: [rootDir, os.tmpdir()] }
|
|
301
|
+
}
|
|
285
302
|
});
|
|
286
303
|
await server.listen();
|
|
287
304
|
return server;
|
|
@@ -290,21 +307,53 @@ function workerRuntimeKey(input) {
|
|
|
290
307
|
return [
|
|
291
308
|
input.rootDir,
|
|
292
309
|
input.browserName,
|
|
293
|
-
input.headless ? "headless" : "headed"
|
|
310
|
+
input.headless ? "headless" : "headed",
|
|
311
|
+
input.wsEndpoint ?? "local-browser",
|
|
312
|
+
input.viteUrl ?? "local-vite"
|
|
294
313
|
].join("::");
|
|
295
314
|
}
|
|
296
315
|
async function createBrowserWorkerRuntime(input) {
|
|
297
|
-
const cacheRoot = fs.mkdtempSync(path.join(os.tmpdir(), "wood-browser-vite-"));
|
|
298
|
-
browserWorkerCacheDirs.add(cacheRoot);
|
|
299
316
|
let browser2 = null;
|
|
317
|
+
let cacheRoot = null;
|
|
318
|
+
let ownedServer = null;
|
|
300
319
|
try {
|
|
301
|
-
const playwrightBrowser = await loadPlaywright(input.browserName);
|
|
302
|
-
|
|
303
|
-
|
|
320
|
+
const playwrightBrowser = await loadPlaywright(input.browserName, input.rootDir);
|
|
321
|
+
if (input.wsEndpoint) {
|
|
322
|
+
try {
|
|
323
|
+
browser2 = await playwrightBrowser.connect(input.wsEndpoint);
|
|
324
|
+
} catch (error) {
|
|
325
|
+
if (!browserConnectWarnings.has(input.wsEndpoint)) {
|
|
326
|
+
browserConnectWarnings.add(input.wsEndpoint);
|
|
327
|
+
console.warn(
|
|
328
|
+
`[wood browser] Could not connect to shared Chromium at "${input.wsEndpoint}"; falling back to a per-worker launch.`,
|
|
329
|
+
error
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (!browser2) {
|
|
335
|
+
browser2 = await playwrightBrowser.launch({ headless: input.headless });
|
|
336
|
+
}
|
|
337
|
+
let vite;
|
|
338
|
+
if (input.viteUrl) {
|
|
339
|
+
vite = {
|
|
340
|
+
baseUrl: input.viteUrl,
|
|
341
|
+
ownership: "external"
|
|
342
|
+
};
|
|
343
|
+
} else {
|
|
344
|
+
cacheRoot = fs.mkdtempSync(path.join(os.tmpdir(), "wood-browser-vite-"));
|
|
345
|
+
browserWorkerCacheDirs.add(cacheRoot);
|
|
346
|
+
ownedServer = await createViteServer(input.rootDir, path.join(cacheRoot, ".vite"));
|
|
347
|
+
vite = {
|
|
348
|
+
baseUrl: serverBaseUrl(ownedServer),
|
|
349
|
+
ownership: "worker",
|
|
350
|
+
server: ownedServer,
|
|
351
|
+
cacheDir: cacheRoot
|
|
352
|
+
};
|
|
353
|
+
}
|
|
304
354
|
return {
|
|
305
355
|
browser: browser2,
|
|
306
|
-
|
|
307
|
-
cacheDir: cacheRoot,
|
|
356
|
+
vite,
|
|
308
357
|
rootDir: input.rootDir,
|
|
309
358
|
key: input.key,
|
|
310
359
|
activeHarnesses: 0,
|
|
@@ -312,18 +361,25 @@ async function createBrowserWorkerRuntime(input) {
|
|
|
312
361
|
idleCloseTimer: null
|
|
313
362
|
};
|
|
314
363
|
} catch (error) {
|
|
315
|
-
await
|
|
316
|
-
|
|
317
|
-
|
|
364
|
+
await Promise.all([
|
|
365
|
+
browser2?.close().catch(() => void 0),
|
|
366
|
+
ownedServer?.close().catch(() => void 0)
|
|
367
|
+
]);
|
|
368
|
+
if (cacheRoot) {
|
|
369
|
+
fs.rmSync(cacheRoot, { recursive: true, force: true });
|
|
370
|
+
browserWorkerCacheDirs.delete(cacheRoot);
|
|
371
|
+
}
|
|
318
372
|
throw error;
|
|
319
373
|
}
|
|
320
374
|
}
|
|
321
375
|
async function acquireBrowserWorkerRuntime(input) {
|
|
322
|
-
const
|
|
376
|
+
const wsEndpoint = input.browserName === "chromium" ? process.env.WOOD_BROWSER_WS_ENDPOINT : void 0;
|
|
377
|
+
const viteUrl = process.env.WOOD_BROWSER_VITE_URL;
|
|
378
|
+
const key = workerRuntimeKey({ ...input, wsEndpoint, viteUrl });
|
|
323
379
|
let entry = browserWorkerRuntimes.get(key);
|
|
324
380
|
if (!entry) {
|
|
325
381
|
entry = {
|
|
326
|
-
promise: createBrowserWorkerRuntime({ ...input, key })
|
|
382
|
+
promise: createBrowserWorkerRuntime({ ...input, wsEndpoint, viteUrl, key })
|
|
327
383
|
};
|
|
328
384
|
browserWorkerRuntimes.set(key, entry);
|
|
329
385
|
}
|
|
@@ -346,12 +402,14 @@ async function closeBrowserWorkerRuntime(runtime) {
|
|
|
346
402
|
runtime.closing = true;
|
|
347
403
|
try {
|
|
348
404
|
await Promise.all([
|
|
349
|
-
waitForBoundedClose(runtime.server.close()),
|
|
405
|
+
...runtime.vite.ownership === "worker" ? [waitForBoundedClose(runtime.vite.server.close())] : [],
|
|
350
406
|
waitForBoundedClose(runtime.browser.close())
|
|
351
407
|
]);
|
|
352
408
|
} finally {
|
|
353
|
-
|
|
354
|
-
|
|
409
|
+
if (runtime.vite.ownership === "worker") {
|
|
410
|
+
fs.rmSync(runtime.vite.cacheDir, { recursive: true, force: true });
|
|
411
|
+
browserWorkerCacheDirs.delete(runtime.vite.cacheDir);
|
|
412
|
+
}
|
|
355
413
|
const entry = browserWorkerRuntimes.get(runtime.key);
|
|
356
414
|
const current = entry ? await entry.promise.catch(() => null) : null;
|
|
357
415
|
if (current === runtime) {
|
|
@@ -378,6 +436,35 @@ function releaseBrowserWorkerRuntime(runtime) {
|
|
|
378
436
|
function serverBaseUrl(server) {
|
|
379
437
|
return server.resolvedUrls?.local?.[0] ?? "http://127.0.0.1:5173";
|
|
380
438
|
}
|
|
439
|
+
async function startSharedBrowserViteServer(input) {
|
|
440
|
+
const rootDir = normalizeRoot(input.rootDir);
|
|
441
|
+
const cacheRoot = fs.mkdtempSync(path.join(os.tmpdir(), "wood-browser-vite-"));
|
|
442
|
+
browserWorkerCacheDirs.add(cacheRoot);
|
|
443
|
+
let server = null;
|
|
444
|
+
try {
|
|
445
|
+
server = await createViteServer(rootDir, path.join(cacheRoot, ".vite"));
|
|
446
|
+
} catch (error) {
|
|
447
|
+
fs.rmSync(cacheRoot, { recursive: true, force: true });
|
|
448
|
+
browserWorkerCacheDirs.delete(cacheRoot);
|
|
449
|
+
throw error;
|
|
450
|
+
}
|
|
451
|
+
let closed = false;
|
|
452
|
+
return {
|
|
453
|
+
url: serverBaseUrl(server),
|
|
454
|
+
async close() {
|
|
455
|
+
if (closed) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
closed = true;
|
|
459
|
+
try {
|
|
460
|
+
await waitForBoundedClose(server.close());
|
|
461
|
+
} finally {
|
|
462
|
+
fs.rmSync(cacheRoot, { recursive: true, force: true });
|
|
463
|
+
browserWorkerCacheDirs.delete(cacheRoot);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
};
|
|
467
|
+
}
|
|
381
468
|
function assertFileExists(filePath, label) {
|
|
382
469
|
if (!fs.existsSync(filePath)) {
|
|
383
470
|
throw new Error(`${label} does not exist: ${filePath}`);
|
|
@@ -776,15 +863,6 @@ function collectMaxPaintOrders(snapshot) {
|
|
|
776
863
|
}
|
|
777
864
|
return paintByBackend;
|
|
778
865
|
}
|
|
779
|
-
function axisEdges(rect, axis) {
|
|
780
|
-
return axis === "horizontal" ? { leading: rect.left, trailing: rect.right } : { leading: rect.top, trailing: rect.bottom };
|
|
781
|
-
}
|
|
782
|
-
function axisGap(first, second, axis) {
|
|
783
|
-
const a = axisEdges(first, axis);
|
|
784
|
-
const b = axisEdges(second, axis);
|
|
785
|
-
const [earlier, later] = a.leading <= b.leading ? [a, b] : [b, a];
|
|
786
|
-
return later.leading - earlier.trailing;
|
|
787
|
-
}
|
|
788
866
|
function describeGapConstraint(constraint) {
|
|
789
867
|
const parts = [];
|
|
790
868
|
if (constraint.equals !== void 0) parts.push(`equals ${constraint.equals}`);
|
|
@@ -804,11 +882,6 @@ function gapConstraintViolation(gap, constraint, tolerance) {
|
|
|
804
882
|
}
|
|
805
883
|
return null;
|
|
806
884
|
}
|
|
807
|
-
function rectsOverlap(a, b) {
|
|
808
|
-
return Boolean(
|
|
809
|
-
a && b && a.left < b.right && a.right > b.left && a.top < b.bottom && a.bottom > b.top
|
|
810
|
-
);
|
|
811
|
-
}
|
|
812
885
|
const COVERAGE_STYLE_KEYS = [
|
|
813
886
|
"opacity",
|
|
814
887
|
"visibility",
|
|
@@ -826,9 +899,6 @@ function colorAlphaIsZero(color) {
|
|
|
826
899
|
const parts = match[1].split(",").map((s) => s.trim());
|
|
827
900
|
return parts.length >= 4 && parseFloat(parts[3]) === 0;
|
|
828
901
|
}
|
|
829
|
-
function snapshotRectsOverlap(a, b) {
|
|
830
|
-
return a.x < b.x + b.w && a.x + a.w > b.x && a.y < b.y + b.h && a.y + a.h > b.y;
|
|
831
|
-
}
|
|
832
902
|
function indexLayoutNodes(doc, strings) {
|
|
833
903
|
const byNode = /* @__PURE__ */ new Map();
|
|
834
904
|
const nodeIndex = doc.layout?.nodeIndex ?? [];
|
|
@@ -1077,8 +1147,7 @@ function createExpect(page, outputDir) {
|
|
|
1077
1147
|
const first = await elementRect(page, firstSelector);
|
|
1078
1148
|
const second = await elementRect(page, secondSelector);
|
|
1079
1149
|
if (!first || !second) throw new Error(`Expected both "${firstSelector}" and "${secondSelector}" to exist.`);
|
|
1080
|
-
|
|
1081
|
-
if (overlaps) {
|
|
1150
|
+
if (rectsOverlap(first, second)) {
|
|
1082
1151
|
throw new Error(`Expected "${firstSelector}" not to overlap "${secondSelector}".`);
|
|
1083
1152
|
}
|
|
1084
1153
|
},
|
|
@@ -1121,8 +1190,9 @@ function createExpect(page, outputDir) {
|
|
|
1121
1190
|
const first = await firstRect(page, a);
|
|
1122
1191
|
const second = await firstRect(page, b);
|
|
1123
1192
|
if (!first || !second) throw new Error(`Expected both "${a}" and "${b}" to exist.`);
|
|
1124
|
-
const
|
|
1125
|
-
if (
|
|
1193
|
+
const verdict = sharedRectEdges([first, second], edge, { tolerance });
|
|
1194
|
+
if (!verdict.pass) {
|
|
1195
|
+
const delta = Number(verdict.details?.maximumDelta);
|
|
1126
1196
|
throw new Error(
|
|
1127
1197
|
`Expected "${a}" and "${b}" to share ${edge} edge within ${tolerance}px, but delta was ${delta.toFixed(2)}px ("${a}".${edge}=${first[edge].toFixed(2)}, "${b}".${edge}=${second[edge].toFixed(2)}). Rects: ${a}=${JSON.stringify(first)}, ${b}=${JSON.stringify(second)}`
|
|
1128
1198
|
);
|
|
@@ -1213,16 +1283,24 @@ function createExpect(page, outputDir) {
|
|
|
1213
1283
|
if (!rect) throw new Error(`Expected "${selector}" to exist.`);
|
|
1214
1284
|
boxes.push({ selector, rect });
|
|
1215
1285
|
}
|
|
1216
|
-
const
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1286
|
+
const verdict = evenSpacingRects(
|
|
1287
|
+
boxes.map((box) => box.rect),
|
|
1288
|
+
axis,
|
|
1289
|
+
{ tolerance }
|
|
1290
|
+
);
|
|
1291
|
+
if (!verdict.pass) {
|
|
1292
|
+
const sorted = [...boxes].sort(
|
|
1293
|
+
(x, y) => axisEdges(x.rect, axis).leading - axisEdges(y.rect, axis).leading
|
|
1294
|
+
);
|
|
1295
|
+
const measuredGaps = verdict.details?.gaps;
|
|
1296
|
+
const gaps = sorted.slice(1).map((box, i) => ({
|
|
1297
|
+
from: sorted[i].selector,
|
|
1298
|
+
to: box.selector,
|
|
1299
|
+
gap: measuredGaps[i]
|
|
1300
|
+
}));
|
|
1301
|
+
const widest = gaps.reduce((acc, g) => g.gap > acc.gap ? g : acc);
|
|
1302
|
+
const narrowest = gaps.reduce((acc, g) => g.gap < acc.gap ? g : acc);
|
|
1303
|
+
const spread = Number(verdict.details?.spread);
|
|
1226
1304
|
const list = gaps.map((g) => `${g.from}\u2192${g.to}=${g.gap.toFixed(2)}px`).join(", ");
|
|
1227
1305
|
throw new Error(
|
|
1228
1306
|
`Expected elements to be evenly spaced along ${axis} within ${tolerance}px, but gap spread was ${spread.toFixed(2)}px (widest ${widest.from}\u2192${widest.to}=${widest.gap.toFixed(2)}px, narrowest ${narrowest.from}\u2192${narrowest.to}=${narrowest.gap.toFixed(2)}px). Gaps: ${list}`
|
|
@@ -1302,7 +1380,7 @@ async function openMountPage(input) {
|
|
|
1302
1380
|
...input.context
|
|
1303
1381
|
};
|
|
1304
1382
|
await input.hooks?.beforeMount?.(context);
|
|
1305
|
-
await page.goto(`${
|
|
1383
|
+
await page.goto(`${input.runtime.baseUrl}${viteImport(htmlPath)}`, {
|
|
1306
1384
|
waitUntil: "domcontentloaded"
|
|
1307
1385
|
});
|
|
1308
1386
|
for (const event of input.bridge.state.initialEvents) {
|
|
@@ -1366,7 +1444,7 @@ async function createHarness(config = {}) {
|
|
|
1366
1444
|
}
|
|
1367
1445
|
const runtime = {
|
|
1368
1446
|
context,
|
|
1369
|
-
|
|
1447
|
+
baseUrl: workerRuntime.vite.baseUrl,
|
|
1370
1448
|
page,
|
|
1371
1449
|
tempDir,
|
|
1372
1450
|
rootDir,
|
|
@@ -1535,6 +1613,7 @@ const browser = {
|
|
|
1535
1613
|
};
|
|
1536
1614
|
export {
|
|
1537
1615
|
browser,
|
|
1538
|
-
createBrowserBridgeFixture
|
|
1616
|
+
createBrowserBridgeFixture,
|
|
1617
|
+
startSharedBrowserViteServer
|
|
1539
1618
|
};
|
|
1540
1619
|
//# sourceMappingURL=browser.js.map
|