@dxos/react-client 0.8.3 → 0.8.4-main.1da679c

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 (369) hide show
  1. package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
  2. package/dist/lib/browser/{chunk-AL2CUQ46.mjs → chunk-BXOLJYAY.mjs} +5 -5
  3. package/dist/lib/{node-esm/chunk-UYJUBYMU.mjs.map → browser/chunk-BXOLJYAY.mjs.map} +3 -3
  4. package/dist/lib/browser/{chunk-72QD3PXL.mjs → chunk-TA2HGRAF.mjs} +76 -79
  5. package/dist/lib/browser/chunk-TA2HGRAF.mjs.map +7 -0
  6. package/dist/lib/browser/devtools/index.mjs +6 -6
  7. package/dist/lib/browser/devtools/index.mjs.map +3 -3
  8. package/dist/lib/browser/echo/index.mjs +28 -31
  9. package/dist/lib/browser/echo/index.mjs.map +3 -3
  10. package/dist/lib/browser/halo/index.mjs +28 -13
  11. package/dist/lib/browser/halo/index.mjs.map +3 -3
  12. package/dist/lib/browser/index.mjs +2 -2
  13. package/dist/lib/browser/invitations/index.mjs +1 -1
  14. package/dist/lib/browser/mesh/index.mjs +3 -3
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/testing/index.mjs +41 -43
  17. package/dist/lib/browser/testing/index.mjs.map +3 -3
  18. package/dist/lib/browser/worker.mjs +1 -1
  19. package/dist/lib/node-esm/{chunk-UYJUBYMU.mjs → chunk-256IHY6F.mjs} +5 -5
  20. package/dist/lib/{browser/chunk-AL2CUQ46.mjs.map → node-esm/chunk-256IHY6F.mjs.map} +3 -3
  21. package/dist/lib/node-esm/{chunk-NBTZZNQ5.mjs → chunk-ZJMNF7GC.mjs} +76 -79
  22. package/dist/lib/node-esm/chunk-ZJMNF7GC.mjs.map +7 -0
  23. package/dist/lib/node-esm/devtools/index.mjs +6 -6
  24. package/dist/lib/node-esm/devtools/index.mjs.map +3 -3
  25. package/dist/lib/node-esm/echo/index.mjs +28 -31
  26. package/dist/lib/node-esm/echo/index.mjs.map +3 -3
  27. package/dist/lib/node-esm/halo/index.mjs +28 -13
  28. package/dist/lib/node-esm/halo/index.mjs.map +3 -3
  29. package/dist/lib/node-esm/index.mjs +2 -2
  30. package/dist/lib/node-esm/invitations/index.mjs +1 -1
  31. package/dist/lib/node-esm/mesh/index.mjs +3 -3
  32. package/dist/lib/node-esm/meta.json +1 -1
  33. package/dist/lib/node-esm/testing/index.mjs +41 -43
  34. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  35. package/dist/lib/node-esm/worker.mjs +1 -1
  36. package/dist/types/src/client/AgentHostingProvider.d.ts.map +1 -1
  37. package/dist/types/src/client/ClientProvider.d.ts.map +1 -1
  38. package/dist/types/src/echo/useQuery.d.ts +3 -3
  39. package/dist/types/src/echo/useQuery.d.ts.map +1 -1
  40. package/dist/types/src/echo/useSpaceInvitations.d.ts.map +1 -1
  41. package/dist/types/src/echo/useSpaces.d.ts.map +1 -1
  42. package/dist/types/src/echo/useSyncState.d.ts +1 -1
  43. package/dist/types/src/echo/useSyncState.d.ts.map +1 -1
  44. package/dist/types/src/halo/Passkey.stories.d.ts +5 -5
  45. package/dist/types/src/halo/Passkey.stories.d.ts.map +1 -1
  46. package/dist/types/src/halo/useHaloInvitations.d.ts.map +1 -1
  47. package/dist/types/src/playwright/{playwright.config.d.cts → playwright.config.d.ts} +1 -1
  48. package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
  49. package/dist/types/src/testing/ClientRepeater.d.ts.map +1 -1
  50. package/dist/types/src/testing/ClientRepeater.stories.d.ts +6 -9
  51. package/dist/types/src/testing/ClientRepeater.stories.d.ts.map +1 -1
  52. package/dist/types/src/testing/withClientProvider.d.ts +1 -1
  53. package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
  54. package/dist/types/src/testing/withClientProvider.stories.d.ts +7 -9
  55. package/dist/types/src/testing/withClientProvider.stories.d.ts.map +1 -1
  56. package/dist/types/tsconfig.tsbuildinfo +1 -1
  57. package/moon.yml +19 -0
  58. package/package.json +33 -25
  59. package/src/client/AgentHostingProvider.tsx +1 -1
  60. package/src/client/ClientProvider.test.tsx +3 -2
  61. package/src/client/ClientProvider.tsx +33 -36
  62. package/src/client/useConfig.test.tsx +2 -1
  63. package/src/devtools/useStream.ts +1 -1
  64. package/src/echo/useQuery.test.tsx +2 -1
  65. package/src/echo/useQuery.ts +12 -4
  66. package/src/echo/useSpaceInvitations.ts +2 -1
  67. package/src/echo/useSpaces.test.tsx +2 -1
  68. package/src/echo/useSpaces.ts +5 -9
  69. package/src/echo/useSyncState.ts +3 -3
  70. package/src/halo/Passkey.stories.tsx +12 -6
  71. package/src/halo/useDevices.test.tsx +2 -1
  72. package/src/halo/useHaloInvitations.ts +1 -1
  73. package/src/invitations/useInvitationStatus.ts +1 -1
  74. package/src/playwright/playwright.config.ts +17 -0
  75. package/src/playwright/smoke.spec.ts +4 -6
  76. package/src/testing/ClientRepeater.stories.tsx +11 -5
  77. package/src/testing/ClientRepeater.tsx +20 -24
  78. package/src/testing/withClientProvider.stories.tsx +14 -8
  79. package/src/testing/withClientProvider.tsx +7 -6
  80. package/vitest.config.ts +1 -1
  81. package/.eslintrc.cjs +0 -12
  82. package/README.yml +0 -33
  83. package/dist/lib/browser/chunk-72QD3PXL.mjs.map +0 -7
  84. package/dist/lib/node/chunk-5RUIFUEC.cjs +0 -334
  85. package/dist/lib/node/chunk-5RUIFUEC.cjs.map +0 -7
  86. package/dist/lib/node/chunk-FYOAVV65.cjs +0 -188
  87. package/dist/lib/node/chunk-FYOAVV65.cjs.map +0 -7
  88. package/dist/lib/node/devtools/index.cjs +0 -62
  89. package/dist/lib/node/devtools/index.cjs.map +0 -7
  90. package/dist/lib/node/echo/index.cjs +0 -302
  91. package/dist/lib/node/echo/index.cjs.map +0 -7
  92. package/dist/lib/node/halo/index.cjs +0 -123
  93. package/dist/lib/node/halo/index.cjs.map +0 -7
  94. package/dist/lib/node/index.cjs +0 -55
  95. package/dist/lib/node/index.cjs.map +0 -7
  96. package/dist/lib/node/invitations/index.cjs +0 -39
  97. package/dist/lib/node/invitations/index.cjs.map +0 -7
  98. package/dist/lib/node/mesh/index.cjs +0 -37
  99. package/dist/lib/node/mesh/index.cjs.map +0 -7
  100. package/dist/lib/node/meta.json +0 -1
  101. package/dist/lib/node/testing/index.cjs +0 -278
  102. package/dist/lib/node/testing/index.cjs.map +0 -7
  103. package/dist/lib/node/worker.cjs +0 -23
  104. package/dist/lib/node/worker.cjs.map +0 -7
  105. package/dist/lib/node-esm/chunk-NBTZZNQ5.mjs.map +0 -7
  106. package/dist/types/src/playwright/playwright.config.d.cts.map +0 -1
  107. package/project.json +0 -40
  108. package/src/playwright/playwright.config.cts +0 -18
  109. package/typedoc/.nojekyll +0 -1
  110. package/typedoc/assets/hierarchy.js +0 -1
  111. package/typedoc/assets/highlight.css +0 -99
  112. package/typedoc/assets/icons.js +0 -18
  113. package/typedoc/assets/icons.svg +0 -1
  114. package/typedoc/assets/main.js +0 -60
  115. package/typedoc/assets/navigation.js +0 -1
  116. package/typedoc/assets/search.js +0 -1
  117. package/typedoc/assets/style.css +0 -1640
  118. package/typedoc/classes/echo.Hypergraph.html +0 -17
  119. package/typedoc/classes/echo.PropertiesType.html +0 -19
  120. package/typedoc/classes/echo.QueryResult.html +0 -18
  121. package/typedoc/classes/halo.KeyStore.html +0 -6
  122. package/typedoc/classes/index.AgentClientServiceProvider.html +0 -10
  123. package/typedoc/classes/index.AgentManagerClient.html +0 -22
  124. package/typedoc/classes/index.AlreadyJoinedError.html +0 -15
  125. package/typedoc/classes/index.ApiError.html +0 -16
  126. package/typedoc/classes/index.CancelledError.html +0 -16
  127. package/typedoc/classes/index.Client.html +0 -51
  128. package/typedoc/classes/index.ClientServicesProxy.html +0 -12
  129. package/typedoc/classes/index.Config.html +0 -17
  130. package/typedoc/classes/index.DataCorruptionError.html +0 -16
  131. package/typedoc/classes/index.DatabaseError.html +0 -15
  132. package/typedoc/classes/index.EntityNotFoundError.html +0 -15
  133. package/typedoc/classes/index.FakeAgentHostingProvider.html +0 -7
  134. package/typedoc/classes/index.IFrameManager.html +0 -6
  135. package/typedoc/classes/index.IdentityNotInitializedError.html +0 -15
  136. package/typedoc/classes/index.InvalidConfigError.html +0 -16
  137. package/typedoc/classes/index.InvalidInvitationError.html +0 -15
  138. package/typedoc/classes/index.InvalidInvitationExtensionRoleError.html +0 -16
  139. package/typedoc/classes/index.InvalidStorageVersionError.html +0 -15
  140. package/typedoc/classes/index.LocalClientServices.html +0 -12
  141. package/typedoc/classes/index.PublicKey.html +0 -55
  142. package/typedoc/classes/index.RemoteServiceConnectionError.html +0 -15
  143. package/typedoc/classes/index.RemoteServiceConnectionTimeout.html +0 -15
  144. package/typedoc/classes/index.RpcClosedError.html +0 -15
  145. package/typedoc/classes/index.RpcNotOpenError.html +0 -15
  146. package/typedoc/classes/index.SharedWorkerConnection.html +0 -5
  147. package/typedoc/classes/index.Shell.html +0 -35
  148. package/typedoc/classes/index.ShellManager.html +0 -9
  149. package/typedoc/classes/index.SystemError.html +0 -16
  150. package/typedoc/classes/index.UnknownModelError.html +0 -15
  151. package/typedoc/classes/index.WorkerClientServices.html +0 -12
  152. package/typedoc/classes/invitations.AuthenticatingInvitationObservable.html +0 -30
  153. package/typedoc/classes/invitations.CancellableInvitationObservable.html +0 -29
  154. package/typedoc/classes/invitations.InvitationEncoder.html +0 -5
  155. package/typedoc/classes/invitations.InvitationsProxy.html +0 -12
  156. package/typedoc/enums/devtools.KeyType.html +0 -9
  157. package/typedoc/enums/echo.HaloSpaceMember.Role.html +0 -9
  158. package/typedoc/enums/echo.IndexKind.Kind.html +0 -8
  159. package/typedoc/enums/echo.QueryOptions.DataLocation.html +0 -6
  160. package/typedoc/enums/echo.QueryOptions.ShowDeletedOption.html +0 -6
  161. package/typedoc/enums/echo.ResultFormat.html +0 -10
  162. package/typedoc/enums/echo.SpaceMember.PresenceState.html +0 -5
  163. package/typedoc/enums/echo.SpaceState.html +0 -13
  164. package/typedoc/enums/echo.TextKind.html +0 -5
  165. package/typedoc/enums/halo.Device.PresenceState.html +0 -6
  166. package/typedoc/enums/halo.DeviceKind.html +0 -5
  167. package/typedoc/enums/halo.DeviceType.html +0 -9
  168. package/typedoc/enums/index.ShellDisplay.html +0 -5
  169. package/typedoc/enums/index.ShellLayout.html +0 -13
  170. package/typedoc/enums/index.SystemStatus.html +0 -5
  171. package/typedoc/enums/invitations.Invitation.AuthMethod.html +0 -6
  172. package/typedoc/enums/invitations.Invitation.Kind.html +0 -5
  173. package/typedoc/enums/invitations.Invitation.State.html +0 -13
  174. package/typedoc/enums/invitations.Invitation.Type.html +0 -6
  175. package/typedoc/enums/mesh.ConnectionState.html +0 -5
  176. package/typedoc/functions/devtools.useDevtools.html +0 -1
  177. package/typedoc/functions/devtools.useStream.html +0 -2
  178. package/typedoc/functions/echo.useMembers.html +0 -1
  179. package/typedoc/functions/echo.useQueue.html +0 -2
  180. package/typedoc/functions/echo.useSchema.html +0 -2
  181. package/typedoc/functions/echo.useSpace.html +0 -6
  182. package/typedoc/functions/echo.useSpaceInvitation.html +0 -1
  183. package/typedoc/functions/echo.useSpaceInvitations.html +0 -1
  184. package/typedoc/functions/echo.useSpaceSyncState.html +0 -2
  185. package/typedoc/functions/echo.useSpaces.html +0 -5
  186. package/typedoc/functions/echo.useSubscription.html +0 -3
  187. package/typedoc/functions/echo.useSyncState.html +0 -2
  188. package/typedoc/functions/halo.useContacts.html +0 -4
  189. package/typedoc/functions/halo.useCredentials.html +0 -1
  190. package/typedoc/functions/halo.useDevices.html +0 -1
  191. package/typedoc/functions/halo.useHaloInvitation.html +0 -1
  192. package/typedoc/functions/halo.useHaloInvitations.html +0 -1
  193. package/typedoc/functions/halo.useIdentity.html +0 -3
  194. package/typedoc/functions/halo.useKeyStore.html +0 -3
  195. package/typedoc/functions/index.AgentHostingProvider.html +0 -2
  196. package/typedoc/functions/index.useAgentHostingClient.html +0 -1
  197. package/typedoc/functions/index.useClient.html +0 -3
  198. package/typedoc/functions/index.useClientStatus.html +0 -1
  199. package/typedoc/functions/index.useConfig.html +0 -3
  200. package/typedoc/functions/index.useShell.html +0 -2
  201. package/typedoc/functions/index.useShellDisplay.html +0 -2
  202. package/typedoc/functions/index.useStatus.html +0 -1
  203. package/typedoc/functions/invitations.useInvitationStatus.html +0 -1
  204. package/typedoc/functions/mesh.useNetworkStatus.html +0 -2
  205. package/typedoc/hierarchy.html +0 -1
  206. package/typedoc/index.html +0 -23
  207. package/typedoc/interfaces/devtools.DevtoolsHook.html +0 -22
  208. package/typedoc/interfaces/devtools.DevtoolsHost.html +0 -26
  209. package/typedoc/interfaces/echo.DocAccessor.html +0 -3
  210. package/typedoc/interfaces/echo.Echo.html +0 -39
  211. package/typedoc/interfaces/echo.EchoDatabase.html +0 -25
  212. package/typedoc/interfaces/echo.Expando.html +0 -3
  213. package/typedoc/interfaces/echo.Filter.html +0 -3
  214. package/typedoc/interfaces/echo.HaloSpaceMember.html +0 -18
  215. package/typedoc/interfaces/echo.IDocHandle.html +0 -6
  216. package/typedoc/interfaces/echo.IndexKind.html +0 -9
  217. package/typedoc/interfaces/echo.Query.html +0 -34
  218. package/typedoc/interfaces/echo.QueryOptions.html +0 -39
  219. package/typedoc/interfaces/echo.Queue.html +0 -17
  220. package/typedoc/interfaces/echo.Ref.html +0 -32
  221. package/typedoc/interfaces/echo.Space.html +0 -39
  222. package/typedoc/interfaces/echo.SpaceMember.html +0 -7
  223. package/typedoc/interfaces/echo.SpaceSyncState.PeerState.html +0 -14
  224. package/typedoc/interfaces/echo.SpaceSyncState.html +0 -4
  225. package/typedoc/interfaces/echo.SubscriptionHandle.html +0 -5
  226. package/typedoc/interfaces/echo.TypedObject.html +0 -16
  227. package/typedoc/interfaces/halo.Contact.html +0 -10
  228. package/typedoc/interfaces/halo.Credential.html +0 -27
  229. package/typedoc/interfaces/halo.Device.html +0 -11
  230. package/typedoc/interfaces/halo.Halo.html +0 -16
  231. package/typedoc/interfaces/halo.Identity.html +0 -15
  232. package/typedoc/interfaces/index.AgentHostingProviderClient.html +0 -6
  233. package/typedoc/interfaces/index.AppContextRequest.html +0 -33
  234. package/typedoc/interfaces/index.ClientServicesProvider.html +0 -9
  235. package/typedoc/interfaces/index.InvitationUrlRequest.html +0 -9
  236. package/typedoc/interfaces/index.LayoutRequest.html +0 -29
  237. package/typedoc/interfaces/index.ShellRuntime.html +0 -15
  238. package/typedoc/interfaces/invitations.Invitation.html +0 -92
  239. package/typedoc/interfaces/invitations.Invitations.html +0 -5
  240. package/typedoc/interfaces/mesh.GossipMessage.html +0 -10
  241. package/typedoc/interfaces/mesh.NetworkStatus.Signal.html +0 -5
  242. package/typedoc/interfaces/mesh.NetworkStatus.html +0 -6
  243. package/typedoc/media/LICENSE +0 -8
  244. package/typedoc/modules/devtools.html +0 -1
  245. package/typedoc/modules/echo.Filter.html +0 -1
  246. package/typedoc/modules/echo.HaloSpaceMember.html +0 -1
  247. package/typedoc/modules/echo.IndexKind.html +0 -1
  248. package/typedoc/modules/echo.Query.html +0 -1
  249. package/typedoc/modules/echo.QueryOptions.html +0 -1
  250. package/typedoc/modules/echo.Ref.html +0 -2
  251. package/typedoc/modules/echo.SpaceMember.html +0 -1
  252. package/typedoc/modules/echo.SpaceSyncState.html +0 -1
  253. package/typedoc/modules/echo.html +0 -1
  254. package/typedoc/modules/halo.Device.html +0 -1
  255. package/typedoc/modules/halo.html +0 -1
  256. package/typedoc/modules/index.html +0 -1
  257. package/typedoc/modules/invitations.Invitation.html +0 -1
  258. package/typedoc/modules/invitations.html +0 -1
  259. package/typedoc/modules/mesh.NetworkStatus.html +0 -1
  260. package/typedoc/modules/mesh.html +0 -1
  261. package/typedoc/modules/worker.html +0 -1
  262. package/typedoc/modules.html +0 -1
  263. package/typedoc/types/devtools.MountOptions.html +0 -3
  264. package/typedoc/types/echo.AnyLiveObject.html +0 -2
  265. package/typedoc/types/echo.Filter.And.html +0 -1
  266. package/typedoc/types/echo.Filter.Any.html +0 -1
  267. package/typedoc/types/echo.Filter.Or.html +0 -1
  268. package/typedoc/types/echo.Filter.Props.html +0 -1
  269. package/typedoc/types/echo.Filter.Type.html +0 -1
  270. package/typedoc/types/echo.Live.html +0 -5
  271. package/typedoc/types/echo.ObjectMeta.html +0 -1
  272. package/typedoc/types/echo.ObjectMigration.html +0 -7
  273. package/typedoc/types/echo.ObjectVersion.html +0 -2
  274. package/typedoc/types/echo.PeerSyncState.html +0 -1
  275. package/typedoc/types/echo.Progress.html +0 -3
  276. package/typedoc/types/echo.PropertiesTypeProps.html +0 -1
  277. package/typedoc/types/echo.Query.Any.html +0 -1
  278. package/typedoc/types/echo.Query.TextSearchOptions.html +0 -2
  279. package/typedoc/types/echo.Query.Type.html +0 -1
  280. package/typedoc/types/echo.Ref.Target.html +0 -2
  281. package/typedoc/types/echo.Selection.html +0 -1
  282. package/typedoc/types/echo.SpaceId.html +0 -6
  283. package/typedoc/types/echo.SpaceSyncStateMap.html +0 -1
  284. package/typedoc/types/echo.UseQueueOptions.html +0 -2
  285. package/typedoc/types/echo.UseSpacesParams.html +0 -3
  286. package/typedoc/types/index.AgentHostingProviderProps.html +0 -3
  287. package/typedoc/types/index.ClientContextProps.html +0 -3
  288. package/typedoc/types/index.ClientOptions.html +0 -12
  289. package/typedoc/types/index.ClientProviderProps.html +0 -2
  290. package/typedoc/types/index.ClientServices.html +0 -15
  291. package/typedoc/types/index.FromAgentOptions.html +0 -2
  292. package/typedoc/types/index.PublicKeyLike.html +0 -2
  293. package/typedoc/types/invitations.InvitationAction.html +0 -1
  294. package/typedoc/types/invitations.InvitationResult.html +0 -5
  295. package/typedoc/types/invitations.InvitationStatus.html +0 -15
  296. package/typedoc/variables/devtools.mountDevtoolsHooks.html +0 -1
  297. package/typedoc/variables/devtools.unmountDevtoolsHooks.html +0 -1
  298. package/typedoc/variables/echo.DocAccessor.html +0 -1
  299. package/typedoc/variables/echo.EchoObjectSchema.html +0 -1
  300. package/typedoc/variables/echo.Expando.html +0 -1
  301. package/typedoc/variables/echo.FQ_ID_LENGTH.html +0 -1
  302. package/typedoc/variables/echo.Filter.html +0 -1
  303. package/typedoc/variables/echo.OBJECT_ID_LENGTH.html +0 -1
  304. package/typedoc/variables/echo.ObjectVersion.html +0 -1
  305. package/typedoc/variables/echo.Query.html +0 -1
  306. package/typedoc/variables/echo.Queue.html +0 -1
  307. package/typedoc/variables/echo.ReactiveObjectSchema.html +0 -1
  308. package/typedoc/variables/echo.Ref.html +0 -2
  309. package/typedoc/variables/echo.RefArray.html +0 -2
  310. package/typedoc/variables/echo.SPACE_ID_LENGTH.html +0 -1
  311. package/typedoc/variables/echo.SpaceId.html +0 -1
  312. package/typedoc/variables/echo.SpaceSchema.html +0 -1
  313. package/typedoc/variables/echo.TypedObject.html +0 -3
  314. package/typedoc/variables/echo.compareForeignKeys.html +0 -1
  315. package/typedoc/variables/echo.createDocAccessor.html +0 -1
  316. package/typedoc/variables/echo.createEmptyEdgeSyncState.html +0 -1
  317. package/typedoc/variables/echo.createObject.html +0 -1
  318. package/typedoc/variables/echo.createQueueDXN.html +0 -2
  319. package/typedoc/variables/echo.createSubscription.html +0 -5
  320. package/typedoc/variables/echo.defineObjectMigration.html +0 -1
  321. package/typedoc/variables/echo.fromCursor.html +0 -1
  322. package/typedoc/variables/echo.fullyQualifiedId.html +0 -4
  323. package/typedoc/variables/echo.getMeta.html +0 -1
  324. package/typedoc/variables/echo.getObjectCore.html +0 -1
  325. package/typedoc/variables/echo.getRangeFromCursor.html +0 -1
  326. package/typedoc/variables/echo.getSchema.html +0 -2
  327. package/typedoc/variables/echo.getSource.html +0 -4
  328. package/typedoc/variables/echo.getSpace.html +0 -1
  329. package/typedoc/variables/echo.getSyncSummary.html +0 -1
  330. package/typedoc/variables/echo.getTarget.html +0 -4
  331. package/typedoc/variables/echo.getTextInRange.html +0 -2
  332. package/typedoc/variables/echo.getType.html +0 -5
  333. package/typedoc/variables/echo.getTypename.html +0 -6
  334. package/typedoc/variables/echo.getVersion.html +0 -3
  335. package/typedoc/variables/echo.importSpace.html +0 -1
  336. package/typedoc/variables/echo.internalDecodeReference.html +0 -1
  337. package/typedoc/variables/echo.isEchoObject.html +0 -2
  338. package/typedoc/variables/echo.isLiveObject.html +0 -2
  339. package/typedoc/variables/echo.isRelation.html +0 -2
  340. package/typedoc/variables/echo.isSpace.html +0 -1
  341. package/typedoc/variables/echo.live.html +0 -3
  342. package/typedoc/variables/echo.loadObjectReferences.html +0 -7
  343. package/typedoc/variables/echo.makeRef.html +0 -2
  344. package/typedoc/variables/echo.parseFullyQualifiedId.html +0 -2
  345. package/typedoc/variables/echo.parseId.html +0 -1
  346. package/typedoc/variables/echo.refFromDXN.html +0 -2
  347. package/typedoc/variables/echo.toCursor.html +0 -1
  348. package/typedoc/variables/echo.toCursorRange.html +0 -1
  349. package/typedoc/variables/echo.updateText.html +0 -6
  350. package/typedoc/variables/echo.useQuery.html +0 -2
  351. package/typedoc/variables/index.AgentHostingContext.html +0 -1
  352. package/typedoc/variables/index.ClientProvider.html +0 -3
  353. package/typedoc/variables/index.DXOS_VERSION.html +0 -1
  354. package/typedoc/variables/index.Defaults.html +0 -2
  355. package/typedoc/variables/index.Dynamics.html +0 -2
  356. package/typedoc/variables/index.Envs.html +0 -2
  357. package/typedoc/variables/index.Local.html +0 -2
  358. package/typedoc/variables/index.Remote.html +0 -1
  359. package/typedoc/variables/index.Storage.html +0 -2
  360. package/typedoc/variables/index.createClientServices.html +0 -4
  361. package/typedoc/variables/index.fromAgent.html +0 -2
  362. package/typedoc/variables/index.fromHost.html +0 -2
  363. package/typedoc/variables/index.fromSocket.html +0 -2
  364. package/typedoc/variables/index.fromWorker.html +0 -2
  365. package/typedoc/variables/index.getUnixSocket.html +0 -1
  366. package/typedoc/variables/index.resolveRef.html +0 -1
  367. package/typedoc/variables/index.useMulticastObservable.html +0 -3
  368. package/typedoc/variables/worker.getWorkerServiceHost.html +0 -1
  369. package/typedoc/variables/worker.onconnect.html +0 -1
package/moon.yml ADDED
@@ -0,0 +1,19 @@
1
+ type: library
2
+ language: typescript
3
+ tags:
4
+ - e2e
5
+ - ts-build
6
+ - ts-test
7
+ - typedoc
8
+ - pack
9
+ tasks:
10
+ compile:
11
+ args:
12
+ - '--entryPoint=src/devtools/index.ts'
13
+ - '--entryPoint=src/echo/index.ts'
14
+ - '--entryPoint=src/halo/index.ts'
15
+ - '--entryPoint=src/index.ts'
16
+ - '--entryPoint=src/invitations/index.ts'
17
+ - '--entryPoint=src/mesh/index.ts'
18
+ - '--entryPoint=src/testing/index.ts'
19
+ - '--entryPoint=src/worker.ts'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-client",
3
- "version": "0.8.3",
3
+ "version": "0.8.4-main.1da679c",
4
4
  "description": "React client API",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -10,41 +10,49 @@
10
10
  "type": "module",
11
11
  "exports": {
12
12
  "./devtools": {
13
+ "source": "./src/devtools/index.ts",
13
14
  "types": "./dist/types/src/devtools/index.d.ts",
14
15
  "browser": "./dist/lib/browser/devtools/index.mjs",
15
16
  "node": "./dist/lib/node-esm/devtools/index.mjs"
16
17
  },
17
18
  "./echo": {
19
+ "source": "./src/echo/index.ts",
18
20
  "types": "./dist/types/src/echo/index.d.ts",
19
21
  "browser": "./dist/lib/browser/echo/index.mjs",
20
22
  "node": "./dist/lib/node-esm/echo/index.mjs"
21
23
  },
22
24
  "./halo": {
25
+ "source": "./src/halo/index.ts",
23
26
  "types": "./dist/types/src/halo/index.d.ts",
24
27
  "browser": "./dist/lib/browser/halo/index.mjs",
25
28
  "node": "./dist/lib/node-esm/halo/index.mjs"
26
29
  },
27
30
  ".": {
31
+ "source": "./src/index.ts",
28
32
  "types": "./dist/types/src/index.d.ts",
29
33
  "browser": "./dist/lib/browser/index.mjs",
30
34
  "node": "./dist/lib/node-esm/index.mjs"
31
35
  },
32
36
  "./invitations": {
37
+ "source": "./src/invitations/index.ts",
33
38
  "types": "./dist/types/src/invitations/index.d.ts",
34
39
  "browser": "./dist/lib/browser/invitations/index.mjs",
35
40
  "node": "./dist/lib/node-esm/invitations/index.mjs"
36
41
  },
37
42
  "./mesh": {
43
+ "source": "./src/mesh/index.ts",
38
44
  "types": "./dist/types/src/mesh/index.d.ts",
39
45
  "browser": "./dist/lib/browser/mesh/index.mjs",
40
46
  "node": "./dist/lib/node-esm/mesh/index.mjs"
41
47
  },
42
48
  "./testing": {
49
+ "source": "./src/testing/index.ts",
43
50
  "types": "./dist/types/src/testing/index.d.ts",
44
51
  "browser": "./dist/lib/browser/testing/index.mjs",
45
52
  "node": "./dist/lib/node-esm/testing/index.mjs"
46
53
  },
47
54
  "./worker": {
55
+ "source": "./src/worker.ts",
48
56
  "types": "./dist/types/src/worker.d.ts",
49
57
  "browser": "./dist/lib/browser/worker.mjs",
50
58
  "node": "./dist/lib/node-esm/worker.mjs"
@@ -78,21 +86,21 @@
78
86
  },
79
87
  "dependencies": {
80
88
  "react-error-boundary": "^4.0.13",
81
- "@dxos/async": "0.8.3",
82
- "@dxos/client": "0.8.3",
83
- "@dxos/codec-protobuf": "0.8.3",
84
- "@dxos/config": "0.8.3",
85
- "@dxos/context": "0.8.3",
86
- "@dxos/debug": "0.8.3",
87
- "@dxos/echo": "0.8.3",
88
- "@dxos/echo-schema": "0.8.3",
89
- "@dxos/echo-signals": "0.8.3",
90
- "@dxos/invariant": "0.8.3",
91
- "@dxos/log": "0.8.3",
92
- "@dxos/node-std": "0.8.3",
93
- "@dxos/protocols": "0.8.3",
94
- "@dxos/react-hooks": "0.8.3",
95
- "@dxos/util": "0.8.3"
89
+ "@dxos/client": "0.8.4-main.1da679c",
90
+ "@dxos/async": "0.8.4-main.1da679c",
91
+ "@dxos/context": "0.8.4-main.1da679c",
92
+ "@dxos/config": "0.8.4-main.1da679c",
93
+ "@dxos/debug": "0.8.4-main.1da679c",
94
+ "@dxos/echo": "0.8.4-main.1da679c",
95
+ "@dxos/echo-schema": "0.8.4-main.1da679c",
96
+ "@dxos/invariant": "0.8.4-main.1da679c",
97
+ "@dxos/echo-signals": "0.8.4-main.1da679c",
98
+ "@dxos/node-std": "0.8.4-main.1da679c",
99
+ "@dxos/log": "0.8.4-main.1da679c",
100
+ "@dxos/protocols": "0.8.4-main.1da679c",
101
+ "@dxos/react-hooks": "0.8.4-main.1da679c",
102
+ "@dxos/codec-protobuf": "0.8.4-main.1da679c",
103
+ "@dxos/util": "0.8.4-main.1da679c"
96
104
  },
97
105
  "devDependencies": {
98
106
  "@types/react": "~18.2.0",
@@ -100,21 +108,21 @@
100
108
  "react": "~18.2.0",
101
109
  "react-dom": "~18.2.0",
102
110
  "typedoc": "0.28.1",
103
- "@dxos/random": "0.8.3",
104
- "@dxos/react-ui": "0.8.3",
105
- "@dxos/react-ui-syntax-highlighter": "0.8.3",
106
- "@dxos/react-ui-theme": "0.8.3",
107
- "@dxos/storybook-utils": "0.8.3",
108
- "@dxos/test-utils": "0.8.3"
111
+ "@dxos/react-ui": "0.8.4-main.1da679c",
112
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.1da679c",
113
+ "@dxos/react-ui-theme": "0.8.4-main.1da679c",
114
+ "@dxos/storybook-utils": "0.8.4-main.1da679c",
115
+ "@dxos/test-utils": "0.8.4-main.1da679c",
116
+ "@dxos/random": "0.8.4-main.1da679c"
109
117
  },
110
118
  "peerDependencies": {
111
119
  "react": "~18.2.0",
112
120
  "react-dom": "~18.2.0"
113
121
  },
114
122
  "optionalDependencies": {
115
- "@dxos/random": "0.8.3",
116
- "@dxos/react-ui": "0.8.3",
117
- "@dxos/react-ui-theme": "0.8.3"
123
+ "@dxos/random": "0.8.4-main.1da679c",
124
+ "@dxos/react-ui": "0.8.4-main.1da679c",
125
+ "@dxos/react-ui-theme": "0.8.4-main.1da679c"
118
126
  },
119
127
  "publishConfig": {
120
128
  "access": "public"
@@ -2,7 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import React, { createContext, type PropsWithChildren, useContext, useState } from 'react';
5
+ import React, { type PropsWithChildren, createContext, useContext, useState } from 'react';
6
6
 
7
7
  import { type AgentHostingProviderClient, AgentManagerClient, FakeAgentHostingProvider } from '@dxos/client';
8
8
  import { type Halo } from '@dxos/client/halo';
@@ -2,7 +2,7 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import { renderHook, screen, render, act, cleanup } from '@testing-library/react';
5
+ import { act, cleanup, render, renderHook, screen } from '@testing-library/react';
6
6
  import React, { Component, type PropsWithChildren } from 'react';
7
7
  import { afterEach, beforeEach, describe, expect, test } from 'vitest';
8
8
 
@@ -10,9 +10,10 @@ import { waitForCondition } from '@dxos/async';
10
10
  import { Client, Config, SystemStatus, fromHost } from '@dxos/client';
11
11
  import { log } from '@dxos/log';
12
12
 
13
+ import { useIdentity } from '../halo';
14
+
13
15
  import { ClientProvider } from './ClientProvider';
14
16
  import { useClient } from './useClient';
15
- import { useIdentity } from '../halo';
16
17
 
17
18
  log.config({ filter: 'ClientContext:debug,warn' });
18
19
 
@@ -3,9 +3,9 @@
3
3
  //
4
4
 
5
5
  import React, {
6
- forwardRef,
7
6
  type FunctionComponent,
8
7
  type PropsWithChildren,
8
+ forwardRef,
9
9
  useEffect,
10
10
  useImperativeHandle,
11
11
  useState,
@@ -15,12 +15,13 @@ import { Client, type ClientOptions, type ClientServicesProvider, SystemStatus }
15
15
  import { type Config } from '@dxos/config';
16
16
  import { registerSignalsRuntime } from '@dxos/echo-signals/react';
17
17
  import { log } from '@dxos/log';
18
- import { useControlledState } from '@dxos/react-hooks';
19
- import { getAsyncProviderValue, type MaybePromise, type Provider } from '@dxos/util';
18
+ import { useAsyncEffect, useControlledState } from '@dxos/react-hooks';
19
+ import { type MaybePromise, type Provider, getAsyncProviderValue } from '@dxos/util';
20
20
 
21
- import { ClientContext, type ClientContextProps } from './context';
22
21
  import { printBanner } from '../banner';
23
22
 
23
+ import { ClientContext, type ClientContextProps } from './context';
24
+
24
25
  /**
25
26
  * Properties for the ClientProvider.
26
27
  */
@@ -80,10 +81,10 @@ export const ClientProvider = forwardRef<Client | undefined, ClientProviderProps
80
81
  (
81
82
  {
82
83
  children,
83
- config: configProvider,
84
- client: clientProvider,
85
- services: servicesProvider,
86
- status: controlledStatus,
84
+ config: configParam,
85
+ client: clientParam,
86
+ services: servicesParam,
87
+ status: statusParam,
87
88
  fallback: Fallback = () => null,
88
89
  signalsRuntime = true,
89
90
  noBanner,
@@ -108,13 +109,13 @@ export const ClientProvider = forwardRef<Client | undefined, ClientProviderProps
108
109
  throw error;
109
110
  }
110
111
 
111
- const [client, setClient] = useState(clientProvider instanceof Client ? clientProvider : undefined);
112
+ const [client, setClient] = useState(clientParam instanceof Client ? clientParam : undefined);
112
113
 
113
114
  // Provide external access.
114
115
  useImperativeHandle(forwardedRef, () => client, [client]);
115
116
 
116
117
  // Client status subscription.
117
- const [status, setStatus] = useControlledState(controlledStatus);
118
+ const [status, setStatus] = useControlledState(statusParam);
118
119
  useEffect(() => {
119
120
  if (!client) {
120
121
  return;
@@ -125,7 +126,7 @@ export const ClientProvider = forwardRef<Client | undefined, ClientProviderProps
125
126
  }, [client]);
126
127
 
127
128
  // Create and/or initialize client.
128
- useEffect(() => {
129
+ useAsyncEffect(async () => {
129
130
  let disposed = false;
130
131
  const initialize = async (client: Client) => {
131
132
  if (!client.initialized) {
@@ -140,42 +141,38 @@ export const ClientProvider = forwardRef<Client | undefined, ClientProviderProps
140
141
  }
141
142
 
142
143
  setClient(client);
143
-
144
144
  if (!noBanner) {
145
145
  printBanner(client);
146
146
  }
147
147
  };
148
148
 
149
149
  let client: Client;
150
- const t = setTimeout(async () => {
151
- try {
152
- if (clientProvider) {
153
- // Asynchronously request client.
154
- client = await getAsyncProviderValue(clientProvider);
155
- await initialize(client);
156
- } else {
157
- // Asynchronously construct client (config may be undefined).
158
- const config = await getAsyncProviderValue(configProvider);
159
- log('resolved config', { config });
160
- const services = await getAsyncProviderValue(servicesProvider, config);
161
- log('created services', { services });
162
- client = new Client({ config, services, ...options });
163
- log('created client');
164
- await initialize(client);
165
- }
166
- } catch (err) {
167
- if (!disposed) {
168
- log.catch(err);
169
- }
150
+ try {
151
+ if (clientParam) {
152
+ // Asynchronously request client.
153
+ client = await getAsyncProviderValue(clientParam);
154
+ await initialize(client);
155
+ } else {
156
+ // Asynchronously construct client (config may be undefined).
157
+ const config = await getAsyncProviderValue(configParam);
158
+ log('resolved config', { config });
159
+ const services = await getAsyncProviderValue(servicesParam, config);
160
+ log('created services', { services });
161
+ client = new Client({ config, services, ...options });
162
+ log('created client');
163
+ await initialize(client);
170
164
  }
171
- });
165
+ } catch (err) {
166
+ if (!disposed) {
167
+ log.catch(err);
168
+ }
169
+ }
172
170
 
173
171
  return () => {
174
172
  log('clean up');
175
173
  disposed = true;
176
- clearTimeout(t);
177
174
  // Only destroy if the client is not provided by the parent.
178
- if (!clientProvider) {
175
+ if (!clientParam) {
179
176
  void client
180
177
  ?.destroy()
181
178
  .then(() => {
@@ -184,7 +181,7 @@ export const ClientProvider = forwardRef<Client | undefined, ClientProviderProps
184
181
  .catch((err) => log.catch(err));
185
182
  }
186
183
  };
187
- }, [configProvider, clientProvider, servicesProvider, noBanner]);
184
+ }, [configParam, clientParam, servicesParam, noBanner]);
188
185
 
189
186
  if (!client?.initialized || status !== SystemStatus.ACTIVE) {
190
187
  return <Fallback client={client} status={status} />;
@@ -8,9 +8,10 @@ import { describe, expect, test } from 'vitest';
8
8
  import { waitForCondition } from '@dxos/async';
9
9
  import { Config, SystemStatus } from '@dxos/client';
10
10
 
11
- import { useConfig } from './useConfig';
12
11
  import { createClient, createClientContextProvider } from '../testing/util';
13
12
 
13
+ import { useConfig } from './useConfig';
14
+
14
15
  // TODO(burdon): Disabled in CI since flaky.
15
16
  describe.runIf(!process.env.CI)('Config hook', () => {
16
17
  const render = () => useConfig();
@@ -2,7 +2,7 @@
2
2
  // Copyright 2021 DXOS.org
3
3
  //
4
4
 
5
- import { type DependencyList, useState, useEffect } from 'react';
5
+ import { type DependencyList, useEffect, useState } from 'react';
6
6
 
7
7
  import { type Stream } from '@dxos/codec-protobuf/stream';
8
8
  import { log } from '@dxos/log';
@@ -7,9 +7,10 @@ import { describe, expect, test } from 'vitest';
7
7
 
8
8
  import { Expando, Filter, live } from '@dxos/client/echo';
9
9
 
10
- import { useQuery } from './useQuery';
11
10
  import { createClient, createClientContextProvider } from '../testing/util';
12
11
 
12
+ import { useQuery } from './useQuery';
13
+
13
14
  describe('useQuery', () => {
14
15
  // TODO(dmaretskyi): Fix this test.
15
16
  test.skip('deleting an element should result in correct render sequence', async () => {
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { useMemo, useSyncExternalStore } from 'react';
6
6
 
7
- import { type Echo, Filter, type Live, Query, type Space, isSpace } from '@dxos/client/echo';
7
+ import { type Echo, Filter, type Live, Query, type Queue, type Space, isSpace } from '@dxos/client/echo';
8
8
 
9
9
  const EMPTY_ARRAY: never[] = [];
10
10
 
@@ -12,16 +12,24 @@ const noop = () => {};
12
12
 
13
13
  // TODO(dmaretskyi): Queries are fully serializable, so we can remove `deps` argument.
14
14
  interface UseQueryFn {
15
- <Q extends Query.Any>(spaceOrEcho: Space | Echo | undefined, query: Q, deps?: any[]): Live<Query.Type<Q>>[];
15
+ <Q extends Query.Any>(
16
+ spaceOrEcho: Space | Echo | Queue<any> | undefined,
17
+ query: Q,
18
+ deps?: any[],
19
+ ): Live<Query.Type<Q>>[];
16
20
 
17
- <F extends Filter.Any>(spaceOrEcho: Space | Echo | undefined, filter: F, deps?: any[]): Live<Filter.Type<F>>[];
21
+ <F extends Filter.Any>(
22
+ spaceOrEcho: Space | Echo | Queue<any> | undefined,
23
+ filter: F,
24
+ deps?: any[],
25
+ ): Live<Filter.Type<F>>[];
18
26
  }
19
27
 
20
28
  /**
21
29
  * Create subscription.
22
30
  */
23
31
  export const useQuery: UseQueryFn = (
24
- spaceOrEcho: Space | Echo | undefined,
32
+ spaceOrEcho: Space | Echo | Queue<any> | undefined,
25
33
  queryOrFilter: Query.Any | Filter.Any,
26
34
  deps?: any[],
27
35
  ): Live<unknown>[] => {
@@ -8,9 +8,10 @@ import { MulticastObservable } from '@dxos/async';
8
8
  import { type PublicKey } from '@dxos/client';
9
9
  import { useMulticastObservable } from '@dxos/react-hooks';
10
10
 
11
- import { useSpace } from './useSpaces';
12
11
  import { type CancellableInvitationObservable, useInvitationStatus } from '../invitations';
13
12
 
13
+ import { useSpace } from './useSpaces';
14
+
14
15
  export const useSpaceInvitations = (spaceKey?: PublicKey): CancellableInvitationObservable[] => {
15
16
  const space = useSpace(spaceKey);
16
17
  return useMulticastObservable(space?.invitations ?? MulticastObservable.empty()) ?? [];
@@ -5,9 +5,10 @@
5
5
  import { act, renderHook } from '@testing-library/react';
6
6
  import { describe, expect, test } from 'vitest';
7
7
 
8
- import { useSpace, useSpaces } from './useSpaces';
9
8
  import { createClient, createClientContextProvider } from '../testing/util';
10
9
 
10
+ import { useSpace, useSpaces } from './useSpaces';
11
+
11
12
  describe('useSpaces', () => {
12
13
  test('lists existing spaces', async () => {
13
14
  const { client } = await createClient({ createIdentity: true });
@@ -2,11 +2,11 @@
2
2
  // Copyright 2020 DXOS.org
3
3
  //
4
4
 
5
- import { useEffect, useState } from 'react';
5
+ import { useState } from 'react';
6
6
 
7
7
  import { type PublicKeyLike } from '@dxos/client';
8
8
  import { type Space, SpaceState } from '@dxos/client/echo';
9
- import { useMulticastObservable } from '@dxos/react-hooks';
9
+ import { useAsyncEffect, useMulticastObservable } from '@dxos/react-hooks';
10
10
 
11
11
  import { useClient } from '../client';
12
12
 
@@ -23,18 +23,14 @@ export const useSpace = (spaceKeyLike?: PublicKeyLike): Space | undefined => {
23
23
  const spaces = useMulticastObservable<Space[]>(client.spaces);
24
24
  const [ready, setReady] = useState(false);
25
25
 
26
- useEffect(() => {
26
+ useAsyncEffect(async () => {
27
27
  // Only wait for ready if looking for the default space.
28
28
  if (spaceKeyLike) {
29
29
  return;
30
30
  }
31
31
 
32
- const timeout = setTimeout(async () => {
33
- await client.spaces.waitUntilReady();
34
- setReady(true);
35
- });
36
-
37
- return () => clearTimeout(timeout);
32
+ await client.spaces.waitUntilReady();
33
+ setReady(true);
38
34
  }, [client, spaceKeyLike]);
39
35
 
40
36
  if (spaceKeyLike) {
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { useEffect, useState } from 'react';
6
6
 
7
- import { type PeerSyncState, type SpaceSyncStateMap, type Space } from '@dxos/client/echo';
7
+ import { type PeerSyncState, type Space, type SpaceSyncStateMap } from '@dxos/client/echo';
8
8
  import { Context } from '@dxos/context';
9
9
  import { type SpaceId } from '@dxos/keys';
10
10
  import { EdgeService } from '@dxos/protocols';
@@ -30,7 +30,7 @@ export const useSyncState = (): SpaceSyncStateMap => {
30
30
  }
31
31
 
32
32
  ctx.onDispose(
33
- space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
33
+ space.db.subscribeToSyncState(ctx, ({ peers = [] }) => {
34
34
  const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
35
35
  if (syncState) {
36
36
  setSpaceState((spaceState) => ({ ...spaceState, [space.id]: syncState }));
@@ -62,7 +62,7 @@ export const useSpaceSyncState = (space: Space): PeerSyncState | undefined => {
62
62
 
63
63
  useEffect(() => {
64
64
  const ctx = new Context();
65
- space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
65
+ space.db.subscribeToSyncState(ctx, ({ peers = [] }) => {
66
66
  const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
67
67
  if (syncState) {
68
68
  setSpaceState(syncState);
@@ -4,6 +4,7 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
8
  import React, { useCallback } from 'react';
8
9
 
9
10
  import { Config, PublicKey } from '@dxos/client';
@@ -13,11 +14,12 @@ import { Button } from '@dxos/react-ui';
13
14
  import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
14
15
  import { withTheme } from '@dxos/storybook-utils';
15
16
 
16
- import { useCredentials } from './useCredentials';
17
- import { useIdentity } from './useIdentity';
18
17
  import { useClient } from '../client';
19
18
  import { withClientProvider } from '../testing';
20
19
 
20
+ import { useCredentials } from './useCredentials';
21
+ import { useIdentity } from './useIdentity';
22
+
21
23
  const getNewChallenge = () => Math.random().toString(36).substring(2);
22
24
 
23
25
  const Test = () => {
@@ -43,7 +45,7 @@ const Test = () => {
43
45
  challenge: new TextEncoder().encode(challenge),
44
46
  rp: { id: location.hostname, name: 'Test' },
45
47
  user: {
46
- id: lookupKey.asUint8Array(),
48
+ id: lookupKey.asUint8Array() as Uint8Array<ArrayBuffer>,
47
49
  name: identity.did,
48
50
  displayName: identity.profile?.displayName ?? '',
49
51
  },
@@ -125,10 +127,14 @@ const Test = () => {
125
127
  );
126
128
  };
127
129
 
128
- export default {
130
+ const meta = {
129
131
  title: 'sdk/react-client/Passkeys',
130
132
  render: Test,
131
- };
133
+ } satisfies Meta<typeof Config>;
134
+
135
+ export default meta;
136
+
137
+ type Story = StoryObj<typeof meta>;
132
138
 
133
139
  const config = new Config({
134
140
  runtime: {
@@ -150,6 +156,6 @@ const config = new Config({
150
156
  },
151
157
  });
152
158
 
153
- export const Default = {
159
+ export const Default: Story = {
154
160
  decorators: [withClientProvider({ config }), withTheme],
155
161
  };
@@ -5,9 +5,10 @@
5
5
  import { renderHook } from '@testing-library/react';
6
6
  import { describe, expect, test } from 'vitest';
7
7
 
8
- import { useDevices } from './useDevices';
9
8
  import { createClient, createClientContextProvider } from '../testing/util';
10
9
 
10
+ import { useDevices } from './useDevices';
11
+
11
12
  describe('useDevices', () => {
12
13
  test('lists existing devices', async () => {
13
14
  const { client } = await createClient({ createIdentity: true });
@@ -7,7 +7,7 @@ import { useMemo } from 'react';
7
7
  import { useMulticastObservable } from '@dxos/react-hooks';
8
8
 
9
9
  import { useClient } from '../client';
10
- import { useInvitationStatus, type CancellableInvitationObservable } from '../invitations';
10
+ import { type CancellableInvitationObservable, useInvitationStatus } from '../invitations';
11
11
 
12
12
  export const useHaloInvitations = (): CancellableInvitationObservable[] => {
13
13
  const client = useClient();
@@ -2,7 +2,7 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import { useReducer, type Reducer, useMemo, useCallback, useEffect } from 'react';
5
+ import { type Reducer, useCallback, useEffect, useMemo, useReducer } from 'react';
6
6
 
7
7
  import { type PublicKey } from '@dxos/client';
8
8
  import {
@@ -0,0 +1,17 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { defineConfig } from '@playwright/test';
6
+
7
+ import { e2ePreset } from '@dxos/test-utils/playwright';
8
+
9
+ export default defineConfig({
10
+ ...e2ePreset(import.meta.dirname),
11
+ // TODO(wittjosiah): Avoid hard-coding ports.
12
+ webServer: {
13
+ command: 'moon run storybook:serve-e2e -- --port=9000',
14
+ port: 9000,
15
+ reuseExistingServer: false,
16
+ },
17
+ });
@@ -4,17 +4,15 @@
4
4
 
5
5
  import { type Page, expect, test } from '@playwright/test';
6
6
 
7
- import { setupPage } from '@dxos/test-utils/playwright';
8
-
9
- // TODO(wittjosiah): Factor out.
10
- // TODO(burdon): No hard-coding of ports; reconcile all DXOS tools ports.
11
- const storybookUrl = (storyId: string) => `http://localhost:9009/iframe.html?id=${storyId}&viewMode=story`;
7
+ import { setupPage, storybookUrl } from '@dxos/test-utils/playwright';
12
8
 
13
9
  test.describe('Smoke test', () => {
14
10
  let page: Page;
15
11
 
16
12
  test.beforeAll(async ({ browser }) => {
17
- const result = await setupPage(browser, { url: storybookUrl('sdk-react-client-withclientprovider--default') });
13
+ const result = await setupPage(browser, {
14
+ url: storybookUrl('sdk-react-client-withclientprovider--default', 9000),
15
+ });
18
16
  page = result.page;
19
17
  await page.locator(':text("initialized")').waitFor({ state: 'visible' });
20
18
  });
@@ -4,20 +4,26 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
7
8
  import React from 'react';
8
9
 
9
10
  import { Input } from '@dxos/react-ui';
10
11
  import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
11
12
  import { withTheme } from '@dxos/storybook-utils';
12
13
 
13
- import { ClientRepeater, type ClientRepeatedComponentProps } from './ClientRepeater';
14
14
  import { useClient } from '../client';
15
15
  import { useSpace } from '../echo';
16
16
 
17
- export default {
17
+ import { type ClientRepeatedComponentProps, ClientRepeater } from './ClientRepeater';
18
+
19
+ const meta = {
18
20
  title: 'sdk/react-client/ClientRepeater',
19
21
  decorators: [withTheme],
20
- };
22
+ } satisfies Meta<typeof Input>;
23
+
24
+ export default meta;
25
+
26
+ type Story = StoryObj<typeof meta>;
21
27
 
22
28
  const JsonPanel = ({ value }: { value: any }) => (
23
29
  <SyntaxHighlighter language='json'>{JSON.stringify(value, undefined, 2)}</SyntaxHighlighter>
@@ -49,10 +55,10 @@ const ClientSpace = ({ spaceKey }: ClientRepeatedComponentProps) => {
49
55
  );
50
56
  };
51
57
 
52
- export const Default = {
58
+ export const Default: Story = {
53
59
  render: () => <ClientRepeater component={ClientStory} count={2} />,
54
60
  };
55
61
 
56
- export const Space = {
62
+ export const Space: Story = {
57
63
  render: () => <ClientRepeater component={ClientSpace} count={2} createSpace />,
58
64
  };