@noego/wood 0.0.1
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 +107 -0
- package/bin/axe.js +202 -0
- package/bin/stick.js +96 -0
- package/bin/wood.js +572 -0
- package/dist/bridge/backend_bridge.cjs +186 -0
- package/dist/bridge/backend_bridge.cjs.map +1 -0
- package/dist/bridge/backend_bridge.d.cts +32 -0
- package/dist/bridge/backend_bridge.d.ts +32 -0
- package/dist/bridge/backend_bridge.js +152 -0
- package/dist/bridge/backend_bridge.js.map +1 -0
- package/dist/bridge/backend_entry.cjs +64 -0
- package/dist/bridge/backend_entry.cjs.map +1 -0
- package/dist/bridge/backend_entry.d.cts +14 -0
- package/dist/bridge/backend_entry.d.ts +14 -0
- package/dist/bridge/backend_entry.js +39 -0
- package/dist/bridge/backend_entry.js.map +1 -0
- package/dist/bridge/index.cjs +34 -0
- package/dist/bridge/index.cjs.map +1 -0
- package/dist/bridge/index.d.cts +2 -0
- package/dist/bridge/index.d.ts +2 -0
- package/dist/bridge/index.js +8 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/client/controller_contract.cjs +17 -0
- package/dist/client/controller_contract.cjs.map +1 -0
- package/dist/client/controller_contract.d.cts +15 -0
- package/dist/client/controller_contract.d.ts +15 -0
- package/dist/client/controller_contract.js +1 -0
- package/dist/client/controller_contract.js.map +1 -0
- package/dist/client/global_polyfill.cjs +6 -0
- package/dist/client/global_polyfill.cjs.map +1 -0
- package/dist/client/global_polyfill.d.cts +2 -0
- package/dist/client/global_polyfill.d.ts +2 -0
- package/dist/client/global_polyfill.js +5 -0
- package/dist/client/global_polyfill.js.map +1 -0
- package/dist/client/index.cjs +451 -0
- package/dist/client/index.cjs.map +1 -0
- package/dist/client/index.d.cts +75 -0
- package/dist/client/index.d.ts +75 -0
- package/dist/client/index.js +414 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/wood_controller.svelte.cjs +110 -0
- package/dist/client/wood_controller.svelte.cjs.map +1 -0
- package/dist/client/wood_controller.svelte.d.cts +30 -0
- package/dist/client/wood_controller.svelte.d.ts +30 -0
- package/dist/client/wood_controller.svelte.js +86 -0
- package/dist/client/wood_controller.svelte.js.map +1 -0
- package/dist/codegen/controller_registration_generator.cjs +138 -0
- package/dist/codegen/controller_registration_generator.cjs.map +1 -0
- package/dist/codegen/controller_registration_generator.d.cts +18 -0
- package/dist/codegen/controller_registration_generator.d.ts +18 -0
- package/dist/codegen/controller_registration_generator.js +104 -0
- package/dist/codegen/controller_registration_generator.js.map +1 -0
- package/dist/codegen/index.cjs +50 -0
- package/dist/codegen/index.cjs.map +1 -0
- package/dist/codegen/index.d.cts +10 -0
- package/dist/codegen/index.d.ts +10 -0
- package/dist/codegen/index.js +19 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/preload_generator.cjs +151 -0
- package/dist/codegen/preload_generator.cjs.map +1 -0
- package/dist/codegen/preload_generator.d.cts +8 -0
- package/dist/codegen/preload_generator.d.ts +8 -0
- package/dist/codegen/preload_generator.js +127 -0
- package/dist/codegen/preload_generator.js.map +1 -0
- package/dist/codegen/renderer_app_generator.cjs +397 -0
- package/dist/codegen/renderer_app_generator.cjs.map +1 -0
- package/dist/codegen/renderer_app_generator.d.cts +13 -0
- package/dist/codegen/renderer_app_generator.d.ts +13 -0
- package/dist/codegen/renderer_app_generator.js +363 -0
- package/dist/codegen/renderer_app_generator.js.map +1 -0
- package/dist/codegen/renderer_controller_registration_generator.cjs +122 -0
- package/dist/codegen/renderer_controller_registration_generator.cjs.map +1 -0
- package/dist/codegen/renderer_controller_registration_generator.d.cts +9 -0
- package/dist/codegen/renderer_controller_registration_generator.d.ts +9 -0
- package/dist/codegen/renderer_controller_registration_generator.js +88 -0
- package/dist/codegen/renderer_controller_registration_generator.js.map +1 -0
- package/dist/codegen/renderer_view_manifest_generator.cjs +126 -0
- package/dist/codegen/renderer_view_manifest_generator.cjs.map +1 -0
- package/dist/codegen/renderer_view_manifest_generator.d.cts +11 -0
- package/dist/codegen/renderer_view_manifest_generator.d.ts +11 -0
- package/dist/codegen/renderer_view_manifest_generator.js +92 -0
- package/dist/codegen/renderer_view_manifest_generator.js.map +1 -0
- package/dist/codegen/runtime_generator.cjs +156 -0
- package/dist/codegen/runtime_generator.cjs.map +1 -0
- package/dist/codegen/runtime_generator.d.cts +14 -0
- package/dist/codegen/runtime_generator.d.ts +14 -0
- package/dist/codegen/runtime_generator.js +122 -0
- package/dist/codegen/runtime_generator.js.map +1 -0
- package/dist/codegen/test_mock_generator.cjs +98 -0
- package/dist/codegen/test_mock_generator.cjs.map +1 -0
- package/dist/codegen/test_mock_generator.d.cts +5 -0
- package/dist/codegen/test_mock_generator.d.ts +5 -0
- package/dist/codegen/test_mock_generator.js +74 -0
- package/dist/codegen/test_mock_generator.js.map +1 -0
- package/dist/codegen/type_generator.cjs +203 -0
- package/dist/codegen/type_generator.cjs.map +1 -0
- package/dist/codegen/type_generator.d.cts +5 -0
- package/dist/codegen/type_generator.d.ts +5 -0
- package/dist/codegen/type_generator.js +179 -0
- package/dist/codegen/type_generator.js.map +1 -0
- package/dist/components/contextMenu.cjs +163 -0
- package/dist/components/contextMenu.cjs.map +1 -0
- package/dist/components/contextMenu.d.cts +43 -0
- package/dist/components/contextMenu.d.ts +43 -0
- package/dist/components/contextMenu.js +138 -0
- package/dist/components/contextMenu.js.map +1 -0
- package/dist/config/config_parser.cjs +176 -0
- package/dist/config/config_parser.cjs.map +1 -0
- package/dist/config/config_parser.d.cts +9 -0
- package/dist/config/config_parser.d.ts +9 -0
- package/dist/config/config_parser.js +142 -0
- package/dist/config/config_parser.js.map +1 -0
- package/dist/config/index.cjs +29 -0
- package/dist/config/index.cjs.map +1 -0
- package/dist/config/index.d.cts +2 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/controller/__fixtures__/controllers/chat.cjs +32 -0
- package/dist/controller/__fixtures__/controllers/chat.cjs.map +1 -0
- package/dist/controller/__fixtures__/controllers/chat.d.cts +11 -0
- package/dist/controller/__fixtures__/controllers/chat.d.ts +11 -0
- package/dist/controller/__fixtures__/controllers/chat.js +12 -0
- package/dist/controller/__fixtures__/controllers/chat.js.map +1 -0
- package/dist/controller/__fixtures__/controllers/not_a_class.cjs +29 -0
- package/dist/controller/__fixtures__/controllers/not_a_class.cjs.map +1 -0
- package/dist/controller/__fixtures__/controllers/not_a_class.d.cts +3 -0
- package/dist/controller/__fixtures__/controllers/not_a_class.d.ts +3 -0
- package/dist/controller/__fixtures__/controllers/not_a_class.js +5 -0
- package/dist/controller/__fixtures__/controllers/not_a_class.js.map +1 -0
- package/dist/controller/__fixtures__/controllers/settings.controller.cjs +32 -0
- package/dist/controller/__fixtures__/controllers/settings.controller.cjs.map +1 -0
- package/dist/controller/__fixtures__/controllers/settings.controller.d.cts +12 -0
- package/dist/controller/__fixtures__/controllers/settings.controller.d.ts +12 -0
- package/dist/controller/__fixtures__/controllers/settings.controller.js +12 -0
- package/dist/controller/__fixtures__/controllers/settings.controller.js.map +1 -0
- package/dist/controller/__fixtures__/controllers/test.cjs +29 -0
- package/dist/controller/__fixtures__/controllers/test.cjs.map +1 -0
- package/dist/controller/__fixtures__/controllers/test.d.cts +7 -0
- package/dist/controller/__fixtures__/controllers/test.d.ts +7 -0
- package/dist/controller/__fixtures__/controllers/test.js +9 -0
- package/dist/controller/__fixtures__/controllers/test.js.map +1 -0
- package/dist/controller/controller_resolver.cjs +180 -0
- package/dist/controller/controller_resolver.cjs.map +1 -0
- package/dist/controller/controller_resolver.d.cts +51 -0
- package/dist/controller/controller_resolver.d.ts +51 -0
- package/dist/controller/controller_resolver.js +145 -0
- package/dist/controller/controller_resolver.js.map +1 -0
- package/dist/controller/index.cjs +31 -0
- package/dist/controller/index.cjs.map +1 -0
- package/dist/controller/index.d.cts +2 -0
- package/dist/controller/index.d.ts +2 -0
- package/dist/controller/index.js +6 -0
- package/dist/controller/index.js.map +1 -0
- package/dist/dev/backend_watcher.cjs +108 -0
- package/dist/dev/backend_watcher.cjs.map +1 -0
- package/dist/dev/backend_watcher.d.cts +22 -0
- package/dist/dev/backend_watcher.d.ts +22 -0
- package/dist/dev/backend_watcher.js +84 -0
- package/dist/dev/backend_watcher.js.map +1 -0
- package/dist/dev/dev_metadata.cjs +94 -0
- package/dist/dev/dev_metadata.cjs.map +1 -0
- package/dist/dev/dev_metadata.d.cts +20 -0
- package/dist/dev/dev_metadata.d.ts +20 -0
- package/dist/dev/dev_metadata.js +52 -0
- package/dist/dev/dev_metadata.js.map +1 -0
- package/dist/dev/esbuild_backend.cjs +124 -0
- package/dist/dev/esbuild_backend.cjs.map +1 -0
- package/dist/dev/esbuild_backend.d.cts +30 -0
- package/dist/dev/esbuild_backend.d.ts +30 -0
- package/dist/dev/esbuild_backend.js +90 -0
- package/dist/dev/esbuild_backend.js.map +1 -0
- package/dist/dev/index.cjs +57 -0
- package/dist/dev/index.cjs.map +1 -0
- package/dist/dev/index.d.cts +8 -0
- package/dist/dev/index.d.ts +8 -0
- package/dist/dev/index.js +31 -0
- package/dist/dev/index.js.map +1 -0
- package/dist/dev/wood_dev_server.cjs +220 -0
- package/dist/dev/wood_dev_server.cjs.map +1 -0
- package/dist/dev/wood_dev_server.d.cts +39 -0
- package/dist/dev/wood_dev_server.d.ts +39 -0
- package/dist/dev/wood_dev_server.js +186 -0
- package/dist/dev/wood_dev_server.js.map +1 -0
- package/dist/dev/yaml_watcher.cjs +142 -0
- package/dist/dev/yaml_watcher.cjs.map +1 -0
- package/dist/dev/yaml_watcher.d.cts +22 -0
- package/dist/dev/yaml_watcher.d.ts +22 -0
- package/dist/dev/yaml_watcher.js +108 -0
- package/dist/dev/yaml_watcher.js.map +1 -0
- package/dist/electron/index.cjs +176 -0
- package/dist/electron/index.cjs.map +1 -0
- package/dist/electron/index.d.cts +29 -0
- package/dist/electron/index.d.ts +29 -0
- package/dist/electron/index.js +140 -0
- package/dist/electron/index.js.map +1 -0
- package/dist/index.cjs +178 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +41 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/ipc/index.cjs +80 -0
- package/dist/ipc/index.cjs.map +1 -0
- package/dist/ipc/index.d.cts +12 -0
- package/dist/ipc/index.d.ts +12 -0
- package/dist/ipc/index.js +57 -0
- package/dist/ipc/index.js.map +1 -0
- package/dist/ipc/shared.cjs +50 -0
- package/dist/ipc/shared.cjs.map +1 -0
- package/dist/ipc/shared.d.cts +10 -0
- package/dist/ipc/shared.d.ts +10 -0
- package/dist/ipc/shared.js +23 -0
- package/dist/ipc/shared.js.map +1 -0
- package/dist/loader/__fixtures__/layouts/app.load.cjs +27 -0
- package/dist/loader/__fixtures__/layouts/app.load.cjs.map +1 -0
- package/dist/loader/__fixtures__/layouts/app.load.d.cts +5 -0
- package/dist/loader/__fixtures__/layouts/app.load.d.ts +5 -0
- package/dist/loader/__fixtures__/layouts/app.load.js +7 -0
- package/dist/loader/__fixtures__/layouts/app.load.js.map +1 -0
- package/dist/loader/__fixtures__/views/test/page.load.cjs +27 -0
- package/dist/loader/__fixtures__/views/test/page.load.cjs.map +1 -0
- package/dist/loader/__fixtures__/views/test/page.load.d.cts +6 -0
- package/dist/loader/__fixtures__/views/test/page.load.d.ts +6 -0
- package/dist/loader/__fixtures__/views/test/page.load.js +7 -0
- package/dist/loader/__fixtures__/views/test/page.load.js.map +1 -0
- package/dist/loader/index.cjs +29 -0
- package/dist/loader/index.cjs.map +1 -0
- package/dist/loader/index.d.cts +3 -0
- package/dist/loader/index.d.ts +3 -0
- package/dist/loader/index.js +5 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/loader/loader_runner.cjs +109 -0
- package/dist/loader/loader_runner.cjs.map +1 -0
- package/dist/loader/loader_runner.d.cts +27 -0
- package/dist/loader/loader_runner.d.ts +27 -0
- package/dist/loader/loader_runner.js +75 -0
- package/dist/loader/loader_runner.js.map +1 -0
- package/dist/main/index.cjs +500 -0
- package/dist/main/index.cjs.map +1 -0
- package/dist/main/index.d.cts +98 -0
- package/dist/main/index.d.ts +98 -0
- package/dist/main/index.js +475 -0
- package/dist/main/index.js.map +1 -0
- package/dist/middleware/__fixtures__/middleware/auth.cjs +44 -0
- package/dist/middleware/__fixtures__/middleware/auth.cjs.map +1 -0
- package/dist/middleware/__fixtures__/middleware/auth.d.cts +6 -0
- package/dist/middleware/__fixtures__/middleware/auth.d.ts +6 -0
- package/dist/middleware/__fixtures__/middleware/auth.js +19 -0
- package/dist/middleware/__fixtures__/middleware/auth.js.map +1 -0
- package/dist/middleware/__fixtures__/middleware/sequence.cjs +47 -0
- package/dist/middleware/__fixtures__/middleware/sequence.cjs.map +1 -0
- package/dist/middleware/__fixtures__/middleware/sequence.d.cts +7 -0
- package/dist/middleware/__fixtures__/middleware/sequence.d.ts +7 -0
- package/dist/middleware/__fixtures__/middleware/sequence.js +21 -0
- package/dist/middleware/__fixtures__/middleware/sequence.js.map +1 -0
- package/dist/middleware/index.cjs +34 -0
- package/dist/middleware/index.cjs.map +1 -0
- package/dist/middleware/index.d.cts +3 -0
- package/dist/middleware/index.d.ts +3 -0
- package/dist/middleware/index.js +8 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/middleware_pipeline.cjs +55 -0
- package/dist/middleware/middleware_pipeline.cjs.map +1 -0
- package/dist/middleware/middleware_pipeline.d.cts +13 -0
- package/dist/middleware/middleware_pipeline.d.ts +13 -0
- package/dist/middleware/middleware_pipeline.js +30 -0
- package/dist/middleware/middleware_pipeline.js.map +1 -0
- package/dist/middleware/middleware_resolver.cjs +91 -0
- package/dist/middleware/middleware_resolver.cjs.map +1 -0
- package/dist/middleware/middleware_resolver.d.cts +19 -0
- package/dist/middleware/middleware_resolver.d.ts +19 -0
- package/dist/middleware/middleware_resolver.js +57 -0
- package/dist/middleware/middleware_resolver.js.map +1 -0
- package/dist/navigation/index.cjs +205 -0
- package/dist/navigation/index.cjs.map +1 -0
- package/dist/navigation/index.d.cts +34 -0
- package/dist/navigation/index.d.ts +34 -0
- package/dist/navigation/index.js +176 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/parser/index.cjs +36 -0
- package/dist/parser/index.cjs.map +1 -0
- package/dist/parser/index.d.cts +4 -0
- package/dist/parser/index.d.ts +4 -0
- package/dist/parser/index.js +9 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/operations_parser.cjs +94 -0
- package/dist/parser/operations_parser.cjs.map +1 -0
- package/dist/parser/operations_parser.d.cts +7 -0
- package/dist/parser/operations_parser.d.ts +7 -0
- package/dist/parser/operations_parser.js +59 -0
- package/dist/parser/operations_parser.js.map +1 -0
- package/dist/parser/views_parser.cjs +153 -0
- package/dist/parser/views_parser.cjs.map +1 -0
- package/dist/parser/views_parser.d.cts +11 -0
- package/dist/parser/views_parser.d.ts +11 -0
- package/dist/parser/views_parser.js +118 -0
- package/dist/parser/views_parser.js.map +1 -0
- package/dist/router/index.cjs +31 -0
- package/dist/router/index.cjs.map +1 -0
- package/dist/router/index.d.cts +2 -0
- package/dist/router/index.d.ts +2 -0
- package/dist/router/index.js +6 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/wood_router.cjs +246 -0
- package/dist/router/wood_router.cjs.map +1 -0
- package/dist/router/wood_router.d.cts +70 -0
- package/dist/router/wood_router.d.ts +70 -0
- package/dist/router/wood_router.js +221 -0
- package/dist/router/wood_router.js.map +1 -0
- package/dist/runtime/application_root.cjs +98 -0
- package/dist/runtime/application_root.cjs.map +1 -0
- package/dist/runtime/application_root.d.cts +5 -0
- package/dist/runtime/application_root.d.ts +5 -0
- package/dist/runtime/application_root.js +61 -0
- package/dist/runtime/application_root.js.map +1 -0
- package/dist/runtime/get_container.cjs +96 -0
- package/dist/runtime/get_container.cjs.map +1 -0
- package/dist/runtime/get_container.d.cts +16 -0
- package/dist/runtime/get_container.d.ts +16 -0
- package/dist/runtime/get_container.js +60 -0
- package/dist/runtime/get_container.js.map +1 -0
- package/dist/runtime/index.cjs +49 -0
- package/dist/runtime/index.cjs.map +1 -0
- package/dist/runtime/index.d.cts +8 -0
- package/dist/runtime/index.d.ts +8 -0
- package/dist/runtime/index.js +24 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/renderer_log_dispatcher.cjs +79 -0
- package/dist/runtime/renderer_log_dispatcher.cjs.map +1 -0
- package/dist/runtime/renderer_log_dispatcher.d.cts +27 -0
- package/dist/runtime/renderer_log_dispatcher.d.ts +27 -0
- package/dist/runtime/renderer_log_dispatcher.js +54 -0
- package/dist/runtime/renderer_log_dispatcher.js.map +1 -0
- package/dist/runtime/runtime.cjs +158 -0
- package/dist/runtime/runtime.cjs.map +1 -0
- package/dist/runtime/runtime.d.cts +35 -0
- package/dist/runtime/runtime.d.ts +35 -0
- package/dist/runtime/runtime.js +136 -0
- package/dist/runtime/runtime.js.map +1 -0
- package/dist/stick/allow_cli.cjs +39 -0
- package/dist/stick/allow_cli.cjs.map +1 -0
- package/dist/stick/allow_cli.d.cts +6 -0
- package/dist/stick/allow_cli.d.ts +6 -0
- package/dist/stick/allow_cli.js +15 -0
- package/dist/stick/allow_cli.js.map +1 -0
- package/dist/stick/index.cjs +276 -0
- package/dist/stick/index.cjs.map +1 -0
- package/dist/stick/index.d.cts +111 -0
- package/dist/stick/index.d.ts +111 -0
- package/dist/stick/index.js +237 -0
- package/dist/stick/index.js.map +1 -0
- package/dist/stick/static_renderer.cjs +144 -0
- package/dist/stick/static_renderer.cjs.map +1 -0
- package/dist/stick/static_renderer.d.cts +51 -0
- package/dist/stick/static_renderer.d.ts +51 -0
- package/dist/stick/static_renderer.js +119 -0
- package/dist/stick/static_renderer.js.map +1 -0
- package/dist/stick/template_resolver.cjs +156 -0
- package/dist/stick/template_resolver.cjs.map +1 -0
- package/dist/stick/template_resolver.d.cts +7 -0
- package/dist/stick/template_resolver.d.ts +7 -0
- package/dist/stick/template_resolver.js +122 -0
- package/dist/stick/template_resolver.js.map +1 -0
- package/dist/testing/create_controller_harness.cjs +175 -0
- package/dist/testing/create_controller_harness.cjs.map +1 -0
- package/dist/testing/create_controller_harness.d.cts +37 -0
- package/dist/testing/create_controller_harness.d.ts +37 -0
- package/dist/testing/create_controller_harness.js +162 -0
- package/dist/testing/create_controller_harness.js.map +1 -0
- package/dist/testing/create_router_bridge.cjs +103 -0
- package/dist/testing/create_router_bridge.cjs.map +1 -0
- package/dist/testing/create_router_bridge.d.cts +71 -0
- package/dist/testing/create_router_bridge.d.ts +71 -0
- package/dist/testing/create_router_bridge.js +78 -0
- package/dist/testing/create_router_bridge.js.map +1 -0
- package/dist/testing/create_test_container.cjs +72 -0
- package/dist/testing/create_test_container.cjs.map +1 -0
- package/dist/testing/create_test_container.d.cts +14 -0
- package/dist/testing/create_test_container.d.ts +14 -0
- package/dist/testing/create_test_container.js +48 -0
- package/dist/testing/create_test_container.js.map +1 -0
- package/dist/testing/create_test_router.cjs +57 -0
- package/dist/testing/create_test_router.cjs.map +1 -0
- package/dist/testing/create_test_router.d.cts +19 -0
- package/dist/testing/create_test_router.d.ts +19 -0
- package/dist/testing/create_test_router.js +33 -0
- package/dist/testing/create_test_router.js.map +1 -0
- package/dist/testing/index.cjs +48 -0
- package/dist/testing/index.cjs.map +1 -0
- package/dist/testing/index.d.cts +12 -0
- package/dist/testing/index.d.ts +12 -0
- package/dist/testing/index.js +22 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock_electron.cjs +100 -0
- package/dist/testing/mock_electron.cjs.map +1 -0
- package/dist/testing/mock_electron.d.cts +12 -0
- package/dist/testing/mock_electron.d.ts +12 -0
- package/dist/testing/mock_electron.js +75 -0
- package/dist/testing/mock_electron.js.map +1 -0
- package/dist/tracing/index.cjs +56 -0
- package/dist/tracing/index.cjs.map +1 -0
- package/dist/tracing/index.d.cts +4 -0
- package/dist/tracing/index.d.ts +4 -0
- package/dist/tracing/index.js +35 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/tracing/trace_hub.cjs +213 -0
- package/dist/tracing/trace_hub.cjs.map +1 -0
- package/dist/tracing/trace_hub.d.cts +47 -0
- package/dist/tracing/trace_hub.d.ts +47 -0
- package/dist/tracing/trace_hub.js +172 -0
- package/dist/tracing/trace_hub.js.map +1 -0
- package/dist/tracing/trace_provider.cjs +200 -0
- package/dist/tracing/trace_provider.cjs.map +1 -0
- package/dist/tracing/trace_provider.d.cts +69 -0
- package/dist/tracing/trace_provider.d.ts +69 -0
- package/dist/tracing/trace_provider.js +179 -0
- package/dist/tracing/trace_provider.js.map +1 -0
- package/dist/types/bridge.cjs +51 -0
- package/dist/types/bridge.cjs.map +1 -0
- package/dist/types/bridge.d.cts +56 -0
- package/dist/types/bridge.d.ts +56 -0
- package/dist/types/bridge.js +25 -0
- package/dist/types/bridge.js.map +1 -0
- package/dist/types/config.cjs +17 -0
- package/dist/types/config.cjs.map +1 -0
- package/dist/types/config.d.cts +74 -0
- package/dist/types/config.d.ts +74 -0
- package/dist/types/config.js +1 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/context.cjs +17 -0
- package/dist/types/context.cjs.map +1 -0
- package/dist/types/context.d.cts +61 -0
- package/dist/types/context.d.ts +61 -0
- package/dist/types/context.js +1 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/context_menu.cjs +17 -0
- package/dist/types/context_menu.cjs.map +1 -0
- package/dist/types/context_menu.d.cts +30 -0
- package/dist/types/context_menu.d.ts +30 -0
- package/dist/types/context_menu.js +1 -0
- package/dist/types/context_menu.js.map +1 -0
- package/dist/types/index.cjs +33 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +6 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/operations.cjs +17 -0
- package/dist/types/operations.cjs.map +1 -0
- package/dist/types/operations.d.cts +39 -0
- package/dist/types/operations.d.ts +39 -0
- package/dist/types/operations.js +1 -0
- package/dist/types/operations.js.map +1 -0
- package/dist/types/views.cjs +17 -0
- package/dist/types/views.cjs.map +1 -0
- package/dist/types/views.d.cts +44 -0
- package/dist/types/views.d.ts +44 -0
- package/dist/types/views.js +1 -0
- package/dist/types/views.js.map +1 -0
- package/dist/validation/index.cjs +29 -0
- package/dist/validation/index.cjs.map +1 -0
- package/dist/validation/index.d.cts +1 -0
- package/dist/validation/index.d.ts +1 -0
- package/dist/validation/index.js +5 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/schema_validator.cjs +86 -0
- package/dist/validation/schema_validator.cjs.map +1 -0
- package/dist/validation/schema_validator.d.cts +24 -0
- package/dist/validation/schema_validator.d.ts +24 -0
- package/dist/validation/schema_validator.js +52 -0
- package/dist/validation/schema_validator.js.map +1 -0
- package/dist/window/index.cjs +32 -0
- package/dist/window/index.cjs.map +1 -0
- package/dist/window/index.d.cts +4 -0
- package/dist/window/index.d.ts +4 -0
- package/dist/window/index.js +7 -0
- package/dist/window/index.js.map +1 -0
- package/dist/window/window_manager.cjs +354 -0
- package/dist/window/window_manager.cjs.map +1 -0
- package/dist/window/window_manager.d.cts +172 -0
- package/dist/window/window_manager.d.ts +172 -0
- package/dist/window/window_manager.js +330 -0
- package/dist/window/window_manager.js.map +1 -0
- package/dist/window/window_state_store.cjs +129 -0
- package/dist/window/window_state_store.cjs.map +1 -0
- package/dist/window/window_state_store.d.cts +39 -0
- package/dist/window/window_state_store.d.ts +39 -0
- package/dist/window/window_state_store.js +105 -0
- package/dist/window/window_state_store.js.map +1 -0
- package/loaders/loader.mjs +46 -0
- package/package.json +119 -0
- package/src/components/ContextMenuProvider.svelte +145 -0
- package/src/components/NavigationShell.svelte +204 -0
- package/src/components/WoodRecursiveRender.svelte +91 -0
- package/src/components/contextMenu.ts +228 -0
- package/src/components/index.d.ts +14 -0
- package/src/components/index.js +2 -0
- package/src/stick/WoodRecursiveRender.svelte +74 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
interface WindowBounds {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
isMaximized: boolean;
|
|
7
|
+
isFullScreen: boolean;
|
|
8
|
+
}
|
|
9
|
+
type WindowStateFile = Record<string, WindowBounds>;
|
|
10
|
+
/** DI interface for Electron's `screen` module. */
|
|
11
|
+
interface ScreenLike {
|
|
12
|
+
getAllDisplays(): Array<{
|
|
13
|
+
bounds: {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
};
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
declare class WindowStateStore {
|
|
22
|
+
private state;
|
|
23
|
+
private filePath;
|
|
24
|
+
private screen;
|
|
25
|
+
private debounceTimers;
|
|
26
|
+
constructor();
|
|
27
|
+
setApplicationRoot(path: string): void;
|
|
28
|
+
setUserDataPath(path: string): void;
|
|
29
|
+
setScreen(screen: ScreenLike): void;
|
|
30
|
+
getBounds(windowId: string): WindowBounds | null;
|
|
31
|
+
updateBoundsDebounced(windowId: string, bounds: WindowBounds): void;
|
|
32
|
+
saveBoundsSync(windowId: string, bounds: WindowBounds): void;
|
|
33
|
+
private ensureConfigured;
|
|
34
|
+
private load;
|
|
35
|
+
private save;
|
|
36
|
+
private isVisibleOnAnyDisplay;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { type ScreenLike, type WindowBounds, type WindowStateFile, WindowStateStore };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
interface WindowBounds {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
isMaximized: boolean;
|
|
7
|
+
isFullScreen: boolean;
|
|
8
|
+
}
|
|
9
|
+
type WindowStateFile = Record<string, WindowBounds>;
|
|
10
|
+
/** DI interface for Electron's `screen` module. */
|
|
11
|
+
interface ScreenLike {
|
|
12
|
+
getAllDisplays(): Array<{
|
|
13
|
+
bounds: {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
};
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
declare class WindowStateStore {
|
|
22
|
+
private state;
|
|
23
|
+
private filePath;
|
|
24
|
+
private screen;
|
|
25
|
+
private debounceTimers;
|
|
26
|
+
constructor();
|
|
27
|
+
setApplicationRoot(path: string): void;
|
|
28
|
+
setUserDataPath(path: string): void;
|
|
29
|
+
setScreen(screen: ScreenLike): void;
|
|
30
|
+
getBounds(windowId: string): WindowBounds | null;
|
|
31
|
+
updateBoundsDebounced(windowId: string, bounds: WindowBounds): void;
|
|
32
|
+
saveBoundsSync(windowId: string, bounds: WindowBounds): void;
|
|
33
|
+
private ensureConfigured;
|
|
34
|
+
private load;
|
|
35
|
+
private save;
|
|
36
|
+
private isVisibleOnAnyDisplay;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { type ScreenLike, type WindowBounds, type WindowStateFile, WindowStateStore };
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, mkdirSync } from "fs";
|
|
2
|
+
import { join, dirname } from "path";
|
|
3
|
+
import { getLogger } from "@noego/logger";
|
|
4
|
+
import { getApplicationRoot } from "../runtime/application_root.js";
|
|
5
|
+
const logger = getLogger("wood:window-state");
|
|
6
|
+
class WindowStateStore {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.state = {};
|
|
9
|
+
this.filePath = null;
|
|
10
|
+
this.screen = null;
|
|
11
|
+
this.debounceTimers = /* @__PURE__ */ new Map();
|
|
12
|
+
this.ensureConfigured();
|
|
13
|
+
}
|
|
14
|
+
setApplicationRoot(path) {
|
|
15
|
+
this.filePath = join(path, "window-state.json");
|
|
16
|
+
this.load();
|
|
17
|
+
}
|
|
18
|
+
setUserDataPath(path) {
|
|
19
|
+
this.setApplicationRoot(join(path, "wood-settings"));
|
|
20
|
+
}
|
|
21
|
+
setScreen(screen) {
|
|
22
|
+
this.screen = screen;
|
|
23
|
+
}
|
|
24
|
+
getBounds(windowId) {
|
|
25
|
+
this.ensureConfigured();
|
|
26
|
+
const bounds = this.state[windowId];
|
|
27
|
+
if (!bounds) return null;
|
|
28
|
+
if (!this.isVisibleOnAnyDisplay(bounds)) return null;
|
|
29
|
+
return bounds;
|
|
30
|
+
}
|
|
31
|
+
updateBoundsDebounced(windowId, bounds) {
|
|
32
|
+
this.ensureConfigured();
|
|
33
|
+
this.state[windowId] = bounds;
|
|
34
|
+
const existing = this.debounceTimers.get(windowId);
|
|
35
|
+
if (existing) clearTimeout(existing);
|
|
36
|
+
this.debounceTimers.set(
|
|
37
|
+
windowId,
|
|
38
|
+
setTimeout(() => {
|
|
39
|
+
this.debounceTimers.delete(windowId);
|
|
40
|
+
this.save();
|
|
41
|
+
}, 300)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
saveBoundsSync(windowId, bounds) {
|
|
45
|
+
this.ensureConfigured();
|
|
46
|
+
const existing = this.debounceTimers.get(windowId);
|
|
47
|
+
if (existing) {
|
|
48
|
+
clearTimeout(existing);
|
|
49
|
+
this.debounceTimers.delete(windowId);
|
|
50
|
+
}
|
|
51
|
+
this.state[windowId] = bounds;
|
|
52
|
+
this.save();
|
|
53
|
+
}
|
|
54
|
+
ensureConfigured() {
|
|
55
|
+
if (this.filePath) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const root = getApplicationRoot();
|
|
59
|
+
if (root) {
|
|
60
|
+
this.setApplicationRoot(root);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
load() {
|
|
64
|
+
if (!this.filePath) return;
|
|
65
|
+
try {
|
|
66
|
+
const raw = readFileSync(this.filePath, "utf-8");
|
|
67
|
+
this.state = JSON.parse(raw);
|
|
68
|
+
logger.debug(`Loaded window state from ${this.filePath}`);
|
|
69
|
+
} catch {
|
|
70
|
+
this.state = {};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
save() {
|
|
74
|
+
if (!this.filePath) return;
|
|
75
|
+
try {
|
|
76
|
+
mkdirSync(dirname(this.filePath), { recursive: true });
|
|
77
|
+
writeFileSync(this.filePath, JSON.stringify(this.state, null, 2), "utf-8");
|
|
78
|
+
} catch (err) {
|
|
79
|
+
logger.warn(`Failed to save window state: ${err}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
isVisibleOnAnyDisplay(bounds) {
|
|
83
|
+
if (!this.screen) return true;
|
|
84
|
+
const displays = this.screen.getAllDisplays();
|
|
85
|
+
if (displays.length === 0) return true;
|
|
86
|
+
const MIN_OVERLAP = 100;
|
|
87
|
+
for (const display of displays) {
|
|
88
|
+
const db = display.bounds;
|
|
89
|
+
const overlapX = Math.max(
|
|
90
|
+
0,
|
|
91
|
+
Math.min(bounds.x + bounds.width, db.x + db.width) - Math.max(bounds.x, db.x)
|
|
92
|
+
);
|
|
93
|
+
const overlapY = Math.max(
|
|
94
|
+
0,
|
|
95
|
+
Math.min(bounds.y + bounds.height, db.y + db.height) - Math.max(bounds.y, db.y)
|
|
96
|
+
);
|
|
97
|
+
if (overlapX >= MIN_OVERLAP && overlapY >= MIN_OVERLAP) return true;
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
WindowStateStore
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=window_state_store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/window/window_state_store.ts"],"sourcesContent":["import { readFileSync, writeFileSync, mkdirSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { getLogger } from '@noego/logger';\nimport { getApplicationRoot } from '../runtime/application_root.js';\n\nconst logger = getLogger('wood:window-state');\n\nexport interface WindowBounds {\n x: number;\n y: number;\n width: number;\n height: number;\n isMaximized: boolean;\n isFullScreen: boolean;\n}\n\nexport type WindowStateFile = Record<string, WindowBounds>;\n\n/** DI interface for Electron's `screen` module. */\nexport interface ScreenLike {\n getAllDisplays(): Array<{ bounds: { x: number; y: number; width: number; height: number } }>;\n}\n\nexport class WindowStateStore {\n private state: WindowStateFile = {};\n private filePath: string | null = null;\n private screen: ScreenLike | null = null;\n private debounceTimers = new Map<string, ReturnType<typeof setTimeout>>();\n\n constructor() {\n this.ensureConfigured();\n }\n\n setApplicationRoot(path: string): void {\n this.filePath = join(path, 'window-state.json');\n this.load();\n }\n\n setUserDataPath(path: string): void {\n this.setApplicationRoot(join(path, 'wood-settings'));\n }\n\n setScreen(screen: ScreenLike): void {\n this.screen = screen;\n }\n\n getBounds(windowId: string): WindowBounds | null {\n this.ensureConfigured();\n\n const bounds = this.state[windowId];\n if (!bounds) return null;\n if (!this.isVisibleOnAnyDisplay(bounds)) return null;\n return bounds;\n }\n\n updateBoundsDebounced(windowId: string, bounds: WindowBounds): void {\n this.ensureConfigured();\n\n this.state[windowId] = bounds;\n\n const existing = this.debounceTimers.get(windowId);\n if (existing) clearTimeout(existing);\n\n this.debounceTimers.set(\n windowId,\n setTimeout(() => {\n this.debounceTimers.delete(windowId);\n this.save();\n }, 300),\n );\n }\n\n saveBoundsSync(windowId: string, bounds: WindowBounds): void {\n this.ensureConfigured();\n\n // Flush any pending debounce for this window\n const existing = this.debounceTimers.get(windowId);\n if (existing) {\n clearTimeout(existing);\n this.debounceTimers.delete(windowId);\n }\n\n this.state[windowId] = bounds;\n this.save();\n }\n\n private ensureConfigured(): void {\n if (this.filePath) {\n return;\n }\n\n const root = getApplicationRoot();\n if (root) {\n this.setApplicationRoot(root);\n }\n }\n\n private load(): void {\n if (!this.filePath) return;\n try {\n const raw = readFileSync(this.filePath, 'utf-8');\n this.state = JSON.parse(raw) as WindowStateFile;\n logger.debug(`Loaded window state from ${this.filePath}`);\n } catch {\n this.state = {};\n }\n }\n\n private save(): void {\n if (!this.filePath) return;\n try {\n mkdirSync(dirname(this.filePath), { recursive: true });\n writeFileSync(this.filePath, JSON.stringify(this.state, null, 2), 'utf-8');\n } catch (err) {\n logger.warn(`Failed to save window state: ${err}`);\n }\n }\n\n private isVisibleOnAnyDisplay(bounds: WindowBounds): boolean {\n if (!this.screen) return true;\n\n const displays = this.screen.getAllDisplays();\n if (displays.length === 0) return true;\n\n const MIN_OVERLAP = 100;\n\n for (const display of displays) {\n const db = display.bounds;\n const overlapX = Math.max(\n 0,\n Math.min(bounds.x + bounds.width, db.x + db.width) - Math.max(bounds.x, db.x),\n );\n const overlapY = Math.max(\n 0,\n Math.min(bounds.y + bounds.height, db.y + db.height) - Math.max(bounds.y, db.y),\n );\n if (overlapX >= MIN_OVERLAP && overlapY >= MIN_OVERLAP) return true;\n }\n\n return false;\n }\n}\n"],"mappings":"AAAA,SAAS,cAAc,eAAe,iBAAiB;AACvD,SAAS,MAAM,eAAe;AAC9B,SAAS,iBAAiB;AAC1B,SAAS,0BAA0B;AAEnC,MAAM,SAAS,UAAU,mBAAmB;AAkBrC,MAAM,iBAAiB;AAAA,EAM5B,cAAc;AALd,SAAQ,QAAyB,CAAC;AAClC,SAAQ,WAA0B;AAClC,SAAQ,SAA4B;AACpC,SAAQ,iBAAiB,oBAAI,IAA2C;AAGtE,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,mBAAmB,MAAoB;AACrC,SAAK,WAAW,KAAK,MAAM,mBAAmB;AAC9C,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,gBAAgB,MAAoB;AAClC,SAAK,mBAAmB,KAAK,MAAM,eAAe,CAAC;AAAA,EACrD;AAAA,EAEA,UAAU,QAA0B;AAClC,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,UAAU,UAAuC;AAC/C,SAAK,iBAAiB;AAEtB,UAAM,SAAS,KAAK,MAAM,QAAQ;AAClC,QAAI,CAAC,OAAQ,QAAO;AACpB,QAAI,CAAC,KAAK,sBAAsB,MAAM,EAAG,QAAO;AAChD,WAAO;AAAA,EACT;AAAA,EAEA,sBAAsB,UAAkB,QAA4B;AAClE,SAAK,iBAAiB;AAEtB,SAAK,MAAM,QAAQ,IAAI;AAEvB,UAAM,WAAW,KAAK,eAAe,IAAI,QAAQ;AACjD,QAAI,SAAU,cAAa,QAAQ;AAEnC,SAAK,eAAe;AAAA,MAClB;AAAA,MACA,WAAW,MAAM;AACf,aAAK,eAAe,OAAO,QAAQ;AACnC,aAAK,KAAK;AAAA,MACZ,GAAG,GAAG;AAAA,IACR;AAAA,EACF;AAAA,EAEA,eAAe,UAAkB,QAA4B;AAC3D,SAAK,iBAAiB;AAGtB,UAAM,WAAW,KAAK,eAAe,IAAI,QAAQ;AACjD,QAAI,UAAU;AACZ,mBAAa,QAAQ;AACrB,WAAK,eAAe,OAAO,QAAQ;AAAA,IACrC;AAEA,SAAK,MAAM,QAAQ,IAAI;AACvB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEQ,mBAAyB;AAC/B,QAAI,KAAK,UAAU;AACjB;AAAA,IACF;AAEA,UAAM,OAAO,mBAAmB;AAChC,QAAI,MAAM;AACR,WAAK,mBAAmB,IAAI;AAAA,IAC9B;AAAA,EACF;AAAA,EAEQ,OAAa;AACnB,QAAI,CAAC,KAAK,SAAU;AACpB,QAAI;AACF,YAAM,MAAM,aAAa,KAAK,UAAU,OAAO;AAC/C,WAAK,QAAQ,KAAK,MAAM,GAAG;AAC3B,aAAO,MAAM,4BAA4B,KAAK,QAAQ,EAAE;AAAA,IAC1D,QAAQ;AACN,WAAK,QAAQ,CAAC;AAAA,IAChB;AAAA,EACF;AAAA,EAEQ,OAAa;AACnB,QAAI,CAAC,KAAK,SAAU;AACpB,QAAI;AACF,gBAAU,QAAQ,KAAK,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AACrD,oBAAc,KAAK,UAAU,KAAK,UAAU,KAAK,OAAO,MAAM,CAAC,GAAG,OAAO;AAAA,IAC3E,SAAS,KAAK;AACZ,aAAO,KAAK,gCAAgC,GAAG,EAAE;AAAA,IACnD;AAAA,EACF;AAAA,EAEQ,sBAAsB,QAA+B;AAC3D,QAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,UAAM,WAAW,KAAK,OAAO,eAAe;AAC5C,QAAI,SAAS,WAAW,EAAG,QAAO;AAElC,UAAM,cAAc;AAEpB,eAAW,WAAW,UAAU;AAC9B,YAAM,KAAK,QAAQ;AACnB,YAAM,WAAW,KAAK;AAAA,QACpB;AAAA,QACA,KAAK,IAAI,OAAO,IAAI,OAAO,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG,CAAC;AAAA,MAC9E;AACA,YAAM,WAAW,KAAK;AAAA,QACpB;AAAA,QACA,KAAK,IAAI,OAAO,IAAI,OAAO,QAAQ,GAAG,IAAI,GAAG,MAAM,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG,CAAC;AAAA,MAChF;AACA,UAAI,YAAY,eAAe,YAAY,YAAa,QAAO;AAAA,IACjE;AAEA,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import { readFile } from 'fs/promises';
|
|
5
|
+
import { compile } from 'svelte/compiler';
|
|
6
|
+
|
|
7
|
+
function resolveConsumerSvelteSpecifier(specifier) {
|
|
8
|
+
try {
|
|
9
|
+
const consumerRequire = createRequire(path.resolve(process.cwd(), 'package.json'));
|
|
10
|
+
const resolvedPath = consumerRequire.resolve(specifier);
|
|
11
|
+
return pathToFileURL(resolvedPath).href;
|
|
12
|
+
} catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export async function resolve(specifier, context, defaultResolve) {
|
|
18
|
+
if (specifier === 'svelte' || specifier.startsWith('svelte/')) {
|
|
19
|
+
const consumerUrl = resolveConsumerSvelteSpecifier(specifier);
|
|
20
|
+
if (consumerUrl) {
|
|
21
|
+
return {
|
|
22
|
+
url: consumerUrl,
|
|
23
|
+
shortCircuit: true,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return defaultResolve(specifier, context, defaultResolve);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export async function load(url, context, defaultLoad) {
|
|
32
|
+
if (url.endsWith('.svelte')) {
|
|
33
|
+
const filePath = new URL(url).pathname;
|
|
34
|
+
const source = await readFile(filePath, 'utf8');
|
|
35
|
+
const { js } = compile(source, {
|
|
36
|
+
filename: filePath,
|
|
37
|
+
generate: 'ssr', // For server-side rendering
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
format: 'module',
|
|
41
|
+
source: js.code,
|
|
42
|
+
shortCircuit: true, // Prevents further loader processing
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return defaultLoad(url, context, defaultLoad);
|
|
46
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@noego/wood",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"author": "Shavauhn Gabay",
|
|
8
|
+
"license": "ISC",
|
|
9
|
+
"bin": {
|
|
10
|
+
"axe": "./bin/axe.js",
|
|
11
|
+
"stick": "./bin/stick.js",
|
|
12
|
+
"wood": "./bin/wood.js"
|
|
13
|
+
},
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"bin",
|
|
20
|
+
"loaders",
|
|
21
|
+
"src/stick/WoodRecursiveRender.svelte",
|
|
22
|
+
"src/components/"
|
|
23
|
+
],
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"require": "./dist/index.cjs",
|
|
28
|
+
"import": "./dist/index.js",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./electron": {
|
|
32
|
+
"types": "./dist/electron/index.d.ts",
|
|
33
|
+
"require": "./dist/electron/index.cjs",
|
|
34
|
+
"import": "./dist/electron/index.js",
|
|
35
|
+
"default": "./dist/electron/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./testing": {
|
|
38
|
+
"types": "./dist/testing/index.d.ts",
|
|
39
|
+
"require": "./dist/testing/index.cjs",
|
|
40
|
+
"import": "./dist/testing/index.js",
|
|
41
|
+
"default": "./dist/testing/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./client": {
|
|
44
|
+
"types": "./dist/client/index.d.ts",
|
|
45
|
+
"require": "./dist/client/index.cjs",
|
|
46
|
+
"import": "./dist/client/index.js",
|
|
47
|
+
"default": "./dist/client/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./navigation": {
|
|
50
|
+
"types": "./dist/navigation/index.d.ts",
|
|
51
|
+
"require": "./dist/navigation/index.cjs",
|
|
52
|
+
"import": "./dist/navigation/index.js",
|
|
53
|
+
"default": "./dist/navigation/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./ipc": {
|
|
56
|
+
"types": "./dist/ipc/index.d.ts",
|
|
57
|
+
"require": "./dist/ipc/index.cjs",
|
|
58
|
+
"import": "./dist/ipc/index.js",
|
|
59
|
+
"default": "./dist/ipc/index.js"
|
|
60
|
+
},
|
|
61
|
+
"./main": {
|
|
62
|
+
"types": "./dist/main/index.d.ts",
|
|
63
|
+
"require": "./dist/main/index.cjs",
|
|
64
|
+
"import": "./dist/main/index.js",
|
|
65
|
+
"default": "./dist/main/index.js"
|
|
66
|
+
},
|
|
67
|
+
"./stick": {
|
|
68
|
+
"types": "./dist/stick/index.d.ts",
|
|
69
|
+
"require": "./dist/stick/index.cjs",
|
|
70
|
+
"import": "./dist/stick/index.js",
|
|
71
|
+
"default": "./dist/stick/index.js"
|
|
72
|
+
},
|
|
73
|
+
"./recursive-render": "./src/components/WoodRecursiveRender.svelte",
|
|
74
|
+
"./navigation-shell": "./src/components/NavigationShell.svelte",
|
|
75
|
+
"./components": "./src/components/index.js",
|
|
76
|
+
"./loader": "./loaders/loader.mjs",
|
|
77
|
+
"./package.json": "./package.json"
|
|
78
|
+
},
|
|
79
|
+
"scripts": {
|
|
80
|
+
"build": "tsup",
|
|
81
|
+
"typecheck": "tsc --noEmit",
|
|
82
|
+
"test": "vitest run",
|
|
83
|
+
"test:watch": "vitest",
|
|
84
|
+
"prepublishOnly": "npm run build && npm run typecheck && npm test"
|
|
85
|
+
},
|
|
86
|
+
"dependencies": {
|
|
87
|
+
"@noego/ioc": "^0.2.3",
|
|
88
|
+
"@noego/stitch": "^1.0.3",
|
|
89
|
+
"@noego/logger": "^0.0.2",
|
|
90
|
+
"ajv": "^8.x",
|
|
91
|
+
"ajv-formats": "^3.x",
|
|
92
|
+
"js-yaml": "^4.x",
|
|
93
|
+
"chokidar": "^4.x",
|
|
94
|
+
"rxjs": "^7.x",
|
|
95
|
+
"path-to-regexp": "^8.x",
|
|
96
|
+
"glob": "^11.x"
|
|
97
|
+
},
|
|
98
|
+
"peerDependencies": {
|
|
99
|
+
"svelte": "^5.x",
|
|
100
|
+
"electron": ">=28.0.0",
|
|
101
|
+
"playwright": "^1.40.0"
|
|
102
|
+
},
|
|
103
|
+
"peerDependenciesMeta": {
|
|
104
|
+
"playwright": {
|
|
105
|
+
"optional": true
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"devDependencies": {
|
|
109
|
+
"tsup": "^8.5.0",
|
|
110
|
+
"typescript": "^5.8.3",
|
|
111
|
+
"@types/node": "^20.10.4",
|
|
112
|
+
"@types/js-yaml": "^4.x",
|
|
113
|
+
"vitest": "^3.x",
|
|
114
|
+
"electron-vite": "^2.x",
|
|
115
|
+
"electron-builder": "^25.x",
|
|
116
|
+
"esbuild": "^0.25.x",
|
|
117
|
+
"playwright": "^1.40.0"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { onMount } from 'svelte';
|
|
3
|
+
import { executeCallback } from './contextMenu.js';
|
|
4
|
+
|
|
5
|
+
/** @type {import('svelte').Snippet<[{ items: any[], close: () => void }]> | undefined} */
|
|
6
|
+
let { menu, children } = $props();
|
|
7
|
+
|
|
8
|
+
let visible = $state(false);
|
|
9
|
+
let position = $state({ x: 0, y: 0 });
|
|
10
|
+
let items = $state([]);
|
|
11
|
+
const WOOD_INTERNAL_BRIDGE_KEY = '__NOEGO_WOOD_BRIDGE__';
|
|
12
|
+
|
|
13
|
+
function getBridge() {
|
|
14
|
+
const bridge = window[WOOD_INTERNAL_BRIDGE_KEY];
|
|
15
|
+
if (!bridge) {
|
|
16
|
+
throw new Error(`Wood bridge "${WOOD_INTERNAL_BRIDGE_KEY}" not found.`);
|
|
17
|
+
}
|
|
18
|
+
return bridge;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function close() {
|
|
22
|
+
visible = false;
|
|
23
|
+
items = [];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function resolveItems(rawItems) {
|
|
27
|
+
return rawItems.map(item => {
|
|
28
|
+
if (item.type === 'separator') {
|
|
29
|
+
return { type: 'separator', label: '', disabled: false, execute: () => {} };
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
label: item.label ?? '',
|
|
33
|
+
disabled: item.disabled ?? false,
|
|
34
|
+
execute: () => {
|
|
35
|
+
if (item._callbackId) {
|
|
36
|
+
executeCallback(item._callbackId);
|
|
37
|
+
} else if (item.action) {
|
|
38
|
+
getBridge().__contextMenu.show({
|
|
39
|
+
items: [item],
|
|
40
|
+
position,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
close();
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
onMount(() => {
|
|
50
|
+
const bridge = getBridge();
|
|
51
|
+
// Listen for __contextMenu:show push events (custom mode)
|
|
52
|
+
const unsubShow = bridge.on('__contextMenu:show', (event) => {
|
|
53
|
+
const data = event;
|
|
54
|
+
position = data.position;
|
|
55
|
+
items = resolveItems(data.items);
|
|
56
|
+
visible = true;
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// Listen for __contextMenu:callback push events (native mode callback dispatch)
|
|
60
|
+
const unsubCallback = bridge.on('__contextMenu:callback', (callbackId) => {
|
|
61
|
+
if (typeof callbackId === 'string') {
|
|
62
|
+
executeCallback(callbackId);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Dismiss on click-away
|
|
67
|
+
function onClickAway() {
|
|
68
|
+
if (visible) close();
|
|
69
|
+
}
|
|
70
|
+
document.addEventListener('click', onClickAway);
|
|
71
|
+
|
|
72
|
+
// Dismiss on Escape
|
|
73
|
+
function onEscape(e) {
|
|
74
|
+
if (e.key === 'Escape' && visible) close();
|
|
75
|
+
}
|
|
76
|
+
document.addEventListener('keydown', onEscape);
|
|
77
|
+
|
|
78
|
+
return () => {
|
|
79
|
+
unsubShow();
|
|
80
|
+
unsubCallback();
|
|
81
|
+
document.removeEventListener('click', onClickAway);
|
|
82
|
+
document.removeEventListener('keydown', onEscape);
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
</script>
|
|
86
|
+
|
|
87
|
+
{@render children()}
|
|
88
|
+
|
|
89
|
+
{#if visible}
|
|
90
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
91
|
+
<div
|
|
92
|
+
class="wood-context-menu-overlay"
|
|
93
|
+
onclick|stopPropagation={close}
|
|
94
|
+
onkeydown={() => {}}
|
|
95
|
+
style="position:fixed;inset:0;z-index:999998;"
|
|
96
|
+
>
|
|
97
|
+
<div
|
|
98
|
+
style="position:fixed;left:{position.x}px;top:{position.y}px;z-index:999999;"
|
|
99
|
+
onclick|stopPropagation={() => {}}
|
|
100
|
+
onkeydown={() => {}}
|
|
101
|
+
>
|
|
102
|
+
{#if menu}
|
|
103
|
+
{@render menu({ items, close })}
|
|
104
|
+
{:else}
|
|
105
|
+
<div class="wood-context-menu-default" style="
|
|
106
|
+
background: #fff;
|
|
107
|
+
border: 1px solid #ccc;
|
|
108
|
+
border-radius: 6px;
|
|
109
|
+
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
|
|
110
|
+
padding: 4px 0;
|
|
111
|
+
min-width: 160px;
|
|
112
|
+
font-family: system-ui, sans-serif;
|
|
113
|
+
font-size: 13px;
|
|
114
|
+
">
|
|
115
|
+
{#each items as item}
|
|
116
|
+
{#if item.type === 'separator'}
|
|
117
|
+
<hr style="margin: 4px 0; border: none; border-top: 1px solid #e5e5e5;" />
|
|
118
|
+
{:else}
|
|
119
|
+
<button
|
|
120
|
+
disabled={item.disabled}
|
|
121
|
+
onclick={() => item.execute()}
|
|
122
|
+
style="
|
|
123
|
+
display: block;
|
|
124
|
+
width: 100%;
|
|
125
|
+
text-align: left;
|
|
126
|
+
padding: 6px 12px;
|
|
127
|
+
background: none;
|
|
128
|
+
border: none;
|
|
129
|
+
cursor: {item.disabled ? 'default' : 'pointer'};
|
|
130
|
+
color: {item.disabled ? '#999' : '#333'};
|
|
131
|
+
font-size: inherit;
|
|
132
|
+
font-family: inherit;
|
|
133
|
+
"
|
|
134
|
+
onmouseenter={(e) => { if (!item.disabled) e.currentTarget.style.background = '#f0f0f0'; }}
|
|
135
|
+
onmouseleave={(e) => { e.currentTarget.style.background = 'none'; }}
|
|
136
|
+
>
|
|
137
|
+
{item.label}
|
|
138
|
+
</button>
|
|
139
|
+
{/if}
|
|
140
|
+
{/each}
|
|
141
|
+
</div>
|
|
142
|
+
{/if}
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
{/if}
|