@dxos/client-services 0.1.56-main.e47dfd1 → 0.1.56-main.e79d64a

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 (95) hide show
  1. package/dist/lib/browser/{chunk-CSJSC47N.mjs → chunk-T32PP5QD.mjs} +1284 -625
  2. package/dist/lib/browser/chunk-T32PP5QD.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +70 -54
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/packlets/testing/index.mjs +42 -48
  7. package/dist/lib/browser/packlets/testing/index.mjs.map +3 -3
  8. package/dist/lib/node/index.cjs +1439 -767
  9. package/dist/lib/node/index.cjs.map +4 -4
  10. package/dist/lib/node/meta.json +1 -1
  11. package/dist/lib/node/packlets/testing/index.cjs +1590 -936
  12. package/dist/lib/node/packlets/testing/index.cjs.map +4 -4
  13. package/dist/types/src/packlets/identity/identity-manager.d.ts +7 -1
  14. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  15. package/dist/types/src/packlets/identity/identity-service.d.ts +7 -3
  16. package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
  17. package/dist/types/src/packlets/identity/identity.d.ts +3 -2
  18. package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
  19. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts.map +1 -1
  20. package/dist/types/src/packlets/invitations/invitation-extension.d.ts.map +1 -1
  21. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  22. package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
  23. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
  24. package/dist/types/src/packlets/logging/logging-service.d.ts +6 -2
  25. package/dist/types/src/packlets/logging/logging-service.d.ts.map +1 -1
  26. package/dist/types/src/packlets/services/client-rpc-server.d.ts.map +1 -1
  27. package/dist/types/src/packlets/services/diagnostics.d.ts +46 -0
  28. package/dist/types/src/packlets/services/diagnostics.d.ts.map +1 -0
  29. package/dist/types/src/packlets/services/index.d.ts +1 -0
  30. package/dist/types/src/packlets/services/index.d.ts.map +1 -1
  31. package/dist/types/src/packlets/services/platform.d.ts +16 -0
  32. package/dist/types/src/packlets/services/platform.d.ts.map +1 -0
  33. package/dist/types/src/packlets/services/service-context.d.ts +2 -1
  34. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  35. package/dist/types/src/packlets/services/service-host.d.ts +7 -3
  36. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  37. package/dist/types/src/packlets/services/util.d.ts +6 -0
  38. package/dist/types/src/packlets/services/util.d.ts.map +1 -0
  39. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  40. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  41. package/dist/types/src/packlets/spaces/notarization-plugin.d.ts.map +1 -1
  42. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  43. package/dist/types/src/packlets/system/system-service.d.ts +12 -2
  44. package/dist/types/src/packlets/system/system-service.d.ts.map +1 -1
  45. package/dist/types/src/packlets/testing/invitation-utils.d.ts.map +1 -1
  46. package/dist/types/src/packlets/vault/iframe-host-runtime.d.ts.map +1 -1
  47. package/dist/types/src/packlets/vault/shell-runtime.d.ts.map +1 -1
  48. package/dist/types/src/packlets/vault/worker-runtime.d.ts.map +1 -1
  49. package/dist/types/src/packlets/vault/worker-session.d.ts.map +1 -1
  50. package/dist/types/src/version.d.ts +2 -0
  51. package/dist/types/src/version.d.ts.map +1 -0
  52. package/package.json +34 -33
  53. package/src/packlets/devices/devices-service.test.ts +2 -1
  54. package/src/packlets/identity/authenticator.test.ts +2 -2
  55. package/src/packlets/identity/identity-manager.test.ts +15 -3
  56. package/src/packlets/identity/identity-manager.ts +28 -8
  57. package/src/packlets/identity/identity-service.test.ts +17 -2
  58. package/src/packlets/identity/identity-service.ts +24 -16
  59. package/src/packlets/identity/identity.test.ts +7 -6
  60. package/src/packlets/identity/identity.ts +9 -5
  61. package/src/packlets/invitations/device-invitation-protocol.test.ts +2 -1
  62. package/src/packlets/invitations/device-invitation-protocol.ts +1 -2
  63. package/src/packlets/invitations/invitation-extension.ts +1 -2
  64. package/src/packlets/invitations/invitations-handler.ts +3 -2
  65. package/src/packlets/invitations/invitations-service.ts +1 -2
  66. package/src/packlets/invitations/space-invitation-protocol.ts +1 -2
  67. package/src/packlets/locks/node.ts +1 -1
  68. package/src/packlets/logging/logging-service.ts +17 -9
  69. package/src/packlets/network/network-service.test.ts +2 -1
  70. package/src/packlets/services/client-rpc-server.ts +4 -4
  71. package/src/packlets/services/diagnostics.ts +212 -0
  72. package/src/packlets/services/index.ts +1 -0
  73. package/src/packlets/services/platform.ts +48 -0
  74. package/src/packlets/services/service-context.test.ts +59 -0
  75. package/src/packlets/services/service-context.ts +21 -15
  76. package/src/packlets/services/service-host.test.ts +12 -11
  77. package/src/packlets/services/service-host.ts +39 -20
  78. package/src/packlets/services/service-registry.test.ts +3 -1
  79. package/src/packlets/services/util.ts +33 -0
  80. package/src/packlets/spaces/data-space-manager.test.ts +80 -22
  81. package/src/packlets/spaces/data-space-manager.ts +7 -4
  82. package/src/packlets/spaces/data-space.ts +17 -5
  83. package/src/packlets/spaces/notarization-plugin.ts +1 -2
  84. package/src/packlets/spaces/spaces-service.test.ts +2 -1
  85. package/src/packlets/spaces/spaces-service.ts +19 -13
  86. package/src/packlets/system/system-service.test.ts +1 -0
  87. package/src/packlets/system/system-service.ts +34 -2
  88. package/src/packlets/testing/invitation-utils.ts +1 -2
  89. package/src/packlets/testing/test-builder.ts +1 -1
  90. package/src/packlets/vault/iframe-host-runtime.ts +2 -1
  91. package/src/packlets/vault/shell-runtime.ts +1 -2
  92. package/src/packlets/vault/worker-runtime.ts +3 -2
  93. package/src/packlets/vault/worker-session.ts +7 -3
  94. package/src/version.ts +1 -0
  95. package/dist/lib/browser/chunk-CSJSC47N.mjs.map +0 -7
@@ -4,7 +4,7 @@ import {
4
4
  DataSpaceManager,
5
5
  ServiceContext,
6
6
  createDefaultModelFactory
7
- } from "../../chunk-CSJSC47N.mjs";
7
+ } from "../../chunk-T32PP5QD.mjs";
8
8
 
9
9
  // packages/sdk/client-services/src/packlets/testing/credential-utils.ts
10
10
  import { createCredential } from "@dxos/credentials";
@@ -23,9 +23,10 @@ var createMockCredential = async ({ signer, issuer }) => createCredential({
23
23
  });
24
24
 
25
25
  // packages/sdk/client-services/src/packlets/testing/invitation-utils.ts
26
- import invariant from "tiny-invariant";
27
26
  import { Trigger } from "@dxos/async";
27
+ import { invariant } from "@dxos/invariant";
28
28
  import { Invitation } from "@dxos/protocols/proto/dxos/client/services";
29
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/testing/invitation-utils.ts";
29
30
  var sanitizeInvitation = (invitation) => {
30
31
  return {
31
32
  invitationId: invitation.invitationId,
@@ -43,40 +44,46 @@ var performInvitation = ({ host, guest, options, hooks }) => {
43
44
  const authCode = new Trigger();
44
45
  const hostObservable = createInvitation(host, options);
45
46
  hostObservable.subscribe(async (hostInvitation) => {
46
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
47
47
  switch (hostInvitation.state) {
48
48
  case Invitation.State.CONNECTING: {
49
- if ((_b = (_a = hooks == null ? void 0 : hooks.host) == null ? void 0 : _a.onConnecting) == null ? void 0 : _b.call(_a, hostObservable)) {
49
+ if (hooks?.host?.onConnecting?.(hostObservable)) {
50
50
  break;
51
51
  }
52
52
  const guestObservable = acceptInvitation(guest, hostInvitation);
53
53
  guestObservable.subscribe(async (guestInvitation) => {
54
- var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2, _m2, _n2;
55
54
  switch (guestInvitation.state) {
56
55
  case Invitation.State.CONNECTING: {
57
- if ((_b2 = (_a2 = hooks == null ? void 0 : hooks.guest) == null ? void 0 : _a2.onConnecting) == null ? void 0 : _b2.call(_a2, guestObservable)) {
56
+ if (hooks?.guest?.onConnecting?.(guestObservable)) {
58
57
  break;
59
58
  }
60
- invariant(hostInvitation.swarmKey.equals(guestInvitation.swarmKey));
59
+ invariant(hostInvitation.swarmKey.equals(guestInvitation.swarmKey), void 0, {
60
+ F: __dxlog_file,
61
+ L: 84,
62
+ S: void 0,
63
+ A: [
64
+ "hostInvitation.swarmKey!.equals(guestInvitation.swarmKey!)",
65
+ ""
66
+ ]
67
+ });
61
68
  break;
62
69
  }
63
70
  case Invitation.State.CONNECTED: {
64
- (_d2 = (_c2 = hooks == null ? void 0 : hooks.guest) == null ? void 0 : _c2.onConnected) == null ? void 0 : _d2.call(_c2, guestObservable);
71
+ hooks?.guest?.onConnected?.(guestObservable);
65
72
  break;
66
73
  }
67
74
  case Invitation.State.READY_FOR_AUTHENTICATION: {
68
- if ((_f2 = (_e2 = hooks == null ? void 0 : hooks.guest) == null ? void 0 : _e2.onReady) == null ? void 0 : _f2.call(_e2, guestObservable)) {
75
+ if (hooks?.guest?.onReady?.(guestObservable)) {
69
76
  break;
70
77
  }
71
78
  await guestObservable.authenticate(await authCode.wait());
72
79
  break;
73
80
  }
74
81
  case Invitation.State.AUTHENTICATING: {
75
- (_h2 = (_g2 = hooks == null ? void 0 : hooks.guest) == null ? void 0 : _g2.onAuthenticating) == null ? void 0 : _h2.call(_g2, guestObservable);
82
+ hooks?.guest?.onAuthenticating?.(guestObservable);
76
83
  break;
77
84
  }
78
85
  case Invitation.State.SUCCESS: {
79
- if ((_j2 = (_i2 = hooks == null ? void 0 : hooks.guest) == null ? void 0 : _i2.onSuccess) == null ? void 0 : _j2.call(_i2, guestObservable)) {
86
+ if (hooks?.guest?.onSuccess?.(guestObservable)) {
80
87
  break;
81
88
  }
82
89
  guestComplete.wake({
@@ -85,7 +92,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
85
92
  break;
86
93
  }
87
94
  case Invitation.State.CANCELLED: {
88
- if ((_l2 = (_k2 = hooks == null ? void 0 : hooks.guest) == null ? void 0 : _k2.onCancelled) == null ? void 0 : _l2.call(_k2, guestObservable)) {
95
+ if (hooks?.guest?.onCancelled?.(guestObservable)) {
89
96
  break;
90
97
  }
91
98
  guestComplete.wake({
@@ -94,7 +101,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
94
101
  break;
95
102
  }
96
103
  case Invitation.State.TIMEOUT: {
97
- if ((_n2 = (_m2 = hooks == null ? void 0 : hooks.guest) == null ? void 0 : _m2.onTimeout) == null ? void 0 : _n2.call(_m2, guestObservable)) {
104
+ if (hooks?.guest?.onTimeout?.(guestObservable)) {
98
105
  return;
99
106
  }
100
107
  guestComplete.wake({
@@ -103,8 +110,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
103
110
  }
104
111
  }
105
112
  }, (error) => {
106
- var _a2, _b2;
107
- if ((_b2 = (_a2 = hooks == null ? void 0 : hooks.guest) == null ? void 0 : _a2.onError) == null ? void 0 : _b2.call(_a2, guestObservable)) {
113
+ if (hooks?.guest?.onError?.(guestObservable)) {
108
114
  return;
109
115
  }
110
116
  guestComplete.wake({
@@ -114,11 +120,11 @@ var performInvitation = ({ host, guest, options, hooks }) => {
114
120
  break;
115
121
  }
116
122
  case Invitation.State.CONNECTED: {
117
- (_d = (_c = hooks == null ? void 0 : hooks.host) == null ? void 0 : _c.onConnected) == null ? void 0 : _d.call(_c, hostObservable);
123
+ hooks?.host?.onConnected?.(hostObservable);
118
124
  break;
119
125
  }
120
126
  case Invitation.State.READY_FOR_AUTHENTICATION: {
121
- if ((_f = (_e = hooks == null ? void 0 : hooks.host) == null ? void 0 : _e.onReady) == null ? void 0 : _f.call(_e, hostObservable)) {
127
+ if (hooks?.host?.onReady?.(hostObservable)) {
122
128
  break;
123
129
  }
124
130
  if (hostInvitation.authCode) {
@@ -127,11 +133,11 @@ var performInvitation = ({ host, guest, options, hooks }) => {
127
133
  break;
128
134
  }
129
135
  case Invitation.State.AUTHENTICATING: {
130
- (_h = (_g = hooks == null ? void 0 : hooks.host) == null ? void 0 : _g.onAuthenticating) == null ? void 0 : _h.call(_g, hostObservable);
136
+ hooks?.host?.onAuthenticating?.(hostObservable);
131
137
  break;
132
138
  }
133
139
  case Invitation.State.SUCCESS: {
134
- if ((_j = (_i = hooks == null ? void 0 : hooks.host) == null ? void 0 : _i.onSuccess) == null ? void 0 : _j.call(_i, hostObservable)) {
140
+ if (hooks?.host?.onSuccess?.(hostObservable)) {
135
141
  break;
136
142
  }
137
143
  hostComplete.wake({
@@ -140,7 +146,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
140
146
  break;
141
147
  }
142
148
  case Invitation.State.CANCELLED: {
143
- if ((_l = (_k = hooks == null ? void 0 : hooks.host) == null ? void 0 : _k.onCancelled) == null ? void 0 : _l.call(_k, hostObservable)) {
149
+ if (hooks?.host?.onCancelled?.(hostObservable)) {
144
150
  break;
145
151
  }
146
152
  hostComplete.wake({
@@ -149,7 +155,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
149
155
  break;
150
156
  }
151
157
  case Invitation.State.TIMEOUT: {
152
- if ((_n = (_m = hooks == null ? void 0 : hooks.host) == null ? void 0 : _m.onTimeout) == null ? void 0 : _n.call(_m, hostObservable)) {
158
+ if (hooks?.host?.onTimeout?.(hostObservable)) {
153
159
  break;
154
160
  }
155
161
  hostComplete.wake({
@@ -159,8 +165,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
159
165
  }
160
166
  }
161
167
  }, (error) => {
162
- var _a, _b;
163
- if ((_b = (_a = hooks == null ? void 0 : hooks.host) == null ? void 0 : _a.onError) == null ? void 0 : _b.call(_a, hostObservable)) {
168
+ if (hooks?.host?.onError?.(hostObservable)) {
164
169
  return;
165
170
  }
166
171
  hostComplete.wake({
@@ -173,9 +178,9 @@ var performInvitation = ({ host, guest, options, hooks }) => {
173
178
  ];
174
179
  };
175
180
  var createInvitation = (host, options) => {
176
- options != null ? options : options = {
181
+ options ??= {
177
182
  authMethod: Invitation.AuthMethod.NONE,
178
- ...options != null ? options : {}
183
+ ...options ?? {}
179
184
  };
180
185
  if (host instanceof ServiceContext) {
181
186
  const hostHandler = host.getInvitationHandler({
@@ -233,7 +238,7 @@ var createPeers = async (numPeers) => {
233
238
  const peer = createServiceContext({
234
239
  signalContext
235
240
  });
236
- await peer.open();
241
+ await peer.open(new Context());
237
242
  return peer;
238
243
  }));
239
244
  };
@@ -271,18 +276,15 @@ var TestPeer = class {
271
276
  return this._props;
272
277
  }
273
278
  get storage() {
274
- var _a, _b;
275
- return (_b = (_a = this._props).storage) != null ? _b : _a.storage = createStorage({
279
+ return this._props.storage ??= createStorage({
276
280
  type: this.opts.storageType
277
281
  });
278
282
  }
279
283
  get keyring() {
280
- var _a, _b;
281
- return (_b = (_a = this._props).keyring) != null ? _b : _a.keyring = new Keyring(this.storage.createDirectory("keyring"));
284
+ return this._props.keyring ??= new Keyring(this.storage.createDirectory("keyring"));
282
285
  }
283
286
  get feedStore() {
284
- var _a, _b;
285
- return (_b = (_a = this._props).feedStore) != null ? _b : _a.feedStore = new FeedStore({
287
+ return this._props.feedStore ??= new FeedStore({
286
288
  factory: new FeedFactory({
287
289
  root: this.storage.createDirectory("feeds"),
288
290
  signer: this.keyring,
@@ -293,27 +295,22 @@ var TestPeer = class {
293
295
  });
294
296
  }
295
297
  get metadataStore() {
296
- var _a, _b;
297
- return (_b = (_a = this._props).metadataStore) != null ? _b : _a.metadataStore = new MetadataStore(this.storage.createDirectory("metadata"));
298
+ return this._props.metadataStore ??= new MetadataStore(this.storage.createDirectory("metadata"));
298
299
  }
299
300
  get blobStore() {
300
- var _a, _b;
301
- return (_b = (_a = this._props).blobStore) != null ? _b : _a.blobStore = new BlobStore(this.storage.createDirectory("blobs"));
301
+ return this._props.blobStore ??= new BlobStore(this.storage.createDirectory("blobs"));
302
302
  }
303
303
  get snapshotStore() {
304
- var _a, _b;
305
- return (_b = (_a = this._props).snapshotStore) != null ? _b : _a.snapshotStore = new SnapshotStore(this.storage.createDirectory("snapshots"));
304
+ return this._props.snapshotStore ??= new SnapshotStore(this.storage.createDirectory("snapshots"));
306
305
  }
307
306
  get networkManager() {
308
- var _a, _b;
309
- return (_b = (_a = this._props).networkManager) != null ? _b : _a.networkManager = new NetworkManager({
307
+ return this._props.networkManager ??= new NetworkManager({
310
308
  signalManager: new MemorySignalManager(this.signalContext),
311
309
  transportFactory: MemoryTransportFactory
312
310
  });
313
311
  }
314
312
  get spaceManager() {
315
- var _a, _b;
316
- return (_b = (_a = this._props).spaceManager) != null ? _b : _a.spaceManager = new SpaceManager({
313
+ return this._props.spaceManager ??= new SpaceManager({
317
314
  feedStore: this.feedStore,
318
315
  networkManager: this.networkManager,
319
316
  metadataStore: this.metadataStore,
@@ -323,16 +320,13 @@ var TestPeer = class {
323
320
  });
324
321
  }
325
322
  get identity() {
326
- var _a;
327
- return (_a = this._props.signingContext) != null ? _a : failUndefined();
323
+ return this._props.signingContext ?? failUndefined();
328
324
  }
329
325
  get dataSpaceManager() {
330
- var _a, _b;
331
- return (_b = (_a = this._props).dataSpaceManager) != null ? _b : _a.dataSpaceManager = new DataSpaceManager(this.spaceManager, this.metadataStore, new DataServiceSubscriptions(), this.keyring, this.identity, this.feedStore);
326
+ return this._props.dataSpaceManager ??= new DataSpaceManager(this.spaceManager, this.metadataStore, new DataServiceSubscriptions(), this.keyring, this.identity, this.feedStore);
332
327
  }
333
328
  async createIdentity() {
334
- var _a, _b;
335
- (_b = (_a = this._props).signingContext) != null ? _b : _a.signingContext = await createSigningContext(this.keyring);
329
+ this._props.signingContext ??= await createSigningContext(this.keyring);
336
330
  }
337
331
  async destroy() {
338
332
  await this.storage.reset();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/packlets/testing/credential-utils.ts", "../../../../../src/packlets/testing/invitation-utils.ts", "../../../../../src/packlets/testing/test-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createCredential } from '@dxos/credentials';\nimport { Signer } from '@dxos/crypto';\nimport { PublicKey } from '@dxos/keys';\nimport { 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 invariant from 'tiny-invariant';\n\nimport { Trigger } from '@dxos/async';\nimport { AuthenticatingInvitationObservable, CancellableInvitationObservable } from '@dxos/client-protocol';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { ServiceContext } from '../services';\n\n/**\n * Strip secrets from invitation before giving it to the peer.\n */\nexport const sanitizeInvitation = (invitation: Invitation): Invitation => {\n return {\n invitationId: invitation.invitationId,\n type: invitation.type,\n kind: invitation.kind,\n authMethod: invitation.authMethod,\n swarmKey: invitation.swarmKey,\n state: invitation.state,\n timeout: invitation.timeout,\n };\n};\n\nexport type InvitationHost = {\n createInvitation(options?: Partial<Invitation>): CancellableInvitationObservable;\n};\n\nexport type InvitationGuest = {\n acceptInvitation(invitation: Invitation): AuthenticatingInvitationObservable;\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<CancellableInvitationObservable>;\n guest?: PerformInvitationCallbacks<AuthenticatingInvitationObservable>;\n };\n};\n\nexport type Result = { invitation?: Invitation; error?: Error };\n\nexport const performInvitation = ({\n host,\n guest,\n options,\n hooks,\n}: PerformInvitationParams): [Promise<Result>, Promise<Result>] => {\n const hostComplete = new Trigger<Result>();\n const guestComplete = new Trigger<Result>();\n const authCode = new Trigger<string>();\n\n const hostObservable = createInvitation(host, options);\n hostObservable.subscribe(\n async (hostInvitation: Invitation) => {\n switch (hostInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.host?.onConnecting?.(hostObservable)) {\n break;\n }\n const guestObservable = acceptInvitation(guest, hostInvitation);\n guestObservable.subscribe(\n async (guestInvitation: Invitation) => {\n switch (guestInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.guest?.onConnecting?.(guestObservable)) {\n break;\n }\n invariant(hostInvitation.swarmKey!.equals(guestInvitation.swarmKey!));\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.guest?.onConnected?.(guestObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.guest?.onReady?.(guestObservable)) {\n break;\n }\n await guestObservable.authenticate(await authCode.wait());\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.guest?.onAuthenticating?.(guestObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.guest?.onSuccess?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.guest?.onCancelled?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.guest?.onTimeout?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ invitation: guestInvitation });\n }\n }\n },\n (error: Error) => {\n if (hooks?.guest?.onError?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ error });\n },\n );\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.host?.onConnected?.(hostObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.host?.onReady?.(hostObservable)) {\n break;\n }\n if (hostInvitation.authCode) {\n authCode.wake(hostInvitation.authCode);\n }\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.host?.onAuthenticating?.(hostObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.host?.onSuccess?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.host?.onCancelled?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.host?.onTimeout?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n }\n },\n (error: Error) => {\n if (hooks?.host?.onError?.(hostObservable)) {\n return;\n }\n hostComplete.wake({ error });\n },\n );\n\n return [hostComplete.wait(), guestComplete.wait()];\n};\n\nconst createInvitation = (\n host: ServiceContext | InvitationHost,\n options?: Partial<Invitation>,\n): CancellableInvitationObservable => {\n options ??= {\n authMethod: Invitation.AuthMethod.NONE,\n ...(options ?? {}),\n };\n\n if (host instanceof ServiceContext) {\n const hostHandler = host.getInvitationHandler({ kind: Invitation.Kind.SPACE, ...options });\n return host.invitations.createInvitation(hostHandler, options);\n }\n\n return host.createInvitation(options);\n};\n\nconst acceptInvitation = (\n guest: ServiceContext | InvitationGuest,\n invitation: Invitation,\n): AuthenticatingInvitationObservable => {\n invitation = sanitizeInvitation(invitation);\n\n if (guest instanceof ServiceContext) {\n const guestHandler = guest.getInvitationHandler({ kind: invitation.kind });\n return guest.invitations.acceptInvitation(guestHandler, invitation);\n }\n\n return guest.acceptInvitation(invitation);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Config } from '@dxos/config';\nimport { Context } from '@dxos/context';\nimport { createCredentialSignerWithChain, CredentialGenerator } from '@dxos/credentials';\nimport { failUndefined } from '@dxos/debug';\nimport {\n SnapshotStore,\n DataPipeline,\n MetadataStore,\n SpaceManager,\n valueEncoding,\n DataServiceSubscriptions,\n} from '@dxos/echo-pipeline';\nimport { testLocalDatabase } from '@dxos/echo-pipeline/testing';\nimport { FeedFactory, FeedStore } from '@dxos/feed-store';\nimport { Keyring } from '@dxos/keyring';\nimport { MemorySignalManager, MemorySignalManagerContext } from '@dxos/messaging';\nimport { MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';\nimport { createStorage, Storage, StorageType } from '@dxos/random-access-storage';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\n\nimport { ClientServicesHost, createDefaultModelFactory, ServiceContext } from '../services';\nimport { DataSpaceManager, SigningContext } from '../spaces';\n\n//\n// TODO(burdon): Replace with test builder.\n//\n\nexport const createServiceHost = (config: Config, signalManagerContext: MemorySignalManagerContext) => {\n return new ClientServicesHost({\n config,\n signalManager: new MemorySignalManager(signalManagerContext),\n transportFactory: MemoryTransportFactory,\n });\n};\n\nexport const createServiceContext = ({\n signalContext = new MemorySignalManagerContext(),\n storage = createStorage({ type: StorageType.RAM }),\n}: {\n signalContext?: MemorySignalManagerContext;\n storage?: Storage;\n} = {}) => {\n const signalManager = new MemorySignalManager(signalContext);\n const networkManager = new NetworkManager({\n signalManager,\n transportFactory: MemoryTransportFactory,\n });\n\n const modelFactory = createDefaultModelFactory();\n return new ServiceContext(storage, networkManager, signalManager, modelFactory);\n};\n\nexport const createPeers = async (numPeers: number) => {\n const signalContext = new MemorySignalManagerContext();\n\n return await Promise.all(\n Array.from(Array(numPeers)).map(async () => {\n const peer = createServiceContext({ signalContext });\n await peer.open();\n return peer;\n }),\n );\n};\n\nexport const createIdentity = async (peer: ServiceContext) => {\n await peer.createIdentity();\n return peer;\n};\n\n// TODO(burdon): Remove @dxos/client-testing.\n// TODO(burdon): Create builder and make configurable.\nexport const syncItemsLocal = async (db1: DataPipeline, db2: DataPipeline) => {\n await testLocalDatabase(db1, db2);\n await testLocalDatabase(db2, db1);\n};\n\nexport class TestBuilder {\n public readonly signalContext = new MemorySignalManagerContext();\n private readonly _ctx = new Context();\n\n createPeer(peerOptions?: TestPeerOpts): TestPeer {\n const peer = new TestPeer(this.signalContext, peerOptions);\n this._ctx.onDispose(async () => peer.destroy());\n return peer;\n }\n\n async destroy() {\n await this._ctx.dispose();\n }\n}\n\nexport type TestPeerOpts = {\n storageType?: StorageType;\n};\n\nexport type TestPeerProps = {\n storage?: Storage;\n feedStore?: FeedStore<any>;\n metadataStore?: MetadataStore;\n keyring?: Keyring;\n networkManager?: NetworkManager;\n spaceManager?: SpaceManager;\n dataSpaceManager?: DataSpaceManager;\n snapshotStore?: SnapshotStore;\n signingContext?: SigningContext;\n blobStore?: BlobStore;\n};\n\nexport class TestPeer {\n private _props: TestPeerProps = {};\n\n constructor(\n private readonly signalContext: MemorySignalManagerContext,\n private readonly opts: TestPeerOpts = { storageType: 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.storageType }));\n }\n\n get keyring() {\n return (this._props.keyring ??= new Keyring(this.storage.createDirectory('keyring')));\n }\n\n get feedStore() {\n return (this._props.feedStore ??= new FeedStore({\n factory: new FeedFactory({\n root: this.storage.createDirectory('feeds'),\n signer: this.keyring,\n hypercore: {\n valueEncoding,\n },\n }),\n }));\n }\n\n get metadataStore() {\n return (this._props.metadataStore ??= new MetadataStore(this.storage.createDirectory('metadata')));\n }\n\n get blobStore() {\n return (this._props.blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\n\n get snapshotStore() {\n return (this._props.snapshotStore ??= new SnapshotStore(this.storage.createDirectory('snapshots')));\n }\n\n get networkManager() {\n return (this._props.networkManager ??= new NetworkManager({\n signalManager: new MemorySignalManager(this.signalContext),\n transportFactory: MemoryTransportFactory,\n }));\n }\n\n get spaceManager() {\n return (this._props.spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this.networkManager,\n metadataStore: this.metadataStore,\n modelFactory: createDefaultModelFactory(),\n snapshotStore: this.snapshotStore,\n blobStore: this.blobStore,\n }));\n }\n\n get identity() {\n return this._props.signingContext ?? failUndefined();\n }\n\n get dataSpaceManager() {\n return (this._props.dataSpaceManager ??= new DataSpaceManager(\n this.spaceManager,\n this.metadataStore,\n new DataServiceSubscriptions(),\n this.keyring,\n this.identity,\n this.feedStore,\n ));\n }\n\n async createIdentity() {\n this._props.signingContext ??= await createSigningContext(this.keyring);\n }\n\n async destroy() {\n await this.storage.reset();\n }\n}\n\nexport const createSigningContext = async (keyring: Keyring): Promise<SigningContext> => {\n const identityKey = await keyring.createKey();\n const deviceKey = await keyring.createKey();\n\n return {\n identityKey,\n deviceKey,\n credentialSigner: createCredentialSignerWithChain(\n keyring,\n {\n credential: await new CredentialGenerator(keyring, identityKey, deviceKey).createDeviceAuthorization(deviceKey),\n },\n deviceKey,\n ),\n recordCredential: async () => {}, // No-op.\n };\n};\n"],
5
- "mappings": "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",
6
- "names": ["createCredential", "PublicKey", "createMockCredential", "signer", "issuer", "createCredential", "subject", "PublicKey", "Buffer", "from", "assertion", "payload", "value", "invariant", "Trigger", "Invitation", "sanitizeInvitation", "invitation", "invitationId", "type", "kind", "authMethod", "swarmKey", "state", "timeout", "performInvitation", "host", "guest", "options", "hooks", "hostComplete", "Trigger", "guestComplete", "authCode", "hostObservable", "createInvitation", "subscribe", "hostInvitation", "Invitation", "State", "CONNECTING", "onConnecting", "guestObservable", "acceptInvitation", "guestInvitation", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "_j", "_k", "_l", "_m", "_n", "invariant", "equals", "CONNECTED", "onConnected", "READY_FOR_AUTHENTICATION", "onReady", "authenticate", "wait", "AUTHENTICATING", "onAuthenticating", "SUCCESS", "onSuccess", "wake", "CANCELLED", "onCancelled", "TIMEOUT", "onTimeout", "error", "onError", "AuthMethod", "NONE", "ServiceContext", "hostHandler", "getInvitationHandler", "Kind", "SPACE", "invitations", "guestHandler", "Context", "createCredentialSignerWithChain", "CredentialGenerator", "failUndefined", "SnapshotStore", "MetadataStore", "SpaceManager", "valueEncoding", "DataServiceSubscriptions", "testLocalDatabase", "FeedFactory", "FeedStore", "Keyring", "MemorySignalManager", "MemorySignalManagerContext", "MemoryTransportFactory", "NetworkManager", "createStorage", "StorageType", "BlobStore", "createServiceHost", "config", "signalManagerContext", "ClientServicesHost", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "createServiceContext", "signalContext", "MemorySignalManagerContext", "storage", "createStorage", "type", "StorageType", "RAM", "networkManager", "NetworkManager", "modelFactory", "createDefaultModelFactory", "ServiceContext", "createPeers", "numPeers", "Promise", "all", "Array", "from", "map", "peer", "open", "createIdentity", "syncItemsLocal", "db1", "db2", "testLocalDatabase", "TestBuilder", "_ctx", "Context", "createPeer", "peerOptions", "TestPeer", "onDispose", "destroy", "dispose", "constructor", "opts", "storageType", "_props", "props", "keyring", "Keyring", "createDirectory", "feedStore", "FeedStore", "factory", "FeedFactory", "root", "signer", "hypercore", "valueEncoding", "metadataStore", "MetadataStore", "blobStore", "BlobStore", "snapshotStore", "SnapshotStore", "spaceManager", "SpaceManager", "identity", "signingContext", "failUndefined", "dataSpaceManager", "DataSpaceManager", "DataServiceSubscriptions", "createSigningContext", "reset", "identityKey", "createKey", "deviceKey", "credentialSigner", "createCredentialSignerWithChain", "credential", "CredentialGenerator", "createDeviceAuthorization", "recordCredential"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createCredential } from '@dxos/credentials';\nimport { Signer } from '@dxos/crypto';\nimport { PublicKey } from '@dxos/keys';\nimport { 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 { AuthenticatingInvitationObservable, CancellableInvitationObservable } from '@dxos/client-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { ServiceContext } from '../services';\n\n/**\n * Strip secrets from invitation before giving it to the peer.\n */\nexport const sanitizeInvitation = (invitation: Invitation): Invitation => {\n return {\n invitationId: invitation.invitationId,\n type: invitation.type,\n kind: invitation.kind,\n authMethod: invitation.authMethod,\n swarmKey: invitation.swarmKey,\n state: invitation.state,\n timeout: invitation.timeout,\n };\n};\n\nexport type InvitationHost = {\n createInvitation(options?: Partial<Invitation>): CancellableInvitationObservable;\n};\n\nexport type InvitationGuest = {\n acceptInvitation(invitation: Invitation): AuthenticatingInvitationObservable;\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<CancellableInvitationObservable>;\n guest?: PerformInvitationCallbacks<AuthenticatingInvitationObservable>;\n };\n};\n\nexport type Result = { invitation?: Invitation; error?: Error };\n\nexport const performInvitation = ({\n host,\n guest,\n options,\n hooks,\n}: PerformInvitationParams): [Promise<Result>, Promise<Result>] => {\n const hostComplete = new Trigger<Result>();\n const guestComplete = new Trigger<Result>();\n const authCode = new Trigger<string>();\n\n const hostObservable = createInvitation(host, options);\n hostObservable.subscribe(\n async (hostInvitation: Invitation) => {\n switch (hostInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.host?.onConnecting?.(hostObservable)) {\n break;\n }\n const guestObservable = acceptInvitation(guest, hostInvitation);\n guestObservable.subscribe(\n async (guestInvitation: Invitation) => {\n switch (guestInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.guest?.onConnecting?.(guestObservable)) {\n break;\n }\n invariant(hostInvitation.swarmKey!.equals(guestInvitation.swarmKey!));\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.guest?.onConnected?.(guestObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.guest?.onReady?.(guestObservable)) {\n break;\n }\n await guestObservable.authenticate(await authCode.wait());\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.guest?.onAuthenticating?.(guestObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.guest?.onSuccess?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.guest?.onCancelled?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.guest?.onTimeout?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ invitation: guestInvitation });\n }\n }\n },\n (error: Error) => {\n if (hooks?.guest?.onError?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ error });\n },\n );\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.host?.onConnected?.(hostObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.host?.onReady?.(hostObservable)) {\n break;\n }\n if (hostInvitation.authCode) {\n authCode.wake(hostInvitation.authCode);\n }\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.host?.onAuthenticating?.(hostObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.host?.onSuccess?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.host?.onCancelled?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.host?.onTimeout?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n }\n },\n (error: Error) => {\n if (hooks?.host?.onError?.(hostObservable)) {\n return;\n }\n hostComplete.wake({ error });\n },\n );\n\n return [hostComplete.wait(), guestComplete.wait()];\n};\n\nconst createInvitation = (\n host: ServiceContext | InvitationHost,\n options?: Partial<Invitation>,\n): CancellableInvitationObservable => {\n options ??= {\n authMethod: Invitation.AuthMethod.NONE,\n ...(options ?? {}),\n };\n\n if (host instanceof ServiceContext) {\n const hostHandler = host.getInvitationHandler({ kind: Invitation.Kind.SPACE, ...options });\n return host.invitations.createInvitation(hostHandler, options);\n }\n\n return host.createInvitation(options);\n};\n\nconst acceptInvitation = (\n guest: ServiceContext | InvitationGuest,\n invitation: Invitation,\n): AuthenticatingInvitationObservable => {\n invitation = sanitizeInvitation(invitation);\n\n if (guest instanceof ServiceContext) {\n const guestHandler = guest.getInvitationHandler({ kind: invitation.kind });\n return guest.invitations.acceptInvitation(guestHandler, invitation);\n }\n\n return guest.acceptInvitation(invitation);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { Config } from '@dxos/config';\nimport { Context } from '@dxos/context';\nimport { createCredentialSignerWithChain, CredentialGenerator } from '@dxos/credentials';\nimport { failUndefined } from '@dxos/debug';\nimport {\n SnapshotStore,\n DataPipeline,\n MetadataStore,\n SpaceManager,\n valueEncoding,\n DataServiceSubscriptions,\n} from '@dxos/echo-pipeline';\nimport { testLocalDatabase } from '@dxos/echo-pipeline/testing';\nimport { FeedFactory, FeedStore } from '@dxos/feed-store';\nimport { Keyring } from '@dxos/keyring';\nimport { MemorySignalManager, MemorySignalManagerContext } from '@dxos/messaging';\nimport { MemoryTransportFactory, NetworkManager } from '@dxos/network-manager';\nimport { createStorage, Storage, StorageType } from '@dxos/random-access-storage';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\n\nimport { ClientServicesHost, createDefaultModelFactory, ServiceContext } from '../services';\nimport { DataSpaceManager, SigningContext } from '../spaces';\n\n//\n// TODO(burdon): Replace with test builder.\n//\n\nexport const createServiceHost = (config: Config, signalManagerContext: MemorySignalManagerContext) => {\n return new ClientServicesHost({\n config,\n signalManager: new MemorySignalManager(signalManagerContext),\n transportFactory: MemoryTransportFactory,\n });\n};\n\nexport const createServiceContext = ({\n signalContext = new MemorySignalManagerContext(),\n storage = createStorage({ type: StorageType.RAM }),\n}: {\n signalContext?: MemorySignalManagerContext;\n storage?: Storage;\n} = {}) => {\n const signalManager = new MemorySignalManager(signalContext);\n const networkManager = new NetworkManager({\n signalManager,\n transportFactory: MemoryTransportFactory,\n });\n\n const modelFactory = createDefaultModelFactory();\n return new ServiceContext(storage, networkManager, signalManager, modelFactory);\n};\n\nexport const createPeers = async (numPeers: number) => {\n const signalContext = new MemorySignalManagerContext();\n\n return await Promise.all(\n Array.from(Array(numPeers)).map(async () => {\n const peer = createServiceContext({ signalContext });\n await peer.open(new Context());\n return peer;\n }),\n );\n};\n\nexport const createIdentity = async (peer: ServiceContext) => {\n await peer.createIdentity();\n return peer;\n};\n\n// TODO(burdon): Remove @dxos/client-testing.\n// TODO(burdon): Create builder and make configurable.\nexport const syncItemsLocal = async (db1: DataPipeline, db2: DataPipeline) => {\n await testLocalDatabase(db1, db2);\n await testLocalDatabase(db2, db1);\n};\n\nexport class TestBuilder {\n public readonly signalContext = new MemorySignalManagerContext();\n private readonly _ctx = new Context();\n\n createPeer(peerOptions?: TestPeerOpts): TestPeer {\n const peer = new TestPeer(this.signalContext, peerOptions);\n this._ctx.onDispose(async () => peer.destroy());\n return peer;\n }\n\n async destroy() {\n await this._ctx.dispose();\n }\n}\n\nexport type TestPeerOpts = {\n storageType?: StorageType;\n};\n\nexport type TestPeerProps = {\n storage?: Storage;\n feedStore?: FeedStore<any>;\n metadataStore?: MetadataStore;\n keyring?: Keyring;\n networkManager?: NetworkManager;\n spaceManager?: SpaceManager;\n dataSpaceManager?: DataSpaceManager;\n snapshotStore?: SnapshotStore;\n signingContext?: SigningContext;\n blobStore?: BlobStore;\n};\n\nexport class TestPeer {\n private _props: TestPeerProps = {};\n\n constructor(\n private readonly signalContext: MemorySignalManagerContext,\n private readonly opts: TestPeerOpts = { storageType: 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.storageType }));\n }\n\n get keyring() {\n return (this._props.keyring ??= new Keyring(this.storage.createDirectory('keyring')));\n }\n\n get feedStore() {\n return (this._props.feedStore ??= new FeedStore({\n factory: new FeedFactory({\n root: this.storage.createDirectory('feeds'),\n signer: this.keyring,\n hypercore: {\n valueEncoding,\n },\n }),\n }));\n }\n\n get metadataStore() {\n return (this._props.metadataStore ??= new MetadataStore(this.storage.createDirectory('metadata')));\n }\n\n get blobStore() {\n return (this._props.blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\n\n get snapshotStore() {\n return (this._props.snapshotStore ??= new SnapshotStore(this.storage.createDirectory('snapshots')));\n }\n\n get networkManager() {\n return (this._props.networkManager ??= new NetworkManager({\n signalManager: new MemorySignalManager(this.signalContext),\n transportFactory: MemoryTransportFactory,\n }));\n }\n\n get spaceManager() {\n return (this._props.spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this.networkManager,\n metadataStore: this.metadataStore,\n modelFactory: createDefaultModelFactory(),\n snapshotStore: this.snapshotStore,\n blobStore: this.blobStore,\n }));\n }\n\n get identity() {\n return this._props.signingContext ?? failUndefined();\n }\n\n get dataSpaceManager() {\n return (this._props.dataSpaceManager ??= new DataSpaceManager(\n this.spaceManager,\n this.metadataStore,\n new DataServiceSubscriptions(),\n this.keyring,\n this.identity,\n this.feedStore,\n ));\n }\n\n async createIdentity() {\n this._props.signingContext ??= await createSigningContext(this.keyring);\n }\n\n async destroy() {\n await this.storage.reset();\n }\n}\n\nexport const createSigningContext = async (keyring: Keyring): Promise<SigningContext> => {\n const identityKey = await keyring.createKey();\n const deviceKey = await keyring.createKey();\n\n return {\n identityKey,\n deviceKey,\n credentialSigner: createCredentialSignerWithChain(\n keyring,\n {\n credential: await new CredentialGenerator(keyring, identityKey, deviceKey).createDeviceAuthorization(deviceKey),\n },\n deviceKey,\n ),\n recordCredential: async () => {}, // No-op.\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["createCredential", "PublicKey", "createMockCredential", "signer", "issuer", "createCredential", "subject", "PublicKey", "Buffer", "from", "assertion", "payload", "value", "Trigger", "invariant", "Invitation", "sanitizeInvitation", "invitation", "invitationId", "type", "kind", "authMethod", "swarmKey", "state", "timeout", "performInvitation", "host", "guest", "options", "hooks", "hostComplete", "Trigger", "guestComplete", "authCode", "hostObservable", "createInvitation", "subscribe", "hostInvitation", "Invitation", "State", "CONNECTING", "onConnecting", "guestObservable", "acceptInvitation", "guestInvitation", "invariant", "equals", "CONNECTED", "onConnected", "READY_FOR_AUTHENTICATION", "onReady", "authenticate", "wait", "AUTHENTICATING", "onAuthenticating", "SUCCESS", "onSuccess", "wake", "CANCELLED", "onCancelled", "TIMEOUT", "onTimeout", "error", "onError", "AuthMethod", "NONE", "ServiceContext", "hostHandler", "getInvitationHandler", "Kind", "SPACE", "invitations", "guestHandler", "Context", "createCredentialSignerWithChain", "CredentialGenerator", "failUndefined", "SnapshotStore", "MetadataStore", "SpaceManager", "valueEncoding", "DataServiceSubscriptions", "testLocalDatabase", "FeedFactory", "FeedStore", "Keyring", "MemorySignalManager", "MemorySignalManagerContext", "MemoryTransportFactory", "NetworkManager", "createStorage", "StorageType", "BlobStore", "createServiceHost", "config", "signalManagerContext", "ClientServicesHost", "signalManager", "MemorySignalManager", "transportFactory", "MemoryTransportFactory", "createServiceContext", "signalContext", "MemorySignalManagerContext", "storage", "createStorage", "type", "StorageType", "RAM", "networkManager", "NetworkManager", "modelFactory", "createDefaultModelFactory", "ServiceContext", "createPeers", "numPeers", "Promise", "all", "Array", "from", "map", "peer", "open", "Context", "createIdentity", "syncItemsLocal", "db1", "db2", "testLocalDatabase", "TestBuilder", "_ctx", "createPeer", "peerOptions", "TestPeer", "onDispose", "destroy", "dispose", "constructor", "opts", "storageType", "_props", "props", "keyring", "Keyring", "createDirectory", "feedStore", "FeedStore", "factory", "FeedFactory", "root", "signer", "hypercore", "valueEncoding", "metadataStore", "MetadataStore", "blobStore", "BlobStore", "snapshotStore", "SnapshotStore", "spaceManager", "SpaceManager", "identity", "signingContext", "failUndefined", "dataSpaceManager", "DataSpaceManager", "DataServiceSubscriptions", "createSigningContext", "reset", "identityKey", "createKey", "deviceKey", "credentialSigner", "createCredentialSignerWithChain", "credential", "CredentialGenerator", "createDeviceAuthorization", "recordCredential"]
7
7
  }