@dxos/client-services 0.6.13 → 0.6.14-main.1366248
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-CRXXOI45.mjs → chunk-KQURG5PQ.mjs} +6537 -5279
- package/dist/lib/browser/chunk-KQURG5PQ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +7 -3
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +20 -9
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node/{chunk-PZ3JJJ3K.cjs → chunk-WNXJ7EP5.cjs} +6324 -5068
- package/dist/lib/node/chunk-WNXJ7EP5.cjs.map +7 -0
- package/dist/lib/node/index.cjs +50 -46
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +26 -14
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/lib/node-esm/chunk-OQSP5ADY.mjs +8982 -0
- package/dist/lib/node-esm/chunk-OQSP5ADY.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +420 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/testing/index.mjs +431 -0
- package/dist/lib/node-esm/testing/index.mjs.map +7 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/packlets/agents/edge-agent-manager.d.ts +35 -0
- package/dist/types/src/packlets/agents/edge-agent-manager.d.ts.map +1 -0
- package/dist/types/src/packlets/agents/edge-agent-service.d.ts +10 -0
- package/dist/types/src/packlets/agents/edge-agent-service.d.ts.map +1 -0
- package/dist/types/src/packlets/agents/index.d.ts +3 -0
- package/dist/types/src/packlets/agents/index.d.ts.map +1 -0
- package/dist/types/src/packlets/devices/devices-service.d.ts +3 -1
- package/dist/types/src/packlets/devices/devices-service.d.ts.map +1 -1
- package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/authenticator.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/authenticator.node.test.d.ts +2 -0
- package/dist/types/src/packlets/identity/authenticator.node.test.d.ts.map +1 -0
- package/dist/types/src/packlets/identity/contacts-service.d.ts +1 -1
- package/dist/types/src/packlets/identity/contacts-service.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/identity-manager.d.ts +28 -9
- package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts +18 -0
- package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts.map +1 -0
- package/dist/types/src/packlets/identity/identity-service.d.ts +7 -2
- package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/identity.d.ts +12 -3
- package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts +31 -0
- package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts.map +1 -0
- package/dist/types/src/packlets/invitations/invitation-guest-extenstion.d.ts +2 -1
- package/dist/types/src/packlets/invitations/invitation-guest-extenstion.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitation-host-extension.d.ts +2 -1
- package/dist/types/src/packlets/invitations/invitation-host-extension.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitation-state.d.ts +19 -0
- package/dist/types/src/packlets/invitations/invitation-state.d.ts.map +1 -0
- package/dist/types/src/packlets/invitations/invitations-handler.d.ts +8 -8
- package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-context.d.ts +14 -9
- package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-host.d.ts +2 -0
- package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/data-space-manager.d.ts +7 -3
- package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/data-space.d.ts +5 -3
- package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts +4 -0
- package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/edge-feed-replicator.test.d.ts +2 -0
- package/dist/types/src/packlets/spaces/edge-feed-replicator.test.d.ts.map +1 -0
- package/dist/types/src/packlets/spaces/epoch-migrations.d.ts +1 -1
- package/dist/types/src/packlets/spaces/epoch-migrations.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/notarization-plugin.d.ts +35 -6
- package/dist/types/src/packlets/spaces/notarization-plugin.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/spaces-service.d.ts +1 -1
- package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
- package/dist/types/src/packlets/storage/storage.d.ts.map +1 -1
- package/dist/types/src/packlets/testing/invitation-utils.d.ts.map +1 -1
- package/dist/types/src/packlets/testing/test-builder.d.ts +1 -2
- package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
- package/dist/types/src/packlets/worker/worker-runtime.d.ts.map +1 -1
- package/dist/types/src/testing/setup.d.ts +3 -0
- package/dist/types/src/testing/setup.d.ts.map +1 -0
- package/dist/types/src/version.d.ts +1 -1
- package/dist/types/src/version.d.ts.map +1 -1
- package/package.json +44 -45
- package/src/index.ts +1 -0
- package/src/packlets/agents/edge-agent-manager.ts +163 -0
- package/src/packlets/agents/edge-agent-service.ts +42 -0
- package/src/packlets/agents/index.ts +6 -0
- package/src/packlets/devices/devices-service.test.ts +4 -5
- package/src/packlets/devices/devices-service.ts +18 -7
- package/src/packlets/diagnostics/diagnostics-broadcast.ts +1 -0
- package/src/packlets/identity/{authenticator.test.ts → authenticator.node.test.ts} +2 -3
- package/src/packlets/identity/authenticator.ts +5 -2
- package/src/packlets/identity/contacts-service.ts +1 -1
- package/src/packlets/identity/identity-manager.test.ts +31 -16
- package/src/packlets/identity/identity-manager.ts +76 -32
- package/src/packlets/identity/identity-recovery-manager.ts +95 -0
- package/src/packlets/identity/identity-service.test.ts +5 -8
- package/src/packlets/identity/identity-service.ts +11 -5
- package/src/packlets/identity/identity.test.ts +141 -239
- package/src/packlets/identity/identity.ts +60 -17
- package/src/packlets/invitations/device-invitation-protocol.test.ts +7 -4
- package/src/packlets/invitations/device-invitation-protocol.ts +8 -2
- package/src/packlets/invitations/edge-invitation-handler.ts +188 -0
- package/src/packlets/invitations/invitation-guest-extenstion.ts +13 -9
- package/src/packlets/invitations/invitation-host-extension.ts +15 -17
- package/src/packlets/invitations/invitation-state.ts +112 -0
- package/src/packlets/invitations/invitations-handler.test.ts +19 -15
- package/src/packlets/invitations/invitations-handler.ts +91 -126
- package/src/packlets/invitations/invitations-service.ts +5 -1
- package/src/packlets/invitations/space-invitation-protocol.test.ts +4 -3
- package/src/packlets/invitations/space-invitation-protocol.ts +5 -0
- package/src/packlets/logging/logging.test.ts +1 -2
- package/src/packlets/network/network-service.test.ts +2 -3
- package/src/packlets/services/service-context.test.ts +3 -1
- package/src/packlets/services/service-context.ts +113 -35
- package/src/packlets/services/service-host.test.ts +8 -12
- package/src/packlets/services/service-host.ts +26 -8
- package/src/packlets/services/service-registry.test.ts +1 -2
- package/src/packlets/spaces/data-space-manager.test.ts +2 -2
- package/src/packlets/spaces/data-space-manager.ts +44 -7
- package/src/packlets/spaces/data-space.ts +37 -6
- package/src/packlets/spaces/edge-feed-replicator.test.ts +257 -0
- package/src/packlets/spaces/edge-feed-replicator.ts +84 -22
- package/src/packlets/spaces/epoch-migrations.ts +2 -2
- package/src/packlets/spaces/notarization-plugin.test.ts +10 -7
- package/src/packlets/spaces/notarization-plugin.ts +196 -29
- package/src/packlets/spaces/spaces-service.test.ts +5 -9
- package/src/packlets/spaces/spaces-service.ts +6 -1
- package/src/packlets/storage/storage.ts +0 -1
- package/src/packlets/system/system-service.test.ts +1 -2
- package/src/packlets/testing/invitation-utils.ts +7 -0
- package/src/packlets/testing/test-builder.ts +7 -4
- package/src/packlets/worker/worker-runtime.ts +2 -2
- package/src/testing/setup.ts +11 -0
- package/src/version.ts +1 -5
- package/dist/lib/browser/chunk-CRXXOI45.mjs.map +0 -7
- package/dist/lib/node/chunk-PZ3JJJ3K.cjs.map +0 -7
- package/dist/types/src/packlets/identity/authenticator.test.d.ts +0 -2
- package/dist/types/src/packlets/identity/authenticator.test.d.ts.map +0 -1
- package/dist/types/src/packlets/services/automerge-host.test.d.ts +0 -2
- package/dist/types/src/packlets/services/automerge-host.test.d.ts.map +0 -1
- package/src/packlets/services/automerge-host.test.ts +0 -60
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
ClientRpcServer,
|
|
4
|
+
ClientServicesHost,
|
|
5
|
+
DataSpace,
|
|
6
|
+
DataSpaceManager,
|
|
7
|
+
DeviceInvitationProtocol,
|
|
8
|
+
DevtoolsHostEvents,
|
|
9
|
+
DevtoolsServiceImpl,
|
|
10
|
+
DiagnosticsCollector,
|
|
11
|
+
EdgeAgentManager,
|
|
12
|
+
EdgeAgentServiceImpl,
|
|
13
|
+
EdgeFeedReplicator,
|
|
14
|
+
Identity,
|
|
15
|
+
IdentityManager,
|
|
16
|
+
IdentityServiceImpl,
|
|
17
|
+
InvitationsHandler,
|
|
18
|
+
InvitationsManager,
|
|
19
|
+
InvitationsServiceImpl,
|
|
20
|
+
Lock,
|
|
21
|
+
ServiceContext,
|
|
22
|
+
ServiceRegistry,
|
|
23
|
+
SpaceInvitationProtocol,
|
|
24
|
+
SpacesServiceImpl,
|
|
25
|
+
TrustedKeySetAuthVerifier,
|
|
26
|
+
createAdmissionKeypair,
|
|
27
|
+
createAuthProvider,
|
|
28
|
+
createCollectDiagnosticsBroadcastHandler,
|
|
29
|
+
createCollectDiagnosticsBroadcastSender,
|
|
30
|
+
createDiagnostics,
|
|
31
|
+
createLevel,
|
|
32
|
+
createStorageObjects,
|
|
33
|
+
decodeProfileArchive,
|
|
34
|
+
encodeProfileArchive,
|
|
35
|
+
exportProfileData,
|
|
36
|
+
getNetworkPeers,
|
|
37
|
+
importProfileData,
|
|
38
|
+
isLocked,
|
|
39
|
+
subscribeToFeedBlocks,
|
|
40
|
+
subscribeToFeeds,
|
|
41
|
+
subscribeToNetworkStatus,
|
|
42
|
+
subscribeToNetworkTopics,
|
|
43
|
+
subscribeToSignal,
|
|
44
|
+
subscribeToSpaces,
|
|
45
|
+
subscribeToSwarmInfo
|
|
46
|
+
} from "./chunk-OQSP5ADY.mjs";
|
|
47
|
+
|
|
48
|
+
// packages/sdk/client-services/src/packlets/worker/worker-runtime.ts
|
|
49
|
+
import { Trigger as Trigger2 } from "@dxos/async";
|
|
50
|
+
import { DEFAULT_WORKER_BROADCAST_CHANNEL } from "@dxos/client-protocol";
|
|
51
|
+
import { Context } from "@dxos/context";
|
|
52
|
+
import { invariant as invariant2 } from "@dxos/invariant";
|
|
53
|
+
import { log as log2 } from "@dxos/log";
|
|
54
|
+
import { MemorySignalManager, MemorySignalManagerContext, WebsocketSignalManager, setIdentityTags } from "@dxos/messaging";
|
|
55
|
+
import { RtcTransportProxyFactory } from "@dxos/network-manager";
|
|
56
|
+
|
|
57
|
+
// packages/sdk/client-services/src/packlets/worker/worker-session.ts
|
|
58
|
+
import { asyncTimeout, Trigger } from "@dxos/async";
|
|
59
|
+
import { iframeServiceBundle, PROXY_CONNECTION_TIMEOUT, workerServiceBundle } from "@dxos/client-protocol";
|
|
60
|
+
import { invariant } from "@dxos/invariant";
|
|
61
|
+
import { log, logInfo } from "@dxos/log";
|
|
62
|
+
import { createProtoRpcPeer } from "@dxos/rpc";
|
|
63
|
+
import { Callback } from "@dxos/util";
|
|
64
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
65
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
66
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
67
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
68
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
69
|
+
}
|
|
70
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/worker/worker-session.ts";
|
|
71
|
+
var WorkerSession = class {
|
|
72
|
+
constructor({ serviceHost, systemPort, appPort, shellPort, readySignal }) {
|
|
73
|
+
this._startTrigger = new Trigger();
|
|
74
|
+
this.onClose = new Callback();
|
|
75
|
+
invariant(serviceHost, void 0, {
|
|
76
|
+
F: __dxlog_file,
|
|
77
|
+
L: 54,
|
|
78
|
+
S: this,
|
|
79
|
+
A: [
|
|
80
|
+
"serviceHost",
|
|
81
|
+
""
|
|
82
|
+
]
|
|
83
|
+
});
|
|
84
|
+
this._serviceHost = serviceHost;
|
|
85
|
+
const middleware = {
|
|
86
|
+
handleCall: async (method, params, handler) => {
|
|
87
|
+
const error = await readySignal.wait({
|
|
88
|
+
timeout: PROXY_CONNECTION_TIMEOUT
|
|
89
|
+
});
|
|
90
|
+
if (error) {
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
return handler(method, params);
|
|
94
|
+
},
|
|
95
|
+
handleStream: async (method, params, handler) => {
|
|
96
|
+
const error = await readySignal.wait({
|
|
97
|
+
timeout: PROXY_CONNECTION_TIMEOUT
|
|
98
|
+
});
|
|
99
|
+
if (error) {
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
return handler(method, params);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
this._clientRpc = new ClientRpcServer({
|
|
106
|
+
serviceRegistry: this._serviceHost.serviceRegistry,
|
|
107
|
+
port: appPort,
|
|
108
|
+
...middleware
|
|
109
|
+
});
|
|
110
|
+
this._shellClientRpc = shellPort ? new ClientRpcServer({
|
|
111
|
+
serviceRegistry: this._serviceHost.serviceRegistry,
|
|
112
|
+
port: shellPort,
|
|
113
|
+
...middleware
|
|
114
|
+
}) : void 0;
|
|
115
|
+
this._iframeRpc = createProtoRpcPeer({
|
|
116
|
+
requested: iframeServiceBundle,
|
|
117
|
+
exposed: workerServiceBundle,
|
|
118
|
+
handlers: {
|
|
119
|
+
WorkerService: {
|
|
120
|
+
start: async (request) => {
|
|
121
|
+
this.origin = request.origin;
|
|
122
|
+
this.lockKey = request.lockKey;
|
|
123
|
+
this.observabilityGroup = request.observabilityGroup;
|
|
124
|
+
this.signalTelemetryEnabled = request.signalTelemetryEnabled;
|
|
125
|
+
this._startTrigger.wake();
|
|
126
|
+
},
|
|
127
|
+
stop: async () => {
|
|
128
|
+
setTimeout(async () => {
|
|
129
|
+
try {
|
|
130
|
+
await this.close();
|
|
131
|
+
} catch (err) {
|
|
132
|
+
log.catch(err, void 0, {
|
|
133
|
+
F: __dxlog_file,
|
|
134
|
+
L: 108,
|
|
135
|
+
S: this,
|
|
136
|
+
C: (f, a) => f(...a)
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
port: systemPort,
|
|
144
|
+
timeout: 1e3
|
|
145
|
+
});
|
|
146
|
+
this.bridgeService = this._iframeRpc.rpc.BridgeService;
|
|
147
|
+
}
|
|
148
|
+
async open() {
|
|
149
|
+
log.info("opening...", void 0, {
|
|
150
|
+
F: __dxlog_file,
|
|
151
|
+
L: 122,
|
|
152
|
+
S: this,
|
|
153
|
+
C: (f, a) => f(...a)
|
|
154
|
+
});
|
|
155
|
+
await Promise.all([
|
|
156
|
+
this._clientRpc.open(),
|
|
157
|
+
this._iframeRpc.open(),
|
|
158
|
+
this._maybeOpenShell()
|
|
159
|
+
]);
|
|
160
|
+
await this._startTrigger.wait({
|
|
161
|
+
timeout: PROXY_CONNECTION_TIMEOUT
|
|
162
|
+
});
|
|
163
|
+
if (this.lockKey) {
|
|
164
|
+
void this._afterLockReleases(this.lockKey, () => this.close());
|
|
165
|
+
}
|
|
166
|
+
log.info("opened", void 0, {
|
|
167
|
+
F: __dxlog_file,
|
|
168
|
+
L: 133,
|
|
169
|
+
S: this,
|
|
170
|
+
C: (f, a) => f(...a)
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
async close() {
|
|
174
|
+
log.info("closing...", void 0, {
|
|
175
|
+
F: __dxlog_file,
|
|
176
|
+
L: 137,
|
|
177
|
+
S: this,
|
|
178
|
+
C: (f, a) => f(...a)
|
|
179
|
+
});
|
|
180
|
+
try {
|
|
181
|
+
await this.onClose.callIfSet();
|
|
182
|
+
} catch (err) {
|
|
183
|
+
log.catch(err, void 0, {
|
|
184
|
+
F: __dxlog_file,
|
|
185
|
+
L: 141,
|
|
186
|
+
S: this,
|
|
187
|
+
C: (f, a) => f(...a)
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
await Promise.all([
|
|
191
|
+
this._clientRpc.close(),
|
|
192
|
+
this._iframeRpc.close()
|
|
193
|
+
]);
|
|
194
|
+
log.info("closed", void 0, {
|
|
195
|
+
F: __dxlog_file,
|
|
196
|
+
L: 145,
|
|
197
|
+
S: this,
|
|
198
|
+
C: (f, a) => f(...a)
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
async _maybeOpenShell() {
|
|
202
|
+
try {
|
|
203
|
+
this._shellClientRpc && await asyncTimeout(this._shellClientRpc.open(), 1e3);
|
|
204
|
+
} catch {
|
|
205
|
+
log.info("No shell connected.", void 0, {
|
|
206
|
+
F: __dxlog_file,
|
|
207
|
+
L: 152,
|
|
208
|
+
S: this,
|
|
209
|
+
C: (f, a) => f(...a)
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
_afterLockReleases(lockKey, callback) {
|
|
214
|
+
return navigator.locks.request(lockKey, () => {
|
|
215
|
+
}).then(callback);
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
_ts_decorate([
|
|
219
|
+
logInfo
|
|
220
|
+
], WorkerSession.prototype, "origin", void 0);
|
|
221
|
+
_ts_decorate([
|
|
222
|
+
logInfo
|
|
223
|
+
], WorkerSession.prototype, "lockKey", void 0);
|
|
224
|
+
|
|
225
|
+
// packages/sdk/client-services/src/packlets/worker/worker-runtime.ts
|
|
226
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/worker/worker-runtime.ts";
|
|
227
|
+
var WorkerRuntime = class {
|
|
228
|
+
constructor({ channel = DEFAULT_WORKER_BROADCAST_CHANNEL, configProvider, acquireLock, releaseLock, onStop }) {
|
|
229
|
+
this._transportFactory = new RtcTransportProxyFactory();
|
|
230
|
+
this._ready = new Trigger2();
|
|
231
|
+
this._sessions = /* @__PURE__ */ new Set();
|
|
232
|
+
this._signalMetadataTags = {
|
|
233
|
+
runtime: "worker-runtime"
|
|
234
|
+
};
|
|
235
|
+
this._signalTelemetryEnabled = false;
|
|
236
|
+
this._configProvider = configProvider;
|
|
237
|
+
this._acquireLock = acquireLock;
|
|
238
|
+
this._releaseLock = releaseLock;
|
|
239
|
+
this._onStop = onStop;
|
|
240
|
+
this._channel = channel;
|
|
241
|
+
this._clientServices = new ClientServicesHost({
|
|
242
|
+
callbacks: {
|
|
243
|
+
onReset: async () => this.stop()
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
get host() {
|
|
248
|
+
return this._clientServices;
|
|
249
|
+
}
|
|
250
|
+
async start() {
|
|
251
|
+
log2("starting...", void 0, {
|
|
252
|
+
F: __dxlog_file2,
|
|
253
|
+
L: 84,
|
|
254
|
+
S: this,
|
|
255
|
+
C: (f, a) => f(...a)
|
|
256
|
+
});
|
|
257
|
+
try {
|
|
258
|
+
this._broadcastChannel = new BroadcastChannel(this._channel);
|
|
259
|
+
this._broadcastChannel.postMessage({
|
|
260
|
+
action: "stop"
|
|
261
|
+
});
|
|
262
|
+
this._broadcastChannel.onmessage = async (event) => {
|
|
263
|
+
if (event.data?.action === "stop") {
|
|
264
|
+
await this.stop();
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
await this._acquireLock();
|
|
268
|
+
this._config = await this._configProvider();
|
|
269
|
+
const signals = this._config.get("runtime.services.signaling");
|
|
270
|
+
this._clientServices.initialize({
|
|
271
|
+
config: this._config,
|
|
272
|
+
signalManager: this._config.get("runtime.client.edgeFeatures")?.signaling ? void 0 : signals ? new WebsocketSignalManager(signals, () => this._signalTelemetryEnabled ? this._signalMetadataTags : {}) : new MemorySignalManager(new MemorySignalManagerContext()),
|
|
273
|
+
transportFactory: this._transportFactory
|
|
274
|
+
});
|
|
275
|
+
await this._clientServices.open(new Context(void 0, {
|
|
276
|
+
F: __dxlog_file2,
|
|
277
|
+
L: 107
|
|
278
|
+
}));
|
|
279
|
+
this._ready.wake(void 0);
|
|
280
|
+
log2("started", void 0, {
|
|
281
|
+
F: __dxlog_file2,
|
|
282
|
+
L: 109,
|
|
283
|
+
S: this,
|
|
284
|
+
C: (f, a) => f(...a)
|
|
285
|
+
});
|
|
286
|
+
setIdentityTags({
|
|
287
|
+
identityService: this._clientServices.services.IdentityService,
|
|
288
|
+
devicesService: this._clientServices.services.DevicesService,
|
|
289
|
+
setTag: (k, v) => {
|
|
290
|
+
this._signalMetadataTags[k] = v;
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
} catch (err) {
|
|
294
|
+
this._ready.wake(err);
|
|
295
|
+
log2.error("starting", err, {
|
|
296
|
+
F: __dxlog_file2,
|
|
297
|
+
L: 119,
|
|
298
|
+
S: this,
|
|
299
|
+
C: (f, a) => f(...a)
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
async stop() {
|
|
304
|
+
this._releaseLock();
|
|
305
|
+
this._broadcastChannel?.close();
|
|
306
|
+
this._broadcastChannel = void 0;
|
|
307
|
+
await this._clientServices.close();
|
|
308
|
+
await this._onStop?.();
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Create a new session.
|
|
312
|
+
*/
|
|
313
|
+
async createSession({ appPort, systemPort, shellPort }) {
|
|
314
|
+
const session = new WorkerSession({
|
|
315
|
+
serviceHost: this._clientServices,
|
|
316
|
+
appPort,
|
|
317
|
+
systemPort,
|
|
318
|
+
shellPort,
|
|
319
|
+
readySignal: this._ready
|
|
320
|
+
});
|
|
321
|
+
session.onClose.set(async () => {
|
|
322
|
+
this._sessions.delete(session);
|
|
323
|
+
if (this._sessions.size === 0) {
|
|
324
|
+
await this.stop();
|
|
325
|
+
} else {
|
|
326
|
+
this._reconnectWebrtc();
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
await session.open();
|
|
330
|
+
invariant2(!this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin, `worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`, {
|
|
331
|
+
F: __dxlog_file2,
|
|
332
|
+
L: 157,
|
|
333
|
+
S: this,
|
|
334
|
+
A: [
|
|
335
|
+
"!this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin",
|
|
336
|
+
"`worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`"
|
|
337
|
+
]
|
|
338
|
+
});
|
|
339
|
+
if (session.observabilityGroup) {
|
|
340
|
+
this._signalMetadataTags.group = session.observabilityGroup;
|
|
341
|
+
}
|
|
342
|
+
this._signalTelemetryEnabled = session.signalTelemetryEnabled ?? false;
|
|
343
|
+
this._signalMetadataTags.origin = session.origin;
|
|
344
|
+
this._sessions.add(session);
|
|
345
|
+
this._reconnectWebrtc();
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Selects one of the existing session for WebRTC networking.
|
|
349
|
+
*/
|
|
350
|
+
_reconnectWebrtc() {
|
|
351
|
+
log2("reconnecting webrtc...", void 0, {
|
|
352
|
+
F: __dxlog_file2,
|
|
353
|
+
L: 175,
|
|
354
|
+
S: this,
|
|
355
|
+
C: (f, a) => f(...a)
|
|
356
|
+
});
|
|
357
|
+
if (this._sessionForNetworking) {
|
|
358
|
+
if (!this._sessions.has(this._sessionForNetworking)) {
|
|
359
|
+
this._sessionForNetworking = void 0;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
if (!this._sessionForNetworking) {
|
|
363
|
+
const selected = Array.from(this._sessions).find((session) => session.bridgeService);
|
|
364
|
+
if (selected) {
|
|
365
|
+
this._sessionForNetworking = selected;
|
|
366
|
+
this._transportFactory.setBridgeService(selected.bridgeService);
|
|
367
|
+
} else {
|
|
368
|
+
this._transportFactory.setBridgeService(void 0);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
};
|
|
373
|
+
export {
|
|
374
|
+
ClientRpcServer,
|
|
375
|
+
ClientServicesHost,
|
|
376
|
+
DataSpace,
|
|
377
|
+
DataSpaceManager,
|
|
378
|
+
DeviceInvitationProtocol,
|
|
379
|
+
DevtoolsHostEvents,
|
|
380
|
+
DevtoolsServiceImpl,
|
|
381
|
+
DiagnosticsCollector,
|
|
382
|
+
EdgeAgentManager,
|
|
383
|
+
EdgeAgentServiceImpl,
|
|
384
|
+
EdgeFeedReplicator,
|
|
385
|
+
Identity,
|
|
386
|
+
IdentityManager,
|
|
387
|
+
IdentityServiceImpl,
|
|
388
|
+
InvitationsHandler,
|
|
389
|
+
InvitationsManager,
|
|
390
|
+
InvitationsServiceImpl,
|
|
391
|
+
Lock,
|
|
392
|
+
ServiceContext,
|
|
393
|
+
ServiceRegistry,
|
|
394
|
+
SpaceInvitationProtocol,
|
|
395
|
+
SpacesServiceImpl,
|
|
396
|
+
TrustedKeySetAuthVerifier,
|
|
397
|
+
WorkerRuntime,
|
|
398
|
+
WorkerSession,
|
|
399
|
+
createAdmissionKeypair,
|
|
400
|
+
createAuthProvider,
|
|
401
|
+
createCollectDiagnosticsBroadcastHandler,
|
|
402
|
+
createCollectDiagnosticsBroadcastSender,
|
|
403
|
+
createDiagnostics,
|
|
404
|
+
createLevel,
|
|
405
|
+
createStorageObjects,
|
|
406
|
+
decodeProfileArchive,
|
|
407
|
+
encodeProfileArchive,
|
|
408
|
+
exportProfileData,
|
|
409
|
+
getNetworkPeers,
|
|
410
|
+
importProfileData,
|
|
411
|
+
isLocked,
|
|
412
|
+
subscribeToFeedBlocks,
|
|
413
|
+
subscribeToFeeds,
|
|
414
|
+
subscribeToNetworkStatus,
|
|
415
|
+
subscribeToNetworkTopics,
|
|
416
|
+
subscribeToSignal,
|
|
417
|
+
subscribeToSpaces,
|
|
418
|
+
subscribeToSwarmInfo
|
|
419
|
+
};
|
|
420
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/packlets/worker/worker-runtime.ts", "../../../src/packlets/worker/worker-session.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { DEFAULT_WORKER_BROADCAST_CHANNEL } from '@dxos/client-protocol';\nimport { type Config } from '@dxos/config';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport {\n MemorySignalManager,\n MemorySignalManagerContext,\n WebsocketSignalManager,\n setIdentityTags,\n} from '@dxos/messaging';\nimport { RtcTransportProxyFactory } from '@dxos/network-manager';\nimport { type RpcPort } from '@dxos/rpc';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { WorkerSession } from './worker-session';\nimport { ClientServicesHost } from '../services';\n\n// NOTE: Keep as RpcPorts to avoid dependency on @dxos/rpc-tunnel so we don't depend on browser-specific apis.\nexport type CreateSessionParams = {\n appPort: RpcPort;\n systemPort: RpcPort;\n shellPort?: RpcPort;\n};\n\nexport type WorkerRuntimeOptions = {\n channel?: string;\n configProvider: () => MaybePromise<Config>;\n acquireLock: () => Promise<void>;\n releaseLock: () => void;\n onStop?: () => Promise<void>;\n};\n\n/**\n * Runtime for the shared worker.\n * Manages connections from proxies (in tabs).\n * Tabs make requests to the `ClientServicesHost`, and provide a WebRTC gateway.\n */\nexport class WorkerRuntime {\n private readonly _configProvider: () => MaybePromise<Config>;\n private readonly _acquireLock: () => Promise<void>;\n private readonly _releaseLock: () => void;\n private readonly _onStop?: () => Promise<void>;\n private readonly _transportFactory = new RtcTransportProxyFactory();\n private readonly _ready = new Trigger<Error | undefined>();\n private readonly _sessions = new Set<WorkerSession>();\n private readonly _clientServices!: ClientServicesHost;\n private readonly _channel: string;\n private _broadcastChannel?: BroadcastChannel;\n private _sessionForNetworking?: WorkerSession; // TODO(burdon): Expose to client QueryStatusResponse.\n private _config!: Config;\n private _signalMetadataTags: any = { runtime: 'worker-runtime' };\n private _signalTelemetryEnabled: boolean = false;\n\n constructor({\n channel = DEFAULT_WORKER_BROADCAST_CHANNEL,\n configProvider,\n acquireLock,\n releaseLock,\n onStop,\n }: WorkerRuntimeOptions) {\n this._configProvider = configProvider;\n this._acquireLock = acquireLock;\n this._releaseLock = releaseLock;\n this._onStop = onStop;\n this._channel = channel;\n this._clientServices = new ClientServicesHost({\n callbacks: {\n onReset: async () => this.stop(),\n },\n });\n }\n\n get host() {\n return this._clientServices;\n }\n\n async start() {\n log('starting...');\n try {\n this._broadcastChannel = new BroadcastChannel(this._channel);\n this._broadcastChannel.postMessage({ action: 'stop' });\n this._broadcastChannel.onmessage = async (event) => {\n if (event.data?.action === 'stop') {\n await this.stop();\n }\n };\n\n await this._acquireLock();\n this._config = await this._configProvider();\n const signals = this._config.get('runtime.services.signaling');\n this._clientServices.initialize({\n config: this._config,\n signalManager: this._config.get('runtime.client.edgeFeatures')?.signaling\n ? undefined\n : signals\n ? new WebsocketSignalManager(signals, () => (this._signalTelemetryEnabled ? this._signalMetadataTags : {}))\n : new MemorySignalManager(new MemorySignalManagerContext()), // TODO(dmaretskyi): Inject this context.\n transportFactory: this._transportFactory,\n });\n\n await this._clientServices.open(new Context());\n this._ready.wake(undefined);\n log('started');\n setIdentityTags({\n identityService: this._clientServices.services.IdentityService!,\n devicesService: this._clientServices.services.DevicesService!,\n setTag: (k: string, v: string) => {\n this._signalMetadataTags[k] = v;\n },\n });\n } catch (err: any) {\n this._ready.wake(err);\n log.error('starting', err);\n }\n }\n\n async stop() {\n // Release the lock to notify remote clients that the worker is terminating.\n this._releaseLock();\n this._broadcastChannel?.close();\n this._broadcastChannel = undefined;\n await this._clientServices.close();\n await this._onStop?.();\n }\n\n /**\n * Create a new session.\n */\n async createSession({ appPort, systemPort, shellPort }: CreateSessionParams) {\n const session = new WorkerSession({\n serviceHost: this._clientServices,\n appPort,\n systemPort,\n shellPort,\n readySignal: this._ready,\n });\n\n // When tab is closed or client is destroyed.\n session.onClose.set(async () => {\n this._sessions.delete(session);\n if (this._sessions.size === 0) {\n // Terminate the worker when all sessions are closed.\n await this.stop();\n } else {\n this._reconnectWebrtc();\n }\n });\n\n await session.open();\n // A worker can only service one origin currently\n invariant(\n !this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin,\n `worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`,\n );\n if (session.observabilityGroup) {\n this._signalMetadataTags.group = session.observabilityGroup;\n }\n this._signalTelemetryEnabled = session.signalTelemetryEnabled ?? false;\n this._signalMetadataTags.origin = session.origin;\n this._sessions.add(session);\n\n this._reconnectWebrtc();\n }\n\n /**\n * Selects one of the existing session for WebRTC networking.\n */\n private _reconnectWebrtc() {\n log('reconnecting webrtc...');\n // Check if current session is already closed.\n if (this._sessionForNetworking) {\n if (!this._sessions.has(this._sessionForNetworking)) {\n this._sessionForNetworking = undefined;\n }\n }\n\n // Select existing session.\n if (!this._sessionForNetworking) {\n const selected = Array.from(this._sessions).find((session) => session.bridgeService);\n if (selected) {\n this._sessionForNetworking = selected;\n this._transportFactory.setBridgeService(selected.bridgeService);\n } else {\n this._transportFactory.setBridgeService(undefined);\n }\n }\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { asyncTimeout, Trigger } from '@dxos/async';\nimport {\n iframeServiceBundle,\n type IframeServiceBundle,\n PROXY_CONNECTION_TIMEOUT,\n workerServiceBundle,\n} from '@dxos/client-protocol';\nimport { invariant } from '@dxos/invariant';\nimport { log, logInfo } from '@dxos/log';\nimport { type BridgeService } from '@dxos/protocols/proto/dxos/mesh/bridge';\nimport { createProtoRpcPeer, type ProtoRpcPeer, type RpcPort } from '@dxos/rpc';\nimport { Callback, type MaybePromise } from '@dxos/util';\n\nimport { type ClientServicesHost, ClientRpcServer, type ClientRpcServerParams } from '../services';\n\nexport type WorkerSessionParams = {\n serviceHost: ClientServicesHost;\n systemPort: RpcPort;\n appPort: RpcPort;\n // TODO(wittjosiah): Remove shellPort.\n shellPort?: RpcPort;\n readySignal: Trigger<Error | undefined>;\n};\n\n/**\n * Represents a tab connection within the worker.\n */\nexport class WorkerSession {\n private readonly _clientRpc: ClientRpcServer;\n private readonly _shellClientRpc?: ClientRpcServer;\n private readonly _iframeRpc: ProtoRpcPeer<IframeServiceBundle>;\n private readonly _startTrigger = new Trigger();\n private readonly _serviceHost: ClientServicesHost;\n\n public readonly onClose = new Callback<() => Promise<void>>();\n\n @logInfo\n public origin?: string;\n\n // TODO(nf): factor out?\n public observabilityGroup?: string;\n public signalTelemetryEnabled?: boolean;\n\n @logInfo\n public lockKey?: string;\n\n public bridgeService?: BridgeService;\n\n constructor({ serviceHost, systemPort, appPort, shellPort, readySignal }: WorkerSessionParams) {\n invariant(serviceHost);\n this._serviceHost = serviceHost;\n\n const middleware: Pick<ClientRpcServerParams, 'handleCall' | 'handleStream'> = {\n handleCall: async (method, params, handler) => {\n const error = await readySignal.wait({ timeout: PROXY_CONNECTION_TIMEOUT });\n if (error) {\n throw error;\n }\n\n return handler(method, params);\n },\n handleStream: async (method, params, handler) => {\n const error = await readySignal.wait({ timeout: PROXY_CONNECTION_TIMEOUT });\n if (error) {\n throw error;\n }\n\n return handler(method, params);\n },\n };\n\n this._clientRpc = new ClientRpcServer({\n serviceRegistry: this._serviceHost.serviceRegistry,\n port: appPort,\n ...middleware,\n });\n\n this._shellClientRpc = shellPort\n ? new ClientRpcServer({\n serviceRegistry: this._serviceHost.serviceRegistry,\n port: shellPort,\n ...middleware,\n })\n : undefined;\n\n this._iframeRpc = createProtoRpcPeer({\n requested: iframeServiceBundle,\n exposed: workerServiceBundle,\n handlers: {\n WorkerService: {\n start: async (request) => {\n this.origin = request.origin;\n this.lockKey = request.lockKey;\n this.observabilityGroup = request.observabilityGroup;\n this.signalTelemetryEnabled = request.signalTelemetryEnabled;\n this._startTrigger.wake();\n },\n\n stop: async () => {\n setTimeout(async () => {\n try {\n await this.close();\n } catch (err: any) {\n log.catch(err);\n }\n });\n },\n },\n },\n port: systemPort,\n timeout: 1_000, // With low timeout heartbeat may fail if the tab's thread is saturated.\n });\n\n this.bridgeService = this._iframeRpc.rpc.BridgeService;\n }\n\n async open() {\n log.info('opening...');\n await Promise.all([this._clientRpc.open(), this._iframeRpc.open(), this._maybeOpenShell()]);\n\n // Wait until the worker's RPC service has started.\n await this._startTrigger.wait({ timeout: PROXY_CONNECTION_TIMEOUT });\n\n // TODO(burdon): Comment required.\n if (this.lockKey) {\n void this._afterLockReleases(this.lockKey, () => this.close());\n }\n\n log.info('opened');\n }\n\n async close() {\n log.info('closing...');\n try {\n await this.onClose.callIfSet();\n } catch (err: any) {\n log.catch(err);\n }\n\n await Promise.all([this._clientRpc.close(), this._iframeRpc.close()]);\n log.info('closed');\n }\n\n private async _maybeOpenShell() {\n try {\n this._shellClientRpc && (await asyncTimeout(this._shellClientRpc.open(), 1_000));\n } catch {\n log.info('No shell connected.');\n }\n }\n\n private _afterLockReleases(lockKey: string, callback: () => MaybePromise<void>): Promise<void> {\n return navigator.locks\n .request(lockKey, () => {\n // No-op.\n })\n .then(callback);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Trigger", "DEFAULT_WORKER_BROADCAST_CHANNEL", "Context", "invariant", "log", "MemorySignalManager", "MemorySignalManagerContext", "WebsocketSignalManager", "setIdentityTags", "RtcTransportProxyFactory", "asyncTimeout", "Trigger", "iframeServiceBundle", "PROXY_CONNECTION_TIMEOUT", "workerServiceBundle", "invariant", "log", "logInfo", "createProtoRpcPeer", "Callback", "WorkerSession", "constructor", "serviceHost", "systemPort", "appPort", "shellPort", "readySignal", "_startTrigger", "Trigger", "onClose", "Callback", "invariant", "_serviceHost", "middleware", "handleCall", "method", "params", "handler", "error", "wait", "timeout", "PROXY_CONNECTION_TIMEOUT", "handleStream", "_clientRpc", "ClientRpcServer", "serviceRegistry", "port", "_shellClientRpc", "undefined", "_iframeRpc", "createProtoRpcPeer", "requested", "iframeServiceBundle", "exposed", "workerServiceBundle", "handlers", "WorkerService", "start", "request", "origin", "lockKey", "observabilityGroup", "signalTelemetryEnabled", "wake", "stop", "setTimeout", "close", "err", "log", "catch", "bridgeService", "rpc", "BridgeService", "open", "info", "Promise", "all", "_maybeOpenShell", "_afterLockReleases", "callIfSet", "asyncTimeout", "callback", "navigator", "locks", "then", "logInfo", "WorkerRuntime", "constructor", "channel", "DEFAULT_WORKER_BROADCAST_CHANNEL", "configProvider", "acquireLock", "releaseLock", "onStop", "_transportFactory", "RtcTransportProxyFactory", "_ready", "Trigger", "_sessions", "Set", "_signalMetadataTags", "runtime", "_signalTelemetryEnabled", "_configProvider", "_acquireLock", "_releaseLock", "_onStop", "_channel", "_clientServices", "ClientServicesHost", "callbacks", "onReset", "stop", "host", "start", "log", "_broadcastChannel", "BroadcastChannel", "postMessage", "action", "onmessage", "event", "data", "_config", "signals", "get", "initialize", "config", "signalManager", "signaling", "undefined", "WebsocketSignalManager", "MemorySignalManager", "MemorySignalManagerContext", "transportFactory", "open", "Context", "wake", "setIdentityTags", "identityService", "services", "IdentityService", "devicesService", "DevicesService", "setTag", "k", "v", "err", "error", "close", "createSession", "appPort", "systemPort", "shellPort", "session", "WorkerSession", "serviceHost", "readySignal", "onClose", "set", "delete", "size", "_reconnectWebrtc", "invariant", "origin", "observabilityGroup", "group", "signalTelemetryEnabled", "add", "_sessionForNetworking", "has", "selected", "Array", "from", "find", "bridgeService", "setBridgeService"]
|
|
7
|
+
}
|