@dxos/client-services 0.3.5-main.dcca370 → 0.3.5-main.e438076
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{chunk-6F2PUQ7G.mjs → chunk-F7TNXI5H.mjs} +68 -43
- package/dist/lib/browser/chunk-F7TNXI5H.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/packlets/testing/index.mjs +3 -2
- package/dist/lib/browser/packlets/testing/index.mjs.map +3 -3
- package/dist/lib/node/index.cjs +67 -42
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/packlets/testing/index.cjs +69 -43
- package/dist/lib/node/packlets/testing/index.cjs.map +3 -3
- package/dist/types/src/packlets/identity/identity-service.d.ts +2 -1
- package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-context.d.ts +2 -0
- package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/data-space-manager.d.ts +1 -1
- package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/data-space.d.ts +2 -0
- package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
- package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +1 -1
- package/package.json +35 -35
- package/src/packlets/identity/identity-service.ts +2 -0
- package/src/packlets/invitations/space-invitation-protocol.ts +1 -1
- package/src/packlets/services/service-context.ts +12 -2
- package/src/packlets/services/service-host.ts +1 -0
- package/src/packlets/spaces/data-space-manager.ts +2 -1
- package/src/packlets/spaces/data-space.ts +13 -1
- package/src/packlets/spaces/genesis.ts +1 -1
- package/src/packlets/spaces/spaces-service.ts +1 -1
- package/src/packlets/testing/test-builder.ts +1 -0
- package/src/version.ts +1 -1
- package/dist/lib/browser/chunk-6F2PUQ7G.mjs.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/packlets/testing/credential-utils.ts", "../../../../../src/packlets/testing/invitation-utils.ts", "../../../../../src/packlets/testing/test-builder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createCredential } from '@dxos/credentials';\nimport { type Signer } from '@dxos/crypto';\nimport { PublicKey } from '@dxos/keys';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nexport const createMockCredential = async ({\n signer,\n issuer,\n}: {\n signer: Signer;\n issuer: PublicKey;\n}): Promise<Credential> =>\n createCredential({\n signer,\n issuer,\n subject: new PublicKey(Buffer.from('test')),\n assertion: {\n '@type': 'example.testing.rpc.MessageWithAny',\n payload: {\n '@type': 'google.protobuf.Any',\n value: Buffer.from('test'),\n },\n },\n });\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { type AuthenticatingInvitation, type CancellableInvitation } from '@dxos/client-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { ServiceContext } from '../services';\n\n/**\n * Strip secrets from invitation before giving it to the peer.\n */\nexport const sanitizeInvitation = (invitation: Invitation): Invitation => {\n return {\n invitationId: invitation.invitationId,\n type: invitation.type,\n kind: invitation.kind,\n authMethod: invitation.authMethod,\n swarmKey: invitation.swarmKey,\n state: invitation.state,\n timeout: invitation.timeout,\n };\n};\n\nexport type InvitationHost = {\n share(options?: Partial<Invitation>): CancellableInvitation;\n};\n\nexport type InvitationGuest = {\n join(invitation: Invitation | string): AuthenticatingInvitation;\n};\n\nexport type PerformInvitationCallbacks<T> = {\n onConnecting?: (value: T) => boolean | void;\n onConnected?: (value: T) => boolean | void;\n onReady?: (value: T) => boolean | void;\n onAuthenticating?: (value: T) => boolean | void;\n onSuccess?: (value: T) => boolean | void;\n onCancelled?: (value: T) => boolean | void;\n onTimeout?: (value: T) => boolean | void;\n onError?: (value: T) => boolean | void;\n};\n\nexport type PerformInvitationParams = {\n host: ServiceContext | InvitationHost;\n guest: ServiceContext | InvitationGuest;\n options?: Partial<Invitation>;\n hooks?: {\n host?: PerformInvitationCallbacks<CancellableInvitation>;\n guest?: PerformInvitationCallbacks<AuthenticatingInvitation>;\n };\n};\n\nexport type Result = { invitation?: Invitation; error?: Error };\n\nexport const performInvitation = ({\n host,\n guest,\n options,\n hooks,\n}: PerformInvitationParams): [Promise<Result>, Promise<Result>] => {\n const hostComplete = new Trigger<Result>();\n const guestComplete = new Trigger<Result>();\n const authCode = new Trigger<string>();\n\n const hostObservable = createInvitation(host, options);\n hostObservable.subscribe(\n async (hostInvitation: Invitation) => {\n switch (hostInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.host?.onConnecting?.(hostObservable)) {\n break;\n }\n const guestObservable = acceptInvitation(guest, hostInvitation);\n guestObservable.subscribe(\n async (guestInvitation: Invitation) => {\n switch (guestInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.guest?.onConnecting?.(guestObservable)) {\n break;\n }\n invariant(hostInvitation.swarmKey!.equals(guestInvitation.swarmKey!));\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.guest?.onConnected?.(guestObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.guest?.onReady?.(guestObservable)) {\n break;\n }\n await guestObservable.authenticate(await authCode.wait());\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.guest?.onAuthenticating?.(guestObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.guest?.onSuccess?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.guest?.onCancelled?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.guest?.onTimeout?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ invitation: guestInvitation });\n }\n }\n },\n (error: Error) => {\n if (hooks?.guest?.onError?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ error });\n },\n );\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.host?.onConnected?.(hostObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.host?.onReady?.(hostObservable)) {\n break;\n }\n if (hostInvitation.authCode) {\n authCode.wake(hostInvitation.authCode);\n }\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.host?.onAuthenticating?.(hostObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.host?.onSuccess?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.host?.onCancelled?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.host?.onTimeout?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n }\n },\n (error: Error) => {\n if (hooks?.host?.onError?.(hostObservable)) {\n return;\n }\n hostComplete.wake({ error });\n },\n );\n\n return [hostComplete.wait(), guestComplete.wait()];\n};\n\nconst createInvitation = (\n host: ServiceContext | InvitationHost,\n options?: Partial<Invitation>,\n): CancellableInvitation => {\n options ??= {\n authMethod: Invitation.AuthMethod.NONE,\n ...(options ?? {}),\n };\n\n if (host instanceof ServiceContext) {\n const hostHandler = host.getInvitationHandler({ kind: Invitation.Kind.SPACE, ...options });\n return host.invitations.createInvitation(hostHandler, options);\n }\n\n return host.share(options);\n};\n\nconst acceptInvitation = (\n guest: ServiceContext | InvitationGuest,\n invitation: Invitation,\n): AuthenticatingInvitation => {\n invitation = sanitizeInvitation(invitation);\n\n if (guest instanceof ServiceContext) {\n const guestHandler = guest.getInvitationHandler({ kind: invitation.kind });\n return guest.invitations.acceptInvitation(guestHandler, invitation);\n }\n\n return guest.join(invitation);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Config } from '@dxos/config';\nimport { Context } from '@dxos/context';\nimport { createCredentialSignerWithChain, CredentialGenerator } from '@dxos/credentials';\nimport { failUndefined } from '@dxos/debug';\nimport {\n SnapshotStore,\n type DataPipeline,\n MetadataStore,\n SpaceManager,\n valueEncoding,\n DataServiceSubscriptions,\n} from '@dxos/echo-pipeline';\nimport { testLocalDatabase } from '@dxos/echo-pipeline/testing';\nimport { FeedFactory, FeedStore } from '@dxos/feed-store';\nimport { Keyring } from '@dxos/keyring';\nimport { MemorySignalManager, MemorySignalManagerContext } from '@dxos/messaging';\nimport { MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';\nimport { createStorage, type Storage, StorageType } from '@dxos/random-access-storage';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\n\nimport { ClientServicesHost, createDefaultModelFactory, ServiceContext } from '../services';\nimport { DataSpaceManager, type SigningContext } from '../spaces';\n\n//\n// TODO(burdon): Replace with test builder.\n//\n\nexport const createServiceHost = (config: Config, signalManagerContext: MemorySignalManagerContext) => {\n return new ClientServicesHost({\n config,\n signalManager: new MemorySignalManager(signalManagerContext),\n transportFactory: MemoryTransportFactory,\n });\n};\n\nexport const createServiceContext = ({\n signalContext = new MemorySignalManagerContext(),\n storage = createStorage({ type: StorageType.RAM }),\n}: {\n signalContext?: MemorySignalManagerContext;\n storage?: Storage;\n} = {}) => {\n const signalManager = new MemorySignalManager(signalContext);\n const networkManager = new NetworkManager({\n signalManager,\n transportFactory: MemoryTransportFactory,\n });\n\n const modelFactory = createDefaultModelFactory();\n return new ServiceContext(storage, networkManager, signalManager, modelFactory);\n};\n\nexport const createPeers = async (numPeers: number) => {\n const signalContext = new MemorySignalManagerContext();\n\n return await Promise.all(\n Array.from(Array(numPeers)).map(async () => {\n const peer = createServiceContext({ signalContext });\n await peer.open(new Context());\n return peer;\n }),\n );\n};\n\nexport const createIdentity = async (peer: ServiceContext) => {\n await peer.createIdentity();\n return peer;\n};\n\n// TODO(burdon): Remove @dxos/client-testing.\n// TODO(burdon): Create builder and make configurable.\nexport const syncItemsLocal = async (db1: DataPipeline, db2: DataPipeline) => {\n await testLocalDatabase(db1, db2);\n await testLocalDatabase(db2, db1);\n};\n\nexport class TestBuilder {\n public readonly signalContext = new MemorySignalManagerContext();\n private readonly _ctx = new Context();\n\n createPeer(peerOptions?: TestPeerOpts): TestPeer {\n const peer = new TestPeer(this.signalContext, peerOptions);\n this._ctx.onDispose(async () => peer.destroy());\n return peer;\n }\n\n async destroy() {\n await this._ctx.dispose();\n }\n}\n\nexport type TestPeerOpts = {\n dataStore?: StorageType;\n};\n\nexport type TestPeerProps = {\n storage?: Storage;\n feedStore?: FeedStore<any>;\n metadataStore?: MetadataStore;\n keyring?: Keyring;\n networkManager?: NetworkManager;\n spaceManager?: SpaceManager;\n dataSpaceManager?: DataSpaceManager;\n snapshotStore?: SnapshotStore;\n signingContext?: SigningContext;\n blobStore?: BlobStore;\n};\n\nexport class TestPeer {\n private _props: TestPeerProps = {};\n\n constructor(\n private readonly signalContext: MemorySignalManagerContext,\n private readonly opts: TestPeerOpts = { dataStore: StorageType.RAM },\n ) {}\n\n get props() {\n return this._props;\n }\n\n get storage() {\n return (this._props.storage ??= createStorage({ type: this.opts.dataStore }));\n }\n\n get keyring() {\n return (this._props.keyring ??= new Keyring(this.storage.createDirectory('keyring')));\n }\n\n get feedStore() {\n return (this._props.feedStore ??= new FeedStore({\n factory: new FeedFactory({\n root: this.storage.createDirectory('feeds'),\n signer: this.keyring,\n hypercore: {\n valueEncoding,\n },\n }),\n }));\n }\n\n get metadataStore() {\n return (this._props.metadataStore ??= new MetadataStore(this.storage.createDirectory('metadata')));\n }\n\n get blobStore() {\n return (this._props.blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\n\n get snapshotStore() {\n return (this._props.snapshotStore ??= new SnapshotStore(this.storage.createDirectory('snapshots')));\n }\n\n get networkManager() {\n return (this._props.networkManager ??= new NetworkManager({\n signalManager: new MemorySignalManager(this.signalContext),\n transportFactory: MemoryTransportFactory,\n }));\n }\n\n get spaceManager() {\n return (this._props.spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this.networkManager,\n metadataStore: this.metadataStore,\n modelFactory: createDefaultModelFactory(),\n snapshotStore: this.snapshotStore,\n blobStore: this.blobStore,\n }));\n }\n\n get identity() {\n return this._props.signingContext ?? failUndefined();\n }\n\n get dataSpaceManager() {\n return (this._props.dataSpaceManager ??= new DataSpaceManager(\n this.spaceManager,\n this.metadataStore,\n new DataServiceSubscriptions(),\n this.keyring,\n this.identity,\n this.feedStore,\n ));\n }\n\n async createIdentity() {\n this._props.signingContext ??= await createSigningContext(this.keyring);\n }\n\n async destroy() {\n await this.storage.reset();\n }\n}\n\nexport const createSigningContext = async (keyring: Keyring): Promise<SigningContext> => {\n const identityKey = await keyring.createKey();\n const deviceKey = await keyring.createKey();\n\n return {\n identityKey,\n deviceKey,\n credentialSigner: createCredentialSignerWithChain(\n keyring,\n {\n credential: await new CredentialGenerator(keyring, identityKey, deviceKey).createDeviceAuthorization(deviceKey),\n },\n deviceKey,\n ),\n recordCredential: async () => {}, // No-op.\n };\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["createCredential", "PublicKey", "createMockCredential", "signer", "issuer", "createCredential", "subject", "PublicKey", "Buffer", "from", "assertion", "payload", "value", "Trigger", "invariant", "Invitation", "sanitizeInvitation", "invitation", "invitationId", "type", "kind", "authMethod", "swarmKey", "state", "timeout", "performInvitation", "host", "guest", "options", "hooks", "hostComplete", "Trigger", "guestComplete", "authCode", "hostObservable", "createInvitation", "subscribe", "hostInvitation", "Invitation", "State", "CONNECTING", "onConnecting", "guestObservable", "acceptInvitation", "guestInvitation", "invariant", "equals", "CONNECTED", "onConnected", "READY_FOR_AUTHENTICATION", "onReady", "authenticate", "wait", "AUTHENTICATING", "onAuthenticating", "SUCCESS", "onSuccess", "wake", "CANCELLED", "onCancelled", "TIMEOUT", "onTimeout", "error", "onError", "AuthMethod", "NONE", "ServiceContext", "hostHandler", "getInvitationHandler", "Kind", "SPACE", "invitations", "share", "guestHandler", "join", "Context", "createCredentialSignerWithChain", "CredentialGenerator", "failUndefined", "SnapshotStore", "MetadataStore", "SpaceManager", "valueEncoding", "DataServiceSubscriptions", "testLocalDatabase", "FeedFactory", "FeedStore", "Keyring", "MemorySignalManager", "MemorySignalManagerContext", "MemoryTransportFactory", "NetworkManager", "createStorage", "StorageType", "BlobStore", "createServiceHost", "config", "signalManagerContext", "ClientServicesHost", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "createServiceContext", "signalContext", "MemorySignalManagerContext", "storage", "createStorage", "type", "StorageType", "RAM", "networkManager", "NetworkManager", "modelFactory", "createDefaultModelFactory", "ServiceContext", "createPeers", "numPeers", "Promise", "all", "Array", "from", "map", "peer", "open", "Context", "createIdentity", "syncItemsLocal", "db1", "db2", "testLocalDatabase", "TestBuilder", "_ctx", "createPeer", "peerOptions", "TestPeer", "onDispose", "destroy", "dispose", "constructor", "opts", "dataStore", "_props", "props", "keyring", "Keyring", "createDirectory", "feedStore", "FeedStore", "factory", "FeedFactory", "root", "signer", "hypercore", "valueEncoding", "metadataStore", "MetadataStore", "blobStore", "BlobStore", "snapshotStore", "SnapshotStore", "spaceManager", "SpaceManager", "identity", "signingContext", "failUndefined", "dataSpaceManager", "DataSpaceManager", "DataServiceSubscriptions", "createSigningContext", "reset", "identityKey", "createKey", "deviceKey", "credentialSigner", "createCredentialSignerWithChain", "credential", "CredentialGenerator", "createDeviceAuthorization", "recordCredential"]
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createCredential } from '@dxos/credentials';\nimport { type Signer } from '@dxos/crypto';\nimport { PublicKey } from '@dxos/keys';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nexport const createMockCredential = async ({\n signer,\n issuer,\n}: {\n signer: Signer;\n issuer: PublicKey;\n}): Promise<Credential> =>\n createCredential({\n signer,\n issuer,\n subject: new PublicKey(Buffer.from('test')),\n assertion: {\n '@type': 'example.testing.rpc.MessageWithAny',\n payload: {\n '@type': 'google.protobuf.Any',\n value: Buffer.from('test'),\n },\n },\n });\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { type AuthenticatingInvitation, type CancellableInvitation } from '@dxos/client-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { ServiceContext } from '../services';\n\n/**\n * Strip secrets from invitation before giving it to the peer.\n */\nexport const sanitizeInvitation = (invitation: Invitation): Invitation => {\n return {\n invitationId: invitation.invitationId,\n type: invitation.type,\n kind: invitation.kind,\n authMethod: invitation.authMethod,\n swarmKey: invitation.swarmKey,\n state: invitation.state,\n timeout: invitation.timeout,\n };\n};\n\nexport type InvitationHost = {\n share(options?: Partial<Invitation>): CancellableInvitation;\n};\n\nexport type InvitationGuest = {\n join(invitation: Invitation | string): AuthenticatingInvitation;\n};\n\nexport type PerformInvitationCallbacks<T> = {\n onConnecting?: (value: T) => boolean | void;\n onConnected?: (value: T) => boolean | void;\n onReady?: (value: T) => boolean | void;\n onAuthenticating?: (value: T) => boolean | void;\n onSuccess?: (value: T) => boolean | void;\n onCancelled?: (value: T) => boolean | void;\n onTimeout?: (value: T) => boolean | void;\n onError?: (value: T) => boolean | void;\n};\n\nexport type PerformInvitationParams = {\n host: ServiceContext | InvitationHost;\n guest: ServiceContext | InvitationGuest;\n options?: Partial<Invitation>;\n hooks?: {\n host?: PerformInvitationCallbacks<CancellableInvitation>;\n guest?: PerformInvitationCallbacks<AuthenticatingInvitation>;\n };\n};\n\nexport type Result = { invitation?: Invitation; error?: Error };\n\nexport const performInvitation = ({\n host,\n guest,\n options,\n hooks,\n}: PerformInvitationParams): [Promise<Result>, Promise<Result>] => {\n const hostComplete = new Trigger<Result>();\n const guestComplete = new Trigger<Result>();\n const authCode = new Trigger<string>();\n\n const hostObservable = createInvitation(host, options);\n hostObservable.subscribe(\n async (hostInvitation: Invitation) => {\n switch (hostInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.host?.onConnecting?.(hostObservable)) {\n break;\n }\n const guestObservable = acceptInvitation(guest, hostInvitation);\n guestObservable.subscribe(\n async (guestInvitation: Invitation) => {\n switch (guestInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.guest?.onConnecting?.(guestObservable)) {\n break;\n }\n invariant(hostInvitation.swarmKey!.equals(guestInvitation.swarmKey!));\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.guest?.onConnected?.(guestObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.guest?.onReady?.(guestObservable)) {\n break;\n }\n await guestObservable.authenticate(await authCode.wait());\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.guest?.onAuthenticating?.(guestObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.guest?.onSuccess?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.guest?.onCancelled?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.guest?.onTimeout?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ invitation: guestInvitation });\n }\n }\n },\n (error: Error) => {\n if (hooks?.guest?.onError?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ error });\n },\n );\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.host?.onConnected?.(hostObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.host?.onReady?.(hostObservable)) {\n break;\n }\n if (hostInvitation.authCode) {\n authCode.wake(hostInvitation.authCode);\n }\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.host?.onAuthenticating?.(hostObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.host?.onSuccess?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.host?.onCancelled?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.host?.onTimeout?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n }\n },\n (error: Error) => {\n if (hooks?.host?.onError?.(hostObservable)) {\n return;\n }\n hostComplete.wake({ error });\n },\n );\n\n return [hostComplete.wait(), guestComplete.wait()];\n};\n\nconst createInvitation = (\n host: ServiceContext | InvitationHost,\n options?: Partial<Invitation>,\n): CancellableInvitation => {\n options ??= {\n authMethod: Invitation.AuthMethod.NONE,\n ...(options ?? {}),\n };\n\n if (host instanceof ServiceContext) {\n const hostHandler = host.getInvitationHandler({ kind: Invitation.Kind.SPACE, ...options });\n return host.invitations.createInvitation(hostHandler, options);\n }\n\n return host.share(options);\n};\n\nconst acceptInvitation = (\n guest: ServiceContext | InvitationGuest,\n invitation: Invitation,\n): AuthenticatingInvitation => {\n invitation = sanitizeInvitation(invitation);\n\n if (guest instanceof ServiceContext) {\n const guestHandler = guest.getInvitationHandler({ kind: invitation.kind });\n return guest.invitations.acceptInvitation(guestHandler, invitation);\n }\n\n return guest.join(invitation);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type Config } from '@dxos/config';\nimport { Context } from '@dxos/context';\nimport { createCredentialSignerWithChain, CredentialGenerator } from '@dxos/credentials';\nimport { failUndefined } from '@dxos/debug';\nimport {\n SnapshotStore,\n type DataPipeline,\n MetadataStore,\n SpaceManager,\n valueEncoding,\n DataServiceSubscriptions,\n} from '@dxos/echo-pipeline';\nimport { testLocalDatabase } from '@dxos/echo-pipeline/testing';\nimport { FeedFactory, FeedStore } from '@dxos/feed-store';\nimport { Keyring } from '@dxos/keyring';\nimport { MemorySignalManager, MemorySignalManagerContext } from '@dxos/messaging';\nimport { MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';\nimport { createStorage, type Storage, StorageType } from '@dxos/random-access-storage';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\n\nimport { ClientServicesHost, createDefaultModelFactory, ServiceContext } from '../services';\nimport { DataSpaceManager, type SigningContext } from '../spaces';\n\n//\n// TODO(burdon): Replace with test builder.\n//\n\nexport const createServiceHost = (config: Config, signalManagerContext: MemorySignalManagerContext) => {\n return new ClientServicesHost({\n config,\n signalManager: new MemorySignalManager(signalManagerContext),\n transportFactory: MemoryTransportFactory,\n });\n};\n\nexport const createServiceContext = ({\n signalContext = new MemorySignalManagerContext(),\n storage = createStorage({ type: StorageType.RAM }),\n}: {\n signalContext?: MemorySignalManagerContext;\n storage?: Storage;\n} = {}) => {\n const signalManager = new MemorySignalManager(signalContext);\n const networkManager = new NetworkManager({\n signalManager,\n transportFactory: MemoryTransportFactory,\n });\n\n const modelFactory = createDefaultModelFactory();\n return new ServiceContext(storage, networkManager, signalManager, modelFactory);\n};\n\nexport const createPeers = async (numPeers: number) => {\n const signalContext = new MemorySignalManagerContext();\n\n return await Promise.all(\n Array.from(Array(numPeers)).map(async () => {\n const peer = createServiceContext({ signalContext });\n await peer.open(new Context());\n return peer;\n }),\n );\n};\n\nexport const createIdentity = async (peer: ServiceContext) => {\n await peer.createIdentity();\n return peer;\n};\n\n// TODO(burdon): Remove @dxos/client-testing.\n// TODO(burdon): Create builder and make configurable.\nexport const syncItemsLocal = async (db1: DataPipeline, db2: DataPipeline) => {\n await testLocalDatabase(db1, db2);\n await testLocalDatabase(db2, db1);\n};\n\nexport class TestBuilder {\n public readonly signalContext = new MemorySignalManagerContext();\n private readonly _ctx = new Context();\n\n createPeer(peerOptions?: TestPeerOpts): TestPeer {\n const peer = new TestPeer(this.signalContext, peerOptions);\n this._ctx.onDispose(async () => peer.destroy());\n return peer;\n }\n\n async destroy() {\n await this._ctx.dispose();\n }\n}\n\nexport type TestPeerOpts = {\n dataStore?: StorageType;\n};\n\nexport type TestPeerProps = {\n storage?: Storage;\n feedStore?: FeedStore<any>;\n metadataStore?: MetadataStore;\n keyring?: Keyring;\n networkManager?: NetworkManager;\n spaceManager?: SpaceManager;\n dataSpaceManager?: DataSpaceManager;\n snapshotStore?: SnapshotStore;\n signingContext?: SigningContext;\n blobStore?: BlobStore;\n};\n\nexport class TestPeer {\n private _props: TestPeerProps = {};\n\n constructor(\n private readonly signalContext: MemorySignalManagerContext,\n private readonly opts: TestPeerOpts = { dataStore: StorageType.RAM },\n ) {}\n\n get props() {\n return this._props;\n }\n\n get storage() {\n return (this._props.storage ??= createStorage({ type: this.opts.dataStore }));\n }\n\n get keyring() {\n return (this._props.keyring ??= new Keyring(this.storage.createDirectory('keyring')));\n }\n\n get feedStore() {\n return (this._props.feedStore ??= new FeedStore({\n factory: new FeedFactory({\n root: this.storage.createDirectory('feeds'),\n signer: this.keyring,\n hypercore: {\n valueEncoding,\n },\n }),\n }));\n }\n\n get metadataStore() {\n return (this._props.metadataStore ??= new MetadataStore(this.storage.createDirectory('metadata')));\n }\n\n get blobStore() {\n return (this._props.blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\n\n get snapshotStore() {\n return (this._props.snapshotStore ??= new SnapshotStore(this.storage.createDirectory('snapshots')));\n }\n\n get networkManager() {\n return (this._props.networkManager ??= new NetworkManager({\n signalManager: new MemorySignalManager(this.signalContext),\n transportFactory: MemoryTransportFactory,\n }));\n }\n\n get spaceManager() {\n return (this._props.spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this.networkManager,\n metadataStore: this.metadataStore,\n modelFactory: createDefaultModelFactory(),\n snapshotStore: this.snapshotStore,\n blobStore: this.blobStore,\n }));\n }\n\n get identity() {\n return this._props.signingContext ?? failUndefined();\n }\n\n get dataSpaceManager() {\n return (this._props.dataSpaceManager ??= new DataSpaceManager(\n this.spaceManager,\n this.metadataStore,\n new DataServiceSubscriptions(),\n this.keyring,\n this.identity,\n this.feedStore,\n ));\n }\n\n async createIdentity() {\n this._props.signingContext ??= await createSigningContext(this.keyring);\n }\n\n async destroy() {\n await this.storage.reset();\n }\n}\n\nexport const createSigningContext = async (keyring: Keyring): Promise<SigningContext> => {\n const identityKey = await keyring.createKey();\n const deviceKey = await keyring.createKey();\n\n return {\n identityKey,\n deviceKey,\n credentialSigner: createCredentialSignerWithChain(\n keyring,\n {\n credential: await new CredentialGenerator(keyring, identityKey, deviceKey).createDeviceAuthorization(deviceKey),\n },\n deviceKey,\n ),\n recordCredential: async () => {}, // No-op.\n getProfile: () => undefined,\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["createCredential", "PublicKey", "createMockCredential", "signer", "issuer", "createCredential", "subject", "PublicKey", "Buffer", "from", "assertion", "payload", "value", "Trigger", "invariant", "Invitation", "sanitizeInvitation", "invitation", "invitationId", "type", "kind", "authMethod", "swarmKey", "state", "timeout", "performInvitation", "host", "guest", "options", "hooks", "hostComplete", "Trigger", "guestComplete", "authCode", "hostObservable", "createInvitation", "subscribe", "hostInvitation", "Invitation", "State", "CONNECTING", "onConnecting", "guestObservable", "acceptInvitation", "guestInvitation", "invariant", "equals", "CONNECTED", "onConnected", "READY_FOR_AUTHENTICATION", "onReady", "authenticate", "wait", "AUTHENTICATING", "onAuthenticating", "SUCCESS", "onSuccess", "wake", "CANCELLED", "onCancelled", "TIMEOUT", "onTimeout", "error", "onError", "AuthMethod", "NONE", "ServiceContext", "hostHandler", "getInvitationHandler", "Kind", "SPACE", "invitations", "share", "guestHandler", "join", "Context", "createCredentialSignerWithChain", "CredentialGenerator", "failUndefined", "SnapshotStore", "MetadataStore", "SpaceManager", "valueEncoding", "DataServiceSubscriptions", "testLocalDatabase", "FeedFactory", "FeedStore", "Keyring", "MemorySignalManager", "MemorySignalManagerContext", "MemoryTransportFactory", "NetworkManager", "createStorage", "StorageType", "BlobStore", "createServiceHost", "config", "signalManagerContext", "ClientServicesHost", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "createServiceContext", "signalContext", "MemorySignalManagerContext", "storage", "createStorage", "type", "StorageType", "RAM", "networkManager", "NetworkManager", "modelFactory", "createDefaultModelFactory", "ServiceContext", "createPeers", "numPeers", "Promise", "all", "Array", "from", "map", "peer", "open", "Context", "createIdentity", "syncItemsLocal", "db1", "db2", "testLocalDatabase", "TestBuilder", "_ctx", "createPeer", "peerOptions", "TestPeer", "onDispose", "destroy", "dispose", "constructor", "opts", "dataStore", "_props", "props", "keyring", "Keyring", "createDirectory", "feedStore", "FeedStore", "factory", "FeedFactory", "root", "signer", "hypercore", "valueEncoding", "metadataStore", "MetadataStore", "blobStore", "BlobStore", "snapshotStore", "SnapshotStore", "spaceManager", "SpaceManager", "identity", "signingContext", "failUndefined", "dataSpaceManager", "DataSpaceManager", "DataServiceSubscriptions", "createSigningContext", "reset", "identityKey", "createKey", "deviceKey", "credentialSigner", "createCredentialSignerWithChain", "credential", "CredentialGenerator", "createDeviceAuthorization", "recordCredential", "getProfile", "undefined"]
|
|
7
7
|
}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -1088,10 +1088,11 @@ var import_debug2 = require("@dxos/debug");
|
|
|
1088
1088
|
var import_invariant3 = require("@dxos/invariant");
|
|
1089
1089
|
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/identity/identity-service.ts";
|
|
1090
1090
|
var IdentityServiceImpl = class {
|
|
1091
|
-
constructor(_createIdentity, _identityManager, _keyring) {
|
|
1091
|
+
constructor(_createIdentity, _identityManager, _keyring, _onProfileUpdate) {
|
|
1092
1092
|
this._createIdentity = _createIdentity;
|
|
1093
1093
|
this._identityManager = _identityManager;
|
|
1094
1094
|
this._keyring = _keyring;
|
|
1095
|
+
this._onProfileUpdate = _onProfileUpdate;
|
|
1095
1096
|
}
|
|
1096
1097
|
async createIdentity(request) {
|
|
1097
1098
|
await this._createIdentity(request);
|
|
@@ -1122,7 +1123,7 @@ var IdentityServiceImpl = class {
|
|
|
1122
1123
|
async updateProfile(profile) {
|
|
1123
1124
|
(0, import_invariant3.invariant)(this._identityManager.identity, "Identity not initialized.", {
|
|
1124
1125
|
F: __dxlog_file4,
|
|
1125
|
-
L:
|
|
1126
|
+
L: 60,
|
|
1126
1127
|
S: this,
|
|
1127
1128
|
A: [
|
|
1128
1129
|
"this._identityManager.identity",
|
|
@@ -1130,12 +1131,13 @@ var IdentityServiceImpl = class {
|
|
|
1130
1131
|
]
|
|
1131
1132
|
});
|
|
1132
1133
|
await this._identityManager.updateProfile(profile);
|
|
1134
|
+
await this._onProfileUpdate?.(this._identityManager.identity.profileDocument);
|
|
1133
1135
|
return this._getIdentity();
|
|
1134
1136
|
}
|
|
1135
1137
|
async signPresentation({ presentation, nonce }) {
|
|
1136
1138
|
(0, import_invariant3.invariant)(this._identityManager.identity, "Identity not initialized.", {
|
|
1137
1139
|
F: __dxlog_file4,
|
|
1138
|
-
L:
|
|
1140
|
+
L: 67,
|
|
1139
1141
|
S: this,
|
|
1140
1142
|
A: [
|
|
1141
1143
|
"this._identityManager.identity",
|
|
@@ -2423,7 +2425,7 @@ var SpaceInvitationProtocol = class {
|
|
|
2423
2425
|
}
|
|
2424
2426
|
createIntroduction() {
|
|
2425
2427
|
return {
|
|
2426
|
-
profile: this._signingContext.
|
|
2428
|
+
profile: this._signingContext.getProfile()
|
|
2427
2429
|
};
|
|
2428
2430
|
}
|
|
2429
2431
|
async createAdmissionRequest() {
|
|
@@ -2601,7 +2603,7 @@ var getPlatform = () => {
|
|
|
2601
2603
|
};
|
|
2602
2604
|
|
|
2603
2605
|
// packages/sdk/client-services/src/version.ts
|
|
2604
|
-
var DXOS_VERSION = "0.3.5-main.
|
|
2606
|
+
var DXOS_VERSION = "0.3.5-main.e438076";
|
|
2605
2607
|
|
|
2606
2608
|
// packages/sdk/client-services/src/packlets/services/diagnostics.ts
|
|
2607
2609
|
var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/services/diagnostics.ts";
|
|
@@ -3316,6 +3318,21 @@ var DataSpace = class DataSpace2 {
|
|
|
3316
3318
|
await this._metadataStore.setWritableFeedKeys(this.key, this.inner.controlFeedKey, this.inner.dataFeedKey);
|
|
3317
3319
|
}
|
|
3318
3320
|
}
|
|
3321
|
+
// TODO(dmaretskyi): Use profile from signing context.
|
|
3322
|
+
async updateOwnProfile(profile) {
|
|
3323
|
+
const credential = await this._signingContext.credentialSigner.createCredential({
|
|
3324
|
+
subject: this._signingContext.identityKey,
|
|
3325
|
+
assertion: {
|
|
3326
|
+
"@type": "dxos.halo.credentials.MemberProfile",
|
|
3327
|
+
profile
|
|
3328
|
+
}
|
|
3329
|
+
});
|
|
3330
|
+
await this.inner.controlPipeline.writer.write({
|
|
3331
|
+
credential: {
|
|
3332
|
+
credential
|
|
3333
|
+
}
|
|
3334
|
+
});
|
|
3335
|
+
}
|
|
3319
3336
|
async createEpoch() {
|
|
3320
3337
|
const epoch = await this.dataPipeline.createEpoch();
|
|
3321
3338
|
const receipt = await this.inner.controlPipeline.writer.write({
|
|
@@ -3364,7 +3381,7 @@ var DataSpace = class DataSpace2 {
|
|
|
3364
3381
|
state: import_services7.SpaceState[this._state]
|
|
3365
3382
|
}, {
|
|
3366
3383
|
F: __dxlog_file12,
|
|
3367
|
-
L:
|
|
3384
|
+
L: 404,
|
|
3368
3385
|
S: this,
|
|
3369
3386
|
C: (f, a) => f(...a)
|
|
3370
3387
|
});
|
|
@@ -3424,7 +3441,7 @@ var spaceGenesis = async (keyring, signingContext, space) => {
|
|
|
3424
3441
|
"@type": "dxos.halo.credentials.SpaceMember",
|
|
3425
3442
|
spaceKey: space.key,
|
|
3426
3443
|
role: import_credentials12.SpaceMember.Role.ADMIN,
|
|
3427
|
-
profile: signingContext.
|
|
3444
|
+
profile: signingContext.getProfile(),
|
|
3428
3445
|
genesisFeedKey: space.controlFeedKey ?? (0, import_debug5.failUndefined)()
|
|
3429
3446
|
}
|
|
3430
3447
|
}),
|
|
@@ -3504,7 +3521,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3504
3521
|
async open() {
|
|
3505
3522
|
(0, import_log11.log)("open", void 0, {
|
|
3506
3523
|
F: __dxlog_file13,
|
|
3507
|
-
L:
|
|
3524
|
+
L: 83,
|
|
3508
3525
|
S: this,
|
|
3509
3526
|
C: (f, a) => f(...a)
|
|
3510
3527
|
});
|
|
@@ -3512,7 +3529,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3512
3529
|
id: this._instanceId
|
|
3513
3530
|
}), {
|
|
3514
3531
|
F: __dxlog_file13,
|
|
3515
|
-
L:
|
|
3532
|
+
L: 84,
|
|
3516
3533
|
S: this,
|
|
3517
3534
|
C: (f, a) => f(...a)
|
|
3518
3535
|
});
|
|
@@ -3520,7 +3537,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3520
3537
|
spaces: this._metadataStore.spaces.length
|
|
3521
3538
|
}, {
|
|
3522
3539
|
F: __dxlog_file13,
|
|
3523
|
-
L:
|
|
3540
|
+
L: 85,
|
|
3524
3541
|
S: this,
|
|
3525
3542
|
C: (f, a) => f(...a)
|
|
3526
3543
|
});
|
|
@@ -3530,7 +3547,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3530
3547
|
spaceMetadata
|
|
3531
3548
|
}, {
|
|
3532
3549
|
F: __dxlog_file13,
|
|
3533
|
-
L:
|
|
3550
|
+
L: 89,
|
|
3534
3551
|
S: this,
|
|
3535
3552
|
C: (f, a) => f(...a)
|
|
3536
3553
|
});
|
|
@@ -3541,7 +3558,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3541
3558
|
err
|
|
3542
3559
|
}, {
|
|
3543
3560
|
F: __dxlog_file13,
|
|
3544
|
-
L:
|
|
3561
|
+
L: 92,
|
|
3545
3562
|
S: this,
|
|
3546
3563
|
C: (f, a) => f(...a)
|
|
3547
3564
|
});
|
|
@@ -3558,7 +3575,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3558
3575
|
id: this._instanceId
|
|
3559
3576
|
}), {
|
|
3560
3577
|
F: __dxlog_file13,
|
|
3561
|
-
L:
|
|
3578
|
+
L: 105,
|
|
3562
3579
|
S: this,
|
|
3563
3580
|
C: (f, a) => f(...a)
|
|
3564
3581
|
});
|
|
@@ -3566,7 +3583,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3566
3583
|
async close() {
|
|
3567
3584
|
(0, import_log11.log)("close", void 0, {
|
|
3568
3585
|
F: __dxlog_file13,
|
|
3569
|
-
L:
|
|
3586
|
+
L: 110,
|
|
3570
3587
|
S: this,
|
|
3571
3588
|
C: (f, a) => f(...a)
|
|
3572
3589
|
});
|
|
@@ -3582,7 +3599,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3582
3599
|
async createSpace() {
|
|
3583
3600
|
(0, import_invariant11.invariant)(this._isOpen, "Not open.", {
|
|
3584
3601
|
F: __dxlog_file13,
|
|
3585
|
-
L:
|
|
3602
|
+
L: 123,
|
|
3586
3603
|
S: this,
|
|
3587
3604
|
A: [
|
|
3588
3605
|
"this._isOpen",
|
|
@@ -3603,7 +3620,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3603
3620
|
spaceKey
|
|
3604
3621
|
}, {
|
|
3605
3622
|
F: __dxlog_file13,
|
|
3606
|
-
L:
|
|
3623
|
+
L: 135,
|
|
3607
3624
|
S: this,
|
|
3608
3625
|
C: (f, a) => f(...a)
|
|
3609
3626
|
});
|
|
@@ -3613,7 +3630,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3613
3630
|
const memberCredential = credentials[1];
|
|
3614
3631
|
(0, import_invariant11.invariant)((0, import_credentials13.getCredentialAssertion)(memberCredential)["@type"] === "dxos.halo.credentials.SpaceMember", void 0, {
|
|
3615
3632
|
F: __dxlog_file13,
|
|
3616
|
-
L:
|
|
3633
|
+
L: 142,
|
|
3617
3634
|
S: this,
|
|
3618
3635
|
A: [
|
|
3619
3636
|
"getCredentialAssertion(memberCredential)['@type'] === 'dxos.halo.credentials.SpaceMember'",
|
|
@@ -3631,13 +3648,13 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3631
3648
|
opts
|
|
3632
3649
|
}, {
|
|
3633
3650
|
F: __dxlog_file13,
|
|
3634
|
-
L:
|
|
3651
|
+
L: 154,
|
|
3635
3652
|
S: this,
|
|
3636
3653
|
C: (f, a) => f(...a)
|
|
3637
3654
|
});
|
|
3638
3655
|
(0, import_invariant11.invariant)(this._isOpen, "Not open.", {
|
|
3639
3656
|
F: __dxlog_file13,
|
|
3640
|
-
L:
|
|
3657
|
+
L: 155,
|
|
3641
3658
|
S: this,
|
|
3642
3659
|
A: [
|
|
3643
3660
|
"this._isOpen",
|
|
@@ -3646,7 +3663,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3646
3663
|
});
|
|
3647
3664
|
(0, import_invariant11.invariant)(!this._spaces.has(opts.spaceKey), "Space already exists.", {
|
|
3648
3665
|
F: __dxlog_file13,
|
|
3649
|
-
L:
|
|
3666
|
+
L: 156,
|
|
3650
3667
|
S: this,
|
|
3651
3668
|
A: [
|
|
3652
3669
|
"!this._spaces.has(opts.spaceKey)",
|
|
@@ -3681,7 +3698,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3681
3698
|
metadata
|
|
3682
3699
|
}, {
|
|
3683
3700
|
F: __dxlog_file13,
|
|
3684
|
-
L:
|
|
3701
|
+
L: 189,
|
|
3685
3702
|
S: this,
|
|
3686
3703
|
C: (f, a) => f(...a)
|
|
3687
3704
|
});
|
|
@@ -3717,7 +3734,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3717
3734
|
onAuthFailure: () => {
|
|
3718
3735
|
import_log11.log.warn("auth failure", void 0, {
|
|
3719
3736
|
F: __dxlog_file13,
|
|
3720
|
-
L:
|
|
3737
|
+
L: 224,
|
|
3721
3738
|
S: this,
|
|
3722
3739
|
C: (f, a) => f(...a)
|
|
3723
3740
|
});
|
|
@@ -3741,7 +3758,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3741
3758
|
space: space.key
|
|
3742
3759
|
}, {
|
|
3743
3760
|
F: __dxlog_file13,
|
|
3744
|
-
L:
|
|
3761
|
+
L: 242,
|
|
3745
3762
|
S: this,
|
|
3746
3763
|
C: (f, a) => f(...a)
|
|
3747
3764
|
});
|
|
@@ -3753,7 +3770,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3753
3770
|
open: this._isOpen
|
|
3754
3771
|
}, {
|
|
3755
3772
|
F: __dxlog_file13,
|
|
3756
|
-
L:
|
|
3773
|
+
L: 249,
|
|
3757
3774
|
S: this,
|
|
3758
3775
|
C: (f, a) => f(...a)
|
|
3759
3776
|
});
|
|
@@ -3766,7 +3783,7 @@ var DataSpaceManager = class DataSpaceManager2 {
|
|
|
3766
3783
|
space: space.key
|
|
3767
3784
|
}, {
|
|
3768
3785
|
F: __dxlog_file13,
|
|
3769
|
-
L:
|
|
3786
|
+
L: 255,
|
|
3770
3787
|
S: this,
|
|
3771
3788
|
C: (f, a) => f(...a)
|
|
3772
3789
|
});
|
|
@@ -4010,7 +4027,7 @@ var SpacesServiceImpl = class {
|
|
|
4010
4027
|
identity: {
|
|
4011
4028
|
identityKey: member.key,
|
|
4012
4029
|
profile: {
|
|
4013
|
-
displayName: member.
|
|
4030
|
+
displayName: member.profile?.displayName
|
|
4014
4031
|
}
|
|
4015
4032
|
},
|
|
4016
4033
|
presence: member.removed ? import_services9.SpaceMember.PresenceState.REMOVED : isMe || peers.length > 0 ? import_services9.SpaceMember.PresenceState.ONLINE : import_services9.SpaceMember.PresenceState.OFFLINE,
|
|
@@ -4155,6 +4172,14 @@ var ServiceContext = class ServiceContext2 {
|
|
|
4155
4172
|
});
|
|
4156
4173
|
return factory(invitation);
|
|
4157
4174
|
}
|
|
4175
|
+
async broadcastProfileUpdate(profile) {
|
|
4176
|
+
if (!profile || !this.dataSpaceManager) {
|
|
4177
|
+
return;
|
|
4178
|
+
}
|
|
4179
|
+
for (const space of this.dataSpaceManager.spaces.values()) {
|
|
4180
|
+
await space.updateOwnProfile(profile);
|
|
4181
|
+
}
|
|
4182
|
+
}
|
|
4158
4183
|
async _acceptIdentity(params) {
|
|
4159
4184
|
const identity = await this.identityManager.acceptIdentity(params);
|
|
4160
4185
|
await this._initialize(new import_context9.Context());
|
|
@@ -4170,7 +4195,7 @@ var ServiceContext = class ServiceContext2 {
|
|
|
4170
4195
|
async _initialize(ctx) {
|
|
4171
4196
|
(0, import_log13.log)("initializing spaces...", void 0, {
|
|
4172
4197
|
F: __dxlog_file15,
|
|
4173
|
-
L:
|
|
4198
|
+
L: 199,
|
|
4174
4199
|
S: this,
|
|
4175
4200
|
C: (f, a) => f(...a)
|
|
4176
4201
|
});
|
|
@@ -4179,7 +4204,7 @@ var ServiceContext = class ServiceContext2 {
|
|
|
4179
4204
|
credentialSigner: identity.getIdentityCredentialSigner(),
|
|
4180
4205
|
identityKey: identity.identityKey,
|
|
4181
4206
|
deviceKey: identity.deviceKey,
|
|
4182
|
-
|
|
4207
|
+
getProfile: () => identity.profileDocument,
|
|
4183
4208
|
recordCredential: async (credential) => {
|
|
4184
4209
|
await identity.controlPipeline.writer.write({
|
|
4185
4210
|
credential: {
|
|
@@ -4193,7 +4218,7 @@ var ServiceContext = class ServiceContext2 {
|
|
|
4193
4218
|
this._handlerFactories.set(import_services10.Invitation.Kind.SPACE, (invitation) => {
|
|
4194
4219
|
(0, import_invariant13.invariant)(this.dataSpaceManager, "dataSpaceManager not initialized yet", {
|
|
4195
4220
|
F: __dxlog_file15,
|
|
4196
|
-
L:
|
|
4221
|
+
L: 222,
|
|
4197
4222
|
S: this,
|
|
4198
4223
|
A: [
|
|
4199
4224
|
"this.dataSpaceManager",
|
|
@@ -4217,7 +4242,7 @@ var ServiceContext = class ServiceContext2 {
|
|
|
4217
4242
|
details: assertion
|
|
4218
4243
|
}, {
|
|
4219
4244
|
F: __dxlog_file15,
|
|
4220
|
-
L:
|
|
4245
|
+
L: 238,
|
|
4221
4246
|
S: this,
|
|
4222
4247
|
C: (f, a) => f(...a)
|
|
4223
4248
|
});
|
|
@@ -4228,7 +4253,7 @@ var ServiceContext = class ServiceContext2 {
|
|
|
4228
4253
|
details: assertion
|
|
4229
4254
|
}, {
|
|
4230
4255
|
F: __dxlog_file15,
|
|
4231
|
-
L:
|
|
4256
|
+
L: 242,
|
|
4232
4257
|
S: this,
|
|
4233
4258
|
C: (f, a) => f(...a)
|
|
4234
4259
|
});
|
|
@@ -4239,7 +4264,7 @@ var ServiceContext = class ServiceContext2 {
|
|
|
4239
4264
|
details: assertion
|
|
4240
4265
|
}, {
|
|
4241
4266
|
F: __dxlog_file15,
|
|
4242
|
-
L:
|
|
4267
|
+
L: 247,
|
|
4243
4268
|
S: this,
|
|
4244
4269
|
C: (f, a) => f(...a)
|
|
4245
4270
|
});
|
|
@@ -4250,7 +4275,7 @@ var ServiceContext = class ServiceContext2 {
|
|
|
4250
4275
|
} catch (err) {
|
|
4251
4276
|
import_log13.log.catch(err, void 0, {
|
|
4252
4277
|
F: __dxlog_file15,
|
|
4253
|
-
L:
|
|
4278
|
+
L: 253,
|
|
4254
4279
|
S: this,
|
|
4255
4280
|
C: (f, a) => f(...a)
|
|
4256
4281
|
});
|
|
@@ -4898,7 +4923,7 @@ var ClientServicesHost = class ClientServicesHost2 {
|
|
|
4898
4923
|
this._serviceContext = new ServiceContext(this._storage, this._networkManager, this._signalManager, this._modelFactory);
|
|
4899
4924
|
this._serviceRegistry.setServices({
|
|
4900
4925
|
SystemService: this._systemService,
|
|
4901
|
-
IdentityService: new IdentityServiceImpl((params) => this._createIdentity(params), this._serviceContext.identityManager, this._serviceContext.keyring),
|
|
4926
|
+
IdentityService: new IdentityServiceImpl((params) => this._createIdentity(params), this._serviceContext.identityManager, this._serviceContext.keyring, (profile) => this._serviceContext.broadcastProfileUpdate(profile)),
|
|
4902
4927
|
InvitationsService: new InvitationsServiceImpl(this._serviceContext.invitations, (invitation) => this._serviceContext.getInvitationHandler(invitation)),
|
|
4903
4928
|
DevicesService: new DevicesServiceImpl(this._serviceContext.identityManager),
|
|
4904
4929
|
SpacesService: new SpacesServiceImpl(this._serviceContext.identityManager, this._serviceContext.spaceManager, this._serviceContext.dataServiceSubscriptions, async () => {
|
|
@@ -4935,7 +4960,7 @@ var ClientServicesHost = class ClientServicesHost2 {
|
|
|
4935
4960
|
deviceKey
|
|
4936
4961
|
}, {
|
|
4937
4962
|
F: __dxlog_file17,
|
|
4938
|
-
L:
|
|
4963
|
+
L: 317,
|
|
4939
4964
|
S: this,
|
|
4940
4965
|
C: (f, a) => f(...a)
|
|
4941
4966
|
});
|
|
@@ -4943,7 +4968,7 @@ var ClientServicesHost = class ClientServicesHost2 {
|
|
|
4943
4968
|
id: traceId
|
|
4944
4969
|
}), {
|
|
4945
4970
|
F: __dxlog_file17,
|
|
4946
|
-
L:
|
|
4971
|
+
L: 318,
|
|
4947
4972
|
S: this,
|
|
4948
4973
|
C: (f, a) => f(...a)
|
|
4949
4974
|
});
|
|
@@ -4957,7 +4982,7 @@ var ClientServicesHost = class ClientServicesHost2 {
|
|
|
4957
4982
|
deviceKey
|
|
4958
4983
|
}, {
|
|
4959
4984
|
F: __dxlog_file17,
|
|
4960
|
-
L:
|
|
4985
|
+
L: 329,
|
|
4961
4986
|
S: this,
|
|
4962
4987
|
C: (f, a) => f(...a)
|
|
4963
4988
|
});
|
|
@@ -4973,7 +4998,7 @@ var ClientServicesHost = class ClientServicesHost2 {
|
|
|
4973
4998
|
deviceKey
|
|
4974
4999
|
}, {
|
|
4975
5000
|
F: __dxlog_file17,
|
|
4976
|
-
L:
|
|
5001
|
+
L: 336,
|
|
4977
5002
|
S: this,
|
|
4978
5003
|
C: (f, a) => f(...a)
|
|
4979
5004
|
});
|
|
@@ -4984,13 +5009,13 @@ var ClientServicesHost = class ClientServicesHost2 {
|
|
|
4984
5009
|
id: traceId
|
|
4985
5010
|
}), {
|
|
4986
5011
|
F: __dxlog_file17,
|
|
4987
|
-
L:
|
|
5012
|
+
L: 341,
|
|
4988
5013
|
S: this,
|
|
4989
5014
|
C: (f, a) => f(...a)
|
|
4990
5015
|
});
|
|
4991
5016
|
(0, import_log16.log)("resetting...", void 0, {
|
|
4992
5017
|
F: __dxlog_file17,
|
|
4993
|
-
L:
|
|
5018
|
+
L: 343,
|
|
4994
5019
|
S: this,
|
|
4995
5020
|
C: (f, a) => f(...a)
|
|
4996
5021
|
});
|
|
@@ -4998,7 +5023,7 @@ var ClientServicesHost = class ClientServicesHost2 {
|
|
|
4998
5023
|
await this._storage.reset();
|
|
4999
5024
|
(0, import_log16.log)("reset", void 0, {
|
|
5000
5025
|
F: __dxlog_file17,
|
|
5001
|
-
L:
|
|
5026
|
+
L: 346,
|
|
5002
5027
|
S: this,
|
|
5003
5028
|
C: (f, a) => f(...a)
|
|
5004
5029
|
});
|
|
@@ -5006,7 +5031,7 @@ var ClientServicesHost = class ClientServicesHost2 {
|
|
|
5006
5031
|
id: traceId
|
|
5007
5032
|
}), {
|
|
5008
5033
|
F: __dxlog_file17,
|
|
5009
|
-
L:
|
|
5034
|
+
L: 347,
|
|
5010
5035
|
S: this,
|
|
5011
5036
|
C: (f, a) => f(...a)
|
|
5012
5037
|
});
|