@dxos/client-services 0.1.2 → 0.1.3
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/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/packlets/deprecated/index.d.ts +5 -0
- package/dist/src/packlets/deprecated/index.d.ts.map +1 -0
- package/dist/src/packlets/{services/impl → deprecated}/index.js +1 -3
- package/dist/src/packlets/deprecated/index.js.map +1 -0
- package/dist/src/packlets/{invitations/common.d.ts → deprecated/invitations.d.ts} +14 -2
- package/dist/src/packlets/deprecated/invitations.d.ts.map +1 -0
- package/dist/src/packlets/{invitations/common.js → deprecated/invitations.js} +1 -1
- package/dist/src/packlets/deprecated/invitations.js.map +1 -0
- package/dist/src/packlets/{services/impl → deprecated}/profile.d.ts +5 -5
- package/dist/src/packlets/deprecated/profile.d.ts.map +1 -0
- package/dist/src/packlets/{services/impl → deprecated}/profile.js +10 -10
- package/dist/src/packlets/deprecated/profile.js.map +1 -0
- package/dist/src/packlets/deprecated/space.d.ts +23 -0
- package/dist/src/packlets/deprecated/space.d.ts.map +1 -0
- package/dist/src/packlets/deprecated/space.js +206 -0
- package/dist/src/packlets/deprecated/space.js.map +1 -0
- package/dist/src/packlets/{services/impl → deprecated}/system.d.ts +2 -2
- package/dist/src/packlets/deprecated/system.d.ts.map +1 -0
- package/dist/src/packlets/{services/impl → deprecated}/system.js +3 -3
- package/dist/src/packlets/deprecated/system.js.map +1 -0
- package/dist/src/packlets/deprecated/tracing.d.ts +12 -0
- package/dist/src/packlets/deprecated/tracing.d.ts.map +1 -0
- package/dist/src/packlets/{services/impl → deprecated}/tracing.js +3 -3
- package/dist/src/packlets/deprecated/tracing.js.map +1 -0
- package/dist/src/packlets/{services/impl → devtools}/devtools.d.ts +11 -7
- package/dist/src/packlets/devtools/devtools.d.ts.map +1 -0
- package/dist/src/packlets/devtools/devtools.js +86 -0
- package/dist/src/packlets/devtools/devtools.js.map +1 -0
- package/dist/src/packlets/devtools/feeds.d.ts.map +1 -1
- package/dist/src/packlets/devtools/feeds.js +28 -26
- package/dist/src/packlets/devtools/feeds.js.map +1 -1
- package/dist/src/packlets/devtools/index.d.ts +1 -1
- package/dist/src/packlets/devtools/index.d.ts.map +1 -1
- package/dist/src/packlets/devtools/index.js +1 -1
- package/dist/src/packlets/devtools/index.js.map +1 -1
- package/dist/src/packlets/devtools/spaces.d.ts +2 -2
- package/dist/src/packlets/devtools/spaces.d.ts.map +1 -1
- package/dist/src/packlets/devtools/spaces.js +13 -13
- package/dist/src/packlets/devtools/spaces.js.map +1 -1
- package/dist/src/packlets/identity/devices-service-impl.d.ts +10 -0
- package/dist/src/packlets/identity/devices-service-impl.d.ts.map +1 -0
- package/dist/src/packlets/identity/devices-service-impl.js +47 -0
- package/dist/src/packlets/identity/devices-service-impl.js.map +1 -0
- package/dist/src/packlets/identity/identity-manager.test.js +7 -11
- package/dist/src/packlets/identity/identity-manager.test.js.map +1 -1
- package/dist/src/packlets/identity/identity.d.ts +2 -0
- package/dist/src/packlets/identity/identity.d.ts.map +1 -1
- package/dist/src/packlets/identity/identity.js +4 -1
- package/dist/src/packlets/identity/identity.js.map +1 -1
- package/dist/src/packlets/identity/identity.test.js +2 -3
- package/dist/src/packlets/identity/identity.test.js.map +1 -1
- package/dist/src/packlets/invitations/encoder.d.ts +9 -0
- package/dist/src/packlets/invitations/encoder.d.ts.map +1 -0
- package/dist/src/packlets/invitations/encoder.js +27 -0
- package/dist/src/packlets/invitations/encoder.js.map +1 -0
- package/dist/src/packlets/invitations/encoder.test.d.ts +2 -0
- package/dist/src/packlets/invitations/encoder.test.d.ts.map +1 -0
- package/dist/src/packlets/invitations/encoder.test.js +19 -0
- package/dist/src/packlets/invitations/encoder.test.js.map +1 -0
- package/dist/src/packlets/invitations/halo-invitations.d.ts +3 -3
- package/dist/src/packlets/invitations/halo-invitations.d.ts.map +1 -1
- package/dist/src/packlets/invitations/halo-invitations.js +14 -10
- package/dist/src/packlets/invitations/halo-invitations.js.map +1 -1
- package/dist/src/packlets/invitations/halo-invitations.test.d.ts +2 -0
- package/dist/src/packlets/invitations/halo-invitations.test.d.ts.map +1 -0
- package/dist/src/packlets/{services/testing/halo.test.js → invitations/halo-invitations.test.js} +6 -6
- package/dist/src/packlets/invitations/halo-invitations.test.js.map +1 -0
- package/dist/src/packlets/invitations/index.d.ts +6 -3
- package/dist/src/packlets/invitations/index.d.ts.map +1 -1
- package/dist/src/packlets/invitations/index.js +6 -3
- package/dist/src/packlets/invitations/index.js.map +1 -1
- package/dist/src/packlets/invitations/invitations-proxy.d.ts +14 -0
- package/dist/src/packlets/invitations/invitations-proxy.d.ts.map +1 -0
- package/dist/src/packlets/invitations/invitations-proxy.js +126 -0
- package/dist/src/packlets/invitations/invitations-proxy.js.map +1 -0
- package/dist/src/packlets/invitations/invitations.d.ts +90 -0
- package/dist/src/packlets/invitations/invitations.d.ts.map +1 -0
- package/dist/src/packlets/invitations/invitations.js +55 -0
- package/dist/src/packlets/invitations/invitations.js.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-handler.d.ts +24 -0
- package/dist/src/packlets/invitations/space-invitations-handler.d.ts.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-handler.js +232 -0
- package/dist/src/packlets/invitations/space-invitations-handler.js.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-handler.test.d.ts +2 -0
- package/dist/src/packlets/invitations/space-invitations-handler.test.d.ts.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-handler.test.js +131 -0
- package/dist/src/packlets/invitations/space-invitations-handler.test.js.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-proxy.d.ts +11 -0
- package/dist/src/packlets/invitations/space-invitations-proxy.d.ts.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-proxy.js +17 -0
- package/dist/src/packlets/invitations/space-invitations-proxy.js.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-service.d.ts +22 -0
- package/dist/src/packlets/invitations/space-invitations-service.d.ts.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-service.js +189 -0
- package/dist/src/packlets/invitations/space-invitations-service.js.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-service.test.d.ts +2 -0
- package/dist/src/packlets/invitations/space-invitations-service.test.d.ts.map +1 -0
- package/dist/src/packlets/invitations/space-invitations-service.test.js +100 -0
- package/dist/src/packlets/invitations/space-invitations-service.test.js.map +1 -0
- package/dist/src/packlets/services/index.d.ts +3 -2
- package/dist/src/packlets/services/index.d.ts.map +1 -1
- package/dist/src/packlets/services/index.js +3 -2
- package/dist/src/packlets/services/index.js.map +1 -1
- package/dist/src/packlets/services/service-context.d.ts +4 -7
- package/dist/src/packlets/services/service-context.d.ts.map +1 -1
- package/dist/src/packlets/services/service-context.js +9 -25
- package/dist/src/packlets/services/service-context.js.map +1 -1
- package/dist/src/packlets/services/service-definitions.d.ts +30 -0
- package/dist/src/packlets/services/service-definitions.d.ts.map +1 -0
- package/dist/src/packlets/services/{services.js → service-definitions.js} +9 -5
- package/dist/src/packlets/services/service-definitions.js.map +1 -0
- package/dist/src/packlets/services/service-host.d.ts +9 -12
- package/dist/src/packlets/services/service-host.d.ts.map +1 -1
- package/dist/src/packlets/services/service-host.js +55 -54
- package/dist/src/packlets/services/service-host.js.map +1 -1
- package/dist/src/packlets/services/service-host.test.js +7 -17
- package/dist/src/packlets/services/service-host.test.js.map +1 -1
- package/dist/src/packlets/services/service-proxy.d.ts +17 -0
- package/dist/src/packlets/services/service-proxy.d.ts.map +1 -0
- package/dist/src/packlets/services/service-proxy.js +48 -0
- package/dist/src/packlets/services/service-proxy.js.map +1 -0
- package/dist/src/packlets/services/service-registry.d.ts +12 -0
- package/dist/src/packlets/services/service-registry.d.ts.map +1 -0
- package/dist/src/packlets/services/service-registry.js +24 -0
- package/dist/src/packlets/services/service-registry.js.map +1 -0
- package/dist/src/packlets/services/service-registry.test.d.ts +2 -0
- package/dist/src/packlets/services/service-registry.test.d.ts.map +1 -0
- package/dist/src/packlets/services/service-registry.test.js +75 -0
- package/dist/src/packlets/services/service-registry.test.js.map +1 -0
- package/dist/src/packlets/services/signer.d.ts +0 -3
- package/dist/src/packlets/services/signer.d.ts.map +1 -1
- package/dist/src/packlets/spaces/index.d.ts +2 -0
- package/dist/src/packlets/spaces/index.d.ts.map +1 -0
- package/dist/src/packlets/spaces/index.js +21 -0
- package/dist/src/packlets/spaces/index.js.map +1 -0
- package/dist/src/packlets/spaces/spaces-service.d.ts +11 -0
- package/dist/src/packlets/spaces/spaces-service.d.ts.map +1 -0
- package/dist/src/packlets/spaces/spaces-service.js +22 -0
- package/dist/src/packlets/spaces/spaces-service.js.map +1 -0
- package/dist/src/packlets/storage/storage.js +1 -1
- package/dist/src/packlets/storage/storage.js.map +1 -1
- package/dist/src/packlets/testing/index.d.ts +2 -0
- package/dist/src/packlets/testing/index.d.ts.map +1 -0
- package/dist/src/packlets/testing/index.js +21 -0
- package/dist/src/packlets/testing/index.js.map +1 -0
- package/dist/src/packlets/testing/test-builder.d.ts +14 -0
- package/dist/src/packlets/testing/test-builder.d.ts.map +1 -0
- package/dist/src/packlets/testing/test-builder.js +65 -0
- package/dist/src/packlets/testing/test-builder.js.map +1 -0
- package/dist/src/packlets/vault/iframe-runtime.d.ts +19 -0
- package/dist/src/packlets/vault/iframe-runtime.d.ts.map +1 -0
- package/dist/src/packlets/vault/iframe-runtime.js +54 -0
- package/dist/src/packlets/vault/iframe-runtime.js.map +1 -0
- package/dist/src/packlets/vault/index.d.ts +4 -0
- package/dist/src/packlets/vault/index.d.ts.map +1 -0
- package/dist/src/packlets/vault/index.js +23 -0
- package/dist/src/packlets/vault/index.js.map +1 -0
- package/dist/src/packlets/vault/services.d.ts +13 -0
- package/dist/src/packlets/vault/services.d.ts.map +1 -0
- package/dist/src/packlets/vault/services.js +15 -0
- package/dist/src/packlets/vault/services.js.map +1 -0
- package/dist/src/packlets/vault/worker-runtime.d.ts +32 -0
- package/dist/src/packlets/vault/worker-runtime.d.ts.map +1 -0
- package/dist/src/packlets/vault/worker-runtime.js +94 -0
- package/dist/src/packlets/vault/worker-runtime.js.map +1 -0
- package/dist/src/packlets/vault/worker-session.d.ts +29 -0
- package/dist/src/packlets/vault/worker-session.d.ts.map +1 -0
- package/dist/src/packlets/vault/worker-session.js +84 -0
- package/dist/src/packlets/vault/worker-session.js.map +1 -0
- package/package.json +26 -26
- package/src/index.ts +5 -2
- package/src/packlets/{services/impl → deprecated}/index.ts +1 -4
- package/src/packlets/{invitations/common.ts → deprecated/invitations.ts} +18 -3
- package/src/packlets/{services/impl → deprecated}/profile.ts +13 -13
- package/src/packlets/deprecated/space.ts +245 -0
- package/src/packlets/{services/impl → deprecated}/system.ts +2 -2
- package/src/packlets/{services/impl → deprecated}/tracing.ts +2 -2
- package/src/packlets/{services/impl → devtools}/devtools.ts +33 -34
- package/src/packlets/devtools/feeds.ts +31 -27
- package/src/packlets/devtools/index.ts +1 -1
- package/src/packlets/devtools/spaces.ts +19 -18
- package/src/packlets/identity/devices-service-impl.ts +54 -0
- package/src/packlets/identity/identity-manager.test.ts +7 -8
- package/src/packlets/identity/identity.test.ts +2 -3
- package/src/packlets/identity/identity.ts +5 -1
- package/src/packlets/invitations/encoder.test.ts +22 -0
- package/src/packlets/invitations/encoder.ts +26 -0
- package/src/packlets/{services/testing/halo.test.ts → invitations/halo-invitations.test.ts} +5 -5
- package/src/packlets/invitations/halo-invitations.ts +12 -10
- package/src/packlets/invitations/index.ts +6 -3
- package/src/packlets/invitations/invitations-proxy.ts +157 -0
- package/src/packlets/invitations/invitations.ts +149 -0
- package/src/packlets/invitations/space-invitations-handler.test.ts +154 -0
- package/src/packlets/invitations/space-invitations-handler.ts +266 -0
- package/src/packlets/invitations/space-invitations-proxy.ts +16 -0
- package/src/packlets/invitations/space-invitations-service.test.ts +129 -0
- package/src/packlets/invitations/space-invitations-service.ts +196 -0
- package/src/packlets/services/index.ts +3 -2
- package/src/packlets/services/service-context.ts +9 -31
- package/src/packlets/services/service-definitions.ts +54 -0
- package/src/packlets/services/service-host.test.ts +12 -24
- package/src/packlets/services/service-host.ts +64 -64
- package/src/packlets/services/service-proxy.ts +54 -0
- package/src/packlets/services/service-registry.test.ts +95 -0
- package/src/packlets/services/service-registry.ts +24 -0
- package/src/packlets/services/signer.ts +1 -3
- package/src/packlets/spaces/index.ts +5 -0
- package/src/packlets/spaces/spaces-service.ts +28 -0
- package/src/packlets/storage/storage.ts +1 -1
- package/src/packlets/testing/index.ts +5 -0
- package/src/packlets/testing/test-builder.ts +79 -0
- package/src/packlets/vault/iframe-runtime.ts +68 -0
- package/src/packlets/vault/index.ts +7 -0
- package/src/packlets/vault/services.ts +26 -0
- package/src/packlets/vault/worker-runtime.ts +111 -0
- package/src/packlets/vault/worker-session.ts +113 -0
- package/dist/src/packlets/devtools/devtools-host-events.d.ts +0 -5
- package/dist/src/packlets/devtools/devtools-host-events.d.ts.map +0 -1
- package/dist/src/packlets/devtools/devtools-host-events.js +0 -14
- package/dist/src/packlets/devtools/devtools-host-events.js.map +0 -1
- package/dist/src/packlets/invitations/common.d.ts.map +0 -1
- package/dist/src/packlets/invitations/common.js.map +0 -1
- package/dist/src/packlets/invitations/invitation-wrapper.d.ts +0 -36
- package/dist/src/packlets/invitations/invitation-wrapper.d.ts.map +0 -1
- package/dist/src/packlets/invitations/invitation-wrapper.js +0 -104
- package/dist/src/packlets/invitations/invitation-wrapper.js.map +0 -1
- package/dist/src/packlets/invitations/space-invitations.d.ts +0 -25
- package/dist/src/packlets/invitations/space-invitations.d.ts.map +0 -1
- package/dist/src/packlets/invitations/space-invitations.js +0 -136
- package/dist/src/packlets/invitations/space-invitations.js.map +0 -1
- package/dist/src/packlets/services/impl/devtools.d.ts.map +0 -1
- package/dist/src/packlets/services/impl/devtools.js +0 -77
- package/dist/src/packlets/services/impl/devtools.js.map +0 -1
- package/dist/src/packlets/services/impl/halo.d.ts +0 -20
- package/dist/src/packlets/services/impl/halo.d.ts.map +0 -1
- package/dist/src/packlets/services/impl/halo.js +0 -93
- package/dist/src/packlets/services/impl/halo.js.map +0 -1
- package/dist/src/packlets/services/impl/index.d.ts +0 -6
- package/dist/src/packlets/services/impl/index.d.ts.map +0 -1
- package/dist/src/packlets/services/impl/index.js.map +0 -1
- package/dist/src/packlets/services/impl/party.d.ts +0 -25
- package/dist/src/packlets/services/impl/party.d.ts.map +0 -1
- package/dist/src/packlets/services/impl/party.js +0 -265
- package/dist/src/packlets/services/impl/party.js.map +0 -1
- package/dist/src/packlets/services/impl/profile.d.ts.map +0 -1
- package/dist/src/packlets/services/impl/profile.js.map +0 -1
- package/dist/src/packlets/services/impl/system.d.ts.map +0 -1
- package/dist/src/packlets/services/impl/system.js.map +0 -1
- package/dist/src/packlets/services/impl/tracing.d.ts +0 -12
- package/dist/src/packlets/services/impl/tracing.d.ts.map +0 -1
- package/dist/src/packlets/services/impl/tracing.js.map +0 -1
- package/dist/src/packlets/services/service-factory.d.ts +0 -15
- package/dist/src/packlets/services/service-factory.d.ts.map +0 -1
- package/dist/src/packlets/services/service-factory.js +0 -25
- package/dist/src/packlets/services/service-factory.js.map +0 -1
- package/dist/src/packlets/services/services.d.ts +0 -19
- package/dist/src/packlets/services/services.d.ts.map +0 -1
- package/dist/src/packlets/services/services.js.map +0 -1
- package/dist/src/packlets/services/testing/halo.test.d.ts +0 -2
- package/dist/src/packlets/services/testing/halo.test.d.ts.map +0 -1
- package/dist/src/packlets/services/testing/halo.test.js.map +0 -1
- package/dist/src/packlets/services/testing/spaces.test.d.ts +0 -2
- package/dist/src/packlets/services/testing/spaces.test.d.ts.map +0 -1
- package/dist/src/packlets/services/testing/spaces.test.js +0 -68
- package/dist/src/packlets/services/testing/spaces.test.js.map +0 -1
- package/dist/src/packlets/services/testing/testing.d.ts +0 -8
- package/dist/src/packlets/services/testing/testing.d.ts.map +0 -1
- package/dist/src/packlets/services/testing/testing.js +0 -23
- package/dist/src/packlets/services/testing/testing.js.map +0 -1
- package/src/packlets/devtools/devtools-host-events.ts +0 -8
- package/src/packlets/invitations/invitation-wrapper.ts +0 -140
- package/src/packlets/invitations/space-invitations.ts +0 -159
- package/src/packlets/services/impl/halo.ts +0 -107
- package/src/packlets/services/impl/party.ts +0 -305
- package/src/packlets/services/service-factory.ts +0 -35
- package/src/packlets/services/services.ts +0 -39
- package/src/packlets/services/testing/spaces.test.ts +0 -87
- package/src/packlets/services/testing/testing.ts +0 -28
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2022 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import assert from 'node:assert';
|
|
6
|
+
|
|
7
|
+
import { Trigger } from '@dxos/async';
|
|
8
|
+
import { Config } from '@dxos/config';
|
|
9
|
+
import { WebsocketSignalManager } from '@dxos/messaging';
|
|
10
|
+
import { NetworkManager, WebRTCTransportProxyFactory } from '@dxos/network-manager';
|
|
11
|
+
import { PortMuxer } from '@dxos/rpc-tunnel';
|
|
12
|
+
import { MaybePromise } from '@dxos/util';
|
|
13
|
+
|
|
14
|
+
import { ClientServicesHost } from '../services';
|
|
15
|
+
import { WorkerSession } from './worker-session';
|
|
16
|
+
|
|
17
|
+
export type CreateSessionParams = {
|
|
18
|
+
portMuxer: PortMuxer;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Runtime for the shared worker.
|
|
23
|
+
* Manages connections from proxies (in tabs).
|
|
24
|
+
* Tabs make requests to the `ClientServicesHost`, and provide a WebRTC gateway.
|
|
25
|
+
*/
|
|
26
|
+
export class WorkerRuntime {
|
|
27
|
+
private readonly _transportFactory = new WebRTCTransportProxyFactory();
|
|
28
|
+
private readonly _ready = new Trigger();
|
|
29
|
+
private readonly sessions = new Set<WorkerSession>();
|
|
30
|
+
private _sessionForNetworking?: WorkerSession;
|
|
31
|
+
private _clientServices!: ClientServicesHost;
|
|
32
|
+
private _config!: Config;
|
|
33
|
+
|
|
34
|
+
// prettier-ignore
|
|
35
|
+
constructor(
|
|
36
|
+
private readonly _configProvider: () => MaybePromise<Config>
|
|
37
|
+
) {}
|
|
38
|
+
|
|
39
|
+
async start() {
|
|
40
|
+
this._config = await this._configProvider();
|
|
41
|
+
const signalServer = this._config.get('runtime.services.signal.server');
|
|
42
|
+
// TODO(wittjosiah): Networking shouldn't be required.
|
|
43
|
+
assert(signalServer);
|
|
44
|
+
this._clientServices = new ClientServicesHost({
|
|
45
|
+
config: this._config,
|
|
46
|
+
networkManager: new NetworkManager({
|
|
47
|
+
log: true,
|
|
48
|
+
signalManager: new WebsocketSignalManager([signalServer]),
|
|
49
|
+
transportFactory: this._transportFactory
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
await this._clientServices.open();
|
|
54
|
+
this._ready.wake();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async stop() {
|
|
58
|
+
// TODO(dmaretskyi): Terminate active sessions.
|
|
59
|
+
await this._clientServices.close();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Create a new session.
|
|
64
|
+
*/
|
|
65
|
+
async createSession({ portMuxer }: CreateSessionParams) {
|
|
66
|
+
const appPort = portMuxer.createWorkerPort({ channel: 'dxos:app' });
|
|
67
|
+
const systemPort = portMuxer.createWorkerPort({ channel: 'dxos:system' });
|
|
68
|
+
|
|
69
|
+
await this._ready.wait();
|
|
70
|
+
|
|
71
|
+
const session = new WorkerSession({
|
|
72
|
+
clientServices: this._clientServices,
|
|
73
|
+
appPort,
|
|
74
|
+
systemPort
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// When tab is closed.
|
|
78
|
+
session.onClose.set(async () => {
|
|
79
|
+
this.sessions.delete(session);
|
|
80
|
+
this._reconnectWebrtc();
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
await session.open();
|
|
84
|
+
this.sessions.add(session);
|
|
85
|
+
|
|
86
|
+
this._reconnectWebrtc();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Selects one of the existing session fro WebRTC networking.
|
|
91
|
+
*/
|
|
92
|
+
private _reconnectWebrtc() {
|
|
93
|
+
// Check if current session is already closed.
|
|
94
|
+
if (this._sessionForNetworking) {
|
|
95
|
+
if (!this.sessions.has(this._sessionForNetworking)) {
|
|
96
|
+
this._sessionForNetworking = undefined;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Select existing session.
|
|
101
|
+
if (!this._sessionForNetworking) {
|
|
102
|
+
const selected = Array.from(this.sessions).find((session) => session.bridgeService);
|
|
103
|
+
if (selected) {
|
|
104
|
+
this._sessionForNetworking = selected;
|
|
105
|
+
this._transportFactory.setBridgeService(selected.bridgeService);
|
|
106
|
+
} else {
|
|
107
|
+
this._transportFactory.setBridgeService(undefined);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2022 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { Trigger } from '@dxos/async';
|
|
6
|
+
import { log } from '@dxos/log';
|
|
7
|
+
import { BridgeService } from '@dxos/protocols/proto/dxos/mesh/bridge';
|
|
8
|
+
import { createProtoRpcPeer, ProtoRpcPeer, RpcPort } from '@dxos/rpc';
|
|
9
|
+
import { Callback } from '@dxos/util';
|
|
10
|
+
|
|
11
|
+
import { ClientServicesHost } from '../services';
|
|
12
|
+
import { IframeServiceBundle, iframeServiceBundle, workerServiceBundle } from './services';
|
|
13
|
+
|
|
14
|
+
export type WorkerSessionParams = {
|
|
15
|
+
clientServices: ClientServicesHost;
|
|
16
|
+
systemPort: RpcPort;
|
|
17
|
+
appPort: RpcPort;
|
|
18
|
+
options?: {
|
|
19
|
+
heartbeatInterval: number;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Represents a tab connection within the worker.
|
|
25
|
+
*/
|
|
26
|
+
export class WorkerSession {
|
|
27
|
+
private readonly _clientRpc: ProtoRpcPeer<{}>;
|
|
28
|
+
private readonly _systemRpc: ProtoRpcPeer<IframeServiceBundle>;
|
|
29
|
+
private readonly _startTrigger = new Trigger();
|
|
30
|
+
private readonly _options: NonNullable<WorkerSessionParams['options']>;
|
|
31
|
+
private _heartbeatTimer?: NodeJS.Timeout;
|
|
32
|
+
|
|
33
|
+
public readonly onClose = new Callback<() => Promise<void>>();
|
|
34
|
+
|
|
35
|
+
public origin?: string;
|
|
36
|
+
public bridgeService?: BridgeService;
|
|
37
|
+
|
|
38
|
+
constructor({
|
|
39
|
+
clientServices,
|
|
40
|
+
systemPort,
|
|
41
|
+
appPort,
|
|
42
|
+
options = {
|
|
43
|
+
heartbeatInterval: 1000
|
|
44
|
+
}
|
|
45
|
+
}: WorkerSessionParams) {
|
|
46
|
+
this._options = options;
|
|
47
|
+
|
|
48
|
+
this._clientRpc = createProtoRpcPeer({
|
|
49
|
+
exposed: clientServices.descriptors,
|
|
50
|
+
handlers: clientServices.services,
|
|
51
|
+
port: appPort
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
this._systemRpc = createProtoRpcPeer({
|
|
55
|
+
requested: iframeServiceBundle,
|
|
56
|
+
exposed: workerServiceBundle,
|
|
57
|
+
handlers: {
|
|
58
|
+
WorkerService: {
|
|
59
|
+
start: async (request) => {
|
|
60
|
+
this.origin = request.origin;
|
|
61
|
+
this._startTrigger.wake();
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
stop: async () => {
|
|
65
|
+
setTimeout(async () => {
|
|
66
|
+
try {
|
|
67
|
+
await this.close();
|
|
68
|
+
} catch (err: any) {
|
|
69
|
+
log.catch(err);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
port: systemPort,
|
|
76
|
+
timeout: 200
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
this.bridgeService = this._systemRpc.rpc.BridgeService;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async open() {
|
|
83
|
+
await Promise.all([this._clientRpc.open(), this._systemRpc.open()]);
|
|
84
|
+
|
|
85
|
+
await this._startTrigger.wait(); // TODO(dmaretskyi): Timeout.
|
|
86
|
+
|
|
87
|
+
this._heartbeatTimer = setInterval(async () => {
|
|
88
|
+
try {
|
|
89
|
+
await this._systemRpc.rpc.IframeService.heartbeat();
|
|
90
|
+
} catch (err) {
|
|
91
|
+
try {
|
|
92
|
+
await this.close();
|
|
93
|
+
} catch (err: any) {
|
|
94
|
+
log.catch(err);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}, this._options.heartbeatInterval);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
async close() {
|
|
101
|
+
try {
|
|
102
|
+
await this.onClose.callIfSet();
|
|
103
|
+
} catch (err: any) {
|
|
104
|
+
log.catch(err);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (this._heartbeatTimer !== undefined) {
|
|
108
|
+
clearInterval(this._heartbeatTimer);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
await Promise.all([this._clientRpc.close(), this._systemRpc.close()]);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-host-events.d.ts","sourceRoot":"","sources":["../../../../src/packlets/devtools/devtools-host-events.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK,cAAe;CAC9B"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DevtoolsHostEvents = void 0;
|
|
4
|
-
//
|
|
5
|
-
// Copyright 2021 DXOS.org
|
|
6
|
-
//
|
|
7
|
-
const async_1 = require("@dxos/async");
|
|
8
|
-
class DevtoolsHostEvents {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.ready = new async_1.Event();
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.DevtoolsHostEvents = DevtoolsHostEvents;
|
|
14
|
-
//# sourceMappingURL=devtools-host-events.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-host-events.js","sourceRoot":"","sources":["../../../../src/packlets/devtools/devtools-host-events.ts"],"names":[],"mappings":";;;AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AACF,uCAAoC;AAEpC,MAAa,kBAAkB;IAA/B;QACW,UAAK,GAAG,IAAI,aAAK,EAAE,CAAC;IAC/B,CAAC;CAAA;AAFD,gDAEC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/common.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiD,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CAAC,uBAAuB,CAG5E,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAExD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,oBAAY,iBAAiB,GAAG;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;CAChC,CAAC;AAGF,oBAAY,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,oBAAY,kBAAkB,GAAG,iBAAiB,EAAE,CAAC;AACrD,oBAAY,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/common.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,mDAAmH;AAUtG,QAAA,8BAA8B,GAAsC;IAC/E,cAAc,EAAE,mCAAqB;IACrC,eAAe,EAAE,oCAAsB;CACxC,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { PublicKey } from '@dxos/keys';
|
|
2
|
-
import { InvitationDescriptor } from '@dxos/protocols/proto/dxos/halo/invitations';
|
|
3
|
-
/**
|
|
4
|
-
* A serialized version of InvitationWrapper that's suitable to be encoded as an URL query string.
|
|
5
|
-
*/
|
|
6
|
-
export interface InvitationQueryParameters {
|
|
7
|
-
hash: string;
|
|
8
|
-
swarmKey: string;
|
|
9
|
-
invitation: string;
|
|
10
|
-
identityKey?: string;
|
|
11
|
-
type: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Describes an issued invitation.
|
|
15
|
-
*
|
|
16
|
-
* Can be serialized to protobuf or JSON.
|
|
17
|
-
* Invitations can be interactive or offline.
|
|
18
|
-
*
|
|
19
|
-
* This descriptor might also have a bundled secret for authentication in interactive mode.
|
|
20
|
-
*/
|
|
21
|
-
export declare class InvitationWrapper {
|
|
22
|
-
readonly type: InvitationDescriptor.Type;
|
|
23
|
-
readonly swarmKey: PublicKey;
|
|
24
|
-
readonly invitation: Uint8Array;
|
|
25
|
-
readonly identityKey?: PublicKey | undefined;
|
|
26
|
-
secret?: Uint8Array | undefined;
|
|
27
|
-
static decode(code: string): InvitationWrapper;
|
|
28
|
-
static encode(invitation: InvitationWrapper): string;
|
|
29
|
-
static fromQueryParameters(queryParameters: InvitationQueryParameters): InvitationWrapper;
|
|
30
|
-
static fromProto(invitation: InvitationDescriptor): InvitationWrapper;
|
|
31
|
-
constructor(type: InvitationDescriptor.Type, swarmKey: PublicKey, invitation: Uint8Array, identityKey?: PublicKey | undefined, secret?: Uint8Array | undefined);
|
|
32
|
-
get hash(): string;
|
|
33
|
-
toProto(): InvitationDescriptor;
|
|
34
|
-
toQueryParameters(): InvitationQueryParameters;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=invitation-wrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invitation-wrapper.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitation-wrapper.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAOnF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AAEH,qBAAa,iBAAiB;aA0CV,IAAI,EAAE,oBAAoB,CAAC,IAAI;aAC/B,QAAQ,EAAE,SAAS;aACnB,UAAU,EAAE,UAAU;aACtB,WAAW,CAAC;IACrB,MAAM,CAAC;IA7ChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;IAK9C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,GAAG,MAAM;IAKpD,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,yBAAyB,GAAG,iBAAiB;IAgBzF,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAoB,GAAG,iBAAiB;gBAenD,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAC/B,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,uBAAW,EAChC,MAAM,CAAC,wBAAY;IAa5B,IAAI,IAAI,WAGP;IAED,OAAO,IAAI,oBAAoB;IAU/B,iBAAiB,IAAI,yBAAyB;CAc/C"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//
|
|
3
|
-
// Copyright 2020 DXOS.org
|
|
4
|
-
//
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.InvitationWrapper = void 0;
|
|
10
|
-
const base_x_1 = __importDefault(require("base-x"));
|
|
11
|
-
const json_stable_stringify_1 = __importDefault(require("json-stable-stringify"));
|
|
12
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
13
|
-
const crypto_1 = require("@dxos/crypto");
|
|
14
|
-
const echo_db_1 = require("@dxos/echo-db");
|
|
15
|
-
const keys_1 = require("@dxos/keys");
|
|
16
|
-
const invitations_1 = require("@dxos/protocols/proto/dxos/halo/invitations");
|
|
17
|
-
// TODO(burdon): Move to Client API.
|
|
18
|
-
// Encode with only alpha-numeric characters.
|
|
19
|
-
const base62 = (0, base_x_1.default)('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
|
|
20
|
-
/**
|
|
21
|
-
* Describes an issued invitation.
|
|
22
|
-
*
|
|
23
|
-
* Can be serialized to protobuf or JSON.
|
|
24
|
-
* Invitations can be interactive or offline.
|
|
25
|
-
*
|
|
26
|
-
* This descriptor might also have a bundled secret for authentication in interactive mode.
|
|
27
|
-
*/
|
|
28
|
-
// TODO(burdon): Move to Client API (and/or remove).
|
|
29
|
-
class InvitationWrapper {
|
|
30
|
-
constructor(type, swarmKey, invitation, identityKey, secret) {
|
|
31
|
-
this.type = type;
|
|
32
|
-
this.swarmKey = swarmKey;
|
|
33
|
-
this.invitation = invitation;
|
|
34
|
-
this.identityKey = identityKey;
|
|
35
|
-
this.secret = secret;
|
|
36
|
-
(0, node_assert_1.default)(type !== undefined);
|
|
37
|
-
(0, node_assert_1.default)(keys_1.PublicKey.isPublicKey(swarmKey));
|
|
38
|
-
(0, node_assert_1.default)(invitation instanceof Uint8Array);
|
|
39
|
-
if (identityKey) {
|
|
40
|
-
keys_1.PublicKey.assertValidPublicKey(identityKey);
|
|
41
|
-
}
|
|
42
|
-
if (secret) {
|
|
43
|
-
(0, node_assert_1.default)(secret instanceof Uint8Array);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
static decode(code) {
|
|
47
|
-
const json = base62.decode(code).toString();
|
|
48
|
-
return InvitationWrapper.fromQueryParameters(JSON.parse(json));
|
|
49
|
-
}
|
|
50
|
-
static encode(invitation) {
|
|
51
|
-
const buffer = Buffer.from(JSON.stringify(invitation.toQueryParameters()));
|
|
52
|
-
return base62.encode(buffer);
|
|
53
|
-
}
|
|
54
|
-
static fromQueryParameters(queryParameters) {
|
|
55
|
-
const { hash, swarmKey, invitation, identityKey, type } = queryParameters;
|
|
56
|
-
const descriptor = new InvitationWrapper(parseInvitationType(type), keys_1.PublicKey.from(swarmKey), keys_1.PublicKey.bufferize(invitation), identityKey ? keys_1.PublicKey.from(identityKey) : undefined);
|
|
57
|
-
if (hash !== descriptor.hash) {
|
|
58
|
-
throw new echo_db_1.InvalidInvitationError();
|
|
59
|
-
}
|
|
60
|
-
return descriptor;
|
|
61
|
-
}
|
|
62
|
-
static fromProto(invitation) {
|
|
63
|
-
(0, node_assert_1.default)(invitation.type !== undefined);
|
|
64
|
-
(0, node_assert_1.default)(invitation.swarmKey, 'Missing swarm key');
|
|
65
|
-
(0, node_assert_1.default)(invitation.invitation);
|
|
66
|
-
return new InvitationWrapper(invitation.type, keys_1.PublicKey.from(invitation.swarmKey), Buffer.from(invitation.invitation), invitation.identityKey ? keys_1.PublicKey.from(invitation.identityKey) : undefined, invitation.secret ? Buffer.from(invitation.secret) : undefined);
|
|
67
|
-
}
|
|
68
|
-
get hash() {
|
|
69
|
-
const query = this.toQueryParameters();
|
|
70
|
-
return query.hash;
|
|
71
|
-
}
|
|
72
|
-
toProto() {
|
|
73
|
-
var _a;
|
|
74
|
-
return {
|
|
75
|
-
type: this.type,
|
|
76
|
-
swarmKey: this.swarmKey.asUint8Array(),
|
|
77
|
-
invitation: this.invitation,
|
|
78
|
-
identityKey: (_a = this.identityKey) === null || _a === void 0 ? void 0 : _a.asUint8Array(),
|
|
79
|
-
secret: this.secret
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
toQueryParameters() {
|
|
83
|
-
const query = {
|
|
84
|
-
swarmKey: this.swarmKey.toHex(),
|
|
85
|
-
invitation: keys_1.PublicKey.stringify(this.invitation),
|
|
86
|
-
type: stringifyInvitationType(this.type)
|
|
87
|
-
};
|
|
88
|
-
if (this.identityKey) {
|
|
89
|
-
query.identityKey = this.identityKey.toHex();
|
|
90
|
-
}
|
|
91
|
-
query.hash = (0, crypto_1.ripemd160)((0, json_stable_stringify_1.default)(query));
|
|
92
|
-
return query;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
exports.InvitationWrapper = InvitationWrapper;
|
|
96
|
-
// TODO(burdon): Move to client API.
|
|
97
|
-
const parseInvitationType = (str) => {
|
|
98
|
-
const type = parseInt(str);
|
|
99
|
-
(0, node_assert_1.default)(type === invitations_1.InvitationDescriptor.Type.INTERACTIVE || type === invitations_1.InvitationDescriptor.Type.OFFLINE, 'Invalid invitation type');
|
|
100
|
-
return type;
|
|
101
|
-
};
|
|
102
|
-
// TODO(burdon): Move to client API.
|
|
103
|
-
const stringifyInvitationType = (type) => type.toString();
|
|
104
|
-
//# sourceMappingURL=invitation-wrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invitation-wrapper.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitation-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { SigningContext, Space, SpaceManager } from '@dxos/echo-db';
|
|
2
|
-
import { NetworkManager } from '@dxos/network-manager';
|
|
3
|
-
import { InvitationDescriptor } from '@dxos/protocols/proto/dxos/halo/invitations';
|
|
4
|
-
/**
|
|
5
|
-
* Manages the life-cycle of Space invitations between peers.
|
|
6
|
-
*/
|
|
7
|
-
export declare class SpaceInvitations {
|
|
8
|
-
private readonly _spaceManager;
|
|
9
|
-
private readonly _networkManager;
|
|
10
|
-
private readonly _signingContext;
|
|
11
|
-
constructor(_spaceManager: SpaceManager, _networkManager: NetworkManager, _signingContext: SigningContext);
|
|
12
|
-
/**
|
|
13
|
-
* Creates an invitation and listens for a join request from the invited (guest) peer.
|
|
14
|
-
*/
|
|
15
|
-
createInvitation(space: Space, { onFinish }?: {
|
|
16
|
-
onFinish?: () => void;
|
|
17
|
-
}): Promise<InvitationDescriptor>;
|
|
18
|
-
/**
|
|
19
|
-
* Waits for the host peer (inviter) to accept our join request.
|
|
20
|
-
* The local guest peer (invitee) then sends the local party invitation to the host,
|
|
21
|
-
* which then writes the guest's credentials to the space.
|
|
22
|
-
*/
|
|
23
|
-
acceptInvitation(invitation: InvitationDescriptor): Promise<Space>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=space-invitations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space-invitations.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/space-invitations.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIpE,OAAO,EAAyB,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAG5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAGnF;;GAEG;AAEH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAFf,aAAa,EAAE,YAAY,EAC3B,eAAe,EAAE,cAAc,EAC/B,eAAe,EAAE,cAAc;IAGlD;;OAEG;IAEG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;KAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmEjH;;;;OAIG;IACG,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;CAuDzE"}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//
|
|
3
|
-
// Copyright 2022 DXOS.org
|
|
4
|
-
//
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SpaceInvitations = void 0;
|
|
7
|
-
const async_1 = require("@dxos/async");
|
|
8
|
-
const credentials_1 = require("@dxos/credentials");
|
|
9
|
-
const feed_store_1 = require("@dxos/feed-store");
|
|
10
|
-
const keys_1 = require("@dxos/keys");
|
|
11
|
-
const log_1 = require("@dxos/log");
|
|
12
|
-
const network_manager_1 = require("@dxos/network-manager");
|
|
13
|
-
const protocol_plugin_rpc_1 = require("@dxos/protocol-plugin-rpc");
|
|
14
|
-
const protocols_1 = require("@dxos/protocols");
|
|
15
|
-
const invitations_1 = require("@dxos/protocols/proto/dxos/halo/invitations");
|
|
16
|
-
const rpc_1 = require("@dxos/rpc");
|
|
17
|
-
/**
|
|
18
|
-
* Manages the life-cycle of Space invitations between peers.
|
|
19
|
-
*/
|
|
20
|
-
// TODO(burdon): Rename factory.
|
|
21
|
-
class SpaceInvitations {
|
|
22
|
-
constructor(_spaceManager, _networkManager, _signingContext) {
|
|
23
|
-
this._spaceManager = _spaceManager;
|
|
24
|
-
this._networkManager = _networkManager;
|
|
25
|
-
this._signingContext = _signingContext;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Creates an invitation and listens for a join request from the invited (guest) peer.
|
|
29
|
-
*/
|
|
30
|
-
// TODO(burdon): Replace callback with cancelable observable.
|
|
31
|
-
async createInvitation(space, { onFinish } = {}) {
|
|
32
|
-
const admitted = new async_1.Trigger();
|
|
33
|
-
const plugin = (0, protocol_plugin_rpc_1.createRpcPlugin)(async (port) => {
|
|
34
|
-
const peer = (0, rpc_1.createProtoRpcPeer)({
|
|
35
|
-
port,
|
|
36
|
-
requested: {
|
|
37
|
-
SpaceGuestService: protocols_1.schema.getService('dxos.halo.invitations.SpaceGuestService')
|
|
38
|
-
},
|
|
39
|
-
exposed: {
|
|
40
|
-
SpaceHostService: protocols_1.schema.getService('dxos.halo.invitations.SpaceHostService')
|
|
41
|
-
},
|
|
42
|
-
handlers: {
|
|
43
|
-
SpaceHostService: {
|
|
44
|
-
presentAdmissionCredentials: async ({ identityKey, deviceKey, controlFeedKey, dataFeedKey }) => {
|
|
45
|
-
(0, log_1.log)('processing admission request', { identityKey, deviceKey }, { file: "packages/sdk/client-services/src/packlets/invitations/space-invitations.ts", line: 47 });
|
|
46
|
-
await (0, feed_store_1.writeMessages)(space.controlPipeline.writer, await (0, credentials_1.createAdmissionCredentials)(this._signingContext.credentialSigner, identityKey, deviceKey, space.key, controlFeedKey, dataFeedKey));
|
|
47
|
-
admitted.wake();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
// TODO(burdon): Error handling and timeout.
|
|
53
|
-
await peer.open();
|
|
54
|
-
{
|
|
55
|
-
(0, log_1.log)('sending admission offer', { spaceKey: space.key }, { file: "packages/sdk/client-services/src/packlets/invitations/space-invitations.ts", line: 70 });
|
|
56
|
-
await peer.rpc.SpaceGuestService.presentAdmissionOffer({
|
|
57
|
-
spaceKey: space.key,
|
|
58
|
-
genesisFeedKey: space.genesisFeedKey
|
|
59
|
-
});
|
|
60
|
-
onFinish === null || onFinish === void 0 ? void 0 : onFinish();
|
|
61
|
-
}
|
|
62
|
-
await peer.close();
|
|
63
|
-
await connection.close();
|
|
64
|
-
});
|
|
65
|
-
const topic = keys_1.PublicKey.random();
|
|
66
|
-
const peerId = keys_1.PublicKey.random(); // TODO(burdon): Use actual key.
|
|
67
|
-
const connection = await this._networkManager.openSwarmConnection({
|
|
68
|
-
topic,
|
|
69
|
-
peerId: topic,
|
|
70
|
-
// peerId,
|
|
71
|
-
protocol: (0, network_manager_1.createProtocolFactory)(topic, peerId, [plugin]),
|
|
72
|
-
topology: new network_manager_1.StarTopology(topic)
|
|
73
|
-
});
|
|
74
|
-
return {
|
|
75
|
-
type: invitations_1.InvitationDescriptor.Type.INTERACTIVE,
|
|
76
|
-
swarmKey: topic.asUint8Array(),
|
|
77
|
-
invitation: new Uint8Array() // TODO(burdon): Remove.
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Waits for the host peer (inviter) to accept our join request.
|
|
82
|
-
* The local guest peer (invitee) then sends the local party invitation to the host,
|
|
83
|
-
* which then writes the guest's credentials to the space.
|
|
84
|
-
*/
|
|
85
|
-
async acceptInvitation(invitation) {
|
|
86
|
-
const admitted = new async_1.Trigger();
|
|
87
|
-
const plugin = (0, protocol_plugin_rpc_1.createRpcPlugin)(async (port) => {
|
|
88
|
-
const peer = (0, rpc_1.createProtoRpcPeer)({
|
|
89
|
-
port,
|
|
90
|
-
requested: {
|
|
91
|
-
SpaceHostService: protocols_1.schema.getService('dxos.halo.invitations.SpaceHostService')
|
|
92
|
-
},
|
|
93
|
-
exposed: {
|
|
94
|
-
SpaceGuestService: protocols_1.schema.getService('dxos.halo.invitations.SpaceGuestService')
|
|
95
|
-
},
|
|
96
|
-
handlers: {
|
|
97
|
-
SpaceGuestService: {
|
|
98
|
-
presentAdmissionOffer: async ({ spaceKey, genesisFeedKey }) => {
|
|
99
|
-
(0, log_1.log)('processing admission offer', { spaceKey }, { file: "packages/sdk/client-services/src/packlets/invitations/space-invitations.ts", line: 119 });
|
|
100
|
-
// Create local space.
|
|
101
|
-
const space = await this._spaceManager.acceptSpace({ spaceKey, genesisFeedKey });
|
|
102
|
-
// Send local space's details to host (inviter).
|
|
103
|
-
// TODO(burdon): Space is orphaned if we crash before other side ACKs. Retry from cold start possible?
|
|
104
|
-
(0, log_1.log)('sending admission request', { identityKey: invitation.identityKey }, { file: "packages/sdk/client-services/src/packlets/invitations/space-invitations.ts", line: 125 });
|
|
105
|
-
await peer.rpc.SpaceHostService.presentAdmissionCredentials({
|
|
106
|
-
identityKey: this._signingContext.identityKey,
|
|
107
|
-
deviceKey: this._signingContext.deviceKey,
|
|
108
|
-
controlFeedKey: space.controlFeedKey,
|
|
109
|
-
dataFeedKey: space.dataFeedKey
|
|
110
|
-
});
|
|
111
|
-
// TODO(burdon): Error: Writable stream closed prematurely
|
|
112
|
-
admitted.wake(space);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
await peer.open();
|
|
118
|
-
await admitted.wait();
|
|
119
|
-
await peer.close();
|
|
120
|
-
});
|
|
121
|
-
const topic = keys_1.PublicKey.from(invitation.swarmKey);
|
|
122
|
-
const peerId = keys_1.PublicKey.random(); // TODO(burdon): Use actual key.
|
|
123
|
-
const connection = await this._networkManager.openSwarmConnection({
|
|
124
|
-
topic,
|
|
125
|
-
peerId: keys_1.PublicKey.random(),
|
|
126
|
-
// peerId,
|
|
127
|
-
protocol: (0, network_manager_1.createProtocolFactory)(topic, peerId, [plugin]),
|
|
128
|
-
topology: new network_manager_1.StarTopology(topic)
|
|
129
|
-
});
|
|
130
|
-
const space = await admitted.wait();
|
|
131
|
-
await connection.close();
|
|
132
|
-
return space;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
exports.SpaceInvitations = SpaceInvitations;
|
|
136
|
-
//# sourceMappingURL=space-invitations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space-invitations.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/space-invitations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/impl/devtools.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,oCAAoC,EACpC,qCAAqC,EACrC,4BAA4B,EAC5B,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,gCAAgC,EAChC,yBAAyB,EACzB,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,kBAAkB,EAOnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,oBAAY,qBAAqB,GAAG;IAClC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,qBAAa,eAAgB,YAAW,YAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,qBAAqB;IAE1D,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAQpC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpD,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAI3F,mBAAmB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAI5F,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,MAAM,CAAC,8BAA8B,CAAC;IAItG,6BAA6B,CAC3B,OAAO,EAAE,oCAAoC,GAC5C,MAAM,CAAC,qCAAqC,CAAC;IAIhD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC,0BAA0B,CAAC;IAI1F,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAAC,wBAAwB,CAAC;IAIpF,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAAC,wBAAwB,CAAC;IAIpF,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CAAC,6BAA6B,CAAC;IAInG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAIrF,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAIxF,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIlF,wBAAwB,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC,gCAAgC,CAAC;IAIjF,uBAAuB,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC,+BAA+B,CAAC;IAI/E,sBAAsB,IAAI,MAAM,CAAC,8BAA8B,CAAC;IAIhE,oBAAoB,IAAI,MAAM,CAAC,4BAA4B,CAAC;CAG7D"}
|