@dxos/client-services 0.6.12-main.ed7cda7 → 0.6.12-staging.0b4bb48

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.
Files changed (92) hide show
  1. package/dist/lib/browser/{chunk-VENIOUQ4.mjs → chunk-YCJNCCXZ.mjs} +5115 -5208
  2. package/dist/lib/browser/chunk-YCJNCCXZ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3 -3
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +5 -4
  7. package/dist/lib/browser/testing/index.mjs.map +2 -2
  8. package/dist/lib/node/{chunk-US3NPCS5.cjs → chunk-Z2ZTFILR.cjs} +4897 -4990
  9. package/dist/lib/node/chunk-Z2ZTFILR.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +46 -46
  11. package/dist/lib/node/index.cjs.map +3 -3
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +12 -11
  14. package/dist/lib/node/testing/index.cjs.map +2 -2
  15. package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts.map +1 -1
  16. package/dist/types/src/packlets/identity/authenticator.test.d.ts +2 -0
  17. package/dist/types/src/packlets/identity/authenticator.test.d.ts.map +1 -0
  18. package/dist/types/src/packlets/identity/identity-manager.d.ts +7 -19
  19. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  20. package/dist/types/src/packlets/identity/identity.d.ts +1 -7
  21. package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
  22. package/dist/types/src/packlets/invitations/invitation-host-extension.d.ts.map +1 -1
  23. package/dist/types/src/packlets/services/automerge-host.test.d.ts +2 -0
  24. package/dist/types/src/packlets/services/automerge-host.test.d.ts.map +1 -0
  25. package/dist/types/src/packlets/services/service-context.d.ts +4 -3
  26. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  27. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  28. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +2 -1
  29. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  30. package/dist/types/src/packlets/spaces/data-space.d.ts +2 -1
  31. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  32. package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts +0 -1
  33. package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts.map +1 -1
  34. package/dist/types/src/packlets/spaces/epoch-migrations.d.ts +1 -1
  35. package/dist/types/src/packlets/spaces/epoch-migrations.d.ts.map +1 -1
  36. package/dist/types/src/packlets/storage/storage.d.ts.map +1 -1
  37. package/dist/types/src/packlets/testing/test-builder.d.ts +2 -1
  38. package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
  39. package/dist/types/src/packlets/worker/worker-runtime.d.ts.map +1 -1
  40. package/dist/types/src/version.d.ts +1 -1
  41. package/dist/types/src/version.d.ts.map +1 -1
  42. package/package.json +39 -43
  43. package/src/packlets/devices/devices-service.test.ts +5 -4
  44. package/src/packlets/diagnostics/diagnostics-broadcast.ts +0 -1
  45. package/src/packlets/identity/{authenticator.node.test.ts → authenticator.test.ts} +3 -2
  46. package/src/packlets/identity/identity-manager.test.ts +6 -5
  47. package/src/packlets/identity/identity-manager.ts +19 -35
  48. package/src/packlets/identity/identity-service.test.ts +8 -4
  49. package/src/packlets/identity/identity.test.ts +239 -128
  50. package/src/packlets/identity/identity.ts +8 -38
  51. package/src/packlets/invitations/device-invitation-protocol.test.ts +4 -7
  52. package/src/packlets/invitations/invitation-host-extension.ts +3 -0
  53. package/src/packlets/invitations/invitations-handler.test.ts +7 -14
  54. package/src/packlets/invitations/invitations-handler.ts +1 -1
  55. package/src/packlets/invitations/space-invitation-protocol.test.ts +3 -4
  56. package/src/packlets/logging/logging.test.ts +2 -1
  57. package/src/packlets/network/network-service.test.ts +3 -2
  58. package/src/packlets/services/automerge-host.test.ts +60 -0
  59. package/src/packlets/services/service-context.test.ts +1 -3
  60. package/src/packlets/services/service-context.ts +12 -24
  61. package/src/packlets/services/service-host.test.ts +12 -8
  62. package/src/packlets/services/service-host.ts +2 -2
  63. package/src/packlets/services/service-registry.test.ts +2 -1
  64. package/src/packlets/spaces/data-space-manager.test.ts +2 -2
  65. package/src/packlets/spaces/data-space-manager.ts +1 -4
  66. package/src/packlets/spaces/data-space.ts +2 -7
  67. package/src/packlets/spaces/edge-feed-replicator.ts +21 -59
  68. package/src/packlets/spaces/epoch-migrations.ts +2 -2
  69. package/src/packlets/spaces/notarization-plugin.test.ts +3 -2
  70. package/src/packlets/spaces/spaces-service.test.ts +9 -5
  71. package/src/packlets/storage/storage.ts +1 -0
  72. package/src/packlets/system/system-service.test.ts +2 -1
  73. package/src/packlets/testing/test-builder.ts +2 -1
  74. package/src/packlets/worker/worker-runtime.ts +2 -2
  75. package/src/version.ts +1 -1
  76. package/dist/lib/browser/chunk-VENIOUQ4.mjs.map +0 -7
  77. package/dist/lib/node/chunk-US3NPCS5.cjs.map +0 -7
  78. package/dist/lib/node-esm/chunk-LV7T6HCX.mjs +0 -7809
  79. package/dist/lib/node-esm/chunk-LV7T6HCX.mjs.map +0 -7
  80. package/dist/lib/node-esm/index.mjs +0 -416
  81. package/dist/lib/node-esm/index.mjs.map +0 -7
  82. package/dist/lib/node-esm/meta.json +0 -1
  83. package/dist/lib/node-esm/testing/index.mjs +0 -418
  84. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  85. package/dist/types/src/packlets/identity/authenticator.node.test.d.ts +0 -2
  86. package/dist/types/src/packlets/identity/authenticator.node.test.d.ts.map +0 -1
  87. package/dist/types/src/packlets/spaces/edge-feed-replicator.test.d.ts +0 -2
  88. package/dist/types/src/packlets/spaces/edge-feed-replicator.test.d.ts.map +0 -1
  89. package/dist/types/src/testing/setup.d.ts +0 -3
  90. package/dist/types/src/testing/setup.d.ts.map +0 -1
  91. package/src/packlets/spaces/edge-feed-replicator.test.ts +0 -244
  92. package/src/testing/setup.ts +0 -11
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/client-services",
3
- "version": "0.6.12-main.ed7cda7",
3
+ "version": "0.6.12-staging.0b4bb48",
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
- "require": "./dist/lib/node/index.cjs",
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
- "require": "./dist/lib/node/testing/index.cjs",
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-main.ed7cda7",
51
- "@dxos/automerge": "0.6.12-main.ed7cda7",
52
- "@dxos/codec-protobuf": "0.6.12-main.ed7cda7",
53
- "@dxos/config": "0.6.12-main.ed7cda7",
54
- "@dxos/client-protocol": "0.6.12-main.ed7cda7",
55
- "@dxos/context": "0.6.12-main.ed7cda7",
56
- "@dxos/credentials": "0.6.12-main.ed7cda7",
57
- "@dxos/debug": "0.6.12-main.ed7cda7",
58
- "@dxos/crypto": "0.6.12-main.ed7cda7",
59
- "@dxos/echo-pipeline": "0.6.12-main.ed7cda7",
60
- "@dxos/echo-db": "0.6.12-main.ed7cda7",
61
- "@dxos/echo-schema": "0.6.12-main.ed7cda7",
62
- "@dxos/echo-protocol": "0.6.12-main.ed7cda7",
63
- "@dxos/edge-client": "0.6.12-main.ed7cda7",
64
- "@dxos/feed-store": "0.6.12-main.ed7cda7",
65
- "@dxos/indexing": "0.6.12-main.ed7cda7",
66
- "@dxos/invariant": "0.6.12-main.ed7cda7",
67
- "@dxos/keyring": "0.6.12-main.ed7cda7",
68
- "@dxos/keys": "0.6.12-main.ed7cda7",
69
- "@dxos/kv-store": "0.6.12-main.ed7cda7",
70
- "@dxos/lock-file": "0.6.12-main.ed7cda7",
71
- "@dxos/log": "0.6.12-main.ed7cda7",
72
- "@dxos/node-std": "0.6.12-main.ed7cda7",
73
- "@dxos/messaging": "0.6.12-main.ed7cda7",
74
- "@dxos/protocols": "0.6.12-main.ed7cda7",
75
- "@dxos/network-manager": "0.6.12-main.ed7cda7",
76
- "@dxos/random-access-storage": "0.6.12-main.ed7cda7",
77
- "@dxos/rpc": "0.6.12-main.ed7cda7",
78
- "@dxos/teleport": "0.6.12-main.ed7cda7",
79
- "@dxos/teleport-extension-gossip": "0.6.12-main.ed7cda7",
80
- "@dxos/teleport-extension-object-sync": "0.6.12-main.ed7cda7",
81
- "@dxos/timeframe": "0.6.12-main.ed7cda7",
82
- "@dxos/tracing": "0.6.12-main.ed7cda7",
83
- "@dxos/websocket-rpc": "0.6.12-main.ed7cda7",
84
- "@dxos/util": "0.6.12-main.ed7cda7"
48
+ "@dxos/async": "0.6.12-staging.0b4bb48",
49
+ "@dxos/automerge": "0.6.12-staging.0b4bb48",
50
+ "@dxos/codec-protobuf": "0.6.12-staging.0b4bb48",
51
+ "@dxos/client-protocol": "0.6.12-staging.0b4bb48",
52
+ "@dxos/config": "0.6.12-staging.0b4bb48",
53
+ "@dxos/context": "0.6.12-staging.0b4bb48",
54
+ "@dxos/credentials": "0.6.12-staging.0b4bb48",
55
+ "@dxos/echo-db": "0.6.12-staging.0b4bb48",
56
+ "@dxos/debug": "0.6.12-staging.0b4bb48",
57
+ "@dxos/crypto": "0.6.12-staging.0b4bb48",
58
+ "@dxos/echo-pipeline": "0.6.12-staging.0b4bb48",
59
+ "@dxos/echo-protocol": "0.6.12-staging.0b4bb48",
60
+ "@dxos/edge-client": "0.6.12-staging.0b4bb48",
61
+ "@dxos/echo-schema": "0.6.12-staging.0b4bb48",
62
+ "@dxos/feed-store": "0.6.12-staging.0b4bb48",
63
+ "@dxos/indexing": "0.6.12-staging.0b4bb48",
64
+ "@dxos/keyring": "0.6.12-staging.0b4bb48",
65
+ "@dxos/kv-store": "0.6.12-staging.0b4bb48",
66
+ "@dxos/invariant": "0.6.12-staging.0b4bb48",
67
+ "@dxos/keys": "0.6.12-staging.0b4bb48",
68
+ "@dxos/lock-file": "0.6.12-staging.0b4bb48",
69
+ "@dxos/log": "0.6.12-staging.0b4bb48",
70
+ "@dxos/network-manager": "0.6.12-staging.0b4bb48",
71
+ "@dxos/messaging": "0.6.12-staging.0b4bb48",
72
+ "@dxos/node-std": "0.6.12-staging.0b4bb48",
73
+ "@dxos/protocols": "0.6.12-staging.0b4bb48",
74
+ "@dxos/rpc": "0.6.12-staging.0b4bb48",
75
+ "@dxos/random-access-storage": "0.6.12-staging.0b4bb48",
76
+ "@dxos/teleport-extension-gossip": "0.6.12-staging.0b4bb48",
77
+ "@dxos/teleport-extension-object-sync": "0.6.12-staging.0b4bb48",
78
+ "@dxos/teleport": "0.6.12-staging.0b4bb48",
79
+ "@dxos/timeframe": "0.6.12-staging.0b4bb48",
80
+ "@dxos/tracing": "0.6.12-staging.0b4bb48",
81
+ "@dxos/websocket-rpc": "0.6.12-staging.0b4bb48",
82
+ "@dxos/util": "0.6.12-staging.0b4bb48"
85
83
  },
86
84
  "devDependencies": {
87
85
  "@types/platform": "^1.3.4",
88
86
  "@types/readable-stream": "^2.3.9",
89
- "get-port-please": "^3.1.1",
90
- "@dxos/signal": "0.6.12-main.ed7cda7",
91
- "@dxos/test-utils": "0.6.12-main.ed7cda7"
87
+ "@dxos/signal": "0.6.12-staging.0b4bb48"
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 { afterEach, onTestFinished, beforeEach, describe, expect, test } from 'vitest';
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
- onTestFinished(() => query.close());
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
- onTestFinished(() => query.close().catch((err) => log.catch(err)));
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
- onTestFinished(() => query.close());
64
+ afterTest(() => query.close());
64
65
  expect(await result.wait()).to.be.length(0);
65
66
 
66
67
  result = new Trigger<Device[] | undefined>();
@@ -1,7 +1,6 @@
1
1
  //
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
-
5
4
  import { type SystemService } from '@dxos/protocols/proto/dxos/client/services';
6
5
 
7
6
  import {
@@ -2,13 +2,14 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import { describe, expect, test } from 'vitest';
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
  });
@@ -2,7 +2,7 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- import { describe, expect, test, onTestFinished } from 'vitest';
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
- onTestFinished(() => feedStore.close());
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({ metadataStore, keyring, feedStore, spaceManager });
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
- onTestFinished(() => identityManager.close());
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
- onTestFinished(() => identityManager.close());
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 IdentityManagerCallbacks = {
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 readonly _metadataStore: MetadataStore;
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(params: IdentityManagerParams) {
103
- this._metadataStore = params.metadataStore;
104
- this._keyring = params.keyring;
105
- this._feedStore = params.feedStore;
106
- this._spaceManager = params.spaceManager;
107
- this._edgeConnection = params.edgeConnection;
108
- this._edgeFeatures = params.edgeFeatures;
109
- this._devicePresenceAnnounceInterval = params.devicePresenceAnnounceInterval ?? DEVICE_PRESENCE_ANNOUNCE_INTERVAL;
110
- this._devicePresenceOfflineTimeout = params.devicePresenceOfflineTimeout ?? DEVICE_PRESENCE_OFFLINE_TIMEOUT;
111
- this._callbacks = params.callbacks;
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 { afterEach, onTestFinished, beforeEach, describe, expect, test } from 'vitest';
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({})).rejects.toThrowError('Identity already exists');
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
- onTestFinished(() => query.close());
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
- onTestFinished(() => query.close());
85
+ afterTest(() => query.close());
82
86
  expect(await result.wait()).to.be.undefined;
83
87
 
84
88
  result = new Trigger<Identity | undefined>();