@dxos/plugin-client 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/DevicesContainer-3N7ANEJ7.mjs +268 -0
- package/dist/lib/browser/DevicesContainer-3N7ANEJ7.mjs.map +7 -0
- package/dist/lib/browser/JoinDialog-VTTK7NHO.mjs +59 -0
- package/dist/lib/browser/JoinDialog-VTTK7NHO.mjs.map +7 -0
- package/dist/lib/browser/ProfileContainer-XV7OXJC2.mjs +171 -0
- package/dist/lib/browser/ProfileContainer-XV7OXJC2.mjs.map +7 -0
- package/dist/lib/browser/RecoveryCodeDialog-WO34OZEJ.mjs +60 -0
- package/dist/lib/browser/RecoveryCodeDialog-WO34OZEJ.mjs.map +7 -0
- package/dist/lib/browser/RecoveryCredentialsContainer-G22FSTIX.mjs +57 -0
- package/dist/lib/browser/RecoveryCredentialsContainer-G22FSTIX.mjs.map +7 -0
- package/dist/lib/browser/ResetDialog-W24FOWBQ.mjs +52 -0
- package/dist/lib/browser/ResetDialog-W24FOWBQ.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-3FGBMLTF.mjs → app-graph-builder-GGJKFY3X.mjs} +9 -6
- package/dist/lib/browser/app-graph-builder-GGJKFY3X.mjs.map +7 -0
- package/dist/lib/browser/{chunk-4BZGRIFS.mjs → chunk-FVEKZBM7.mjs} +34 -44
- package/dist/lib/browser/chunk-FVEKZBM7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-F7H2Y3Z2.mjs → chunk-GSVYEYVS.mjs} +4 -4
- package/dist/lib/browser/chunk-HSFDKP5D.mjs +15 -0
- package/dist/lib/browser/{chunk-G7C3S2BE.mjs.map → chunk-HSFDKP5D.mjs.map} +1 -1
- package/dist/lib/browser/chunk-JHSBBOCI.mjs +15 -0
- package/dist/lib/browser/chunk-JHSBBOCI.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +60 -49
- package/dist/lib/browser/cli/index.mjs.map +3 -3
- package/dist/lib/browser/{client-IX5LMWV4.mjs → client-BXCP3EUE.mjs} +11 -11
- package/dist/lib/browser/client-BXCP3EUE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +26 -23
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{migrations-3EBTAW3N.mjs → migrations-GKUA2ARL.mjs} +6 -5
- package/dist/lib/browser/migrations-GKUA2ARL.mjs.map +7 -0
- package/dist/lib/browser/{operation-resolver-2NT3ISVP.mjs → operation-resolver-VSWA74RS.mjs} +24 -23
- package/dist/lib/browser/operation-resolver-VSWA74RS.mjs.map +7 -0
- package/dist/lib/browser/{react-context-4UABG3GP.mjs → react-context-GZ3T5UON.mjs} +8 -6
- package/dist/lib/browser/react-context-GZ3T5UON.mjs.map +7 -0
- package/dist/lib/browser/react-surface-5VZP34X3.mjs +77 -0
- package/dist/lib/browser/react-surface-5VZP34X3.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-O7VLP745.mjs → schema-defs-KAG6HQMI.mjs} +8 -6
- package/dist/lib/browser/schema-defs-KAG6HQMI.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -1
- package/dist/lib/node-esm/DevicesContainer-V7HEUPO7.mjs +269 -0
- package/dist/lib/node-esm/DevicesContainer-V7HEUPO7.mjs.map +7 -0
- package/dist/lib/node-esm/JoinDialog-XVKW4SLT.mjs +60 -0
- package/dist/lib/node-esm/JoinDialog-XVKW4SLT.mjs.map +7 -0
- package/dist/lib/node-esm/ProfileContainer-B5LJ6TMU.mjs +172 -0
- package/dist/lib/node-esm/ProfileContainer-B5LJ6TMU.mjs.map +7 -0
- package/dist/lib/node-esm/RecoveryCodeDialog-YIRGXM7N.mjs +61 -0
- package/dist/lib/node-esm/RecoveryCodeDialog-YIRGXM7N.mjs.map +7 -0
- package/dist/lib/node-esm/RecoveryCredentialsContainer-MVJEFNXX.mjs +58 -0
- package/dist/lib/node-esm/RecoveryCredentialsContainer-MVJEFNXX.mjs.map +7 -0
- package/dist/lib/node-esm/ResetDialog-GGBWSQZO.mjs +54 -0
- package/dist/lib/node-esm/ResetDialog-GGBWSQZO.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-2PIYVUNC.mjs → app-graph-builder-PTNZ46NN.mjs} +9 -6
- package/dist/lib/node-esm/app-graph-builder-PTNZ46NN.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BOTJSPCT.mjs +17 -0
- package/dist/lib/node-esm/chunk-BOTJSPCT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JAF64TFQ.mjs → chunk-DT2ZNOGU.mjs} +33 -44
- package/dist/lib/node-esm/chunk-DT2ZNOGU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-BCELGXRI.mjs → chunk-OFJUOKY7.mjs} +4 -4
- package/dist/lib/node-esm/chunk-VLNCZYIC.mjs +16 -0
- package/dist/lib/node-esm/{chunk-PRAFFO54.mjs.map → chunk-VLNCZYIC.mjs.map} +1 -1
- package/dist/lib/node-esm/cli/index.mjs +60 -49
- package/dist/lib/node-esm/cli/index.mjs.map +3 -3
- package/dist/lib/node-esm/{client-FFPK5UFP.mjs → client-EGZHGRRC.mjs} +11 -11
- package/dist/lib/node-esm/client-EGZHGRRC.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +26 -23
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{migrations-WSZSFGDK.mjs → migrations-4NEKCBGU.mjs} +6 -5
- package/dist/lib/node-esm/migrations-4NEKCBGU.mjs.map +7 -0
- package/dist/lib/node-esm/{operation-resolver-VW5R2BE4.mjs → operation-resolver-4GWB3YZG.mjs} +24 -23
- package/dist/lib/node-esm/operation-resolver-4GWB3YZG.mjs.map +7 -0
- package/dist/lib/node-esm/{react-context-UVXMGPW4.mjs → react-context-T2ORT5CC.mjs} +8 -6
- package/dist/lib/node-esm/react-context-T2ORT5CC.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-B65OUZYI.mjs +78 -0
- package/dist/lib/node-esm/react-surface-B65OUZYI.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-QLRGBIKY.mjs → schema-defs-GXQ47JZN.mjs} +8 -6
- package/dist/lib/node-esm/schema-defs-GXQ47JZN.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -1
- package/dist/types/src/ClientPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/client/client.d.ts +2 -2
- package/dist/types/src/capabilities/client/client.d.ts.map +1 -1
- package/dist/types/src/capabilities/client/index.d.ts +2 -1
- package/dist/types/src/capabilities/client/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/migrations/migrations.d.ts +1 -1
- package/dist/types/src/capabilities/migrations/migrations.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context/react-context.d.ts +1 -1
- package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts +1 -1
- package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +1 -1
- package/dist/types/src/cli/commands/halo/create/create.d.ts.map +1 -1
- package/dist/types/src/cli/commands/profile/create.d.ts +2 -1
- package/dist/types/src/cli/commands/profile/create.d.ts.map +1 -1
- package/dist/types/src/cli/commands/profile/delete.d.ts +1 -1
- package/dist/types/src/cli/commands/profile/delete.d.ts.map +1 -1
- package/dist/types/src/cli/commands/profile/list.d.ts.map +1 -1
- package/dist/types/src/cli/plugin.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +0 -6
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -0
- package/dist/types/src/{components → containers/DevicesContainer}/DevicesContainer.stories.d.ts +9 -7
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/DevicesContainer/index.d.ts +3 -0
- package/dist/types/src/containers/DevicesContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -0
- package/dist/types/src/containers/JoinDialog/index.d.ts +3 -0
- package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts.map +1 -0
- package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ProfileContainer/index.d.ts +3 -0
- package/dist/types/src/containers/ProfileContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts +4 -0
- package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts +3 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/ResetDialog}/ResetDialog.d.ts +1 -1
- package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -0
- package/dist/types/src/{components → containers/ResetDialog}/ResetDialog.stories.d.ts +1 -1
- package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ResetDialog/index.d.ts +4 -0
- package/dist/types/src/containers/ResetDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +10 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/types/capabilities.d.ts +1 -1
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +36 -32
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +36 -35
- package/src/ClientPlugin.ts +27 -19
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +4 -3
- package/src/capabilities/client/client.ts +7 -5
- package/src/capabilities/migrations/migrations.ts +3 -3
- package/src/capabilities/operation-resolver/operation-resolver.ts +13 -12
- package/src/capabilities/react-context/react-context.tsx +3 -3
- package/src/capabilities/react-surface/react-surface.tsx +12 -12
- package/src/capabilities/schema-defs/schema-defs.ts +7 -6
- package/src/cli/commands/edge/status.ts +2 -2
- package/src/cli/commands/halo/create/create.ts +2 -2
- package/src/cli/commands/profile/create.ts +9 -6
- package/src/cli/commands/profile/delete.ts +5 -2
- package/src/cli/commands/profile/list.ts +13 -11
- package/src/cli/plugin.ts +7 -6
- package/src/components/index.ts +0 -7
- package/src/constants.ts +3 -3
- package/src/{components → containers/DevicesContainer}/DevicesContainer.stories.tsx +8 -6
- package/src/{components → containers/DevicesContainer}/DevicesContainer.tsx +49 -57
- package/src/containers/DevicesContainer/index.ts +7 -0
- package/src/{components → containers/JoinDialog}/JoinDialog.tsx +8 -6
- package/src/containers/JoinDialog/index.ts +7 -0
- package/src/{components → containers/ProfileContainer}/ProfileContainer.stories.tsx +4 -4
- package/src/{components → containers/ProfileContainer}/ProfileContainer.tsx +20 -28
- package/src/containers/ProfileContainer/index.ts +7 -0
- package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.stories.tsx +4 -4
- package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.tsx +28 -25
- package/src/containers/RecoveryCodeDialog/index.ts +8 -0
- package/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.stories.tsx +8 -6
- package/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.tsx +19 -19
- package/src/containers/RecoveryCredentialsContainer/index.ts +7 -0
- package/src/{components → containers/ResetDialog}/ResetDialog.stories.tsx +27 -14
- package/src/{components → containers/ResetDialog}/ResetDialog.tsx +10 -10
- package/src/containers/ResetDialog/index.ts +8 -0
- package/src/containers/index.ts +15 -0
- package/src/meta.ts +1 -1
- package/src/translations.ts +1 -1
- package/src/types/capabilities.ts +3 -3
- package/src/types/events.ts +5 -5
- package/src/types/schema.ts +28 -23
- package/dist/lib/browser/app-graph-builder-3FGBMLTF.mjs.map +0 -7
- package/dist/lib/browser/chunk-4BZGRIFS.mjs.map +0 -7
- package/dist/lib/browser/chunk-G7C3S2BE.mjs +0 -15
- package/dist/lib/browser/client-IX5LMWV4.mjs.map +0 -7
- package/dist/lib/browser/migrations-3EBTAW3N.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-2NT3ISVP.mjs.map +0 -7
- package/dist/lib/browser/react-context-4UABG3GP.mjs.map +0 -7
- package/dist/lib/browser/react-surface-RSQ74XCT.mjs +0 -675
- package/dist/lib/browser/react-surface-RSQ74XCT.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-O7VLP745.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-2PIYVUNC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JAF64TFQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PRAFFO54.mjs +0 -16
- package/dist/lib/node-esm/client-FFPK5UFP.mjs.map +0 -7
- package/dist/lib/node-esm/migrations-WSZSFGDK.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-VW5R2BE4.mjs.map +0 -7
- package/dist/lib/node-esm/react-context-UVXMGPW4.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-KBHANGGC.mjs +0 -676
- package/dist/lib/node-esm/react-surface-KBHANGGC.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-QLRGBIKY.mjs.map +0 -7
- package/dist/types/src/components/DevicesContainer.d.ts.map +0 -1
- package/dist/types/src/components/DevicesContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/components/ProfileContainer.d.ts.map +0 -1
- package/dist/types/src/components/ProfileContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +0 -1
- package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +0 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/ResetDialog.d.ts.map +0 -1
- package/dist/types/src/components/ResetDialog.stories.d.ts.map +0 -1
- /package/dist/lib/browser/{chunk-F7H2Y3Z2.mjs.map → chunk-GSVYEYVS.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-BCELGXRI.mjs.map → chunk-OFJUOKY7.mjs.map} +0 -0
- /package/dist/types/src/{components → containers/DevicesContainer}/DevicesContainer.d.ts +0 -0
- /package/dist/types/src/{components → containers/JoinDialog}/JoinDialog.d.ts +0 -0
- /package/dist/types/src/{components → containers/ProfileContainer}/ProfileContainer.d.ts +0 -0
- /package/dist/types/src/{components → containers/ProfileContainer}/ProfileContainer.stories.d.ts +0 -0
- /package/dist/types/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.d.ts +0 -0
- /package/dist/types/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.stories.d.ts +0 -0
- /package/dist/types/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.d.ts +0 -0
- /package/dist/types/src/{components → containers/RecoveryCredentialsContainer}/RecoveryCredentialsContainer.stories.d.ts +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/components/DevicesContainer.tsx", "../../../src/components/JoinDialog.tsx", "../../../src/components/ProfileContainer.tsx", "../../../src/components/RecoveryCodeDialog.tsx", "../../../src/components/RecoveryCredentialsContainer.tsx", "../../../src/components/ResetDialog.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport {\n DevicesContainer,\n JoinDialog,\n ProfileContainer,\n RecoveryCodeDialog,\n type RecoveryCodeDialogProps,\n RecoveryCredentialsContainer,\n ResetDialog,\n type ResetDialogProps,\n} from '../../components';\nimport { JOIN_DIALOG, RECOVERY_CODE_DIALOG, RESET_DIALOG } from '../../constants';\nimport { Account, type ClientPluginOptions } from '../../types';\n\ntype ReactSurfaceOptions = Pick<ClientPluginOptions, 'onReset'> & {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* (props?: ReactSurfaceOptions) {\n const { createInvitationUrl, onReset } = props!;\n const capabilityManager = yield* Capability.Service;\n\n return Capability.contributes(Common.Capability.ReactSurface, [\n Common.createSurface({\n id: Account.Profile,\n role: 'article',\n filter: (data): data is any => data.subject === Account.Profile,\n component: () => <ProfileContainer />,\n }),\n Common.createSurface({\n id: Account.Devices,\n role: 'article',\n filter: (data): data is any => data.subject === Account.Devices,\n component: () => <DevicesContainer createInvitationUrl={createInvitationUrl} />,\n }),\n Common.createSurface({\n id: Account.Security,\n role: 'article',\n filter: (data): data is any => data.subject === Account.Security,\n component: () => <RecoveryCredentialsContainer />,\n }),\n Common.createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }: { data: any }) => <JoinDialog {...data.props} />,\n }),\n Common.createSurface({\n id: RECOVERY_CODE_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: RecoveryCodeDialogProps } => data.component === RECOVERY_CODE_DIALOG,\n component: ({ data }: { data: any }) => <RecoveryCodeDialog {...data.props} />,\n }),\n Common.createSurface({\n id: RESET_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: ResetDialogProps } => data.component === RESET_DIALOG,\n component: ({ data }: { data: any }) => (\n <ResetDialog {...data.props} onReset={onReset} capabilityManager={capabilityManager} />\n ),\n }),\n ]);\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { QR } from 'react-qr-rounded';\n\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { log } from '@dxos/log';\nimport { useClient, useMulticastObservable } from '@dxos/react-client';\nimport { type Device, useDevices } from '@dxos/react-client/halo';\nimport { type CancellableInvitationObservable, Invitation, InvitationEncoder } from '@dxos/react-client/invitations';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Button, Clipboard, Icon, IconButton, List, useId, useTranslation } from '@dxos/react-ui';\nimport {\n ControlFrame,\n ControlFrameItem,\n ControlGroup,\n ControlItem,\n ControlPage,\n ControlSection,\n} from '@dxos/react-ui-form';\nimport { translationKey } from '@dxos/shell/react';\nimport { AuthCode, Centered, DeviceListItem, Emoji, Viewport } from '@dxos/shell/react';\nimport { osTranslations } from '@dxos/ui-theme';\nimport { hexToEmoji } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { ClientOperation } from '../types';\n\nexport type DevicesContainerProps = {\n createInvitationUrl?: (invitationCode: string) => string;\n};\n\nexport const DevicesContainer = ({ createInvitationUrl }: DevicesContainerProps) => {\n const { t } = useTranslation(translationKey);\n const { invokePromise } = useOperationInvoker();\n const devices = useDevices();\n const { swarm: connectionState } = useNetworkStatus();\n\n const handleResetStorage = useCallback(() => invokePromise(ClientOperation.ResetStorage, {}), [invokePromise]);\n\n const handleRecover = useCallback(\n () => invokePromise(ClientOperation.ResetStorage, { mode: 'recover' }),\n [invokePromise],\n );\n\n const handleJoinNewIdentity = useCallback(\n () => invokePromise(ClientOperation.ResetStorage, { mode: 'join new identity' }),\n [invokePromise],\n );\n\n return (\n <Clipboard.Provider>\n <ControlPage>\n <ControlSection\n title={t('devices verbose label', { ns: meta.id })}\n description={t('devices description', { ns: meta.id })}\n >\n <ControlFrame>\n <ControlFrameItem title={t('devices label', { ns: meta.id })}>\n <List>\n {devices.map((device: Device) => {\n return (\n <DeviceListItem key={device.deviceKey.toHex()} device={device} connectionState={connectionState} />\n );\n })}\n </List>\n </ControlFrameItem>\n {createInvitationUrl && (\n <ControlFrameItem title='Add device'>\n <DeviceInvitation createInvitationUrl={createInvitationUrl} />\n </ControlFrameItem>\n )}\n </ControlFrame>\n </ControlSection>\n <ControlSection\n title={t('danger zone title', { ns: meta.id })}\n description={t('danger zone description', { ns: meta.id })}\n >\n <ControlGroup>\n <ControlItem title={t('reset device label')} description={t('reset device description', { ns: meta.id })}>\n <Button variant='destructive' onClick={handleResetStorage} data-testid='devicesContainer.reset'>\n {t('reset device label')}\n </Button>\n </ControlItem>\n <ControlItem\n title={t('recover identity label')}\n description={t('recover identity description', { ns: meta.id })}\n >\n <Button variant='destructive' onClick={handleRecover} data-testid='devicesContainer.recover'>\n {t('recover identity label')}\n </Button>\n </ControlItem>\n <ControlItem\n title={t('join new identity label')}\n description={t('join new identity description', { ns: meta.id })}\n >\n <Button variant='destructive' onClick={handleJoinNewIdentity} data-testid='devicesContainer.joinExisting'>\n {t('join new identity label')}\n </Button>\n </ControlItem>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n </Clipboard.Provider>\n );\n};\n\ntype DeviceInvitationProps = {\n invitation?: CancellableInvitationObservable;\n createInvitationUrl: (invitationCode: string) => string;\n onInvitationDone: () => void;\n onInvitationCreate: () => void;\n};\n\nconst DeviceInvitation = (props: Pick<DeviceInvitationProps, 'createInvitationUrl'>) => {\n const client = useClient();\n const [invitation, setInvitation] = useState<CancellableInvitationObservable>();\n\n const onInvitationCreate = useCallback(() => {\n const invitation = client.halo.share();\n if (client.config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription = invitation.subscribe((invitation: Invitation) => {\n const invitationCode = InvitationEncoder.encode(invitation);\n if (invitation.state === Invitation.State.CONNECTING) {\n log.info(JSON.stringify({ invitationCode, authCode: invitation.authCode }));\n subscription.unsubscribe();\n }\n });\n }\n setInvitation(invitation);\n }, [client]);\n\n const onInvitationDone = useCallback(() => {\n setInvitation(undefined);\n }, []);\n\n if (invitation) {\n return <DeviceInvitationImpl {...props} {...{ invitation, onInvitationCreate, onInvitationDone }} />;\n } else {\n return <InvitationSection {...props} {...{ onInvitationCreate, onInvitationDone }} />;\n }\n};\n\nconst DeviceInvitationImpl = ({\n invitation: invitationObservable,\n createInvitationUrl,\n onInvitationDone,\n onInvitationCreate,\n}: DeviceInvitationProps) => {\n const invitation = useMulticastObservable(invitationObservable!);\n const url = createInvitationUrl(InvitationEncoder.encode(invitation));\n\n useEffect(() => {\n if (invitation.state >= Invitation.State.SUCCESS) {\n onInvitationDone();\n }\n }, [invitation.state]);\n\n return <InvitationSection {...invitation} {...{ url, onInvitationDone, onInvitationCreate }} />;\n};\n\ntype InvitationComponentProps = Partial<\n Pick<Invitation, 'authCode' | 'invitationId'> &\n Pick<DeviceInvitationProps, 'onInvitationDone' | 'onInvitationCreate'> & {\n state: number;\n url: string;\n }\n>;\n\nconst InvitationSection = ({\n state = -1,\n authCode,\n invitationId = 'never',\n url = 'never',\n onInvitationDone = () => {},\n onInvitationCreate = () => {},\n}: InvitationComponentProps) => {\n const { t } = useTranslation(meta.id);\n const activeView =\n state < 0\n ? 'init'\n : state >= Invitation.State.CANCELLED\n ? 'complete'\n : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode\n ? 'auth-code'\n : 'qr-code';\n return activeView === 'init' ? (\n <>\n <p className='text-description mbe-2'>{t('add device description')}</p>\n <IconButton\n icon='ph--plus--regular'\n label={t('create device invitation label')}\n disabled={state >= 0}\n classNames='is-full'\n data-testid='devicesContainer.createInvitation'\n onClick={onInvitationCreate}\n />\n </>\n ) : (\n <Viewport.Root activeView={activeView}>\n <Viewport.Views>\n <Viewport.View id='init'>\n {/* This view intentionally left blank while conditionally rendering the viewport. */}\n </Viewport.View>\n <Viewport.View id='complete'>\n <InvitationComplete statusValue={state} />\n </Viewport.View>\n <Viewport.View id='auth-code'>\n <InvitationAuthCode id={invitationId} code={authCode ?? 'never'} onCancel={onInvitationDone} />\n </Viewport.View>\n <Viewport.View id='qr-code'>\n <InvitationQR id={invitationId} url={url} onCancel={onInvitationDone} />\n </Viewport.View>\n </Viewport.Views>\n </Viewport.Root>\n );\n};\n\nconst InvitationQR = ({ id, url, onCancel }: { id: string; url: string; onCancel: () => void }) => {\n const { t } = useTranslation(osTranslations);\n const qrLabel = useId('devices-container__qr-code');\n const emoji = hexToEmoji(id);\n return (\n <>\n <p className='text-description'>{t('qr code description', { ns: meta.id })}</p>\n <div role='group' className='grid grid-cols-[1fr_min-content] mlb-2 gap-2'>\n <div role='none' className='is-full aspect-square relative text-description'>\n <QR\n rounding={100}\n backgroundColor='transparent'\n color='currentColor'\n aria-labelledby={qrLabel}\n errorCorrectionLevel='Q'\n cutout={true}\n >\n {url ?? 'never'}\n </QR>\n <Centered>\n <Emoji text={emoji} />\n </Centered>\n </div>\n <span id={qrLabel} className='sr-only'>\n {t('qr label')}\n </span>\n </div>\n {/* TODO(burdon): Factor out button bar */}\n <div className='flex justify-center'>\n <div className='flex gap-2'>\n <Clipboard.Button value={url ?? 'never'} />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </div>\n </div>\n </>\n );\n};\n\nconst InvitationAuthCode = ({ id, code, onCancel }: { id: string; code: string; onCancel: () => void }) => {\n const { t } = useTranslation(osTranslations);\n const emoji = hexToEmoji(id);\n\n return (\n <>\n <p className='text-description'>{t('auth other device emoji message')}</p>\n {emoji && <Emoji text={emoji} className='mli-auto mlb-2 text-center' />}\n <p className='text-description'>{t('auth code message')}</p>\n <AuthCode code={code} large classNames='mli-auto mlb-2 text-center grow' />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationComplete = ({ statusValue }: { statusValue: number }) => {\n return statusValue > 0 ? (\n <Icon icon='ph--check--regular' size={6} classNames='m-1.5' />\n ) : (\n <Icon icon='ph--x--regular' size={6} classNames='m-1.5' />\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Common } from '@dxos/app-framework';\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { meta } from '../meta';\nimport { ClientOperation } from '../types';\n\nexport const JoinDialog = (props: JoinPanelProps) => {\n const { invokePromise } = useOperationInvoker();\n const { t } = useTranslation(meta.id);\n\n const handleCancelResetStorage = useCallback(() => invokePromise(ClientOperation.ShareIdentity), [invokePromise]);\n\n const handleDone = useCallback(\n async (result: InvitationResult | null) => {\n if (result?.identityKey) {\n await Promise.all([\n invokePromise(Common.LayoutOperation.UpdateDialog, { state: false }),\n invokePromise(ObservabilityOperation.SendEvent, {\n name: props.initialDisposition === 'recover-identity' ? 'identity.recover' : 'identity.join',\n }),\n ]);\n }\n },\n [invokePromise],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Title classNames='sr-only'>{t('join space label', { ns: osTranslations })}</Dialog.Title>\n <JoinPanel\n mode='halo-only'\n {...props}\n exitActionParent={<Dialog.Close asChild />}\n doneActionParent={<Dialog.Close asChild />}\n onCancelResetStorage={handleCancelResetStorage}\n onDone={handleDone}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { useClient } from '@dxos/react-client';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport { ButtonGroup, Clipboard, Input, useTranslation } from '@dxos/react-ui';\nimport {\n ControlItem,\n ControlItemInput,\n ControlPage,\n ControlSection,\n Form,\n type FormFieldMap,\n type FormUpdateMeta,\n} from '@dxos/react-ui-form';\nimport { EmojiPickerBlock, HuePicker } from '@dxos/react-ui-pickers';\nimport { hexToEmoji, hexToHue } from '@dxos/util';\n\nimport { meta } from '../meta';\n\n// TOOD(burdon): Factor out?\n// TODO(wittjosiah): Integrate annotations with translations.\nconst UserProfile = Schema.Struct({\n did: Schema.String.annotations({ title: 'DID' }),\n displayName: Schema.String.annotations({ title: 'Display name' }),\n emoji: Schema.String.annotations({ title: 'Avatar' }),\n hue: Schema.String.annotations({ title: 'Color' }),\n});\n\ntype UserProfile = Schema.Schema.Type<typeof UserProfile>;\n\n// TODO(thure): Factor out?\nconst getDefaultHueValue = (identity: Identity | null) => hexToHue(identity?.identityKey.toHex() ?? '0');\nconst getHueValue = (identity: Identity | null) => identity?.profile?.data?.hue || getDefaultHueValue(identity);\nconst getDefaultEmojiValue = (identity: Identity | null) => hexToEmoji(identity?.identityKey.toHex() ?? '0');\nconst getEmojiValue = (identity: Identity | null) => identity?.profile?.data?.emoji || getDefaultEmojiValue(identity);\n\nexport const ProfileContainer = () => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const identity = useIdentity();\n const [displayName, setDisplayNameDirectly] = useState(identity?.profile?.displayName ?? '');\n const [emoji, setEmojiDirectly] = useState<string>(getEmojiValue(identity));\n const [hue, setHueDirectly] = useState<string>(getHueValue(identity));\n\n const updateProfile = useMemo(\n () =>\n debounce(\n (profile: Partial<UserProfile>) =>\n client.halo.updateProfile({\n displayName: profile.displayName,\n data: {\n emoji: profile.emoji,\n hue: profile.hue,\n },\n }),\n 2_000,\n ),\n [],\n );\n\n const handleChange = useCallback(\n (profile: Partial<UserProfile>, meta: FormUpdateMeta<UserProfile>) => {\n for (const [path, changed] of Object.entries(meta.changed)) {\n if (changed) {\n switch (path) {\n case 'displayName':\n setDisplayNameDirectly(profile.displayName ?? '');\n break;\n case 'emoji':\n setEmojiDirectly(profile.emoji ?? getDefaultEmojiValue(identity));\n break;\n case 'hue':\n setHueDirectly(profile.hue ?? getDefaultHueValue(identity));\n break;\n default:\n break;\n }\n }\n }\n\n void updateProfile(profile);\n },\n [identity],\n );\n\n const values = useMemo(\n () => ({\n did: identity?.did,\n displayName,\n emoji,\n hue,\n }),\n [identity, displayName, emoji, hue],\n );\n\n // TODO(wittjosiah): Integrate descriptions with the form schema.\n const fieldMap = useMemo<FormFieldMap>(\n () => ({\n displayName: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onValueChange(type, value),\n [onValueChange, type],\n );\n\n return (\n <ControlItemInput title={label} description={t('display name description')}>\n <Input.TextInput\n value={getValue()}\n onChange={handleChange}\n placeholder={t('display name input placeholder')}\n classNames='min-is-64'\n />\n </ControlItemInput>\n );\n },\n emoji: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextEmoji: string) => onValueChange(type, nextEmoji), [onValueChange, type]);\n const handleEmojiReset = useCallback(\n () => onValueChange(type, getDefaultEmojiValue(identity)),\n [onValueChange, type],\n );\n\n return (\n <ControlItem title={label} description={t('icon description')}>\n <EmojiPickerBlock\n triggerVariant='default'\n emoji={getValue()}\n onChangeEmoji={handleChange}\n onClickClear={handleEmojiReset}\n classNames='justify-self-end'\n />\n </ControlItem>\n );\n },\n hue: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);\n const handleHueReset = useCallback(\n () => onValueChange(type, getDefaultHueValue(identity)),\n [onValueChange, type],\n );\n\n return (\n <ControlItem title={label} description={t('hue description')}>\n <div role='none' className='flex justify-self-end'>\n <HuePicker value={getValue()} onChange={handleChange} onReset={handleHueReset} />\n </div>\n </ControlItem>\n );\n },\n // TODO(wittjosiah): We need text input annotations for disabled and copyable.\n did: ({ label, getValue }) => {\n return (\n <ControlItemInput title={label} description={t('did description')}>\n <ButtonGroup>\n <Input.TextInput value={getValue()} disabled classNames='min-is-64' />\n <Clipboard.IconButton value={getValue() ?? ''} />\n </ButtonGroup>\n </ControlItemInput>\n );\n },\n }),\n [t],\n );\n\n return (\n <ControlPage>\n <Clipboard.Provider>\n <ControlSection title={t('profile label')} description={t('profile description')}>\n <Form.Root schema={UserProfile} values={values} fieldMap={fieldMap} onValuesChanged={handleChange}>\n <Form.Content>\n <Form.FieldSet classNames='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]' />\n </Form.Content>\n </Form.Root>\n </ControlSection>\n </Clipboard.Provider>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { AlertDialog, Button, Clipboard, Input, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../meta';\n\nexport type RecoveryCodeDialogProps = {\n code: string;\n};\n\nexport const RecoveryCodeDialog = ({ code }: RecoveryCodeDialogProps) => {\n const { t } = useTranslation(meta.id);\n const [confirmation, setConfirmation] = useState(false);\n\n const handleConfirmation = useCallback((checked: boolean) => setConfirmation(checked), []);\n\n return (\n <AlertDialog.Content classNames='bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden'>\n <AlertDialog.Title>{t('recovery code dialog title')}</AlertDialog.Title>\n <p className='plb-4'>{t('recovery code dialog description')}</p>\n <Clipboard.Provider>\n <Code code={code} />\n </Clipboard.Provider>\n <div className='flex flex-col plb-4 gap-2'>\n <p>{t('recovery code dialog warning 1')}</p>\n <p>{t('recovery code dialog warning 2')}</p>\n </div>\n <div className='flex items-center gap-2 pbe-4'>\n <Input.Root>\n <Input.Checkbox\n data-testid='recoveryCode.confirm'\n checked={confirmation}\n onCheckedChange={handleConfirmation}\n />\n <Input.Label>{t('recovery code confirmation label')}</Input.Label>\n </Input.Root>\n </div>\n <div className='flex justify-end'>\n <AlertDialog.Action asChild>\n <Button data-testid='recoveryCode.continue' variant='primary' disabled={!confirmation}>\n {t('continue label')}\n </Button>\n </AlertDialog.Action>\n </div>\n </AlertDialog.Content>\n );\n};\n\nconst Code = ({ code }: { code: string }) => {\n const words = code.split(' ');\n return (\n <div className='relative p-2 border border-separator rounded group'>\n <Clipboard.IconButton value={code} classNames='absolute top-2 right-2 invisible group-hover:visible' />\n <div className='grid grid-cols-4'>\n {words.map((word, i) => (\n <div key={i} className='flex items-center p-2 gap-2'>\n <div className='is-4 text-xs text-center text-subdued'>{i + 1}</div>\n <div className='text-sm'>{word}</div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { useCredentials } from '@dxos/react-client/halo';\nimport { Icon, IconButton, List, ListItem, Message, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItem, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\nimport { ClientOperation } from '../types';\n\nexport const MANAGE_CREDENTIALS_DIALOG = `${meta.id}/ManageCredentialsDialog`;\n\nexport const RecoveryCredentialsContainer = () => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const credentials = useCredentials();\n const recoveryCredentials = credentials.filter(\n (credential) => credential.subject.assertion['@type'] === 'dxos.halo.credentials.IdentityRecovery',\n );\n\n return (\n <ControlPage>\n <ControlSection title={t('recovery setup dialog title')} description={t('recovery setup dialog description')}>\n <ControlGroup>\n <ControlItem title={t('create passkey label')} description={t('create passkey description')}>\n <IconButton\n label={t('create passkey label')}\n icon='ph--key--duotone'\n variant='primary'\n onClick={() => invokePromise(ClientOperation.CreatePasskey)}\n />\n </ControlItem>\n <ControlItem title={t('create recovery code label')} description={t('create recovery code description')}>\n <IconButton\n label={t('create recovery code label')}\n icon='ph--receipt--duotone'\n variant='default'\n onClick={() => invokePromise(ClientOperation.CreateRecoveryCode)}\n />\n </ControlItem>\n </ControlGroup>\n </ControlSection>\n <ControlSection title={t('credentials list label')}>\n {recoveryCredentials.length < 1 ? (\n <Message.Root valence='error' classNames='container-max-width'>\n <Message.Title icon='ph--shield-warning--duotone'>{t('no credentials title')}</Message.Title>\n <Message.Content>{t('no credentials message')}</Message.Content>\n </Message.Root>\n ) : (\n <List classNames='container-max-width pli-2'>\n {recoveryCredentials.map((credential) => (\n <ListItem.Root key={credential.id?.toHex()}>\n <ListItem.Endcap>\n <Icon icon='ph--key--regular' />\n </ListItem.Endcap>\n <ListItem.Heading>{credential.issuanceDate.toLocaleString()}</ListItem.Heading>\n </ListItem.Root>\n ))}\n </List>\n )}\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { useCallback } from 'react';\n\nimport { Capability, type CapabilityManager, Common } from '@dxos/app-framework';\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { useClient } from '@dxos/react-client';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { ConfirmReset, type ConfirmResetProps } from '@dxos/shell/react';\n\nimport { meta } from '../meta';\nimport { type ClientPluginOptions } from '../types';\n\nexport type ResetDialogProps = Pick<ConfirmResetProps, 'mode'> &\n Pick<ClientPluginOptions, 'onReset'> & {\n capabilityManager: CapabilityManager.CapabilityManager;\n };\n\nexport const ResetDialog = ({ mode, onReset, capabilityManager }: ResetDialogProps) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n\n const handleReset = useCallback(async () => {\n await client.reset();\n const target =\n mode === 'join new identity' ? 'deviceInvitation' : mode === 'recover' ? 'recoverIdentity' : undefined;\n if (onReset) {\n await runAndForwardErrors(onReset({ target }).pipe(Effect.provideService(Capability.Service, capabilityManager)));\n }\n }, [client, mode, onReset, capabilityManager]);\n\n const handleCancel = useCallback(() => {\n void invokePromise(Common.LayoutOperation.UpdateDialog, { state: false });\n }, [invokePromise]);\n\n // TODO(wittjosiah): Add the sr-only translations.\n // TODO(wittjosiah): Add missing descriptions to other dialogs.\n return (\n <Dialog.Content>\n <Dialog.Title classNames='sr-only'>{t('reset dialog title')}</Dialog.Title>\n <Dialog.Description classNames='sr-only'>{t('reset dialog description')}</Dialog.Description>\n <ConfirmReset active mode={mode} onConfirm={handleReset} onCancel={handleCancel} />\n </Dialog.Content>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "React", "Capability", "Common", "React", "useCallback", "useEffect", "useState", "QR", "useOperationInvoker", "log", "useClient", "useMulticastObservable", "useDevices", "Invitation", "InvitationEncoder", "useNetworkStatus", "Button", "Clipboard", "Icon", "IconButton", "List", "useId", "useTranslation", "ControlFrame", "ControlFrameItem", "ControlGroup", "ControlItem", "ControlPage", "ControlSection", "translationKey", "AuthCode", "Centered", "DeviceListItem", "Emoji", "Viewport", "osTranslations", "hexToEmoji", "DevicesContainer", "createInvitationUrl", "t", "useTranslation", "translationKey", "invokePromise", "useOperationInvoker", "devices", "useDevices", "swarm", "connectionState", "useNetworkStatus", "handleResetStorage", "useCallback", "ClientOperation", "ResetStorage", "handleRecover", "mode", "handleJoinNewIdentity", "Clipboard", "Provider", "ControlPage", "ControlSection", "title", "ns", "meta", "id", "description", "ControlFrame", "ControlFrameItem", "List", "map", "device", "DeviceListItem", "key", "deviceKey", "toHex", "DeviceInvitation", "ControlGroup", "ControlItem", "Button", "variant", "onClick", "data-testid", "props", "client", "useClient", "invitation", "setInvitation", "useState", "onInvitationCreate", "halo", "share", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "subscription", "subscribe", "invitationCode", "InvitationEncoder", "encode", "state", "Invitation", "State", "CONNECTING", "log", "info", "JSON", "stringify", "authCode", "unsubscribe", "onInvitationDone", "undefined", "DeviceInvitationImpl", "InvitationSection", "invitationObservable", "useMulticastObservable", "url", "useEffect", "SUCCESS", "invitationId", "activeView", "CANCELLED", "READY_FOR_AUTHENTICATION", "p", "className", "IconButton", "icon", "label", "disabled", "classNames", "Viewport", "Root", "Views", "View", "InvitationComplete", "statusValue", "InvitationAuthCode", "code", "onCancel", "InvitationQR", "osTranslations", "qrLabel", "useId", "emoji", "hexToEmoji", "div", "role", "QR", "rounding", "backgroundColor", "color", "aria-labelledby", "errorCorrectionLevel", "cutout", "Centered", "Emoji", "text", "span", "value", "AuthCode", "large", "Icon", "size", "React", "useCallback", "Common", "useOperationInvoker", "ObservabilityOperation", "Dialog", "useTranslation", "JoinPanel", "osTranslations", "JoinDialog", "props", "invokePromise", "useOperationInvoker", "t", "useTranslation", "meta", "id", "handleCancelResetStorage", "useCallback", "ClientOperation", "ShareIdentity", "handleDone", "result", "identityKey", "Promise", "all", "Common", "LayoutOperation", "UpdateDialog", "state", "ObservabilityOperation", "SendEvent", "name", "initialDisposition", "React", "Dialog", "Content", "Title", "classNames", "ns", "osTranslations", "JoinPanel", "mode", "exitActionParent", "Close", "asChild", "doneActionParent", "onCancelResetStorage", "onDone", "Schema", "React", "useCallback", "useMemo", "useState", "debounce", "useClient", "useIdentity", "ButtonGroup", "Clipboard", "Input", "useTranslation", "ControlItem", "ControlItemInput", "ControlPage", "ControlSection", "Form", "EmojiPickerBlock", "HuePicker", "hexToEmoji", "hexToHue", "UserProfile", "Struct", "did", "String", "annotations", "title", "displayName", "emoji", "hue", "getDefaultHueValue", "identity", "hexToHue", "identityKey", "toHex", "getHueValue", "profile", "data", "getDefaultEmojiValue", "hexToEmoji", "getEmojiValue", "ProfileContainer", "t", "useTranslation", "meta", "id", "client", "useClient", "useIdentity", "setDisplayNameDirectly", "useState", "setEmojiDirectly", "setHueDirectly", "updateProfile", "useMemo", "debounce", "halo", "handleChange", "useCallback", "path", "changed", "Object", "entries", "values", "fieldMap", "type", "label", "getValue", "onValueChange", "target", "value", "React", "ControlItemInput", "description", "Input", "TextInput", "onChange", "placeholder", "classNames", "nextEmoji", "handleEmojiReset", "ControlItem", "EmojiPickerBlock", "triggerVariant", "onChangeEmoji", "onClickClear", "nextHue", "handleHueReset", "div", "role", "className", "HuePicker", "onReset", "ButtonGroup", "disabled", "Clipboard", "IconButton", "ControlPage", "Provider", "ControlSection", "Form", "Root", "schema", "onValuesChanged", "Content", "FieldSet", "React", "useCallback", "useState", "AlertDialog", "Button", "Clipboard", "Input", "useTranslation", "RecoveryCodeDialog", "code", "t", "useTranslation", "meta", "id", "confirmation", "setConfirmation", "useState", "handleConfirmation", "useCallback", "checked", "React", "AlertDialog", "Content", "classNames", "Title", "p", "className", "Clipboard", "Provider", "Code", "div", "Input", "Root", "Checkbox", "data-testid", "onCheckedChange", "Label", "Action", "asChild", "Button", "variant", "disabled", "words", "split", "IconButton", "value", "map", "word", "i", "key", "React", "useOperationInvoker", "useCredentials", "Icon", "IconButton", "List", "ListItem", "Message", "useTranslation", "ControlGroup", "ControlItem", "ControlPage", "ControlSection", "MANAGE_CREDENTIALS_DIALOG", "meta", "id", "RecoveryCredentialsContainer", "t", "useTranslation", "invokePromise", "useOperationInvoker", "credentials", "useCredentials", "recoveryCredentials", "filter", "credential", "subject", "assertion", "React", "ControlPage", "ControlSection", "title", "description", "ControlGroup", "ControlItem", "IconButton", "label", "icon", "variant", "onClick", "ClientOperation", "CreatePasskey", "CreateRecoveryCode", "length", "Message", "Root", "valence", "classNames", "Title", "Content", "List", "map", "ListItem", "key", "toHex", "Endcap", "Icon", "Heading", "issuanceDate", "toLocaleString", "Effect", "React", "useCallback", "Capability", "Common", "useOperationInvoker", "runAndForwardErrors", "useClient", "Dialog", "useTranslation", "ConfirmReset", "ResetDialog", "mode", "onReset", "capabilityManager", "t", "useTranslation", "meta", "id", "invokePromise", "useOperationInvoker", "client", "useClient", "handleReset", "useCallback", "reset", "target", "undefined", "runAndForwardErrors", "pipe", "provideService", "Capability", "Service", "handleCancel", "Common", "LayoutOperation", "UpdateDialog", "state", "React", "Dialog", "Content", "Title", "classNames", "Description", "ConfirmReset", "active", "onConfirm", "onCancel", "Capability", "makeModule", "fnUntraced", "props", "createInvitationUrl", "onReset", "capabilityManager", "Service", "contributes", "Common", "ReactSurface", "createSurface", "id", "Account", "Profile", "role", "filter", "data", "subject", "component", "React", "ProfileContainer", "Devices", "DevicesContainer", "Security", "RecoveryCredentialsContainer", "JOIN_DIALOG", "JoinDialog", "RECOVERY_CODE_DIALOG", "RecoveryCodeDialog", "RESET_DIALOG", "ResetDialog"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/schema-defs/schema-defs.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { type Type } from '@dxos/echo';\n\nimport { ClientCapabilities } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Common.Capability.AtomRegistry);\n const client = yield* Capability.get(ClientCapabilities.Client);\n const schemasAtom = yield* Capability.atom(Common.Capability.Schema);\n\n // TODO(wittjosiah): Unregister schemas when they are disabled.\n let previous: Type.Entity.Any[] = [];\n const cancel = registry.subscribe(\n schemasAtom,\n async (_schemas: any[]) => {\n // TODO(wittjosiah): This doesn't seem to de-dupe schemas as expected.\n const schemas = Array.from(new Set(_schemas.flat())) as Type.Entity.Any[];\n // TODO(wittjosiah): Filter out schemas which the client has already registered.\n const newSchemas = schemas.filter((schema) => !previous.includes(schema));\n previous = schemas;\n await client.addTypes(newSchemas);\n },\n { immediate: true },\n );\n\n return Capability.contributes(Common.Capability.Null, null, () => Effect.sync(() => cancel()));\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AAKnC,IAAA,sBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,OAAOL,WAAWM,YAAY;AACrE,QAAMC,SAAS,OAAOP,WAAWI,IAAII,mBAAmBC,MAAM;AAC9D,QAAMC,cAAc,OAAOV,WAAWW,KAAKN,OAAOL,WAAWY,MAAM;AAGnE,MAAIC,WAA8B,CAAA;AAClC,QAAMC,SAASX,SAASY,UACtBL,aACA,OAAOM,aAAAA;AAEL,UAAMC,UAAUC,MAAMC,KAAK,IAAIC,IAAIJ,SAASK,KAAI,CAAA,CAAA;AAEhD,UAAMC,aAAaL,QAAQM,OAAO,CAACC,WAAW,CAACX,SAASY,SAASD,MAAAA,CAAAA;AACjEX,eAAWI;AACX,UAAMV,OAAOmB,SAASJ,UAAAA;EACxB,GACA;IAAEK,WAAW;EAAK,CAAA;AAGpB,SAAO3B,WAAW4B,YAAYvB,OAAOL,WAAW6B,MAAM,MAAM,MAAaC,YAAK,MAAMhB,OAAAA,CAAAA,CAAAA;AACtF,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Capability", "Common", "Capability", "makeModule", "fnUntraced", "registry", "get", "Common", "AtomRegistry", "client", "ClientCapabilities", "Client", "schemasAtom", "atom", "Schema", "previous", "cancel", "subscribe", "_schemas", "schemas", "Array", "from", "Set", "flat", "newSchemas", "filter", "schema", "includes", "addTypes", "immediate", "contributes", "Null", "sync"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { Operation } from '@dxos/operation';\nimport { CreateAtom, GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';\nimport { ConnectionState } from '@dxos/react-client/mesh';\n\nimport { meta } from '../../meta';\nimport { Account, ClientCapabilities, ClientOperation } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* GraphBuilder.createExtension({\n id: meta.id,\n match: NodeMatcher.whenRoot,\n actions: () =>\n Effect.succeed([\n {\n id: `${meta.id}/open-user-account`,\n data: () => Operation.invoke(ClientOperation.ShareIdentity),\n properties: {\n label: ['open user account label', { ns: meta.id }],\n icon: 'ph--user--regular',\n disposition: 'menu',\n keyBinding: {\n macos: 'meta+shift+.',\n // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.\n windows: 'alt+shift+.',\n linux: 'alt+shift+>',\n },\n },\n },\n ]),\n connector: Effect.fnUntraced(function* (node, get) {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const identity = get(CreateAtom.fromObservable(client.halo.identity));\n const status = get(CreateAtom.fromObservable(client.mesh.networkStatus));\n\n return [\n {\n id: Account.id,\n type: meta.id,\n properties: {\n label: ['account label', { ns: meta.id }],\n icon: 'ph--user--regular',\n disposition: 'user-account',\n testId: 'clientPlugin.account',\n // NOTE: This currently needs to be the identity key because the fallback is generated from hex.\n userId: identity?.identityKey.toHex(),\n hue: identity?.profile?.data?.hue,\n emoji: identity?.profile?.data?.emoji,\n status: status.swarm === ConnectionState.OFFLINE ? 'error' : 'active',\n },\n nodes: [\n {\n id: Account.Profile,\n data: Account.Profile,\n type: meta.id,\n properties: {\n label: ['profile label', { ns: meta.id }],\n icon: 'ph--user--regular',\n },\n },\n {\n id: Account.Devices,\n data: Account.Devices,\n type: meta.id,\n properties: {\n label: ['devices label', { ns: meta.id }],\n icon: 'ph--devices--regular',\n testId: 'clientPlugin.devices',\n },\n },\n {\n id: Account.Security,\n data: Account.Security,\n type: meta.id,\n properties: {\n label: ['security label', { ns: meta.id }],\n icon: 'ph--key--regular',\n },\n },\n ],\n },\n ];\n }),\n });\n\n return Capability.contributes(Common.Capability.AppGraphBuilder, extensions);\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AACnC,SAASC,iBAAiB;AAC1B,SAASC,YAAYC,cAAcC,mBAAmB;AACtD,SAASC,uBAAuB;AAKhC,IAAA,4BAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAOC,aAAaC,gBAAgB;IACrDC,IAAIC,KAAKD;IACTE,OAAOC,YAAYC;IACnBC,SAAS,MACAC,eAAQ;MACb;QACEN,IAAI,GAAGC,KAAKD,EAAE;QACdO,MAAM,MAAMC,UAAUC,OAAOC,gBAAgBC,aAAa;QAC1DC,YAAY;UACVC,OAAO;YAAC;YAA2B;cAAEC,IAAIb,KAAKD;YAAG;;UACjDe,MAAM;UACNC,aAAa;UACbC,YAAY;YACVC,OAAO;;YAEPC,SAAS;YACTC,OAAO;UACT;QACF;MACF;KACD;IACHC,WAAkBzB,kBAAW,WAAW0B,MAAMC,KAAG;AAC/C,YAAMC,SAAS,OAAO9B,WAAW6B,IAAIE,mBAAmBC,MAAM;AAC9D,YAAMC,WAAWJ,IAAIK,WAAWC,eAAeL,OAAOM,KAAKH,QAAQ,CAAA;AACnE,YAAMI,SAASR,IAAIK,WAAWC,eAAeL,OAAOQ,KAAKC,aAAa,CAAA;AAEtE,aAAO;QACL;UACEjC,IAAIkC,QAAQlC;UACZmC,MAAMlC,KAAKD;UACXY,YAAY;YACVC,OAAO;cAAC;cAAiB;gBAAEC,IAAIb,KAAKD;cAAG;;YACvCe,MAAM;YACNC,aAAa;YACboB,QAAQ;;YAERC,QAAQV,UAAUW,YAAYC,MAAAA;YAC9BC,KAAKb,UAAUc,SAASlC,MAAMiC;YAC9BE,OAAOf,UAAUc,SAASlC,MAAMmC;YAChCX,QAAQA,OAAOY,UAAUC,gBAAgBC,UAAU,UAAU;UAC/D;UACAC,OAAO;YACL;cACE9C,IAAIkC,QAAQa;cACZxC,MAAM2B,QAAQa;cACdZ,MAAMlC,KAAKD;cACXY,YAAY;gBACVC,OAAO;kBAAC;kBAAiB;oBAAEC,IAAIb,KAAKD;kBAAG;;gBACvCe,MAAM;cACR;YACF;YACA;cACEf,IAAIkC,QAAQc;cACZzC,MAAM2B,QAAQc;cACdb,MAAMlC,KAAKD;cACXY,YAAY;gBACVC,OAAO;kBAAC;kBAAiB;oBAAEC,IAAIb,KAAKD;kBAAG;;gBACvCe,MAAM;gBACNqB,QAAQ;cACV;YACF;YACA;cACEpC,IAAIkC,QAAQe;cACZ1C,MAAM2B,QAAQe;cACdd,MAAMlC,KAAKD;cACXY,YAAY;gBACVC,OAAO;kBAAC;kBAAkB;oBAAEC,IAAIb,KAAKD;kBAAG;;gBACxCe,MAAM;cACR;YACF;;QAEJ;;IAEJ,CAAA;EACF,CAAA;AAEA,SAAOrB,WAAWwD,YAAYC,OAAOzD,WAAW0D,iBAAiBvD,UAAAA;AACnE,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Capability", "Common", "Operation", "CreateAtom", "GraphBuilder", "NodeMatcher", "ConnectionState", "Capability", "makeModule", "fnUntraced", "extensions", "GraphBuilder", "createExtension", "id", "meta", "match", "NodeMatcher", "whenRoot", "actions", "succeed", "data", "Operation", "invoke", "ClientOperation", "ShareIdentity", "properties", "label", "ns", "icon", "disposition", "keyBinding", "macos", "windows", "linux", "connector", "node", "get", "client", "ClientCapabilities", "Client", "identity", "CreateAtom", "fromObservable", "halo", "status", "mesh", "networkStatus", "Account", "type", "testId", "userId", "identityKey", "toHex", "hue", "profile", "emoji", "swarm", "ConnectionState", "OFFLINE", "nodes", "Profile", "Devices", "Security", "contributes", "Common", "AppGraphBuilder"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/capabilities.ts", "../../../src/meta.ts", "../../../src/types/events.ts", "../../../src/types/schema.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Client } from '@dxos/client';\nimport { type ObjectMigration } from '@dxos/client/echo';\nimport { type Type } from '@dxos/echo';\n\nimport { meta } from '../meta';\n\nexport namespace ClientCapabilities {\n export const Client = Capability.make<Client>(`${meta.id}/capability/client`);\n export const Schema = Capability.make<Type.Entity.Any[]>(`${meta.id}/capability/schema`);\n export const Migration = Capability.make<ObjectMigration[]>(`${meta.id}/capability/migration`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/client',\n name: 'Client',\n description: trim`\n Core client connectivity and peer-to-peer networking infrastructure.\n Manages identity, authentication, and real-time synchronization across devices.\n `,\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '../meta';\n\nexport namespace ClientEvents {\n export const ClientReady = ActivationEvent.make(`${meta.id}/event/client-ready`);\n export const SetupSchema = ActivationEvent.make(`${meta.id}/event/setup-schema`);\n export const SetupMigration = ActivationEvent.make(`${meta.id}/event/setup-migration`);\n export const IdentityCreated = ActivationEvent.make(`${meta.id}/event/identity-created`);\n export const SpacesReady = ActivationEvent.make(`${meta.id}/event/spaces-ready`);\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Client, type ClientOptions, PublicKey } from '@dxos/client';\nimport { Operation } from '@dxos/operation';\n\nimport { meta } from '../meta';\n\n// TODO(wittjosiah): Factor out. Generate?\nconst IdentitySchema = Schema.Struct({\n identityKey: Schema.instanceOf(PublicKey),\n spaceKey: Schema.optional(Schema.instanceOf(PublicKey)),\n profile: Schema.optional(\n Schema.Struct({\n displayName: Schema.optional(Schema.String),\n avatarCid: Schema.optional(Schema.String),\n data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n ),\n});\n\nexport namespace ClientAction {\n const ProfileSchema = Schema.Struct({\n displayName: Schema.optional(Schema.String),\n avatarCid: Schema.optional(Schema.String),\n data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n });\n\n export class CreateIdentity extends Schema.TaggedClass<CreateIdentity>()(`${meta.id}/action/create-identity`, {\n input: ProfileSchema,\n output: IdentitySchema,\n }) {}\n\n export class JoinIdentity extends Schema.TaggedClass<JoinIdentity>()(`${meta.id}/action/join-identity`, {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class ShareIdentity extends Schema.TaggedClass<ShareIdentity>()(`${meta.id}/action/share-identity`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RecoverIdentity extends Schema.TaggedClass<RecoverIdentity>()(`${meta.id}/action/recover-identity`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class ResetStorage extends Schema.TaggedClass<ResetStorage>()(`${meta.id}/action/reset-storage`, {\n input: Schema.Struct({\n mode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class CreateAgent extends Schema.TaggedClass<CreateAgent>()(`${meta.id}/action/create-agent`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class CreateRecoveryCode extends Schema.TaggedClass<CreateRecoveryCode>()(\n `${meta.id}/action/create-recovery-code`,\n {\n input: Schema.Void,\n output: Schema.Void,\n },\n ) {}\n\n export class CreatePasskey extends Schema.TaggedClass<CreatePasskey>()(`${meta.id}/action/create-passkey`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RedeemPasskey extends Schema.TaggedClass<RedeemPasskey>()(`${meta.id}/action/redeem-passkey`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RedeemToken extends Schema.TaggedClass<RedeemToken>()(`${meta.id}/action/redeem-token`, {\n input: Schema.Struct({\n token: Schema.String,\n }),\n output: Schema.Void,\n }) {}\n}\n\nconst CLIENT_OPERATION = `${meta.id}/operation`;\n\n/**\n * Operations for the Client plugin.\n */\nexport namespace ClientOperation {\n const ProfileSchema = Schema.Struct({\n displayName: Schema.optional(Schema.String),\n avatarCid: Schema.optional(Schema.String),\n data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n });\n\n export const CreateIdentity = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/create-identity`, name: 'Create Identity' },\n services: [Capability.Service],\n schema: {\n input: ProfileSchema,\n output: IdentitySchema,\n },\n });\n\n export const JoinIdentity = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/join-identity`, name: 'Join Identity' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n },\n });\n\n export const ShareIdentity = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/share-identity`, name: 'Share Identity' },\n services: [Capability.Service],\n schema: {\n input: Schema.Void,\n output: Schema.Void,\n },\n });\n\n export const RecoverIdentity = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/recover-identity`, name: 'Recover Identity' },\n services: [Capability.Service],\n schema: {\n input: Schema.Void,\n output: Schema.Void,\n },\n });\n\n export const ResetStorage = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/reset-storage`, name: 'Reset Storage' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n mode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n },\n });\n\n export const CreateAgent = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/create-agent`, name: 'Create Agent' },\n services: [Capability.Service],\n schema: {\n input: Schema.Void,\n output: Schema.Void,\n },\n });\n\n export const CreateRecoveryCode = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/create-recovery-code`, name: 'Create Recovery Code' },\n services: [Capability.Service],\n schema: {\n input: Schema.Void,\n output: Schema.Void,\n },\n });\n\n export const CreatePasskey = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/create-passkey`, name: 'Create Passkey' },\n services: [Capability.Service],\n schema: {\n input: Schema.Void,\n output: Schema.Void,\n },\n });\n\n export const RedeemPasskey = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/redeem-passkey`, name: 'Redeem Passkey' },\n services: [Capability.Service],\n schema: {\n input: Schema.Void,\n output: Schema.Void,\n },\n });\n\n export const RedeemToken = Operation.make({\n meta: { key: `${CLIENT_OPERATION}/redeem-token`, name: 'Redeem Token' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n token: Schema.String,\n }),\n output: Schema.Void,\n },\n });\n}\n\nexport type ClientPluginOptions = ClientOptions & {\n /**\n * Base URL for the invitation link.\n */\n invitationUrl?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationProp?: string;\n\n /**\n * Run after the client has been initialized.\n * Plugin context is provided so capabilities are accessible.\n */\n onClientInitialized?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n\n /**\n * Called when spaces are ready.\n * Plugin context is provided so capabilities are accessible.\n */\n onSpacesReady?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n\n /**\n * Called when the client is reset.\n * Plugin context is provided so capabilities are accessible.\n */\n onReset?: (params: { target?: string }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n};\n\nexport namespace Account {\n // TODO(wittjosiah): Cannot use slashes in ids until we have a router which decouples ids from url paths.\n const _id = 'dxos.org.plugin.client.account';\n // TODO(wittjosiah): This is a hack to prevent the previous deck from being set for pinned items.\n // Ideally this should be worked into the data model in a generic way.\n export const id = `!${_id}`;\n\n export const Profile = `${_id}.profile`;\n export const Devices = `${_id}.devices`;\n export const Security = `${_id}.security`;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Capability", "trim", "meta", "id", "name", "description", "trim", "ClientCapabilities", "Client", "Capability", "make", "meta", "id", "Schema", "Migration", "ActivationEvent", "ClientEvents", "ClientReady", "ActivationEvent", "make", "meta", "id", "SetupSchema", "SetupMigration", "IdentityCreated", "SpacesReady", "Schema", "Capability", "PublicKey", "Operation", "IdentitySchema", "Struct", "identityKey", "instanceOf", "PublicKey", "spaceKey", "optional", "profile", "displayName", "String", "avatarCid", "data", "Record", "key", "value", "Any", "ClientAction", "ProfileSchema", "CreateIdentity", "TaggedClass", "meta", "id", "input", "output", "JoinIdentity", "invitationCode", "Void", "ShareIdentity", "RecoverIdentity", "ResetStorage", "mode", "CreateAgent", "CreateRecoveryCode", "CreatePasskey", "RedeemPasskey", "RedeemToken", "token", "CLIENT_OPERATION", "ClientOperation", "Operation", "make", "name", "services", "Capability", "Service", "schema", "Account", "_id", "Profile", "Devices", "Security"]
|
|
7
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
meta
|
|
4
|
-
} from "./chunk-JAF64TFQ.mjs";
|
|
5
|
-
|
|
6
|
-
// src/constants.ts
|
|
7
|
-
var JOIN_DIALOG = `${meta.id}/JoinDialog`;
|
|
8
|
-
var RECOVERY_CODE_DIALOG = `${meta.id}/RecoveryCodeDialog`;
|
|
9
|
-
var RESET_DIALOG = `${meta.id}/ResetDialog`;
|
|
10
|
-
|
|
11
|
-
export {
|
|
12
|
-
JOIN_DIALOG,
|
|
13
|
-
RECOVERY_CODE_DIALOG,
|
|
14
|
-
RESET_DIALOG
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=chunk-PRAFFO54.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/client/client.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common, Plugin } from '@dxos/app-framework';\nimport { Client, ClientService } from '@dxos/client';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { log } from '@dxos/log';\n\nimport { ClientEvents } from '../../types';\nimport { ClientCapabilities, type ClientPluginOptions } from '../../types';\n\ntype ClientCapabilityOptions = Omit<ClientPluginOptions, 'appKey' | 'invitationUrl' | 'invitationParam' | 'onReset'>;\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* (props?: ClientCapabilityOptions) {\n const { onClientInitialized, onSpacesReady, ...options } = props!;\n const capabilityManager = yield* Capability.Service;\n const pluginManager = yield* Plugin.Service;\n\n log('creating client');\n const client = new Client(options);\n log('initializing client');\n yield* Effect.tryPromise(() => client.initialize());\n log('initialized client');\n if (onClientInitialized) {\n yield* onClientInitialized({ client }).pipe(\n Effect.provideService(Capability.Service, capabilityManager),\n Effect.provideService(Plugin.Service, pluginManager),\n );\n }\n log('called client initialized callback');\n\n // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.\n client.reloaded.on(() => {\n client.halo.identity.subscribe(async (identity) => {\n if (identity) {\n window.location.href = window.location.origin;\n }\n });\n });\n\n // TODO(burdon): The callback isn't called?\n const subscription = client.spaces.isReady.subscribe(async (ready) => {\n if (ready) {\n await Effect.gen(function* () {\n yield* Plugin.activate(ClientEvents.SpacesReady);\n if (onSpacesReady) {\n yield* onSpacesReady({ client });\n }\n }).pipe(\n Effect.provideService(Capability.Service, capabilityManager),\n Effect.provideService(Plugin.Service, pluginManager),\n runAndForwardErrors,\n );\n }\n });\n\n log('client capability ready');\n\n return [\n // TODO(wittjosiah): Try to remove and prefer layer?\n // Perhaps move to using layer has source of truth and add a getter capability for the client.\n Capability.contributes(ClientCapabilities.Client, client, () =>\n Effect.gen(function* () {\n subscription.unsubscribe();\n yield* Effect.tryPromise(() => client.destroy());\n }),\n ),\n Capability.contributes(Common.Capability.Layer, ClientService.fromClient(client)),\n ];\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,QAAQC,cAAc;AAC3C,SAASC,QAAQC,qBAAqB;AACtC,SAASC,2BAA2B;AACpC,SAASC,WAAW;;AAOpB,IAAA,iBAAeC,WAAWC,WACjBC,kBAAW,WAAWC,OAA+B;AAC1D,QAAM,EAAEC,qBAAqBC,eAAe,GAAGC,QAAAA,IAAYH;AAC3D,QAAMI,oBAAoB,OAAOP,WAAWQ;AAC5C,QAAMC,gBAAgB,OAAOC,OAAOF;AAEpCG,MAAI,mBAAA,QAAA;;;;;;AACJ,QAAMC,SAAS,IAAIC,OAAOP,OAAAA;AAC1BK,MAAI,uBAAA,QAAA;;;;;;AACJ,SAAcG,kBAAW,MAAMF,OAAOG,WAAU,CAAA;AAChDJ,MAAI,sBAAA,QAAA;;;;;;AACJ,MAAIP,qBAAqB;AACvB,WAAOA,oBAAoB;MAAEQ;IAAO,CAAA,EAAGI,KAC9BC,sBAAejB,WAAWQ,SAASD,iBAAAA,GACnCU,sBAAeP,OAAOF,SAASC,aAAAA,CAAAA;EAE1C;AACAE,MAAI,sCAAA,QAAA;;;;;;AAGJC,SAAOM,SAASC,GAAG,MAAA;AACjBP,WAAOQ,KAAKC,SAASC,UAAU,OAAOD,aAAAA;AACpC,UAAIA,UAAU;AACZE,eAAOC,SAASC,OAAOF,OAAOC,SAASE;MACzC;IACF,CAAA;EACF,CAAA;AAGA,QAAMC,eAAef,OAAOgB,OAAOC,QAAQP,UAAU,OAAOQ,UAAAA;AAC1D,QAAIA,OAAO;AACT,YAAaC,WAAI,aAAA;AACf,eAAOrB,OAAOsB,SAASC,aAAaC,WAAW;AAC/C,YAAI7B,eAAe;AACjB,iBAAOA,cAAc;YAAEO;UAAO,CAAA;QAChC;MACF,CAAA,EAAGI,KACMC,sBAAejB,WAAWQ,SAASD,iBAAAA,GACnCU,sBAAeP,OAAOF,SAASC,aAAAA,GACtC0B,mBAAAA;IAEJ;EACF,CAAA;AAEAxB,MAAI,2BAAA,QAAA;;;;;;AAEJ,SAAO;;;IAGLX,WAAWoC,YAAYC,mBAAmBxB,QAAQD,QAAQ,MACjDmB,WAAI,aAAA;AACTJ,mBAAaW,YAAW;AACxB,aAAcxB,kBAAW,MAAMF,OAAO2B,QAAO,CAAA;IAC/C,CAAA,CAAA;IAEFvC,WAAWoC,YAAYI,OAAOxC,WAAWyC,OAAOC,cAAcC,WAAW/B,MAAAA,CAAAA;;AAE7E,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Capability", "Common", "Plugin", "Client", "ClientService", "runAndForwardErrors", "log", "Capability", "makeModule", "fnUntraced", "props", "onClientInitialized", "onSpacesReady", "options", "capabilityManager", "Service", "pluginManager", "Plugin", "log", "client", "Client", "tryPromise", "initialize", "pipe", "provideService", "reloaded", "on", "halo", "identity", "subscribe", "window", "location", "href", "origin", "subscription", "spaces", "isReady", "ready", "gen", "activate", "ClientEvents", "SpacesReady", "runAndForwardErrors", "contributes", "ClientCapabilities", "unsubscribe", "destroy", "Common", "Layer", "ClientService", "fromClient"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/migrations/migrations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common } from '@dxos/app-framework';\n\nimport { ClientCapabilities } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Common.Capability.AtomRegistry);\n const client = yield* Capability.get(ClientCapabilities.Client);\n const migrationsAtom = yield* Capability.atom(ClientCapabilities.Migration);\n\n // NOTE: Migrations are currently unidirectional and idempotent.\n const cancel = registry.subscribe(\n migrationsAtom,\n (_migrations: any[]) => {\n const migrations = Array.from(new Set(_migrations.flat()));\n const spaces = client.spaces.get();\n void Promise.all(spaces.map((space: any) => space.internal.db.runMigrations(migrations)));\n },\n { immediate: true },\n );\n\n return Capability.contributes(Common.Capability.Null, null, () => Effect.sync(() => cancel()));\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AAInC,IAAA,qBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,OAAOL,WAAWM,YAAY;AACrE,QAAMC,SAAS,OAAOP,WAAWI,IAAII,mBAAmBC,MAAM;AAC9D,QAAMC,iBAAiB,OAAOV,WAAWW,KAAKH,mBAAmBI,SAAS;AAG1E,QAAMC,SAASV,SAASW,UACtBJ,gBACA,CAACK,gBAAAA;AACC,UAAMC,aAAaC,MAAMC,KAAK,IAAIC,IAAIJ,YAAYK,KAAI,CAAA,CAAA;AACtD,UAAMC,SAASd,OAAOc,OAAOjB,IAAG;AAChC,SAAKkB,QAAQC,IAAIF,OAAOG,IAAI,CAACC,UAAeA,MAAMC,SAASC,GAAGC,cAAcZ,UAAAA,CAAAA,CAAAA;EAC9E,GACA;IAAEa,WAAW;EAAK,CAAA;AAGpB,SAAO7B,WAAW8B,YAAYzB,OAAOL,WAAW+B,MAAM,MAAM,MAAaC,YAAK,MAAMnB,OAAAA,CAAAA,CAAAA;AACtF,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Capability", "Common", "Capability", "makeModule", "fnUntraced", "registry", "get", "Common", "AtomRegistry", "client", "ClientCapabilities", "Client", "migrationsAtom", "atom", "Migration", "cancel", "subscribe", "_migrations", "migrations", "Array", "from", "Set", "flat", "spaces", "Promise", "all", "map", "space", "internal", "db", "runMigrations", "immediate", "contributes", "Null", "sync"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/operation-resolver/operation-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { PublicKey } from '@dxos/client';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { OperationResolver } from '@dxos/operation';\nimport { Operation } from '@dxos/operation';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { JOIN_DIALOG, RECOVERY_CODE_DIALOG, RESET_DIALOG } from '../../constants';\nimport { ClientEvents } from '../../types';\nimport { Account, ClientCapabilities, ClientOperation } from '../../types';\n\ntype OperationResolverOptions = {\n appName?: string;\n};\n\nconst RECOVER_IDENTITY_RPC_TIMEOUT = 20_000;\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* (props?: OperationResolverOptions) {\n const { appName = 'Composer' } = props ?? {};\n\n return Capability.contributes(Common.Capability.OperationResolver, [\n //\n // CreateIdentity\n //\n OperationResolver.make({\n operation: ClientOperation.CreateIdentity,\n handler: Effect.fnUntraced(function* (profile) {\n const manager = yield* Capability.get(Common.Capability.PluginManager);\n const client = yield* Capability.get(ClientCapabilities.Client);\n const data = yield* Effect.promise(() => client.halo.createIdentity(profile));\n yield* Effect.promise(() => runAndForwardErrors(manager.activate(ClientEvents.IdentityCreated)));\n yield* Operation.schedule(ObservabilityOperation.SendEvent, { name: 'identity.create' });\n return data;\n }),\n }),\n\n //\n // JoinIdentity\n //\n OperationResolver.make({\n operation: ClientOperation.JoinIdentity,\n handler: Effect.fnUntraced(function* (data) {\n yield* Operation.invoke(Common.LayoutOperation.UpdateDialog, {\n subject: JOIN_DIALOG,\n blockAlign: 'start',\n props: {\n initialInvitationCode: data.invitationCode,\n initialDisposition: 'accept-halo-invitation',\n },\n });\n }),\n }),\n\n //\n // ShareIdentity\n //\n OperationResolver.make({\n operation: ClientOperation.ShareIdentity,\n handler: Effect.fnUntraced(function* () {\n yield* Operation.invoke(Common.LayoutOperation.SwitchWorkspace, { subject: Account.id });\n yield* Operation.invoke(Common.LayoutOperation.Open, { subject: [Account.Profile] });\n yield* Operation.schedule(ObservabilityOperation.SendEvent, { name: 'identity.share' });\n }),\n }),\n\n //\n // RecoverIdentity\n //\n OperationResolver.make({\n operation: ClientOperation.RecoverIdentity,\n handler: Effect.fnUntraced(function* () {\n yield* Operation.invoke(Common.LayoutOperation.UpdateDialog, {\n subject: JOIN_DIALOG,\n blockAlign: 'start',\n props: {\n initialDisposition: 'recover-identity',\n } satisfies Partial<JoinPanelProps>,\n });\n }),\n }),\n\n //\n // ResetStorage\n //\n OperationResolver.make({\n operation: ClientOperation.ResetStorage,\n handler: Effect.fnUntraced(function* (data) {\n yield* Operation.invoke(Common.LayoutOperation.UpdateDialog, {\n subject: RESET_DIALOG,\n blockAlign: 'start',\n props: {\n mode: data.mode ?? 'reset storage',\n },\n });\n }),\n }),\n\n //\n // CreateAgent\n //\n OperationResolver.make({\n operation: ClientOperation.CreateAgent,\n handler: Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n invariant(client.services.services.EdgeAgentService, 'Missing EdgeAgentService');\n yield* Effect.promise(() =>\n client.services.services.EdgeAgentService!.createAgent(undefined, { timeout: 10_000 }),\n );\n }),\n }),\n\n //\n // CreateRecoveryCode\n //\n OperationResolver.make({\n operation: ClientOperation.CreateRecoveryCode,\n handler: Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n const { recoveryCode } = yield* Effect.promise(() =>\n client.services.services.IdentityService!.createRecoveryCredential({}),\n );\n yield* Operation.invoke(Common.LayoutOperation.UpdateDialog, {\n subject: RECOVERY_CODE_DIALOG,\n blockAlign: 'start',\n type: 'alert',\n props: { code: recoveryCode },\n });\n }),\n }),\n\n //\n // CreatePasskey\n //\n OperationResolver.make({\n operation: ClientOperation.CreatePasskey,\n handler: Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const identity = client.halo.identity.get();\n invariant(identity, 'Identity not available');\n\n const lookupKey = PublicKey.random();\n const credential = yield* Effect.promise(() =>\n navigator.credentials.create({\n publicKey: {\n challenge: new Uint8Array(),\n rp: { id: location.hostname, name: appName },\n user: {\n id: lookupKey.asUint8Array() as Uint8Array<ArrayBuffer>,\n name: identity.did,\n displayName: identity.profile?.displayName ?? '',\n },\n pubKeyCredParams: [\n { type: 'public-key', alg: -8 }, // Ed25519 (not yet supported across all browsers)\n { type: 'public-key', alg: -7 }, // ES256\n ],\n authenticatorSelection: {\n residentKey: 'required',\n requireResidentKey: true,\n },\n },\n }),\n );\n\n invariant(credential, 'Credential not available');\n const recoveryKey = PublicKey.from(new Uint8Array((credential as any).response.getPublicKey()));\n const algorithm = (credential as any).response.getPublicKeyAlgorithm() === -7 ? 'ES256' : 'ED25519';\n\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n yield* Effect.promise(() =>\n client.services.services.IdentityService!.createRecoveryCredential({\n data: {\n recoveryKey,\n algorithm,\n lookupKey,\n },\n }),\n );\n }),\n }),\n\n //\n // RedeemPasskey\n //\n OperationResolver.make({\n operation: ClientOperation.RedeemPasskey,\n handler: Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n const { deviceKey, controlFeedKey, challenge } = yield* Effect.promise(() =>\n client.services.services.IdentityService!.requestRecoveryChallenge(),\n );\n const credential = yield* Effect.promise(() =>\n navigator.credentials.get({\n publicKey: {\n challenge: Buffer.from(challenge, 'base64'),\n rpId: location.hostname,\n userVerification: 'required',\n },\n }),\n );\n const lookupKey = PublicKey.from(new Uint8Array((credential as any).response.userHandle));\n yield* Effect.promise(() =>\n client.services.services.IdentityService!.recoverIdentity(\n {\n external: {\n lookupKey,\n deviceKey,\n controlFeedKey,\n signature: Buffer.from((credential as any).response.signature),\n clientDataJson: Buffer.from((credential as any).response.clientDataJSON),\n authenticatorData: Buffer.from((credential as any).response.authenticatorData),\n },\n },\n { timeout: RECOVER_IDENTITY_RPC_TIMEOUT },\n ),\n );\n }),\n }),\n\n //\n // RedeemToken\n //\n OperationResolver.make({\n operation: ClientOperation.RedeemToken,\n handler: Effect.fnUntraced(function* (data) {\n const client = yield* Capability.get(ClientCapabilities.Client);\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n yield* Effect.promise(() =>\n client.services.services.IdentityService!.recoverIdentity(\n { token: data.token },\n { timeout: RECOVER_IDENTITY_RPC_TIMEOUT },\n ),\n );\n }),\n }),\n ]);\n }),\n);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Capability", "Common", "PublicKey", "runAndForwardErrors", "invariant", "OperationResolver", "Operation", "ObservabilityOperation", "RECOVER_IDENTITY_RPC_TIMEOUT", "Capability", "makeModule", "fnUntraced", "props", "appName", "contributes", "Common", "OperationResolver", "make", "operation", "ClientOperation", "CreateIdentity", "handler", "profile", "manager", "get", "PluginManager", "client", "ClientCapabilities", "Client", "data", "promise", "halo", "createIdentity", "runAndForwardErrors", "activate", "ClientEvents", "IdentityCreated", "Operation", "schedule", "ObservabilityOperation", "SendEvent", "name", "JoinIdentity", "invoke", "LayoutOperation", "UpdateDialog", "subject", "JOIN_DIALOG", "blockAlign", "initialInvitationCode", "invitationCode", "initialDisposition", "ShareIdentity", "SwitchWorkspace", "Account", "id", "Open", "Profile", "RecoverIdentity", "ResetStorage", "RESET_DIALOG", "mode", "CreateAgent", "invariant", "services", "EdgeAgentService", "createAgent", "undefined", "timeout", "CreateRecoveryCode", "IdentityService", "recoveryCode", "createRecoveryCredential", "RECOVERY_CODE_DIALOG", "type", "code", "CreatePasskey", "identity", "lookupKey", "PublicKey", "random", "credential", "navigator", "credentials", "create", "publicKey", "challenge", "Uint8Array", "rp", "location", "hostname", "user", "asUint8Array", "did", "displayName", "pubKeyCredParams", "alg", "authenticatorSelection", "residentKey", "requireResidentKey", "recoveryKey", "from", "response", "getPublicKey", "algorithm", "getPublicKeyAlgorithm", "RedeemPasskey", "deviceKey", "controlFeedKey", "requestRecoveryChallenge", "Buffer", "rpId", "userVerification", "userHandle", "recoverIdentity", "external", "signature", "clientDataJson", "clientDataJSON", "authenticatorData", "RedeemToken", "token"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-context/react-context.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capability, Common } from '@dxos/app-framework';\nimport { useCapability } from '@dxos/app-framework/react';\nimport { ClientProvider } from '@dxos/react-client';\n\nimport { meta } from '../../meta';\nimport { ClientCapabilities } from '../../types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Common.Capability.ReactContext, {\n id: meta.id,\n context: ({ children }: { children?: React.ReactNode }) => {\n const client = useCapability(ClientCapabilities.Client);\n return <ClientProvider client={client}>{children}</ClientProvider>;\n },\n }),\n ),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,YAAYC,cAAc;AACnC,SAASC,qBAAqB;AAC9B,SAASC,sBAAsB;AAK/B,IAAA,wBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,OAAOJ,WAAWK,cAAc;EACrDC,IAAIC,KAAKD;EACTE,SAAS,CAAC,EAAEC,SAAQ,MAAkC;AACpD,UAAMC,SAASC,cAAcC,mBAAmBC,MAAM;AACtD,WAAO,sBAAA,cAACC,gBAAAA;MAAeJ;OAAiBD,QAAAA;EAC1C;AACF,CAAA,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "React", "Capability", "Common", "useCapability", "ClientProvider", "Capability", "makeModule", "succeed", "contributes", "Common", "ReactContext", "id", "meta", "context", "children", "client", "useCapability", "ClientCapabilities", "Client", "ClientProvider"]
|
|
7
|
-
}
|