@dxos/app-framework 0.8.4-main.bc674ce → 0.8.4-main.bcb3aa67d6
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 +1 -3
- package/dist/lib/browser/{capability-7PCNSWBT.mjs → capability-4NSF2SOO.mjs} +16 -11
- package/dist/lib/browser/capability-4NSF2SOO.mjs.map +7 -0
- package/dist/lib/browser/capability-EB3UKSKA.mjs +35 -0
- package/dist/lib/browser/capability-EB3UKSKA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FMZN33N4.mjs → chunk-27FZETIA.mjs} +324 -181
- package/dist/lib/browser/chunk-27FZETIA.mjs.map +7 -0
- package/dist/lib/browser/chunk-CV7I2AAB.mjs +80 -0
- package/dist/lib/browser/chunk-CV7I2AAB.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6Y7PZV72.mjs → chunk-FL2XTEJH.mjs} +3 -4
- package/dist/lib/browser/chunk-FL2XTEJH.mjs.map +7 -0
- package/dist/lib/browser/chunk-H7OMDDGW.mjs +42 -0
- package/dist/lib/browser/chunk-H7OMDDGW.mjs.map +7 -0
- package/dist/lib/browser/chunk-HDQXX5DC.mjs +157 -0
- package/dist/lib/browser/chunk-HDQXX5DC.mjs.map +7 -0
- package/dist/lib/browser/chunk-I34GF4NG.mjs +34 -0
- package/dist/lib/browser/chunk-I34GF4NG.mjs.map +7 -0
- package/dist/lib/browser/chunk-KNBRTZVK.mjs +892 -0
- package/dist/lib/browser/chunk-KNBRTZVK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7IQHKD4U.mjs → chunk-NO7R7QHA.mjs} +4 -7
- package/dist/lib/browser/chunk-NO7R7QHA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TCLLRCS3.mjs → chunk-P2E7VMRF.mjs} +10 -7
- package/dist/lib/browser/chunk-P2E7VMRF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PKQT6C53.mjs → chunk-QSXYHXCE.mjs} +3 -2
- package/dist/lib/browser/chunk-QSXYHXCE.mjs.map +7 -0
- package/dist/lib/browser/chunk-RFSO3JRG.mjs +1 -0
- package/dist/lib/browser/chunk-TGX63LTL.mjs +8 -0
- package/dist/lib/browser/{chunk-FHQTHCX7.mjs.map → chunk-TGX63LTL.mjs.map} +1 -1
- package/dist/lib/browser/cli/index.mjs +90 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/common/activation-events.mjs +24 -0
- package/dist/lib/browser/common/capabilities.mjs +46 -0
- package/dist/lib/browser/core/activation-event.mjs +1 -1
- package/dist/lib/browser/core/capability.mjs +1 -1
- package/dist/lib/browser/core/plugin-manager.mjs +4 -4
- package/dist/lib/browser/core/plugin.mjs +6 -4
- package/dist/lib/browser/core/url-loader.mjs +12 -0
- package/dist/lib/browser/index.mjs +40 -131
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/invoker-capability-P7KPBTP3.mjs +43 -0
- package/dist/lib/browser/invoker-capability-P7KPBTP3.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +56 -34
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/browser/{react → ui}/index.mjs +19 -21
- package/dist/lib/browser/ui/index.mjs.map +7 -0
- package/dist/lib/node-esm/{capability-CFLQ2QQU.mjs → capability-CB3MNEI3.mjs} +16 -11
- package/dist/lib/node-esm/capability-CB3MNEI3.mjs.map +7 -0
- package/dist/lib/node-esm/capability-CMROGK7R.mjs +36 -0
- package/dist/lib/node-esm/capability-CMROGK7R.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-STMXUEPO.mjs → chunk-37NG7SIN.mjs} +3 -4
- package/dist/lib/node-esm/chunk-37NG7SIN.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-7JPKC7OM.mjs +893 -0
- package/dist/lib/node-esm/chunk-7JPKC7OM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-7PPVTBYR.mjs +81 -0
- package/dist/lib/node-esm/chunk-7PPVTBYR.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BQ56U4QX.mjs +43 -0
- package/dist/lib/node-esm/chunk-BQ56U4QX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GT6OKM5I.mjs → chunk-CG6UBBZZ.mjs} +10 -7
- package/dist/lib/node-esm/chunk-CG6UBBZZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-EL3R25OQ.mjs +2 -0
- package/dist/lib/node-esm/chunk-EL3R25OQ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-663A54LQ.mjs → chunk-EXYTXQ47.mjs} +4 -7
- package/dist/lib/node-esm/chunk-EXYTXQ47.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs → chunk-FKE4Z3D6.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs.map → chunk-FKE4Z3D6.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-OXXXRCQX.mjs +158 -0
- package/dist/lib/node-esm/chunk-OXXXRCQX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs +35 -0
- package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XYQTBFPA.mjs → chunk-YH44RHP6.mjs} +324 -181
- package/dist/lib/node-esm/chunk-YH44RHP6.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs → chunk-ZZ7CKK6W.mjs} +3 -2
- package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +91 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/common/activation-events.mjs +25 -0
- package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
- package/dist/lib/node-esm/common/capabilities.mjs +47 -0
- package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
- package/dist/lib/node-esm/core/activation-event.mjs +1 -1
- package/dist/lib/node-esm/core/capability.mjs +1 -1
- package/dist/lib/node-esm/core/plugin-manager.mjs +4 -4
- package/dist/lib/node-esm/core/plugin.mjs +6 -4
- package/dist/lib/node-esm/core/url-loader.mjs +13 -0
- package/dist/lib/node-esm/core/url-loader.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +40 -131
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/invoker-capability-3C5H46ZY.mjs +44 -0
- package/dist/lib/node-esm/invoker-capability-3C5H46ZY.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +56 -34
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/{react → ui}/index.mjs +19 -21
- package/dist/lib/node-esm/ui/index.mjs.map +7 -0
- package/dist/plugin/node-esm/index.mjs +384 -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.d.ts → cli/cli.d.ts} +2 -2
- 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 +27 -0
- package/dist/types/src/common/activation-events.d.ts.map +1 -0
- package/dist/types/src/common/capabilities.d.ts +110 -0
- package/dist/types/src/common/capabilities.d.ts.map +1 -0
- package/dist/types/src/common/index.d.ts +4 -9
- package/dist/types/src/common/index.d.ts.map +1 -1
- package/dist/types/src/common/operations.d.ts +8 -369
- package/dist/types/src/common/operations.d.ts.map +1 -1
- package/dist/types/src/common/translations.d.ts +0 -9
- package/dist/types/src/common/translations.d.ts.map +1 -1
- package/dist/types/src/core/activation-event.d.ts +1 -1
- package/dist/types/src/core/activation-event.d.ts.map +1 -1
- package/dist/types/src/core/capability.d.ts +7 -7
- package/dist/types/src/core/capability.d.ts.map +1 -1
- package/dist/types/src/core/index.d.ts +1 -0
- package/dist/types/src/core/index.d.ts.map +1 -1
- package/dist/types/src/core/plugin-manager.d.ts +9 -2
- package/dist/types/src/core/plugin-manager.d.ts.map +1 -1
- package/dist/types/src/core/plugin.d.ts +6 -1
- package/dist/types/src/core/plugin.d.ts.map +1 -1
- package/dist/types/src/core/url-loader.d.ts +25 -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/index.d.ts +1 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/plugin-operation/history/capability.d.ts +1 -1
- package/dist/types/src/plugin-operation/history/errors.d.ts +30 -3
- package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -1
- package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +11 -3
- package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -1
- package/dist/types/src/plugin-operation/invoker-capability.d.ts +1 -1
- package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -1
- package/dist/types/src/plugin-operation/testing.d.ts +26 -77
- package/dist/types/src/plugin-operation/testing.d.ts.map +1 -1
- package/dist/types/src/plugin-runtime/capability.d.ts +2 -2
- package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -1
- package/dist/types/src/testing/withPluginManager.d.ts +1 -1
- package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
- package/dist/types/src/{react → ui/components/App}/App.d.ts +3 -2
- package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
- package/dist/types/src/{react/Surface.stories.d.ts → ui/components/App/App.stories.d.ts} +7 -2
- 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/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
- package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerProvider.d.ts +1 -1
- 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 +12 -0
- package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
- package/dist/types/src/{react/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.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 +26 -0
- package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
- package/dist/types/src/{common/surface.d.ts → ui/components/Surface/types.d.ts} +20 -18
- package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
- package/dist/types/src/ui/components/index.d.ts +4 -0
- package/dist/types/src/ui/components/index.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/index.d.ts +6 -0
- package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
- package/dist/types/src/{react → ui/hooks}/useApp.d.ts +26 -9
- 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/{react → ui/hooks}/useCapabilities.d.ts +6 -1
- package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
- package/dist/types/src/{react/common.d.ts → ui/hooks/useSettingsState.d.ts} +1 -5
- 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/composer-plugin.d.ts +18 -0
- package/dist/types/src/vite-plugin/composer-plugin.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/import-map-plugin.d.ts +16 -0
- package/dist/types/src/vite-plugin/import-map-plugin.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/index.d.ts +3 -0
- package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
- package/dist/types/src/vite-plugin/packages.d.ts +7 -0
- package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/moon.yml +20 -6
- package/package.json +91 -64
- package/src/{cli.ts → cli/cli.ts} +10 -10
- package/src/{playground/debug → cli}/index.ts +1 -1
- package/src/common/activation-events.ts +44 -0
- package/src/common/capabilities.ts +172 -0
- package/src/common/index.ts +4 -9
- package/src/common/operations.ts +6 -382
- package/src/common/translations.ts +0 -12
- package/src/context.ts +1 -1
- package/src/core/activation-event.ts +5 -2
- package/src/core/capability-manager.ts +1 -1
- package/src/core/capability.ts +11 -10
- package/src/core/index.ts +1 -0
- package/src/core/plugin-manager.test.ts +313 -44
- package/src/core/plugin-manager.ts +344 -157
- package/src/core/plugin.ts +10 -2
- package/src/core/url-loader.test.ts +79 -0
- package/src/core/url-loader.ts +148 -0
- package/src/index.ts +1 -3
- package/src/plugin-operation/OperationPlugin.ts +5 -5
- package/src/plugin-operation/history/capability.ts +5 -5
- package/src/plugin-operation/history/errors.ts +2 -6
- package/src/plugin-operation/history/history-tracker.test.ts +36 -42
- package/src/plugin-operation/history/undo-mapping.ts +6 -3
- package/src/plugin-operation/history/undo-registry.test.ts +3 -3
- package/src/plugin-operation/invoker-capability.ts +21 -7
- package/src/plugin-operation/meta.ts +1 -1
- package/src/plugin-operation/testing.ts +25 -45
- package/src/plugin-runtime/RuntimePlugin.ts +4 -4
- package/src/plugin-runtime/capability.ts +5 -5
- package/src/plugin-runtime/meta.ts +1 -1
- package/src/testing/service.ts +6 -6
- package/src/testing/withPluginManager.stories.tsx +6 -6
- package/src/testing/withPluginManager.tsx +46 -19
- package/src/ui/components/App/App.stories.tsx +92 -0
- package/src/{react → ui/components/App}/App.tsx +9 -11
- package/src/{playground/layout → ui/components/App}/index.ts +1 -1
- package/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.tsx +13 -14
- package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +1 -1
- package/src/ui/components/PluginManager/index.ts +5 -0
- package/src/{react/Surface.stories.tsx → ui/components/Surface/SurfaceComponent.stories.tsx} +28 -24
- package/src/{react/Surface.tsx → ui/components/Surface/SurfaceComponent.tsx} +48 -58
- package/src/{react → ui/components/Surface}/SurfaceInfo.tsx +2 -2
- 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 +35 -0
- package/src/{common/surface.ts → ui/components/Surface/types.ts} +22 -25
- package/src/ui/components/index.ts +7 -0
- package/src/ui/hooks/index.ts +9 -0
- package/src/ui/hooks/useApp.test.tsx +159 -0
- package/src/{react → ui/hooks}/useApp.tsx +110 -30
- package/src/{react → ui/hooks}/useCapabilities.ts +9 -5
- package/src/{react/common.ts → ui/hooks/useSettingsState.ts} +0 -11
- package/src/ui/hooks/useSurface.ts +13 -0
- package/src/ui/index.ts +6 -0
- package/src/vite-plugin/composer-plugin.ts +128 -0
- package/src/vite-plugin/import-map-plugin.ts +315 -0
- package/src/vite-plugin/index.ts +6 -0
- package/src/vite-plugin/packages.ts +29 -0
- package/tsconfig.json +4 -28
- package/tsconfig.node.json +2 -4
- package/typedoc.json +2 -4
- package/vitest.config.ts +1 -1
- package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +0 -149
- package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +0 -7
- package/dist/lib/browser/capability-7PCNSWBT.mjs.map +0 -7
- package/dist/lib/browser/capability-KP3PFEXD.mjs +0 -31
- package/dist/lib/browser/capability-KP3PFEXD.mjs.map +0 -7
- package/dist/lib/browser/chunk-6Y7PZV72.mjs.map +0 -7
- package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +0 -7
- package/dist/lib/browser/chunk-BLQJSGL3.mjs +0 -732
- package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +0 -7
- package/dist/lib/browser/chunk-FHQTHCX7.mjs +0 -8
- package/dist/lib/browser/chunk-FMZN33N4.mjs.map +0 -7
- package/dist/lib/browser/chunk-H4WPA7U7.mjs +0 -77
- package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +0 -7
- package/dist/lib/browser/chunk-PKQT6C53.mjs.map +0 -7
- package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +0 -7
- package/dist/lib/browser/chunk-XYNO72GQ.mjs +0 -746
- package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +0 -7
- package/dist/lib/browser/common/index.mjs +0 -38
- package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs +0 -32
- package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +0 -64
- package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +0 -150
- package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +0 -7
- package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +0 -7
- package/dist/lib/node-esm/capability-RCUNM2M7.mjs +0 -32
- package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6WXBT3EC.mjs +0 -747
- package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +0 -733
- package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-STMXUEPO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +0 -78
- package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +0 -7
- package/dist/lib/node-esm/common/index.mjs +0 -39
- package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs +0 -33
- package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +0 -65
- package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +0 -7
- package/dist/types/src/cli.d.ts.map +0 -1
- package/dist/types/src/common/activation-event.d.ts +0 -66
- package/dist/types/src/common/activation-event.d.ts.map +0 -1
- package/dist/types/src/common/capability.d.ts +0 -265
- package/dist/types/src/common/capability.d.ts.map +0 -1
- package/dist/types/src/common/collaboration.d.ts +0 -26
- package/dist/types/src/common/collaboration.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/plugin.d.ts +0 -201
- package/dist/types/src/common/plugin.d.ts.map +0 -1
- package/dist/types/src/common/surface.d.ts.map +0 -1
- package/dist/types/src/playground/debug/Debug.d.ts +0 -8
- 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 -3
- package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/generator/Main.d.ts +0 -8
- package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
- package/dist/types/src/playground/generator/Toolbar.d.ts +0 -8
- package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
- package/dist/types/src/playground/generator/generator.d.ts +0 -19
- 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 -3
- package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/layout/Layout.d.ts +0 -10
- 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 -3
- package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/logger/Toolbar.d.ts +0 -8
- 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 -3
- package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/logger/schema.d.ts +0 -27
- package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
- package/dist/types/src/playground/playground.stories.d.ts +0 -11
- package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -3
- package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/actions.d.ts +0 -61
- package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -6
- 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/meta.d.ts +0 -3
- package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/operation-resolver.d.ts +0 -6
- package/dist/types/src/plugin-settings/operation-resolver.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/App.d.ts.map +0 -1
- package/dist/types/src/react/App.stories.d.ts.map +0 -1
- package/dist/types/src/react/DefaultFallback.d.ts +0 -8
- package/dist/types/src/react/DefaultFallback.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/PluginManagerContext.stories.d.ts.map +0 -1
- package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
- package/dist/types/src/react/Surface.d.ts +0 -14
- package/dist/types/src/react/Surface.d.ts.map +0 -1
- package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
- package/dist/types/src/react/SurfaceInfo.d.ts.map +0 -1
- package/dist/types/src/react/common.d.ts.map +0 -1
- package/dist/types/src/react/index.d.ts +0 -9
- package/dist/types/src/react/index.d.ts.map +0 -1
- package/dist/types/src/react/types.d.ts +0 -12
- package/dist/types/src/react/types.d.ts.map +0 -1
- package/dist/types/src/react/useApp.d.ts.map +0 -1
- package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
- package/dist/types/src/react/useLoading.d.ts.map +0 -1
- package/dist/types/src/react/useOperationResolver.d.ts +0 -19
- package/dist/types/src/react/useOperationResolver.d.ts.map +0 -1
- package/src/common/activation-event.ts +0 -99
- package/src/common/capability.ts +0 -343
- package/src/common/collaboration.ts +0 -31
- package/src/common/file.ts +0 -22
- package/src/common/graph.ts +0 -30
- package/src/common/plugin.ts +0 -364
- package/src/playground/debug/Debug.tsx +0 -49
- package/src/playground/debug/plugin.ts +0 -16
- package/src/playground/generator/Main.tsx +0 -80
- package/src/playground/generator/Toolbar.tsx +0 -57
- package/src/playground/generator/generator.ts +0 -48
- package/src/playground/generator/index.ts +0 -6
- package/src/playground/generator/plugin.ts +0 -21
- package/src/playground/layout/Layout.tsx +0 -37
- package/src/playground/layout/plugin.ts +0 -18
- package/src/playground/logger/Toolbar.tsx +0 -33
- package/src/playground/logger/index.ts +0 -5
- package/src/playground/logger/plugin.ts +0 -42
- package/src/playground/logger/schema.ts +0 -22
- package/src/playground/playground.stories.tsx +0 -54
- package/src/plugin-settings/SettingsPlugin.ts +0 -19
- package/src/plugin-settings/actions.ts +0 -64
- package/src/plugin-settings/app-graph-builder.ts +0 -140
- package/src/plugin-settings/index.ts +0 -6
- package/src/plugin-settings/meta.ts +0 -10
- package/src/plugin-settings/operation-resolver.ts +0 -55
- package/src/plugin-settings/translations.ts +0 -19
- package/src/react/App.stories.tsx +0 -63
- package/src/react/DefaultFallback.tsx +0 -26
- package/src/react/ErrorBoundary.tsx +0 -56
- package/src/react/index.ts +0 -14
- package/src/react/types.ts +0 -27
- package/src/react/useOperationResolver.ts +0 -40
- /package/dist/lib/{node-esm/react/index.mjs.map → browser/chunk-RFSO3JRG.mjs.map} +0 -0
- /package/dist/lib/{node-esm/common/index.mjs.map → browser/common/activation-events.mjs.map} +0 -0
- /package/dist/lib/browser/{react/index.mjs.map → common/capabilities.mjs.map} +0 -0
- /package/dist/lib/browser/{common/index.mjs.map → core/url-loader.mjs.map} +0 -0
- /package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.d.ts +0 -0
- /package/dist/types/src/{react → ui/components/Surface}/SurfaceInfo.d.ts +0 -0
- /package/dist/types/src/{react → ui/hooks}/useLoading.d.ts +0 -0
- /package/src/{react → ui/hooks}/useLoading.tsx +0 -0
package/src/common/plugin.ts
DELETED
|
@@ -1,364 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import type * as Command$ from '@effect/cli/Command';
|
|
6
|
-
import * as Effect from 'effect/Effect';
|
|
7
|
-
|
|
8
|
-
import { type Type } from '@dxos/echo';
|
|
9
|
-
|
|
10
|
-
import { Capability as Capability$, Plugin as Plugin$ } from '../core';
|
|
11
|
-
|
|
12
|
-
import { ActivationEvent } from './activation-event';
|
|
13
|
-
import { Capability } from './capability';
|
|
14
|
-
import { type Resource } from './translations';
|
|
15
|
-
|
|
16
|
-
type PluginModuleOptions = Partial<
|
|
17
|
-
Pick<Plugin$.PluginModuleOptions, 'id' | 'activatesOn' | 'activatesBefore' | 'activatesAfter'>
|
|
18
|
-
> &
|
|
19
|
-
Pick<Plugin$.PluginModuleOptions, 'activate'>;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Helper functions for creating common plugin module patterns.
|
|
23
|
-
*/
|
|
24
|
-
export namespace Plugin {
|
|
25
|
-
// TODO(wittjosiah): Restrict type to only allow operation handlers.
|
|
26
|
-
export type OperationResolverModuleOptions = PluginModuleOptions;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Creates a module that contributes operation handlers.
|
|
30
|
-
*
|
|
31
|
-
* @param options Module options including the activate function and optional configuration
|
|
32
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```ts
|
|
36
|
-
* Plugin.define(meta).pipe(
|
|
37
|
-
* Common.Plugin.addOperationResolverModule({
|
|
38
|
-
* activate: (context) =>
|
|
39
|
-
* Capability.contributes(Common.Capability.OperationResolver, [{
|
|
40
|
-
* operation: MyOperation,
|
|
41
|
-
* handler: (input) => Effect.succeed(...)
|
|
42
|
-
* }])
|
|
43
|
-
* })
|
|
44
|
-
* )
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export function addOperationResolverModule<T = void>(
|
|
48
|
-
options: OperationResolverModuleOptions,
|
|
49
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
50
|
-
return Plugin$.addModule({
|
|
51
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'operation-resolver',
|
|
52
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupOperationResolver,
|
|
53
|
-
activatesBefore: options.activatesBefore,
|
|
54
|
-
activatesAfter: options.activatesAfter,
|
|
55
|
-
activate: options.activate,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// TODO(wittjosiah): Restrict type to only allow surfaces.
|
|
60
|
-
export type SurfaceModuleOptions = PluginModuleOptions;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Creates a module that contributes React surfaces.
|
|
64
|
-
*
|
|
65
|
-
* @param options Module options including the activate function and optional configuration
|
|
66
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```ts
|
|
70
|
-
* Plugin.define(meta).pipe(
|
|
71
|
-
* Common.Plugin.addSurfaceModule({
|
|
72
|
-
* activate: (context) =>
|
|
73
|
-
* Capability.contributes(Common.Capability.ReactSurface, [
|
|
74
|
-
* Common.createSurface({ id: `${meta.id}/my-surface`, ... })
|
|
75
|
-
* ])
|
|
76
|
-
* })
|
|
77
|
-
* )
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
export function addSurfaceModule<T = void>(
|
|
81
|
-
options: SurfaceModuleOptions,
|
|
82
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
83
|
-
return Plugin$.addModule({
|
|
84
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'surfaces',
|
|
85
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupReactSurface,
|
|
86
|
-
activatesBefore: options.activatesBefore,
|
|
87
|
-
activatesAfter: options.activatesAfter,
|
|
88
|
-
activate: options.activate,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// TODO(wittjosiah): Restrict type to only allow react roots.
|
|
93
|
-
export type ReactRootModuleOptions = PluginModuleOptions;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Creates a module that contributes a React root.
|
|
97
|
-
*/
|
|
98
|
-
export function addReactRootModule<T = void>(
|
|
99
|
-
options: ReactRootModuleOptions,
|
|
100
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
101
|
-
return Plugin$.addModule({
|
|
102
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'react-root',
|
|
103
|
-
activatesOn: options.activatesOn ?? ActivationEvent.Startup,
|
|
104
|
-
activatesBefore: options.activatesBefore,
|
|
105
|
-
activatesAfter: options.activatesAfter,
|
|
106
|
-
activate: options.activate,
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// TODO(wittjosiah): Restrict type to only allow react contexts.
|
|
111
|
-
export type ReactContextModuleOptions = PluginModuleOptions;
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Creates a module that contributes a React context.
|
|
115
|
-
*/
|
|
116
|
-
export function addReactContextModule<T = void>(
|
|
117
|
-
options: ReactContextModuleOptions,
|
|
118
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
119
|
-
return Plugin$.addModule({
|
|
120
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'react-context',
|
|
121
|
-
activatesOn: options.activatesOn ?? ActivationEvent.Startup,
|
|
122
|
-
activatesBefore: options.activatesBefore,
|
|
123
|
-
activatesAfter: options.activatesAfter,
|
|
124
|
-
activate: options.activate,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// TODO(wittjosiah): Restrict type to only allow app graph builders.
|
|
129
|
-
export type AppGraphModuleOptions = PluginModuleOptions;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Creates a module that contributes app graph builder extensions.
|
|
133
|
-
*
|
|
134
|
-
* @param options Module options including the activate function and optional configuration
|
|
135
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
136
|
-
*
|
|
137
|
-
* @example
|
|
138
|
-
* ```ts
|
|
139
|
-
* Plugin.define(meta).pipe(
|
|
140
|
-
* Common.Plugin.addAppGraphModule({
|
|
141
|
-
* activate: Effect.fnUntraced(function* () {
|
|
142
|
-
* const extensions = yield* GraphBuilder.createExtension({
|
|
143
|
-
* id: meta.id,
|
|
144
|
-
* match: NodeMatcher.whenRoot,
|
|
145
|
-
* // All callbacks must return Effects.
|
|
146
|
-
* actions: () => Effect.succeed([{
|
|
147
|
-
* id: 'my-action',
|
|
148
|
-
* // Action data returns Effect for automatic context access.
|
|
149
|
-
* data: Effect.fnUntraced(function* () {
|
|
150
|
-
* yield* Operation.invoke(MyOperation, { ... });
|
|
151
|
-
* }),
|
|
152
|
-
* properties: { label: 'My Action', icon: 'ph--icon' },
|
|
153
|
-
* }]),
|
|
154
|
-
* connector: (node, get) => Effect.succeed([{ id: 'child', ... }]),
|
|
155
|
-
* });
|
|
156
|
-
* return Capability.contributes(Common.Capability.AppGraphBuilder, extensions);
|
|
157
|
-
* })
|
|
158
|
-
* })
|
|
159
|
-
* )
|
|
160
|
-
* ```
|
|
161
|
-
*/
|
|
162
|
-
export function addAppGraphModule<T = void>(
|
|
163
|
-
options: AppGraphModuleOptions,
|
|
164
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
165
|
-
return Plugin$.addModule({
|
|
166
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'app-graph-builder',
|
|
167
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupAppGraph,
|
|
168
|
-
activatesBefore: options.activatesBefore,
|
|
169
|
-
activatesAfter: options.activatesAfter,
|
|
170
|
-
activate: options.activate,
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
export type TranslationsModuleOptions = Omit<PluginModuleOptions, 'activate'> & {
|
|
175
|
-
translations: Resource | Resource[];
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Creates a module that contributes translations.
|
|
180
|
-
*
|
|
181
|
-
* @param options Module options including translations and optional configuration
|
|
182
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
183
|
-
*
|
|
184
|
-
* @example
|
|
185
|
-
* ```ts
|
|
186
|
-
* Plugin.define(meta).pipe(
|
|
187
|
-
* Common.Plugin.addTranslationsModule({
|
|
188
|
-
* translations: translations
|
|
189
|
-
* })
|
|
190
|
-
* )
|
|
191
|
-
* ```
|
|
192
|
-
*/
|
|
193
|
-
export function addTranslationsModule<T = void>(
|
|
194
|
-
options: TranslationsModuleOptions,
|
|
195
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
196
|
-
return Plugin$.addModule({
|
|
197
|
-
id: options?.id ?? 'translations',
|
|
198
|
-
activatesOn: options?.activatesOn ?? ActivationEvent.SetupTranslations,
|
|
199
|
-
activatesBefore: options?.activatesBefore,
|
|
200
|
-
activatesAfter: options?.activatesAfter,
|
|
201
|
-
activate: Effect.fnUntraced(function* () {
|
|
202
|
-
return Capability$.contributes(
|
|
203
|
-
Capability.Translations,
|
|
204
|
-
Array.isArray(options.translations) ? options.translations : ([options.translations] as Resource[]),
|
|
205
|
-
);
|
|
206
|
-
}),
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
export type MetadataModuleOptions = Omit<PluginModuleOptions, 'activate'> & {
|
|
211
|
-
metadata: Capability.Metadata | Capability.Metadata[];
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* Creates a module that contributes metadata.
|
|
216
|
-
*
|
|
217
|
-
* @param options Module options including metadata and optional configuration
|
|
218
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
219
|
-
*
|
|
220
|
-
* @example
|
|
221
|
-
* ```ts
|
|
222
|
-
* Plugin.define(meta).pipe(
|
|
223
|
-
* Common.Plugin.addMetadataModule({
|
|
224
|
-
* metadata: {
|
|
225
|
-
* id: MyType.typename,
|
|
226
|
-
* metadata: { icon: 'ph--icon', ... }
|
|
227
|
-
* }
|
|
228
|
-
* })
|
|
229
|
-
* )
|
|
230
|
-
* ```
|
|
231
|
-
*/
|
|
232
|
-
export function addMetadataModule<T = void>(
|
|
233
|
-
options: MetadataModuleOptions,
|
|
234
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
235
|
-
return Plugin$.addModule({
|
|
236
|
-
id: options.id ?? 'metadata',
|
|
237
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupMetadata,
|
|
238
|
-
activatesBefore: options.activatesBefore,
|
|
239
|
-
activatesAfter: options.activatesAfter,
|
|
240
|
-
activate: Effect.fnUntraced(function* () {
|
|
241
|
-
return (Array.isArray(options.metadata) ? options.metadata : [options.metadata]).map((m) =>
|
|
242
|
-
Capability$.contributes(Capability.Metadata, m),
|
|
243
|
-
);
|
|
244
|
-
}),
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// TODO(wittjosiah): Restrict type to only allow settings.
|
|
249
|
-
export type SettingsModuleOptions = PluginModuleOptions;
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Creates a module that contributes settings.
|
|
253
|
-
*/
|
|
254
|
-
export function addSettingsModule<T = void>(
|
|
255
|
-
options: SettingsModuleOptions,
|
|
256
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
257
|
-
return Plugin$.addModule({
|
|
258
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'settings',
|
|
259
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupSettings,
|
|
260
|
-
activatesBefore: options.activatesBefore,
|
|
261
|
-
activatesAfter: options.activatesAfter,
|
|
262
|
-
activate: options.activate,
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
// TODO(wittjosiah): Restrict type to only allow blueprint definitions.
|
|
267
|
-
export type BlueprintDefinitionModuleOptions = PluginModuleOptions;
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Creates a module that contributes blueprint definitions.
|
|
271
|
-
*
|
|
272
|
-
* @param options Module options including the activate function and optional configuration
|
|
273
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
274
|
-
*
|
|
275
|
-
* @example
|
|
276
|
-
* ```ts
|
|
277
|
-
* Plugin.define(meta).pipe(
|
|
278
|
-
* Common.Plugin.addBlueprintDefinitionModule({
|
|
279
|
-
* activate: (context) =>
|
|
280
|
-
* Capability.contributes(Common.Capability.BlueprintDefinition, [
|
|
281
|
-
* BlueprintDefinition.make({ key: 'my-blueprint', ... })
|
|
282
|
-
* ])
|
|
283
|
-
* })
|
|
284
|
-
* )
|
|
285
|
-
* ```
|
|
286
|
-
*/
|
|
287
|
-
export function addBlueprintDefinitionModule<T = void>(
|
|
288
|
-
options: BlueprintDefinitionModuleOptions,
|
|
289
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
290
|
-
return Plugin$.addModule({
|
|
291
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'blueprint-definition',
|
|
292
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupArtifactDefinition,
|
|
293
|
-
activatesBefore: options.activatesBefore,
|
|
294
|
-
activatesAfter: options.activatesAfter,
|
|
295
|
-
activate: options.activate,
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
export type SchemaModuleOptions = Omit<PluginModuleOptions, 'activate'> & {
|
|
300
|
-
schema: ReadonlyArray<Type.Entity.Any>;
|
|
301
|
-
};
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Creates a module that contributes schemas.
|
|
305
|
-
*
|
|
306
|
-
* @param options Module options including schema array and optional configuration
|
|
307
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
308
|
-
*
|
|
309
|
-
* @example
|
|
310
|
-
* ```ts
|
|
311
|
-
* Plugin.define(meta).pipe(
|
|
312
|
-
* Common.Plugin.addSchemaModule({
|
|
313
|
-
* schema: [MyType.Type, AnotherType.Type]
|
|
314
|
-
* })
|
|
315
|
-
* )
|
|
316
|
-
* ```
|
|
317
|
-
*/
|
|
318
|
-
export function addSchemaModule<T = void>(
|
|
319
|
-
options: SchemaModuleOptions,
|
|
320
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
321
|
-
return Plugin$.addModule({
|
|
322
|
-
id: options.id ?? 'schema',
|
|
323
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupSchema,
|
|
324
|
-
activatesBefore: options.activatesBefore,
|
|
325
|
-
activatesAfter: options.activatesAfter,
|
|
326
|
-
activate: Effect.fnUntraced(function* () {
|
|
327
|
-
return Capability$.contributes(Capability.Schema, options.schema);
|
|
328
|
-
}),
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
export type CommandModuleOptions = Omit<PluginModuleOptions, 'activate'> & {
|
|
333
|
-
commands: ReadonlyArray<Command$.Command<any, any, any, any>>;
|
|
334
|
-
};
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Creates a module that contributes CLI commands.
|
|
338
|
-
*
|
|
339
|
-
* @param options Module options including commands and optional configuration
|
|
340
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
341
|
-
*
|
|
342
|
-
* @example
|
|
343
|
-
* ```ts
|
|
344
|
-
* Plugin.define(meta).pipe(
|
|
345
|
-
* Common.Plugin.addCommandModule({
|
|
346
|
-
* commands: [myCommand, anotherCommand]
|
|
347
|
-
* })
|
|
348
|
-
* )
|
|
349
|
-
* ```
|
|
350
|
-
*/
|
|
351
|
-
export function addCommandModule<T = void>(
|
|
352
|
-
options: CommandModuleOptions,
|
|
353
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
354
|
-
return Plugin$.addModule({
|
|
355
|
-
id: options.id ?? 'cli-commands',
|
|
356
|
-
activatesOn: options.activatesOn ?? ActivationEvent.Startup,
|
|
357
|
-
activatesBefore: options.activatesBefore,
|
|
358
|
-
activatesAfter: options.activatesAfter,
|
|
359
|
-
activate: Effect.fnUntraced(function* () {
|
|
360
|
-
return options.commands.map((cmd) => Capability$.contributes(Capability.Command, cmd));
|
|
361
|
-
}),
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
|
-
import * as Effect from 'effect/Effect';
|
|
7
|
-
import React from 'react';
|
|
8
|
-
|
|
9
|
-
import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
|
|
10
|
-
|
|
11
|
-
import * as Common from '../../common';
|
|
12
|
-
import { Capability } from '../../core';
|
|
13
|
-
import { usePluginManager } from '../../react';
|
|
14
|
-
|
|
15
|
-
export const Debug = () => {
|
|
16
|
-
const manager = usePluginManager();
|
|
17
|
-
const core = useAtomValue(manager.core);
|
|
18
|
-
const enabled = useAtomValue(manager.enabled);
|
|
19
|
-
const active = useAtomValue(manager.active);
|
|
20
|
-
const pendingReset = useAtomValue(manager.pendingReset);
|
|
21
|
-
const eventsFired = useAtomValue(manager.eventsFired);
|
|
22
|
-
|
|
23
|
-
const object = {
|
|
24
|
-
core,
|
|
25
|
-
enabled,
|
|
26
|
-
active,
|
|
27
|
-
pendingReset,
|
|
28
|
-
eventsFired,
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<SyntaxHighlighter language='json' classNames='text-xs opacity-75 rounded'>
|
|
33
|
-
{JSON.stringify(object, undefined, 2)}
|
|
34
|
-
</SyntaxHighlighter>
|
|
35
|
-
);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export default Capability.makeModule(() =>
|
|
39
|
-
Effect.succeed(
|
|
40
|
-
Capability.contributes(
|
|
41
|
-
Common.Capability.ReactSurface,
|
|
42
|
-
Common.createSurface({
|
|
43
|
-
id: 'dxos.org/test/debug/main',
|
|
44
|
-
role: 'secondary',
|
|
45
|
-
component: Debug,
|
|
46
|
-
}),
|
|
47
|
-
),
|
|
48
|
-
),
|
|
49
|
-
);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Common from '../../common';
|
|
6
|
-
import { Capability, Plugin } from '../../core';
|
|
7
|
-
|
|
8
|
-
const Debug = Capability.lazy('Debug', () => import('./Debug'));
|
|
9
|
-
|
|
10
|
-
export const DebugPlugin = Plugin.define({ id: 'dxos.org/test/plugin-debug', name: 'Debug' }).pipe(
|
|
11
|
-
Plugin.addModule({
|
|
12
|
-
activatesOn: Common.ActivationEvent.Startup,
|
|
13
|
-
activate: Debug,
|
|
14
|
-
}),
|
|
15
|
-
Plugin.make,
|
|
16
|
-
);
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
|
-
import * as Effect from 'effect/Effect';
|
|
7
|
-
import React, { useCallback } from 'react';
|
|
8
|
-
|
|
9
|
-
import { IconButton, List, ListItem } from '@dxos/react-ui';
|
|
10
|
-
|
|
11
|
-
import * as Common from '../../common';
|
|
12
|
-
import { Capability } from '../../core';
|
|
13
|
-
import { usePluginManager } from '../../react';
|
|
14
|
-
|
|
15
|
-
const Item = ({
|
|
16
|
-
id,
|
|
17
|
-
disabled,
|
|
18
|
-
onRemove,
|
|
19
|
-
}: {
|
|
20
|
-
id: string;
|
|
21
|
-
disabled: boolean;
|
|
22
|
-
onRemove: (id: string) => Promise<void>;
|
|
23
|
-
}) => {
|
|
24
|
-
const handleRemove = useCallback(() => onRemove(id), [onRemove]);
|
|
25
|
-
|
|
26
|
-
return (
|
|
27
|
-
<ListItem.Root key={id} id={id}>
|
|
28
|
-
<ListItem.Heading classNames='grow pbs-2'>{id}</ListItem.Heading>
|
|
29
|
-
<ListItem.Endcap>
|
|
30
|
-
<IconButton
|
|
31
|
-
iconOnly
|
|
32
|
-
variant='ghost'
|
|
33
|
-
icon='ph--x--regular'
|
|
34
|
-
label='Remove'
|
|
35
|
-
disabled={disabled}
|
|
36
|
-
onClick={handleRemove}
|
|
37
|
-
/>
|
|
38
|
-
</ListItem.Endcap>
|
|
39
|
-
</ListItem.Root>
|
|
40
|
-
);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export const Main = () => {
|
|
44
|
-
const manager = usePluginManager();
|
|
45
|
-
const plugins = useAtomValue(manager.plugins);
|
|
46
|
-
const core = useAtomValue(manager.core);
|
|
47
|
-
|
|
48
|
-
const handleRemove = useCallback(
|
|
49
|
-
async (id: string) => {
|
|
50
|
-
await manager.remove(id);
|
|
51
|
-
},
|
|
52
|
-
[manager],
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
return (
|
|
56
|
-
<List itemSizes='one'>
|
|
57
|
-
{plugins.map((plugin) => (
|
|
58
|
-
<Item
|
|
59
|
-
key={plugin.meta.id}
|
|
60
|
-
id={plugin.meta.id}
|
|
61
|
-
disabled={core.includes(plugin.meta.id)}
|
|
62
|
-
onRemove={handleRemove}
|
|
63
|
-
/>
|
|
64
|
-
))}
|
|
65
|
-
</List>
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export default Capability.makeModule(() =>
|
|
70
|
-
Effect.succeed(
|
|
71
|
-
Capability.contributes(
|
|
72
|
-
Common.Capability.ReactSurface,
|
|
73
|
-
Common.createSurface({
|
|
74
|
-
id: 'dxos.org/test/generator/main',
|
|
75
|
-
role: 'primary',
|
|
76
|
-
component: Main,
|
|
77
|
-
}),
|
|
78
|
-
),
|
|
79
|
-
),
|
|
80
|
-
);
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
|
-
import * as Effect from 'effect/Effect';
|
|
7
|
-
import React, { useCallback } from 'react';
|
|
8
|
-
|
|
9
|
-
import { Button } from '@dxos/react-ui';
|
|
10
|
-
|
|
11
|
-
import * as Common from '../../common';
|
|
12
|
-
import { Capability, type Plugin } from '../../core';
|
|
13
|
-
import { useCapabilities, useOperationInvoker, usePluginManager } from '../../react';
|
|
14
|
-
|
|
15
|
-
import { Number, createAlertOperation, createPluginId } from './generator';
|
|
16
|
-
|
|
17
|
-
export const Toolbar = () => {
|
|
18
|
-
const manager = usePluginManager();
|
|
19
|
-
const plugins = useAtomValue(manager.plugins);
|
|
20
|
-
const { invokePromise } = useOperationInvoker();
|
|
21
|
-
|
|
22
|
-
const handleAdd = useCallback(async () => {
|
|
23
|
-
const id = createPluginId(Math.random().toString(16).substring(2, 8));
|
|
24
|
-
await manager.add(id);
|
|
25
|
-
}, [manager]);
|
|
26
|
-
|
|
27
|
-
const count = useCapabilities(Number).reduce((acc: number, curr: number) => acc + curr, 0);
|
|
28
|
-
|
|
29
|
-
const generatorPlugins = plugins.filter((plugin: Plugin.Plugin) =>
|
|
30
|
-
plugin.meta.id.startsWith('dxos.org/test/generator/'),
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<>
|
|
35
|
-
<Button onClick={handleAdd}>Add</Button>
|
|
36
|
-
<div className='flex items-center'>Count: {count}</div>
|
|
37
|
-
{generatorPlugins.map((plugin: Plugin.Plugin) => (
|
|
38
|
-
<Button key={plugin.meta.id} onClick={() => invokePromise(createAlertOperation(plugin.meta.id))}>
|
|
39
|
-
{plugin.meta.id.replace('dxos.org/test/generator/', '')}
|
|
40
|
-
</Button>
|
|
41
|
-
))}
|
|
42
|
-
</>
|
|
43
|
-
);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export default Capability.makeModule(() =>
|
|
47
|
-
Effect.succeed(
|
|
48
|
-
Capability.contributes(
|
|
49
|
-
Common.Capability.ReactSurface,
|
|
50
|
-
Common.createSurface({
|
|
51
|
-
id: 'dxos.org/test/generator/toolbar',
|
|
52
|
-
role: 'toolbar',
|
|
53
|
-
component: Toolbar,
|
|
54
|
-
}),
|
|
55
|
-
),
|
|
56
|
-
),
|
|
57
|
-
);
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Effect from 'effect/Effect';
|
|
6
|
-
import * as Schema from 'effect/Schema';
|
|
7
|
-
|
|
8
|
-
import { Operation, OperationResolver } from '@dxos/operation';
|
|
9
|
-
|
|
10
|
-
import * as Common from '../../common';
|
|
11
|
-
import { ActivationEvent, Capability, Plugin } from '../../core';
|
|
12
|
-
|
|
13
|
-
export const Number = Capability.make<number>('dxos.org/test/generator/number');
|
|
14
|
-
|
|
15
|
-
export const CountEvent = ActivationEvent.make('dxos.org/test/generator/count');
|
|
16
|
-
|
|
17
|
-
export const createPluginId = (id: string) => `dxos.org/test/generator/${id}`;
|
|
18
|
-
|
|
19
|
-
export const createAlertOperation = (id: string) =>
|
|
20
|
-
Operation.make({
|
|
21
|
-
meta: { key: `${createPluginId(id)}/operation/alert`, name: 'Alert' },
|
|
22
|
-
schema: { input: Schema.Void, output: Schema.Void },
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
export const createNumberPlugin = (id: string) => {
|
|
26
|
-
const number = Math.floor(Math.random() * 100);
|
|
27
|
-
const AlertOperation = createAlertOperation(id);
|
|
28
|
-
|
|
29
|
-
return Plugin.define({ id, name: `Plugin ${id}` }).pipe(
|
|
30
|
-
Plugin.addModule({
|
|
31
|
-
id: 'Main',
|
|
32
|
-
activatesOn: CountEvent,
|
|
33
|
-
activate: () => Effect.succeed(Capability.contributes(Number, number)),
|
|
34
|
-
}),
|
|
35
|
-
Common.Plugin.addOperationResolverModule({
|
|
36
|
-
activate: () =>
|
|
37
|
-
Effect.succeed(
|
|
38
|
-
Capability.contributes(Common.Capability.OperationResolver, [
|
|
39
|
-
OperationResolver.make({
|
|
40
|
-
operation: AlertOperation,
|
|
41
|
-
handler: () => Effect.sync(() => window.alert(JSON.stringify({ number }))),
|
|
42
|
-
}),
|
|
43
|
-
]),
|
|
44
|
-
),
|
|
45
|
-
}),
|
|
46
|
-
Plugin.make,
|
|
47
|
-
)();
|
|
48
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Common from '../../common';
|
|
6
|
-
import { Capability, Plugin } from '../../core';
|
|
7
|
-
|
|
8
|
-
const Main = Capability.lazy('Main', () => import('./Main'));
|
|
9
|
-
const Toolbar = Capability.lazy('Toolbar', () => import('./Toolbar'));
|
|
10
|
-
|
|
11
|
-
export const GeneratorPlugin = Plugin.define({ id: 'dxos.org/test/generator', name: 'Generator' }).pipe(
|
|
12
|
-
Plugin.addModule({
|
|
13
|
-
activatesOn: Common.ActivationEvent.Startup,
|
|
14
|
-
activate: Main,
|
|
15
|
-
}),
|
|
16
|
-
Plugin.addModule({
|
|
17
|
-
activatesOn: Common.ActivationEvent.Startup,
|
|
18
|
-
activate: Toolbar,
|
|
19
|
-
}),
|
|
20
|
-
Plugin.make,
|
|
21
|
-
);
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Effect from 'effect/Effect';
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
import * as Common from '../../common';
|
|
9
|
-
import { Capability } from '../../core';
|
|
10
|
-
import { Surface } from '../../react';
|
|
11
|
-
|
|
12
|
-
export const Layout = () => {
|
|
13
|
-
return (
|
|
14
|
-
<div className='flex flex-col gap-2'>
|
|
15
|
-
<div className='flex gap-2'>
|
|
16
|
-
<Surface role='toolbar' />
|
|
17
|
-
</div>
|
|
18
|
-
<div className='flex gap-2'>
|
|
19
|
-
<div className='flex-1'>
|
|
20
|
-
<Surface role='primary' limit={1} />
|
|
21
|
-
</div>
|
|
22
|
-
<div className='flex-1'>
|
|
23
|
-
<Surface role='secondary' limit={1} />
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export default Capability.makeModule(() =>
|
|
31
|
-
Effect.succeed(
|
|
32
|
-
Capability.contributes(Common.Capability.ReactRoot, {
|
|
33
|
-
id: 'dxos.org/test/layout/root',
|
|
34
|
-
root: Layout,
|
|
35
|
-
}),
|
|
36
|
-
),
|
|
37
|
-
);
|