@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,27 @@
|
|
|
1
|
+
type RendererLogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
2
|
+
type RendererLogEntry = {
|
|
3
|
+
level: RendererLogLevel;
|
|
4
|
+
logger: string;
|
|
5
|
+
message: string;
|
|
6
|
+
context?: unknown;
|
|
7
|
+
timestamp: string;
|
|
8
|
+
senderId?: number | null;
|
|
9
|
+
};
|
|
10
|
+
type RendererLogCallback = (entry: RendererLogEntry) => void | Promise<void>;
|
|
11
|
+
type RendererLogDispatchResult = {
|
|
12
|
+
ok: boolean;
|
|
13
|
+
forwarded: boolean;
|
|
14
|
+
configured: boolean;
|
|
15
|
+
reason?: 'unconfigured' | 'callback-error';
|
|
16
|
+
errorMessage?: string;
|
|
17
|
+
};
|
|
18
|
+
declare class RendererLogDispatcher {
|
|
19
|
+
private callback;
|
|
20
|
+
setCallback(callback: RendererLogCallback | null): void;
|
|
21
|
+
getCallback(): RendererLogCallback | null;
|
|
22
|
+
dispatch(entry: RendererLogEntry): Promise<RendererLogDispatchResult>;
|
|
23
|
+
}
|
|
24
|
+
declare function getRendererLogDispatcher(): RendererLogDispatcher;
|
|
25
|
+
declare function clearRendererLogDispatcherForTests(): void;
|
|
26
|
+
|
|
27
|
+
export { type RendererLogCallback, type RendererLogDispatchResult, type RendererLogEntry, type RendererLogLevel, clearRendererLogDispatcherForTests, getRendererLogDispatcher };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const RENDERER_LOG_DISPATCHER_SYMBOL = /* @__PURE__ */ Symbol.for("@noego/wood.runtime.renderer-log-dispatcher");
|
|
2
|
+
class RendererLogDispatcher {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.callback = null;
|
|
5
|
+
}
|
|
6
|
+
setCallback(callback) {
|
|
7
|
+
this.callback = callback;
|
|
8
|
+
}
|
|
9
|
+
getCallback() {
|
|
10
|
+
return this.callback;
|
|
11
|
+
}
|
|
12
|
+
async dispatch(entry) {
|
|
13
|
+
if (!this.callback) {
|
|
14
|
+
return {
|
|
15
|
+
ok: true,
|
|
16
|
+
forwarded: false,
|
|
17
|
+
configured: false,
|
|
18
|
+
reason: "unconfigured"
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
await this.callback(entry);
|
|
23
|
+
return {
|
|
24
|
+
ok: true,
|
|
25
|
+
forwarded: true,
|
|
26
|
+
configured: true
|
|
27
|
+
};
|
|
28
|
+
} catch (error) {
|
|
29
|
+
return {
|
|
30
|
+
ok: false,
|
|
31
|
+
forwarded: false,
|
|
32
|
+
configured: true,
|
|
33
|
+
reason: "callback-error",
|
|
34
|
+
errorMessage: error instanceof Error ? error.message : String(error)
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function getRendererLogDispatcher() {
|
|
40
|
+
const globalObj = globalThis;
|
|
41
|
+
if (!globalObj[RENDERER_LOG_DISPATCHER_SYMBOL]) {
|
|
42
|
+
globalObj[RENDERER_LOG_DISPATCHER_SYMBOL] = new RendererLogDispatcher();
|
|
43
|
+
}
|
|
44
|
+
return globalObj[RENDERER_LOG_DISPATCHER_SYMBOL];
|
|
45
|
+
}
|
|
46
|
+
function clearRendererLogDispatcherForTests() {
|
|
47
|
+
const globalObj = globalThis;
|
|
48
|
+
delete globalObj[RENDERER_LOG_DISPATCHER_SYMBOL];
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
clearRendererLogDispatcherForTests,
|
|
52
|
+
getRendererLogDispatcher
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=renderer_log_dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/runtime/renderer_log_dispatcher.ts"],"sourcesContent":["const RENDERER_LOG_DISPATCHER_SYMBOL = Symbol.for('@noego/wood.runtime.renderer-log-dispatcher');\n\nexport type RendererLogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nexport type RendererLogEntry = {\n level: RendererLogLevel;\n logger: string;\n message: string;\n context?: unknown;\n timestamp: string;\n senderId?: number | null;\n};\n\nexport type RendererLogCallback = (entry: RendererLogEntry) => void | Promise<void>;\n\nexport type RendererLogDispatchResult = {\n ok: boolean;\n forwarded: boolean;\n configured: boolean;\n reason?: 'unconfigured' | 'callback-error';\n errorMessage?: string;\n};\n\nclass RendererLogDispatcher {\n private callback: RendererLogCallback | null = null;\n\n setCallback(callback: RendererLogCallback | null): void {\n this.callback = callback;\n }\n\n getCallback(): RendererLogCallback | null {\n return this.callback;\n }\n\n async dispatch(entry: RendererLogEntry): Promise<RendererLogDispatchResult> {\n if (!this.callback) {\n return {\n ok: true,\n forwarded: false,\n configured: false,\n reason: 'unconfigured',\n };\n }\n\n try {\n await this.callback(entry);\n return {\n ok: true,\n forwarded: true,\n configured: true,\n };\n } catch (error) {\n return {\n ok: false,\n forwarded: false,\n configured: true,\n reason: 'callback-error',\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n}\n\ntype GlobalWithRendererLogDispatcher = typeof globalThis & {\n [RENDERER_LOG_DISPATCHER_SYMBOL]?: RendererLogDispatcher;\n};\n\nexport function getRendererLogDispatcher(): RendererLogDispatcher {\n const globalObj = globalThis as GlobalWithRendererLogDispatcher;\n if (!globalObj[RENDERER_LOG_DISPATCHER_SYMBOL]) {\n globalObj[RENDERER_LOG_DISPATCHER_SYMBOL] = new RendererLogDispatcher();\n }\n return globalObj[RENDERER_LOG_DISPATCHER_SYMBOL] as RendererLogDispatcher;\n}\n\nexport function clearRendererLogDispatcherForTests(): void {\n const globalObj = globalThis as GlobalWithRendererLogDispatcher;\n delete globalObj[RENDERER_LOG_DISPATCHER_SYMBOL];\n}\n"],"mappings":"AAAA,MAAM,iCAAiC,uBAAO,IAAI,6CAA6C;AAuB/F,MAAM,sBAAsB;AAAA,EAA5B;AACE,SAAQ,WAAuC;AAAA;AAAA,EAE/C,YAAY,UAA4C;AACtD,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,cAA0C;AACxC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,SAAS,OAA6D;AAC1E,QAAI,CAAC,KAAK,UAAU;AAClB,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,QAAQ;AAAA,MACV;AAAA,IACF;AAEA,QAAI;AACF,YAAM,KAAK,SAAS,KAAK;AACzB,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,YAAY;AAAA,MACd;AAAA,IACF,SAAS,OAAO;AACd,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,cAAc,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AACF;AAMO,SAAS,2BAAkD;AAChE,QAAM,YAAY;AAClB,MAAI,CAAC,UAAU,8BAA8B,GAAG;AAC9C,cAAU,8BAA8B,IAAI,IAAI,sBAAsB;AAAA,EACxE;AACA,SAAO,UAAU,8BAA8B;AACjD;AAEO,SAAS,qCAA2C;AACzD,QAAM,YAAY;AAClB,SAAO,UAAU,8BAA8B;AACjD;","names":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var runtime_exports = {};
|
|
20
|
+
__export(runtime_exports, {
|
|
21
|
+
runtime: () => runtime
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(runtime_exports);
|
|
24
|
+
var import_logger = require("@noego/logger");
|
|
25
|
+
var import_wood_router = require("../router/wood_router.cjs");
|
|
26
|
+
var import_get_container = require("./get_container.cjs");
|
|
27
|
+
var import_tracing = require("../tracing/index.js");
|
|
28
|
+
var import_renderer_log_dispatcher = require("./renderer_log_dispatcher.js");
|
|
29
|
+
const logger = (0, import_logger.getLogger)("wood:runtime");
|
|
30
|
+
function normalizeRendererLogLevel(level) {
|
|
31
|
+
if (level === "debug" || level === "warn" || level === "error") {
|
|
32
|
+
return level;
|
|
33
|
+
}
|
|
34
|
+
return "info";
|
|
35
|
+
}
|
|
36
|
+
function coerceRendererLogPayload(rawPayload, event) {
|
|
37
|
+
const payload = rawPayload ?? {};
|
|
38
|
+
const ipcEvent = event;
|
|
39
|
+
return {
|
|
40
|
+
level: normalizeRendererLogLevel(payload.level),
|
|
41
|
+
logger: typeof payload.logger === "string" && payload.logger.trim().length > 0 ? payload.logger : "renderer",
|
|
42
|
+
message: typeof payload.message === "string" ? payload.message : "",
|
|
43
|
+
context: payload.context,
|
|
44
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
45
|
+
senderId: typeof ipcEvent?.sender?.id === "number" ? ipcEvent.sender.id : null
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
async function runtime(options) {
|
|
49
|
+
const {
|
|
50
|
+
ipcMain,
|
|
51
|
+
registerRuntime,
|
|
52
|
+
controllersDir,
|
|
53
|
+
middlewareDir,
|
|
54
|
+
mode = "bundled",
|
|
55
|
+
enableRendererLogBridge = true,
|
|
56
|
+
enableRendererTraceBridge = true
|
|
57
|
+
} = options;
|
|
58
|
+
const container = options.container ?? (0, import_get_container.getContainer)();
|
|
59
|
+
logger.info("runtime start", {
|
|
60
|
+
mode,
|
|
61
|
+
hasProvidedContainer: !!options.container,
|
|
62
|
+
controllersDir,
|
|
63
|
+
middlewareDir,
|
|
64
|
+
enableRendererLogBridge,
|
|
65
|
+
enableRendererTraceBridge
|
|
66
|
+
});
|
|
67
|
+
if (typeof container.instance === "function") {
|
|
68
|
+
const traceConfiguration = await container.instance(import_tracing.TraceProviderConfiguration);
|
|
69
|
+
traceConfiguration.configureRuntime("main");
|
|
70
|
+
}
|
|
71
|
+
const router = new import_wood_router.WoodRouter({
|
|
72
|
+
container,
|
|
73
|
+
controllersDir,
|
|
74
|
+
middlewareDir,
|
|
75
|
+
mode
|
|
76
|
+
});
|
|
77
|
+
registerRuntime(router);
|
|
78
|
+
logger.info("runtime registration complete");
|
|
79
|
+
router.validateControllers();
|
|
80
|
+
logger.info("runtime controller validation complete");
|
|
81
|
+
router.registerReservedHandler("__load", async (data, event) => {
|
|
82
|
+
if (!options.onLoad) {
|
|
83
|
+
throw new Error('Reserved channel "__load" not configured. Provide runtime({ onLoad }).');
|
|
84
|
+
}
|
|
85
|
+
return options.onLoad(data, event);
|
|
86
|
+
});
|
|
87
|
+
router.registerReservedHandler("__navigate", async (data, event) => {
|
|
88
|
+
if (!options.onNavigate) {
|
|
89
|
+
throw new Error('Reserved channel "__navigate" not configured. Provide runtime({ onNavigate }).');
|
|
90
|
+
}
|
|
91
|
+
return options.onNavigate(data, event);
|
|
92
|
+
});
|
|
93
|
+
router.registerReservedHandler("__window", async (data, event) => {
|
|
94
|
+
if (!options.onWindow) {
|
|
95
|
+
throw new Error('Reserved channel "__window" not configured. Provide runtime({ onWindow }).');
|
|
96
|
+
}
|
|
97
|
+
return options.onWindow(data, event);
|
|
98
|
+
});
|
|
99
|
+
router.registerReservedHandler("__debug", async (data, event) => {
|
|
100
|
+
if (!options.onDebug) {
|
|
101
|
+
throw new Error('Reserved channel "__debug" not configured. Provide runtime({ onDebug }).');
|
|
102
|
+
}
|
|
103
|
+
return options.onDebug(data, event);
|
|
104
|
+
});
|
|
105
|
+
router.registerReservedHandler("__contextMenu", async (data, event) => {
|
|
106
|
+
if (!options.onContextMenu) {
|
|
107
|
+
throw new Error('Reserved channel "__contextMenu" not configured. Provide runtime({ onContextMenu }).');
|
|
108
|
+
}
|
|
109
|
+
return options.onContextMenu(data, event);
|
|
110
|
+
});
|
|
111
|
+
if (enableRendererLogBridge) {
|
|
112
|
+
registerRendererLogBridge(ipcMain);
|
|
113
|
+
}
|
|
114
|
+
if (enableRendererTraceBridge) {
|
|
115
|
+
registerRendererTraceBridge(ipcMain);
|
|
116
|
+
}
|
|
117
|
+
router.registerIpcHandlers(ipcMain);
|
|
118
|
+
logger.info("runtime ipc handlers registered", {
|
|
119
|
+
channelCount: router.getChannels().length,
|
|
120
|
+
enableRendererLogBridge,
|
|
121
|
+
enableRendererTraceBridge
|
|
122
|
+
});
|
|
123
|
+
return { router };
|
|
124
|
+
}
|
|
125
|
+
function registerRendererTraceBridge(ipcMain) {
|
|
126
|
+
if (typeof ipcMain.removeHandler === "function") {
|
|
127
|
+
ipcMain.removeHandler("__trace");
|
|
128
|
+
}
|
|
129
|
+
ipcMain.handle("__trace", async (_event, rawPayload) => {
|
|
130
|
+
return (0, import_tracing.dispatchRendererTracePayload)(rawPayload);
|
|
131
|
+
});
|
|
132
|
+
logger.info("renderer trace bridge registered");
|
|
133
|
+
}
|
|
134
|
+
function registerRendererLogBridge(ipcMain) {
|
|
135
|
+
const dispatcher = (0, import_renderer_log_dispatcher.getRendererLogDispatcher)();
|
|
136
|
+
if (typeof ipcMain.removeHandler === "function") {
|
|
137
|
+
ipcMain.removeHandler("__log");
|
|
138
|
+
}
|
|
139
|
+
ipcMain.handle("__log", async (event, rawPayload) => {
|
|
140
|
+
const entry = coerceRendererLogPayload(rawPayload, event);
|
|
141
|
+
const result = await dispatcher.dispatch(entry);
|
|
142
|
+
if (!result.ok) {
|
|
143
|
+
logger.warn("renderer log callback failed", {
|
|
144
|
+
logger: entry.logger,
|
|
145
|
+
messageLength: entry.message.length,
|
|
146
|
+
reason: result.reason ?? null,
|
|
147
|
+
errorMessage: result.errorMessage ?? null
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
return result;
|
|
151
|
+
});
|
|
152
|
+
logger.info("renderer log bridge registered");
|
|
153
|
+
}
|
|
154
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
155
|
+
0 && (module.exports = {
|
|
156
|
+
runtime
|
|
157
|
+
});
|
|
158
|
+
//# sourceMappingURL=runtime.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/runtime/runtime.ts"],"sourcesContent":["import { getLogger } from '@noego/logger';\nimport { WoodRouter } from '../router/wood_router.cjs';\nimport { getContainer } from './get_container.cjs';\nimport { TraceProviderConfiguration, dispatchRendererTracePayload } from '../tracing/index.js';\nimport {\n getRendererLogDispatcher,\n type RendererLogDispatchResult,\n type RendererLogEntry,\n type RendererLogLevel,\n} from './renderer_log_dispatcher.js';\n\nconst logger = getLogger('wood:runtime');\n\ntype IpcMainLike = {\n handle: (channel: string, handler: (_event: unknown, data: unknown) => Promise<unknown> | unknown) => void;\n removeHandler?: (channel: string) => void;\n};\n\nexport interface RegisterRuntimeRouter {\n registerController(name: string, cls: any): void;\n loadOperations(operations: Map<string, any>): void;\n}\n\nexport interface RuntimeOptions {\n ipcMain: IpcMainLike;\n registerRuntime: (router: RegisterRuntimeRouter) => void;\n container?: any;\n controllersDir: string;\n middlewareDir: string;\n mode?: 'bundled' | 'dev';\n enableRendererLogBridge?: boolean;\n enableRendererTraceBridge?: boolean;\n onLoad?: (data: unknown, event?: unknown) => Promise<unknown>;\n onNavigate?: (data: unknown, event?: unknown) => Promise<unknown>;\n onWindow?: (data: unknown, event?: unknown) => Promise<unknown>;\n onDebug?: (data: unknown, event?: unknown) => Promise<unknown>;\n onContextMenu?: (data: unknown, event?: unknown) => Promise<unknown>;\n}\n\nexport interface RuntimeResult {\n router: WoodRouter;\n}\n\ntype RendererLogPayload = {\n level: string;\n logger: string;\n message: string;\n context?: unknown;\n};\n\ntype IpcInvokeEventLike = {\n sender?: {\n id?: number;\n };\n};\n\nfunction normalizeRendererLogLevel(level: unknown): RendererLogLevel {\n if (level === 'debug' || level === 'warn' || level === 'error') {\n return level;\n }\n return 'info';\n}\n\nfunction coerceRendererLogPayload(\n rawPayload: unknown,\n event: unknown,\n): RendererLogEntry {\n const payload = (rawPayload ?? {}) as Partial<RendererLogPayload>;\n const ipcEvent = event as IpcInvokeEventLike;\n\n return {\n level: normalizeRendererLogLevel(payload.level),\n logger: typeof payload.logger === 'string' && payload.logger.trim().length > 0\n ? payload.logger\n : 'renderer',\n message: typeof payload.message === 'string' ? payload.message : '',\n context: payload.context,\n timestamp: new Date().toISOString(),\n senderId: typeof ipcEvent?.sender?.id === 'number' ? ipcEvent.sender.id : null,\n };\n}\n\n/**\n * Boot a bundled-safe Wood runtime using pre-generated static runtime artifacts.\n */\nexport async function runtime(options: RuntimeOptions): Promise<RuntimeResult> {\n const {\n ipcMain,\n registerRuntime,\n controllersDir,\n middlewareDir,\n mode = 'bundled',\n enableRendererLogBridge = true,\n enableRendererTraceBridge = true,\n } = options;\n\n const container = options.container ?? getContainer();\n\n logger.info('runtime start', {\n mode,\n hasProvidedContainer: !!options.container,\n controllersDir,\n middlewareDir,\n enableRendererLogBridge,\n enableRendererTraceBridge,\n });\n\n if (typeof container.instance === 'function') {\n const traceConfiguration = await container.instance(TraceProviderConfiguration);\n traceConfiguration.configureRuntime('main');\n }\n\n const router = new WoodRouter({\n container,\n controllersDir,\n middlewareDir,\n mode,\n });\n\n registerRuntime(router);\n logger.info('runtime registration complete');\n\n router.validateControllers();\n logger.info('runtime controller validation complete');\n\n router.registerReservedHandler('__load', async (data, event) => {\n if (!options.onLoad) {\n throw new Error('Reserved channel \"__load\" not configured. Provide runtime({ onLoad }).');\n }\n return options.onLoad(data, event);\n });\n\n router.registerReservedHandler('__navigate', async (data, event) => {\n if (!options.onNavigate) {\n throw new Error('Reserved channel \"__navigate\" not configured. Provide runtime({ onNavigate }).');\n }\n return options.onNavigate(data, event);\n });\n\n router.registerReservedHandler('__window', async (data, event) => {\n if (!options.onWindow) {\n throw new Error('Reserved channel \"__window\" not configured. Provide runtime({ onWindow }).');\n }\n return options.onWindow(data, event);\n });\n\n router.registerReservedHandler('__debug', async (data, event) => {\n if (!options.onDebug) {\n throw new Error('Reserved channel \"__debug\" not configured. Provide runtime({ onDebug }).');\n }\n return options.onDebug(data, event);\n });\n\n router.registerReservedHandler('__contextMenu', async (data, event) => {\n if (!options.onContextMenu) {\n throw new Error('Reserved channel \"__contextMenu\" not configured. Provide runtime({ onContextMenu }).');\n }\n return options.onContextMenu(data, event);\n });\n\n if (enableRendererLogBridge) {\n registerRendererLogBridge(ipcMain);\n }\n\n if (enableRendererTraceBridge) {\n registerRendererTraceBridge(ipcMain);\n }\n\n router.registerIpcHandlers(ipcMain);\n logger.info('runtime ipc handlers registered', {\n channelCount: router.getChannels().length,\n enableRendererLogBridge,\n enableRendererTraceBridge,\n });\n\n return { router };\n}\n\nfunction registerRendererTraceBridge(ipcMain: IpcMainLike): void {\n if (typeof ipcMain.removeHandler === 'function') {\n ipcMain.removeHandler('__trace');\n }\n\n ipcMain.handle('__trace', async (_event, rawPayload) => {\n return dispatchRendererTracePayload(rawPayload);\n });\n\n logger.info('renderer trace bridge registered');\n}\n\nfunction registerRendererLogBridge(ipcMain: IpcMainLike): void {\n const dispatcher = getRendererLogDispatcher();\n\n if (typeof ipcMain.removeHandler === 'function') {\n ipcMain.removeHandler('__log');\n }\n\n ipcMain.handle('__log', async (event, rawPayload) => {\n const entry = coerceRendererLogPayload(rawPayload, event);\n const result = await dispatcher.dispatch(entry) as RendererLogDispatchResult;\n if (!result.ok) {\n logger.warn('renderer log callback failed', {\n logger: entry.logger,\n messageLength: entry.message.length,\n reason: result.reason ?? null,\n errorMessage: result.errorMessage ?? null,\n });\n }\n return result;\n });\n\n logger.info('renderer log bridge registered');\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { WoodRouter } from '../router/wood_router.cjs';
|
|
2
|
+
import '../types/operations.cjs';
|
|
3
|
+
|
|
4
|
+
type IpcMainLike = {
|
|
5
|
+
handle: (channel: string, handler: (_event: unknown, data: unknown) => Promise<unknown> | unknown) => void;
|
|
6
|
+
removeHandler?: (channel: string) => void;
|
|
7
|
+
};
|
|
8
|
+
interface RegisterRuntimeRouter {
|
|
9
|
+
registerController(name: string, cls: any): void;
|
|
10
|
+
loadOperations(operations: Map<string, any>): void;
|
|
11
|
+
}
|
|
12
|
+
interface RuntimeOptions {
|
|
13
|
+
ipcMain: IpcMainLike;
|
|
14
|
+
registerRuntime: (router: RegisterRuntimeRouter) => void;
|
|
15
|
+
container?: any;
|
|
16
|
+
controllersDir: string;
|
|
17
|
+
middlewareDir: string;
|
|
18
|
+
mode?: 'bundled' | 'dev';
|
|
19
|
+
enableRendererLogBridge?: boolean;
|
|
20
|
+
enableRendererTraceBridge?: boolean;
|
|
21
|
+
onLoad?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
22
|
+
onNavigate?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
23
|
+
onWindow?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
24
|
+
onDebug?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
25
|
+
onContextMenu?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
26
|
+
}
|
|
27
|
+
interface RuntimeResult {
|
|
28
|
+
router: WoodRouter;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Boot a bundled-safe Wood runtime using pre-generated static runtime artifacts.
|
|
32
|
+
*/
|
|
33
|
+
declare function runtime(options: RuntimeOptions): Promise<RuntimeResult>;
|
|
34
|
+
|
|
35
|
+
export { type RegisterRuntimeRouter, type RuntimeOptions, type RuntimeResult, runtime };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { WoodRouter } from '../router/wood_router.js';
|
|
2
|
+
import '../types/operations.js';
|
|
3
|
+
|
|
4
|
+
type IpcMainLike = {
|
|
5
|
+
handle: (channel: string, handler: (_event: unknown, data: unknown) => Promise<unknown> | unknown) => void;
|
|
6
|
+
removeHandler?: (channel: string) => void;
|
|
7
|
+
};
|
|
8
|
+
interface RegisterRuntimeRouter {
|
|
9
|
+
registerController(name: string, cls: any): void;
|
|
10
|
+
loadOperations(operations: Map<string, any>): void;
|
|
11
|
+
}
|
|
12
|
+
interface RuntimeOptions {
|
|
13
|
+
ipcMain: IpcMainLike;
|
|
14
|
+
registerRuntime: (router: RegisterRuntimeRouter) => void;
|
|
15
|
+
container?: any;
|
|
16
|
+
controllersDir: string;
|
|
17
|
+
middlewareDir: string;
|
|
18
|
+
mode?: 'bundled' | 'dev';
|
|
19
|
+
enableRendererLogBridge?: boolean;
|
|
20
|
+
enableRendererTraceBridge?: boolean;
|
|
21
|
+
onLoad?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
22
|
+
onNavigate?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
23
|
+
onWindow?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
24
|
+
onDebug?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
25
|
+
onContextMenu?: (data: unknown, event?: unknown) => Promise<unknown>;
|
|
26
|
+
}
|
|
27
|
+
interface RuntimeResult {
|
|
28
|
+
router: WoodRouter;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Boot a bundled-safe Wood runtime using pre-generated static runtime artifacts.
|
|
32
|
+
*/
|
|
33
|
+
declare function runtime(options: RuntimeOptions): Promise<RuntimeResult>;
|
|
34
|
+
|
|
35
|
+
export { type RegisterRuntimeRouter, type RuntimeOptions, type RuntimeResult, runtime };
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { getLogger } from "@noego/logger";
|
|
2
|
+
import { WoodRouter } from "../router/wood_router.js";
|
|
3
|
+
import { getContainer } from "./get_container.js";
|
|
4
|
+
import { TraceProviderConfiguration, dispatchRendererTracePayload } from "../tracing/index.js";
|
|
5
|
+
import {
|
|
6
|
+
getRendererLogDispatcher
|
|
7
|
+
} from "./renderer_log_dispatcher.js";
|
|
8
|
+
const logger = getLogger("wood:runtime");
|
|
9
|
+
function normalizeRendererLogLevel(level) {
|
|
10
|
+
if (level === "debug" || level === "warn" || level === "error") {
|
|
11
|
+
return level;
|
|
12
|
+
}
|
|
13
|
+
return "info";
|
|
14
|
+
}
|
|
15
|
+
function coerceRendererLogPayload(rawPayload, event) {
|
|
16
|
+
const payload = rawPayload ?? {};
|
|
17
|
+
const ipcEvent = event;
|
|
18
|
+
return {
|
|
19
|
+
level: normalizeRendererLogLevel(payload.level),
|
|
20
|
+
logger: typeof payload.logger === "string" && payload.logger.trim().length > 0 ? payload.logger : "renderer",
|
|
21
|
+
message: typeof payload.message === "string" ? payload.message : "",
|
|
22
|
+
context: payload.context,
|
|
23
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
24
|
+
senderId: typeof ipcEvent?.sender?.id === "number" ? ipcEvent.sender.id : null
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async function runtime(options) {
|
|
28
|
+
const {
|
|
29
|
+
ipcMain,
|
|
30
|
+
registerRuntime,
|
|
31
|
+
controllersDir,
|
|
32
|
+
middlewareDir,
|
|
33
|
+
mode = "bundled",
|
|
34
|
+
enableRendererLogBridge = true,
|
|
35
|
+
enableRendererTraceBridge = true
|
|
36
|
+
} = options;
|
|
37
|
+
const container = options.container ?? getContainer();
|
|
38
|
+
logger.info("runtime start", {
|
|
39
|
+
mode,
|
|
40
|
+
hasProvidedContainer: !!options.container,
|
|
41
|
+
controllersDir,
|
|
42
|
+
middlewareDir,
|
|
43
|
+
enableRendererLogBridge,
|
|
44
|
+
enableRendererTraceBridge
|
|
45
|
+
});
|
|
46
|
+
if (typeof container.instance === "function") {
|
|
47
|
+
const traceConfiguration = await container.instance(TraceProviderConfiguration);
|
|
48
|
+
traceConfiguration.configureRuntime("main");
|
|
49
|
+
}
|
|
50
|
+
const router = new WoodRouter({
|
|
51
|
+
container,
|
|
52
|
+
controllersDir,
|
|
53
|
+
middlewareDir,
|
|
54
|
+
mode
|
|
55
|
+
});
|
|
56
|
+
registerRuntime(router);
|
|
57
|
+
logger.info("runtime registration complete");
|
|
58
|
+
router.validateControllers();
|
|
59
|
+
logger.info("runtime controller validation complete");
|
|
60
|
+
router.registerReservedHandler("__load", async (data, event) => {
|
|
61
|
+
if (!options.onLoad) {
|
|
62
|
+
throw new Error('Reserved channel "__load" not configured. Provide runtime({ onLoad }).');
|
|
63
|
+
}
|
|
64
|
+
return options.onLoad(data, event);
|
|
65
|
+
});
|
|
66
|
+
router.registerReservedHandler("__navigate", async (data, event) => {
|
|
67
|
+
if (!options.onNavigate) {
|
|
68
|
+
throw new Error('Reserved channel "__navigate" not configured. Provide runtime({ onNavigate }).');
|
|
69
|
+
}
|
|
70
|
+
return options.onNavigate(data, event);
|
|
71
|
+
});
|
|
72
|
+
router.registerReservedHandler("__window", async (data, event) => {
|
|
73
|
+
if (!options.onWindow) {
|
|
74
|
+
throw new Error('Reserved channel "__window" not configured. Provide runtime({ onWindow }).');
|
|
75
|
+
}
|
|
76
|
+
return options.onWindow(data, event);
|
|
77
|
+
});
|
|
78
|
+
router.registerReservedHandler("__debug", async (data, event) => {
|
|
79
|
+
if (!options.onDebug) {
|
|
80
|
+
throw new Error('Reserved channel "__debug" not configured. Provide runtime({ onDebug }).');
|
|
81
|
+
}
|
|
82
|
+
return options.onDebug(data, event);
|
|
83
|
+
});
|
|
84
|
+
router.registerReservedHandler("__contextMenu", async (data, event) => {
|
|
85
|
+
if (!options.onContextMenu) {
|
|
86
|
+
throw new Error('Reserved channel "__contextMenu" not configured. Provide runtime({ onContextMenu }).');
|
|
87
|
+
}
|
|
88
|
+
return options.onContextMenu(data, event);
|
|
89
|
+
});
|
|
90
|
+
if (enableRendererLogBridge) {
|
|
91
|
+
registerRendererLogBridge(ipcMain);
|
|
92
|
+
}
|
|
93
|
+
if (enableRendererTraceBridge) {
|
|
94
|
+
registerRendererTraceBridge(ipcMain);
|
|
95
|
+
}
|
|
96
|
+
router.registerIpcHandlers(ipcMain);
|
|
97
|
+
logger.info("runtime ipc handlers registered", {
|
|
98
|
+
channelCount: router.getChannels().length,
|
|
99
|
+
enableRendererLogBridge,
|
|
100
|
+
enableRendererTraceBridge
|
|
101
|
+
});
|
|
102
|
+
return { router };
|
|
103
|
+
}
|
|
104
|
+
function registerRendererTraceBridge(ipcMain) {
|
|
105
|
+
if (typeof ipcMain.removeHandler === "function") {
|
|
106
|
+
ipcMain.removeHandler("__trace");
|
|
107
|
+
}
|
|
108
|
+
ipcMain.handle("__trace", async (_event, rawPayload) => {
|
|
109
|
+
return dispatchRendererTracePayload(rawPayload);
|
|
110
|
+
});
|
|
111
|
+
logger.info("renderer trace bridge registered");
|
|
112
|
+
}
|
|
113
|
+
function registerRendererLogBridge(ipcMain) {
|
|
114
|
+
const dispatcher = getRendererLogDispatcher();
|
|
115
|
+
if (typeof ipcMain.removeHandler === "function") {
|
|
116
|
+
ipcMain.removeHandler("__log");
|
|
117
|
+
}
|
|
118
|
+
ipcMain.handle("__log", async (event, rawPayload) => {
|
|
119
|
+
const entry = coerceRendererLogPayload(rawPayload, event);
|
|
120
|
+
const result = await dispatcher.dispatch(entry);
|
|
121
|
+
if (!result.ok) {
|
|
122
|
+
logger.warn("renderer log callback failed", {
|
|
123
|
+
logger: entry.logger,
|
|
124
|
+
messageLength: entry.message.length,
|
|
125
|
+
reason: result.reason ?? null,
|
|
126
|
+
errorMessage: result.errorMessage ?? null
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return result;
|
|
130
|
+
});
|
|
131
|
+
logger.info("renderer log bridge registered");
|
|
132
|
+
}
|
|
133
|
+
export {
|
|
134
|
+
runtime
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/runtime/runtime.ts"],"sourcesContent":["import { getLogger } from '@noego/logger';\nimport { WoodRouter } from '../router/wood_router.js';\nimport { getContainer } from './get_container.js';\nimport { TraceProviderConfiguration, dispatchRendererTracePayload } from '../tracing/index.js';\nimport {\n getRendererLogDispatcher,\n type RendererLogDispatchResult,\n type RendererLogEntry,\n type RendererLogLevel,\n} from './renderer_log_dispatcher.js';\n\nconst logger = getLogger('wood:runtime');\n\ntype IpcMainLike = {\n handle: (channel: string, handler: (_event: unknown, data: unknown) => Promise<unknown> | unknown) => void;\n removeHandler?: (channel: string) => void;\n};\n\nexport interface RegisterRuntimeRouter {\n registerController(name: string, cls: any): void;\n loadOperations(operations: Map<string, any>): void;\n}\n\nexport interface RuntimeOptions {\n ipcMain: IpcMainLike;\n registerRuntime: (router: RegisterRuntimeRouter) => void;\n container?: any;\n controllersDir: string;\n middlewareDir: string;\n mode?: 'bundled' | 'dev';\n enableRendererLogBridge?: boolean;\n enableRendererTraceBridge?: boolean;\n onLoad?: (data: unknown, event?: unknown) => Promise<unknown>;\n onNavigate?: (data: unknown, event?: unknown) => Promise<unknown>;\n onWindow?: (data: unknown, event?: unknown) => Promise<unknown>;\n onDebug?: (data: unknown, event?: unknown) => Promise<unknown>;\n onContextMenu?: (data: unknown, event?: unknown) => Promise<unknown>;\n}\n\nexport interface RuntimeResult {\n router: WoodRouter;\n}\n\ntype RendererLogPayload = {\n level: string;\n logger: string;\n message: string;\n context?: unknown;\n};\n\ntype IpcInvokeEventLike = {\n sender?: {\n id?: number;\n };\n};\n\nfunction normalizeRendererLogLevel(level: unknown): RendererLogLevel {\n if (level === 'debug' || level === 'warn' || level === 'error') {\n return level;\n }\n return 'info';\n}\n\nfunction coerceRendererLogPayload(\n rawPayload: unknown,\n event: unknown,\n): RendererLogEntry {\n const payload = (rawPayload ?? {}) as Partial<RendererLogPayload>;\n const ipcEvent = event as IpcInvokeEventLike;\n\n return {\n level: normalizeRendererLogLevel(payload.level),\n logger: typeof payload.logger === 'string' && payload.logger.trim().length > 0\n ? payload.logger\n : 'renderer',\n message: typeof payload.message === 'string' ? payload.message : '',\n context: payload.context,\n timestamp: new Date().toISOString(),\n senderId: typeof ipcEvent?.sender?.id === 'number' ? ipcEvent.sender.id : null,\n };\n}\n\n/**\n * Boot a bundled-safe Wood runtime using pre-generated static runtime artifacts.\n */\nexport async function runtime(options: RuntimeOptions): Promise<RuntimeResult> {\n const {\n ipcMain,\n registerRuntime,\n controllersDir,\n middlewareDir,\n mode = 'bundled',\n enableRendererLogBridge = true,\n enableRendererTraceBridge = true,\n } = options;\n\n const container = options.container ?? getContainer();\n\n logger.info('runtime start', {\n mode,\n hasProvidedContainer: !!options.container,\n controllersDir,\n middlewareDir,\n enableRendererLogBridge,\n enableRendererTraceBridge,\n });\n\n if (typeof container.instance === 'function') {\n const traceConfiguration = await container.instance(TraceProviderConfiguration);\n traceConfiguration.configureRuntime('main');\n }\n\n const router = new WoodRouter({\n container,\n controllersDir,\n middlewareDir,\n mode,\n });\n\n registerRuntime(router);\n logger.info('runtime registration complete');\n\n router.validateControllers();\n logger.info('runtime controller validation complete');\n\n router.registerReservedHandler('__load', async (data, event) => {\n if (!options.onLoad) {\n throw new Error('Reserved channel \"__load\" not configured. Provide runtime({ onLoad }).');\n }\n return options.onLoad(data, event);\n });\n\n router.registerReservedHandler('__navigate', async (data, event) => {\n if (!options.onNavigate) {\n throw new Error('Reserved channel \"__navigate\" not configured. Provide runtime({ onNavigate }).');\n }\n return options.onNavigate(data, event);\n });\n\n router.registerReservedHandler('__window', async (data, event) => {\n if (!options.onWindow) {\n throw new Error('Reserved channel \"__window\" not configured. Provide runtime({ onWindow }).');\n }\n return options.onWindow(data, event);\n });\n\n router.registerReservedHandler('__debug', async (data, event) => {\n if (!options.onDebug) {\n throw new Error('Reserved channel \"__debug\" not configured. Provide runtime({ onDebug }).');\n }\n return options.onDebug(data, event);\n });\n\n router.registerReservedHandler('__contextMenu', async (data, event) => {\n if (!options.onContextMenu) {\n throw new Error('Reserved channel \"__contextMenu\" not configured. Provide runtime({ onContextMenu }).');\n }\n return options.onContextMenu(data, event);\n });\n\n if (enableRendererLogBridge) {\n registerRendererLogBridge(ipcMain);\n }\n\n if (enableRendererTraceBridge) {\n registerRendererTraceBridge(ipcMain);\n }\n\n router.registerIpcHandlers(ipcMain);\n logger.info('runtime ipc handlers registered', {\n channelCount: router.getChannels().length,\n enableRendererLogBridge,\n enableRendererTraceBridge,\n });\n\n return { router };\n}\n\nfunction registerRendererTraceBridge(ipcMain: IpcMainLike): void {\n if (typeof ipcMain.removeHandler === 'function') {\n ipcMain.removeHandler('__trace');\n }\n\n ipcMain.handle('__trace', async (_event, rawPayload) => {\n return dispatchRendererTracePayload(rawPayload);\n });\n\n logger.info('renderer trace bridge registered');\n}\n\nfunction registerRendererLogBridge(ipcMain: IpcMainLike): void {\n const dispatcher = getRendererLogDispatcher();\n\n if (typeof ipcMain.removeHandler === 'function') {\n ipcMain.removeHandler('__log');\n }\n\n ipcMain.handle('__log', async (event, rawPayload) => {\n const entry = coerceRendererLogPayload(rawPayload, event);\n const result = await dispatcher.dispatch(entry) as RendererLogDispatchResult;\n if (!result.ok) {\n logger.warn('renderer log callback failed', {\n logger: entry.logger,\n messageLength: entry.message.length,\n reason: result.reason ?? null,\n errorMessage: result.errorMessage ?? null,\n });\n }\n return result;\n });\n\n logger.info('renderer log bridge registered');\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var allow_cli_exports = {};
|
|
20
|
+
__export(allow_cli_exports, {
|
|
21
|
+
StickCLIRequiredError: () => StickCLIRequiredError
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(allow_cli_exports);
|
|
24
|
+
class StickCLIRequiredError extends Error {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(
|
|
27
|
+
'This file must be run with the stick CLI, not directly with tsx/node.\n\nUsage:\n npx stick your-file.stick.ts\n npx stick "**/*.stick.ts"\n\nThe stick CLI provides the necessary Svelte loader for rendering components.'
|
|
28
|
+
);
|
|
29
|
+
this.name = "StickCLIRequiredError";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (!process.env.STICK_CLI) {
|
|
33
|
+
throw new StickCLIRequiredError();
|
|
34
|
+
}
|
|
35
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
36
|
+
0 && (module.exports = {
|
|
37
|
+
StickCLIRequiredError
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=allow_cli.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stick/allow_cli.ts"],"sourcesContent":["export class StickCLIRequiredError extends Error {\n name = 'StickCLIRequiredError' as const;\n constructor() {\n super(\n 'This file must be run with the stick CLI, not directly with tsx/node.\\n\\n' +\n 'Usage:\\n' +\n ' npx stick your-file.stick.ts\\n' +\n ' npx stick \"**/*.stick.ts\"\\n\\n' +\n 'The stick CLI provides the necessary Svelte loader for rendering components.'\n );\n }\n}\n\n//We need to throw on import so that this crashes right away\nif (!process.env.STICK_CLI) {\n throw new StickCLIRequiredError();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,8BAA8B,MAAM;AAAA,EAE/C,cAAc;AACZ;AAAA,MACE;AAAA,IAKF;AARF,gBAAO;AAAA,EASP;AACF;AAGA,IAAI,CAAC,QAAQ,IAAI,WAAW;AACxB,QAAM,IAAI,sBAAsB;AACpC;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class StickCLIRequiredError extends Error {
|
|
2
|
+
constructor() {
|
|
3
|
+
super(
|
|
4
|
+
'This file must be run with the stick CLI, not directly with tsx/node.\n\nUsage:\n npx stick your-file.stick.ts\n npx stick "**/*.stick.ts"\n\nThe stick CLI provides the necessary Svelte loader for rendering components.'
|
|
5
|
+
);
|
|
6
|
+
this.name = "StickCLIRequiredError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
if (!process.env.STICK_CLI) {
|
|
10
|
+
throw new StickCLIRequiredError();
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
StickCLIRequiredError
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=allow_cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stick/allow_cli.ts"],"sourcesContent":["export class StickCLIRequiredError extends Error {\n name = 'StickCLIRequiredError' as const;\n constructor() {\n super(\n 'This file must be run with the stick CLI, not directly with tsx/node.\\n\\n' +\n 'Usage:\\n' +\n ' npx stick your-file.stick.ts\\n' +\n ' npx stick \"**/*.stick.ts\"\\n\\n' +\n 'The stick CLI provides the necessary Svelte loader for rendering components.'\n );\n }\n}\n\n//We need to throw on import so that this crashes right away\nif (!process.env.STICK_CLI) {\n throw new StickCLIRequiredError();\n}\n"],"mappings":"AAAO,MAAM,8BAA8B,MAAM;AAAA,EAE/C,cAAc;AACZ;AAAA,MACE;AAAA,IAKF;AARF,gBAAO;AAAA,EASP;AACF;AAGA,IAAI,CAAC,QAAQ,IAAI,WAAW;AACxB,QAAM,IAAI,sBAAsB;AACpC;","names":[]}
|