@dxos/plugin-client 0.6.13-main.ed424a1 → 0.6.13

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.
@@ -18,4 +18,4 @@ export {
18
18
  meta_default,
19
19
  ClientAction
20
20
  };
21
- //# sourceMappingURL=chunk-GOCCTV5N.mjs.map
21
+ //# sourceMappingURL=chunk-3GFJ7SEI.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport const CLIENT_PLUGIN = 'dxos.org/plugin/client';\n\nexport default {\n id: CLIENT_PLUGIN,\n name: 'Client',\n};\n\nconst CLIENT_ACTION = `${CLIENT_PLUGIN}/action`;\nexport enum ClientAction {\n OPEN_SHELL = `${CLIENT_ACTION}/SHELL`,\n CREATE_IDENTITY = `${CLIENT_ACTION}/CREATE_IDENTITY`,\n JOIN_IDENTITY = `${CLIENT_ACTION}/JOIN_IDENTITY`,\n SHARE_IDENTITY = `${CLIENT_ACTION}/SHARE_IDENTITY`,\n}\n"],
5
+ "mappings": ";AAIO,IAAMA,gBAAgB;AAE7B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;AACR;AAEA,IAAMC,gBAAgB,GAAGH,aAAAA;;UACbI,eAAAA;8CACG,GAAGD,aAAAA,QAAqB,IAAA;mDACnB,GAAGA,aAAAA,kBAA+B,IAAA;iDACpC,GAAGA,aAAAA,gBAA6B,IAAA;kDAC/B,GAAGA,aAAAA,iBAA8B,IAAA;GAJxCC,iBAAAA,eAAAA,CAAAA,EAAAA;",
6
+ "names": ["CLIENT_PLUGIN", "id", "name", "CLIENT_ACTION", "ClientAction"]
7
+ }
@@ -2,16 +2,17 @@ import {
2
2
  CLIENT_PLUGIN,
3
3
  ClientAction,
4
4
  meta_default
5
- } from "./chunk-GOCCTV5N.mjs";
5
+ } from "./chunk-3GFJ7SEI.mjs";
6
6
 
7
7
  // packages/plugins/plugin-client/src/ClientPlugin.tsx
8
+ import { AddressBook } from "@phosphor-icons/react";
8
9
  import React from "react";
9
10
  import { filterPlugins, parseIntentPlugin, resolvePlugin } from "@dxos/app-framework";
10
11
  import { Config, Defaults, Envs, Local, Storage } from "@dxos/config";
11
- import { registerSignalsRuntime } from "@dxos/echo-signals/react";
12
+ import { registerSignalRuntime } from "@dxos/echo-signals/react";
12
13
  import { log } from "@dxos/log";
13
14
  import { createExtension } from "@dxos/plugin-graph";
14
- import { Client, ClientProvider } from "@dxos/react-client";
15
+ import { Client, ClientContext, useClientStatus } from "@dxos/react-client";
15
16
 
16
17
  // packages/plugins/plugin-client/src/translations.ts
17
18
  var translations_default = [
@@ -29,7 +30,7 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-client/s
29
30
  var parseClientPlugin = (plugin) => (plugin?.provides).client instanceof Client ? plugin : void 0;
30
31
  var parseSchemaPlugin = (plugin) => Array.isArray(plugin?.provides.echo?.schema) ? plugin : void 0;
31
32
  var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
32
- registerSignalsRuntime();
33
+ registerSignalRuntime();
33
34
  let client;
34
35
  let error = null;
35
36
  return {
@@ -55,9 +56,15 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
55
56
  }
56
57
  return {
57
58
  client,
58
- context: ({ children }) => /* @__PURE__ */ React.createElement(ClientProvider, {
59
- client
60
- }, children)
59
+ context: ({ children }) => {
60
+ const status = useClientStatus(client);
61
+ return /* @__PURE__ */ React.createElement(ClientContext.Provider, {
62
+ value: {
63
+ client,
64
+ status
65
+ }
66
+ }, children);
67
+ }
61
68
  };
62
69
  },
63
70
  ready: async (plugins) => {
@@ -70,7 +77,7 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
70
77
  id: plugin.meta.id
71
78
  }, {
72
79
  F: __dxlog_file,
73
- L: 112,
80
+ L: 118,
74
81
  S: void 0,
75
82
  C: (f, a) => f(...a)
76
83
  });
@@ -107,7 +114,8 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
107
114
  ns: CLIENT_PLUGIN
108
115
  }
109
116
  ],
110
- icon: "ph--address-book--regular",
117
+ icon: (props) => /* @__PURE__ */ React.createElement(AddressBook, props),
118
+ iconSymbol: "ph--address-book--regular",
111
119
  keyBinding: {
112
120
  macos: "meta+shift+.",
113
121
  // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 },\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": ["React", "filterPlugins", "parseIntentPlugin", "resolvePlugin", "Config", "Defaults", "Envs", "Local", "Storage", "registerSignalsRuntime", "log", "createExtension", "Client", "ClientProvider", "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", "ClientProvider", "ready", "plugins", "filterPlugins", "forEach", "log", "id", "addTypes", "unload", "destroy", "translations", "graph", "builder", "intentPlugin", "resolvePlugin", "parseIntentPlugin", "CLIENT_PLUGIN", "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", "ClientPlugin"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { AddressBook, type IconProps } from '@phosphor-icons/react';\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 { type S } from '@dxos/echo-schema';\nimport { registerSignalRuntime } from '@dxos/echo-signals/react';\nimport { log } from '@dxos/log';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\nimport { Client, type ClientOptions, ClientContext, useClientStatus } 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 registerSignalRuntime();\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 }) => {\n // TODO(burdon): Use ClientProvider?\n const status = useClientStatus(client);\n return <ClientContext.Provider value={{ client, status }}>{children}</ClientContext.Provider>;\n // return <ClientProvider client={client}>{children}</ClientProvider>;\n },\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: (props: IconProps) => <AddressBook {...props} />,\n iconSymbol: '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 },\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": ["AddressBook", "React", "filterPlugins", "parseIntentPlugin", "resolvePlugin", "Config", "Defaults", "Envs", "Local", "Storage", "registerSignalRuntime", "log", "createExtension", "Client", "ClientContext", "useClientStatus", "CLIENT_PLUGIN", "parseClientPlugin", "plugin", "provides", "client", "Client", "undefined", "parseSchemaPlugin", "Array", "isArray", "echo", "schema", "ClientPlugin", "appKey", "onClientInitialized", "onReady", "options", "registerSignalRuntime", "error", "meta", "initialize", "config", "Config", "Storage", "Envs", "Local", "Defaults", "reloaded", "on", "halo", "identity", "subscribe", "window", "location", "href", "origin", "err", "context", "children", "status", "useClientStatus", "ClientContext", "Provider", "value", "ready", "plugins", "filterPlugins", "forEach", "log", "id", "addTypes", "unload", "destroy", "translations", "graph", "builder", "intentPlugin", "resolvePlugin", "parseIntentPlugin", "CLIENT_PLUGIN", "createExtension", "filter", "node", "actions", "data", "intent", "dispatch", "action", "ClientAction", "OPEN_SHELL", "properties", "label", "ns", "icon", "props", "AddressBook", "iconSymbol", "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", "ClientPlugin"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":2186,"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":24269,"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/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11795},"packages/plugins/plugin-client/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-GOCCTV5N.mjs","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":5953},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":134},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":32}},"bytes":6552},"packages/plugins/plugin-client/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-client/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-GOCCTV5N.mjs","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/browser/chunk-GOCCTV5N.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":967},"packages/plugins/plugin-client/dist/lib/browser/chunk-GOCCTV5N.mjs":{"imports":[],"exports":["CLIENT_PLUGIN","ClientAction","meta_default"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":644}},"bytes":795}}}
1
+ {"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":2078,"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":25699,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"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/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12468},"packages/plugins/plugin-client/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-3GFJ7SEI.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"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":6269},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":134},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":32}},"bytes":6868},"packages/plugins/plugin-client/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-client/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/browser/chunk-3GFJ7SEI.mjs","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/browser/chunk-3GFJ7SEI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":888},"packages/plugins/plugin-client/dist/lib/browser/chunk-3GFJ7SEI.mjs":{"imports":[],"exports":["CLIENT_PLUGIN","ClientAction","meta_default"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":644}},"bytes":795}}}
@@ -2,7 +2,7 @@ import {
2
2
  CLIENT_PLUGIN,
3
3
  ClientAction,
4
4
  meta_default
5
- } from "./chunk-GOCCTV5N.mjs";
5
+ } from "./chunk-3GFJ7SEI.mjs";
6
6
  export {
7
7
  CLIENT_PLUGIN,
8
8
  ClientAction,
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_2SLZEXNL_exports = {};
20
- __export(chunk_2SLZEXNL_exports, {
19
+ var chunk_2E5ZNH3H_exports = {};
20
+ __export(chunk_2E5ZNH3H_exports, {
21
21
  CLIENT_PLUGIN: () => CLIENT_PLUGIN,
22
22
  ClientAction: () => ClientAction,
23
23
  meta_default: () => meta_default
24
24
  });
25
- module.exports = __toCommonJS(chunk_2SLZEXNL_exports);
25
+ module.exports = __toCommonJS(chunk_2E5ZNH3H_exports);
26
26
  var CLIENT_PLUGIN = "dxos.org/plugin/client";
27
27
  var meta_default = {
28
28
  id: CLIENT_PLUGIN,
@@ -42,4 +42,4 @@ var ClientAction;
42
42
  ClientAction,
43
43
  meta_default
44
44
  });
45
- //# sourceMappingURL=chunk-2SLZEXNL.cjs.map
45
+ //# sourceMappingURL=chunk-2E5ZNH3H.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nexport const CLIENT_PLUGIN = 'dxos.org/plugin/client';\n\nexport default {\n id: CLIENT_PLUGIN,\n name: 'Client',\n};\n\nconst CLIENT_ACTION = `${CLIENT_PLUGIN}/action`;\nexport enum ClientAction {\n OPEN_SHELL = `${CLIENT_ACTION}/SHELL`,\n CREATE_IDENTITY = `${CLIENT_ACTION}/CREATE_IDENTITY`,\n JOIN_IDENTITY = `${CLIENT_ACTION}/JOIN_IDENTITY`,\n SHARE_IDENTITY = `${CLIENT_ACTION}/SHARE_IDENTITY`,\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIO,IAAMA,gBAAgB;AAE7B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;AACR;AAEA,IAAMC,gBAAgB,GAAGH,aAAAA;;UACbI,eAAAA;8CACG,GAAGD,aAAAA,QAAqB,IAAA;mDACnB,GAAGA,aAAAA,kBAA+B,IAAA;iDACpC,GAAGA,aAAAA,gBAA6B,IAAA;kDAC/B,GAAGA,aAAAA,iBAA8B,IAAA;GAJxCC,iBAAAA,eAAAA,CAAAA,EAAAA;",
6
+ "names": ["CLIENT_PLUGIN", "id", "name", "CLIENT_ACTION", "ClientAction"]
7
+ }
@@ -34,18 +34,19 @@ __export(node_exports, {
34
34
  parseSchemaPlugin: () => parseSchemaPlugin
35
35
  });
36
36
  module.exports = __toCommonJS(node_exports);
37
- var import_chunk_2SLZEXNL = require("./chunk-2SLZEXNL.cjs");
38
- var import_react = __toESM(require("react"));
37
+ var import_chunk_2E5ZNH3H = require("./chunk-2E5ZNH3H.cjs");
38
+ var import_react = require("@phosphor-icons/react");
39
+ var import_react2 = __toESM(require("react"));
39
40
  var import_app_framework = require("@dxos/app-framework");
40
41
  var import_config = require("@dxos/config");
41
- var import_react2 = require("@dxos/echo-signals/react");
42
+ var import_react3 = require("@dxos/echo-signals/react");
42
43
  var import_log = require("@dxos/log");
43
44
  var import_plugin_graph = require("@dxos/plugin-graph");
44
45
  var import_react_client = require("@dxos/react-client");
45
46
  var translations_default = [
46
47
  {
47
48
  "en-US": {
48
- [import_chunk_2SLZEXNL.CLIENT_PLUGIN]: {
49
+ [import_chunk_2E5ZNH3H.CLIENT_PLUGIN]: {
49
50
  "open shell label": "Open HALO"
50
51
  }
51
52
  }
@@ -55,11 +56,11 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-client/s
55
56
  var parseClientPlugin = (plugin) => (plugin?.provides).client instanceof import_react_client.Client ? plugin : void 0;
56
57
  var parseSchemaPlugin = (plugin) => Array.isArray(plugin?.provides.echo?.schema) ? plugin : void 0;
57
58
  var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
58
- (0, import_react2.registerSignalsRuntime)();
59
+ (0, import_react3.registerSignalRuntime)();
59
60
  let client;
60
61
  let error = null;
61
62
  return {
62
- meta: import_chunk_2SLZEXNL.meta_default,
63
+ meta: import_chunk_2E5ZNH3H.meta_default,
63
64
  initialize: async () => {
64
65
  const config = new import_config.Config(await (0, import_config.Storage)(), (0, import_config.Envs)(), (0, import_config.Local)(), (0, import_config.Defaults)());
65
66
  client = new import_react_client.Client({
@@ -81,9 +82,15 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
81
82
  }
82
83
  return {
83
84
  client,
84
- context: ({ children }) => /* @__PURE__ */ import_react.default.createElement(import_react_client.ClientProvider, {
85
- client
86
- }, children)
85
+ context: ({ children }) => {
86
+ const status = (0, import_react_client.useClientStatus)(client);
87
+ return /* @__PURE__ */ import_react2.default.createElement(import_react_client.ClientContext.Provider, {
88
+ value: {
89
+ client,
90
+ status
91
+ }
92
+ }, children);
93
+ }
87
94
  };
88
95
  },
89
96
  ready: async (plugins) => {
@@ -96,7 +103,7 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
96
103
  id: plugin.meta.id
97
104
  }, {
98
105
  F: __dxlog_file,
99
- L: 112,
106
+ L: 118,
100
107
  S: void 0,
101
108
  C: (f, a) => f(...a)
102
109
  });
@@ -111,9 +118,9 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
111
118
  graph: {
112
119
  builder: (plugins) => {
113
120
  const intentPlugin = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseIntentPlugin);
114
- const id = `${import_chunk_2SLZEXNL.CLIENT_PLUGIN}/open-shell`;
121
+ const id = `${import_chunk_2E5ZNH3H.CLIENT_PLUGIN}/open-shell`;
115
122
  return (0, import_plugin_graph.createExtension)({
116
- id: import_chunk_2SLZEXNL.CLIENT_PLUGIN,
123
+ id: import_chunk_2E5ZNH3H.CLIENT_PLUGIN,
117
124
  filter: (node) => node.id === "root",
118
125
  actions: () => [
119
126
  {
@@ -121,8 +128,8 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
121
128
  data: async () => {
122
129
  await intentPlugin?.provides.intent.dispatch([
123
130
  {
124
- plugin: import_chunk_2SLZEXNL.CLIENT_PLUGIN,
125
- action: import_chunk_2SLZEXNL.ClientAction.OPEN_SHELL
131
+ plugin: import_chunk_2E5ZNH3H.CLIENT_PLUGIN,
132
+ action: import_chunk_2E5ZNH3H.ClientAction.OPEN_SHELL
126
133
  }
127
134
  ]);
128
135
  },
@@ -130,10 +137,11 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
130
137
  label: [
131
138
  "open shell label",
132
139
  {
133
- ns: import_chunk_2SLZEXNL.CLIENT_PLUGIN
140
+ ns: import_chunk_2E5ZNH3H.CLIENT_PLUGIN
134
141
  }
135
142
  ],
136
- icon: "ph--address-book--regular",
143
+ icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.AddressBook, props),
144
+ iconSymbol: "ph--address-book--regular",
137
145
  keyBinding: {
138
146
  macos: "meta+shift+.",
139
147
  // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
@@ -150,12 +158,12 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
150
158
  intent: {
151
159
  resolver: async (intent) => {
152
160
  switch (intent.action) {
153
- case import_chunk_2SLZEXNL.ClientAction.OPEN_SHELL:
161
+ case import_chunk_2E5ZNH3H.ClientAction.OPEN_SHELL:
154
162
  await client.shell.open(intent.data?.layout);
155
163
  return {
156
164
  data: true
157
165
  };
158
- case import_chunk_2SLZEXNL.ClientAction.CREATE_IDENTITY: {
166
+ case import_chunk_2E5ZNH3H.ClientAction.CREATE_IDENTITY: {
159
167
  const data = await client.halo.createIdentity();
160
168
  return {
161
169
  data,
@@ -172,7 +180,7 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
172
180
  ]
173
181
  };
174
182
  }
175
- case import_chunk_2SLZEXNL.ClientAction.JOIN_IDENTITY: {
183
+ case import_chunk_2E5ZNH3H.ClientAction.JOIN_IDENTITY: {
176
184
  const data = await client.shell.joinIdentity({
177
185
  invitationCode: intent.data?.invitationCode
178
186
  });
@@ -191,7 +199,7 @@ var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
191
199
  ]
192
200
  };
193
201
  }
194
- case import_chunk_2SLZEXNL.ClientAction.SHARE_IDENTITY: {
202
+ case import_chunk_2E5ZNH3H.ClientAction.SHARE_IDENTITY: {
195
203
  const data = await client.shell.shareIdentity();
196
204
  return {
197
205
  data,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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 },\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,mBAAkB;AAElB,2BASO;AACP,oBAAuD;AACvD,IAAAA,gBAAuC;AACvC,iBAAoB;AACpB,0BAA2C;AAC3C,0BAA2D;ACf3D,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACC,mCAAAA,GAAgB;QACf,oBAAoB;MACtB;IACF;EACF;;;ADqCK,IAAMC,oBAAoB,CAACC,YAC/BA,QAAQC,UAAiBC,kBAAkBC,6BAAUH,SAA0CI;AAQ3F,IAAMC,oBAAoB,CAACL,WAChCM,MAAMC,QAASP,QAAQC,SAAiBO,MAAMC,MAAAA,IAAWT,SAAoCI;AAExF,IAAMM,eAAe,CAAC,EAC3BC,QACAC,qBACAC,SACA,GAAGC,QAAAA,MACiB;AAIpBC,4CAAAA;AAEA,MAAIb;AACJ,MAAIc,QAAiB;AAErB,SAAO;IACLC,MAAAA;IACAC,YAAY,YAAA;AACV,YAAMC,SAAS,IAAIC,qBAAO,UAAMC,uBAAAA,OAAWC,oBAAAA,OAAQC,qBAAAA,OAASC,wBAAAA,CAAAA;AAC5DtB,eAAS,IAAIC,2BAAO;QAAEgB;QAAQ,GAAGL;MAAQ,CAAA;AAEzC,UAAI;AACF,cAAMZ,OAAOgB,WAAU;AACvB,cAAMN,sBAAsBV,MAAAA;AAG5BA,eAAOuB,SAASC,GAAG,MAAA;AACjBxB,iBAAOyB,KAAKC,SAASC,UAAU,OAAOD,aAAAA;AACpC,gBAAIA,UAAU;AACZE,qBAAOC,SAASC,OAAOF,OAAOC,SAASE;YACzC;UACF,CAAA;QACF,CAAA;MACF,SAASC,KAAK;AACZlB,gBAAQkB;MACV;AAEA,aAAO;QACLhC;QACAiC,SAAS,CAAC,EAAEC,SAAQ,MAAO,6BAAAC,QAAA,cAACC,oCAAAA;UAAepC;WAAiBkC,QAAAA;MAC9D;IACF;IACAG,OAAO,OAAOC,YAAAA;AACZ,UAAIxB,OAAO;AACT,cAAMA;MACR;AAEA,YAAMH,UAAUX,QAAQsC,OAAAA;AAExBC,8CAAcD,SAASnC,iBAAAA,EAAmBqC,QAAQ,CAAC1C,WAAAA;AACjD2C,4BAAI,SAAS;UAAEC,IAAI5C,OAAOiB,KAAK2B;QAAG,GAAA;;;;;;AAClC1C,eAAO2C,SAAS7C,OAAOC,SAASO,KAAKC,MAAM;MAC7C,CAAA;IACF;IACAqC,QAAQ,YAAA;AACN,YAAM5C,OAAO6C,QAAO;IACtB;IACA9C,UAAU;MACR+C,cAAAA;MACAC,OAAO;QACLC,SAAS,CAACV,YAAAA;AACR,gBAAMW,mBAAeC,oCAAcZ,SAASa,sCAAAA;AAC5C,gBAAMT,KAAK,GAAG9C,mCAAAA;AAEd,qBAAOwD,qCAAgB;YACrBV,IAAI9C;YACJyD,QAAQ,CAACC,SAA6BA,KAAKZ,OAAO;YAClDa,SAAS,MAAM;cACb;gBACEb;gBACAc,MAAM,YAAA;AACJ,wBAAMP,cAAclD,SAAS0D,OAAOC,SAAS;oBAC3C;sBAAE5D,QAAQF;sBAAe+D,QAAQC,mCAAaC;oBAAW;mBAC1D;gBACH;gBACAC,YAAY;kBACVC,OAAO;oBAAC;oBAAoB;sBAAEC,IAAIpE;oBAAc;;kBAChDqE,MAAM;kBACNC,YAAY;oBACVC,OAAO;;oBAEPC,SAAS;oBACTC,OAAO;kBACT;kBACAC,QAAQ;gBACV;cACF;;UAEJ,CAAA;QACF;MACF;MACAb,QAAQ;QACNc,UAAU,OAAOd,WAAAA;AACf,kBAAQA,OAAOE,QAAM;YACnB,KAAKC,mCAAaC;AAChB,oBAAM7D,OAAOwE,MAAMC,KAAKhB,OAAOD,MAAMkB,MAAAA;AACrC,qBAAO;gBAAElB,MAAM;cAAK;YAEtB,KAAKI,mCAAae,iBAAiB;AACjC,oBAAMnB,OAAO,MAAMxD,OAAOyB,KAAKmD,eAAc;AAC7C,qBAAO;gBACLpB;gBACAqB,SAAS;kBACP;oBACE;;sBAEElB,QAAQ;sBACRH,MAAM;wBACJsB,MAAM;sBACR;oBACF;;;cAGN;YACF;YAEA,KAAKlB,mCAAamB,eAAe;AAC/B,oBAAMvB,OAAO,MAAMxD,OAAOwE,MAAMQ,aAAa;gBAAEC,gBAAgBxB,OAAOD,MAAMyB;cAAe,CAAA;AAC3F,qBAAO;gBACLzB;gBACAqB,SAAS;kBACP;oBACE;;sBAEElB,QAAQ;sBACRH,MAAM;wBACJsB,MAAM;sBACR;oBACF;;;cAGN;YACF;YAEA,KAAKlB,mCAAasB,gBAAgB;AAChC,oBAAM1B,OAAO,MAAMxD,OAAOwE,MAAMW,cAAa;AAC7C,qBAAO;gBACL3B;gBACAqB,SAAS;kBACP;oBACE;;sBAEElB,QAAQ;sBACRH,MAAM;wBACJsB,MAAM;wBACNhB,YAAY;0BACVsB,WAAW5B,KAAK6B,QAAQD,UAAUE,SAAAA;0BAClCC,YAAY/B,KAAK6B,QAAQG;0BACzB1E,OAAO0C,KAAK1C,OAAO2E;0BACnBC,UAAUlC,KAAKmC;wBACjB;sBACF;oBACF;;;cAGN;YACF;UACF;QACF;MACF;IACF;EACF;AACF;AEzNA,IAAA,cAAenF;",
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"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { AddressBook, type IconProps } from '@phosphor-icons/react';\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 { type S } from '@dxos/echo-schema';\nimport { registerSignalRuntime } from '@dxos/echo-signals/react';\nimport { log } from '@dxos/log';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\nimport { Client, type ClientOptions, ClientContext, useClientStatus } 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 registerSignalRuntime();\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 }) => {\n // TODO(burdon): Use ClientProvider?\n const status = useClientStatus(client);\n return <ClientContext.Provider value={{ client, status }}>{children}</ClientContext.Provider>;\n // return <ClientProvider client={client}>{children}</ClientProvider>;\n },\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: (props: IconProps) => <AddressBook {...props} />,\n iconSymbol: '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 },\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", "registerSignalRuntime", "error", "meta", "initialize", "config", "Config", "Storage", "Envs", "Local", "Defaults", "reloaded", "on", "halo", "identity", "subscribe", "window", "location", "href", "origin", "err", "context", "children", "status", "useClientStatus", "React", "ClientContext", "Provider", "value", "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", "props", "AddressBook", "iconSymbol", "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"]
7
7
  }
@@ -18,12 +18,12 @@ 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_2SLZEXNL.CLIENT_PLUGIN,
22
- ClientAction: () => import_chunk_2SLZEXNL.ClientAction,
23
- default: () => import_chunk_2SLZEXNL.meta_default
21
+ CLIENT_PLUGIN: () => import_chunk_2E5ZNH3H.CLIENT_PLUGIN,
22
+ ClientAction: () => import_chunk_2E5ZNH3H.ClientAction,
23
+ default: () => import_chunk_2E5ZNH3H.meta_default
24
24
  });
25
25
  module.exports = __toCommonJS(meta_exports);
26
- var import_chunk_2SLZEXNL = require("./chunk-2SLZEXNL.cjs");
26
+ var import_chunk_2E5ZNH3H = require("./chunk-2E5ZNH3H.cjs");
27
27
  // Annotate the CommonJS export names for ESM import in node:
28
28
  0 && (module.exports = {
29
29
  CLIENT_PLUGIN,
@@ -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-2SLZEXNL.cjs\";\nexport {\n CLIENT_PLUGIN,\n ClientAction,\n meta_default as default\n};\n//# sourceMappingURL=meta.cjs.map\n"],
4
+ "sourcesContent": ["import {\n CLIENT_PLUGIN,\n ClientAction,\n meta_default\n} from \"./chunk-2E5ZNH3H.cjs\";\nexport {\n CLIENT_PLUGIN,\n ClientAction,\n meta_default as default\n};\n//# sourceMappingURL=meta.cjs.map\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAIO;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":2186,"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":24269,"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":11795},"packages/plugins/plugin-client/dist/lib/node/index.cjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/node/chunk-2SLZEXNL.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":5953},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":134},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":32}},"bytes":6552},"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-2SLZEXNL.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-2SLZEXNL.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":967},"packages/plugins/plugin-client/dist/lib/node/chunk-2SLZEXNL.cjs":{"imports":[],"exports":["CLIENT_PLUGIN","ClientAction","meta_default"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":644}},"bytes":795}}}
1
+ {"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":2078,"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":25699,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"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":12468},"packages/plugins/plugin-client/dist/lib/node/index.cjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/node/chunk-2E5ZNH3H.cjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"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":6269},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":134},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":32}},"bytes":6868},"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-2E5ZNH3H.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-2E5ZNH3H.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":888},"packages/plugins/plugin-client/dist/lib/node/chunk-2E5ZNH3H.cjs":{"imports":[],"exports":["CLIENT_PLUGIN","ClientAction","meta_default"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":644}},"bytes":795}}}
@@ -1,5 +1,5 @@
1
- import { type Schema as S } from '@effect/schema';
2
1
  import { type GraphBuilderProvides, type IntentResolverProvides, type Plugin, type PluginDefinition, type TranslationsProvides } from '@dxos/app-framework';
2
+ import { type S } from '@dxos/echo-schema';
3
3
  import { Client, type ClientOptions } from '@dxos/react-client';
4
4
  export type ClientPluginOptions = ClientOptions & {
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ClientPlugin.d.ts","sourceRoot":"","sources":["../../../src/ClientPlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAkB,MAAM,oBAAoB,CAAC;AAKhF,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GACvD,oBAAoB,GACpB,oBAAoB,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,YAAa,MAAM,6CAC0D,CAAC;AAE5G,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,uCACuD,CAAC;AAEzG,eAAO,MAAM,YAAY,yDAKtB,mBAAmB,KAAG,gBAAgB,CACvC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EACpC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CA0JrC,CAAC"}
1
+ {"version":3,"file":"ClientPlugin.d.ts","sourceRoot":"","sources":["../../../src/ClientPlugin.tsx"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAI3C,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAkC,MAAM,oBAAoB,CAAC;AAKhG,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GACvD,oBAAoB,GACpB,oBAAoB,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,YAAa,MAAM,6CAC0D,CAAC;AAE5G,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,uCACuD,CAAC;AAEzG,eAAO,MAAM,YAAY,yDAKtB,mBAAmB,KAAG,gBAAgB,CACvC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EACpC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAgKrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,2BAA2B,CAAC;;;;;AAEtD,wBAGuB;AAGvB,oBAAY,YAAY;IACtB,UAAU,wCAA2B;IACrC,eAAe,kDAAqC;IACpD,aAAa,gDAAmC;IAChD,cAAc,iDAAoC;CACnD"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,2BAA2B,CAAC;;;;;AAEtD,wBAGE;AAGF,oBAAY,YAAY;IACtB,UAAU,wCAA2B;IACrC,eAAe,kDAAqC;IACpD,aAAa,gDAAmC;IAChD,cAAc,iDAAoC;CACnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-client",
3
- "version": "0.6.13-main.ed424a1",
3
+ "version": "0.6.13",
4
4
  "description": "DXOS Surface plugin for DXOS Client",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -10,16 +10,14 @@
10
10
  ".": {
11
11
  "browser": "./dist/lib/browser/index.mjs",
12
12
  "node": {
13
- "require": "./dist/lib/node/index.cjs",
14
- "default": "./dist/lib/node-esm/index.mjs"
13
+ "default": "./dist/lib/node/index.cjs"
15
14
  },
16
15
  "types": "./dist/types/src/index.d.ts"
17
16
  },
18
17
  "./meta": {
19
18
  "browser": "./dist/lib/browser/meta.mjs",
20
19
  "node": {
21
- "require": "./dist/lib/node/meta.cjs",
22
- "default": "./dist/lib/node-esm/meta.mjs"
20
+ "default": "./dist/lib/node/meta.cjs"
23
21
  },
24
22
  "types": "./dist/types/src/meta.d.ts"
25
23
  }
@@ -38,29 +36,28 @@
38
36
  ],
39
37
  "dependencies": {
40
38
  "@phosphor-icons/react": "^2.1.5",
41
- "@dxos/app-framework": "0.6.13-main.ed424a1",
42
- "@dxos/config": "0.6.13-main.ed424a1",
43
- "@dxos/echo-schema": "0.6.13-main.ed424a1",
44
- "@dxos/echo-signals": "0.6.13-main.ed424a1",
45
- "@dxos/invariant": "0.6.13-main.ed424a1",
46
- "@dxos/log": "0.6.13-main.ed424a1",
47
- "@dxos/local-storage": "0.6.13-main.ed424a1",
48
- "@dxos/plugin-graph": "0.6.13-main.ed424a1",
49
- "@dxos/react-ui": "0.6.13-main.ed424a1",
50
- "@dxos/react-client": "0.6.13-main.ed424a1"
39
+ "@dxos/app-framework": "0.6.13",
40
+ "@dxos/echo-schema": "0.6.13",
41
+ "@dxos/config": "0.6.13",
42
+ "@dxos/echo-signals": "0.6.13",
43
+ "@dxos/invariant": "0.6.13",
44
+ "@dxos/log": "0.6.13",
45
+ "@dxos/local-storage": "0.6.13",
46
+ "@dxos/plugin-graph": "0.6.13",
47
+ "@dxos/react-client": "0.6.13",
48
+ "@dxos/react-ui": "0.6.13"
51
49
  },
52
50
  "devDependencies": {
53
51
  "@types/react": "~18.2.0",
54
52
  "@types/react-dom": "~18.2.0",
55
53
  "react": "~18.2.0",
56
54
  "react-dom": "~18.2.0",
57
- "vite": "5.4.7",
58
- "@dxos/storybook-utils": "0.6.13-main.ed424a1"
55
+ "vite": "^5.3.4",
56
+ "@dxos/storybook-utils": "0.6.13"
59
57
  },
60
58
  "peerDependencies": {
61
- "@phosphor-icons/react": "^2.1.5",
62
- "react": "~18.2.0",
63
- "react-dom": "~18.2.0"
59
+ "react": "^18.0.0",
60
+ "react-dom": "^18.0.0"
64
61
  },
65
62
  "publishConfig": {
66
63
  "access": "public"
@@ -2,7 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type Schema as S } from '@effect/schema';
5
+ import { AddressBook, type IconProps } from '@phosphor-icons/react';
6
6
  import React from 'react';
7
7
 
8
8
  import {
@@ -16,10 +16,11 @@ import {
16
16
  type TranslationsProvides,
17
17
  } from '@dxos/app-framework';
18
18
  import { Config, Defaults, Envs, Local, Storage } from '@dxos/config';
19
- import { registerSignalsRuntime } from '@dxos/echo-signals/react';
19
+ import { type S } from '@dxos/echo-schema';
20
+ import { registerSignalRuntime } from '@dxos/echo-signals/react';
20
21
  import { log } from '@dxos/log';
21
22
  import { createExtension, type Node } from '@dxos/plugin-graph';
22
- import { Client, type ClientOptions, ClientProvider } from '@dxos/react-client';
23
+ import { Client, type ClientOptions, ClientContext, useClientStatus } from '@dxos/react-client';
23
24
 
24
25
  import meta, { CLIENT_PLUGIN, ClientAction } from './meta';
25
26
  import translations from './translations';
@@ -69,7 +70,7 @@ export const ClientPlugin = ({
69
70
  Omit<ClientPluginProvides, 'client'>,
70
71
  Pick<ClientPluginProvides, 'client'>
71
72
  > => {
72
- registerSignalsRuntime();
73
+ registerSignalRuntime();
73
74
 
74
75
  let client: Client;
75
76
  let error: unknown = null;
@@ -98,7 +99,12 @@ export const ClientPlugin = ({
98
99
 
99
100
  return {
100
101
  client,
101
- context: ({ children }) => <ClientProvider client={client}>{children}</ClientProvider>,
102
+ context: ({ children }) => {
103
+ // TODO(burdon): Use ClientProvider?
104
+ const status = useClientStatus(client);
105
+ return <ClientContext.Provider value={{ client, status }}>{children}</ClientContext.Provider>;
106
+ // return <ClientProvider client={client}>{children}</ClientProvider>;
107
+ },
102
108
  };
103
109
  },
104
110
  ready: async (plugins) => {
@@ -136,7 +142,8 @@ export const ClientPlugin = ({
136
142
  },
137
143
  properties: {
138
144
  label: ['open shell label', { ns: CLIENT_PLUGIN }],
139
- icon: 'ph--address-book--regular',
145
+ icon: (props: IconProps) => <AddressBook {...props} />,
146
+ iconSymbol: 'ph--address-book--regular',
140
147
  keyBinding: {
141
148
  macos: 'meta+shift+.',
142
149
  // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
package/src/meta.ts CHANGED
@@ -2,14 +2,12 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type PluginMeta } from '@dxos/app-framework';
6
-
7
5
  export const CLIENT_PLUGIN = 'dxos.org/plugin/client';
8
6
 
9
7
  export default {
10
8
  id: CLIENT_PLUGIN,
11
9
  name: 'Client',
12
- } satisfies PluginMeta;
10
+ };
13
11
 
14
12
  const CLIENT_ACTION = `${CLIENT_PLUGIN}/action`;
15
13
  export enum ClientAction {
@@ -1,7 +0,0 @@
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 OPEN_SHELL = `${CLIENT_ACTION}/SHELL`,\n CREATE_IDENTITY = `${CLIENT_ACTION}/CREATE_IDENTITY`,\n JOIN_IDENTITY = `${CLIENT_ACTION}/JOIN_IDENTITY`,\n SHARE_IDENTITY = `${CLIENT_ACTION}/SHARE_IDENTITY`,\n}\n"],
5
- "mappings": ";AAMO,IAAMA,gBAAgB;AAE7B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;AACR;AAEA,IAAMC,gBAAgB,GAAGH,aAAAA;;UACbI,eAAAA;8CACG,GAAGD,aAAAA,QAAqB,IAAA;mDACnB,GAAGA,aAAAA,kBAA+B,IAAA;iDACpC,GAAGA,aAAAA,gBAA6B,IAAA;kDAC/B,GAAGA,aAAAA,iBAA8B,IAAA;GAJxCC,iBAAAA,eAAAA,CAAAA,EAAAA;",
6
- "names": ["CLIENT_PLUGIN", "id", "name", "CLIENT_ACTION", "ClientAction"]
7
- }
@@ -1,7 +0,0 @@
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 OPEN_SHELL = `${CLIENT_ACTION}/SHELL`,\n CREATE_IDENTITY = `${CLIENT_ACTION}/CREATE_IDENTITY`,\n JOIN_IDENTITY = `${CLIENT_ACTION}/JOIN_IDENTITY`,\n SHARE_IDENTITY = `${CLIENT_ACTION}/SHARE_IDENTITY`,\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAMA,gBAAgB;AAE7B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;AACR;AAEA,IAAMC,gBAAgB,GAAGH,aAAAA;;UACbI,eAAAA;8CACG,GAAGD,aAAAA,QAAqB,IAAA;mDACnB,GAAGA,aAAAA,kBAA+B,IAAA;iDACpC,GAAGA,aAAAA,gBAA6B,IAAA;kDAC/B,GAAGA,aAAAA,iBAA8B,IAAA;GAJxCC,iBAAAA,eAAAA,CAAAA,EAAAA;",
6
- "names": ["CLIENT_PLUGIN", "id", "name", "CLIENT_ACTION", "ClientAction"]
7
- }
@@ -1,23 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // packages/plugins/plugin-client/src/meta.ts
4
- var CLIENT_PLUGIN = "dxos.org/plugin/client";
5
- var meta_default = {
6
- id: CLIENT_PLUGIN,
7
- name: "Client"
8
- };
9
- var CLIENT_ACTION = `${CLIENT_PLUGIN}/action`;
10
- var ClientAction;
11
- (function(ClientAction2) {
12
- ClientAction2[ClientAction2["OPEN_SHELL"] = `${CLIENT_ACTION}/SHELL`] = "OPEN_SHELL";
13
- ClientAction2[ClientAction2["CREATE_IDENTITY"] = `${CLIENT_ACTION}/CREATE_IDENTITY`] = "CREATE_IDENTITY";
14
- ClientAction2[ClientAction2["JOIN_IDENTITY"] = `${CLIENT_ACTION}/JOIN_IDENTITY`] = "JOIN_IDENTITY";
15
- ClientAction2[ClientAction2["SHARE_IDENTITY"] = `${CLIENT_ACTION}/SHARE_IDENTITY`] = "SHARE_IDENTITY";
16
- })(ClientAction || (ClientAction = {}));
17
-
18
- export {
19
- CLIENT_PLUGIN,
20
- meta_default,
21
- ClientAction
22
- };
23
- //# sourceMappingURL=chunk-HMR23AKU.mjs.map
@@ -1,7 +0,0 @@
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 OPEN_SHELL = `${CLIENT_ACTION}/SHELL`,\n CREATE_IDENTITY = `${CLIENT_ACTION}/CREATE_IDENTITY`,\n JOIN_IDENTITY = `${CLIENT_ACTION}/JOIN_IDENTITY`,\n SHARE_IDENTITY = `${CLIENT_ACTION}/SHARE_IDENTITY`,\n}\n"],
5
- "mappings": ";;;AAMO,IAAMA,gBAAgB;AAE7B,IAAA,eAAe;EACbC,IAAID;EACJE,MAAM;AACR;AAEA,IAAMC,gBAAgB,GAAGH,aAAAA;;UACbI,eAAAA;8CACG,GAAGD,aAAAA,QAAqB,IAAA;mDACnB,GAAGA,aAAAA,kBAA+B,IAAA;iDACpC,GAAGA,aAAAA,gBAA6B,IAAA;kDAC/B,GAAGA,aAAAA,iBAA8B,IAAA;GAJxCC,iBAAAA,eAAAA,CAAAA,EAAAA;",
6
- "names": ["CLIENT_PLUGIN", "id", "name", "CLIENT_ACTION", "ClientAction"]
7
- }
@@ -1,207 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- CLIENT_PLUGIN,
4
- ClientAction,
5
- meta_default
6
- } from "./chunk-HMR23AKU.mjs";
7
-
8
- // packages/plugins/plugin-client/src/ClientPlugin.tsx
9
- import React from "react";
10
- import { filterPlugins, parseIntentPlugin, resolvePlugin } from "@dxos/app-framework";
11
- import { Config, Defaults, Envs, Local, Storage } from "@dxos/config";
12
- import { registerSignalsRuntime } from "@dxos/echo-signals/react";
13
- import { log } from "@dxos/log";
14
- import { createExtension } from "@dxos/plugin-graph";
15
- import { Client, ClientProvider } from "@dxos/react-client";
16
-
17
- // packages/plugins/plugin-client/src/translations.ts
18
- var translations_default = [
19
- {
20
- "en-US": {
21
- [CLIENT_PLUGIN]: {
22
- "open shell label": "Open HALO"
23
- }
24
- }
25
- }
26
- ];
27
-
28
- // packages/plugins/plugin-client/src/ClientPlugin.tsx
29
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-client/src/ClientPlugin.tsx";
30
- var parseClientPlugin = (plugin) => (plugin?.provides).client instanceof Client ? plugin : void 0;
31
- var parseSchemaPlugin = (plugin) => Array.isArray(plugin?.provides.echo?.schema) ? plugin : void 0;
32
- var ClientPlugin = ({ appKey, onClientInitialized, onReady, ...options }) => {
33
- registerSignalsRuntime();
34
- let client;
35
- let error = null;
36
- return {
37
- meta: meta_default,
38
- initialize: async () => {
39
- const config = new Config(await Storage(), Envs(), Local(), Defaults());
40
- client = new Client({
41
- config,
42
- ...options
43
- });
44
- try {
45
- await client.initialize();
46
- await onClientInitialized?.(client);
47
- client.reloaded.on(() => {
48
- client.halo.identity.subscribe(async (identity) => {
49
- if (identity) {
50
- window.location.href = window.location.origin;
51
- }
52
- });
53
- });
54
- } catch (err) {
55
- error = err;
56
- }
57
- return {
58
- client,
59
- context: ({ children }) => /* @__PURE__ */ React.createElement(ClientProvider, {
60
- client
61
- }, children)
62
- };
63
- },
64
- ready: async (plugins) => {
65
- if (error) {
66
- throw error;
67
- }
68
- await onReady?.(client, plugins);
69
- filterPlugins(plugins, parseSchemaPlugin).forEach((plugin) => {
70
- log("ready", {
71
- id: plugin.meta.id
72
- }, {
73
- F: __dxlog_file,
74
- L: 112,
75
- S: void 0,
76
- C: (f, a) => f(...a)
77
- });
78
- client.addTypes(plugin.provides.echo.schema);
79
- });
80
- },
81
- unload: async () => {
82
- await client.destroy();
83
- },
84
- provides: {
85
- translations: translations_default,
86
- graph: {
87
- builder: (plugins) => {
88
- const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);
89
- const id = `${CLIENT_PLUGIN}/open-shell`;
90
- return createExtension({
91
- id: CLIENT_PLUGIN,
92
- filter: (node) => node.id === "root",
93
- actions: () => [
94
- {
95
- id,
96
- data: async () => {
97
- await intentPlugin?.provides.intent.dispatch([
98
- {
99
- plugin: CLIENT_PLUGIN,
100
- action: ClientAction.OPEN_SHELL
101
- }
102
- ]);
103
- },
104
- properties: {
105
- label: [
106
- "open shell label",
107
- {
108
- ns: CLIENT_PLUGIN
109
- }
110
- ],
111
- icon: "ph--address-book--regular",
112
- keyBinding: {
113
- macos: "meta+shift+.",
114
- // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.
115
- windows: "alt+shift+.",
116
- linux: "alt+shift+>"
117
- },
118
- testId: "clientPlugin.openShell"
119
- }
120
- }
121
- ]
122
- });
123
- }
124
- },
125
- intent: {
126
- resolver: async (intent) => {
127
- switch (intent.action) {
128
- case ClientAction.OPEN_SHELL:
129
- await client.shell.open(intent.data?.layout);
130
- return {
131
- data: true
132
- };
133
- case ClientAction.CREATE_IDENTITY: {
134
- const data = await client.halo.createIdentity();
135
- return {
136
- data,
137
- intents: [
138
- [
139
- {
140
- // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.
141
- action: "dxos.org/plugin/observability/send-event",
142
- data: {
143
- name: "identity.created"
144
- }
145
- }
146
- ]
147
- ]
148
- };
149
- }
150
- case ClientAction.JOIN_IDENTITY: {
151
- const data = await client.shell.joinIdentity({
152
- invitationCode: intent.data?.invitationCode
153
- });
154
- return {
155
- data,
156
- intents: [
157
- [
158
- {
159
- // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.
160
- action: "dxos.org/plugin/observability/send-event",
161
- data: {
162
- name: "identity.joined"
163
- }
164
- }
165
- ]
166
- ]
167
- };
168
- }
169
- case ClientAction.SHARE_IDENTITY: {
170
- const data = await client.shell.shareIdentity();
171
- return {
172
- data,
173
- intents: [
174
- [
175
- {
176
- // NOTE: This action is hardcoded to avoid circular dependency with observability plugin.
177
- action: "dxos.org/plugin/observability/send-event",
178
- data: {
179
- name: "identity.shared",
180
- properties: {
181
- deviceKey: data.device?.deviceKey.truncate(),
182
- deviceKind: data.device?.kind,
183
- error: data.error?.message,
184
- canceled: data.cancelled
185
- }
186
- }
187
- }
188
- ]
189
- ]
190
- };
191
- }
192
- }
193
- }
194
- }
195
- }
196
- };
197
- };
198
-
199
- // packages/plugins/plugin-client/src/index.ts
200
- var src_default = ClientPlugin;
201
- export {
202
- ClientPlugin,
203
- src_default as default,
204
- parseClientPlugin,
205
- parseSchemaPlugin
206
- };
207
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
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 },\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": ["React", "filterPlugins", "parseIntentPlugin", "resolvePlugin", "Config", "Defaults", "Envs", "Local", "Storage", "registerSignalsRuntime", "log", "createExtension", "Client", "ClientProvider", "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", "ClientProvider", "ready", "plugins", "filterPlugins", "forEach", "log", "id", "addTypes", "unload", "destroy", "translations", "graph", "builder", "intentPlugin", "resolvePlugin", "parseIntentPlugin", "CLIENT_PLUGIN", "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", "ClientPlugin"]
7
- }
@@ -1 +0,0 @@
1
- {"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytes":2186,"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":24269,"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-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11796},"packages/plugins/plugin-client/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/node-esm/chunk-HMR23AKU.mjs","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":5953},"packages/plugins/plugin-client/src/translations.ts":{"bytesInOutput":134},"packages/plugins/plugin-client/src/index.ts":{"bytesInOutput":32}},"bytes":6644},"packages/plugins/plugin-client/dist/lib/node-esm/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-client/dist/lib/node-esm/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-client/dist/lib/node-esm/chunk-HMR23AKU.mjs","kind":"import-statement"}],"exports":["CLIENT_PLUGIN","ClientAction","default"],"entryPoint":"packages/plugins/plugin-client/src/meta.ts","inputs":{},"bytes":285},"packages/plugins/plugin-client/dist/lib/node-esm/chunk-HMR23AKU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":969},"packages/plugins/plugin-client/dist/lib/node-esm/chunk-HMR23AKU.mjs":{"imports":[],"exports":["CLIENT_PLUGIN","ClientAction","meta_default"],"inputs":{"packages/plugins/plugin-client/src/meta.ts":{"bytesInOutput":644}},"bytes":888}}}
@@ -1,12 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- CLIENT_PLUGIN,
4
- ClientAction,
5
- meta_default
6
- } from "./chunk-HMR23AKU.mjs";
7
- export {
8
- CLIENT_PLUGIN,
9
- ClientAction,
10
- meta_default as default
11
- };
12
- //# sourceMappingURL=meta.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }