@dxos/client-services 0.5.9-main.eacfffa → 0.5.9-next.728078d
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-J4DDMC6A.mjs → chunk-Q2PH3QCC.mjs} +436 -359
- package/dist/lib/browser/chunk-Q2PH3QCC.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +10 -5
- package/dist/lib/browser/index.mjs.map +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/packlets/testing/index.mjs +3 -10
- package/dist/lib/browser/packlets/testing/index.mjs.map +1 -1
- package/dist/lib/node/{chunk-6HFQ2SQ5.cjs → chunk-XZHIBOD3.cjs} +450 -371
- package/dist/lib/node/chunk-XZHIBOD3.cjs.map +7 -0
- package/dist/lib/node/index.cjs +50 -45
- package/dist/lib/node/index.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/packlets/testing/index.cjs +10 -17
- package/dist/lib/node/packlets/testing/index.cjs.map +1 -1
- package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
- package/dist/types/src/packlets/storage/index.d.ts +1 -0
- package/dist/types/src/packlets/storage/index.d.ts.map +1 -1
- package/dist/types/src/packlets/storage/profile-archive.d.ts +14 -0
- package/dist/types/src/packlets/storage/profile-archive.d.ts.map +1 -0
- package/dist/types/src/version.d.ts +1 -1
- package/package.json +36 -36
- package/src/packlets/invitations/invitations-handler.ts +5 -13
- package/src/packlets/storage/index.ts +1 -0
- package/src/packlets/storage/profile-archive.ts +97 -0
- package/src/version.ts +1 -1
- package/dist/lib/browser/chunk-J4DDMC6A.mjs.map +0 -7
- package/dist/lib/node/chunk-6HFQ2SQ5.cjs.map +0 -7
|
@@ -30,7 +30,7 @@ __export(testing_exports, {
|
|
|
30
30
|
sanitizeInvitation: () => sanitizeInvitation
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(testing_exports);
|
|
33
|
-
var
|
|
33
|
+
var import_chunk_XZHIBOD3 = require("../../chunk-XZHIBOD3.cjs");
|
|
34
34
|
var import_credentials = require("@dxos/credentials");
|
|
35
35
|
var import_keys = require("@dxos/keys");
|
|
36
36
|
var import_async = require("@dxos/async");
|
|
@@ -227,7 +227,7 @@ var createInvitation = async (host, options) => {
|
|
|
227
227
|
authMethod: import_services.Invitation.AuthMethod.NONE,
|
|
228
228
|
...options ?? {}
|
|
229
229
|
};
|
|
230
|
-
if (host instanceof
|
|
230
|
+
if (host instanceof import_chunk_XZHIBOD3.ServiceContext) {
|
|
231
231
|
return host.invitationsManager.createInvitation({
|
|
232
232
|
kind: import_services.Invitation.Kind.SPACE,
|
|
233
233
|
...options
|
|
@@ -237,7 +237,7 @@ var createInvitation = async (host, options) => {
|
|
|
237
237
|
};
|
|
238
238
|
var acceptInvitation = (guest, invitation, guestDeviceProfile) => {
|
|
239
239
|
invitation = sanitizeInvitation(invitation);
|
|
240
|
-
if (guest instanceof
|
|
240
|
+
if (guest instanceof import_chunk_XZHIBOD3.ServiceContext) {
|
|
241
241
|
return guest.invitationsManager.acceptInvitation({
|
|
242
242
|
invitation,
|
|
243
243
|
deviceProfile: guestDeviceProfile
|
|
@@ -245,9 +245,8 @@ var acceptInvitation = (guest, invitation, guestDeviceProfile) => {
|
|
|
245
245
|
}
|
|
246
246
|
return guest.join(invitation, guestDeviceProfile);
|
|
247
247
|
};
|
|
248
|
-
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/testing/test-builder.ts";
|
|
249
248
|
var createServiceHost = (config, signalManagerContext) => {
|
|
250
|
-
return new
|
|
249
|
+
return new import_chunk_XZHIBOD3.ClientServicesHost({
|
|
251
250
|
config,
|
|
252
251
|
signalManager: new import_messaging.MemorySignalManager(signalManagerContext),
|
|
253
252
|
transportFactory: import_network_manager.MemoryTransportFactory
|
|
@@ -263,7 +262,7 @@ var createServiceContext = async ({ signalContext = new import_messaging.MemoryS
|
|
|
263
262
|
});
|
|
264
263
|
const level = (0, import_testing.createTestLevel)();
|
|
265
264
|
await level.open();
|
|
266
|
-
return new
|
|
265
|
+
return new import_chunk_XZHIBOD3.ServiceContext(storage, level, networkManager, signalManager, {
|
|
267
266
|
invitationConnectionDefaultParams: {
|
|
268
267
|
controlHeartbeatInterval: 200
|
|
269
268
|
},
|
|
@@ -276,10 +275,7 @@ var createPeers = async (numPeers) => {
|
|
|
276
275
|
const peer = await createServiceContext({
|
|
277
276
|
signalContext
|
|
278
277
|
});
|
|
279
|
-
await peer.open(new import_context.Context(
|
|
280
|
-
F: __dxlog_file2,
|
|
281
|
-
L: 66
|
|
282
|
-
}));
|
|
278
|
+
await peer.open(new import_context.Context());
|
|
283
279
|
return peer;
|
|
284
280
|
}));
|
|
285
281
|
};
|
|
@@ -290,10 +286,7 @@ var createIdentity = async (peer) => {
|
|
|
290
286
|
var TestBuilder = class {
|
|
291
287
|
constructor() {
|
|
292
288
|
this.signalContext = new import_messaging.MemorySignalManagerContext();
|
|
293
|
-
this._ctx = new import_context.Context(
|
|
294
|
-
F: __dxlog_file2,
|
|
295
|
-
L: 79
|
|
296
|
-
});
|
|
289
|
+
this._ctx = new import_context.Context();
|
|
297
290
|
}
|
|
298
291
|
createPeer(peerOptions) {
|
|
299
292
|
const peer = new TestPeer(this.signalContext, peerOptions);
|
|
@@ -370,12 +363,12 @@ var TestPeer = class {
|
|
|
370
363
|
});
|
|
371
364
|
}
|
|
372
365
|
get dataSpaceManager() {
|
|
373
|
-
return this._props.dataSpaceManager ??= new
|
|
366
|
+
return this._props.dataSpaceManager ??= new import_chunk_XZHIBOD3.DataSpaceManager(this.spaceManager, this.metadataStore, this.keyring, this.identity, this.feedStore, this.echoHost, this.invitationsManager, this._opts.dataSpaceParams);
|
|
374
367
|
}
|
|
375
368
|
get invitationsManager() {
|
|
376
|
-
return this._props.invitationsManager ??= new
|
|
369
|
+
return this._props.invitationsManager ??= new import_chunk_XZHIBOD3.InvitationsManager(new import_chunk_XZHIBOD3.InvitationsHandler(this.networkManager), (invitation) => {
|
|
377
370
|
if (invitation.kind === import_services2.Invitation.Kind.SPACE) {
|
|
378
|
-
return new
|
|
371
|
+
return new import_chunk_XZHIBOD3.SpaceInvitationProtocol(this.dataSpaceManager, this.identity, this.keyring, invitation.spaceKey);
|
|
379
372
|
} else {
|
|
380
373
|
throw new Error("not implemented");
|
|
381
374
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
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
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 { InvitationEncoder, type AuthenticatingInvitation, type CancellableInvitation } from '@dxos/client-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\nimport { type DeviceProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';\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 InvitationEncoder.decode(InvitationEncoder.encode(invitation));\n};\n\nexport type InvitationHost = {\n share(options?: Partial<Invitation>): CancellableInvitation;\n};\n\nexport type InvitationGuest = {\n join(invitation: Invitation | string, deviceProfile?: DeviceProfileDocument): 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 guestDeviceProfile?: DeviceProfileDocument;\n codeInputDelay?: number;\n};\n\nexport type Result = { invitation?: Invitation; error?: Error };\n\nexport const performInvitation = ({\n host,\n guest,\n options,\n hooks,\n guestDeviceProfile,\n codeInputDelay,\n}: PerformInvitationParams): [Promise<Result>, Promise<Result>] => {\n let guestError = false;\n let guestConnected = false;\n const hostComplete = new Trigger<Result>();\n const guestComplete = new Trigger<Result>();\n const authCode = new Trigger<string>();\n\n void createInvitation(host, options).then((hostObservable) => {\n hostObservable.subscribe(\n async (hostInvitation: Invitation) => {\n switch (hostInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (guestConnected) {\n break;\n }\n guestConnected = true;\n if (hooks?.host?.onConnecting?.(hostObservable)) {\n break;\n }\n const guestObservable = acceptInvitation(guest, hostInvitation, guestDeviceProfile);\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 const code = await authCode.wait();\n if (codeInputDelay == null) {\n await guestObservable.authenticate(code);\n } else {\n setTimeout(async () => {\n if (!guestError) {\n await guestObservable.authenticate(code);\n }\n }, codeInputDelay);\n }\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 guestError = true;\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\n return [hostComplete.wait(), guestComplete.wait()];\n};\n\nconst createInvitation = async (\n host: ServiceContext | InvitationHost,\n options?: Partial<Invitation>,\n): Promise<CancellableInvitation> => {\n options ??= {\n authMethod: Invitation.AuthMethod.NONE,\n ...(options ?? {}),\n };\n\n if (host instanceof ServiceContext) {\n return host.invitationsManager.createInvitation({\n kind: Invitation.Kind.SPACE,\n ...options,\n });\n }\n\n return host.share(options);\n};\n\nconst acceptInvitation = (\n guest: ServiceContext | InvitationGuest,\n invitation: Invitation,\n guestDeviceProfile?: DeviceProfileDocument,\n): AuthenticatingInvitation => {\n invitation = sanitizeInvitation(invitation);\n\n if (guest instanceof ServiceContext) {\n return guest.invitationsManager.acceptInvitation({\n invitation,\n deviceProfile: guestDeviceProfile,\n });\n }\n\n return guest.join(invitation, guestDeviceProfile);\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 { EchoHost } from '@dxos/echo-db';\nimport { MetadataStore, SnapshotStore, SpaceManager, valueEncoding } from '@dxos/echo-pipeline';\nimport { FeedFactory, FeedStore } from '@dxos/feed-store';\nimport { Keyring } from '@dxos/keyring';\nimport { type LevelDB } from '@dxos/kv-store';\nimport { createTestLevel } from '@dxos/kv-store/testing';\nimport { MemorySignalManager, MemorySignalManagerContext } from '@dxos/messaging';\nimport { MemoryTransportFactory, SwarmNetworkManager } from '@dxos/network-manager';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\nimport { createStorage, StorageType, type Storage } from '@dxos/random-access-storage';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\n\nimport { InvitationsHandler, InvitationsManager, SpaceInvitationProtocol } from '../invitations';\nimport { ClientServicesHost, ServiceContext, type ServiceContextRuntimeParams } from '../services';\nimport { DataSpaceManager, type DataSpaceManagerRuntimeParams, 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 = async ({\n signalContext = new MemorySignalManagerContext(),\n storage = createStorage({ type: StorageType.RAM }),\n runtimeParams,\n}: {\n signalContext?: MemorySignalManagerContext;\n storage?: Storage;\n runtimeParams?: ServiceContextRuntimeParams;\n} = {}) => {\n const signalManager = new MemorySignalManager(signalContext);\n const networkManager = new SwarmNetworkManager({\n signalManager,\n transportFactory: MemoryTransportFactory,\n });\n const level = createTestLevel();\n await level.open();\n\n return new ServiceContext(storage, level, networkManager, signalManager, {\n invitationConnectionDefaultParams: { controlHeartbeatInterval: 200 },\n ...runtimeParams,\n });\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 = await 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\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 dataSpaceParams?: DataSpaceManagerRuntimeParams;\n};\n\nexport type TestPeerProps = {\n storage?: Storage;\n level?: LevelDB;\n feedStore?: FeedStore<any>;\n metadataStore?: MetadataStore;\n keyring?: Keyring;\n networkManager?: SwarmNetworkManager;\n spaceManager?: SpaceManager;\n dataSpaceManager?: DataSpaceManager;\n snapshotStore?: SnapshotStore;\n signingContext?: SigningContext;\n blobStore?: BlobStore;\n echoHost?: EchoHost;\n invitationsManager?: InvitationsManager;\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 level() {\n return (this._props.level ??= createTestLevel());\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 SwarmNetworkManager({\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 snapshotStore: this.snapshotStore,\n blobStore: this.blobStore,\n }));\n }\n\n get identity() {\n return this._props.signingContext ?? failUndefined();\n }\n\n get echoHost() {\n return (this._props.echoHost ??= new EchoHost({ kv: this.level }));\n }\n\n get dataSpaceManager(): DataSpaceManager {\n return (this._props.dataSpaceManager ??= new DataSpaceManager(\n this.spaceManager,\n this.metadataStore,\n this.keyring,\n this.identity,\n this.feedStore,\n this.echoHost,\n this.invitationsManager,\n this._opts.dataSpaceParams,\n ));\n }\n\n get invitationsManager() {\n return (this._props.invitationsManager ??= new InvitationsManager(\n new InvitationsHandler(this.networkManager),\n (invitation) => {\n if (invitation.kind === Invitation.Kind.SPACE) {\n return new SpaceInvitationProtocol(this.dataSpaceManager, this.identity!, this.keyring, invitation.spaceKey!);\n } else {\n throw new Error('not implemented');\n }\n },\n this.metadataStore,\n ));\n }\n\n async createIdentity() {\n this._props.signingContext ??= await createSigningContext(this.keyring);\n }\n\n async destroy() {\n await this.level.close();\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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
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_credentials", "import_services", "createMockCredential", "signer", "issuer", "createCredential", "subject", "PublicKey", "Buffer", "from", "assertion", "payload", "value", "sanitizeInvitation", "invitation", "InvitationEncoder", "decode", "encode", "performInvitation", "host", "guest", "options", "hooks", "guestDeviceProfile", "codeInputDelay", "guestError", "guestConnected", "hostComplete", "Trigger", "guestComplete", "authCode", "createInvitation", "then", "hostObservable", "subscribe", "hostInvitation", "state", "Invitation", "State", "CONNECTING", "onConnecting", "guestObservable", "acceptInvitation", "guestInvitation", "invariant", "swarmKey", "equals", "CONNECTED", "onConnected", "READY_FOR_AUTHENTICATION", "onReady", "code", "wait", "authenticate", "setTimeout", "AUTHENTICATING", "onAuthenticating", "SUCCESS", "onSuccess", "wake", "CANCELLED", "onCancelled", "TIMEOUT", "onTimeout", "error", "onError", "authMethod", "AuthMethod", "NONE", "ServiceContext", "invitationsManager", "kind", "Kind", "SPACE", "share", "deviceProfile", "join", "createServiceHost", "config", "signalManagerContext", "ClientServicesHost", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "createServiceContext", "signalContext", "MemorySignalManagerContext", "storage", "createStorage", "type", "StorageType", "RAM", "runtimeParams", "networkManager", "SwarmNetworkManager", "level", "createTestLevel", "open", "invitationConnectionDefaultParams", "controlHeartbeatInterval", "createPeers", "numPeers", "Promise", "all", "Array", "map", "peer", "Context", "createIdentity", "TestBuilder", "_ctx", "createPeer", "peerOptions", "TestPeer", "onDispose", "destroy", "dispose", "constructor", "_signalContext", "_opts", "dataStore", "_props", "props", "keyring", "Keyring", "createDirectory", "feedStore", "FeedStore", "factory", "FeedFactory", "root", "hypercore", "valueEncoding", "metadataStore", "MetadataStore", "blobStore", "BlobStore", "snapshotStore", "SnapshotStore", "spaceManager", "SpaceManager", "identity", "signingContext", "failUndefined", "echoHost", "EchoHost", "kv", "dataSpaceManager", "DataSpaceManager", "dataSpaceParams", "InvitationsManager", "InvitationsHandler", "SpaceInvitationProtocol", "spaceKey", "Error", "createSigningContext", "close", "reset", "identityKey", "createKey", "deviceKey", "credentialSigner", "createCredentialSignerWithChain", "credential", "CredentialGenerator", "createDeviceAuthorization", "recordCredential", "getProfile", "undefined"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-handler.ts"],"names":[],"mappings":";AAIA,OAAO,EAAS,KAAK,UAAU,EAA8B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AAOnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAQzF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAQhE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAG1C,oBAAoB,CAClB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,GACrB,IAAI;IAiHP,gBAAgB,CACd,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,EAClC,aAAa,CAAC,EAAE,qBAAqB,GACpC,IAAI;YA+JO,UAAU;IA2BxB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsD3B,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-handler.ts"],"names":[],"mappings":";AAIA,OAAO,EAAS,KAAK,UAAU,EAA8B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE/F,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AAOnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAQzF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAQhE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAG1C,oBAAoB,CAClB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,GACrB,IAAI;IAiHP,gBAAgB,CACd,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,EAClC,aAAa,CAAC,EAAE,qBAAqB,GACpC,IAAI;YA+JO,UAAU;IA2BxB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsD3B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;YAUR,mBAAmB;YA6BnB,mBAAmB;CAsBlC;AAED,eAAO,MAAM,sBAAsB,QAAO,gBAGzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/storage/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/storage/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LevelDB } from '@dxos/kv-store';
|
|
2
|
+
import { type ProfileArchive } from '@dxos/protocols';
|
|
3
|
+
import type { Storage } from '@dxos/random-access-storage';
|
|
4
|
+
export declare const encodeProfileArchive: (profile: ProfileArchive) => Uint8Array;
|
|
5
|
+
export declare const decodeProfileArchive: (data: Uint8Array) => ProfileArchive;
|
|
6
|
+
export declare const exportProfileData: ({ storage, level, }: {
|
|
7
|
+
storage: Storage;
|
|
8
|
+
level: LevelDB;
|
|
9
|
+
}) => Promise<ProfileArchive>;
|
|
10
|
+
export declare const importProfileData: ({ storage, level, }: {
|
|
11
|
+
storage: Storage;
|
|
12
|
+
level: LevelDB;
|
|
13
|
+
}, archive: ProfileArchive) => Promise<void>;
|
|
14
|
+
//# sourceMappingURL=profile-archive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-archive.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/storage/profile-archive.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAG3D,eAAO,MAAM,oBAAoB,YAAa,cAAc,KAAG,UAAkC,CAAC;AAElG,eAAO,MAAM,oBAAoB,SAAU,UAAU,KAAG,cAAmC,CAAC;AAE5F,eAAO,MAAM,iBAAiB,wBAG3B;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,KAAG,QAAQ,cAAc,CAqCzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,wBAIzB;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,WACQ,cAAc,KACtB,QAAQ,IAAI,CA0Bd,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const DXOS_VERSION = "0.5.9-
|
|
1
|
+
export declare const DXOS_VERSION = "0.5.9-next.728078d";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/client-services",
|
|
3
|
-
"version": "0.5.9-
|
|
3
|
+
"version": "0.5.9-next.728078d",
|
|
4
4
|
"description": "DXOS client services implementation",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -23,45 +23,45 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"platform": "^1.3.6",
|
|
26
|
-
"@dxos/async": "0.5.9-
|
|
27
|
-
"@dxos/automerge": "0.5.9-
|
|
28
|
-
"@dxos/client-protocol": "0.5.9-
|
|
29
|
-
"@dxos/codec-protobuf": "0.5.9-
|
|
30
|
-
"@dxos/
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/
|
|
33
|
-
"@dxos/debug": "0.5.9-
|
|
34
|
-
"@dxos/
|
|
35
|
-
"@dxos/echo-db": "0.5.9-
|
|
36
|
-
"@dxos/echo-
|
|
37
|
-
"@dxos/echo-
|
|
38
|
-
"@dxos/echo-schema": "0.5.9-
|
|
39
|
-
"@dxos/
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/node-std": "0.5.9-
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/protocols": "0.5.9-
|
|
51
|
-
"@dxos/random-access-storage": "0.5.9-
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/teleport-extension-
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/teleport-extension-
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/
|
|
58
|
-
"@dxos/util": "0.5.9-
|
|
59
|
-
"@dxos/websocket-rpc": "0.5.9-
|
|
26
|
+
"@dxos/async": "0.5.9-next.728078d",
|
|
27
|
+
"@dxos/automerge": "0.5.9-next.728078d",
|
|
28
|
+
"@dxos/client-protocol": "0.5.9-next.728078d",
|
|
29
|
+
"@dxos/codec-protobuf": "0.5.9-next.728078d",
|
|
30
|
+
"@dxos/context": "0.5.9-next.728078d",
|
|
31
|
+
"@dxos/config": "0.5.9-next.728078d",
|
|
32
|
+
"@dxos/crypto": "0.5.9-next.728078d",
|
|
33
|
+
"@dxos/debug": "0.5.9-next.728078d",
|
|
34
|
+
"@dxos/credentials": "0.5.9-next.728078d",
|
|
35
|
+
"@dxos/echo-db": "0.5.9-next.728078d",
|
|
36
|
+
"@dxos/echo-protocol": "0.5.9-next.728078d",
|
|
37
|
+
"@dxos/echo-pipeline": "0.5.9-next.728078d",
|
|
38
|
+
"@dxos/echo-schema": "0.5.9-next.728078d",
|
|
39
|
+
"@dxos/indexing": "0.5.9-next.728078d",
|
|
40
|
+
"@dxos/invariant": "0.5.9-next.728078d",
|
|
41
|
+
"@dxos/keyring": "0.5.9-next.728078d",
|
|
42
|
+
"@dxos/feed-store": "0.5.9-next.728078d",
|
|
43
|
+
"@dxos/kv-store": "0.5.9-next.728078d",
|
|
44
|
+
"@dxos/keys": "0.5.9-next.728078d",
|
|
45
|
+
"@dxos/log": "0.5.9-next.728078d",
|
|
46
|
+
"@dxos/messaging": "0.5.9-next.728078d",
|
|
47
|
+
"@dxos/network-manager": "0.5.9-next.728078d",
|
|
48
|
+
"@dxos/node-std": "0.5.9-next.728078d",
|
|
49
|
+
"@dxos/lock-file": "0.5.9-next.728078d",
|
|
50
|
+
"@dxos/protocols": "0.5.9-next.728078d",
|
|
51
|
+
"@dxos/random-access-storage": "0.5.9-next.728078d",
|
|
52
|
+
"@dxos/teleport": "0.5.9-next.728078d",
|
|
53
|
+
"@dxos/teleport-extension-object-sync": "0.5.9-next.728078d",
|
|
54
|
+
"@dxos/rpc": "0.5.9-next.728078d",
|
|
55
|
+
"@dxos/teleport-extension-gossip": "0.5.9-next.728078d",
|
|
56
|
+
"@dxos/timeframe": "0.5.9-next.728078d",
|
|
57
|
+
"@dxos/tracing": "0.5.9-next.728078d",
|
|
58
|
+
"@dxos/util": "0.5.9-next.728078d",
|
|
59
|
+
"@dxos/websocket-rpc": "0.5.9-next.728078d"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@types/platform": "^1.3.4",
|
|
63
63
|
"@types/readable-stream": "^2.3.9",
|
|
64
|
-
"@dxos/signal": "0.5.9-
|
|
64
|
+
"@dxos/signal": "0.5.9-next.728078d"
|
|
65
65
|
},
|
|
66
66
|
"publishConfig": {
|
|
67
67
|
"access": "public"
|
|
@@ -435,19 +435,11 @@ export class InvitationsHandler {
|
|
|
435
435
|
}
|
|
436
436
|
|
|
437
437
|
private _logStateUpdate(invitation: Invitation, actor: any, newState: Invitation.State) {
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
});
|
|
444
|
-
} else {
|
|
445
|
-
log.info('invitation state update', {
|
|
446
|
-
actor: actor?.constructor.name,
|
|
447
|
-
newState: stateToString(newState),
|
|
448
|
-
oldState: stateToString(invitation.state),
|
|
449
|
-
});
|
|
450
|
-
}
|
|
438
|
+
log('invitation state update', {
|
|
439
|
+
actor: actor?.constructor.name,
|
|
440
|
+
newState: stateToString(newState),
|
|
441
|
+
oldState: stateToString(invitation.state),
|
|
442
|
+
});
|
|
451
443
|
}
|
|
452
444
|
|
|
453
445
|
private _isNotTerminal(currentState: Invitation.State): boolean {
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { cbor } from '@dxos/automerge/automerge-repo';
|
|
6
|
+
import { invariant } from '@dxos/invariant';
|
|
7
|
+
import type { LevelDB } from '@dxos/kv-store';
|
|
8
|
+
import { log } from '@dxos/log';
|
|
9
|
+
import { ProfileArchiveEntryType, type ProfileArchive } from '@dxos/protocols';
|
|
10
|
+
import type { Storage } from '@dxos/random-access-storage';
|
|
11
|
+
import { arrayToBuffer } from '@dxos/util';
|
|
12
|
+
|
|
13
|
+
export const encodeProfileArchive = (profile: ProfileArchive): Uint8Array => cbor.encode(profile);
|
|
14
|
+
|
|
15
|
+
export const decodeProfileArchive = (data: Uint8Array): ProfileArchive => cbor.decode(data);
|
|
16
|
+
|
|
17
|
+
export const exportProfileData = async ({
|
|
18
|
+
storage,
|
|
19
|
+
level,
|
|
20
|
+
}: {
|
|
21
|
+
storage: Storage;
|
|
22
|
+
level: LevelDB;
|
|
23
|
+
}): Promise<ProfileArchive> => {
|
|
24
|
+
const archive: ProfileArchive = { storage: [], meta: { timestamp: new Date().toISOString() } };
|
|
25
|
+
|
|
26
|
+
{
|
|
27
|
+
const directory = await storage.createDirectory();
|
|
28
|
+
const files = await directory.list();
|
|
29
|
+
|
|
30
|
+
log.info('begin exporting files', { count: files.length });
|
|
31
|
+
for (const filename of files) {
|
|
32
|
+
const file = await directory.getOrCreateFile(filename);
|
|
33
|
+
const { size } = await file.stat();
|
|
34
|
+
const data = await file.read(0, size);
|
|
35
|
+
archive.storage.push({
|
|
36
|
+
type: ProfileArchiveEntryType.FILE,
|
|
37
|
+
key: filename,
|
|
38
|
+
value: data,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
log.info('done exporting files', { count: files.length });
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
{
|
|
45
|
+
log.info('begin exporting kv pairs');
|
|
46
|
+
const iter = await level.iterator<Uint8Array, Uint8Array>({ keyEncoding: 'binary', valueEncoding: 'binary' });
|
|
47
|
+
let count = 0;
|
|
48
|
+
for await (const [key, value] of iter) {
|
|
49
|
+
archive.storage.push({
|
|
50
|
+
type: ProfileArchiveEntryType.KEY_VALUE,
|
|
51
|
+
key,
|
|
52
|
+
value,
|
|
53
|
+
});
|
|
54
|
+
count++;
|
|
55
|
+
}
|
|
56
|
+
log.info('done exporting kv pairs', { count });
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return archive;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export const importProfileData = async (
|
|
63
|
+
{
|
|
64
|
+
storage,
|
|
65
|
+
level,
|
|
66
|
+
}: {
|
|
67
|
+
storage: Storage;
|
|
68
|
+
level: LevelDB;
|
|
69
|
+
},
|
|
70
|
+
archive: ProfileArchive,
|
|
71
|
+
): Promise<void> => {
|
|
72
|
+
const batch = level.batch();
|
|
73
|
+
|
|
74
|
+
for (const entry of archive.storage) {
|
|
75
|
+
switch (entry.type) {
|
|
76
|
+
case ProfileArchiveEntryType.FILE: {
|
|
77
|
+
const directory = await storage.createDirectory();
|
|
78
|
+
invariant(typeof entry.key === 'string', 'Invalid key type');
|
|
79
|
+
const file = await directory.getOrCreateFile(entry.key);
|
|
80
|
+
invariant(entry.value instanceof Uint8Array, 'Invalid value type');
|
|
81
|
+
await file.write(0, arrayToBuffer(entry.value));
|
|
82
|
+
await file.close();
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
case ProfileArchiveEntryType.KEY_VALUE: {
|
|
86
|
+
invariant(entry.key instanceof Uint8Array, 'Invalid key type');
|
|
87
|
+
invariant(entry.value instanceof Uint8Array, 'Invalid value type');
|
|
88
|
+
batch.put(entry.key, entry.value, { keyEncoding: 'binary', valueEncoding: 'binary' });
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
default:
|
|
92
|
+
throw new Error(`Invalid entry type: ${entry.type}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
await batch.write();
|
|
97
|
+
};
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const DXOS_VERSION = "0.5.9-
|
|
1
|
+
export const DXOS_VERSION = "0.5.9-next.728078d";
|