@dxos/react-client 0.6.14-main.2b6a0f3 → 0.6.14-main.f49f251

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 (66) hide show
  1. package/dist/lib/browser/{chunk-OFVJLJ3V.mjs → chunk-GSDDO2LE.mjs} +131 -5
  2. package/dist/lib/browser/chunk-GSDDO2LE.mjs.map +7 -0
  3. package/dist/lib/browser/devtools/index.mjs +1 -2
  4. package/dist/lib/browser/devtools/index.mjs.map +1 -1
  5. package/dist/lib/browser/echo/index.mjs +1 -2
  6. package/dist/lib/browser/echo/index.mjs.map +1 -1
  7. package/dist/lib/browser/halo/index.mjs +1 -2
  8. package/dist/lib/browser/halo/index.mjs.map +1 -1
  9. package/dist/lib/browser/index.mjs +12 -114
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/mesh/index.mjs +1 -2
  12. package/dist/lib/browser/mesh/index.mjs.map +1 -1
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/testing/index.mjs +16 -8
  15. package/dist/lib/browser/testing/index.mjs.map +3 -3
  16. package/dist/lib/node/chunk-WR4BVOQQ.cjs +315 -0
  17. package/dist/lib/node/chunk-WR4BVOQQ.cjs.map +7 -0
  18. package/dist/lib/node/devtools/index.cjs +2 -3
  19. package/dist/lib/node/devtools/index.cjs.map +1 -1
  20. package/dist/lib/node/echo/index.cjs +3 -4
  21. package/dist/lib/node/echo/index.cjs.map +1 -1
  22. package/dist/lib/node/halo/index.cjs +5 -6
  23. package/dist/lib/node/halo/index.cjs.map +1 -1
  24. package/dist/lib/node/index.cjs +12 -120
  25. package/dist/lib/node/index.cjs.map +4 -4
  26. package/dist/lib/node/mesh/index.cjs +2 -3
  27. package/dist/lib/node/mesh/index.cjs.map +1 -1
  28. package/dist/lib/node/meta.json +1 -1
  29. package/dist/lib/node/testing/index.cjs +18 -9
  30. package/dist/lib/node/testing/index.cjs.map +3 -3
  31. package/dist/lib/node-esm/{chunk-KVEEO6SV.mjs → chunk-LPOLSASZ.mjs} +132 -5
  32. package/dist/lib/node-esm/chunk-LPOLSASZ.mjs.map +7 -0
  33. package/dist/lib/node-esm/devtools/index.mjs +1 -2
  34. package/dist/lib/node-esm/devtools/index.mjs.map +1 -1
  35. package/dist/lib/node-esm/echo/index.mjs +1 -2
  36. package/dist/lib/node-esm/echo/index.mjs.map +1 -1
  37. package/dist/lib/node-esm/halo/index.mjs +1 -2
  38. package/dist/lib/node-esm/halo/index.mjs.map +1 -1
  39. package/dist/lib/node-esm/index.mjs +12 -114
  40. package/dist/lib/node-esm/index.mjs.map +4 -4
  41. package/dist/lib/node-esm/mesh/index.mjs +1 -2
  42. package/dist/lib/node-esm/mesh/index.mjs.map +1 -1
  43. package/dist/lib/node-esm/meta.json +1 -1
  44. package/dist/lib/node-esm/testing/index.mjs +16 -8
  45. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  46. package/dist/types/src/testing/withClientProvider.d.ts +3 -0
  47. package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
  48. package/package.json +40 -64
  49. package/src/playwright/smoke.spec.ts +1 -1
  50. package/src/testing/withClientProvider.tsx +14 -9
  51. package/dist/lib/browser/chunk-DXE5O7SV.mjs +0 -8
  52. package/dist/lib/browser/chunk-DXE5O7SV.mjs.map +0 -7
  53. package/dist/lib/browser/chunk-KX3DKZQL.mjs +0 -16
  54. package/dist/lib/browser/chunk-KX3DKZQL.mjs.map +0 -7
  55. package/dist/lib/browser/chunk-OFVJLJ3V.mjs.map +0 -7
  56. package/dist/lib/node/chunk-DVAPCZTK.cjs +0 -35
  57. package/dist/lib/node/chunk-DVAPCZTK.cjs.map +0 -7
  58. package/dist/lib/node/chunk-VIZOXSRY.cjs +0 -30
  59. package/dist/lib/node/chunk-VIZOXSRY.cjs.map +0 -7
  60. package/dist/lib/node/chunk-ZUY26MIE.cjs +0 -192
  61. package/dist/lib/node/chunk-ZUY26MIE.cjs.map +0 -7
  62. package/dist/lib/node-esm/chunk-KVEEO6SV.mjs.map +0 -7
  63. package/dist/lib/node-esm/chunk-QNHFZM3T.mjs +0 -17
  64. package/dist/lib/node-esm/chunk-QNHFZM3T.mjs.map +0 -7
  65. package/dist/lib/node-esm/chunk-UPS353EF.mjs +0 -10
  66. package/dist/lib/node-esm/chunk-UPS353EF.mjs.map +0 -7
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -18,132 +16,26 @@ var __copyProps = (to, from, except, desc) => {
18
16
  return to;
19
17
  };
20
18
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
20
  var node_exports = {};
31
21
  __export(node_exports, {
32
- AgentHostingContext: () => AgentHostingContext,
33
- AgentHostingProvider: () => AgentHostingProvider,
34
- ClientContext: () => import_chunk_VIZOXSRY.ClientContext,
35
- ClientProvider: () => import_chunk_ZUY26MIE.ClientProvider,
36
- useAgentHostingClient: () => useAgentHostingClient,
37
- useClient: () => import_chunk_DVAPCZTK.useClient,
38
- useClientStatus: () => useClientStatus,
39
- useConfig: () => useConfig,
22
+ AgentHostingContext: () => import_chunk_WR4BVOQQ.AgentHostingContext,
23
+ AgentHostingProvider: () => import_chunk_WR4BVOQQ.AgentHostingProvider,
24
+ ClientContext: () => import_chunk_WR4BVOQQ.ClientContext,
25
+ ClientProvider: () => import_chunk_WR4BVOQQ.ClientProvider,
26
+ useAgentHostingClient: () => import_chunk_WR4BVOQQ.useAgentHostingClient,
27
+ useClient: () => import_chunk_WR4BVOQQ.useClient,
28
+ useClientStatus: () => import_chunk_WR4BVOQQ.useClientStatus,
29
+ useConfig: () => import_chunk_WR4BVOQQ.useConfig,
40
30
  useMulticastObservable: () => import_react_hooks.useMulticastObservable,
41
- useShell: () => useShell,
42
- useShellDisplay: () => useShellDisplay,
43
- useStatus: () => useStatus
31
+ useShell: () => import_chunk_WR4BVOQQ.useShell,
32
+ useShellDisplay: () => import_chunk_WR4BVOQQ.useShellDisplay,
33
+ useStatus: () => import_chunk_WR4BVOQQ.useStatus
44
34
  });
45
35
  module.exports = __toCommonJS(node_exports);
46
- var import_chunk_DVAPCZTK = require("./chunk-DVAPCZTK.cjs");
47
- var import_chunk_ZUY26MIE = require("./chunk-ZUY26MIE.cjs");
48
- var import_chunk_VIZOXSRY = require("./chunk-VIZOXSRY.cjs");
36
+ var import_chunk_WR4BVOQQ = require("./chunk-WR4BVOQQ.cjs");
49
37
  __reExport(node_exports, require("@dxos/client"), module.exports);
50
38
  var import_react_hooks = require("@dxos/react-hooks");
51
- var import_react = __toESM(require("react"));
52
- var import_client = require("@dxos/client");
53
- var import_log = require("@dxos/log");
54
- var import_react2 = require("react");
55
- var import_react3 = require("react");
56
- var import_debug = require("@dxos/debug");
57
- var import_react4 = require("react");
58
- var import_react5 = require("react");
59
- var import_debug2 = require("@dxos/debug");
60
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/react-client/src/client/AgentHostingProvider.tsx";
61
- var AgentHostingContext = /* @__PURE__ */ (0, import_react.createContext)(null);
62
- var AgentHostingProvider = (props) => {
63
- const client = (0, import_chunk_DVAPCZTK.useClient)();
64
- const [agentHostingProviderClient] = (0, import_react.useState)(makeClient(client));
65
- return /* @__PURE__ */ import_react.default.createElement(AgentHostingContext.Provider, {
66
- value: agentHostingProviderClient
67
- }, " ", props.children);
68
- };
69
- var useAgentHostingClient = () => {
70
- return (0, import_react.useContext)(AgentHostingContext);
71
- };
72
- var makeClient = ({ config, halo }) => {
73
- const agentHostingConfig = config.get("runtime.services.agentHosting");
74
- if (!agentHostingConfig) {
75
- (0, import_log.log)("no agent hosting configured", void 0, {
76
- F: __dxlog_file,
77
- L: 39,
78
- S: void 0,
79
- C: (f, a) => f(...a)
80
- });
81
- return null;
82
- }
83
- let agentHostingProviderClient = null;
84
- switch (agentHostingConfig.type) {
85
- case "LOCAL_TESTING": {
86
- (0, import_log.log)("using FakeAgentHostingProvider", void 0, {
87
- F: __dxlog_file,
88
- L: 47,
89
- S: void 0,
90
- C: (f, a) => f(...a)
91
- });
92
- return new import_client.FakeAgentHostingProvider();
93
- }
94
- case "AGENTHOSTING_API": {
95
- agentHostingProviderClient = new import_client.AgentManagerClient(config, halo);
96
- if (agentHostingProviderClient.init()) {
97
- return agentHostingProviderClient;
98
- } else {
99
- return null;
100
- }
101
- }
102
- default: {
103
- import_log.log.error("Unknown agent hosting provider type: " + agentHostingConfig.type, void 0, {
104
- F: __dxlog_file,
105
- L: 62,
106
- S: void 0,
107
- C: (f, a) => f(...a)
108
- });
109
- return null;
110
- }
111
- }
112
- };
113
- var useClientStatus = (client) => {
114
- const [status, setStatus] = (0, import_react2.useState)();
115
- (0, import_react2.useEffect)(() => {
116
- if (!client) {
117
- return;
118
- }
119
- const subscription = client.status.subscribe((status2) => setStatus(status2));
120
- return () => subscription.unsubscribe();
121
- }, [
122
- client,
123
- setStatus
124
- ]);
125
- return status;
126
- };
127
- var useConfig = () => {
128
- const { client } = (0, import_react3.useContext)(import_chunk_VIZOXSRY.ClientContext) ?? (0, import_debug.raise)(new Error("Missing ClientContext."));
129
- return client.config;
130
- };
131
- var useShell = () => {
132
- const client = (0, import_chunk_DVAPCZTK.useClient)();
133
- return client.shell;
134
- };
135
- var useShellDisplay = () => {
136
- const client = (0, import_chunk_DVAPCZTK.useClient)();
137
- const [display, setDisplay] = (0, import_react4.useState)(client.shell.display);
138
- (0, import_react4.useEffect)(() => client.shell.onDisplayChange(setDisplay), [
139
- client
140
- ]);
141
- return display;
142
- };
143
- var useStatus = () => {
144
- const { status } = (0, import_react5.useContext)(import_chunk_VIZOXSRY.ClientContext) ?? (0, import_debug2.raise)(new Error("Missing ClientContext."));
145
- return status;
146
- };
147
39
  // Annotate the CommonJS export names for ESM import in node:
148
40
  0 && (module.exports = {
149
41
  AgentHostingContext,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/index.ts", "../../../src/client/AgentHostingProvider.tsx", "../../../src/client/useClientStatus.ts", "../../../src/client/useConfig.ts", "../../../src/client/useShell.ts", "../../../src/client/useStatus.ts"],
4
- "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from '@dxos/client';\nexport { useMulticastObservable } from '@dxos/react-hooks';\n\nexport * from './client';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren, useContext, useState } from 'react';\n\nimport { type AgentHostingProviderClient, AgentManagerClient, FakeAgentHostingProvider } from '@dxos/client';\nimport { type Halo } from '@dxos/client/halo';\nimport { type Config } from '@dxos/config';\nimport { log } from '@dxos/log';\n\nimport { useClient } from '../client';\n\nexport type AgentHostingProviderProps = { config: Config; halo: Halo };\n\nexport const AgentHostingContext = createContext<AgentHostingProviderClient | null>(null);\n\n/**\n * Experimental agent hosting provider.\n * @param props\n * @constructor\n * @deprecated\n */\nexport const AgentHostingProvider = (props: PropsWithChildren) => {\n const client = useClient();\n const [agentHostingProviderClient] = useState(makeClient(client));\n return (\n <AgentHostingContext.Provider value={agentHostingProviderClient}> {props.children}</AgentHostingContext.Provider>\n );\n};\n\nexport const useAgentHostingClient = () => {\n return useContext(AgentHostingContext);\n};\n\nconst makeClient = ({ config, halo }: AgentHostingProviderProps) => {\n const agentHostingConfig = config.get('runtime.services.agentHosting');\n if (!agentHostingConfig) {\n log('no agent hosting configured');\n return null;\n }\n\n // TODO(nf): Dynamically discover based on runtime config.\n let agentHostingProviderClient: AgentHostingProviderClient | null = null;\n switch (agentHostingConfig.type) {\n case 'LOCAL_TESTING': {\n log('using FakeAgentHostingProvider');\n return new FakeAgentHostingProvider();\n }\n\n case 'AGENTHOSTING_API': {\n agentHostingProviderClient = new AgentManagerClient(config, halo);\n if (agentHostingProviderClient.init()) {\n return agentHostingProviderClient;\n } else {\n // Not authorized or error initializing.\n return null;\n }\n }\n\n default: {\n log.error('Unknown agent hosting provider type: ' + agentHostingConfig.type);\n return null;\n }\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Client, type SystemStatus } from '@dxos/client';\n\nexport const useClientStatus = (client: Client) => {\n const [status, setStatus] = useState<SystemStatus | null>();\n useEffect(() => {\n if (!client) {\n return;\n }\n\n const subscription = client.status.subscribe((status) => setStatus(status));\n return () => subscription.unsubscribe();\n }, [client, setStatus]);\n\n return status;\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { ClientContext } from './context';\n\n/**\n * Hook returning config object used to initialize the DXOS client instance.\n * Requires ClientContext to be set via ClientProvider.\n */\nexport const useConfig = () => {\n const { client } = useContext(ClientContext) ?? raise(new Error('Missing ClientContext.'));\n return client.config;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Shell, type ShellDisplay } from '@dxos/client';\n\nimport { useClient } from './useClient';\n\n/**\n * Helper hook to access the shell.\n */\nexport const useShell = (): Shell => {\n const client = useClient();\n return client.shell;\n};\n\n/**\n * Hook to access the shell’s display state.\n */\nexport const useShellDisplay = (): ShellDisplay => {\n const client = useClient();\n const [display, setDisplay] = useState(client.shell.display);\n useEffect(() => client.shell.onDisplayChange(setDisplay), [client]);\n return display;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { useContext } from 'react';\n\nimport { type SystemStatus } from '@dxos/client';\nimport { raise } from '@dxos/debug';\n\nimport { ClientContext } from './context';\n\nexport const useStatus = (): SystemStatus | null | undefined => {\n const { status } = useContext(ClientContext) ?? raise(new Error('Missing ClientContext.'));\n return status;\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAc;AACd,yBAAuC;ACDvC,mBAAmF;AAEnF,oBAA8F;AAG9F,iBAAoB;ACLpB,IAAAA,gBAAoC;ACApC,IAAAA,gBAA2B;AAE3B,mBAAsB;ACFtB,IAAAA,gBAAoC;ACApC,IAAAA,gBAA2B;AAG3B,IAAAC,gBAAsB;;AJQf,IAAMC,sBAAsBC,gDAAiD,IAAA;AAQ7E,IAAMC,uBAAuB,CAACC,UAAAA;AACnC,QAAMC,aAASC,iCAAAA;AACf,QAAM,CAACC,0BAAAA,QAA8BC,uBAASC,WAAWJ,MAAAA,CAAAA;AACzD,SACE,6BAAAK,QAAA,cAACT,oBAAoBU,UAAQ;IAACC,OAAOL;KAA4B,KAAEH,MAAMS,QAAQ;AAErF;AAEO,IAAMC,wBAAwB,MAAA;AACnC,aAAOC,yBAAWd,mBAAAA;AACpB;AAEA,IAAMQ,aAAa,CAAC,EAAEO,QAAQC,KAAI,MAA6B;AAC7D,QAAMC,qBAAqBF,OAAOG,IAAI,+BAAA;AACtC,MAAI,CAACD,oBAAoB;AACvBE,wBAAI,+BAAA,QAAA;;;;;;AACJ,WAAO;EACT;AAGA,MAAIb,6BAAgE;AACpE,UAAQW,mBAAmBG,MAAI;IAC7B,KAAK,iBAAiB;AACpBD,0BAAI,kCAAA,QAAA;;;;;;AACJ,aAAO,IAAIE,uCAAAA;IACb;IAEA,KAAK,oBAAoB;AACvBf,mCAA6B,IAAIgB,iCAAmBP,QAAQC,IAAAA;AAC5D,UAAIV,2BAA2BiB,KAAI,GAAI;AACrC,eAAOjB;MACT,OAAO;AAEL,eAAO;MACT;IACF;IAEA,SAAS;AACPa,qBAAIK,MAAM,0CAA0CP,mBAAmBG,MAAI,QAAA;;;;;;AAC3E,aAAO;IACT;EACF;AACF;ACzDO,IAAMK,kBAAkB,CAACrB,WAAAA;AAC9B,QAAM,CAACsB,QAAQC,SAAAA,QAAapB,cAAAA,UAAAA;AAC5BqB,+BAAU,MAAA;AACR,QAAI,CAACxB,QAAQ;AACX;IACF;AAEA,UAAMyB,eAAezB,OAAOsB,OAAOI,UAAU,CAACJ,YAAWC,UAAUD,OAAAA,CAAAA;AACnE,WAAO,MAAMG,aAAaE,YAAW;EACvC,GAAG;IAAC3B;IAAQuB;GAAU;AAEtB,SAAOD;AACT;ACNO,IAAMM,YAAY,MAAA;AACvB,QAAM,EAAE5B,OAAM,QAAKU,cAAAA,YAAWmB,mCAAAA,SAAkBC,oBAAM,IAAIC,MAAM,wBAAA,CAAA;AAChE,SAAO/B,OAAOW;AAChB;ACJO,IAAMqB,WAAW,MAAA;AACtB,QAAMhC,aAASC,iCAAAA;AACf,SAAOD,OAAOiC;AAChB;AAKO,IAAMC,kBAAkB,MAAA;AAC7B,QAAMlC,aAASC,iCAAAA;AACf,QAAM,CAACkC,SAASC,UAAAA,QAAcjC,cAAAA,UAASH,OAAOiC,MAAME,OAAO;AAC3DX,oBAAAA,WAAU,MAAMxB,OAAOiC,MAAMI,gBAAgBD,UAAAA,GAAa;IAACpC;GAAO;AAClE,SAAOmC;AACT;ACfO,IAAMG,YAAY,MAAA;AACvB,QAAM,EAAEhB,OAAM,QAAKZ,cAAAA,YAAWmB,mCAAAA,SAAkBC,cAAAA,OAAM,IAAIC,MAAM,wBAAA,CAAA;AAChE,SAAOT;AACT;",
6
- "names": ["import_react", "import_debug", "AgentHostingContext", "createContext", "AgentHostingProvider", "props", "client", "useClient", "agentHostingProviderClient", "useState", "makeClient", "React", "Provider", "value", "children", "useAgentHostingClient", "useContext", "config", "halo", "agentHostingConfig", "get", "log", "type", "FakeAgentHostingProvider", "AgentManagerClient", "init", "error", "useClientStatus", "status", "setStatus", "useEffect", "subscription", "subscribe", "unsubscribe", "useConfig", "ClientContext", "raise", "Error", "useShell", "shell", "useShellDisplay", "display", "setDisplay", "onDisplayChange", "useStatus"]
3
+ "sources": ["../../../src/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from '@dxos/client';\nexport { useMulticastObservable } from '@dxos/react-hooks';\n\nexport * from './client';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAc;AACd,yBAAuC;",
6
+ "names": []
7
7
  }
@@ -22,12 +22,11 @@ __export(mesh_exports, {
22
22
  useNetworkStatus: () => useNetworkStatus
23
23
  });
24
24
  module.exports = __toCommonJS(mesh_exports);
25
- var import_chunk_DVAPCZTK = require("../chunk-DVAPCZTK.cjs");
26
- var import_chunk_VIZOXSRY = require("../chunk-VIZOXSRY.cjs");
25
+ var import_chunk_WR4BVOQQ = require("../chunk-WR4BVOQQ.cjs");
27
26
  __reExport(mesh_exports, require("@dxos/client/mesh"), module.exports);
28
27
  var import_react_hooks = require("@dxos/react-hooks");
29
28
  var useNetworkStatus = () => {
30
- const client = (0, import_chunk_DVAPCZTK.useClient)();
29
+ const client = (0, import_chunk_WR4BVOQQ.useClient)();
31
30
  return (0, import_react_hooks.useMulticastObservable)(client.mesh.networkStatus);
32
31
  };
33
32
  // Annotate the CommonJS export names for ESM import in node:
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/mesh/index.ts", "../../../../src/mesh/useNetworkStatus.ts"],
4
4
  "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from '@dxos/client/mesh';\n\nexport * from './useNetworkStatus';\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { type NetworkStatus } from '@dxos/client/mesh';\nimport { useMulticastObservable } from '@dxos/react-hooks';\n\nimport { useClient } from '../client';\n\n/**\n * Creates a network status subscription.\n */\nexport const useNetworkStatus = (): NetworkStatus => {\n const client = useClient();\n return useMulticastObservable(client.mesh.networkStatus);\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAc;ACCd,yBAAuC;AAOhC,IAAMA,mBAAmB,MAAA;AAC9B,QAAMC,aAASC,iCAAAA;AACf,aAAOC,2CAAuBF,OAAOG,KAAKC,aAAa;AACzD;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,yBAAc;ACCd,yBAAuC;AAOhC,IAAMA,mBAAmB,MAAA;AAC9B,QAAMC,aAASC,iCAAAA;AACf,aAAOC,2CAAuBF,OAAOG,KAAKC,aAAa;AACzD;",
6
6
  "names": ["useNetworkStatus", "client", "useClient", "useMulticastObservable", "mesh", "networkStatus"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/sdk/react-client/src/client/AgentHostingProvider.tsx":{"bytes":7240,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/client/context.ts":{"bytes":1328,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/banner.ts":{"bytes":3710,"imports":[],"format":"esm"},"packages/sdk/react-client/src/client/ClientProvider.tsx":{"bytes":17437,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","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/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"./context"},{"path":"packages/sdk/react-client/src/banner.ts","kind":"import-statement","original":"../banner"}],"format":"esm"},"packages/sdk/react-client/src/client/useClient.ts":{"bytes":1700,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"../client/context"}],"format":"esm"},"packages/sdk/react-client/src/client/useClientStatus.ts":{"bytes":2030,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/client/useConfig.ts":{"bytes":1801,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"packages/sdk/react-client/src/client/useShell.ts":{"bytes":2397,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/useClient.ts","kind":"import-statement","original":"./useClient"}],"format":"esm"},"packages/sdk/react-client/src/client/useStatus.ts":{"bytes":1517,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"packages/sdk/react-client/src/client/index.ts":{"bytes":1203,"imports":[{"path":"packages/sdk/react-client/src/client/AgentHostingProvider.tsx","kind":"import-statement","original":"./AgentHostingProvider"},{"path":"packages/sdk/react-client/src/client/ClientProvider.tsx","kind":"import-statement","original":"./ClientProvider"},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"./context"},{"path":"packages/sdk/react-client/src/client/useClient.ts","kind":"import-statement","original":"./useClient"},{"path":"packages/sdk/react-client/src/client/useClientStatus.ts","kind":"import-statement","original":"./useClientStatus"},{"path":"packages/sdk/react-client/src/client/useConfig.ts","kind":"import-statement","original":"./useConfig"},{"path":"packages/sdk/react-client/src/client/useShell.ts","kind":"import-statement","original":"./useShell"},{"path":"packages/sdk/react-client/src/client/useStatus.ts","kind":"import-statement","original":"./useStatus"}],"format":"esm"},"packages/sdk/react-client/src/devtools/useDevtools.ts":{"bytes":1449,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/devtools/useStream.ts":{"bytes":2860,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/devtools/index.ts":{"bytes":729,"imports":[{"path":"@dxos/client/devtools","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/devtools/useDevtools.ts","kind":"import-statement","original":"./useDevtools"},{"path":"packages/sdk/react-client/src/devtools/useStream.ts","kind":"import-statement","original":"./useStream"}],"format":"esm"},"packages/sdk/react-client/src/echo/useSpaces.ts":{"bytes":6422,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/echo/useMembers.ts":{"bytes":3205,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"}],"format":"esm"},"packages/sdk/react-client/src/echo/useQuery.ts":{"bytes":5333,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/invitations/useInvitationStatus.ts":{"bytes":20659,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/invitations/index.ts":{"bytes":1335,"imports":[{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/invitations/useInvitationStatus.ts","kind":"import-statement","original":"./useInvitationStatus"}],"format":"esm"},"packages/sdk/react-client/src/echo/useSpaceInvitations.ts":{"bytes":3301,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"},{"path":"packages/sdk/react-client/src/invitations/index.ts","kind":"import-statement","original":"../invitations"}],"format":"esm"},"packages/sdk/react-client/src/echo/useSubscription.ts":{"bytes":3588,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/echo/index.ts":{"bytes":1026,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/echo/useMembers.ts","kind":"import-statement","original":"./useMembers"},{"path":"packages/sdk/react-client/src/echo/useQuery.ts","kind":"import-statement","original":"./useQuery"},{"path":"packages/sdk/react-client/src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"},{"path":"packages/sdk/react-client/src/echo/useSpaceInvitations.ts","kind":"import-statement","original":"./useSpaceInvitations"},{"path":"packages/sdk/react-client/src/echo/useSubscription.ts","kind":"import-statement","original":"./useSubscription"}],"format":"esm"},"packages/sdk/react-client/src/halo/useContacts.ts":{"bytes":1762,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/halo/useDevices.ts":{"bytes":1341,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/halo/useHaloInvitations.ts":{"bytes":2785,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"},{"path":"packages/sdk/react-client/src/invitations/index.ts","kind":"import-statement","original":"../invitations"}],"format":"esm"},"packages/sdk/react-client/src/halo/useIdentity.ts":{"bytes":1632,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/halo/useKeyStore.ts":{"bytes":4664,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/halo/index.ts":{"bytes":1341,"imports":[{"path":"@dxos/client/halo","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/halo/useContacts.ts","kind":"import-statement","original":"./useContacts"},{"path":"packages/sdk/react-client/src/halo/useDevices.ts","kind":"import-statement","original":"./useDevices"},{"path":"packages/sdk/react-client/src/halo/useHaloInvitations.ts","kind":"import-statement","original":"./useHaloInvitations"},{"path":"packages/sdk/react-client/src/halo/useIdentity.ts","kind":"import-statement","original":"./useIdentity"},{"path":"packages/sdk/react-client/src/halo/useKeyStore.ts","kind":"import-statement","original":"./useKeyStore"}],"format":"esm"},"packages/sdk/react-client/src/index.ts":{"bytes":805,"imports":[{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"./client"}],"format":"esm"},"packages/sdk/react-client/src/mesh/useNetworkStatus.ts":{"bytes":1557,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/mesh/index.ts":{"bytes":633,"imports":[{"path":"@dxos/client/mesh","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/mesh/useNetworkStatus.ts","kind":"import-statement","original":"./useNetworkStatus"}],"format":"esm"},"packages/sdk/react-client/src/testing/ClientRepeater.tsx":{"bytes":11427,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/testing/withClientProvider.tsx":{"bytes":18357,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/testing/index.ts":{"bytes":755,"imports":[{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/testing/ClientRepeater.tsx","kind":"import-statement","original":"./ClientRepeater"},{"path":"packages/sdk/react-client/src/testing/withClientProvider.tsx","kind":"import-statement","original":"./withClientProvider"}],"format":"esm"},"packages/sdk/react-client/src/worker.ts":{"bytes":523,"imports":[{"path":"@dxos/client/worker","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/sdk/react-client/dist/lib/node/devtools/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2285},"packages/sdk/react-client/dist/lib/node/devtools/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-DVAPCZTK.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs","kind":"import-statement"},{"path":"@dxos/client/devtools","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["useDevtools","useStream"],"entryPoint":"packages/sdk/react-client/src/devtools/index.ts","inputs":{"packages/sdk/react-client/src/devtools/index.ts":{"bytesInOutput":39},"packages/sdk/react-client/src/devtools/useDevtools.ts":{"bytesInOutput":195},"packages/sdk/react-client/src/devtools/useStream.ts":{"bytesInOutput":690}},"bytes":1249},"packages/sdk/react-client/dist/lib/node/echo/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11308},"packages/sdk/react-client/dist/lib/node/echo/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-DVAPCZTK.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs","kind":"import-statement"},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"exports":["useMembers","useQuery","useSpace","useSpaceInvitation","useSpaceInvitations","useSpaces","useSubscription"],"entryPoint":"packages/sdk/react-client/src/echo/index.ts","inputs":{"packages/sdk/react-client/src/echo/index.ts":{"bytesInOutput":35},"packages/sdk/react-client/src/echo/useMembers.ts":{"bytesInOutput":545},"packages/sdk/react-client/src/echo/useSpaces.ts":{"bytesInOutput":1013},"packages/sdk/react-client/src/echo/useQuery.ts":{"bytesInOutput":947},"packages/sdk/react-client/src/echo/useSpaceInvitations.ts":{"bytesInOutput":677},"packages/sdk/react-client/src/echo/useSubscription.ts":{"bytesInOutput":519}},"bytes":4422},"packages/sdk/react-client/dist/lib/node/halo/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6287},"packages/sdk/react-client/dist/lib/node/halo/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-DVAPCZTK.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs","kind":"import-statement"},{"path":"@dxos/client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["Device","DeviceKind","DeviceType","KeyStore","useContacts","useDevices","useHaloInvitation","useHaloInvitations","useIdentity","useKeyStore"],"entryPoint":"packages/sdk/react-client/src/halo/index.ts","inputs":{"packages/sdk/react-client/src/halo/index.ts":{"bytesInOutput":68},"packages/sdk/react-client/src/halo/useContacts.ts":{"bytesInOutput":174},"packages/sdk/react-client/src/halo/useDevices.ts":{"bytesInOutput":200},"packages/sdk/react-client/src/halo/useHaloInvitations.ts":{"bytesInOutput":521},"packages/sdk/react-client/src/halo/useIdentity.ts":{"bytesInOutput":202},"packages/sdk/react-client/src/halo/useKeyStore.ts":{"bytesInOutput":928}},"bytes":2763},"packages/sdk/react-client/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7376},"packages/sdk/react-client/dist/lib/node/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-DVAPCZTK.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-ZUY26MIE.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs","kind":"import-statement"},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["AgentHostingContext","AgentHostingProvider","ClientContext","ClientProvider","useAgentHostingClient","useClient","useClientStatus","useConfig","useMulticastObservable","useShell","useShellDisplay","useStatus"],"entryPoint":"packages/sdk/react-client/src/index.ts","inputs":{"packages/sdk/react-client/src/index.ts":{"bytesInOutput":90},"packages/sdk/react-client/src/client/AgentHostingProvider.tsx":{"bytesInOutput":1811},"packages/sdk/react-client/src/client/useClientStatus.ts":{"bytesInOutput":383},"packages/sdk/react-client/src/client/useConfig.ts":{"bytesInOutput":234},"packages/sdk/react-client/src/client/useShell.ts":{"bytesInOutput":377},"packages/sdk/react-client/src/client/useStatus.ts":{"bytesInOutput":238}},"bytes":3896},"packages/sdk/react-client/dist/lib/node/invitations/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/react-client/dist/lib/node/invitations/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs","kind":"import-statement"}],"exports":["AuthenticatingInvitationObservable","CancellableInvitationObservable","Invitation","InvitationEncoder","InvitationsProxy","useInvitationStatus"],"entryPoint":"packages/sdk/react-client/src/invitations/index.ts","inputs":{},"bytes":388},"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11017},"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs":{"imports":[{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["AuthenticatingInvitationObservable","CancellableInvitationObservable","Invitation","InvitationEncoder","InvitationsProxy","useInvitationStatus"],"inputs":{"packages/sdk/react-client/src/invitations/index.ts":{"bytesInOutput":198},"packages/sdk/react-client/src/invitations/useInvitationStatus.ts":{"bytesInOutput":4678}},"bytes":5243},"packages/sdk/react-client/dist/lib/node/mesh/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":936},"packages/sdk/react-client/dist/lib/node/mesh/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-DVAPCZTK.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs","kind":"import-statement"},{"path":"@dxos/client/mesh","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true}],"exports":["useNetworkStatus"],"entryPoint":"packages/sdk/react-client/src/mesh/index.ts","inputs":{"packages/sdk/react-client/src/mesh/index.ts":{"bytesInOutput":35},"packages/sdk/react-client/src/mesh/useNetworkStatus.ts":{"bytesInOutput":184}},"bytes":477},"packages/sdk/react-client/dist/lib/node/chunk-DVAPCZTK.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":807},"packages/sdk/react-client/dist/lib/node/chunk-DVAPCZTK.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["useClient"],"inputs":{"packages/sdk/react-client/src/client/useClient.ts":{"bytesInOutput":211}},"bytes":390},"packages/sdk/react-client/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15560},"packages/sdk/react-client/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-ZUY26MIE.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs","kind":"import-statement"},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["ClientRepeater","withClientProvider","withMultiClientProvider"],"entryPoint":"packages/sdk/react-client/src/testing/index.ts","inputs":{"packages/sdk/react-client/src/testing/index.ts":{"bytesInOutput":38},"packages/sdk/react-client/src/testing/ClientRepeater.tsx":{"bytesInOutput":2072},"packages/sdk/react-client/src/testing/withClientProvider.tsx":{"bytesInOutput":4717}},"bytes":7207},"packages/sdk/react-client/dist/lib/node/chunk-ZUY26MIE.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10491},"packages/sdk/react-client/dist/lib/node/chunk-ZUY26MIE.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","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/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["ClientProvider"],"inputs":{"packages/sdk/react-client/src/client/ClientProvider.tsx":{"bytesInOutput":3825},"packages/sdk/react-client/src/banner.ts":{"bytesInOutput":773}},"bytes":4892},"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":711},"packages/sdk/react-client/dist/lib/node/chunk-VIZOXSRY.cjs":{"imports":[{"path":"react","kind":"import-statement","external":true}],"exports":["ClientContext"],"inputs":{"packages/sdk/react-client/src/client/context.ts":{"bytesInOutput":82}},"bytes":206},"packages/sdk/react-client/dist/lib/node/worker.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":206},"packages/sdk/react-client/dist/lib/node/worker.cjs":{"imports":[{"path":"@dxos/client/worker","kind":"import-statement","external":true}],"exports":[],"entryPoint":"packages/sdk/react-client/src/worker.ts","inputs":{"packages/sdk/react-client/src/worker.ts":{"bytesInOutput":37}},"bytes":116}}}
1
+ {"inputs":{"packages/sdk/react-client/src/client/AgentHostingProvider.tsx":{"bytes":7240,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/client/context.ts":{"bytes":1328,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/banner.ts":{"bytes":3710,"imports":[],"format":"esm"},"packages/sdk/react-client/src/client/ClientProvider.tsx":{"bytes":17437,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","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/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"./context"},{"path":"packages/sdk/react-client/src/banner.ts","kind":"import-statement","original":"../banner"}],"format":"esm"},"packages/sdk/react-client/src/client/useClient.ts":{"bytes":1700,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"../client/context"}],"format":"esm"},"packages/sdk/react-client/src/client/useClientStatus.ts":{"bytes":2030,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/client/useConfig.ts":{"bytes":1801,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"packages/sdk/react-client/src/client/useShell.ts":{"bytes":2397,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/useClient.ts","kind":"import-statement","original":"./useClient"}],"format":"esm"},"packages/sdk/react-client/src/client/useStatus.ts":{"bytes":1517,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"packages/sdk/react-client/src/client/index.ts":{"bytes":1203,"imports":[{"path":"packages/sdk/react-client/src/client/AgentHostingProvider.tsx","kind":"import-statement","original":"./AgentHostingProvider"},{"path":"packages/sdk/react-client/src/client/ClientProvider.tsx","kind":"import-statement","original":"./ClientProvider"},{"path":"packages/sdk/react-client/src/client/context.ts","kind":"import-statement","original":"./context"},{"path":"packages/sdk/react-client/src/client/useClient.ts","kind":"import-statement","original":"./useClient"},{"path":"packages/sdk/react-client/src/client/useClientStatus.ts","kind":"import-statement","original":"./useClientStatus"},{"path":"packages/sdk/react-client/src/client/useConfig.ts","kind":"import-statement","original":"./useConfig"},{"path":"packages/sdk/react-client/src/client/useShell.ts","kind":"import-statement","original":"./useShell"},{"path":"packages/sdk/react-client/src/client/useStatus.ts","kind":"import-statement","original":"./useStatus"}],"format":"esm"},"packages/sdk/react-client/src/devtools/useDevtools.ts":{"bytes":1449,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/devtools/useStream.ts":{"bytes":2860,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/devtools/index.ts":{"bytes":729,"imports":[{"path":"@dxos/client/devtools","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/devtools/useDevtools.ts","kind":"import-statement","original":"./useDevtools"},{"path":"packages/sdk/react-client/src/devtools/useStream.ts","kind":"import-statement","original":"./useStream"}],"format":"esm"},"packages/sdk/react-client/src/echo/useSpaces.ts":{"bytes":6422,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/echo/useMembers.ts":{"bytes":3205,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"}],"format":"esm"},"packages/sdk/react-client/src/echo/useQuery.ts":{"bytes":5333,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/invitations/useInvitationStatus.ts":{"bytes":20659,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/invitations/index.ts":{"bytes":1335,"imports":[{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/invitations/useInvitationStatus.ts","kind":"import-statement","original":"./useInvitationStatus"}],"format":"esm"},"packages/sdk/react-client/src/echo/useSpaceInvitations.ts":{"bytes":3301,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"},{"path":"packages/sdk/react-client/src/invitations/index.ts","kind":"import-statement","original":"../invitations"}],"format":"esm"},"packages/sdk/react-client/src/echo/useSubscription.ts":{"bytes":3588,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/echo/index.ts":{"bytes":1026,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/echo/useMembers.ts","kind":"import-statement","original":"./useMembers"},{"path":"packages/sdk/react-client/src/echo/useQuery.ts","kind":"import-statement","original":"./useQuery"},{"path":"packages/sdk/react-client/src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"},{"path":"packages/sdk/react-client/src/echo/useSpaceInvitations.ts","kind":"import-statement","original":"./useSpaceInvitations"},{"path":"packages/sdk/react-client/src/echo/useSubscription.ts","kind":"import-statement","original":"./useSubscription"}],"format":"esm"},"packages/sdk/react-client/src/halo/useContacts.ts":{"bytes":1762,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/halo/useDevices.ts":{"bytes":1341,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/halo/useHaloInvitations.ts":{"bytes":2785,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"},{"path":"packages/sdk/react-client/src/invitations/index.ts","kind":"import-statement","original":"../invitations"}],"format":"esm"},"packages/sdk/react-client/src/halo/useIdentity.ts":{"bytes":1632,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/halo/useKeyStore.ts":{"bytes":4664,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/react-client/src/halo/index.ts":{"bytes":1341,"imports":[{"path":"@dxos/client/halo","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/halo/useContacts.ts","kind":"import-statement","original":"./useContacts"},{"path":"packages/sdk/react-client/src/halo/useDevices.ts","kind":"import-statement","original":"./useDevices"},{"path":"packages/sdk/react-client/src/halo/useHaloInvitations.ts","kind":"import-statement","original":"./useHaloInvitations"},{"path":"packages/sdk/react-client/src/halo/useIdentity.ts","kind":"import-statement","original":"./useIdentity"},{"path":"packages/sdk/react-client/src/halo/useKeyStore.ts","kind":"import-statement","original":"./useKeyStore"}],"format":"esm"},"packages/sdk/react-client/src/index.ts":{"bytes":805,"imports":[{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"./client"}],"format":"esm"},"packages/sdk/react-client/src/mesh/useNetworkStatus.ts":{"bytes":1557,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/mesh/index.ts":{"bytes":633,"imports":[{"path":"@dxos/client/mesh","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/mesh/useNetworkStatus.ts","kind":"import-statement","original":"./useNetworkStatus"}],"format":"esm"},"packages/sdk/react-client/src/testing/ClientRepeater.tsx":{"bytes":11427,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/testing/withClientProvider.tsx":{"bytes":19407,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"packages/sdk/react-client/src/testing/index.ts":{"bytes":755,"imports":[{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"packages/sdk/react-client/src/testing/ClientRepeater.tsx","kind":"import-statement","original":"./ClientRepeater"},{"path":"packages/sdk/react-client/src/testing/withClientProvider.tsx","kind":"import-statement","original":"./withClientProvider"}],"format":"esm"},"packages/sdk/react-client/src/worker.ts":{"bytes":523,"imports":[{"path":"@dxos/client/worker","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"packages/sdk/react-client/dist/lib/node/devtools/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2284},"packages/sdk/react-client/dist/lib/node/devtools/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-WR4BVOQQ.cjs","kind":"import-statement"},{"path":"@dxos/client/devtools","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["useDevtools","useStream"],"entryPoint":"packages/sdk/react-client/src/devtools/index.ts","inputs":{"packages/sdk/react-client/src/devtools/index.ts":{"bytesInOutput":39},"packages/sdk/react-client/src/devtools/useDevtools.ts":{"bytesInOutput":195},"packages/sdk/react-client/src/devtools/useStream.ts":{"bytesInOutput":690}},"bytes":1217},"packages/sdk/react-client/dist/lib/node/echo/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11307},"packages/sdk/react-client/dist/lib/node/echo/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-WR4BVOQQ.cjs","kind":"import-statement"},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"exports":["useMembers","useQuery","useSpace","useSpaceInvitation","useSpaceInvitations","useSpaces","useSubscription"],"entryPoint":"packages/sdk/react-client/src/echo/index.ts","inputs":{"packages/sdk/react-client/src/echo/index.ts":{"bytesInOutput":35},"packages/sdk/react-client/src/echo/useMembers.ts":{"bytesInOutput":545},"packages/sdk/react-client/src/echo/useSpaces.ts":{"bytesInOutput":1013},"packages/sdk/react-client/src/echo/useQuery.ts":{"bytesInOutput":947},"packages/sdk/react-client/src/echo/useSpaceInvitations.ts":{"bytesInOutput":677},"packages/sdk/react-client/src/echo/useSubscription.ts":{"bytesInOutput":519}},"bytes":4390},"packages/sdk/react-client/dist/lib/node/halo/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6286},"packages/sdk/react-client/dist/lib/node/halo/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node/chunk-WR4BVOQQ.cjs","kind":"import-statement"},{"path":"@dxos/client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["Device","DeviceKind","DeviceType","KeyStore","useContacts","useDevices","useHaloInvitation","useHaloInvitations","useIdentity","useKeyStore"],"entryPoint":"packages/sdk/react-client/src/halo/index.ts","inputs":{"packages/sdk/react-client/src/halo/index.ts":{"bytesInOutput":68},"packages/sdk/react-client/src/halo/useContacts.ts":{"bytesInOutput":174},"packages/sdk/react-client/src/halo/useDevices.ts":{"bytesInOutput":200},"packages/sdk/react-client/src/halo/useHaloInvitations.ts":{"bytesInOutput":521},"packages/sdk/react-client/src/halo/useIdentity.ts":{"bytesInOutput":202},"packages/sdk/react-client/src/halo/useKeyStore.ts":{"bytesInOutput":928}},"bytes":2731},"packages/sdk/react-client/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":344},"packages/sdk/react-client/dist/lib/node/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-WR4BVOQQ.cjs","kind":"import-statement"},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true}],"exports":["AgentHostingContext","AgentHostingProvider","ClientContext","ClientProvider","useAgentHostingClient","useClient","useClientStatus","useConfig","useMulticastObservable","useShell","useShellDisplay","useStatus"],"entryPoint":"packages/sdk/react-client/src/index.ts","inputs":{"packages/sdk/react-client/src/index.ts":{"bytesInOutput":90}},"bytes":636},"packages/sdk/react-client/dist/lib/node/invitations/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/react-client/dist/lib/node/invitations/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs","kind":"import-statement"}],"exports":["AuthenticatingInvitationObservable","CancellableInvitationObservable","Invitation","InvitationEncoder","InvitationsProxy","useInvitationStatus"],"entryPoint":"packages/sdk/react-client/src/invitations/index.ts","inputs":{},"bytes":388},"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11017},"packages/sdk/react-client/dist/lib/node/chunk-FYOAVV65.cjs":{"imports":[{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["AuthenticatingInvitationObservable","CancellableInvitationObservable","Invitation","InvitationEncoder","InvitationsProxy","useInvitationStatus"],"inputs":{"packages/sdk/react-client/src/invitations/index.ts":{"bytesInOutput":198},"packages/sdk/react-client/src/invitations/useInvitationStatus.ts":{"bytesInOutput":4678}},"bytes":5243},"packages/sdk/react-client/dist/lib/node/mesh/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":935},"packages/sdk/react-client/dist/lib/node/mesh/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-WR4BVOQQ.cjs","kind":"import-statement"},{"path":"@dxos/client/mesh","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true}],"exports":["useNetworkStatus"],"entryPoint":"packages/sdk/react-client/src/mesh/index.ts","inputs":{"packages/sdk/react-client/src/mesh/index.ts":{"bytesInOutput":35},"packages/sdk/react-client/src/mesh/useNetworkStatus.ts":{"bytesInOutput":184}},"bytes":445},"packages/sdk/react-client/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16140},"packages/sdk/react-client/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node/chunk-WR4BVOQQ.cjs","kind":"import-statement"},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/echo-signals/react","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["ClientRepeater","useMultiClient","withClientProvider","withMultiClientProvider"],"entryPoint":"packages/sdk/react-client/src/testing/index.ts","inputs":{"packages/sdk/react-client/src/testing/index.ts":{"bytesInOutput":38},"packages/sdk/react-client/src/testing/ClientRepeater.tsx":{"bytesInOutput":2072},"packages/sdk/react-client/src/testing/withClientProvider.tsx":{"bytesInOutput":4989}},"bytes":7465},"packages/sdk/react-client/dist/lib/node/chunk-WR4BVOQQ.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18952},"packages/sdk/react-client/dist/lib/node/chunk-WR4BVOQQ.cjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client","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/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["AgentHostingContext","AgentHostingProvider","ClientContext","ClientProvider","useAgentHostingClient","useClient","useClientStatus","useConfig","useShell","useShellDisplay","useStatus"],"inputs":{"packages/sdk/react-client/src/client/AgentHostingProvider.tsx":{"bytesInOutput":1877},"packages/sdk/react-client/src/client/index.ts":{"bytesInOutput":0},"packages/sdk/react-client/src/client/ClientProvider.tsx":{"bytesInOutput":3825},"packages/sdk/react-client/src/client/context.ts":{"bytesInOutput":82},"packages/sdk/react-client/src/banner.ts":{"bytesInOutput":773},"packages/sdk/react-client/src/client/useClient.ts":{"bytesInOutput":211},"packages/sdk/react-client/src/client/useClientStatus.ts":{"bytesInOutput":398},"packages/sdk/react-client/src/client/useConfig.ts":{"bytesInOutput":245},"packages/sdk/react-client/src/client/useShell.ts":{"bytesInOutput":377},"packages/sdk/react-client/src/client/useStatus.ts":{"bytesInOutput":238}},"bytes":8900},"packages/sdk/react-client/dist/lib/node/worker.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":206},"packages/sdk/react-client/dist/lib/node/worker.cjs":{"imports":[{"path":"@dxos/client/worker","kind":"import-statement","external":true}],"exports":[],"entryPoint":"packages/sdk/react-client/src/worker.ts","inputs":{"packages/sdk/react-client/src/worker.ts":{"bytesInOutput":37}},"bytes":116}}}
@@ -30,12 +30,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  var testing_exports = {};
31
31
  __export(testing_exports, {
32
32
  ClientRepeater: () => ClientRepeater,
33
+ useMultiClient: () => useMultiClient,
33
34
  withClientProvider: () => withClientProvider,
34
35
  withMultiClientProvider: () => withMultiClientProvider
35
36
  });
36
37
  module.exports = __toCommonJS(testing_exports);
37
- var import_chunk_ZUY26MIE = require("../chunk-ZUY26MIE.cjs");
38
- var import_chunk_VIZOXSRY = require("../chunk-VIZOXSRY.cjs");
38
+ var import_chunk_WR4BVOQQ = require("../chunk-WR4BVOQQ.cjs");
39
39
  __reExport(testing_exports, require("@dxos/client/testing"), module.exports);
40
40
  var import_react = __toESM(require("react"));
41
41
  var import_client = require("@dxos/client");
@@ -91,7 +91,7 @@ var ClientRepeater = (props) => {
91
91
  }
92
92
  return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, Controls && /* @__PURE__ */ import_react.default.createElement(Controls, {
93
93
  clients
94
- }), clients.map((client, index) => /* @__PURE__ */ import_react.default.createElement(import_chunk_ZUY26MIE.ClientProvider, {
94
+ }), clients.map((client, index) => /* @__PURE__ */ import_react.default.createElement(import_chunk_WR4BVOQQ.ClientProvider, {
95
95
  key: index,
96
96
  client
97
97
  }, /* @__PURE__ */ import_react.default.createElement(Component, {
@@ -131,12 +131,16 @@ var withClientProvider = ({ createIdentity, createSpace, onSpaceCreated, onIniti
131
131
  onInitialized
132
132
  });
133
133
  };
134
- return /* @__PURE__ */ import_react3.default.createElement(ErrorBoundary, null, /* @__PURE__ */ import_react3.default.createElement(import_chunk_ZUY26MIE.ClientProvider, {
134
+ return /* @__PURE__ */ import_react3.default.createElement(ErrorBoundary, null, /* @__PURE__ */ import_react3.default.createElement(import_chunk_WR4BVOQQ.ClientProvider, {
135
135
  onInitialized: handleInitialized,
136
136
  ...props
137
137
  }, /* @__PURE__ */ import_react3.default.createElement(Story, null)));
138
138
  };
139
139
  };
140
+ var MultiClientContext = /* @__PURE__ */ (0, import_react3.createContext)({
141
+ id: 0
142
+ });
143
+ var useMultiClient = () => (0, import_react3.useContext)(MultiClientContext);
140
144
  var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, onSpaceCreated, onInitialized, ...props }) => {
141
145
  return (Story) => {
142
146
  const builder = (0, import_react3.useRef)(new import_testing2.TestBuilder());
@@ -147,7 +151,7 @@ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, on
147
151
  index
148
152
  }, {
149
153
  F: __dxlog_file,
150
- L: 105,
154
+ L: 109,
151
155
  S: void 0,
152
156
  C: (f, a) => f(...a)
153
157
  });
@@ -165,7 +169,7 @@ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, on
165
169
  index
166
170
  }, {
167
171
  F: __dxlog_file,
168
- L: 111,
172
+ L: 115,
169
173
  S: void 0,
170
174
  C: (f, a) => f(...a)
171
175
  });
@@ -180,7 +184,7 @@ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, on
180
184
  index
181
185
  }, {
182
186
  F: __dxlog_file,
183
- L: 116,
187
+ L: 120,
184
188
  S: void 0,
185
189
  C: (f, a) => f(...a)
186
190
  });
@@ -194,12 +198,16 @@ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, on
194
198
  };
195
199
  return /* @__PURE__ */ import_react3.default.createElement(ErrorBoundary, null, Array.from({
196
200
  length: numClients
197
- }).map((_, index) => /* @__PURE__ */ import_react3.default.createElement(import_chunk_ZUY26MIE.ClientProvider, {
201
+ }).map((_, index) => /* @__PURE__ */ import_react3.default.createElement(MultiClientContext.Provider, {
198
202
  key: index,
203
+ value: {
204
+ id: index
205
+ }
206
+ }, /* @__PURE__ */ import_react3.default.createElement(import_chunk_WR4BVOQQ.ClientProvider, {
199
207
  services: builder.current.createLocalClientServices(),
200
208
  onInitialized: (client) => handleInitialized(client, index),
201
209
  ...props
202
- }, /* @__PURE__ */ import_react3.default.createElement(Story, null))));
210
+ }, /* @__PURE__ */ import_react3.default.createElement(Story, null)))));
203
211
  };
204
212
  };
205
213
  var ErrorBoundary = ({ children }) => {
@@ -241,6 +249,7 @@ var ErrorFallback = ({ error }) => {
241
249
  // Annotate the CommonJS export names for ESM import in node:
242
250
  0 && (module.exports = {
243
251
  ClientRepeater,
252
+ useMultiClient,
244
253
  withClientProvider,
245
254
  withMultiClientProvider,
246
255
  ...require("@dxos/client/testing")
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/index.ts", "../../../../src/testing/ClientRepeater.tsx", "../../../../src/testing/withClientProvider.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from '@dxos/client/testing';\n\nexport * from './ClientRepeater';\nexport * from './withClientProvider';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\nimport React, { useState, type FC, useEffect, useRef } from 'react';\n\nimport { Client, type PublicKey } from '@dxos/client';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { registerSignalsRuntime } from '@dxos/echo-signals/react';\nimport { faker } from '@dxos/random';\n\nimport { type WithClientProviderProps } from './withClientProvider';\nimport { ClientProvider } from '../client';\n\nexport type ClientRepeatedComponentProps = { id: number; count: number; spaceKey?: PublicKey };\n\nexport type ClientRepeaterControlsProps = { clients: Client[] };\n\n// TODO(burdon): Reconcile with ClientProviderProps.\nexport type ClientRepeaterProps<P extends ClientRepeatedComponentProps> = {\n className?: string;\n component: FC<ClientRepeatedComponentProps>;\n controls?: FC<ClientRepeaterControlsProps>;\n count?: number;\n clients?: Client[];\n types?: S.Schema<any>[];\n args?: Omit<P, 'id' | 'count'>;\n} & Pick<WithClientProviderProps, 'createIdentity' | 'createSpace' | 'onSpaceCreated'>;\n\n/**\n * Utility component for Storybook stories which sets up clients for n peers.\n * The `Component` property is rendered n times, once for each peer.\n * @deprecated use `withClientProvider`.\n */\n// TODO(burdon): To discuss: evolve ClientRepeater with optional decorator that uses it.\n// NOTE: This is specifically not a storybook decorator because it broke stories as a decorator.\n// This seems primarily due to the fact that it required top-level await for the clients to initialize.\n// Storybook seemed to handle it alright, but Chromatic had a lot of trouble with it.\n// There was also a question of whether or not calling the story function multiple times was a good idea.\nexport const ClientRepeater = <P extends ClientRepeatedComponentProps>(props: ClientRepeaterProps<P>) => {\n const {\n component: Component,\n controls: Controls,\n count = 1,\n types,\n createIdentity,\n createSpace,\n onSpaceCreated,\n } = props;\n useEffect(() => {\n registerSignalsRuntime();\n }, []);\n\n const [clients, setClients] = useState(props.clients ?? []);\n const [spaceKey, setSpaceKey] = useState<PublicKey>();\n\n const testBuilder = useRef(new TestBuilder());\n useEffect(() => {\n const timeout = setTimeout(async () => {\n const clients = [...Array(count)].map(\n (_) => new Client({ services: testBuilder.current.createLocalClientServices(), types }),\n );\n\n await Promise.all(clients.map((client) => client.initialize()));\n if (createIdentity || createSpace) {\n await Promise.all(clients.map((client) => client.halo.createIdentity()));\n }\n\n if (createSpace) {\n const client = clients[0];\n const space = await client.spaces.create({ name: faker.commerce.productName() });\n setSpaceKey(space.key);\n await onSpaceCreated?.({ client, space });\n await Promise.all(\n clients.slice(1).flatMap((client) => performInvitation({ host: space, guest: client.spaces })),\n );\n }\n\n setClients(clients);\n });\n\n return () => clearTimeout(timeout);\n }, []);\n\n if (clients.length === 0) {\n return null;\n }\n\n return (\n <>\n {Controls && <Controls clients={clients} />}\n {clients.map((client, index) => (\n <ClientProvider key={index} client={client}>\n <Component id={index} count={clients.length} spaceKey={spaceKey} {...{ ...props.args }} />\n </ClientProvider>\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { type PropsWithChildren, useEffect, useRef, useState } from 'react';\nimport { type FallbackProps, ErrorBoundary as NativeErrorBoundary } from 'react-error-boundary';\n\nimport { Trigger } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { performInvitation, TestBuilder } from '@dxos/client/testing';\nimport { log } from '@dxos/log';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { ClientProvider, type ClientProviderProps } from '../client';\n\ntype InitializeProps = {\n createIdentity?: boolean;\n createSpace?: boolean;\n onSpaceCreated?: (props: { client: Client; space: Space }) => MaybePromise<void>;\n};\n\n/**\n * Initialize client, identity and first space.\n */\nconst initializeClient = async (\n client: Client,\n {\n createIdentity,\n createSpace,\n onSpaceCreated,\n onInitialized,\n }: InitializeProps & Pick<WithClientProviderProps, 'onInitialized'>,\n): Promise<Space | undefined> => {\n if (createIdentity || createSpace) {\n if (!client.halo.identity.get()) {\n await client.halo.createIdentity();\n }\n }\n\n let space: Space | undefined;\n if (createSpace) {\n space = await client.spaces.create({ name: 'Test Space' });\n await onSpaceCreated?.({ client, space });\n }\n\n await onInitialized?.(client);\n return space;\n};\n\nexport type WithClientProviderProps = InitializeProps & ClientProviderProps;\n\n/**\n * Decorator that provides the client context.\n */\nexport const withClientProvider = ({\n createIdentity,\n createSpace,\n onSpaceCreated,\n onInitialized,\n ...props\n}: WithClientProviderProps = {}): Decorator => {\n return (Story) => {\n const handleInitialized = async (client: Client) => {\n await initializeClient(client, { createIdentity, createSpace, onSpaceCreated, onInitialized });\n };\n\n return (\n <ErrorBoundary>\n <ClientProvider onInitialized={handleInitialized} {...props}>\n <Story />\n </ClientProvider>\n </ErrorBoundary>\n );\n };\n};\n\n// TODO(burdon): Implement context per client for context.\n// TODO(burdon): Callback once all invitations have completed.\n// TODO(burdon): Delay/jitter for creation of other clients.\nexport type WithMultiClientProviderProps = InitializeProps & ClientProviderProps & { numClients?: number };\n\n/**\n * Decorator that creates a scaffold for multiple clients.\n * Orchestrates invitations between a randomly selected host and the remaining clients.\n * NOTE: Should come before withLayout.\n */\nexport const withMultiClientProvider = ({\n numClients = 2,\n createIdentity,\n createSpace,\n onSpaceCreated,\n onInitialized,\n ...props\n}: WithMultiClientProviderProps): Decorator => {\n return (Story) => {\n const builder = useRef(new TestBuilder());\n const hostRef = useRef<Client>();\n const spaceReady = useRef(new Trigger<Space | undefined>());\n\n // Handle invitations.\n // NOTE: The zeroth client isn't necessarily the first to be initialized.\n const handleInitialized = async (client: Client, index: number) => {\n log.info('initialized', { index });\n if (createSpace) {\n if (!hostRef.current) {\n hostRef.current = client;\n const space = await initializeClient(client, { createIdentity, createSpace, onSpaceCreated, onInitialized });\n spaceReady.current.wake(space);\n log.info('inviting', { index });\n } else {\n await initializeClient(client, { createIdentity, onInitialized });\n const space = await spaceReady.current.wait();\n if (space) {\n log.info('joining', { index });\n await Promise.all(performInvitation({ host: space, guest: client.spaces }));\n }\n }\n }\n };\n\n return (\n <ErrorBoundary>\n {Array.from({ length: numClients }).map((_, index) => (\n <ClientProvider\n key={index}\n services={builder.current.createLocalClientServices()}\n onInitialized={(client) => handleInitialized(client, index)}\n {...props}\n >\n <Story />\n </ClientProvider>\n ))}\n </ErrorBoundary>\n );\n };\n};\n\nconst ErrorBoundary = ({ children }: PropsWithChildren) => {\n const [error, setError] = useState<Error>();\n useEffect(() => {\n const handleError = (event: PromiseRejectionEvent) => {\n setError(event.reason);\n };\n\n window.addEventListener('unhandledrejection', handleError);\n return () => window.removeEventListener('unhandledrejection', handleError);\n }, []);\n\n if (error) {\n return <ErrorFallback error={error} resetErrorBoundary={() => setError(undefined)} />;\n }\n\n return <NativeErrorBoundary FallbackComponent={ErrorFallback}>{children}</NativeErrorBoundary>;\n};\n\nconst ErrorFallback = ({ error }: FallbackProps) => {\n const { name, message, stack } =\n error instanceof Error ? error : { name: 'Error', message: String(error), stack: undefined };\n return (\n <div role='alert' className='flex flex-col p-4 gap-4 overflow-auto'>\n <h1 className='text-xl text-red-500'>{name}</h1>\n <div className='text-lg'>{message}</div>\n {stack && <pre className='whitespace-pre-wrap text-sm text-subdued'>{stack}</pre>}\n </div>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["import_react", "import_testing", "ClientRepeater", "props", "component", "Component", "controls", "Controls", "count", "types", "createIdentity", "createSpace", "onSpaceCreated", "useEffect", "registerSignalsRuntime", "clients", "setClients", "useState", "spaceKey", "setSpaceKey", "testBuilder", "useRef", "TestBuilder", "timeout", "setTimeout", "Array", "map", "_", "Client", "services", "current", "createLocalClientServices", "Promise", "all", "client", "initialize", "halo", "space", "spaces", "create", "name", "faker", "commerce", "productName", "key", "slice", "flatMap", "performInvitation", "host", "guest", "clearTimeout", "length", "React", "index", "ClientProvider", "id", "args", "initializeClient", "onInitialized", "identity", "get", "withClientProvider", "Story", "handleInitialized", "ErrorBoundary", "withMultiClientProvider", "numClients", "builder", "hostRef", "spaceReady", "Trigger", "log", "info", "wake", "wait", "from", "children", "error", "setError", "handleError", "event", "reason", "window", "addEventListener", "removeEventListener", "ErrorFallback", "resetErrorBoundary", "undefined", "NativeErrorBoundary", "FallbackComponent", "message", "stack", "Error", "String", "div", "role", "className", "h1", "pre"]
4
+ "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from '@dxos/client/testing';\n\nexport * from './ClientRepeater';\nexport * from './withClientProvider';\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\nimport React, { useState, type FC, useEffect, useRef } from 'react';\n\nimport { Client, type PublicKey } from '@dxos/client';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { registerSignalsRuntime } from '@dxos/echo-signals/react';\nimport { faker } from '@dxos/random';\n\nimport { type WithClientProviderProps } from './withClientProvider';\nimport { ClientProvider } from '../client';\n\nexport type ClientRepeatedComponentProps = { id: number; count: number; spaceKey?: PublicKey };\n\nexport type ClientRepeaterControlsProps = { clients: Client[] };\n\n// TODO(burdon): Reconcile with ClientProviderProps.\nexport type ClientRepeaterProps<P extends ClientRepeatedComponentProps> = {\n className?: string;\n component: FC<ClientRepeatedComponentProps>;\n controls?: FC<ClientRepeaterControlsProps>;\n count?: number;\n clients?: Client[];\n types?: S.Schema<any>[];\n args?: Omit<P, 'id' | 'count'>;\n} & Pick<WithClientProviderProps, 'createIdentity' | 'createSpace' | 'onSpaceCreated'>;\n\n/**\n * Utility component for Storybook stories which sets up clients for n peers.\n * The `Component` property is rendered n times, once for each peer.\n * @deprecated use `withClientProvider`.\n */\n// TODO(burdon): To discuss: evolve ClientRepeater with optional decorator that uses it.\n// NOTE: This is specifically not a storybook decorator because it broke stories as a decorator.\n// This seems primarily due to the fact that it required top-level await for the clients to initialize.\n// Storybook seemed to handle it alright, but Chromatic had a lot of trouble with it.\n// There was also a question of whether or not calling the story function multiple times was a good idea.\nexport const ClientRepeater = <P extends ClientRepeatedComponentProps>(props: ClientRepeaterProps<P>) => {\n const {\n component: Component,\n controls: Controls,\n count = 1,\n types,\n createIdentity,\n createSpace,\n onSpaceCreated,\n } = props;\n useEffect(() => {\n registerSignalsRuntime();\n }, []);\n\n const [clients, setClients] = useState(props.clients ?? []);\n const [spaceKey, setSpaceKey] = useState<PublicKey>();\n\n const testBuilder = useRef(new TestBuilder());\n useEffect(() => {\n const timeout = setTimeout(async () => {\n const clients = [...Array(count)].map(\n (_) => new Client({ services: testBuilder.current.createLocalClientServices(), types }),\n );\n\n await Promise.all(clients.map((client) => client.initialize()));\n if (createIdentity || createSpace) {\n await Promise.all(clients.map((client) => client.halo.createIdentity()));\n }\n\n if (createSpace) {\n const client = clients[0];\n const space = await client.spaces.create({ name: faker.commerce.productName() });\n setSpaceKey(space.key);\n await onSpaceCreated?.({ client, space });\n await Promise.all(\n clients.slice(1).flatMap((client) => performInvitation({ host: space, guest: client.spaces })),\n );\n }\n\n setClients(clients);\n });\n\n return () => clearTimeout(timeout);\n }, []);\n\n if (clients.length === 0) {\n return null;\n }\n\n return (\n <>\n {Controls && <Controls clients={clients} />}\n {clients.map((client, index) => (\n <ClientProvider key={index} client={client}>\n <Component id={index} count={clients.length} spaceKey={spaceKey} {...{ ...props.args }} />\n </ClientProvider>\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Decorator } from '@storybook/react';\nimport React, { createContext, type PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\nimport { type FallbackProps, ErrorBoundary as NativeErrorBoundary } from 'react-error-boundary';\n\nimport { Trigger } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { performInvitation, TestBuilder } from '@dxos/client/testing';\nimport { log } from '@dxos/log';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { ClientProvider, type ClientProviderProps } from '../client';\n\ntype InitializeProps = {\n createIdentity?: boolean;\n createSpace?: boolean;\n onSpaceCreated?: (props: { client: Client; space: Space }) => MaybePromise<void>;\n};\n\n/**\n * Initialize client, identity and first space.\n */\nconst initializeClient = async (\n client: Client,\n {\n createIdentity,\n createSpace,\n onSpaceCreated,\n onInitialized,\n }: InitializeProps & Pick<WithClientProviderProps, 'onInitialized'>,\n): Promise<Space | undefined> => {\n if (createIdentity || createSpace) {\n if (!client.halo.identity.get()) {\n await client.halo.createIdentity();\n }\n }\n\n let space: Space | undefined;\n if (createSpace) {\n space = await client.spaces.create({ name: 'Test Space' });\n await onSpaceCreated?.({ client, space });\n }\n\n await onInitialized?.(client);\n return space;\n};\n\nexport type WithClientProviderProps = InitializeProps & ClientProviderProps;\n\n/**\n * Decorator that provides the client context.\n */\nexport const withClientProvider = ({\n createIdentity,\n createSpace,\n onSpaceCreated,\n onInitialized,\n ...props\n}: WithClientProviderProps = {}): Decorator => {\n return (Story) => {\n const handleInitialized = async (client: Client) => {\n await initializeClient(client, { createIdentity, createSpace, onSpaceCreated, onInitialized });\n };\n\n return (\n <ErrorBoundary>\n <ClientProvider onInitialized={handleInitialized} {...props}>\n <Story />\n </ClientProvider>\n </ErrorBoundary>\n );\n };\n};\n\n// TODO(burdon): Implement context per client for context.\n// TODO(burdon): Callback once all invitations have completed.\n// TODO(burdon): Delay/jitter for creation of other clients.\nexport type WithMultiClientProviderProps = InitializeProps & ClientProviderProps & { numClients?: number };\n\nconst MultiClientContext = createContext<{ id: number }>({ id: 0 });\n\nexport const useMultiClient = () => useContext(MultiClientContext);\n\n/**\n * Decorator that creates a scaffold for multiple clients.\n * Orchestrates invitations between a randomly selected host and the remaining clients.\n * NOTE: Should come before withLayout.\n */\nexport const withMultiClientProvider = ({\n numClients = 2,\n createIdentity,\n createSpace,\n onSpaceCreated,\n onInitialized,\n ...props\n}: WithMultiClientProviderProps): Decorator => {\n return (Story) => {\n const builder = useRef(new TestBuilder());\n const hostRef = useRef<Client>();\n const spaceReady = useRef(new Trigger<Space | undefined>());\n\n // Handle invitations.\n // NOTE: The zeroth client isn't necessarily the first to be initialized.\n const handleInitialized = async (client: Client, index: number) => {\n log.info('initialized', { index });\n if (createSpace) {\n if (!hostRef.current) {\n hostRef.current = client;\n const space = await initializeClient(client, { createIdentity, createSpace, onSpaceCreated, onInitialized });\n spaceReady.current.wake(space);\n log.info('inviting', { index });\n } else {\n await initializeClient(client, { createIdentity, onInitialized });\n const space = await spaceReady.current.wait();\n if (space) {\n log.info('joining', { index });\n await Promise.all(performInvitation({ host: space, guest: client.spaces }));\n }\n }\n }\n };\n\n return (\n <ErrorBoundary>\n {Array.from({ length: numClients }).map((_, index) => (\n <MultiClientContext.Provider key={index} value={{ id: index }}>\n <ClientProvider\n services={builder.current.createLocalClientServices()}\n onInitialized={(client) => handleInitialized(client, index)}\n {...props}\n >\n <Story />\n </ClientProvider>\n </MultiClientContext.Provider>\n ))}\n </ErrorBoundary>\n );\n };\n};\n\nconst ErrorBoundary = ({ children }: PropsWithChildren) => {\n const [error, setError] = useState<Error>();\n useEffect(() => {\n const handleError = (event: PromiseRejectionEvent) => {\n setError(event.reason);\n };\n\n window.addEventListener('unhandledrejection', handleError);\n return () => window.removeEventListener('unhandledrejection', handleError);\n }, []);\n\n if (error) {\n return <ErrorFallback error={error} resetErrorBoundary={() => setError(undefined)} />;\n }\n\n return <NativeErrorBoundary FallbackComponent={ErrorFallback}>{children}</NativeErrorBoundary>;\n};\n\nconst ErrorFallback = ({ error }: FallbackProps) => {\n const { name, message, stack } =\n error instanceof Error ? error : { name: 'Error', message: String(error), stack: undefined };\n return (\n <div role='alert' className='flex flex-col p-4 gap-4 overflow-auto'>\n <h1 className='text-xl text-red-500'>{name}</h1>\n <div className='text-lg'>{message}</div>\n {stack && <pre className='whitespace-pre-wrap text-sm text-subdued'>{stack}</pre>}\n </div>\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,4BAAc;ACCd,mBAA4D;AAE5D,oBAAuC;AACvC,qBAA+C;AAC/C,IAAAA,gBAAuC;AACvC,oBAAsB;ACLtB,IAAAA,gBAAsG;AACtG,kCAAyE;AAEzE,mBAAwB;AAGxB,IAAAC,kBAA+C;AAC/C,iBAAoB;AD4Bb,IAAMC,iBAAiB,CAAyCC,UAAAA;AACrE,QAAM,EACJC,WAAWC,WACXC,UAAUC,UACVC,QAAQ,GACRC,OACAC,gBACAC,aACAC,eAAc,IACZT;AACJU,8BAAU,MAAA;AACRC,8CAAAA;EACF,GAAG,CAAA,CAAE;AAEL,QAAM,CAACC,SAASC,UAAAA,QAAcC,uBAASd,MAAMY,WAAW,CAAA,CAAE;AAC1D,QAAM,CAACG,UAAUC,WAAAA,QAAeF,uBAAAA;AAEhC,QAAMG,kBAAcC,qBAAO,IAAIC,2BAAAA,CAAAA;AAC/BT,8BAAU,MAAA;AACR,UAAMU,UAAUC,WAAW,YAAA;AACzB,YAAMT,WAAU;WAAIU,MAAMjB,KAAAA;QAAQkB,IAChC,CAACC,MAAM,IAAIC,qBAAO;QAAEC,UAAUT,YAAYU,QAAQC,0BAAyB;QAAItB;MAAM,CAAA,CAAA;AAGvF,YAAMuB,QAAQC,IAAIlB,SAAQW,IAAI,CAACQ,WAAWA,OAAOC,WAAU,CAAA,CAAA;AAC3D,UAAIzB,kBAAkBC,aAAa;AACjC,cAAMqB,QAAQC,IAAIlB,SAAQW,IAAI,CAACQ,WAAWA,OAAOE,KAAK1B,eAAc,CAAA,CAAA;MACtE;AAEA,UAAIC,aAAa;AACf,cAAMuB,SAASnB,SAAQ,CAAA;AACvB,cAAMsB,QAAQ,MAAMH,OAAOI,OAAOC,OAAO;UAAEC,MAAMC,oBAAMC,SAASC,YAAW;QAAG,CAAA;AAC9ExB,oBAAYkB,MAAMO,GAAG;AACrB,cAAMhC,iBAAiB;UAAEsB;UAAQG;QAAM,CAAA;AACvC,cAAML,QAAQC,IACZlB,SAAQ8B,MAAM,CAAA,EAAGC,QAAQ,CAACZ,gBAAWa,kCAAkB;UAAEC,MAAMX;UAAOY,OAAOf,QAAOI;QAAO,CAAA,CAAA,CAAA;MAE/F;AAEAtB,iBAAWD,QAAAA;IACb,CAAA;AAEA,WAAO,MAAMmC,aAAa3B,OAAAA;EAC5B,GAAG,CAAA,CAAE;AAEL,MAAIR,QAAQoC,WAAW,GAAG;AACxB,WAAO;EACT;AAEA,SACE,6BAAAC,QAAA,cAAA,aAAAA,QAAA,UAAA,MACG7C,YAAY,6BAAA6C,QAAA,cAAC7C,UAAAA;IAASQ;MACtBA,QAAQW,IAAI,CAACQ,QAAQmB,UACpB,6BAAAD,QAAA,cAACE,sCAAAA;IAAeV,KAAKS;IAAOnB;KAC1B,6BAAAkB,QAAA,cAAC/C,WAAAA;IAAUkD,IAAIF;IAAO7C,OAAOO,QAAQoC;IAAQjC;IAA0B,GAAGf,MAAMqD;;AAK1F;;ACzEA,IAAMC,mBAAmB,OACvBvB,QACA,EACExB,gBACAC,aACAC,gBACA8C,cAAa,MACoD;AAEnE,MAAIhD,kBAAkBC,aAAa;AACjC,QAAI,CAACuB,OAAOE,KAAKuB,SAASC,IAAG,GAAI;AAC/B,YAAM1B,OAAOE,KAAK1B,eAAc;IAClC;EACF;AAEA,MAAI2B;AACJ,MAAI1B,aAAa;AACf0B,YAAQ,MAAMH,OAAOI,OAAOC,OAAO;MAAEC,MAAM;IAAa,CAAA;AACxD,UAAM5B,iBAAiB;MAAEsB;MAAQG;IAAM,CAAA;EACzC;AAEA,QAAMqB,gBAAgBxB,MAAAA;AACtB,SAAOG;AACT;AAOO,IAAMwB,qBAAqB,CAAC,EACjCnD,gBACAC,aACAC,gBACA8C,eACA,GAAGvD,MAAAA,IACwB,CAAC,MAAC;AAC7B,SAAO,CAAC2D,UAAAA;AACN,UAAMC,oBAAoB,OAAO7B,WAAAA;AAC/B,YAAMuB,iBAAiBvB,QAAQ;QAAExB;QAAgBC;QAAaC;QAAgB8C;MAAc,CAAA;IAC9F;AAEA,WACEN,8BAAAA,QAAA,cAACY,eAAAA,MACCZ,8BAAAA,QAAA,cAACE,sCAAAA;MAAeI,eAAeK;MAAoB,GAAG5D;OACpDiD,8BAAAA,QAAA,cAACU,OAAAA,IAAAA,CAAAA,CAAAA;EAIT;AACF;AAOA,IAAMG,qBAAqBC,iDAA8B;EAAEX,IAAI;AAAE,CAAA;AAE1D,IAAMY,iBAAiB,UAAMC,0BAAWH,kBAAAA;AAOxC,IAAMI,0BAA0B,CAAC,EACtCC,aAAa,GACb5D,gBACAC,aACAC,gBACA8C,eACA,GAAGvD,MAAAA,MAC0B;AAC7B,SAAO,CAAC2D,UAAAA;AACN,UAAMS,cAAUlD,cAAAA,QAAO,IAAIC,gBAAAA,YAAAA,CAAAA;AAC3B,UAAMkD,cAAUnD,cAAAA,QAAAA;AAChB,UAAMoD,iBAAapD,cAAAA,QAAO,IAAIqD,qBAAAA,CAAAA;AAI9B,UAAMX,oBAAoB,OAAO7B,QAAgBmB,UAAAA;AAC/CsB,qBAAIC,KAAK,eAAe;QAAEvB;MAAM,GAAA;;;;;;AAChC,UAAI1C,aAAa;AACf,YAAI,CAAC6D,QAAQ1C,SAAS;AACpB0C,kBAAQ1C,UAAUI;AAClB,gBAAMG,QAAQ,MAAMoB,iBAAiBvB,QAAQ;YAAExB;YAAgBC;YAAaC;YAAgB8C;UAAc,CAAA;AAC1Ge,qBAAW3C,QAAQ+C,KAAKxC,KAAAA;AACxBsC,yBAAIC,KAAK,YAAY;YAAEvB;UAAM,GAAA;;;;;;QAC/B,OAAO;AACL,gBAAMI,iBAAiBvB,QAAQ;YAAExB;YAAgBgD;UAAc,CAAA;AAC/D,gBAAMrB,QAAQ,MAAMoC,WAAW3C,QAAQgD,KAAI;AAC3C,cAAIzC,OAAO;AACTsC,2BAAIC,KAAK,WAAW;cAAEvB;YAAM,GAAA;;;;;;AAC5B,kBAAMrB,QAAQC,QAAIc,gBAAAA,mBAAkB;cAAEC,MAAMX;cAAOY,OAAOf,OAAOI;YAAO,CAAA,CAAA;UAC1E;QACF;MACF;IACF;AAEA,WACEc,8BAAAA,QAAA,cAACY,eAAAA,MACEvC,MAAMsD,KAAK;MAAE5B,QAAQmB;IAAW,CAAA,EAAG5C,IAAI,CAACC,GAAG0B,UAC1CD,8BAAAA,QAAA,cAACa,mBAAmBe,UAAQ;MAACpC,KAAKS;MAAO4B,OAAO;QAAE1B,IAAIF;MAAM;OAC1DD,8BAAAA,QAAA,cAACE,sCAAAA;MACCzB,UAAU0C,QAAQzC,QAAQC,0BAAyB;MACnD2B,eAAe,CAACxB,WAAW6B,kBAAkB7B,QAAQmB,KAAAA;MACpD,GAAGlD;OAEJiD,8BAAAA,QAAA,cAACU,OAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA;EAMb;AACF;AAEA,IAAME,gBAAgB,CAAC,EAAEkB,SAAQ,MAAqB;AACpD,QAAM,CAACC,OAAOC,QAAAA,QAAYnE,cAAAA,UAAAA;AAC1BJ,oBAAAA,WAAU,MAAA;AACR,UAAMwE,cAAc,CAACC,UAAAA;AACnBF,eAASE,MAAMC,MAAM;IACvB;AAEAC,WAAOC,iBAAiB,sBAAsBJ,WAAAA;AAC9C,WAAO,MAAMG,OAAOE,oBAAoB,sBAAsBL,WAAAA;EAChE,GAAG,CAAA,CAAE;AAEL,MAAIF,OAAO;AACT,WAAO/B,8BAAAA,QAAA,cAACuC,eAAAA;MAAcR;MAAcS,oBAAoB,MAAMR,SAASS,MAAAA;;EACzE;AAEA,SAAOzC,8BAAAA,QAAA,cAAC0C,4BAAAA,eAAAA;IAAoBC,mBAAmBJ;KAAgBT,QAAAA;AACjE;AAEA,IAAMS,gBAAgB,CAAC,EAAER,MAAK,MAAiB;AAC7C,QAAM,EAAE3C,MAAMwD,SAASC,MAAK,IAC1Bd,iBAAiBe,QAAQf,QAAQ;IAAE3C,MAAM;IAASwD,SAASG,OAAOhB,KAAAA;IAAQc,OAAOJ;EAAU;AAC7F,SACEzC,8BAAAA,QAAA,cAACgD,OAAAA;IAAIC,MAAK;IAAQC,WAAU;KAC1BlD,8BAAAA,QAAA,cAACmD,MAAAA;IAAGD,WAAU;KAAwB9D,IAAAA,GACtCY,8BAAAA,QAAA,cAACgD,OAAAA;IAAIE,WAAU;KAAWN,OAAAA,GACzBC,SAAS7C,8BAAAA,QAAA,cAACoD,OAAAA;IAAIF,WAAU;KAA4CL,KAAAA,CAAAA;AAG3E;",
6
+ "names": ["import_react", "import_testing", "ClientRepeater", "props", "component", "Component", "controls", "Controls", "count", "types", "createIdentity", "createSpace", "onSpaceCreated", "useEffect", "registerSignalsRuntime", "clients", "setClients", "useState", "spaceKey", "setSpaceKey", "testBuilder", "useRef", "TestBuilder", "timeout", "setTimeout", "Array", "map", "_", "Client", "services", "current", "createLocalClientServices", "Promise", "all", "client", "initialize", "halo", "space", "spaces", "create", "name", "faker", "commerce", "productName", "key", "slice", "flatMap", "performInvitation", "host", "guest", "clearTimeout", "length", "React", "index", "ClientProvider", "id", "args", "initializeClient", "onInitialized", "identity", "get", "withClientProvider", "Story", "handleInitialized", "ErrorBoundary", "MultiClientContext", "createContext", "useMultiClient", "useContext", "withMultiClientProvider", "numClients", "builder", "hostRef", "spaceReady", "Trigger", "log", "info", "wake", "wait", "from", "Provider", "value", "children", "error", "setError", "handleError", "event", "reason", "window", "addEventListener", "removeEventListener", "ErrorFallback", "resetErrorBoundary", "undefined", "NativeErrorBoundary", "FallbackComponent", "message", "stack", "Error", "String", "div", "role", "className", "h1", "pre"]
7
7
  }