@dxos/client-services 0.1.56-main.c19b7cd → 0.1.56-main.c277f68
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-ZOTHWLK5.mjs → chunk-E7EKG5QQ.mjs} +267 -280
- package/dist/lib/browser/chunk-E7EKG5QQ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +8 -13
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/packlets/testing/index.mjs +30 -45
- package/dist/lib/browser/packlets/testing/index.mjs.map +2 -2
- package/dist/lib/node/index.cjs +287 -305
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/packlets/testing/index.cjs +299 -323
- package/dist/lib/node/packlets/testing/index.cjs.map +3 -3
- package/dist/types/src/packlets/identity/identity-manager.d.ts +5 -0
- package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/identity-service.d.ts +7 -3
- package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
- package/dist/types/src/packlets/services/diagnostics.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +1 -1
- package/package.json +34 -34
- package/src/packlets/identity/identity-manager.test.ts +11 -0
- package/src/packlets/identity/identity-manager.ts +18 -1
- package/src/packlets/identity/identity-service.test.ts +15 -1
- package/src/packlets/identity/identity-service.ts +23 -14
- package/src/packlets/invitations/invitations-handler.ts +2 -0
- package/src/packlets/services/diagnostics.ts +2 -1
- package/src/packlets/services/service-context.ts +7 -4
- package/src/packlets/services/service-host.test.ts +1 -1
- package/src/packlets/services/service-host.ts +11 -7
- package/src/packlets/spaces/data-space-manager.test.ts +80 -22
- package/src/packlets/spaces/data-space-manager.ts +5 -1
- package/src/packlets/spaces/spaces-service.ts +1 -1
- package/src/packlets/vault/worker-runtime.ts +1 -1
- package/src/version.ts +1 -1
- package/dist/lib/browser/chunk-ZOTHWLK5.mjs.map +0 -7
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
DataSpaceManager,
|
|
5
5
|
ServiceContext,
|
|
6
6
|
createDefaultModelFactory
|
|
7
|
-
} from "../../chunk-
|
|
7
|
+
} from "../../chunk-E7EKG5QQ.mjs";
|
|
8
8
|
|
|
9
9
|
// packages/sdk/client-services/src/packlets/testing/credential-utils.ts
|
|
10
10
|
import { createCredential } from "@dxos/credentials";
|
|
@@ -44,18 +44,16 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
44
44
|
const authCode = new Trigger();
|
|
45
45
|
const hostObservable = createInvitation(host, options);
|
|
46
46
|
hostObservable.subscribe(async (hostInvitation) => {
|
|
47
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
|
|
48
47
|
switch (hostInvitation.state) {
|
|
49
48
|
case Invitation.State.CONNECTING: {
|
|
50
|
-
if (
|
|
49
|
+
if (hooks?.host?.onConnecting?.(hostObservable)) {
|
|
51
50
|
break;
|
|
52
51
|
}
|
|
53
52
|
const guestObservable = acceptInvitation(guest, hostInvitation);
|
|
54
53
|
guestObservable.subscribe(async (guestInvitation) => {
|
|
55
|
-
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2, _m2, _n2;
|
|
56
54
|
switch (guestInvitation.state) {
|
|
57
55
|
case Invitation.State.CONNECTING: {
|
|
58
|
-
if (
|
|
56
|
+
if (hooks?.guest?.onConnecting?.(guestObservable)) {
|
|
59
57
|
break;
|
|
60
58
|
}
|
|
61
59
|
invariant(hostInvitation.swarmKey.equals(guestInvitation.swarmKey), void 0, {
|
|
@@ -70,22 +68,22 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
70
68
|
break;
|
|
71
69
|
}
|
|
72
70
|
case Invitation.State.CONNECTED: {
|
|
73
|
-
|
|
71
|
+
hooks?.guest?.onConnected?.(guestObservable);
|
|
74
72
|
break;
|
|
75
73
|
}
|
|
76
74
|
case Invitation.State.READY_FOR_AUTHENTICATION: {
|
|
77
|
-
if (
|
|
75
|
+
if (hooks?.guest?.onReady?.(guestObservable)) {
|
|
78
76
|
break;
|
|
79
77
|
}
|
|
80
78
|
await guestObservable.authenticate(await authCode.wait());
|
|
81
79
|
break;
|
|
82
80
|
}
|
|
83
81
|
case Invitation.State.AUTHENTICATING: {
|
|
84
|
-
|
|
82
|
+
hooks?.guest?.onAuthenticating?.(guestObservable);
|
|
85
83
|
break;
|
|
86
84
|
}
|
|
87
85
|
case Invitation.State.SUCCESS: {
|
|
88
|
-
if (
|
|
86
|
+
if (hooks?.guest?.onSuccess?.(guestObservable)) {
|
|
89
87
|
break;
|
|
90
88
|
}
|
|
91
89
|
guestComplete.wake({
|
|
@@ -94,7 +92,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
94
92
|
break;
|
|
95
93
|
}
|
|
96
94
|
case Invitation.State.CANCELLED: {
|
|
97
|
-
if (
|
|
95
|
+
if (hooks?.guest?.onCancelled?.(guestObservable)) {
|
|
98
96
|
break;
|
|
99
97
|
}
|
|
100
98
|
guestComplete.wake({
|
|
@@ -103,7 +101,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
103
101
|
break;
|
|
104
102
|
}
|
|
105
103
|
case Invitation.State.TIMEOUT: {
|
|
106
|
-
if (
|
|
104
|
+
if (hooks?.guest?.onTimeout?.(guestObservable)) {
|
|
107
105
|
return;
|
|
108
106
|
}
|
|
109
107
|
guestComplete.wake({
|
|
@@ -112,8 +110,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
112
110
|
}
|
|
113
111
|
}
|
|
114
112
|
}, (error) => {
|
|
115
|
-
|
|
116
|
-
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)) {
|
|
117
114
|
return;
|
|
118
115
|
}
|
|
119
116
|
guestComplete.wake({
|
|
@@ -123,11 +120,11 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
123
120
|
break;
|
|
124
121
|
}
|
|
125
122
|
case Invitation.State.CONNECTED: {
|
|
126
|
-
|
|
123
|
+
hooks?.host?.onConnected?.(hostObservable);
|
|
127
124
|
break;
|
|
128
125
|
}
|
|
129
126
|
case Invitation.State.READY_FOR_AUTHENTICATION: {
|
|
130
|
-
if (
|
|
127
|
+
if (hooks?.host?.onReady?.(hostObservable)) {
|
|
131
128
|
break;
|
|
132
129
|
}
|
|
133
130
|
if (hostInvitation.authCode) {
|
|
@@ -136,11 +133,11 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
136
133
|
break;
|
|
137
134
|
}
|
|
138
135
|
case Invitation.State.AUTHENTICATING: {
|
|
139
|
-
|
|
136
|
+
hooks?.host?.onAuthenticating?.(hostObservable);
|
|
140
137
|
break;
|
|
141
138
|
}
|
|
142
139
|
case Invitation.State.SUCCESS: {
|
|
143
|
-
if (
|
|
140
|
+
if (hooks?.host?.onSuccess?.(hostObservable)) {
|
|
144
141
|
break;
|
|
145
142
|
}
|
|
146
143
|
hostComplete.wake({
|
|
@@ -149,7 +146,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
149
146
|
break;
|
|
150
147
|
}
|
|
151
148
|
case Invitation.State.CANCELLED: {
|
|
152
|
-
if (
|
|
149
|
+
if (hooks?.host?.onCancelled?.(hostObservable)) {
|
|
153
150
|
break;
|
|
154
151
|
}
|
|
155
152
|
hostComplete.wake({
|
|
@@ -158,7 +155,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
158
155
|
break;
|
|
159
156
|
}
|
|
160
157
|
case Invitation.State.TIMEOUT: {
|
|
161
|
-
if (
|
|
158
|
+
if (hooks?.host?.onTimeout?.(hostObservable)) {
|
|
162
159
|
break;
|
|
163
160
|
}
|
|
164
161
|
hostComplete.wake({
|
|
@@ -168,8 +165,7 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
168
165
|
}
|
|
169
166
|
}
|
|
170
167
|
}, (error) => {
|
|
171
|
-
|
|
172
|
-
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)) {
|
|
173
169
|
return;
|
|
174
170
|
}
|
|
175
171
|
hostComplete.wake({
|
|
@@ -182,9 +178,9 @@ var performInvitation = ({ host, guest, options, hooks }) => {
|
|
|
182
178
|
];
|
|
183
179
|
};
|
|
184
180
|
var createInvitation = (host, options) => {
|
|
185
|
-
options
|
|
181
|
+
options ??= {
|
|
186
182
|
authMethod: Invitation.AuthMethod.NONE,
|
|
187
|
-
...options
|
|
183
|
+
...options ?? {}
|
|
188
184
|
};
|
|
189
185
|
if (host instanceof ServiceContext) {
|
|
190
186
|
const hostHandler = host.getInvitationHandler({
|
|
@@ -280,18 +276,15 @@ var TestPeer = class {
|
|
|
280
276
|
return this._props;
|
|
281
277
|
}
|
|
282
278
|
get storage() {
|
|
283
|
-
|
|
284
|
-
return (_b = (_a = this._props).storage) != null ? _b : _a.storage = createStorage({
|
|
279
|
+
return this._props.storage ??= createStorage({
|
|
285
280
|
type: this.opts.storageType
|
|
286
281
|
});
|
|
287
282
|
}
|
|
288
283
|
get keyring() {
|
|
289
|
-
|
|
290
|
-
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"));
|
|
291
285
|
}
|
|
292
286
|
get feedStore() {
|
|
293
|
-
|
|
294
|
-
return (_b = (_a = this._props).feedStore) != null ? _b : _a.feedStore = new FeedStore({
|
|
287
|
+
return this._props.feedStore ??= new FeedStore({
|
|
295
288
|
factory: new FeedFactory({
|
|
296
289
|
root: this.storage.createDirectory("feeds"),
|
|
297
290
|
signer: this.keyring,
|
|
@@ -302,27 +295,22 @@ var TestPeer = class {
|
|
|
302
295
|
});
|
|
303
296
|
}
|
|
304
297
|
get metadataStore() {
|
|
305
|
-
|
|
306
|
-
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"));
|
|
307
299
|
}
|
|
308
300
|
get blobStore() {
|
|
309
|
-
|
|
310
|
-
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"));
|
|
311
302
|
}
|
|
312
303
|
get snapshotStore() {
|
|
313
|
-
|
|
314
|
-
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"));
|
|
315
305
|
}
|
|
316
306
|
get networkManager() {
|
|
317
|
-
|
|
318
|
-
return (_b = (_a = this._props).networkManager) != null ? _b : _a.networkManager = new NetworkManager({
|
|
307
|
+
return this._props.networkManager ??= new NetworkManager({
|
|
319
308
|
signalManager: new MemorySignalManager(this.signalContext),
|
|
320
309
|
transportFactory: MemoryTransportFactory
|
|
321
310
|
});
|
|
322
311
|
}
|
|
323
312
|
get spaceManager() {
|
|
324
|
-
|
|
325
|
-
return (_b = (_a = this._props).spaceManager) != null ? _b : _a.spaceManager = new SpaceManager({
|
|
313
|
+
return this._props.spaceManager ??= new SpaceManager({
|
|
326
314
|
feedStore: this.feedStore,
|
|
327
315
|
networkManager: this.networkManager,
|
|
328
316
|
metadataStore: this.metadataStore,
|
|
@@ -332,16 +320,13 @@ var TestPeer = class {
|
|
|
332
320
|
});
|
|
333
321
|
}
|
|
334
322
|
get identity() {
|
|
335
|
-
|
|
336
|
-
return (_a = this._props.signingContext) != null ? _a : failUndefined();
|
|
323
|
+
return this._props.signingContext ?? failUndefined();
|
|
337
324
|
}
|
|
338
325
|
get dataSpaceManager() {
|
|
339
|
-
|
|
340
|
-
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);
|
|
341
327
|
}
|
|
342
328
|
async createIdentity() {
|
|
343
|
-
|
|
344
|
-
(_b = (_a = this._props).signingContext) != null ? _b : _a.signingContext = await createSigningContext(this.keyring);
|
|
329
|
+
this._props.signingContext ??= await createSigningContext(this.keyring);
|
|
345
330
|
}
|
|
346
331
|
async destroy() {
|
|
347
332
|
await this.storage.reset();
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/packlets/testing/credential-utils.ts", "../../../../../src/packlets/testing/invitation-utils.ts", "../../../../../src/packlets/testing/test-builder.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createCredential } from '@dxos/credentials';\nimport { 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": ";;;;;;;;;AAIA,SAASA,wBAAwB;AAEjC,SAASC,iBAAiB;AAGnB,IAAMC,uBAAuB,OAAO,EACzCC,QACAC,OAAM,MAKNC,iBAAiB;EACfF;EACAC;EACAE,SAAS,IAAIC,UAAUC,OAAOC,KAAK,MAAA,CAAA;EACnCC,WAAW;IACT,SAAS;IACTC,SAAS;MACP,SAAS;MACTC,OAAOJ,OAAOC,KAAK,MAAA;IACrB;EACF;AACF,CAAA;;;ACvBF,SAASI,eAAe;AAExB,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;;AAOpB,IAAMC,qBAAqB,CAACC,eAAAA;AACjC,SAAO;IACLC,cAAcD,WAAWC;IACzBC,MAAMF,WAAWE;IACjBC,MAAMH,WAAWG;IACjBC,YAAYJ,WAAWI;IACvBC,UAAUL,WAAWK;IACrBC,OAAON,WAAWM;IAClBC,SAASP,WAAWO;EACtB;AACF;AAiCO,IAAMC,oBAAoB,CAAC,EAChCC,MACAC,OACAC,SACAC,MAAK,MACmB;AACxB,QAAMC,eAAe,IAAIC,QAAAA;AACzB,QAAMC,gBAAgB,IAAID,QAAAA;AAC1B,QAAME,WAAW,IAAIF,QAAAA;AAErB,QAAMG,iBAAiBC,iBAAiBT,MAAME,OAAAA;AAC9CM,iBAAeE,UACb,OAAOC,mBAAAA;
|
|
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", "
|
|
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
|
}
|