@dxos/react-client 0.6.12 → 0.6.13-main.548ca8d

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 (85) hide show
  1. package/dist/lib/browser/{chunk-CL7JDETM.mjs → chunk-RJRDB4LF.mjs} +62 -60
  2. package/dist/lib/browser/chunk-RJRDB4LF.mjs.map +7 -0
  3. package/dist/lib/browser/devtools/index.mjs +1 -1
  4. package/dist/lib/browser/echo/index.mjs +6 -4
  5. package/dist/lib/browser/echo/index.mjs.map +3 -3
  6. package/dist/lib/browser/halo/index.mjs +1 -1
  7. package/dist/lib/browser/index.mjs +1 -3
  8. package/dist/lib/browser/index.mjs.map +1 -1
  9. package/dist/lib/browser/mesh/index.mjs +1 -1
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/testing/index.mjs +43 -32
  12. package/dist/lib/browser/testing/index.mjs.map +3 -3
  13. package/dist/lib/node/{chunk-C4EWAKPZ.cjs → chunk-YNTACPMY.cjs} +63 -60
  14. package/dist/lib/node/chunk-YNTACPMY.cjs.map +7 -0
  15. package/dist/lib/node/devtools/index.cjs +2 -2
  16. package/dist/lib/node/echo/index.cjs +7 -5
  17. package/dist/lib/node/echo/index.cjs.map +3 -3
  18. package/dist/lib/node/halo/index.cjs +5 -5
  19. package/dist/lib/node/index.cjs +12 -14
  20. package/dist/lib/node/index.cjs.map +1 -1
  21. package/dist/lib/node/mesh/index.cjs +2 -2
  22. package/dist/lib/node/meta.json +1 -1
  23. package/dist/lib/node/testing/index.cjs +44 -33
  24. package/dist/lib/node/testing/index.cjs.map +3 -3
  25. package/dist/lib/node-esm/chunk-UYJUBYMU.mjs +165 -0
  26. package/dist/lib/node-esm/chunk-UYJUBYMU.mjs.map +7 -0
  27. package/dist/lib/node-esm/chunk-V65AVUQO.mjs +295 -0
  28. package/dist/lib/node-esm/chunk-V65AVUQO.mjs.map +7 -0
  29. package/dist/lib/node-esm/devtools/index.mjs +44 -0
  30. package/dist/lib/node-esm/devtools/index.mjs.map +7 -0
  31. package/dist/lib/node-esm/echo/index.mjs +134 -0
  32. package/dist/lib/node-esm/echo/index.mjs.map +7 -0
  33. package/dist/lib/node-esm/halo/index.mjs +100 -0
  34. package/dist/lib/node-esm/halo/index.mjs.map +7 -0
  35. package/dist/lib/node-esm/index.mjs +33 -0
  36. package/dist/lib/node-esm/index.mjs.map +7 -0
  37. package/dist/lib/node-esm/invitations/index.mjs +18 -0
  38. package/dist/lib/node-esm/invitations/index.mjs.map +7 -0
  39. package/dist/lib/node-esm/mesh/index.mjs +18 -0
  40. package/dist/lib/node-esm/mesh/index.mjs.map +7 -0
  41. package/dist/lib/node-esm/meta.json +1 -0
  42. package/dist/lib/node-esm/testing/index.mjs +177 -0
  43. package/dist/lib/node-esm/testing/index.mjs.map +7 -0
  44. package/dist/lib/node-esm/worker.mjs +5 -0
  45. package/dist/lib/node-esm/worker.mjs.map +7 -0
  46. package/dist/types/src/client/ClientProvider.d.ts +59 -18
  47. package/dist/types/src/client/ClientProvider.d.ts.map +1 -1
  48. package/dist/types/src/client/context.d.ts +1 -4
  49. package/dist/types/src/client/context.d.ts.map +1 -1
  50. package/dist/types/src/client/index.d.ts +0 -1
  51. package/dist/types/src/client/index.d.ts.map +1 -1
  52. package/dist/types/src/echo/useQuery.d.ts.map +1 -1
  53. package/dist/types/src/playwright/playwright.config.d.ts +2 -2
  54. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
  55. package/dist/types/src/testing/ClientRepeater.d.ts +9 -12
  56. package/dist/types/src/testing/ClientRepeater.d.ts.map +1 -1
  57. package/dist/types/src/testing/util.d.ts +5 -3
  58. package/dist/types/src/testing/util.d.ts.map +1 -1
  59. package/dist/types/src/testing/withClientProvider.d.ts +4 -1
  60. package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
  61. package/dist/types/src/testing/withClientProvider.stories.d.ts +4 -3
  62. package/dist/types/src/testing/withClientProvider.stories.d.ts.map +1 -1
  63. package/package.json +47 -38
  64. package/project.json +3 -22
  65. package/src/client/ClientProvider.test.tsx +7 -4
  66. package/src/client/ClientProvider.tsx +126 -100
  67. package/src/client/context.ts +4 -5
  68. package/src/client/index.ts +0 -3
  69. package/src/client/useConfig.test.tsx +7 -11
  70. package/src/echo/useQuery.ts +3 -6
  71. package/src/echo/useSpaces.test.tsx +6 -8
  72. package/src/halo/useDevices.test.tsx +3 -5
  73. package/src/playwright/playwright.config.ts +13 -2
  74. package/src/playwright/smoke.spec.ts +5 -10
  75. package/src/testing/ClientRepeater.tsx +19 -20
  76. package/src/testing/util.tsx +11 -6
  77. package/src/testing/withClientProvider.stories.tsx +19 -10
  78. package/src/testing/withClientProvider.tsx +22 -18
  79. package/tsconfig.json +2 -58
  80. package/vitest.config.ts +22 -0
  81. package/dist/lib/browser/chunk-CL7JDETM.mjs.map +0 -7
  82. package/dist/lib/node/chunk-C4EWAKPZ.cjs.map +0 -7
  83. package/dist/types/src/client/useClientServices.d.ts +0 -3
  84. package/dist/types/src/client/useClientServices.d.ts.map +0 -1
  85. package/src/client/useClientServices.ts +0 -15
@@ -0,0 +1,100 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ useInvitationStatus
4
+ } from "../chunk-UYJUBYMU.mjs";
5
+ import {
6
+ useClient
7
+ } from "../chunk-V65AVUQO.mjs";
8
+
9
+ // packages/sdk/react-client/src/halo/index.ts
10
+ import { Device, DeviceKind, DeviceType } from "@dxos/client/halo";
11
+
12
+ // packages/sdk/react-client/src/halo/useContacts.ts
13
+ import { useMulticastObservable } from "@dxos/react-hooks";
14
+ var useContacts = () => {
15
+ const client = useClient();
16
+ return useMulticastObservable(client.halo.contacts);
17
+ };
18
+
19
+ // packages/sdk/react-client/src/halo/useDevices.ts
20
+ import { useMulticastObservable as useMulticastObservable2 } from "@dxos/react-hooks";
21
+ var useDevices = () => {
22
+ const client = useClient();
23
+ return useMulticastObservable2(client.halo.devices);
24
+ };
25
+
26
+ // packages/sdk/react-client/src/halo/useHaloInvitations.ts
27
+ import { useMemo } from "react";
28
+ import { useMulticastObservable as useMulticastObservable3 } from "@dxos/react-hooks";
29
+ var useHaloInvitations = () => {
30
+ const client = useClient();
31
+ return useMulticastObservable3(client.halo.invitations);
32
+ };
33
+ var useHaloInvitation = (invitationId) => {
34
+ const invitations = useHaloInvitations();
35
+ const invitation = useMemo(() => invitations.find((invitation2) => invitation2.get().invitationId === invitationId), [
36
+ invitations
37
+ ]);
38
+ return useInvitationStatus(invitation);
39
+ };
40
+
41
+ // packages/sdk/react-client/src/halo/useIdentity.ts
42
+ import { useMulticastObservable as useMulticastObservable4 } from "@dxos/react-hooks";
43
+ var useIdentity = () => {
44
+ const client = useClient();
45
+ return useMulticastObservable4(client.halo.identity);
46
+ };
47
+
48
+ // packages/sdk/react-client/src/halo/useKeyStore.ts
49
+ import { useMemo as useMemo2, useReducer } from "react";
50
+ var KeyStore = class {
51
+ constructor(_defaultKeys = []) {
52
+ this._defaultKeys = _defaultKeys;
53
+ this._keyMap = /* @__PURE__ */ new Map();
54
+ }
55
+ get map() {
56
+ return this._keyMap;
57
+ }
58
+ // TODO(burdon): Create subkeys.
59
+ initialize() {
60
+ this._defaultKeys.forEach((key) => {
61
+ const value = localStorage.getItem(key);
62
+ this.setKey(key, value ?? "");
63
+ });
64
+ return this;
65
+ }
66
+ getKey(key) {
67
+ localStorage.getItem(key);
68
+ }
69
+ setKey(key, value) {
70
+ localStorage.setItem(key, "");
71
+ this._keyMap.set(key, value);
72
+ }
73
+ };
74
+ var useKeyStore = (defaultKeys = []) => {
75
+ const [, forceUpdate] = useReducer((x) => x + 1, 0);
76
+ const store = useMemo2(() => new KeyStore(defaultKeys).initialize(), [
77
+ defaultKeys
78
+ ]);
79
+ const setKey = (key, value) => {
80
+ store.setKey(key, value);
81
+ forceUpdate();
82
+ };
83
+ return [
84
+ store.map,
85
+ setKey
86
+ ];
87
+ };
88
+ export {
89
+ Device,
90
+ DeviceKind,
91
+ DeviceType,
92
+ KeyStore,
93
+ useContacts,
94
+ useDevices,
95
+ useHaloInvitation,
96
+ useHaloInvitations,
97
+ useIdentity,
98
+ useKeyStore
99
+ };
100
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/halo/index.ts", "../../../../src/halo/useContacts.ts", "../../../../src/halo/useDevices.ts", "../../../../src/halo/useHaloInvitations.ts", "../../../../src/halo/useIdentity.ts", "../../../../src/halo/useKeyStore.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\n// NOTE: Export * fails here.\nexport { type Contact, type Identity, type Halo, Device, DeviceKind, DeviceType } from '@dxos/client/halo';\n\nexport * from './useContacts';\nexport * from './useDevices';\nexport * from './useHaloInvitations';\nexport * from './useIdentity';\nexport * from './useKeyStore';\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport type { Contact } from '@dxos/client/halo';\nimport { useMulticastObservable } from '@dxos/react-hooks';\n\nimport { useClient } from '../client';\n\n/**\n * Returns all known Contacts across all Spaces.\n * Contacts are known members of a common Space.\n * Requires ClientContext to be set via ClientProvider.\n */\nexport const useContacts = (): Contact[] => {\n const client = useClient();\n return useMulticastObservable(client.halo.contacts);\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport type { Device } from '@dxos/client/halo';\nimport { useMulticastObservable } from '@dxos/react-hooks';\n\nimport { useClient } from '../client';\n\nexport const useDevices = (): Device[] => {\n const client = useClient();\n return useMulticastObservable(client.halo.devices);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { useMulticastObservable } from '@dxos/react-hooks';\n\nimport { useClient } from '../client';\nimport { useInvitationStatus, type CancellableInvitationObservable } from '../invitations';\n\nexport const useHaloInvitations = (): CancellableInvitationObservable[] => {\n const client = useClient();\n return useMulticastObservable(client.halo.invitations);\n};\n\nexport const useHaloInvitation = (invitationId?: string) => {\n const invitations = useHaloInvitations();\n const invitation = useMemo(\n () => invitations.find((invitation) => invitation.get().invitationId === invitationId),\n [invitations],\n );\n return useInvitationStatus(invitation);\n};\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { type Identity } from '@dxos/client/halo';\nimport { useMulticastObservable } from '@dxos/react-hooks';\n\nimport { useClient } from '../client';\n\n/**\n * Hook returning DXOS identity object.\n * Requires ClientContext to be set via ClientProvider.\n */\nexport const useIdentity = (): Identity | null => {\n const client = useClient();\n return useMulticastObservable(client.halo.identity);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useMemo, useReducer } from 'react';\n\n// TODO(burdon): Move to settings plugin.\nexport class KeyStore {\n private _keyMap = new Map<string, string>();\n\n constructor(private readonly _defaultKeys: string[] = []) {}\n\n get map() {\n return this._keyMap;\n }\n\n // TODO(burdon): Create subkeys.\n initialize() {\n this._defaultKeys.forEach((key) => {\n const value = localStorage.getItem(key);\n this.setKey(key, value ?? '');\n });\n\n return this;\n }\n\n getKey(key: string) {\n localStorage.getItem(key);\n }\n\n setKey(key: string, value: string) {\n localStorage.setItem(key, '');\n this._keyMap.set(key, value);\n }\n}\n\n/**\n * Settings store.\n * @deprecated Replace with HALO key store when available.\n */\nexport const useKeyStore = (\n defaultKeys: string[] = [],\n): [Map<string, string>, (key: string, value: string) => void] => {\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n const store = useMemo(() => new KeyStore(defaultKeys).initialize(), [defaultKeys]);\n const setKey = (key: string, value: string) => {\n store.setKey(key, value);\n forceUpdate();\n };\n\n return [store.map, setKey];\n};\n"],
5
+ "mappings": ";;;;;;;;;AAKA,SAAiDA,QAAQC,YAAYC,kBAAkB;;;ACAvF,SAASC,8BAA8B;AAShC,IAAMC,cAAc,MAAA;AACzB,QAAMC,SAASC,UAAAA;AACf,SAAOC,uBAAuBF,OAAOG,KAAKC,QAAQ;AACpD;;;ACZA,SAASC,0BAAAA,+BAA8B;AAIhC,IAAMC,aAAa,MAAA;AACxB,QAAMC,SAASC,UAAAA;AACf,SAAOC,wBAAuBF,OAAOG,KAAKC,OAAO;AACnD;;;ACRA,SAASC,eAAe;AAExB,SAASC,0BAAAA,+BAA8B;AAKhC,IAAMC,qBAAqB,MAAA;AAChC,QAAMC,SAASC,UAAAA;AACf,SAAOC,wBAAuBF,OAAOG,KAAKC,WAAW;AACvD;AAEO,IAAMC,oBAAoB,CAACC,iBAAAA;AAChC,QAAMF,cAAcL,mBAAAA;AACpB,QAAMQ,aAAaC,QACjB,MAAMJ,YAAYK,KAAK,CAACF,gBAAeA,YAAWG,IAAG,EAAGJ,iBAAiBA,YAAAA,GACzE;IAACF;GAAY;AAEf,SAAOO,oBAAoBJ,UAAAA;AAC7B;;;AClBA,SAASK,0BAAAA,+BAA8B;AAQhC,IAAMC,cAAc,MAAA;AACzB,QAAMC,SAASC,UAAAA;AACf,SAAOC,wBAAuBF,OAAOG,KAAKC,QAAQ;AACpD;;;ACZA,SAASC,WAAAA,UAASC,kBAAkB;AAG7B,IAAMC,WAAN,MAAMA;EAGXC,YAA6BC,eAAyB,CAAA,GAAI;SAA7BA,eAAAA;SAFrBC,UAAU,oBAAIC,IAAAA;EAEqC;EAE3D,IAAIC,MAAM;AACR,WAAO,KAAKF;EACd;;EAGAG,aAAa;AACX,SAAKJ,aAAaK,QAAQ,CAACC,QAAAA;AACzB,YAAMC,QAAQC,aAAaC,QAAQH,GAAAA;AACnC,WAAKI,OAAOJ,KAAKC,SAAS,EAAA;IAC5B,CAAA;AAEA,WAAO;EACT;EAEAI,OAAOL,KAAa;AAClBE,iBAAaC,QAAQH,GAAAA;EACvB;EAEAI,OAAOJ,KAAaC,OAAe;AACjCC,iBAAaI,QAAQN,KAAK,EAAA;AAC1B,SAAKL,QAAQY,IAAIP,KAAKC,KAAAA;EACxB;AACF;AAMO,IAAMO,cAAc,CACzBC,cAAwB,CAAA,MAAE;AAE1B,QAAM,CAAA,EAAGC,WAAAA,IAAeC,WAAW,CAACC,MAAMA,IAAI,GAAG,CAAA;AACjD,QAAMC,QAAQC,SAAQ,MAAM,IAAItB,SAASiB,WAAAA,EAAaX,WAAU,GAAI;IAACW;GAAY;AACjF,QAAML,SAAS,CAACJ,KAAaC,UAAAA;AAC3BY,UAAMT,OAAOJ,KAAKC,KAAAA;AAClBS,gBAAAA;EACF;AAEA,SAAO;IAACG,MAAMhB;IAAKO;;AACrB;",
6
+ "names": ["Device", "DeviceKind", "DeviceType", "useMulticastObservable", "useContacts", "client", "useClient", "useMulticastObservable", "halo", "contacts", "useMulticastObservable", "useDevices", "client", "useClient", "useMulticastObservable", "halo", "devices", "useMemo", "useMulticastObservable", "useHaloInvitations", "client", "useClient", "useMulticastObservable", "halo", "invitations", "useHaloInvitation", "invitationId", "invitation", "useMemo", "find", "get", "useInvitationStatus", "useMulticastObservable", "useIdentity", "client", "useClient", "useMulticastObservable", "halo", "identity", "useMemo", "useReducer", "KeyStore", "constructor", "_defaultKeys", "_keyMap", "Map", "map", "initialize", "forEach", "key", "value", "localStorage", "getItem", "setKey", "getKey", "setItem", "set", "useKeyStore", "defaultKeys", "forceUpdate", "useReducer", "x", "store", "useMemo"]
7
+ }
@@ -0,0 +1,33 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ AgentHostingContext,
4
+ AgentHostingProvider,
5
+ ClientContext,
6
+ ClientProvider,
7
+ useAgentHostingClient,
8
+ useClient,
9
+ useClientStatus,
10
+ useConfig,
11
+ useShell,
12
+ useShellDisplay,
13
+ useStatus
14
+ } from "./chunk-V65AVUQO.mjs";
15
+
16
+ // packages/sdk/react-client/src/index.ts
17
+ export * from "@dxos/client";
18
+ import { useMulticastObservable } from "@dxos/react-hooks";
19
+ export {
20
+ AgentHostingContext,
21
+ AgentHostingProvider,
22
+ ClientContext,
23
+ ClientProvider,
24
+ useAgentHostingClient,
25
+ useClient,
26
+ useClientStatus,
27
+ useConfig,
28
+ useMulticastObservable,
29
+ useShell,
30
+ useShellDisplay,
31
+ useStatus
32
+ };
33
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
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,cAAc;AACd,SAASA,8BAA8B;",
6
+ "names": ["useMulticastObservable"]
7
+ }
@@ -0,0 +1,18 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ AuthenticatingInvitationObservable,
4
+ CancellableInvitationObservable,
5
+ Invitation,
6
+ InvitationEncoder,
7
+ InvitationsProxy,
8
+ useInvitationStatus
9
+ } from "../chunk-UYJUBYMU.mjs";
10
+ export {
11
+ AuthenticatingInvitationObservable,
12
+ CancellableInvitationObservable,
13
+ Invitation,
14
+ InvitationEncoder,
15
+ InvitationsProxy,
16
+ useInvitationStatus
17
+ };
18
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,18 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ useClient
4
+ } from "../chunk-V65AVUQO.mjs";
5
+
6
+ // packages/sdk/react-client/src/mesh/index.ts
7
+ export * from "@dxos/client/mesh";
8
+
9
+ // packages/sdk/react-client/src/mesh/useNetworkStatus.ts
10
+ import { useMulticastObservable } from "@dxos/react-hooks";
11
+ var useNetworkStatus = () => {
12
+ const client = useClient();
13
+ return useMulticastObservable(client.mesh.networkStatus);
14
+ };
15
+ export {
16
+ useNetworkStatus
17
+ };
18
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/mesh/index.ts", "../../../../src/mesh/useNetworkStatus.ts"],
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,cAAc;;;ACCd,SAASA,8BAA8B;AAOhC,IAAMC,mBAAmB,MAAA;AAC9B,QAAMC,SAASC,UAAAA;AACf,SAAOC,uBAAuBF,OAAOG,KAAKC,aAAa;AACzD;",
6
+ "names": ["useMulticastObservable", "useNetworkStatus", "client", "useClient", "useMulticastObservable", "mesh", "networkStatus"]
7
+ }
@@ -0,0 +1 @@
1
+ {"inputs":{"packages/sdk/react-client/src/client/AgentHostingProvider.tsx":{"bytes":7244,"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":6436,"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":14679,"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":"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-esm/devtools/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2285},"packages/sdk/react-client/dist/lib/node-esm/devtools/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-V65AVUQO.mjs","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":1309},"packages/sdk/react-client/dist/lib/node-esm/echo/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11313},"packages/sdk/react-client/dist/lib/node-esm/echo/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-UYJUBYMU.mjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-V65AVUQO.mjs","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":1011},"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":4480},"packages/sdk/react-client/dist/lib/node-esm/halo/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6287},"packages/sdk/react-client/dist/lib/node-esm/halo/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-UYJUBYMU.mjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-V65AVUQO.mjs","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":2823},"packages/sdk/react-client/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":345},"packages/sdk/react-client/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-V65AVUQO.mjs","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":728},"packages/sdk/react-client/dist/lib/node-esm/invitations/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/react-client/dist/lib/node-esm/invitations/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-UYJUBYMU.mjs","kind":"import-statement"}],"exports":["AuthenticatingInvitationObservable","CancellableInvitationObservable","Invitation","InvitationEncoder","InvitationsProxy","useInvitationStatus"],"entryPoint":"packages/sdk/react-client/src/invitations/index.ts","inputs":{},"bytes":480},"packages/sdk/react-client/dist/lib/node-esm/chunk-UYJUBYMU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11019},"packages/sdk/react-client/dist/lib/node-esm/chunk-UYJUBYMU.mjs":{"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":5336},"packages/sdk/react-client/dist/lib/node-esm/mesh/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":936},"packages/sdk/react-client/dist/lib/node-esm/mesh/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-V65AVUQO.mjs","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":537},"packages/sdk/react-client/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13852},"packages/sdk/react-client/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-V65AVUQO.mjs","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}],"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":3465}},"bytes":6015},"packages/sdk/react-client/dist/lib/node-esm/chunk-V65AVUQO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18958},"packages/sdk/react-client/dist/lib/node-esm/chunk-V65AVUQO.mjs":{"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":8993},"packages/sdk/react-client/dist/lib/node-esm/worker.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":208},"packages/sdk/react-client/dist/lib/node-esm/worker.mjs":{"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":209}}}
@@ -0,0 +1,177 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ ClientProvider
4
+ } from "../chunk-V65AVUQO.mjs";
5
+
6
+ // packages/sdk/react-client/src/testing/index.ts
7
+ export * from "@dxos/client/testing";
8
+
9
+ // packages/sdk/react-client/src/testing/ClientRepeater.tsx
10
+ import React, { useState, useEffect, useRef } from "react";
11
+ import { Client } from "@dxos/client";
12
+ import { TestBuilder, performInvitation } from "@dxos/client/testing";
13
+ import { registerSignalsRuntime } from "@dxos/echo-signals/react";
14
+ import { faker } from "@dxos/random";
15
+ var ClientRepeater = (props) => {
16
+ const { component: Component, controls: Controls, count = 1, types, createIdentity, createSpace, onSpaceCreated } = props;
17
+ useEffect(() => {
18
+ registerSignalsRuntime();
19
+ }, []);
20
+ const [clients, setClients] = useState(props.clients ?? []);
21
+ const [spaceKey, setSpaceKey] = useState();
22
+ const testBuilder = useRef(new TestBuilder());
23
+ useEffect(() => {
24
+ const timeout = setTimeout(async () => {
25
+ const clients2 = [
26
+ ...Array(count)
27
+ ].map((_) => new Client({
28
+ services: testBuilder.current.createLocalClientServices(),
29
+ types
30
+ }));
31
+ await Promise.all(clients2.map((client) => client.initialize()));
32
+ if (createIdentity || createSpace) {
33
+ await Promise.all(clients2.map((client) => client.halo.createIdentity()));
34
+ }
35
+ if (createSpace) {
36
+ const client = clients2[0];
37
+ const space = await client.spaces.create({
38
+ name: faker.commerce.productName()
39
+ });
40
+ setSpaceKey(space.key);
41
+ await onSpaceCreated?.({
42
+ client,
43
+ space
44
+ });
45
+ await Promise.all(clients2.slice(1).flatMap((client2) => performInvitation({
46
+ host: space,
47
+ guest: client2.spaces
48
+ })));
49
+ }
50
+ setClients(clients2);
51
+ });
52
+ return () => clearTimeout(timeout);
53
+ }, []);
54
+ if (clients.length === 0) {
55
+ return null;
56
+ }
57
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, Controls && /* @__PURE__ */ React.createElement(Controls, {
58
+ clients
59
+ }), clients.map((client, index) => /* @__PURE__ */ React.createElement(ClientProvider, {
60
+ key: index,
61
+ client
62
+ }, /* @__PURE__ */ React.createElement(Component, {
63
+ id: index,
64
+ count: clients.length,
65
+ spaceKey,
66
+ ...props.args
67
+ }))));
68
+ };
69
+
70
+ // packages/sdk/react-client/src/testing/withClientProvider.tsx
71
+ import React2, { useRef as useRef2 } from "react";
72
+ import { ErrorBoundary } from "react-error-boundary";
73
+ import { Trigger } from "@dxos/async";
74
+ import { performInvitation as performInvitation2, TestBuilder as TestBuilder2 } from "@dxos/client/testing";
75
+ var initializeClient = async (client, { createIdentity, createSpace, onSpaceCreated, onInitialized }) => {
76
+ if (createIdentity || createSpace) {
77
+ if (!client.halo.identity.get()) {
78
+ await client.halo.createIdentity();
79
+ }
80
+ }
81
+ let space;
82
+ if (createSpace) {
83
+ space = await client.spaces.create({
84
+ name: "Test Space"
85
+ });
86
+ await onSpaceCreated?.({
87
+ client,
88
+ space
89
+ });
90
+ }
91
+ await onInitialized?.(client);
92
+ return space;
93
+ };
94
+ var withClientProvider = ({ createIdentity, createSpace, onSpaceCreated, onInitialized, ...props } = {}) => {
95
+ return (Story) => {
96
+ const handleInitialized = async (client) => {
97
+ await initializeClient(client, {
98
+ createIdentity,
99
+ createSpace,
100
+ onSpaceCreated,
101
+ onInitialized
102
+ });
103
+ };
104
+ return /* @__PURE__ */ React2.createElement(ErrorBoundary, {
105
+ FallbackComponent: ErrorFallback
106
+ }, /* @__PURE__ */ React2.createElement(ClientProvider, {
107
+ onInitialized: handleInitialized,
108
+ ...props
109
+ }, /* @__PURE__ */ React2.createElement(Story, null)));
110
+ };
111
+ };
112
+ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, onSpaceCreated, onInitialized, ...props }) => {
113
+ return (Story) => {
114
+ const builder = useRef2(new TestBuilder2());
115
+ const hostRef = useRef2();
116
+ const spaceReady = useRef2(new Trigger());
117
+ const handleInitialized = async (client) => {
118
+ if (createSpace) {
119
+ if (!hostRef.current) {
120
+ hostRef.current = client;
121
+ const space = await initializeClient(client, {
122
+ createIdentity,
123
+ createSpace,
124
+ onSpaceCreated,
125
+ onInitialized
126
+ });
127
+ spaceReady.current.wake(space);
128
+ } else {
129
+ await initializeClient(client, {
130
+ createIdentity,
131
+ onInitialized
132
+ });
133
+ const space = await spaceReady.current.wait();
134
+ if (space) {
135
+ await Promise.all(performInvitation2({
136
+ host: space,
137
+ guest: client.spaces
138
+ }));
139
+ }
140
+ }
141
+ }
142
+ };
143
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, Array.from({
144
+ length: numClients
145
+ }).map((_, index) => /* @__PURE__ */ React2.createElement(ErrorBoundary, {
146
+ key: index,
147
+ FallbackComponent: ErrorFallback
148
+ }, /* @__PURE__ */ React2.createElement(ClientProvider, {
149
+ services: builder.current.createLocalClientServices(),
150
+ onInitialized: handleInitialized,
151
+ ...props
152
+ }, /* @__PURE__ */ React2.createElement(Story, null)))));
153
+ };
154
+ };
155
+ var ErrorFallback = ({ error }) => {
156
+ const { name, message, stack } = error instanceof Error ? error : {
157
+ name: "Error",
158
+ message: String(error),
159
+ stack: void 0
160
+ };
161
+ return /* @__PURE__ */ React2.createElement("div", {
162
+ role: "alert",
163
+ className: "flex flex-col overflow-hidden p-4 gap-4"
164
+ }, /* @__PURE__ */ React2.createElement("h1", {
165
+ className: "text-xl text-red-500"
166
+ }, name), /* @__PURE__ */ React2.createElement("div", {
167
+ className: "text-lg"
168
+ }, message), stack && /* @__PURE__ */ React2.createElement("pre", {
169
+ className: "whitespace-pre-wrap text-sm text-subdued"
170
+ }, stack));
171
+ };
172
+ export {
173
+ ClientRepeater,
174
+ withClientProvider,
175
+ withMultiClientProvider
176
+ };
177
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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, { useRef } from 'react';\nimport { type FallbackProps, ErrorBoundary } 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 { 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 FallbackComponent={ErrorFallback}>\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 const handleInitialized = async (client: Client) => {\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 } else {\n await initializeClient(client, { createIdentity, onInitialized });\n const space = await spaceReady.current.wait();\n if (space) {\n await Promise.all(performInvitation({ host: space, guest: client.spaces }));\n }\n }\n }\n };\n\n return (\n <>\n {Array.from({ length: numClients }).map((_, index) => (\n <ErrorBoundary key={index} FallbackComponent={ErrorFallback}>\n <ClientProvider\n services={builder.current.createLocalClientServices()}\n onInitialized={handleInitialized}\n {...props}\n >\n <Story />\n </ClientProvider>\n </ErrorBoundary>\n ))}\n </>\n );\n };\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 overflow-hidden p-4 gap-4'>\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": ["React", "useState", "useEffect", "useRef", "Client", "TestBuilder", "performInvitation", "registerSignalsRuntime", "faker", "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", "index", "ClientProvider", "id", "args", "React", "useRef", "ErrorBoundary", "Trigger", "performInvitation", "TestBuilder", "initializeClient", "client", "createIdentity", "createSpace", "onSpaceCreated", "onInitialized", "halo", "identity", "get", "space", "spaces", "create", "name", "withClientProvider", "props", "Story", "handleInitialized", "React", "ErrorBoundary", "FallbackComponent", "ErrorFallback", "ClientProvider", "withMultiClientProvider", "numClients", "builder", "useRef", "TestBuilder", "hostRef", "spaceReady", "Trigger", "current", "wake", "wait", "Promise", "all", "performInvitation", "host", "guest", "Array", "from", "length", "map", "_", "index", "key", "services", "createLocalClientServices", "error", "message", "stack", "Error", "String", "undefined", "div", "role", "className", "h1", "pre"]
7
+ }
@@ -0,0 +1,5 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // packages/sdk/react-client/src/worker.ts
4
+ export * from "@dxos/client/worker";
5
+ //# sourceMappingURL=worker.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/worker.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nexport * from '@dxos/client/worker';\n"],
5
+ "mappings": ";;;AAIA,cAAc;",
6
+ "names": []
7
+ }