@dxos/plugin-client 0.8.4-main.f9ba587 → 0.8.4-main.fcfe5033a5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/chunk-ELAYKIQU.mjs +12 -0
- package/dist/lib/browser/chunk-ELAYKIQU.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-M43LJQ5U.mjs +175 -0
- package/dist/lib/browser/chunk-M43LJQ5U.mjs.map +7 -0
- package/dist/lib/browser/chunk-WNJRYPGG.mjs +131 -0
- package/dist/lib/browser/chunk-WNJRYPGG.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +1060 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/create-agent-SS5SE35J.mjs +34 -0
- package/dist/lib/browser/create-agent-SS5SE35J.mjs.map +7 -0
- package/dist/lib/browser/create-identity-PBEUEIPN.mjs +30 -0
- package/dist/lib/browser/create-identity-PBEUEIPN.mjs.map +7 -0
- package/dist/lib/browser/create-passkey-JN6I5WMM.mjs +105 -0
- package/dist/lib/browser/create-passkey-JN6I5WMM.mjs.map +7 -0
- package/dist/lib/browser/create-recovery-code-32I6IWZC.mjs +44 -0
- package/dist/lib/browser/create-recovery-code-32I6IWZC.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +119 -128
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/join-identity-2BP4G2SD.mjs +27 -0
- package/dist/lib/browser/join-identity-2BP4G2SD.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operations/index.mjs +13 -0
- package/dist/lib/browser/operations/index.mjs.map +7 -0
- package/dist/lib/browser/recover-identity-LS6B5INB.mjs +26 -0
- package/dist/lib/browser/recover-identity-LS6B5INB.mjs.map +7 -0
- package/dist/lib/browser/redeem-passkey-OCIV6VCK.mjs +82 -0
- package/dist/lib/browser/redeem-passkey-OCIV6VCK.mjs.map +7 -0
- package/dist/lib/browser/redeem-token-6BCRGKV6.mjs +37 -0
- package/dist/lib/browser/redeem-token-6BCRGKV6.mjs.map +7 -0
- package/dist/lib/browser/reset-storage-QJLTL7J3.mjs +26 -0
- package/dist/lib/browser/reset-storage-QJLTL7J3.mjs.map +7 -0
- package/dist/lib/browser/share-identity-YJEBJTPA.mjs +31 -0
- package/dist/lib/browser/share-identity-YJEBJTPA.mjs.map +7 -0
- package/dist/lib/browser/testing/index.mjs +22 -0
- package/dist/lib/browser/testing/index.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +14 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GDJMDBWM.mjs → chunk-IT5LAIV3.mjs} +39 -18
- package/dist/lib/node-esm/chunk-IT5LAIV3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-J5RWSQT6.mjs +14 -0
- package/dist/lib/node-esm/chunk-J5RWSQT6.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SJ6FDER5.mjs +176 -0
- package/dist/lib/node-esm/chunk-SJ6FDER5.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +1061 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/create-agent-QGEHMHBL.mjs +35 -0
- package/dist/lib/node-esm/create-agent-QGEHMHBL.mjs.map +7 -0
- package/dist/lib/node-esm/create-identity-EHRJQOO4.mjs +31 -0
- package/dist/lib/node-esm/create-identity-EHRJQOO4.mjs.map +7 -0
- package/dist/lib/node-esm/create-passkey-PFBHHBEQ.mjs +106 -0
- package/dist/lib/node-esm/create-passkey-PFBHHBEQ.mjs.map +7 -0
- package/dist/lib/node-esm/create-recovery-code-HBAM2A72.mjs +45 -0
- package/dist/lib/node-esm/create-recovery-code-HBAM2A72.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +119 -128
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/join-identity-75JCKQHM.mjs +28 -0
- package/dist/lib/node-esm/join-identity-75JCKQHM.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operations/index.mjs +14 -0
- package/dist/lib/node-esm/operations/index.mjs.map +7 -0
- package/dist/lib/node-esm/recover-identity-AKGNTUJI.mjs +27 -0
- package/dist/lib/node-esm/recover-identity-AKGNTUJI.mjs.map +7 -0
- package/dist/lib/node-esm/redeem-passkey-FZO3LZ57.mjs +83 -0
- package/dist/lib/node-esm/redeem-passkey-FZO3LZ57.mjs.map +7 -0
- package/dist/lib/node-esm/redeem-token-IHHIAIQ2.mjs +38 -0
- package/dist/lib/node-esm/redeem-token-IHHIAIQ2.mjs.map +7 -0
- package/dist/lib/node-esm/reset-storage-S5MJITI3.mjs +27 -0
- package/dist/lib/node-esm/reset-storage-S5MJITI3.mjs.map +7 -0
- package/dist/lib/node-esm/share-identity-QZLY3VHE.mjs +32 -0
- package/dist/lib/node-esm/share-identity-QZLY3VHE.mjs.map +7 -0
- package/dist/lib/node-esm/testing/index.mjs +23 -0
- package/dist/lib/node-esm/testing/index.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +15 -0
- package/dist/lib/node-esm/types/index.mjs.map +7 -0
- package/dist/types/src/ClientPlugin.d.ts +3 -2
- package/dist/types/src/ClientPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/client.d.ts +6 -7
- package/dist/types/src/capabilities/client.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +28 -15
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/migrations.d.ts +3 -2
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
- 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 +4 -2
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +4 -3
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +3 -2
- package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
- package/dist/types/src/cli/commands/config/index.d.ts +5 -0
- package/dist/types/src/cli/commands/config/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/config/view.d.ts +5 -0
- package/dist/types/src/cli/commands/config/view.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/index.d.ts +7 -0
- package/dist/types/src/cli/commands/device/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/info/index.d.ts +2 -0
- package/dist/types/src/cli/commands/device/info/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/info/info.d.ts +7 -0
- package/dist/types/src/cli/commands/device/info/info.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/info/info.test.d.ts +2 -0
- package/dist/types/src/cli/commands/device/info/info.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/list/index.d.ts +2 -0
- package/dist/types/src/cli/commands/device/list/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/list/list.d.ts +7 -0
- package/dist/types/src/cli/commands/device/list/list.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/list/list.test.d.ts +2 -0
- package/dist/types/src/cli/commands/device/list/list.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/update/index.d.ts +2 -0
- package/dist/types/src/cli/commands/device/update/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/update/update.d.ts +11 -0
- package/dist/types/src/cli/commands/device/update/update.d.ts.map +1 -0
- package/dist/types/src/cli/commands/device/util.d.ts +16 -0
- package/dist/types/src/cli/commands/device/util.d.ts.map +1 -0
- package/dist/types/src/cli/commands/edge/index.d.ts +5 -0
- package/dist/types/src/cli/commands/edge/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/edge/status.d.ts +7 -0
- package/dist/types/src/cli/commands/edge/status.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/create/create.d.ts +15 -0
- package/dist/types/src/cli/commands/halo/create/create.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/create/create.test.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/create/create.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/create/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/create/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/credential/add/add.d.ts +13 -0
- package/dist/types/src/cli/commands/halo/credential/add/add.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/credential/add/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/credential/add/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/credential/index.d.ts +12 -0
- package/dist/types/src/cli/commands/halo/credential/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/credential/list/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/credential/list/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/credential/list/list.d.ts +19 -0
- package/dist/types/src/cli/commands/halo/credential/list/list.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/credential/list/list.test.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/credential/list/list.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/identity/identity.d.ts +7 -0
- package/dist/types/src/cli/commands/halo/identity/identity.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/identity/identity.test.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/identity/identity.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/identity/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/identity/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/index.d.ts +3 -0
- package/dist/types/src/cli/commands/halo/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/join/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/join/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/join/join.d.ts +8 -0
- package/dist/types/src/cli/commands/halo/join/join.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/join/join.test.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/join/join.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/keys/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/keys/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/keys/keys.d.ts +7 -0
- package/dist/types/src/cli/commands/halo/keys/keys.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/keys/keys.test.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/keys/keys.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/recover/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/recover/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/recover/recover.d.ts +7 -0
- package/dist/types/src/cli/commands/halo/recover/recover.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/recover/recover.test.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/recover/recover.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/seed/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/seed/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/seed/seed.d.ts +7 -0
- package/dist/types/src/cli/commands/halo/seed/seed.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/share/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/share/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/share/share.d.ts +15 -0
- package/dist/types/src/cli/commands/halo/share/share.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/update/index.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/update/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/update/update.d.ts +11 -0
- package/dist/types/src/cli/commands/halo/update/update.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/update/update.test.d.ts +2 -0
- package/dist/types/src/cli/commands/halo/update/update.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/halo/util.d.ts +13 -0
- package/dist/types/src/cli/commands/halo/util.d.ts.map +1 -0
- package/dist/types/src/cli/commands/index.d.ts +6 -0
- package/dist/types/src/cli/commands/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/profile/create.d.ts +10 -0
- package/dist/types/src/cli/commands/profile/create.d.ts.map +1 -0
- package/dist/types/src/cli/commands/profile/delete.d.ts +8 -0
- package/dist/types/src/cli/commands/profile/delete.d.ts.map +1 -0
- package/dist/types/src/cli/commands/profile/import.d.ts +17 -0
- package/dist/types/src/cli/commands/profile/import.d.ts.map +1 -0
- package/dist/types/src/cli/commands/profile/index.d.ts +19 -0
- package/dist/types/src/cli/commands/profile/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/profile/inspect.d.ts +13 -0
- package/dist/types/src/cli/commands/profile/inspect.d.ts.map +1 -0
- package/dist/types/src/cli/commands/profile/list.d.ts +6 -0
- package/dist/types/src/cli/commands/profile/list.d.ts.map +1 -0
- package/dist/types/src/cli/commands/profile/reset.d.ts +8 -0
- package/dist/types/src/cli/commands/profile/reset.d.ts.map +1 -0
- package/dist/types/src/cli/commands/profile/util.d.ts +24 -0
- package/dist/types/src/cli/commands/profile/util.d.ts.map +1 -0
- package/dist/types/src/cli/index.d.ts +2 -0
- package/dist/types/src/cli/index.d.ts.map +1 -0
- package/dist/types/src/cli/plugin.d.ts +4 -0
- package/dist/types/src/cli/plugin.d.ts.map +1 -0
- package/dist/types/src/cli/testing/test-console.d.ts +37 -0
- package/dist/types/src/cli/testing/test-console.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +0 -6
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +4 -0
- package/dist/types/src/constants.d.ts.map +1 -0
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -0
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts +184 -0
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/DevicesContainer/index.d.ts +2 -0
- package/dist/types/src/containers/DevicesContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/JoinDialog}/JoinDialog.d.ts +0 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -0
- 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 +2 -0
- package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts.map +1 -0
- package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts +14 -0
- package/dist/types/src/containers/ProfileContainer/ProfileContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ProfileContainer/index.d.ts +2 -0
- package/dist/types/src/containers/ProfileContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.d.ts +0 -1
- package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts +16 -0
- package/dist/types/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.stories.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts +4 -0
- package/dist/types/src/containers/RecoveryCodeDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts +4 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts +14 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts +2 -0
- package/dist/types/src/containers/RecoveryCredentialsContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts +9 -0
- package/dist/types/src/containers/ResetDialog/ResetDialog.d.ts.map +1 -0
- package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts +19 -0
- package/dist/types/src/containers/ResetDialog/ResetDialog.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ResetDialog/index.d.ts +4 -0
- package/dist/types/src/containers/ResetDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +10 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +2 -4
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -3
- 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/testing/index.d.ts +2 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/testing/initializeIdentity.d.ts +13 -0
- package/dist/types/src/testing/initializeIdentity.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +2 -48
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +9 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/events.d.ts +9 -0
- package/dist/types/src/types/events.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +4 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/{types.d.ts → types/schema.d.ts} +42 -31
- package/dist/types/src/types/schema.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +95 -45
- package/src/ClientPlugin.ts +57 -64
- package/src/capabilities/app-graph-builder.ts +87 -103
- package/src/capabilities/client.ts +71 -33
- package/src/capabilities/index.ts +14 -10
- package/src/capabilities/migrations.ts +22 -17
- 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.tsx +17 -12
- package/src/capabilities/react-surface.tsx +52 -49
- package/src/capabilities/schema-defs.ts +28 -21
- package/src/cli/commands/config/index.ts +12 -0
- package/src/cli/commands/config/view.ts +29 -0
- package/src/cli/commands/device/index.ts +14 -0
- package/src/cli/commands/device/info/index.ts +5 -0
- package/src/cli/commands/device/info/info.test.ts +28 -0
- package/src/cli/commands/device/info/info.ts +48 -0
- package/src/cli/commands/device/list/index.ts +5 -0
- package/src/cli/commands/device/list/list.test.ts +30 -0
- package/src/cli/commands/device/list/list.ts +28 -0
- package/src/cli/commands/device/update/index.ts +5 -0
- package/src/cli/commands/device/update/update.ts +68 -0
- package/src/cli/commands/device/util.ts +55 -0
- package/src/cli/commands/edge/index.ts +12 -0
- package/src/cli/commands/edge/status.ts +46 -0
- package/src/cli/commands/halo/create/create.test.ts +51 -0
- package/src/cli/commands/halo/create/create.ts +83 -0
- package/src/cli/commands/halo/create/index.ts +5 -0
- package/src/cli/commands/halo/credential/add/add.ts +97 -0
- package/src/cli/commands/halo/credential/add/index.ts +5 -0
- package/src/cli/commands/halo/credential/index.ts +13 -0
- package/src/cli/commands/halo/credential/list/index.ts +5 -0
- package/src/cli/commands/halo/credential/list/list.test.ts +27 -0
- package/src/cli/commands/halo/credential/list/list.ts +115 -0
- package/src/cli/commands/halo/identity/identity.test.ts +40 -0
- package/src/cli/commands/halo/identity/identity.ts +45 -0
- package/src/cli/commands/halo/identity/index.ts +5 -0
- package/src/cli/commands/halo/index.ts +21 -0
- package/src/cli/commands/halo/join/index.ts +5 -0
- package/src/cli/commands/halo/join/join.test.ts +10 -0
- package/src/cli/commands/halo/join/join.ts +87 -0
- package/src/cli/commands/halo/keys/index.ts +5 -0
- package/src/cli/commands/halo/keys/keys.test.ts +29 -0
- package/src/cli/commands/halo/keys/keys.ts +40 -0
- package/src/cli/commands/halo/recover/index.ts +5 -0
- package/src/cli/commands/halo/recover/recover.test.ts +10 -0
- package/src/cli/commands/halo/recover/recover.ts +44 -0
- package/src/cli/commands/halo/seed/index.ts +5 -0
- package/src/cli/commands/halo/seed/seed.ts +36 -0
- package/src/cli/commands/halo/share/index.ts +5 -0
- package/src/cli/commands/halo/share/share.ts +97 -0
- package/src/cli/commands/halo/update/index.ts +5 -0
- package/src/cli/commands/halo/update/update.test.ts +28 -0
- package/src/cli/commands/halo/update/update.ts +67 -0
- package/src/cli/commands/halo/util.ts +18 -0
- package/src/cli/commands/index.ts +9 -0
- package/src/cli/commands/profile/create.ts +90 -0
- package/src/cli/commands/profile/delete.ts +36 -0
- package/src/cli/commands/profile/import.ts +101 -0
- package/src/cli/commands/profile/index.ts +17 -0
- package/src/cli/commands/profile/inspect.ts +64 -0
- package/src/cli/commands/profile/list.ts +55 -0
- package/src/cli/commands/profile/reset.ts +45 -0
- package/src/cli/commands/profile/util.ts +48 -0
- package/src/cli/index.ts +5 -0
- package/src/cli/plugin.ts +31 -0
- package/src/cli/testing/test-console.ts +87 -0
- package/src/components/index.ts +0 -7
- package/src/constants.ts +9 -0
- package/src/containers/DevicesContainer/DevicesContainer.stories.tsx +52 -0
- package/src/{components → containers/DevicesContainer}/DevicesContainer.tsx +97 -114
- package/src/containers/DevicesContainer/index.ts +5 -0
- package/src/containers/JoinDialog/JoinDialog.stories.tsx +42 -0
- package/src/containers/JoinDialog/JoinDialog.tsx +56 -0
- package/src/containers/JoinDialog/index.ts +5 -0
- package/src/containers/ProfileContainer/ProfileContainer.stories.tsx +27 -0
- package/src/{components → containers/ProfileContainer}/ProfileContainer.tsx +70 -67
- package/src/containers/ProfileContainer/index.ts +5 -0
- package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.stories.tsx +10 -12
- package/src/{components → containers/RecoveryCodeDialog}/RecoveryCodeDialog.tsx +29 -28
- package/src/containers/RecoveryCodeDialog/index.ts +8 -0
- package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.stories.tsx +47 -0
- package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +66 -0
- package/src/containers/RecoveryCredentialsContainer/index.ts +5 -0
- package/src/containers/ResetDialog/ResetDialog.stories.tsx +72 -0
- package/src/containers/ResetDialog/ResetDialog.tsx +52 -0
- package/src/containers/ResetDialog/index.ts +8 -0
- package/src/containers/index.ts +15 -0
- package/src/index.ts +2 -5
- package/src/meta.ts +8 -5
- 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/testing/index.ts +5 -0
- package/src/testing/initializeIdentity.ts +24 -0
- package/src/translations.ts +57 -43
- package/src/types/capabilities.ts +16 -0
- package/src/types/events.ts +15 -0
- package/src/types/index.ts +7 -0
- package/src/{types.ts → types/schema.ts} +29 -22
- package/dist/lib/browser/app-graph-builder-3EILEBWW.mjs +0 -123
- package/dist/lib/browser/app-graph-builder-3EILEBWW.mjs.map +0 -7
- package/dist/lib/browser/chunk-64ANQXYZ.mjs +0 -693
- package/dist/lib/browser/chunk-64ANQXYZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-AWXKL4UR.mjs +0 -18
- package/dist/lib/browser/chunk-AWXKL4UR.mjs.map +0 -7
- package/dist/lib/browser/chunk-CAF2COXW.mjs +0 -19
- package/dist/lib/browser/chunk-CAF2COXW.mjs.map +0 -7
- package/dist/lib/browser/chunk-GS3LDHYD.mjs +0 -12
- package/dist/lib/browser/chunk-GS3LDHYD.mjs.map +0 -7
- package/dist/lib/browser/chunk-Q7TFRFHI.mjs +0 -111
- package/dist/lib/browser/chunk-Q7TFRFHI.mjs.map +0 -7
- package/dist/lib/browser/client-JFNMEFOK.mjs +0 -37
- package/dist/lib/browser/client-JFNMEFOK.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-YGAQVXI2.mjs +0 -305
- package/dist/lib/browser/intent-resolver-YGAQVXI2.mjs.map +0 -7
- package/dist/lib/browser/migrations-5COKGS4E.mjs +0 -23
- package/dist/lib/browser/migrations-5COKGS4E.mjs.map +0 -7
- package/dist/lib/browser/react-context-GBNYT5QK.mjs +0 -24
- package/dist/lib/browser/react-context-GBNYT5QK.mjs.map +0 -7
- package/dist/lib/browser/react-surface-YKQAUE2M.mjs +0 -66
- package/dist/lib/browser/react-surface-YKQAUE2M.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-6L7W2RHL.mjs +0 -25
- package/dist/lib/browser/schema-defs-6L7W2RHL.mjs.map +0 -7
- package/dist/lib/browser/types.mjs +0 -10
- package/dist/lib/node-esm/app-graph-builder-GINHOE7A.mjs +0 -124
- package/dist/lib/node-esm/app-graph-builder-GINHOE7A.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3BUB64JB.mjs +0 -19
- package/dist/lib/node-esm/chunk-3BUB64JB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GDJMDBWM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-K4PIKBQQ.mjs +0 -694
- package/dist/lib/node-esm/chunk-K4PIKBQQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs +0 -14
- package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UMO3ETDV.mjs +0 -20
- package/dist/lib/node-esm/chunk-UMO3ETDV.mjs.map +0 -7
- package/dist/lib/node-esm/client-XDYQARBL.mjs +0 -38
- package/dist/lib/node-esm/client-XDYQARBL.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-IN7YG7N7.mjs +0 -306
- package/dist/lib/node-esm/intent-resolver-IN7YG7N7.mjs.map +0 -7
- package/dist/lib/node-esm/migrations-FE4PDX6W.mjs +0 -24
- package/dist/lib/node-esm/migrations-FE4PDX6W.mjs.map +0 -7
- package/dist/lib/node-esm/react-context-UCK43H3Z.mjs +0 -25
- package/dist/lib/node-esm/react-context-UCK43H3Z.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-HDHC6XHQ.mjs +0 -67
- package/dist/lib/node-esm/react-surface-HDHC6XHQ.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-GZIVMHLW.mjs +0 -26
- package/dist/lib/node-esm/schema-defs-GZIVMHLW.mjs.map +0 -7
- package/dist/lib/node-esm/types.mjs +0 -11
- package/dist/types/src/capabilities/capabilities.d.ts +0 -10
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -8
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/DevicesContainer.d.ts.map +0 -1
- package/dist/types/src/components/DevicesContainer.stories.d.ts +0 -8
- package/dist/types/src/components/DevicesContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/components/ProfileContainer.d.ts.map +0 -1
- package/dist/types/src/components/ProfileContainer.stories.d.ts +0 -8
- package/dist/types/src/components/ProfileContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +0 -1
- package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts +0 -8
- package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.d.ts +0 -4
- package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +0 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts +0 -8
- package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/ResetDialog.d.ts +0 -7
- package/dist/types/src/components/ResetDialog.d.ts.map +0 -1
- package/dist/types/src/components/ResetDialog.stories.d.ts +0 -10
- package/dist/types/src/components/ResetDialog.stories.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -8
- package/dist/types/src/events.d.ts.map +0 -1
- package/dist/types/src/types.d.ts.map +0 -1
- package/src/capabilities/capabilities.ts +0 -17
- package/src/capabilities/intent-resolver.ts +0 -250
- package/src/components/DevicesContainer.stories.tsx +0 -49
- package/src/components/JoinDialog.tsx +0 -53
- package/src/components/ProfileContainer.stories.tsx +0 -29
- package/src/components/RecoveryCredentialsContainer.stories.tsx +0 -44
- package/src/components/RecoveryCredentialsContainer.tsx +0 -73
- package/src/components/ResetDialog.stories.tsx +0 -53
- package/src/components/ResetDialog.tsx +0 -49
- package/src/events.ts +0 -15
- /package/dist/lib/browser/{types.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types.mjs.map → browser/types/index.mjs.map} +0 -0
- /package/dist/types/src/{components → containers/DevicesContainer}/DevicesContainer.d.ts +0 -0
- /package/dist/types/src/{components → containers/ProfileContainer}/ProfileContainer.d.ts +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cli/plugin.ts", "../../../../src/cli/commands/config/index.ts", "../../../../src/cli/commands/config/view.ts", "../../../../src/cli/commands/device/index.ts", "../../../../src/cli/commands/device/info/info.ts", "../../../../src/cli/commands/device/util.ts", "../../../../src/cli/commands/device/list/list.ts", "../../../../src/cli/commands/device/update/update.ts", "../../../../src/cli/commands/edge/index.ts", "../../../../src/cli/commands/edge/status.ts", "../../../../src/cli/commands/halo/index.ts", "../../../../src/cli/commands/halo/create/create.ts", "../../../../src/cli/commands/halo/util.ts", "../../../../src/cli/commands/halo/credential/index.ts", "../../../../src/cli/commands/halo/credential/add/add.ts", "../../../../src/cli/commands/halo/credential/list/list.ts", "../../../../src/cli/commands/halo/identity/identity.ts", "../../../../src/cli/commands/halo/keys/keys.ts", "../../../../src/cli/commands/halo/recover/recover.ts", "../../../../src/cli/commands/halo/seed/seed.ts", "../../../../src/cli/commands/halo/update/update.ts", "../../../../src/cli/commands/profile/index.ts", "../../../../src/cli/commands/profile/create.ts", "../../../../src/cli/commands/profile/util.ts", "../../../../src/cli/commands/profile/delete.ts", "../../../../src/cli/commands/profile/import.ts", "../../../../src/cli/commands/profile/inspect.ts", "../../../../src/cli/commands/profile/list.ts", "../../../../src/cli/commands/profile/reset.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvents, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\n\nimport { Client, OperationHandler, SchemaDefs } from '#capabilities';\nimport { meta } from '#meta';\nimport { ClientEvents } from '#types';\nimport { type ClientPluginOptions } from '#types';\n\nimport { config, device, edge, halo, profile } from './commands';\n\nexport const ClientPlugin = Plugin.define<ClientPluginOptions>(meta).pipe(\n // TODO(wittjosiah): Could some of these commands make use of operations?\n AppPlugin.addCommandModule({ commands: [config, device, edge, halo, profile] }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n Plugin.addModule((options) => ({\n id: Capability.getModuleTag(Client),\n activatesOn: ActivationEvents.Startup,\n firesAfterActivation: [ClientEvents.ClientReady],\n activate: () => Client(options),\n })),\n Plugin.addModule({\n activatesOn: ClientEvents.ClientReady,\n firesBeforeActivation: [AppActivationEvents.SetupSchema],\n activate: SchemaDefs,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { view } from './view';\n\nexport const config = Command.make('config').pipe(\n Command.withDescription('Config commands.'),\n Command.withSubcommands([view]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Yaml from 'yaml';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ConfigService } from '@dxos/client';\nimport { DX_CONFIG, getProfileConfigPath } from '@dxos/client-protocol';\n\nexport const view = Command.make(\n 'view',\n {},\n Effect.fnUntraced(function* () {\n const config = yield* ConfigService;\n const { json, profile } = yield* CommandConfig;\n const configPath = getProfileConfigPath(DX_CONFIG, profile);\n\n if (json) {\n yield* Console.log(JSON.stringify(config.values, null, 2));\n } else {\n yield* Console.log(`Path: ${configPath}`);\n yield* Console.log(Yaml.stringify(config.values));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { info } from './info';\nimport { list } from './list';\nimport { update } from './update';\n\nexport const device = Command.make('device').pipe(\n Command.withDescription('Manage HALO devices.'),\n Command.withSubcommands([info, list, update]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { DeviceType } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { printDevice } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const device = client.halo.device;\n if (!device) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'No device found' }, null, 2));\n } else {\n yield* Console.log('No device found.');\n }\n return;\n }\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n deviceKey: device.deviceKey.toHex(),\n profile: {\n ...device.profile,\n type: device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN',\n },\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printDevice(device)));\n }\n});\n\nexport const info = Command.make('info', {}, handler).pipe(Command.withDescription('Show device info.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\nimport { Device, DeviceKind, DeviceType } from '@dxos/client/halo';\n\nconst maybeTruncateKey = (key: { toHex(): string; truncate(): string }, truncate = false) =>\n truncate ? key.truncate() : key.toHex();\n\nconst getDeviceTitle = (device: Device): string => {\n if (device.profile?.label) {\n return device.profile.label;\n }\n const platform = device.profile?.platform ?? 'Unknown';\n const os = device.profile?.os ?? 'Unknown';\n return `${platform} on ${os}`;\n};\n\nexport const mapDevices = (devices: Device[], truncateKeys = false) => {\n return devices.map((device) => ({\n label: device.profile?.label,\n type: device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN',\n key: maybeTruncateKey(device.deviceKey, truncateKeys),\n kind: DeviceKind[device.kind],\n platform: device.profile?.platform,\n platformVersion: device.profile?.platformVersion,\n architecture: device.profile?.architecture,\n os: device.profile?.os,\n osVersion: device.profile?.osVersion,\n presence: device?.kind === DeviceKind.CURRENT ? 'THIS DEVICE' : Device.PresenceState[device.presence],\n }));\n};\n\nexport const printDevice = (device: Device) =>\n FormBuilder.make({ title: getDeviceTitle(device) }).pipe(\n FormBuilder.set('deviceKey', device.deviceKey.truncate()),\n FormBuilder.set('label', device.profile?.label ?? '<none>'),\n FormBuilder.set('type', device.profile?.type ? DeviceType[device.profile?.type] : 'UNKNOWN'),\n FormBuilder.set('kind', DeviceKind[device.kind]),\n FormBuilder.set(\n 'presence',\n device?.kind === DeviceKind.CURRENT ? 'THIS DEVICE' : Device.PresenceState[device.presence],\n ),\n FormBuilder.set('platform', device.profile?.platform ?? '<none>'),\n FormBuilder.set('platformVersion', device.profile?.platformVersion ?? '<none>'),\n FormBuilder.set('architecture', device.profile?.architecture ?? '<none>'),\n FormBuilder.set('os', device.profile?.os ?? '<none>'),\n FormBuilder.set('osVersion', device.profile?.osVersion ?? '<none>'),\n FormBuilder.build,\n );\n\nexport const printDevices = (devices: Device[]) => {\n return devices.map(printDevice);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { printList } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { mapDevices, printDevices } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const devices = client.halo.devices.get();\n\n if (json) {\n yield* Console.log(JSON.stringify(mapDevices(devices), null, 2));\n } else {\n const formatted = printDevices(devices);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const list = Command.make('list', {}, handler).pipe(Command.withDescription('List devices.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printDevice } from '../util';\n\nexport const handler = Effect.fn(function* ({ label }: { label: string }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const device = client.halo.device;\n if (!device) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'No device found' }, null, 2));\n } else {\n yield* Console.log('No device found.');\n }\n return;\n }\n\n const updatedProfile = {\n ...device.profile,\n label,\n };\n\n const devicesService = client.services.services.DevicesService;\n if (!devicesService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'DevicesService not found' }, null, 2));\n } else {\n yield* Console.log('DevicesService not found.');\n }\n return;\n }\n\n const updatedDevice = yield* Effect.tryPromise(() => devicesService.updateDevice(updatedProfile));\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n deviceKey: updatedDevice.deviceKey.toHex(),\n profile: updatedDevice.profile,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printDevice(updatedDevice)));\n }\n});\n\nexport const update = Command.make(\n 'update',\n {\n label: Options.text('label').pipe(Options.withDescription('The device label.')),\n },\n handler,\n).pipe(Command.withDescription('Update device label.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { status } from './status';\n\nexport const edge = Command.make('edge').pipe(\n Command.withDescription('EDGE commands.'),\n Command.withSubcommands([status]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { createEdgeIdentity } from '@dxos/client/edge';\nimport { Context } from '@dxos/context';\n\nexport const getStatus = () =>\n Effect.gen(function* () {\n const client = yield* ClientService;\n const identity = createEdgeIdentity(client);\n client.edge.http.setIdentity(identity);\n const status = yield* Effect.tryPromise(() => client.edge.http.getStatus(Context.default()));\n\n if (yield* CommandConfig.isJson) {\n yield* Console.log(JSON.stringify(status, null, 2));\n } else if (status.problems.length > 0) {\n for (const problem of status.problems) {\n yield* Console.error(problem);\n }\n } else {\n yield* Console.log('No problems found.');\n }\n }).pipe(\n // TODO(wittjosiah): Tagged error.\n Effect.catchSome((error) => {\n if (error instanceof Error && error.message === 'Identity not available') {\n // TODO(wittjosiah): Error coloring for logs.\n return Option.some(Console.error(error.message));\n } else {\n return Option.none();\n }\n }),\n );\n\n// TODO(wittjosiah): Admin functionality to provide to specify an identity.\nexport const status = Command.make('status', {}, getStatus).pipe(\n Command.withDescription('Get the EDGE status for the current identity.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { create } from './create';\nimport { credential } from './credential';\nimport { identity } from './identity';\n// TODO(wittjosiah): Omitted currently due to p2p networking not working in bun.\n// import { join } from './join';\nimport { keys } from './keys';\nimport { recover } from './recover';\nimport { seed } from './seed';\n// import { share } from './share';\nimport { update } from './update';\n\nexport const halo: Command.Command<any, any, any, any> = Command.make('halo').pipe(\n Command.withDescription('Manage HALO identity.'),\n Command.withSubcommands([create, credential, identity, keys, recover, seed, update]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Plugin } from '@dxos/app-framework';\nimport { CommandConfig, flushAndSync, spaceLayer } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { MembershipPolicy } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { ClientOperation } from '#operations';\n\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* ({\n agent,\n displayName,\n}: {\n agent: boolean;\n displayName: Option.Option<string>;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n // TODO(wittjosiah): How to surface this error to the user cleanly?\n invariant(!client.halo.identity.get(), 'Identity already exists');\n\n const manager = yield* Plugin.Service;\n const { invoke } = manager.capabilities.get(Capabilities.OperationInvoker);\n const identity = yield* invoke(ClientOperation.CreateIdentity, {\n displayName: Option.getOrUndefined(displayName),\n });\n\n if (agent) {\n yield* invoke(ClientOperation.CreateAgent);\n }\n\n // Create personal space for the CLI identity.\n const { PERSONAL_SPACE_TAG, setPersonalSpace } = yield* Effect.tryPromise(() => import('@dxos/app-toolkit'));\n const space = yield* Effect.promise(() =>\n client.spaces.create({}, { tags: [PERSONAL_SPACE_TAG], membershipPolicy: MembershipPolicy.LOCKED }),\n );\n yield* Effect.promise(() => space.waitUntilReady());\n yield* Effect.promise(() => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n setPersonalSpace(space);\n yield* flushAndSync({ indexes: true }).pipe(Effect.provide(spaceLayer(Option.some(space.id))));\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(identity)));\n }\n});\n\nexport const create = Command.make(\n 'create',\n {\n agent: Options.boolean('noAgent', { ifPresent: false }).pipe(\n Options.withDescription('Do not create an EDGE agent for the identity.'),\n ),\n displayName: Options.text('displayName').pipe(\n Options.withDescription('The display name of the identity.'),\n Options.optional,\n ),\n },\n handler,\n).pipe(Command.withDescription('Create a new identity.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\n\n/**\n * Pretty prints an identity with ANSI colors.\n */\nexport const printIdentity = (identity: {\n identityKey: { toHex(): string; truncate(): string };\n profile?: { displayName?: string };\n}) =>\n FormBuilder.make({ title: 'Identity' }).pipe(\n FormBuilder.set('identityKey', identity.identityKey.truncate()),\n FormBuilder.set('displayName', identity.profile?.displayName ?? '<none>'),\n FormBuilder.build,\n );\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { add } from './add';\nimport { list } from './list';\n\nexport const credential = Command.make('credential').pipe(\n Command.withDescription('Manage HALO credentials.'),\n Command.withSubcommands([add, list]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Args from '@effect/cli/Args';\nimport * as Command from '@effect/cli/Command';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\nimport { schema } from '@dxos/protocols/proto';\n\nexport const handler = Effect.fn(function* ({ credential }: { credential: Option.Option<string> }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n\n let credentialHex = Option.getOrUndefined(credential);\n if (!credentialHex) {\n credentialHex = yield* Prompt.text({ message: 'Enter credential (hex string)' }).pipe(Prompt.run);\n }\n\n invariant(credentialHex, 'Invalid credential.');\n\n const identity = client.halo.identity;\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Profile not initialized' }, null, 2));\n } else {\n yield* Console.log('Profile not initialized.');\n }\n return;\n }\n\n yield* Effect.gen(function* () {\n const codec = schema.getCodecForType('dxos.halo.credentials.Credential');\n const credentialBytes = yield* Effect.try({\n try: () => Buffer.from(credentialHex, 'hex'),\n catch: (error) => new Error(`Failed to parse hex string: ${error}`),\n });\n\n const verifyError = codec.protoType.verify(credentialBytes);\n if (verifyError) {\n yield* Effect.fail(new Error(verifyError));\n }\n\n const credentialObj = yield* Effect.try({\n try: () => codec.decode(credentialBytes),\n catch: (error) => new Error(`Failed to decode credential: ${error}`),\n });\n\n yield* Effect.tryPromise({\n try: () => client.halo.writeCredentials([credentialObj]),\n catch: (error) => new Error(`Failed to write credential: ${error}`),\n });\n\n if (json) {\n yield* Console.log(JSON.stringify({ success: true }, null, 2));\n } else {\n yield* Console.log('Credential added successfully.');\n }\n }).pipe(\n Effect.catchAll((error) =>\n Effect.gen(function* () {\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n error: 'Invalid credential',\n message: error instanceof Error ? error.message : String(error),\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log('Invalid credential.');\n }\n yield* Effect.fail(error);\n }),\n ),\n );\n});\n\nexport const add = Command.make(\n 'add',\n {\n credential: Args.text({ name: 'credential' }).pipe(\n Args.withDescription('Credential as hex string.'),\n Args.optional,\n ),\n },\n handler,\n).pipe(Command.withDescription('Import credential into HALO.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Duration from 'effect/Duration';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, Common, FormBuilder, getSpace, printList } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport type { Credential } from '@dxos/client/halo';\nimport { type Key } from '@dxos/echo';\n\nconst mapCredentials = (credentials: Credential[]) => {\n return credentials.map((credential) => ({\n id: credential.id?.toHex() ?? '<unknown>',\n issuer: credential.issuer?.toHex() ?? '<unknown>',\n subject: credential.subject?.id?.toHex() ?? '<unknown>',\n type: credential.subject.assertion['@type'],\n assertion: credential.subject.assertion,\n }));\n};\n\nconst printCredential = (credential: Credential) => {\n const type = credential.subject.assertion['@type'] ?? '<unknown>';\n return FormBuilder.make({ title: type }).pipe(\n FormBuilder.option('id', Option.fromNullable(credential.id?.truncate())),\n FormBuilder.option('issuer', Option.fromNullable(credential.issuer?.truncate())),\n FormBuilder.option('subject', Option.fromNullable(credential.subject?.id?.truncate())),\n FormBuilder.build,\n );\n};\n\nexport const handler = Effect.fn(function* ({\n type,\n spaceId,\n timeout,\n delay,\n}: {\n type: Option.Option<string>;\n spaceId: Option.Option<Key.SpaceId>;\n timeout: number;\n delay: number;\n}) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n let credentials: Credential[];\n\n if (Option.isSome(spaceId)) {\n // If space ID was provided, get credentials from that space.\n const space = yield* getSpace(spaceId.value);\n credentials = yield* Effect.tryPromise(() => space.internal.getCredentials());\n } else {\n // Get credentials from HALO\n const identity = client.halo.identity;\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Profile not initialized' }, null, 2));\n } else {\n yield* Console.log('Profile not initialized.');\n }\n return;\n }\n\n // Wait for at least one credential\n const latch = yield* Effect.makeLatch();\n const subscription = client.halo.credentials.subscribe((creds) => {\n if (creds.length > 0) {\n Effect.runSync(latch.open);\n }\n });\n\n yield* latch.await.pipe(\n Effect.timeout(Duration.millis(timeout)),\n Effect.catchAll(() => Effect.void),\n Effect.ensuring(\n Effect.sync(() => {\n subscription.unsubscribe();\n }),\n ),\n );\n\n // Wait a bit more to ensure all credentials are loaded\n yield* Effect.sleep(Duration.millis(delay));\n\n credentials = client.halo.queryCredentials({ type: Option.getOrUndefined(type) });\n }\n\n if (json) {\n yield* Console.log(JSON.stringify(mapCredentials(credentials), null, 2));\n } else {\n const formatted = credentials.map(printCredential);\n yield* Console.log(printList(formatted));\n }\n});\n\nexport const list = Command.make(\n 'list',\n {\n type: Options.text('type').pipe(Options.withDescription('Filter by credential type.'), Options.optional),\n spaceId: Common.spaceId.pipe(Options.withDescription('Space ID to show credentials from.'), Options.optional),\n timeout: Options.integer('timeout').pipe(\n Options.withDescription('Time in milliseconds to wait for at least one credential before listing.'),\n Options.withDefault(500),\n ),\n delay: Options.integer('delay').pipe(\n Options.withDescription('Delay in milliseconds before listing.'),\n Options.withDefault(250),\n ),\n },\n handler,\n).pipe(Command.withDescription('List HALO credentials.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identity = client.halo.identity.get();\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Identity not initialized' }, null, 2));\n } else {\n yield* Console.log('Identity not initialized.');\n }\n } else {\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(identity)));\n }\n }\n});\n\nexport const identity = Command.make('identity', {}, handler).pipe(\n Command.withDescription('Get the current identity.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { FormBuilder, print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identity = client.halo.identity.get();\n const device = client.halo.device;\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity?.identityKey.toHex(),\n deviceKey: device?.deviceKey.toHex(),\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'HALO Keys' }).pipe(\n FormBuilder.option('identityKey', Option.fromNullable(identity?.identityKey.truncate())),\n FormBuilder.option('deviceKey', Option.fromNullable(device?.deviceKey.truncate())),\n );\n yield* Console.log(print(FormBuilder.build(builder)));\n }\n});\n\nexport const keys = Command.make('keys', {}, handler).pipe(Command.withDescription('Show HALO keys.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Args from '@effect/cli/Args';\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\n\nimport { printIdentity } from '../util';\n\nexport const recover = Command.make(\n 'recover',\n {\n recoveryCode: Args.text({ name: 'recoveryCode' }).pipe(Args.withDescription('The recovery code seed phrase.')),\n },\n Effect.fn(function* ({ recoveryCode }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n // TODO(wittjosiah): How to surface this error to the user cleanly?\n invariant(!client.halo.identity.get(), 'Identity already exists');\n\n const identity = yield* Effect.tryPromise(() => client.halo.recoverIdentity({ recoveryCode }));\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: identity.identityKey.toHex(),\n displayName: identity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log('Identity recovered successfully');\n yield* Console.log(print(printIdentity(identity)));\n }\n }),\n).pipe(Command.withDescription('Recover an existing identity using a recovery code.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nexport const handler = Effect.fn(function* () {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identityService = client.services.services.IdentityService;\n if (!identityService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'IdentityService not found' }, null, 2));\n } else {\n yield* Console.log('IdentityService not found.');\n }\n return;\n }\n\n const result = yield* Effect.tryPromise(() => identityService.createRecoveryCredential({}));\n\n if (json) {\n yield* Console.log(JSON.stringify({ recoveryCode: result.recoveryCode }, null, 2));\n } else {\n yield* Console.log(result.recoveryCode);\n }\n});\n\nexport const seed = Command.make('seed', {}, handler).pipe(\n Command.withDescription('Generate a seedphrase that can be used for identity recovery.'),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { print } from '@dxos/cli-util';\nimport { ClientService } from '@dxos/client';\n\nimport { printIdentity } from '../util';\n\nexport const handler = Effect.fn(function* ({ displayName }: { displayName: string }) {\n const { json } = yield* CommandConfig;\n const client = yield* ClientService;\n const identity = client.halo.identity.get();\n if (!identity) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Identity not initialized' }, null, 2));\n } else {\n yield* Console.log('Identity not initialized.');\n }\n return;\n }\n\n const identityService = client.services.services.IdentityService;\n if (!identityService) {\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'IdentityService not found' }, null, 2));\n } else {\n yield* Console.log('IdentityService not found.');\n }\n return;\n }\n\n const updatedIdentity = yield* Effect.tryPromise(() =>\n identityService.updateProfile({\n displayName,\n }),\n );\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n identityKey: updatedIdentity.identityKey.toHex(),\n displayName: updatedIdentity.profile?.displayName,\n },\n null,\n 2,\n ),\n );\n } else {\n yield* Console.log(print(printIdentity(updatedIdentity)));\n }\n});\n\nexport const update = Command.make(\n 'update',\n {\n displayName: Options.text('displayName').pipe(Options.withDescription('The display name of the identity.')),\n },\n handler,\n).pipe(Command.withDescription('Update identity profile.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\n\nimport { create } from './create';\nimport { del } from './delete';\nimport { importCommand } from './import';\nimport { inspect } from './inspect';\nimport { list } from './list';\nimport { reset } from './reset';\n\nexport const profile = Command.make('profile').pipe(\n Command.withDescription('Profile commands.'),\n Command.withSubcommands([create, del, importCommand, inspect, list, reset]),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport * as Record from 'effect/Record';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_CONFIG, getProfileConfigPath } from '@dxos/client-protocol';\nimport { trim } from '@dxos/util';\n\nimport { printProfileCreated } from './util';\n\nconst TEMPLATES = {\n default: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge-production.dxos.workers.dev\n `,\n main: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge-main.dxos.workers.dev\n `,\n dev: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: https://edge.dxos.workers.dev\n `,\n local: trim`\n version: 1\n runtime:\n client:\n storage:\n persistent: true\n services:\n edge:\n url: http://localhost:8787\n `,\n} as const;\n\nexport const create = Command.make(\n 'create',\n {\n template: Options.choice('template', Record.keys(TEMPLATES)).pipe(\n Options.withDescription('Template to use'),\n Options.withDefault('default'),\n ),\n name: Options.text('name').pipe(Options.withDescription('Profile name'), Options.optional),\n },\n Effect.fnUntraced(function* ({ template, name }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const profileName = name.pipe(Option.getOrElse(() => template));\n const configPath = getProfileConfigPath(DX_CONFIG, profileName);\n if (yield* fs.exists(configPath)) {\n throw new Error(`Profile ${profileName} already exists`);\n }\n\n yield* fs.makeDirectory(path.dirname(configPath), { recursive: true });\n yield* fs.writeFileString(configPath, TEMPLATES[template]);\n if (json) {\n yield* Console.log(JSON.stringify({ name: profileName, path: configPath }, null, 2));\n } else {\n yield* Console.log(print(printProfileCreated(profileName, configPath)));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FormBuilder } from '@dxos/cli-util';\n\nexport type ProfileInfo = {\n name: string;\n isCurrent: boolean;\n fullPath: string;\n storagePath: string;\n edge?: string;\n};\n\n/**\n * Pretty prints profile creation result with ANSI colors.\n */\nexport const printProfileCreated = (name: string, path: string) =>\n FormBuilder.make({ title: 'Profile created' }).pipe(\n FormBuilder.set('name', name),\n FormBuilder.set('path', path),\n FormBuilder.build,\n );\n\n/**\n * Pretty prints profile deletion result with ANSI colors.\n */\nexport const printProfileDeleted = (name: string) =>\n FormBuilder.make({ title: 'Profile deleted' }).pipe(FormBuilder.set('name', name), FormBuilder.build);\n\n/**\n * Pretty prints profile reset result with ANSI colors.\n */\nexport const printProfileReset = (profile: string) =>\n FormBuilder.make({ title: 'Profile reset' }).pipe(FormBuilder.set('profile', profile), FormBuilder.build);\n\n/**\n * Pretty prints a profile with ANSI colors.\n */\nexport const printProfile = (profile: ProfileInfo) => {\n const title = profile.isCurrent ? `${profile.name} (current)` : profile.name;\n return FormBuilder.make({ title }).pipe(\n FormBuilder.set('fullPath', profile.fullPath),\n FormBuilder.set('storagePath', profile.storagePath),\n FormBuilder.set('edge', profile.edge ?? '<none>'),\n FormBuilder.build,\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_CONFIG, getProfileConfigPath } from '@dxos/client-protocol';\n\nimport { printProfileDeleted } from './util';\n\nexport const del = Command.make(\n 'delete',\n {\n name: Options.text('name').pipe(Options.withDescription('Profile name'), Options.optional),\n },\n Effect.fnUntraced(function* ({ name }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const profileName = name.pipe(Option.getOrElse(() => 'default'));\n const configPath = getProfileConfigPath(DX_CONFIG, profileName);\n const pluginsPath = `${DX_CONFIG}/plugins/${profileName}.yml`;\n yield* fs.remove(configPath).pipe(Effect.ignore);\n yield* fs.remove(pluginsPath).pipe(Effect.ignore);\n if (json) {\n yield* Console.log(JSON.stringify({ name: profileName, deleted: true }, null, 2));\n } else {\n yield* Console.log(print(printProfileDeleted(profileName)));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { CommandConfig } from '@dxos/cli-util';\nimport { ConfigService } from '@dxos/config';\nimport { log } from '@dxos/log';\nimport type { Runtime } from '@dxos/protocols/proto/dxos/config';\n\nexport const handler = Effect.fn(function* ({\n file,\n dataDir,\n force,\n}: {\n file: string;\n dataDir: Option.Option<string>;\n force: boolean;\n}) {\n const dataDirValue = Option.getOrUndefined(dataDir);\n const { json, profile } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const config = yield* ConfigService;\n\n const { createLevel, createStorageObjects, importProfileData, decodeProfileArchive } = yield* Effect.promise(\n () => import('@dxos/client-services'),\n );\n\n let storageConfig: Runtime.Client.Storage;\n if (!dataDirValue) {\n if (!force) {\n yield* Console.log(`Will overwrite profile: ${profile}`);\n const confirmed = yield* Prompt.confirm({\n message: `Delete all data? (Profile: ${profile})`,\n initial: false,\n }).pipe(Prompt.run);\n if (!confirmed) {\n return;\n }\n }\n storageConfig = config.values.runtime!.client!.storage!;\n } else {\n const fullPath = path.resolve(dataDirValue);\n yield* Console.log(`Importing into: ${fullPath}`);\n storageConfig = {\n persistent: true,\n dataRoot: fullPath,\n };\n }\n\n if (yield* fs.exists(storageConfig.dataRoot!)) {\n log.error('data directory already exists', { path: storageConfig.dataRoot! });\n if (json) {\n yield* Console.log(JSON.stringify({ error: 'Data directory already exists' }, null, 2));\n } else {\n yield* Console.log('Data directory already exists.');\n }\n return;\n }\n\n const data = yield* fs.readFile(file);\n\n const archive = decodeProfileArchive(data);\n yield* Console.log(`Importing archive with ${archive.storage.length} entries`);\n\n const { storage } = createStorageObjects(storageConfig);\n const level = yield* Effect.tryPromise({\n try: () => createLevel(storageConfig),\n catch: (error) => new Error(`Failed to create level: ${error}`),\n });\n\n yield* Console.log('Beginning profile import...');\n yield* Effect.tryPromise({\n try: () => importProfileData({ storage, level }, archive),\n catch: (error) => new Error(`Failed to import profile data: ${error}`),\n });\n yield* Console.log('Profile import complete');\n\n if (json) {\n yield* Console.log(JSON.stringify({ success: true, profile, entries: archive.storage.length }, null, 2));\n }\n});\n\nexport const importCommand = Command.make(\n 'import',\n {\n file: Options.text('file').pipe(Options.withDescription('Archive filename.'), Options.withAlias('f')),\n dataDir: Options.text('data-dir').pipe(Options.withDescription('Storage directory.'), Options.optional),\n force: Options.boolean('force', { ifPresent: true }).pipe(Options.withDescription('Skip confirmation prompt.')),\n },\n handler,\n).pipe(Command.withDescription('Import profile.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, FormBuilder, print } from '@dxos/cli-util';\nimport { ProfileArchiveEntryType } from '@dxos/protocols';\nimport { arrayToBuffer } from '@dxos/util';\n\nexport const handler = Effect.fn(function* ({ file, storage }: { file: string; storage: boolean }) {\n const { json } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n\n const { decodeProfileArchive } = yield* Effect.promise(() => import('@dxos/client-services'));\n\n const data = yield* fs.readFile(file);\n\n const archive = decodeProfileArchive(data);\n\n if (json) {\n yield* Console.log(\n JSON.stringify(\n {\n meta: archive.meta,\n ...(storage ? { storage: archive.storage } : {}),\n },\n null,\n 2,\n ),\n );\n } else {\n const builder = FormBuilder.make({ title: 'Profile Archive' }).pipe(\n FormBuilder.when(\n archive.meta,\n FormBuilder.each(Object.entries(archive.meta ?? {}), ([key, value]) => FormBuilder.set(key, String(value))),\n ),\n FormBuilder.build,\n );\n yield* Console.log(print(builder));\n\n if (storage) {\n yield* Console.log('\\nStorage entries:\\n');\n for (const entry of archive.storage) {\n const key =\n typeof entry.key === 'string' ? entry.key : JSON.stringify(arrayToBuffer(entry.key).toString()).slice(1, -1);\n yield* Console.log(` ${ProfileArchiveEntryType[entry.type]} ${key}`);\n }\n }\n }\n});\n\nexport const inspect = Command.make(\n 'inspect',\n {\n file: Options.text('file').pipe(Options.withDescription('Archive filename.'), Options.withAlias('f')),\n storage: Options.boolean('storage', { ifPresent: true }).pipe(Options.withDescription('List storage entries.')),\n },\n handler,\n).pipe(Command.withDescription('Inspect profile archive.'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Path from '@effect/platform/Path';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\nimport * as Yaml from 'yaml';\n\nimport { CommandConfig, printList } from '@dxos/cli-util';\nimport { Config } from '@dxos/client';\nimport { DX_CONFIG, DX_DATA, getProfilePath } from '@dxos/client-protocol';\n\nimport { printProfile } from './util';\n\nexport const list = Command.make(\n 'list',\n {},\n Effect.fnUntraced(function* () {\n const { profile: currentProfile } = yield* CommandConfig;\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const profileDir = path.join(DX_CONFIG, 'profile');\n const entries = yield* fs.readDirectory(profileDir);\n const profileFiles = entries.filter((entry) => entry.endsWith('.yml'));\n const profiles = yield* Effect.forEach(profileFiles, (filename) =>\n Effect.gen(function* () {\n const name = filename.slice(0, -4);\n const configPath = path.join(profileDir, filename);\n const configContent = yield* fs\n .readFileString(configPath)\n .pipe(Effect.catchTag('SystemError', () => Effect.succeed('{}')));\n const configValues = Yaml.parse(configContent) ?? {};\n const config = new Config(configValues);\n return {\n name,\n isCurrent: name === currentProfile,\n fullPath: configPath,\n storagePath: getProfilePath(configValues?.runtime?.client?.storage?.dataRoot ?? DX_DATA, name),\n edge: config.values.runtime?.services?.edge?.url,\n };\n }),\n );\n\n const { json } = yield* CommandConfig;\n if (json) {\n yield* Console.log(JSON.stringify(profiles, null, 2));\n } else {\n const formatted = profiles.map(printProfile);\n yield* Console.log(printList(formatted));\n }\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Command from '@effect/cli/Command';\nimport * as Options from '@effect/cli/Options';\nimport * as Prompt from '@effect/cli/Prompt';\nimport * as FileSystem from '@effect/platform/FileSystem';\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { CommandConfig, print } from '@dxos/cli-util';\nimport { DX_DATA, getProfilePath } from '@dxos/client-protocol';\nimport { ConfigService } from '@dxos/config';\n\nimport { printProfileReset } from './util';\n\nexport const reset = Command.make(\n 'reset',\n {\n force: Options.boolean('force', { ifPresent: true }).pipe(Options.withDescription('Skip confirmation prompt')),\n },\n Effect.fnUntraced(function* ({ force }) {\n const fs = yield* FileSystem.FileSystem;\n const config = yield* ConfigService;\n const { json, profile } = yield* CommandConfig;\n const path = config.values.runtime?.client?.storage?.dataRoot ?? getProfilePath(DX_DATA, profile);\n if (!force) {\n const confirmed = yield* Prompt.confirm({\n message: `Are you sure you want to reset the profile (${profile})?`,\n initial: false,\n });\n if (!confirmed) {\n return;\n }\n }\n\n yield* fs.remove(path, { recursive: true });\n if (json) {\n yield* Console.log(JSON.stringify({ profile, reset: true }, null, 2));\n } else {\n yield* Console.log(print(printProfileReset(profile)));\n }\n }),\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ActivationEvents", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "Client", "OperationHandler", "SchemaDefs", "meta", "ClientEvents", "Command", "Command", "Console", "Effect", "Yaml", "CommandConfig", "ConfigService", "DX_CONFIG", "getProfileConfigPath", "view", "make", "fnUntraced", "config", "ConfigService", "json", "profile", "CommandConfig", "configPath", "getProfileConfigPath", "DX_CONFIG", "log", "JSON", "stringify", "values", "config", "make", "pipe", "withDescription", "withSubcommands", "view", "Command", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "DeviceType", "FormBuilder", "Device", "DeviceKind", "DeviceType", "maybeTruncateKey", "key", "truncate", "toHex", "getDeviceTitle", "device", "profile", "label", "platform", "os", "mapDevices", "devices", "truncateKeys", "map", "type", "DeviceType", "deviceKey", "kind", "DeviceKind", "platformVersion", "architecture", "osVersion", "presence", "CURRENT", "Device", "PresenceState", "printDevice", "FormBuilder", "make", "title", "pipe", "set", "build", "printDevices", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "device", "halo", "log", "JSON", "stringify", "error", "deviceKey", "toHex", "profile", "type", "DeviceType", "print", "printDevice", "info", "make", "pipe", "withDescription", "Command", "Console", "Effect", "CommandConfig", "printList", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "devices", "halo", "get", "log", "JSON", "stringify", "mapDevices", "formatted", "printDevices", "printList", "list", "make", "pipe", "withDescription", "Command", "Options", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "label", "json", "CommandConfig", "client", "ClientService", "device", "halo", "log", "JSON", "stringify", "error", "updatedProfile", "profile", "devicesService", "services", "DevicesService", "updatedDevice", "tryPromise", "updateDevice", "deviceKey", "toHex", "print", "printDevice", "update", "make", "text", "pipe", "withDescription", "device", "make", "pipe", "withDescription", "withSubcommands", "info", "list", "update", "Command", "Command", "Console", "Effect", "Option", "CommandConfig", "ClientService", "createEdgeIdentity", "Context", "getStatus", "gen", "client", "identity", "edge", "http", "setIdentity", "status", "tryPromise", "default", "isJson", "log", "JSON", "stringify", "problems", "length", "problem", "error", "pipe", "catchSome", "Error", "message", "some", "none", "make", "withDescription", "edge", "make", "pipe", "withDescription", "withSubcommands", "status", "Command", "Command", "Options", "Console", "Effect", "Option", "Capabilities", "Plugin", "CommandConfig", "flushAndSync", "spaceLayer", "print", "ClientService", "invariant", "EdgeReplicationSetting", "MembershipPolicy", "ClientOperation", "FormBuilder", "printIdentity", "identity", "FormBuilder", "make", "title", "pipe", "set", "identityKey", "truncate", "profile", "displayName", "build", "handler", "fn", "agent", "displayName", "json", "CommandConfig", "client", "ClientService", "invariant", "halo", "identity", "get", "manager", "Plugin", "Service", "invoke", "capabilities", "Capabilities", "OperationInvoker", "ClientOperation", "CreateIdentity", "getOrUndefined", "CreateAgent", "PERSONAL_SPACE_TAG", "setPersonalSpace", "tryPromise", "space", "promise", "spaces", "create", "tags", "membershipPolicy", "MembershipPolicy", "LOCKED", "waitUntilReady", "internal", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "flushAndSync", "indexes", "pipe", "provide", "spaceLayer", "some", "id", "log", "JSON", "stringify", "identityKey", "toHex", "profile", "print", "printIdentity", "make", "boolean", "ifPresent", "withDescription", "text", "optional", "Command", "Args", "Command", "Prompt", "Console", "Effect", "Option", "CommandConfig", "ClientService", "invariant", "schema", "handler", "fn", "credential", "json", "client", "credentialHex", "getOrUndefined", "text", "message", "pipe", "run", "identity", "halo", "log", "JSON", "stringify", "error", "gen", "codec", "getCodecForType", "credentialBytes", "try", "Buffer", "from", "catch", "Error", "verifyError", "protoType", "verify", "fail", "credentialObj", "decode", "tryPromise", "writeCredentials", "success", "catchAll", "String", "add", "make", "name", "withDescription", "optional", "Command", "Options", "Console", "Duration", "Effect", "Option", "CommandConfig", "Common", "FormBuilder", "getSpace", "printList", "ClientService", "mapCredentials", "credentials", "map", "credential", "id", "toHex", "issuer", "subject", "type", "assertion", "printCredential", "FormBuilder", "make", "title", "pipe", "option", "fromNullable", "truncate", "build", "handler", "fn", "spaceId", "timeout", "delay", "json", "CommandConfig", "client", "ClientService", "isSome", "space", "getSpace", "value", "tryPromise", "internal", "getCredentials", "identity", "halo", "log", "JSON", "stringify", "error", "latch", "makeLatch", "subscription", "subscribe", "creds", "length", "Effect", "runSync", "open", "await", "millis", "catchAll", "void", "ensuring", "sync", "unsubscribe", "sleep", "queryCredentials", "getOrUndefined", "formatted", "printList", "list", "text", "withDescription", "optional", "Common", "integer", "withDefault", "credential", "make", "pipe", "withDescription", "withSubcommands", "add", "list", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "identity", "halo", "get", "log", "JSON", "stringify", "error", "identityKey", "toHex", "displayName", "profile", "print", "printIdentity", "make", "pipe", "withDescription", "Command", "Console", "Effect", "Option", "CommandConfig", "FormBuilder", "print", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "identity", "halo", "get", "device", "log", "JSON", "stringify", "identityKey", "toHex", "deviceKey", "builder", "FormBuilder", "make", "title", "pipe", "option", "fromNullable", "truncate", "print", "build", "keys", "withDescription", "Args", "Command", "Console", "Effect", "CommandConfig", "print", "ClientService", "invariant", "recover", "make", "recoveryCode", "text", "name", "pipe", "withDescription", "fn", "json", "CommandConfig", "client", "ClientService", "invariant", "halo", "identity", "get", "tryPromise", "recoverIdentity", "log", "JSON", "stringify", "identityKey", "toHex", "displayName", "profile", "print", "printIdentity", "Command", "Console", "Effect", "CommandConfig", "ClientService", "handler", "fn", "json", "CommandConfig", "client", "ClientService", "identityService", "services", "IdentityService", "log", "JSON", "stringify", "error", "result", "tryPromise", "createRecoveryCredential", "recoveryCode", "seed", "make", "pipe", "withDescription", "Command", "Options", "Console", "Effect", "CommandConfig", "print", "ClientService", "handler", "fn", "displayName", "json", "CommandConfig", "client", "ClientService", "identity", "halo", "get", "log", "JSON", "stringify", "error", "identityService", "services", "IdentityService", "updatedIdentity", "tryPromise", "updateProfile", "identityKey", "toHex", "profile", "print", "printIdentity", "update", "make", "text", "pipe", "withDescription", "halo", "make", "pipe", "withDescription", "withSubcommands", "create", "credential", "identity", "keys", "recover", "seed", "update", "Command", "Command", "Options", "FileSystem", "Path", "Console", "Effect", "Option", "Record", "CommandConfig", "print", "DX_CONFIG", "getProfileConfigPath", "trim", "FormBuilder", "printProfileCreated", "name", "path", "FormBuilder", "make", "title", "pipe", "set", "build", "printProfileDeleted", "printProfileReset", "profile", "printProfile", "isCurrent", "fullPath", "storagePath", "edge", "TEMPLATES", "default", "trim", "main", "dev", "local", "create", "make", "template", "choice", "keys", "pipe", "withDescription", "withDefault", "name", "text", "optional", "fnUntraced", "json", "CommandConfig", "fs", "FileSystem", "path", "Path", "profileName", "getOrElse", "configPath", "getProfileConfigPath", "DX_CONFIG", "exists", "Error", "makeDirectory", "dirname", "recursive", "writeFileString", "log", "JSON", "stringify", "print", "printProfileCreated", "Command", "Options", "FileSystem", "Console", "Effect", "Option", "CommandConfig", "print", "DX_CONFIG", "getProfileConfigPath", "del", "make", "name", "text", "pipe", "withDescription", "optional", "fnUntraced", "json", "CommandConfig", "fs", "FileSystem", "profileName", "getOrElse", "configPath", "getProfileConfigPath", "DX_CONFIG", "pluginsPath", "remove", "ignore", "log", "JSON", "stringify", "deleted", "print", "printProfileDeleted", "Command", "Options", "Prompt", "FileSystem", "Path", "Console", "Effect", "Option", "CommandConfig", "ConfigService", "log", "handler", "fn", "file", "dataDir", "force", "dataDirValue", "getOrUndefined", "json", "profile", "fs", "path", "config", "createLevel", "createStorageObjects", "importProfileData", "decodeProfileArchive", "promise", "storageConfig", "confirmed", "confirm", "message", "initial", "pipe", "run", "values", "runtime", "client", "storage", "fullPath", "resolve", "persistent", "dataRoot", "exists", "error", "JSON", "stringify", "data", "readFile", "archive", "length", "level", "tryPromise", "try", "catch", "Error", "success", "entries", "importCommand", "make", "text", "withDescription", "withAlias", "optional", "boolean", "ifPresent", "Command", "Options", "FileSystem", "Console", "Effect", "CommandConfig", "FormBuilder", "print", "ProfileArchiveEntryType", "arrayToBuffer", "handler", "fn", "file", "storage", "json", "CommandConfig", "fs", "FileSystem", "decodeProfileArchive", "promise", "data", "readFile", "archive", "log", "JSON", "stringify", "meta", "builder", "FormBuilder", "make", "title", "pipe", "when", "each", "Object", "entries", "key", "value", "set", "String", "build", "print", "entry", "arrayToBuffer", "toString", "slice", "ProfileArchiveEntryType", "type", "inspect", "text", "withDescription", "withAlias", "boolean", "ifPresent", "Command", "FileSystem", "Path", "Console", "Effect", "Yaml", "CommandConfig", "printList", "Config", "DX_CONFIG", "DX_DATA", "getProfilePath", "list", "make", "fnUntraced", "profile", "currentProfile", "CommandConfig", "fs", "FileSystem", "path", "Path", "profileDir", "join", "DX_CONFIG", "entries", "readDirectory", "profileFiles", "filter", "entry", "endsWith", "profiles", "forEach", "filename", "gen", "name", "slice", "configPath", "configContent", "readFileString", "pipe", "catchTag", "succeed", "configValues", "parse", "config", "Config", "isCurrent", "fullPath", "storagePath", "getProfilePath", "runtime", "client", "storage", "dataRoot", "DX_DATA", "edge", "values", "services", "url", "json", "log", "JSON", "stringify", "formatted", "map", "printProfile", "printList", "Command", "Options", "Prompt", "FileSystem", "Console", "Effect", "CommandConfig", "print", "DX_DATA", "getProfilePath", "ConfigService", "reset", "make", "force", "boolean", "ifPresent", "pipe", "withDescription", "fnUntraced", "fs", "FileSystem", "config", "ConfigService", "json", "profile", "CommandConfig", "path", "values", "runtime", "client", "storage", "dataRoot", "getProfilePath", "DX_DATA", "confirmed", "confirm", "message", "initial", "remove", "recursive", "log", "JSON", "stringify", "print", "printProfileReset", "profile", "make", "pipe", "withDescription", "withSubcommands", "create", "del", "importCommand", "inspect", "list", "reset", "ClientPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addCommandModule", "commands", "config", "device", "edge", "halo", "profile", "addOperationHandlerModule", "activate", "OperationHandler", "addModule", "options", "id", "Capability", "getModuleTag", "Client", "activatesOn", "ActivationEvents", "Startup", "firesAfterActivation", "ClientEvents", "ClientReady", "firesBeforeActivation", "AppActivationEvents", "SetupSchema", "SchemaDefs", "make"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CreateAgent
|
|
3
|
+
} from "./chunk-M43LJQ5U.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ClientCapabilities
|
|
6
|
+
} from "./chunk-WNJRYPGG.mjs";
|
|
7
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
8
|
+
|
|
9
|
+
// src/operations/create-agent.ts
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import { Capability } from "@dxos/app-framework";
|
|
12
|
+
import { invariant } from "@dxos/invariant";
|
|
13
|
+
import { Operation } from "@dxos/operation";
|
|
14
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/operations/create-agent.ts";
|
|
15
|
+
var handler = CreateAgent.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
|
|
16
|
+
const client = yield* Capability.get(ClientCapabilities.Client);
|
|
17
|
+
invariant(client.services.services.EdgeAgentService, "Missing EdgeAgentService", {
|
|
18
|
+
F: __dxlog_file,
|
|
19
|
+
L: 18,
|
|
20
|
+
S: this,
|
|
21
|
+
A: [
|
|
22
|
+
"client.services.services.EdgeAgentService",
|
|
23
|
+
"'Missing EdgeAgentService'"
|
|
24
|
+
]
|
|
25
|
+
});
|
|
26
|
+
yield* Effect.promise(() => client.services.services.EdgeAgentService.createAgent(void 0, {
|
|
27
|
+
timeout: 1e4
|
|
28
|
+
}));
|
|
29
|
+
})));
|
|
30
|
+
var create_agent_default = handler;
|
|
31
|
+
export {
|
|
32
|
+
create_agent_default as default
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=create-agent-SS5SE35J.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/create-agent.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { Operation } from '@dxos/operation';\n\nimport { ClientCapabilities } from '../types';\nimport { CreateAgent } from './definitions';\n\nconst handler: Operation.WithHandler<typeof CreateAgent> = CreateAgent.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n invariant(client.services.services.EdgeAgentService, 'Missing EdgeAgentService');\n yield* Effect.promise(() =>\n client.services.services.EdgeAgentService!.createAgent(undefined, { timeout: 10_000 }),\n );\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;;AAK1B,IAAMC,UAAqDC,YAAYC,KACrEC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOC,WAAWC,IAAIC,mBAAmBC,MAAM;AAC9DC,YAAUL,OAAOM,SAASA,SAASC,kBAAkB,4BAAA;;;;;;;;;AACrD,SAAcC,eAAQ,MACpBR,OAAOM,SAASA,SAASC,iBAAkBE,YAAYC,QAAW;IAAEC,SAAS;EAAO,CAAA,CAAA;AAExF,CAAA,CAAA,CAAA;AAIJ,IAAA,uBAAejB;",
|
|
6
|
+
"names": ["Effect", "Capability", "invariant", "Operation", "handler", "CreateAgent", "pipe", "Operation", "withHandler", "fnUntraced", "client", "Capability", "get", "ClientCapabilities", "Client", "invariant", "services", "EdgeAgentService", "promise", "createAgent", "undefined", "timeout"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CreateIdentity
|
|
3
|
+
} from "./chunk-M43LJQ5U.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ClientCapabilities,
|
|
6
|
+
ClientEvents
|
|
7
|
+
} from "./chunk-WNJRYPGG.mjs";
|
|
8
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
9
|
+
|
|
10
|
+
// src/operations/create-identity.ts
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
13
|
+
import { runAndForwardErrors } from "@dxos/effect";
|
|
14
|
+
import { Operation } from "@dxos/operation";
|
|
15
|
+
import { ObservabilityOperation } from "@dxos/plugin-observability/operations";
|
|
16
|
+
var handler = CreateIdentity.pipe(Operation.withHandler(Effect.fnUntraced(function* (profile) {
|
|
17
|
+
const manager = yield* Capability.get(Capabilities.PluginManager);
|
|
18
|
+
const client = yield* Capability.get(ClientCapabilities.Client);
|
|
19
|
+
const data = yield* Effect.promise(() => client.halo.createIdentity(profile));
|
|
20
|
+
yield* Effect.promise(() => runAndForwardErrors(manager.activate(ClientEvents.IdentityCreated)));
|
|
21
|
+
yield* Operation.schedule(ObservabilityOperation.SendEvent, {
|
|
22
|
+
name: "identity.create"
|
|
23
|
+
});
|
|
24
|
+
return data;
|
|
25
|
+
})));
|
|
26
|
+
var create_identity_default = handler;
|
|
27
|
+
export {
|
|
28
|
+
create_identity_default as default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=create-identity-PBEUEIPN.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/create-identity.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { Operation } from '@dxos/operation';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/operations';\n\nimport { ClientEvents } from '../types';\nimport { ClientCapabilities } from '../types';\nimport { CreateIdentity } from './definitions';\n\nconst handler: Operation.WithHandler<typeof CreateIdentity> = CreateIdentity.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (profile) {\n const manager = yield* Capability.get(Capabilities.PluginManager);\n const client = yield* Capability.get(ClientCapabilities.Client);\n const data = yield* Effect.promise(() => client.halo.createIdentity(profile));\n yield* Effect.promise(() => runAndForwardErrors(manager.activate(ClientEvents.IdentityCreated)));\n yield* Operation.schedule(ObservabilityOperation.SendEvent, { name: 'identity.create' });\n return data;\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,2BAA2B;AACpC,SAASC,iBAAiB;AAC1B,SAASC,8BAA8B;AAMvC,IAAMC,UAAwDC,eAAeC,KAC3EC,UAAUC,YACDC,kBAAW,WAAWC,SAAO;AAClC,QAAMC,UAAU,OAAOC,WAAWC,IAAIC,aAAaC,aAAa;AAChE,QAAMC,SAAS,OAAOJ,WAAWC,IAAII,mBAAmBC,MAAM;AAC9D,QAAMC,OAAO,OAAcC,eAAQ,MAAMJ,OAAOK,KAAKC,eAAeZ,OAAAA,CAAAA;AACpE,SAAcU,eAAQ,MAAMG,oBAAoBZ,QAAQa,SAASC,aAAaC,eAAe,CAAA,CAAA;AAC7F,SAAOnB,UAAUoB,SAASC,uBAAuBC,WAAW;IAAEC,MAAM;EAAkB,CAAA;AACtF,SAAOX;AACT,CAAA,CAAA,CAAA;AAIJ,IAAA,0BAAef;",
|
|
6
|
+
"names": ["Effect", "Capabilities", "Capability", "runAndForwardErrors", "Operation", "ObservabilityOperation", "handler", "CreateIdentity", "pipe", "Operation", "withHandler", "fnUntraced", "profile", "manager", "Capability", "get", "Capabilities", "PluginManager", "client", "ClientCapabilities", "Client", "data", "promise", "halo", "createIdentity", "runAndForwardErrors", "activate", "ClientEvents", "IdentityCreated", "schedule", "ObservabilityOperation", "SendEvent", "name"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CreatePasskey
|
|
3
|
+
} from "./chunk-M43LJQ5U.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ClientCapabilities
|
|
6
|
+
} from "./chunk-WNJRYPGG.mjs";
|
|
7
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
8
|
+
|
|
9
|
+
// src/operations/create-passkey.ts
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as Match from "effect/Match";
|
|
12
|
+
import { Capability } from "@dxos/app-framework";
|
|
13
|
+
import { supportsNativePasskeys, createNativePasskey, extractPublicKeyFromAttestation } from "@dxos/app-toolkit";
|
|
14
|
+
import { PublicKey } from "@dxos/client";
|
|
15
|
+
import { invariant } from "@dxos/invariant";
|
|
16
|
+
import { Operation } from "@dxos/operation";
|
|
17
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/operations/create-passkey.ts";
|
|
18
|
+
var handler = CreatePasskey.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
|
|
19
|
+
const client = yield* Capability.get(ClientCapabilities.Client);
|
|
20
|
+
const identity = client.halo.identity.get();
|
|
21
|
+
invariant(identity, "Identity not available", {
|
|
22
|
+
F: __dxlog_file,
|
|
23
|
+
L: 22,
|
|
24
|
+
S: this,
|
|
25
|
+
A: [
|
|
26
|
+
"identity",
|
|
27
|
+
"'Identity not available'"
|
|
28
|
+
]
|
|
29
|
+
});
|
|
30
|
+
const lookupKey = PublicKey.random();
|
|
31
|
+
const { recoveryKey, algorithm } = yield* Match.value(supportsNativePasskeys()).pipe(Match.when(true, () => Effect.gen(function* () {
|
|
32
|
+
const result = yield* Effect.promise(() => createNativePasskey({
|
|
33
|
+
username: identity.did,
|
|
34
|
+
userId: lookupKey.asUint8Array()
|
|
35
|
+
}));
|
|
36
|
+
const { publicKey, algorithm: alg } = extractPublicKeyFromAttestation(result.attestation_object);
|
|
37
|
+
return {
|
|
38
|
+
recoveryKey: PublicKey.from(publicKey),
|
|
39
|
+
algorithm: alg === -7 ? "ES256" : "ED25519"
|
|
40
|
+
};
|
|
41
|
+
})), Match.orElse(() => Effect.gen(function* () {
|
|
42
|
+
const credential = yield* Effect.promise(() => navigator.credentials.create({
|
|
43
|
+
publicKey: {
|
|
44
|
+
challenge: new Uint8Array(),
|
|
45
|
+
rp: {
|
|
46
|
+
id: location.hostname,
|
|
47
|
+
name: "Composer"
|
|
48
|
+
},
|
|
49
|
+
user: {
|
|
50
|
+
id: lookupKey.asUint8Array(),
|
|
51
|
+
name: identity.did,
|
|
52
|
+
displayName: identity.profile?.displayName ?? ""
|
|
53
|
+
},
|
|
54
|
+
pubKeyCredParams: [
|
|
55
|
+
{
|
|
56
|
+
type: "public-key",
|
|
57
|
+
alg: -8
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: "public-key",
|
|
61
|
+
alg: -7
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
authenticatorSelection: {
|
|
65
|
+
residentKey: "required",
|
|
66
|
+
requireResidentKey: true
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
invariant(credential, "Credential not available", {
|
|
71
|
+
F: __dxlog_file,
|
|
72
|
+
L: 65,
|
|
73
|
+
S: this,
|
|
74
|
+
A: [
|
|
75
|
+
"credential",
|
|
76
|
+
"'Credential not available'"
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
recoveryKey: PublicKey.from(new Uint8Array(credential.response.getPublicKey())),
|
|
81
|
+
algorithm: credential.response.getPublicKeyAlgorithm() === -7 ? "ES256" : "ED25519"
|
|
82
|
+
};
|
|
83
|
+
})));
|
|
84
|
+
invariant(client.services.services.IdentityService, "IdentityService not available", {
|
|
85
|
+
F: __dxlog_file,
|
|
86
|
+
L: 74,
|
|
87
|
+
S: this,
|
|
88
|
+
A: [
|
|
89
|
+
"client.services.services.IdentityService",
|
|
90
|
+
"'IdentityService not available'"
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
yield* Effect.promise(() => client.services.services.IdentityService.createRecoveryCredential({
|
|
94
|
+
data: {
|
|
95
|
+
recoveryKey,
|
|
96
|
+
algorithm,
|
|
97
|
+
lookupKey
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
100
|
+
})));
|
|
101
|
+
var create_passkey_default = handler;
|
|
102
|
+
export {
|
|
103
|
+
create_passkey_default as default
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=create-passkey-JN6I5WMM.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/create-passkey.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Match from 'effect/Match';\n\nimport { Capability } from '@dxos/app-framework';\nimport { supportsNativePasskeys, createNativePasskey, extractPublicKeyFromAttestation } from '@dxos/app-toolkit';\nimport { PublicKey } from '@dxos/client';\nimport { invariant } from '@dxos/invariant';\nimport { Operation } from '@dxos/operation';\n\nimport { ClientCapabilities } from '../types';\nimport { CreatePasskey } from './definitions';\n\nconst handler: Operation.WithHandler<typeof CreatePasskey> = CreatePasskey.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const identity = client.halo.identity.get();\n invariant(identity, 'Identity not available');\n\n const lookupKey = PublicKey.random();\n\n const { recoveryKey, algorithm } = yield* Match.value(supportsNativePasskeys()).pipe(\n Match.when(true, () =>\n Effect.gen(function* () {\n const result = yield* Effect.promise(() =>\n createNativePasskey({\n username: identity.did,\n userId: lookupKey.asUint8Array(),\n }),\n );\n const { publicKey, algorithm: alg } = extractPublicKeyFromAttestation(result.attestation_object);\n return {\n recoveryKey: PublicKey.from(publicKey),\n algorithm: alg === -7 ? 'ES256' : 'ED25519',\n };\n }),\n ),\n Match.orElse(() =>\n Effect.gen(function* () {\n const credential = yield* Effect.promise(() =>\n navigator.credentials.create({\n publicKey: {\n challenge: new Uint8Array(),\n rp: { id: location.hostname, name: 'Composer' },\n user: {\n id: lookupKey.asUint8Array() as Uint8Array<ArrayBuffer>,\n name: identity.did,\n displayName: identity.profile?.displayName ?? '',\n },\n pubKeyCredParams: [\n { type: 'public-key', alg: -8 },\n { type: 'public-key', alg: -7 },\n ],\n authenticatorSelection: {\n residentKey: 'required',\n requireResidentKey: true,\n },\n },\n }),\n );\n invariant(credential, 'Credential not available');\n return {\n recoveryKey: PublicKey.from(new Uint8Array((credential as any).response.getPublicKey())),\n algorithm: (credential as any).response.getPublicKeyAlgorithm() === -7 ? 'ES256' : 'ED25519',\n };\n }),\n ),\n );\n\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n yield* Effect.promise(() =>\n client.services.services.IdentityService!.createRecoveryCredential({\n data: {\n recoveryKey,\n algorithm,\n lookupKey,\n },\n }),\n );\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,WAAW;AAEvB,SAASC,kBAAkB;AAC3B,SAASC,wBAAwBC,qBAAqBC,uCAAuC;AAC7F,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;;AAK1B,IAAMC,UAAuDC,cAAcC,KACzEC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOC,WAAWC,IAAIC,mBAAmBC,MAAM;AAC9D,QAAMC,WAAWL,OAAOM,KAAKD,SAASH,IAAG;AACzCK,YAAUF,UAAU,0BAAA;;;;;;;;;AAEpB,QAAMG,YAAYC,UAAUC,OAAM;AAElC,QAAM,EAAEC,aAAaC,UAAS,IAAK,OAAaC,YAAMC,uBAAAA,CAAAA,EAA0BlB,KACxEmB,WAAK,MAAM,MACRC,WAAI,aAAA;AACT,UAAMC,SAAS,OAAcC,eAAQ,MACnCC,oBAAoB;MAClBC,UAAUf,SAASgB;MACnBC,QAAQd,UAAUe,aAAY;IAChC,CAAA,CAAA;AAEF,UAAM,EAAEC,WAAWZ,WAAWa,IAAG,IAAKC,gCAAgCT,OAAOU,kBAAkB;AAC/F,WAAO;MACLhB,aAAaF,UAAUmB,KAAKJ,SAAAA;MAC5BZ,WAAWa,QAAQ,KAAK,UAAU;IACpC;EACF,CAAA,CAAA,GAEII,aAAO,MACJb,WAAI,aAAA;AACT,UAAMc,aAAa,OAAcZ,eAAQ,MACvCa,UAAUC,YAAYC,OAAO;MAC3BT,WAAW;QACTU,WAAW,IAAIC,WAAAA;QACfC,IAAI;UAAEC,IAAIC,SAASC;UAAUC,MAAM;QAAW;QAC9CC,MAAM;UACJJ,IAAI7B,UAAUe,aAAY;UAC1BiB,MAAMnC,SAASgB;UACfqB,aAAarC,SAASsC,SAASD,eAAe;QAChD;QACAE,kBAAkB;UAChB;YAAEC,MAAM;YAAcpB,KAAK;UAAG;UAC9B;YAAEoB,MAAM;YAAcpB,KAAK;UAAG;;QAEhCqB,wBAAwB;UACtBC,aAAa;UACbC,oBAAoB;QACtB;MACF;IACF,CAAA,CAAA;AAEFzC,cAAUuB,YAAY,4BAAA;;;;;;;;;AACtB,WAAO;MACLnB,aAAaF,UAAUmB,KAAK,IAAIO,WAAYL,WAAmBmB,SAASC,aAAY,CAAA,CAAA;MACpFtC,WAAYkB,WAAmBmB,SAASE,sBAAqB,MAAO,KAAK,UAAU;IACrF;EACF,CAAA,CAAA,CAAA;AAIJ5C,YAAUP,OAAOoD,SAASA,SAASC,iBAAiB,iCAAA;;;;;;;;;AACpD,SAAcnC,eAAQ,MACpBlB,OAAOoD,SAASA,SAASC,gBAAiBC,yBAAyB;IACjEC,MAAM;MACJ5C;MACAC;MACAJ;IACF;EACF,CAAA,CAAA;AAEJ,CAAA,CAAA,CAAA;AAIJ,IAAA,yBAAed;",
|
|
6
|
+
"names": ["Effect", "Match", "Capability", "supportsNativePasskeys", "createNativePasskey", "extractPublicKeyFromAttestation", "PublicKey", "invariant", "Operation", "handler", "CreatePasskey", "pipe", "Operation", "withHandler", "fnUntraced", "client", "Capability", "get", "ClientCapabilities", "Client", "identity", "halo", "invariant", "lookupKey", "PublicKey", "random", "recoveryKey", "algorithm", "value", "supportsNativePasskeys", "when", "gen", "result", "promise", "createNativePasskey", "username", "did", "userId", "asUint8Array", "publicKey", "alg", "extractPublicKeyFromAttestation", "attestation_object", "from", "orElse", "credential", "navigator", "credentials", "create", "challenge", "Uint8Array", "rp", "id", "location", "hostname", "name", "user", "displayName", "profile", "pubKeyCredParams", "type", "authenticatorSelection", "residentKey", "requireResidentKey", "response", "getPublicKey", "getPublicKeyAlgorithm", "services", "IdentityService", "createRecoveryCredential", "data"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RECOVERY_CODE_DIALOG
|
|
3
|
+
} from "./chunk-ELAYKIQU.mjs";
|
|
4
|
+
import {
|
|
5
|
+
CreateRecoveryCode
|
|
6
|
+
} from "./chunk-M43LJQ5U.mjs";
|
|
7
|
+
import {
|
|
8
|
+
ClientCapabilities
|
|
9
|
+
} from "./chunk-WNJRYPGG.mjs";
|
|
10
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
11
|
+
|
|
12
|
+
// src/operations/create-recovery-code.ts
|
|
13
|
+
import * as Effect from "effect/Effect";
|
|
14
|
+
import { Capability } from "@dxos/app-framework";
|
|
15
|
+
import { LayoutOperation } from "@dxos/app-toolkit";
|
|
16
|
+
import { invariant } from "@dxos/invariant";
|
|
17
|
+
import { Operation } from "@dxos/operation";
|
|
18
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/operations/create-recovery-code.ts";
|
|
19
|
+
var handler = CreateRecoveryCode.pipe(Operation.withHandler(Effect.fnUntraced(function* () {
|
|
20
|
+
const client = yield* Capability.get(ClientCapabilities.Client);
|
|
21
|
+
invariant(client.services.services.IdentityService, "IdentityService not available", {
|
|
22
|
+
F: __dxlog_file,
|
|
23
|
+
L: 20,
|
|
24
|
+
S: this,
|
|
25
|
+
A: [
|
|
26
|
+
"client.services.services.IdentityService",
|
|
27
|
+
"'IdentityService not available'"
|
|
28
|
+
]
|
|
29
|
+
});
|
|
30
|
+
const { recoveryCode } = yield* Effect.promise(() => client.services.services.IdentityService.createRecoveryCredential({}));
|
|
31
|
+
yield* Operation.invoke(LayoutOperation.UpdateDialog, {
|
|
32
|
+
subject: RECOVERY_CODE_DIALOG,
|
|
33
|
+
blockAlign: "start",
|
|
34
|
+
type: "alert",
|
|
35
|
+
props: {
|
|
36
|
+
code: recoveryCode
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
})));
|
|
40
|
+
var create_recovery_code_default = handler;
|
|
41
|
+
export {
|
|
42
|
+
create_recovery_code_default as default
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=create-recovery-code-32I6IWZC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/create-recovery-code.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { invariant } from '@dxos/invariant';\nimport { Operation } from '@dxos/operation';\n\nimport { RECOVERY_CODE_DIALOG } from '../constants';\nimport { ClientCapabilities } from '../types';\nimport { CreateRecoveryCode } from './definitions';\n\nconst handler: Operation.WithHandler<typeof CreateRecoveryCode> = CreateRecoveryCode.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n const { recoveryCode } = yield* Effect.promise(() =>\n client.services.services.IdentityService!.createRecoveryCredential({}),\n );\n yield* Operation.invoke(LayoutOperation.UpdateDialog, {\n subject: RECOVERY_CODE_DIALOG,\n blockAlign: 'start',\n type: 'alert',\n props: { code: recoveryCode },\n });\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;;AAM1B,IAAMC,UAA4DC,mBAAmBC,KACnFC,UAAUC,YACDC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOC,WAAWC,IAAIC,mBAAmBC,MAAM;AAC9DC,YAAUL,OAAOM,SAASA,SAASC,iBAAiB,iCAAA;;;;;;;;;AACpD,QAAM,EAAEC,aAAY,IAAK,OAAcC,eAAQ,MAC7CT,OAAOM,SAASA,SAASC,gBAAiBG,yBAAyB,CAAC,CAAA,CAAA;AAEtE,SAAOb,UAAUc,OAAOC,gBAAgBC,cAAc;IACpDC,SAASC;IACTC,YAAY;IACZC,MAAM;IACNC,OAAO;MAAEC,MAAMX;IAAa;EAC9B,CAAA;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,+BAAed;",
|
|
6
|
+
"names": ["Effect", "Capability", "LayoutOperation", "invariant", "Operation", "handler", "CreateRecoveryCode", "pipe", "Operation", "withHandler", "fnUntraced", "client", "Capability", "get", "ClientCapabilities", "Client", "invariant", "services", "IdentityService", "recoveryCode", "promise", "createRecoveryCredential", "invoke", "LayoutOperation", "UpdateDialog", "subject", "RECOVERY_CODE_DIALOG", "blockAlign", "type", "props", "code"]
|
|
7
|
+
}
|