@dxos/react-client 0.8.4-main.e098934 → 0.8.4-main.e8ec1fe

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 (57) hide show
  1. package/.storybook/main.mts +11 -0
  2. package/.storybook/preview.mts +8 -0
  3. package/dist/lib/browser/{chunk-BXOLJYAY.mjs → chunk-LO3TU5CK.mjs} +4 -4
  4. package/dist/lib/browser/chunk-LO3TU5CK.mjs.map +7 -0
  5. package/dist/lib/browser/echo/index.mjs +8 -5
  6. package/dist/lib/browser/echo/index.mjs.map +3 -3
  7. package/dist/lib/browser/halo/index.mjs +6 -20
  8. package/dist/lib/browser/halo/index.mjs.map +2 -2
  9. package/dist/lib/browser/invitations/index.mjs +1 -1
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/testing/index.mjs +19 -16
  12. package/dist/lib/browser/testing/index.mjs.map +3 -3
  13. package/dist/lib/node-esm/{chunk-256IHY6F.mjs → chunk-AQJH2UNZ.mjs} +4 -4
  14. package/dist/lib/node-esm/chunk-AQJH2UNZ.mjs.map +7 -0
  15. package/dist/lib/node-esm/echo/index.mjs +8 -5
  16. package/dist/lib/node-esm/echo/index.mjs.map +3 -3
  17. package/dist/lib/node-esm/halo/index.mjs +6 -20
  18. package/dist/lib/node-esm/halo/index.mjs.map +2 -2
  19. package/dist/lib/node-esm/invitations/index.mjs +1 -1
  20. package/dist/lib/node-esm/meta.json +1 -1
  21. package/dist/lib/node-esm/testing/index.mjs +19 -16
  22. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  23. package/dist/types/src/echo/useQuery.d.ts +3 -3
  24. package/dist/types/src/echo/useQuery.d.ts.map +1 -1
  25. package/dist/types/src/echo/useSchema.d.ts +1 -1
  26. package/dist/types/src/echo/useSchema.d.ts.map +1 -1
  27. package/dist/types/src/echo/useSubscription.d.ts +1 -1
  28. package/dist/types/src/echo/useSubscription.d.ts.map +1 -1
  29. package/dist/types/src/halo/Passkey.stories.d.ts +1 -1
  30. package/dist/types/src/halo/Passkey.stories.d.ts.map +1 -1
  31. package/dist/types/src/invitations/useInvitationStatus.d.ts +1 -1
  32. package/dist/types/src/invitations/useInvitationStatus.d.ts.map +1 -1
  33. package/dist/types/src/testing/ClientRepeater.d.ts +2 -2
  34. package/dist/types/src/testing/ClientRepeater.d.ts.map +1 -1
  35. package/dist/types/src/testing/ClientRepeater.stories.d.ts +0 -1
  36. package/dist/types/src/testing/ClientRepeater.stories.d.ts.map +1 -1
  37. package/dist/types/src/testing/withClientProvider.d.ts +5 -6
  38. package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
  39. package/dist/types/src/testing/withClientProvider.stories.d.ts +1 -1
  40. package/dist/types/src/testing/withClientProvider.stories.d.ts.map +1 -1
  41. package/dist/types/tsconfig.tsbuildinfo +1 -1
  42. package/moon.yml +4 -0
  43. package/package.json +30 -31
  44. package/src/echo/useQuery.test.tsx +7 -7
  45. package/src/echo/useQuery.ts +12 -12
  46. package/src/echo/useSchema.ts +2 -2
  47. package/src/echo/useSubscription.ts +1 -1
  48. package/src/halo/Passkey.stories.tsx +11 -14
  49. package/src/invitations/useInvitationStatus.ts +9 -8
  50. package/src/testing/ClientRepeater.stories.tsx +1 -3
  51. package/src/testing/ClientRepeater.tsx +4 -4
  52. package/src/testing/withClientProvider.stories.tsx +12 -9
  53. package/src/testing/withClientProvider.tsx +17 -15
  54. package/tsconfig.json +0 -3
  55. package/vitest.config.ts +12 -16
  56. package/dist/lib/browser/chunk-BXOLJYAY.mjs.map +0 -7
  57. package/dist/lib/node-esm/chunk-256IHY6F.mjs.map +0 -7
@@ -1 +1 @@
1
- {"inputs":{"src/client/AgentHostingProvider.tsx":{"bytes":7107,"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":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/banner.ts":{"bytes":3825,"imports":[],"format":"esm"},"src/client/context.ts":{"bytes":1279,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/client/ClientProvider.tsx":{"bytes":18266,"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":"src/banner.ts","kind":"import-statement","original":"../banner"},{"path":"src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/client/useClient.ts":{"bytes":1643,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/context.ts","kind":"import-statement","original":"../client/context"}],"format":"esm"},"src/client/useClientStatus.ts":{"bytes":1969,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/client/useConfig.ts":{"bytes":1748,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/client/useShell.ts":{"bytes":2332,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/client/useClient.ts","kind":"import-statement","original":"./useClient"}],"format":"esm"},"src/client/useStatus.ts":{"bytes":1464,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/client/index.ts":{"bytes":1150,"imports":[{"path":"src/client/AgentHostingProvider.tsx","kind":"import-statement","original":"./AgentHostingProvider"},{"path":"src/client/ClientProvider.tsx","kind":"import-statement","original":"./ClientProvider"},{"path":"src/client/context.ts","kind":"import-statement","original":"./context"},{"path":"src/client/useClient.ts","kind":"import-statement","original":"./useClient"},{"path":"src/client/useClientStatus.ts","kind":"import-statement","original":"./useClientStatus"},{"path":"src/client/useConfig.ts","kind":"import-statement","original":"./useConfig"},{"path":"src/client/useShell.ts","kind":"import-statement","original":"./useShell"},{"path":"src/client/useStatus.ts","kind":"import-statement","original":"./useStatus"}],"format":"esm"},"src/devtools/useDevtools.ts":{"bytes":1400,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/devtools/useStream.ts":{"bytes":2795,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/devtools/index.ts":{"bytes":680,"imports":[{"path":"@dxos/client/devtools","kind":"import-statement","external":true},{"path":"src/devtools/useDevtools.ts","kind":"import-statement","original":"./useDevtools"},{"path":"src/devtools/useStream.ts","kind":"import-statement","original":"./useStream"}],"format":"esm"},"src/echo/useSpaces.ts":{"bytes":5996,"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":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/echo/useMembers.ts":{"bytes":3144,"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":"src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"}],"format":"esm"},"src/echo/useQuery.ts":{"bytes":5713,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"format":"esm"},"src/echo/useQueue.ts":{"bytes":6369,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/echo/useSchema.ts":{"bytes":4839,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/invitations/useInvitationStatus.ts":{"bytes":20410,"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"},"src/invitations/index.ts":{"bytes":1286,"imports":[{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"src/invitations/useInvitationStatus.ts","kind":"import-statement","original":"./useInvitationStatus"}],"format":"esm"},"src/echo/useSpaceInvitations.ts":{"bytes":3240,"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":"src/invitations/index.ts","kind":"import-statement","original":"../invitations"},{"path":"src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"}],"format":"esm"},"src/echo/useSubscription.ts":{"bytes":3515,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"format":"esm"},"src/echo/useSyncState.ts":{"bytes":7689,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/echo/index.ts":{"bytes":1254,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"src/echo/useMembers.ts","kind":"import-statement","original":"./useMembers"},{"path":"src/echo/useQuery.ts","kind":"import-statement","original":"./useQuery"},{"path":"src/echo/useQueue.ts","kind":"import-statement","original":"./useQueue"},{"path":"src/echo/useSchema.ts","kind":"import-statement","original":"./useSchema"},{"path":"src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"},{"path":"src/echo/useSpaceInvitations.ts","kind":"import-statement","original":"./useSpaceInvitations"},{"path":"src/echo/useSubscription.ts","kind":"import-statement","original":"./useSubscription"},{"path":"src/echo/useSyncState.ts","kind":"import-statement","original":"./useSyncState"}],"format":"esm"},"src/halo/useContacts.ts":{"bytes":1705,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/halo/useCredentials.ts":{"bytes":1344,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/halo/useDevices.ts":{"bytes":1292,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/halo/useHaloInvitations.ts":{"bytes":2724,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"},{"path":"src/invitations/index.ts","kind":"import-statement","original":"../invitations"}],"format":"esm"},"src/halo/useIdentity.ts":{"bytes":1575,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/halo/useKeyStore.ts":{"bytes":4978,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/halo/index.ts":{"bytes":1446,"imports":[{"path":"@dxos/client/halo","kind":"import-statement","external":true},{"path":"src/halo/useContacts.ts","kind":"import-statement","original":"./useContacts"},{"path":"src/halo/useCredentials.ts","kind":"import-statement","original":"./useCredentials"},{"path":"src/halo/useDevices.ts","kind":"import-statement","original":"./useDevices"},{"path":"src/halo/useHaloInvitations.ts","kind":"import-statement","original":"./useHaloInvitations"},{"path":"src/halo/useIdentity.ts","kind":"import-statement","original":"./useIdentity"},{"path":"src/halo/useKeyStore.ts","kind":"import-statement","original":"./useKeyStore"}],"format":"esm"},"src/index.ts":{"bytes":760,"imports":[{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"./client"}],"format":"esm"},"src/mesh/useNetworkStatus.ts":{"bytes":1504,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/mesh/index.ts":{"bytes":588,"imports":[{"path":"@dxos/client/mesh","kind":"import-statement","external":true},{"path":"src/mesh/useNetworkStatus.ts","kind":"import-statement","original":"./useNetworkStatus"}],"format":"esm"},"src/testing/context.tsx":{"bytes":1701,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"src/testing/ClientRepeater.tsx":{"bytes":10980,"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":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/testing/withClientProvider.tsx":{"bytes":21374,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"},{"path":"src/testing/context.tsx","kind":"import-statement","original":"./context"}],"format":"esm"},"src/testing/index.ts":{"bytes":793,"imports":[{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"src/testing/context.tsx","kind":"import-statement","original":"./context"},{"path":"src/testing/ClientRepeater.tsx","kind":"import-statement","original":"./ClientRepeater"},{"path":"src/testing/withClientProvider.tsx","kind":"import-statement","original":"./withClientProvider"}],"format":"esm"},"src/worker.ts":{"bytes":478,"imports":[{"path":"@dxos/client/worker","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/node-esm/devtools/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2292},"dist/lib/node-esm/devtools/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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":"src/devtools/index.ts","inputs":{"src/devtools/index.ts":{"bytesInOutput":39},"src/devtools/useDevtools.ts":{"bytesInOutput":195},"src/devtools/useStream.ts":{"bytesInOutput":677}},"bytes":1218},"dist/lib/node-esm/echo/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":21354},"dist/lib/node-esm/echo/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-256IHY6F.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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/debug","kind":"import-statement","external":true},{"path":"react","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},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"exports":["useMembers","useQuery","useQueue","useSchema","useSpace","useSpaceInvitation","useSpaceInvitations","useSpaceSyncState","useSpaces","useSubscription","useSyncState"],"entryPoint":"src/echo/index.ts","inputs":{"src/echo/index.ts":{"bytesInOutput":35},"src/echo/useMembers.ts":{"bytesInOutput":545},"src/echo/useSpaces.ts":{"bytesInOutput":932},"src/echo/useQuery.ts":{"bytesInOutput":1012},"src/echo/useQueue.ts":{"bytesInOutput":1176},"src/echo/useSchema.ts":{"bytesInOutput":1057},"src/echo/useSpaceInvitations.ts":{"bytesInOutput":677},"src/echo/useSubscription.ts":{"bytesInOutput":532},"src/echo/useSyncState.ts":{"bytesInOutput":1820}},"bytes":8492},"dist/lib/node-esm/halo/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7032},"dist/lib/node-esm/halo/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-256IHY6F.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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":"@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","useCredentials","useDevices","useHaloInvitation","useHaloInvitations","useIdentity","useKeyStore"],"entryPoint":"src/halo/index.ts","inputs":{"src/halo/index.ts":{"bytesInOutput":68},"src/halo/useContacts.ts":{"bytesInOutput":174},"src/halo/useCredentials.ts":{"bytesInOutput":208},"src/halo/useDevices.ts":{"bytesInOutput":200},"src/halo/useHaloInvitations.ts":{"bytesInOutput":521},"src/halo/useIdentity.ts":{"bytesInOutput":202},"src/halo/useKeyStore.ts":{"bytesInOutput":1275}},"bytes":3271},"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":345},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":90}},"bytes":702},"dist/lib/node-esm/invitations/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/invitations/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-256IHY6F.mjs","kind":"import-statement"}],"exports":["AuthenticatingInvitationObservable","CancellableInvitationObservable","Invitation","InvitationEncoder","InvitationsProxy","useInvitationStatus"],"entryPoint":"src/invitations/index.ts","inputs":{},"bytes":480},"dist/lib/node-esm/chunk-256IHY6F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11017},"dist/lib/node-esm/chunk-256IHY6F.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":{"src/invitations/index.ts":{"bytesInOutput":198},"src/invitations/useInvitationStatus.ts":{"bytesInOutput":4665}},"bytes":5271},"dist/lib/node-esm/mesh/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":936},"dist/lib/node-esm/mesh/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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":"src/mesh/index.ts","inputs":{"src/mesh/index.ts":{"bytesInOutput":35},"src/mesh/useNetworkStatus.ts":{"bytesInOutput":184}},"bytes":485},"dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18177},"dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.mjs","kind":"import-statement"},{"path":"@dxos/client/testing","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":"@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":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["ClientRepeater","ClientStory","useClientProvider","useMultiClient","withClientProvider","withMultiClientProvider"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/index.ts":{"bytesInOutput":38},"src/testing/context.tsx":{"bytesInOutput":257},"src/testing/ClientRepeater.tsx":{"bytesInOutput":1994},"src/testing/withClientProvider.tsx":{"bytesInOutput":5430}},"bytes":8163},"dist/lib/node-esm/chunk-ZJMNF7GC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":19450},"dist/lib/node-esm/chunk-ZJMNF7GC.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":{"src/client/AgentHostingProvider.tsx":{"bytesInOutput":1864},"src/client/index.ts":{"bytesInOutput":0},"src/client/ClientProvider.tsx":{"bytesInOutput":4119},"src/banner.ts":{"bytesInOutput":817},"src/client/context.ts":{"bytesInOutput":82},"src/client/useClient.ts":{"bytesInOutput":211},"src/client/useClientStatus.ts":{"bytesInOutput":398},"src/client/useConfig.ts":{"bytesInOutput":245},"src/client/useShell.ts":{"bytesInOutput":377},"src/client/useStatus.ts":{"bytesInOutput":238}},"bytes":9032},"dist/lib/node-esm/worker.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":208},"dist/lib/node-esm/worker.mjs":{"imports":[{"path":"@dxos/client/worker","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/worker.ts","inputs":{"src/worker.ts":{"bytesInOutput":37}},"bytes":183}}}
1
+ {"inputs":{"src/client/AgentHostingProvider.tsx":{"bytes":7107,"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":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/banner.ts":{"bytes":3825,"imports":[],"format":"esm"},"src/client/context.ts":{"bytes":1279,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/client/ClientProvider.tsx":{"bytes":18266,"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":"src/banner.ts","kind":"import-statement","original":"../banner"},{"path":"src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/client/useClient.ts":{"bytes":1643,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/context.ts","kind":"import-statement","original":"../client/context"}],"format":"esm"},"src/client/useClientStatus.ts":{"bytes":1969,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/client/useConfig.ts":{"bytes":1748,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/client/useShell.ts":{"bytes":2332,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/client/useClient.ts","kind":"import-statement","original":"./useClient"}],"format":"esm"},"src/client/useStatus.ts":{"bytes":1464,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/client/index.ts":{"bytes":1150,"imports":[{"path":"src/client/AgentHostingProvider.tsx","kind":"import-statement","original":"./AgentHostingProvider"},{"path":"src/client/ClientProvider.tsx","kind":"import-statement","original":"./ClientProvider"},{"path":"src/client/context.ts","kind":"import-statement","original":"./context"},{"path":"src/client/useClient.ts","kind":"import-statement","original":"./useClient"},{"path":"src/client/useClientStatus.ts","kind":"import-statement","original":"./useClientStatus"},{"path":"src/client/useConfig.ts","kind":"import-statement","original":"./useConfig"},{"path":"src/client/useShell.ts","kind":"import-statement","original":"./useShell"},{"path":"src/client/useStatus.ts","kind":"import-statement","original":"./useStatus"}],"format":"esm"},"src/devtools/useDevtools.ts":{"bytes":1400,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/devtools/useStream.ts":{"bytes":2795,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/devtools/index.ts":{"bytes":680,"imports":[{"path":"@dxos/client/devtools","kind":"import-statement","external":true},{"path":"src/devtools/useDevtools.ts","kind":"import-statement","original":"./useDevtools"},{"path":"src/devtools/useStream.ts","kind":"import-statement","original":"./useStream"}],"format":"esm"},"src/echo/useSpaces.ts":{"bytes":5996,"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":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/echo/useMembers.ts":{"bytes":3144,"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":"src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"}],"format":"esm"},"src/echo/useQuery.ts":{"bytes":5933,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"format":"esm"},"src/echo/useQueue.ts":{"bytes":6370,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/echo/useSchema.ts":{"bytes":4851,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/invitations/useInvitationStatus.ts":{"bytes":20448,"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"},"src/invitations/index.ts":{"bytes":1286,"imports":[{"path":"@dxos/client/invitations","kind":"import-statement","external":true},{"path":"src/invitations/useInvitationStatus.ts","kind":"import-statement","original":"./useInvitationStatus"}],"format":"esm"},"src/echo/useSpaceInvitations.ts":{"bytes":3240,"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":"src/invitations/index.ts","kind":"import-statement","original":"../invitations"},{"path":"src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"}],"format":"esm"},"src/echo/useSubscription.ts":{"bytes":3535,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true}],"format":"esm"},"src/echo/useSyncState.ts":{"bytes":7689,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/echo/index.ts":{"bytes":1254,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"src/echo/useMembers.ts","kind":"import-statement","original":"./useMembers"},{"path":"src/echo/useQuery.ts","kind":"import-statement","original":"./useQuery"},{"path":"src/echo/useQueue.ts","kind":"import-statement","original":"./useQueue"},{"path":"src/echo/useSchema.ts","kind":"import-statement","original":"./useSchema"},{"path":"src/echo/useSpaces.ts","kind":"import-statement","original":"./useSpaces"},{"path":"src/echo/useSpaceInvitations.ts","kind":"import-statement","original":"./useSpaceInvitations"},{"path":"src/echo/useSubscription.ts","kind":"import-statement","original":"./useSubscription"},{"path":"src/echo/useSyncState.ts","kind":"import-statement","original":"./useSyncState"}],"format":"esm"},"src/halo/useContacts.ts":{"bytes":1705,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/halo/useCredentials.ts":{"bytes":1344,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/halo/useDevices.ts":{"bytes":1292,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/halo/useHaloInvitations.ts":{"bytes":2724,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"},{"path":"src/invitations/index.ts","kind":"import-statement","original":"../invitations"}],"format":"esm"},"src/halo/useIdentity.ts":{"bytes":1575,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/halo/useKeyStore.ts":{"bytes":4537,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/halo/index.ts":{"bytes":1446,"imports":[{"path":"@dxos/client/halo","kind":"import-statement","external":true},{"path":"src/halo/useContacts.ts","kind":"import-statement","original":"./useContacts"},{"path":"src/halo/useCredentials.ts","kind":"import-statement","original":"./useCredentials"},{"path":"src/halo/useDevices.ts","kind":"import-statement","original":"./useDevices"},{"path":"src/halo/useHaloInvitations.ts","kind":"import-statement","original":"./useHaloInvitations"},{"path":"src/halo/useIdentity.ts","kind":"import-statement","original":"./useIdentity"},{"path":"src/halo/useKeyStore.ts","kind":"import-statement","original":"./useKeyStore"}],"format":"esm"},"src/index.ts":{"bytes":760,"imports":[{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"./client"}],"format":"esm"},"src/mesh/useNetworkStatus.ts":{"bytes":1504,"imports":[{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/mesh/index.ts":{"bytes":588,"imports":[{"path":"@dxos/client/mesh","kind":"import-statement","external":true},{"path":"src/mesh/useNetworkStatus.ts","kind":"import-statement","original":"./useNetworkStatus"}],"format":"esm"},"src/testing/context.tsx":{"bytes":1701,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"src/testing/ClientRepeater.tsx":{"bytes":10974,"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":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"}],"format":"esm"},"src/testing/withClientProvider.tsx":{"bytes":21894,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/client/index.ts","kind":"import-statement","original":"../client"},{"path":"src/testing/context.tsx","kind":"import-statement","original":"./context"}],"format":"esm"},"src/testing/index.ts":{"bytes":793,"imports":[{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"src/testing/context.tsx","kind":"import-statement","original":"./context"},{"path":"src/testing/ClientRepeater.tsx","kind":"import-statement","original":"./ClientRepeater"},{"path":"src/testing/withClientProvider.tsx","kind":"import-statement","original":"./withClientProvider"}],"format":"esm"},"src/worker.ts":{"bytes":478,"imports":[{"path":"@dxos/client/worker","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/node-esm/devtools/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2292},"dist/lib/node-esm/devtools/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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":"src/devtools/index.ts","inputs":{"src/devtools/index.ts":{"bytesInOutput":39},"src/devtools/useDevtools.ts":{"bytesInOutput":195},"src/devtools/useStream.ts":{"bytesInOutput":677}},"bytes":1218},"dist/lib/node-esm/echo/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":21435},"dist/lib/node-esm/echo/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-AQJH2UNZ.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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/debug","kind":"import-statement","external":true},{"path":"react","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},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true}],"exports":["useMembers","useQuery","useQueue","useSchema","useSpace","useSpaceInvitation","useSpaceInvitations","useSpaceSyncState","useSpaces","useSubscription","useSyncState"],"entryPoint":"src/echo/index.ts","inputs":{"src/echo/index.ts":{"bytesInOutput":35},"src/echo/useMembers.ts":{"bytesInOutput":545},"src/echo/useSpaces.ts":{"bytesInOutput":932},"src/echo/useQuery.ts":{"bytesInOutput":1015},"src/echo/useQueue.ts":{"bytesInOutput":1176},"src/echo/useSchema.ts":{"bytesInOutput":1057},"src/echo/useSpaceInvitations.ts":{"bytesInOutput":677},"src/echo/useSubscription.ts":{"bytesInOutput":536},"src/echo/useSyncState.ts":{"bytesInOutput":1820}},"bytes":8499},"dist/lib/node-esm/halo/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6989},"dist/lib/node-esm/halo/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-AQJH2UNZ.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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":"@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","useCredentials","useDevices","useHaloInvitation","useHaloInvitations","useIdentity","useKeyStore"],"entryPoint":"src/halo/index.ts","inputs":{"src/halo/index.ts":{"bytesInOutput":68},"src/halo/useContacts.ts":{"bytesInOutput":174},"src/halo/useCredentials.ts":{"bytesInOutput":208},"src/halo/useDevices.ts":{"bytesInOutput":200},"src/halo/useHaloInvitations.ts":{"bytesInOutput":521},"src/halo/useIdentity.ts":{"bytesInOutput":202},"src/halo/useKeyStore.ts":{"bytesInOutput":937}},"bytes":2933},"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":345},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":90}},"bytes":702},"dist/lib/node-esm/invitations/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/invitations/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-AQJH2UNZ.mjs","kind":"import-statement"}],"exports":["AuthenticatingInvitationObservable","CancellableInvitationObservable","Invitation","InvitationEncoder","InvitationsProxy","useInvitationStatus"],"entryPoint":"src/invitations/index.ts","inputs":{},"bytes":480},"dist/lib/node-esm/chunk-AQJH2UNZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11045},"dist/lib/node-esm/chunk-AQJH2UNZ.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":{"src/invitations/index.ts":{"bytesInOutput":198},"src/invitations/useInvitationStatus.ts":{"bytesInOutput":4667}},"bytes":5273},"dist/lib/node-esm/mesh/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":936},"dist/lib/node-esm/mesh/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.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":"src/mesh/index.ts","inputs":{"src/mesh/index.ts":{"bytesInOutput":35},"src/mesh/useNetworkStatus.ts":{"bytesInOutput":184}},"bytes":485},"dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18438},"dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-ZJMNF7GC.mjs","kind":"import-statement"},{"path":"@dxos/client/testing","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":"@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":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["ClientRepeater","ClientStory","useClientProvider","useMultiClient","withClientProvider","withMultiClientProvider"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/index.ts":{"bytesInOutput":38},"src/testing/context.tsx":{"bytesInOutput":257},"src/testing/ClientRepeater.tsx":{"bytesInOutput":1992},"src/testing/withClientProvider.tsx":{"bytesInOutput":5561}},"bytes":8292},"dist/lib/node-esm/chunk-ZJMNF7GC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":19450},"dist/lib/node-esm/chunk-ZJMNF7GC.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":{"src/client/AgentHostingProvider.tsx":{"bytesInOutput":1864},"src/client/index.ts":{"bytesInOutput":0},"src/client/ClientProvider.tsx":{"bytesInOutput":4119},"src/banner.ts":{"bytesInOutput":817},"src/client/context.ts":{"bytesInOutput":82},"src/client/useClient.ts":{"bytesInOutput":211},"src/client/useClientStatus.ts":{"bytesInOutput":398},"src/client/useConfig.ts":{"bytesInOutput":245},"src/client/useShell.ts":{"bytesInOutput":377},"src/client/useStatus.ts":{"bytesInOutput":238}},"bytes":9032},"dist/lib/node-esm/worker.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":208},"dist/lib/node-esm/worker.mjs":{"imports":[{"path":"@dxos/client/worker","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/worker.ts","inputs":{"src/worker.ts":{"bytesInOutput":37}},"bytes":183}}}
@@ -22,7 +22,7 @@ import { registerSignalsRuntime } from "@dxos/echo-signals/react";
22
22
  import { faker } from "@dxos/random";
23
23
  import { useAsyncEffect } from "@dxos/react-hooks";
24
24
  var ClientRepeater = (props) => {
25
- const { component: Component, controls: Controls, count = 1, types, createIdentity, createSpace, onSpaceCreated } = props;
25
+ const { component: Component, controls: Controls, count = 1, types, createIdentity, createSpace, onCreateSpace } = props;
26
26
  useEffect(() => {
27
27
  registerSignalsRuntime();
28
28
  }, []);
@@ -46,7 +46,7 @@ var ClientRepeater = (props) => {
46
46
  name: faker.commerce.productName()
47
47
  });
48
48
  setSpaceKey(space.key);
49
- await onSpaceCreated?.({
49
+ await onCreateSpace?.({
50
50
  client,
51
51
  space
52
52
  }, {});
@@ -80,14 +80,16 @@ import { Trigger } from "@dxos/async";
80
80
  import { TestBuilder as TestBuilder2, performInvitation as performInvitation2 } from "@dxos/client/testing";
81
81
  import { log } from "@dxos/log";
82
82
  var __dxlog_file = "/__w/dxos/dxos/packages/sdk/react-client/src/testing/withClientProvider.tsx";
83
- var initializeClient = async (client, { createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized }, context) => {
83
+ var initializeClient = async (client, { createIdentity, createSpace, onCreateIdentity, onCreateSpace, onInitialized }, context) => {
84
84
  await onInitialized?.(client);
85
85
  if (createIdentity || createSpace) {
86
86
  if (!client.halo.identity.get()) {
87
87
  await client.halo.createIdentity();
88
- await onIdentityCreated?.({
88
+ await client.spaces.waitUntilReady();
89
+ await client.spaces.default.waitUntilReady();
90
+ await onCreateIdentity?.({
89
91
  client
90
- });
92
+ }, context);
91
93
  }
92
94
  }
93
95
  let space;
@@ -95,7 +97,8 @@ var initializeClient = async (client, { createIdentity, createSpace, onSpaceCrea
95
97
  space = await client.spaces.create({
96
98
  name: "Test Space"
97
99
  });
98
- await onSpaceCreated?.({
100
+ await space.waitUntilReady();
101
+ await onCreateSpace?.({
99
102
  client,
100
103
  space
101
104
  }, context);
@@ -104,15 +107,15 @@ var initializeClient = async (client, { createIdentity, createSpace, onSpaceCrea
104
107
  space
105
108
  };
106
109
  };
107
- var withClientProvider = ({ createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized, ...props } = {}) => {
110
+ var withClientProvider = ({ createIdentity, createSpace, onCreateSpace, onCreateIdentity, onInitialized, ...props } = {}) => {
108
111
  return (Story, context) => {
109
112
  const [data, setData] = useState2({});
110
113
  const handleInitialized = async (client) => {
111
114
  const data2 = await initializeClient(client, {
112
115
  createIdentity,
113
116
  createSpace,
114
- onSpaceCreated,
115
- onIdentityCreated,
117
+ onCreateSpace,
118
+ onCreateIdentity,
116
119
  onInitialized
117
120
  }, context);
118
121
  setData(data2);
@@ -129,17 +132,17 @@ var MultiClientContext = /* @__PURE__ */ createContext2({
129
132
  id: 0
130
133
  });
131
134
  var useMultiClient = () => useContext2(MultiClientContext);
132
- var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized, ...props }) => {
135
+ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, onCreateSpace, onCreateIdentity, onInitialized, ...props }) => {
133
136
  return (Story, context) => {
134
137
  const builder = useRef2(new TestBuilder2());
135
- const hostRef = useRef2();
138
+ const hostRef = useRef2(null);
136
139
  const spaceReady = useRef2(new Trigger());
137
140
  const handleInitialized = async (client, index) => {
138
141
  log.info("initialized", {
139
142
  index
140
143
  }, {
141
144
  F: __dxlog_file,
142
- L: 130,
145
+ L: 132,
143
146
  S: void 0,
144
147
  C: (f, a) => f(...a)
145
148
  });
@@ -149,8 +152,8 @@ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, on
149
152
  const { space } = await initializeClient(client, {
150
153
  createIdentity,
151
154
  createSpace,
152
- onSpaceCreated,
153
- onIdentityCreated,
155
+ onCreateSpace,
156
+ onCreateIdentity,
154
157
  onInitialized
155
158
  }, context);
156
159
  spaceReady.current.wake(space);
@@ -158,7 +161,7 @@ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, on
158
161
  index
159
162
  }, {
160
163
  F: __dxlog_file,
161
- L: 147,
164
+ L: 149,
162
165
  S: void 0,
163
166
  C: (f, a) => f(...a)
164
167
  });
@@ -173,7 +176,7 @@ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, on
173
176
  index
174
177
  }, {
175
178
  F: __dxlog_file,
176
- L: 152,
179
+ L: 154,
177
180
  S: void 0,
178
181
  C: (f, a) => f(...a)
179
182
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/index.ts", "../../../../src/testing/context.tsx", "../../../../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 './context';\nexport * from './ClientRepeater';\nexport * from './withClientProvider';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { type Space } from '@dxos/client/echo';\nimport { raise } from '@dxos/debug';\n\nexport type ClientStory = {\n space?: Space;\n};\n\n// TODO(wittjosiah): Add to multi-client as well.\nexport const ClientStory = createContext<ClientStory | undefined>(undefined);\n\nexport const useClientProvider = (): ClientStory => {\n return useContext(ClientStory) ?? raise(new Error('Missing ClientStory'));\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport React, { type FC, useEffect, useRef, useState } from 'react';\n\nimport { Client, type PublicKey } from '@dxos/client';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { type TypedObject } from '@dxos/echo-schema';\nimport { registerSignalsRuntime } from '@dxos/echo-signals/react';\nimport { faker } from '@dxos/random';\nimport { useAsyncEffect } from '@dxos/react-hooks';\n\nimport { ClientProvider } from '../client';\n\nimport { type WithClientProviderProps } from './withClientProvider';\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?: TypedObject[];\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 useAsyncEffect(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(clients.slice(1).flatMap((client) => performInvitation({ host: space, guest: client.spaces })));\n }\n\n setClients(clients);\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, type StoryContext } from '@storybook/react';\nimport React, { type PropsWithChildren, createContext, useContext, useEffect, useRef, useState } from 'react';\nimport { type FallbackProps, ErrorBoundary as NaturalErrorBoundary } from 'react-error-boundary';\n\nimport { Trigger } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { log } from '@dxos/log';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { ClientProvider, type ClientProviderProps } from '../client';\n\nimport { ClientStory } from './context';\n\ntype InitializeProps = {\n createIdentity?: boolean;\n createSpace?: boolean;\n onInitialized?: (client: Client) => MaybePromise<void>;\n onIdentityCreated?: (props: { client: Client }) => MaybePromise<void>;\n // NOTE: context must be untyped until ClientRepeater is removed.\n onSpaceCreated?: (props: { client: Client; space: Space }, context: StoryContext | any) => MaybePromise<void>;\n};\n\n/**\n * Initialize client, identity and first space.\n */\nconst initializeClient = async (\n client: Client,\n { createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized }: InitializeProps,\n context: StoryContext,\n): Promise<ClientStory> => {\n await onInitialized?.(client);\n\n if (createIdentity || createSpace) {\n if (!client.halo.identity.get()) {\n await client.halo.createIdentity();\n await onIdentityCreated?.({ client });\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 }, context);\n }\n\n return { space };\n};\n\nexport type WithClientProviderProps = InitializeProps & Omit<ClientProviderProps, 'onInitialized'>;\n\n/**\n * Decorator that provides the client context.\n */\nexport const withClientProvider = ({\n createIdentity,\n createSpace,\n onSpaceCreated,\n onIdentityCreated,\n onInitialized,\n ...props\n}: WithClientProviderProps = {}): Decorator => {\n return (Story, context) => {\n const [data, setData] = useState<ClientStory>({});\n const handleInitialized = async (client: Client) => {\n const data = await initializeClient(\n client,\n {\n createIdentity,\n createSpace,\n onSpaceCreated,\n onIdentityCreated,\n onInitialized,\n },\n context,\n );\n\n setData(data);\n };\n\n return (\n <ErrorBoundary>\n <ClientProvider onInitialized={handleInitialized} {...props}>\n <ClientStory.Provider value={data}>\n <Story />\n </ClientStory.Provider>\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 &\n Omit<ClientProviderProps, 'onInitialized'> & { numClients?: number };\n\nconst MultiClientContext = createContext<{ id: number }>({ id: 0 });\n\nexport const useMultiClient = () => useContext(MultiClientContext);\n\n/**\n * Decorator that creates a scaffold for multiple clients.\n * Orchestrates invitations between a randomly selected host and the remaining clients.\n * NOTE: Should come before withLayout.\n */\nexport const withMultiClientProvider = ({\n numClients = 2,\n createIdentity,\n createSpace,\n onSpaceCreated,\n onIdentityCreated,\n onInitialized,\n ...props\n}: WithMultiClientProviderProps): Decorator => {\n return (Story, context) => {\n const builder = useRef(new TestBuilder());\n const hostRef = useRef<Client>();\n const spaceReady = useRef(new Trigger<Space | undefined>());\n\n // Handle invitations.\n // NOTE: The zeroth client isn't necessarily the first to be initialized.\n const handleInitialized = async (client: Client, index: number) => {\n log.info('initialized', { index });\n if (createSpace) {\n if (!hostRef.current) {\n hostRef.current = client;\n const { space } = await initializeClient(\n client,\n {\n createIdentity,\n createSpace,\n onSpaceCreated,\n onIdentityCreated,\n onInitialized,\n },\n context,\n );\n\n spaceReady.current.wake(space);\n log.info('inviting', { index });\n } else {\n await initializeClient(client, { createIdentity, onInitialized }, context);\n const space = await spaceReady.current.wait();\n if (space) {\n log.info('joining', { index });\n await Promise.all(performInvitation({ host: space, guest: client.spaces }));\n }\n }\n }\n };\n\n return (\n <ErrorBoundary>\n {Array.from({ length: numClients }).map((_, index) => (\n <MultiClientContext.Provider key={index} value={{ id: index }}>\n <ClientProvider\n services={builder.current.createLocalClientServices()}\n onInitialized={(client) => handleInitialized(client, index)}\n {...props}\n >\n <Story />\n </ClientProvider>\n </MultiClientContext.Provider>\n ))}\n </ErrorBoundary>\n );\n };\n};\n\nconst ErrorBoundary = ({ children }: PropsWithChildren) => {\n const [error, setError] = useState<Error>();\n useEffect(() => {\n const handleError = (event: PromiseRejectionEvent) => {\n setError(event.reason);\n };\n\n window.addEventListener('unhandledrejection', handleError);\n return () => window.removeEventListener('unhandledrejection', handleError);\n }, []);\n\n if (error) {\n return <ErrorFallback error={error} resetErrorBoundary={() => setError(undefined)} />;\n }\n\n return <NaturalErrorBoundary FallbackComponent={ErrorFallback}>{children}</NaturalErrorBoundary>;\n};\n\nconst ErrorFallback = ({ error }: FallbackProps) => {\n const { name, message, stack } =\n error instanceof Error ? error : { name: 'Error', message: String(error), stack: undefined };\n return (\n <div role='alert' className='flex flex-col p-4 gap-4 overflow-auto'>\n <h1 className='text-xl text-red-500'>{name}</h1>\n <div className='text-lg'>{message}</div>\n {stack && <pre className='whitespace-pre-wrap text-sm text-subdued'>{stack}</pre>}\n </div>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["createContext", "useContext", "raise", "ClientStory", "createContext", "undefined", "useClientProvider", "useContext", "raise", "Error", "React", "useEffect", "useRef", "useState", "Client", "TestBuilder", "performInvitation", "registerSignalsRuntime", "faker", "useAsyncEffect", "ClientRepeater", "props", "component", "Component", "controls", "Controls", "count", "types", "createIdentity", "createSpace", "onSpaceCreated", "useEffect", "registerSignalsRuntime", "clients", "setClients", "useState", "spaceKey", "setSpaceKey", "testBuilder", "useRef", "TestBuilder", "useAsyncEffect", "Array", "map", "_", "Client", "services", "current", "createLocalClientServices", "Promise", "all", "client", "initialize", "halo", "space", "spaces", "create", "name", "faker", "commerce", "productName", "key", "slice", "flatMap", "performInvitation", "host", "guest", "length", "index", "ClientProvider", "id", "args", "React", "createContext", "useContext", "useEffect", "useRef", "useState", "ErrorBoundary", "NaturalErrorBoundary", "Trigger", "TestBuilder", "performInvitation", "log", "initializeClient", "client", "createIdentity", "createSpace", "onSpaceCreated", "onIdentityCreated", "onInitialized", "context", "halo", "identity", "get", "space", "spaces", "create", "name", "withClientProvider", "props", "Story", "data", "setData", "useState", "handleInitialized", "React", "ErrorBoundary", "ClientProvider", "ClientStory", "Provider", "value", "MultiClientContext", "createContext", "id", "useMultiClient", "useContext", "withMultiClientProvider", "numClients", "builder", "useRef", "TestBuilder", "hostRef", "spaceReady", "Trigger", "index", "log", "info", "current", "wake", "wait", "Promise", "all", "performInvitation", "host", "guest", "Array", "from", "length", "map", "_", "key", "services", "createLocalClientServices", "children", "error", "setError", "useEffect", "handleError", "event", "reason", "window", "addEventListener", "removeEventListener", "ErrorFallback", "resetErrorBoundary", "undefined", "NaturalErrorBoundary", "FallbackComponent", "message", "stack", "Error", "String", "div", "role", "className", "h1", "pre"]
4
+ "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from '@dxos/client/testing';\n\nexport * from './context';\nexport * from './ClientRepeater';\nexport * from './withClientProvider';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { type Space } from '@dxos/client/echo';\nimport { raise } from '@dxos/debug';\n\nexport type ClientStory = {\n space?: Space;\n};\n\n// TODO(wittjosiah): Add to multi-client as well.\nexport const ClientStory = createContext<ClientStory | undefined>(undefined);\n\nexport const useClientProvider = (): ClientStory => {\n return useContext(ClientStory) ?? raise(new Error('Missing ClientStory'));\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport React, { type FC, useEffect, useRef, useState } from 'react';\n\nimport { Client, type PublicKey } from '@dxos/client';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { type TypedObject } from '@dxos/echo/internal';\nimport { registerSignalsRuntime } from '@dxos/echo-signals/react';\nimport { faker } from '@dxos/random';\nimport { useAsyncEffect } from '@dxos/react-hooks';\n\nimport { ClientProvider } from '../client';\n\nimport { type WithClientProviderProps } from './withClientProvider';\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?: TypedObject[];\n args?: Omit<P, 'id' | 'count'>;\n} & Pick<WithClientProviderProps, 'createIdentity' | 'createSpace' | 'onCreateSpace'>;\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 onCreateSpace,\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 useAsyncEffect(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 onCreateSpace?.({ client, space }, {});\n await Promise.all(clients.slice(1).flatMap((client) => performInvitation({ host: space, guest: client.spaces })));\n }\n\n setClients(clients);\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, type StoryContext } from '@storybook/react';\nimport React, { type PropsWithChildren, createContext, useContext, useEffect, useRef, useState } from 'react';\nimport { type FallbackProps, ErrorBoundary as NaturalErrorBoundary } from 'react-error-boundary';\n\nimport { Trigger } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { log } from '@dxos/log';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { ClientProvider, type ClientProviderProps } from '../client';\n\nimport { ClientStory } from './context';\n\ntype InitializeProps = {\n createIdentity?: boolean;\n createSpace?: boolean;\n onInitialized?: (client: Client) => MaybePromise<void>;\n onCreateIdentity?: (props: { client: Client }, context: StoryContext | any) => MaybePromise<void>;\n // NOTE: context must be untyped until ClientRepeater is removed.\n onCreateSpace?: (props: { client: Client; space: Space }, context: StoryContext | any) => MaybePromise<void>;\n};\n\n/**\n * Initialize client, identity and first space.\n */\nconst initializeClient = async (\n client: Client,\n { createIdentity, createSpace, onCreateIdentity, onCreateSpace, onInitialized }: InitializeProps,\n context: StoryContext,\n): Promise<ClientStory> => {\n await onInitialized?.(client);\n\n if (createIdentity || createSpace) {\n if (!client.halo.identity.get()) {\n await client.halo.createIdentity();\n await client.spaces.waitUntilReady();\n await client.spaces.default.waitUntilReady();\n await onCreateIdentity?.({ client }, context);\n }\n }\n\n let space: Space | undefined;\n if (createSpace) {\n space = await client.spaces.create({ name: 'Test Space' });\n await space.waitUntilReady(); // Is this required?\n await onCreateSpace?.({ client, space }, context);\n }\n\n return { space };\n};\n\nexport type WithClientProviderProps = InitializeProps & Omit<ClientProviderProps, 'onInitialized'>;\n\n/**\n * Decorator that provides the client context.\n */\nexport const withClientProvider = ({\n createIdentity,\n createSpace,\n onCreateSpace,\n onCreateIdentity,\n onInitialized,\n ...props\n}: WithClientProviderProps = {}): Decorator => {\n return (Story, context) => {\n const [data, setData] = useState<ClientStory>({});\n const handleInitialized = async (client: Client) => {\n const data = await initializeClient(\n client,\n {\n createIdentity,\n createSpace,\n onCreateSpace,\n onCreateIdentity,\n onInitialized,\n },\n context,\n );\n\n setData(data);\n };\n\n return (\n <ErrorBoundary>\n <ClientProvider onInitialized={handleInitialized} {...props}>\n <ClientStory.Provider value={data}>\n <Story />\n </ClientStory.Provider>\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 &\n Omit<ClientProviderProps, 'onInitialized'> & { numClients?: number };\n\nconst MultiClientContext = createContext<{ id: number }>({ id: 0 });\n\nexport const useMultiClient = () => useContext(MultiClientContext);\n\n/**\n * Decorator that creates a scaffold for multiple clients.\n * Orchestrates invitations between a randomly selected host and the remaining clients.\n */\nexport const withMultiClientProvider = ({\n numClients = 2,\n createIdentity,\n createSpace,\n onCreateSpace,\n onCreateIdentity,\n onInitialized,\n ...props\n}: WithMultiClientProviderProps): Decorator => {\n return (Story, context) => {\n const builder = useRef(new TestBuilder());\n const hostRef = useRef<Client>(null);\n const spaceReady = useRef(new Trigger<Space | undefined>());\n\n // Handle invitations.\n // NOTE: The zeroth client isn't necessarily the first to be initialized.\n const handleInitialized = async (client: Client, index: number) => {\n log.info('initialized', { index });\n if (createSpace) {\n if (!hostRef.current) {\n hostRef.current = client;\n const { space } = await initializeClient(\n client,\n {\n createIdentity,\n createSpace,\n onCreateSpace,\n onCreateIdentity,\n onInitialized,\n },\n context,\n );\n\n spaceReady.current.wake(space);\n log.info('inviting', { index });\n } else {\n await initializeClient(client, { createIdentity, onInitialized }, context);\n const space = await spaceReady.current.wait();\n if (space) {\n log.info('joining', { index });\n await Promise.all(performInvitation({ host: space, guest: client.spaces }));\n }\n }\n }\n };\n\n return (\n <ErrorBoundary>\n {Array.from({ length: numClients }).map((_, index) => (\n <MultiClientContext.Provider key={index} value={{ id: index }}>\n <ClientProvider\n services={builder.current.createLocalClientServices()}\n onInitialized={(client) => handleInitialized(client, index)}\n {...props}\n >\n <Story />\n </ClientProvider>\n </MultiClientContext.Provider>\n ))}\n </ErrorBoundary>\n );\n };\n};\n\nconst ErrorBoundary = ({ children }: PropsWithChildren) => {\n const [error, setError] = useState<Error>();\n useEffect(() => {\n const handleError = (event: PromiseRejectionEvent) => {\n setError(event.reason);\n };\n\n window.addEventListener('unhandledrejection', handleError);\n return () => window.removeEventListener('unhandledrejection', handleError);\n }, []);\n\n if (error) {\n return <ErrorFallback error={error} resetErrorBoundary={() => setError(undefined)} />;\n }\n\n return <NaturalErrorBoundary FallbackComponent={ErrorFallback}>{children}</NaturalErrorBoundary>;\n};\n\nconst ErrorFallback = ({ error }: FallbackProps) => {\n const { name, message, stack } =\n error instanceof Error ? error : { name: 'Error', message: String(error), stack: undefined };\n return (\n <div role='alert' className='flex flex-col p-4 gap-4 overflow-auto'>\n <h1 className='text-xl text-red-500'>{name}</h1>\n <div className='text-lg'>{message}</div>\n {stack && <pre className='whitespace-pre-wrap text-sm text-subdued'>{stack}</pre>}\n </div>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["createContext", "useContext", "raise", "ClientStory", "createContext", "undefined", "useClientProvider", "useContext", "raise", "Error", "React", "useEffect", "useRef", "useState", "Client", "TestBuilder", "performInvitation", "registerSignalsRuntime", "faker", "useAsyncEffect", "ClientRepeater", "props", "component", "Component", "controls", "Controls", "count", "types", "createIdentity", "createSpace", "onCreateSpace", "useEffect", "registerSignalsRuntime", "clients", "setClients", "useState", "spaceKey", "setSpaceKey", "testBuilder", "useRef", "TestBuilder", "useAsyncEffect", "Array", "map", "_", "Client", "services", "current", "createLocalClientServices", "Promise", "all", "client", "initialize", "halo", "space", "spaces", "create", "name", "faker", "commerce", "productName", "key", "slice", "flatMap", "performInvitation", "host", "guest", "length", "index", "ClientProvider", "id", "args", "React", "createContext", "useContext", "useEffect", "useRef", "useState", "ErrorBoundary", "NaturalErrorBoundary", "Trigger", "TestBuilder", "performInvitation", "log", "initializeClient", "client", "createIdentity", "createSpace", "onCreateIdentity", "onCreateSpace", "onInitialized", "context", "halo", "identity", "get", "spaces", "waitUntilReady", "default", "space", "create", "name", "withClientProvider", "props", "Story", "data", "setData", "useState", "handleInitialized", "React", "ErrorBoundary", "ClientProvider", "ClientStory", "Provider", "value", "MultiClientContext", "createContext", "id", "useMultiClient", "useContext", "withMultiClientProvider", "numClients", "builder", "useRef", "TestBuilder", "hostRef", "spaceReady", "Trigger", "index", "log", "info", "current", "wake", "wait", "Promise", "all", "performInvitation", "host", "guest", "Array", "from", "length", "map", "_", "key", "services", "createLocalClientServices", "children", "error", "setError", "useEffect", "handleError", "event", "reason", "window", "addEventListener", "removeEventListener", "ErrorFallback", "resetErrorBoundary", "undefined", "NaturalErrorBoundary", "FallbackComponent", "message", "stack", "Error", "String", "div", "role", "className", "h1", "pre"]
7
7
  }
@@ -1,7 +1,7 @@
1
- import { type Echo, Filter, type Live, Query, type Queue, type Space } from '@dxos/client/echo';
1
+ import { type Echo, Filter, type Live, Query, type Queryable, type Space } from '@dxos/client/echo';
2
2
  interface UseQueryFn {
3
- <Q extends Query.Any>(spaceOrEcho: Space | Echo | Queue<any> | undefined, query: Q, deps?: any[]): Live<Query.Type<Q>>[];
4
- <F extends Filter.Any>(spaceOrEcho: Space | Echo | Queue<any> | undefined, filter: F, deps?: any[]): Live<Filter.Type<F>>[];
3
+ <Q extends Query.Any>(spaceOrEcho: Space | Echo | Queryable | undefined, query: Q, deps?: any[]): Live<Query.Type<Q>>[];
4
+ <F extends Filter.Any>(spaceOrEcho: Space | Echo | Queryable | undefined, filter: F, deps?: any[]): Live<Filter.Type<F>>[];
5
5
  }
6
6
  /**
7
7
  * Create subscription.
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../../src/echo/useQuery.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAW,MAAM,mBAAmB,CAAC;AAOzG,UAAU,UAAU;IAClB,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAClB,WAAW,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,EAClD,KAAK,EAAE,CAAC,EACR,IAAI,CAAC,EAAE,GAAG,EAAE,GACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EACnB,WAAW,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,EAClD,MAAM,EAAE,CAAC,EACT,IAAI,CAAC,EAAE,GAAG,EAAE,GACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAiCtB,CAAC"}
1
+ {"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../../src/echo/useQuery.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAW,MAAM,mBAAmB,CAAC;AAO7G,UAAU,UAAU;IAClB,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAClB,WAAW,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,EACjD,KAAK,EAAE,CAAC,EACR,IAAI,CAAC,EAAE,GAAG,EAAE,GACX,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EACnB,WAAW,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,EACjD,MAAM,EAAE,CAAC,EACT,IAAI,CAAC,EAAE,GAAG,EAAE,GACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3B;AAED;;GAEG;AAEH,eAAO,MAAM,QAAQ,EAAE,UAgCtB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type Schema } from 'effect';
1
+ import type * as Schema from 'effect/Schema';
2
2
  import { type Client } from '@dxos/client';
3
3
  import { type Space } from '@dxos/client/echo';
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"useSchema.d.ts","sourceRoot":"","sources":["../../../../src/echo/useSchema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,OAAO,KAAK,GAAG,SAAS,EACxB,UAAU,MAAM,GAAG,SAAS,KAC3B,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAmC/B,CAAC"}
1
+ {"version":3,"file":"useSchema.d.ts","sourceRoot":"","sources":["../../../../src/echo/useSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,EACd,OAAO,KAAK,GAAG,SAAS,EACxB,UAAU,MAAM,GAAG,SAAS,KAC3B,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,SAmC/B,CAAC"}
@@ -3,5 +3,5 @@ import { type Selection, type SubscriptionHandle } from '@dxos/client/echo';
3
3
  * Create reactive selection.
4
4
  * Calls the callback when the selection changes and during the first render.
5
5
  */
6
- export declare const useSubscription: (cb: () => void, selection: Selection) => SubscriptionHandle | undefined;
6
+ export declare const useSubscription: (cb: () => void, selection: Selection) => SubscriptionHandle | null;
7
7
  //# sourceMappingURL=useSubscription.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSubscription.d.ts","sourceRoot":"","sources":["../../../../src/echo/useSubscription.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAEhG;;;GAGG;AAEH,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,IAAI,EAAE,WAAW,SAAS,mCAmBnE,CAAC"}
1
+ {"version":3,"file":"useSubscription.d.ts","sourceRoot":"","sources":["../../../../src/echo/useSubscription.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAEhG;;;GAGG;AAEH,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,IAAI,EAAE,WAAW,SAAS,8BAmBnE,CAAC"}
@@ -1,9 +1,9 @@
1
- import '@dxos-theme';
2
1
  import { type StoryObj } from '@storybook/react-vite';
3
2
  import React from 'react';
4
3
  declare const meta: {
5
4
  title: string;
6
5
  render: () => React.JSX.Element;
6
+ decorators: import("@storybook/react").Decorator[];
7
7
  };
8
8
  export default meta;
9
9
  type Story = StoryObj<typeof meta>;
@@ -1 +1 @@
1
- {"version":3,"file":"Passkey.stories.d.ts","sourceRoot":"","sources":["../../../../src/halo/Passkey.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAsB,MAAM,OAAO,CAAC;AA0H3C,QAAA,MAAM,IAAI;;;CAGqB,CAAC;AAEhC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAsBnC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC"}
1
+ {"version":3,"file":"Passkey.stories.d.ts","sourceRoot":"","sources":["../../../../src/halo/Passkey.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAsB,MAAM,OAAO,CAAC;AA8I3C,QAAA,MAAM,IAAI;;;;CAIM,CAAC;AAEjB,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
@@ -36,7 +36,7 @@ export type InvitationStatus = {
36
36
  multiUse?: boolean;
37
37
  shareable?: boolean;
38
38
  result: InvitationResult;
39
- error?: number;
39
+ error?: Error;
40
40
  cancel(): void;
41
41
  connect(observable: CancellableInvitationObservable): void;
42
42
  authenticate(authCode: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"useInvitationStatus.d.ts","sourceRoot":"","sources":["../../../../src/invitations/useInvitationStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEL,KAAK,+BAA+B,EACpC,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAeF,KAAK,iBAAiB,GAAG;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GACxB,CAAC;IACC,MAAM,EACF,UAAU,CAAC,KAAK,CAAC,IAAI,GACrB,UAAU,CAAC,KAAK,CAAC,SAAS,GAC1B,UAAU,CAAC,KAAK,CAAC,wBAAwB,GACzC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;CACrC,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;IACpC,UAAU,EAAE,+BAA+B,CAAC;CAC7C,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;IACjC,MAAM,EAAE,gBAAgB,CAAC;CAC1B,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9D,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;CAC5B,GAAG,iBAAiB,CAAC,GACtB;IACE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;CAC5B,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC;IACzB,QAAQ,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,IAAI,IAAI,CAAC;IAEf,OAAO,CAAC,UAAU,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAC3D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAOF,eAAO,MAAM,mBAAmB,GAAI,aAAa,+BAA+B,KAAG,gBA4HlF,CAAC"}
1
+ {"version":3,"file":"useInvitationStatus.d.ts","sourceRoot":"","sources":["../../../../src/invitations/useInvitationStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEL,KAAK,+BAA+B,EACpC,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAgBF,KAAK,iBAAiB,GAAG;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GACxB,CAAC;IACC,MAAM,EACF,UAAU,CAAC,KAAK,CAAC,IAAI,GACrB,UAAU,CAAC,KAAK,CAAC,SAAS,GAC1B,UAAU,CAAC,KAAK,CAAC,wBAAwB,GACzC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;CACrC,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;IACpC,UAAU,EAAE,+BAA+B,CAAC;CAC7C,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;IACjC,MAAM,EAAE,gBAAgB,CAAC;CAC1B,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9D,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;CAC5B,GAAG,iBAAiB,CAAC,GACtB;IACE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;CAC5B,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC;IACzB,QAAQ,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IAEf,OAAO,CAAC,UAAU,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAC3D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAOF,eAAO,MAAM,mBAAmB,GAAI,aAAa,+BAA+B,KAAG,gBA4HlF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import React, { type FC } from 'react';
2
2
  import { Client, type PublicKey } from '@dxos/client';
3
- import { type TypedObject } from '@dxos/echo-schema';
3
+ import { type TypedObject } from '@dxos/echo/internal';
4
4
  import { type WithClientProviderProps } from './withClientProvider';
5
5
  export type ClientRepeatedComponentProps = {
6
6
  id: number;
@@ -18,7 +18,7 @@ export type ClientRepeaterProps<P extends ClientRepeatedComponentProps> = {
18
18
  clients?: Client[];
19
19
  types?: TypedObject[];
20
20
  args?: Omit<P, 'id' | 'count'>;
21
- } & Pick<WithClientProviderProps, 'createIdentity' | 'createSpace' | 'onSpaceCreated'>;
21
+ } & Pick<WithClientProviderProps, 'createIdentity' | 'createSpace' | 'onCreateSpace'>;
22
22
  /**
23
23
  * Utility component for Storybook stories which sets up clients for n peers.
24
24
  * The `Component` property is rendered n times, once for each peer.
@@ -1 +1 @@
1
- {"version":3,"file":"ClientRepeater.d.ts","sourceRoot":"","sources":["../../../../src/testing/ClientRepeater.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAA+B,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,MAAM,4BAA4B,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE/F,MAAM,MAAM,2BAA2B,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAGhE,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,4BAA4B,IAAI;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;CAChC,GAAG,IAAI,CAAC,uBAAuB,EAAE,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,CAAC,CAAC;AAEvF;;;;GAIG;AAMH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,4BAA4B,EAAE,OAAO,mBAAmB,CAAC,CAAC,CAAC,6BAqDnG,CAAC"}
1
+ {"version":3,"file":"ClientRepeater.d.ts","sourceRoot":"","sources":["../../../../src/testing/ClientRepeater.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAA+B,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOvD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,MAAM,4BAA4B,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE/F,MAAM,MAAM,2BAA2B,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAGhE,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,4BAA4B,IAAI;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;CAChC,GAAG,IAAI,CAAC,uBAAuB,EAAE,gBAAgB,GAAG,aAAa,GAAG,eAAe,CAAC,CAAC;AAEtF;;;;GAIG;AAMH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,4BAA4B,EAAE,OAAO,mBAAmB,CAAC,CAAC,CAAC,6BAqDnG,CAAC"}
@@ -1,4 +1,3 @@
1
- import '@dxos-theme';
2
1
  import { type StoryObj } from '@storybook/react-vite';
3
2
  declare const meta: {
4
3
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientRepeater.stories.d.ts","sourceRoot":"","sources":["../../../../src/testing/ClientRepeater.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAYjE,QAAA,MAAM,IAAI;;;CAGoB,CAAC;AAE/B,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAgCnC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC"}
1
+ {"version":3,"file":"ClientRepeater.stories.d.ts","sourceRoot":"","sources":["../../../../src/testing/ClientRepeater.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAYjE,QAAA,MAAM,IAAI;;;CAGoB,CAAC;AAE/B,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAgCnC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC"}
@@ -7,10 +7,10 @@ type InitializeProps = {
7
7
  createIdentity?: boolean;
8
8
  createSpace?: boolean;
9
9
  onInitialized?: (client: Client) => MaybePromise<void>;
10
- onIdentityCreated?: (props: {
10
+ onCreateIdentity?: (props: {
11
11
  client: Client;
12
- }) => MaybePromise<void>;
13
- onSpaceCreated?: (props: {
12
+ }, context: StoryContext | any) => MaybePromise<void>;
13
+ onCreateSpace?: (props: {
14
14
  client: Client;
15
15
  space: Space;
16
16
  }, context: StoryContext | any) => MaybePromise<void>;
@@ -19,7 +19,7 @@ export type WithClientProviderProps = InitializeProps & Omit<ClientProviderProps
19
19
  /**
20
20
  * Decorator that provides the client context.
21
21
  */
22
- export declare const withClientProvider: ({ createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized, ...props }?: WithClientProviderProps) => Decorator;
22
+ export declare const withClientProvider: ({ createIdentity, createSpace, onCreateSpace, onCreateIdentity, onInitialized, ...props }?: WithClientProviderProps) => Decorator;
23
23
  export type WithMultiClientProviderProps = InitializeProps & Omit<ClientProviderProps, 'onInitialized'> & {
24
24
  numClients?: number;
25
25
  };
@@ -29,8 +29,7 @@ export declare const useMultiClient: () => {
29
29
  /**
30
30
  * Decorator that creates a scaffold for multiple clients.
31
31
  * Orchestrates invitations between a randomly selected host and the remaining clients.
32
- * NOTE: Should come before withLayout.
33
32
  */
34
- export declare const withMultiClientProvider: ({ numClients, createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized, ...props }: WithMultiClientProviderProps) => Decorator;
33
+ export declare const withMultiClientProvider: ({ numClients, createIdentity, createSpace, onCreateSpace, onCreateIdentity, onInitialized, ...props }: WithMultiClientProviderProps) => Decorator;
35
34
  export {};
36
35
  //# sourceMappingURL=withClientProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withClientProvider.d.ts","sourceRoot":"","sources":["../../../../src/testing/withClientProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKrE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAIrE,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACvD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAEtE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,GAAG,GAAG,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC/G,CAAC;AA4BF,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;AAEnG;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,8FAOhC,uBAA4B,KAAG,SA6BjC,CAAC;AAKF,MAAM,MAAM,4BAA4B,GAAG,eAAe,GACxD,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIvE,eAAO,MAAM,cAAc;QAFoB,MAAM;CAEa,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,yGAQrC,4BAA4B,KAAG,SAsDjC,CAAC"}
1
+ {"version":3,"file":"withClientProvider.d.ts","sourceRoot":"","sources":["../../../../src/testing/withClientProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKrE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAIrE,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACvD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,GAAG,GAAG,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAElG,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,GAAG,GAAG,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9G,CAAC;AA+BF,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;AAEnG;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,4FAOhC,uBAA4B,KAAG,SA6BjC,CAAC;AAKF,MAAM,MAAM,4BAA4B,GAAG,eAAe,GACxD,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIvE,eAAO,MAAM,cAAc;QAFoB,MAAM;CAEa,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,uGAQrC,4BAA4B,KAAG,SAsDjC,CAAC"}
@@ -1,9 +1,9 @@
1
- import '@dxos-theme';
2
1
  import { type StoryObj } from '@storybook/react-vite';
3
2
  import React from 'react';
4
3
  declare const meta: {
5
4
  title: string;
6
5
  render: (args: unknown) => React.JSX.Element;
6
+ decorators: import("@storybook/react").Decorator[];
7
7
  };
8
8
  export default meta;
9
9
  type Story = StoryObj<typeof meta>;
@@ -1 +1 @@
1
- {"version":3,"file":"withClientProvider.stories.d.ts","sourceRoot":"","sources":["../../../../src/testing/withClientProvider.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAiC1B,QAAA,MAAM,IAAI;;;CAG2B,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAanC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC"}
1
+ {"version":3,"file":"withClientProvider.stories.d.ts","sourceRoot":"","sources":["../../../../src/testing/withClientProvider.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAkC1B,QAAA,MAAM,IAAI;;;;CAI2B,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAanC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC"}