@dxos/plugin-client 0.7.5-main.499c70c → 0.7.5-main.5ae2ba8

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 (160) hide show
  1. package/dist/lib/browser/app-graph-builder-ON64R7SO.mjs +44 -0
  2. package/dist/lib/browser/app-graph-builder-ON64R7SO.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-52IJQ35F.mjs → chunk-7DPLXOMO.mjs} +17 -7
  4. package/dist/lib/browser/chunk-7DPLXOMO.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-EYBZZHSM.mjs +271 -0
  6. package/dist/lib/browser/chunk-EYBZZHSM.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-GHEQL2E6.mjs +16 -0
  8. package/dist/lib/browser/chunk-GHEQL2E6.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-X4QUPYC6.mjs → chunk-NHIL4T3L.mjs} +3 -3
  10. package/dist/lib/browser/chunk-NHIL4T3L.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-RGMLBYIF.mjs +18 -0
  12. package/dist/lib/browser/chunk-RGMLBYIF.mjs.map +7 -0
  13. package/dist/lib/browser/client-A7YSVURS.mjs +36 -0
  14. package/dist/lib/browser/client-A7YSVURS.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +83 -370
  16. package/dist/lib/browser/index.mjs.map +4 -4
  17. package/dist/lib/browser/intent-resolver-SSM6WXAW.mjs +263 -0
  18. package/dist/lib/browser/intent-resolver-SSM6WXAW.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/react-context-R3SG55F5.mjs +24 -0
  21. package/dist/lib/browser/react-context-R3SG55F5.mjs.map +7 -0
  22. package/dist/lib/browser/react-surface-XGOUHVIH.mjs +57 -0
  23. package/dist/lib/browser/react-surface-XGOUHVIH.mjs.map +7 -0
  24. package/dist/lib/browser/schema-J4MJIXRP.mjs +23 -0
  25. package/dist/lib/browser/schema-J4MJIXRP.mjs.map +7 -0
  26. package/dist/lib/browser/types.mjs +4 -6
  27. package/dist/lib/node/app-graph-builder-RW7ESEX3.cjs +58 -0
  28. package/dist/lib/node/app-graph-builder-RW7ESEX3.cjs.map +7 -0
  29. package/dist/lib/node/chunk-7LVBFGKQ.cjs +299 -0
  30. package/dist/lib/node/chunk-7LVBFGKQ.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-RUA5KXVW.cjs → chunk-OIFPM5ZW.cjs} +7 -7
  32. package/dist/lib/node/chunk-OIFPM5ZW.cjs.map +7 -0
  33. package/dist/lib/node/{chunk-NFO3ADQC.cjs → chunk-TREVKZCJ.cjs} +21 -12
  34. package/dist/lib/node/chunk-TREVKZCJ.cjs.map +7 -0
  35. package/dist/lib/node/{meta.cjs → chunk-UHIGZJQL.cjs} +13 -8
  36. package/dist/lib/node/chunk-UHIGZJQL.cjs.map +7 -0
  37. package/dist/lib/node/chunk-XPC4JOPP.cjs +37 -0
  38. package/dist/lib/node/chunk-XPC4JOPP.cjs.map +7 -0
  39. package/dist/lib/node/client-2RQATBB6.cjs +50 -0
  40. package/dist/lib/node/client-2RQATBB6.cjs.map +7 -0
  41. package/dist/lib/node/index.cjs +80 -359
  42. package/dist/lib/node/index.cjs.map +4 -4
  43. package/dist/lib/node/intent-resolver-RIHCW2KJ.cjs +271 -0
  44. package/dist/lib/node/intent-resolver-RIHCW2KJ.cjs.map +7 -0
  45. package/dist/lib/node/meta.json +1 -1
  46. package/dist/lib/node/react-context-TD6VGBVA.cjs +48 -0
  47. package/dist/lib/node/react-context-TD6VGBVA.cjs.map +7 -0
  48. package/dist/lib/node/react-surface-IY7GXEGU.cjs +74 -0
  49. package/dist/lib/node/react-surface-IY7GXEGU.cjs.map +7 -0
  50. package/dist/lib/node/schema-JXJS75HQ.cjs +39 -0
  51. package/dist/lib/node/schema-JXJS75HQ.cjs.map +7 -0
  52. package/dist/lib/node/types.cjs +4 -6
  53. package/dist/lib/node/types.cjs.map +2 -2
  54. package/dist/lib/node-esm/app-graph-builder-TDYRWNI7.mjs +45 -0
  55. package/dist/lib/node-esm/app-graph-builder-TDYRWNI7.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-CRF22MJJ.mjs +272 -0
  57. package/dist/lib/node-esm/chunk-CRF22MJJ.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-GMGRQ5Q7.mjs → chunk-HO7WDE7C.mjs} +3 -3
  59. package/dist/lib/node-esm/chunk-HO7WDE7C.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-TI4GNGMM.mjs → chunk-QJMF2MWP.mjs} +17 -7
  61. package/dist/lib/node-esm/chunk-QJMF2MWP.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-QR72BXJK.mjs +19 -0
  63. package/dist/lib/node-esm/chunk-QR72BXJK.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-T35SFKK3.mjs +17 -0
  65. package/dist/lib/node-esm/chunk-T35SFKK3.mjs.map +7 -0
  66. package/dist/lib/node-esm/client-36DKBSB7.mjs +37 -0
  67. package/dist/lib/node-esm/client-36DKBSB7.mjs.map +7 -0
  68. package/dist/lib/node-esm/index.mjs +83 -370
  69. package/dist/lib/node-esm/index.mjs.map +4 -4
  70. package/dist/lib/node-esm/intent-resolver-WWTVE6T6.mjs +264 -0
  71. package/dist/lib/node-esm/intent-resolver-WWTVE6T6.mjs.map +7 -0
  72. package/dist/lib/node-esm/meta.json +1 -1
  73. package/dist/lib/node-esm/react-context-ZOGDOWJ2.mjs +25 -0
  74. package/dist/lib/node-esm/react-context-ZOGDOWJ2.mjs.map +7 -0
  75. package/dist/lib/node-esm/react-surface-F3PDFJMV.mjs +58 -0
  76. package/dist/lib/node-esm/react-surface-F3PDFJMV.mjs.map +7 -0
  77. package/dist/lib/node-esm/schema-XM4HBLIX.mjs +24 -0
  78. package/dist/lib/node-esm/schema-XM4HBLIX.mjs.map +7 -0
  79. package/dist/lib/node-esm/types.mjs +4 -6
  80. package/dist/types/src/ClientPlugin.d.ts +2 -3
  81. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
  83. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  84. package/dist/types/src/capabilities/capabilities.d.ts +7 -0
  85. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/client.d.ts +9 -0
  87. package/dist/types/src/capabilities/client.d.ts.map +1 -0
  88. package/dist/types/src/capabilities/index.d.ts +195 -0
  89. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/intent-resolver.d.ts +9 -0
  91. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/react-context.d.ts +8 -0
  93. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/react-surface.d.ts +7 -0
  95. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  96. package/dist/types/src/capabilities/schema.d.ts +4 -0
  97. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  98. package/dist/types/src/components/IdentityDialog.d.ts +1 -2
  99. package/dist/types/src/components/IdentityDialog.d.ts.map +1 -1
  100. package/dist/types/src/components/JoinDialog.d.ts +1 -2
  101. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  102. package/dist/types/src/components/ManageCredentialsDialog.d.ts +3 -0
  103. package/dist/types/src/components/ManageCredentialsDialog.d.ts.map +1 -0
  104. package/dist/types/src/components/ManageCredentialsDialog.stories.d.ts +8 -0
  105. package/dist/types/src/components/ManageCredentialsDialog.stories.d.ts.map +1 -0
  106. package/dist/types/src/components/RecoveryCodeDialog.d.ts +1 -2
  107. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
  108. package/dist/types/src/components/RecoverySetupDialog.d.ts +3 -0
  109. package/dist/types/src/components/RecoverySetupDialog.d.ts.map +1 -0
  110. package/dist/types/src/components/RecoverySetupDialog.stories.d.ts +8 -0
  111. package/dist/types/src/components/RecoverySetupDialog.stories.d.ts.map +1 -0
  112. package/dist/types/src/components/index.d.ts +1 -0
  113. package/dist/types/src/components/index.d.ts.map +1 -1
  114. package/dist/types/src/events.d.ts +7 -0
  115. package/dist/types/src/events.d.ts.map +1 -0
  116. package/dist/types/src/index.d.ts +3 -2
  117. package/dist/types/src/index.d.ts.map +1 -1
  118. package/dist/types/src/meta.d.ts +1 -2
  119. package/dist/types/src/meta.d.ts.map +1 -1
  120. package/dist/types/src/translations.d.ts +7 -0
  121. package/dist/types/src/translations.d.ts.map +1 -1
  122. package/dist/types/src/types.d.ts +22 -18
  123. package/dist/types/src/types.d.ts.map +1 -1
  124. package/dist/types/tsconfig.tsbuildinfo +1 -1
  125. package/package.json +23 -24
  126. package/src/ClientPlugin.ts +64 -0
  127. package/src/capabilities/app-graph-builder.ts +39 -0
  128. package/src/capabilities/capabilities.ts +14 -0
  129. package/src/capabilities/client.ts +40 -0
  130. package/src/capabilities/index.ts +14 -0
  131. package/src/capabilities/intent-resolver.ts +198 -0
  132. package/src/capabilities/react-context.tsx +20 -0
  133. package/src/capabilities/react-surface.tsx +59 -0
  134. package/src/capabilities/schema.ts +26 -0
  135. package/src/components/IdentityDialog.tsx +15 -3
  136. package/src/components/JoinDialog.tsx +1 -1
  137. package/src/components/ManageCredentialsDialog.stories.tsx +57 -0
  138. package/src/components/ManageCredentialsDialog.tsx +64 -0
  139. package/src/components/RecoveryCodeDialog.stories.tsx +5 -5
  140. package/src/components/RecoveryCodeDialog.tsx +2 -1
  141. package/src/components/RecoverySetupDialog.stories.tsx +77 -0
  142. package/src/components/RecoverySetupDialog.tsx +52 -0
  143. package/src/components/index.ts +1 -0
  144. package/src/events.ts +14 -0
  145. package/src/index.ts +4 -4
  146. package/src/meta.ts +1 -1
  147. package/src/translations.ts +10 -1
  148. package/src/types.ts +16 -32
  149. package/dist/lib/browser/chunk-52IJQ35F.mjs.map +0 -7
  150. package/dist/lib/browser/chunk-X4QUPYC6.mjs.map +0 -7
  151. package/dist/lib/browser/meta.mjs +0 -9
  152. package/dist/lib/browser/meta.mjs.map +0 -7
  153. package/dist/lib/node/chunk-NFO3ADQC.cjs.map +0 -7
  154. package/dist/lib/node/chunk-RUA5KXVW.cjs.map +0 -7
  155. package/dist/lib/node/meta.cjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-GMGRQ5Q7.mjs.map +0 -7
  157. package/dist/lib/node-esm/chunk-TI4GNGMM.mjs.map +0 -7
  158. package/dist/lib/node-esm/meta.mjs +0 -10
  159. package/dist/lib/node-esm/meta.mjs.map +0 -7
  160. package/src/ClientPlugin.tsx +0 -227
@@ -1,227 +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 PluginDefinition,
12
- createSurface,
13
- createIntent,
14
- createResolver,
15
- } from '@dxos/app-framework';
16
- import { Config, Defaults, Envs, Local, Storage } from '@dxos/config';
17
- import { registerSignalsRuntime } from '@dxos/echo-signals/react';
18
- import { invariant } from '@dxos/invariant';
19
- import { createExtension, type Node } from '@dxos/plugin-graph';
20
- import { ObservabilityAction } from '@dxos/plugin-observability/types';
21
- import { Client, ClientProvider } from '@dxos/react-client';
22
- import { type IdentityPanelProps, type JoinPanelProps } from '@dxos/shell/react';
23
-
24
- import {
25
- IDENTITY_DIALOG,
26
- IdentityDialog,
27
- JOIN_DIALOG,
28
- JoinDialog,
29
- RECOVER_CODE_DIALOG,
30
- RecoveryCodeDialog,
31
- type RecoveryCodeDialogProps,
32
- } from './components';
33
- import meta, { CLIENT_PLUGIN } from './meta';
34
- import translations from './translations';
35
- import { ClientAction, type ClientPluginOptions, type ClientPluginProvides } from './types';
36
-
37
- export const ClientPlugin = ({
38
- appKey,
39
- invitationUrl = window.location.origin,
40
- invitationParam = 'deviceInvitationCode',
41
- onClientInitialized,
42
- onReady,
43
- onReset,
44
- ...options
45
- }: ClientPluginOptions): PluginDefinition<
46
- Omit<ClientPluginProvides, 'client'>,
47
- Pick<ClientPluginProvides, 'client'>
48
- > => {
49
- registerSignalsRuntime();
50
-
51
- let client: Client;
52
- let error: unknown = null;
53
-
54
- const createDeviceInvitationUrl = (invitationCode: string) => {
55
- const baseUrl = new URL(invitationUrl);
56
- baseUrl.searchParams.set(invitationParam, invitationCode);
57
- return baseUrl.toString();
58
- };
59
-
60
- return {
61
- meta,
62
- initialize: async () => {
63
- const config = new Config(await Storage(), Envs(), Local(), Defaults());
64
- client = new Client({ config, ...options });
65
-
66
- try {
67
- await client.initialize();
68
- await onClientInitialized?.(client);
69
-
70
- // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.
71
- client.reloaded.on(() => {
72
- client.halo.identity.subscribe(async (identity) => {
73
- if (identity) {
74
- window.location.href = window.location.origin;
75
- }
76
- });
77
- });
78
- } catch (err) {
79
- error = err;
80
- }
81
-
82
- return {
83
- client,
84
- context: ({ children }) => <ClientProvider client={client}>{children}</ClientProvider>,
85
- };
86
- },
87
- ready: async ({ plugins }) => {
88
- if (error) {
89
- throw error;
90
- }
91
-
92
- await onReady?.(client, plugins);
93
- },
94
- unload: async () => {
95
- await client.destroy();
96
- },
97
- provides: {
98
- translations,
99
- surface: {
100
- definitions: () => [
101
- createSurface({
102
- id: IDENTITY_DIALOG,
103
- role: 'dialog',
104
- filter: (data): data is { subject: IdentityPanelProps } => data.component === IDENTITY_DIALOG,
105
- component: ({ data }) => (
106
- <IdentityDialog {...data.subject} createInvitationUrl={createDeviceInvitationUrl} />
107
- ),
108
- }),
109
- createSurface({
110
- id: JOIN_DIALOG,
111
- role: 'dialog',
112
- filter: (data): data is { subject: JoinPanelProps } => data.component === JOIN_DIALOG,
113
- component: ({ data }) => <JoinDialog {...data.subject} />,
114
- }),
115
- createSurface({
116
- id: RECOVER_CODE_DIALOG,
117
- role: 'dialog',
118
- filter: (data): data is { subject: RecoveryCodeDialogProps } => data.component === RECOVER_CODE_DIALOG,
119
- component: ({ data }) => <RecoveryCodeDialog {...data.subject} />,
120
- }),
121
- ],
122
- },
123
- graph: {
124
- builder: (plugins) => {
125
- const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatchPromise;
126
- const id = `${CLIENT_PLUGIN}/open-shell`;
127
-
128
- return createExtension({
129
- id: CLIENT_PLUGIN,
130
- filter: (node): node is Node<null> => node.id === 'root',
131
- actions: () => [
132
- {
133
- id,
134
- data: async () => {
135
- await dispatch?.(createIntent(ClientAction.ShareIdentity));
136
- },
137
- properties: {
138
- label: ['open shell label', { ns: CLIENT_PLUGIN }],
139
- icon: 'ph--address-book--regular',
140
- keyBinding: {
141
- macos: 'meta+shift+.',
142
- // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
143
- windows: 'alt+shift+.',
144
- linux: 'alt+shift+>',
145
- },
146
- testId: 'clientPlugin.openShell',
147
- },
148
- },
149
- ],
150
- });
151
- },
152
- },
153
- intent: {
154
- resolvers: () => [
155
- createResolver(ClientAction.CreateIdentity, async () => {
156
- const data = await client.halo.createIdentity();
157
- return { data, intents: [createIntent(ObservabilityAction.SendEvent, { name: 'identity.create' })] };
158
- }),
159
- createResolver(ClientAction.JoinIdentity, async (data) => {
160
- return {
161
- intents: [
162
- createIntent(LayoutAction.SetLayout, {
163
- element: 'dialog',
164
- component: JOIN_DIALOG,
165
- dialogBlockAlign: 'start',
166
- subject: {
167
- initialInvitationCode: data.invitationCode,
168
- initialDisposition: 'accept-halo-invitation',
169
- } satisfies Partial<JoinPanelProps>,
170
- }),
171
- ],
172
- };
173
- }),
174
- createResolver(ClientAction.ShareIdentity, async () => {
175
- return {
176
- intents: [
177
- createIntent(LayoutAction.SetLayout, {
178
- element: 'dialog',
179
- component: IDENTITY_DIALOG,
180
- dialogBlockAlign: 'start',
181
- }),
182
- createIntent(ObservabilityAction.SendEvent, { name: 'identity.share' }),
183
- ],
184
- };
185
- }),
186
- createResolver(ClientAction.RecoverIdentity, async () => {
187
- return {
188
- intents: [
189
- createIntent(LayoutAction.SetLayout, {
190
- element: 'dialog',
191
- component: JOIN_DIALOG,
192
- dialogBlockAlign: 'start',
193
- subject: { initialDisposition: 'recover-identity' } satisfies Partial<JoinPanelProps>,
194
- }),
195
- ],
196
- };
197
- }),
198
- createResolver(ClientAction.ResetStorage, async (data) => {
199
- await onReset?.({ target: data.target });
200
- return {};
201
- }),
202
- createResolver(ClientAction.CreateAgent, async () => {
203
- invariant(client.services.services.EdgeAgentService, 'Missing EdgeAgentService');
204
- await client.services.services.EdgeAgentService.createAgent(null as any, { timeout: 10_000 });
205
- }),
206
- createResolver(ClientAction.CreateRecoveryCode, async () => {
207
- invariant(client.services.services.IdentityService, 'IdentityService not available');
208
- // TODO(wittjosiah): This needs a proper api. Rename property.
209
- const { seedphrase } = await client.services.services.IdentityService.createRecoveryPhrase();
210
- return {
211
- intents: [
212
- createIntent(LayoutAction.SetLayout, {
213
- element: 'dialog',
214
- dialogBlockAlign: 'start',
215
- dialogType: 'alert',
216
- state: true,
217
- component: RECOVER_CODE_DIALOG,
218
- subject: { code: seedphrase },
219
- }),
220
- ],
221
- };
222
- }),
223
- ],
224
- },
225
- },
226
- };
227
- };