@dxos/plugin-client 0.9.0 → 0.9.1-staging.ee54ba693a
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/neutral/{AccountContainer-FZ3IC6H4.mjs → AccountContainer-7SF53UON.mjs} +17 -13
- package/dist/lib/neutral/AccountContainer-7SF53UON.mjs.map +7 -0
- package/dist/lib/neutral/ClientPlugin.node.mjs +477 -370
- package/dist/lib/neutral/ClientPlugin.node.mjs.map +4 -4
- package/dist/lib/neutral/{DevicesContainer-6MWNUC3I.mjs → DevicesContainer-PRWIN36N.mjs} +36 -27
- package/dist/lib/neutral/DevicesContainer-PRWIN36N.mjs.map +7 -0
- package/dist/lib/neutral/{InvitationsContainer-ME722VKS.mjs → InvitationsContainer-BI5RAWET.mjs} +43 -32
- package/dist/lib/neutral/InvitationsContainer-BI5RAWET.mjs.map +7 -0
- package/dist/lib/neutral/{JoinDialog-2NXAKPLP.mjs → JoinDialog-4BWV4CYB.mjs} +2 -2
- package/dist/lib/neutral/JoinDialog-4BWV4CYB.mjs.map +7 -0
- package/dist/lib/neutral/{ProfileContainer-VPX3FPWG.mjs → ProfileContainer-YEAYOTX5.mjs} +22 -21
- package/dist/lib/neutral/ProfileContainer-YEAYOTX5.mjs.map +7 -0
- package/dist/lib/neutral/{RecoveryCodeDialog-EWHB6U5T.mjs → RecoveryCodeDialog-7EPNKCLB.mjs} +2 -2
- package/dist/lib/neutral/RecoveryCodeDialog-7EPNKCLB.mjs.map +7 -0
- package/dist/lib/neutral/{RecoveryCredentialsContainer-IPBGDMIA.mjs → RecoveryCredentialsContainer-6BZ2IWX7.mjs} +24 -15
- package/dist/lib/neutral/RecoveryCredentialsContainer-6BZ2IWX7.mjs.map +7 -0
- package/dist/lib/neutral/UsageContainer-2DWCVVE4.mjs +241 -0
- package/dist/lib/neutral/UsageContainer-2DWCVVE4.mjs.map +7 -0
- package/dist/lib/neutral/account-cache-YVQKLNV2.mjs +16 -0
- package/dist/lib/neutral/account-cache-YVQKLNV2.mjs.map +7 -0
- package/dist/lib/neutral/{app-graph-builder-A74W7C36.mjs → app-graph-builder-RVXTD6OE.mjs} +30 -16
- package/dist/lib/neutral/app-graph-builder-RVXTD6OE.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +6 -6
- package/dist/lib/neutral/capabilities/node.mjs +3 -3
- package/dist/lib/neutral/chunk-6G4KZLBG.mjs +28 -0
- package/dist/lib/neutral/chunk-6G4KZLBG.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-D6HPCLTS.mjs → chunk-7DEIKHB7.mjs} +16 -2
- package/dist/lib/neutral/chunk-7DEIKHB7.mjs.map +7 -0
- package/dist/lib/neutral/chunk-A7WDDIWY.mjs +162 -0
- package/dist/lib/neutral/chunk-A7WDDIWY.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GSKMAS3S.mjs +13 -0
- package/dist/lib/neutral/chunk-GSKMAS3S.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-JEF2FQGB.mjs → chunk-JY35S2CN.mjs} +2 -2
- package/dist/lib/neutral/{chunk-JEF2FQGB.mjs.map → chunk-JY35S2CN.mjs.map} +1 -1
- package/dist/lib/neutral/chunk-ZFABGG2E.mjs +8 -0
- package/dist/lib/neutral/{chunk-NTVDGDQ3.mjs.map → chunk-ZFABGG2E.mjs.map} +2 -2
- package/dist/lib/neutral/containers/index.mjs +10 -8
- package/dist/lib/neutral/containers/index.mjs.map +3 -3
- package/dist/lib/neutral/{create-agent-6HLW4D3A.mjs → create-agent-6UKJMZS5.mjs} +3 -3
- package/dist/lib/neutral/{create-identity-JIWAR5GW.mjs → create-identity-ULCRB3YH.mjs} +3 -3
- package/dist/lib/neutral/{create-passkey-FOXEMXGF.mjs → create-passkey-I7VDS3AC.mjs} +7 -7
- package/dist/lib/neutral/create-passkey-I7VDS3AC.mjs.map +7 -0
- package/dist/lib/neutral/{create-recovery-code-ZWDKLPH4.mjs → create-recovery-code-DH2B6EGP.mjs} +4 -4
- package/dist/lib/neutral/index.mjs +6 -4
- package/dist/lib/neutral/{join-identity-QEQFAE2S.mjs → join-identity-PJCHDNLH.mjs} +3 -3
- package/dist/lib/neutral/{layer-specs-CQLXQBQJ.mjs → layer-specs-YI7BVWKZ.mjs} +6 -8
- package/dist/lib/neutral/layer-specs-YI7BVWKZ.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/{navigation-handler-LU26CDFR.mjs → navigation-handler-MQ6MZXLX.mjs} +3 -3
- package/dist/lib/neutral/open-usage-OJVTPGOY.mjs +27 -0
- package/dist/lib/neutral/open-usage-OJVTPGOY.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +2 -2
- package/dist/lib/neutral/plugin.mjs +3 -3
- package/dist/lib/neutral/{react-context-B5LXMHVM.mjs → react-context-V74T6JOJ.mjs} +2 -2
- package/dist/lib/neutral/{react-context-B5LXMHVM.mjs.map → react-context-V74T6JOJ.mjs.map} +3 -3
- package/dist/lib/neutral/{react-surface-DEKGWTCD.mjs → react-surface-HPXRA65U.mjs} +8 -3
- package/dist/lib/neutral/react-surface-HPXRA65U.mjs.map +7 -0
- package/dist/lib/neutral/{recover-identity-JNFKLCUD.mjs → recover-identity-B7YM2BR4.mjs} +3 -3
- package/dist/lib/neutral/{redeem-passkey-4SBAI4AG.mjs → redeem-passkey-TYP4XLHO.mjs} +10 -10
- package/dist/lib/neutral/redeem-passkey-TYP4XLHO.mjs.map +7 -0
- package/dist/lib/neutral/{redeem-token-POBD6TMN.mjs → redeem-token-2J33R3PV.mjs} +3 -3
- package/dist/lib/neutral/{reset-storage-LQKUV5RA.mjs → reset-storage-K47HZTGP.mjs} +3 -3
- package/dist/lib/neutral/{share-identity-KNQ2XNXV.mjs → share-identity-TOROBLWL.mjs} +6 -6
- package/dist/lib/neutral/share-identity-TOROBLWL.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +2 -2
- package/dist/lib/neutral/testing/index.mjs.map +3 -3
- package/dist/lib/neutral/translations.mjs +24 -1
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +3 -1
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/capabilities/account-cache.d.ts +1 -31
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/client.d.ts +1 -2
- package/dist/types/src/capabilities/client.d.ts.map +1 -1
- package/dist/types/src/capabilities/hub-http-client.d.ts +1 -2
- package/dist/types/src/capabilities/hub-http-client.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +9 -43
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/layer-specs.d.ts +1 -2
- package/dist/types/src/capabilities/layer-specs.d.ts.map +1 -1
- package/dist/types/src/capabilities/migrations.d.ts +1 -1
- package/dist/types/src/capabilities/navigation-handler/index.d.ts +1 -1
- package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +1 -2
- package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +6 -6
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context.d.ts +1 -6
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
- package/dist/types/src/commands/account/index.d.ts +3 -0
- package/dist/types/src/commands/account/index.d.ts.map +1 -0
- package/dist/types/src/commands/account/login/index.d.ts +2 -0
- package/dist/types/src/commands/account/login/index.d.ts.map +1 -0
- package/dist/types/src/commands/account/login/login.d.ts +12 -0
- package/dist/types/src/commands/account/login/login.d.ts.map +1 -0
- package/dist/types/src/commands/account/logout/index.d.ts +2 -0
- package/dist/types/src/commands/account/logout/index.d.ts.map +1 -0
- package/dist/types/src/commands/account/logout/logout.d.ts +9 -0
- package/dist/types/src/commands/account/logout/logout.d.ts.map +1 -0
- package/dist/types/src/commands/halo/join/join.d.ts +1 -1
- package/dist/types/src/commands/halo/join/join.d.ts.map +1 -1
- package/dist/types/src/commands/halo/util.d.ts +4 -0
- package/dist/types/src/commands/halo/util.d.ts.map +1 -1
- package/dist/types/src/commands/index.d.ts +1 -0
- package/dist/types/src/commands/index.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts.map +1 -1
- package/dist/types/src/containers/AccountContainer/AccountContainer.d.ts.map +1 -1
- package/dist/types/src/containers/AccountContainer/AccountContainer.stories.d.ts +14 -0
- package/dist/types/src/containers/AccountContainer/AccountContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/DevicesContainer/DevicesContainer.d.ts.map +1 -1
- package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.d.ts.map +1 -1
- package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.stories.d.ts +14 -0
- package/dist/types/src/containers/InvitationsContainer/InvitationsContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ProfileContainer/ProfileContainer.d.ts.map +1 -1
- package/dist/types/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.d.ts.map +1 -1
- package/dist/types/src/containers/UsageContainer/UsageContainer.d.ts +7 -0
- package/dist/types/src/containers/UsageContainer/UsageContainer.d.ts.map +1 -0
- package/dist/types/src/containers/UsageContainer/UsageView.d.ts +28 -0
- package/dist/types/src/containers/UsageContainer/UsageView.d.ts.map +1 -0
- package/dist/types/src/containers/UsageContainer/UsageView.stories.d.ts +21 -0
- package/dist/types/src/containers/UsageContainer/UsageView.stories.d.ts.map +1 -0
- package/dist/types/src/containers/UsageContainer/index.d.ts +2 -0
- package/dist/types/src/containers/UsageContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +1 -0
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -0
- package/dist/types/src/{state/use-hub-http.d.ts → hooks/useHubClient.d.ts} +1 -1
- package/dist/types/src/hooks/useHubClient.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +32 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/create-passkey.d.ts.map +1 -1
- package/dist/types/src/operations/definitions.d.ts +1 -0
- package/dist/types/src/operations/definitions.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/open-usage.d.ts +5 -0
- package/dist/types/src/operations/open-usage.d.ts.map +1 -0
- package/dist/types/src/testing/initializeIdentity.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/{state → types}/account-cache.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/events.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +1 -0
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +19 -0
- package/package.json +47 -44
- package/src/ClientPlugin.node.ts +2 -2
- package/src/ClientPlugin.test.ts +1 -1
- package/src/capabilities/account-cache.ts +1 -3
- package/src/capabilities/app-graph-builder.ts +81 -71
- package/src/capabilities/layer-specs.ts +4 -6
- package/src/capabilities/react-context.tsx +1 -1
- package/src/capabilities/react-surface.tsx +6 -0
- package/src/commands/account/index.ts +13 -0
- package/src/commands/account/login/index.ts +5 -0
- package/src/commands/account/login/login.ts +147 -0
- package/src/commands/account/logout/index.ts +5 -0
- package/src/commands/account/logout/logout.ts +49 -0
- package/src/commands/halo/create/create.ts +2 -2
- package/src/commands/halo/index.ts +6 -6
- package/src/commands/halo/join/join.ts +2 -13
- package/src/commands/halo/util.ts +24 -0
- package/src/commands/index.ts +1 -0
- package/src/constants.ts +3 -3
- package/src/containers/AccountContainer/AccountContainer.stories.tsx +46 -0
- package/src/containers/AccountContainer/AccountContainer.tsx +67 -63
- package/src/containers/DevicesContainer/DevicesContainer.tsx +72 -54
- package/src/containers/InvitationsContainer/InvitationsContainer.stories.tsx +46 -0
- package/src/containers/InvitationsContainer/InvitationsContainer.tsx +65 -62
- package/src/containers/JoinDialog/JoinDialog.tsx +1 -1
- package/src/containers/ProfileContainer/ProfileContainer.tsx +38 -28
- package/src/containers/RecoveryCodeDialog/RecoveryCodeDialog.tsx +1 -1
- package/src/containers/RecoveryCredentialsContainer/RecoveryCredentialsContainer.tsx +52 -43
- package/src/containers/UsageContainer/UsageContainer.tsx +48 -0
- package/src/containers/UsageContainer/UsageView.stories.tsx +127 -0
- package/src/containers/UsageContainer/UsageView.tsx +270 -0
- package/src/containers/UsageContainer/index.ts +5 -0
- package/src/containers/index.ts +1 -0
- package/src/hooks/index.ts +5 -0
- package/src/meta.ts +3 -12
- package/src/operations/create-passkey.ts +6 -4
- package/src/operations/definitions.ts +12 -1
- package/src/operations/index.ts +1 -0
- package/src/operations/open-usage.ts +24 -0
- package/src/operations/redeem-passkey.ts +7 -7
- package/src/operations/share-identity.ts +3 -3
- package/src/testing/initializeIdentity.ts +5 -2
- package/src/translations.ts +25 -1
- package/src/types/capabilities.ts +8 -6
- package/src/types/events.ts +5 -5
- package/src/types/index.ts +1 -0
- package/src/types/schema.ts +23 -16
- package/dist/lib/neutral/AccountContainer-FZ3IC6H4.mjs.map +0 -7
- package/dist/lib/neutral/DevicesContainer-6MWNUC3I.mjs.map +0 -7
- package/dist/lib/neutral/InvitationsContainer-ME722VKS.mjs.map +0 -7
- package/dist/lib/neutral/JoinDialog-2NXAKPLP.mjs.map +0 -7
- package/dist/lib/neutral/ProfileContainer-VPX3FPWG.mjs.map +0 -7
- package/dist/lib/neutral/RecoveryCodeDialog-EWHB6U5T.mjs.map +0 -7
- package/dist/lib/neutral/RecoveryCredentialsContainer-IPBGDMIA.mjs.map +0 -7
- package/dist/lib/neutral/account-cache-4EKGEUJI.mjs +0 -43
- package/dist/lib/neutral/account-cache-4EKGEUJI.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-A74W7C36.mjs.map +0 -7
- package/dist/lib/neutral/chunk-D6HPCLTS.mjs.map +0 -7
- package/dist/lib/neutral/chunk-JOCCVODY.mjs +0 -21
- package/dist/lib/neutral/chunk-JOCCVODY.mjs.map +0 -7
- package/dist/lib/neutral/chunk-NTVDGDQ3.mjs +0 -8
- package/dist/lib/neutral/chunk-TUK3ELUU.mjs +0 -135
- package/dist/lib/neutral/chunk-TUK3ELUU.mjs.map +0 -7
- package/dist/lib/neutral/chunk-WWCVZG3K.mjs +0 -13
- package/dist/lib/neutral/chunk-WWCVZG3K.mjs.map +0 -7
- package/dist/lib/neutral/create-passkey-FOXEMXGF.mjs.map +0 -7
- package/dist/lib/neutral/layer-specs-CQLXQBQJ.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-DEKGWTCD.mjs.map +0 -7
- package/dist/lib/neutral/redeem-passkey-4SBAI4AG.mjs.map +0 -7
- package/dist/lib/neutral/share-identity-KNQ2XNXV.mjs.map +0 -7
- package/dist/types/src/state/use-hub-http.d.ts.map +0 -1
- /package/dist/lib/neutral/{create-agent-6HLW4D3A.mjs.map → create-agent-6UKJMZS5.mjs.map} +0 -0
- /package/dist/lib/neutral/{create-identity-JIWAR5GW.mjs.map → create-identity-ULCRB3YH.mjs.map} +0 -0
- /package/dist/lib/neutral/{create-recovery-code-ZWDKLPH4.mjs.map → create-recovery-code-DH2B6EGP.mjs.map} +0 -0
- /package/dist/lib/neutral/{join-identity-QEQFAE2S.mjs.map → join-identity-PJCHDNLH.mjs.map} +0 -0
- /package/dist/lib/neutral/{navigation-handler-LU26CDFR.mjs.map → navigation-handler-MQ6MZXLX.mjs.map} +0 -0
- /package/dist/lib/neutral/{recover-identity-JNFKLCUD.mjs.map → recover-identity-B7YM2BR4.mjs.map} +0 -0
- /package/dist/lib/neutral/{redeem-token-POBD6TMN.mjs.map → redeem-token-2J33R3PV.mjs.map} +0 -0
- /package/dist/lib/neutral/{reset-storage-LQKUV5RA.mjs.map → reset-storage-K47HZTGP.mjs.map} +0 -0
- /package/dist/types/src/{state → types}/account-cache.d.ts +0 -0
- /package/src/{state/use-hub-http.ts → hooks/useHubClient.ts} +0 -0
- /package/src/{state → types}/account-cache.ts +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/types/capabilities.ts", "../../../src/types/events.ts", "../../../src/types/schema.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Client } from '@dxos/client';\nimport { type ObjectMigration } from '@dxos/client/echo';\nimport { type Type } from '@dxos/echo';\nimport { type HubHttpClient } from '@dxos/edge-client';\n\nimport { meta } from '#meta';\n\nimport { type AccountCache as AccountCacheType } from '../state/account-cache';\n\nexport namespace ClientCapabilities {\n export const Client = Capability.make<Client>(`${meta.id}.capability.client`);\n export const Schema = Capability.make<Type.AnyEntity[]>(`${meta.id}.capability.schema`);\n export const Migration = Capability.make<ObjectMigration[]>(`${meta.id}.capability.migration`);\n export const AccountCache = Capability.make<Atom.Writable<AccountCacheType>>(`${meta.id}.capability.accountCache`);\n export const HubHttpClient = Capability.make<HubHttpClient>(`${meta.id}.capability.hubHttpClient`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\n\nexport namespace ClientEvents {\n export const ClientReady = ActivationEvent.make(`${meta.id}.event.client-ready`);\n export const SetupSchema = ActivationEvent.make(`${meta.id}.event.setup-schema`);\n export const SetupMigration = ActivationEvent.make(`${meta.id}.event.setup-migration`);\n export const IdentityCreated = ActivationEvent.make(`${meta.id}.event.identity-created`);\n export const SpacesReady = ActivationEvent.make(`${meta.id}.event.spaces-ready`);\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Client, type ClientOptions } from '@dxos/client';\nimport { IdentityDid, SpaceId } from '@dxos/keys';\n\nimport { meta } from '#meta';\n\n// TODO(wittjosiah): Factor out. Generate?\nconst IdentitySchema = Schema.Struct({\n identityDid: IdentityDid,\n spaceId: Schema.optional(SpaceId),\n profile: Schema.optional(\n Schema.Struct({\n displayName: Schema.optional(Schema.String),\n avatarCid: Schema.optional(Schema.String),\n data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n ),\n});\n\nexport namespace ClientAction {\n const ProfileSchema = Schema.Struct({\n displayName: Schema.optional(Schema.String),\n avatarCid: Schema.optional(Schema.String),\n data: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n });\n\n export class CreateIdentity extends Schema.TaggedClass<CreateIdentity>()(`${meta.id}.action.create-identity`, {\n input: ProfileSchema,\n output: IdentitySchema,\n }) {}\n\n export class JoinIdentity extends Schema.TaggedClass<JoinIdentity>()(`${meta.id}.action.join-identity`, {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class ShareIdentity extends Schema.TaggedClass<ShareIdentity>()(`${meta.id}.action.share-identity`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RecoverIdentity extends Schema.TaggedClass<RecoverIdentity>()(`${meta.id}.action.recover-identity`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class ResetStorage extends Schema.TaggedClass<ResetStorage>()(`${meta.id}.action.reset-storage`, {\n input: Schema.Struct({\n mode: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class CreateAgent extends Schema.TaggedClass<CreateAgent>()(`${meta.id}.action.create-agent`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class CreateRecoveryCode extends Schema.TaggedClass<CreateRecoveryCode>()(\n `${meta.id}.action.create-recovery-code`,\n {\n input: Schema.Void,\n output: Schema.Void,\n },\n ) {}\n\n export class CreatePasskey extends Schema.TaggedClass<CreatePasskey>()(`${meta.id}.action.create-passkey`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RedeemPasskey extends Schema.TaggedClass<RedeemPasskey>()(`${meta.id}.action.redeem-passkey`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class RedeemToken extends Schema.TaggedClass<RedeemToken>()(`${meta.id}.action.redeem-token`, {\n input: Schema.Struct({\n token: Schema.String,\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport type ClientPluginOptions = ClientOptions & {\n /**\n * Base origin for the invitation link.\n */\n shareableLinkOrigin?: string;\n\n /**\n * Path for the invitation link.\n */\n invitationPath?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationProp?: string;\n\n /**\n * Run after the client has been initialized.\n * Plugin context is provided so capabilities are accessible.\n */\n onClientInitialized?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n\n /**\n * Called when spaces are ready.\n * Plugin context is provided so capabilities are accessible.\n */\n onSpacesReady?: (params: { client: Client }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n\n /**\n * Called when the client is reset.\n * Plugin context is provided so capabilities are accessible.\n */\n onReset?: (params: { target?: string }) => Effect.Effect<void, Error | never, Capability.Service | never>;\n};\n\nexport namespace Account {\n // TODO(wittjosiah): Cannot use slashes in ids until we have a router which decouples ids from url paths.\n const _id = 'dxos.org.plugin.client.account';\n // TODO(wittjosiah): This is a hack to prevent the previous deck from being set for pinned items.\n // Ideally this should be worked into the data model in a generic way.\n export const id = `!${_id}`;\n\n export const Profile = `${_id}.profile`;\n export const Devices = `${_id}.devices`;\n export const Security = `${_id}.security`;\n export const Account = `${_id}.account`;\n export const Invitations = `${_id}.invitations`;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Capability", "meta", "ClientCapabilities", "Client", "make", "id", "Schema", "Migration", "AccountCache", "HubHttpClient", "ActivationEvent", "meta", "ClientEvents", "ClientReady", "make", "id", "SetupSchema", "SetupMigration", "IdentityCreated", "SpacesReady", "Schema", "IdentityDid", "SpaceId", "meta", "IdentitySchema", "Struct", "identityDid", "spaceId", "optional", "profile", "displayName", "String", "avatarCid", "data", "Record", "key", "value", "Any", "ClientAction", "ProfileSchema", "CreateIdentity", "TaggedClass", "id", "input", "output", "JoinIdentity", "invitationCode", "Void", "ShareIdentity", "RecoverIdentity", "ResetStorage", "mode", "CreateAgent", "CreateRecoveryCode", "CreatePasskey", "RedeemPasskey", "RedeemToken", "token", "Account", "_id", "Profile", "Devices", "Security", "Invitations"]
|
|
7
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// src/constants.ts
|
|
2
|
-
import { DXN } from "@dxos/keys";
|
|
3
|
-
import { meta } from "#meta";
|
|
4
|
-
var JOIN_DIALOG = DXN.make(`${meta.id}.joinDialog`);
|
|
5
|
-
var RECOVERY_CODE_DIALOG = DXN.make(`${meta.id}.recoveryCodeDialog`);
|
|
6
|
-
var RESET_DIALOG = DXN.make(`${meta.id}.resetDialog`);
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
JOIN_DIALOG,
|
|
10
|
-
RECOVERY_CODE_DIALOG,
|
|
11
|
-
RESET_DIALOG
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=chunk-WWCVZG3K.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/constants.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DXN } from '@dxos/keys';\n\nimport { meta } from '#meta';\n\nexport const JOIN_DIALOG = DXN.make(`${meta.id}.joinDialog`);\nexport const RECOVERY_CODE_DIALOG = DXN.make(`${meta.id}.recoveryCodeDialog`);\nexport const RESET_DIALOG = DXN.make(`${meta.id}.resetDialog`);\n"],
|
|
5
|
-
"mappings": ";AAIA,SAASA,WAAW;AAEpB,SAASC,YAAY;AAEd,IAAMC,cAAcF,IAAIG,KAAK,GAAGF,KAAKG,EAAE,aAAa;AACpD,IAAMC,uBAAuBL,IAAIG,KAAK,GAAGF,KAAKG,EAAE,qBAAqB;AACrE,IAAME,eAAeN,IAAIG,KAAK,GAAGF,KAAKG,EAAE,cAAc;",
|
|
6
|
-
"names": ["DXN", "meta", "JOIN_DIALOG", "make", "id", "RECOVERY_CODE_DIALOG", "RESET_DIALOG"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
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 { Operation } from '@dxos/compute';\nimport { invariant } from '@dxos/invariant';\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,IAAA,eAA6DC;IAIvD,UAAMC,cAAkBC,KAAKD,UAAY,YAAA,kBAAA,aAAA;AACzCE,QAAAA,SAAUF,OAAU,WAAA,IAAA,mBAAA,MAAA;AAEpB,QAAMG,WAAAA,OAAYC,KAAUC,SAAM,IAAA;AAElC,YAAQC,UAAW,0BAAuBC,EAAAA,YAAYC,YAAAA,GAAAA,cAA0BC,GAC9EF,IAAAA,GAAAA,MAAU,GAAC,CAAA,YACTG,0BAAW,EAAA,CAAA;oBACHC,UAAS,OAAOD;uBAElBE,UAAUZ,IAASa,OAAG,YAAA,uBAAA,CAAA,EAAA,KAAA,WAAA,MAAA,MAAA,WAAA,aAAA;mBACtBC,OAAkBC,eAAAA,MAAY,oBAAA;MAChC,UAAA,SAAA;MAEMC,QAAAA,UAAWC,aAAmBC;IACtC,CAAA,CAAA;UACEZ,EAAAA,WAAaF,WAAUe,IAAKH,IAAAA,gCAAAA,OAAAA,kBAAAA;WAC5BC;MACF,aAAA,UAAA,KAAA,SAAA;MAGJV,WAAa,QACXG,KAAU,UAAC;IACT;oBAEIM,MAAW,WAAA,aAAA;uBACTI,OAAeC,eAAAA,MAAAA,UAAAA,YAAAA,OAAAA;iBACX;mBAAMC,IAAAA,WAAiB;YAAEC;UAAiB,IAAA,SAAA;UAC9CC,MAAM;;cAEJD;UACAE,IAAAA,UAAazB,aAAS0B;UACxB,MAAA,SAAA;UACAC,aAAAA,SAAkB,SAAA,eAAA;;0BACR;;YAAsB,MAAA;YAC9B,KAAA;;;YAA8B,MAAA;YAC/B,KAAA;UACDC;;gCAEsB;UACtB,aAAA;UACF,oBAAA;QACF;MAEF1B;IACA,CAAA,CAAA;cACEI,YAAaF,4BAA+ByB,EAAAA,YAAmBC,YAASC,GAAAA,cAAY,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,cAAA,4BAAA,EAAA,CAAA;WACpFd;MACF,aAAA,UAAA,KAAA,IAAA,WAAA,WAAA,SAAA,aAAA,CAAA,CAAA;MACF,WAAA,WAAA,SAAA,sBAAA,MAAA,KAAA,UAAA;IAIJf;EACA,CAAA,CAAA,CAAOQ;YAEHsB,OAAM,SAAA,SAAA,iBAAA,iCAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,4CAAA,iCAAA,EAAA,CAAA;SACJ1B,eAAAA,MAAAA,OAAAA,SAAAA,SAAAA,gBAAAA,yBAAAA;UACAW;MACAd;MACF;MACF;IAEJ;EAIJ,CAAA,CAAA;;;",
|
|
6
|
-
"names": ["Effect", "Match", "Capability", "supportsNativePasskeys", "createNativePasskey", "extractPublicKeyFromAttestation", "PublicKey", "Operation", "invariant", "CreatePasskey", "identity", "halo", "invariant", "lookupKey", "PublicKey", "random", "recoveryKey", "Match", "supportsNativePasskeys", "pipe", "Effect", "result", "username", "did", "userId", "asUint8Array", "publicKey", "algorithm", "extractPublicKeyFromAttestation", "from", "challenge", "Uint8Array", "location", "name", "user", "displayName", "profile", "pubKeyCredParams", "authenticatorSelection", "credential", "response", "getPublicKey", "data"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/layer-specs.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { ClientService } from '@dxos/client';\nimport { Credential, LayerSpec } from '@dxos/compute';\nimport { Database, Feed } from '@dxos/echo';\nimport { createFeedServiceLayer } from '@dxos/echo-client';\nimport { credentialsLayerFromDatabase } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\n\nimport { ClientCapabilities } from '#types';\n\n//\n// Capability Module\n//\n// Contributes the core client/space service layer specs:\n// - {@link ClientService} (application affinity).\n// - {@link Database.Service}, {@link Feed.FeedService},\n// {@link Credential.CredentialsService} (space affinity).\n//\n// Specs are declared at module level and resolve the underlying\n// {@link ClientCapabilities.Client} through the Effect layer graph (via\n// {@link Capability.Service}) rather than capturing it from an outer scope.\n//\n\n/**\n * Provides the Effect-level {@link ClientService} backed by the\n * {@link ClientCapabilities.Client} capability contributed by the plugin\n * runtime.\n */\nconst ClientLayerSpec = LayerSpec.make(\n {\n affinity: 'application',\n requires: [Capability.Service],\n provides: [ClientService],\n },\n () =>\n Layer.unwrapEffect(\n Effect.gen(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n return ClientService.fromClient(client);\n }).pipe(Effect.orDie),\n ),\n);\n\n/**\n * Space-scoped database/feed services resolved from the `Client`'s space\n * registry. One spec for both so the `client.spaces.get` / `waitUntilReady`\n * round-trip only happens once per space slice. Fails hard if the context is\n * missing a `space` id or the client cannot resolve it — both indicate a\n * configuration bug in the layer graph.\n */\nconst DatabaseLayerSpec = LayerSpec.make(\n {\n affinity: 'space',\n requires: [ClientService],\n provides: [Database.Service, Feed.FeedService],\n },\n (context) =>\n Layer.unwrapEffect(\n Effect.gen(function* () {\n invariant(context.space, 'space context required for Database layer');\n const client = yield* ClientService;\n const space = client.spaces.get(context.space);\n invariant(space, `space not found on client: ${context.space}`);\n yield* Effect.promise(() => space.waitUntilReady());\n return Layer.mergeAll(Database.layer(space.db), createFeedServiceLayer(space.queues));\n }),\n ),\n);\n\nconst CredentialsLayerSpec = LayerSpec.make(\n {\n affinity: 'space',\n requires: [Database.Service],\n provides: [Credential.CredentialsService],\n },\n () => credentialsLayerFromDatabase(),\n);\n\nexport default Capability.makeModule(() =>\n Effect.succeed([\n Capability.contributes(Capabilities.LayerSpec, ClientLayerSpec),\n Capability.contributes(Capabilities.LayerSpec, DatabaseLayerSpec),\n Capability.contributes(Capabilities.LayerSpec, CredentialsLayerSpec),\n ]),\n);\n"],
|
|
5
|
-
"mappings": ";;;AAIA,YAAYA,YAAY;AACxB,YAAYC,WAAW;AAEvB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,qBAAqB;AAC9B,SAASC,YAAYC,iBAAiB;AACtC,SAASC,UAAUC,YAAY;AAC/B,SAASC,8BAA8B;AACvC,SAASC,oCAAoC;AAC7C,SAASC,iBAAiB;AAE1B,SAASC,0BAA0B;AAEnC,IAAE,eAAA;AAqBEC,IAAAA,kBAAU,UAAA,KAAA;YAACV;YAAmB;IAC9BW,WAAU;;YAAe;IAGzBb;;SAGI,mBAAqBc,WAAAA,aAAWC;AAC/BC,QAAKjB,SAAOkB,OAAK,WAAA,IAAA,mBAAA,MAAA;AAI1B,SAAA,cAAA,WAAA,MAAA;;AAUIL,IAAAA,oBAAU,UAAA,KAAA;YAACT;YAAc;IACzBU;;YAAkCK;IAAY,SAAA;IAE/CC,KAAAA;;gBAIWJ,mBAAgBZ,WAAAA,aAAAA;AACtB,YAAMiB,QAAQL,OAAOM,6CAAwB,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,iBAAA,6CAAA,EAAA,CAAA;AAC7CX,QAAAA,SAAUU,OAAQ;AAClB,QAAA,QAAcE,OAAO,OAAOF,IAAMG,QAAAA,KAAAA;AAClC,YAAOvB,OAAMwB,8BAAgC,QAAGhB,KAAAA,IAAAA,EAAAA,YAAuBY,YAAY,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,SAAA,+CAAA,EAAA,CAAA;AACrF,SAAA,eAAA,MAAA,MAAA,eAAA,CAAA;AAIAK,SAAAA,eAAuBpB,SAAUqB,MACrC,MAAA,EAAA,GAAA,uBAAA,MAAA,MAAA,CAAA;AACEC,CAAAA,CAAAA,CAAAA;IACAf,uBAAU,UAAA,KAAA;YAACN;YAAiB;IAC5BO,SAAU;;YAA+B;IAErCJ,WAAAA;EAGR;sCAE2BR,CAAAA;0BACvBC,WAAW0B,WAAY3B,MAAaI,eAAWwB;EAC/C3B,WAAW0B,YAAY3B,aAAaI,WAAWoB,eAAAA;EAEjD,WAAA,YAAA,aAAA,WAAA,iBAAA;;;",
|
|
6
|
-
"names": ["Effect", "Layer", "Capabilities", "Capability", "ClientService", "Credential", "LayerSpec", "Database", "Feed", "createFeedServiceLayer", "credentialsLayerFromDatabase", "invariant", "ClientCapabilities", "requires", "provides", "fromClient", "client", "pipe", "orDie", "FeedService", "context", "space", "spaces", "promise", "waitUntilReady", "mergeAll", "CredentialsLayerSpec", "make", "affinity", "contributes", "DatabaseLayerSpec"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { type ComponentProps } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\n\nimport {\n AccountContainer,\n DevicesContainer,\n InvitationsContainer,\n JoinDialog,\n ProfileContainer,\n RecoveryCodeDialog,\n RecoveryCredentialsContainer,\n ResetDialog,\n} from '#containers';\nimport { Account, type ClientPluginOptions } from '#types';\n\nimport { JOIN_DIALOG, RECOVERY_CODE_DIALOG, RESET_DIALOG } from '../constants';\n\ntype ReactSurfaceOptions = Pick<ClientPluginOptions, 'onReset'> & {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ createInvitationUrl, onReset }: ReactSurfaceOptions) {\n const capabilityManager = yield* Capability.Service;\n\n return Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: Account.Profile,\n filter: AppSurface.literal(AppSurface.Article, Account.Profile),\n component: () => <ProfileContainer />,\n }),\n Surface.create({\n id: Account.Devices,\n filter: AppSurface.literal(AppSurface.Article, Account.Devices),\n component: () => <DevicesContainer createInvitationUrl={createInvitationUrl} />,\n }),\n Surface.create({\n id: Account.Security,\n filter: AppSurface.literal(AppSurface.Article, Account.Security),\n component: () => <RecoveryCredentialsContainer />,\n }),\n Surface.create({\n id: Account.Account,\n filter: AppSurface.literal(AppSurface.Article, Account.Account),\n component: () => <AccountContainer />,\n }),\n Surface.create({\n id: Account.Invitations,\n filter: AppSurface.literal(AppSurface.Article, Account.Invitations),\n component: () => <InvitationsContainer />,\n }),\n Surface.create({\n id: JOIN_DIALOG,\n filter: AppSurface.component<ComponentProps<typeof JoinDialog>>(AppSurface.Dialog, JOIN_DIALOG),\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n Surface.create({\n id: RECOVERY_CODE_DIALOG,\n filter: AppSurface.component<ComponentProps<typeof RecoveryCodeDialog>>(\n AppSurface.Dialog,\n RECOVERY_CODE_DIALOG,\n ),\n component: ({ data }) => <RecoveryCodeDialog {...data.props} />,\n }),\n Surface.create({\n id: RESET_DIALOG,\n filter: AppSurface.component<Pick<ComponentProps<typeof ResetDialog>, 'mode'>>(AppSurface.Dialog, RESET_DIALOG),\n component: ({ data }) => (\n <ResetDialog {...data.props} onReset={onReset} capabilityManager={capabilityManager} />\n ),\n }),\n ]);\n }),\n);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAoC;AAE3C,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAE3B,SACEC,kBACAC,kBACAC,sBACAC,YACAC,kBACAC,oBACAC,8BACAC,mBACK;AACP,SAASC,eAAyC;AAQlD,IAAA,wBAAeC,WAAWC,WACjBC,kBAAW,WAAW,EAAEC,qBAAqBC,QAAO,GAAuB;AAChF,QAAMC,oBAAoB,OAAOL,WAAWM;AAE5C,SAAON,WAAWO,YAAYC,aAAaC,cAAc;IACvDC,QAAQC,OAAO;MACbC,IAAIC,QAAQC;MACZC,QAAQC,WAAWC,QAAQD,WAAWE,SAASL,QAAQC,OAAO;MAC9DK,WAAW,MAAM,sBAAA,cAACC,kBAAAA,IAAAA;IACpB,CAAA;IACAV,QAAQC,OAAO;MACbC,IAAIC,QAAQQ;MACZN,QAAQC,WAAWC,QAAQD,WAAWE,SAASL,QAAQQ,OAAO;MAC9DF,WAAW,MAAM,sBAAA,cAACG,kBAAAA;QAAiBnB;;IACrC,CAAA;IACAO,QAAQC,OAAO;MACbC,IAAIC,QAAQU;MACZR,QAAQC,WAAWC,QAAQD,WAAWE,SAASL,QAAQU,QAAQ;MAC/DJ,WAAW,MAAM,sBAAA,cAACK,8BAAAA,IAAAA;IACpB,CAAA;IACAd,QAAQC,OAAO;MACbC,IAAIC,QAAQA;MACZE,QAAQC,WAAWC,QAAQD,WAAWE,SAASL,QAAQA,OAAO;MAC9DM,WAAW,MAAM,sBAAA,cAACM,kBAAAA,IAAAA;IACpB,CAAA;IACAf,QAAQC,OAAO;MACbC,IAAIC,QAAQa;MACZX,QAAQC,WAAWC,QAAQD,WAAWE,SAASL,QAAQa,WAAW;MAClEP,WAAW,MAAM,sBAAA,cAACQ,sBAAAA,IAAAA;IACpB,CAAA;IACAjB,QAAQC,OAAO;MACbC,IAAIgB;MACJb,QAAQC,WAAWG,UAA6CH,WAAWa,QAAQD,WAAAA;MACnFT,WAAW,CAAC,EAAEW,KAAI,MAAO,sBAAA,cAACC,YAAeD,KAAKE,KAAK;IACrD,CAAA;IACAtB,QAAQC,OAAO;MACbC,IAAIqB;MACJlB,QAAQC,WAAWG,UACjBH,WAAWa,QACXI,oBAAAA;MAEFd,WAAW,CAAC,EAAEW,KAAI,MAAO,sBAAA,cAACI,oBAAuBJ,KAAKE,KAAK;IAC7D,CAAA;IACAtB,QAAQC,OAAO;MACbC,IAAIuB;MACJpB,QAAQC,WAAWG,UAA4DH,WAAWa,QAAQM,YAAAA;MAClGhB,WAAW,CAAC,EAAEW,KAAI,MAChB,sBAAA,cAACM,aAAAA;QAAa,GAAGN,KAAKE;QAAO5B;QAAkBC;;IAEnD,CAAA;GACD;AACH,CAAA,CAAA;",
|
|
6
|
-
"names": ["Effect", "React", "Capabilities", "Capability", "Surface", "AppSurface", "AccountContainer", "DevicesContainer", "InvitationsContainer", "JoinDialog", "ProfileContainer", "RecoveryCodeDialog", "RecoveryCredentialsContainer", "ResetDialog", "Account", "Capability", "makeModule", "fnUntraced", "createInvitationUrl", "onReset", "capabilityManager", "Service", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "Account", "Profile", "filter", "AppSurface", "literal", "Article", "component", "ProfileContainer", "Devices", "DevicesContainer", "Security", "RecoveryCredentialsContainer", "AccountContainer", "Invitations", "InvitationsContainer", "JOIN_DIALOG", "Dialog", "data", "JoinDialog", "props", "RECOVERY_CODE_DIALOG", "RecoveryCodeDialog", "RESET_DIALOG", "ResetDialog"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/redeem-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 { decodeUrlSafeBase64, supportsNativePasskeys, loginNativePasskey } from '@dxos/app-toolkit';\nimport { PublicKey } from '@dxos/client';\nimport { Operation } from '@dxos/compute';\nimport { invariant } from '@dxos/invariant';\n\nimport { ClientCapabilities } from '../types';\nimport { RedeemPasskey } from './definitions';\n\nconst handler: Operation.WithHandler<typeof RedeemPasskey> = RedeemPasskey.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 { deviceKey, controlFeedKey, challenge } = yield* Effect.promise(() =>\n client.services.services.IdentityService!.requestRecoveryChallenge(),\n );\n\n const { lookupKey, signature, clientDataJson, authenticatorData } = yield* Match.value(\n supportsNativePasskeys(),\n ).pipe(\n Match.when(true, () =>\n Effect.gen(function* () {\n const result = yield* Effect.promise(() =>\n loginNativePasskey({ challenge: Uint8Array.from(Buffer.from(challenge, 'base64')) }),\n );\n invariant(result, 'Native passkey login returned no result');\n return {\n lookupKey: PublicKey.from(decodeUrlSafeBase64(result.user_handle)),\n signature: Buffer.from(decodeUrlSafeBase64(result.signature)),\n clientDataJson: Buffer.from(decodeUrlSafeBase64(result.client_data_json)),\n authenticatorData: Buffer.from(decodeUrlSafeBase64(result.authenticator_data)),\n };\n }),\n ),\n Match.orElse(() =>\n Effect.gen(function* () {\n const credential = yield* Effect.promise(() =>\n navigator.credentials.get({\n publicKey: {\n challenge: Buffer.from(challenge, 'base64'),\n rpId: location.hostname,\n userVerification: 'required',\n },\n }),\n );\n return {\n lookupKey: PublicKey.from(new Uint8Array((credential as any).response.userHandle)),\n signature: Buffer.from((credential as any).response.signature),\n clientDataJson: Buffer.from((credential as any).response.clientDataJSON),\n authenticatorData: Buffer.from((credential as any).response.authenticatorData),\n };\n }),\n ),\n );\n\n yield* Effect.promise(() =>\n client.services.services.IdentityService!.recoverIdentity(\n {\n external: {\n lookupKey,\n deviceKey,\n controlFeedKey,\n signature,\n clientDataJson,\n authenticatorData,\n },\n },\n { timeout: RECOVER_IDENTITY_RPC_TIMEOUT },\n ),\n );\n }),\n ),\n);\n\nexport default handler;\n\nconst RECOVER_IDENTITY_RPC_TIMEOUT = 20_000;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,WAAW;AAEvB,SAASC,kBAAkB;AAC3B,SAASC,qBAAqBC,wBAAwBC,0BAA0B;AAChF,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAK1B,IAAA,eAA6DC;IAIvDC,UAAUC,cAAgBC,KAAAA,UAASC,YAAiB,kBAAA,aAAA;AACpD,QAAM,SAAEC,OAAWC,WAAc,IAAEC,mBAAqBC,MAAAA;AAIxD,YAAQC,OAAS,SAAEC,SAAWC,iBAAgBC,iCAAmCC,EAAAA,YAC/EC,YAAAA,GAAAA,cAEAC,GAAMC,IAAAA,GAAK,MAAA,GAAM,CAAA,4CACJ,iCAAA,EAAA,CAAA;UACT,WAAMC,gBAAgBT,UAAe,IACnCU,OAAAA,eAAmB,MAAA,OAAA,SAAA,SAAA,gBAAA,yBAAA,CAAA;qBAAEX,WAAWY,gBAAgBC,kBAAYb,IAAW,OAAA,YAAA,uBAAA,CAAA,EAAA,KAAA,WAAA,MAAA,MAAA,WAAA,aAAA;UAAW,SAAA,OAAA,eAAA,MAAA,mBAAA;MAEpFN,WAAkB,WAAA,KAAA,OAAA,KAAA,WAAA,QAAA,CAAA;IAClB,CAAA,CAAA;cACEQ,QAAWY,2CAA0CC,EAAAA,YAAW,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,UAAA,2CAAA,EAAA,CAAA;WAChEZ;MACAC,WAAAA,UAAgBS,KAAOG,oBAAKC,OAAoBP,WAAOQ,CAAAA;MACvDb,WAAAA,OAAAA,KAAmBQ,oBAAYI,OAAAA,SAA2BE,CAAAA;MAC5D,gBAAA,OAAA,KAAA,oBAAA,OAAA,gBAAA,CAAA;MAGJX,mBACEP,OAAW,KAAA,oBAAA,OAAA,kBAAA,CAAA;IACT;oBAEImB,MAAW,WAAA,aAAA;uBACTpB,OAAkBgB,eAAKhB,MAAAA,UAAW,YAAA,IAAA;iBAC5BqB;QACNC,WAAAA,OAAkB,KAAA,WAAA,QAAA;QACpB,MAAA,SAAA;QACF,kBAAA;MAEK;IACLpB,CAAAA,CAAAA;WACAC;MACAC,WAAAA,UAAgBS,KAAOG,IAAMO,WAAmBC,WAASC,SAAAA,UAAc,CAAA;MACvEpB,WAAAA,OAAAA,KAAmBQ,WAAaU,SAAmBC,SAASnB;MAC9D,gBAAA,OAAA,KAAA,WAAA,SAAA,cAAA;MACF,mBAAA,OAAA,KAAA,WAAA,SAAA,iBAAA;IAIGJ;;SAICC,eAAAA,MAAAA,OAAAA,SAAAA,SAAAA,gBAAAA,gBAAAA;cACAJ;MACAC;MACAI;MACAC;MACAC;MACF;MAEF;IAAEqB;EAAsC,GAAA;IAG9C,SAAA;EAIJ,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA;;;",
|
|
6
|
-
"names": ["Effect", "Match", "Capability", "decodeUrlSafeBase64", "supportsNativePasskeys", "loginNativePasskey", "PublicKey", "Operation", "invariant", "RedeemPasskey", "invariant", "client", "services", "IdentityService", "deviceKey", "controlFeedKey", "challenge", "Effect", "lookupKey", "signature", "clientDataJson", "authenticatorData", "value", "supportsNativePasskeys", "Match", "when", "result", "loginNativePasskey", "Uint8Array", "Buffer", "PublicKey", "user_handle", "from", "decodeUrlSafeBase64", "client_data_json", "authenticator_data", "publicKey", "location", "userVerification", "credential", "response", "clientDataJSON", "timeout"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/operations/share-identity.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { ObservabilityOperation } from '@dxos/plugin-observability';\n\nimport { Account } from '../types';\nimport { ShareIdentity } from './definitions';\n\nconst handler: Operation.WithHandler<typeof ShareIdentity> = ShareIdentity.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* () {\n yield* Operation.invoke(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(Account.id) });\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [`${getSpacePath(Account.id)}/${Account.Profile}`],\n });\n yield* Operation.schedule(ObservabilityOperation.SendEvent, { name: 'identity.share' });\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,iBAAiB;AAC1B,SAASC,8BAA8B;AAKvC,IAAMC,UAAuDC,cAAcC,KACzEC,UAAUC,YACDC,kBAAW,aAAA;AAChB,SAAOF,UAAUG,OAAOC,gBAAgBC,iBAAiB;IAAEC,SAASC,aAAaC,QAAQC,EAAE;EAAE,CAAA;AAC7F,SAAOT,UAAUG,OAAOC,gBAAgBM,MAAM;IAC5CJ,SAAS;MAAC,GAAGC,aAAaC,QAAQC,EAAE,CAAA,IAAKD,QAAQG,OAAO;;EAC1D,CAAA;AACA,SAAOX,UAAUY,SAASC,uBAAuBC,WAAW;IAAEC,MAAM;EAAiB,CAAA;AACvF,CAAA,CAAA,CAAA;AAIJ,IAAA,yBAAelB;",
|
|
6
|
-
"names": ["Effect", "LayoutOperation", "getSpacePath", "Operation", "ObservabilityOperation", "handler", "ShareIdentity", "pipe", "Operation", "withHandler", "fnUntraced", "invoke", "LayoutOperation", "SwitchWorkspace", "subject", "getSpacePath", "Account", "id", "Open", "Profile", "schedule", "ObservabilityOperation", "SendEvent", "name"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-hub-http.d.ts","sourceRoot":"","sources":["../../../../src/state/use-hub-http.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAO,aAAa,GAAG,SAYnD,CAAC"}
|
|
File without changes
|
/package/dist/lib/neutral/{create-identity-JIWAR5GW.mjs.map → create-identity-ULCRB3YH.mjs.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/lib/neutral/{recover-identity-JNFKLCUD.mjs.map → recover-identity-B7YM2BR4.mjs.map}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|