@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
package/dist/testing/browser.cjs
CHANGED
|
@@ -29,7 +29,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
var browser_exports = {};
|
|
30
30
|
__export(browser_exports, {
|
|
31
31
|
browser: () => browser,
|
|
32
|
-
createBrowserBridgeFixture: () => createBrowserBridgeFixture
|
|
32
|
+
createBrowserBridgeFixture: () => createBrowserBridgeFixture,
|
|
33
|
+
startSharedBrowserViteServer: () => startSharedBrowserViteServer
|
|
33
34
|
});
|
|
34
35
|
module.exports = __toCommonJS(browser_exports);
|
|
35
36
|
var import_node_fs = __toESM(require("node:fs"), 1);
|
|
@@ -39,6 +40,7 @@ var import_node_path = __toESM(require("node:path"), 1);
|
|
|
39
40
|
var import_node_url = require("node:url");
|
|
40
41
|
var import_tracing = require("../tracing/index.js");
|
|
41
42
|
var import_trace_testing = require("../trace-testing/index.js");
|
|
43
|
+
var import_geometry = require("./geometry.js");
|
|
42
44
|
const DEFAULT_VIEWPORT = {
|
|
43
45
|
width: 1280,
|
|
44
46
|
height: 800
|
|
@@ -48,6 +50,7 @@ const DEFAULT_RESOURCE_CLOSE_TIMEOUT_MS = 5e3;
|
|
|
48
50
|
const WORKER_RUNTIME_IDLE_CLOSE_MS = 5e3;
|
|
49
51
|
const browserWorkerRuntimes = /* @__PURE__ */ new Map();
|
|
50
52
|
const browserWorkerCacheDirs = /* @__PURE__ */ new Set();
|
|
53
|
+
const browserConnectWarnings = /* @__PURE__ */ new Set();
|
|
51
54
|
process.on("exit", () => {
|
|
52
55
|
for (const cacheDir of browserWorkerCacheDirs) {
|
|
53
56
|
try {
|
|
@@ -211,8 +214,9 @@ function buildBridgeInitScript(manifest, traceConfig, transportMode) {
|
|
|
211
214
|
})();
|
|
212
215
|
`;
|
|
213
216
|
}
|
|
214
|
-
async function loadPlaywright(browserName) {
|
|
215
|
-
const
|
|
217
|
+
async function loadPlaywright(browserName, rootDir) {
|
|
218
|
+
const playwrightPath = resolvePackageModule(rootDir, "playwright");
|
|
219
|
+
const playwright = playwrightPath ? await import((0, import_node_url.pathToFileURL)(playwrightPath).href) : await import("playwright");
|
|
216
220
|
return playwright[browserName];
|
|
217
221
|
}
|
|
218
222
|
async function loadVite() {
|
|
@@ -313,7 +317,14 @@ async function createViteServer(rootDir, cacheDir) {
|
|
|
313
317
|
resolve: {
|
|
314
318
|
dedupe: ["svelte"]
|
|
315
319
|
},
|
|
316
|
-
server: {
|
|
320
|
+
server: {
|
|
321
|
+
port: 0,
|
|
322
|
+
// Browser harnesses write independent HTML/entry files concurrently.
|
|
323
|
+
// HMR would broadcast another harness's temp-file changes to every page,
|
|
324
|
+
// causing unrelated mounts to reload; tests only need request-time transforms.
|
|
325
|
+
hmr: false,
|
|
326
|
+
fs: { allow: [rootDir, import_node_os.default.tmpdir()] }
|
|
327
|
+
}
|
|
317
328
|
});
|
|
318
329
|
await server.listen();
|
|
319
330
|
return server;
|
|
@@ -322,21 +333,53 @@ function workerRuntimeKey(input) {
|
|
|
322
333
|
return [
|
|
323
334
|
input.rootDir,
|
|
324
335
|
input.browserName,
|
|
325
|
-
input.headless ? "headless" : "headed"
|
|
336
|
+
input.headless ? "headless" : "headed",
|
|
337
|
+
input.wsEndpoint ?? "local-browser",
|
|
338
|
+
input.viteUrl ?? "local-vite"
|
|
326
339
|
].join("::");
|
|
327
340
|
}
|
|
328
341
|
async function createBrowserWorkerRuntime(input) {
|
|
329
|
-
const cacheRoot = import_node_fs.default.mkdtempSync(import_node_path.default.join(import_node_os.default.tmpdir(), "wood-browser-vite-"));
|
|
330
|
-
browserWorkerCacheDirs.add(cacheRoot);
|
|
331
342
|
let browser2 = null;
|
|
343
|
+
let cacheRoot = null;
|
|
344
|
+
let ownedServer = null;
|
|
332
345
|
try {
|
|
333
|
-
const playwrightBrowser = await loadPlaywright(input.browserName);
|
|
334
|
-
|
|
335
|
-
|
|
346
|
+
const playwrightBrowser = await loadPlaywright(input.browserName, input.rootDir);
|
|
347
|
+
if (input.wsEndpoint) {
|
|
348
|
+
try {
|
|
349
|
+
browser2 = await playwrightBrowser.connect(input.wsEndpoint);
|
|
350
|
+
} catch (error) {
|
|
351
|
+
if (!browserConnectWarnings.has(input.wsEndpoint)) {
|
|
352
|
+
browserConnectWarnings.add(input.wsEndpoint);
|
|
353
|
+
console.warn(
|
|
354
|
+
`[wood browser] Could not connect to shared Chromium at "${input.wsEndpoint}"; falling back to a per-worker launch.`,
|
|
355
|
+
error
|
|
356
|
+
);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
if (!browser2) {
|
|
361
|
+
browser2 = await playwrightBrowser.launch({ headless: input.headless });
|
|
362
|
+
}
|
|
363
|
+
let vite;
|
|
364
|
+
if (input.viteUrl) {
|
|
365
|
+
vite = {
|
|
366
|
+
baseUrl: input.viteUrl,
|
|
367
|
+
ownership: "external"
|
|
368
|
+
};
|
|
369
|
+
} else {
|
|
370
|
+
cacheRoot = import_node_fs.default.mkdtempSync(import_node_path.default.join(import_node_os.default.tmpdir(), "wood-browser-vite-"));
|
|
371
|
+
browserWorkerCacheDirs.add(cacheRoot);
|
|
372
|
+
ownedServer = await createViteServer(input.rootDir, import_node_path.default.join(cacheRoot, ".vite"));
|
|
373
|
+
vite = {
|
|
374
|
+
baseUrl: serverBaseUrl(ownedServer),
|
|
375
|
+
ownership: "worker",
|
|
376
|
+
server: ownedServer,
|
|
377
|
+
cacheDir: cacheRoot
|
|
378
|
+
};
|
|
379
|
+
}
|
|
336
380
|
return {
|
|
337
381
|
browser: browser2,
|
|
338
|
-
|
|
339
|
-
cacheDir: cacheRoot,
|
|
382
|
+
vite,
|
|
340
383
|
rootDir: input.rootDir,
|
|
341
384
|
key: input.key,
|
|
342
385
|
activeHarnesses: 0,
|
|
@@ -344,18 +387,25 @@ async function createBrowserWorkerRuntime(input) {
|
|
|
344
387
|
idleCloseTimer: null
|
|
345
388
|
};
|
|
346
389
|
} catch (error) {
|
|
347
|
-
await
|
|
348
|
-
|
|
349
|
-
|
|
390
|
+
await Promise.all([
|
|
391
|
+
browser2?.close().catch(() => void 0),
|
|
392
|
+
ownedServer?.close().catch(() => void 0)
|
|
393
|
+
]);
|
|
394
|
+
if (cacheRoot) {
|
|
395
|
+
import_node_fs.default.rmSync(cacheRoot, { recursive: true, force: true });
|
|
396
|
+
browserWorkerCacheDirs.delete(cacheRoot);
|
|
397
|
+
}
|
|
350
398
|
throw error;
|
|
351
399
|
}
|
|
352
400
|
}
|
|
353
401
|
async function acquireBrowserWorkerRuntime(input) {
|
|
354
|
-
const
|
|
402
|
+
const wsEndpoint = input.browserName === "chromium" ? process.env.WOOD_BROWSER_WS_ENDPOINT : void 0;
|
|
403
|
+
const viteUrl = process.env.WOOD_BROWSER_VITE_URL;
|
|
404
|
+
const key = workerRuntimeKey({ ...input, wsEndpoint, viteUrl });
|
|
355
405
|
let entry = browserWorkerRuntimes.get(key);
|
|
356
406
|
if (!entry) {
|
|
357
407
|
entry = {
|
|
358
|
-
promise: createBrowserWorkerRuntime({ ...input, key })
|
|
408
|
+
promise: createBrowserWorkerRuntime({ ...input, wsEndpoint, viteUrl, key })
|
|
359
409
|
};
|
|
360
410
|
browserWorkerRuntimes.set(key, entry);
|
|
361
411
|
}
|
|
@@ -378,12 +428,14 @@ async function closeBrowserWorkerRuntime(runtime) {
|
|
|
378
428
|
runtime.closing = true;
|
|
379
429
|
try {
|
|
380
430
|
await Promise.all([
|
|
381
|
-
waitForBoundedClose(runtime.server.close()),
|
|
431
|
+
...runtime.vite.ownership === "worker" ? [waitForBoundedClose(runtime.vite.server.close())] : [],
|
|
382
432
|
waitForBoundedClose(runtime.browser.close())
|
|
383
433
|
]);
|
|
384
434
|
} finally {
|
|
385
|
-
|
|
386
|
-
|
|
435
|
+
if (runtime.vite.ownership === "worker") {
|
|
436
|
+
import_node_fs.default.rmSync(runtime.vite.cacheDir, { recursive: true, force: true });
|
|
437
|
+
browserWorkerCacheDirs.delete(runtime.vite.cacheDir);
|
|
438
|
+
}
|
|
387
439
|
const entry = browserWorkerRuntimes.get(runtime.key);
|
|
388
440
|
const current = entry ? await entry.promise.catch(() => null) : null;
|
|
389
441
|
if (current === runtime) {
|
|
@@ -410,6 +462,35 @@ function releaseBrowserWorkerRuntime(runtime) {
|
|
|
410
462
|
function serverBaseUrl(server) {
|
|
411
463
|
return server.resolvedUrls?.local?.[0] ?? "http://127.0.0.1:5173";
|
|
412
464
|
}
|
|
465
|
+
async function startSharedBrowserViteServer(input) {
|
|
466
|
+
const rootDir = normalizeRoot(input.rootDir);
|
|
467
|
+
const cacheRoot = import_node_fs.default.mkdtempSync(import_node_path.default.join(import_node_os.default.tmpdir(), "wood-browser-vite-"));
|
|
468
|
+
browserWorkerCacheDirs.add(cacheRoot);
|
|
469
|
+
let server = null;
|
|
470
|
+
try {
|
|
471
|
+
server = await createViteServer(rootDir, import_node_path.default.join(cacheRoot, ".vite"));
|
|
472
|
+
} catch (error) {
|
|
473
|
+
import_node_fs.default.rmSync(cacheRoot, { recursive: true, force: true });
|
|
474
|
+
browserWorkerCacheDirs.delete(cacheRoot);
|
|
475
|
+
throw error;
|
|
476
|
+
}
|
|
477
|
+
let closed = false;
|
|
478
|
+
return {
|
|
479
|
+
url: serverBaseUrl(server),
|
|
480
|
+
async close() {
|
|
481
|
+
if (closed) {
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
484
|
+
closed = true;
|
|
485
|
+
try {
|
|
486
|
+
await waitForBoundedClose(server.close());
|
|
487
|
+
} finally {
|
|
488
|
+
import_node_fs.default.rmSync(cacheRoot, { recursive: true, force: true });
|
|
489
|
+
browserWorkerCacheDirs.delete(cacheRoot);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
};
|
|
493
|
+
}
|
|
413
494
|
function assertFileExists(filePath, label) {
|
|
414
495
|
if (!import_node_fs.default.existsSync(filePath)) {
|
|
415
496
|
throw new Error(`${label} does not exist: ${filePath}`);
|
|
@@ -808,15 +889,6 @@ function collectMaxPaintOrders(snapshot) {
|
|
|
808
889
|
}
|
|
809
890
|
return paintByBackend;
|
|
810
891
|
}
|
|
811
|
-
function axisEdges(rect, axis) {
|
|
812
|
-
return axis === "horizontal" ? { leading: rect.left, trailing: rect.right } : { leading: rect.top, trailing: rect.bottom };
|
|
813
|
-
}
|
|
814
|
-
function axisGap(first, second, axis) {
|
|
815
|
-
const a = axisEdges(first, axis);
|
|
816
|
-
const b = axisEdges(second, axis);
|
|
817
|
-
const [earlier, later] = a.leading <= b.leading ? [a, b] : [b, a];
|
|
818
|
-
return later.leading - earlier.trailing;
|
|
819
|
-
}
|
|
820
892
|
function describeGapConstraint(constraint) {
|
|
821
893
|
const parts = [];
|
|
822
894
|
if (constraint.equals !== void 0) parts.push(`equals ${constraint.equals}`);
|
|
@@ -836,11 +908,6 @@ function gapConstraintViolation(gap, constraint, tolerance) {
|
|
|
836
908
|
}
|
|
837
909
|
return null;
|
|
838
910
|
}
|
|
839
|
-
function rectsOverlap(a, b) {
|
|
840
|
-
return Boolean(
|
|
841
|
-
a && b && a.left < b.right && a.right > b.left && a.top < b.bottom && a.bottom > b.top
|
|
842
|
-
);
|
|
843
|
-
}
|
|
844
911
|
const COVERAGE_STYLE_KEYS = [
|
|
845
912
|
"opacity",
|
|
846
913
|
"visibility",
|
|
@@ -858,9 +925,6 @@ function colorAlphaIsZero(color) {
|
|
|
858
925
|
const parts = match[1].split(",").map((s) => s.trim());
|
|
859
926
|
return parts.length >= 4 && parseFloat(parts[3]) === 0;
|
|
860
927
|
}
|
|
861
|
-
function snapshotRectsOverlap(a, b) {
|
|
862
|
-
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;
|
|
863
|
-
}
|
|
864
928
|
function indexLayoutNodes(doc, strings) {
|
|
865
929
|
const byNode = /* @__PURE__ */ new Map();
|
|
866
930
|
const nodeIndex = doc.layout?.nodeIndex ?? [];
|
|
@@ -945,7 +1009,7 @@ function collectCoverageCandidates(doc, strings, targetNodeIndex) {
|
|
|
945
1009
|
if (nodeType[ni] !== 1) continue;
|
|
946
1010
|
if (ni === targetNodeIndex) continue;
|
|
947
1011
|
if (isSnapshotAncestor(parentIndex, ni, targetNodeIndex) || isSnapshotAncestor(parentIndex, targetNodeIndex, ni)) continue;
|
|
948
|
-
if (!snapshotRectsOverlap(rec.rect, target.rect)) continue;
|
|
1012
|
+
if (!(0, import_geometry.snapshotRectsOverlap)(rec.rect, target.rect)) continue;
|
|
949
1013
|
const hasContent = snapshotNodeHasOwnContent(nodes, strings, ni);
|
|
950
1014
|
if (snapshotNodePaintsNothing(rec.styles, hasContent)) continue;
|
|
951
1015
|
covers.push({ description: describeSnapshotNode(nodes, strings, ni), paint: rec.paint, rect: rec.rect });
|
|
@@ -1040,7 +1104,7 @@ function createExpect(page, outputDir) {
|
|
|
1040
1104
|
if (top.paintOrder > lower.paintOrder) return;
|
|
1041
1105
|
const topRect = await firstRect(page, topSelector);
|
|
1042
1106
|
const lowerRect = await firstRect(page, lowerSelector);
|
|
1043
|
-
const overlapNote = rectsOverlap(topRect, lowerRect) ? "" : ` (Note: the rects do not overlap, so there is no shared pixel where front/behind is visually observable \u2014 this is a global paint-order verdict.)`;
|
|
1107
|
+
const overlapNote = (0, import_geometry.rectsOverlap)(topRect, lowerRect) ? "" : ` (Note: the rects do not overlap, so there is no shared pixel where front/behind is visually observable \u2014 this is a global paint-order verdict.)`;
|
|
1044
1108
|
throw new Error(
|
|
1045
1109
|
`Expected "${topSelector}" (paint order ${top.paintOrder}) to paint in front of "${lowerSelector}" (paint order ${lower.paintOrder}), but it paints at or behind it (higher paint order == on top).${overlapNote}`
|
|
1046
1110
|
);
|
|
@@ -1109,8 +1173,7 @@ function createExpect(page, outputDir) {
|
|
|
1109
1173
|
const first = await elementRect(page, firstSelector);
|
|
1110
1174
|
const second = await elementRect(page, secondSelector);
|
|
1111
1175
|
if (!first || !second) throw new Error(`Expected both "${firstSelector}" and "${secondSelector}" to exist.`);
|
|
1112
|
-
|
|
1113
|
-
if (overlaps) {
|
|
1176
|
+
if ((0, import_geometry.rectsOverlap)(first, second)) {
|
|
1114
1177
|
throw new Error(`Expected "${firstSelector}" not to overlap "${secondSelector}".`);
|
|
1115
1178
|
}
|
|
1116
1179
|
},
|
|
@@ -1153,8 +1216,9 @@ function createExpect(page, outputDir) {
|
|
|
1153
1216
|
const first = await firstRect(page, a);
|
|
1154
1217
|
const second = await firstRect(page, b);
|
|
1155
1218
|
if (!first || !second) throw new Error(`Expected both "${a}" and "${b}" to exist.`);
|
|
1156
|
-
const
|
|
1157
|
-
if (
|
|
1219
|
+
const verdict = (0, import_geometry.sharedEdges)([first, second], edge, { tolerance });
|
|
1220
|
+
if (!verdict.pass) {
|
|
1221
|
+
const delta = Number(verdict.details?.maximumDelta);
|
|
1158
1222
|
throw new Error(
|
|
1159
1223
|
`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)}`
|
|
1160
1224
|
);
|
|
@@ -1218,7 +1282,7 @@ function createExpect(page, outputDir) {
|
|
|
1218
1282
|
const first = await firstRect(page, a);
|
|
1219
1283
|
const second = await firstRect(page, b);
|
|
1220
1284
|
if (!first || !second) throw new Error(`Expected both "${a}" and "${b}" to exist.`);
|
|
1221
|
-
const gap = axisGap(first, second, axis);
|
|
1285
|
+
const gap = (0, import_geometry.axisGap)(first, second, axis);
|
|
1222
1286
|
const allowsNegative = options.equals !== void 0 && options.equals < 0 || options.min !== void 0 && options.min < 0;
|
|
1223
1287
|
const rectsNote = `Rects: ${a}=${JSON.stringify(first)}, ${b}=${JSON.stringify(second)}`;
|
|
1224
1288
|
if (gap < -tolerance && !allowsNegative) {
|
|
@@ -1245,16 +1309,24 @@ function createExpect(page, outputDir) {
|
|
|
1245
1309
|
if (!rect) throw new Error(`Expected "${selector}" to exist.`);
|
|
1246
1310
|
boxes.push({ selector, rect });
|
|
1247
1311
|
}
|
|
1248
|
-
const
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1312
|
+
const verdict = (0, import_geometry.evenSpacing)(
|
|
1313
|
+
boxes.map((box) => box.rect),
|
|
1314
|
+
axis,
|
|
1315
|
+
{ tolerance }
|
|
1316
|
+
);
|
|
1317
|
+
if (!verdict.pass) {
|
|
1318
|
+
const sorted = [...boxes].sort(
|
|
1319
|
+
(x, y) => (0, import_geometry.axisEdges)(x.rect, axis).leading - (0, import_geometry.axisEdges)(y.rect, axis).leading
|
|
1320
|
+
);
|
|
1321
|
+
const measuredGaps = verdict.details?.gaps;
|
|
1322
|
+
const gaps = sorted.slice(1).map((box, i) => ({
|
|
1323
|
+
from: sorted[i].selector,
|
|
1324
|
+
to: box.selector,
|
|
1325
|
+
gap: measuredGaps[i]
|
|
1326
|
+
}));
|
|
1327
|
+
const widest = gaps.reduce((acc, g) => g.gap > acc.gap ? g : acc);
|
|
1328
|
+
const narrowest = gaps.reduce((acc, g) => g.gap < acc.gap ? g : acc);
|
|
1329
|
+
const spread = Number(verdict.details?.spread);
|
|
1258
1330
|
const list = gaps.map((g) => `${g.from}\u2192${g.to}=${g.gap.toFixed(2)}px`).join(", ");
|
|
1259
1331
|
throw new Error(
|
|
1260
1332
|
`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}`
|
|
@@ -1334,7 +1406,7 @@ async function openMountPage(input) {
|
|
|
1334
1406
|
...input.context
|
|
1335
1407
|
};
|
|
1336
1408
|
await input.hooks?.beforeMount?.(context);
|
|
1337
|
-
await page.goto(`${
|
|
1409
|
+
await page.goto(`${input.runtime.baseUrl}${viteImport(htmlPath)}`, {
|
|
1338
1410
|
waitUntil: "domcontentloaded"
|
|
1339
1411
|
});
|
|
1340
1412
|
for (const event of input.bridge.state.initialEvents) {
|
|
@@ -1398,7 +1470,7 @@ async function createHarness(config = {}) {
|
|
|
1398
1470
|
}
|
|
1399
1471
|
const runtime = {
|
|
1400
1472
|
context,
|
|
1401
|
-
|
|
1473
|
+
baseUrl: workerRuntime.vite.baseUrl,
|
|
1402
1474
|
page,
|
|
1403
1475
|
tempDir,
|
|
1404
1476
|
rootDir,
|
|
@@ -1568,6 +1640,7 @@ const browser = {
|
|
|
1568
1640
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1569
1641
|
0 && (module.exports = {
|
|
1570
1642
|
browser,
|
|
1571
|
-
createBrowserBridgeFixture
|
|
1643
|
+
createBrowserBridgeFixture,
|
|
1644
|
+
startSharedBrowserViteServer
|
|
1572
1645
|
});
|
|
1573
1646
|
//# sourceMappingURL=browser.cjs.map
|