@dxos/app-framework 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65
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/dist/lib/browser/{capability-2GL5JAGJ.mjs → capability-6YMUBS54.mjs} +7 -7
- package/dist/lib/browser/{capability-7RLVE42K.mjs → capability-LF3OXSCV.mjs} +8 -8
- package/dist/lib/browser/{chunk-PKQT6C53.mjs → chunk-272IPLHQ.mjs} +1 -1
- package/dist/lib/browser/{chunk-PKQT6C53.mjs.map → chunk-272IPLHQ.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-HE27PNNQ.mjs → chunk-2UI6ACB5.mjs} +3 -3
- package/dist/lib/browser/{chunk-FNKT2QQ2.mjs → chunk-7M4467QR.mjs} +2 -2
- package/dist/lib/browser/{chunk-FNKT2QQ2.mjs.map → chunk-7M4467QR.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-ZRWBPIZG.mjs → chunk-JGWCBVKJ.mjs} +2 -2
- package/dist/lib/browser/chunk-M5IC326L.mjs +34 -0
- package/dist/lib/browser/{chunk-NPUEVX42.mjs.map → chunk-M5IC326L.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-4CTRO67U.mjs → chunk-NQPYE365.mjs} +8 -8
- package/dist/lib/browser/{chunk-4CTRO67U.mjs.map → chunk-NQPYE365.mjs.map} +1 -1
- 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/{chunk-5RJNZV7K.mjs → chunk-TIEBZMTF.mjs} +3 -3
- package/dist/lib/browser/{chunk-5RJNZV7K.mjs.map → chunk-TIEBZMTF.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-REORGDJT.mjs → chunk-WEBSGU5L.mjs} +15 -15
- package/dist/lib/browser/{chunk-REORGDJT.mjs.map → chunk-WEBSGU5L.mjs.map} +1 -1
- package/dist/lib/browser/cli/index.mjs +8 -8
- package/dist/lib/browser/cli/index.mjs.map +1 -1
- package/dist/lib/browser/common/activation-events.mjs +4 -4
- package/dist/lib/browser/common/capabilities.mjs +4 -4
- package/dist/lib/browser/core/activation-event.mjs +1 -1
- package/dist/lib/browser/core/plugin-manager.mjs +3 -3
- package/dist/lib/browser/core/plugin.mjs +1 -1
- package/dist/lib/browser/index.mjs +13 -13
- package/dist/lib/browser/index.mjs.map +1 -1
- package/dist/lib/browser/{invoker-capability-BNLVNYHU.mjs → invoker-capability-4AUGUMM5.mjs} +7 -7
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +12 -12
- package/dist/lib/browser/testing/index.mjs.map +1 -1
- package/dist/lib/browser/ui/index.mjs +8 -8
- package/dist/lib/node-esm/{capability-CHIMU6LX.mjs → capability-R5O2OYX4.mjs} +7 -7
- package/dist/lib/node-esm/{capability-EVZK4REM.mjs → capability-SA6LPYGL.mjs} +8 -8
- package/dist/lib/node-esm/{chunk-2A4PRBIX.mjs → chunk-3D66SZHP.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs → chunk-6REV5DE7.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs.map → chunk-6REV5DE7.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-7CPNAEGV.mjs → chunk-FHWPWQRJ.mjs} +8 -8
- package/dist/lib/node-esm/{chunk-7CPNAEGV.mjs.map → chunk-FHWPWQRJ.mjs.map} +1 -1
- 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-CJCQS2YL.mjs → chunk-JHFY3HTS.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-CJCQS2YL.mjs.map → chunk-JHFY3HTS.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-DTCHT2X2.mjs → chunk-JIVXIJ2T.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-JAZVHID3.mjs → chunk-NHXBSAQR.mjs} +8 -8
- package/dist/lib/node-esm/{chunk-JAZVHID3.mjs.map → chunk-NHXBSAQR.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-VUIUFIGT.mjs → chunk-SCDGIGGU.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-VUIUFIGT.mjs.map → chunk-SCDGIGGU.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-UFW652GS.mjs → chunk-SQICGJBW.mjs} +15 -15
- package/dist/lib/node-esm/{chunk-UFW652GS.mjs.map → chunk-SQICGJBW.mjs.map} +1 -1
- package/dist/lib/node-esm/cli/index.mjs +8 -8
- package/dist/lib/node-esm/cli/index.mjs.map +1 -1
- package/dist/lib/node-esm/common/activation-events.mjs +4 -4
- package/dist/lib/node-esm/common/capabilities.mjs +4 -4
- package/dist/lib/node-esm/core/activation-event.mjs +1 -1
- package/dist/lib/node-esm/core/plugin-manager.mjs +3 -3
- package/dist/lib/node-esm/core/plugin.mjs +1 -1
- package/dist/lib/node-esm/index.mjs +13 -13
- package/dist/lib/node-esm/index.mjs.map +1 -1
- package/dist/lib/node-esm/{invoker-capability-VF6SP44V.mjs → invoker-capability-3YDIVDWV.mjs} +7 -7
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +12 -12
- package/dist/lib/node-esm/testing/index.mjs.map +1 -1
- package/dist/lib/node-esm/ui/index.mjs +8 -8
- package/dist/types/src/common/operations.d.ts +1 -1
- package/dist/types/src/core/activation-event.d.ts +1 -1
- package/dist/types/src/core/plugin.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -19
- package/src/cli/cli.ts +2 -2
- package/src/common/activation-events.ts +6 -6
- package/src/common/capabilities.ts +14 -14
- package/src/common/operations.ts +2 -2
- package/src/context.ts +1 -1
- package/src/core/activation-event.ts +1 -1
- package/src/core/plugin-manager.test.ts +22 -22
- package/src/core/plugin.ts +2 -2
- package/src/plugin-operation/meta.ts +1 -1
- package/src/plugin-runtime/meta.ts +1 -1
- package/src/testing/service.ts +2 -2
- package/src/testing/withPluginManager.tsx +2 -2
- package/src/ui/components/App/App.stories.tsx +2 -2
- package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +4 -4
- package/src/ui/hooks/useApp.tsx +3 -3
- package/dist/lib/browser/chunk-FHQTHCX7.mjs +0 -8
- package/dist/lib/browser/chunk-NPUEVX42.mjs +0 -34
- /package/dist/lib/browser/{capability-2GL5JAGJ.mjs.map → capability-6YMUBS54.mjs.map} +0 -0
- /package/dist/lib/browser/{capability-7RLVE42K.mjs.map → capability-LF3OXSCV.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-HE27PNNQ.mjs.map → chunk-2UI6ACB5.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-ZRWBPIZG.mjs.map → chunk-JGWCBVKJ.mjs.map} +0 -0
- /package/dist/lib/browser/{invoker-capability-BNLVNYHU.mjs.map → invoker-capability-4AUGUMM5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{capability-CHIMU6LX.mjs.map → capability-R5O2OYX4.mjs.map} +0 -0
- /package/dist/lib/node-esm/{capability-EVZK4REM.mjs.map → capability-SA6LPYGL.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-2A4PRBIX.mjs.map → chunk-3D66SZHP.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-DTCHT2X2.mjs.map → chunk-JIVXIJ2T.mjs.map} +0 -0
- /package/dist/lib/node-esm/{invoker-capability-VF6SP44V.mjs.map → invoker-capability-3YDIVDWV.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/app-framework",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.d05673bc65",
|
|
4
4
|
"description": "A framework for building applications from composible plugins.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -108,18 +108,18 @@
|
|
|
108
108
|
},
|
|
109
109
|
"dependencies": {
|
|
110
110
|
"@effect/cli": "0.73.2",
|
|
111
|
-
"@dxos/async": "0.8.4-main.
|
|
112
|
-
"@dxos/echo": "0.8.4-main.
|
|
113
|
-
"@dxos/debug": "0.8.4-main.
|
|
114
|
-
"@dxos/
|
|
115
|
-
"@dxos/
|
|
116
|
-
"@dxos/
|
|
117
|
-
"@dxos/
|
|
118
|
-
"@dxos/
|
|
119
|
-
"@dxos/react-
|
|
120
|
-
"@dxos/
|
|
121
|
-
"@dxos/
|
|
122
|
-
"@dxos/
|
|
111
|
+
"@dxos/async": "0.8.4-main.d05673bc65",
|
|
112
|
+
"@dxos/echo": "0.8.4-main.d05673bc65",
|
|
113
|
+
"@dxos/debug": "0.8.4-main.d05673bc65",
|
|
114
|
+
"@dxos/effect": "0.8.4-main.d05673bc65",
|
|
115
|
+
"@dxos/log": "0.8.4-main.d05673bc65",
|
|
116
|
+
"@dxos/invariant": "0.8.4-main.d05673bc65",
|
|
117
|
+
"@dxos/react-error-boundary": "0.8.4-main.d05673bc65",
|
|
118
|
+
"@dxos/operation": "0.8.4-main.d05673bc65",
|
|
119
|
+
"@dxos/react-hooks": "0.8.4-main.d05673bc65",
|
|
120
|
+
"@dxos/util": "0.8.4-main.d05673bc65",
|
|
121
|
+
"@dxos/web-context": "0.8.4-main.d05673bc65",
|
|
122
|
+
"@dxos/web-context-react": "0.8.4-main.d05673bc65"
|
|
123
123
|
},
|
|
124
124
|
"devDependencies": {
|
|
125
125
|
"@effect-atom/atom-react": "^0.5.0",
|
|
@@ -130,12 +130,12 @@
|
|
|
130
130
|
"react": "~19.2.3",
|
|
131
131
|
"react-dom": "~19.2.3",
|
|
132
132
|
"typedoc": "0.28.1",
|
|
133
|
-
"@dxos/echo-db": "0.8.4-main.
|
|
134
|
-
"@dxos/random": "0.8.4-main.
|
|
135
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
136
|
-
"@dxos/test-utils": "0.8.4-main.
|
|
137
|
-
"@dxos/
|
|
138
|
-
"@dxos/
|
|
133
|
+
"@dxos/echo-db": "0.8.4-main.d05673bc65",
|
|
134
|
+
"@dxos/random": "0.8.4-main.d05673bc65",
|
|
135
|
+
"@dxos/react-ui": "0.8.4-main.d05673bc65",
|
|
136
|
+
"@dxos/test-utils": "0.8.4-main.d05673bc65",
|
|
137
|
+
"@dxos/ui-theme": "0.8.4-main.d05673bc65",
|
|
138
|
+
"@dxos/storybook-utils": "0.8.4-main.d05673bc65"
|
|
139
139
|
},
|
|
140
140
|
"peerDependencies": {
|
|
141
141
|
"@effect-atom/atom-react": "^0.5.0",
|
package/src/cli/cli.ts
CHANGED
|
@@ -75,13 +75,13 @@ export const createCliApp = Effect.fn(function* ({
|
|
|
75
75
|
manager.capabilities.contribute({
|
|
76
76
|
interface: Capabilities.PluginManager,
|
|
77
77
|
implementation: manager,
|
|
78
|
-
module: 'dxos.
|
|
78
|
+
module: 'org.dxos.app-framework.plugin-manager',
|
|
79
79
|
});
|
|
80
80
|
|
|
81
81
|
manager.capabilities.contribute({
|
|
82
82
|
interface: Capabilities.AtomRegistry,
|
|
83
83
|
implementation: manager.registry,
|
|
84
|
-
module: 'dxos.
|
|
84
|
+
module: 'org.dxos.app-framework.atom-registry',
|
|
85
85
|
});
|
|
86
86
|
|
|
87
87
|
// Activate startup event to load CLI commands and Effect layers.
|
|
@@ -7,7 +7,7 @@ import { ActivationEvent as ActivationEvent$ } from '../core';
|
|
|
7
7
|
/**
|
|
8
8
|
* Fired when the app is started.
|
|
9
9
|
*/
|
|
10
|
-
export const Startup = ActivationEvent$.make('dxos.
|
|
10
|
+
export const Startup = ActivationEvent$.make('org.dxos.app-framework.event.startup');
|
|
11
11
|
|
|
12
12
|
//
|
|
13
13
|
// Dependent Events
|
|
@@ -16,18 +16,18 @@ export const Startup = ActivationEvent$.make('dxos.org/app-framework/event/start
|
|
|
16
16
|
/**
|
|
17
17
|
* Fired to load any newly available surfaces.
|
|
18
18
|
*/
|
|
19
|
-
export const SetupReactSurface = ActivationEvent$.make('dxos.
|
|
19
|
+
export const SetupReactSurface = ActivationEvent$.make('org.dxos.app-framework.event.setup-react-surface');
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Fired before the operation invoker is activated.
|
|
23
23
|
*/
|
|
24
|
-
export const SetupOperationResolver = ActivationEvent$.make('dxos.
|
|
24
|
+
export const SetupOperationResolver = ActivationEvent$.make('org.dxos.app-framework.event.setup-operation-resolver');
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Fired before the managed runtime is created.
|
|
28
28
|
* Plugins should contribute their Layer capabilities before this event.
|
|
29
29
|
*/
|
|
30
|
-
export const SetupLayer = ActivationEvent$.make('dxos.
|
|
30
|
+
export const SetupLayer = ActivationEvent$.make('org.dxos.app-framework.event.setup-layer');
|
|
31
31
|
|
|
32
32
|
//
|
|
33
33
|
// Triggered Events
|
|
@@ -36,9 +36,9 @@ export const SetupLayer = ActivationEvent$.make('dxos.org/app-framework/event/se
|
|
|
36
36
|
/**
|
|
37
37
|
* Fired after the operation invoker is ready.
|
|
38
38
|
*/
|
|
39
|
-
export const OperationInvokerReady = ActivationEvent$.make('dxos.
|
|
39
|
+
export const OperationInvokerReady = ActivationEvent$.make('org.dxos.app-framework.event.operation-invoker-ready');
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
* Fired after the managed runtime is ready.
|
|
43
43
|
*/
|
|
44
|
-
export const ManagedRuntimeReady = ActivationEvent$.make('dxos.
|
|
44
|
+
export const ManagedRuntimeReady = ActivationEvent$.make('org.dxos.app-framework.event.managed-runtime-ready');
|
|
@@ -23,19 +23,19 @@ import type { Surface } from '../ui';
|
|
|
23
23
|
* Null capability.
|
|
24
24
|
* @category Capability
|
|
25
25
|
*/
|
|
26
|
-
export const Null = Capability$.make<null>('dxos.
|
|
26
|
+
export const Null = Capability$.make<null>('org.dxos.app-framework.capability.null');
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* @category Capability
|
|
30
30
|
*/
|
|
31
31
|
export const PluginManager = Capability$.make<PluginManager$.PluginManager>(
|
|
32
|
-
'dxos.
|
|
32
|
+
'org.dxos.app-framework.capability.plugin-manager',
|
|
33
33
|
);
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* @category Capability
|
|
37
37
|
*/
|
|
38
|
-
export const AtomRegistry = Capability$.make<Registry.Registry>('dxos.
|
|
38
|
+
export const AtomRegistry = Capability$.make<Registry.Registry>('org.dxos.app-framework.capability.atom-registry');
|
|
39
39
|
|
|
40
40
|
export type ReactContext = Readonly<{
|
|
41
41
|
id: string;
|
|
@@ -46,14 +46,14 @@ export type ReactContext = Readonly<{
|
|
|
46
46
|
/**
|
|
47
47
|
* @category Capability
|
|
48
48
|
*/
|
|
49
|
-
export const ReactContext = Capability$.make<ReactContext>('dxos.
|
|
49
|
+
export const ReactContext = Capability$.make<ReactContext>('org.dxos.app-framework.capability.react-context');
|
|
50
50
|
|
|
51
51
|
export type ReactRoot = Readonly<{ id: string; root: FC<PropsWithChildren> }>;
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* @category Capability
|
|
55
55
|
*/
|
|
56
|
-
export const ReactRoot = Capability$.make<ReactRoot>('dxos.
|
|
56
|
+
export const ReactRoot = Capability$.make<ReactRoot>('org.dxos.app-framework.capability.react-root');
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
59
|
* Surface definitions that can be either React components or Web Components.
|
|
@@ -63,26 +63,26 @@ export type ReactSurface = Surface.Definition | readonly Surface.Definition[];
|
|
|
63
63
|
/**
|
|
64
64
|
* @category Capability
|
|
65
65
|
*/
|
|
66
|
-
export const ReactSurface = Capability$.make<ReactSurface>('dxos.
|
|
66
|
+
export const ReactSurface = Capability$.make<ReactSurface>('org.dxos.app-framework.common.react-surface');
|
|
67
67
|
|
|
68
68
|
export type AnyCommand = Command$.Command<any, any, any, any>;
|
|
69
69
|
|
|
70
70
|
/**
|
|
71
71
|
* @category Capability
|
|
72
72
|
*/
|
|
73
|
-
export const Command = Capability$.make<AnyCommand>('dxos.
|
|
73
|
+
export const Command = Capability$.make<AnyCommand>('org.dxos.app-framework.capability.command');
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
76
|
* @category Capability
|
|
77
77
|
*/
|
|
78
|
-
export const Layer = Capability$.make<Layer$.Layer<any, any, any>>('dxos.
|
|
78
|
+
export const Layer = Capability$.make<Layer$.Layer<any, any, any>>('org.dxos.app-framework.capability.layer');
|
|
79
79
|
|
|
80
80
|
export type ManagedRuntime = ManagedRuntime$.ManagedRuntime<any, any>;
|
|
81
81
|
|
|
82
82
|
/**
|
|
83
83
|
* @category Capability
|
|
84
84
|
*/
|
|
85
|
-
export const ManagedRuntime = Capability$.make<ManagedRuntime>('dxos.
|
|
85
|
+
export const ManagedRuntime = Capability$.make<ManagedRuntime>('org.dxos.app-framework.capability.managed-runtime');
|
|
86
86
|
|
|
87
87
|
//
|
|
88
88
|
// Operation System Capabilities
|
|
@@ -95,7 +95,7 @@ export type OperationResolver = OperationResolver$.OperationResolver<any, any, a
|
|
|
95
95
|
* @category Capability
|
|
96
96
|
*/
|
|
97
97
|
export const OperationResolver = Capability$.make<OperationResolver[]>(
|
|
98
|
-
'dxos.
|
|
98
|
+
'org.dxos.app-framework.capability.operation-resolver',
|
|
99
99
|
);
|
|
100
100
|
|
|
101
101
|
export type UndoMapping = UndoMapping$.UndoMapping;
|
|
@@ -104,7 +104,7 @@ export type UndoMapping = UndoMapping$.UndoMapping;
|
|
|
104
104
|
* Undo mapping registration - contributed by plugins.
|
|
105
105
|
* @category Capability
|
|
106
106
|
*/
|
|
107
|
-
export const UndoMapping = Capability$.make<UndoMapping[]>('dxos.
|
|
107
|
+
export const UndoMapping = Capability$.make<UndoMapping[]>('org.dxos.app-framework.capability.undo-mapping');
|
|
108
108
|
|
|
109
109
|
export type OperationInvoker = OperationInvoker$.OperationInvoker;
|
|
110
110
|
|
|
@@ -113,7 +113,7 @@ export type OperationInvoker = OperationInvoker$.OperationInvoker;
|
|
|
113
113
|
* @category Capability
|
|
114
114
|
*/
|
|
115
115
|
export const OperationInvoker = Capability$.make<OperationInvoker>(
|
|
116
|
-
'dxos.
|
|
116
|
+
'org.dxos.app-framework.capability.operation-invoker',
|
|
117
117
|
);
|
|
118
118
|
|
|
119
119
|
export type UndoRegistry = UndoRegistry$.UndoRegistry;
|
|
@@ -122,7 +122,7 @@ export type UndoRegistry = UndoRegistry$.UndoRegistry;
|
|
|
122
122
|
* Undo registry - provided by OperationPlugin.
|
|
123
123
|
* @category Capability
|
|
124
124
|
*/
|
|
125
|
-
export const UndoRegistry = Capability$.make<UndoRegistry>('dxos.
|
|
125
|
+
export const UndoRegistry = Capability$.make<UndoRegistry>('org.dxos.app-framework.capability.undo-registry');
|
|
126
126
|
|
|
127
127
|
export type HistoryTracker = HistoryTracker$.HistoryTracker;
|
|
128
128
|
|
|
@@ -130,7 +130,7 @@ export type HistoryTracker = HistoryTracker$.HistoryTracker;
|
|
|
130
130
|
* History tracker - provided by OperationPlugin.
|
|
131
131
|
* @category Capability
|
|
132
132
|
*/
|
|
133
|
-
export const HistoryTracker = Capability$.make<HistoryTracker>('dxos.
|
|
133
|
+
export const HistoryTracker = Capability$.make<HistoryTracker>('org.dxos.app-framework.capability.history-tracker');
|
|
134
134
|
|
|
135
135
|
//
|
|
136
136
|
// Atom Capability Helpers
|
package/src/common/operations.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { Capability } from '../core';
|
|
|
10
10
|
|
|
11
11
|
import { Label } from './translations';
|
|
12
12
|
|
|
13
|
-
const UNDO_NAMESPACE = 'dxos.
|
|
13
|
+
const UNDO_NAMESPACE = 'org.dxos.app-framework.undo';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Operations related to undo/history functionality.
|
|
@@ -22,7 +22,7 @@ export namespace UndoOperation {
|
|
|
22
22
|
*/
|
|
23
23
|
export const ShowUndo = Operation.make({
|
|
24
24
|
meta: {
|
|
25
|
-
key: `${UNDO_NAMESPACE}
|
|
25
|
+
key: `${UNDO_NAMESPACE}.operation.show-undo`,
|
|
26
26
|
name: 'Show Undo',
|
|
27
27
|
description: 'Show an undo toast notification.',
|
|
28
28
|
},
|
package/src/context.ts
CHANGED
|
@@ -6,4 +6,4 @@ import { createContext } from '@dxos/web-context';
|
|
|
6
6
|
|
|
7
7
|
import { type PluginManager } from './core';
|
|
8
8
|
|
|
9
|
-
export const PluginManagerContext = createContext<PluginManager.PluginManager>('dxos.
|
|
9
|
+
export const PluginManagerContext = createContext<PluginManager.PluginManager>('org.dxos.app-framework.plugin-manager');
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* A unique string identifier representing an event.
|
|
7
7
|
* This is expected to be a URI, where initial parts are often the id of the plugin whose package defines the event.
|
|
8
8
|
*
|
|
9
|
-
* @example dxos.
|
|
9
|
+
* @example org.dxos.plugin.example.event.ready
|
|
10
10
|
*/
|
|
11
11
|
export type ActivationEvent = {
|
|
12
12
|
id: string;
|
|
@@ -23,14 +23,14 @@ import type * as CapabilityManager from './capability-manager';
|
|
|
23
23
|
import * as Plugin from './plugin';
|
|
24
24
|
import * as PluginManager from './plugin-manager';
|
|
25
25
|
|
|
26
|
-
const String = Capability.make<{ string: string }>('dxos.
|
|
27
|
-
const Number = Capability.make<{ number: number }>('dxos.
|
|
28
|
-
const Total = Capability.make<{ total: number }>('dxos.
|
|
26
|
+
const String = Capability.make<{ string: string }>('org.dxos.test.string');
|
|
27
|
+
const Number = Capability.make<{ number: number }>('org.dxos.test.number');
|
|
28
|
+
const Total = Capability.make<{ total: number }>('org.dxos.test.total');
|
|
29
29
|
|
|
30
|
-
const CountEvent = ActivationEvent.make('dxos.
|
|
31
|
-
const FailEvent = ActivationEvent.make('dxos.
|
|
30
|
+
const CountEvent = ActivationEvent.make('org.dxos.test.count');
|
|
31
|
+
const FailEvent = ActivationEvent.make('org.dxos.test.fail');
|
|
32
32
|
|
|
33
|
-
const testMeta = { id: 'dxos.
|
|
33
|
+
const testMeta = { id: 'org.dxos.plugin.test', name: 'Test' };
|
|
34
34
|
|
|
35
35
|
// TODO(wittjosiah): Factor out?
|
|
36
36
|
const atomCounter = (registry: Registry.Registry, atom: Atom.Atom<any>) => {
|
|
@@ -204,7 +204,7 @@ describe('PluginManager', () => {
|
|
|
204
204
|
|
|
205
205
|
it.effect('should catch and log defects (synchronous throws) in module activation', () =>
|
|
206
206
|
Effect.gen(function* () {
|
|
207
|
-
const DefectEvent = ActivationEvent.make('dxos.
|
|
207
|
+
const DefectEvent = ActivationEvent.make('org.dxos.test.defect');
|
|
208
208
|
const capturedErrors: LogEntry[] = [];
|
|
209
209
|
const removeProcessor = log.addProcessor((_config: LogConfig, entry: LogEntry) => {
|
|
210
210
|
if (entry.level === LogLevel.ERROR) {
|
|
@@ -238,7 +238,7 @@ describe('PluginManager', () => {
|
|
|
238
238
|
const defectLog = capturedErrors.find(
|
|
239
239
|
(entry) =>
|
|
240
240
|
entry.message?.includes('module failed to activate') &&
|
|
241
|
-
entry.context?.module === 'dxos.
|
|
241
|
+
entry.context?.module === 'org.dxos.plugin.test.module.DefectInEffectSync',
|
|
242
242
|
);
|
|
243
243
|
assert.isNotNull(defectLog, 'Expected error log for defect');
|
|
244
244
|
assert.strictEqual(defectLog?.context?.isDefect, true, 'Expected isDefect to be true for synchronous throw');
|
|
@@ -249,7 +249,7 @@ describe('PluginManager', () => {
|
|
|
249
249
|
|
|
250
250
|
it.effect('should catch and log defects when activate throws before returning Effect', () =>
|
|
251
251
|
Effect.gen(function* () {
|
|
252
|
-
const DefectEvent = ActivationEvent.make('dxos.
|
|
252
|
+
const DefectEvent = ActivationEvent.make('org.dxos.test.defect-immediate');
|
|
253
253
|
const capturedErrors: LogEntry[] = [];
|
|
254
254
|
const removeProcessor = log.addProcessor((_config: LogConfig, entry: LogEntry) => {
|
|
255
255
|
if (entry.level === LogLevel.ERROR) {
|
|
@@ -284,7 +284,7 @@ describe('PluginManager', () => {
|
|
|
284
284
|
const defectLog = capturedErrors.find(
|
|
285
285
|
(entry) =>
|
|
286
286
|
entry.message?.includes('module failed to activate') &&
|
|
287
|
-
entry.context?.module === 'dxos.
|
|
287
|
+
entry.context?.module === 'org.dxos.plugin.test.module.DefectImmediate',
|
|
288
288
|
);
|
|
289
289
|
assert.isNotNull(defectLog, 'Expected error log for immediate defect');
|
|
290
290
|
assert.strictEqual(
|
|
@@ -419,7 +419,7 @@ describe('PluginManager', () => {
|
|
|
419
419
|
|
|
420
420
|
it.effect('should be able to fire custom activation events', () =>
|
|
421
421
|
Effect.gen(function* () {
|
|
422
|
-
const Plugin1 = Plugin.define({ id: 'dxos.
|
|
422
|
+
const Plugin1 = Plugin.define({ id: 'org.dxos.test.plugin-1', name: 'Plugin 1' }).pipe(
|
|
423
423
|
Plugin.addModule({
|
|
424
424
|
activatesOn: CountEvent,
|
|
425
425
|
id: 'Plugin1',
|
|
@@ -427,7 +427,7 @@ describe('PluginManager', () => {
|
|
|
427
427
|
}),
|
|
428
428
|
Plugin.make,
|
|
429
429
|
);
|
|
430
|
-
const Plugin2 = Plugin.define({ id: 'dxos.
|
|
430
|
+
const Plugin2 = Plugin.define({ id: 'org.dxos.test.plugin-2', name: 'Plugin 2' }).pipe(
|
|
431
431
|
Plugin.addModule({
|
|
432
432
|
activatesOn: CountEvent,
|
|
433
433
|
id: 'Plugin2',
|
|
@@ -435,7 +435,7 @@ describe('PluginManager', () => {
|
|
|
435
435
|
}),
|
|
436
436
|
Plugin.make,
|
|
437
437
|
);
|
|
438
|
-
const Plugin3 = Plugin.define({ id: 'dxos.
|
|
438
|
+
const Plugin3 = Plugin.define({ id: 'org.dxos.test.plugin-3', name: 'Plugin 3' }).pipe(
|
|
439
439
|
Plugin.addModule({
|
|
440
440
|
activatesOn: CountEvent,
|
|
441
441
|
id: 'Plugin3',
|
|
@@ -546,7 +546,7 @@ describe('PluginManager', () => {
|
|
|
546
546
|
state.total = numbers.reduce((acc: number, n: { number: number }) => acc + n.number, 0);
|
|
547
547
|
};
|
|
548
548
|
|
|
549
|
-
const Count = Plugin.define({ id: 'dxos.
|
|
549
|
+
const Count = Plugin.define({ id: 'org.dxos.test.count', name: 'Count' }).pipe(
|
|
550
550
|
Plugin.addModule({
|
|
551
551
|
id: 'Count',
|
|
552
552
|
activatesOn: ActivationEvents.Startup,
|
|
@@ -626,7 +626,7 @@ describe('PluginManager', () => {
|
|
|
626
626
|
|
|
627
627
|
it.effect('should be reactive', () =>
|
|
628
628
|
Effect.gen(function* () {
|
|
629
|
-
const Plugin1 = Plugin.define({ id: 'dxos.
|
|
629
|
+
const Plugin1 = Plugin.define({ id: 'org.dxos.test.plugin-1', name: 'Plugin 1' }).pipe(
|
|
630
630
|
Plugin.addModule({
|
|
631
631
|
activatesOn: CountEvent,
|
|
632
632
|
id: 'Plugin1',
|
|
@@ -634,7 +634,7 @@ describe('PluginManager', () => {
|
|
|
634
634
|
}),
|
|
635
635
|
Plugin.make,
|
|
636
636
|
);
|
|
637
|
-
const Plugin2 = Plugin.define({ id: 'dxos.
|
|
637
|
+
const Plugin2 = Plugin.define({ id: 'org.dxos.test.plugin-2', name: 'Plugin 2' }).pipe(
|
|
638
638
|
Plugin.addModule({
|
|
639
639
|
activatesOn: CountEvent,
|
|
640
640
|
id: 'Plugin2',
|
|
@@ -642,7 +642,7 @@ describe('PluginManager', () => {
|
|
|
642
642
|
}),
|
|
643
643
|
Plugin.make,
|
|
644
644
|
);
|
|
645
|
-
const Plugin3 = Plugin.define({ id: 'dxos.
|
|
645
|
+
const Plugin3 = Plugin.define({ id: 'org.dxos.test.plugin-3', name: 'Plugin 3' }).pipe(
|
|
646
646
|
Plugin.addModule({
|
|
647
647
|
activatesOn: CountEvent,
|
|
648
648
|
id: 'Plugin3',
|
|
@@ -752,8 +752,8 @@ describe('PluginManager', () => {
|
|
|
752
752
|
}
|
|
753
753
|
});
|
|
754
754
|
|
|
755
|
-
const SlowEvent = ActivationEvent.make('dxos.
|
|
756
|
-
const SlowPlugin = Plugin.define({ id: 'dxos.
|
|
755
|
+
const SlowEvent = ActivationEvent.make('org.dxos.test.slow');
|
|
756
|
+
const SlowPlugin = Plugin.define({ id: 'org.dxos.test.slow-plugin', name: 'Slow Plugin' }).pipe(
|
|
757
757
|
Plugin.addModule({
|
|
758
758
|
id: 'SlowModule',
|
|
759
759
|
activatesOn: SlowEvent,
|
|
@@ -795,11 +795,11 @@ describe('PluginManager', () => {
|
|
|
795
795
|
it.effect('should prevent concurrent loads of the same module via semaphore', () =>
|
|
796
796
|
Effect.gen(function* () {
|
|
797
797
|
// Two different events that both can trigger the same module.
|
|
798
|
-
const EventA = ActivationEvent.make('dxos.
|
|
799
|
-
const EventB = ActivationEvent.make('dxos.
|
|
798
|
+
const EventA = ActivationEvent.make('org.dxos.test.event-a');
|
|
799
|
+
const EventB = ActivationEvent.make('org.dxos.test.event-b');
|
|
800
800
|
|
|
801
801
|
let activateCallCount = 0;
|
|
802
|
-
const ConcurrentPlugin = Plugin.define({ id: 'dxos.
|
|
802
|
+
const ConcurrentPlugin = Plugin.define({ id: 'org.dxos.test.concurrent-plugin', name: 'Concurrent Plugin' }).pipe(
|
|
803
803
|
Plugin.addModule({
|
|
804
804
|
id: 'ConcurrentModule',
|
|
805
805
|
// Module activates on either event - this allows two different events to race.
|
package/src/core/plugin.ts
CHANGED
|
@@ -49,7 +49,7 @@ export const reset = (event: ActivationEvent.ActivationEvent): Effect.Effect<boo
|
|
|
49
49
|
* Computes a module ID from plugin ID and export name.
|
|
50
50
|
*/
|
|
51
51
|
const computeModuleId = (pluginId: string, moduleName: string): string => {
|
|
52
|
-
return `${pluginId}
|
|
52
|
+
return `${pluginId}.module.${moduleName}`;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
/**
|
|
@@ -128,7 +128,7 @@ export type Meta = {
|
|
|
128
128
|
*
|
|
129
129
|
* Expected to be in the form of a valid URL.
|
|
130
130
|
*
|
|
131
|
-
* @example dxos.
|
|
131
|
+
* @example org.dxos.plugin.example
|
|
132
132
|
*/
|
|
133
133
|
id: string;
|
|
134
134
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { type Plugin } from '../core';
|
|
6
6
|
|
|
7
7
|
export const meta: Plugin.Meta = {
|
|
8
|
-
id: 'dxos.
|
|
8
|
+
id: 'org.dxos.plugin.operation',
|
|
9
9
|
name: 'Operation Plugin',
|
|
10
10
|
description: 'Provides operation invocation, undo registry, and history tracking.',
|
|
11
11
|
};
|
package/src/testing/service.ts
CHANGED
|
@@ -36,13 +36,13 @@ export const fromPlugins = (plugins: Plugin.Plugin[]) =>
|
|
|
36
36
|
manager.capabilities.contribute({
|
|
37
37
|
interface: Capabilities.PluginManager,
|
|
38
38
|
implementation: manager,
|
|
39
|
-
module: 'dxos.
|
|
39
|
+
module: 'org.dxos.app-framework.plugin-manager',
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
manager.capabilities.contribute({
|
|
43
43
|
interface: Capabilities.AtomRegistry,
|
|
44
44
|
implementation: manager.registry,
|
|
45
|
-
module: 'dxos.
|
|
45
|
+
module: 'org.dxos.app-framework.atom-registry',
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
yield* manager.activate(ActivationEvents.Startup);
|
|
@@ -75,7 +75,7 @@ export const withPluginManager = <Args,>(init: WithPluginManagerInitializer<Args
|
|
|
75
75
|
|
|
76
76
|
pluginManager.capabilities.contribute({
|
|
77
77
|
...capability,
|
|
78
|
-
module: 'dxos.
|
|
78
|
+
module: 'org.dxos.app-framework.with-plugin-manager',
|
|
79
79
|
});
|
|
80
80
|
|
|
81
81
|
return () => {
|
|
@@ -96,7 +96,7 @@ export const withPluginManager = <Args,>(init: WithPluginManagerInitializer<Args
|
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
const storyMeta = {
|
|
99
|
-
id: 'dxos.
|
|
99
|
+
id: 'org.dxos.app-framework.story',
|
|
100
100
|
name: 'Story',
|
|
101
101
|
};
|
|
102
102
|
|
|
@@ -14,7 +14,7 @@ import { useApp } from '../../hooks';
|
|
|
14
14
|
|
|
15
15
|
// Minimal plugin that contributes a ReactRoot.
|
|
16
16
|
const TestPlugin = Plugin.define<{ error?: boolean }>({
|
|
17
|
-
id: 'dxos.
|
|
17
|
+
id: 'org.dxos.plugin.test',
|
|
18
18
|
name: 'Test Plugin',
|
|
19
19
|
}).pipe(
|
|
20
20
|
Plugin.addModule(({ error }) => ({
|
|
@@ -23,7 +23,7 @@ const TestPlugin = Plugin.define<{ error?: boolean }>({
|
|
|
23
23
|
activate: () =>
|
|
24
24
|
Effect.succeed([
|
|
25
25
|
Capability.contributes(Capabilities.ReactRoot, {
|
|
26
|
-
id: 'dxos.
|
|
26
|
+
id: 'org.dxos.plugin.test.root',
|
|
27
27
|
root: () => {
|
|
28
28
|
useEffect(() => {
|
|
29
29
|
let t: NodeJS.Timeout;
|
|
@@ -78,7 +78,7 @@ const CounterComponent = () => {
|
|
|
78
78
|
}, [counter]);
|
|
79
79
|
|
|
80
80
|
if (!manager) {
|
|
81
|
-
return <div className='p-4 text-
|
|
81
|
+
return <div className='p-4 text-error-text'>Error: Context not found</div>;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
return (
|
|
@@ -116,7 +116,7 @@ const CounterComponent = () => {
|
|
|
116
116
|
|
|
117
117
|
// Plugin that provides the Counter capability and renders the UI
|
|
118
118
|
const CounterPlugin = Plugin.define({
|
|
119
|
-
id: 'dxos.
|
|
119
|
+
id: 'org.dxos.plugin.counter',
|
|
120
120
|
name: 'Counter Plugin',
|
|
121
121
|
}).pipe(
|
|
122
122
|
Plugin.addModule({
|
|
@@ -142,7 +142,7 @@ const CounterPlugin = Plugin.define({
|
|
|
142
142
|
|
|
143
143
|
// Contribute the UI
|
|
144
144
|
Capability.contributes(Capabilities.ReactRoot, {
|
|
145
|
-
id: 'dxos.
|
|
145
|
+
id: 'org.dxos.plugin.counter.root',
|
|
146
146
|
root: CounterComponent,
|
|
147
147
|
}),
|
|
148
148
|
]);
|
|
@@ -152,7 +152,7 @@ const CounterPlugin = Plugin.define({
|
|
|
152
152
|
)();
|
|
153
153
|
|
|
154
154
|
const plugins = [CounterPlugin];
|
|
155
|
-
const core = ['dxos.
|
|
155
|
+
const core = ['org.dxos.plugin.counter'];
|
|
156
156
|
const placeholder = () => (
|
|
157
157
|
<div className='flex h-screen items-center justify-center p-4 text-lg text-neutral-500'>
|
|
158
158
|
Initializing Application...
|
package/src/ui/hooks/useApp.tsx
CHANGED
|
@@ -21,7 +21,7 @@ import { PluginManagerContext } from '../../context';
|
|
|
21
21
|
import { type ActivationEvent, type Plugin, PluginManager } from '../../core';
|
|
22
22
|
import { App, PluginManagerProvider } from '../components';
|
|
23
23
|
|
|
24
|
-
const ENABLED_KEY = 'dxos.
|
|
24
|
+
const ENABLED_KEY = 'org.dxos.app-framework.enabled';
|
|
25
25
|
|
|
26
26
|
export type UseAppOptions = {
|
|
27
27
|
pluginManager?: PluginManager.PluginManager;
|
|
@@ -131,13 +131,13 @@ export const useApp = ({
|
|
|
131
131
|
manager.capabilities.contribute({
|
|
132
132
|
interface: Capabilities.PluginManager,
|
|
133
133
|
implementation: manager,
|
|
134
|
-
module: 'dxos.
|
|
134
|
+
module: 'org.dxos.app-framework.plugin-manager',
|
|
135
135
|
});
|
|
136
136
|
|
|
137
137
|
manager.capabilities.contribute({
|
|
138
138
|
interface: Capabilities.AtomRegistry,
|
|
139
139
|
implementation: manager.registry,
|
|
140
|
-
module: 'dxos.
|
|
140
|
+
module: 'org.dxos.app-framework.atom-registry',
|
|
141
141
|
});
|
|
142
142
|
|
|
143
143
|
const fiber = Effect.gen(function* () {
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
activation_event_exports
|
|
3
|
-
} from "./chunk-PKQT6C53.mjs";
|
|
4
|
-
import {
|
|
5
|
-
__export
|
|
6
|
-
} from "./chunk-J5LGTIGS.mjs";
|
|
7
|
-
|
|
8
|
-
// src/common/activation-events.ts
|
|
9
|
-
var activation_events_exports = {};
|
|
10
|
-
__export(activation_events_exports, {
|
|
11
|
-
ManagedRuntimeReady: () => ManagedRuntimeReady,
|
|
12
|
-
OperationInvokerReady: () => OperationInvokerReady,
|
|
13
|
-
SetupLayer: () => SetupLayer,
|
|
14
|
-
SetupOperationResolver: () => SetupOperationResolver,
|
|
15
|
-
SetupReactSurface: () => SetupReactSurface,
|
|
16
|
-
Startup: () => Startup
|
|
17
|
-
});
|
|
18
|
-
var Startup = activation_event_exports.make("dxos.org/app-framework/event/startup");
|
|
19
|
-
var SetupReactSurface = activation_event_exports.make("dxos.org/app-framework/event/setup-react-surface");
|
|
20
|
-
var SetupOperationResolver = activation_event_exports.make("dxos.org/app-framework/event/setup-operation-resolver");
|
|
21
|
-
var SetupLayer = activation_event_exports.make("dxos.org/app-framework/event/setup-layer");
|
|
22
|
-
var OperationInvokerReady = activation_event_exports.make("dxos.org/app-framework/event/operation-invoker-ready");
|
|
23
|
-
var ManagedRuntimeReady = activation_event_exports.make("dxos.org/app-framework/event/managed-runtime-ready");
|
|
24
|
-
|
|
25
|
-
export {
|
|
26
|
-
Startup,
|
|
27
|
-
SetupReactSurface,
|
|
28
|
-
SetupOperationResolver,
|
|
29
|
-
SetupLayer,
|
|
30
|
-
OperationInvokerReady,
|
|
31
|
-
ManagedRuntimeReady,
|
|
32
|
-
activation_events_exports
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=chunk-NPUEVX42.mjs.map
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|