@dxos/plugin-client 0.7.4 → 0.7.5-feature-compute.4d9d99a

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.
Files changed (132) hide show
  1. package/dist/lib/browser/app-graph-builder-6LOTDB4T.mjs +44 -0
  2. package/dist/lib/browser/app-graph-builder-6LOTDB4T.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-6IF6PREG.mjs +158 -0
  4. package/dist/lib/browser/chunk-6IF6PREG.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-E3OUNOEL.mjs +76 -0
  6. package/dist/lib/browser/chunk-E3OUNOEL.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-NHIL4T3L.mjs +12 -0
  8. package/dist/lib/browser/chunk-NHIL4T3L.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-R4Q6H7RD.mjs +18 -0
  10. package/dist/lib/browser/chunk-R4Q6H7RD.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-SVBQRT7I.mjs +17 -0
  12. package/dist/lib/browser/chunk-SVBQRT7I.mjs.map +7 -0
  13. package/dist/lib/browser/client-25GYH6TN.mjs +45 -0
  14. package/dist/lib/browser/client-25GYH6TN.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +70 -428
  16. package/dist/lib/browser/index.mjs.map +4 -4
  17. package/dist/lib/browser/intent-resolver-IWWLWOZD.mjs +132 -0
  18. package/dist/lib/browser/intent-resolver-IWWLWOZD.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/react-context-M3RT6SSG.mjs +24 -0
  21. package/dist/lib/browser/react-context-M3RT6SSG.mjs.map +7 -0
  22. package/dist/lib/browser/react-surface-XXONPG5T.mjs +41 -0
  23. package/dist/lib/browser/react-surface-XXONPG5T.mjs.map +7 -0
  24. package/dist/lib/browser/types.mjs +8 -0
  25. package/dist/lib/node/app-graph-builder-JCND3P6G.cjs +58 -0
  26. package/dist/lib/node/app-graph-builder-JCND3P6G.cjs.map +7 -0
  27. package/dist/lib/node/chunk-3OB25QN2.cjs +36 -0
  28. package/dist/lib/node/chunk-3OB25QN2.cjs.map +7 -0
  29. package/dist/lib/node/chunk-IXVWJCYB.cjs +37 -0
  30. package/dist/lib/node/chunk-IXVWJCYB.cjs.map +7 -0
  31. package/dist/lib/node/chunk-N3U7KVO3.cjs +186 -0
  32. package/dist/lib/node/chunk-N3U7KVO3.cjs.map +7 -0
  33. package/dist/lib/node/chunk-NVYWMDF3.cjs +95 -0
  34. package/dist/lib/node/chunk-NVYWMDF3.cjs.map +7 -0
  35. package/dist/lib/node/{meta.cjs → chunk-OIFPM5ZW.cjs} +12 -11
  36. package/dist/lib/node/chunk-OIFPM5ZW.cjs.map +7 -0
  37. package/dist/lib/node/client-52L4TUYU.cjs +59 -0
  38. package/dist/lib/node/client-52L4TUYU.cjs.map +7 -0
  39. package/dist/lib/node/index.cjs +65 -416
  40. package/dist/lib/node/index.cjs.map +4 -4
  41. package/dist/lib/node/intent-resolver-H3Y64MIP.cjs +140 -0
  42. package/dist/lib/node/intent-resolver-H3Y64MIP.cjs.map +7 -0
  43. package/dist/lib/node/meta.json +1 -1
  44. package/dist/lib/node/react-context-B2DNULH4.cjs +48 -0
  45. package/dist/lib/node/react-context-B2DNULH4.cjs.map +7 -0
  46. package/dist/lib/node/react-surface-7USN5NOO.cjs +62 -0
  47. package/dist/lib/node/react-surface-7USN5NOO.cjs.map +7 -0
  48. package/dist/lib/node/types.cjs +30 -0
  49. package/dist/lib/node/types.cjs.map +7 -0
  50. package/dist/lib/node-esm/app-graph-builder-ZLGKFBLY.mjs +45 -0
  51. package/dist/lib/node-esm/app-graph-builder-ZLGKFBLY.mjs.map +7 -0
  52. package/dist/lib/node-esm/chunk-73M5MK5Q.mjs +19 -0
  53. package/dist/lib/node-esm/chunk-73M5MK5Q.mjs.map +7 -0
  54. package/dist/lib/node-esm/chunk-74T33KTB.mjs +77 -0
  55. package/dist/lib/node-esm/chunk-74T33KTB.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-EHGD3UJH.mjs +159 -0
  57. package/dist/lib/node-esm/chunk-EHGD3UJH.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-HO7WDE7C.mjs +14 -0
  59. package/dist/lib/node-esm/chunk-HO7WDE7C.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-OBGRL3DF.mjs +18 -0
  61. package/dist/lib/node-esm/chunk-OBGRL3DF.mjs.map +7 -0
  62. package/dist/lib/node-esm/client-K52NWOUN.mjs +46 -0
  63. package/dist/lib/node-esm/client-K52NWOUN.mjs.map +7 -0
  64. package/dist/lib/node-esm/index.mjs +70 -428
  65. package/dist/lib/node-esm/index.mjs.map +4 -4
  66. package/dist/lib/node-esm/intent-resolver-JCKD6R6L.mjs +133 -0
  67. package/dist/lib/node-esm/intent-resolver-JCKD6R6L.mjs.map +7 -0
  68. package/dist/lib/node-esm/meta.json +1 -1
  69. package/dist/lib/node-esm/react-context-IGEHJQK5.mjs +25 -0
  70. package/dist/lib/node-esm/react-context-IGEHJQK5.mjs.map +7 -0
  71. package/dist/lib/node-esm/react-surface-CXLBCMPN.mjs +42 -0
  72. package/dist/lib/node-esm/react-surface-CXLBCMPN.mjs.map +7 -0
  73. package/dist/lib/node-esm/types.mjs +9 -0
  74. package/dist/types/src/ClientPlugin.d.ts +2 -36
  75. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  76. package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
  77. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  78. package/dist/types/src/capabilities/capabilities.d.ts +8 -0
  79. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/client.d.ts +9 -0
  81. package/dist/types/src/capabilities/client.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/index.d.ts +193 -0
  83. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  84. package/dist/types/src/capabilities/intent-resolver.d.ts +8 -0
  85. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/react-context.d.ts +8 -0
  87. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  88. package/dist/types/src/capabilities/react-surface.d.ts +7 -0
  89. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  90. package/dist/types/src/components/IdentityDialog.d.ts +1 -0
  91. package/dist/types/src/components/IdentityDialog.d.ts.map +1 -1
  92. package/dist/types/src/components/JoinDialog.d.ts +1 -0
  93. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  94. package/dist/types/src/components/RecoveryCodeDialog.d.ts +1 -0
  95. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
  96. package/dist/types/src/events.d.ts +7 -0
  97. package/dist/types/src/events.d.ts.map +1 -0
  98. package/dist/types/src/index.d.ts +3 -2
  99. package/dist/types/src/index.d.ts.map +1 -1
  100. package/dist/types/src/meta.d.ts +1 -12
  101. package/dist/types/src/meta.d.ts.map +1 -1
  102. package/dist/types/src/types.d.ts +98 -0
  103. package/dist/types/src/types.d.ts.map +1 -0
  104. package/dist/types/tsconfig.tsbuildinfo +1 -0
  105. package/package.json +21 -19
  106. package/src/ClientPlugin.ts +59 -0
  107. package/src/capabilities/app-graph-builder.ts +39 -0
  108. package/src/capabilities/capabilities.ts +15 -0
  109. package/src/capabilities/client.ts +48 -0
  110. package/src/capabilities/index.ts +13 -0
  111. package/src/capabilities/intent-resolver.ts +101 -0
  112. package/src/capabilities/react-context.tsx +20 -0
  113. package/src/capabilities/react-surface.tsx +44 -0
  114. package/src/components/IdentityDialog.tsx +13 -11
  115. package/src/components/JoinDialog.tsx +13 -19
  116. package/src/components/RecoveryCodeDialog.tsx +3 -1
  117. package/src/events.ts +14 -0
  118. package/src/index.ts +4 -4
  119. package/src/meta.ts +1 -15
  120. package/src/types.ts +89 -0
  121. package/dist/lib/browser/chunk-FGUXUNOK.mjs +0 -26
  122. package/dist/lib/browser/chunk-FGUXUNOK.mjs.map +0 -7
  123. package/dist/lib/browser/meta.mjs +0 -13
  124. package/dist/lib/node/chunk-XYLDQWFV.cjs +0 -51
  125. package/dist/lib/node/chunk-XYLDQWFV.cjs.map +0 -7
  126. package/dist/lib/node/meta.cjs.map +0 -7
  127. package/dist/lib/node-esm/chunk-C6X363FK.mjs +0 -28
  128. package/dist/lib/node-esm/chunk-C6X363FK.mjs.map +0 -7
  129. package/dist/lib/node-esm/meta.mjs +0 -14
  130. package/src/ClientPlugin.tsx +0 -316
  131. /package/dist/lib/browser/{meta.mjs.map → types.mjs.map} +0 -0
  132. /package/dist/lib/node-esm/{meta.mjs.map → types.mjs.map} +0 -0
@@ -1,14 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- CLIENT_PLUGIN,
4
- ClientAction,
5
- OBSERVABILITY_ACTION,
6
- meta_default
7
- } from "./chunk-C6X363FK.mjs";
8
- export {
9
- CLIENT_PLUGIN,
10
- ClientAction,
11
- OBSERVABILITY_ACTION,
12
- meta_default as default
13
- };
14
- //# sourceMappingURL=meta.mjs.map
@@ -1,316 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import {
8
- LayoutAction,
9
- parseIntentPlugin,
10
- resolvePlugin,
11
- type SurfaceProvides,
12
- type GraphBuilderProvides,
13
- type IntentResolverProvides,
14
- type Plugin,
15
- type PluginDefinition,
16
- type TranslationsProvides,
17
- } from '@dxos/app-framework';
18
- import { Config, Defaults, Envs, Local, Storage } from '@dxos/config';
19
- import { registerSignalsRuntime } from '@dxos/echo-signals/react';
20
- import { invariant } from '@dxos/invariant';
21
- import { createExtension, type Node } from '@dxos/plugin-graph';
22
- import { Client, type ClientOptions, ClientProvider } from '@dxos/react-client';
23
- import { type IdentityPanelProps, type JoinPanelProps } from '@dxos/shell/react';
24
-
25
- import { IdentityDialog, JoinDialog, RecoveryCodeDialog, type RecoveryCodeDialogProps } from './components';
26
- import meta, { CLIENT_PLUGIN, ClientAction, OBSERVABILITY_ACTION } from './meta';
27
- import translations from './translations';
28
-
29
- export type ClientPluginOptions = ClientOptions & {
30
- /**
31
- * Used to track app-specific state in spaces.
32
- */
33
- appKey: string;
34
-
35
- /**
36
- * Base URL for the invitation link.
37
- */
38
- invitationUrl?: string;
39
-
40
- /**
41
- * Query parameter for the invitation code.
42
- */
43
- invitationParam?: string;
44
-
45
- /**
46
- * Run after the client has been initialized.
47
- */
48
- onClientInitialized?: (client: Client) => Promise<void>;
49
-
50
- /**
51
- * Run after the identity has been successfully initialized.
52
- * Run with client during plugin ready phase.
53
- */
54
- onReady?: (client: Client, plugins: Plugin[]) => Promise<void>;
55
-
56
- /**
57
- * Called when the client is reset.
58
- */
59
- onReset?: (params: { target?: string }) => Promise<void>;
60
- };
61
-
62
- export type ClientPluginProvides = IntentResolverProvides &
63
- GraphBuilderProvides &
64
- SurfaceProvides &
65
- TranslationsProvides & {
66
- client: Client;
67
- };
68
-
69
- export const parseClientPlugin = (plugin?: Plugin) =>
70
- (plugin?.provides as any).client instanceof Client ? (plugin as Plugin<ClientPluginProvides>) : undefined;
71
-
72
- export const ClientPlugin = ({
73
- appKey,
74
- invitationUrl = window.location.origin,
75
- invitationParam = 'deviceInvitationCode',
76
- onClientInitialized,
77
- onReady,
78
- onReset,
79
- ...options
80
- }: ClientPluginOptions): PluginDefinition<
81
- Omit<ClientPluginProvides, 'client'>,
82
- Pick<ClientPluginProvides, 'client'>
83
- > => {
84
- registerSignalsRuntime();
85
-
86
- let client: Client;
87
- let error: unknown = null;
88
-
89
- const createDeviceInvitationUrl = (invitationCode: string) => {
90
- const baseUrl = new URL(invitationUrl);
91
- baseUrl.searchParams.set(invitationParam, invitationCode);
92
- return baseUrl.toString();
93
- };
94
-
95
- return {
96
- meta,
97
- initialize: async () => {
98
- const config = new Config(await Storage(), Envs(), Local(), Defaults());
99
- client = new Client({ config, ...options });
100
-
101
- try {
102
- await client.initialize();
103
- await onClientInitialized?.(client);
104
-
105
- // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.
106
- client.reloaded.on(() => {
107
- client.halo.identity.subscribe(async (identity) => {
108
- if (identity) {
109
- window.location.href = window.location.origin;
110
- }
111
- });
112
- });
113
- } catch (err) {
114
- error = err;
115
- }
116
-
117
- return {
118
- client,
119
- context: ({ children }) => <ClientProvider client={client}>{children}</ClientProvider>,
120
- };
121
- },
122
- ready: async (plugins) => {
123
- if (error) {
124
- throw error;
125
- }
126
-
127
- await onReady?.(client, plugins);
128
- },
129
- unload: async () => {
130
- await client.destroy();
131
- },
132
- provides: {
133
- translations,
134
- surface: {
135
- component: ({ data, role, ...rest }) => {
136
- switch (role) {
137
- case 'dialog':
138
- if (data.component === 'dxos.org/plugin/client/IdentityDialog') {
139
- return (
140
- <IdentityDialog
141
- {...(data.subject as IdentityPanelProps)}
142
- createInvitationUrl={createDeviceInvitationUrl}
143
- />
144
- );
145
- } else if (data.component === 'dxos.org/plugin/client/JoinDialog') {
146
- return <JoinDialog {...(data.subject as JoinPanelProps)} />;
147
- } else if (data.component === 'dxos.org/plugin/client/RecoveryCodeDialog') {
148
- return <RecoveryCodeDialog {...(data.subject as RecoveryCodeDialogProps)} />;
149
- }
150
- break;
151
- }
152
-
153
- return null;
154
- },
155
- },
156
- graph: {
157
- builder: (plugins) => {
158
- const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);
159
- const id = `${CLIENT_PLUGIN}/open-shell`;
160
-
161
- return createExtension({
162
- id: CLIENT_PLUGIN,
163
- filter: (node): node is Node<null> => node.id === 'root',
164
- actions: () => [
165
- {
166
- id,
167
- data: async () => {
168
- await intentPlugin?.provides.intent.dispatch([
169
- { plugin: CLIENT_PLUGIN, action: ClientAction.SHARE_IDENTITY },
170
- ]);
171
- },
172
- properties: {
173
- label: ['open shell label', { ns: CLIENT_PLUGIN }],
174
- icon: 'ph--address-book--regular',
175
- keyBinding: {
176
- macos: 'meta+shift+.',
177
- // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
178
- windows: 'alt+shift+.',
179
- linux: 'alt+shift+>',
180
- },
181
- testId: 'clientPlugin.openShell',
182
- },
183
- },
184
- ],
185
- });
186
- },
187
- },
188
- intent: {
189
- resolver: async (intent) => {
190
- switch (intent.action) {
191
- case ClientAction.CREATE_IDENTITY: {
192
- const data = await client.halo.createIdentity();
193
- return {
194
- data,
195
- intents: [
196
- [
197
- {
198
- action: OBSERVABILITY_ACTION,
199
- data: {
200
- name: 'identity.create',
201
- },
202
- },
203
- ],
204
- ],
205
- };
206
- }
207
-
208
- case ClientAction.JOIN_IDENTITY: {
209
- return {
210
- data: true,
211
- intents: [
212
- [
213
- {
214
- action: LayoutAction.SET_LAYOUT,
215
- data: {
216
- element: 'dialog',
217
- component: 'dxos.org/plugin/client/JoinDialog',
218
- dialogBlockAlign: 'start',
219
- subject: {
220
- initialInvitationCode: intent.data?.invitationCode,
221
- initialDisposition: 'accept-halo-invitation',
222
- } satisfies Partial<JoinPanelProps>,
223
- },
224
- },
225
- ],
226
- ],
227
- };
228
- }
229
-
230
- case ClientAction.SHARE_IDENTITY: {
231
- return {
232
- data: true,
233
- intents: [
234
- [
235
- {
236
- action: LayoutAction.SET_LAYOUT,
237
- data: {
238
- element: 'dialog',
239
- component: 'dxos.org/plugin/client/IdentityDialog',
240
- dialogBlockAlign: 'start',
241
- },
242
- },
243
- ],
244
- [
245
- {
246
- action: OBSERVABILITY_ACTION,
247
- data: {
248
- name: 'identity.share',
249
- },
250
- },
251
- ],
252
- ],
253
- };
254
- }
255
-
256
- case ClientAction.RECOVER_IDENTITY: {
257
- return {
258
- data: true,
259
- intents: [
260
- [
261
- {
262
- action: LayoutAction.SET_LAYOUT,
263
- data: {
264
- element: 'dialog',
265
- component: 'dxos.org/plugin/client/JoinDialog',
266
- dialogBlockAlign: 'start',
267
- subject: {
268
- initialDisposition: 'recover-identity',
269
- } satisfies Partial<JoinPanelProps>,
270
- },
271
- },
272
- ],
273
- ],
274
- };
275
- }
276
-
277
- case ClientAction.RESET_STORAGE: {
278
- await onReset?.({ target: intent.data?.target });
279
- return { data: true };
280
- }
281
-
282
- case ClientAction.CREATE_AGENT: {
283
- invariant(client.services.services.EdgeAgentService, 'Missing EdgeAgentService');
284
- await client.services.services.EdgeAgentService.createAgent(null as any, { timeout: 10_000 });
285
- return { data: true };
286
- }
287
-
288
- case ClientAction.CREATE_RECOVERY_CODE: {
289
- invariant(client.services.services.IdentityService, 'IdentityService not available');
290
- // TODO(wittjosiah): This needs a proper api. Rename property.
291
- const { seedphrase } = await client.services.services.IdentityService.createRecoveryPhrase();
292
- return {
293
- data: true,
294
- intents: [
295
- [
296
- {
297
- action: LayoutAction.SET_LAYOUT,
298
- data: {
299
- element: 'dialog',
300
- dialogBlockAlign: 'start',
301
- dialogType: 'alert',
302
- state: true,
303
- component: 'dxos.org/plugin/client/RecoveryCodeDialog',
304
- subject: { code: seedphrase },
305
- },
306
- },
307
- ],
308
- ],
309
- };
310
- }
311
- }
312
- },
313
- },
314
- },
315
- };
316
- };