@dxos/react-client 0.6.11 → 0.6.12-main.5cc132e
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.
- package/dist/lib/browser/{chunk-CL7JDETM.mjs → chunk-ESSNDYBJ.mjs} +70 -61
- package/dist/lib/browser/chunk-ESSNDYBJ.mjs.map +7 -0
- package/dist/lib/browser/devtools/index.mjs +1 -1
- package/dist/lib/browser/echo/index.mjs +1 -1
- package/dist/lib/browser/halo/index.mjs +1 -1
- package/dist/lib/browser/index.mjs +1 -3
- package/dist/lib/browser/index.mjs.map +1 -1
- package/dist/lib/browser/mesh/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/lib/browser/testing/index.mjs.map +2 -2
- package/dist/lib/node/{chunk-C4EWAKPZ.cjs → chunk-N474KOAU.cjs} +71 -61
- package/dist/lib/node/chunk-N474KOAU.cjs.map +7 -0
- package/dist/lib/node/devtools/index.cjs +2 -2
- package/dist/lib/node/echo/index.cjs +3 -3
- package/dist/lib/node/halo/index.cjs +5 -5
- package/dist/lib/node/index.cjs +12 -14
- package/dist/lib/node/index.cjs.map +1 -1
- package/dist/lib/node/mesh/index.cjs +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +4 -4
- package/dist/lib/node/testing/index.cjs.map +2 -2
- package/dist/lib/node-esm/chunk-AL2CUQ46.mjs +163 -0
- package/dist/lib/node-esm/chunk-AL2CUQ46.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ESSNDYBJ.mjs +300 -0
- package/dist/lib/node-esm/chunk-ESSNDYBJ.mjs.map +7 -0
- package/dist/lib/node-esm/devtools/index.mjs +43 -0
- package/dist/lib/node-esm/devtools/index.mjs.map +7 -0
- package/dist/lib/node-esm/echo/index.mjs +131 -0
- package/dist/lib/node-esm/echo/index.mjs.map +7 -0
- package/dist/lib/node-esm/halo/index.mjs +99 -0
- package/dist/lib/node-esm/halo/index.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +32 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/invitations/index.mjs +17 -0
- package/dist/lib/node-esm/invitations/index.mjs.map +7 -0
- package/dist/lib/node-esm/mesh/index.mjs +17 -0
- package/dist/lib/node-esm/mesh/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/testing/index.mjs +165 -0
- package/dist/lib/node-esm/testing/index.mjs.map +7 -0
- package/dist/lib/node-esm/worker.mjs +3 -0
- package/dist/lib/node-esm/worker.mjs.map +7 -0
- package/dist/types/src/client/ClientProvider.d.ts +65 -9
- package/dist/types/src/client/ClientProvider.d.ts.map +1 -1
- package/dist/types/src/client/context.d.ts +1 -4
- package/dist/types/src/client/context.d.ts.map +1 -1
- package/dist/types/src/client/index.d.ts +0 -1
- package/dist/types/src/client/index.d.ts.map +1 -1
- package/dist/types/src/playwright/playwright.config.d.ts +2 -2
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
- package/dist/types/src/testing/util.d.ts +5 -3
- package/dist/types/src/testing/util.d.ts.map +1 -1
- package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
- package/package.json +45 -36
- package/project.json +3 -23
- package/src/client/ClientProvider.test.tsx +7 -4
- package/src/client/ClientProvider.tsx +130 -90
- package/src/client/context.ts +4 -4
- package/src/client/index.ts +0 -3
- package/src/client/useConfig.test.tsx +7 -11
- package/src/echo/useSpaces.test.tsx +6 -8
- package/src/halo/useDevices.test.tsx +3 -5
- package/src/playwright/playwright.config.ts +13 -2
- package/src/playwright/smoke.spec.ts +5 -10
- package/src/testing/util.tsx +11 -6
- package/src/testing/withClientProvider.tsx +1 -0
- package/tsconfig.json +4 -2
- package/vitest.config.ts +22 -0
- package/dist/lib/browser/chunk-CL7JDETM.mjs.map +0 -7
- package/dist/lib/node/chunk-C4EWAKPZ.cjs.map +0 -7
- package/dist/types/src/client/useClientServices.d.ts +0 -3
- package/dist/types/src/client/useClientServices.d.ts.map +0 -1
- package/src/client/useClientServices.ts +0 -15
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useInvitationStatus
|
|
3
|
+
} from "../chunk-AL2CUQ46.mjs";
|
|
4
|
+
import {
|
|
5
|
+
useClient
|
|
6
|
+
} from "../chunk-ESSNDYBJ.mjs";
|
|
7
|
+
|
|
8
|
+
// packages/sdk/react-client/src/halo/index.ts
|
|
9
|
+
import { Device, DeviceKind, DeviceType } from "@dxos/client/halo";
|
|
10
|
+
|
|
11
|
+
// packages/sdk/react-client/src/halo/useContacts.ts
|
|
12
|
+
import { useMulticastObservable } from "@dxos/react-hooks";
|
|
13
|
+
var useContacts = () => {
|
|
14
|
+
const client = useClient();
|
|
15
|
+
return useMulticastObservable(client.halo.contacts);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// packages/sdk/react-client/src/halo/useDevices.ts
|
|
19
|
+
import { useMulticastObservable as useMulticastObservable2 } from "@dxos/react-hooks";
|
|
20
|
+
var useDevices = () => {
|
|
21
|
+
const client = useClient();
|
|
22
|
+
return useMulticastObservable2(client.halo.devices);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// packages/sdk/react-client/src/halo/useHaloInvitations.ts
|
|
26
|
+
import { useMemo } from "react";
|
|
27
|
+
import { useMulticastObservable as useMulticastObservable3 } from "@dxos/react-hooks";
|
|
28
|
+
var useHaloInvitations = () => {
|
|
29
|
+
const client = useClient();
|
|
30
|
+
return useMulticastObservable3(client.halo.invitations);
|
|
31
|
+
};
|
|
32
|
+
var useHaloInvitation = (invitationId) => {
|
|
33
|
+
const invitations = useHaloInvitations();
|
|
34
|
+
const invitation = useMemo(() => invitations.find((invitation2) => invitation2.get().invitationId === invitationId), [
|
|
35
|
+
invitations
|
|
36
|
+
]);
|
|
37
|
+
return useInvitationStatus(invitation);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// packages/sdk/react-client/src/halo/useIdentity.ts
|
|
41
|
+
import { useMulticastObservable as useMulticastObservable4 } from "@dxos/react-hooks";
|
|
42
|
+
var useIdentity = () => {
|
|
43
|
+
const client = useClient();
|
|
44
|
+
return useMulticastObservable4(client.halo.identity);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// packages/sdk/react-client/src/halo/useKeyStore.ts
|
|
48
|
+
import { useMemo as useMemo2, useReducer } from "react";
|
|
49
|
+
var KeyStore = class {
|
|
50
|
+
constructor(_defaultKeys = []) {
|
|
51
|
+
this._defaultKeys = _defaultKeys;
|
|
52
|
+
this._keyMap = /* @__PURE__ */ new Map();
|
|
53
|
+
}
|
|
54
|
+
get map() {
|
|
55
|
+
return this._keyMap;
|
|
56
|
+
}
|
|
57
|
+
// TODO(burdon): Create subkeys.
|
|
58
|
+
initialize() {
|
|
59
|
+
this._defaultKeys.forEach((key) => {
|
|
60
|
+
const value = localStorage.getItem(key);
|
|
61
|
+
this.setKey(key, value ?? "");
|
|
62
|
+
});
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
getKey(key) {
|
|
66
|
+
localStorage.getItem(key);
|
|
67
|
+
}
|
|
68
|
+
setKey(key, value) {
|
|
69
|
+
localStorage.setItem(key, "");
|
|
70
|
+
this._keyMap.set(key, value);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
var useKeyStore = (defaultKeys = []) => {
|
|
74
|
+
const [, forceUpdate] = useReducer((x) => x + 1, 0);
|
|
75
|
+
const store = useMemo2(() => new KeyStore(defaultKeys).initialize(), [
|
|
76
|
+
defaultKeys
|
|
77
|
+
]);
|
|
78
|
+
const setKey = (key, value) => {
|
|
79
|
+
store.setKey(key, value);
|
|
80
|
+
forceUpdate();
|
|
81
|
+
};
|
|
82
|
+
return [
|
|
83
|
+
store.map,
|
|
84
|
+
setKey
|
|
85
|
+
];
|
|
86
|
+
};
|
|
87
|
+
export {
|
|
88
|
+
Device,
|
|
89
|
+
DeviceKind,
|
|
90
|
+
DeviceType,
|
|
91
|
+
KeyStore,
|
|
92
|
+
useContacts,
|
|
93
|
+
useDevices,
|
|
94
|
+
useHaloInvitation,
|
|
95
|
+
useHaloInvitations,
|
|
96
|
+
useIdentity,
|
|
97
|
+
useKeyStore
|
|
98
|
+
};
|
|
99
|
+
//# 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,32 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AgentHostingContext,
|
|
3
|
+
AgentHostingProvider,
|
|
4
|
+
ClientContext,
|
|
5
|
+
ClientProvider,
|
|
6
|
+
useAgentHostingClient,
|
|
7
|
+
useClient,
|
|
8
|
+
useClientStatus,
|
|
9
|
+
useConfig,
|
|
10
|
+
useShell,
|
|
11
|
+
useShellDisplay,
|
|
12
|
+
useStatus
|
|
13
|
+
} from "./chunk-ESSNDYBJ.mjs";
|
|
14
|
+
|
|
15
|
+
// packages/sdk/react-client/src/index.ts
|
|
16
|
+
export * from "@dxos/client";
|
|
17
|
+
import { useMulticastObservable } from "@dxos/react-hooks";
|
|
18
|
+
export {
|
|
19
|
+
AgentHostingContext,
|
|
20
|
+
AgentHostingProvider,
|
|
21
|
+
ClientContext,
|
|
22
|
+
ClientProvider,
|
|
23
|
+
useAgentHostingClient,
|
|
24
|
+
useClient,
|
|
25
|
+
useClientStatus,
|
|
26
|
+
useConfig,
|
|
27
|
+
useMulticastObservable,
|
|
28
|
+
useShell,
|
|
29
|
+
useShellDisplay,
|
|
30
|
+
useStatus
|
|
31
|
+
};
|
|
32
|
+
//# 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,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AuthenticatingInvitationObservable,
|
|
3
|
+
CancellableInvitationObservable,
|
|
4
|
+
Invitation,
|
|
5
|
+
InvitationEncoder,
|
|
6
|
+
InvitationsProxy,
|
|
7
|
+
useInvitationStatus
|
|
8
|
+
} from "../chunk-AL2CUQ46.mjs";
|
|
9
|
+
export {
|
|
10
|
+
AuthenticatingInvitationObservable,
|
|
11
|
+
CancellableInvitationObservable,
|
|
12
|
+
Invitation,
|
|
13
|
+
InvitationEncoder,
|
|
14
|
+
InvitationsProxy,
|
|
15
|
+
useInvitationStatus
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useClient
|
|
3
|
+
} from "../chunk-ESSNDYBJ.mjs";
|
|
4
|
+
|
|
5
|
+
// packages/sdk/react-client/src/mesh/index.ts
|
|
6
|
+
export * from "@dxos/client/mesh";
|
|
7
|
+
|
|
8
|
+
// packages/sdk/react-client/src/mesh/useNetworkStatus.ts
|
|
9
|
+
import { useMulticastObservable } from "@dxos/react-hooks";
|
|
10
|
+
var useNetworkStatus = () => {
|
|
11
|
+
const client = useClient();
|
|
12
|
+
return useMulticastObservable(client.mesh.networkStatus);
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
useNetworkStatus
|
|
16
|
+
};
|
|
17
|
+
//# 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":1332,"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":18455,"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":5775,"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":11301,"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":14269,"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":2284},"packages/sdk/react-client/dist/lib/node-esm/devtools/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-ESSNDYBJ.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":1217},"packages/sdk/react-client/dist/lib/node-esm/echo/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11533},"packages/sdk/react-client/dist/lib/node-esm/echo/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-AL2CUQ46.mjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-ESSNDYBJ.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":1033},"packages/sdk/react-client/src/echo/useSpaceInvitations.ts":{"bytesInOutput":677},"packages/sdk/react-client/src/echo/useSubscription.ts":{"bytesInOutput":519}},"bytes":4474},"packages/sdk/react-client/dist/lib/node-esm/halo/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6286},"packages/sdk/react-client/dist/lib/node-esm/halo/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-AL2CUQ46.mjs","kind":"import-statement"},{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-ESSNDYBJ.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":2731},"packages/sdk/react-client/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":344},"packages/sdk/react-client/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-ESSNDYBJ.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":636},"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-AL2CUQ46.mjs","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-esm/chunk-AL2CUQ46.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11017},"packages/sdk/react-client/dist/lib/node-esm/chunk-AL2CUQ46.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":5243},"packages/sdk/react-client/dist/lib/node-esm/mesh/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":935},"packages/sdk/react-client/dist/lib/node-esm/mesh/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-ESSNDYBJ.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":445},"packages/sdk/react-client/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13638},"packages/sdk/react-client/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/sdk/react-client/dist/lib/node-esm/chunk-ESSNDYBJ.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":2064},"packages/sdk/react-client/src/testing/withClientProvider.tsx":{"bytesInOutput":3311}},"bytes":5761},"packages/sdk/react-client/dist/lib/node-esm/chunk-ESSNDYBJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":19513},"packages/sdk/react-client/dist/lib/node-esm/chunk-ESSNDYBJ.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":4039},"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":9114},"packages/sdk/react-client/dist/lib/node-esm/worker.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":206},"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":116}}}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ClientProvider
|
|
3
|
+
} from "../chunk-ESSNDYBJ.mjs";
|
|
4
|
+
|
|
5
|
+
// packages/sdk/react-client/src/testing/index.ts
|
|
6
|
+
export * from "@dxos/client/testing";
|
|
7
|
+
|
|
8
|
+
// packages/sdk/react-client/src/testing/ClientRepeater.tsx
|
|
9
|
+
import React, { useState, useEffect, useRef } from "react";
|
|
10
|
+
import { Client } from "@dxos/client";
|
|
11
|
+
import { TestBuilder, performInvitation } from "@dxos/client/testing";
|
|
12
|
+
import { registerSignalFactory } from "@dxos/echo-signals/react";
|
|
13
|
+
import { faker } from "@dxos/random";
|
|
14
|
+
var ClientRepeater = (props) => {
|
|
15
|
+
const { component: Component, controls: Controls, count = 1, types, createIdentity, createSpace, onCreateSpace } = props;
|
|
16
|
+
if (props.registerSignalFactory ?? true) {
|
|
17
|
+
registerSignalFactory();
|
|
18
|
+
}
|
|
19
|
+
const [clients, setClients] = useState(props.clients ?? []);
|
|
20
|
+
const [spaceKey, setSpaceKey] = useState();
|
|
21
|
+
const testBuilder = useRef(new TestBuilder());
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const timeout = setTimeout(async () => {
|
|
24
|
+
const clients2 = [
|
|
25
|
+
...Array(count)
|
|
26
|
+
].map((_) => new Client({
|
|
27
|
+
services: testBuilder.current.createLocalClientServices()
|
|
28
|
+
}));
|
|
29
|
+
await Promise.all(clients2.map((client) => client.initialize()));
|
|
30
|
+
types && clients2.map((client) => client.addTypes(types));
|
|
31
|
+
if (createIdentity || createSpace) {
|
|
32
|
+
await Promise.all(clients2.map((client) => client.halo.createIdentity()));
|
|
33
|
+
}
|
|
34
|
+
if (createSpace) {
|
|
35
|
+
const space = await clients2[0].spaces.create({
|
|
36
|
+
name: faker.commerce.productName()
|
|
37
|
+
});
|
|
38
|
+
setSpaceKey(space.key);
|
|
39
|
+
await onCreateSpace?.(space);
|
|
40
|
+
await Promise.all(clients2.slice(1).flatMap((client) => performInvitation({
|
|
41
|
+
host: space,
|
|
42
|
+
guest: client.spaces
|
|
43
|
+
})));
|
|
44
|
+
}
|
|
45
|
+
setClients(clients2);
|
|
46
|
+
});
|
|
47
|
+
return () => clearTimeout(timeout);
|
|
48
|
+
}, []);
|
|
49
|
+
if (clients.length === 0) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, Controls && /* @__PURE__ */ React.createElement(Controls, {
|
|
53
|
+
clients
|
|
54
|
+
}), clients.map((client, index) => /* @__PURE__ */ React.createElement(ClientProvider, {
|
|
55
|
+
key: index,
|
|
56
|
+
client
|
|
57
|
+
}, /* @__PURE__ */ React.createElement(Component, {
|
|
58
|
+
id: index,
|
|
59
|
+
count: clients.length,
|
|
60
|
+
spaceKey,
|
|
61
|
+
...props.args
|
|
62
|
+
}))));
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// packages/sdk/react-client/src/testing/withClientProvider.tsx
|
|
66
|
+
import React2, { useRef as useRef2 } from "react";
|
|
67
|
+
import { ErrorBoundary } from "react-error-boundary";
|
|
68
|
+
import { Trigger } from "@dxos/async";
|
|
69
|
+
import { performInvitation as performInvitation2, TestBuilder as TestBuilder2 } from "@dxos/client/testing";
|
|
70
|
+
var initializeClient = async (client, { createIdentity, createSpace, onSpaceCreated, onInitialized }) => {
|
|
71
|
+
if (createIdentity) {
|
|
72
|
+
await client.halo.createIdentity();
|
|
73
|
+
}
|
|
74
|
+
let space;
|
|
75
|
+
if (createSpace) {
|
|
76
|
+
space = await client.spaces.create({
|
|
77
|
+
name: "Test Space"
|
|
78
|
+
});
|
|
79
|
+
await onSpaceCreated?.(client, space);
|
|
80
|
+
}
|
|
81
|
+
await onInitialized?.(client);
|
|
82
|
+
return space;
|
|
83
|
+
};
|
|
84
|
+
var withClientProvider = ({ createIdentity, createSpace, onSpaceCreated, onInitialized, ...props } = {}) => {
|
|
85
|
+
const handleInitialized = async (client) => {
|
|
86
|
+
await initializeClient(client, {
|
|
87
|
+
createIdentity,
|
|
88
|
+
createSpace,
|
|
89
|
+
onSpaceCreated,
|
|
90
|
+
onInitialized
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
return (Story) => /* @__PURE__ */ React2.createElement(ErrorBoundary, {
|
|
94
|
+
FallbackComponent: ErrorFallback
|
|
95
|
+
}, /* @__PURE__ */ React2.createElement(ClientProvider, {
|
|
96
|
+
onInitialized: handleInitialized,
|
|
97
|
+
...props
|
|
98
|
+
}, /* @__PURE__ */ React2.createElement(Story, null)));
|
|
99
|
+
};
|
|
100
|
+
var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, onSpaceCreated, onInitialized, ...props }) => {
|
|
101
|
+
return (Story) => {
|
|
102
|
+
const builder = useRef2(new TestBuilder2());
|
|
103
|
+
const hostRef = useRef2();
|
|
104
|
+
const spaceReady = useRef2(new Trigger());
|
|
105
|
+
const handleClientInitialized = async (client) => {
|
|
106
|
+
if (createSpace) {
|
|
107
|
+
if (!hostRef.current) {
|
|
108
|
+
hostRef.current = client;
|
|
109
|
+
const space = await initializeClient(client, {
|
|
110
|
+
createIdentity,
|
|
111
|
+
createSpace,
|
|
112
|
+
onSpaceCreated,
|
|
113
|
+
onInitialized
|
|
114
|
+
});
|
|
115
|
+
spaceReady.current.wake(space);
|
|
116
|
+
} else {
|
|
117
|
+
await initializeClient(client, {
|
|
118
|
+
createIdentity,
|
|
119
|
+
onInitialized
|
|
120
|
+
});
|
|
121
|
+
const space = await spaceReady.current.wait();
|
|
122
|
+
if (space) {
|
|
123
|
+
await Promise.all(performInvitation2({
|
|
124
|
+
host: space,
|
|
125
|
+
guest: client.spaces
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, Array.from({
|
|
132
|
+
length: numClients
|
|
133
|
+
}).map((_, index) => /* @__PURE__ */ React2.createElement(ErrorBoundary, {
|
|
134
|
+
key: index,
|
|
135
|
+
FallbackComponent: ErrorFallback
|
|
136
|
+
}, /* @__PURE__ */ React2.createElement(ClientProvider, {
|
|
137
|
+
services: builder.current.createLocalClientServices(),
|
|
138
|
+
onInitialized: handleClientInitialized,
|
|
139
|
+
...props
|
|
140
|
+
}, /* @__PURE__ */ React2.createElement(Story, null)))));
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
var ErrorFallback = ({ error }) => {
|
|
144
|
+
const { name, message, stack } = error instanceof Error ? error : {
|
|
145
|
+
name: "Error",
|
|
146
|
+
message: String(error),
|
|
147
|
+
stack: void 0
|
|
148
|
+
};
|
|
149
|
+
return /* @__PURE__ */ React2.createElement("div", {
|
|
150
|
+
role: "alert",
|
|
151
|
+
className: "flex flex-col gap-4"
|
|
152
|
+
}, /* @__PURE__ */ React2.createElement("h1", {
|
|
153
|
+
className: "text-xl text-red-500"
|
|
154
|
+
}, name), /* @__PURE__ */ React2.createElement("div", {
|
|
155
|
+
className: "text-lg"
|
|
156
|
+
}, message), stack && /* @__PURE__ */ React2.createElement("pre", {
|
|
157
|
+
className: "text-sm text-subdued"
|
|
158
|
+
}, stack));
|
|
159
|
+
};
|
|
160
|
+
export {
|
|
161
|
+
ClientRepeater,
|
|
162
|
+
withClientProvider,
|
|
163
|
+
withMultiClientProvider
|
|
164
|
+
};
|
|
165
|
+
//# 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 React, { useState, type FC, useEffect, useRef } from 'react';\n\nimport { Client, type PublicKey } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { type S } from '@dxos/echo-schema';\nimport { registerSignalFactory } from '@dxos/echo-signals/react';\nimport { faker } from '@dxos/random';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { ClientProvider } from '../client';\n\nexport type ClientRepeatedComponentProps = { id: number; count: number; spaceKey?: PublicKey };\n\nexport type ClientRepeaterProps<P extends ClientRepeatedComponentProps> = {\n className?: string;\n component: FC<ClientRepeatedComponentProps>;\n controls?: FC<{ clients: Client[] }>;\n clients?: Client[];\n count?: number;\n registerSignalFactory?: boolean;\n types?: S.Schema<any>[];\n createIdentity?: boolean;\n createSpace?: boolean;\n onCreateSpace?: (space: Space) => MaybePromise<void>;\n args?: Omit<P, 'id' | 'count'>;\n};\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 */\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 onCreateSpace,\n } = props;\n if (props.registerSignalFactory ?? true) {\n registerSignalFactory();\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() }),\n );\n await Promise.all(clients.map((client) => client.initialize()));\n types && clients.map((client) => client.addTypes(types));\n\n if (createIdentity || createSpace) {\n await Promise.all(clients.map((client) => client.halo.createIdentity()));\n }\n\n if (createSpace) {\n const space = await clients[0].spaces.create({ name: faker.commerce.productName() });\n setSpaceKey(space.key);\n await onCreateSpace?.(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?: (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) {\n await client.halo.createIdentity();\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 const handleInitialized = async (client: Client) => {\n await initializeClient(client, { createIdentity, createSpace, onSpaceCreated, onInitialized });\n };\n\n return (Story) => (\n <ErrorBoundary FallbackComponent={ErrorFallback}>\n <ClientProvider onInitialized={handleInitialized} {...props}>\n <Story />\n </ClientProvider>\n </ErrorBoundary>\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 */\n// TODO(burdon): Create test.\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 handleClientInitialized = 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={handleClientInitialized}\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 gap-4'>\n <h1 className='text-xl text-red-500'>{name}</h1>\n <div className='text-lg'>{message}</div>\n {stack && <pre className='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", "registerSignalFactory", "faker", "ClientRepeater", "props", "component", "Component", "controls", "Controls", "count", "types", "createIdentity", "createSpace", "onCreateSpace", "registerSignalFactory", "clients", "setClients", "useState", "spaceKey", "setSpaceKey", "testBuilder", "useRef", "TestBuilder", "useEffect", "timeout", "setTimeout", "Array", "map", "_", "Client", "services", "current", "createLocalClientServices", "Promise", "all", "client", "initialize", "addTypes", "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", "space", "spaces", "create", "name", "withClientProvider", "props", "handleInitialized", "Story", "React", "ErrorBoundary", "FallbackComponent", "ErrorFallback", "ClientProvider", "withMultiClientProvider", "numClients", "builder", "useRef", "TestBuilder", "hostRef", "spaceReady", "Trigger", "handleClientInitialized", "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
|
+
}
|
|
@@ -9,24 +9,28 @@ import { type ClientContextProps } from './context';
|
|
|
9
9
|
*/
|
|
10
10
|
export type ClientProviderProps = Pick<ClientContextProps, 'status'> & Omit<ClientOptions, 'config' | 'services'> & {
|
|
11
11
|
children?: ReactNode;
|
|
12
|
-
/**
|
|
13
|
-
* Config object or async provider.
|
|
14
|
-
*/
|
|
15
|
-
config?: Config | Provider<Promise<Config>>;
|
|
16
12
|
/**
|
|
17
13
|
* Client object or async provider to enable to caller to do custom initialization.
|
|
18
14
|
*
|
|
19
|
-
*
|
|
15
|
+
* NOTE: For advanced use cases only.
|
|
20
16
|
*/
|
|
21
17
|
client?: Client | Provider<Promise<Client>>;
|
|
18
|
+
/**
|
|
19
|
+
* Config object or async provider.
|
|
20
|
+
*
|
|
21
|
+
* NOTE: If a `client` is provided then `config` is ignored.
|
|
22
|
+
*/
|
|
23
|
+
config?: Config | Provider<Promise<Config>>;
|
|
22
24
|
/**
|
|
23
25
|
* Callback to enable the caller to create a custom ClientServicesProvider.
|
|
24
26
|
*
|
|
25
|
-
*
|
|
27
|
+
* NOTE: If a `client` is provided then `services` is ignored.
|
|
26
28
|
*/
|
|
27
29
|
services?: ClientServicesProvider | ((config?: Config) => MaybePromise<ClientServicesProvider>);
|
|
28
30
|
/**
|
|
29
31
|
* List of schema to register.
|
|
32
|
+
*
|
|
33
|
+
* NOTE: If a `client` is provided then `types` will not be added until after the children are first rendered.
|
|
30
34
|
*/
|
|
31
35
|
types?: S.Schema<any>[];
|
|
32
36
|
/**
|
|
@@ -34,9 +38,15 @@ export type ClientProviderProps = Pick<ClientContextProps, 'status'> & Omit<Clie
|
|
|
34
38
|
*/
|
|
35
39
|
fallback?: FunctionComponent<Partial<ClientContextProps>>;
|
|
36
40
|
/**
|
|
37
|
-
* Set to false to stop default signal
|
|
41
|
+
* Set to false to stop default signal runtime from being registered.
|
|
42
|
+
*
|
|
43
|
+
* The signals runtime is used to provide reactive updates to ECHO objects.
|
|
44
|
+
*/
|
|
45
|
+
registerSignalRuntime?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Skip the DXOS banner print.
|
|
38
48
|
*/
|
|
39
|
-
|
|
49
|
+
disableBanner?: boolean;
|
|
40
50
|
/**
|
|
41
51
|
* Post initialization hook to enable to caller to do custom initialization.
|
|
42
52
|
*
|
|
@@ -48,5 +58,51 @@ export type ClientProviderProps = Pick<ClientContextProps, 'status'> & Omit<Clie
|
|
|
48
58
|
* Root component that provides the DXOS client instance to child components.
|
|
49
59
|
* To be used with the `useClient` hook.
|
|
50
60
|
*/
|
|
51
|
-
export declare const ClientProvider:
|
|
61
|
+
export declare const ClientProvider: React.ForwardRefExoticComponent<Pick<ClientContextProps, "status"> & Omit<ClientOptions, "services" | "config"> & {
|
|
62
|
+
children?: ReactNode;
|
|
63
|
+
/**
|
|
64
|
+
* Client object or async provider to enable to caller to do custom initialization.
|
|
65
|
+
*
|
|
66
|
+
* NOTE: For advanced use cases only.
|
|
67
|
+
*/
|
|
68
|
+
client?: Client | Provider<Promise<Client>>;
|
|
69
|
+
/**
|
|
70
|
+
* Config object or async provider.
|
|
71
|
+
*
|
|
72
|
+
* NOTE: If a `client` is provided then `config` is ignored.
|
|
73
|
+
*/
|
|
74
|
+
config?: Config | Provider<Promise<Config>>;
|
|
75
|
+
/**
|
|
76
|
+
* Callback to enable the caller to create a custom ClientServicesProvider.
|
|
77
|
+
*
|
|
78
|
+
* NOTE: If a `client` is provided then `services` is ignored.
|
|
79
|
+
*/
|
|
80
|
+
services?: ClientServicesProvider | ((config?: Config) => MaybePromise<ClientServicesProvider>);
|
|
81
|
+
/**
|
|
82
|
+
* List of schema to register.
|
|
83
|
+
*
|
|
84
|
+
* NOTE: If a `client` is provided then `types` will not be added until after the children are first rendered.
|
|
85
|
+
*/
|
|
86
|
+
types?: S.Schema<any>[];
|
|
87
|
+
/**
|
|
88
|
+
* ReactNode to display until the client is available.
|
|
89
|
+
*/
|
|
90
|
+
fallback?: FunctionComponent<Partial<ClientContextProps>>;
|
|
91
|
+
/**
|
|
92
|
+
* Set to false to stop default signal runtime from being registered.
|
|
93
|
+
*
|
|
94
|
+
* The signals runtime is used to provide reactive updates to ECHO objects.
|
|
95
|
+
*/
|
|
96
|
+
registerSignalRuntime?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Skip the DXOS banner print.
|
|
99
|
+
*/
|
|
100
|
+
disableBanner?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Post initialization hook to enable to caller to do custom initialization.
|
|
103
|
+
*
|
|
104
|
+
* @param Client
|
|
105
|
+
*/
|
|
106
|
+
onInitialized?: (client: Client) => MaybePromise<void>;
|
|
107
|
+
} & React.RefAttributes<Client | undefined>>;
|
|
52
108
|
//# sourceMappingURL=ClientProvider.d.ts.map
|