@dxos/client-services 0.6.12-staging.e11e696 → 0.6.12
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-67FEJJ6J.mjs → chunk-TOAILL4T.mjs} +5127 -5565
- package/dist/lib/browser/chunk-TOAILL4T.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +3 -3
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +6 -5
- package/dist/lib/browser/testing/index.mjs.map +2 -2
- package/dist/lib/node/{chunk-2KIDYJ7O.cjs → chunk-H6C4XY6B.cjs} +4908 -5346
- package/dist/lib/node/chunk-H6C4XY6B.cjs.map +7 -0
- package/dist/lib/node/index.cjs +46 -46
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +12 -11
- package/dist/lib/node/testing/index.cjs.map +2 -2
- package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/authenticator.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/authenticator.test.d.ts +2 -0
- package/dist/types/src/packlets/identity/authenticator.test.d.ts.map +1 -0
- package/dist/types/src/packlets/identity/contacts-service.d.ts +1 -1
- package/dist/types/src/packlets/identity/contacts-service.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/identity-manager.d.ts +7 -19
- package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/identity.d.ts +1 -8
- package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitation-host-extension.d.ts.map +1 -1
- package/dist/types/src/packlets/services/automerge-host.test.d.ts +2 -0
- package/dist/types/src/packlets/services/automerge-host.test.d.ts.map +1 -0
- package/dist/types/src/packlets/services/service-context.d.ts +6 -7
- package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-host.d.ts +0 -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 +3 -4
- package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/data-space.d.ts +3 -3
- package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts +0 -3
- package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/epoch-migrations.d.ts +1 -1
- package/dist/types/src/packlets/spaces/epoch-migrations.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/notarization-plugin.d.ts +6 -31
- package/dist/types/src/packlets/spaces/notarization-plugin.d.ts.map +1 -1
- package/dist/types/src/packlets/storage/storage.d.ts.map +1 -1
- package/dist/types/src/packlets/testing/test-builder.d.ts +2 -1
- package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
- package/dist/types/src/packlets/worker/worker-runtime.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +1 -1
- package/dist/types/src/version.d.ts.map +1 -1
- package/package.json +39 -43
- package/src/packlets/devices/devices-service.test.ts +5 -4
- package/src/packlets/diagnostics/diagnostics-broadcast.ts +0 -1
- package/src/packlets/identity/{authenticator.node.test.ts → authenticator.test.ts} +3 -2
- package/src/packlets/identity/authenticator.ts +2 -5
- package/src/packlets/identity/contacts-service.ts +1 -1
- package/src/packlets/identity/identity-manager.test.ts +6 -5
- package/src/packlets/identity/identity-manager.ts +19 -35
- package/src/packlets/identity/identity-service.test.ts +8 -4
- package/src/packlets/identity/identity.test.ts +239 -128
- package/src/packlets/identity/identity.ts +8 -42
- package/src/packlets/invitations/device-invitation-protocol.test.ts +4 -7
- package/src/packlets/invitations/invitation-host-extension.ts +3 -0
- package/src/packlets/invitations/invitations-handler.test.ts +7 -14
- package/src/packlets/invitations/invitations-handler.ts +1 -1
- package/src/packlets/invitations/space-invitation-protocol.test.ts +3 -4
- package/src/packlets/logging/logging.test.ts +2 -1
- package/src/packlets/network/network-service.test.ts +3 -2
- package/src/packlets/services/automerge-host.test.ts +60 -0
- package/src/packlets/services/service-context.test.ts +1 -3
- package/src/packlets/services/service-context.ts +28 -64
- package/src/packlets/services/service-host.test.ts +12 -8
- package/src/packlets/services/service-host.ts +6 -8
- package/src/packlets/services/service-registry.test.ts +2 -1
- package/src/packlets/spaces/data-space-manager.test.ts +2 -2
- package/src/packlets/spaces/data-space-manager.ts +2 -9
- package/src/packlets/spaces/data-space.ts +6 -30
- package/src/packlets/spaces/edge-feed-replicator.ts +22 -80
- package/src/packlets/spaces/epoch-migrations.ts +2 -2
- package/src/packlets/spaces/notarization-plugin.test.ts +7 -10
- package/src/packlets/spaces/notarization-plugin.ts +29 -169
- package/src/packlets/spaces/spaces-service.test.ts +9 -5
- package/src/packlets/storage/storage.ts +1 -0
- package/src/packlets/system/system-service.test.ts +2 -1
- package/src/packlets/testing/test-builder.ts +3 -2
- package/src/packlets/worker/worker-runtime.ts +2 -2
- package/src/version.ts +5 -1
- package/dist/lib/browser/chunk-67FEJJ6J.mjs.map +0 -7
- package/dist/lib/node/chunk-2KIDYJ7O.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-36ZRRDQI.mjs +0 -8154
- package/dist/lib/node-esm/chunk-36ZRRDQI.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -416
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/testing/index.mjs +0 -418
- package/dist/lib/node-esm/testing/index.mjs.map +0 -7
- package/dist/types/src/packlets/identity/authenticator.node.test.d.ts +0 -2
- package/dist/types/src/packlets/identity/authenticator.node.test.d.ts.map +0 -1
- package/dist/types/src/packlets/spaces/edge-feed-replicator.test.d.ts +0 -2
- package/dist/types/src/packlets/spaces/edge-feed-replicator.test.d.ts.map +0 -1
- package/dist/types/src/testing/setup.d.ts +0 -3
- package/dist/types/src/testing/setup.d.ts.map +0 -1
- package/src/packlets/spaces/edge-feed-replicator.test.ts +0 -251
- package/src/testing/setup.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-feed-replicator.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/edge-feed-replicator.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"edge-feed-replicator.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/edge-feed-replicator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAgB,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAQrD,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+D;IAEtF,OAAO,CAAC,cAAc,CAAC,CAAsB;IAC7C,OAAO,CAAC,UAAU,CAAS;IAC3B;;OAEG;IACH,OAAO,CAAC,aAAa,CAAqD;IAE1E;;OAEG;IACH,OAAO,CAAC,UAAU,CAAoD;gBAE1D,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,wBAAwB;cAMnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cA+BtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC;IASpC,OAAO,CAAC,aAAa;YAIP,cAAc;YAad,YAAY;IAkB1B,OAAO,CAAC,UAAU;YAiDJ,WAAW;YA0BX,gBAAgB;YAkBhB,mBAAmB;CAYlC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Context } from '@dxos/context';
|
|
2
|
-
import { type EchoHost } from '@dxos/echo-
|
|
2
|
+
import { type EchoHost } from '@dxos/echo-db';
|
|
3
3
|
import type { PublicKey, SpaceId } from '@dxos/keys';
|
|
4
4
|
import { CreateEpochRequest } from '@dxos/protocols/proto/dxos/client/services';
|
|
5
5
|
export type MigrationContext = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-migrations.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/epoch-migrations.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"epoch-migrations.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/epoch-migrations.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IAEnB,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,eAAO,MAAM,iBAAiB,QAAe,OAAO,WAAW,gBAAgB,KAAG,OAAO,CAAC,eAAe,CA8GxG,CAAC"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context } from '@dxos/context';
|
|
2
2
|
import { type CredentialProcessor } from '@dxos/credentials';
|
|
3
|
-
import { type EdgeHttpClient } from '@dxos/edge-client';
|
|
4
3
|
import { type FeedWriter } from '@dxos/feed-store';
|
|
5
|
-
import { type SpaceId } from '@dxos/keys';
|
|
6
|
-
import { type Runtime } from '@dxos/protocols/proto/dxos/config';
|
|
7
4
|
import { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
|
|
8
5
|
import { type NotarizationService, type NotarizeRequest } from '@dxos/protocols/proto/dxos/mesh/teleport/notarization';
|
|
9
6
|
import { type ExtensionContext, RpcExtension } from '@dxos/teleport';
|
|
10
|
-
export type NotarizationPluginParams = {
|
|
11
|
-
spaceId: SpaceId;
|
|
12
|
-
edgeClient?: EdgeHttpClient;
|
|
13
|
-
edgeFeatures?: Runtime.Client.EdgeFeatures;
|
|
14
|
-
};
|
|
15
7
|
export type NotarizeParams = {
|
|
16
8
|
/**
|
|
17
9
|
* For cancellation.
|
|
@@ -38,52 +30,35 @@ export type NotarizeParams = {
|
|
|
38
30
|
* @default {@link DEFAULT_SUCCESS_DELAY}
|
|
39
31
|
*/
|
|
40
32
|
successDelay?: number;
|
|
41
|
-
/**
|
|
42
|
-
* A random amount of time before making or retrying an edge request to help prevent large bursts of requests.
|
|
43
|
-
*/
|
|
44
|
-
edgeRetryJitter?: number;
|
|
45
33
|
};
|
|
46
34
|
/**
|
|
47
35
|
* See NotarizationService proto.
|
|
48
36
|
*/
|
|
49
|
-
export declare class NotarizationPlugin
|
|
37
|
+
export declare class NotarizationPlugin implements CredentialProcessor {
|
|
38
|
+
private readonly _ctx;
|
|
50
39
|
private readonly _extensionOpened;
|
|
51
40
|
private _writer;
|
|
52
41
|
private readonly _extensions;
|
|
53
42
|
private readonly _processedCredentials;
|
|
54
43
|
private readonly _processCredentialsTriggers;
|
|
55
|
-
private readonly _spaceId;
|
|
56
|
-
private readonly _edgeClient;
|
|
57
|
-
constructor(params: NotarizationPluginParams);
|
|
58
44
|
get hasWriter(): boolean;
|
|
59
|
-
|
|
60
|
-
|
|
45
|
+
open(): Promise<void>;
|
|
46
|
+
close(): Promise<void>;
|
|
61
47
|
/**
|
|
62
48
|
* Request credentials to be notarized.
|
|
63
49
|
*/
|
|
64
|
-
notarize({ ctx: opCtx, credentials, timeout, retryTimeout, successDelay,
|
|
65
|
-
private _tryNotarizeCredentialsWithPeers;
|
|
66
|
-
private _tryNotarizeCredentialsWithEdge;
|
|
50
|
+
notarize({ ctx: opCtx, credentials, timeout, retryTimeout, successDelay, }: NotarizeParams): Promise<void>;
|
|
67
51
|
/**
|
|
68
52
|
* Called with credentials arriving from the control pipeline.
|
|
69
53
|
*/
|
|
70
54
|
processCredential(credential: Credential): Promise<void>;
|
|
71
55
|
setWriter(writer: FeedWriter<Credential>): void;
|
|
72
|
-
/**
|
|
73
|
-
* The method is used only for adding agent feeds to spaces.
|
|
74
|
-
* When an agent is created we can admit them into all the existing spaces. In case the operation fails
|
|
75
|
-
* this method will fix it on the next space open.
|
|
76
|
-
* Given how rarely this happens there's no need to poll the endpoint.
|
|
77
|
-
*/
|
|
78
|
-
private _notarizePendingEdgeCredentials;
|
|
79
56
|
private _waitUntilProcessed;
|
|
80
57
|
/**
|
|
81
58
|
* Requests from other peers to notarize credentials.
|
|
82
59
|
*/
|
|
83
60
|
private _onNotarize;
|
|
84
|
-
private _notarizeCredentials;
|
|
85
61
|
createExtension(): NotarizationTeleportExtension;
|
|
86
|
-
private _scheduleTimeout;
|
|
87
62
|
}
|
|
88
63
|
export type NotarizationTeleportExtensionParams = {
|
|
89
64
|
onOpen: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notarization-plugin.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/notarization-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"notarization-plugin.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/notarization-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKnD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,uDAAuD,CAAC;AACvH,OAAO,EAAE,KAAK,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAWrE,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAe;IAEhD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6C;IACnF,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAsD;IAElG,IAAI,SAAS,YAEZ;IAEK,IAAI;IAEJ,KAAK;IAIX;;OAEG;IACG,QAAQ,CAAC,EACb,GAAG,EAAE,KAAK,EACV,WAAW,EACX,OAAkC,EAClC,YAAoC,EACpC,YAAoC,GACrC,EAAE,cAAc;IA+EjB;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,UAAU;IAS9C,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC;YAK1B,mBAAmB;IAOjC;;OAEG;YACW,WAAW;IAazB,eAAe;CAehB;AAED,MAAM,MAAM,mCAAmC,GAAG;IAChD,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,qBAAa,6BAA8B,SAAQ,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,mCAAmC;cAWzD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAUjC,MAAM,CAAC,GAAG,EAAE,gBAAgB;IAK5B,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS;CAI/C;AAED,KAAK,QAAQ,GAAG;IACd,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/storage/storage.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAO5D,eAAO,MAAM,oBAAoB,WAAY,OAAO,CAAC,MAAM,CAAC,OAAO;;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/storage/storage.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAO5D,eAAO,MAAM,oBAAoB,WAAY,OAAO,CAAC,MAAM,CAAC,OAAO;;CAsBlE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Config } from '@dxos/config';
|
|
2
|
-
import { EchoHost
|
|
2
|
+
import { EchoHost } from '@dxos/echo-db';
|
|
3
|
+
import { MetadataStore, SpaceManager, MeshEchoReplicator } from '@dxos/echo-pipeline';
|
|
3
4
|
import { FeedStore } from '@dxos/feed-store';
|
|
4
5
|
import { Keyring } from '@dxos/keyring';
|
|
5
6
|
import { type LevelDB } from '@dxos/kv-store';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/testing/test-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAiB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/testing/test-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/worker/worker-runtime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAW3C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3C,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/worker/worker-runtime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAW3C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3C,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyC;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,qBAAqB,CAAC,CAAgB;IAC9C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,uBAAuB,CAAkB;gBAErC,EACV,OAA0C,EAC1C,cAAc,EACd,WAAW,EACX,WAAW,EACX,MAAM,GACP,EAAE,oBAAoB;IAavB,IAAI,IAAI,uBAEP;IAEK,KAAK;IAwCL,IAAI;IASV;;OAEG;IACG,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAoC3E;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAoBzB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const DXOS_VERSION = "0.6.12
|
|
1
|
+
export declare const DXOS_VERSION = "0.6.12";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/client-services",
|
|
3
|
-
"version": "0.6.12
|
|
3
|
+
"version": "0.6.12",
|
|
4
4
|
"description": "DXOS client services implementation",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -10,16 +10,14 @@
|
|
|
10
10
|
".": {
|
|
11
11
|
"browser": "./dist/lib/browser/index.mjs",
|
|
12
12
|
"node": {
|
|
13
|
-
"
|
|
14
|
-
"default": "./dist/lib/node-esm/index.mjs"
|
|
13
|
+
"default": "./dist/lib/node/index.cjs"
|
|
15
14
|
},
|
|
16
15
|
"types": "./dist/types/src/index.d.ts"
|
|
17
16
|
},
|
|
18
17
|
"./testing": {
|
|
19
18
|
"browser": "./dist/lib/browser/testing/index.mjs",
|
|
20
19
|
"node": {
|
|
21
|
-
"
|
|
22
|
-
"default": "./dist/lib/node-esm/testing/index.mjs"
|
|
20
|
+
"default": "./dist/lib/node/testing/index.cjs"
|
|
23
21
|
},
|
|
24
22
|
"types": "./dist/types/src/testing/index.d.ts"
|
|
25
23
|
}
|
|
@@ -47,48 +45,46 @@
|
|
|
47
45
|
"dependencies": {
|
|
48
46
|
"cbor-x": "^1.5.4",
|
|
49
47
|
"platform": "^1.3.6",
|
|
50
|
-
"@dxos/async": "0.6.12
|
|
51
|
-
"@dxos/automerge": "0.6.12
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/credentials": "0.6.12
|
|
57
|
-
"@dxos/debug": "0.6.12
|
|
58
|
-
"@dxos/crypto": "0.6.12
|
|
59
|
-
"@dxos/echo-db": "0.6.12
|
|
60
|
-
"@dxos/echo-pipeline": "0.6.12
|
|
61
|
-
"@dxos/echo-protocol": "0.6.12
|
|
62
|
-
"@dxos/echo-schema": "0.6.12
|
|
63
|
-
"@dxos/edge-client": "0.6.12
|
|
64
|
-
"@dxos/feed-store": "0.6.12
|
|
65
|
-
"@dxos/indexing": "0.6.12
|
|
66
|
-
"@dxos/invariant": "0.6.12
|
|
67
|
-
"@dxos/
|
|
68
|
-
"@dxos/
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/
|
|
71
|
-
"@dxos/
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/
|
|
74
|
-
"@dxos/
|
|
75
|
-
"@dxos/
|
|
76
|
-
"@dxos/
|
|
77
|
-
"@dxos/
|
|
78
|
-
"@dxos/teleport": "0.6.12
|
|
79
|
-
"@dxos/teleport-extension-gossip": "0.6.12
|
|
80
|
-
"@dxos/
|
|
81
|
-
"@dxos/
|
|
82
|
-
"@dxos/tracing": "0.6.12
|
|
83
|
-
"@dxos/util": "0.6.12
|
|
84
|
-
"@dxos/websocket-rpc": "0.6.12
|
|
48
|
+
"@dxos/async": "0.6.12",
|
|
49
|
+
"@dxos/automerge": "0.6.12",
|
|
50
|
+
"@dxos/codec-protobuf": "0.6.12",
|
|
51
|
+
"@dxos/config": "0.6.12",
|
|
52
|
+
"@dxos/client-protocol": "0.6.12",
|
|
53
|
+
"@dxos/context": "0.6.12",
|
|
54
|
+
"@dxos/credentials": "0.6.12",
|
|
55
|
+
"@dxos/debug": "0.6.12",
|
|
56
|
+
"@dxos/crypto": "0.6.12",
|
|
57
|
+
"@dxos/echo-db": "0.6.12",
|
|
58
|
+
"@dxos/echo-pipeline": "0.6.12",
|
|
59
|
+
"@dxos/echo-protocol": "0.6.12",
|
|
60
|
+
"@dxos/echo-schema": "0.6.12",
|
|
61
|
+
"@dxos/edge-client": "0.6.12",
|
|
62
|
+
"@dxos/feed-store": "0.6.12",
|
|
63
|
+
"@dxos/indexing": "0.6.12",
|
|
64
|
+
"@dxos/invariant": "0.6.12",
|
|
65
|
+
"@dxos/keyring": "0.6.12",
|
|
66
|
+
"@dxos/keys": "0.6.12",
|
|
67
|
+
"@dxos/kv-store": "0.6.12",
|
|
68
|
+
"@dxos/lock-file": "0.6.12",
|
|
69
|
+
"@dxos/messaging": "0.6.12",
|
|
70
|
+
"@dxos/log": "0.6.12",
|
|
71
|
+
"@dxos/network-manager": "0.6.12",
|
|
72
|
+
"@dxos/node-std": "0.6.12",
|
|
73
|
+
"@dxos/protocols": "0.6.12",
|
|
74
|
+
"@dxos/rpc": "0.6.12",
|
|
75
|
+
"@dxos/random-access-storage": "0.6.12",
|
|
76
|
+
"@dxos/teleport": "0.6.12",
|
|
77
|
+
"@dxos/teleport-extension-gossip": "0.6.12",
|
|
78
|
+
"@dxos/timeframe": "0.6.12",
|
|
79
|
+
"@dxos/teleport-extension-object-sync": "0.6.12",
|
|
80
|
+
"@dxos/tracing": "0.6.12",
|
|
81
|
+
"@dxos/util": "0.6.12",
|
|
82
|
+
"@dxos/websocket-rpc": "0.6.12"
|
|
85
83
|
},
|
|
86
84
|
"devDependencies": {
|
|
87
85
|
"@types/platform": "^1.3.4",
|
|
88
86
|
"@types/readable-stream": "^2.3.9",
|
|
89
|
-
"
|
|
90
|
-
"@dxos/signal": "0.6.12-staging.e11e696",
|
|
91
|
-
"@dxos/test-utils": "0.6.12-staging.e11e696"
|
|
87
|
+
"@dxos/signal": "0.6.12"
|
|
92
88
|
},
|
|
93
89
|
"publishConfig": {
|
|
94
90
|
"access": "public"
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { expect } from 'chai';
|
|
6
6
|
|
|
7
7
|
import { Trigger } from '@dxos/async';
|
|
8
8
|
import { Context } from '@dxos/context';
|
|
9
9
|
import { log } from '@dxos/log';
|
|
10
10
|
import { type DevicesService, type Device } from '@dxos/protocols/proto/dxos/client/services';
|
|
11
|
+
import { afterEach, afterTest, beforeEach, describe, test } from '@dxos/test';
|
|
11
12
|
|
|
12
13
|
import { DevicesServiceImpl } from './devices-service';
|
|
13
14
|
import { type ServiceContext } from '../services';
|
|
@@ -35,7 +36,7 @@ describe('DevicesService', () => {
|
|
|
35
36
|
query.subscribe(({ devices }) => {
|
|
36
37
|
result.wake(devices);
|
|
37
38
|
});
|
|
38
|
-
|
|
39
|
+
afterTest(() => query.close());
|
|
39
40
|
expect(device.profile?.label).to.equal('test-device');
|
|
40
41
|
});
|
|
41
42
|
});
|
|
@@ -50,7 +51,7 @@ describe('DevicesService', () => {
|
|
|
50
51
|
},
|
|
51
52
|
(err) => log.catch(err),
|
|
52
53
|
);
|
|
53
|
-
|
|
54
|
+
afterTest(() => query.close().catch((err) => log.catch(err)));
|
|
54
55
|
expect(await result.wait()).to.be.length(0);
|
|
55
56
|
});
|
|
56
57
|
|
|
@@ -60,7 +61,7 @@ describe('DevicesService', () => {
|
|
|
60
61
|
query.subscribe(({ devices }) => {
|
|
61
62
|
result.wake(devices);
|
|
62
63
|
});
|
|
63
|
-
|
|
64
|
+
afterTest(() => query.close());
|
|
64
65
|
expect(await result.wait()).to.be.length(0);
|
|
65
66
|
|
|
66
67
|
result = new Trigger<Device[] | undefined>();
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import expect from 'expect';
|
|
6
6
|
|
|
7
7
|
import { Event } from '@dxos/async';
|
|
8
8
|
import { createCredentialSignerWithKey } from '@dxos/credentials';
|
|
9
9
|
import { invariant } from '@dxos/invariant';
|
|
10
10
|
import { Keyring } from '@dxos/keyring';
|
|
11
11
|
import { PublicKey } from '@dxos/keys';
|
|
12
|
+
import { describe, test } from '@dxos/test';
|
|
12
13
|
import { ComplexSet } from '@dxos/util';
|
|
13
14
|
|
|
14
15
|
import { createAuthProvider, TrustedKeySetAuthVerifier } from './authenticator';
|
|
@@ -29,5 +30,5 @@ describe('identity/authenticator', () => {
|
|
|
29
30
|
const credential = await authProvider(nonce);
|
|
30
31
|
invariant(credential);
|
|
31
32
|
expect(await authVerifier.verifier(nonce, credential)).toBeTruthy();
|
|
32
|
-
});
|
|
33
|
+
}).onlyEnvironments('nodejs');
|
|
33
34
|
});
|
|
@@ -67,7 +67,7 @@ export class TrustedKeySetAuthVerifier {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
if (this._isTrustedKey(credential.issuer)) {
|
|
70
|
-
log('key is trusted
|
|
70
|
+
log('key is not currently in trusted set, waiting...', { key: credential.issuer });
|
|
71
71
|
return true;
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -81,10 +81,7 @@ export class TrustedKeySetAuthVerifier {
|
|
|
81
81
|
log('auth success', { key: credential.issuer });
|
|
82
82
|
trigger.wake(true);
|
|
83
83
|
} else {
|
|
84
|
-
log('key is not currently in trusted set, waiting...', {
|
|
85
|
-
key: credential.issuer,
|
|
86
|
-
trusted: [...this._params.trustedKeysProvider()],
|
|
87
|
-
});
|
|
84
|
+
log('key is not currently in trusted set, waiting...', { key: credential.issuer });
|
|
88
85
|
}
|
|
89
86
|
});
|
|
90
87
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { EventSubscriptions, scheduleTask, UpdateScheduler } from '@dxos/async';
|
|
6
6
|
import { Stream } from '@dxos/codec-protobuf';
|
|
7
7
|
import { type MemberInfo } from '@dxos/credentials';
|
|
8
|
-
import {
|
|
8
|
+
import type { SpaceManager } from '@dxos/echo-pipeline';
|
|
9
9
|
import { PublicKey } from '@dxos/keys';
|
|
10
10
|
import { type Contact, type ContactBook, type ContactsService } from '@dxos/protocols/proto/dxos/client/services';
|
|
11
11
|
import { ComplexMap, ComplexSet } from '@dxos/util';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { expect } from 'chai';
|
|
6
6
|
|
|
7
7
|
import { Context } from '@dxos/context';
|
|
8
8
|
import { valueEncoding, MetadataStore, SpaceManager, AuthStatus } from '@dxos/echo-pipeline';
|
|
@@ -13,6 +13,7 @@ import { MemoryTransportFactory, SwarmNetworkManager } from '@dxos/network-manag
|
|
|
13
13
|
import type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
|
|
14
14
|
import { createStorage, type Storage, StorageType } from '@dxos/random-access-storage';
|
|
15
15
|
import { BlobStore } from '@dxos/teleport-extension-object-sync';
|
|
16
|
+
import { describe, test, afterTest } from '@dxos/test';
|
|
16
17
|
|
|
17
18
|
import { IdentityManager } from './identity-manager';
|
|
18
19
|
|
|
@@ -38,7 +39,7 @@ describe('identity/identity-manager', () => {
|
|
|
38
39
|
}),
|
|
39
40
|
});
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
afterTest(() => feedStore.close());
|
|
42
43
|
|
|
43
44
|
const networkManager = new SwarmNetworkManager({
|
|
44
45
|
signalManager: new MemorySignalManager(signalContext),
|
|
@@ -50,7 +51,7 @@ describe('identity/identity-manager', () => {
|
|
|
50
51
|
blobStore,
|
|
51
52
|
metadataStore,
|
|
52
53
|
});
|
|
53
|
-
const identityManager = new IdentityManager(
|
|
54
|
+
const identityManager = new IdentityManager(metadataStore, keyring, feedStore, spaceManager);
|
|
54
55
|
|
|
55
56
|
return {
|
|
56
57
|
metadataStore,
|
|
@@ -63,7 +64,7 @@ describe('identity/identity-manager', () => {
|
|
|
63
64
|
test('creates identity', async () => {
|
|
64
65
|
const { identityManager } = await setupPeer();
|
|
65
66
|
await identityManager.open(new Context());
|
|
66
|
-
|
|
67
|
+
afterTest(() => identityManager.close());
|
|
67
68
|
|
|
68
69
|
const identity = await identityManager.createIdentity();
|
|
69
70
|
expect(identity).to.exist;
|
|
@@ -94,7 +95,7 @@ describe('identity/identity-manager', () => {
|
|
|
94
95
|
test('update profile', async () => {
|
|
95
96
|
const { identityManager } = await setupPeer();
|
|
96
97
|
await identityManager.open(new Context());
|
|
97
|
-
|
|
98
|
+
afterTest(() => identityManager.close());
|
|
98
99
|
|
|
99
100
|
const identity = await identityManager.createIdentity();
|
|
100
101
|
expect(identity.profileDocument?.displayName).to.be.undefined;
|
|
@@ -7,7 +7,6 @@ import { Event } from '@dxos/async';
|
|
|
7
7
|
import { Context } from '@dxos/context';
|
|
8
8
|
import { createCredentialSignerWithKey, CredentialGenerator } from '@dxos/credentials';
|
|
9
9
|
import { type MetadataStore, type SpaceManager, type SwarmIdentity } from '@dxos/echo-pipeline';
|
|
10
|
-
import { type EdgeConnection } from '@dxos/edge-client';
|
|
11
10
|
import { type FeedStore } from '@dxos/feed-store';
|
|
12
11
|
import { invariant } from '@dxos/invariant';
|
|
13
12
|
import { type Keyring } from '@dxos/keyring';
|
|
@@ -15,7 +14,6 @@ import { PublicKey } from '@dxos/keys';
|
|
|
15
14
|
import { log } from '@dxos/log';
|
|
16
15
|
import { trace } from '@dxos/protocols';
|
|
17
16
|
import { Device, DeviceKind } from '@dxos/protocols/proto/dxos/client/services';
|
|
18
|
-
import { type Runtime } from '@dxos/protocols/proto/dxos/config';
|
|
19
17
|
import { type FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
|
|
20
18
|
import { type IdentityRecord, type SpaceMetadata } from '@dxos/protocols/proto/dxos/echo/metadata';
|
|
21
19
|
import {
|
|
@@ -65,20 +63,9 @@ export type CreateIdentityOptions = {
|
|
|
65
63
|
deviceProfile?: DeviceProfileDocument;
|
|
66
64
|
};
|
|
67
65
|
|
|
68
|
-
export type
|
|
69
|
-
onIdentityConstruction?: (identity: Identity) => void;
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export type IdentityManagerParams = {
|
|
73
|
-
metadataStore: MetadataStore;
|
|
74
|
-
keyring: Keyring;
|
|
75
|
-
feedStore: FeedStore<FeedMessage>;
|
|
76
|
-
spaceManager: SpaceManager;
|
|
77
|
-
edgeConnection?: EdgeConnection;
|
|
78
|
-
edgeFeatures?: Runtime.Client.EdgeFeatures;
|
|
66
|
+
export type IdentityManagerRuntimeParams = {
|
|
79
67
|
devicePresenceAnnounceInterval?: number;
|
|
80
68
|
devicePresenceOfflineTimeout?: number;
|
|
81
|
-
callbacks?: IdentityManagerCallbacks;
|
|
82
69
|
};
|
|
83
70
|
|
|
84
71
|
// TODO(dmaretskyi): Rename: represents the peer's state machine.
|
|
@@ -86,29 +73,28 @@ export type IdentityManagerParams = {
|
|
|
86
73
|
export class IdentityManager {
|
|
87
74
|
readonly stateUpdate = new Event();
|
|
88
75
|
|
|
89
|
-
private
|
|
90
|
-
private readonly _keyring: Keyring;
|
|
91
|
-
private readonly _feedStore: FeedStore<FeedMessage>;
|
|
92
|
-
private readonly _spaceManager: SpaceManager;
|
|
76
|
+
private _identity?: Identity;
|
|
93
77
|
private readonly _devicePresenceAnnounceInterval: number;
|
|
94
78
|
private readonly _devicePresenceOfflineTimeout: number;
|
|
95
|
-
private readonly _edgeConnection: EdgeConnection | undefined;
|
|
96
|
-
private readonly _edgeFeatures: Runtime.Client.EdgeFeatures | undefined;
|
|
97
|
-
private readonly _callbacks: IdentityManagerCallbacks | undefined;
|
|
98
|
-
|
|
99
|
-
private _identity?: Identity;
|
|
100
79
|
|
|
80
|
+
// TODO(burdon): IdentityManagerParams.
|
|
101
81
|
// TODO(dmaretskyi): Perhaps this should take/generate the peerKey outside of an initialized identity.
|
|
102
|
-
constructor(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
82
|
+
constructor(
|
|
83
|
+
private readonly _metadataStore: MetadataStore,
|
|
84
|
+
private readonly _keyring: Keyring,
|
|
85
|
+
private readonly _feedStore: FeedStore<FeedMessage>,
|
|
86
|
+
private readonly _spaceManager: SpaceManager,
|
|
87
|
+
params?: IdentityManagerRuntimeParams,
|
|
88
|
+
private readonly _callbacks?: {
|
|
89
|
+
onIdentityConstruction?: (identity: Identity) => void;
|
|
90
|
+
},
|
|
91
|
+
) {
|
|
92
|
+
const {
|
|
93
|
+
devicePresenceAnnounceInterval = DEVICE_PRESENCE_ANNOUNCE_INTERVAL,
|
|
94
|
+
devicePresenceOfflineTimeout = DEVICE_PRESENCE_OFFLINE_TIMEOUT,
|
|
95
|
+
} = params ?? {};
|
|
96
|
+
this._devicePresenceAnnounceInterval = devicePresenceAnnounceInterval;
|
|
97
|
+
this._devicePresenceOfflineTimeout = devicePresenceOfflineTimeout;
|
|
112
98
|
}
|
|
113
99
|
|
|
114
100
|
get identity() {
|
|
@@ -374,8 +360,6 @@ export class IdentityManager {
|
|
|
374
360
|
signer: this._keyring,
|
|
375
361
|
identityKey: identityRecord.identityKey,
|
|
376
362
|
deviceKey: identityRecord.deviceKey,
|
|
377
|
-
edgeConnection: this._edgeConnection,
|
|
378
|
-
edgeFeatures: this._edgeFeatures,
|
|
379
363
|
});
|
|
380
364
|
log('done', { identityKey: identityRecord.identityKey });
|
|
381
365
|
this._callbacks?.onIdentityConstruction?.(identity);
|
|
@@ -2,17 +2,21 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import chai, { expect } from 'chai';
|
|
6
|
+
import chaiAsPromised from 'chai-as-promised';
|
|
6
7
|
|
|
7
8
|
import { Trigger } from '@dxos/async';
|
|
8
9
|
import { Context } from '@dxos/context';
|
|
9
10
|
import { PublicKey } from '@dxos/keys';
|
|
10
11
|
import { type Identity, type IdentityService } from '@dxos/protocols/proto/dxos/client/services';
|
|
12
|
+
import { afterEach, afterTest, beforeEach, describe, test } from '@dxos/test';
|
|
11
13
|
|
|
12
14
|
import { IdentityServiceImpl } from './identity-service';
|
|
13
15
|
import { type ServiceContext } from '../services';
|
|
14
16
|
import { createServiceContext } from '../testing';
|
|
15
17
|
|
|
18
|
+
chai.use(chaiAsPromised);
|
|
19
|
+
|
|
16
20
|
describe('IdentityService', () => {
|
|
17
21
|
let serviceContext: ServiceContext;
|
|
18
22
|
let identityService: IdentityService;
|
|
@@ -45,7 +49,7 @@ describe('IdentityService', () => {
|
|
|
45
49
|
|
|
46
50
|
test('fails to create identity if one already exists', async () => {
|
|
47
51
|
await identityService.createIdentity({});
|
|
48
|
-
await expect(identityService.createIdentity({})).
|
|
52
|
+
await expect(identityService.createIdentity({})).to.be.rejectedWith('Identity already exists');
|
|
49
53
|
});
|
|
50
54
|
});
|
|
51
55
|
|
|
@@ -68,7 +72,7 @@ describe('IdentityService', () => {
|
|
|
68
72
|
query.subscribe(({ identity }) => {
|
|
69
73
|
result.wake(identity);
|
|
70
74
|
});
|
|
71
|
-
|
|
75
|
+
afterTest(() => query.close());
|
|
72
76
|
expect(await result.wait()).to.be.undefined;
|
|
73
77
|
});
|
|
74
78
|
|
|
@@ -78,7 +82,7 @@ describe('IdentityService', () => {
|
|
|
78
82
|
query.subscribe(({ identity }) => {
|
|
79
83
|
result.wake(identity);
|
|
80
84
|
});
|
|
81
|
-
|
|
85
|
+
afterTest(() => query.close());
|
|
82
86
|
expect(await result.wait()).to.be.undefined;
|
|
83
87
|
|
|
84
88
|
result = new Trigger<Identity | undefined>();
|