@dxos/react-client 0.8.4-main.f9ba587 → 0.8.4-main.fcc0d83b33

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 (397) hide show
  1. package/.storybook/main.mts +9 -0
  2. package/.storybook/preview.mts +8 -0
  3. package/dist/lib/browser/chunk-3LVU7RNK.mjs +16 -0
  4. package/dist/lib/browser/chunk-3LVU7RNK.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-CZMIVAGI.mjs +8 -0
  6. package/dist/lib/browser/chunk-CZMIVAGI.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-XT352YI6.mjs +134 -0
  8. package/dist/lib/browser/chunk-XT352YI6.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-O5SEVDJG.mjs → chunk-YHE6WD44.mjs} +5 -15
  10. package/dist/lib/browser/chunk-YHE6WD44.mjs.map +7 -0
  11. package/dist/lib/browser/devtools/index.mjs +4 -8
  12. package/dist/lib/browser/devtools/index.mjs.map +3 -3
  13. package/dist/lib/browser/echo/index.mjs +58 -127
  14. package/dist/lib/browser/echo/index.mjs.map +4 -4
  15. package/dist/lib/browser/halo/index.mjs +5 -3
  16. package/dist/lib/browser/halo/index.mjs.map +3 -3
  17. package/dist/lib/browser/index.mjs +99 -12
  18. package/dist/lib/browser/index.mjs.map +4 -4
  19. package/dist/lib/browser/invitations/index.mjs +1 -1
  20. package/dist/lib/browser/mesh/index.mjs +2 -1
  21. package/dist/lib/browser/mesh/index.mjs.map +1 -1
  22. package/dist/lib/browser/meta.json +1 -1
  23. package/dist/lib/browser/testing/index.mjs +112 -155
  24. package/dist/lib/browser/testing/index.mjs.map +3 -3
  25. package/dist/lib/node-esm/chunk-CUDKNAMV.mjs +17 -0
  26. package/dist/lib/node-esm/chunk-CUDKNAMV.mjs.map +7 -0
  27. package/dist/lib/node-esm/{chunk-TU2JJLZK.mjs → chunk-RQJPEHDY.mjs} +5 -15
  28. package/dist/lib/node-esm/chunk-RQJPEHDY.mjs.map +7 -0
  29. package/dist/lib/node-esm/chunk-WL3Z5HOH.mjs +135 -0
  30. package/dist/lib/node-esm/chunk-WL3Z5HOH.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-WUTK2IJF.mjs +10 -0
  32. package/dist/lib/node-esm/chunk-WUTK2IJF.mjs.map +7 -0
  33. package/dist/lib/node-esm/devtools/index.mjs +4 -8
  34. package/dist/lib/node-esm/devtools/index.mjs.map +3 -3
  35. package/dist/lib/node-esm/echo/index.mjs +58 -127
  36. package/dist/lib/node-esm/echo/index.mjs.map +4 -4
  37. package/dist/lib/node-esm/halo/index.mjs +5 -3
  38. package/dist/lib/node-esm/halo/index.mjs.map +3 -3
  39. package/dist/lib/node-esm/index.mjs +99 -12
  40. package/dist/lib/node-esm/index.mjs.map +4 -4
  41. package/dist/lib/node-esm/invitations/index.mjs +1 -1
  42. package/dist/lib/node-esm/mesh/index.mjs +2 -1
  43. package/dist/lib/node-esm/mesh/index.mjs.map +1 -1
  44. package/dist/lib/node-esm/meta.json +1 -1
  45. package/dist/lib/node-esm/testing/index.mjs +112 -155
  46. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  47. package/dist/types/src/banner.d.ts.map +1 -1
  48. package/dist/types/src/client/AgentHostingProvider.d.ts.map +1 -1
  49. package/dist/types/src/client/ClientProvider.d.ts +1 -11
  50. package/dist/types/src/client/ClientProvider.d.ts.map +1 -1
  51. package/dist/types/src/client/useClientStatus.d.ts.map +1 -1
  52. package/dist/types/src/devtools/useStream.d.ts.map +1 -1
  53. package/dist/types/src/echo/index.d.ts +2 -2
  54. package/dist/types/src/echo/index.d.ts.map +1 -1
  55. package/dist/types/src/echo/useMembers.d.ts +2 -2
  56. package/dist/types/src/echo/useMembers.d.ts.map +1 -1
  57. package/dist/types/src/echo/useQueue.d.ts +3 -2
  58. package/dist/types/src/echo/useQueue.d.ts.map +1 -1
  59. package/dist/types/src/echo/useSpaceInvitations.d.ts +3 -2
  60. package/dist/types/src/echo/useSpaceInvitations.d.ts.map +1 -1
  61. package/dist/types/src/echo/useSpaceProperties.d.ts +13 -0
  62. package/dist/types/src/echo/useSpaceProperties.d.ts.map +1 -0
  63. package/dist/types/src/echo/useSpaces.d.ts +19 -9
  64. package/dist/types/src/echo/useSpaces.d.ts.map +1 -1
  65. package/dist/types/src/echo/useSubscription.d.ts +1 -1
  66. package/dist/types/src/echo/useSubscription.d.ts.map +1 -1
  67. package/dist/types/src/echo/useSyncState.d.ts +1 -1
  68. package/dist/types/src/echo/useSyncState.d.ts.map +1 -1
  69. package/dist/types/src/halo/Passkey.stories.d.ts +5 -5
  70. package/dist/types/src/halo/Passkey.stories.d.ts.map +1 -1
  71. package/dist/types/src/halo/useHaloInvitations.d.ts.map +1 -1
  72. package/dist/types/src/halo/useKeyStore.d.ts.map +1 -1
  73. package/dist/types/src/invitations/useInvitationStatus.d.ts +1 -1
  74. package/dist/types/src/invitations/useInvitationStatus.d.ts.map +1 -1
  75. package/dist/types/src/testing/ClientRepeater.d.ts +6 -5
  76. package/dist/types/src/testing/ClientRepeater.d.ts.map +1 -1
  77. package/dist/types/src/testing/ClientRepeater.stories.d.ts +6 -10
  78. package/dist/types/src/testing/ClientRepeater.stories.d.ts.map +1 -1
  79. package/dist/types/src/testing/context.d.ts +4 -2
  80. package/dist/types/src/testing/context.d.ts.map +1 -1
  81. package/dist/types/src/testing/util.d.ts.map +1 -1
  82. package/dist/types/src/testing/withClientProvider.d.ts +6 -10
  83. package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
  84. package/dist/types/src/testing/withClientProvider.stories.d.ts +8 -9
  85. package/dist/types/src/testing/withClientProvider.stories.d.ts.map +1 -1
  86. package/dist/types/tsconfig.tsbuildinfo +1 -1
  87. package/docs/README.md +38 -38
  88. package/moon.yml +3 -2
  89. package/package.json +43 -58
  90. package/src/client/AgentHostingProvider.tsx +1 -1
  91. package/src/client/ClientProvider.test.tsx +2 -2
  92. package/src/client/ClientProvider.tsx +32 -50
  93. package/src/client/useConfig.test.tsx +1 -1
  94. package/src/devtools/useStream.ts +1 -1
  95. package/src/echo/index.ts +2 -2
  96. package/src/echo/useMembers.ts +5 -3
  97. package/src/echo/useQueue.ts +3 -4
  98. package/src/echo/useSpaceInvitations.ts +10 -5
  99. package/src/echo/useSpaceProperties.ts +28 -0
  100. package/src/echo/useSpaces.test.tsx +8 -14
  101. package/src/echo/useSpaces.ts +32 -30
  102. package/src/echo/useSubscription.ts +1 -1
  103. package/src/echo/useSyncState.ts +5 -4
  104. package/src/halo/Passkey.stories.tsx +20 -20
  105. package/src/halo/useDevices.test.tsx +1 -1
  106. package/src/halo/useHaloInvitations.ts +1 -1
  107. package/src/invitations/useInvitationStatus.ts +9 -8
  108. package/src/testing/ClientRepeater.stories.tsx +22 -16
  109. package/src/testing/ClientRepeater.tsx +29 -37
  110. package/src/testing/context.tsx +4 -3
  111. package/src/testing/util.tsx +0 -1
  112. package/src/testing/withClientProvider.stories.tsx +34 -20
  113. package/src/testing/withClientProvider.tsx +77 -94
  114. package/tsconfig.json +3 -6
  115. package/typedoc.json +1 -1
  116. package/vitest.config.ts +10 -16
  117. package/.eslintrc.cjs +0 -12
  118. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
  119. package/dist/lib/browser/chunk-AAR7V3KL.mjs +0 -312
  120. package/dist/lib/browser/chunk-AAR7V3KL.mjs.map +0 -7
  121. package/dist/lib/browser/chunk-O5SEVDJG.mjs.map +0 -7
  122. package/dist/lib/node-esm/chunk-TU2JJLZK.mjs.map +0 -7
  123. package/dist/lib/node-esm/chunk-ZTD6HPV2.mjs +0 -314
  124. package/dist/lib/node-esm/chunk-ZTD6HPV2.mjs.map +0 -7
  125. package/dist/types/src/echo/useQuery.d.ts +0 -11
  126. package/dist/types/src/echo/useQuery.d.ts.map +0 -1
  127. package/dist/types/src/echo/useQuery.test.d.ts +0 -2
  128. package/dist/types/src/echo/useQuery.test.d.ts.map +0 -1
  129. package/dist/types/src/echo/useSchema.d.ts +0 -8
  130. package/dist/types/src/echo/useSchema.d.ts.map +0 -1
  131. package/dist/types/src/playwright/playwright.config.d.ts +0 -3
  132. package/dist/types/src/playwright/playwright.config.d.ts.map +0 -1
  133. package/dist/types/src/playwright/smoke.spec.d.ts +0 -2
  134. package/dist/types/src/playwright/smoke.spec.d.ts.map +0 -1
  135. package/src/echo/useQuery.test.tsx +0 -128
  136. package/src/echo/useQuery.ts +0 -56
  137. package/src/echo/useSchema.ts +0 -54
  138. package/src/playwright/playwright.config.ts +0 -17
  139. package/src/playwright/smoke.spec.ts +0 -24
  140. package/typedoc/.nojekyll +0 -1
  141. package/typedoc/assets/hierarchy.js +0 -1
  142. package/typedoc/assets/highlight.css +0 -99
  143. package/typedoc/assets/icons.js +0 -18
  144. package/typedoc/assets/icons.svg +0 -1
  145. package/typedoc/assets/main.js +0 -60
  146. package/typedoc/assets/navigation.js +0 -1
  147. package/typedoc/assets/search.js +0 -1
  148. package/typedoc/assets/style.css +0 -1640
  149. package/typedoc/classes/echo.Hypergraph.html +0 -17
  150. package/typedoc/classes/echo.PropertiesType.html +0 -19
  151. package/typedoc/classes/echo.QueryResult.html +0 -18
  152. package/typedoc/classes/halo.KeyStore.html +0 -6
  153. package/typedoc/classes/index.AgentClientServiceProvider.html +0 -10
  154. package/typedoc/classes/index.AgentManagerClient.html +0 -22
  155. package/typedoc/classes/index.AlreadyJoinedError.html +0 -15
  156. package/typedoc/classes/index.ApiError.html +0 -16
  157. package/typedoc/classes/index.CancelledError.html +0 -16
  158. package/typedoc/classes/index.Client.html +0 -51
  159. package/typedoc/classes/index.ClientServicesProxy.html +0 -12
  160. package/typedoc/classes/index.Config.html +0 -17
  161. package/typedoc/classes/index.DataCorruptionError.html +0 -16
  162. package/typedoc/classes/index.DatabaseError.html +0 -15
  163. package/typedoc/classes/index.EntityNotFoundError.html +0 -15
  164. package/typedoc/classes/index.FakeAgentHostingProvider.html +0 -7
  165. package/typedoc/classes/index.IFrameManager.html +0 -6
  166. package/typedoc/classes/index.IdentityNotInitializedError.html +0 -15
  167. package/typedoc/classes/index.InvalidConfigError.html +0 -16
  168. package/typedoc/classes/index.InvalidInvitationError.html +0 -15
  169. package/typedoc/classes/index.InvalidInvitationExtensionRoleError.html +0 -16
  170. package/typedoc/classes/index.InvalidStorageVersionError.html +0 -15
  171. package/typedoc/classes/index.LocalClientServices.html +0 -12
  172. package/typedoc/classes/index.PublicKey.html +0 -55
  173. package/typedoc/classes/index.RemoteServiceConnectionError.html +0 -15
  174. package/typedoc/classes/index.RemoteServiceConnectionTimeout.html +0 -15
  175. package/typedoc/classes/index.RpcClosedError.html +0 -15
  176. package/typedoc/classes/index.RpcNotOpenError.html +0 -15
  177. package/typedoc/classes/index.SharedWorkerConnection.html +0 -5
  178. package/typedoc/classes/index.Shell.html +0 -35
  179. package/typedoc/classes/index.ShellManager.html +0 -9
  180. package/typedoc/classes/index.SystemError.html +0 -16
  181. package/typedoc/classes/index.UnknownModelError.html +0 -15
  182. package/typedoc/classes/index.WorkerClientServices.html +0 -12
  183. package/typedoc/classes/invitations.AuthenticatingInvitationObservable.html +0 -30
  184. package/typedoc/classes/invitations.CancellableInvitationObservable.html +0 -29
  185. package/typedoc/classes/invitations.InvitationEncoder.html +0 -5
  186. package/typedoc/classes/invitations.InvitationsProxy.html +0 -12
  187. package/typedoc/enums/devtools.KeyType.html +0 -9
  188. package/typedoc/enums/echo.HaloSpaceMember.Role.html +0 -9
  189. package/typedoc/enums/echo.IndexKind.Kind.html +0 -8
  190. package/typedoc/enums/echo.QueryOptions.DataLocation.html +0 -6
  191. package/typedoc/enums/echo.QueryOptions.ShowDeletedOption.html +0 -6
  192. package/typedoc/enums/echo.SpaceMember.PresenceState.html +0 -5
  193. package/typedoc/enums/echo.SpaceState.html +0 -13
  194. package/typedoc/enums/echo.TextKind.html +0 -5
  195. package/typedoc/enums/halo.Device.PresenceState.html +0 -6
  196. package/typedoc/enums/halo.DeviceKind.html +0 -5
  197. package/typedoc/enums/halo.DeviceType.html +0 -9
  198. package/typedoc/enums/index.ShellDisplay.html +0 -5
  199. package/typedoc/enums/index.ShellLayout.html +0 -13
  200. package/typedoc/enums/index.SystemStatus.html +0 -5
  201. package/typedoc/enums/invitations.Invitation.AuthMethod.html +0 -6
  202. package/typedoc/enums/invitations.Invitation.Kind.html +0 -5
  203. package/typedoc/enums/invitations.Invitation.State.html +0 -13
  204. package/typedoc/enums/invitations.Invitation.Type.html +0 -6
  205. package/typedoc/enums/mesh.ConnectionState.html +0 -5
  206. package/typedoc/functions/devtools.useDevtools.html +0 -1
  207. package/typedoc/functions/devtools.useStream.html +0 -2
  208. package/typedoc/functions/echo.useMembers.html +0 -1
  209. package/typedoc/functions/echo.useQueue.html +0 -2
  210. package/typedoc/functions/echo.useSchema.html +0 -2
  211. package/typedoc/functions/echo.useSpace.html +0 -6
  212. package/typedoc/functions/echo.useSpaceInvitation.html +0 -1
  213. package/typedoc/functions/echo.useSpaceInvitations.html +0 -1
  214. package/typedoc/functions/echo.useSpaceSyncState.html +0 -2
  215. package/typedoc/functions/echo.useSpaces.html +0 -5
  216. package/typedoc/functions/echo.useSubscription.html +0 -3
  217. package/typedoc/functions/echo.useSyncState.html +0 -2
  218. package/typedoc/functions/halo.useContacts.html +0 -4
  219. package/typedoc/functions/halo.useCredentials.html +0 -1
  220. package/typedoc/functions/halo.useDevices.html +0 -1
  221. package/typedoc/functions/halo.useHaloInvitation.html +0 -1
  222. package/typedoc/functions/halo.useHaloInvitations.html +0 -1
  223. package/typedoc/functions/halo.useIdentity.html +0 -3
  224. package/typedoc/functions/halo.useKeyStore.html +0 -3
  225. package/typedoc/functions/index.AgentHostingProvider.html +0 -2
  226. package/typedoc/functions/index.useAgentHostingClient.html +0 -1
  227. package/typedoc/functions/index.useClient.html +0 -3
  228. package/typedoc/functions/index.useClientStatus.html +0 -1
  229. package/typedoc/functions/index.useConfig.html +0 -3
  230. package/typedoc/functions/index.useShell.html +0 -2
  231. package/typedoc/functions/index.useShellDisplay.html +0 -2
  232. package/typedoc/functions/index.useStatus.html +0 -1
  233. package/typedoc/functions/invitations.useInvitationStatus.html +0 -1
  234. package/typedoc/functions/mesh.useNetworkStatus.html +0 -2
  235. package/typedoc/hierarchy.html +0 -1
  236. package/typedoc/index.html +0 -23
  237. package/typedoc/interfaces/devtools.DevtoolsHook.html +0 -22
  238. package/typedoc/interfaces/devtools.DevtoolsHost.html +0 -26
  239. package/typedoc/interfaces/echo.DocAccessor.html +0 -3
  240. package/typedoc/interfaces/echo.Echo.html +0 -39
  241. package/typedoc/interfaces/echo.EchoDatabase.html +0 -30
  242. package/typedoc/interfaces/echo.Expando.html +0 -3
  243. package/typedoc/interfaces/echo.Filter.html +0 -3
  244. package/typedoc/interfaces/echo.HaloSpaceMember.html +0 -18
  245. package/typedoc/interfaces/echo.IDocHandle.html +0 -6
  246. package/typedoc/interfaces/echo.IndexKind.html +0 -9
  247. package/typedoc/interfaces/echo.Query.html +0 -34
  248. package/typedoc/interfaces/echo.QueryOptions.html +0 -39
  249. package/typedoc/interfaces/echo.Queue.html +0 -17
  250. package/typedoc/interfaces/echo.Ref.html +0 -32
  251. package/typedoc/interfaces/echo.Space.html +0 -36
  252. package/typedoc/interfaces/echo.SpaceMember.html +0 -7
  253. package/typedoc/interfaces/echo.SpaceSyncState.PeerState.html +0 -14
  254. package/typedoc/interfaces/echo.SpaceSyncState.html +0 -4
  255. package/typedoc/interfaces/echo.SubscriptionHandle.html +0 -5
  256. package/typedoc/interfaces/echo.TypedObject.html +0 -16
  257. package/typedoc/interfaces/halo.Contact.html +0 -10
  258. package/typedoc/interfaces/halo.Credential.html +0 -27
  259. package/typedoc/interfaces/halo.Device.html +0 -11
  260. package/typedoc/interfaces/halo.Halo.html +0 -16
  261. package/typedoc/interfaces/halo.Identity.html +0 -15
  262. package/typedoc/interfaces/index.AgentHostingProviderClient.html +0 -6
  263. package/typedoc/interfaces/index.AppContextRequest.html +0 -33
  264. package/typedoc/interfaces/index.ClientServicesProvider.html +0 -9
  265. package/typedoc/interfaces/index.InvitationUrlRequest.html +0 -9
  266. package/typedoc/interfaces/index.LayoutRequest.html +0 -29
  267. package/typedoc/interfaces/index.ShellRuntime.html +0 -15
  268. package/typedoc/interfaces/invitations.Invitation.html +0 -92
  269. package/typedoc/interfaces/invitations.Invitations.html +0 -5
  270. package/typedoc/interfaces/mesh.GossipMessage.html +0 -10
  271. package/typedoc/interfaces/mesh.NetworkStatus.Signal.html +0 -5
  272. package/typedoc/interfaces/mesh.NetworkStatus.html +0 -6
  273. package/typedoc/media/LICENSE +0 -8
  274. package/typedoc/modules/devtools.html +0 -1
  275. package/typedoc/modules/echo.Filter.html +0 -1
  276. package/typedoc/modules/echo.HaloSpaceMember.html +0 -1
  277. package/typedoc/modules/echo.IndexKind.html +0 -1
  278. package/typedoc/modules/echo.Query.html +0 -1
  279. package/typedoc/modules/echo.QueryOptions.html +0 -1
  280. package/typedoc/modules/echo.Ref.html +0 -2
  281. package/typedoc/modules/echo.SpaceMember.html +0 -1
  282. package/typedoc/modules/echo.SpaceSyncState.html +0 -1
  283. package/typedoc/modules/echo.html +0 -1
  284. package/typedoc/modules/halo.Device.html +0 -1
  285. package/typedoc/modules/halo.html +0 -1
  286. package/typedoc/modules/index.html +0 -1
  287. package/typedoc/modules/invitations.Invitation.html +0 -1
  288. package/typedoc/modules/invitations.html +0 -1
  289. package/typedoc/modules/mesh.NetworkStatus.html +0 -1
  290. package/typedoc/modules/mesh.html +0 -1
  291. package/typedoc/modules/worker.html +0 -1
  292. package/typedoc/modules.html +0 -1
  293. package/typedoc/types/devtools.MountOptions.html +0 -3
  294. package/typedoc/types/echo.AnyLiveObject.html +0 -2
  295. package/typedoc/types/echo.Filter.And.html +0 -1
  296. package/typedoc/types/echo.Filter.Any.html +0 -1
  297. package/typedoc/types/echo.Filter.Or.html +0 -1
  298. package/typedoc/types/echo.Filter.Props.html +0 -1
  299. package/typedoc/types/echo.Filter.Type.html +0 -1
  300. package/typedoc/types/echo.Live.html +0 -5
  301. package/typedoc/types/echo.ObjectMeta.html +0 -1
  302. package/typedoc/types/echo.ObjectMigration.html +0 -7
  303. package/typedoc/types/echo.ObjectVersion.html +0 -2
  304. package/typedoc/types/echo.PeerSyncState.html +0 -1
  305. package/typedoc/types/echo.Progress.html +0 -3
  306. package/typedoc/types/echo.PropertiesTypeProps.html +0 -1
  307. package/typedoc/types/echo.Query.Any.html +0 -1
  308. package/typedoc/types/echo.Query.TextSearchOptions.html +0 -2
  309. package/typedoc/types/echo.Query.Type.html +0 -1
  310. package/typedoc/types/echo.Ref.Target.html +0 -2
  311. package/typedoc/types/echo.Selection.html +0 -1
  312. package/typedoc/types/echo.SpaceId.html +0 -6
  313. package/typedoc/types/echo.SpaceSyncStateMap.html +0 -1
  314. package/typedoc/types/echo.UseQueueOptions.html +0 -2
  315. package/typedoc/types/echo.UseSpacesParams.html +0 -3
  316. package/typedoc/types/index.AgentHostingProviderProps.html +0 -3
  317. package/typedoc/types/index.ClientContextProps.html +0 -3
  318. package/typedoc/types/index.ClientOptions.html +0 -12
  319. package/typedoc/types/index.ClientProviderProps.html +0 -2
  320. package/typedoc/types/index.ClientServices.html +0 -15
  321. package/typedoc/types/index.FromAgentOptions.html +0 -2
  322. package/typedoc/types/index.PublicKeyLike.html +0 -2
  323. package/typedoc/types/invitations.InvitationAction.html +0 -1
  324. package/typedoc/types/invitations.InvitationResult.html +0 -5
  325. package/typedoc/types/invitations.InvitationStatus.html +0 -15
  326. package/typedoc/variables/devtools.mountDevtoolsHooks.html +0 -1
  327. package/typedoc/variables/devtools.unmountDevtoolsHooks.html +0 -1
  328. package/typedoc/variables/echo.DocAccessor.html +0 -1
  329. package/typedoc/variables/echo.EchoObjectSchema.html +0 -1
  330. package/typedoc/variables/echo.Expando.html +0 -1
  331. package/typedoc/variables/echo.FQ_ID_LENGTH.html +0 -1
  332. package/typedoc/variables/echo.Filter.html +0 -1
  333. package/typedoc/variables/echo.OBJECT_ID_LENGTH.html +0 -1
  334. package/typedoc/variables/echo.ObjectVersion.html +0 -1
  335. package/typedoc/variables/echo.Query.html +0 -1
  336. package/typedoc/variables/echo.Queue.html +0 -1
  337. package/typedoc/variables/echo.ReactiveObjectSchema.html +0 -1
  338. package/typedoc/variables/echo.Ref.html +0 -2
  339. package/typedoc/variables/echo.RefArray.html +0 -2
  340. package/typedoc/variables/echo.SPACE_ID_LENGTH.html +0 -1
  341. package/typedoc/variables/echo.SpaceId.html +0 -1
  342. package/typedoc/variables/echo.SpaceSchema.html +0 -1
  343. package/typedoc/variables/echo.TypedObject.html +0 -3
  344. package/typedoc/variables/echo.compareForeignKeys.html +0 -1
  345. package/typedoc/variables/echo.createDocAccessor.html +0 -1
  346. package/typedoc/variables/echo.createEmptyEdgeSyncState.html +0 -1
  347. package/typedoc/variables/echo.createObject.html +0 -1
  348. package/typedoc/variables/echo.createQueueDXN.html +0 -2
  349. package/typedoc/variables/echo.createSubscription.html +0 -5
  350. package/typedoc/variables/echo.defineObjectMigration.html +0 -1
  351. package/typedoc/variables/echo.fromCursor.html +0 -1
  352. package/typedoc/variables/echo.fullyQualifiedId.html +0 -4
  353. package/typedoc/variables/echo.getMeta.html +0 -1
  354. package/typedoc/variables/echo.getObjectCore.html +0 -1
  355. package/typedoc/variables/echo.getRangeFromCursor.html +0 -1
  356. package/typedoc/variables/echo.getSchema.html +0 -2
  357. package/typedoc/variables/echo.getSource.html +0 -4
  358. package/typedoc/variables/echo.getSpace.html +0 -1
  359. package/typedoc/variables/echo.getSyncSummary.html +0 -1
  360. package/typedoc/variables/echo.getTarget.html +0 -4
  361. package/typedoc/variables/echo.getTextInRange.html +0 -2
  362. package/typedoc/variables/echo.getType.html +0 -5
  363. package/typedoc/variables/echo.getTypename.html +0 -6
  364. package/typedoc/variables/echo.getVersion.html +0 -3
  365. package/typedoc/variables/echo.importSpace.html +0 -1
  366. package/typedoc/variables/echo.internalDecodeReference.html +0 -2
  367. package/typedoc/variables/echo.isEchoObject.html +0 -2
  368. package/typedoc/variables/echo.isLiveObject.html +0 -3
  369. package/typedoc/variables/echo.isRelation.html +0 -2
  370. package/typedoc/variables/echo.isSpace.html +0 -1
  371. package/typedoc/variables/echo.live.html +0 -3
  372. package/typedoc/variables/echo.loadObjectReferences.html +0 -7
  373. package/typedoc/variables/echo.parseFullyQualifiedId.html +0 -2
  374. package/typedoc/variables/echo.parseId.html +0 -1
  375. package/typedoc/variables/echo.toCursor.html +0 -1
  376. package/typedoc/variables/echo.toCursorRange.html +0 -1
  377. package/typedoc/variables/echo.updateText.html +0 -6
  378. package/typedoc/variables/echo.useQuery.html +0 -2
  379. package/typedoc/variables/index.AgentHostingContext.html +0 -1
  380. package/typedoc/variables/index.ClientProvider.html +0 -3
  381. package/typedoc/variables/index.DXOS_VERSION.html +0 -1
  382. package/typedoc/variables/index.Defaults.html +0 -2
  383. package/typedoc/variables/index.Dynamics.html +0 -2
  384. package/typedoc/variables/index.Envs.html +0 -2
  385. package/typedoc/variables/index.Local.html +0 -2
  386. package/typedoc/variables/index.Remote.html +0 -1
  387. package/typedoc/variables/index.Storage.html +0 -2
  388. package/typedoc/variables/index.createClientServices.html +0 -4
  389. package/typedoc/variables/index.fromAgent.html +0 -2
  390. package/typedoc/variables/index.fromHost.html +0 -2
  391. package/typedoc/variables/index.fromSocket.html +0 -2
  392. package/typedoc/variables/index.fromWorker.html +0 -2
  393. package/typedoc/variables/index.getUnixSocket.html +0 -1
  394. package/typedoc/variables/index.resolveRef.html +0 -1
  395. package/typedoc/variables/index.useMulticastObservable.html +0 -3
  396. package/typedoc/variables/worker.getWorkerServiceHost.html +0 -1
  397. package/typedoc/variables/worker.onconnect.html +0 -1
@@ -1,7 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ClientProvider
4
- } from "../chunk-ZTD6HPV2.mjs";
4
+ } from "../chunk-WL3Z5HOH.mjs";
5
+ import "../chunk-WUTK2IJF.mjs";
5
6
 
6
7
  // src/testing/index.ts
7
8
  export * from "@dxos/client/testing";
@@ -10,54 +11,48 @@ export * from "@dxos/client/testing";
10
11
  import { createContext, useContext } from "react";
11
12
  import { raise } from "@dxos/debug";
12
13
  var ClientStory = /* @__PURE__ */ createContext(void 0);
13
- var useClientProvider = () => {
14
+ var useClientStory = () => {
14
15
  return useContext(ClientStory) ?? raise(new Error("Missing ClientStory"));
15
16
  };
16
17
 
17
18
  // src/testing/ClientRepeater.tsx
18
- import React, { useState, useEffect, useRef } from "react";
19
+ import React, { useRef, useState } from "react";
19
20
  import { Client } from "@dxos/client";
20
21
  import { TestBuilder, performInvitation } from "@dxos/client/testing";
21
- import { registerSignalsRuntime } from "@dxos/echo-signals/react";
22
- import { faker } from "@dxos/random";
22
+ import { random } from "@dxos/random";
23
+ import { useAsyncEffect } from "@dxos/react-hooks";
23
24
  var ClientRepeater = (props) => {
24
- const { component: Component, controls: Controls, count = 1, types, createIdentity, createSpace, onSpaceCreated } = props;
25
- useEffect(() => {
26
- registerSignalsRuntime();
27
- }, []);
25
+ const { component: Component, controls: Controls, count = 1, types, createIdentity, createSpace, onCreateSpace } = props;
28
26
  const [clients, setClients] = useState(props.clients ?? []);
29
- const [spaceKey, setSpaceKey] = useState();
27
+ const [spaceId, setSpaceId] = useState();
30
28
  const testBuilder = useRef(new TestBuilder());
31
- useEffect(() => {
32
- const timeout = setTimeout(async () => {
33
- const clients2 = [
34
- ...Array(count)
35
- ].map((_) => new Client({
36
- services: testBuilder.current.createLocalClientServices(),
37
- types
38
- }));
39
- await Promise.all(clients2.map((client) => client.initialize()));
40
- if (createIdentity || createSpace) {
41
- await Promise.all(clients2.map((client) => client.halo.createIdentity()));
42
- }
43
- if (createSpace) {
44
- const client = clients2[0];
45
- const space = await client.spaces.create({
46
- name: faker.commerce.productName()
47
- });
48
- setSpaceKey(space.key);
49
- await onSpaceCreated?.({
50
- client,
51
- space
52
- }, {});
53
- await Promise.all(clients2.slice(1).flatMap((client2) => performInvitation({
54
- host: space,
55
- guest: client2.spaces
56
- })));
57
- }
58
- setClients(clients2);
59
- });
60
- return () => clearTimeout(timeout);
29
+ useAsyncEffect(async () => {
30
+ const clients2 = [
31
+ ...Array(count)
32
+ ].map((_) => new Client({
33
+ services: testBuilder.current.createLocalClientServices(),
34
+ types
35
+ }));
36
+ await Promise.all(clients2.map((client) => client.initialize()));
37
+ if (createIdentity || createSpace) {
38
+ await Promise.all(clients2.map((client) => client.halo.createIdentity()));
39
+ }
40
+ if (createSpace) {
41
+ const client = clients2[0];
42
+ const space = await client.spaces.create({
43
+ name: random.commerce.productName()
44
+ });
45
+ setSpaceId(space.id);
46
+ await onCreateSpace?.({
47
+ client,
48
+ space
49
+ }, {});
50
+ await Promise.all(clients2.slice(1).flatMap((client2) => performInvitation({
51
+ host: space,
52
+ guest: client2.spaces
53
+ })));
54
+ }
55
+ setClients(clients2);
61
56
  }, []);
62
57
  if (clients.length === 0) {
63
58
  return null;
@@ -70,26 +65,26 @@ var ClientRepeater = (props) => {
70
65
  }, /* @__PURE__ */ React.createElement(Component, {
71
66
  id: index,
72
67
  count: clients.length,
73
- spaceKey,
68
+ spaceId,
74
69
  ...props.args
75
70
  }))));
76
71
  };
77
72
 
78
73
  // src/testing/withClientProvider.tsx
79
- import React2, { createContext as createContext2, useContext as useContext2, useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
80
- import { ErrorBoundary as NativeErrorBoundary } from "react-error-boundary";
74
+ import React2, { useCallback, useMemo, useRef as useRef2, useState as useState2 } from "react";
81
75
  import { Trigger } from "@dxos/async";
82
- import { performInvitation as performInvitation2, TestBuilder as TestBuilder2 } from "@dxos/client/testing";
76
+ import { TestBuilder as TestBuilder2, performInvitation as performInvitation2 } from "@dxos/client/testing";
83
77
  import { log } from "@dxos/log";
78
+ import { ErrorBoundary } from "@dxos/react-ui";
84
79
  var __dxlog_file = "/__w/dxos/dxos/packages/sdk/react-client/src/testing/withClientProvider.tsx";
85
- var initializeClient = async (client, { createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized }, context) => {
80
+ var initializeClient = async (client, { createIdentity, createSpace, onCreateIdentity, onCreateSpace, onInitialized }, context) => {
86
81
  await onInitialized?.(client);
87
82
  if (createIdentity || createSpace) {
88
83
  if (!client.halo.identity.get()) {
89
84
  await client.halo.createIdentity();
90
- await onIdentityCreated?.({
85
+ await onCreateIdentity?.({
91
86
  client
92
- });
87
+ }, context);
93
88
  }
94
89
  }
95
90
  let space;
@@ -97,29 +92,33 @@ var initializeClient = async (client, { createIdentity, createSpace, onSpaceCrea
97
92
  space = await client.spaces.create({
98
93
  name: "Test Space"
99
94
  });
100
- await onSpaceCreated?.({
95
+ await space.waitUntilReady();
96
+ await onCreateSpace?.({
101
97
  client,
102
98
  space
103
99
  }, context);
104
100
  }
105
101
  return {
106
- space
102
+ space,
103
+ spaceId: space?.id
107
104
  };
108
105
  };
109
- var withClientProvider = ({ createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized, ...props } = {}) => {
106
+ var withClientProvider = ({ createIdentity, createSpace, onCreateSpace, onCreateIdentity, onInitialized, ...props } = {}) => {
110
107
  return (Story, context) => {
111
108
  const [data, setData] = useState2({});
112
109
  const handleInitialized = async (client) => {
113
110
  const data2 = await initializeClient(client, {
114
111
  createIdentity,
115
112
  createSpace,
116
- onSpaceCreated,
117
- onIdentityCreated,
113
+ onCreateSpace,
114
+ onCreateIdentity,
118
115
  onInitialized
119
116
  }, context);
120
117
  setData(data2);
121
118
  };
122
- return /* @__PURE__ */ React2.createElement(ErrorBoundary, null, /* @__PURE__ */ React2.createElement(ClientProvider, {
119
+ return /* @__PURE__ */ React2.createElement(ErrorBoundary, {
120
+ name: "client-provider"
121
+ }, /* @__PURE__ */ React2.createElement(ClientProvider, {
123
122
  onInitialized: handleInitialized,
124
123
  ...props
125
124
  }, /* @__PURE__ */ React2.createElement(ClientStory.Provider, {
@@ -127,121 +126,79 @@ var withClientProvider = ({ createIdentity, createSpace, onSpaceCreated, onIdent
127
126
  }, /* @__PURE__ */ React2.createElement(Story, null))));
128
127
  };
129
128
  };
130
- var MultiClientContext = /* @__PURE__ */ createContext2({
131
- id: 0
132
- });
133
- var useMultiClient = () => useContext2(MultiClientContext);
134
- var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, onSpaceCreated, onIdentityCreated, onInitialized, ...props }) => {
129
+ var withMultiClientProvider = ({ numClients = 2, createIdentity, createSpace, onCreateSpace, onCreateIdentity, onInitialized, ...props }) => {
135
130
  return (Story, context) => {
136
- const builder = useRef2(new TestBuilder2());
137
- const hostRef = useRef2();
138
131
  const spaceReady = useRef2(new Trigger());
139
- const handleInitialized = async (client, index) => {
140
- log.info("initialized", {
141
- index
142
- }, {
143
- F: __dxlog_file,
144
- L: 129,
145
- S: void 0,
146
- C: (f, a) => f(...a)
132
+ const [spaceId, setSpaceId] = useState2();
133
+ const clients = useMemo(() => {
134
+ const buidler = new TestBuilder2();
135
+ return Array.from({
136
+ length: numClients
137
+ }).map(() => {
138
+ return {
139
+ services: buidler.createLocalClientServices()
140
+ };
147
141
  });
148
- if (createSpace) {
149
- if (!hostRef.current) {
150
- hostRef.current = client;
151
- const { space } = await initializeClient(client, {
152
- createIdentity,
153
- createSpace,
154
- onSpaceCreated,
155
- onIdentityCreated,
156
- onInitialized
157
- }, context);
158
- spaceReady.current.wake(space);
159
- log.info("inviting", {
160
- index
161
- }, {
162
- F: __dxlog_file,
163
- L: 146,
164
- S: void 0,
165
- C: (f, a) => f(...a)
166
- });
167
- } else {
168
- await initializeClient(client, {
169
- createIdentity,
170
- onInitialized
171
- }, context);
172
- const space = await spaceReady.current.wait();
173
- if (space) {
174
- log.info("joining", {
175
- index
176
- }, {
177
- F: __dxlog_file,
178
- L: 151,
179
- S: void 0,
180
- C: (f, a) => f(...a)
181
- });
182
- await Promise.all(performInvitation2({
183
- host: space,
184
- guest: client.spaces
185
- }));
186
- }
142
+ }, [
143
+ numClients
144
+ ]);
145
+ const handleInitialized = useCallback(async (client, index) => {
146
+ if (index === 0) {
147
+ const { space } = await initializeClient(client, {
148
+ createIdentity,
149
+ createSpace,
150
+ onCreateSpace,
151
+ onCreateIdentity,
152
+ onInitialized
153
+ }, context);
154
+ log.info("inviting", {
155
+ index,
156
+ spaceId: space?.id
157
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 95, S: void 0 });
158
+ setSpaceId(space?.id);
159
+ spaceReady.current.wake(space);
160
+ } else {
161
+ await initializeClient(client, {
162
+ createIdentity,
163
+ onInitialized
164
+ }, context);
165
+ log.info("waiting", {
166
+ index
167
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 107, S: void 0 });
168
+ const space = await spaceReady.current.wait();
169
+ if (space) {
170
+ log.info("joining", {
171
+ index,
172
+ spaceId: space.id
173
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 112, S: void 0 });
174
+ await Promise.all(performInvitation2({
175
+ host: space,
176
+ guest: client.spaces
177
+ }));
187
178
  }
188
179
  }
189
- };
190
- return /* @__PURE__ */ React2.createElement(ErrorBoundary, null, Array.from({
191
- length: numClients
192
- }).map((_, index) => /* @__PURE__ */ React2.createElement(MultiClientContext.Provider, {
180
+ }, []);
181
+ return /* @__PURE__ */ React2.createElement("div", {
182
+ className: "absolute inset-0 grid grid-flow-col auto-cols-fr gap-4 overflow-hidden"
183
+ }, clients.map((client, index) => /* @__PURE__ */ React2.createElement(ClientProvider, {
193
184
  key: index,
185
+ services: client.services,
186
+ onInitialized: (client2) => handleInitialized(client2, index),
187
+ ...props
188
+ }, /* @__PURE__ */ React2.createElement(ClientStory.Provider, {
194
189
  value: {
195
- id: index
190
+ index,
191
+ spaceId
196
192
  }
197
- }, /* @__PURE__ */ React2.createElement(ClientProvider, {
198
- services: builder.current.createLocalClientServices(),
199
- onInitialized: (client) => handleInitialized(client, index),
200
- ...props
201
- }, /* @__PURE__ */ React2.createElement(Story, null)))));
202
- };
203
- };
204
- var ErrorBoundary = ({ children }) => {
205
- const [error, setError] = useState2();
206
- useEffect2(() => {
207
- const handleError = (event) => {
208
- setError(event.reason);
209
- };
210
- window.addEventListener("unhandledrejection", handleError);
211
- return () => window.removeEventListener("unhandledrejection", handleError);
212
- }, []);
213
- if (error) {
214
- return /* @__PURE__ */ React2.createElement(ErrorFallback, {
215
- error,
216
- resetErrorBoundary: () => setError(void 0)
217
- });
218
- }
219
- return /* @__PURE__ */ React2.createElement(NativeErrorBoundary, {
220
- FallbackComponent: ErrorFallback
221
- }, children);
222
- };
223
- var ErrorFallback = ({ error }) => {
224
- const { name, message, stack } = error instanceof Error ? error : {
225
- name: "Error",
226
- message: String(error),
227
- stack: void 0
193
+ }, /* @__PURE__ */ React2.createElement(ErrorBoundary, {
194
+ name: "client-provider"
195
+ }, /* @__PURE__ */ React2.createElement(Story, null))))));
228
196
  };
229
- return /* @__PURE__ */ React2.createElement("div", {
230
- role: "alert",
231
- className: "flex flex-col p-4 gap-4 overflow-auto"
232
- }, /* @__PURE__ */ React2.createElement("h1", {
233
- className: "text-xl text-red-500"
234
- }, name), /* @__PURE__ */ React2.createElement("div", {
235
- className: "text-lg"
236
- }, message), stack && /* @__PURE__ */ React2.createElement("pre", {
237
- className: "whitespace-pre-wrap text-sm text-subdued"
238
- }, stack));
239
197
  };
240
198
  export {
241
199
  ClientRepeater,
242
200
  ClientStory,
243
- useClientProvider,
244
- useMultiClient,
201
+ useClientStory,
245
202
  withClientProvider,
246
203
  withMultiClientProvider
247
204
  };
@@ -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, { useState, type FC, useEffect, useRef } 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';\n\nimport { type WithClientProviderProps } from './withClientProvider';\nimport { ClientProvider } from '../client';\n\nexport type ClientRepeatedComponentProps = { id: number; count: number; spaceKey?: PublicKey };\n\nexport type ClientRepeaterControlsProps = { clients: Client[] };\n\n// TODO(burdon): Reconcile with ClientProviderProps.\nexport type ClientRepeaterProps<P extends ClientRepeatedComponentProps> = {\n className?: string;\n component: FC<ClientRepeatedComponentProps>;\n controls?: FC<ClientRepeaterControlsProps>;\n count?: number;\n clients?: Client[];\n types?: 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 useEffect(() => {\n const timeout = setTimeout(async () => {\n const clients = [...Array(count)].map(\n (_) => new Client({ services: testBuilder.current.createLocalClientServices(), types }),\n );\n\n await Promise.all(clients.map((client) => client.initialize()));\n if (createIdentity || createSpace) {\n await Promise.all(clients.map((client) => client.halo.createIdentity()));\n }\n\n if (createSpace) {\n const client = clients[0];\n const space = await client.spaces.create({ name: faker.commerce.productName() });\n setSpaceKey(space.key);\n await onSpaceCreated?.({ client, space }, {});\n await Promise.all(\n clients.slice(1).flatMap((client) => performInvitation({ host: space, guest: client.spaces })),\n );\n }\n\n setClients(clients);\n });\n\n return () => clearTimeout(timeout);\n }, []);\n\n if (clients.length === 0) {\n return null;\n }\n\n return (\n <>\n {Controls && <Controls clients={clients} />}\n {clients.map((client, index) => (\n <ClientProvider key={index} client={client}>\n <Component id={index} count={clients.length} spaceKey={spaceKey} {...{ ...props.args }} />\n </ClientProvider>\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type StoryContext, type Decorator } from '@storybook/react';\nimport React, { createContext, type PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\nimport { type FallbackProps, ErrorBoundary as NativeErrorBoundary } from 'react-error-boundary';\n\nimport { Trigger } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { performInvitation, TestBuilder } from '@dxos/client/testing';\nimport { log } from '@dxos/log';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { ClientStory } from './context';\nimport { ClientProvider, type ClientProviderProps } from '../client';\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 <NativeErrorBoundary FallbackComponent={ErrorFallback}>{children}</NativeErrorBoundary>;\n};\n\nconst ErrorFallback = ({ error }: FallbackProps) => {\n const { name, message, stack } =\n error instanceof Error ? error : { name: 'Error', message: String(error), stack: undefined };\n return (\n <div role='alert' className='flex flex-col p-4 gap-4 overflow-auto'>\n <h1 className='text-xl text-red-500'>{name}</h1>\n <div className='text-lg'>{message}</div>\n {stack && <pre className='whitespace-pre-wrap text-sm text-subdued'>{stack}</pre>}\n </div>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["createContext", "useContext", "raise", "ClientStory", "createContext", "undefined", "useClientProvider", "useContext", "raise", "Error", "React", "useState", "useEffect", "useRef", "Client", "TestBuilder", "performInvitation", "registerSignalsRuntime", "faker", "ClientRepeater", "props", "component", "Component", "controls", "Controls", "count", "types", "createIdentity", "createSpace", "onSpaceCreated", "useEffect", "registerSignalsRuntime", "clients", "setClients", "useState", "spaceKey", "setSpaceKey", "testBuilder", "useRef", "TestBuilder", "timeout", "setTimeout", "Array", "map", "_", "Client", "services", "current", "createLocalClientServices", "Promise", "all", "client", "initialize", "halo", "space", "spaces", "create", "name", "faker", "commerce", "productName", "key", "slice", "flatMap", "performInvitation", "host", "guest", "clearTimeout", "length", "index", "ClientProvider", "id", "args", "React", "createContext", "useContext", "useEffect", "useRef", "useState", "ErrorBoundary", "NativeErrorBoundary", "Trigger", "performInvitation", "TestBuilder", "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", "NativeErrorBoundary", "FallbackComponent", "message", "stack", "Error", "String", "div", "role", "className", "h1", "pre"]
4
+ "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from '@dxos/client/testing';\n\nexport * from './context';\nexport * from './ClientRepeater';\nexport * from './withClientProvider';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { type Space, type SpaceId } from '@dxos/client/echo';\nimport { raise } from '@dxos/debug';\n\nexport type ClientStory = {\n index?: number;\n spaceId?: SpaceId;\n space?: Space;\n};\n\nexport const ClientStory = createContext<ClientStory | undefined>(undefined);\n\nexport const useClientStory = (): ClientStory => {\n return useContext(ClientStory) ?? raise(new Error('Missing ClientStory'));\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport React, { type FC, useRef, useState } from 'react';\n\nimport { Client } from '@dxos/client';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { type Type } from '@dxos/echo';\nimport { random } from '@dxos/random';\nimport { useAsyncEffect } from '@dxos/react-hooks';\n\nimport { ClientProvider } from '../client';\nimport { type SpaceId } from '../echo';\nimport { type WithClientProviderProps } from './withClientProvider';\n\nexport type ClientRepeatedComponentProps = { id: number; count: number; spaceId?: SpaceId };\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?: Type.AnyObj[];\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\n const [clients, setClients] = useState(props.clients ?? []);\n const [spaceId, setSpaceId] = useState<SpaceId>();\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: random.commerce.productName() });\n setSpaceId(space.id);\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} spaceId={spaceId} {...{ ...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, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Trigger } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space, type SpaceId } from '@dxos/client/echo';\nimport { TestBuilder, performInvitation } from '@dxos/client/testing';\nimport { log } from '@dxos/log';\nimport { ErrorBoundary } from '@dxos/react-ui';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { ClientProvider, type ClientProviderProps } from '../client';\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 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, spaceId: space?.id };\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 name='client-provider'>\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\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 spaceReady = useRef(new Trigger<Space | undefined>());\n const [spaceId, setSpaceId] = useState<SpaceId>();\n\n const clients = useMemo(() => {\n const buidler = new TestBuilder();\n return Array.from({ length: numClients }).map(() => {\n return {\n services: buidler.createLocalClientServices(),\n };\n });\n }, [numClients]);\n\n // Handle invitations.\n // NOTE: The zeroth client isn't necessarily the first to be initialized.\n const handleInitialized = useCallback(async (client: Client, index: number) => {\n if (index === 0) {\n // Initialize host.\n const { space } = await initializeClient(\n client,\n {\n createIdentity,\n createSpace,\n onCreateSpace,\n onCreateIdentity,\n onInitialized,\n },\n context,\n );\n\n log.info('inviting', { index, spaceId: space?.id });\n setSpaceId(space?.id);\n spaceReady.current.wake(space);\n } else {\n // Initialize guest.\n await initializeClient(client, { createIdentity, onInitialized }, context);\n\n log.info('waiting', { index });\n const space = await spaceReady.current.wait();\n if (space) {\n log.info('joining', { index, spaceId: space.id });\n await Promise.all(\n performInvitation({\n host: space,\n guest: client.spaces,\n }),\n );\n }\n }\n }, []);\n\n return (\n <div className='absolute inset-0 grid grid-flow-col auto-cols-fr gap-4 overflow-hidden'>\n {clients.map((client, index) => (\n <ClientProvider\n key={index}\n services={client.services}\n onInitialized={(client) => handleInitialized(client, index)}\n {...props}\n >\n <ClientStory.Provider value={{ index, spaceId }}>\n <ErrorBoundary name='client-provider'>\n <Story />\n </ErrorBoundary>\n </ClientStory.Provider>\n </ClientProvider>\n ))}\n </div>\n );\n };\n};\n"],
5
+ "mappings": ";;;;;;;AAIA,cAAc;;;ACAd,SAASA,eAAeC,kBAAkB;AAG1C,SAASC,aAAa;AAQf,IAAMC,cAAcH,8BAAuCI,MAAAA;AAE3D,IAAMC,iBAAiB,MAAA;AAC5B,SAAOJ,WAAWE,WAAAA,KAAgBD,MAAM,IAAII,MAAM,qBAAA,CAAA;AACpD;;;ACfA,OAAOC,SAAkBC,QAAQC,gBAAgB;AAEjD,SAASC,cAAc;AACvB,SAASC,aAAaC,yBAAyB;AAE/C,SAASC,cAAc;AACvB,SAASC,sBAAsB;AA+BxB,IAAMC,iBAAiB,CAAyCC,UAAAA;AACrE,QAAM,EACJC,WAAWC,WACXC,UAAUC,UACVC,QAAQ,GACRC,OACAC,gBACAC,aACAC,cAAa,IACXT;AAEJ,QAAM,CAACU,SAASC,UAAAA,IAAcC,SAASZ,MAAMU,WAAW,CAAA,CAAE;AAC1D,QAAM,CAACG,SAASC,UAAAA,IAAcF,SAAAA;AAE9B,QAAMG,cAAcC,OAAO,IAAIC,YAAAA,CAAAA;AAC/BC,iBAAe,YAAA;AACb,UAAMR,WAAU;SAAIS,MAAMd,KAAAA;MAAQe,IAChC,CAACC,MAAM,IAAIC,OAAO;MAAEC,UAAUR,YAAYS,QAAQC,0BAAyB;MAAInB;IAAM,CAAA,CAAA;AAGvF,UAAMoB,QAAQC,IAAIjB,SAAQU,IAAI,CAACQ,WAAWA,OAAOC,WAAU,CAAA,CAAA;AAC3D,QAAItB,kBAAkBC,aAAa;AACjC,YAAMkB,QAAQC,IAAIjB,SAAQU,IAAI,CAACQ,WAAWA,OAAOE,KAAKvB,eAAc,CAAA,CAAA;IACtE;AAEA,QAAIC,aAAa;AACf,YAAMoB,SAASlB,SAAQ,CAAA;AACvB,YAAMqB,QAAQ,MAAMH,OAAOI,OAAOC,OAAO;QAAEC,MAAMC,OAAOC,SAASC,YAAW;MAAG,CAAA;AAC/EvB,iBAAWiB,MAAMO,EAAE;AACnB,YAAM7B,gBAAgB;QAAEmB;QAAQG;MAAM,GAAG,CAAC,CAAA;AAC1C,YAAML,QAAQC,IAAIjB,SAAQ6B,MAAM,CAAA,EAAGC,QAAQ,CAACZ,YAAWa,kBAAkB;QAAEC,MAAMX;QAAOY,OAAOf,QAAOI;MAAO,CAAA,CAAA,CAAA;IAC/G;AAEArB,eAAWD,QAAAA;EACb,GAAG,CAAA,CAAE;AAEL,MAAIA,QAAQkC,WAAW,GAAG;AACxB,WAAO;EACT;AAEA,SACE,sBAAA,cAAA,MAAA,UAAA,MACGxC,YAAY,sBAAA,cAACA,UAAAA;IAASM;MACtBA,QAAQU,IAAI,CAACQ,QAAQiB,UACpB,sBAAA,cAACC,gBAAAA;IAAeC,KAAKF;IAAOjB;KAC1B,sBAAA,cAAC1B,WAAAA;IAAUoC,IAAIO;IAAOxC,OAAOK,QAAQkC;IAAQ/B;IAAwB,GAAGb,MAAMgD;;AAKxF;;;ACtFA,OAAOC,UAASC,aAAaC,SAASC,UAAAA,SAAQC,YAAAA,iBAAgB;AAE9D,SAASC,eAAe;AAGxB,SAASC,eAAAA,cAAaC,qBAAAA,0BAAyB;AAC/C,SAASC,WAAW;AACpB,SAASC,qBAAqB;AAe9B,IAAA,eAAA;AAUE,IAAIC,mBAAkBC,OAAAA,QAAa,EAAA,gBAAA,aAAA,kBAAA,eAAA,cAAA,GAAA,YAAA;QACjC,gBAAiBC,MAAAA;wBACFC,aAAKH;QAClB,CAAA,OAAMI,KAAAA,SAAAA,IAAmB,GAAA;YAAEC,OAAAA,KAAAA,eAAAA;AAAO,YAAGC,mBAAAA;QACvC;MACF,GAAA,OAAA;IAEIC;EACJ;MACEA;mBAA2C;AAAa,YAAA,MAAA,OAAA,OAAA,OAAA;MACxD,MAAMA;IACN,CAAA;UAAwBF,MAAAA,eAAAA;UAAQE,gBAAAA;MAASD;MAC3C;IAEA,GAAO,OAAA;;SAASE;IAAmB;IACrC,SAAA,OAAA;EAIA;;AAYI,IAAOC,qBAAiBC,CAAAA,EAAsB,gBAAC,aAAA,eAAA,kBAAA,eAAA,GAAA,MAAA,IAAA,CAAA,MAAA;SAC/C,CAAA,OAAMC,YAAAA;UACJ,CAAA,MAAMF,OAAO,IAAMG,UAAAA,CAAAA,CAAAA;8BAGfZ,OAAAA,WAAAA;YACAC,QAAAA,MAAAA,iBAAAA,QAAAA;QACAY;QACAT;QACAU;QAEFR;QAGFS;MACF,GAAA,OAAA;AAEA,cAAAN,KAAA;;WAEI,gBAAAO,OAAA,cAACC,eAAAA;MAAeH,MAAAA;OAA2C,gBAAAE,OAAA,cAAA,gBAAA;qBACzD;MAAsBE,GAAAA;OACpB,gBAAAF,OAAA,cAACG,YAAAA,UAAAA;MAKX,OAAA;IACA,GAAA,gBAAAH,OAAA,cAAA,OAAA,IAAA,CAAA,CAAA,CAAA;EAQF;;AAcI,IAAMI,0BAAwBC,CAAAA,EAAAA,aAAAA,GAAAA,gBAAAA,aAAAA,eAAAA,kBAAAA,eAAAA,GAAAA,MAAAA,MAAAA;SAC9B,CAAA,OAAOb,YAASc;AAEhB,UAAMC,aAAUC,QAAQ,IAAA,QAAA,CAAA;UACtB,CAAA,SAAMC,UAAcC,IAAAA,UAAAA;UACpB,UAAOC,QAAW,MAAA;YAAEC,UAAQC,IAAAA,aAAAA;AAAW,aAAO,MAAA,KAAA;QAC5C,QAAO;mBACLC;AACF,eAAA;UACF,UAAA,QAAA,0BAAA;QACC;MAACD,CAAAA;OAAW;MAEf;IACA,CAAA;8BAGI,YAAmB,OAAA,QAAA,UAAA;UACnB,UAAQtB,GAAK;cAITN,EAAAA,MAAAA,IAAAA,MAAAA,iBAAAA,QAAAA;UACAY;UACAT;UACAU;UAEFR;UAGEyB;kBAAmBC;YAAOxB,KAAAA,YAAgByB;UAAG;UACjDX,SAAWf,OAAO0B;QAClBb,GAAAA,EAAAA,YAAWc,YAAa3B,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,OAAAA,CAAAA;AAC1B,mBAAO,OAAA,EAAA;AACL,mBAAA,QAAA,KAAoB,KAAA;aACpB;cAAiDO,iBAAAA,QAAAA;UAAiBR;UAE9DyB;kBAAkBC;AAAM,YAAA,KAAA,WAAA;UAC5B;QACA,GAAA,EAAA,YAAW,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,OAAA,CAAA;cACTG,QAAS,MAAA,WAAW,QAAA,KAAA;mBAAEH;cAAOxB,KAAAA,WAAeyB;YAAG;YAC/C,SAAMG,MACJC;2BACQ9B,YAAAA,GAAAA,cAAAA,GAAAA,KAAAA,GAAAA,OAAAA,CAAAA;gBACN+B,QAAOjC,IAAOkC,mBAAM;YACtB,MAAA;YAEJ,OAAA,OAAA;UACF,CAAA,CAAA;QACG;MAEL;QACOC,CAAAA;WACWnC,gBAAAA,OAAQ2B,cAAAA,OACpB;iBACOA;eACLF,IAAAA,CAAAA,QAAUzB,UAAe,gBAAAW,OAAA,cAAA,gBAAA;MACzBF,KAAAA;MACC,UAAQ,OAAA;qBAET,CAAAT,YAAA,kBAACoC,SAAYC,KAAQ;MAACxB,GAAAA;OAASc,gBAAAA,OAAAA,cAAAA,YAAAA,UAAAA;aAAOxB;QAAQ;;MAC7BmC;OACb,gBAAA3B,OAAA,cAACG,eAAAA;MAOf,MAAA;IACA,GAAA,gBAAAH,OAAA,cAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;",
6
+ "names": ["createContext", "useContext", "raise", "ClientStory", "undefined", "useClientStory", "Error", "React", "useRef", "useState", "Client", "TestBuilder", "performInvitation", "random", "useAsyncEffect", "ClientRepeater", "props", "component", "Component", "controls", "Controls", "count", "types", "createIdentity", "createSpace", "onCreateSpace", "clients", "setClients", "useState", "spaceId", "setSpaceId", "testBuilder", "useRef", "TestBuilder", "useAsyncEffect", "Array", "map", "_", "Client", "services", "current", "createLocalClientServices", "Promise", "all", "client", "initialize", "halo", "space", "spaces", "create", "name", "random", "commerce", "productName", "id", "slice", "flatMap", "performInvitation", "host", "guest", "length", "index", "ClientProvider", "key", "args", "React", "useCallback", "useMemo", "useRef", "useState", "Trigger", "TestBuilder", "performInvitation", "log", "ErrorBoundary", "createIdentity", "createSpace", "identity", "halo", "onCreateIdentity", "client", "context", "space", "spaceId", "data", "useState", "handleInitialized", "initializeClient", "onCreateSpace", "onInitialized", "setData", "React", "ClientProvider", "value", "Story", "spaceReady", "Trigger", "setSpaceId", "clients", "useMemo", "buidler", "TestBuilder", "Array", "length", "numClients", "services", "info", "index", "id", "current", "log", "Promise", "performInvitation", "guest", "spaces", "className", "ClientStory", "Provider", "name"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/banner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAoB3C,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,SAQzC,CAAC"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/banner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAoB3C,eAAO,MAAM,WAAW,WAAY,MAAM,SAQzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentHostingProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/AgentHostingProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAiB,KAAK,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAE3F,OAAO,EAAE,KAAK,0BAA0B,EAAgD,MAAM,cAAc,CAAC;AAC7G,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAK3C,MAAM,MAAM,yBAAyB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAEvE,eAAO,MAAM,mBAAmB,kDAAyD,CAAC;AAE1F;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,iBAAiB,sBAM5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,yCAEjC,CAAC"}
1
+ {"version":3,"file":"AgentHostingProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/AgentHostingProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAuC,MAAM,OAAO,CAAC;AAE3F,OAAO,EAAE,KAAK,0BAA0B,EAAgD,MAAM,cAAc,CAAC;AAC7G,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAK3C,MAAM,MAAM,yBAAyB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAEvE,eAAO,MAAM,mBAAmB,kDAAyD,CAAC;AAE1F;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UAAW,iBAAiB,sBAM5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,yCAEjC,CAAC"}
@@ -29,11 +29,6 @@ export type ClientProviderProps = Omit<ClientOptions, 'config' | 'services'> & P
29
29
  * ReactNode to display until the client is available.
30
30
  */
31
31
  fallback?: FunctionComponent<Partial<ClientContextProps>>;
32
- /**
33
- * Enable (by default) registration of Preact signals runtime for reactive ECHO objects.
34
- * @see https://www.npmjs.com/package/@preact/signals-react
35
- */
36
- signalsRuntime?: boolean;
37
32
  /**
38
33
  * Skip the DXOS banner.
39
34
  */
@@ -47,7 +42,7 @@ export type ClientProviderProps = Omit<ClientOptions, 'config' | 'services'> & P
47
42
  * Root component that provides the DXOS client instance to child components.
48
43
  * To be used with the `useClient` hook.
49
44
  */
50
- export declare const ClientProvider: React.ForwardRefExoticComponent<Omit<ClientOptions, "services" | "config"> & Pick<ClientContextProps, "status"> & {
45
+ export declare const ClientProvider: React.ForwardRefExoticComponent<Omit<ClientOptions, "config" | "services"> & Pick<ClientContextProps, "status"> & {
51
46
  /**
52
47
  * Client object or async provider to enable to caller to do custom initialization.
53
48
  *
@@ -70,11 +65,6 @@ export declare const ClientProvider: React.ForwardRefExoticComponent<Omit<Client
70
65
  * ReactNode to display until the client is available.
71
66
  */
72
67
  fallback?: FunctionComponent<Partial<ClientContextProps>>;
73
- /**
74
- * Enable (by default) registration of Preact signals runtime for reactive ECHO objects.
75
- * @see https://www.npmjs.com/package/@preact/signals-react
76
- */
77
- signalsRuntime?: boolean;
78
68
  /**
79
69
  * Skip the DXOS banner.
80
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ClientProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/ClientProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAEZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAIvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAgB,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAyB,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGnE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAC,GAC1E,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAClC,iBAAiB,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IAEH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IAEH,QAAQ,CAAC,EAAE,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEhG;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE1D;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACxD,CAAC,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,cAAc;IAjDvB;;;;OAIG;aACM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;;;OAIG;aAEM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;;;OAIG;eAEQ,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAE/F;;OAEG;eACQ,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEzD;;;OAGG;qBACc,OAAO;IAExB;;OAEG;eACQ,OAAO;IAElB;;OAEG;oBACa,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC;;;4CA2HzD,CAAC"}
1
+ {"version":3,"file":"ClientProvider.d.ts","sourceRoot":"","sources":["../../../../src/client/ClientProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EACZ,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAKvB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,sBAAsB,EAAgB,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAC,GAC1E,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAClC,iBAAiB,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IAEH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C;;;;OAIG;IAEH,QAAQ,CAAC,EAAE,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEhG;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE1D;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACxD,CAAC,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,cAAc;IA3CvB;;;;OAIG;aACM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;;;OAIG;aAEM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;;;OAIG;eAEQ,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAE/F;;OAEG;eACQ,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEzD;;OAEG;eACQ,OAAO;IAElB;;OAEG;oBACa,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC;;;4CAgHzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useClientStatus.d.ts","sourceRoot":"","sources":["../../../../src/client/useClientStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9D,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,oCAY7C,CAAC"}
1
+ {"version":3,"file":"useClientStatus.d.ts","sourceRoot":"","sources":["../../../../src/client/useClientStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9D,eAAO,MAAM,eAAe,WAAY,MAAM,oCAY7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useStream.d.ts","sourceRoot":"","sources":["../../../../src/devtools/useStream.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAG1D;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,eAAe,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,OAAM,cAAmB,KAAG,CAmBzG,CAAC"}
1
+ {"version":3,"file":"useStream.d.ts","sourceRoot":"","sources":["../../../../src/devtools/useStream.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAG1D;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,iBAAiB,MAAM,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAQ,cAAc,KAAQ,CAmBzG,CAAC"}
@@ -1,10 +1,10 @@
1
1
  export * from '@dxos/client/echo';
2
+ export * from '@dxos/echo-react';
2
3
  export * from './useMembers';
3
- export * from './useQuery';
4
4
  export * from './useQueue';
5
- export * from './useSchema';
6
5
  export * from './useSpaces';
7
6
  export * from './useSpaceInvitations';
7
+ export * from './useSpaceProperties';
8
8
  export * from './useSubscription';
9
9
  export * from './useSyncState';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/echo/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAElC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/echo/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type PublicKey } from '@dxos/client';
1
+ import { type PublicKeyLike } from '@dxos/client';
2
2
  import { type SpaceMember } from '@dxos/client/echo';
3
- export declare const useMembers: (spaceKey: PublicKey | undefined) => SpaceMember[];
3
+ export declare const useMembers: (spaceKey: PublicKeyLike | undefined) => SpaceMember[];
4
4
  //# sourceMappingURL=useMembers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMembers.d.ts","sourceRoot":"","sources":["../../../../src/echo/useMembers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKtE,eAAO,MAAM,UAAU,GAAI,UAAU,SAAS,GAAG,SAAS,KAAG,WAAW,EAQvE,CAAC"}
1
+ {"version":3,"file":"useMembers.d.ts","sourceRoot":"","sources":["../../../../src/echo/useMembers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKtE,eAAO,MAAM,UAAU,aAAc,aAAa,GAAG,SAAS,KAAG,WAAW,EAU3E,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import { type Queue } from '@dxos/client/echo';
2
- import { type Obj, type Relation } from '@dxos/echo';
2
+ import { type Entity } from '@dxos/echo';
3
3
  import { type DXN } from '@dxos/keys';
4
4
  export type UseQueueOptions = {
5
5
  pollInterval?: number;
6
6
  };
7
7
  /**
8
8
  * Polls the given Edge queue.
9
+ * @deprecated Use `useQuery` instead.
9
10
  */
10
- export declare const useQueue: <T extends Obj.Any | Relation.Any>(queueDxn?: DXN, options?: UseQueueOptions) => Queue<T> | undefined;
11
+ export declare const useQueue: <T extends Entity.Unknown>(queueDxn?: DXN, options?: UseQueueOptions) => Queue<T> | undefined;
11
12
  //# sourceMappingURL=useQueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQueue.d.ts","sourceRoot":"","sources":["../../../../src/echo/useQueue.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAMtC,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AAKH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EACvD,WAAW,GAAG,EACd,UAAS,eAAoB,KAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,SA4Cb,CAAC"}
1
+ {"version":3,"file":"useQueue.d.ts","sourceRoot":"","sources":["../../../../src/echo/useQueue.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAMtC,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AAGH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,OAAO,aACpC,GAAG,YACL,eAAe,KACvB,KAAK,CAAC,CAAC,CAAC,GAAG,SA4Cb,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type PublicKey } from '@dxos/client';
2
+ import { type SpaceId } from '@dxos/client/echo';
2
3
  import { type CancellableInvitationObservable } from '../invitations';
3
- export declare const useSpaceInvitations: (spaceKey?: PublicKey) => CancellableInvitationObservable[];
4
- export declare const useSpaceInvitation: (spaceKey?: PublicKey, invitationId?: string) => import("../invitations").InvitationStatus;
4
+ export declare const useSpaceInvitations: (spaceId?: SpaceId | PublicKey) => CancellableInvitationObservable[];
5
+ export declare const useSpaceInvitation: (spaceId?: SpaceId | PublicKey, invitationId?: string) => import("../invitations").InvitationStatus;
5
6
  //# sourceMappingURL=useSpaceInvitations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSpaceInvitations.d.ts","sourceRoot":"","sources":["../../../../src/echo/useSpaceInvitations.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,EAAE,KAAK,+BAA+B,EAAuB,MAAM,gBAAgB,CAAC;AAE3F,eAAO,MAAM,mBAAmB,GAAI,WAAW,SAAS,KAAG,+BAA+B,EAGzF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,EAAE,eAAe,MAAM,8CAO7E,CAAC"}
1
+ {"version":3,"file":"useSpaceInvitations.d.ts","sourceRoot":"","sources":["../../../../src/echo/useSpaceInvitations.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,KAAK,+BAA+B,EAAuB,MAAM,gBAAgB,CAAC;AAK3F,eAAO,MAAM,mBAAmB,aAAc,OAAO,GAAG,SAAS,KAAG,+BAA+B,EAGlG,CAAC;AAIF,eAAO,MAAM,kBAAkB,aAAc,OAAO,GAAG,SAAS,iBAAiB,MAAM,8CAOtF,CAAC"}