@dxos/plugin-client 0.6.14-staging.e15392e → 0.7.0

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 (38) hide show
  1. package/dist/lib/browser/{chunk-3ESI7PGR.mjs → chunk-VCPHSTE7.mjs} +5 -3
  2. package/dist/lib/browser/chunk-VCPHSTE7.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +178 -38
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/meta.mjs +3 -1
  7. package/dist/lib/node/{chunk-ZWE6N7MY.cjs → chunk-JYQZCE2U.cjs} +8 -5
  8. package/dist/lib/node/chunk-JYQZCE2U.cjs.map +7 -0
  9. package/dist/lib/node/index.cjs +180 -45
  10. package/dist/lib/node/index.cjs.map +4 -4
  11. package/dist/lib/node/meta.cjs +7 -5
  12. package/dist/lib/node/meta.cjs.map +2 -2
  13. package/dist/lib/node/meta.json +1 -1
  14. package/dist/lib/node-esm/{chunk-SZVMJZ6O.mjs → chunk-4FDLD5H4.mjs} +5 -3
  15. package/dist/lib/node-esm/chunk-4FDLD5H4.mjs.map +7 -0
  16. package/dist/lib/node-esm/index.mjs +178 -38
  17. package/dist/lib/node-esm/index.mjs.map +4 -4
  18. package/dist/lib/node-esm/meta.json +1 -1
  19. package/dist/lib/node-esm/meta.mjs +3 -1
  20. package/dist/types/src/ClientPlugin.d.ts +17 -3
  21. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  22. package/dist/types/src/components/IdentityDialog.d.ts +4 -0
  23. package/dist/types/src/components/IdentityDialog.d.ts.map +1 -0
  24. package/dist/types/src/components/JoinDialog.d.ts +4 -0
  25. package/dist/types/src/components/JoinDialog.d.ts.map +1 -0
  26. package/dist/types/src/components/index.d.ts +3 -0
  27. package/dist/types/src/components/index.d.ts.map +1 -0
  28. package/dist/types/src/meta.d.ts +3 -2
  29. package/dist/types/src/meta.d.ts.map +1 -1
  30. package/package.json +13 -11
  31. package/src/ClientPlugin.tsx +88 -30
  32. package/src/components/IdentityDialog.tsx +59 -0
  33. package/src/components/JoinDialog.tsx +57 -0
  34. package/src/components/index.ts +6 -0
  35. package/src/meta.ts +4 -1
  36. package/dist/lib/browser/chunk-3ESI7PGR.mjs.map +0 -7
  37. package/dist/lib/node/chunk-ZWE6N7MY.cjs.map +0 -7
  38. package/dist/lib/node-esm/chunk-SZVMJZ6O.mjs.map +0 -7
@@ -34,7 +34,7 @@ __export(node_exports, {
34
34
  parseSchemaPlugin: () => parseSchemaPlugin
35
35
  });
36
36
  module.exports = __toCommonJS(node_exports);
37
- var import_chunk_ZWE6N7MY = require("./chunk-ZWE6N7MY.cjs");
37
+ var import_chunk_JYQZCE2U = require("./chunk-JYQZCE2U.cjs");
38
38
  var import_react = __toESM(require("react"));
39
39
  var import_app_framework = require("@dxos/app-framework");
40
40
  var import_config = require("@dxos/config");
@@ -42,10 +42,114 @@ var import_react2 = require("@dxos/echo-signals/react");
42
42
  var import_log = require("@dxos/log");
43
43
  var import_plugin_graph = require("@dxos/plugin-graph");
44
44
  var import_react_client = require("@dxos/react-client");
45
+ var import_react3 = __toESM(require("react"));
46
+ var import_app_framework2 = require("@dxos/app-framework");
47
+ var import_react_client2 = require("@dxos/react-client");
48
+ var import_react_ui = require("@dxos/react-ui");
49
+ var import_react4 = require("@dxos/shell/react");
50
+ var import_react5 = __toESM(require("react"));
51
+ var import_app_framework3 = require("@dxos/app-framework");
52
+ var import_react_ui2 = require("@dxos/react-ui");
53
+ var import_react6 = require("@dxos/shell/react");
54
+ var IdentityDialog = (props) => {
55
+ const dispatch = (0, import_app_framework2.useIntentDispatcher)();
56
+ const client = (0, import_react_client2.useClient)();
57
+ const handleDone = (0, import_react3.useCallback)(() => dispatch({
58
+ action: import_app_framework2.LayoutAction.SET_LAYOUT,
59
+ data: {
60
+ element: "dialog",
61
+ state: false
62
+ }
63
+ }), [
64
+ dispatch
65
+ ]);
66
+ const handleResetStorage = (0, import_react3.useCallback)(async () => {
67
+ await client.reset();
68
+ await dispatch({
69
+ action: import_chunk_JYQZCE2U.ClientAction.RESET_STORAGE
70
+ });
71
+ }, [
72
+ dispatch
73
+ ]);
74
+ const handleRecover = (0, import_react3.useCallback)(async () => {
75
+ await client.reset();
76
+ await dispatch({
77
+ action: import_chunk_JYQZCE2U.ClientAction.RESET_STORAGE,
78
+ data: {
79
+ target: "recoverIdentity"
80
+ }
81
+ });
82
+ }, [
83
+ dispatch
84
+ ]);
85
+ const handleJoinNewIdentity = (0, import_react3.useCallback)(async () => {
86
+ await client.reset();
87
+ await dispatch({
88
+ action: import_chunk_JYQZCE2U.ClientAction.RESET_STORAGE,
89
+ data: {
90
+ target: "deviceInvitation"
91
+ }
92
+ });
93
+ }, [
94
+ dispatch
95
+ ]);
96
+ return /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Dialog.Content, null, /* @__PURE__ */ import_react3.default.createElement(import_react4.ClipboardProvider, null, /* @__PURE__ */ import_react3.default.createElement(import_react4.IdentityPanel, {
97
+ ...props,
98
+ doneActionParent: /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Dialog.Close, {
99
+ asChild: true
100
+ }),
101
+ onDone: handleDone,
102
+ onResetStorage: handleResetStorage,
103
+ onRecover: handleRecover,
104
+ onJoinNewIdentity: handleJoinNewIdentity
105
+ })));
106
+ };
107
+ var JoinDialog = (props) => {
108
+ const dispatch = (0, import_app_framework3.useIntentDispatcher)();
109
+ const handleCancelResetStorage = (0, import_react5.useCallback)(() => dispatch({
110
+ plugin: import_chunk_JYQZCE2U.CLIENT_PLUGIN,
111
+ action: import_chunk_JYQZCE2U.ClientAction.SHARE_IDENTITY
112
+ }), [
113
+ dispatch
114
+ ]);
115
+ const handleDone = (0, import_react5.useCallback)(async (result) => {
116
+ if (result?.identityKey) {
117
+ await Promise.all([
118
+ dispatch({
119
+ action: import_app_framework3.LayoutAction.SET_LAYOUT,
120
+ data: {
121
+ element: "dialog",
122
+ state: false
123
+ }
124
+ }),
125
+ dispatch({
126
+ action: import_chunk_JYQZCE2U.OBSERVABILITY_ACTION,
127
+ data: {
128
+ name: props.initialDisposition === "recover-identity" ? "identity.recover" : "identity.join"
129
+ }
130
+ })
131
+ ]);
132
+ }
133
+ }, [
134
+ dispatch
135
+ ]);
136
+ return /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Dialog.Content, null, /* @__PURE__ */ import_react5.default.createElement(import_react6.JoinPanel, {
137
+ mode: "halo-only",
138
+ ...props,
139
+ exitActionParent: /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Dialog.Close, {
140
+ asChild: true
141
+ }),
142
+ doneActionParent: /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Dialog.Close, {
143
+ asChild: true
144
+ }),
145
+ onCancelResetStorage: handleCancelResetStorage,
146
+ onDone: handleDone
147
+ }));
148
+ };
45
149
  var translations_default = [
46
150
  {
47
151
  "en-US": {
48
- [import_chunk_ZWE6N7MY.CLIENT_PLUGIN]: {
152
+ [import_chunk_JYQZCE2U.CLIENT_PLUGIN]: {
49
153
  "open shell label": "Open HALO"
50
154
  }
51
155
  }
@@ -54,12 +158,17 @@ var translations_default = [
54
158
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-client/src/ClientPlugin.tsx";
55
159
  var parseClientPlugin = (plugin) => (plugin?.provides).client instanceof import_react_client.Client ? plugin : void 0;
56
160
  var parseSchemaPlugin = (plugin) => Array.isArray(plugin?.provides.echo?.schema) ? plugin : void 0;
57
- var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
161
+ var ClientPlugin = ({ appKey, invitationUrl = window.location.origin, invitationParam = "deviceInvitationCode", onClientInitialized, onReady, onReset, ...options }) => {
58
162
  (0, import_react2.registerSignalsRuntime)();
59
163
  let client;
60
164
  let error = null;
165
+ const createDeviceInvitationUrl = (invitationCode) => {
166
+ const baseUrl = new URL(invitationUrl);
167
+ baseUrl.searchParams.set(invitationParam, invitationCode);
168
+ return baseUrl.toString();
169
+ };
61
170
  return {
62
- meta: import_chunk_ZWE6N7MY.meta_default,
171
+ meta: import_chunk_JYQZCE2U.meta_default,
63
172
  initialize: async () => {
64
173
  const config = new import_config.Config(await (0, import_config.Storage)(), (0, import_config.Envs)(), (0, import_config.Local)(), (0, import_config.Defaults)());
65
174
  client = new import_react_client.Client({
@@ -96,7 +205,7 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
96
205
  id: plugin.meta.id
97
206
  }, {
98
207
  F: __dxlog_file,
99
- L: 112,
208
+ L: 141,
100
209
  S: void 0,
101
210
  C: (f, a) => f(...a)
102
211
  });
@@ -108,12 +217,29 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
108
217
  },
109
218
  provides: {
110
219
  translations: translations_default,
220
+ surface: {
221
+ component: ({ data, role, ...rest }) => {
222
+ switch (role) {
223
+ case "dialog":
224
+ if (data.component === "dxos.org/plugin/client/IdentityDialog") {
225
+ return /* @__PURE__ */ import_react.default.createElement(IdentityDialog, {
226
+ ...data.subject,
227
+ createInvitationUrl: createDeviceInvitationUrl
228
+ });
229
+ } else if (data.component === "dxos.org/plugin/client/JoinDialog") {
230
+ return /* @__PURE__ */ import_react.default.createElement(JoinDialog, data.subject);
231
+ }
232
+ break;
233
+ }
234
+ return null;
235
+ }
236
+ },
111
237
  graph: {
112
238
  builder: (plugins) => {
113
239
  const intentPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseIntentPlugin);
114
- const id = `${import_chunk_ZWE6N7MY.CLIENT_PLUGIN}/open-shell`;
240
+ const id = `${import_chunk_JYQZCE2U.CLIENT_PLUGIN}/open-shell`;
115
241
  return (0, import_plugin_graph.createExtension)({
116
- id: import_chunk_ZWE6N7MY.CLIENT_PLUGIN,
242
+ id: import_chunk_JYQZCE2U.CLIENT_PLUGIN,
117
243
  filter: (node) => node.id === "root",
118
244
  actions: () => [
119
245
  {
@@ -121,8 +247,8 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
121
247
  data: async () => {
122
248
  await intentPlugin?.provides.intent.dispatch([
123
249
  {
124
- plugin: import_chunk_ZWE6N7MY.CLIENT_PLUGIN,
125
- action: import_chunk_ZWE6N7MY.ClientAction.OPEN_SHELL
250
+ plugin: import_chunk_JYQZCE2U.CLIENT_PLUGIN,
251
+ action: import_chunk_JYQZCE2U.ClientAction.SHARE_IDENTITY
126
252
  }
127
253
  ]);
128
254
  },
@@ -130,7 +256,7 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
130
256
  label: [
131
257
  "open shell label",
132
258
  {
133
- ns: import_chunk_ZWE6N7MY.CLIENT_PLUGIN
259
+ ns: import_chunk_JYQZCE2U.CLIENT_PLUGIN
134
260
  }
135
261
  ],
136
262
  icon: "ph--address-book--regular",
@@ -150,87 +276,96 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
150
276
  intent: {
151
277
  resolver: async (intent) => {
152
278
  switch (intent.action) {
153
- case import_chunk_ZWE6N7MY.ClientAction.OPEN_SHELL:
154
- await client.shell.open(intent.data?.layout);
155
- return {
156
- data: true
157
- };
158
- case import_chunk_ZWE6N7MY.ClientAction.CREATE_IDENTITY: {
279
+ case import_chunk_JYQZCE2U.ClientAction.CREATE_IDENTITY: {
159
280
  const data = await client.halo.createIdentity();
160
281
  return {
161
282
  data,
162
283
  intents: [
163
284
  [
164
285
  {
165
- // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.
166
- action: "dxos.org/plugin/observability/send-event",
286
+ action: import_chunk_JYQZCE2U.OBSERVABILITY_ACTION,
167
287
  data: {
168
- name: "identity.created"
288
+ name: "identity.create"
169
289
  }
170
290
  }
171
291
  ]
172
292
  ]
173
293
  };
174
294
  }
175
- case import_chunk_ZWE6N7MY.ClientAction.JOIN_IDENTITY: {
176
- const data = await client.shell.joinIdentity({
177
- invitationCode: intent.data?.invitationCode
178
- });
295
+ case import_chunk_JYQZCE2U.ClientAction.JOIN_IDENTITY: {
179
296
  return {
180
- data,
297
+ data: true,
181
298
  intents: [
182
299
  [
183
300
  {
184
- // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.
185
- action: "dxos.org/plugin/observability/send-event",
301
+ action: import_app_framework.LayoutAction.SET_LAYOUT,
186
302
  data: {
187
- name: "identity.joined"
303
+ element: "dialog",
304
+ component: "dxos.org/plugin/client/JoinDialog",
305
+ dialogBlockAlign: "start",
306
+ subject: {
307
+ initialInvitationCode: intent.data?.invitationCode,
308
+ initialDisposition: "accept-halo-invitation"
309
+ }
188
310
  }
189
311
  }
190
312
  ]
191
313
  ]
192
314
  };
193
315
  }
194
- case import_chunk_ZWE6N7MY.ClientAction.SHARE_IDENTITY: {
195
- const data = await client.shell.shareIdentity();
316
+ case import_chunk_JYQZCE2U.ClientAction.SHARE_IDENTITY: {
196
317
  return {
197
- data,
318
+ data: true,
198
319
  intents: [
199
320
  [
200
321
  {
201
- // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.
202
- action: "dxos.org/plugin/observability/send-event",
322
+ action: import_app_framework.LayoutAction.SET_LAYOUT,
203
323
  data: {
204
- name: "identity.shared",
205
- properties: {
206
- deviceKey: data.device?.deviceKey.truncate(),
207
- deviceKind: data.device?.kind,
208
- error: data.error?.message,
209
- canceled: data.cancelled
210
- }
324
+ element: "dialog",
325
+ component: "dxos.org/plugin/client/IdentityDialog",
326
+ dialogBlockAlign: "start"
327
+ }
328
+ }
329
+ ],
330
+ [
331
+ {
332
+ action: import_chunk_JYQZCE2U.OBSERVABILITY_ACTION,
333
+ data: {
334
+ name: "identity.share"
211
335
  }
212
336
  }
213
337
  ]
214
338
  ]
215
339
  };
216
340
  }
217
- case import_chunk_ZWE6N7MY.ClientAction.RECOVER_IDENTITY: {
218
- const data = await client.shell.recoverIdentity();
341
+ case import_chunk_JYQZCE2U.ClientAction.RECOVER_IDENTITY: {
219
342
  return {
220
- data,
343
+ data: true,
221
344
  intents: [
222
345
  [
223
346
  {
224
- // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.
225
- action: "dxos.org/plugin/observability/send-event",
347
+ action: import_app_framework.LayoutAction.SET_LAYOUT,
226
348
  data: {
227
- name: "identity.recovered"
349
+ element: "dialog",
350
+ component: "dxos.org/plugin/client/JoinDialog",
351
+ dialogBlockAlign: "start",
352
+ subject: {
353
+ initialDisposition: "recover-identity"
354
+ }
228
355
  }
229
356
  }
230
357
  ]
231
358
  ]
232
359
  };
233
360
  }
361
+ case import_chunk_JYQZCE2U.ClientAction.RESET_STORAGE: {
362
+ await onReset?.({
363
+ target: intent.data?.target
364
+ });
365
+ return {
366
+ data: true
367
+ };
368
+ }
234
369
  }
235
370
  }
236
371
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/ClientPlugin.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\nimport React from 'react';\n\nimport {\n filterPlugins,\n parseIntentPlugin,\n resolvePlugin,\n type GraphBuilderProvides,\n type IntentResolverProvides,\n type Plugin,\n type PluginDefinition,\n type TranslationsProvides,\n} from '@dxos/app-framework';\nimport { Config, Defaults, Envs, Local, Storage } from '@dxos/config';\nimport { registerSignalsRuntime } from '@dxos/echo-signals/react';\nimport { log } from '@dxos/log';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\nimport { Client, type ClientOptions, ClientProvider } from '@dxos/react-client';\n\nimport meta, { CLIENT_PLUGIN, ClientAction } from './meta';\nimport translations from './translations';\n\nexport type ClientPluginOptions = ClientOptions & {\n /**\n * Used to track app-specific state in spaces.\n */\n appKey: string;\n\n /**\n * Run after the client has been initialized.\n */\n onClientInitialized?: (client: Client) => Promise<void>;\n\n /**\n * Run after the identity has been successfully initialized.\n * Run with client during plugin ready phase.\n */\n onReady?: (client: Client, plugins: Plugin[]) => Promise<void>;\n};\n\nexport type ClientPluginProvides = IntentResolverProvides &\n GraphBuilderProvides &\n TranslationsProvides & {\n client: Client;\n };\n\nexport const parseClientPlugin = (plugin?: Plugin) =>\n (plugin?.provides as any).client instanceof Client ? (plugin as Plugin<ClientPluginProvides>) : undefined;\n\nexport type SchemaProvides = {\n echo: {\n schema: S.Schema<any>[];\n };\n};\n\nexport const parseSchemaPlugin = (plugin?: Plugin) =>\n Array.isArray((plugin?.provides as any).echo?.schema) ? (plugin as Plugin<SchemaProvides>) : undefined;\n\nexport const ClientPlugin = ({\n appKey,\n onClientInitialized,\n onReady,\n ...options\n}: ClientPluginOptions): PluginDefinition<\n Omit<ClientPluginProvides, 'client'>,\n Pick<ClientPluginProvides, 'client'>\n> => {\n registerSignalsRuntime();\n\n let client: Client;\n let error: unknown = null;\n\n return {\n meta,\n initialize: async () => {\n const config = new Config(await Storage(), Envs(), Local(), Defaults());\n client = new Client({ config, ...options });\n\n try {\n await client.initialize();\n await onClientInitialized?.(client);\n\n // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.\n client.reloaded.on(() => {\n client.halo.identity.subscribe(async (identity) => {\n if (identity) {\n window.location.href = window.location.origin;\n }\n });\n });\n } catch (err) {\n error = err;\n }\n\n return {\n client,\n context: ({ children }) => <ClientProvider client={client}>{children}</ClientProvider>,\n };\n },\n ready: async (plugins) => {\n if (error) {\n throw error;\n }\n\n await onReady?.(client, plugins);\n\n filterPlugins(plugins, parseSchemaPlugin).forEach((plugin) => {\n log('ready', { id: plugin.meta.id });\n client.addTypes(plugin.provides.echo.schema);\n });\n },\n unload: async () => {\n await client.destroy();\n },\n provides: {\n translations,\n graph: {\n builder: (plugins) => {\n const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);\n const id = `${CLIENT_PLUGIN}/open-shell`;\n\n return createExtension({\n id: CLIENT_PLUGIN,\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id,\n data: async () => {\n await intentPlugin?.provides.intent.dispatch([\n { plugin: CLIENT_PLUGIN, action: ClientAction.OPEN_SHELL },\n ]);\n },\n properties: {\n label: ['open shell label', { ns: CLIENT_PLUGIN }],\n icon: 'ph--address-book--regular',\n keyBinding: {\n macos: 'meta+shift+.',\n // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.\n windows: 'alt+shift+.',\n linux: 'alt+shift+>',\n },\n testId: 'clientPlugin.openShell',\n },\n },\n ],\n });\n },\n },\n intent: {\n resolver: async (intent) => {\n switch (intent.action) {\n case ClientAction.OPEN_SHELL:\n await client.shell.open(intent.data?.layout);\n return { data: true };\n\n case ClientAction.CREATE_IDENTITY: {\n const data = await client.halo.createIdentity();\n return {\n data,\n intents: [\n [\n {\n // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.\n action: 'dxos.org/plugin/observability/send-event',\n data: {\n name: 'identity.created',\n },\n },\n ],\n ],\n };\n }\n\n case ClientAction.JOIN_IDENTITY: {\n const data = await client.shell.joinIdentity({ invitationCode: intent.data?.invitationCode });\n return {\n data,\n intents: [\n [\n {\n // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.\n action: 'dxos.org/plugin/observability/send-event',\n data: {\n name: 'identity.joined',\n },\n },\n ],\n ],\n };\n }\n\n case ClientAction.SHARE_IDENTITY: {\n const data = await client.shell.shareIdentity();\n return {\n data,\n intents: [\n [\n {\n // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.\n action: 'dxos.org/plugin/observability/send-event',\n data: {\n name: 'identity.shared',\n properties: {\n deviceKey: data.device?.deviceKey.truncate(),\n deviceKind: data.device?.kind,\n error: data.error?.message,\n canceled: data.cancelled,\n },\n },\n },\n ],\n ],\n };\n }\n\n case ClientAction.RECOVER_IDENTITY: {\n const data = await client.shell.recoverIdentity();\n return {\n data,\n intents: [\n [\n {\n // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.\n action: 'dxos.org/plugin/observability/send-event',\n data: {\n name: 'identity.recovered',\n },\n },\n ],\n ],\n };\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CLIENT_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [CLIENT_PLUGIN]: {\n 'open shell label': 'Open HALO',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ClientPlugin } from './ClientPlugin';\n\nexport default ClientPlugin;\n\nexport * from './ClientPlugin';\n"],
5
- "mappings": "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",
6
- "names": ["import_react", "CLIENT_PLUGIN", "parseClientPlugin", "plugin", "provides", "client", "Client", "undefined", "parseSchemaPlugin", "Array", "isArray", "echo", "schema", "ClientPlugin", "appKey", "onClientInitialized", "onReady", "options", "registerSignalsRuntime", "error", "meta", "initialize", "config", "Config", "Storage", "Envs", "Local", "Defaults", "reloaded", "on", "halo", "identity", "subscribe", "window", "location", "href", "origin", "err", "context", "children", "React", "ClientProvider", "ready", "plugins", "filterPlugins", "forEach", "log", "id", "addTypes", "unload", "destroy", "translations", "graph", "builder", "intentPlugin", "resolvePlugin", "parseIntentPlugin", "createExtension", "filter", "node", "actions", "data", "intent", "dispatch", "action", "ClientAction", "OPEN_SHELL", "properties", "label", "ns", "icon", "keyBinding", "macos", "windows", "linux", "testId", "resolver", "shell", "open", "layout", "CREATE_IDENTITY", "createIdentity", "intents", "name", "JOIN_IDENTITY", "joinIdentity", "invitationCode", "SHARE_IDENTITY", "shareIdentity", "deviceKey", "device", "truncate", "deviceKind", "kind", "message", "canceled", "cancelled", "RECOVER_IDENTITY", "recoverIdentity"]
3
+ "sources": ["../../../src/ClientPlugin.tsx", "../../../src/components/IdentityDialog.tsx", "../../../src/components/JoinDialog.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\nimport React from 'react';\n\nimport {\n filterPlugins,\n LayoutAction,\n parseIntentPlugin,\n resolvePlugin,\n type SurfaceProvides,\n type GraphBuilderProvides,\n type IntentResolverProvides,\n type Plugin,\n type PluginDefinition,\n type TranslationsProvides,\n} from '@dxos/app-framework';\nimport { Config, Defaults, Envs, Local, Storage } from '@dxos/config';\nimport { registerSignalsRuntime } from '@dxos/echo-signals/react';\nimport { log } from '@dxos/log';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\nimport { Client, type ClientOptions, ClientProvider } from '@dxos/react-client';\nimport { type IdentityPanelProps, type JoinPanelProps } from '@dxos/shell/react';\n\nimport { IdentityDialog, JoinDialog } from './components';\nimport meta, { CLIENT_PLUGIN, ClientAction, OBSERVABILITY_ACTION } from './meta';\nimport translations from './translations';\n\nexport type ClientPluginOptions = ClientOptions & {\n /**\n * Used to track app-specific state in spaces.\n */\n appKey: string;\n\n /**\n * Base URL for the invitation link.\n */\n invitationUrl?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationParam?: string;\n\n /**\n * Run after the client has been initialized.\n */\n onClientInitialized?: (client: Client) => Promise<void>;\n\n /**\n * Run after the identity has been successfully initialized.\n * Run with client during plugin ready phase.\n */\n onReady?: (client: Client, plugins: Plugin[]) => Promise<void>;\n\n /**\n * Called when the client is reset.\n */\n onReset?: (params: { target?: string }) => Promise<void>;\n};\n\nexport type ClientPluginProvides = IntentResolverProvides &\n GraphBuilderProvides &\n SurfaceProvides &\n TranslationsProvides & {\n client: Client;\n };\n\nexport const parseClientPlugin = (plugin?: Plugin) =>\n (plugin?.provides as any).client instanceof Client ? (plugin as Plugin<ClientPluginProvides>) : undefined;\n\nexport type SchemaProvides = {\n echo: {\n schema: S.Schema<any>[];\n };\n};\n\nexport const parseSchemaPlugin = (plugin?: Plugin) =>\n Array.isArray((plugin?.provides as any).echo?.schema) ? (plugin as Plugin<SchemaProvides>) : undefined;\n\nexport const ClientPlugin = ({\n appKey,\n invitationUrl = window.location.origin,\n invitationParam = 'deviceInvitationCode',\n onClientInitialized,\n onReady,\n onReset,\n ...options\n}: ClientPluginOptions): PluginDefinition<\n Omit<ClientPluginProvides, 'client'>,\n Pick<ClientPluginProvides, 'client'>\n> => {\n registerSignalsRuntime();\n\n let client: Client;\n let error: unknown = null;\n\n const createDeviceInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationUrl);\n baseUrl.searchParams.set(invitationParam, invitationCode);\n return baseUrl.toString();\n };\n\n return {\n meta,\n initialize: async () => {\n const config = new Config(await Storage(), Envs(), Local(), Defaults());\n client = new Client({ config, ...options });\n\n try {\n await client.initialize();\n await onClientInitialized?.(client);\n\n // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.\n client.reloaded.on(() => {\n client.halo.identity.subscribe(async (identity) => {\n if (identity) {\n window.location.href = window.location.origin;\n }\n });\n });\n } catch (err) {\n error = err;\n }\n\n return {\n client,\n context: ({ children }) => <ClientProvider client={client}>{children}</ClientProvider>,\n };\n },\n ready: async (plugins) => {\n if (error) {\n throw error;\n }\n\n await onReady?.(client, plugins);\n\n filterPlugins(plugins, parseSchemaPlugin).forEach((plugin) => {\n log('ready', { id: plugin.meta.id });\n client.addTypes(plugin.provides.echo.schema);\n });\n },\n unload: async () => {\n await client.destroy();\n },\n provides: {\n translations,\n surface: {\n component: ({ data, role, ...rest }) => {\n switch (role) {\n case 'dialog':\n if (data.component === 'dxos.org/plugin/client/IdentityDialog') {\n return (\n <IdentityDialog\n {...(data.subject as IdentityPanelProps)}\n createInvitationUrl={createDeviceInvitationUrl}\n />\n );\n } else if (data.component === 'dxos.org/plugin/client/JoinDialog') {\n return <JoinDialog {...(data.subject as JoinPanelProps)} />;\n }\n break;\n }\n\n return null;\n },\n },\n graph: {\n builder: (plugins) => {\n const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);\n const id = `${CLIENT_PLUGIN}/open-shell`;\n\n return createExtension({\n id: CLIENT_PLUGIN,\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id,\n data: async () => {\n await intentPlugin?.provides.intent.dispatch([\n { plugin: CLIENT_PLUGIN, action: ClientAction.SHARE_IDENTITY },\n ]);\n },\n properties: {\n label: ['open shell label', { ns: CLIENT_PLUGIN }],\n icon: 'ph--address-book--regular',\n keyBinding: {\n macos: 'meta+shift+.',\n // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.\n windows: 'alt+shift+.',\n linux: 'alt+shift+>',\n },\n testId: 'clientPlugin.openShell',\n },\n },\n ],\n });\n },\n },\n intent: {\n resolver: async (intent) => {\n switch (intent.action) {\n case ClientAction.CREATE_IDENTITY: {\n const data = await client.halo.createIdentity();\n return {\n data,\n intents: [\n [\n {\n action: OBSERVABILITY_ACTION,\n data: {\n name: 'identity.create',\n },\n },\n ],\n ],\n };\n }\n\n case ClientAction.JOIN_IDENTITY: {\n return {\n data: true,\n intents: [\n [\n {\n action: LayoutAction.SET_LAYOUT,\n data: {\n element: 'dialog',\n component: 'dxos.org/plugin/client/JoinDialog',\n dialogBlockAlign: 'start',\n subject: {\n initialInvitationCode: intent.data?.invitationCode,\n initialDisposition: 'accept-halo-invitation',\n } satisfies Partial<JoinPanelProps>,\n },\n },\n ],\n ],\n };\n }\n\n case ClientAction.SHARE_IDENTITY: {\n return {\n data: true,\n intents: [\n [\n {\n action: LayoutAction.SET_LAYOUT,\n data: {\n element: 'dialog',\n component: 'dxos.org/plugin/client/IdentityDialog',\n dialogBlockAlign: 'start',\n },\n },\n ],\n [\n {\n action: OBSERVABILITY_ACTION,\n data: {\n name: 'identity.share',\n },\n },\n ],\n ],\n };\n }\n\n case ClientAction.RECOVER_IDENTITY: {\n return {\n data: true,\n intents: [\n [\n {\n action: LayoutAction.SET_LAYOUT,\n data: {\n element: 'dialog',\n component: 'dxos.org/plugin/client/JoinDialog',\n dialogBlockAlign: 'start',\n subject: {\n initialDisposition: 'recover-identity',\n } satisfies Partial<JoinPanelProps>,\n },\n },\n ],\n ],\n };\n }\n\n case ClientAction.RESET_STORAGE: {\n await onReset?.({ target: intent.data?.target });\n return { data: true };\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { useClient } from '@dxos/react-client';\nimport { Dialog } from '@dxos/react-ui';\nimport { ClipboardProvider, IdentityPanel, type IdentityPanelProps } from '@dxos/shell/react';\n\nimport { ClientAction } from '../meta';\n\nexport const IdentityDialog = (props: IdentityPanelProps) => {\n const dispatch = useIntentDispatcher();\n const client = useClient();\n\n const handleDone = useCallback(\n () =>\n dispatch({\n action: LayoutAction.SET_LAYOUT,\n data: {\n element: 'dialog',\n state: false,\n },\n }),\n [dispatch],\n );\n\n const handleResetStorage = useCallback(async () => {\n await client.reset();\n await dispatch({ action: ClientAction.RESET_STORAGE });\n }, [dispatch]);\n\n const handleRecover = useCallback(async () => {\n await client.reset();\n await dispatch({ action: ClientAction.RESET_STORAGE, data: { target: 'recoverIdentity' } });\n }, [dispatch]);\n\n const handleJoinNewIdentity = useCallback(async () => {\n await client.reset();\n await dispatch({ action: ClientAction.RESET_STORAGE, data: { target: 'deviceInvitation' } });\n }, [dispatch]);\n\n return (\n <Dialog.Content>\n <ClipboardProvider>\n <IdentityPanel\n {...props}\n doneActionParent={<Dialog.Close asChild />}\n onDone={handleDone}\n onResetStorage={handleResetStorage}\n onRecover={handleRecover}\n onJoinNewIdentity={handleJoinNewIdentity}\n />\n </ClipboardProvider>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\n\nimport { CLIENT_PLUGIN, ClientAction, OBSERVABILITY_ACTION } from '../meta';\n\nexport const JoinDialog = (props: JoinPanelProps) => {\n const dispatch = useIntentDispatcher();\n\n const handleCancelResetStorage = useCallback(\n () => dispatch({ plugin: CLIENT_PLUGIN, action: ClientAction.SHARE_IDENTITY }),\n [dispatch],\n );\n\n const handleDone = useCallback(\n async (result: InvitationResult | null) => {\n if (result?.identityKey) {\n await Promise.all([\n dispatch({\n action: LayoutAction.SET_LAYOUT,\n data: {\n element: 'dialog',\n state: false,\n },\n }),\n dispatch({\n action: OBSERVABILITY_ACTION,\n data: {\n name: props.initialDisposition === 'recover-identity' ? 'identity.recover' : 'identity.join',\n },\n }),\n ]);\n }\n },\n [dispatch],\n );\n\n return (\n <Dialog.Content>\n <JoinPanel\n mode='halo-only'\n {...props}\n exitActionParent={<Dialog.Close asChild />}\n doneActionParent={<Dialog.Close asChild />}\n onCancelResetStorage={handleCancelResetStorage}\n onDone={handleDone}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CLIENT_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [CLIENT_PLUGIN]: {\n 'open shell label': 'Open HALO',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ClientPlugin } from './ClientPlugin';\n\nexport default ClientPlugin;\n\nexport * from './ClientPlugin';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,mBAAkB;AAElB,2BAWO;AACP,oBAAuD;AACvD,IAAAA,gBAAuC;AACvC,iBAAoB;AACpB,0BAA2C;AAC3C,0BAA2D;ACnB3D,IAAAA,gBAAmC;AAEnC,IAAAC,wBAAkD;AAClD,IAAAC,uBAA0B;AAC1B,sBAAuB;AACvB,IAAAF,gBAA0E;ACL1E,IAAAA,gBAAmC;AAEnC,IAAAC,wBAAkD;AAElD,IAAAE,mBAAuB;AACvB,IAAAH,gBAA+C;ADIxC,IAAMI,iBAAiB,CAACC,UAAAA;AAC7B,QAAMC,eAAWC,2CAAAA;AACjB,QAAMC,aAASC,gCAAAA;AAEf,QAAMC,iBAAaC,2BACjB,MACEL,SAAS;IACPM,QAAQC,mCAAaC;IACrBC,MAAM;MACJC,SAAS;MACTC,OAAO;IACT;EACF,CAAA,GACF;IAACX;GAAS;AAGZ,QAAMY,yBAAqBP,2BAAY,YAAA;AACrC,UAAMH,OAAOW,MAAK;AAClB,UAAMb,SAAS;MAAEM,QAAQQ,mCAAaC;IAAc,CAAA;EACtD,GAAG;IAACf;GAAS;AAEb,QAAMgB,oBAAgBX,2BAAY,YAAA;AAChC,UAAMH,OAAOW,MAAK;AAClB,UAAMb,SAAS;MAAEM,QAAQQ,mCAAaC;MAAeN,MAAM;QAAEQ,QAAQ;MAAkB;IAAE,CAAA;EAC3F,GAAG;IAACjB;GAAS;AAEb,QAAMkB,4BAAwBb,2BAAY,YAAA;AACxC,UAAMH,OAAOW,MAAK;AAClB,UAAMb,SAAS;MAAEM,QAAQQ,mCAAaC;MAAeN,MAAM;QAAEQ,QAAQ;MAAmB;IAAE,CAAA;EAC5F,GAAG;IAACjB;GAAS;AAEb,SACE,8BAAAmB,QAAA,cAACC,uBAAOC,SAAO,MACb,8BAAAF,QAAA,cAACG,iCAAAA,MACC,8BAAAH,QAAA,cAACI,6BAAAA;IACE,GAAGxB;IACJyB,kBAAkB,8BAAAL,QAAA,cAACC,uBAAOK,OAAK;MAACC,SAAAA;;IAChCC,QAAQvB;IACRwB,gBAAgBhB;IAChBiB,WAAWb;IACXc,mBAAmBZ;;AAK7B;AC7CO,IAAMa,aAAa,CAAChC,UAAAA;AACzB,QAAMC,eAAWC,sBAAAA,qBAAAA;AAEjB,QAAM+B,+BAA2B3B,cAAAA,aAC/B,MAAML,SAAS;IAAEiC,QAAQC;IAAe5B,QAAQQ,mCAAaqB;EAAe,CAAA,GAC5E;IAACnC;GAAS;AAGZ,QAAMI,iBAAaC,cAAAA,aACjB,OAAO+B,WAAAA;AACL,QAAIA,QAAQC,aAAa;AACvB,YAAMC,QAAQC,IAAI;QAChBvC,SAAS;UACPM,QAAQC,sBAAAA,aAAaC;UACrBC,MAAM;YACJC,SAAS;YACTC,OAAO;UACT;QACF,CAAA;QACAX,SAAS;UACPM,QAAQkC;UACR/B,MAAM;YACJgC,MAAM1C,MAAM2C,uBAAuB,qBAAqB,qBAAqB;UAC/E;QACF,CAAA;OACD;IACH;EACF,GACA;IAAC1C;GAAS;AAGZ,SACEmB,8BAAAA,QAAA,cAACC,iBAAAA,OAAOC,SAAO,MACbF,8BAAAA,QAAA,cAACwB,yBAAAA;IACCC,MAAK;IACJ,GAAG7C;IACJ8C,kBAAkB1B,8BAAAA,QAAA,cAACC,iBAAAA,OAAOK,OAAK;MAACC,SAAAA;;IAChCF,kBAAkBL,8BAAAA,QAAA,cAACC,iBAAAA,OAAOK,OAAK;MAACC,SAAAA;;IAChCoB,sBAAsBd;IACtBL,QAAQvB;;AAIhB;AClDA,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAAC8B,mCAAAA,GAAgB;QACf,oBAAoB;MACtB;IACF;EACF;;;AHyDK,IAAMa,oBAAoB,CAACd,YAC/BA,QAAQe,UAAiB9C,kBAAkB+C,6BAAUhB,SAA0CiB;AAQ3F,IAAMC,oBAAoB,CAAClB,WAChCmB,MAAMC,QAASpB,QAAQe,SAAiBM,MAAMC,MAAAA,IAAWtB,SAAoCiB;AAExF,IAAMM,eAAe,CAAC,EAC3BC,QACAC,gBAAgBC,OAAOC,SAASC,QAChCC,kBAAkB,wBAClBC,qBACAC,SACAC,SACA,GAAGC,QAAAA,MACiB;AAIpBC,4CAAAA;AAEA,MAAIjE;AACJ,MAAIkE,QAAiB;AAErB,QAAMC,4BAA4B,CAACC,mBAAAA;AACjC,UAAMC,UAAU,IAAIC,IAAId,aAAAA;AACxBa,YAAQE,aAAaC,IAAIZ,iBAAiBQ,cAAAA;AAC1C,WAAOC,QAAQI,SAAQ;EACzB;AAEA,SAAO;IACLC,MAAAA;IACAC,YAAY,YAAA;AACV,YAAMC,SAAS,IAAIC,qBAAO,UAAMC,uBAAAA,OAAWC,oBAAAA,OAAQC,qBAAAA,OAASC,wBAAAA,CAAAA;AAC5DjF,eAAS,IAAI+C,2BAAO;QAAE6B;QAAQ,GAAGZ;MAAQ,CAAA;AAEzC,UAAI;AACF,cAAMhE,OAAO2E,WAAU;AACvB,cAAMd,sBAAsB7D,MAAAA;AAG5BA,eAAOkF,SAASC,GAAG,MAAA;AACjBnF,iBAAOoF,KAAKC,SAASC,UAAU,OAAOD,aAAAA;AACpC,gBAAIA,UAAU;AACZ5B,qBAAOC,SAAS6B,OAAO9B,OAAOC,SAASC;YACzC;UACF,CAAA;QACF,CAAA;MACF,SAAS6B,KAAK;AACZtB,gBAAQsB;MACV;AAEA,aAAO;QACLxF;QACAyF,SAAS,CAAC,EAAEC,SAAQ,MAAOzE,6BAAAA,QAAA,cAAC0E,oCAAAA;UAAe3F;WAAiB0F,QAAAA;MAC9D;IACF;IACAE,OAAO,OAAOC,YAAAA;AACZ,UAAI3B,OAAO;AACT,cAAMA;MACR;AAEA,YAAMJ,UAAU9D,QAAQ6F,OAAAA;AAExBC,8CAAcD,SAAS5C,iBAAAA,EAAmB8C,QAAQ,CAAChE,WAAAA;AACjDiE,4BAAI,SAAS;UAAEC,IAAIlE,OAAO2C,KAAKuB;QAAG,GAAA;;;;;;AAClCjG,eAAOkG,SAASnE,OAAOe,SAASM,KAAKC,MAAM;MAC7C,CAAA;IACF;IACA8C,QAAQ,YAAA;AACN,YAAMnG,OAAOoG,QAAO;IACtB;IACAtD,UAAU;MACRuD,cAAAA;MACAC,SAAS;QACPC,WAAW,CAAC,EAAEhG,MAAMiG,MAAM,GAAGC,KAAAA,MAAM;AACjC,kBAAQD,MAAAA;YACN,KAAK;AACH,kBAAIjG,KAAKgG,cAAc,yCAAyC;AAC9D,uBACEtF,6BAAAA,QAAA,cAACrB,gBAAAA;kBACE,GAAIW,KAAKmG;kBACVC,qBAAqBxC;;cAG3B,WAAW5D,KAAKgG,cAAc,qCAAqC;AACjE,uBAAOtF,6BAAAA,QAAA,cAACY,YAAgBtB,KAAKmG,OAAO;cACtC;AACA;UACJ;AAEA,iBAAO;QACT;MACF;MACAE,OAAO;QACLC,SAAS,CAAChB,YAAAA;AACR,gBAAMiB,mBAAeC,oCAAclB,SAASmB,sCAAAA;AAC5C,gBAAMf,KAAK,GAAGjE,mCAAAA;AAEd,qBAAOiF,qCAAgB;YACrBhB,IAAIjE;YACJkF,QAAQ,CAACC,SAA6BA,KAAKlB,OAAO;YAClDmB,SAAS,MAAM;cACb;gBACEnB;gBACA1F,MAAM,YAAA;AACJ,wBAAMuG,cAAchE,SAASuE,OAAOvH,SAAS;oBAC3C;sBAAEiC,QAAQC;sBAAe5B,QAAQQ,mCAAaqB;oBAAe;mBAC9D;gBACH;gBACAqF,YAAY;kBACVC,OAAO;oBAAC;oBAAoB;sBAAEC,IAAIxF;oBAAc;;kBAChDyF,MAAM;kBACNC,YAAY;oBACVC,OAAO;;oBAEPC,SAAS;oBACTC,OAAO;kBACT;kBACAC,QAAQ;gBACV;cACF;;UAEJ,CAAA;QACF;MACF;MACAT,QAAQ;QACNU,UAAU,OAAOV,WAAAA;AACf,kBAAQA,OAAOjH,QAAM;YACnB,KAAKQ,mCAAaoH,iBAAiB;AACjC,oBAAMzH,OAAO,MAAMP,OAAOoF,KAAK6C,eAAc;AAC7C,qBAAO;gBACL1H;gBACA2H,SAAS;kBACP;oBACE;sBACE9H,QAAQkC;sBACR/B,MAAM;wBACJgC,MAAM;sBACR;oBACF;;;cAGN;YACF;YAEA,KAAK3B,mCAAauH,eAAe;AAC/B,qBAAO;gBACL5H,MAAM;gBACN2H,SAAS;kBACP;oBACE;sBACE9H,QAAQC,qBAAAA,aAAaC;sBACrBC,MAAM;wBACJC,SAAS;wBACT+F,WAAW;wBACX6B,kBAAkB;wBAClB1B,SAAS;0BACP2B,uBAAuBhB,OAAO9G,MAAM6D;0BACpC5B,oBAAoB;wBACtB;sBACF;oBACF;;;cAGN;YACF;YAEA,KAAK5B,mCAAaqB,gBAAgB;AAChC,qBAAO;gBACL1B,MAAM;gBACN2H,SAAS;kBACP;oBACE;sBACE9H,QAAQC,qBAAAA,aAAaC;sBACrBC,MAAM;wBACJC,SAAS;wBACT+F,WAAW;wBACX6B,kBAAkB;sBACpB;oBACF;;kBAEF;oBACE;sBACEhI,QAAQkC;sBACR/B,MAAM;wBACJgC,MAAM;sBACR;oBACF;;;cAGN;YACF;YAEA,KAAK3B,mCAAa0H,kBAAkB;AAClC,qBAAO;gBACL/H,MAAM;gBACN2H,SAAS;kBACP;oBACE;sBACE9H,QAAQC,qBAAAA,aAAaC;sBACrBC,MAAM;wBACJC,SAAS;wBACT+F,WAAW;wBACX6B,kBAAkB;wBAClB1B,SAAS;0BACPlE,oBAAoB;wBACtB;sBACF;oBACF;;;cAGN;YACF;YAEA,KAAK5B,mCAAaC,eAAe;AAC/B,oBAAMkD,UAAU;gBAAEhD,QAAQsG,OAAO9G,MAAMQ;cAAO,CAAA;AAC9C,qBAAO;gBAAER,MAAM;cAAK;YACtB;UACF;QACF;MACF;IACF;EACF;AACF;AIrSA,IAAA,cAAe+C;",
6
+ "names": ["import_react", "import_app_framework", "import_react_client", "import_react_ui", "IdentityDialog", "props", "dispatch", "useIntentDispatcher", "client", "useClient", "handleDone", "useCallback", "action", "LayoutAction", "SET_LAYOUT", "data", "element", "state", "handleResetStorage", "reset", "ClientAction", "RESET_STORAGE", "handleRecover", "target", "handleJoinNewIdentity", "React", "Dialog", "Content", "ClipboardProvider", "IdentityPanel", "doneActionParent", "Close", "asChild", "onDone", "onResetStorage", "onRecover", "onJoinNewIdentity", "JoinDialog", "handleCancelResetStorage", "plugin", "CLIENT_PLUGIN", "SHARE_IDENTITY", "result", "identityKey", "Promise", "all", "OBSERVABILITY_ACTION", "name", "initialDisposition", "JoinPanel", "mode", "exitActionParent", "onCancelResetStorage", "parseClientPlugin", "provides", "Client", "undefined", "parseSchemaPlugin", "Array", "isArray", "echo", "schema", "ClientPlugin", "appKey", "invitationUrl", "window", "location", "origin", "invitationParam", "onClientInitialized", "onReady", "onReset", "options", "registerSignalsRuntime", "error", "createDeviceInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "meta", "initialize", "config", "Config", "Storage", "Envs", "Local", "Defaults", "reloaded", "on", "halo", "identity", "subscribe", "href", "err", "context", "children", "ClientProvider", "ready", "plugins", "filterPlugins", "forEach", "log", "id", "addTypes", "unload", "destroy", "translations", "surface", "component", "role", "rest", "subject", "createInvitationUrl", "graph", "builder", "intentPlugin", "resolvePlugin", "parseIntentPlugin", "createExtension", "filter", "node", "actions", "intent", "properties", "label", "ns", "icon", "keyBinding", "macos", "windows", "linux", "testId", "resolver", "CREATE_IDENTITY", "createIdentity", "intents", "JOIN_IDENTITY", "dialogBlockAlign", "initialInvitationCode", "RECOVER_IDENTITY"]
7
7
  }
@@ -18,15 +18,17 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var meta_exports = {};
20
20
  __export(meta_exports, {
21
- CLIENT_PLUGIN: () => import_chunk_ZWE6N7MY.CLIENT_PLUGIN,
22
- ClientAction: () => import_chunk_ZWE6N7MY.ClientAction,
23
- default: () => import_chunk_ZWE6N7MY.meta_default
21
+ CLIENT_PLUGIN: () => import_chunk_JYQZCE2U.CLIENT_PLUGIN,
22
+ ClientAction: () => import_chunk_JYQZCE2U.ClientAction,
23
+ OBSERVABILITY_ACTION: () => import_chunk_JYQZCE2U.OBSERVABILITY_ACTION,
24
+ default: () => import_chunk_JYQZCE2U.meta_default
24
25
  });
25
26
  module.exports = __toCommonJS(meta_exports);
26
- var import_chunk_ZWE6N7MY = require("./chunk-ZWE6N7MY.cjs");
27
+ var import_chunk_JYQZCE2U = require("./chunk-JYQZCE2U.cjs");
27
28
  // Annotate the CommonJS export names for ESM import in node:
28
29
  0 && (module.exports = {
29
30
  CLIENT_PLUGIN,
30
- ClientAction
31
+ ClientAction,
32
+ OBSERVABILITY_ACTION
31
33
  });
32
34
  //# sourceMappingURL=meta.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["meta.cjs"],
4
- "sourcesContent": ["import {\n CLIENT_PLUGIN,\n ClientAction,\n meta_default\n} from \"./chunk-ZWE6N7MY.cjs\";\nexport {\n CLIENT_PLUGIN,\n ClientAction,\n meta_default as default\n};\n//# sourceMappingURL=meta.cjs.map\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAIO;",
4
+ "sourcesContent": ["import {\n CLIENT_PLUGIN,\n ClientAction,\n OBSERVABILITY_ACTION,\n meta_default\n} from \"./chunk-JYQZCE2U.cjs\";\nexport {\n CLIENT_PLUGIN,\n ClientAction,\n OBSERVABILITY_ACTION,\n meta_default as default\n};\n//# sourceMappingURL=meta.cjs.map\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAKO;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":2425,"imports":[],"format":"esm"},"packages/plugins/plugin-client/src/translations.ts":{"bytes":1043,"imports":[{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-client/src/ClientPlugin.tsx":{"bytes":26482,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-client/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-client/src/index.ts":{"bytes":782,"imports":[{"path":"packages/plugins/plugin-client/src/ClientPlugin.tsx","kind":"import-statement","original":"./ClientPlugin"},{"path":"packages/plugins/plugin-client/src/ClientPlugin.tsx","kind":"import-statement","original":"./ClientPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-client/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12650},"packages/plugins/plugin-client/dist/lib/node/index.cjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/node/chunk-ZWE6N7MY.cjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true}],"exports":["ClientPlugin","default","parseClientPlugin","parseSchemaPlugin"],"entryPoint":"packages/plugins/plugin-client/src/index.ts","inputs":{"packages/plugins/plugin-client/src/ClientPlugin.tsx":{"bytesInOutput":6564},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":134},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":32}},"bytes":7163},"packages/plugins/plugin-client/dist/lib/node/meta.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-client/dist/lib/node/meta.cjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/node/chunk-ZWE6N7MY.cjs","kind":"import-statement"}],"exports":["CLIENT_PLUGIN","ClientAction","default"],"entryPoint":"packages/plugins/plugin-client/src/meta.ts","inputs":{},"bytes":193},"packages/plugins/plugin-client/dist/lib/node/chunk-ZWE6N7MY.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1057},"packages/plugins/plugin-client/dist/lib/node/chunk-ZWE6N7MY.cjs":{"imports":[],"exports":["CLIENT_PLUGIN","ClientAction","meta_default"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":755}},"bytes":906}}}
1
+ {"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":2945,"imports":[],"format":"esm"},"packages/plugins/plugin-client/src/components/IdentityDialog.tsx":{"bytes":6567,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-client/src/components/JoinDialog.tsx":{"bytes":6031,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-client/src/components/index.ts":{"bytes":625,"imports":[{"path":"packages/plugins/plugin-client/src/components/IdentityDialog.tsx","kind":"import-statement","original":"./IdentityDialog"},{"path":"packages/plugins/plugin-client/src/components/JoinDialog.tsx","kind":"import-statement","original":"./JoinDialog"}],"format":"esm"},"packages/plugins/plugin-client/src/translations.ts":{"bytes":1043,"imports":[{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-client/src/ClientPlugin.tsx":{"bytes":30969,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-client/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-client/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-client/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-client/src/index.ts":{"bytes":782,"imports":[{"path":"packages/plugins/plugin-client/src/ClientPlugin.tsx","kind":"import-statement","original":"./ClientPlugin"},{"path":"packages/plugins/plugin-client/src/ClientPlugin.tsx","kind":"import-statement","original":"./ClientPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-client/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":21273},"packages/plugins/plugin-client/dist/lib/node/index.cjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/node/chunk-JYQZCE2U.cjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/config","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/shell/react","kind":"import-statement","external":true}],"exports":["ClientPlugin","default","parseClientPlugin","parseSchemaPlugin"],"entryPoint":"packages/plugins/plugin-client/src/index.ts","inputs":{"packages/plugins/plugin-client/src/ClientPlugin.tsx":{"bytesInOutput":7460},"packages/plugins/plugin-client/src/components/IdentityDialog.tsx":{"bytesInOutput":1649},"packages/plugins/plugin-client/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-client/src/components/JoinDialog.tsx":{"bytesInOutput":1474},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":134},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":32}},"bytes":11340},"packages/plugins/plugin-client/dist/lib/node/meta.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-client/dist/lib/node/meta.cjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/node/chunk-JYQZCE2U.cjs","kind":"import-statement"}],"exports":["CLIENT_PLUGIN","ClientAction","OBSERVABILITY_ACTION","default"],"entryPoint":"packages/plugins/plugin-client/src/meta.ts","inputs":{},"bytes":241},"packages/plugins/plugin-client/dist/lib/node/chunk-JYQZCE2U.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1285},"packages/plugins/plugin-client/dist/lib/node/chunk-JYQZCE2U.cjs":{"imports":[],"exports":["CLIENT_PLUGIN","ClientAction","OBSERVABILITY_ACTION","meta_default"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":840}},"bytes":1015}}}
@@ -9,16 +9,18 @@ var meta_default = {
9
9
  var CLIENT_ACTION = `${CLIENT_PLUGIN}/action`;
10
10
  var ClientAction;
11
11
  (function(ClientAction2) {
12
- ClientAction2[ClientAction2["OPEN_SHELL"] = `${CLIENT_ACTION}/SHELL`] = "OPEN_SHELL";
13
12
  ClientAction2[ClientAction2["CREATE_IDENTITY"] = `${CLIENT_ACTION}/CREATE_IDENTITY`] = "CREATE_IDENTITY";
14
13
  ClientAction2[ClientAction2["JOIN_IDENTITY"] = `${CLIENT_ACTION}/JOIN_IDENTITY`] = "JOIN_IDENTITY";
15
14
  ClientAction2[ClientAction2["SHARE_IDENTITY"] = `${CLIENT_ACTION}/SHARE_IDENTITY`] = "SHARE_IDENTITY";
16
15
  ClientAction2[ClientAction2["RECOVER_IDENTITY"] = `${CLIENT_ACTION}/RECOVER_IDENTITY`] = "RECOVER_IDENTITY";
16
+ ClientAction2[ClientAction2["RESET_STORAGE"] = `${CLIENT_ACTION}/RESET_STORAGE`] = "RESET_STORAGE";
17
17
  })(ClientAction || (ClientAction = {}));
18
+ var OBSERVABILITY_ACTION = "dxos.org/plugin/observability/send-event";
18
19
 
19
20
  export {
20
21
  CLIENT_PLUGIN,
21
22
  meta_default,
22
- ClientAction
23
+ ClientAction,
24
+ OBSERVABILITY_ACTION
23
25
  };
24
- //# sourceMappingURL=chunk-SZVMJZ6O.mjs.map
26
+ //# sourceMappingURL=chunk-4FDLD5H4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const CLIENT_PLUGIN = 'dxos.org/plugin/client';\n\nexport default {\n id: CLIENT_PLUGIN,\n name: 'Client',\n} satisfies PluginMeta;\n\nconst CLIENT_ACTION = `${CLIENT_PLUGIN}/action`;\nexport enum ClientAction {\n CREATE_IDENTITY = `${CLIENT_ACTION}/CREATE_IDENTITY`,\n JOIN_IDENTITY = `${CLIENT_ACTION}/JOIN_IDENTITY`,\n SHARE_IDENTITY = `${CLIENT_ACTION}/SHARE_IDENTITY`,\n RECOVER_IDENTITY = `${CLIENT_ACTION}/RECOVER_IDENTITY`,\n RESET_STORAGE = `${CLIENT_ACTION}/RESET_STORAGE`,\n}\n\n// NOTE: This action is hardcoded to avoid circular dependency with observability plugin.\nexport const OBSERVABILITY_ACTION = 'dxos.org/plugin/observability/send-event';\n"],
5
+ "mappings": ";;;AAMO,IAAMA,gBAAgB;AAE7B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;AACR;AAEA,IAAMC,gBAAgB,GAAGH,aAAAA;;UACbI,eAAAA;mDACQ,GAAGD,aAAAA,kBAA+B,IAAA;iDACpC,GAAGA,aAAAA,gBAA6B,IAAA;kDAC/B,GAAGA,aAAAA,iBAA8B,IAAA;oDAC/B,GAAGA,aAAAA,mBAAgC,IAAA;iDACtC,GAAGA,aAAAA,gBAA6B,IAAA;GALtCC,iBAAAA,eAAAA,CAAAA,EAAAA;AASL,IAAMC,uBAAuB;",
6
+ "names": ["CLIENT_PLUGIN", "id", "name", "CLIENT_ACTION", "ClientAction", "OBSERVABILITY_ACTION"]
7
+ }