@dxos/app-framework 0.8.4-main.84f28bd → 0.8.4-main.9735255
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 +11 -0
- package/.storybook/preview.mts +8 -0
- package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
- package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +149 -0
- package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +7 -0
- package/dist/lib/browser/capability-7PCNSWBT.mjs +33 -0
- package/dist/lib/browser/capability-7PCNSWBT.mjs.map +7 -0
- package/dist/lib/browser/capability-KP3PFEXD.mjs +31 -0
- package/dist/lib/browser/capability-KP3PFEXD.mjs.map +7 -0
- package/dist/lib/browser/chunk-6Y7PZV72.mjs +77 -0
- package/dist/lib/browser/chunk-6Y7PZV72.mjs.map +7 -0
- package/dist/lib/browser/chunk-7IQHKD4U.mjs +170 -0
- package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +7 -0
- package/dist/lib/browser/chunk-BLQJSGL3.mjs +732 -0
- package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +7 -0
- package/dist/lib/browser/chunk-FHQTHCX7.mjs +8 -0
- package/dist/lib/browser/chunk-FHQTHCX7.mjs.map +7 -0
- package/dist/lib/browser/chunk-FMZN33N4.mjs +807 -0
- package/dist/lib/browser/chunk-FMZN33N4.mjs.map +7 -0
- package/dist/lib/browser/chunk-H4WPA7U7.mjs +77 -0
- package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-PKQT6C53.mjs +47 -0
- package/dist/lib/browser/chunk-PKQT6C53.mjs.map +7 -0
- package/dist/lib/browser/chunk-TCLLRCS3.mjs +145 -0
- package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +7 -0
- package/dist/lib/browser/chunk-XYNO72GQ.mjs +746 -0
- package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +7 -0
- package/dist/lib/browser/common/index.mjs +38 -0
- package/dist/lib/browser/core/activation-event.mjs +20 -0
- package/dist/lib/browser/core/capability.mjs +28 -0
- package/dist/lib/browser/core/plugin-manager.mjs +15 -0
- package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
- package/dist/lib/browser/core/plugin.mjs +27 -0
- package/dist/lib/browser/core/plugin.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +165 -139
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs +32 -0
- package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +64 -0
- package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +7 -0
- package/dist/lib/browser/react/index.mjs +46 -0
- package/dist/lib/browser/react/index.mjs.map +7 -0
- package/dist/lib/browser/testing/index.mjs +79 -37
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +150 -0
- package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +7 -0
- package/dist/lib/node-esm/capability-CFLQ2QQU.mjs +34 -0
- package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +7 -0
- package/dist/lib/node-esm/capability-RCUNM2M7.mjs +32 -0
- package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-663A54LQ.mjs +171 -0
- package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6WXBT3EC.mjs +747 -0
- package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-7OWSHPYK.mjs +48 -0
- package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +733 -0
- package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GT6OKM5I.mjs +146 -0
- package/dist/lib/node-esm/chunk-GT6OKM5I.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-STMXUEPO.mjs +78 -0
- package/dist/lib/node-esm/chunk-STMXUEPO.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UEWJDI2L.mjs +10 -0
- package/dist/lib/node-esm/chunk-UEWJDI2L.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +78 -0
- package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XYQTBFPA.mjs +808 -0
- package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +7 -0
- package/dist/lib/node-esm/common/index.mjs +39 -0
- package/dist/lib/node-esm/common/index.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 +29 -0
- package/dist/lib/node-esm/core/capability.mjs.map +7 -0
- package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
- package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
- package/dist/lib/node-esm/core/plugin.mjs +28 -0
- package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +165 -139
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs +33 -0
- package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +65 -0
- package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +7 -0
- package/dist/lib/node-esm/react/index.mjs +47 -0
- package/dist/lib/node-esm/react/index.mjs.map +7 -0
- package/dist/lib/node-esm/testing/index.mjs +79 -37
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/types/src/cli.d.ts +39 -0
- package/dist/types/src/cli.d.ts.map +1 -0
- package/dist/types/src/common/activation-event.d.ts +66 -0
- package/dist/types/src/common/activation-event.d.ts.map +1 -0
- package/dist/types/src/common/capability.d.ts +265 -0
- package/dist/types/src/common/capability.d.ts.map +1 -0
- package/dist/types/src/common/collaboration.d.ts +24 -17
- package/dist/types/src/common/collaboration.d.ts.map +1 -1
- package/dist/types/src/common/file.d.ts +1 -1
- package/dist/types/src/common/file.d.ts.map +1 -1
- package/dist/types/src/common/graph.d.ts +2 -2
- package/dist/types/src/common/graph.d.ts.map +1 -1
- package/dist/types/src/common/index.d.ts +4 -3
- package/dist/types/src/common/index.d.ts.map +1 -1
- package/dist/types/src/common/operations.d.ts +380 -0
- package/dist/types/src/common/operations.d.ts.map +1 -0
- package/dist/types/src/common/plugin.d.ts +201 -0
- package/dist/types/src/common/plugin.d.ts.map +1 -0
- package/dist/types/src/common/surface.d.ts +50 -21
- package/dist/types/src/common/surface.d.ts.map +1 -1
- package/dist/types/src/common/translations.d.ts +10 -1
- 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} +6 -6
- package/dist/types/src/core/activation-event.d.ts.map +1 -0
- package/dist/types/src/core/capability-manager.d.ts +43 -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 +150 -0
- package/dist/types/src/core/capability.d.ts.map +1 -0
- package/dist/types/src/core/index.d.ts +5 -4
- package/dist/types/src/core/index.d.ts.map +1 -1
- package/dist/types/src/core/plugin-manager.d.ts +66 -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.d.ts +97 -32
- package/dist/types/src/core/plugin.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +5 -4
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/playground/debug/Debug.d.ts +4 -2
- package/dist/types/src/playground/debug/Debug.d.ts.map +1 -1
- package/dist/types/src/playground/debug/plugin.d.ts +2 -1
- package/dist/types/src/playground/debug/plugin.d.ts.map +1 -1
- package/dist/types/src/playground/generator/Main.d.ts +4 -2
- package/dist/types/src/playground/generator/Main.d.ts.map +1 -1
- package/dist/types/src/playground/generator/Toolbar.d.ts +4 -2
- package/dist/types/src/playground/generator/Toolbar.d.ts.map +1 -1
- package/dist/types/src/playground/generator/generator.d.ts +17 -5
- package/dist/types/src/playground/generator/generator.d.ts.map +1 -1
- package/dist/types/src/playground/generator/plugin.d.ts +2 -1
- package/dist/types/src/playground/generator/plugin.d.ts.map +1 -1
- package/dist/types/src/playground/layout/Layout.d.ts +4 -2
- package/dist/types/src/playground/layout/Layout.d.ts.map +1 -1
- package/dist/types/src/playground/layout/plugin.d.ts +2 -1
- package/dist/types/src/playground/layout/plugin.d.ts.map +1 -1
- package/dist/types/src/playground/logger/Toolbar.d.ts +4 -2
- package/dist/types/src/playground/logger/Toolbar.d.ts.map +1 -1
- package/dist/types/src/playground/logger/plugin.d.ts +2 -1
- package/dist/types/src/playground/logger/plugin.d.ts.map +1 -1
- package/dist/types/src/playground/logger/schema.d.ts +15 -1
- package/dist/types/src/playground/logger/schema.d.ts.map +1 -1
- package/dist/types/src/playground/playground.stories.d.ts +5 -4
- package/dist/types/src/playground/playground.stories.d.ts.map +1 -1
- package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
- package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
- package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/errors.d.ts +5 -0
- package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
- package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
- package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
- package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
- package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +93 -0
- package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
- package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
- package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/index.d.ts +3 -0
- package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
- package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/meta.d.ts +3 -0
- package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
- package/dist/types/src/plugin-operation/testing.d.ts +109 -0
- package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
- package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
- package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
- package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
- package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
- package/dist/types/src/plugin-runtime/index.d.ts +2 -0
- package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
- package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
- package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
- package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +2 -1
- package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +1 -1
- package/dist/types/src/plugin-settings/actions.d.ts +41 -7
- package/dist/types/src/plugin-settings/actions.d.ts.map +1 -1
- package/dist/types/src/plugin-settings/app-graph-builder.d.ts +4 -2
- package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/plugin-settings/meta.d.ts +3 -0
- package/dist/types/src/plugin-settings/meta.d.ts.map +1 -0
- package/dist/types/src/plugin-settings/operation-resolver.d.ts +6 -0
- package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/plugin-settings/translations.d.ts +2 -1
- package/dist/types/src/plugin-settings/translations.d.ts.map +1 -1
- package/dist/types/src/react/App.d.ts +8 -0
- package/dist/types/src/react/App.d.ts.map +1 -0
- package/dist/types/src/react/App.stories.d.ts +14 -0
- package/dist/types/src/react/App.stories.d.ts.map +1 -0
- package/dist/types/src/react/DefaultFallback.d.ts +8 -0
- package/dist/types/src/react/DefaultFallback.d.ts.map +1 -0
- package/dist/types/src/react/ErrorBoundary.d.ts +13 -14
- package/dist/types/src/react/ErrorBoundary.d.ts.map +1 -1
- package/dist/types/src/react/PluginManagerContext.stories.d.ts +13 -0
- package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +1 -0
- package/dist/types/src/react/PluginManagerProvider.d.ts +2 -2
- package/dist/types/src/react/PluginManagerProvider.d.ts.map +1 -1
- package/dist/types/src/react/Surface.d.ts +9 -7
- package/dist/types/src/react/Surface.d.ts.map +1 -1
- package/dist/types/src/react/Surface.stories.d.ts +8 -10
- package/dist/types/src/react/Surface.stories.d.ts.map +1 -1
- package/dist/types/src/react/SurfaceInfo.d.ts +11 -0
- package/dist/types/src/react/SurfaceInfo.d.ts.map +1 -0
- package/dist/types/src/react/common.d.ts +13 -12
- package/dist/types/src/react/common.d.ts.map +1 -1
- package/dist/types/src/react/index.d.ts +3 -1
- package/dist/types/src/react/index.d.ts.map +1 -1
- package/dist/types/src/react/types.d.ts +12 -0
- package/dist/types/src/react/types.d.ts.map +1 -0
- package/dist/types/src/{App.d.ts → react/useApp.d.ts} +11 -9
- package/dist/types/src/react/useApp.d.ts.map +1 -0
- package/dist/types/src/react/useCapabilities.d.ts +16 -3
- package/dist/types/src/react/useCapabilities.d.ts.map +1 -1
- package/dist/types/src/react/useLoading.d.ts +18 -0
- package/dist/types/src/react/useLoading.d.ts.map +1 -0
- package/dist/types/src/react/useOperationResolver.d.ts +19 -0
- package/dist/types/src/react/useOperationResolver.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- 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 +11 -10
- package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
- package/dist/types/src/testing/withPluginManager.stories.d.ts +9 -3
- package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/moon.yml +10 -2
- package/package.json +103 -42
- package/src/cli.ts +107 -0
- package/src/common/activation-event.ts +99 -0
- package/src/common/capability.ts +343 -0
- package/src/common/collaboration.ts +24 -14
- package/src/common/file.ts +1 -1
- package/src/common/graph.ts +2 -2
- package/src/common/index.ts +4 -3
- package/src/common/operations.ts +412 -0
- package/src/common/plugin.ts +364 -0
- package/src/common/surface.ts +60 -26
- package/src/common/translations.ts +21 -1
- package/src/context.ts +9 -0
- package/src/core/{events.ts → activation-event.ts} +5 -5
- package/src/core/capability-manager.test.ts +151 -0
- package/src/core/capability-manager.ts +171 -0
- package/src/core/capability.ts +236 -0
- package/src/core/index.ts +5 -4
- package/src/core/plugin-manager.test.ts +845 -0
- package/src/core/plugin-manager.ts +696 -0
- package/src/core/plugin.ts +229 -36
- package/src/helpers.test.ts +1 -1
- package/src/index.ts +5 -4
- package/src/playground/debug/Debug.tsx +27 -17
- package/src/playground/debug/plugin.ts +10 -11
- package/src/playground/generator/Main.tsx +20 -11
- package/src/playground/generator/Toolbar.tsx +27 -16
- package/src/playground/generator/generator.ts +28 -28
- package/src/playground/generator/plugin.ts +15 -17
- package/src/playground/layout/Layout.tsx +11 -7
- package/src/playground/layout/plugin.ts +12 -11
- package/src/playground/logger/Toolbar.tsx +20 -16
- package/src/playground/logger/plugin.ts +33 -27
- package/src/playground/logger/schema.ts +11 -1
- package/src/playground/playground.stories.tsx +29 -17
- package/src/plugin-operation/OperationPlugin.ts +25 -0
- package/src/plugin-operation/history/capability.ts +37 -0
- package/src/plugin-operation/history/errors.ts +11 -0
- package/src/plugin-operation/history/history-tracker.test.ts +380 -0
- package/src/plugin-operation/history/history-tracker.ts +129 -0
- package/src/plugin-operation/history/index.ts +9 -0
- package/src/plugin-operation/history/types.ts +17 -0
- package/src/plugin-operation/history/undo-mapping.ts +132 -0
- package/src/plugin-operation/history/undo-registry.test.ts +73 -0
- package/src/plugin-operation/history/undo-registry.ts +54 -0
- package/src/plugin-operation/index.ts +6 -0
- package/src/plugin-operation/invoker-capability.ts +40 -0
- package/src/plugin-operation/meta.ts +11 -0
- package/src/plugin-operation/testing.ts +174 -0
- package/src/plugin-runtime/RuntimePlugin.ts +20 -0
- package/src/plugin-runtime/capability.ts +53 -0
- package/src/plugin-runtime/index.ts +5 -0
- package/src/plugin-runtime/meta.ts +11 -0
- package/src/plugin-settings/SettingsPlugin.ts +13 -29
- package/src/plugin-settings/actions.ts +45 -10
- package/src/plugin-settings/app-graph-builder.ts +124 -141
- package/src/plugin-settings/meta.ts +10 -0
- package/src/plugin-settings/operation-resolver.ts +55 -0
- package/src/plugin-settings/translations.ts +4 -4
- package/src/react/App.stories.tsx +63 -0
- package/src/react/App.tsx +60 -0
- package/src/react/DefaultFallback.tsx +26 -0
- package/src/react/ErrorBoundary.tsx +26 -15
- package/src/react/PluginManagerContext.stories.tsx +184 -0
- package/src/react/PluginManagerProvider.ts +2 -2
- package/src/react/Surface.stories.tsx +103 -58
- package/src/react/Surface.tsx +236 -46
- package/src/react/SurfaceInfo.tsx +107 -0
- package/src/react/common.ts +30 -5
- package/src/react/index.ts +5 -1
- package/src/react/types.ts +27 -0
- package/src/react/useApp.tsx +209 -0
- package/src/react/useCapabilities.ts +38 -5
- package/src/react/useLoading.tsx +68 -0
- package/src/react/useOperationResolver.ts +40 -0
- package/src/testing/index.ts +1 -0
- package/src/testing/service.ts +52 -0
- package/src/testing/withPluginManager.stories.tsx +14 -10
- package/src/testing/withPluginManager.tsx +43 -44
- package/tsconfig.json +30 -16
- package/vitest.config.ts +8 -6
- package/.eslintrc.cjs +0 -9
- package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
- package/.swc/plugins/v7_linux_x86_64_13.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429 +0 -0
- package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs +0 -137
- package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs.map +0 -7
- package/dist/lib/browser/chunk-2636QSIK.mjs +0 -1518
- package/dist/lib/browser/chunk-2636QSIK.mjs.map +0 -7
- package/dist/lib/browser/chunk-DHZB7HG7.mjs +0 -413
- package/dist/lib/browser/chunk-DHZB7HG7.mjs.map +0 -7
- package/dist/lib/browser/chunk-ORWHM7CO.mjs +0 -32
- package/dist/lib/browser/chunk-ORWHM7CO.mjs.map +0 -7
- package/dist/lib/browser/intent-dispatcher-TWKB22NI.mjs +0 -11
- package/dist/lib/browser/intent-resolver-O67UANYP.mjs +0 -39
- package/dist/lib/browser/intent-resolver-O67UANYP.mjs.map +0 -7
- package/dist/lib/browser/store-LFKDWHUQ.mjs +0 -30
- package/dist/lib/browser/store-LFKDWHUQ.mjs.map +0 -7
- package/dist/lib/browser/worker.mjs +0 -79
- package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs +0 -138
- package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NJAFK626.mjs +0 -414
- package/dist/lib/node-esm/chunk-NJAFK626.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UMZQERLE.mjs +0 -34
- package/dist/lib/node-esm/chunk-UMZQERLE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VSKRV3NW.mjs +0 -1520
- package/dist/lib/node-esm/chunk-VSKRV3NW.mjs.map +0 -7
- package/dist/lib/node-esm/intent-dispatcher-5PRM3KGH.mjs +0 -12
- package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs +0 -40
- package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs.map +0 -7
- package/dist/lib/node-esm/store-53XDUBMD.mjs +0 -31
- package/dist/lib/node-esm/store-53XDUBMD.mjs.map +0 -7
- package/dist/lib/node-esm/worker.mjs +0 -80
- package/dist/types/src/App.d.ts.map +0 -1
- package/dist/types/src/common/capabilities.d.ts +0 -122
- package/dist/types/src/common/capabilities.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/layout.d.ts +0 -281
- package/dist/types/src/common/layout.d.ts.map +0 -1
- package/dist/types/src/core/capabilities.d.ts +0 -114
- 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 -122
- 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/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 -38
- 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 -5
- 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-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/store.d.ts +0 -5
- package/dist/types/src/plugin-settings/store.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/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/App.tsx +0 -276
- package/src/common/capabilities.ts +0 -113
- package/src/common/events.ts +0 -77
- package/src/common/layout.ts +0 -278
- package/src/core/capabilities.test.ts +0 -136
- package/src/core/capabilities.ts +0 -254
- package/src/core/manager.test.ts +0 -515
- package/src/core/manager.ts +0 -519
- package/src/plugin-intent/IntentPlugin.ts +0 -20
- package/src/plugin-intent/actions.ts +0 -33
- package/src/plugin-intent/errors.ts +0 -39
- package/src/plugin-intent/index.ts +0 -8
- package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
- package/src/plugin-intent/intent-dispatcher.ts +0 -333
- package/src/plugin-intent/intent.ts +0 -154
- package/src/plugin-settings/intent-resolver.ts +0 -34
- package/src/plugin-settings/store.ts +0 -33
- package/src/react/IntentContext.tsx +0 -34
- package/src/react/useIntentResolver.ts +0 -22
- package/src/worker.ts +0 -11
- package/typedoc/.nojekyll +0 -1
- package/typedoc/assets/hierarchy.js +0 -1
- package/typedoc/assets/highlight.css +0 -106
- package/typedoc/assets/icons.js +0 -18
- package/typedoc/assets/icons.svg +0 -1
- package/typedoc/assets/main.js +0 -60
- package/typedoc/assets/navigation.js +0 -1
- package/typedoc/assets/search.js +0 -1
- package/typedoc/assets/style.css +0 -1640
- package/typedoc/classes/CollaborationActions.InsertContent.html +0 -421
- package/typedoc/classes/ErrorBoundary.html +0 -125
- package/typedoc/classes/IntentAction.ShowUndo.html +0 -227
- package/typedoc/classes/IntentAction.Track.html +0 -266
- package/typedoc/classes/LayoutAction.AddToast.html +0 -265
- package/typedoc/classes/LayoutAction.Close.html +0 -382
- package/typedoc/classes/LayoutAction.Expose.html +0 -265
- package/typedoc/classes/LayoutAction.Open.html +0 -1123
- package/typedoc/classes/LayoutAction.RevertWorkspace.html +0 -343
- package/typedoc/classes/LayoutAction.ScrollIntoView.html +0 -460
- package/typedoc/classes/LayoutAction.Set.html +0 -460
- package/typedoc/classes/LayoutAction.SetLayoutMode.html +0 -499
- package/typedoc/classes/LayoutAction.SwitchWorkspace.html +0 -265
- package/typedoc/classes/LayoutAction.UpdateComplementary.html +0 -616
- package/typedoc/classes/LayoutAction.UpdateDialog.html +0 -1123
- package/typedoc/classes/LayoutAction.UpdateLayout.html +0 -461
- package/typedoc/classes/LayoutAction.UpdatePopover.html +0 -1435
- package/typedoc/classes/LayoutAction.UpdateSidebar.html +0 -616
- package/typedoc/classes/Plugin.html +0 -6
- package/typedoc/classes/PluginContext.html +0 -38
- package/typedoc/classes/PluginManager.html +0 -43
- package/typedoc/classes/PluginModule.html +0 -18
- package/typedoc/classes/SettingsAction.Open.html +0 -226
- package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +0 -265
- package/typedoc/functions/Events.createStateEvent.html +0 -2
- package/typedoc/functions/IntentPlugin.html +0 -1
- package/typedoc/functions/SettingsPlugin.html +0 -1
- package/typedoc/functions/allOf.html +0 -2
- package/typedoc/functions/chain.html +0 -3
- package/typedoc/functions/contributes.html +0 -2
- package/typedoc/functions/createDispatcher.html +0 -3
- package/typedoc/functions/createIntent.html +0 -6
- package/typedoc/functions/createResolver.html +0 -2
- package/typedoc/functions/createSurface.html +0 -2
- package/typedoc/functions/defineCapability.html +0 -2
- package/typedoc/functions/defineEvent.html +0 -2
- package/typedoc/functions/defineModule.html +0 -2
- package/typedoc/functions/definePlugin.html +0 -2
- package/typedoc/functions/eventKey.html +0 -2
- package/typedoc/functions/getEvents.html +0 -2
- package/typedoc/functions/isAllOf.html +0 -2
- package/typedoc/functions/isOneOf.html +0 -2
- package/typedoc/functions/isSurfaceAvailable.html +0 -2
- package/typedoc/functions/lazy.html +0 -2
- package/typedoc/functions/oneOf.html +0 -2
- package/typedoc/functions/useApp.html +0 -6
- package/typedoc/functions/useAppGraph.html +0 -1
- package/typedoc/functions/useCapabilities.html +0 -3
- package/typedoc/functions/useCapability.html +0 -4
- package/typedoc/functions/useIntentDispatcher.html +0 -1
- package/typedoc/functions/useIntentResolver.html +0 -1
- package/typedoc/functions/useLayout.html +0 -1
- package/typedoc/functions/usePluginManager.html +0 -2
- package/typedoc/hierarchy.html +0 -1
- package/typedoc/index.html +0 -12
- package/typedoc/interfaces/LayoutAction.Toast.html +0 -10
- package/typedoc/media/LICENSE +0 -8
- package/typedoc/modules/Capabilities.html +0 -1
- package/typedoc/modules/CollaborationActions.html +0 -1
- package/typedoc/modules/Events.html +0 -1
- package/typedoc/modules/IntentAction.html +0 -1
- package/typedoc/modules/LayoutAction.html +0 -2
- package/typedoc/modules/SettingsAction.html +0 -1
- package/typedoc/modules.html +0 -1
- package/typedoc/types/ActivationEvent.html +0 -8
- package/typedoc/types/ActivationEvents.html +0 -2
- package/typedoc/types/AnyCapability.html +0 -1
- package/typedoc/types/AnyIntent.html +0 -1
- package/typedoc/types/AnyIntentChain.html +0 -1
- package/typedoc/types/AnyIntentEffectResult.html +0 -1
- package/typedoc/types/AnyIntentResolver.html +0 -1
- package/typedoc/types/AnyIntentResult.html +0 -1
- package/typedoc/types/Capabilities.FileUploader.html +0 -1
- package/typedoc/types/Capabilities.IntentResolver.html +0 -1
- package/typedoc/types/Capabilities.Layout.html +0 -1
- package/typedoc/types/Capabilities.Metadata.html +0 -1
- package/typedoc/types/Capabilities.ReactContext.html +0 -1
- package/typedoc/types/Capabilities.ReactRoot.html +0 -1
- package/typedoc/types/Capabilities.ReactSurface.html +0 -1
- package/typedoc/types/Capabilities.Settings.html +0 -4
- package/typedoc/types/Capability.html +0 -9
- package/typedoc/types/CreateAppOptions.html +0 -10
- package/typedoc/types/FileInfo.html +0 -1
- package/typedoc/types/Intent.html +0 -10
- package/typedoc/types/IntentChain.html +0 -6
- package/typedoc/types/IntentContext.html +0 -5
- package/typedoc/types/IntentData.html +0 -1
- package/typedoc/types/IntentDispatcher.html +0 -2
- package/typedoc/types/IntentDispatcherResult.html +0 -2
- package/typedoc/types/IntentEffectDefinition.html +0 -2
- package/typedoc/types/IntentEffectResult.html +0 -15
- package/typedoc/types/IntentParams.html +0 -3
- package/typedoc/types/IntentResolver.html +0 -2
- package/typedoc/types/IntentResultData.html +0 -1
- package/typedoc/types/IntentSchema.html +0 -1
- package/typedoc/types/IntentUndo.html +0 -2
- package/typedoc/types/InterfaceDef.html +0 -4
- package/typedoc/types/Label.html +0 -1
- package/typedoc/types/NodeSerializer.html +0 -8
- package/typedoc/types/PluginManagerOptions.html +0 -6
- package/typedoc/types/PluginMeta.html +0 -21
- package/typedoc/types/PromiseIntentDispatcher.html +0 -2
- package/typedoc/types/PromiseIntentUndo.html +0 -2
- package/typedoc/types/Resource.html +0 -1
- package/typedoc/types/ResourceKey.html +0 -1
- package/typedoc/types/ResourceLanguage.html +0 -1
- package/typedoc/types/SerializedNode.html +0 -4
- package/typedoc/types/SurfaceComponent.html +0 -2
- package/typedoc/types/SurfaceDefinition.html +0 -2
- package/typedoc/types/SurfaceProps.html +0 -4
- package/typedoc/variables/Capabilities.AnchorSort.html +0 -1
- package/typedoc/variables/Capabilities.AppGraph.html +0 -1
- package/typedoc/variables/Capabilities.AppGraphBuilder.html +0 -1
- package/typedoc/variables/Capabilities.AppGraphSerializer.html +0 -1
- package/typedoc/variables/Capabilities.ArtifactDefinition.html +0 -1
- package/typedoc/variables/Capabilities.FileUploader.html +0 -1
- package/typedoc/variables/Capabilities.IntentDispatcher.html +0 -1
- package/typedoc/variables/Capabilities.IntentResolver.html +0 -1
- package/typedoc/variables/Capabilities.Layout.html +0 -1
- package/typedoc/variables/Capabilities.Metadata.html +0 -1
- package/typedoc/variables/Capabilities.Null.html +0 -1
- package/typedoc/variables/Capabilities.PluginManager.html +0 -1
- package/typedoc/variables/Capabilities.ReactContext.html +0 -1
- package/typedoc/variables/Capabilities.ReactRoot.html +0 -1
- package/typedoc/variables/Capabilities.ReactSurface.html +0 -1
- package/typedoc/variables/Capabilities.RxRegistry.html +0 -1
- package/typedoc/variables/Capabilities.Settings.html +0 -1
- package/typedoc/variables/Capabilities.SettingsStore.html +0 -1
- package/typedoc/variables/Capabilities.Tools.html +0 -1
- package/typedoc/variables/Capabilities.Translations.html +0 -1
- package/typedoc/variables/Events.AppGraphReady.html +0 -2
- package/typedoc/variables/Events.DispatcherReady.html +0 -2
- package/typedoc/variables/Events.LayoutReady.html +0 -1
- package/typedoc/variables/Events.SettingsReady.html +0 -2
- package/typedoc/variables/Events.SetupAppGraph.html +0 -2
- package/typedoc/variables/Events.SetupArtifactDefinition.html +0 -2
- package/typedoc/variables/Events.SetupIntentResolver.html +0 -2
- package/typedoc/variables/Events.SetupMetadata.html +0 -2
- package/typedoc/variables/Events.SetupReactSurface.html +0 -2
- package/typedoc/variables/Events.SetupSettings.html +0 -2
- package/typedoc/variables/Events.SetupTranslations.html +0 -2
- package/typedoc/variables/Events.Startup.html +0 -2
- package/typedoc/variables/FileInfoSchema.html +0 -1
- package/typedoc/variables/INTENT_ACTION.html +0 -1
- package/typedoc/variables/INTENT_PLUGIN.html +0 -1
- package/typedoc/variables/LAYOUT_ACTION.html +0 -1
- package/typedoc/variables/LAYOUT_PLUGIN.html +0 -1
- package/typedoc/variables/Label.html +0 -1
- package/typedoc/variables/LayoutAction.Toast.html +0 -1
- package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +0 -1
- package/typedoc/variables/PluginManagerProvider.html +0 -2
- package/typedoc/variables/Resource.html +0 -2
- package/typedoc/variables/ResourceKey.html +0 -1
- package/typedoc/variables/ResourceLanguage.html +0 -1
- package/typedoc/variables/SETTINGS_ACTION.html +0 -1
- package/typedoc/variables/SETTINGS_ID.html +0 -1
- package/typedoc/variables/SETTINGS_KEY.html +0 -1
- package/typedoc/variables/SETTINGS_PLUGIN.html +0 -1
- package/typedoc/variables/Surface.html +0 -2
- package/typedoc/variables/defaultFileTypes.html +0 -1
- /package/dist/lib/browser/{intent-dispatcher-TWKB22NI.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/browser/{worker.mjs.map → common/index.mjs.map} +0 -0
- /package/dist/lib/{node-esm/intent-dispatcher-5PRM3KGH.mjs.map → browser/core/activation-event.mjs.map} +0 -0
- /package/dist/lib/{node-esm/worker.mjs.map → browser/core/capability.mjs.map} +0 -0
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { type Registry } from '@effect-rx/rx-react';
|
|
6
|
-
import { type Schema } from 'effect';
|
|
7
|
-
import { type FC, type PropsWithChildren } from 'react';
|
|
8
|
-
|
|
9
|
-
import { type ExecutableTool } from '@dxos/ai';
|
|
10
|
-
import { type GraphBuilder, type BuilderExtensions } from '@dxos/app-graph';
|
|
11
|
-
import { type ArtifactDefinition } from '@dxos/artifact';
|
|
12
|
-
import { type Space } from '@dxos/client-protocol';
|
|
13
|
-
import { type RootSettingsStore } from '@dxos/local-storage';
|
|
14
|
-
import { type AnchoredTo } from '@dxos/schema';
|
|
15
|
-
|
|
16
|
-
import { type FileInfo } from './file';
|
|
17
|
-
import { type NodeSerializer } from './graph';
|
|
18
|
-
import { type SurfaceDefinition } from './surface';
|
|
19
|
-
import { type Resource } from './translations';
|
|
20
|
-
import { type PluginManager, defineCapability } from '../core';
|
|
21
|
-
import { type AnyIntentResolver, type IntentContext } from '../plugin-intent';
|
|
22
|
-
|
|
23
|
-
export namespace Capabilities {
|
|
24
|
-
export const PluginManager = defineCapability<PluginManager>('dxos.org/app-framework/capability/plugin-manager');
|
|
25
|
-
|
|
26
|
-
export const Null = defineCapability<null>('dxos.org/app-framework/capability/null');
|
|
27
|
-
|
|
28
|
-
export const RxRegistry = defineCapability<Registry.Registry>('dxos.org/app-framework/capability/rx-registry');
|
|
29
|
-
|
|
30
|
-
export type ReactContext = Readonly<{ id: string; dependsOn?: string[]; context: FC<PropsWithChildren> }>;
|
|
31
|
-
export const ReactContext = defineCapability<ReactContext>('dxos.org/app-framework/capability/react-context');
|
|
32
|
-
|
|
33
|
-
export type ReactRoot = Readonly<{ id: string; root: FC<PropsWithChildren> }>;
|
|
34
|
-
export const ReactRoot = defineCapability<ReactRoot>('dxos.org/app-framework/capability/react-root');
|
|
35
|
-
|
|
36
|
-
export type ReactSurface = SurfaceDefinition | readonly SurfaceDefinition[];
|
|
37
|
-
export const ReactSurface = defineCapability<ReactSurface>('dxos.org/app-framework/common/react-surface');
|
|
38
|
-
|
|
39
|
-
export type IntentResolver = AnyIntentResolver | readonly AnyIntentResolver[];
|
|
40
|
-
export const IntentResolver = defineCapability<IntentResolver>('dxos.org/app-framework/capability/intent-resolver');
|
|
41
|
-
|
|
42
|
-
export const IntentDispatcher = defineCapability<IntentContext>(
|
|
43
|
-
'dxos.org/app-framework/capability/intent-dispatcher',
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
export type Layout = Readonly<{
|
|
47
|
-
mode: string;
|
|
48
|
-
dialogOpen: boolean;
|
|
49
|
-
sidebarOpen: boolean;
|
|
50
|
-
complementarySidebarOpen: boolean;
|
|
51
|
-
/**
|
|
52
|
-
* The id of the active workspace, where a workspace is a set of active items.
|
|
53
|
-
*/
|
|
54
|
-
workspace: string;
|
|
55
|
-
/**
|
|
56
|
-
* Identifiers of items which are currently active in the application.
|
|
57
|
-
*/
|
|
58
|
-
active: string[];
|
|
59
|
-
/**
|
|
60
|
-
* Identifiers of items which were previously active in the application.
|
|
61
|
-
*/
|
|
62
|
-
inactive: string[];
|
|
63
|
-
/**
|
|
64
|
-
* Identifier of the item which should be scrolled into view.
|
|
65
|
-
*/
|
|
66
|
-
scrollIntoView: string | undefined;
|
|
67
|
-
}>;
|
|
68
|
-
export const Layout = defineCapability<Layout>('dxos.org/app-framework/capability/layout');
|
|
69
|
-
|
|
70
|
-
// TODO(burdon): Why array?
|
|
71
|
-
export const Translations = defineCapability<Readonly<Resource[]>>('dxos.org/app-framework/capability/translations');
|
|
72
|
-
|
|
73
|
-
export const AppGraph = defineCapability<Readonly<Pick<GraphBuilder, 'graph' | 'explore'>>>(
|
|
74
|
-
'dxos.org/app-framework/capability/app-graph',
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
export const AppGraphBuilder = defineCapability<BuilderExtensions>(
|
|
78
|
-
'dxos.org/app-framework/capability/app-graph-builder',
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
export const AppGraphSerializer = defineCapability<NodeSerializer[]>(
|
|
82
|
-
'dxos.org/app-framework/capability/app-graph-serializer',
|
|
83
|
-
);
|
|
84
|
-
|
|
85
|
-
export const SettingsStore = defineCapability<RootSettingsStore>('dxos.org/app-framework/capability/settings-store');
|
|
86
|
-
|
|
87
|
-
// TODO(wittjosiah): The generics caused type inference issues for schemas when contributing settings.
|
|
88
|
-
// export type Settings = Parameters<RootSettingsStore['createStore']>[0];
|
|
89
|
-
// export type Settings<T extends SettingsValue = SettingsValue> = SettingsProps<T>;
|
|
90
|
-
export type Settings = {
|
|
91
|
-
prefix: string;
|
|
92
|
-
schema: Schema.Schema.All;
|
|
93
|
-
value?: Record<string, any>;
|
|
94
|
-
};
|
|
95
|
-
export const Settings = defineCapability<Settings>('dxos.org/app-framework/capability/settings');
|
|
96
|
-
|
|
97
|
-
export type Metadata = Readonly<{ id: string; metadata: Record<string, any> }>;
|
|
98
|
-
export const Metadata = defineCapability<Metadata>('dxos.org/app-framework/capability/metadata');
|
|
99
|
-
|
|
100
|
-
export const Tools = defineCapability<ExecutableTool[]>('dxos.org/app-framework/capability/tools');
|
|
101
|
-
export const ArtifactDefinition = defineCapability<ArtifactDefinition>(
|
|
102
|
-
'dxos.org/app-framework/capability/artifact-definition',
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
export type FileUploader = (file: File, space: Space) => Promise<FileInfo | undefined>;
|
|
106
|
-
export const FileUploader = defineCapability<FileUploader>('dxos.org/app-framework/capability/file-uploader');
|
|
107
|
-
|
|
108
|
-
type AnchorSort = {
|
|
109
|
-
key: string;
|
|
110
|
-
sort: (anchorA: AnchoredTo, anchorB: AnchoredTo) => number;
|
|
111
|
-
};
|
|
112
|
-
export const AnchorSort = defineCapability<AnchorSort>('dxos.org/app-framework/capability/anchor-sort');
|
|
113
|
-
}
|
package/src/common/events.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Capabilities } from './capabilities';
|
|
6
|
-
import { defineEvent } from '../core';
|
|
7
|
-
|
|
8
|
-
export namespace Events {
|
|
9
|
-
/**
|
|
10
|
-
* Fired when the app is started.
|
|
11
|
-
*/
|
|
12
|
-
export const Startup = defineEvent('dxos.org/app-framework/event/startup');
|
|
13
|
-
|
|
14
|
-
//
|
|
15
|
-
// Dependent Events
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Fired to load any newly available surfaces.
|
|
20
|
-
*/
|
|
21
|
-
export const SetupReactSurface = defineEvent('dxos.org/app-framework/event/setup-react-surface');
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Fired to load any newly available metadata.
|
|
25
|
-
*/
|
|
26
|
-
export const SetupMetadata = defineEvent('dxos.org/app-framework/event/setup-metadata');
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Fired before the intent dispatcher is activated.
|
|
30
|
-
*/
|
|
31
|
-
export const SetupIntentResolver = defineEvent('dxos.org/app-framework/event/setup-intent-resolver');
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Fired before the settings store is activated.
|
|
35
|
-
*/
|
|
36
|
-
export const SetupSettings = defineEvent('dxos.org/app-framework/event/setup-settings');
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Fired before the graph is created.
|
|
40
|
-
*/
|
|
41
|
-
export const SetupAppGraph = defineEvent('dxos.org/app-framework/event/setup-graph');
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Fired before the translations provider is created.
|
|
45
|
-
*/
|
|
46
|
-
export const SetupTranslations = defineEvent('dxos.org/app-framework/event/setup-translations');
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Fired to load any newly available artifacts definitions.
|
|
50
|
-
*/
|
|
51
|
-
export const SetupArtifactDefinition = defineEvent('dxos.org/app-framework/event/setup-artifact-definition');
|
|
52
|
-
|
|
53
|
-
//
|
|
54
|
-
// Triggered Events
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Fired after the intent dispatcher is ready.
|
|
59
|
-
*/
|
|
60
|
-
export const DispatcherReady = defineEvent('dxos.org/app-framework/event/dispatcher-ready');
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Fired after the settings store is ready.
|
|
64
|
-
*/
|
|
65
|
-
export const SettingsReady = defineEvent('dxos.org/app-framework/event/settings-ready');
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Fired when the graph is ready.
|
|
69
|
-
*/
|
|
70
|
-
export const AppGraphReady = defineEvent('dxos.org/app-framework/event/graph-ready');
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Fired when plugin state is ready.
|
|
74
|
-
*/
|
|
75
|
-
export const createStateEvent = (specifier: string) => defineEvent('dxos.org/app-framework/event/state', specifier);
|
|
76
|
-
export const LayoutReady = createStateEvent(Capabilities.Layout.identifier);
|
|
77
|
-
}
|
package/src/common/layout.ts
DELETED
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Schema } from 'effect';
|
|
6
|
-
|
|
7
|
-
import { Label } from '../plugin-intent';
|
|
8
|
-
|
|
9
|
-
export const LAYOUT_PLUGIN = 'dxos.org/plugin/layout';
|
|
10
|
-
export const LAYOUT_ACTION = `${LAYOUT_PLUGIN}/action`;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Expected payload for layout actions.
|
|
14
|
-
*/
|
|
15
|
-
export namespace LayoutAction {
|
|
16
|
-
export const UPDATE_LAYOUT = `${LAYOUT_ACTION}/update-layout`;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Generic layout action.
|
|
20
|
-
*/
|
|
21
|
-
export class UpdateLayout extends Schema.TaggedClass<UpdateLayout>()(UPDATE_LAYOUT, {
|
|
22
|
-
input: Schema.Struct({
|
|
23
|
-
part: Schema.String.annotations({ description: 'The part of the layout to mutate.' }),
|
|
24
|
-
subject: Schema.optional(Schema.Any.annotations({ description: 'The subject of the layout update.' })),
|
|
25
|
-
options: Schema.optional(
|
|
26
|
-
Schema.Record({ key: Schema.String, value: Schema.Any }).annotations({
|
|
27
|
-
description: 'Additional options for the layout action.',
|
|
28
|
-
}),
|
|
29
|
-
),
|
|
30
|
-
}),
|
|
31
|
-
output: Schema.Void,
|
|
32
|
-
}) {}
|
|
33
|
-
|
|
34
|
-
//
|
|
35
|
-
// Common layout actions.
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
// NOTE: These are layout actions which are currently in common use.
|
|
39
|
-
// They constrain the generic layout action types to provide additional type safety.
|
|
40
|
-
// However, they all follow the same generic structure and intent id.
|
|
41
|
-
// This allows for plugins to update the layout without depending on a specific layout plugin.
|
|
42
|
-
// The expectation is that other norms other than these will emerge over time.
|
|
43
|
-
|
|
44
|
-
export class SetLayoutMode extends Schema.TaggedClass<SetLayoutMode>()(UPDATE_LAYOUT, {
|
|
45
|
-
input: Schema.Struct({
|
|
46
|
-
part: Schema.Literal('mode').annotations({ description: 'Setting the layout mode.' }),
|
|
47
|
-
subject: Schema.optional(
|
|
48
|
-
Schema.String.annotations({ description: 'Item which is the subject of the new layout mode.' }),
|
|
49
|
-
),
|
|
50
|
-
options: Schema.Union(
|
|
51
|
-
Schema.Struct({ mode: Schema.String.annotations({ description: 'The new layout mode.' }) }),
|
|
52
|
-
Schema.Struct({ revert: Schema.Boolean.annotations({ description: 'Revert to the previous layout mode.' }) }),
|
|
53
|
-
),
|
|
54
|
-
}),
|
|
55
|
-
output: Schema.Void,
|
|
56
|
-
}) {}
|
|
57
|
-
|
|
58
|
-
export class UpdateSidebar extends Schema.TaggedClass<UpdateSidebar>()(UPDATE_LAYOUT, {
|
|
59
|
-
input: Schema.Struct({
|
|
60
|
-
part: Schema.Literal('sidebar').annotations({ description: 'Updating the sidebar.' }),
|
|
61
|
-
subject: Schema.optional(
|
|
62
|
-
Schema.String.annotations({ description: 'URI of the component to display in the sidebar.' }),
|
|
63
|
-
),
|
|
64
|
-
options: Schema.optional(
|
|
65
|
-
Schema.Struct({
|
|
66
|
-
state: Schema.Literal('closed', 'collapsed', 'expanded').annotations({
|
|
67
|
-
description: 'Whether the sidebar is closed, collapsed, or expanded.',
|
|
68
|
-
}),
|
|
69
|
-
}),
|
|
70
|
-
),
|
|
71
|
-
}),
|
|
72
|
-
output: Schema.Void,
|
|
73
|
-
}) {}
|
|
74
|
-
|
|
75
|
-
export class UpdateComplementary extends Schema.TaggedClass<UpdateComplementary>()(UPDATE_LAYOUT, {
|
|
76
|
-
input: Schema.Struct({
|
|
77
|
-
part: Schema.Literal('complementary').annotations({ description: 'Updating the complementary sidebar.' }),
|
|
78
|
-
subject: Schema.optional(
|
|
79
|
-
Schema.String.annotations({ description: 'URI of the component to display in the complementary area.' }),
|
|
80
|
-
),
|
|
81
|
-
options: Schema.optional(
|
|
82
|
-
Schema.Struct({
|
|
83
|
-
state: Schema.Literal('closed', 'collapsed', 'expanded').annotations({
|
|
84
|
-
description: 'Whether the complementary sidebar is closed, collapsed, or expanded.',
|
|
85
|
-
}),
|
|
86
|
-
}),
|
|
87
|
-
),
|
|
88
|
-
}),
|
|
89
|
-
output: Schema.Void,
|
|
90
|
-
}) {}
|
|
91
|
-
|
|
92
|
-
export class UpdateDialog extends Schema.TaggedClass<UpdateDialog>()(UPDATE_LAYOUT, {
|
|
93
|
-
input: Schema.Struct({
|
|
94
|
-
part: Schema.Literal('dialog').annotations({ description: 'Updating the dialog.' }),
|
|
95
|
-
subject: Schema.optional(
|
|
96
|
-
Schema.String.annotations({ description: 'URI of the component to display in the dialog.' }),
|
|
97
|
-
),
|
|
98
|
-
options: Schema.Struct({
|
|
99
|
-
state: Schema.optional(Schema.Boolean.annotations({ description: 'Whether the dialog is open or closed.' })),
|
|
100
|
-
type: Schema.optional(Schema.Literal('default', 'alert').annotations({ description: 'The type of dialog.' })),
|
|
101
|
-
blockAlign: Schema.optional(
|
|
102
|
-
Schema.Literal('start', 'center', 'end').annotations({ description: 'The alignment of the dialog.' }),
|
|
103
|
-
),
|
|
104
|
-
overlayClasses: Schema.optional(
|
|
105
|
-
Schema.String.annotations({ description: 'Additional classes for the dialog overlay.' }),
|
|
106
|
-
),
|
|
107
|
-
overlayStyle: Schema.optional(
|
|
108
|
-
Schema.Record({ key: Schema.String, value: Schema.Any }).annotations({
|
|
109
|
-
description: 'Additional styles for the dialog overlay.',
|
|
110
|
-
}),
|
|
111
|
-
),
|
|
112
|
-
props: Schema.optional(
|
|
113
|
-
Schema.Record({ key: Schema.String, value: Schema.Any }).annotations({
|
|
114
|
-
description: 'Additional props for the dialog.',
|
|
115
|
-
}),
|
|
116
|
-
),
|
|
117
|
-
}),
|
|
118
|
-
}),
|
|
119
|
-
output: Schema.Void,
|
|
120
|
-
}) {}
|
|
121
|
-
|
|
122
|
-
export class UpdatePopover extends Schema.TaggedClass<UpdatePopover>()(UPDATE_LAYOUT, {
|
|
123
|
-
input: Schema.Struct({
|
|
124
|
-
part: Schema.Literal('popover').annotations({ description: 'Updating the popover.' }),
|
|
125
|
-
subject: Schema.optional(
|
|
126
|
-
Schema.Any.annotations({
|
|
127
|
-
description: 'URI of the component to display in the popover or data to pass to the popover.',
|
|
128
|
-
}),
|
|
129
|
-
),
|
|
130
|
-
options: Schema.Struct({
|
|
131
|
-
side: Schema.optional(
|
|
132
|
-
Schema.Literal('top', 'right', 'bottom', 'left').annotations({ description: 'The side of the anchor.' }),
|
|
133
|
-
),
|
|
134
|
-
state: Schema.optional(Schema.Boolean.annotations({ description: 'Whether the popover is open or closed.' })),
|
|
135
|
-
props: Schema.optional(
|
|
136
|
-
Schema.Record({ key: Schema.String, value: Schema.Any }).annotations({
|
|
137
|
-
description: 'Additional props for the popover.',
|
|
138
|
-
}),
|
|
139
|
-
),
|
|
140
|
-
}).pipe(
|
|
141
|
-
Schema.extend(
|
|
142
|
-
Schema.Union(
|
|
143
|
-
Schema.Struct({
|
|
144
|
-
variant: Schema.Literal('virtual'),
|
|
145
|
-
anchor: Schema.Any.annotations({ description: 'The DOM element to anchor the popover to.' }),
|
|
146
|
-
}),
|
|
147
|
-
Schema.Struct({
|
|
148
|
-
variant: Schema.optional(Schema.Literal('react')),
|
|
149
|
-
anchorId: Schema.String.annotations({
|
|
150
|
-
description: 'An id that can be used to determine whether to render the anchor subcomponent.',
|
|
151
|
-
}),
|
|
152
|
-
}),
|
|
153
|
-
),
|
|
154
|
-
),
|
|
155
|
-
),
|
|
156
|
-
}),
|
|
157
|
-
output: Schema.Void,
|
|
158
|
-
}) {}
|
|
159
|
-
|
|
160
|
-
export const Toast = Schema.Struct({
|
|
161
|
-
id: Schema.String.annotations({ description: 'The id of the toast.' }),
|
|
162
|
-
title: Schema.optional(Label.annotations({ description: 'The title of the toast.' })),
|
|
163
|
-
description: Schema.optional(Label.annotations({ description: 'The description of the toast.' })),
|
|
164
|
-
icon: Schema.optional(Schema.String.annotations({ description: 'The icon of the toast.' })),
|
|
165
|
-
duration: Schema.optional(Schema.Number.annotations({ description: 'The duration of the toast.' })),
|
|
166
|
-
closeLabel: Schema.optional(Label.annotations({ description: 'The label of the close button.' })),
|
|
167
|
-
actionLabel: Schema.optional(Label.annotations({ description: 'The label of the action button.' })),
|
|
168
|
-
actionAlt: Schema.optional(Label.annotations({ description: 'The alt text of the action button.' })),
|
|
169
|
-
onAction: Schema.optional(
|
|
170
|
-
Schema.Any.annotations({ description: 'The action to perform when the action button is clicked.' }),
|
|
171
|
-
),
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
export interface Toast extends Omit<Schema.Schema.Type<typeof Toast>, 'onAction'> {
|
|
175
|
-
onAction?: () => void;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
export class AddToast extends Schema.TaggedClass<AddToast>()(UPDATE_LAYOUT, {
|
|
179
|
-
input: Schema.Struct({
|
|
180
|
-
part: Schema.Literal('toast').annotations({ description: 'Adding a toast.' }),
|
|
181
|
-
subject: Toast.annotations({ description: 'The toast to add.' }),
|
|
182
|
-
}),
|
|
183
|
-
output: Schema.Void,
|
|
184
|
-
}) {}
|
|
185
|
-
|
|
186
|
-
export class SwitchWorkspace extends Schema.TaggedClass<SwitchWorkspace>()(UPDATE_LAYOUT, {
|
|
187
|
-
input: Schema.Struct({
|
|
188
|
-
part: Schema.Literal('workspace').annotations({ description: 'Switching the workspace.' }),
|
|
189
|
-
subject: Schema.String.annotations({ description: 'The id of the workspace to switch to.' }),
|
|
190
|
-
}),
|
|
191
|
-
output: Schema.Void,
|
|
192
|
-
}) {}
|
|
193
|
-
|
|
194
|
-
export class RevertWorkspace extends Schema.TaggedClass<RevertWorkspace>()(UPDATE_LAYOUT, {
|
|
195
|
-
input: Schema.Struct({
|
|
196
|
-
part: Schema.Literal('workspace').annotations({ description: 'Switching the workspace.' }),
|
|
197
|
-
options: Schema.Struct({
|
|
198
|
-
revert: Schema.Literal(true).annotations({ description: 'Revert to the previous workspace.' }),
|
|
199
|
-
}),
|
|
200
|
-
}),
|
|
201
|
-
output: Schema.Void,
|
|
202
|
-
}) {}
|
|
203
|
-
|
|
204
|
-
export class Open extends Schema.TaggedClass<Open>()(UPDATE_LAYOUT, {
|
|
205
|
-
input: Schema.Struct({
|
|
206
|
-
part: Schema.Literal('main').annotations({ description: 'Opening an item in the main content area.' }),
|
|
207
|
-
subject: Schema.Array(Schema.String.annotations({ description: 'Ids of the items to open.' })),
|
|
208
|
-
options: Schema.optional(
|
|
209
|
-
Schema.Struct({
|
|
210
|
-
state: Schema.optional(Schema.Literal(true).annotations({ description: 'The items are being added.' })),
|
|
211
|
-
variant: Schema.optional(Schema.String.annotations({ description: 'The variant of the item to open.' })),
|
|
212
|
-
key: Schema.optional(
|
|
213
|
-
Schema.String.annotations({
|
|
214
|
-
description: 'If provided, will replace item with a matching key (id prefix).',
|
|
215
|
-
}),
|
|
216
|
-
),
|
|
217
|
-
workspace: Schema.optional(Schema.String.annotations({ description: 'The workspace to open the items in.' })),
|
|
218
|
-
scrollIntoView: Schema.optional(Schema.Boolean.annotations({ description: 'Scroll the items into view.' })),
|
|
219
|
-
pivotId: Schema.optional(
|
|
220
|
-
Schema.String.annotations({ description: 'The id of the item to place new items next to.' }),
|
|
221
|
-
),
|
|
222
|
-
positioning: Schema.optional(
|
|
223
|
-
Schema.Union(
|
|
224
|
-
Schema.Literal('start').annotations({ description: 'The items are being added before the pivot item.' }),
|
|
225
|
-
Schema.Literal('end').annotations({ description: 'The items are being added after the pivot item.' }),
|
|
226
|
-
),
|
|
227
|
-
),
|
|
228
|
-
}),
|
|
229
|
-
),
|
|
230
|
-
}),
|
|
231
|
-
output: Schema.Void,
|
|
232
|
-
}) {}
|
|
233
|
-
|
|
234
|
-
export class Set extends Schema.TaggedClass<Set>()(UPDATE_LAYOUT, {
|
|
235
|
-
input: Schema.Struct({
|
|
236
|
-
part: Schema.Literal('main').annotations({ description: 'Setting items in the main content area.' }),
|
|
237
|
-
subject: Schema.Array(Schema.String.annotations({ description: 'Ids of the items to set.' })),
|
|
238
|
-
options: Schema.Struct({
|
|
239
|
-
override: Schema.Literal(true).annotations({
|
|
240
|
-
description: 'Override the current items in the main content area.',
|
|
241
|
-
}),
|
|
242
|
-
}),
|
|
243
|
-
}),
|
|
244
|
-
output: Schema.Void,
|
|
245
|
-
}) {}
|
|
246
|
-
|
|
247
|
-
export class Close extends Schema.TaggedClass<Close>()(UPDATE_LAYOUT, {
|
|
248
|
-
input: Schema.Struct({
|
|
249
|
-
part: Schema.Literal('main').annotations({ description: 'Closing items in the main content area.' }),
|
|
250
|
-
subject: Schema.Array(Schema.String.annotations({ description: 'Ids of the items to close.' })),
|
|
251
|
-
options: Schema.Struct({
|
|
252
|
-
state: Schema.Literal(false).annotations({ description: 'The items are being removed.' }),
|
|
253
|
-
}),
|
|
254
|
-
}),
|
|
255
|
-
output: Schema.Void,
|
|
256
|
-
}) {}
|
|
257
|
-
|
|
258
|
-
export class ScrollIntoView extends Schema.TaggedClass<ScrollIntoView>()(UPDATE_LAYOUT, {
|
|
259
|
-
input: Schema.Struct({
|
|
260
|
-
part: Schema.Literal('current').annotations({ description: 'Setting the current item' }),
|
|
261
|
-
subject: Schema.optional(Schema.String.annotations({ description: 'The id of the item to set as current.' })),
|
|
262
|
-
options: Schema.optional(
|
|
263
|
-
Schema.Record({ key: Schema.String, value: Schema.Any }).annotations({
|
|
264
|
-
description: 'Additional options for the scroll into view.',
|
|
265
|
-
}),
|
|
266
|
-
),
|
|
267
|
-
}),
|
|
268
|
-
output: Schema.Void,
|
|
269
|
-
}) {}
|
|
270
|
-
|
|
271
|
-
export class Expose extends Schema.TaggedClass<Expose>()(UPDATE_LAYOUT, {
|
|
272
|
-
input: Schema.Struct({
|
|
273
|
-
part: Schema.Literal('navigation').annotations({ description: 'Exposing an item in the navigation area.' }),
|
|
274
|
-
subject: Schema.String.annotations({ description: 'The id of the item to expose.' }),
|
|
275
|
-
}),
|
|
276
|
-
output: Schema.Void,
|
|
277
|
-
}) {}
|
|
278
|
-
}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { Registry } from '@effect-rx/rx-react';
|
|
6
|
-
import { Effect } from 'effect';
|
|
7
|
-
import { describe, expect, it, onTestFinished } from 'vitest';
|
|
8
|
-
|
|
9
|
-
import { defineCapability, PluginContext } from './capabilities';
|
|
10
|
-
|
|
11
|
-
const defaultOptions = {
|
|
12
|
-
activate: () => Effect.succeed(false),
|
|
13
|
-
reset: () => Effect.succeed(false),
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
describe('PluginsContext', () => {
|
|
17
|
-
it('should return empty array if no capabilities are contributed', () => {
|
|
18
|
-
const registry = Registry.make();
|
|
19
|
-
const context = new PluginContext({ registry, ...defaultOptions });
|
|
20
|
-
const interfaceDef = defineCapability<{ example: string }>('@dxos/app-framework/test/example');
|
|
21
|
-
expect(context.getCapabilities(interfaceDef)).toEqual([]);
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
it('should be able to contribute and request capabilities', () => {
|
|
25
|
-
const registry = Registry.make();
|
|
26
|
-
const context = new PluginContext({ registry, ...defaultOptions });
|
|
27
|
-
const interfaceDef = defineCapability<{ example: string }>('@dxos/app-framework/test/example');
|
|
28
|
-
const implementation = { example: 'identifier' };
|
|
29
|
-
context.contributeCapability({ interface: interfaceDef, implementation, module: 'test' });
|
|
30
|
-
expect(context.getCapabilities(interfaceDef)).toEqual([implementation]);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('should be able to remove capabilities', () => {
|
|
34
|
-
const registry = Registry.make();
|
|
35
|
-
const context = new PluginContext({ registry, ...defaultOptions });
|
|
36
|
-
const interfaceDef = defineCapability<{ example: string }>('@dxos/app-framework/test/example');
|
|
37
|
-
const implementation = { example: 'identifier' };
|
|
38
|
-
context.contributeCapability({ interface: interfaceDef, implementation, module: 'test' });
|
|
39
|
-
expect(context.getCapabilities(interfaceDef)).toEqual([implementation]);
|
|
40
|
-
context.removeCapability(interfaceDef, implementation);
|
|
41
|
-
expect(context.getCapabilities(interfaceDef)).toEqual([]);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
it('should be able to contribute and request multiple implementations', () => {
|
|
45
|
-
const registry = Registry.make();
|
|
46
|
-
const context = new PluginContext({ registry, ...defaultOptions });
|
|
47
|
-
const interfaceDef = defineCapability<{ example: string }>('@dxos/app-framework/test/example');
|
|
48
|
-
const implementation1 = { example: 'first' };
|
|
49
|
-
const implementation2 = { example: 'second' };
|
|
50
|
-
context.contributeCapability({ interface: interfaceDef, implementation: implementation1, module: 'test' });
|
|
51
|
-
context.contributeCapability({ interface: interfaceDef, implementation: implementation2, module: 'test' });
|
|
52
|
-
expect(context.getCapabilities(interfaceDef)).toEqual([implementation1, implementation2]);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it('should be able to request multiple capabilities', () => {
|
|
56
|
-
const registry = Registry.make();
|
|
57
|
-
const context = new PluginContext({ registry, ...defaultOptions });
|
|
58
|
-
const interfaceDef1 = defineCapability<{ one: number }>('@dxos/app-framework/test/one');
|
|
59
|
-
const interfaceDef2 = defineCapability<{ two: number }>('@dxos/app-framework/test/two');
|
|
60
|
-
const implementation1 = { one: 1 };
|
|
61
|
-
const implementation2 = { two: 2 };
|
|
62
|
-
context.contributeCapability({ interface: interfaceDef1, implementation: implementation1, module: 'test' });
|
|
63
|
-
context.contributeCapability({ interface: interfaceDef2, implementation: implementation2, module: 'test' });
|
|
64
|
-
expect(context.getCapabilities(interfaceDef1)).toEqual([implementation1]);
|
|
65
|
-
expect(context.getCapabilities(interfaceDef2)).toEqual([implementation2]);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it('should be reactive', () => {
|
|
69
|
-
const registry = Registry.make();
|
|
70
|
-
const context = new PluginContext({ registry, ...defaultOptions });
|
|
71
|
-
const interfaceDef = defineCapability<{ example: string }>('@dxos/app-framework/test/example');
|
|
72
|
-
|
|
73
|
-
let count = 0;
|
|
74
|
-
const cancel = registry.subscribe(context.capabilities(interfaceDef), () => {
|
|
75
|
-
count++;
|
|
76
|
-
});
|
|
77
|
-
onTestFinished(() => cancel());
|
|
78
|
-
expect(count).toEqual(0);
|
|
79
|
-
|
|
80
|
-
registry.get(context.capabilities(interfaceDef));
|
|
81
|
-
expect(count).toEqual(1);
|
|
82
|
-
|
|
83
|
-
const implementation = { example: 'identifier' };
|
|
84
|
-
context.contributeCapability({ interface: interfaceDef, implementation, module: 'test' });
|
|
85
|
-
expect(count).toEqual(2);
|
|
86
|
-
|
|
87
|
-
context.removeCapability(interfaceDef, implementation);
|
|
88
|
-
expect(count).toEqual(3);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('should not be reactive to changes within the implementation', () => {
|
|
92
|
-
const registry = Registry.make();
|
|
93
|
-
const context = new PluginContext({ registry, ...defaultOptions });
|
|
94
|
-
const interfaceDef = defineCapability<{ example: string }>('@dxos/app-framework/test/example');
|
|
95
|
-
|
|
96
|
-
let count = 0;
|
|
97
|
-
const cancel = registry.subscribe(context.capabilities(interfaceDef), () => {
|
|
98
|
-
count++;
|
|
99
|
-
});
|
|
100
|
-
onTestFinished(() => cancel());
|
|
101
|
-
expect(count).toEqual(0);
|
|
102
|
-
|
|
103
|
-
registry.get(context.capabilities(interfaceDef));
|
|
104
|
-
expect(count).toEqual(1);
|
|
105
|
-
|
|
106
|
-
const implementation = { example: 'identifier' };
|
|
107
|
-
context.contributeCapability({ interface: interfaceDef, implementation, module: 'test' });
|
|
108
|
-
expect(count).toEqual(2);
|
|
109
|
-
|
|
110
|
-
implementation.example = 'updated';
|
|
111
|
-
expect(count).toEqual(2);
|
|
112
|
-
|
|
113
|
-
const capabilities = context.getCapabilities(interfaceDef);
|
|
114
|
-
expect(capabilities).toEqual([implementation]);
|
|
115
|
-
expect(capabilities[0].example).toEqual('updated');
|
|
116
|
-
expect(count).toEqual(2);
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
it('should be able to wait for a capability', async () => {
|
|
120
|
-
const registry = Registry.make();
|
|
121
|
-
const context = new PluginContext({ registry, ...defaultOptions });
|
|
122
|
-
const interfaceDef = defineCapability<{ example: string }>('@dxos/app-framework/test/example');
|
|
123
|
-
|
|
124
|
-
let capability: { example: string } | undefined;
|
|
125
|
-
const cancel = registry.subscribe(context.capabilities(interfaceDef), (capabilities) => {
|
|
126
|
-
capability = capabilities[0];
|
|
127
|
-
});
|
|
128
|
-
onTestFinished(() => cancel());
|
|
129
|
-
registry.get(context.capabilities(interfaceDef));
|
|
130
|
-
expect(capability).toBeUndefined();
|
|
131
|
-
|
|
132
|
-
const implementation = { example: 'identifier' };
|
|
133
|
-
context.contributeCapability({ interface: interfaceDef, implementation, module: 'test' });
|
|
134
|
-
expect(capability).toEqual(implementation);
|
|
135
|
-
});
|
|
136
|
-
});
|