@dxos/plugin-client 0.8.4-main.ae835ea → 0.8.4-main.bc674ce
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/app-graph-builder-3FGBMLTF.mjs +118 -0
- package/dist/lib/browser/app-graph-builder-3FGBMLTF.mjs.map +7 -0
- package/dist/lib/browser/chunk-4BZGRIFS.mjs +293 -0
- package/dist/lib/browser/chunk-4BZGRIFS.mjs.map +7 -0
- package/dist/lib/browser/chunk-F7H2Y3Z2.mjs +18 -0
- package/dist/lib/browser/chunk-F7H2Y3Z2.mjs.map +7 -0
- package/dist/lib/browser/chunk-G7C3S2BE.mjs +15 -0
- package/dist/lib/browser/chunk-G7C3S2BE.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +1048 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/client-IX5LMWV4.mjs +86 -0
- package/dist/lib/browser/client-IX5LMWV4.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +73 -83
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/migrations-3EBTAW3N.mjs +24 -0
- package/dist/lib/browser/migrations-3EBTAW3N.mjs.map +7 -0
- package/dist/lib/browser/operation-resolver-2NT3ISVP.mjs +298 -0
- package/dist/lib/browser/operation-resolver-2NT3ISVP.mjs.map +7 -0
- package/dist/lib/browser/react-context-4UABG3GP.mjs +24 -0
- package/dist/lib/browser/react-context-4UABG3GP.mjs.map +7 -0
- package/dist/lib/browser/react-surface-RSQ74XCT.mjs +675 -0
- package/dist/lib/browser/react-surface-RSQ74XCT.mjs.map +7 -0
- package/dist/lib/browser/schema-defs-O7VLP745.mjs +26 -0
- package/dist/lib/browser/schema-defs-O7VLP745.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +9 -4
- package/dist/lib/node-esm/app-graph-builder-2PIYVUNC.mjs +119 -0
- package/dist/lib/node-esm/app-graph-builder-2PIYVUNC.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BCELGXRI.mjs +20 -0
- package/dist/lib/node-esm/chunk-BCELGXRI.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JAF64TFQ.mjs +295 -0
- package/dist/lib/node-esm/chunk-JAF64TFQ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PRAFFO54.mjs +16 -0
- package/dist/lib/node-esm/chunk-PRAFFO54.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +1049 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/client-FFPK5UFP.mjs +87 -0
- package/dist/lib/node-esm/client-FFPK5UFP.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +73 -83
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/migrations-WSZSFGDK.mjs +25 -0
- package/dist/lib/node-esm/migrations-WSZSFGDK.mjs.map +7 -0
- package/dist/lib/node-esm/operation-resolver-VW5R2BE4.mjs +299 -0
- package/dist/lib/node-esm/operation-resolver-VW5R2BE4.mjs.map +7 -0
- package/dist/lib/node-esm/react-context-UVXMGPW4.mjs +25 -0
- package/dist/lib/node-esm/react-context-UVXMGPW4.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-KBHANGGC.mjs +676 -0
- package/dist/lib/node-esm/react-surface-KBHANGGC.mjs.map +7 -0
- package/dist/lib/node-esm/schema-defs-QLRGBIKY.mjs +27 -0
- package/dist/lib/node-esm/schema-defs-QLRGBIKY.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +9 -4
- package/dist/types/src/ClientPlugin.d.ts +2 -1
- package/dist/types/src/ClientPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/client/client.d.ts +8 -0
- package/dist/types/src/capabilities/client/client.d.ts.map +1 -0
- package/dist/types/src/capabilities/client/index.d.ts +17 -0
- package/dist/types/src/capabilities/client/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +7 -19
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/migrations/index.d.ts +3 -0
- package/dist/types/src/capabilities/migrations/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/migrations/migrations.d.ts +5 -0
- package/dist/types/src/capabilities/migrations/migrations.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +5 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +8 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
- package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
- package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +9 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/schema-defs/index.d.ts +3 -0
- package/dist/types/src/capabilities/schema-defs/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts +5 -0
- package/dist/types/src/capabilities/schema-defs/schema-defs.d.ts.map +1 -0
- 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 +9 -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/DevicesContainer.d.ts.map +1 -1
- package/dist/types/src/components/DevicesContainer.stories.d.ts +2 -48
- package/dist/types/src/components/DevicesContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/ProfileContainer.d.ts.map +1 -1
- package/dist/types/src/components/ProfileContainer.stories.d.ts +1 -47
- package/dist/types/src/components/ProfileContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/RecoveryCodeDialog.d.ts +0 -1
- package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
- package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts +1 -47
- package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +1 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts +1 -47
- package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResetDialog.d.ts +5 -3
- package/dist/types/src/components/ResetDialog.d.ts.map +1 -1
- package/dist/types/src/components/ResetDialog.stories.d.ts +3 -49
- package/dist/types/src/components/ResetDialog.stories.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/index.d.ts +1 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- 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 +10 -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 +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +163 -9
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +52 -37
- package/src/ClientPlugin.ts +35 -53
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +95 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/client/client.ts +75 -0
- package/src/capabilities/client/index.ts +7 -0
- package/src/capabilities/index.ts +7 -11
- package/src/capabilities/migrations/index.ts +7 -0
- package/src/capabilities/migrations/migrations.ts +30 -0
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +248 -0
- package/src/capabilities/react-context/index.ts +7 -0
- package/src/capabilities/react-context/react-context.tsx +25 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +74 -0
- package/src/capabilities/schema-defs/index.ts +7 -0
- package/src/capabilities/schema-defs/schema-defs.ts +35 -0
- package/src/cli/commands/config/index.ts +12 -0
- package/src/cli/commands/config/view.ts +26 -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 +29 -0
- package/src/cli/commands/device/info/info.ts +50 -0
- package/src/cli/commands/device/list/index.ts +5 -0
- package/src/cli/commands/device/list/list.test.ts +31 -0
- package/src/cli/commands/device/list/list.ts +30 -0
- package/src/cli/commands/device/update/index.ts +5 -0
- package/src/cli/commands/device/update/update.ts +70 -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 +45 -0
- package/src/cli/commands/halo/create/create.test.ts +52 -0
- package/src/cli/commands/halo/create/create.ts +75 -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 +28 -0
- package/src/cli/commands/halo/credential/list/list.ts +118 -0
- package/src/cli/commands/halo/identity/identity.test.ts +40 -0
- package/src/cli/commands/halo/identity/identity.ts +46 -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 +42 -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 +38 -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 +29 -0
- package/src/cli/commands/halo/update/update.ts +69 -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 +87 -0
- package/src/cli/commands/profile/delete.ts +33 -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 +54 -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 +33 -0
- package/src/cli/testing/test-console.ts +88 -0
- package/src/components/DevicesContainer.stories.tsx +7 -5
- package/src/components/DevicesContainer.tsx +13 -11
- package/src/components/JoinDialog.tsx +13 -15
- package/src/components/ProfileContainer.tsx +48 -34
- package/src/components/RecoveryCodeDialog.tsx +3 -5
- package/src/components/RecoveryCredentialsContainer.stories.tsx +7 -5
- package/src/components/RecoveryCredentialsContainer.tsx +6 -8
- package/src/components/ResetDialog.stories.tsx +17 -9
- package/src/components/ResetDialog.tsx +17 -16
- package/src/constants.ts +9 -0
- package/src/index.ts +1 -2
- package/src/meta.ts +2 -2
- package/src/translations.ts +5 -2
- package/src/types/capabilities.ts +16 -0
- package/src/types/events.ts +15 -0
- package/src/types/index.ts +2 -0
- package/src/types/schema.ts +120 -7
- package/dist/lib/browser/app-graph-builder-KCCH45OW.mjs +0 -124
- package/dist/lib/browser/app-graph-builder-KCCH45OW.mjs.map +0 -7
- package/dist/lib/browser/chunk-4LRO3Y2O.mjs +0 -19
- package/dist/lib/browser/chunk-4LRO3Y2O.mjs.map +0 -7
- package/dist/lib/browser/chunk-N5UR2HOE.mjs +0 -18
- package/dist/lib/browser/chunk-N5UR2HOE.mjs.map +0 -7
- package/dist/lib/browser/chunk-RDIG75CA.mjs +0 -110
- package/dist/lib/browser/chunk-RDIG75CA.mjs.map +0 -7
- package/dist/lib/browser/chunk-SCNW6KMG.mjs +0 -686
- package/dist/lib/browser/chunk-SCNW6KMG.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZRVMXLDR.mjs +0 -15
- package/dist/lib/browser/chunk-ZRVMXLDR.mjs.map +0 -7
- package/dist/lib/browser/client-O7U3MQ6J.mjs +0 -43
- package/dist/lib/browser/client-O7U3MQ6J.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-SPZU2X4O.mjs +0 -305
- package/dist/lib/browser/intent-resolver-SPZU2X4O.mjs.map +0 -7
- package/dist/lib/browser/migrations-FQYDKKYO.mjs +0 -23
- package/dist/lib/browser/migrations-FQYDKKYO.mjs.map +0 -7
- package/dist/lib/browser/react-context-QCKETSRF.mjs +0 -24
- package/dist/lib/browser/react-context-QCKETSRF.mjs.map +0 -7
- package/dist/lib/browser/react-surface-SLGNIGL6.mjs +0 -66
- package/dist/lib/browser/react-surface-SLGNIGL6.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-SPPWTZRH.mjs +0 -25
- package/dist/lib/browser/schema-defs-SPPWTZRH.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-B5IOYV4W.mjs +0 -125
- package/dist/lib/node-esm/app-graph-builder-B5IOYV4W.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6ANOJ7ZM.mjs +0 -19
- package/dist/lib/node-esm/chunk-6ANOJ7ZM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7M7VWQJW.mjs +0 -20
- package/dist/lib/node-esm/chunk-7M7VWQJW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-QT3EQXDU.mjs +0 -17
- package/dist/lib/node-esm/chunk-QT3EQXDU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RHMYXMKB.mjs +0 -687
- package/dist/lib/node-esm/chunk-RHMYXMKB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VENKFPBC.mjs +0 -111
- package/dist/lib/node-esm/chunk-VENKFPBC.mjs.map +0 -7
- package/dist/lib/node-esm/client-6MTNT7M6.mjs +0 -44
- package/dist/lib/node-esm/client-6MTNT7M6.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-4HEQTR5X.mjs +0 -306
- package/dist/lib/node-esm/intent-resolver-4HEQTR5X.mjs.map +0 -7
- package/dist/lib/node-esm/migrations-2D5ENOAB.mjs +0 -24
- package/dist/lib/node-esm/migrations-2D5ENOAB.mjs.map +0 -7
- package/dist/lib/node-esm/react-context-ZVUDFBCH.mjs +0 -25
- package/dist/lib/node-esm/react-context-ZVUDFBCH.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-FFOAE7HL.mjs +0 -67
- package/dist/lib/node-esm/react-surface-FFOAE7HL.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-FIV7SETB.mjs +0 -26
- package/dist/lib/node-esm/schema-defs-FIV7SETB.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -9
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/client.d.ts +0 -9
- package/dist/types/src/capabilities/client.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/capabilities/migrations.d.ts +0 -4
- package/dist/types/src/capabilities/migrations.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-context.d.ts +0 -8
- package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -8
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
- package/dist/types/src/capabilities/schema-defs.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/src/capabilities/app-graph-builder.ts +0 -115
- package/src/capabilities/capabilities.ts +0 -18
- package/src/capabilities/client.ts +0 -43
- package/src/capabilities/intent-resolver.ts +0 -251
- package/src/capabilities/migrations.ts +0 -25
- package/src/capabilities/react-context.tsx +0 -21
- package/src/capabilities/react-surface.tsx +0 -67
- package/src/capabilities/schema-defs.ts +0 -29
- package/src/events.ts +0 -15
|
@@ -15,17 +15,29 @@ import {
|
|
|
15
15
|
ControlPage,
|
|
16
16
|
ControlSection,
|
|
17
17
|
Form,
|
|
18
|
-
type
|
|
18
|
+
type FormFieldMap,
|
|
19
|
+
type FormUpdateMeta,
|
|
19
20
|
} from '@dxos/react-ui-form';
|
|
20
21
|
import { EmojiPickerBlock, HuePicker } from '@dxos/react-ui-pickers';
|
|
21
22
|
import { hexToEmoji, hexToHue } from '@dxos/util';
|
|
22
23
|
|
|
23
24
|
import { meta } from '../meta';
|
|
24
25
|
|
|
26
|
+
// TOOD(burdon): Factor out?
|
|
27
|
+
// TODO(wittjosiah): Integrate annotations with translations.
|
|
28
|
+
const UserProfile = Schema.Struct({
|
|
29
|
+
did: Schema.String.annotations({ title: 'DID' }),
|
|
30
|
+
displayName: Schema.String.annotations({ title: 'Display name' }),
|
|
31
|
+
emoji: Schema.String.annotations({ title: 'Avatar' }),
|
|
32
|
+
hue: Schema.String.annotations({ title: 'Color' }),
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
type UserProfile = Schema.Schema.Type<typeof UserProfile>;
|
|
36
|
+
|
|
25
37
|
// TODO(thure): Factor out?
|
|
26
38
|
const getDefaultHueValue = (identity: Identity | null) => hexToHue(identity?.identityKey.toHex() ?? '0');
|
|
27
|
-
const getDefaultEmojiValue = (identity: Identity | null) => hexToEmoji(identity?.identityKey.toHex() ?? '0');
|
|
28
39
|
const getHueValue = (identity: Identity | null) => identity?.profile?.data?.hue || getDefaultHueValue(identity);
|
|
40
|
+
const getDefaultEmojiValue = (identity: Identity | null) => hexToEmoji(identity?.identityKey.toHex() ?? '0');
|
|
29
41
|
const getEmojiValue = (identity: Identity | null) => identity?.profile?.data?.emoji || getDefaultEmojiValue(identity);
|
|
30
42
|
|
|
31
43
|
export const ProfileContainer = () => {
|
|
@@ -39,7 +51,7 @@ export const ProfileContainer = () => {
|
|
|
39
51
|
const updateProfile = useMemo(
|
|
40
52
|
() =>
|
|
41
53
|
debounce(
|
|
42
|
-
(profile: Partial<
|
|
54
|
+
(profile: Partial<UserProfile>) =>
|
|
43
55
|
client.halo.updateProfile({
|
|
44
56
|
displayName: profile.displayName,
|
|
45
57
|
data: {
|
|
@@ -52,11 +64,26 @@ export const ProfileContainer = () => {
|
|
|
52
64
|
[],
|
|
53
65
|
);
|
|
54
66
|
|
|
55
|
-
const
|
|
56
|
-
(profile:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
67
|
+
const handleChange = useCallback(
|
|
68
|
+
(profile: Partial<UserProfile>, meta: FormUpdateMeta<UserProfile>) => {
|
|
69
|
+
for (const [path, changed] of Object.entries(meta.changed)) {
|
|
70
|
+
if (changed) {
|
|
71
|
+
switch (path) {
|
|
72
|
+
case 'displayName':
|
|
73
|
+
setDisplayNameDirectly(profile.displayName ?? '');
|
|
74
|
+
break;
|
|
75
|
+
case 'emoji':
|
|
76
|
+
setEmojiDirectly(profile.emoji ?? getDefaultEmojiValue(identity));
|
|
77
|
+
break;
|
|
78
|
+
case 'hue':
|
|
79
|
+
setHueDirectly(profile.hue ?? getDefaultHueValue(identity));
|
|
80
|
+
break;
|
|
81
|
+
default:
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
60
87
|
void updateProfile(profile);
|
|
61
88
|
},
|
|
62
89
|
[identity],
|
|
@@ -64,22 +91,23 @@ export const ProfileContainer = () => {
|
|
|
64
91
|
|
|
65
92
|
const values = useMemo(
|
|
66
93
|
() => ({
|
|
94
|
+
did: identity?.did,
|
|
67
95
|
displayName,
|
|
68
96
|
emoji,
|
|
69
97
|
hue,
|
|
70
|
-
did: identity?.did,
|
|
71
98
|
}),
|
|
72
99
|
[identity, displayName, emoji, hue],
|
|
73
100
|
);
|
|
74
101
|
|
|
75
102
|
// TODO(wittjosiah): Integrate descriptions with the form schema.
|
|
76
|
-
const
|
|
103
|
+
const fieldMap = useMemo<FormFieldMap>(
|
|
77
104
|
() => ({
|
|
78
105
|
displayName: ({ type, label, getValue, onValueChange }) => {
|
|
79
106
|
const handleChange = useCallback(
|
|
80
107
|
({ target: { value } }: ChangeEvent<HTMLInputElement>) => onValueChange(type, value),
|
|
81
108
|
[onValueChange, type],
|
|
82
109
|
);
|
|
110
|
+
|
|
83
111
|
return (
|
|
84
112
|
<ControlItemInput title={label} description={t('display name description')}>
|
|
85
113
|
<Input.TextInput
|
|
@@ -97,6 +125,7 @@ export const ProfileContainer = () => {
|
|
|
97
125
|
() => onValueChange(type, getDefaultEmojiValue(identity)),
|
|
98
126
|
[onValueChange, type],
|
|
99
127
|
);
|
|
128
|
+
|
|
100
129
|
return (
|
|
101
130
|
<ControlItem title={label} description={t('icon description')}>
|
|
102
131
|
<EmojiPickerBlock
|
|
@@ -115,14 +144,12 @@ export const ProfileContainer = () => {
|
|
|
115
144
|
() => onValueChange(type, getDefaultHueValue(identity)),
|
|
116
145
|
[onValueChange, type],
|
|
117
146
|
);
|
|
147
|
+
|
|
118
148
|
return (
|
|
119
149
|
<ControlItem title={label} description={t('hue description')}>
|
|
120
|
-
<
|
|
121
|
-
value={getValue()}
|
|
122
|
-
|
|
123
|
-
onReset={handleHueReset}
|
|
124
|
-
classNames='[--hue-preview-size:1.5rem] justify-self-end'
|
|
125
|
-
/>
|
|
150
|
+
<div role='none' className='flex justify-self-end'>
|
|
151
|
+
<HuePicker value={getValue()} onChange={handleChange} onReset={handleHueReset} />
|
|
152
|
+
</div>
|
|
126
153
|
</ControlItem>
|
|
127
154
|
);
|
|
128
155
|
},
|
|
@@ -145,26 +172,13 @@ export const ProfileContainer = () => {
|
|
|
145
172
|
<ControlPage>
|
|
146
173
|
<Clipboard.Provider>
|
|
147
174
|
<ControlSection title={t('profile label')} description={t('profile description')}>
|
|
148
|
-
<Form
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
Custom={customElements}
|
|
154
|
-
classNames='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]'
|
|
155
|
-
outerSpacing={false}
|
|
156
|
-
/>
|
|
175
|
+
<Form.Root schema={UserProfile} values={values} fieldMap={fieldMap} onValuesChanged={handleChange}>
|
|
176
|
+
<Form.Content>
|
|
177
|
+
<Form.FieldSet classNames='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]' />
|
|
178
|
+
</Form.Content>
|
|
179
|
+
</Form.Root>
|
|
157
180
|
</ControlSection>
|
|
158
181
|
</Clipboard.Provider>
|
|
159
182
|
</ControlPage>
|
|
160
183
|
);
|
|
161
184
|
};
|
|
162
|
-
|
|
163
|
-
// TODO(wittjosiah): Integrate annotations with translations.
|
|
164
|
-
const ProfileSchema = Schema.Struct({
|
|
165
|
-
displayName: Schema.String.annotations({ title: 'Display name' }),
|
|
166
|
-
emoji: Schema.String.annotations({ title: 'Avatar' }),
|
|
167
|
-
hue: Schema.String.annotations({ title: 'Color' }),
|
|
168
|
-
did: Schema.String.annotations({ title: 'DID' }),
|
|
169
|
-
});
|
|
170
|
-
type Profile = Schema.Schema.Type<typeof ProfileSchema>;
|
|
@@ -8,8 +8,6 @@ import { AlertDialog, Button, Clipboard, Input, useTranslation } from '@dxos/rea
|
|
|
8
8
|
|
|
9
9
|
import { meta } from '../meta';
|
|
10
10
|
|
|
11
|
-
export const RECOVERY_CODE_DIALOG = `${meta.id}/RecoveryCodeDialog`;
|
|
12
|
-
|
|
13
11
|
export type RecoveryCodeDialogProps = {
|
|
14
12
|
code: string;
|
|
15
13
|
};
|
|
@@ -23,11 +21,11 @@ export const RecoveryCodeDialog = ({ code }: RecoveryCodeDialogProps) => {
|
|
|
23
21
|
return (
|
|
24
22
|
<AlertDialog.Content classNames='bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden'>
|
|
25
23
|
<AlertDialog.Title>{t('recovery code dialog title')}</AlertDialog.Title>
|
|
26
|
-
<p className='
|
|
24
|
+
<p className='plb-4'>{t('recovery code dialog description')}</p>
|
|
27
25
|
<Clipboard.Provider>
|
|
28
26
|
<Code code={code} />
|
|
29
27
|
</Clipboard.Provider>
|
|
30
|
-
<div className='flex flex-col
|
|
28
|
+
<div className='flex flex-col plb-4 gap-2'>
|
|
31
29
|
<p>{t('recovery code dialog warning 1')}</p>
|
|
32
30
|
<p>{t('recovery code dialog warning 2')}</p>
|
|
33
31
|
</div>
|
|
@@ -60,7 +58,7 @@ const Code = ({ code }: { code: string }) => {
|
|
|
60
58
|
<div className='grid grid-cols-4'>
|
|
61
59
|
{words.map((word, i) => (
|
|
62
60
|
<div key={i} className='flex items-center p-2 gap-2'>
|
|
63
|
-
<div className='
|
|
61
|
+
<div className='is-4 text-xs text-center text-subdued'>{i + 1}</div>
|
|
64
62
|
<div className='text-sm'>{word}</div>
|
|
65
63
|
</div>
|
|
66
64
|
))}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
+
import { OperationPlugin } from '@dxos/app-framework';
|
|
8
9
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
9
10
|
import { withTheme } from '@dxos/react-ui/testing';
|
|
10
11
|
|
|
@@ -21,11 +22,12 @@ const meta = {
|
|
|
21
22
|
withPluginManager({
|
|
22
23
|
plugins: [
|
|
23
24
|
ClientPlugin({
|
|
24
|
-
onClientInitialized:
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
onClientInitialized: ({ client }) =>
|
|
26
|
+
Effect.gen(function* () {
|
|
27
|
+
yield* Effect.promise(() => client.halo.createIdentity());
|
|
28
|
+
}),
|
|
27
29
|
}),
|
|
28
|
-
|
|
30
|
+
OperationPlugin(),
|
|
29
31
|
],
|
|
30
32
|
}),
|
|
31
33
|
],
|
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { useOperationInvoker } from '@dxos/app-framework/react';
|
|
8
8
|
import { useCredentials } from '@dxos/react-client/halo';
|
|
9
9
|
import { Icon, IconButton, List, ListItem, Message, useTranslation } from '@dxos/react-ui';
|
|
10
10
|
import { ControlGroup, ControlItem, ControlPage, ControlSection } from '@dxos/react-ui-form';
|
|
11
11
|
|
|
12
12
|
import { meta } from '../meta';
|
|
13
|
-
import {
|
|
13
|
+
import { ClientOperation } from '../types';
|
|
14
14
|
|
|
15
15
|
export const MANAGE_CREDENTIALS_DIALOG = `${meta.id}/ManageCredentialsDialog`;
|
|
16
16
|
|
|
17
17
|
export const RecoveryCredentialsContainer = () => {
|
|
18
18
|
const { t } = useTranslation(meta.id);
|
|
19
|
-
const {
|
|
19
|
+
const { invokePromise } = useOperationInvoker();
|
|
20
20
|
const credentials = useCredentials();
|
|
21
21
|
const recoveryCredentials = credentials.filter(
|
|
22
22
|
(credential) => credential.subject.assertion['@type'] === 'dxos.halo.credentials.IdentityRecovery',
|
|
@@ -31,8 +31,7 @@ export const RecoveryCredentialsContainer = () => {
|
|
|
31
31
|
label={t('create passkey label')}
|
|
32
32
|
icon='ph--key--duotone'
|
|
33
33
|
variant='primary'
|
|
34
|
-
|
|
35
|
-
onClick={() => dispatch(createIntent(ClientAction.CreatePasskey))}
|
|
34
|
+
onClick={() => invokePromise(ClientOperation.CreatePasskey)}
|
|
36
35
|
/>
|
|
37
36
|
</ControlItem>
|
|
38
37
|
<ControlItem title={t('create recovery code label')} description={t('create recovery code description')}>
|
|
@@ -40,8 +39,7 @@ export const RecoveryCredentialsContainer = () => {
|
|
|
40
39
|
label={t('create recovery code label')}
|
|
41
40
|
icon='ph--receipt--duotone'
|
|
42
41
|
variant='default'
|
|
43
|
-
|
|
44
|
-
onClick={() => dispatch(createIntent(ClientAction.CreateRecoveryCode))}
|
|
42
|
+
onClick={() => invokePromise(ClientOperation.CreateRecoveryCode)}
|
|
45
43
|
/>
|
|
46
44
|
</ControlItem>
|
|
47
45
|
</ControlGroup>
|
|
@@ -57,7 +55,7 @@ export const RecoveryCredentialsContainer = () => {
|
|
|
57
55
|
{recoveryCredentials.map((credential) => (
|
|
58
56
|
<ListItem.Root key={credential.id?.toHex()}>
|
|
59
57
|
<ListItem.Endcap>
|
|
60
|
-
<Icon icon='ph--key--regular'
|
|
58
|
+
<Icon icon='ph--key--regular' />
|
|
61
59
|
</ListItem.Endcap>
|
|
62
60
|
<ListItem.Heading>{credential.issuanceDate.toLocaleString()}</ListItem.Heading>
|
|
63
61
|
</ListItem.Root>
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
6
7
|
import React from 'react';
|
|
7
8
|
|
|
8
|
-
import {
|
|
9
|
+
import { OperationPlugin } from '@dxos/app-framework';
|
|
10
|
+
import { usePluginManager } from '@dxos/app-framework/react';
|
|
9
11
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
10
12
|
import { Dialog } from '@dxos/react-ui';
|
|
11
13
|
import { withTheme } from '@dxos/react-ui/testing';
|
|
@@ -15,11 +17,17 @@ import { translations } from '../translations';
|
|
|
15
17
|
|
|
16
18
|
import { ResetDialog, type ResetDialogProps } from './ResetDialog';
|
|
17
19
|
|
|
18
|
-
const Render = (props: ResetDialogProps) => {
|
|
20
|
+
const Render = (props: Omit<ResetDialogProps, 'capabilityManager'>) => {
|
|
21
|
+
const manager = usePluginManager();
|
|
22
|
+
|
|
19
23
|
return (
|
|
20
24
|
<Dialog.Root open>
|
|
21
25
|
<Dialog.Overlay>
|
|
22
|
-
<ResetDialog
|
|
26
|
+
<ResetDialog
|
|
27
|
+
onReset={() => Effect.sync(() => console.log('reset'))}
|
|
28
|
+
capabilityManager={manager.capabilities}
|
|
29
|
+
{...props}
|
|
30
|
+
/>
|
|
23
31
|
</Dialog.Overlay>
|
|
24
32
|
</Dialog.Root>
|
|
25
33
|
);
|
|
@@ -28,11 +36,11 @@ const Render = (props: ResetDialogProps) => {
|
|
|
28
36
|
const meta = {
|
|
29
37
|
title: 'plugins/plugin-client/ResetDialog',
|
|
30
38
|
component: ResetDialog,
|
|
31
|
-
render: Render,
|
|
39
|
+
render: Render as any,
|
|
32
40
|
decorators: [
|
|
33
|
-
withTheme,
|
|
41
|
+
withTheme,
|
|
34
42
|
withPluginManager({
|
|
35
|
-
plugins: [
|
|
43
|
+
plugins: [OperationPlugin(), ClientPlugin({})],
|
|
36
44
|
}),
|
|
37
45
|
],
|
|
38
46
|
parameters: {
|
|
@@ -45,8 +53,8 @@ export default meta;
|
|
|
45
53
|
|
|
46
54
|
type Story = StoryObj<typeof meta>;
|
|
47
55
|
|
|
48
|
-
export const Default: Story = { args: { mode: 'reset storage' } };
|
|
56
|
+
export const Default: Story = { args: { mode: 'reset storage' as const } as any };
|
|
49
57
|
|
|
50
|
-
export const JoinNewIdentity: Story = { args: { mode: 'join new identity' } };
|
|
58
|
+
export const JoinNewIdentity: Story = { args: { mode: 'join new identity' as const } as any };
|
|
51
59
|
|
|
52
|
-
export const Recover: Story = { args: { mode: 'recover' } };
|
|
60
|
+
export const Recover: Story = { args: { mode: 'recover' as const } as any };
|
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
5
6
|
import React, { useCallback } from 'react';
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
+
import { Capability, type CapabilityManager, Common } from '@dxos/app-framework';
|
|
9
|
+
import { useOperationInvoker } from '@dxos/app-framework/react';
|
|
10
|
+
import { runAndForwardErrors } from '@dxos/effect';
|
|
8
11
|
import { useClient } from '@dxos/react-client';
|
|
9
12
|
import { Dialog, useTranslation } from '@dxos/react-ui';
|
|
10
13
|
import { ConfirmReset, type ConfirmResetProps } from '@dxos/shell/react';
|
|
@@ -12,35 +15,33 @@ import { ConfirmReset, type ConfirmResetProps } from '@dxos/shell/react';
|
|
|
12
15
|
import { meta } from '../meta';
|
|
13
16
|
import { type ClientPluginOptions } from '../types';
|
|
14
17
|
|
|
15
|
-
export
|
|
18
|
+
export type ResetDialogProps = Pick<ConfirmResetProps, 'mode'> &
|
|
19
|
+
Pick<ClientPluginOptions, 'onReset'> & {
|
|
20
|
+
capabilityManager: CapabilityManager.CapabilityManager;
|
|
21
|
+
};
|
|
16
22
|
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
export const ResetDialog = ({ mode, onReset }: ResetDialogProps) => {
|
|
23
|
+
export const ResetDialog = ({ mode, onReset, capabilityManager }: ResetDialogProps) => {
|
|
20
24
|
const { t } = useTranslation(meta.id);
|
|
21
|
-
const {
|
|
25
|
+
const { invokePromise } = useOperationInvoker();
|
|
22
26
|
const client = useClient();
|
|
23
27
|
|
|
24
28
|
const handleReset = useCallback(async () => {
|
|
25
29
|
await client.reset();
|
|
26
30
|
const target =
|
|
27
31
|
mode === 'join new identity' ? 'deviceInvitation' : mode === 'recover' ? 'recoverIdentity' : undefined;
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
if (onReset) {
|
|
33
|
+
await runAndForwardErrors(onReset({ target }).pipe(Effect.provideService(Capability.Service, capabilityManager)));
|
|
34
|
+
}
|
|
35
|
+
}, [client, mode, onReset, capabilityManager]);
|
|
30
36
|
|
|
31
37
|
const handleCancel = useCallback(() => {
|
|
32
|
-
void
|
|
33
|
-
|
|
34
|
-
part: 'dialog',
|
|
35
|
-
options: { state: false },
|
|
36
|
-
}),
|
|
37
|
-
);
|
|
38
|
-
}, [dispatch]);
|
|
38
|
+
void invokePromise(Common.LayoutOperation.UpdateDialog, { state: false });
|
|
39
|
+
}, [invokePromise]);
|
|
39
40
|
|
|
40
41
|
// TODO(wittjosiah): Add the sr-only translations.
|
|
41
42
|
// TODO(wittjosiah): Add missing descriptions to other dialogs.
|
|
42
43
|
return (
|
|
43
|
-
<Dialog.Content
|
|
44
|
+
<Dialog.Content>
|
|
44
45
|
<Dialog.Title classNames='sr-only'>{t('reset dialog title')}</Dialog.Title>
|
|
45
46
|
<Dialog.Description classNames='sr-only'>{t('reset dialog description')}</Dialog.Description>
|
|
46
47
|
<ConfirmReset active mode={mode} onConfirm={handleReset} onCancel={handleCancel} />
|
package/src/constants.ts
ADDED
package/src/index.ts
CHANGED
package/src/meta.ts
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type
|
|
5
|
+
import { type Plugin } from '@dxos/app-framework';
|
|
6
6
|
import { trim } from '@dxos/util';
|
|
7
7
|
|
|
8
|
-
export const meta:
|
|
8
|
+
export const meta: Plugin.Meta = {
|
|
9
9
|
id: 'dxos.org/plugin/client',
|
|
10
10
|
name: 'Client',
|
|
11
11
|
description: trim`
|
package/src/translations.ts
CHANGED
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Resource } from '@dxos/react-ui';
|
|
6
|
+
import { translations as shellTranslations } from '@dxos/shell/react';
|
|
6
7
|
|
|
7
8
|
import { meta } from './meta';
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
const pluginTranslations = [
|
|
10
11
|
{
|
|
11
12
|
'en-US': {
|
|
12
13
|
[meta.id]: {
|
|
13
|
-
'account label': 'User
|
|
14
|
+
'account label': 'User profile',
|
|
14
15
|
'profile label': 'Profile',
|
|
15
16
|
'profile description': 'You can adjust how your user settings here.',
|
|
16
17
|
'devices label': 'Devices',
|
|
@@ -68,3 +69,5 @@ export const translations = [
|
|
|
68
69
|
},
|
|
69
70
|
},
|
|
70
71
|
] as const satisfies Resource[];
|
|
72
|
+
|
|
73
|
+
export const translations: Resource[] = [...pluginTranslations, ...shellTranslations];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { Capability } from '@dxos/app-framework';
|
|
6
|
+
import { type Client } from '@dxos/client';
|
|
7
|
+
import { type ObjectMigration } from '@dxos/client/echo';
|
|
8
|
+
import { type Type } from '@dxos/echo';
|
|
9
|
+
|
|
10
|
+
import { meta } from '../meta';
|
|
11
|
+
|
|
12
|
+
export namespace ClientCapabilities {
|
|
13
|
+
export const Client = Capability.make<Client>(`${meta.id}/capability/client`);
|
|
14
|
+
export const Schema = Capability.make<Type.Entity.Any[]>(`${meta.id}/capability/schema`);
|
|
15
|
+
export const Migration = Capability.make<ObjectMigration[]>(`${meta.id}/capability/migration`);
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { ActivationEvent } from '@dxos/app-framework';
|
|
6
|
+
|
|
7
|
+
import { meta } from '../meta';
|
|
8
|
+
|
|
9
|
+
export namespace ClientEvents {
|
|
10
|
+
export const ClientReady = ActivationEvent.make(`${meta.id}/event/client-ready`);
|
|
11
|
+
export const SetupSchema = ActivationEvent.make(`${meta.id}/event/setup-schema`);
|
|
12
|
+
export const SetupMigration = ActivationEvent.make(`${meta.id}/event/setup-migration`);
|
|
13
|
+
export const IdentityCreated = ActivationEvent.make(`${meta.id}/event/identity-created`);
|
|
14
|
+
export const SpacesReady = ActivationEvent.make(`${meta.id}/event/spaces-ready`);
|
|
15
|
+
}
|
package/src/types/index.ts
CHANGED
package/src/types/schema.ts
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import type * as Effect from 'effect/Effect';
|
|
5
6
|
import * as Schema from 'effect/Schema';
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
-
import { type Client, type ClientOptions, PublicKey } from '@dxos/
|
|
9
|
-
import {
|
|
8
|
+
import { Capability } from '@dxos/app-framework';
|
|
9
|
+
import { type Client, type ClientOptions, PublicKey } from '@dxos/client';
|
|
10
|
+
import { Operation } from '@dxos/operation';
|
|
10
11
|
|
|
11
12
|
import { meta } from '../meta';
|
|
12
13
|
|
|
@@ -90,6 +91,115 @@ export namespace ClientAction {
|
|
|
90
91
|
}) {}
|
|
91
92
|
}
|
|
92
93
|
|
|
94
|
+
const CLIENT_OPERATION = `${meta.id}/operation`;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Operations for the Client plugin.
|
|
98
|
+
*/
|
|
99
|
+
export namespace ClientOperation {
|
|
100
|
+
const ProfileSchema = Schema.Struct({
|
|
101
|
+
displayName: Schema.optional(Schema.String),
|
|
102
|
+
avatarCid: Schema.optional(Schema.String),
|
|
103
|
+
data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
export const CreateIdentity = Operation.make({
|
|
107
|
+
meta: { key: `${CLIENT_OPERATION}/create-identity`, name: 'Create Identity' },
|
|
108
|
+
services: [Capability.Service],
|
|
109
|
+
schema: {
|
|
110
|
+
input: ProfileSchema,
|
|
111
|
+
output: IdentitySchema,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
export const JoinIdentity = Operation.make({
|
|
116
|
+
meta: { key: `${CLIENT_OPERATION}/join-identity`, name: 'Join Identity' },
|
|
117
|
+
services: [Capability.Service],
|
|
118
|
+
schema: {
|
|
119
|
+
input: Schema.Struct({
|
|
120
|
+
invitationCode: Schema.optional(Schema.String),
|
|
121
|
+
}),
|
|
122
|
+
output: Schema.Void,
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
export const ShareIdentity = Operation.make({
|
|
127
|
+
meta: { key: `${CLIENT_OPERATION}/share-identity`, name: 'Share Identity' },
|
|
128
|
+
services: [Capability.Service],
|
|
129
|
+
schema: {
|
|
130
|
+
input: Schema.Void,
|
|
131
|
+
output: Schema.Void,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
export const RecoverIdentity = Operation.make({
|
|
136
|
+
meta: { key: `${CLIENT_OPERATION}/recover-identity`, name: 'Recover Identity' },
|
|
137
|
+
services: [Capability.Service],
|
|
138
|
+
schema: {
|
|
139
|
+
input: Schema.Void,
|
|
140
|
+
output: Schema.Void,
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
export const ResetStorage = Operation.make({
|
|
145
|
+
meta: { key: `${CLIENT_OPERATION}/reset-storage`, name: 'Reset Storage' },
|
|
146
|
+
services: [Capability.Service],
|
|
147
|
+
schema: {
|
|
148
|
+
input: Schema.Struct({
|
|
149
|
+
mode: Schema.optional(Schema.String),
|
|
150
|
+
}),
|
|
151
|
+
output: Schema.Void,
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
export const CreateAgent = Operation.make({
|
|
156
|
+
meta: { key: `${CLIENT_OPERATION}/create-agent`, name: 'Create Agent' },
|
|
157
|
+
services: [Capability.Service],
|
|
158
|
+
schema: {
|
|
159
|
+
input: Schema.Void,
|
|
160
|
+
output: Schema.Void,
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
export const CreateRecoveryCode = Operation.make({
|
|
165
|
+
meta: { key: `${CLIENT_OPERATION}/create-recovery-code`, name: 'Create Recovery Code' },
|
|
166
|
+
services: [Capability.Service],
|
|
167
|
+
schema: {
|
|
168
|
+
input: Schema.Void,
|
|
169
|
+
output: Schema.Void,
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
export const CreatePasskey = Operation.make({
|
|
174
|
+
meta: { key: `${CLIENT_OPERATION}/create-passkey`, name: 'Create Passkey' },
|
|
175
|
+
services: [Capability.Service],
|
|
176
|
+
schema: {
|
|
177
|
+
input: Schema.Void,
|
|
178
|
+
output: Schema.Void,
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
export const RedeemPasskey = Operation.make({
|
|
183
|
+
meta: { key: `${CLIENT_OPERATION}/redeem-passkey`, name: 'Redeem Passkey' },
|
|
184
|
+
services: [Capability.Service],
|
|
185
|
+
schema: {
|
|
186
|
+
input: Schema.Void,
|
|
187
|
+
output: Schema.Void,
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
export const RedeemToken = Operation.make({
|
|
192
|
+
meta: { key: `${CLIENT_OPERATION}/redeem-token`, name: 'Redeem Token' },
|
|
193
|
+
services: [Capability.Service],
|
|
194
|
+
schema: {
|
|
195
|
+
input: Schema.Struct({
|
|
196
|
+
token: Schema.String,
|
|
197
|
+
}),
|
|
198
|
+
output: Schema.Void,
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
|
|
93
203
|
export type ClientPluginOptions = ClientOptions & {
|
|
94
204
|
/**
|
|
95
205
|
* Base URL for the invitation link.
|
|
@@ -99,22 +209,25 @@ export type ClientPluginOptions = ClientOptions & {
|
|
|
99
209
|
/**
|
|
100
210
|
* Query parameter for the invitation code.
|
|
101
211
|
*/
|
|
102
|
-
|
|
212
|
+
invitationProp?: string;
|
|
103
213
|
|
|
104
214
|
/**
|
|
105
215
|
* Run after the client has been initialized.
|
|
216
|
+
* Plugin context is provided so capabilities are accessible.
|
|
106
217
|
*/
|
|
107
|
-
onClientInitialized?: (params: {
|
|
218
|
+
onClientInitialized?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;
|
|
108
219
|
|
|
109
220
|
/**
|
|
110
221
|
* Called when spaces are ready.
|
|
222
|
+
* Plugin context is provided so capabilities are accessible.
|
|
111
223
|
*/
|
|
112
|
-
onSpacesReady?: (params: {
|
|
224
|
+
onSpacesReady?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;
|
|
113
225
|
|
|
114
226
|
/**
|
|
115
227
|
* Called when the client is reset.
|
|
228
|
+
* Plugin context is provided so capabilities are accessible.
|
|
116
229
|
*/
|
|
117
|
-
onReset?: (params: { target?: string }) =>
|
|
230
|
+
onReset?: (params: { target?: string }) => Effect.Effect<void, Error | never, Capability.Service | never>;
|
|
118
231
|
};
|
|
119
232
|
|
|
120
233
|
export namespace Account {
|