@dxos/app-framework 0.8.4-main.ead640a → 0.8.4-main.effb148878
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/.storybook/main.mts +2 -4
- package/.storybook/preview.mts +2 -2
- package/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/browser/capability-C4WE22TJ.mjs +35 -0
- package/dist/lib/browser/capability-C4WE22TJ.mjs.map +7 -0
- package/dist/lib/browser/chunk-2ZIYRDAF.mjs +95 -0
- package/dist/lib/browser/chunk-2ZIYRDAF.mjs.map +7 -0
- package/dist/lib/browser/chunk-5GY3YOEL.mjs +28 -0
- package/dist/lib/browser/chunk-5GY3YOEL.mjs.map +7 -0
- package/dist/lib/browser/chunk-66IXTIVK.mjs +48 -0
- package/dist/lib/browser/chunk-66IXTIVK.mjs.map +7 -0
- package/dist/lib/browser/chunk-67GCXX5I.mjs +581 -0
- package/dist/lib/browser/chunk-67GCXX5I.mjs.map +7 -0
- package/dist/lib/browser/chunk-FJ4765WW.mjs +8 -0
- package/dist/lib/browser/chunk-FJ4765WW.mjs.map +7 -0
- package/dist/lib/browser/chunk-FO3IYSLV.mjs +68 -0
- package/dist/lib/browser/chunk-FO3IYSLV.mjs.map +7 -0
- package/dist/lib/browser/chunk-IW44C7UL.mjs +83 -0
- package/dist/lib/browser/chunk-IW44C7UL.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-KLHQNYJ2.mjs +422 -0
- package/dist/lib/browser/chunk-KLHQNYJ2.mjs.map +7 -0
- package/dist/lib/browser/chunk-LPWOVOOB.mjs +142 -0
- package/dist/lib/browser/chunk-LPWOVOOB.mjs.map +7 -0
- package/dist/lib/browser/chunk-LUQOVTWB.mjs +43 -0
- package/dist/lib/browser/chunk-LUQOVTWB.mjs.map +7 -0
- package/dist/lib/browser/chunk-SLX73WRZ.mjs +218 -0
- package/dist/lib/browser/chunk-SLX73WRZ.mjs.map +7 -0
- package/dist/lib/browser/chunk-SZMB3K2N.mjs +517 -0
- package/dist/lib/browser/chunk-SZMB3K2N.mjs.map +7 -0
- package/dist/lib/browser/chunk-VJ5PFAWC.mjs +1446 -0
- package/dist/lib/browser/chunk-VJ5PFAWC.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +74 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/common/activation-events.mjs +20 -0
- package/dist/lib/browser/common/capabilities.mjs +56 -0
- package/dist/lib/browser/core/activation-event.mjs +20 -0
- package/dist/lib/browser/core/capability.mjs +32 -0
- package/dist/lib/browser/core/capability.mjs.map +7 -0
- package/dist/lib/browser/core/plugin-manager.mjs +19 -0
- package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
- package/dist/lib/browser/core/plugin.mjs +39 -0
- package/dist/lib/browser/core/plugin.mjs.map +7 -0
- package/dist/lib/browser/core/url-loader.mjs +24 -0
- package/dist/lib/browser/core/url-loader.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +85 -148
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/process-manager-capability-3Q4TA73T.mjs +89 -0
- package/dist/lib/browser/process-manager-capability-3Q4TA73T.mjs.map +7 -0
- package/dist/lib/browser/testing/index.mjs +245 -47
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/browser/testing/react.mjs +78 -0
- package/dist/lib/browser/testing/react.mjs.map +7 -0
- package/dist/lib/browser/ui/index.mjs +54 -0
- package/dist/lib/browser/ui/index.mjs.map +7 -0
- package/dist/lib/node-esm/capability-GPN6OS6M.mjs +36 -0
- package/dist/lib/node-esm/capability-GPN6OS6M.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-37Z53PXZ.mjs +10 -0
- package/dist/lib/node-esm/chunk-37Z53PXZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-42UNAKYO.mjs +423 -0
- package/dist/lib/node-esm/chunk-42UNAKYO.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6S45OMUP.mjs +219 -0
- package/dist/lib/node-esm/chunk-6S45OMUP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CTKEZHKF.mjs +84 -0
- package/dist/lib/node-esm/chunk-CTKEZHKF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-FEVJEUD7.mjs +143 -0
- package/dist/lib/node-esm/chunk-FEVJEUD7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GBHZF46K.mjs +518 -0
- package/dist/lib/node-esm/chunk-GBHZF46K.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GUE5V5CG.mjs +582 -0
- package/dist/lib/node-esm/chunk-GUE5V5CG.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-KFZEB6BV.mjs +29 -0
- package/dist/lib/node-esm/chunk-KFZEB6BV.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-MXWDXYV2.mjs +44 -0
- package/dist/lib/node-esm/chunk-MXWDXYV2.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-QBUGLR4H.mjs +96 -0
- package/dist/lib/node-esm/chunk-QBUGLR4H.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SFYCO3PT.mjs +1447 -0
- package/dist/lib/node-esm/chunk-SFYCO3PT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WK7OIQKI.mjs +70 -0
- package/dist/lib/node-esm/chunk-WK7OIQKI.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XOCUANHO.mjs +49 -0
- package/dist/lib/node-esm/chunk-XOCUANHO.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +75 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/common/activation-events.mjs +21 -0
- package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
- package/dist/lib/node-esm/common/capabilities.mjs +57 -0
- package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
- package/dist/lib/node-esm/core/activation-event.mjs +21 -0
- package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
- package/dist/lib/node-esm/core/capability.mjs +33 -0
- package/dist/lib/node-esm/core/capability.mjs.map +7 -0
- package/dist/lib/node-esm/core/plugin-manager.mjs +20 -0
- package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
- package/dist/lib/node-esm/core/plugin.mjs +40 -0
- package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
- package/dist/lib/node-esm/core/url-loader.mjs +25 -0
- package/dist/lib/node-esm/core/url-loader.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +85 -148
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/process-manager-capability-5KCLSNQM.mjs +90 -0
- package/dist/lib/node-esm/process-manager-capability-5KCLSNQM.mjs.map +7 -0
- package/dist/lib/node-esm/testing/index.mjs +245 -47
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/testing/react.mjs +79 -0
- package/dist/lib/node-esm/testing/react.mjs.map +7 -0
- package/dist/lib/node-esm/ui/index.mjs +55 -0
- package/dist/lib/node-esm/ui/index.mjs.map +7 -0
- package/dist/plugin/node-esm/index.mjs +893 -0
- package/dist/plugin/node-esm/index.mjs.map +7 -0
- package/dist/plugin/node-esm/meta.json +1 -0
- package/dist/types/src/cli/cli.d.ts +37 -0
- package/dist/types/src/cli/cli.d.ts.map +1 -0
- package/dist/types/src/cli/index.d.ts +2 -0
- package/dist/types/src/cli/index.d.ts.map +1 -0
- package/dist/types/src/common/activation-events.d.ts +24 -0
- package/dist/types/src/common/activation-events.d.ts.map +1 -0
- package/dist/types/src/common/annotations.d.ts +1 -0
- package/dist/types/src/common/annotations.d.ts.map +1 -0
- package/dist/types/src/common/capabilities.d.ts +214 -199
- package/dist/types/src/common/capabilities.d.ts.map +1 -1
- package/dist/types/src/common/index.d.ts +4 -8
- package/dist/types/src/common/index.d.ts.map +1 -1
- package/dist/types/src/common/operations.d.ts +19 -0
- package/dist/types/src/common/operations.d.ts.map +1 -0
- package/dist/types/src/common/translations.d.ts +7 -7
- package/dist/types/src/common/translations.d.ts.map +1 -1
- package/dist/types/src/context.d.ts +5 -0
- package/dist/types/src/context.d.ts.map +1 -0
- package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +11 -11
- package/dist/types/src/core/activation-event.d.ts.map +1 -0
- package/dist/types/src/core/capability-manager.d.ts +48 -0
- package/dist/types/src/core/capability-manager.d.ts.map +1 -0
- package/dist/types/src/core/capability-manager.test.d.ts +2 -0
- package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
- package/dist/types/src/core/capability.d.ts +161 -0
- package/dist/types/src/core/capability.d.ts.map +1 -0
- package/dist/types/src/core/edge-registry-plugin-provider.d.ts +30 -0
- package/dist/types/src/core/edge-registry-plugin-provider.d.ts.map +1 -0
- package/dist/types/src/core/index.d.ts +11 -4
- package/dist/types/src/core/index.d.ts.map +1 -1
- package/dist/types/src/core/plugin-asset-cache.d.ts +71 -0
- package/dist/types/src/core/plugin-asset-cache.d.ts.map +1 -0
- package/dist/types/src/core/plugin-manager.d.ts +297 -0
- package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
- package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
- package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
- package/dist/types/src/core/plugin-manifest.d.ts +101 -0
- package/dist/types/src/core/plugin-manifest.d.ts.map +1 -0
- package/dist/types/src/core/plugin-manifest.test.d.ts +2 -0
- package/dist/types/src/core/plugin-manifest.test.d.ts.map +1 -0
- package/dist/types/src/core/plugin.d.ts +276 -39
- package/dist/types/src/core/plugin.d.ts.map +1 -1
- package/dist/types/src/core/registry.d.ts +107 -0
- package/dist/types/src/core/registry.d.ts.map +1 -0
- package/dist/types/src/core/url-loader.d.ts +127 -0
- package/dist/types/src/core/url-loader.d.ts.map +1 -0
- package/dist/types/src/core/url-loader.test.d.ts +2 -0
- package/dist/types/src/core/url-loader.test.d.ts.map +1 -0
- package/dist/types/src/helpers.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -4
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/plugin-process-manager/ProcessManagerPlugin.d.ts +3 -0
- package/dist/types/src/plugin-process-manager/ProcessManagerPlugin.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/capability.d.ts +7 -0
- package/dist/types/src/plugin-process-manager/history/capability.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/errors.d.ts +32 -0
- package/dist/types/src/plugin-process-manager/history/errors.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/history-tracker.d.ts +18 -0
- package/dist/types/src/plugin-process-manager/history/history-tracker.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/history-tracker.test.d.ts +2 -0
- package/dist/types/src/plugin-process-manager/history/history-tracker.test.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/index.d.ts +6 -0
- package/dist/types/src/plugin-process-manager/history/index.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/types.d.ts +13 -0
- package/dist/types/src/plugin-process-manager/history/types.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/undo-mapping.d.ts +101 -0
- package/dist/types/src/plugin-process-manager/history/undo-mapping.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/undo-registry.d.ts +23 -0
- package/dist/types/src/plugin-process-manager/history/undo-registry.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/history/undo-registry.test.d.ts +2 -0
- package/dist/types/src/plugin-process-manager/history/undo-registry.test.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/index.d.ts +3 -0
- package/dist/types/src/plugin-process-manager/index.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/meta.d.ts +3 -0
- package/dist/types/src/plugin-process-manager/meta.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/process-manager-capability.d.ts +8 -0
- package/dist/types/src/plugin-process-manager/process-manager-capability.d.ts.map +1 -0
- package/dist/types/src/plugin-process-manager/testing.d.ts +59 -0
- package/dist/types/src/plugin-process-manager/testing.d.ts.map +1 -0
- package/dist/types/src/testing/harness.d.ts +79 -0
- package/dist/types/src/testing/harness.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/react.d.ts +27 -0
- package/dist/types/src/testing/react.d.ts.map +1 -0
- package/dist/types/src/testing/react.test.d.ts +2 -0
- package/dist/types/src/testing/react.test.d.ts.map +1 -0
- package/dist/types/src/testing/service.d.ts +8 -0
- package/dist/types/src/testing/service.d.ts.map +1 -0
- package/dist/types/src/testing/withPluginManager.d.ts +7 -6
- package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
- package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
- package/dist/types/src/ui/components/App/App.d.ts +9 -0
- package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
- package/dist/types/src/ui/components/App/App.stories.d.ts +19 -0
- package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
- package/dist/types/src/ui/components/App/index.d.ts +2 -0
- package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
- package/dist/types/src/ui/components/Placeholder/Placeholder.d.ts +64 -0
- package/dist/types/src/ui/components/Placeholder/Placeholder.d.ts.map +1 -0
- package/dist/types/src/ui/components/Placeholder/Placeholder.stories.d.ts +19 -0
- package/dist/types/src/ui/components/Placeholder/Placeholder.stories.d.ts.map +1 -0
- package/dist/types/src/ui/components/Placeholder/index.d.ts +2 -0
- package/dist/types/src/ui/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/src/{playground/playground.stories.d.ts → ui/components/PluginManager/PluginManagerContext.stories.d.ts} +5 -3
- package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
- package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts +10 -0
- package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
- package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
- package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +24 -0
- package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
- package/dist/types/src/{components/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -1
- package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts +11 -0
- package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts +48 -0
- package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
- package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/index.d.ts +36 -0
- package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/types.d.ts +197 -0
- package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/types.test.d.ts +2 -0
- package/dist/types/src/ui/components/Surface/types.test.d.ts.map +1 -0
- package/dist/types/src/ui/components/index.d.ts +5 -0
- package/dist/types/src/ui/components/index.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/index.d.ts +7 -0
- package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useApp.d.ts +86 -0
- package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useApp.test.d.ts +2 -0
- package/dist/types/src/ui/hooks/useApp.test.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
- package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
- package/dist/types/src/{components → ui/hooks}/useLoading.d.ts +1 -2
- package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useProcessManagerRuntime.d.ts +30 -0
- package/dist/types/src/ui/hooks/useProcessManagerRuntime.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
- package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
- package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
- package/dist/types/src/ui/index.d.ts +3 -0
- package/dist/types/src/ui/index.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/boot-loader/BootLoader.stories.d.ts +34 -0
- package/dist/types/src/vite-plugin/boot-loader/BootLoader.stories.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/boot-loader/index.d.ts +2 -0
- package/dist/types/src/vite-plugin/boot-loader/index.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/boot-loader/loader.d.ts +51 -0
- package/dist/types/src/vite-plugin/boot-loader/loader.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/composer/index.d.ts +34 -0
- package/dist/types/src/vite-plugin/composer/index.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/import-map/index.d.ts +28 -0
- package/dist/types/src/vite-plugin/import-map/index.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/index.d.ts +5 -0
- package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/manifest.d.ts +41 -0
- package/dist/types/src/vite-plugin/manifest.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/manifest.test.d.ts +2 -0
- package/dist/types/src/vite-plugin/manifest.test.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/packages.d.ts +13 -0
- package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/moon.yml +25 -6
- package/package.json +119 -56
- package/src/cli/cli.ts +102 -0
- package/src/{components → cli}/index.ts +1 -1
- package/src/common/activation-events.ts +39 -0
- package/src/{playground/layout/index.ts → common/annotations.ts} +0 -2
- package/src/common/capabilities.ts +287 -195
- package/src/common/index.ts +4 -8
- package/src/common/operations.ts +36 -0
- package/src/common/translations.ts +17 -9
- package/src/context.ts +9 -0
- package/src/core/{events.ts → activation-event.ts} +10 -7
- package/src/core/capability-manager.test.ts +151 -0
- package/src/core/capability-manager.ts +192 -0
- package/src/core/capability.ts +254 -0
- package/src/core/edge-registry-plugin-provider.ts +92 -0
- package/src/core/index.ts +11 -4
- package/src/core/plugin-asset-cache.ts +60 -0
- package/src/core/plugin-manager.test.ts +1899 -0
- package/src/core/plugin-manager.ts +1687 -0
- package/src/core/plugin-manifest.test.ts +75 -0
- package/src/core/plugin-manifest.ts +134 -0
- package/src/core/plugin.ts +415 -45
- package/src/core/registry.ts +163 -0
- package/src/core/url-loader.test.ts +221 -0
- package/src/core/url-loader.ts +388 -0
- package/src/index.ts +2 -4
- package/src/plugin-process-manager/ProcessManagerPlugin.ts +24 -0
- package/src/plugin-process-manager/history/capability.ts +36 -0
- package/src/plugin-process-manager/history/errors.ts +7 -0
- package/src/plugin-process-manager/history/history-tracker.test.ts +374 -0
- package/src/plugin-process-manager/history/history-tracker.ts +128 -0
- package/src/plugin-process-manager/history/index.ts +9 -0
- package/src/plugin-process-manager/history/types.ts +17 -0
- package/src/plugin-process-manager/history/undo-mapping.ts +135 -0
- package/src/plugin-process-manager/history/undo-registry.test.ts +72 -0
- package/src/plugin-process-manager/history/undo-registry.ts +54 -0
- package/src/plugin-process-manager/index.ts +6 -0
- package/src/plugin-process-manager/meta.ts +14 -0
- package/src/plugin-process-manager/process-manager-capability.ts +178 -0
- package/src/plugin-process-manager/testing.ts +155 -0
- package/src/testing/harness.ts +247 -0
- package/src/testing/index.ts +2 -0
- package/src/testing/react.test.tsx +48 -0
- package/src/testing/react.tsx +113 -0
- package/src/testing/service.ts +52 -0
- package/src/testing/withPluginManager.stories.tsx +8 -9
- package/src/testing/withPluginManager.tsx +73 -42
- package/src/ui/components/App/App.stories.tsx +86 -0
- package/src/ui/components/App/App.tsx +81 -0
- package/src/{playground/debug → ui/components/App}/index.ts +1 -1
- package/src/ui/components/Placeholder/Placeholder.stories.tsx +77 -0
- package/src/ui/components/Placeholder/Placeholder.tsx +156 -0
- package/src/{playground/logger → ui/components/Placeholder}/index.ts +1 -1
- package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +184 -0
- package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +3 -3
- package/src/ui/components/PluginManager/index.ts +5 -0
- package/src/ui/components/Surface/SurfaceComponent.stories.tsx +144 -0
- package/src/ui/components/Surface/SurfaceComponent.tsx +303 -0
- package/src/ui/components/Surface/SurfaceInfo.tsx +106 -0
- package/src/ui/components/Surface/SurfaceProfilerContext.tsx +207 -0
- package/src/ui/components/Surface/context.ts +12 -0
- package/src/ui/components/Surface/index.ts +54 -0
- package/src/ui/components/Surface/types.test.ts +126 -0
- package/src/ui/components/Surface/types.ts +269 -0
- package/src/ui/components/index.ts +8 -0
- package/src/ui/hooks/index.ts +10 -0
- package/src/ui/hooks/useApp.test.tsx +159 -0
- package/src/ui/hooks/useApp.tsx +418 -0
- package/src/ui/hooks/useCapabilities.ts +68 -0
- package/src/{components → ui/hooks}/useLoading.tsx +16 -10
- package/src/ui/hooks/useProcessManagerRuntime.ts +78 -0
- package/src/ui/hooks/useSettingsState.ts +26 -0
- package/src/ui/hooks/useSurface.ts +13 -0
- package/src/ui/index.ts +6 -0
- package/src/vite-plugin/boot-loader/BootLoader.stories.tsx +270 -0
- package/src/vite-plugin/boot-loader/boot-loader.css +320 -0
- package/src/vite-plugin/boot-loader/boot-loader.js +325 -0
- package/src/vite-plugin/boot-loader/index.ts +5 -0
- package/src/vite-plugin/boot-loader/loader.ts +123 -0
- package/src/vite-plugin/composer/index.ts +306 -0
- package/src/vite-plugin/import-map/index.ts +527 -0
- package/src/vite-plugin/index.ts +10 -0
- package/src/vite-plugin/manifest.test.ts +46 -0
- package/src/vite-plugin/manifest.ts +57 -0
- package/src/vite-plugin/packages.ts +187 -0
- package/tsconfig.json +30 -15
- package/tsconfig.node.json +2 -4
- package/typedoc.json +2 -4
- package/vitest.config.ts +1 -1
- package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
- package/.swc/plugins/linux_x86_64_19.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429.wasmer-v7 +0 -0
- package/dist/lib/browser/app-graph-builder-LG4RG2LM.mjs +0 -138
- package/dist/lib/browser/app-graph-builder-LG4RG2LM.mjs.map +0 -7
- package/dist/lib/browser/chunk-2GRQ4QXA.mjs +0 -1646
- package/dist/lib/browser/chunk-2GRQ4QXA.mjs.map +0 -7
- package/dist/lib/browser/chunk-FRUTKCPG.mjs +0 -467
- package/dist/lib/browser/chunk-FRUTKCPG.mjs.map +0 -7
- package/dist/lib/browser/chunk-SCPE4ZO2.mjs +0 -35
- package/dist/lib/browser/chunk-SCPE4ZO2.mjs.map +0 -7
- package/dist/lib/browser/intent-dispatcher-6SHA5B3N.mjs +0 -11
- package/dist/lib/browser/intent-resolver-UZZ4OANZ.mjs +0 -39
- package/dist/lib/browser/intent-resolver-UZZ4OANZ.mjs.map +0 -7
- package/dist/lib/browser/store-ACBEYK4B.mjs +0 -30
- package/dist/lib/browser/store-ACBEYK4B.mjs.map +0 -7
- package/dist/lib/browser/worker.mjs +0 -77
- package/dist/lib/node-esm/app-graph-builder-FMHVHPWA.mjs +0 -139
- package/dist/lib/node-esm/app-graph-builder-FMHVHPWA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CXT6CYPE.mjs +0 -468
- package/dist/lib/node-esm/chunk-CXT6CYPE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KSPOOYT3.mjs +0 -1648
- package/dist/lib/node-esm/chunk-KSPOOYT3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZX63QUGE.mjs +0 -37
- package/dist/lib/node-esm/chunk-ZX63QUGE.mjs.map +0 -7
- package/dist/lib/node-esm/intent-dispatcher-SIYQ5ZIU.mjs +0 -12
- package/dist/lib/node-esm/intent-resolver-7FYJMXAG.mjs +0 -40
- package/dist/lib/node-esm/intent-resolver-7FYJMXAG.mjs.map +0 -7
- package/dist/lib/node-esm/store-6OBLTVXC.mjs +0 -31
- package/dist/lib/node-esm/store-6OBLTVXC.mjs.map +0 -7
- package/dist/lib/node-esm/worker.mjs +0 -78
- package/dist/types/src/common/collaboration.d.ts +0 -20
- package/dist/types/src/common/collaboration.d.ts.map +0 -1
- package/dist/types/src/common/events.d.ts +0 -52
- package/dist/types/src/common/events.d.ts.map +0 -1
- package/dist/types/src/common/file.d.ts +0 -14
- package/dist/types/src/common/file.d.ts.map +0 -1
- package/dist/types/src/common/graph.d.ts +0 -21
- package/dist/types/src/common/graph.d.ts.map +0 -1
- package/dist/types/src/common/layout.d.ts +0 -279
- package/dist/types/src/common/layout.d.ts.map +0 -1
- package/dist/types/src/common/surface.d.ts +0 -59
- package/dist/types/src/common/surface.d.ts.map +0 -1
- package/dist/types/src/components/App.d.ts +0 -10
- package/dist/types/src/components/App.d.ts.map +0 -1
- package/dist/types/src/components/App.stories.d.ts.map +0 -1
- package/dist/types/src/components/DefaultFallback.d.ts +0 -8
- package/dist/types/src/components/DefaultFallback.d.ts.map +0 -1
- package/dist/types/src/components/index.d.ts +0 -2
- package/dist/types/src/components/index.d.ts.map +0 -1
- package/dist/types/src/components/useApp.d.ts +0 -44
- package/dist/types/src/components/useApp.d.ts.map +0 -1
- package/dist/types/src/components/useLoading.d.ts.map +0 -1
- package/dist/types/src/core/capabilities.d.ts +0 -117
- package/dist/types/src/core/capabilities.d.ts.map +0 -1
- package/dist/types/src/core/capabilities.test.d.ts +0 -2
- package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
- package/dist/types/src/core/events.d.ts.map +0 -1
- package/dist/types/src/core/manager.d.ts +0 -126
- package/dist/types/src/core/manager.d.ts.map +0 -1
- package/dist/types/src/core/manager.test.d.ts +0 -2
- package/dist/types/src/core/manager.test.d.ts.map +0 -1
- package/dist/types/src/playground/debug/Debug.d.ts +0 -6
- package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
- package/dist/types/src/playground/debug/index.d.ts +0 -2
- package/dist/types/src/playground/debug/index.d.ts.map +0 -1
- package/dist/types/src/playground/debug/plugin.d.ts +0 -2
- package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/generator/Main.d.ts +0 -6
- package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
- package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
- package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
- package/dist/types/src/playground/generator/generator.d.ts +0 -7
- package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
- package/dist/types/src/playground/generator/index.d.ts +0 -3
- package/dist/types/src/playground/generator/index.d.ts.map +0 -1
- package/dist/types/src/playground/generator/plugin.d.ts +0 -2
- package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/layout/Layout.d.ts +0 -8
- package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
- package/dist/types/src/playground/layout/index.d.ts +0 -2
- package/dist/types/src/playground/layout/index.d.ts.map +0 -1
- package/dist/types/src/playground/layout/plugin.d.ts +0 -2
- package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
- package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
- package/dist/types/src/playground/logger/index.d.ts +0 -2
- package/dist/types/src/playground/logger/index.d.ts.map +0 -1
- package/dist/types/src/playground/logger/plugin.d.ts +0 -2
- package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/logger/schema.d.ts +0 -13
- package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
- package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
- package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
- package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
- package/dist/types/src/plugin-intent/actions.d.ts +0 -36
- package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
- package/dist/types/src/plugin-intent/errors.d.ts +0 -16
- package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
- package/dist/types/src/plugin-intent/index.d.ts +0 -6
- package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
- package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
- package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
- package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
- package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
- package/dist/types/src/plugin-intent/intent.d.ts +0 -63
- package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
- package/dist/types/src/plugin-intent/meta.d.ts +0 -3
- package/dist/types/src/plugin-intent/meta.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
- package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/actions.d.ts +0 -25
- package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
- package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/index.d.ts +0 -3
- package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
- package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/meta.d.ts +0 -3
- package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/store.d.ts +0 -5
- package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/translations.d.ts +0 -11
- package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
- package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
- package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
- package/dist/types/src/react/IntentContext.d.ts +0 -8
- package/dist/types/src/react/IntentContext.d.ts.map +0 -1
- package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
- package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
- package/dist/types/src/react/Surface.d.ts +0 -12
- package/dist/types/src/react/Surface.d.ts.map +0 -1
- package/dist/types/src/react/Surface.stories.d.ts +0 -17
- package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
- package/dist/types/src/react/common.d.ts +0 -13
- package/dist/types/src/react/common.d.ts.map +0 -1
- package/dist/types/src/react/index.d.ts +0 -7
- package/dist/types/src/react/index.d.ts.map +0 -1
- package/dist/types/src/react/useCapabilities.d.ts +0 -13
- package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
- package/dist/types/src/react/useIntentResolver.d.ts +0 -3
- package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
- package/dist/types/src/worker.d.ts +0 -4
- package/dist/types/src/worker.d.ts.map +0 -1
- package/src/common/collaboration.ts +0 -18
- package/src/common/events.ts +0 -79
- package/src/common/file.ts +0 -22
- package/src/common/graph.ts +0 -30
- package/src/common/layout.ts +0 -277
- package/src/common/surface.ts +0 -83
- package/src/components/App.stories.tsx +0 -33
- package/src/components/App.tsx +0 -59
- package/src/components/DefaultFallback.tsx +0 -26
- package/src/components/useApp.tsx +0 -164
- package/src/core/capabilities.test.ts +0 -136
- package/src/core/capabilities.ts +0 -259
- package/src/core/manager.test.ts +0 -516
- package/src/core/manager.ts +0 -604
- package/src/playground/debug/Debug.tsx +0 -39
- package/src/playground/debug/plugin.ts +0 -16
- package/src/playground/generator/Main.tsx +0 -71
- package/src/playground/generator/Toolbar.tsx +0 -47
- package/src/playground/generator/generator.ts +0 -48
- package/src/playground/generator/index.ts +0 -6
- package/src/playground/generator/plugin.ts +0 -22
- package/src/playground/layout/Layout.tsx +0 -33
- package/src/playground/layout/plugin.ts +0 -18
- package/src/playground/logger/Toolbar.tsx +0 -30
- package/src/playground/logger/plugin.ts +0 -41
- package/src/playground/logger/schema.ts +0 -12
- package/src/playground/playground.stories.tsx +0 -46
- package/src/plugin-intent/IntentPlugin.ts +0 -20
- package/src/plugin-intent/actions.ts +0 -31
- package/src/plugin-intent/errors.ts +0 -40
- package/src/plugin-intent/index.ts +0 -9
- package/src/plugin-intent/intent-dispatcher.test.ts +0 -286
- package/src/plugin-intent/intent-dispatcher.ts +0 -337
- package/src/plugin-intent/intent.ts +0 -154
- package/src/plugin-intent/meta.ts +0 -10
- package/src/plugin-settings/SettingsPlugin.ts +0 -34
- package/src/plugin-settings/actions.ts +0 -25
- package/src/plugin-settings/app-graph-builder.ts +0 -160
- package/src/plugin-settings/index.ts +0 -6
- package/src/plugin-settings/intent-resolver.ts +0 -35
- package/src/plugin-settings/meta.ts +0 -10
- package/src/plugin-settings/store.ts +0 -33
- package/src/plugin-settings/translations.ts +0 -19
- package/src/react/ErrorBoundary.tsx +0 -56
- package/src/react/IntentContext.tsx +0 -35
- package/src/react/Surface.stories.tsx +0 -101
- package/src/react/Surface.tsx +0 -86
- package/src/react/common.ts +0 -13
- package/src/react/index.ts +0 -10
- package/src/react/useCapabilities.ts +0 -31
- package/src/react/useIntentResolver.ts +0 -22
- package/src/worker.ts +0 -11
- /package/dist/lib/browser/{intent-dispatcher-6SHA5B3N.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/browser/{worker.mjs.map → common/activation-events.mjs.map} +0 -0
- /package/dist/lib/{node-esm/intent-dispatcher-SIYQ5ZIU.mjs.map → browser/common/capabilities.mjs.map} +0 -0
- /package/dist/lib/{node-esm/worker.mjs.map → browser/core/activation-event.mjs.map} +0 -0
|
@@ -2,216 +2,308 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import type
|
|
6
|
-
import type * as
|
|
7
|
-
import
|
|
8
|
-
import type * as
|
|
9
|
-
import type * as
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
import
|
|
13
|
-
import type
|
|
14
|
-
|
|
15
|
-
import
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
import { type
|
|
27
|
-
import
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
5
|
+
import { type Atom, type Registry } from '@effect-atom/atom-react';
|
|
6
|
+
import type * as Command$ from '@effect/cli/Command';
|
|
7
|
+
import * as Effect from 'effect/Effect';
|
|
8
|
+
import type * as Exit$ from 'effect/Exit';
|
|
9
|
+
import type * as Fiber$ from 'effect/Fiber';
|
|
10
|
+
import type * as Layer$ from 'effect/Layer';
|
|
11
|
+
import type * as ManagedRuntime$ from 'effect/ManagedRuntime';
|
|
12
|
+
import type * as Runtime$ from 'effect/Runtime';
|
|
13
|
+
import type { FC, PropsWithChildren } from 'react';
|
|
14
|
+
|
|
15
|
+
import type {
|
|
16
|
+
LayerSpec as LayerSpec$,
|
|
17
|
+
Operation as Operation$,
|
|
18
|
+
OperationHandlerSet,
|
|
19
|
+
Process as Process$,
|
|
20
|
+
ServiceResolver as ServiceResolver$,
|
|
21
|
+
Trace as Trace$,
|
|
22
|
+
} from '@dxos/compute';
|
|
23
|
+
import type { ProcessManager as ProcessManager$ } from '@dxos/compute-runtime';
|
|
24
|
+
import { OperationInvoker as OperationInvoker$ } from '@dxos/operation';
|
|
25
|
+
|
|
26
|
+
import { Capability as Capability$, Plugin as Plugin$, type PluginManager as PluginManager$ } from '../core';
|
|
27
|
+
import type {
|
|
28
|
+
HistoryTracker as HistoryTracker$,
|
|
29
|
+
UndoMapping as UndoMapping$,
|
|
30
|
+
UndoRegistry as UndoRegistry$,
|
|
31
|
+
} from '../plugin-process-manager';
|
|
32
|
+
import type { Surface } from '../ui';
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Null capability.
|
|
36
|
+
* @category Capability
|
|
37
|
+
*/
|
|
38
|
+
export const Null = Capability$.make<null>('org.dxos.app-framework.capability.null');
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @category Capability
|
|
42
|
+
*/
|
|
43
|
+
export const PluginManager = Capability$.make<PluginManager$.PluginManager>(
|
|
44
|
+
'org.dxos.app-framework.capability.plugin-manager',
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @category Capability
|
|
49
|
+
*/
|
|
50
|
+
export const AtomRegistry = Capability$.make<Registry.Registry>('org.dxos.app-framework.capability.atom-registry');
|
|
51
|
+
|
|
52
|
+
export type ReactContext = Readonly<{
|
|
53
|
+
id: string;
|
|
54
|
+
dependsOn?: string[];
|
|
55
|
+
context: FC<PropsWithChildren>;
|
|
56
|
+
}>;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @category Capability
|
|
60
|
+
*/
|
|
61
|
+
export const ReactContext = Capability$.make<ReactContext>('org.dxos.app-framework.capability.react-context');
|
|
62
|
+
|
|
63
|
+
export type ReactRoot = Readonly<{ id: string; root: FC<PropsWithChildren> }>;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @category Capability
|
|
67
|
+
*/
|
|
68
|
+
export const ReactRoot = Capability$.make<ReactRoot>('org.dxos.app-framework.capability.react-root');
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Surface definitions that can be either React components or Web Components.
|
|
72
|
+
*/
|
|
73
|
+
export type ReactSurface = Surface.Definition | readonly Surface.Definition[];
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @category Capability
|
|
77
|
+
*/
|
|
78
|
+
export const ReactSurface = Capability$.make<ReactSurface>('org.dxos.app-framework.common.react-surface');
|
|
79
|
+
|
|
80
|
+
export type AnyCommand = Command$.Command<any, any, any, any>;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @category Capability
|
|
84
|
+
*/
|
|
85
|
+
export const Command = Capability$.make<AnyCommand>('org.dxos.app-framework.capability.command');
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* @category Capability
|
|
89
|
+
*/
|
|
90
|
+
export const Layer = Capability$.make<Layer$.Layer<any, any, any>>('org.dxos.app-framework.capability.layer');
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Layer specification contributed by plugins.
|
|
94
|
+
*
|
|
95
|
+
* Plugins contribute {@link LayerSpec.LayerSpec} entries that are collected by the
|
|
96
|
+
* process-manager module and composed into a {@link LayerStack} which backs the
|
|
97
|
+
* {@link ProcessManagerRuntime}'s service resolver.
|
|
98
|
+
*
|
|
99
|
+
* @category Capability
|
|
100
|
+
*/
|
|
101
|
+
export const LayerSpec = Capability$.make<LayerSpec$.LayerSpec>('org.dxos.app-framework.capability.layer-spec');
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Context passed to {@link TraceSinkFactory} implementations when the
|
|
105
|
+
* process-manager capability materialises contributed sinks.
|
|
106
|
+
*/
|
|
107
|
+
export interface TraceSinkFactoryContext {
|
|
31
108
|
/**
|
|
32
|
-
* @
|
|
109
|
+
* Service resolver backing the shared {@link ProcessManagerRuntime}. Use it
|
|
110
|
+
* to resolve per-space (or per-process) services like `FeedTraceSink` when
|
|
111
|
+
* building a routing sink.
|
|
33
112
|
*/
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @category Capability
|
|
38
|
-
*/
|
|
39
|
-
export const PluginManager = defineCapability<PluginManager>('dxos.org/app-framework/capability/plugin-manager');
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @category Capability
|
|
43
|
-
*/
|
|
44
|
-
export const RxRegistry = defineCapability<Registry.Registry>('dxos.org/app-framework/capability/rx-registry');
|
|
45
|
-
|
|
46
|
-
export type ReactContext = Readonly<{ id: string; dependsOn?: string[]; context: FC<PropsWithChildren> }>;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* @category Capability
|
|
50
|
-
*/
|
|
51
|
-
export const ReactContext = defineCapability<ReactContext>('dxos.org/app-framework/capability/react-context');
|
|
52
|
-
|
|
53
|
-
export type ReactRoot = Readonly<{ id: string; root: FC<PropsWithChildren> }>;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @category Capability
|
|
57
|
-
*/
|
|
58
|
-
export const ReactRoot = defineCapability<ReactRoot>('dxos.org/app-framework/capability/react-root');
|
|
59
|
-
|
|
60
|
-
export type ReactSurface = SurfaceDefinition | readonly SurfaceDefinition[];
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* @category Capability
|
|
64
|
-
*/
|
|
65
|
-
export const ReactSurface = defineCapability<ReactSurface>('dxos.org/app-framework/common/react-surface');
|
|
66
|
-
|
|
67
|
-
export type IntentResolver = AnyIntentResolver | readonly AnyIntentResolver[];
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* @category Capability
|
|
71
|
-
*/
|
|
72
|
-
export const IntentResolver = defineCapability<IntentResolver>('dxos.org/app-framework/capability/intent-resolver');
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* @category Capability
|
|
76
|
-
*/
|
|
77
|
-
export const IntentDispatcher = defineCapability<IntentContext>(
|
|
78
|
-
'dxos.org/app-framework/capability/intent-dispatcher',
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
export type Layout = Readonly<{
|
|
82
|
-
mode: string;
|
|
83
|
-
dialogOpen: boolean;
|
|
84
|
-
sidebarOpen: boolean;
|
|
85
|
-
complementarySidebarOpen: boolean;
|
|
86
|
-
/**
|
|
87
|
-
* The id of the active workspace, where a workspace is a set of active items.
|
|
88
|
-
*/
|
|
89
|
-
workspace: string;
|
|
90
|
-
/**
|
|
91
|
-
* Identifiers of items which are currently active in the application.
|
|
92
|
-
*/
|
|
93
|
-
active: string[];
|
|
94
|
-
/**
|
|
95
|
-
* Identifiers of items which were previously active in the application.
|
|
96
|
-
*/
|
|
97
|
-
inactive: string[];
|
|
98
|
-
/**
|
|
99
|
-
* Identifier of the item which should be scrolled into view.
|
|
100
|
-
*/
|
|
101
|
-
scrollIntoView: string | undefined;
|
|
102
|
-
}>;
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* @category Capability
|
|
106
|
-
*/
|
|
107
|
-
export const Layout = defineCapability<Layout>('dxos.org/app-framework/capability/layout');
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* @category Capability
|
|
111
|
-
*/
|
|
112
|
-
export const Translations = defineCapability<Readonly<Resource[]>>('dxos.org/app-framework/capability/translations');
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* @category Capability
|
|
116
|
-
*/
|
|
117
|
-
export const AppGraph = defineCapability<Readonly<Pick<GraphBuilder, 'graph' | 'explore'>>>(
|
|
118
|
-
'dxos.org/app-framework/capability/app-graph',
|
|
119
|
-
);
|
|
113
|
+
readonly resolver: ServiceResolver$.ServiceResolver;
|
|
114
|
+
}
|
|
120
115
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Factory that builds a {@link Trace$.Sink} when the process-manager
|
|
118
|
+
* capability is ready. Plugins that only need a static sink can ignore the
|
|
119
|
+
* context (e.g. `() => myConsoleSink`); plugins that need per-space routing
|
|
120
|
+
* can use {@link TraceSinkFactoryContext.resolver} to look up services.
|
|
121
|
+
*/
|
|
122
|
+
export type TraceSinkFactory = (ctx: TraceSinkFactoryContext) => Trace$.Sink;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Trace sink contribution.
|
|
126
|
+
*
|
|
127
|
+
* Plugins contribute {@link TraceSinkFactory} functions; the process-manager
|
|
128
|
+
* capability invokes each factory with the runtime's
|
|
129
|
+
* {@link ServiceResolver$.ServiceResolver}, collects the resulting
|
|
130
|
+
* {@link Trace$.Sink}s, merges them via {@link Trace$.mergeSinks}, and
|
|
131
|
+
* installs the merged sink as {@link Trace$.TraceSink} in the runtime layer
|
|
132
|
+
* so every process writes to every contributed sink.
|
|
133
|
+
*
|
|
134
|
+
* @category Capability
|
|
135
|
+
*/
|
|
136
|
+
export const TraceSink = Capability$.make<TraceSinkFactory>('org.dxos.app-framework.capability.trace-sink');
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Service resolver backing the shared {@link ProcessManagerRuntime}.
|
|
140
|
+
*
|
|
141
|
+
* Contributed by the process-manager capability module. Consumers can combine
|
|
142
|
+
* it with {@link ServiceResolver$.provide} to build space-scoped layers without
|
|
143
|
+
* having to go through the process-manager runtime:
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```ts
|
|
147
|
+
* const resolver = yield* Capability.get(Capabilities.ServiceResolver);
|
|
148
|
+
* yield* effect.pipe(
|
|
149
|
+
* Effect.provide(
|
|
150
|
+
* ServiceResolver.provide({ space }, Database.Service, Feed.FeedService).pipe(
|
|
151
|
+
* Layer.provide(Layer.succeed(ServiceResolver.ServiceResolver, resolver)),
|
|
152
|
+
* ),
|
|
153
|
+
* ),
|
|
154
|
+
* );
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* @category Capability
|
|
158
|
+
*/
|
|
159
|
+
export const ServiceResolver = Capability$.make<ServiceResolver$.ServiceResolver>(
|
|
160
|
+
'org.dxos.app-framework.capability.service-resolver',
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Process monitor backing the shared {@link ProcessManagerRuntime}. Exposes the
|
|
165
|
+
* live process tree (including inactive/terminated entries) via
|
|
166
|
+
* {@link Process$.Monitor#processTreeAtom}.
|
|
167
|
+
*
|
|
168
|
+
* @category Capability
|
|
169
|
+
*/
|
|
170
|
+
export const ProcessMonitor = Capability$.make<Process$.Monitor>('org.dxos.app-framework.capability.process-monitor');
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Services that are always available when running effects through a {@link ProcessManagerRuntime}.
|
|
174
|
+
*/
|
|
175
|
+
export type ProcessManagerRuntimeServices =
|
|
176
|
+
| Capability$.Service
|
|
177
|
+
| Plugin$.Service
|
|
178
|
+
| ProcessManager$.ProcessManagerService
|
|
179
|
+
| Operation$.Service
|
|
180
|
+
| ProcessManager$.ProcessOperationInvoker.Service
|
|
181
|
+
| ServiceResolver$.ServiceResolver;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Runtime that runs effects requiring a fixed set of capability-manager and
|
|
185
|
+
* process-manager services.
|
|
186
|
+
*
|
|
187
|
+
* The shape mirrors {@link ManagedRuntime$.ManagedRuntime} but deliberately does
|
|
188
|
+
* not expose `dispose` – lifecycle is driven by the host plugin manager.
|
|
189
|
+
*/
|
|
190
|
+
export interface ProcessManagerRuntime {
|
|
191
|
+
runPromise<A, E>(
|
|
192
|
+
effect: Effect.Effect<A, E, ProcessManagerRuntimeServices>,
|
|
193
|
+
options?: { readonly signal?: AbortSignal },
|
|
194
|
+
): Promise<A>;
|
|
195
|
+
runPromiseExit<A, E>(
|
|
196
|
+
effect: Effect.Effect<A, E, ProcessManagerRuntimeServices>,
|
|
197
|
+
options?: { readonly signal?: AbortSignal },
|
|
198
|
+
): Promise<Exit$.Exit<A, E>>;
|
|
199
|
+
runFork<A, E>(
|
|
200
|
+
effect: Effect.Effect<A, E, ProcessManagerRuntimeServices>,
|
|
201
|
+
options?: Runtime$.RunForkOptions,
|
|
202
|
+
): Fiber$.RuntimeFiber<A, E>;
|
|
203
|
+
runSync<A, E>(effect: Effect.Effect<A, E, ProcessManagerRuntimeServices>): A;
|
|
204
|
+
}
|
|
127
205
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
206
|
+
/**
|
|
207
|
+
* @category Capability
|
|
208
|
+
*/
|
|
209
|
+
export const ProcessManagerRuntime = Capability$.make<ProcessManagerRuntime>(
|
|
210
|
+
'org.dxos.app-framework.capability.process-manager-runtime',
|
|
211
|
+
);
|
|
134
212
|
|
|
135
|
-
|
|
136
|
-
* @category Capability
|
|
137
|
-
*/
|
|
138
|
-
export const SettingsStore = defineCapability<RootSettingsStore>('dxos.org/app-framework/capability/settings-store');
|
|
213
|
+
export type ManagedRuntime = ManagedRuntime$.ManagedRuntime<any, any>;
|
|
139
214
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
prefix: string;
|
|
145
|
-
schema: Schema.Schema.All;
|
|
146
|
-
value?: Record<string, any>;
|
|
147
|
-
};
|
|
215
|
+
/**
|
|
216
|
+
* @category Capability
|
|
217
|
+
*/
|
|
218
|
+
export const ManagedRuntime = Capability$.make<ManagedRuntime>('org.dxos.app-framework.capability.managed-runtime');
|
|
148
219
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
export const Settings = defineCapability<Settings>('dxos.org/app-framework/capability/settings');
|
|
220
|
+
//
|
|
221
|
+
// Operation System Capabilities
|
|
222
|
+
//
|
|
153
223
|
|
|
154
|
-
|
|
224
|
+
export const OperationHandler = Capability$.make<OperationHandlerSet.OperationHandlerSet>(
|
|
225
|
+
'org.dxos.app-framework.capability.operation-handler',
|
|
226
|
+
);
|
|
155
227
|
|
|
156
|
-
|
|
157
|
-
* @category Capability
|
|
158
|
-
*/
|
|
159
|
-
export const Metadata = defineCapability<Metadata>('dxos.org/app-framework/capability/metadata');
|
|
228
|
+
export type UndoMapping = UndoMapping$.UndoMapping;
|
|
160
229
|
|
|
161
|
-
|
|
230
|
+
/**
|
|
231
|
+
* Undo mapping registration - contributed by plugins.
|
|
232
|
+
* @category Capability
|
|
233
|
+
*/
|
|
234
|
+
export const UndoMapping = Capability$.make<UndoMapping[]>('org.dxos.app-framework.capability.undo-mapping');
|
|
162
235
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
236
|
+
/**
|
|
237
|
+
* Operation invoker backed by the process manager. Spawns a process per
|
|
238
|
+
* operation invocation; see {@link ProcessManager$.ProcessOperationInvoker}.
|
|
239
|
+
*/
|
|
240
|
+
export type OperationInvoker = OperationInvoker$.OperationInvoker;
|
|
167
241
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* @category Capability
|
|
177
|
-
*/
|
|
178
|
-
export const BlueprintDefinition = defineCapability<Blueprint.Blueprint>(
|
|
179
|
-
'dxos.org/app-framework/capability/blueprint-definition',
|
|
180
|
-
);
|
|
242
|
+
/**
|
|
243
|
+
* Operation invoker - provided by the process-manager capability.
|
|
244
|
+
* @category Capability
|
|
245
|
+
*/
|
|
246
|
+
export const OperationInvoker = Capability$.make<OperationInvoker>(
|
|
247
|
+
'org.dxos.app-framework.capability.operation-invoker',
|
|
248
|
+
);
|
|
181
249
|
|
|
182
|
-
|
|
183
|
-
export const AiServiceLayer = defineCapability<AiServiceLayer>(
|
|
184
|
-
'dxos.org/app-framework/capability/ai-service-factory',
|
|
185
|
-
);
|
|
250
|
+
export type UndoRegistry = UndoRegistry$.UndoRegistry;
|
|
186
251
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
);
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* @category Capability
|
|
196
|
-
*/
|
|
197
|
-
export const Functions = defineCapability<FunctionDefinition<any, any>[]>(
|
|
198
|
-
'dxos.org/app-framework/capability/functions',
|
|
199
|
-
);
|
|
252
|
+
/**
|
|
253
|
+
* Undo registry - provided by ProcessManagerPlugin.
|
|
254
|
+
* @category Capability
|
|
255
|
+
*/
|
|
256
|
+
export const UndoRegistry = Capability$.make<UndoRegistry>('org.dxos.app-framework.capability.undo-registry');
|
|
200
257
|
|
|
201
|
-
|
|
258
|
+
export type HistoryTracker = HistoryTracker$.HistoryTracker;
|
|
202
259
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
260
|
+
/**
|
|
261
|
+
* History tracker - provided by ProcessManagerPlugin.
|
|
262
|
+
* @category Capability
|
|
263
|
+
*/
|
|
264
|
+
export const HistoryTracker = Capability$.make<HistoryTracker>('org.dxos.app-framework.capability.history-tracker');
|
|
207
265
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
};
|
|
266
|
+
//
|
|
267
|
+
// Atom Capability Helpers
|
|
268
|
+
//
|
|
212
269
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
270
|
+
/**
|
|
271
|
+
* Get the current value of an atom capability.
|
|
272
|
+
* @example const settings = yield* Capabilities.getAtomValue(ThreadCapabilities.Settings);
|
|
273
|
+
*/
|
|
274
|
+
export const getAtomValue = <T>(
|
|
275
|
+
atomCapability: Capability$.InterfaceDef<Atom.Atom<T>>,
|
|
276
|
+
): Effect.Effect<T, Error, Capability$.Service> =>
|
|
277
|
+
Effect.gen(function* () {
|
|
278
|
+
const registry = yield* Capability$.get(AtomRegistry);
|
|
279
|
+
const atom = yield* Capability$.get(atomCapability);
|
|
280
|
+
return registry.get(atom);
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Update an atom capability value (requires writable atom).
|
|
285
|
+
* @example yield* Capabilities.updateAtomValue(ThreadCapabilities.Settings, (s) => ({ ...s, foo: true }));
|
|
286
|
+
*/
|
|
287
|
+
export const updateAtomValue = <T>(
|
|
288
|
+
atomCapability: Capability$.InterfaceDef<Atom.Writable<T>>,
|
|
289
|
+
fn: (current: T) => T,
|
|
290
|
+
): Effect.Effect<void, Error, Capability$.Service> =>
|
|
291
|
+
Effect.gen(function* () {
|
|
292
|
+
const registry = yield* Capability$.get(AtomRegistry);
|
|
293
|
+
const atom = yield* Capability$.get(atomCapability);
|
|
294
|
+
registry.set(atom, fn(registry.get(atom)));
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Subscribe to an atom capability.
|
|
299
|
+
* @example const unsubscribe = yield* Capabilities.subscribeAtom(ThreadCapabilities.Settings, (value) => ...);
|
|
300
|
+
*/
|
|
301
|
+
export const subscribeAtom = <T>(
|
|
302
|
+
atomCapability: Capability$.InterfaceDef<Atom.Atom<T>>,
|
|
303
|
+
callback: (value: T) => void,
|
|
304
|
+
): Effect.Effect<() => void, Error, Capability$.Service> =>
|
|
305
|
+
Effect.gen(function* () {
|
|
306
|
+
const registry = yield* Capability$.get(AtomRegistry);
|
|
307
|
+
const atom = yield* Capability$.get(atomCapability);
|
|
308
|
+
return registry.subscribe(atom, () => callback(registry.get(atom)));
|
|
309
|
+
});
|
package/src/common/index.ts
CHANGED
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
export * from './capabilities';
|
|
6
|
-
export * from './
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export * from './graph';
|
|
10
|
-
export * from './layout';
|
|
11
|
-
export * from './surface';
|
|
12
|
-
export * from './translations';
|
|
5
|
+
export * as Capabilities from './capabilities';
|
|
6
|
+
export * as ActivationEvents from './activation-events';
|
|
7
|
+
export { UndoOperation } from './operations';
|
|
8
|
+
export { Label } from './translations';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
|
+
|
|
7
|
+
import { Operation } from '@dxos/compute';
|
|
8
|
+
|
|
9
|
+
import { Capability } from '../core';
|
|
10
|
+
import { Label } from './translations';
|
|
11
|
+
|
|
12
|
+
const UNDO_NAMESPACE = 'org.dxos.app-framework.undo';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Operations related to undo/history functionality.
|
|
16
|
+
*/
|
|
17
|
+
export namespace UndoOperation {
|
|
18
|
+
/**
|
|
19
|
+
* Show an undo toast notification.
|
|
20
|
+
* Fired by HistoryTracker when an undoable operation is tracked.
|
|
21
|
+
*/
|
|
22
|
+
export const ShowUndo = Operation.make({
|
|
23
|
+
meta: {
|
|
24
|
+
key: `${UNDO_NAMESPACE}.operation.show-undo`,
|
|
25
|
+
name: 'Show Undo',
|
|
26
|
+
description: 'Show an undo toast notification.',
|
|
27
|
+
icon: 'ph--arrow-counter-clockwise--regular',
|
|
28
|
+
},
|
|
29
|
+
executionMode: 'sync',
|
|
30
|
+
services: [Capability.Service],
|
|
31
|
+
input: Schema.Struct({
|
|
32
|
+
message: Schema.optional(Label.annotations({ description: 'The message to display in the undo toast.' })),
|
|
33
|
+
}),
|
|
34
|
+
output: Schema.Void,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
@@ -4,14 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
import * as Schema from 'effect/Schema';
|
|
6
6
|
|
|
7
|
-
export const ResourceKey = Schema.Union(Schema.String, Schema.Record({ key: Schema.String, value: Schema.Any }));
|
|
8
|
-
export type ResourceKey = Schema.Schema.Type<typeof ResourceKey>;
|
|
9
|
-
|
|
10
|
-
export const ResourceLanguage = Schema.Record({ key: Schema.String, value: ResourceKey });
|
|
11
|
-
export type ResourceLanguage = Schema.Schema.Type<typeof ResourceLanguage>;
|
|
12
|
-
|
|
13
7
|
/**
|
|
14
|
-
* A
|
|
8
|
+
* A Label represents translatable text - either a simple string or a tuple of [key, options].
|
|
15
9
|
*/
|
|
16
|
-
export const
|
|
17
|
-
|
|
10
|
+
export const Label = Schema.Union(
|
|
11
|
+
Schema.String,
|
|
12
|
+
Schema.mutable(
|
|
13
|
+
Schema.Tuple(
|
|
14
|
+
Schema.String,
|
|
15
|
+
Schema.mutable(
|
|
16
|
+
Schema.Struct({
|
|
17
|
+
ns: Schema.String,
|
|
18
|
+
count: Schema.optional(Schema.Number),
|
|
19
|
+
defaultValue: Schema.optional(Schema.String),
|
|
20
|
+
}),
|
|
21
|
+
),
|
|
22
|
+
),
|
|
23
|
+
),
|
|
24
|
+
);
|
|
25
|
+
export type Label = Schema.Schema.Type<typeof Label>;
|
package/src/context.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { createContext } from '@dxos/web-context';
|
|
6
|
+
|
|
7
|
+
import { type PluginManager } from './core';
|
|
8
|
+
|
|
9
|
+
export const PluginManagerContext = createContext<PluginManager.PluginManager>('org.dxos.app-framework.plugin-manager');
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { compositeKey } from '@dxos/util';
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* A unique string identifier representing an event.
|
|
7
9
|
* This is expected to be a URI, where initial parts are often the id of the plugin whose package defines the event.
|
|
8
10
|
*
|
|
9
|
-
* @example dxos.
|
|
11
|
+
* @example org.dxos.plugin.example.event.ready
|
|
10
12
|
*/
|
|
11
13
|
export type ActivationEvent = {
|
|
12
14
|
id: string;
|
|
@@ -16,7 +18,7 @@ export type ActivationEvent = {
|
|
|
16
18
|
/**
|
|
17
19
|
* An activation event that can be a single event, or a combination of events.
|
|
18
20
|
*/
|
|
19
|
-
export type
|
|
21
|
+
export type Events =
|
|
20
22
|
| ActivationEvent
|
|
21
23
|
| { type: 'one-of'; events: ActivationEvent[] }
|
|
22
24
|
| { type: 'all-of'; events: ActivationEvent[] };
|
|
@@ -24,14 +26,15 @@ export type ActivationEvents =
|
|
|
24
26
|
/**
|
|
25
27
|
* Helper to define an activation event.
|
|
26
28
|
*/
|
|
27
|
-
export const
|
|
29
|
+
export const make = (id: string, specifier?: string) => {
|
|
28
30
|
return { id, specifier } as ActivationEvent;
|
|
29
31
|
};
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* Helper to create an activation event key.
|
|
33
35
|
*/
|
|
34
|
-
export const eventKey = (event: ActivationEvent) =>
|
|
36
|
+
export const eventKey = (event: ActivationEvent) =>
|
|
37
|
+
event.specifier ? compositeKey(event.id, event.specifier) : event.id;
|
|
35
38
|
|
|
36
39
|
/**
|
|
37
40
|
* Helper to create an activation event that triggers when any of the given events are activated.
|
|
@@ -46,16 +49,16 @@ export const allOf = (...events: ActivationEvent[]) => ({ type: 'all-of' as cons
|
|
|
46
49
|
/**
|
|
47
50
|
* Helper to check if an activation event is a one-of event.
|
|
48
51
|
*/
|
|
49
|
-
export const isOneOf = (events:
|
|
52
|
+
export const isOneOf = (events: Events): events is { type: 'one-of'; events: ActivationEvent[] } =>
|
|
50
53
|
'type' in events && events.type === 'one-of';
|
|
51
54
|
|
|
52
55
|
/**
|
|
53
56
|
* Helper to check if an activation event is an all-of event.
|
|
54
57
|
*/
|
|
55
|
-
export const isAllOf = (events:
|
|
58
|
+
export const isAllOf = (events: Events): events is { type: 'all-of'; events: ActivationEvent[] } =>
|
|
56
59
|
'type' in events && events.type === 'all-of';
|
|
57
60
|
|
|
58
61
|
/**
|
|
59
62
|
* Helper to get the events from an activation event.
|
|
60
63
|
*/
|
|
61
|
-
export const getEvents = (events:
|
|
64
|
+
export const getEvents = (events: Events) => ('type' in events ? events.events : [events]);
|