@dxos/plugin-client 0.8.4-main.8360d9e660 → 0.8.4-main.8baae0fced
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/ClientPlugin.mjs +10 -0
- package/dist/lib/{browser/cli/index.mjs → neutral/ClientPlugin.node.mjs} +87 -117
- package/dist/lib/neutral/ClientPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/ClientPlugin.workerd.mjs +16 -0
- package/dist/lib/neutral/ClientPlugin.workerd.mjs.map +7 -0
- package/dist/lib/{browser/DevicesContainer-3N7ANEJ7.mjs → neutral/DevicesContainer-6MWNUC3I.mjs} +46 -52
- package/dist/lib/neutral/DevicesContainer-6MWNUC3I.mjs.map +7 -0
- package/dist/lib/{browser/JoinDialog-VTTK7NHO.mjs → neutral/JoinDialog-2NXAKPLP.mjs} +10 -16
- package/dist/lib/neutral/JoinDialog-2NXAKPLP.mjs.map +7 -0
- package/dist/lib/{browser/ProfileContainer-XV7OXJC2.mjs → neutral/ProfileContainer-VPX3FPWG.mjs} +17 -20
- package/dist/lib/neutral/ProfileContainer-VPX3FPWG.mjs.map +7 -0
- package/dist/lib/{browser/RecoveryCodeDialog-WO34OZEJ.mjs → neutral/RecoveryCodeDialog-GBRH6ZSA.mjs} +8 -9
- package/dist/lib/neutral/RecoveryCodeDialog-GBRH6ZSA.mjs.map +7 -0
- package/dist/lib/{browser/RecoveryCredentialsContainer-G22FSTIX.mjs → neutral/RecoveryCredentialsContainer-IPBGDMIA.mjs} +18 -24
- package/dist/lib/neutral/RecoveryCredentialsContainer-IPBGDMIA.mjs.map +7 -0
- package/dist/lib/{browser/ResetDialog-W24FOWBQ.mjs → neutral/ResetDialog-VXOIHJXP.mjs} +7 -5
- package/dist/lib/neutral/ResetDialog-VXOIHJXP.mjs.map +7 -0
- package/dist/lib/{browser/app-graph-builder-GGJKFY3X.mjs → neutral/app-graph-builder-IK34U2RQ.mjs} +23 -27
- package/dist/lib/neutral/app-graph-builder-IK34U2RQ.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +30 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/node.mjs +13 -0
- package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
- package/dist/lib/{browser/chunk-JHSBBOCI.mjs → neutral/chunk-CTLL5QTP.mjs} +6 -2
- package/dist/lib/neutral/chunk-CTLL5QTP.mjs.map +7 -0
- package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/neutral/chunk-JVKCYW5O.mjs +8 -0
- package/dist/lib/neutral/chunk-JVKCYW5O.mjs.map +7 -0
- package/dist/lib/neutral/chunk-M37DHX5L.mjs +131 -0
- package/dist/lib/neutral/chunk-M37DHX5L.mjs.map +7 -0
- package/dist/lib/neutral/chunk-QPOTUAY5.mjs +68 -0
- package/dist/lib/neutral/chunk-QPOTUAY5.mjs.map +7 -0
- package/dist/lib/neutral/chunk-RPMM5NKJ.mjs +175 -0
- package/dist/lib/neutral/chunk-RPMM5NKJ.mjs.map +7 -0
- package/dist/lib/{browser/chunk-HSFDKP5D.mjs → neutral/chunk-VAIJSQYA.mjs} +2 -5
- package/dist/lib/neutral/chunk-VAIJSQYA.mjs.map +7 -0
- package/dist/lib/{browser/client-MM3BHCWG.mjs → neutral/client-7JBIGMTX.mjs} +16 -46
- package/dist/lib/neutral/client-7JBIGMTX.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +1 -0
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +19 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-agent-JV3EM3TV.mjs +26 -0
- package/dist/lib/neutral/create-agent-JV3EM3TV.mjs.map +7 -0
- package/dist/lib/neutral/create-identity-GNGOTH6D.mjs +30 -0
- package/dist/lib/neutral/create-identity-GNGOTH6D.mjs.map +7 -0
- package/dist/lib/neutral/create-passkey-NCP4XA7C.mjs +81 -0
- package/dist/lib/neutral/create-passkey-NCP4XA7C.mjs.map +7 -0
- package/dist/lib/neutral/create-recovery-code-L5LA3GAP.mjs +36 -0
- package/dist/lib/neutral/create-recovery-code-L5LA3GAP.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +23 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/join-identity-3W6PJLKN.mjs +27 -0
- package/dist/lib/neutral/join-identity-3W6PJLKN.mjs.map +7 -0
- package/dist/lib/neutral/layer-specs-RCCQ4GKS.mjs +62 -0
- package/dist/lib/neutral/layer-specs-RCCQ4GKS.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/{browser/migrations-GKUA2ARL.mjs → neutral/migrations-7FTW55ER.mjs} +4 -6
- package/dist/lib/neutral/migrations-7FTW55ER.mjs.map +7 -0
- package/dist/lib/neutral/navigation-handler-TA4S74CF.mjs +46 -0
- package/dist/lib/neutral/navigation-handler-TA4S74CF.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-E3HB7E2T.mjs +13 -0
- package/dist/lib/neutral/operation-handler-E3HB7E2T.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +12 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +17 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/{browser/react-context-GZ3T5UON.mjs → neutral/react-context-B5LXMHVM.mjs} +5 -8
- package/dist/lib/neutral/react-context-B5LXMHVM.mjs.map +7 -0
- package/dist/lib/{browser/react-surface-5VZP34X3.mjs → neutral/react-surface-VSBYVQL7.mjs} +13 -30
- package/dist/lib/neutral/react-surface-VSBYVQL7.mjs.map +7 -0
- package/dist/lib/neutral/recover-identity-KL6QY4GI.mjs +26 -0
- package/dist/lib/neutral/recover-identity-KL6QY4GI.mjs.map +7 -0
- package/dist/lib/neutral/redeem-passkey-NDEWSJTM.mjs +66 -0
- package/dist/lib/neutral/redeem-passkey-NDEWSJTM.mjs.map +7 -0
- package/dist/lib/neutral/redeem-token-YLWAVFXD.mjs +29 -0
- package/dist/lib/neutral/redeem-token-YLWAVFXD.mjs.map +7 -0
- package/dist/lib/neutral/reset-storage-OBHEGA6Z.mjs +26 -0
- package/dist/lib/neutral/reset-storage-OBHEGA6Z.mjs.map +7 -0
- package/dist/lib/neutral/schema-defs-6XJAJAQT.mjs +51 -0
- package/dist/lib/neutral/schema-defs-6XJAJAQT.mjs.map +7 -0
- package/dist/lib/neutral/share-identity-JQ5SL3J2.mjs +31 -0
- package/dist/lib/neutral/share-identity-JQ5SL3J2.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +26 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +74 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/types/index.mjs +4 -6
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/src/ClientPlugin.d.ts +2 -1
- package/dist/types/src/ClientPlugin.d.ts.map +1 -1
- package/dist/types/src/ClientPlugin.node.d.ts +5 -0
- package/dist/types/src/ClientPlugin.node.d.ts.map +1 -0
- package/dist/types/src/ClientPlugin.test.d.ts +2 -0
- package/dist/types/src/ClientPlugin.test.d.ts.map +1 -0
- package/dist/types/src/ClientPlugin.workerd.d.ts +4 -0
- package/dist/types/src/ClientPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/{client/client.d.ts → client.d.ts} +2 -2
- package/dist/types/src/capabilities/client.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +33 -7
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/layer-specs.d.ts +6 -0
- package/dist/types/src/capabilities/layer-specs.d.ts.map +1 -0
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
- package/dist/types/src/capabilities/navigation-handler/index.d.ts +4 -0
- package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +15 -0
- package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/node.d.ts +21 -0
- package/dist/types/src/capabilities/node.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
- package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/config/index.d.ts +1 -1
- package/dist/types/src/commands/config/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/config/view.d.ts +1 -1
- package/dist/types/src/commands/config/view.d.ts.map +1 -0
- package/dist/types/src/commands/device/index.d.ts.map +1 -0
- package/dist/types/src/commands/device/info/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/device/info/info.d.ts +2 -2
- package/dist/types/src/commands/device/info/info.d.ts.map +1 -0
- package/dist/types/src/commands/device/info/info.test.d.ts.map +1 -0
- package/dist/types/src/commands/device/list/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/device/list/list.d.ts +2 -2
- package/dist/types/src/commands/device/list/list.d.ts.map +1 -0
- package/dist/types/src/commands/device/list/list.test.d.ts.map +1 -0
- package/dist/types/src/commands/device/update/index.d.ts.map +1 -0
- package/dist/types/src/commands/device/update/update.d.ts.map +1 -0
- package/dist/types/src/commands/device/util.d.ts.map +1 -0
- package/dist/types/src/commands/edge/index.d.ts.map +1 -0
- package/dist/types/src/commands/edge/status.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/halo/create/create.d.ts +2 -2
- package/dist/types/src/commands/halo/create/create.d.ts.map +1 -0
- package/dist/types/src/commands/halo/create/create.test.d.ts.map +1 -0
- package/dist/types/src/commands/halo/create/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/credential/add/add.d.ts.map +1 -0
- package/dist/types/src/commands/halo/credential/add/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/credential/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/credential/list/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/halo/credential/list/list.d.ts +3 -3
- package/dist/types/src/commands/halo/credential/list/list.d.ts.map +1 -0
- package/dist/types/src/commands/halo/credential/list/list.test.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/halo/identity/identity.d.ts +2 -2
- package/dist/types/src/commands/halo/identity/identity.d.ts.map +1 -0
- package/dist/types/src/commands/halo/identity/identity.test.d.ts.map +1 -0
- package/dist/types/src/commands/halo/identity/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/join/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/halo/join/join.d.ts +1 -1
- package/dist/types/src/commands/halo/join/join.d.ts.map +1 -0
- package/dist/types/src/commands/halo/join/join.test.d.ts.map +1 -0
- package/dist/types/src/commands/halo/keys/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/halo/keys/keys.d.ts +2 -2
- package/dist/types/src/commands/halo/keys/keys.d.ts.map +1 -0
- package/dist/types/src/commands/halo/keys/keys.test.d.ts.map +1 -0
- package/dist/types/src/commands/halo/recover/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/recover/recover.d.ts.map +1 -0
- package/dist/types/src/commands/halo/recover/recover.test.d.ts.map +1 -0
- package/dist/types/src/commands/halo/seed/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/seed/seed.d.ts.map +1 -0
- package/dist/types/src/commands/halo/share/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/share/share.d.ts.map +1 -0
- package/dist/types/src/commands/halo/update/index.d.ts.map +1 -0
- package/dist/types/src/commands/halo/update/update.d.ts.map +1 -0
- package/dist/types/src/commands/halo/update/update.test.d.ts.map +1 -0
- package/dist/types/src/commands/halo/util.d.ts.map +1 -0
- package/dist/types/src/commands/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/profile/create.d.ts +1 -1
- package/dist/types/src/commands/profile/create.d.ts.map +1 -0
- package/dist/types/src/commands/profile/delete.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/profile/import.d.ts +2 -2
- package/dist/types/src/commands/profile/import.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/profile/index.d.ts +6 -6
- package/dist/types/src/commands/profile/index.d.ts.map +1 -0
- package/dist/types/src/commands/profile/inspect.d.ts.map +1 -0
- package/dist/types/src/commands/profile/list.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/profile/reset.d.ts +1 -1
- package/dist/types/src/commands/profile/reset.d.ts.map +1 -0
- package/dist/types/src/commands/profile/util.d.ts.map +1 -0
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -1
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts +165 -164
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/DevicesContainer/index.d.ts +1 -2
- package/dist/types/src/containers/DevicesContainer/index.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +15 -0
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -0
- package/dist/types/src/containers/JoinDialog/index.d.ts +1 -2
- package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ProfileContainer/index.d.ts +1 -2
- package/dist/types/src/containers/ProfileContainer/index.d.ts.map +1 -1
- package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -1
- package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -1
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts +1 -2
- package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts.map +1 -1
- package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts +1 -1
- package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -1
- package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts +1 -1
- package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ResetDialog/index.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/create-agent.d.ts +5 -0
- package/dist/types/src/operations/create-agent.d.ts.map +1 -0
- package/dist/types/src/operations/create-identity.d.ts +5 -0
- package/dist/types/src/operations/create-identity.d.ts.map +1 -0
- package/dist/types/src/operations/create-passkey.d.ts +5 -0
- package/dist/types/src/operations/create-passkey.d.ts.map +1 -0
- package/dist/types/src/operations/create-recovery-code.d.ts +5 -0
- package/dist/types/src/operations/create-recovery-code.d.ts.map +1 -0
- package/dist/types/src/operations/definitions.d.ts +36 -0
- package/dist/types/src/operations/definitions.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +4 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/join-identity.d.ts +5 -0
- package/dist/types/src/operations/join-identity.d.ts.map +1 -0
- package/dist/types/src/operations/recover-identity.d.ts +5 -0
- package/dist/types/src/operations/recover-identity.d.ts.map +1 -0
- package/dist/types/src/operations/redeem-passkey.d.ts +5 -0
- package/dist/types/src/operations/redeem-passkey.d.ts.map +1 -0
- package/dist/types/src/operations/redeem-token.d.ts +5 -0
- package/dist/types/src/operations/redeem-token.d.ts.map +1 -0
- package/dist/types/src/operations/reset-storage.d.ts +5 -0
- package/dist/types/src/operations/reset-storage.d.ts.map +1 -0
- package/dist/types/src/operations/share-identity.d.ts +5 -0
- package/dist/types/src/operations/share-identity.d.ts.map +1 -0
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +3 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/testing/initializeIdentity.d.ts +14 -0
- package/dist/types/src/testing/initializeIdentity.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +1 -2
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/events.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +0 -153
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +110 -51
- package/src/{cli/plugin.ts → ClientPlugin.node.ts} +9 -10
- package/src/ClientPlugin.test.ts +29 -0
- package/src/ClientPlugin.ts +22 -10
- package/src/ClientPlugin.workerd.ts +16 -0
- package/src/capabilities/{app-graph-builder/app-graph-builder.ts → app-graph-builder.ts} +20 -19
- package/src/capabilities/{client/client.ts → client.ts} +6 -5
- package/src/capabilities/index.ts +16 -7
- package/src/capabilities/layer-specs.ts +96 -0
- package/src/capabilities/{migrations/migrations.ts → migrations.ts} +1 -1
- package/src/capabilities/navigation-handler/index.ts +9 -0
- package/src/capabilities/navigation-handler/navigation-handler.ts +64 -0
- package/src/capabilities/node.ts +13 -0
- package/src/capabilities/operation-handler.ts +16 -0
- package/src/capabilities/{react-context/react-context.tsx → react-context.tsx} +4 -4
- package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +18 -22
- package/src/capabilities/schema-defs.ts +56 -0
- package/src/{cli/commands → commands}/config/view.ts +4 -1
- package/src/{cli/commands → commands}/device/info/info.test.ts +0 -1
- package/src/{cli/commands → commands}/device/info/info.ts +0 -2
- package/src/{cli/commands → commands}/device/list/list.test.ts +0 -1
- package/src/{cli/commands → commands}/device/list/list.ts +0 -2
- package/src/{cli/commands → commands}/device/update/update.ts +0 -2
- package/src/{cli/commands → commands}/edge/status.ts +2 -1
- package/src/{cli/commands → commands}/halo/create/create.test.ts +5 -4
- package/src/{cli/commands → commands}/halo/create/create.ts +11 -4
- package/src/{cli/commands → commands}/halo/credential/list/list.test.ts +0 -1
- package/src/{cli/commands → commands}/halo/credential/list/list.ts +4 -7
- package/src/{cli/commands → commands}/halo/identity/identity.ts +0 -1
- package/src/{cli/commands → commands}/halo/keys/keys.ts +0 -2
- package/src/{cli/commands → commands}/halo/seed/seed.ts +0 -2
- package/src/{cli/commands → commands}/halo/update/update.test.ts +0 -1
- package/src/{cli/commands → commands}/halo/update/update.ts +0 -2
- package/src/{cli/commands → commands}/profile/list.ts +0 -1
- package/src/constants.ts +1 -1
- package/src/containers/DevicesContainer/DevicesContainer.stories.tsx +6 -6
- package/src/containers/DevicesContainer/DevicesContainer.tsx +50 -49
- package/src/containers/DevicesContainer/index.ts +1 -3
- package/src/containers/JoinDialog/JoinDialog.stories.tsx +43 -0
- package/src/containers/JoinDialog/JoinDialog.tsx +15 -12
- package/src/containers/JoinDialog/index.ts +1 -3
- package/src/containers/ProfileContainer/ProfileContainer.stories.tsx +1 -1
- package/src/containers/ProfileContainer/ProfileContainer.tsx +13 -13
- package/src/containers/ProfileContainer/index.ts +1 -3
- package/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.tsx +1 -1
- package/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.tsx +7 -7
- package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.tsx +6 -6
- package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +24 -26
- package/src/containers/RecoveryCredentialsContainer/index.ts +1 -3
- package/src/containers/ResetDialog/ResetDialog.stories.tsx +6 -6
- package/src/containers/ResetDialog/ResetDialog.tsx +7 -5
- package/src/index.ts +2 -4
- package/src/meta.ts +2 -0
- package/src/operations/create-agent.ts +26 -0
- package/src/operations/create-identity.ts +29 -0
- package/src/operations/create-passkey.ts +88 -0
- package/src/operations/create-recovery-code.ts +34 -0
- package/src/operations/definitions.ts +107 -0
- package/src/operations/index.ts +20 -0
- package/src/operations/join-identity.ts +28 -0
- package/src/operations/recover-identity.ts +28 -0
- package/src/operations/redeem-passkey.ts +85 -0
- package/src/operations/redeem-token.ts +31 -0
- package/src/operations/reset-storage.ts +27 -0
- package/src/operations/share-identity.ts +26 -0
- package/src/plugin.ts +11 -0
- package/src/testing/index.ts +8 -0
- package/src/testing/initializeIdentity.ts +30 -0
- package/src/translations.ts +53 -43
- package/src/types/capabilities.ts +1 -1
- package/src/types/events.ts +1 -1
- package/src/types/schema.ts +1 -111
- package/dist/lib/browser/DevicesContainer-3N7ANEJ7.mjs.map +0 -7
- package/dist/lib/browser/JoinDialog-VTTK7NHO.mjs.map +0 -7
- package/dist/lib/browser/ProfileContainer-XV7OXJC2.mjs.map +0 -7
- package/dist/lib/browser/RecoveryCodeDialog-WO34OZEJ.mjs.map +0 -7
- package/dist/lib/browser/RecoveryCredentialsContainer-G22FSTIX.mjs.map +0 -7
- package/dist/lib/browser/ResetDialog-W24FOWBQ.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-GGJKFY3X.mjs.map +0 -7
- package/dist/lib/browser/chunk-ESDYRACB.mjs +0 -18
- package/dist/lib/browser/chunk-ESDYRACB.mjs.map +0 -7
- package/dist/lib/browser/chunk-FVEKZBM7.mjs +0 -283
- package/dist/lib/browser/chunk-FVEKZBM7.mjs.map +0 -7
- package/dist/lib/browser/chunk-HSFDKP5D.mjs.map +0 -7
- package/dist/lib/browser/chunk-JHSBBOCI.mjs.map +0 -7
- package/dist/lib/browser/cli/index.mjs.map +0 -7
- package/dist/lib/browser/client-MM3BHCWG.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -149
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/migrations-GKUA2ARL.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-VSWA74RS.mjs +0 -299
- package/dist/lib/browser/operation-resolver-VSWA74RS.mjs.map +0 -7
- package/dist/lib/browser/react-context-GZ3T5UON.mjs.map +0 -7
- package/dist/lib/browser/react-surface-5VZP34X3.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-KAG6HQMI.mjs +0 -28
- package/dist/lib/browser/schema-defs-KAG6HQMI.mjs.map +0 -7
- package/dist/lib/node-esm/DevicesContainer-V7HEUPO7.mjs +0 -269
- package/dist/lib/node-esm/DevicesContainer-V7HEUPO7.mjs.map +0 -7
- package/dist/lib/node-esm/JoinDialog-XVKW4SLT.mjs +0 -60
- package/dist/lib/node-esm/JoinDialog-XVKW4SLT.mjs.map +0 -7
- package/dist/lib/node-esm/ProfileContainer-B5LJ6TMU.mjs +0 -172
- package/dist/lib/node-esm/ProfileContainer-B5LJ6TMU.mjs.map +0 -7
- package/dist/lib/node-esm/RecoveryCodeDialog-YIRGXM7N.mjs +0 -61
- package/dist/lib/node-esm/RecoveryCodeDialog-YIRGXM7N.mjs.map +0 -7
- package/dist/lib/node-esm/RecoveryCredentialsContainer-MVJEFNXX.mjs +0 -58
- package/dist/lib/node-esm/RecoveryCredentialsContainer-MVJEFNXX.mjs.map +0 -7
- package/dist/lib/node-esm/ResetDialog-GGBWSQZO.mjs +0 -54
- package/dist/lib/node-esm/ResetDialog-GGBWSQZO.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-PTNZ46NN.mjs +0 -122
- package/dist/lib/node-esm/app-graph-builder-PTNZ46NN.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BOTJSPCT.mjs +0 -17
- package/dist/lib/node-esm/chunk-BOTJSPCT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-DT2ZNOGU.mjs +0 -284
- package/dist/lib/node-esm/chunk-DT2ZNOGU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OIJ5QGFQ.mjs +0 -20
- package/dist/lib/node-esm/chunk-OIJ5QGFQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VLNCZYIC.mjs +0 -16
- package/dist/lib/node-esm/chunk-VLNCZYIC.mjs.map +0 -7
- package/dist/lib/node-esm/cli/index.mjs +0 -1060
- package/dist/lib/node-esm/cli/index.mjs.map +0 -7
- package/dist/lib/node-esm/client-24L47Y2G.mjs +0 -93
- package/dist/lib/node-esm/client-24L47Y2G.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -150
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/migrations-4NEKCBGU.mjs +0 -26
- package/dist/lib/node-esm/migrations-4NEKCBGU.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-4GWB3YZG.mjs +0 -300
- package/dist/lib/node-esm/operation-resolver-4GWB3YZG.mjs.map +0 -7
- package/dist/lib/node-esm/react-context-T2ORT5CC.mjs +0 -27
- package/dist/lib/node-esm/react-context-T2ORT5CC.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-B65OUZYI.mjs +0 -78
- package/dist/lib/node-esm/react-surface-B65OUZYI.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-GXQ47JZN.mjs +0 -29
- package/dist/lib/node-esm/schema-defs-GXQ47JZN.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -17
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/client/client.d.ts.map +0 -1
- package/dist/types/src/capabilities/client/index.d.ts +0 -18
- package/dist/types/src/capabilities/client/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/migrations/index.d.ts +0 -3
- package/dist/types/src/capabilities/migrations/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/migrations/migrations.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -5
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -8
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-context/index.d.ts +0 -7
- package/dist/types/src/capabilities/react-context/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-context/react-context.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +0 -5
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-defs/index.d.ts +0 -3
- package/dist/types/src/capabilities/schema-defs/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +0 -1
- package/dist/types/src/cli/commands/config/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/config/view.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/info/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/info/info.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/info/info.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/list/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/list/list.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/list/list.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/update/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/update/update.d.ts.map +0 -1
- package/dist/types/src/cli/commands/device/util.d.ts.map +0 -1
- package/dist/types/src/cli/commands/edge/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/edge/status.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/create/create.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/create/create.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/create/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/credential/add/add.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/credential/add/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/credential/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/credential/list/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/credential/list/list.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/credential/list/list.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/identity/identity.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/identity/identity.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/identity/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/join/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/join/join.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/join/join.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/keys/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/keys/keys.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/keys/keys.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/recover/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/recover/recover.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/recover/recover.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/seed/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/seed/seed.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/share/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/share/share.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/update/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/update/update.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/update/update.test.d.ts.map +0 -1
- package/dist/types/src/cli/commands/halo/util.d.ts.map +0 -1
- package/dist/types/src/cli/commands/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/profile/create.d.ts.map +0 -1
- package/dist/types/src/cli/commands/profile/delete.d.ts.map +0 -1
- package/dist/types/src/cli/commands/profile/import.d.ts.map +0 -1
- package/dist/types/src/cli/commands/profile/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/profile/inspect.d.ts.map +0 -1
- package/dist/types/src/cli/commands/profile/list.d.ts.map +0 -1
- package/dist/types/src/cli/commands/profile/reset.d.ts.map +0 -1
- package/dist/types/src/cli/commands/profile/util.d.ts.map +0 -1
- package/dist/types/src/cli/index.d.ts +0 -2
- package/dist/types/src/cli/index.d.ts.map +0 -1
- package/dist/types/src/cli/plugin.d.ts +0 -4
- package/dist/types/src/cli/plugin.d.ts.map +0 -1
- package/dist/types/src/cli/testing/test-console.d.ts +0 -37
- package/dist/types/src/cli/testing/test-console.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder/index.ts +0 -7
- package/src/capabilities/client/index.ts +0 -7
- package/src/capabilities/migrations/index.ts +0 -7
- package/src/capabilities/operation-resolver/index.ts +0 -7
- package/src/capabilities/operation-resolver/operation-resolver.ts +0 -249
- package/src/capabilities/react-context/index.ts +0 -7
- package/src/capabilities/react-surface/index.ts +0 -7
- package/src/capabilities/schema-defs/index.ts +0 -7
- package/src/capabilities/schema-defs/schema-defs.ts +0 -36
- package/src/cli/index.ts +0 -5
- package/src/cli/testing/test-console.ts +0 -88
- /package/dist/lib/{browser/types/index.mjs.map → neutral/ClientPlugin.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
- /package/dist/types/src/capabilities/{migrations/migrations.d.ts → migrations.d.ts} +0 -0
- /package/dist/types/src/capabilities/{react-context/react-context.d.ts → react-context.d.ts} +0 -0
- /package/dist/types/src/capabilities/{schema-defs/schema-defs.d.ts → schema-defs.d.ts} +0 -0
- /package/dist/types/src/{cli/commands → commands}/device/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/device/info/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/device/info/info.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/device/list/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/device/list/list.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/device/update/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/device/update/update.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/device/util.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/edge/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/edge/status.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/create/create.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/create/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/credential/add/add.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/credential/add/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/credential/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/credential/list/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/credential/list/list.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/identity/identity.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/identity/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/join/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/join/join.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/keys/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/keys/keys.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/recover/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/recover/recover.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/recover/recover.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/seed/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/seed/seed.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/share/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/share/share.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/update/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/update/update.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/update/update.test.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/halo/util.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/profile/delete.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/profile/inspect.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/profile/list.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/profile/util.d.ts +0 -0
- /package/src/{cli/commands → commands}/config/index.ts +0 -0
- /package/src/{cli/commands → commands}/device/index.ts +0 -0
- /package/src/{cli/commands → commands}/device/info/index.ts +0 -0
- /package/src/{cli/commands → commands}/device/list/index.ts +0 -0
- /package/src/{cli/commands → commands}/device/update/index.ts +0 -0
- /package/src/{cli/commands → commands}/device/util.ts +0 -0
- /package/src/{cli/commands → commands}/edge/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/create/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/credential/add/add.ts +0 -0
- /package/src/{cli/commands → commands}/halo/credential/add/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/credential/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/credential/list/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/identity/identity.test.ts +0 -0
- /package/src/{cli/commands → commands}/halo/identity/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/join/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/join/join.test.ts +0 -0
- /package/src/{cli/commands → commands}/halo/join/join.ts +0 -0
- /package/src/{cli/commands → commands}/halo/keys/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/keys/keys.test.ts +0 -0
- /package/src/{cli/commands → commands}/halo/recover/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/recover/recover.test.ts +0 -0
- /package/src/{cli/commands → commands}/halo/recover/recover.ts +0 -0
- /package/src/{cli/commands → commands}/halo/seed/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/share/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/share/share.ts +0 -0
- /package/src/{cli/commands → commands}/halo/update/index.ts +0 -0
- /package/src/{cli/commands → commands}/halo/util.ts +0 -0
- /package/src/{cli/commands → commands}/index.ts +0 -0
- /package/src/{cli/commands → commands}/profile/create.ts +0 -0
- /package/src/{cli/commands → commands}/profile/delete.ts +0 -0
- /package/src/{cli/commands → commands}/profile/import.ts +0 -0
- /package/src/{cli/commands → commands}/profile/index.ts +0 -0
- /package/src/{cli/commands → commands}/profile/inspect.ts +0 -0
- /package/src/{cli/commands → commands}/profile/reset.ts +0 -0
- /package/src/{cli/commands → commands}/profile/util.ts +0 -0
package/src/translations.ts
CHANGED
|
@@ -5,66 +5,76 @@
|
|
|
5
5
|
import { type Resource } from '@dxos/react-ui';
|
|
6
6
|
import { translations as shellTranslations } from '@dxos/shell/react';
|
|
7
7
|
|
|
8
|
-
import { meta } from '
|
|
8
|
+
import { meta } from '#meta';
|
|
9
9
|
|
|
10
|
+
// TODO(burdon): Disambiguate with sdk/shell
|
|
10
11
|
const pluginTranslations = [
|
|
11
12
|
{
|
|
12
13
|
'en-US': {
|
|
13
14
|
[meta.id]: {
|
|
14
|
-
'account
|
|
15
|
-
'profile
|
|
16
|
-
'profile
|
|
17
|
-
'devices
|
|
18
|
-
'
|
|
19
|
-
'
|
|
15
|
+
'account.label': 'User profile',
|
|
16
|
+
'profile.label': 'Profile',
|
|
17
|
+
'profile.description': 'User profile and account settings.',
|
|
18
|
+
'devices.label': 'Devices',
|
|
19
|
+
'add-device.label': 'Add device',
|
|
20
|
+
'devices-verbose.label': 'Manage devices',
|
|
21
|
+
'add-device.description':
|
|
20
22
|
'Authenticating another device is a two-step process. To get started, create a code using the button below.',
|
|
21
|
-
'devices
|
|
22
|
-
|
|
23
|
-
'
|
|
24
|
-
'qr code description':
|
|
23
|
+
'devices.description': 'Devices, cloud agents, and account access for this identity.',
|
|
24
|
+
'create-device-invitation.label': 'Create code',
|
|
25
|
+
'qr-code.description':
|
|
25
26
|
'Scan this QR code using the device you want to log in to, or copy the URL and share it with the new device.',
|
|
26
|
-
'security
|
|
27
|
-
'reset
|
|
28
|
-
'join
|
|
27
|
+
'security.label': 'Security',
|
|
28
|
+
'reset-device.description': 'Log out from this device, erasing all the data on this device.',
|
|
29
|
+
'join-new-identity.description':
|
|
29
30
|
'Log out from this device, erasing all the data currently on this device, and use a QR code or URL to log in.',
|
|
30
|
-
'recover
|
|
31
|
+
'recover-identity.description':
|
|
31
32
|
'Log out from this device, erasing all the data currently on this device, and use a passkey or recovery code to log in.',
|
|
32
|
-
'danger
|
|
33
|
-
'danger
|
|
33
|
+
'danger-zone.title': 'Log out',
|
|
34
|
+
'danger-zone.description':
|
|
34
35
|
'Because Composer is decentralized, logging out entails erasing all the data on this device. If you have any data on this device that you’d like to keep, you can log in on a separate device using a passkey or complete a peer-to-peer device invitation above.',
|
|
35
|
-
'display
|
|
36
|
-
'display
|
|
37
|
-
'display
|
|
38
|
-
'icon
|
|
39
|
-
'icon
|
|
40
|
-
'hue
|
|
41
|
-
'hue
|
|
36
|
+
'display-name.label': 'Display name',
|
|
37
|
+
'display-name.description': 'Your name as it appears in the app.',
|
|
38
|
+
'display-name-input.placeholder': 'Enter a name',
|
|
39
|
+
'icon.label': 'Avatar',
|
|
40
|
+
'icon.description': 'The emoji used to represent the user.',
|
|
41
|
+
'hue.label': 'Color',
|
|
42
|
+
'hue.description':
|
|
42
43
|
'The color used to represent you in the app, including as your avatar’s background, your cursor as it appears to others, and the messages you send in group threads.',
|
|
43
|
-
'did
|
|
44
|
-
'did
|
|
45
|
-
'open
|
|
46
|
-
'manage
|
|
47
|
-
'credentials
|
|
48
|
-
'no
|
|
49
|
-
'no
|
|
50
|
-
'recovery
|
|
51
|
-
'recovery
|
|
44
|
+
'did.label': 'DID',
|
|
45
|
+
'did.description': 'Your unique ID.',
|
|
46
|
+
'open-user-account.label': 'Open user account',
|
|
47
|
+
'manage-credentials-dialog.title': 'Manage Account Recovery',
|
|
48
|
+
'credentials-list.label': 'Recovery credentials',
|
|
49
|
+
'no-credentials.title': 'WARNING: There is currently no way to recover your account.',
|
|
50
|
+
'no-credentials.message': 'Create a recovery credential above to secure your account.',
|
|
51
|
+
'recovery-setup-dialog.title': 'Account Security',
|
|
52
|
+
'recovery-setup-dialog.description':
|
|
52
53
|
'In order to maintain access to your account you need to register a recovery credential. Passkeys are the recommended way to do this, they can be stored in your browser or in a password manager.',
|
|
53
|
-
'create
|
|
54
|
+
'create-passkey.label': 'Create Passkey',
|
|
54
55
|
// TODO(wittjosiah): At link to user-focused passkey information.
|
|
55
56
|
// Something like https://www.tomsguide.com/news/what-are-passkeys.
|
|
56
|
-
'create
|
|
57
|
+
'create-passkey.description':
|
|
57
58
|
'A passkey is a secure and easy to use credential that can be used to recover your account.',
|
|
58
|
-
'create
|
|
59
|
-
'create
|
|
60
|
-
'recovery
|
|
61
|
-
'recovery
|
|
59
|
+
'create-recovery-code.label': 'Create Recovery Code',
|
|
60
|
+
'create-recovery-code.description': 'A recovery code is 12 word phrase representing a private key.',
|
|
61
|
+
'recovery-code-dialog.title': 'Recovery Code',
|
|
62
|
+
'recovery-code-dialog.description':
|
|
62
63
|
'This is your identity recovery code, store it in a safe place. You can use it to recover your identity if you ever lose access to your devices.',
|
|
63
|
-
'recovery
|
|
64
|
-
'recovery
|
|
64
|
+
'recovery-code-dialog-warning-1.message': 'NOTE: This code will not be displayed again.',
|
|
65
|
+
'recovery-code-dialog-warning-2.message':
|
|
65
66
|
'It is your private key for recovering DXOS data. Anyone with this key will be able to gain access to your account.',
|
|
66
|
-
'recovery
|
|
67
|
-
'continue
|
|
67
|
+
'recovery-code-confirmation.label': 'Please confirm you have saved the code.',
|
|
68
|
+
'continue.label': 'Continue',
|
|
69
|
+
'auth-code.message': 'Authorization code',
|
|
70
|
+
'auth-other-device-emoji.message': 'Authorization icon',
|
|
71
|
+
'cancel.label': 'Cancel',
|
|
72
|
+
'join-new-identity.label': 'Join an existing identity',
|
|
73
|
+
'qr.label': 'QR Code',
|
|
74
|
+
'recover-identity.label': 'Use a recovery code',
|
|
75
|
+
'reset-device.label': 'Reset storage',
|
|
76
|
+
'reset-dialog.description': 'Reset storage',
|
|
77
|
+
'reset-dialog.title': 'Reset storage',
|
|
68
78
|
},
|
|
69
79
|
},
|
|
70
80
|
},
|
|
@@ -7,7 +7,7 @@ import { type Client } from '@dxos/client';
|
|
|
7
7
|
import { type ObjectMigration } from '@dxos/client/echo';
|
|
8
8
|
import { type Type } from '@dxos/echo';
|
|
9
9
|
|
|
10
|
-
import { meta } from '
|
|
10
|
+
import { meta } from '#meta';
|
|
11
11
|
|
|
12
12
|
export namespace ClientCapabilities {
|
|
13
13
|
export const Client = Capability.make<Client>(`${meta.id}.capability.client`);
|
package/src/types/events.ts
CHANGED
package/src/types/schema.ts
CHANGED
|
@@ -7,9 +7,8 @@ import * as Schema from 'effect/Schema';
|
|
|
7
7
|
|
|
8
8
|
import { Capability } from '@dxos/app-framework';
|
|
9
9
|
import { type Client, type ClientOptions, PublicKey } from '@dxos/client';
|
|
10
|
-
import { Operation } from '@dxos/operation';
|
|
11
10
|
|
|
12
|
-
import { meta } from '
|
|
11
|
+
import { meta } from '#meta';
|
|
13
12
|
|
|
14
13
|
// TODO(wittjosiah): Factor out. Generate?
|
|
15
14
|
const IdentitySchema = Schema.Struct({
|
|
@@ -91,115 +90,6 @@ export namespace ClientAction {
|
|
|
91
90
|
}) {}
|
|
92
91
|
}
|
|
93
92
|
|
|
94
|
-
const CLIENT_OPERATION = `${meta.id}.operation`;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Operations for the Client plugin.
|
|
98
|
-
*/
|
|
99
|
-
export namespace ClientOperation {
|
|
100
|
-
const ProfileSchema = Schema.Struct({
|
|
101
|
-
displayName: Schema.optional(Schema.String),
|
|
102
|
-
avatarCid: Schema.optional(Schema.String),
|
|
103
|
-
data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
export const CreateIdentity = Operation.make({
|
|
107
|
-
meta: { key: `${CLIENT_OPERATION}.create-identity`, name: 'Create Identity' },
|
|
108
|
-
services: [Capability.Service],
|
|
109
|
-
schema: {
|
|
110
|
-
input: ProfileSchema,
|
|
111
|
-
output: IdentitySchema,
|
|
112
|
-
},
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
export const JoinIdentity = Operation.make({
|
|
116
|
-
meta: { key: `${CLIENT_OPERATION}.join-identity`, name: 'Join Identity' },
|
|
117
|
-
services: [Capability.Service],
|
|
118
|
-
schema: {
|
|
119
|
-
input: Schema.Struct({
|
|
120
|
-
invitationCode: Schema.optional(Schema.String),
|
|
121
|
-
}),
|
|
122
|
-
output: Schema.Void,
|
|
123
|
-
},
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
export const ShareIdentity = Operation.make({
|
|
127
|
-
meta: { key: `${CLIENT_OPERATION}.share-identity`, name: 'Share Identity' },
|
|
128
|
-
services: [Capability.Service],
|
|
129
|
-
schema: {
|
|
130
|
-
input: Schema.Void,
|
|
131
|
-
output: Schema.Void,
|
|
132
|
-
},
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
export const RecoverIdentity = Operation.make({
|
|
136
|
-
meta: { key: `${CLIENT_OPERATION}.recover-identity`, name: 'Recover Identity' },
|
|
137
|
-
services: [Capability.Service],
|
|
138
|
-
schema: {
|
|
139
|
-
input: Schema.Void,
|
|
140
|
-
output: Schema.Void,
|
|
141
|
-
},
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
export const ResetStorage = Operation.make({
|
|
145
|
-
meta: { key: `${CLIENT_OPERATION}.reset-storage`, name: 'Reset Storage' },
|
|
146
|
-
services: [Capability.Service],
|
|
147
|
-
schema: {
|
|
148
|
-
input: Schema.Struct({
|
|
149
|
-
mode: Schema.optional(Schema.String),
|
|
150
|
-
}),
|
|
151
|
-
output: Schema.Void,
|
|
152
|
-
},
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
export const CreateAgent = Operation.make({
|
|
156
|
-
meta: { key: `${CLIENT_OPERATION}.create-agent`, name: 'Create Agent' },
|
|
157
|
-
services: [Capability.Service],
|
|
158
|
-
schema: {
|
|
159
|
-
input: Schema.Void,
|
|
160
|
-
output: Schema.Void,
|
|
161
|
-
},
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
export const CreateRecoveryCode = Operation.make({
|
|
165
|
-
meta: { key: `${CLIENT_OPERATION}.create-recovery-code`, name: 'Create Recovery Code' },
|
|
166
|
-
services: [Capability.Service],
|
|
167
|
-
schema: {
|
|
168
|
-
input: Schema.Void,
|
|
169
|
-
output: Schema.Void,
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
export const CreatePasskey = Operation.make({
|
|
174
|
-
meta: { key: `${CLIENT_OPERATION}.create-passkey`, name: 'Create Passkey' },
|
|
175
|
-
services: [Capability.Service],
|
|
176
|
-
schema: {
|
|
177
|
-
input: Schema.Void,
|
|
178
|
-
output: Schema.Void,
|
|
179
|
-
},
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
export const RedeemPasskey = Operation.make({
|
|
183
|
-
meta: { key: `${CLIENT_OPERATION}.redeem-passkey`, name: 'Redeem Passkey' },
|
|
184
|
-
services: [Capability.Service],
|
|
185
|
-
schema: {
|
|
186
|
-
input: Schema.Void,
|
|
187
|
-
output: Schema.Void,
|
|
188
|
-
},
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
export const RedeemToken = Operation.make({
|
|
192
|
-
meta: { key: `${CLIENT_OPERATION}.redeem-token`, name: 'Redeem Token' },
|
|
193
|
-
services: [Capability.Service],
|
|
194
|
-
schema: {
|
|
195
|
-
input: Schema.Struct({
|
|
196
|
-
token: Schema.String,
|
|
197
|
-
}),
|
|
198
|
-
output: Schema.Void,
|
|
199
|
-
},
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
|
|
203
93
|
export type ClientPluginOptions = ClientOptions & {
|
|
204
94
|
/**
|
|
205
95
|
* Base origin for the invitation link.
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/DevicesContainer/DevicesContainer.tsx", "../../../src/containers/DevicesContainer/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\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/ui';\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 { Settings } from '@dxos/react-ui-form';\nimport { AuthCode, Centered, DeviceListItem, Emoji, Viewport, translationKey } 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 <Settings.Root>\n <Settings.Section\n title={t('devices verbose label', { ns: meta.id })}\n description={t('devices description', { ns: meta.id })}\n >\n <Settings.Frame>\n <Settings.FrameItem title={t('devices label', { ns: meta.id })}>\n <List>\n {devices.map((device: Device) => (\n <DeviceListItem key={device.deviceKey.toHex()} device={device} connectionState={connectionState} />\n ))}\n </List>\n </Settings.FrameItem>\n {createInvitationUrl && (\n <Settings.FrameItem title='Add device'>\n <DeviceInvitation createInvitationUrl={createInvitationUrl} />\n </Settings.FrameItem>\n )}\n </Settings.Frame>\n </Settings.Section>\n <Settings.Section\n title={t('danger zone title', { ns: meta.id })}\n description={t('danger zone description', { ns: meta.id })}\n >\n <Settings.Group>\n <Settings.Item 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 </Settings.Item>\n <Settings.Item\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 </Settings.Item>\n <Settings.Item\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 </Settings.Item>\n </Settings.Group>\n </Settings.Section>\n </Settings.Root>\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 mb-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='w-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]'>\n <div className='flex justify-center py-4'>\n <div role='none' className='w-full md:max-w-80 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 </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='mx-auto my-2 text-center' />}\n <p className='text-description'>{t('auth code message')}</p>\n <AuthCode code={code} large classNames='mx-auto my-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 2025 DXOS.org\n//\n\nimport { DevicesContainer } from './DevicesContainer';\n\nexport default DevicesContainer;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useCallback", "useEffect", "useState", "QR", "useOperationInvoker", "log", "useClient", "useMulticastObservable", "useDevices", "Invitation", "InvitationEncoder", "useNetworkStatus", "Button", "Clipboard", "Icon", "IconButton", "List", "useId", "useTranslation", "Settings", "AuthCode", "Centered", "DeviceListItem", "Emoji", "Viewport", "translationKey", "osTranslations", "hexToEmoji", "DevicesContainer", "createInvitationUrl", "t", "useTranslation", "translationKey", "invokePromise", "useOperationInvoker", "devices", "useDevices", "swarm", "connectionState", "useNetworkStatus", "handleResetStorage", "useCallback", "ClientOperation", "ResetStorage", "handleRecover", "mode", "handleJoinNewIdentity", "Clipboard", "Provider", "Settings", "Root", "Section", "title", "ns", "meta", "id", "description", "Frame", "FrameItem", "List", "map", "device", "DeviceListItem", "key", "deviceKey", "toHex", "DeviceInvitation", "Group", "Item", "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", "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", "DevicesContainer"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/JoinDialog/JoinDialog.tsx", "../../../src/containers/JoinDialog/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\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(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.Header>\n <Dialog.Title classNames='sr-only'>{t('join space label', { ns: osTranslations })}</Dialog.Title>\n </Dialog.Header>\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 { JoinDialog } from './JoinDialog';\n\nexport default JoinDialog;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,8BAA8B;AAEvC,SAASC,QAAQC,sBAAsB;AACvC,SAASC,iBAAsC;AAC/C,SAASC,sBAAsB;AAKxB,IAAMC,aAAa,CAACC,UAAAA;AACzB,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAC1B,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,QAAMC,2BAA2BC,YAAY,MAAMP,cAAcQ,gBAAgBC,aAAa,GAAG;IAACT;GAAc;AAEhH,QAAMU,aAAaH,YACjB,OAAOI,WAAAA;AACL,QAAIA,QAAQC,aAAa;AACvB,YAAMC,QAAQC,IAAI;QAChBd,cAAce,gBAAgBC,cAAc;UAAEC,OAAO;QAAM,CAAA;QAC3DjB,cAAckB,uBAAuBC,WAAW;UAC9CC,MAAMrB,MAAMsB,uBAAuB,qBAAqB,qBAAqB;QAC/E,CAAA;OACD;IACH;EACF,GACA;IAACrB;GAAc;AAGjB,SACE,sBAAA,cAACsB,OAAOC,SAAO,MACb,sBAAA,cAACD,OAAOE,QAAM,MACZ,sBAAA,cAACF,OAAOG,OAAK;IAACC,YAAW;KAAWxB,EAAE,oBAAoB;IAAEyB,IAAIC;EAAe,CAAA,CAAA,CAAA,GAEjF,sBAAA,cAACC,WAAAA;IACCC,MAAK;IACJ,GAAG/B;IACJgC,kBAAkB,sBAAA,cAACT,OAAOU,OAAK;MAACC,SAAAA;;IAChCC,kBAAkB,sBAAA,cAACZ,OAAOU,OAAK;MAACC,SAAAA;;IAChCE,sBAAsB7B;IACtB8B,QAAQ1B;;AAIhB;;;AC9CA,IAAA,qBAAe2B;",
|
|
6
|
-
"names": ["React", "useCallback", "useOperationInvoker", "LayoutOperation", "ObservabilityOperation", "Dialog", "useTranslation", "JoinPanel", "osTranslations", "JoinDialog", "props", "invokePromise", "useOperationInvoker", "t", "useTranslation", "meta", "id", "handleCancelResetStorage", "useCallback", "ClientOperation", "ShareIdentity", "handleDone", "result", "identityKey", "Promise", "all", "LayoutOperation", "UpdateDialog", "state", "ObservabilityOperation", "SendEvent", "name", "initialDisposition", "Dialog", "Content", "Header", "Title", "classNames", "ns", "osTranslations", "JoinPanel", "mode", "exitActionParent", "Close", "asChild", "doneActionParent", "onCancelResetStorage", "onDone", "JoinDialog"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/ProfileContainer/ProfileContainer.tsx", "../../../src/containers/ProfileContainer/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\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 { Form, type FormFieldMap, type FormUpdateMeta, Settings } 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 <Settings.ItemInput 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-w-64'\n />\n </Settings.ItemInput>\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 <Settings.Item 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 </Settings.Item>\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 <Settings.Item 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 </Settings.Item>\n );\n },\n // TODO(wittjosiah): We need text input annotations for disabled and copyable.\n did: ({ label, getValue }) => {\n return (\n <Settings.ItemInput title={label} description={t('did description')}>\n <ButtonGroup classNames='w-full'>\n <Input.TextInput value={getValue()} disabled classNames='min-w-64' />\n <Clipboard.IconButton value={getValue() ?? ''} />\n </ButtonGroup>\n </Settings.ItemInput>\n );\n },\n }),\n [t],\n );\n\n return (\n <Clipboard.Provider>\n <Settings.Root>\n <Settings.Section 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 />\n </Form.Content>\n </Form.Root>\n </Settings.Section>\n </Settings.Root>\n </Clipboard.Provider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ProfileContainer } from './ProfileContainer';\n\nexport default ProfileContainer;\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,SAA2BC,aAAaC,SAASC,gBAAgB;AAExE,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAAwBC,mBAAmB;AAC3C,SAASC,aAAaC,WAAWC,OAAOC,sBAAsB;AAC9D,SAASC,MAA8CC,gBAAgB;AACvE,SAASC,kBAAkBC,iBAAiB;AAC5C,SAASC,YAAYC,gBAAgB;AAMrC,IAAMC,cAAqBC,cAAO;EAChCC,KAAYC,cAAOC,YAAY;IAAEC,OAAO;EAAM,CAAA;EAC9CC,aAAoBH,cAAOC,YAAY;IAAEC,OAAO;EAAe,CAAA;EAC/DE,OAAcJ,cAAOC,YAAY;IAAEC,OAAO;EAAS,CAAA;EACnDG,KAAYL,cAAOC,YAAY;IAAEC,OAAO;EAAQ,CAAA;AAClD,CAAA;AAKA,IAAMI,qBAAqB,CAACC,aAA8BC,SAASD,UAAUE,YAAYC,MAAAA,KAAW,GAAA;AACpG,IAAMC,cAAc,CAACJ,aAA8BA,UAAUK,SAASC,MAAMR,OAAOC,mBAAmBC,QAAAA;AACtG,IAAMO,uBAAuB,CAACP,aAA8BQ,WAAWR,UAAUE,YAAYC,MAAAA,KAAW,GAAA;AACxG,IAAMM,gBAAgB,CAACT,aAA8BA,UAAUK,SAASC,MAAMT,SAASU,qBAAqBP,QAAAA;AAErG,IAAMU,mBAAmB,MAAA;AAC9B,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAMC,SAASC,UAAAA;AACf,QAAMhB,WAAWiB,YAAAA;AACjB,QAAM,CAACrB,aAAasB,sBAAAA,IAA0BC,SAASnB,UAAUK,SAAST,eAAe,EAAA;AACzF,QAAM,CAACC,OAAOuB,gBAAAA,IAAoBD,SAAiBV,cAAcT,QAAAA,CAAAA;AACjE,QAAM,CAACF,KAAKuB,cAAAA,IAAkBF,SAAiBf,YAAYJ,QAAAA,CAAAA;AAE3D,QAAMsB,gBAAgBC,QACpB,MACEC,SACE,CAACnB,YACCU,OAAOU,KAAKH,cAAc;IACxB1B,aAAaS,QAAQT;IACrBU,MAAM;MACJT,OAAOQ,QAAQR;MACfC,KAAKO,QAAQP;IACf;EACF,CAAA,GACF,GAAA,GAEJ,CAAA,CAAE;AAGJ,QAAM4B,eAAeC,YACnB,CAACtB,SAA+BQ,UAAAA;AAC9B,eAAW,CAACe,MAAMC,OAAAA,KAAYC,OAAOC,QAAQlB,MAAKgB,OAAO,GAAG;AAC1D,UAAIA,SAAS;AACX,gBAAQD,MAAAA;UACN,KAAK;AACHV,mCAAuBb,QAAQT,eAAe,EAAA;AAC9C;UACF,KAAK;AACHwB,6BAAiBf,QAAQR,SAASU,qBAAqBP,QAAAA,CAAAA;AACvD;UACF,KAAK;AACHqB,2BAAehB,QAAQP,OAAOC,mBAAmBC,QAAAA,CAAAA;AACjD;UACF;AACE;QACJ;MACF;IACF;AAEA,SAAKsB,cAAcjB,OAAAA;EACrB,GACA;IAACL;GAAS;AAGZ,QAAMgC,SAAST,QACb,OAAO;IACL/B,KAAKQ,UAAUR;IACfI;IACAC;IACAC;EACF,IACA;IAACE;IAAUJ;IAAaC;IAAOC;GAAI;AAIrC,QAAMmC,WAAWV,QACf,OAAO;IACL3B,aAAa,CAAC,EAAEsC,MAAMC,OAAOC,UAAUC,cAAa,MAAE;AACpD,YAAMX,gBAAeC,YACnB,CAAC,EAAEW,QAAQ,EAAEC,MAAK,EAAE,MAAsCF,cAAcH,MAAMK,KAAAA,GAC9E;QAACF;QAAeH;OAAK;AAGvB,aACE,sBAAA,cAACM,SAASC,WAAS;QAAC9C,OAAOwC;QAAOO,aAAa/B,EAAE,0BAAA;SAC/C,sBAAA,cAACgC,MAAMC,WAAS;QACdL,OAAOH,SAAAA;QACPS,UAAUnB;QACVoB,aAAanC,EAAE,gCAAA;QACfoC,YAAW;;IAInB;IACAlD,OAAO,CAAC,EAAEqC,MAAMC,OAAOC,UAAUC,cAAa,MAAE;AAC9C,YAAMX,gBAAeC,YAAY,CAACqB,cAAsBX,cAAcH,MAAMc,SAAAA,GAAY;QAACX;QAAeH;OAAK;AAC7G,YAAMe,mBAAmBtB,YACvB,MAAMU,cAAcH,MAAM3B,qBAAqBP,QAAAA,CAAAA,GAC/C;QAACqC;QAAeH;OAAK;AAGvB,aACE,sBAAA,cAACM,SAASU,MAAI;QAACvD,OAAOwC;QAAOO,aAAa/B,EAAE,kBAAA;SAC1C,sBAAA,cAACwC,kBAAAA;QACCC,gBAAe;QACfvD,OAAOuC,SAAAA;QACPiB,eAAe3B;QACf4B,cAAcL;QACdF,YAAW;;IAInB;IACAjD,KAAK,CAAC,EAAEoC,MAAMC,OAAOC,UAAUC,cAAa,MAAE;AAC5C,YAAMX,gBAAeC,YAAY,CAAC4B,YAAoBlB,cAAcH,MAAMqB,OAAAA,GAAU;QAAClB;QAAeH;OAAK;AACzG,YAAMsB,iBAAiB7B,YACrB,MAAMU,cAAcH,MAAMnC,mBAAmBC,QAAAA,CAAAA,GAC7C;QAACqC;QAAeH;OAAK;AAGvB,aACE,sBAAA,cAACM,SAASU,MAAI;QAACvD,OAAOwC;QAAOO,aAAa/B,EAAE,iBAAA;SAC1C,sBAAA,cAAC8C,OAAAA;QAAIC,MAAK;QAAOC,WAAU;SACzB,sBAAA,cAACC,WAAAA;QAAUrB,OAAOH,SAAAA;QAAYS,UAAUnB;QAAcmC,SAASL;;IAIvE;;IAEAhE,KAAK,CAAC,EAAE2C,OAAOC,SAAQ,MAAE;AACvB,aACE,sBAAA,cAACI,SAASC,WAAS;QAAC9C,OAAOwC;QAAOO,aAAa/B,EAAE,iBAAA;SAC/C,sBAAA,cAACmD,aAAAA;QAAYf,YAAW;SACtB,sBAAA,cAACJ,MAAMC,WAAS;QAACL,OAAOH,SAAAA;QAAY2B,UAAAA;QAAShB,YAAW;UACxD,sBAAA,cAACiB,UAAUC,YAAU;QAAC1B,OAAOH,SAAAA,KAAc;;IAInD;EACF,IACA;IAACzB;GAAE;AAGL,SACE,sBAAA,cAACqD,UAAUE,UAAQ,MACjB,sBAAA,cAAC1B,SAAS2B,MAAI,MACZ,sBAAA,cAAC3B,SAAS4B,SAAO;IAACzE,OAAOgB,EAAE,eAAA;IAAkB+B,aAAa/B,EAAE,qBAAA;KAC1D,sBAAA,cAAC0D,KAAKF,MAAI;IAACG,QAAQhF;IAAa0C;IAAgBC;IAAoBsC,iBAAiB7C;KACnF,sBAAA,cAAC2C,KAAKG,SAAO,MACX,sBAAA,cAACH,KAAKI,UAAQ,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAO5B;;;ACzKA,IAAA,2BAAeC;",
|
|
6
|
-
"names": ["Schema", "React", "useCallback", "useMemo", "useState", "debounce", "useClient", "useIdentity", "ButtonGroup", "Clipboard", "Input", "useTranslation", "Form", "Settings", "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", "Settings", "ItemInput", "description", "Input", "TextInput", "onChange", "placeholder", "classNames", "nextEmoji", "handleEmojiReset", "Item", "EmojiPickerBlock", "triggerVariant", "onChangeEmoji", "onClickClear", "nextHue", "handleHueReset", "div", "role", "className", "HuePicker", "onReset", "ButtonGroup", "disabled", "Clipboard", "IconButton", "Provider", "Root", "Section", "Form", "schema", "onValuesChanged", "Content", "FieldSet", "ProfileContainer"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/RecoveryCodeDialog/RecoveryCodeDialog.tsx", "../../../src/containers/RecoveryCodeDialog/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\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\n// TODO(burdon): Should have cancel button.\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 size='md' classNames='min-h-[15rem]'>\n <AlertDialog.Body>\n <AlertDialog.Title>{t('recovery code dialog title')}</AlertDialog.Title>\n <p className='py-4'>{t('recovery code dialog description')}</p>\n <Clipboard.Provider>\n <Code code={code} />\n </Clipboard.Provider>\n <div className='flex flex-col py-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 pb-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 </AlertDialog.Body>\n <AlertDialog.ActionBar>\n <AlertDialog.Action asChild>\n <Button data-testid='recoveryCode.continue' variant='primary' disabled={!confirmation}>\n {t('continue label')}\n </Button>\n </AlertDialog.Action>\n </AlertDialog.ActionBar>\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-sm 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='w-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 2025 DXOS.org\n//\n\nimport { RecoveryCodeDialog } from './RecoveryCodeDialog';\n\nexport * from './RecoveryCodeDialog';\nexport default RecoveryCodeDialog;\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,OAAOA,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,aAAaC,QAAQC,WAAWC,OAAOC,sBAAsB;AAS/D,IAAMC,qBAAqB,CAAC,EAAEC,KAAI,MAA2B;AAClE,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAM,CAACC,cAAcC,eAAAA,IAAmBC,SAAS,KAAA;AAEjD,QAAMC,qBAAqBC,YAAY,CAACC,YAAqBJ,gBAAgBI,OAAAA,GAAU,CAAA,CAAE;AAEzF,SACE,sBAAA,cAACC,YAAYC,SAAO;IAACC,MAAK;IAAKC,YAAW;KACxC,sBAAA,cAACH,YAAYI,MAAI,MACf,sBAAA,cAACJ,YAAYK,OAAK,MAAEf,EAAE,4BAAA,CAAA,GACtB,sBAAA,cAACgB,KAAAA;IAAEC,WAAU;KAAQjB,EAAE,kCAAA,CAAA,GACvB,sBAAA,cAACkB,UAAUC,UAAQ,MACjB,sBAAA,cAACC,MAAAA;IAAKrB;OAER,sBAAA,cAACsB,OAAAA;IAAIJ,WAAU;KACb,sBAAA,cAACD,KAAAA,MAAGhB,EAAE,gCAAA,CAAA,GACN,sBAAA,cAACgB,KAAAA,MAAGhB,EAAE,gCAAA,CAAA,CAAA,GAER,sBAAA,cAACqB,OAAAA;IAAIJ,WAAU;KACb,sBAAA,cAACK,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,UAAQ;IACbC,eAAY;IACZhB,SAASL;IACTsB,iBAAiBnB;MAEnB,sBAAA,cAACe,MAAMK,OAAK,MAAE3B,EAAE,kCAAA,CAAA,CAAA,CAAA,CAAA,GAItB,sBAAA,cAACU,YAAYkB,WAAS,MACpB,sBAAA,cAAClB,YAAYmB,QAAM;IAACC,SAAAA;KAClB,sBAAA,cAACC,QAAAA;IAAON,eAAY;IAAwBO,SAAQ;IAAUC,UAAU,CAAC7B;KACtEJ,EAAE,gBAAA,CAAA,CAAA,CAAA,CAAA;AAMf;AAEA,IAAMoB,OAAO,CAAC,EAAErB,KAAI,MAAoB;AACtC,QAAMmC,QAAQnC,KAAKoC,MAAM,GAAA;AACzB,SACE,sBAAA,cAACd,OAAAA;IAAIJ,WAAU;KACb,sBAAA,cAACC,UAAUkB,YAAU;IAACC,OAAOtC;IAAMc,YAAW;MAC9C,sBAAA,cAACQ,OAAAA;IAAIJ,WAAU;KACZiB,MAAMI,IAAI,CAACC,MAAMC,MAChB,sBAAA,cAACnB,OAAAA;IAAIoB,KAAKD;IAAGvB,WAAU;KACrB,sBAAA,cAACI,OAAAA;IAAIJ,WAAU;KAAwCuB,IAAI,CAAA,GAC3D,sBAAA,cAACnB,OAAAA;IAAIJ,WAAU;KAAWsB,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAMtC;;;AC/DA,IAAA,6BAAeG;",
|
|
6
|
-
"names": ["React", "useCallback", "useState", "AlertDialog", "Button", "Clipboard", "Input", "useTranslation", "RecoveryCodeDialog", "code", "t", "useTranslation", "meta", "id", "confirmation", "setConfirmation", "useState", "handleConfirmation", "useCallback", "checked", "AlertDialog", "Content", "size", "classNames", "Body", "Title", "p", "className", "Clipboard", "Provider", "Code", "div", "Input", "Root", "Checkbox", "data-testid", "onCheckedChange", "Label", "ActionBar", "Action", "asChild", "Button", "variant", "disabled", "words", "split", "IconButton", "value", "map", "word", "i", "key", "RecoveryCodeDialog"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx", "../../../src/containers/RecoveryCredentialsContainer/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { useCredentials } from '@dxos/react-client/halo';\nimport { Icon, IconButton, List, ListItem, Message, useTranslation } from '@dxos/react-ui';\nimport { Settings } 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 <Settings.Root>\n <Settings.Section title={t('recovery setup dialog title')} description={t('recovery setup dialog description')}>\n <Settings.Group>\n <Settings.Item 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 </Settings.Item>\n <Settings.Item 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 </Settings.Item>\n </Settings.Group>\n </Settings.Section>\n <Settings.Section title={t('credentials list label')}>\n {recoveryCredentials.length < 1 ? (\n <Message.Root valence='error'>\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>\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 </Settings.Section>\n </Settings.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RecoveryCredentialsContainer } from './RecoveryCredentialsContainer';\n\nexport default RecoveryCredentialsContainer;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,2BAA2B;AACpC,SAASC,sBAAsB;AAC/B,SAASC,MAAMC,YAAYC,MAAMC,UAAUC,SAASC,sBAAsB;AAC1E,SAASC,gBAAgB;AAKlB,IAAMC,4BAA4B,GAAGC,KAAKC,EAAE;AAE5C,IAAMC,+BAA+B,MAAA;AAC1C,QAAM,EAAEC,EAAC,IAAKC,eAAeJ,KAAKC,EAAE;AACpC,QAAM,EAAEI,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,cAAcC,eAAAA;AACpB,QAAMC,sBAAsBF,YAAYG,OACtC,CAACC,eAAeA,WAAWC,QAAQC,UAAU,OAAA,MAAa,wCAAA;AAG5D,SACE,sBAAA,cAACC,SAASC,MAAI,MACZ,sBAAA,cAACD,SAASE,SAAO;IAACC,OAAOd,EAAE,6BAAA;IAAgCe,aAAaf,EAAE,mCAAA;KACxE,sBAAA,cAACW,SAASK,OAAK,MACb,sBAAA,cAACL,SAASM,MAAI;IAACH,OAAOd,EAAE,sBAAA;IAAyBe,aAAaf,EAAE,4BAAA;KAC9D,sBAAA,cAACkB,YAAAA;IACCC,OAAOnB,EAAE,sBAAA;IACToB,MAAK;IACLC,SAAQ;IACRC,SAAS,MAAMpB,cAAcqB,gBAAgBC,aAAa;OAG9D,sBAAA,cAACb,SAASM,MAAI;IAACH,OAAOd,EAAE,4BAAA;IAA+Be,aAAaf,EAAE,kCAAA;KACpE,sBAAA,cAACkB,YAAAA;IACCC,OAAOnB,EAAE,4BAAA;IACToB,MAAK;IACLC,SAAQ;IACRC,SAAS,MAAMpB,cAAcqB,gBAAgBE,kBAAkB;SAKvE,sBAAA,cAACd,SAASE,SAAO;IAACC,OAAOd,EAAE,wBAAA;KACxBM,oBAAoBoB,SAAS,IAC5B,sBAAA,cAACC,QAAQf,MAAI;IAACgB,SAAQ;KACpB,sBAAA,cAACD,QAAQE,OAAK;IAACT,MAAK;KAA+BpB,EAAE,sBAAA,CAAA,GACrD,sBAAA,cAAC2B,QAAQG,SAAO,MAAE9B,EAAE,wBAAA,CAAA,CAAA,IAGtB,sBAAA,cAAC+B,MAAAA,MACEzB,oBAAoB0B,IAAI,CAACxB,eACxB,sBAAA,cAACyB,SAASrB,MAAI;IAACsB,KAAK1B,WAAWV,IAAIqC,MAAAA;KACjC,sBAAA,cAACF,SAASG,QAAM,MACd,sBAAA,cAACC,MAAAA;IAAKjB,MAAK;OAEb,sBAAA,cAACa,SAASK,SAAO,MAAE9B,WAAW+B,aAAaC,eAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAQzE;;;AC7DA,IAAA,uCAAeC;",
|
|
6
|
-
"names": ["React", "useOperationInvoker", "useCredentials", "Icon", "IconButton", "List", "ListItem", "Message", "useTranslation", "Settings", "MANAGE_CREDENTIALS_DIALOG", "meta", "id", "RecoveryCredentialsContainer", "t", "useTranslation", "invokePromise", "useOperationInvoker", "credentials", "useCredentials", "recoveryCredentials", "filter", "credential", "subject", "assertion", "Settings", "Root", "Section", "title", "description", "Group", "Item", "IconButton", "label", "icon", "variant", "onClick", "ClientOperation", "CreatePasskey", "CreateRecoveryCode", "length", "Message", "valence", "Title", "Content", "List", "map", "ListItem", "key", "toHex", "Endcap", "Icon", "Heading", "issuanceDate", "toLocaleString", "RecoveryCredentialsContainer"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/ResetDialog/ResetDialog.tsx", "../../../src/containers/ResetDialog/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { useCallback } from 'react';\n\nimport { Capability, type CapabilityManager } from '@dxos/app-framework';\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { useClient } from '@dxos/react-client';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { ConfirmReset, type ConfirmResetProps, translationKey } from '@dxos/shell/react';\n\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(translationKey);\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(LayoutOperation.UpdateDialog, { state: false });\n }, [invokePromise]);\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>{t('reset dialog title')}</Dialog.Title>\n </Dialog.Header>\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", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ResetDialog } from './ResetDialog';\n\nexport * from './ResetDialog';\nexport default ResetDialog;\n"],
|
|
5
|
-
"mappings": ";AAIA,YAAYA,YAAY;AACxB,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,kBAA0C;AACnD,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,2BAA2B;AACpC,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,sBAAsB;AACvC,SAASC,cAAsCC,sBAAsB;AAS9D,IAAMC,cAAc,CAAC,EAAEC,MAAMC,SAASC,kBAAiB,MAAoB;AAChF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,cAAAA;AAC7B,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,SAASC,UAAAA;AAEf,QAAMC,cAAcC,YAAY,YAAA;AAC9B,UAAMH,OAAOI,MAAK;AAClB,UAAMC,SACJb,SAAS,sBAAsB,qBAAqBA,SAAS,YAAY,oBAAoBc;AAC/F,QAAIb,SAAS;AACX,YAAMc,oBAAoBd,QAAQ;QAAEY;MAAO,CAAA,EAAGG,KAAYC,sBAAeC,WAAWC,SAASjB,iBAAAA,CAAAA,CAAAA;IAC/F;EACF,GAAG;IAACM;IAAQR;IAAMC;IAASC;GAAkB;AAE7C,QAAMkB,eAAeT,YAAY,MAAA;AAC/B,SAAKL,cAAce,gBAAgBC,cAAc;MAAEC,OAAO;IAAM,CAAA;EAClE,GAAG;IAACjB;GAAc;AAElB,SACE,sBAAA,cAACkB,OAAOC,SAAO,MACb,sBAAA,cAACD,OAAOE,QAAM,MACZ,sBAAA,cAACF,OAAOG,OAAK,MAAExB,EAAE,oBAAA,CAAA,CAAA,GAEnB,sBAAA,cAACqB,OAAOI,aAAW;IAACC,YAAW;KAAW1B,EAAE,0BAAA,CAAA,GAC5C,sBAAA,cAAC2B,cAAAA;IAAaC,QAAAA;IAAO/B;IAAYgC,WAAWtB;IAAauB,UAAUb;;AAGzE;;;AC1CA,IAAA,sBAAec;",
|
|
6
|
-
"names": ["Effect", "React", "useCallback", "Capability", "useOperationInvoker", "LayoutOperation", "runAndForwardErrors", "useClient", "Dialog", "useTranslation", "ConfirmReset", "translationKey", "ResetDialog", "mode", "onReset", "capabilityManager", "t", "useTranslation", "translationKey", "invokePromise", "useOperationInvoker", "client", "useClient", "handleReset", "useCallback", "reset", "target", "undefined", "runAndForwardErrors", "pipe", "provideService", "Capability", "Service", "handleCancel", "LayoutOperation", "UpdateDialog", "state", "Dialog", "Content", "Header", "Title", "Description", "classNames", "ConfirmReset", "active", "onConfirm", "onCancel", "ResetDialog"]
|
|
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 } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\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(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,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,gBAAgBC,iBAAiBvD,UAAAA;AACjE,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "Capability", "AppCapabilities", "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", "AppCapabilities", "AppGraphBuilder"]
|
|
7
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// src/capabilities/client/index.ts
|
|
2
|
-
import { Capability } from "@dxos/app-framework";
|
|
3
|
-
var Client = Capability.lazy("Client", () => import("./client-MM3BHCWG.mjs"));
|
|
4
|
-
|
|
5
|
-
// src/capabilities/operation-resolver/index.ts
|
|
6
|
-
import { Capability as Capability2 } from "@dxos/app-framework";
|
|
7
|
-
var OperationResolver = Capability2.lazy("OperationResolver", () => import("./operation-resolver-VSWA74RS.mjs"));
|
|
8
|
-
|
|
9
|
-
// src/capabilities/schema-defs/index.ts
|
|
10
|
-
import { Capability as Capability3 } from "@dxos/app-framework";
|
|
11
|
-
var SchemaDefs = Capability3.lazy("SchemaDefs", () => import("./schema-defs-KAG6HQMI.mjs"));
|
|
12
|
-
|
|
13
|
-
export {
|
|
14
|
-
Client,
|
|
15
|
-
OperationResolver,
|
|
16
|
-
SchemaDefs
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=chunk-ESDYRACB.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/client/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/schema-defs/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Client = Capability.lazy('Client', () => import('./client'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const SchemaDefs = Capability.lazy('SchemaDefs', () => import('./schema-defs'));\n"],
|
|
5
|
-
"mappings": ";AAIA,SAASA,kBAAkB;AAEpB,IAAMC,SAASC,WAAWC,KAAK,UAAU,MAAM,OAAO,uBAAA,CAAA;;;ACF7D,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,oBAAoBC,YAAWC,KAAK,qBAAqB,MAAM,OAAO,mCAAA,CAAA;;;ACFnF,SAASC,cAAAA,mBAAkB;AAEpB,IAAMC,aAAaC,YAAWC,KAAK,cAAc,MAAM,OAAO,4BAAA,CAAA;",
|
|
6
|
-
"names": ["Capability", "Client", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "SchemaDefs", "Capability", "lazy"]
|
|
7
|
-
}
|