@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.
- package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
- package/dist/lib/browser/{chunk-AL2CUQ46.mjs → chunk-BXOLJYAY.mjs} +5 -5
- package/dist/lib/{node-esm/chunk-UYJUBYMU.mjs.map → browser/chunk-BXOLJYAY.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-72QD3PXL.mjs → chunk-TA2HGRAF.mjs} +76 -79
- package/dist/lib/browser/chunk-TA2HGRAF.mjs.map +7 -0
- package/dist/lib/browser/devtools/index.mjs +6 -6
- package/dist/lib/browser/devtools/index.mjs.map +3 -3
- package/dist/lib/browser/echo/index.mjs +28 -31
- package/dist/lib/browser/echo/index.mjs.map +3 -3
- package/dist/lib/browser/halo/index.mjs +28 -13
- package/dist/lib/browser/halo/index.mjs.map +3 -3
- package/dist/lib/browser/index.mjs +2 -2
- package/dist/lib/browser/invitations/index.mjs +1 -1
- package/dist/lib/browser/mesh/index.mjs +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +41 -43
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/browser/worker.mjs +1 -1
- package/dist/lib/node-esm/{chunk-UYJUBYMU.mjs → chunk-256IHY6F.mjs} +5 -5
- package/dist/lib/{browser/chunk-AL2CUQ46.mjs.map → node-esm/chunk-256IHY6F.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-NBTZZNQ5.mjs → chunk-ZJMNF7GC.mjs} +76 -79
- package/dist/lib/node-esm/chunk-ZJMNF7GC.mjs.map +7 -0
- package/dist/lib/node-esm/devtools/index.mjs +6 -6
- package/dist/lib/node-esm/devtools/index.mjs.map +3 -3
- package/dist/lib/node-esm/echo/index.mjs +28 -31
- package/dist/lib/node-esm/echo/index.mjs.map +3 -3
- package/dist/lib/node-esm/halo/index.mjs +28 -13
- package/dist/lib/node-esm/halo/index.mjs.map +3 -3
- package/dist/lib/node-esm/index.mjs +2 -2
- package/dist/lib/node-esm/invitations/index.mjs +1 -1
- package/dist/lib/node-esm/mesh/index.mjs +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +41 -43
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/worker.mjs +1 -1
- package/dist/types/src/client/AgentHostingProvider.d.ts.map +1 -1
- package/dist/types/src/client/ClientProvider.d.ts.map +1 -1
- package/dist/types/src/echo/useQuery.d.ts +3 -3
- package/dist/types/src/echo/useQuery.d.ts.map +1 -1
- package/dist/types/src/echo/useSpaceInvitations.d.ts.map +1 -1
- package/dist/types/src/echo/useSpaces.d.ts.map +1 -1
- package/dist/types/src/echo/useSyncState.d.ts +1 -1
- package/dist/types/src/echo/useSyncState.d.ts.map +1 -1
- package/dist/types/src/halo/Passkey.stories.d.ts +5 -5
- package/dist/types/src/halo/Passkey.stories.d.ts.map +1 -1
- package/dist/types/src/halo/useHaloInvitations.d.ts.map +1 -1
- package/dist/types/src/playwright/{playwright.config.d.cts → playwright.config.d.ts} +1 -1
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -0
- package/dist/types/src/testing/ClientRepeater.d.ts.map +1 -1
- package/dist/types/src/testing/ClientRepeater.stories.d.ts +6 -9
- package/dist/types/src/testing/ClientRepeater.stories.d.ts.map +1 -1
- package/dist/types/src/testing/withClientProvider.d.ts +1 -1
- package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
- package/dist/types/src/testing/withClientProvider.stories.d.ts +7 -9
- package/dist/types/src/testing/withClientProvider.stories.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/moon.yml +19 -0
- package/package.json +33 -25
- package/src/client/AgentHostingProvider.tsx +1 -1
- package/src/client/ClientProvider.test.tsx +3 -2
- package/src/client/ClientProvider.tsx +33 -36
- package/src/client/useConfig.test.tsx +2 -1
- package/src/devtools/useStream.ts +1 -1
- package/src/echo/useQuery.test.tsx +2 -1
- package/src/echo/useQuery.ts +12 -4
- package/src/echo/useSpaceInvitations.ts +2 -1
- package/src/echo/useSpaces.test.tsx +2 -1
- package/src/echo/useSpaces.ts +5 -9
- package/src/echo/useSyncState.ts +3 -3
- package/src/halo/Passkey.stories.tsx +12 -6
- package/src/halo/useDevices.test.tsx +2 -1
- package/src/halo/useHaloInvitations.ts +1 -1
- package/src/invitations/useInvitationStatus.ts +1 -1
- package/src/playwright/playwright.config.ts +17 -0
- package/src/playwright/smoke.spec.ts +4 -6
- package/src/testing/ClientRepeater.stories.tsx +11 -5
- package/src/testing/ClientRepeater.tsx +20 -24
- package/src/testing/withClientProvider.stories.tsx +14 -8
- package/src/testing/withClientProvider.tsx +7 -6
- package/vitest.config.ts +1 -1
- package/.eslintrc.cjs +0 -12
- package/README.yml +0 -33
- package/dist/lib/browser/chunk-72QD3PXL.mjs.map +0 -7
- package/dist/lib/node/chunk-5RUIFUEC.cjs +0 -334
- package/dist/lib/node/chunk-5RUIFUEC.cjs.map +0 -7
- package/dist/lib/node/chunk-FYOAVV65.cjs +0 -188
- package/dist/lib/node/chunk-FYOAVV65.cjs.map +0 -7
- package/dist/lib/node/devtools/index.cjs +0 -62
- package/dist/lib/node/devtools/index.cjs.map +0 -7
- package/dist/lib/node/echo/index.cjs +0 -302
- package/dist/lib/node/echo/index.cjs.map +0 -7
- package/dist/lib/node/halo/index.cjs +0 -123
- package/dist/lib/node/halo/index.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -55
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/invitations/index.cjs +0 -39
- package/dist/lib/node/invitations/index.cjs.map +0 -7
- package/dist/lib/node/mesh/index.cjs +0 -37
- package/dist/lib/node/mesh/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/testing/index.cjs +0 -278
- package/dist/lib/node/testing/index.cjs.map +0 -7
- package/dist/lib/node/worker.cjs +0 -23
- package/dist/lib/node/worker.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-NBTZZNQ5.mjs.map +0 -7
- package/dist/types/src/playwright/playwright.config.d.cts.map +0 -1
- package/project.json +0 -40
- package/src/playwright/playwright.config.cts +0 -18
- package/typedoc/.nojekyll +0 -1
- package/typedoc/assets/hierarchy.js +0 -1
- package/typedoc/assets/highlight.css +0 -99
- package/typedoc/assets/icons.js +0 -18
- package/typedoc/assets/icons.svg +0 -1
- package/typedoc/assets/main.js +0 -60
- package/typedoc/assets/navigation.js +0 -1
- package/typedoc/assets/search.js +0 -1
- package/typedoc/assets/style.css +0 -1640
- package/typedoc/classes/echo.Hypergraph.html +0 -17
- package/typedoc/classes/echo.PropertiesType.html +0 -19
- package/typedoc/classes/echo.QueryResult.html +0 -18
- package/typedoc/classes/halo.KeyStore.html +0 -6
- package/typedoc/classes/index.AgentClientServiceProvider.html +0 -10
- package/typedoc/classes/index.AgentManagerClient.html +0 -22
- package/typedoc/classes/index.AlreadyJoinedError.html +0 -15
- package/typedoc/classes/index.ApiError.html +0 -16
- package/typedoc/classes/index.CancelledError.html +0 -16
- package/typedoc/classes/index.Client.html +0 -51
- package/typedoc/classes/index.ClientServicesProxy.html +0 -12
- package/typedoc/classes/index.Config.html +0 -17
- package/typedoc/classes/index.DataCorruptionError.html +0 -16
- package/typedoc/classes/index.DatabaseError.html +0 -15
- package/typedoc/classes/index.EntityNotFoundError.html +0 -15
- package/typedoc/classes/index.FakeAgentHostingProvider.html +0 -7
- package/typedoc/classes/index.IFrameManager.html +0 -6
- package/typedoc/classes/index.IdentityNotInitializedError.html +0 -15
- package/typedoc/classes/index.InvalidConfigError.html +0 -16
- package/typedoc/classes/index.InvalidInvitationError.html +0 -15
- package/typedoc/classes/index.InvalidInvitationExtensionRoleError.html +0 -16
- package/typedoc/classes/index.InvalidStorageVersionError.html +0 -15
- package/typedoc/classes/index.LocalClientServices.html +0 -12
- package/typedoc/classes/index.PublicKey.html +0 -55
- package/typedoc/classes/index.RemoteServiceConnectionError.html +0 -15
- package/typedoc/classes/index.RemoteServiceConnectionTimeout.html +0 -15
- package/typedoc/classes/index.RpcClosedError.html +0 -15
- package/typedoc/classes/index.RpcNotOpenError.html +0 -15
- package/typedoc/classes/index.SharedWorkerConnection.html +0 -5
- package/typedoc/classes/index.Shell.html +0 -35
- package/typedoc/classes/index.ShellManager.html +0 -9
- package/typedoc/classes/index.SystemError.html +0 -16
- package/typedoc/classes/index.UnknownModelError.html +0 -15
- package/typedoc/classes/index.WorkerClientServices.html +0 -12
- package/typedoc/classes/invitations.AuthenticatingInvitationObservable.html +0 -30
- package/typedoc/classes/invitations.CancellableInvitationObservable.html +0 -29
- package/typedoc/classes/invitations.InvitationEncoder.html +0 -5
- package/typedoc/classes/invitations.InvitationsProxy.html +0 -12
- package/typedoc/enums/devtools.KeyType.html +0 -9
- package/typedoc/enums/echo.HaloSpaceMember.Role.html +0 -9
- package/typedoc/enums/echo.IndexKind.Kind.html +0 -8
- package/typedoc/enums/echo.QueryOptions.DataLocation.html +0 -6
- package/typedoc/enums/echo.QueryOptions.ShowDeletedOption.html +0 -6
- package/typedoc/enums/echo.ResultFormat.html +0 -10
- package/typedoc/enums/echo.SpaceMember.PresenceState.html +0 -5
- package/typedoc/enums/echo.SpaceState.html +0 -13
- package/typedoc/enums/echo.TextKind.html +0 -5
- package/typedoc/enums/halo.Device.PresenceState.html +0 -6
- package/typedoc/enums/halo.DeviceKind.html +0 -5
- package/typedoc/enums/halo.DeviceType.html +0 -9
- package/typedoc/enums/index.ShellDisplay.html +0 -5
- package/typedoc/enums/index.ShellLayout.html +0 -13
- package/typedoc/enums/index.SystemStatus.html +0 -5
- package/typedoc/enums/invitations.Invitation.AuthMethod.html +0 -6
- package/typedoc/enums/invitations.Invitation.Kind.html +0 -5
- package/typedoc/enums/invitations.Invitation.State.html +0 -13
- package/typedoc/enums/invitations.Invitation.Type.html +0 -6
- package/typedoc/enums/mesh.ConnectionState.html +0 -5
- package/typedoc/functions/devtools.useDevtools.html +0 -1
- package/typedoc/functions/devtools.useStream.html +0 -2
- package/typedoc/functions/echo.useMembers.html +0 -1
- package/typedoc/functions/echo.useQueue.html +0 -2
- package/typedoc/functions/echo.useSchema.html +0 -2
- package/typedoc/functions/echo.useSpace.html +0 -6
- package/typedoc/functions/echo.useSpaceInvitation.html +0 -1
- package/typedoc/functions/echo.useSpaceInvitations.html +0 -1
- package/typedoc/functions/echo.useSpaceSyncState.html +0 -2
- package/typedoc/functions/echo.useSpaces.html +0 -5
- package/typedoc/functions/echo.useSubscription.html +0 -3
- package/typedoc/functions/echo.useSyncState.html +0 -2
- package/typedoc/functions/halo.useContacts.html +0 -4
- package/typedoc/functions/halo.useCredentials.html +0 -1
- package/typedoc/functions/halo.useDevices.html +0 -1
- package/typedoc/functions/halo.useHaloInvitation.html +0 -1
- package/typedoc/functions/halo.useHaloInvitations.html +0 -1
- package/typedoc/functions/halo.useIdentity.html +0 -3
- package/typedoc/functions/halo.useKeyStore.html +0 -3
- package/typedoc/functions/index.AgentHostingProvider.html +0 -2
- package/typedoc/functions/index.useAgentHostingClient.html +0 -1
- package/typedoc/functions/index.useClient.html +0 -3
- package/typedoc/functions/index.useClientStatus.html +0 -1
- package/typedoc/functions/index.useConfig.html +0 -3
- package/typedoc/functions/index.useShell.html +0 -2
- package/typedoc/functions/index.useShellDisplay.html +0 -2
- package/typedoc/functions/index.useStatus.html +0 -1
- package/typedoc/functions/invitations.useInvitationStatus.html +0 -1
- package/typedoc/functions/mesh.useNetworkStatus.html +0 -2
- package/typedoc/hierarchy.html +0 -1
- package/typedoc/index.html +0 -23
- package/typedoc/interfaces/devtools.DevtoolsHook.html +0 -22
- package/typedoc/interfaces/devtools.DevtoolsHost.html +0 -26
- package/typedoc/interfaces/echo.DocAccessor.html +0 -3
- package/typedoc/interfaces/echo.Echo.html +0 -39
- package/typedoc/interfaces/echo.EchoDatabase.html +0 -25
- package/typedoc/interfaces/echo.Expando.html +0 -3
- package/typedoc/interfaces/echo.Filter.html +0 -3
- package/typedoc/interfaces/echo.HaloSpaceMember.html +0 -18
- package/typedoc/interfaces/echo.IDocHandle.html +0 -6
- package/typedoc/interfaces/echo.IndexKind.html +0 -9
- package/typedoc/interfaces/echo.Query.html +0 -34
- package/typedoc/interfaces/echo.QueryOptions.html +0 -39
- package/typedoc/interfaces/echo.Queue.html +0 -17
- package/typedoc/interfaces/echo.Ref.html +0 -32
- package/typedoc/interfaces/echo.Space.html +0 -39
- package/typedoc/interfaces/echo.SpaceMember.html +0 -7
- package/typedoc/interfaces/echo.SpaceSyncState.PeerState.html +0 -14
- package/typedoc/interfaces/echo.SpaceSyncState.html +0 -4
- package/typedoc/interfaces/echo.SubscriptionHandle.html +0 -5
- package/typedoc/interfaces/echo.TypedObject.html +0 -16
- package/typedoc/interfaces/halo.Contact.html +0 -10
- package/typedoc/interfaces/halo.Credential.html +0 -27
- package/typedoc/interfaces/halo.Device.html +0 -11
- package/typedoc/interfaces/halo.Halo.html +0 -16
- package/typedoc/interfaces/halo.Identity.html +0 -15
- package/typedoc/interfaces/index.AgentHostingProviderClient.html +0 -6
- package/typedoc/interfaces/index.AppContextRequest.html +0 -33
- package/typedoc/interfaces/index.ClientServicesProvider.html +0 -9
- package/typedoc/interfaces/index.InvitationUrlRequest.html +0 -9
- package/typedoc/interfaces/index.LayoutRequest.html +0 -29
- package/typedoc/interfaces/index.ShellRuntime.html +0 -15
- package/typedoc/interfaces/invitations.Invitation.html +0 -92
- package/typedoc/interfaces/invitations.Invitations.html +0 -5
- package/typedoc/interfaces/mesh.GossipMessage.html +0 -10
- package/typedoc/interfaces/mesh.NetworkStatus.Signal.html +0 -5
- package/typedoc/interfaces/mesh.NetworkStatus.html +0 -6
- package/typedoc/media/LICENSE +0 -8
- package/typedoc/modules/devtools.html +0 -1
- package/typedoc/modules/echo.Filter.html +0 -1
- package/typedoc/modules/echo.HaloSpaceMember.html +0 -1
- package/typedoc/modules/echo.IndexKind.html +0 -1
- package/typedoc/modules/echo.Query.html +0 -1
- package/typedoc/modules/echo.QueryOptions.html +0 -1
- package/typedoc/modules/echo.Ref.html +0 -2
- package/typedoc/modules/echo.SpaceMember.html +0 -1
- package/typedoc/modules/echo.SpaceSyncState.html +0 -1
- package/typedoc/modules/echo.html +0 -1
- package/typedoc/modules/halo.Device.html +0 -1
- package/typedoc/modules/halo.html +0 -1
- package/typedoc/modules/index.html +0 -1
- package/typedoc/modules/invitations.Invitation.html +0 -1
- package/typedoc/modules/invitations.html +0 -1
- package/typedoc/modules/mesh.NetworkStatus.html +0 -1
- package/typedoc/modules/mesh.html +0 -1
- package/typedoc/modules/worker.html +0 -1
- package/typedoc/modules.html +0 -1
- package/typedoc/types/devtools.MountOptions.html +0 -3
- package/typedoc/types/echo.AnyLiveObject.html +0 -2
- package/typedoc/types/echo.Filter.And.html +0 -1
- package/typedoc/types/echo.Filter.Any.html +0 -1
- package/typedoc/types/echo.Filter.Or.html +0 -1
- package/typedoc/types/echo.Filter.Props.html +0 -1
- package/typedoc/types/echo.Filter.Type.html +0 -1
- package/typedoc/types/echo.Live.html +0 -5
- package/typedoc/types/echo.ObjectMeta.html +0 -1
- package/typedoc/types/echo.ObjectMigration.html +0 -7
- package/typedoc/types/echo.ObjectVersion.html +0 -2
- package/typedoc/types/echo.PeerSyncState.html +0 -1
- package/typedoc/types/echo.Progress.html +0 -3
- package/typedoc/types/echo.PropertiesTypeProps.html +0 -1
- package/typedoc/types/echo.Query.Any.html +0 -1
- package/typedoc/types/echo.Query.TextSearchOptions.html +0 -2
- package/typedoc/types/echo.Query.Type.html +0 -1
- package/typedoc/types/echo.Ref.Target.html +0 -2
- package/typedoc/types/echo.Selection.html +0 -1
- package/typedoc/types/echo.SpaceId.html +0 -6
- package/typedoc/types/echo.SpaceSyncStateMap.html +0 -1
- package/typedoc/types/echo.UseQueueOptions.html +0 -2
- package/typedoc/types/echo.UseSpacesParams.html +0 -3
- package/typedoc/types/index.AgentHostingProviderProps.html +0 -3
- package/typedoc/types/index.ClientContextProps.html +0 -3
- package/typedoc/types/index.ClientOptions.html +0 -12
- package/typedoc/types/index.ClientProviderProps.html +0 -2
- package/typedoc/types/index.ClientServices.html +0 -15
- package/typedoc/types/index.FromAgentOptions.html +0 -2
- package/typedoc/types/index.PublicKeyLike.html +0 -2
- package/typedoc/types/invitations.InvitationAction.html +0 -1
- package/typedoc/types/invitations.InvitationResult.html +0 -5
- package/typedoc/types/invitations.InvitationStatus.html +0 -15
- package/typedoc/variables/devtools.mountDevtoolsHooks.html +0 -1
- package/typedoc/variables/devtools.unmountDevtoolsHooks.html +0 -1
- package/typedoc/variables/echo.DocAccessor.html +0 -1
- package/typedoc/variables/echo.EchoObjectSchema.html +0 -1
- package/typedoc/variables/echo.Expando.html +0 -1
- package/typedoc/variables/echo.FQ_ID_LENGTH.html +0 -1
- package/typedoc/variables/echo.Filter.html +0 -1
- package/typedoc/variables/echo.OBJECT_ID_LENGTH.html +0 -1
- package/typedoc/variables/echo.ObjectVersion.html +0 -1
- package/typedoc/variables/echo.Query.html +0 -1
- package/typedoc/variables/echo.Queue.html +0 -1
- package/typedoc/variables/echo.ReactiveObjectSchema.html +0 -1
- package/typedoc/variables/echo.Ref.html +0 -2
- package/typedoc/variables/echo.RefArray.html +0 -2
- package/typedoc/variables/echo.SPACE_ID_LENGTH.html +0 -1
- package/typedoc/variables/echo.SpaceId.html +0 -1
- package/typedoc/variables/echo.SpaceSchema.html +0 -1
- package/typedoc/variables/echo.TypedObject.html +0 -3
- package/typedoc/variables/echo.compareForeignKeys.html +0 -1
- package/typedoc/variables/echo.createDocAccessor.html +0 -1
- package/typedoc/variables/echo.createEmptyEdgeSyncState.html +0 -1
- package/typedoc/variables/echo.createObject.html +0 -1
- package/typedoc/variables/echo.createQueueDXN.html +0 -2
- package/typedoc/variables/echo.createSubscription.html +0 -5
- package/typedoc/variables/echo.defineObjectMigration.html +0 -1
- package/typedoc/variables/echo.fromCursor.html +0 -1
- package/typedoc/variables/echo.fullyQualifiedId.html +0 -4
- package/typedoc/variables/echo.getMeta.html +0 -1
- package/typedoc/variables/echo.getObjectCore.html +0 -1
- package/typedoc/variables/echo.getRangeFromCursor.html +0 -1
- package/typedoc/variables/echo.getSchema.html +0 -2
- package/typedoc/variables/echo.getSource.html +0 -4
- package/typedoc/variables/echo.getSpace.html +0 -1
- package/typedoc/variables/echo.getSyncSummary.html +0 -1
- package/typedoc/variables/echo.getTarget.html +0 -4
- package/typedoc/variables/echo.getTextInRange.html +0 -2
- package/typedoc/variables/echo.getType.html +0 -5
- package/typedoc/variables/echo.getTypename.html +0 -6
- package/typedoc/variables/echo.getVersion.html +0 -3
- package/typedoc/variables/echo.importSpace.html +0 -1
- package/typedoc/variables/echo.internalDecodeReference.html +0 -1
- package/typedoc/variables/echo.isEchoObject.html +0 -2
- package/typedoc/variables/echo.isLiveObject.html +0 -2
- package/typedoc/variables/echo.isRelation.html +0 -2
- package/typedoc/variables/echo.isSpace.html +0 -1
- package/typedoc/variables/echo.live.html +0 -3
- package/typedoc/variables/echo.loadObjectReferences.html +0 -7
- package/typedoc/variables/echo.makeRef.html +0 -2
- package/typedoc/variables/echo.parseFullyQualifiedId.html +0 -2
- package/typedoc/variables/echo.parseId.html +0 -1
- package/typedoc/variables/echo.refFromDXN.html +0 -2
- package/typedoc/variables/echo.toCursor.html +0 -1
- package/typedoc/variables/echo.toCursorRange.html +0 -1
- package/typedoc/variables/echo.updateText.html +0 -6
- package/typedoc/variables/echo.useQuery.html +0 -2
- package/typedoc/variables/index.AgentHostingContext.html +0 -1
- package/typedoc/variables/index.ClientProvider.html +0 -3
- package/typedoc/variables/index.DXOS_VERSION.html +0 -1
- package/typedoc/variables/index.Defaults.html +0 -2
- package/typedoc/variables/index.Dynamics.html +0 -2
- package/typedoc/variables/index.Envs.html +0 -2
- package/typedoc/variables/index.Local.html +0 -2
- package/typedoc/variables/index.Remote.html +0 -1
- package/typedoc/variables/index.Storage.html +0 -2
- package/typedoc/variables/index.createClientServices.html +0 -4
- package/typedoc/variables/index.fromAgent.html +0 -2
- package/typedoc/variables/index.fromHost.html +0 -2
- package/typedoc/variables/index.fromSocket.html +0 -2
- package/typedoc/variables/index.fromWorker.html +0 -2
- package/typedoc/variables/index.getUnixSocket.html +0 -1
- package/typedoc/variables/index.resolveRef.html +0 -1
- package/typedoc/variables/index.useMulticastObservable.html +0 -3
- package/typedoc/variables/worker.getWorkerServiceHost.html +0 -1
- 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
|
+
"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/
|
|
82
|
-
"@dxos/
|
|
83
|
-
"@dxos/
|
|
84
|
-
"@dxos/config": "0.8.
|
|
85
|
-
"@dxos/
|
|
86
|
-
"@dxos/
|
|
87
|
-
"@dxos/echo": "0.8.
|
|
88
|
-
"@dxos/
|
|
89
|
-
"@dxos/echo-signals": "0.8.
|
|
90
|
-
"@dxos/
|
|
91
|
-
"@dxos/log": "0.8.
|
|
92
|
-
"@dxos/
|
|
93
|
-
"@dxos/
|
|
94
|
-
"@dxos/
|
|
95
|
-
"@dxos/util": "0.8.
|
|
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/
|
|
104
|
-
"@dxos/react-ui": "0.8.
|
|
105
|
-
"@dxos/react-ui-
|
|
106
|
-
"@dxos/
|
|
107
|
-
"@dxos/
|
|
108
|
-
"@dxos/
|
|
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.
|
|
116
|
-
"@dxos/react-ui": "0.8.
|
|
117
|
-
"@dxos/react-ui-theme": "0.8.
|
|
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, {
|
|
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 {
|
|
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 {
|
|
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:
|
|
84
|
-
client:
|
|
85
|
-
services:
|
|
86
|
-
status:
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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 (!
|
|
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
|
-
}, [
|
|
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,
|
|
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 () => {
|
package/src/echo/useQuery.ts
CHANGED
|
@@ -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>(
|
|
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>(
|
|
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 });
|
package/src/echo/useSpaces.ts
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// Copyright 2020 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
33
|
-
|
|
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) {
|
package/src/echo/useSyncState.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { useEffect, useState } from 'react';
|
|
6
6
|
|
|
7
|
-
import { type PeerSyncState, type
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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 {
|
|
10
|
+
import { type CancellableInvitationObservable, useInvitationStatus } from '../invitations';
|
|
11
11
|
|
|
12
12
|
export const useHaloInvitations = (): CancellableInvitationObservable[] => {
|
|
13
13
|
const client = useClient();
|
|
@@ -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, {
|
|
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
|
-
|
|
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
|
};
|