@dxos/client-services 0.4.10-main.ec8b427 → 0.4.10-main.f68a1ca
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-4NKBBUMB.mjs → chunk-B4JZEXRB.mjs} +128 -53
- package/dist/lib/browser/{chunk-4NKBBUMB.mjs.map → chunk-B4JZEXRB.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +48 -20
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/packlets/testing/index.mjs +1 -1
- package/dist/lib/node/{chunk-5YRLBMIC.cjs → chunk-EC2QGJ2V.cjs} +133 -58
- package/dist/lib/node/chunk-EC2QGJ2V.cjs.map +7 -0
- package/dist/lib/node/index.cjs +85 -57
- 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 +6 -6
- package/dist/types/src/packlets/indexing/util.d.ts +2 -2
- package/dist/types/src/packlets/indexing/util.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.d.ts.map +1 -1
- package/dist/types/src/packlets/vault/shared-worker-connection.d.ts +5 -5
- package/dist/types/src/packlets/vault/shared-worker-connection.d.ts.map +1 -1
- package/dist/types/src/packlets/vault/worker-runtime.d.ts +2 -0
- package/dist/types/src/packlets/vault/worker-runtime.d.ts.map +1 -1
- package/dist/types/src/packlets/vault/worker-session.d.ts +2 -0
- package/dist/types/src/packlets/vault/worker-session.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +1 -1
- package/package.json +34 -34
- package/src/packlets/indexing/util.ts +3 -3
- package/src/packlets/services/service-context.ts +3 -3
- package/src/packlets/services/service-host.ts +15 -8
- package/src/packlets/spaces/data-space.ts +51 -2
- package/src/packlets/vault/shared-worker-connection.ts +3 -8
- package/src/packlets/vault/worker-runtime.ts +27 -2
- package/src/packlets/vault/worker-session.ts +6 -0
- package/src/version.ts +1 -1
- package/dist/lib/node/chunk-5YRLBMIC.cjs.map +0 -7
|
@@ -25,11 +25,11 @@ export declare class SharedWorkerConnection {
|
|
|
25
25
|
private _shellRuntime?;
|
|
26
26
|
constructor({ config, systemPort, shellPort }: SharedWorkerConnectionOptions);
|
|
27
27
|
get shell(): ShellRuntime | undefined;
|
|
28
|
-
open(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
open(params: {
|
|
29
|
+
origin: string;
|
|
30
|
+
observabilityGroup?: string;
|
|
31
|
+
signalTelemetryEnabled?: boolean;
|
|
32
|
+
}): Promise<void>;
|
|
33
33
|
close(): Promise<void>;
|
|
34
34
|
private _lockKey;
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-worker-connection.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/shared-worker-connection.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAK3C,OAAO,EAAyC,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAiB,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK7E,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA+C;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,aAAa,CAAC,CAAmB;gBAE7B,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,6BAA6B;IAU5E,IAAI,KAAK,IAAI,YAAY,GAAG,SAAS,CAEpC;IAEK,IAAI;
|
|
1
|
+
{"version":3,"file":"shared-worker-connection.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/shared-worker-connection.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAK3C,OAAO,EAAyC,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAiB,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK7E,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA+C;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,aAAa,CAAC,CAAmB;gBAE7B,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,6BAA6B;IAU5E,IAAI,KAAK,IAAI,YAAY,GAAG,SAAS,CAEpC;IAEK,IAAI,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE;IAyC9F,KAAK;IAWX,OAAO,CAAC,QAAQ;CAGjB"}
|
|
@@ -27,6 +27,8 @@ export declare class WorkerRuntime {
|
|
|
27
27
|
private readonly _clientServices;
|
|
28
28
|
private _sessionForNetworking?;
|
|
29
29
|
private _config;
|
|
30
|
+
private _signalMetadataTags;
|
|
31
|
+
private _signalTelemetryEnabled;
|
|
30
32
|
constructor(_configProvider: () => MaybePromise<Config>, { acquireLock, releaseLock, onReset }: WorkerRuntimeCallbacks);
|
|
31
33
|
get host(): ClientServicesHost;
|
|
32
34
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/worker-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/worker-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAW3C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAZlC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAa;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyC;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IACtD,OAAO,CAAC,qBAAqB,CAAC,CAAgB;IAC9C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,uBAAuB,CAAkB;gBAG9B,eAAe,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,EAC5D,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,sBAAsB;IAW/D,IAAI,IAAI,uBAEP;IAEK,KAAK;IA8BL,IAAI;IAMV;;OAEG;IACG,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAoC3E;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAoBzB"}
|
|
@@ -21,6 +21,8 @@ export declare class WorkerSession {
|
|
|
21
21
|
private readonly _serviceHost;
|
|
22
22
|
readonly onClose: Callback<() => Promise<void>>;
|
|
23
23
|
origin?: string;
|
|
24
|
+
observabilityGroup?: string;
|
|
25
|
+
signalTelemetryEnabled?: boolean;
|
|
24
26
|
lockKey?: string;
|
|
25
27
|
bridgeService?: BridgeService;
|
|
26
28
|
constructor({ serviceHost, systemPort, appPort, shellPort, readySignal }: WorkerSessionParams);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-session.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/worker-session.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,OAAO,EAAE,MAAM,aAAa,CAAC;AASpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAyC,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAqB,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,KAAK,kBAAkB,EAA+C,MAAM,aAAa,CAAC;AAEnG,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,SAAgB,OAAO,iBAAsB,QAAQ,IAAI,CAAC,EAAI;IAGvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,aAAa,CAAC,EAAE,aAAa,CAAC;gBAEzB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"worker-session.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/worker-session.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,OAAO,EAAE,MAAM,aAAa,CAAC;AASpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAyC,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAqB,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,KAAK,kBAAkB,EAA+C,MAAM,aAAa,CAAC;AAEnG,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,SAAgB,OAAO,iBAAsB,QAAQ,IAAI,CAAC,EAAI;IAGvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAGjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,aAAa,CAAC,EAAE,aAAa,CAAC;gBAEzB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,mBAAmB;IAoEvF,IAAI;IAeJ,KAAK;YAYG,eAAe;IAQ7B,OAAO,CAAC,kBAAkB;CAO3B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const DXOS_VERSION = "0.4.10-main.
|
|
1
|
+
export declare const DXOS_VERSION = "0.4.10-main.f68a1ca";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/client-services",
|
|
3
|
-
"version": "0.4.10-main.
|
|
3
|
+
"version": "0.4.10-main.f68a1ca",
|
|
4
4
|
"description": "DXOS client services implementation",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -22,43 +22,43 @@
|
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"platform": "^1.3.6",
|
|
25
|
-
"@dxos/
|
|
26
|
-
"@dxos/
|
|
27
|
-
"@dxos/
|
|
28
|
-
"@dxos/
|
|
29
|
-
"@dxos/
|
|
30
|
-
"@dxos/
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/crypto": "0.4.10-main.
|
|
33
|
-
"@dxos/
|
|
34
|
-
"@dxos/
|
|
35
|
-
"@dxos/echo-
|
|
36
|
-
"@dxos/
|
|
37
|
-
"@dxos/
|
|
38
|
-
"@dxos/
|
|
39
|
-
"@dxos/
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/network-manager": "0.4.10-main.
|
|
46
|
-
"@dxos/node-std": "0.4.10-main.
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/teleport": "0.4.10-main.
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/teleport-extension-gossip": "0.4.10-main.
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/
|
|
25
|
+
"@dxos/automerge": "0.4.10-main.f68a1ca",
|
|
26
|
+
"@dxos/client-protocol": "0.4.10-main.f68a1ca",
|
|
27
|
+
"@dxos/async": "0.4.10-main.f68a1ca",
|
|
28
|
+
"@dxos/config": "0.4.10-main.f68a1ca",
|
|
29
|
+
"@dxos/codec-protobuf": "0.4.10-main.f68a1ca",
|
|
30
|
+
"@dxos/credentials": "0.4.10-main.f68a1ca",
|
|
31
|
+
"@dxos/context": "0.4.10-main.f68a1ca",
|
|
32
|
+
"@dxos/crypto": "0.4.10-main.f68a1ca",
|
|
33
|
+
"@dxos/echo-db": "0.4.10-main.f68a1ca",
|
|
34
|
+
"@dxos/debug": "0.4.10-main.f68a1ca",
|
|
35
|
+
"@dxos/echo-pipeline": "0.4.10-main.f68a1ca",
|
|
36
|
+
"@dxos/feed-store": "0.4.10-main.f68a1ca",
|
|
37
|
+
"@dxos/indexing": "0.4.10-main.f68a1ca",
|
|
38
|
+
"@dxos/invariant": "0.4.10-main.f68a1ca",
|
|
39
|
+
"@dxos/keyring": "0.4.10-main.f68a1ca",
|
|
40
|
+
"@dxos/echo-schema": "0.4.10-main.f68a1ca",
|
|
41
|
+
"@dxos/keys": "0.4.10-main.f68a1ca",
|
|
42
|
+
"@dxos/lock-file": "0.4.10-main.f68a1ca",
|
|
43
|
+
"@dxos/log": "0.4.10-main.f68a1ca",
|
|
44
|
+
"@dxos/messaging": "0.4.10-main.f68a1ca",
|
|
45
|
+
"@dxos/network-manager": "0.4.10-main.f68a1ca",
|
|
46
|
+
"@dxos/node-std": "0.4.10-main.f68a1ca",
|
|
47
|
+
"@dxos/rpc": "0.4.10-main.f68a1ca",
|
|
48
|
+
"@dxos/random-access-storage": "0.4.10-main.f68a1ca",
|
|
49
|
+
"@dxos/teleport": "0.4.10-main.f68a1ca",
|
|
50
|
+
"@dxos/protocols": "0.4.10-main.f68a1ca",
|
|
51
|
+
"@dxos/teleport-extension-gossip": "0.4.10-main.f68a1ca",
|
|
52
|
+
"@dxos/teleport-extension-object-sync": "0.4.10-main.f68a1ca",
|
|
53
|
+
"@dxos/timeframe": "0.4.10-main.f68a1ca",
|
|
54
|
+
"@dxos/tracing": "0.4.10-main.f68a1ca",
|
|
55
|
+
"@dxos/util": "0.4.10-main.f68a1ca",
|
|
56
|
+
"@dxos/websocket-rpc": "0.4.10-main.f68a1ca"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/platform": "^1.3.4",
|
|
60
60
|
"@types/readable-stream": "^2.3.9",
|
|
61
|
-
"@dxos/signal": "0.4.10-main.
|
|
61
|
+
"@dxos/signal": "0.4.10-main.f68a1ca"
|
|
62
62
|
},
|
|
63
63
|
"publishConfig": {
|
|
64
64
|
"access": "public"
|
|
@@ -12,7 +12,7 @@ import { idCodec } from '@dxos/protocols';
|
|
|
12
12
|
/**
|
|
13
13
|
* Factory for `loadDocuments` iterator.
|
|
14
14
|
*/
|
|
15
|
-
export const
|
|
15
|
+
export const createSelectedDocumentsIterator = (automergeHost: AutomergeHost) =>
|
|
16
16
|
/**
|
|
17
17
|
* Get object data blobs from Automerge Repo by ids.
|
|
18
18
|
* @param ids
|
|
@@ -32,7 +32,7 @@ export const createLoadDocuments = (automergeHost: AutomergeHost) =>
|
|
|
32
32
|
/**
|
|
33
33
|
* Factory for `getAllDocuments` iterator.
|
|
34
34
|
*/
|
|
35
|
-
export const
|
|
35
|
+
export const createDocumentsIterator = (automergeHost: AutomergeHost) =>
|
|
36
36
|
/**
|
|
37
37
|
* Recursively get all object data blobs from Automerge Repo.
|
|
38
38
|
* @param ids
|
|
@@ -57,7 +57,7 @@ export const createGetAllDocuments = (automergeHost: AutomergeHost) =>
|
|
|
57
57
|
return {
|
|
58
58
|
id: idCodec.encode({ documentId: handle.documentId, objectId }),
|
|
59
59
|
object,
|
|
60
|
-
currentHash: heads.
|
|
60
|
+
currentHash: heads.join(''),
|
|
61
61
|
};
|
|
62
62
|
});
|
|
63
63
|
}
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
type IdentityManagerRuntimeParams,
|
|
31
31
|
type JoinIdentityParams,
|
|
32
32
|
} from '../identity';
|
|
33
|
-
import {
|
|
33
|
+
import { createDocumentsIterator, createSelectedDocumentsIterator } from '../indexing';
|
|
34
34
|
import {
|
|
35
35
|
DeviceInvitationProtocol,
|
|
36
36
|
InvitationsHandler,
|
|
@@ -125,8 +125,8 @@ export class ServiceContext {
|
|
|
125
125
|
this.indexer = new Indexer({
|
|
126
126
|
indexStore: new IndexStore({ directory: storage.createDirectory('index-store') }),
|
|
127
127
|
metadataStore: this.indexMetadata,
|
|
128
|
-
loadDocuments:
|
|
129
|
-
getAllDocuments:
|
|
128
|
+
loadDocuments: createSelectedDocumentsIterator(this.automergeHost),
|
|
129
|
+
getAllDocuments: createDocumentsIterator(this.automergeHost),
|
|
130
130
|
});
|
|
131
131
|
|
|
132
132
|
this.invitations = new InvitationsHandler(this.networkManager);
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
// Copyright 2021 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Event, synchronized } from '@dxos/async';
|
|
6
|
-
import {
|
|
5
|
+
import { Event, sleep, synchronized } from '@dxos/async';
|
|
6
|
+
import { clientServiceBundle, defaultKey, type ClientServices, PropertiesSchema } from '@dxos/client-protocol';
|
|
7
7
|
import { type Config } from '@dxos/config';
|
|
8
8
|
import { Context } from '@dxos/context';
|
|
9
|
-
import { DataServiceImpl } from '@dxos/echo-pipeline';
|
|
10
|
-
import
|
|
9
|
+
import { DataServiceImpl, type SpaceDoc } from '@dxos/echo-pipeline';
|
|
10
|
+
import * as E from '@dxos/echo-schema';
|
|
11
|
+
import { createRawObjectDoc } from '@dxos/echo-schema';
|
|
11
12
|
import { IndexServiceImpl } from '@dxos/indexing';
|
|
12
13
|
import { invariant } from '@dxos/invariant';
|
|
13
14
|
import { PublicKey } from '@dxos/keys';
|
|
@@ -187,6 +188,9 @@ export class ClientServicesHost {
|
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
190
|
|
|
191
|
+
if (!options.signalManager) {
|
|
192
|
+
log.warn('running signaling without telemetry metadata.');
|
|
193
|
+
}
|
|
190
194
|
const {
|
|
191
195
|
connectionLog = true,
|
|
192
196
|
transportFactory = createSimplePeerTransportFactory({
|
|
@@ -344,17 +348,20 @@ export class ClientServicesHost {
|
|
|
344
348
|
await this._serviceContext.initialized.wait();
|
|
345
349
|
const space = await this._serviceContext.dataSpaceManager!.createSpace();
|
|
346
350
|
|
|
347
|
-
const obj: TypedObject = new Properties(undefined);
|
|
348
|
-
obj[defaultKey] = identity.identityKey.toHex();
|
|
349
|
-
|
|
350
351
|
const automergeIndex = space.automergeSpaceState.rootUrl;
|
|
351
352
|
invariant(automergeIndex);
|
|
352
353
|
const document = await this._serviceContext.automergeHost.repo.find<SpaceDoc>(automergeIndex as any);
|
|
353
354
|
await document.whenReady();
|
|
354
355
|
|
|
356
|
+
const objectDocument = createRawObjectDoc(
|
|
357
|
+
{ [defaultKey]: identity.identityKey.toHex() },
|
|
358
|
+
{ type: E.getTypeReference(PropertiesSchema) },
|
|
359
|
+
);
|
|
355
360
|
document.change((doc: SpaceDoc) => {
|
|
356
|
-
assignDeep(doc, ['objects',
|
|
361
|
+
assignDeep(doc, ['objects', objectDocument.id], objectDocument.handle.docSync());
|
|
357
362
|
});
|
|
363
|
+
// TODO: replace with flush when supported by automerge-repo
|
|
364
|
+
await sleep(200);
|
|
358
365
|
|
|
359
366
|
return identity;
|
|
360
367
|
}
|
|
@@ -6,7 +6,15 @@ import { Event, asyncTimeout, scheduleTask, sleep, synchronized, trackLeaks } fr
|
|
|
6
6
|
import { AUTH_TIMEOUT } from '@dxos/client-protocol';
|
|
7
7
|
import { cancelWithContext, Context, ContextDisposedError } from '@dxos/context';
|
|
8
8
|
import { timed, warnAfterTimeout } from '@dxos/debug';
|
|
9
|
-
import {
|
|
9
|
+
import { TYPE_PROPERTIES } from '@dxos/echo-db';
|
|
10
|
+
import {
|
|
11
|
+
type MetadataStore,
|
|
12
|
+
type Space,
|
|
13
|
+
createMappedFeedWriter,
|
|
14
|
+
type AutomergeHost,
|
|
15
|
+
type SpaceDoc,
|
|
16
|
+
} from '@dxos/echo-pipeline';
|
|
17
|
+
import { AutomergeDocumentLoaderImpl } from '@dxos/echo-pipeline';
|
|
10
18
|
import { type FeedStore } from '@dxos/feed-store';
|
|
11
19
|
import { failedInvariant, invariant } from '@dxos/invariant';
|
|
12
20
|
import { type Keyring } from '@dxos/keyring';
|
|
@@ -26,7 +34,7 @@ import { type GossipMessage } from '@dxos/protocols/proto/dxos/mesh/teleport/gos
|
|
|
26
34
|
import { type Gossip, type Presence } from '@dxos/teleport-extension-gossip';
|
|
27
35
|
import { Timeframe } from '@dxos/timeframe';
|
|
28
36
|
import { trace } from '@dxos/tracing';
|
|
29
|
-
import { ComplexSet } from '@dxos/util';
|
|
37
|
+
import { ComplexSet, assignDeep } from '@dxos/util';
|
|
30
38
|
|
|
31
39
|
import { AutomergeSpaceState } from './automerge-space-state';
|
|
32
40
|
import { type SigningContext } from './data-space-manager';
|
|
@@ -437,6 +445,47 @@ export class DataSpace {
|
|
|
437
445
|
};
|
|
438
446
|
}
|
|
439
447
|
break;
|
|
448
|
+
case CreateEpochRequest.Migration.FRAGMENT_AUTOMERGE_ROOT:
|
|
449
|
+
{
|
|
450
|
+
log.info('Fragmenting');
|
|
451
|
+
|
|
452
|
+
const currentRootUrl = this._automergeSpaceState.rootUrl;
|
|
453
|
+
const rootHandle = this._automergeHost.repo.find<SpaceDoc>(currentRootUrl as any);
|
|
454
|
+
await cancelWithContext(this._ctx, asyncTimeout(rootHandle.whenReady(), 10_000));
|
|
455
|
+
|
|
456
|
+
// Find properties object.
|
|
457
|
+
const objects = Object.entries((rootHandle.docSync() as SpaceDoc).objects!);
|
|
458
|
+
const properties = objects.find(([_, value]) => value.system.type?.itemId === TYPE_PROPERTIES);
|
|
459
|
+
const otherObjects = objects.filter(([key]) => key !== properties?.[0]);
|
|
460
|
+
invariant(properties, 'Properties not found');
|
|
461
|
+
|
|
462
|
+
// Create a new space doc with the properties object.
|
|
463
|
+
const newSpaceDoc: SpaceDoc = { ...rootHandle.docSync(), objects: Object.fromEntries([properties]) };
|
|
464
|
+
const newRoot = this._automergeHost.repo.create(newSpaceDoc);
|
|
465
|
+
invariant(typeof newRoot.url === 'string' && newRoot.url.length > 0);
|
|
466
|
+
|
|
467
|
+
// Create new automerge documents for all objects.
|
|
468
|
+
const docLoader = new AutomergeDocumentLoaderImpl(this.key, this._automergeHost.repo);
|
|
469
|
+
await docLoader.loadSpaceRootDocHandle(this._ctx, { rootUrl: newRoot.url });
|
|
470
|
+
|
|
471
|
+
otherObjects.forEach(([key, value]) => {
|
|
472
|
+
const handle = docLoader.createDocumentForObject(key);
|
|
473
|
+
handle.change((doc: any) => {
|
|
474
|
+
assignDeep(doc, ['objects', key], value);
|
|
475
|
+
});
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
// TODO(mykola): Delete old root.
|
|
479
|
+
|
|
480
|
+
// TODO(dmaretskyi): Unify epoch construction.
|
|
481
|
+
epoch = {
|
|
482
|
+
previousId: this._automergeSpaceState.lastEpoch?.id,
|
|
483
|
+
number: (this._automergeSpaceState.lastEpoch?.subject.assertion.number ?? -1) + 1,
|
|
484
|
+
timeframe: this._automergeSpaceState.lastEpoch?.subject.assertion.timeframe ?? new Timeframe(),
|
|
485
|
+
automergeRoot: newRoot.url,
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
break;
|
|
440
489
|
}
|
|
441
490
|
|
|
442
491
|
if (!epoch) {
|
|
@@ -57,12 +57,7 @@ export class SharedWorkerConnection {
|
|
|
57
57
|
return this._shellRuntime;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
async open(
|
|
61
|
-
/**
|
|
62
|
-
* @deprecated Only used with iframes.
|
|
63
|
-
*/
|
|
64
|
-
origin: string,
|
|
65
|
-
) {
|
|
60
|
+
async open(params: { origin: string; observabilityGroup?: string; signalTelemetryEnabled?: boolean }) {
|
|
66
61
|
this._config = await getAsyncValue(this._configProvider);
|
|
67
62
|
|
|
68
63
|
this._transportService = new SimplePeerTransportService({
|
|
@@ -83,7 +78,7 @@ export class SharedWorkerConnection {
|
|
|
83
78
|
|
|
84
79
|
let lockKey: string | undefined;
|
|
85
80
|
if (typeof navigator !== 'undefined') {
|
|
86
|
-
lockKey = this._lockKey(origin);
|
|
81
|
+
lockKey = this._lockKey(params.origin);
|
|
87
82
|
this._release = new Trigger();
|
|
88
83
|
const ready = new Trigger();
|
|
89
84
|
void navigator.locks.request(lockKey, async () => {
|
|
@@ -95,7 +90,7 @@ export class SharedWorkerConnection {
|
|
|
95
90
|
|
|
96
91
|
try {
|
|
97
92
|
await this._systemRpc.open();
|
|
98
|
-
await this._systemRpc.rpc.WorkerService.start({
|
|
93
|
+
await this._systemRpc.rpc.WorkerService.start({ lockKey, ...params });
|
|
99
94
|
} catch (err) {
|
|
100
95
|
log.catch(err);
|
|
101
96
|
throw new RemoteServiceConnectionError('Failed to connect to worker');
|
|
@@ -5,8 +5,14 @@
|
|
|
5
5
|
import { Trigger } from '@dxos/async';
|
|
6
6
|
import { type Config } from '@dxos/config';
|
|
7
7
|
import { Context } from '@dxos/context';
|
|
8
|
+
import { invariant } from '@dxos/invariant';
|
|
8
9
|
import { log } from '@dxos/log';
|
|
9
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
MemorySignalManager,
|
|
12
|
+
MemorySignalManagerContext,
|
|
13
|
+
WebsocketSignalManager,
|
|
14
|
+
setIdentityTags,
|
|
15
|
+
} from '@dxos/messaging';
|
|
10
16
|
import { SimplePeerTransportProxyFactory } from '@dxos/network-manager';
|
|
11
17
|
import { type RpcPort } from '@dxos/rpc';
|
|
12
18
|
import { type MaybePromise } from '@dxos/util';
|
|
@@ -41,6 +47,8 @@ export class WorkerRuntime {
|
|
|
41
47
|
private readonly _clientServices!: ClientServicesHost;
|
|
42
48
|
private _sessionForNetworking?: WorkerSession; // TODO(burdon): Expose to client QueryStatusResponse.
|
|
43
49
|
private _config!: Config;
|
|
50
|
+
private _signalMetadataTags: any = { runtime: 'worker-runtime' };
|
|
51
|
+
private _signalTelemetryEnabled: boolean = false;
|
|
44
52
|
|
|
45
53
|
constructor(
|
|
46
54
|
private readonly _configProvider: () => MaybePromise<Config>,
|
|
@@ -68,7 +76,7 @@ export class WorkerRuntime {
|
|
|
68
76
|
this._clientServices.initialize({
|
|
69
77
|
config: this._config,
|
|
70
78
|
signalManager: signals
|
|
71
|
-
? new WebsocketSignalManager(signals)
|
|
79
|
+
? new WebsocketSignalManager(signals, () => (this._signalTelemetryEnabled ? this._signalMetadataTags : {}))
|
|
72
80
|
: new MemorySignalManager(new MemorySignalManagerContext()), // TODO(dmaretskyi): Inject this context.
|
|
73
81
|
transportFactory: this._transportFactory,
|
|
74
82
|
});
|
|
@@ -76,6 +84,13 @@ export class WorkerRuntime {
|
|
|
76
84
|
await this._clientServices.open(new Context());
|
|
77
85
|
this._ready.wake(undefined);
|
|
78
86
|
log('started');
|
|
87
|
+
setIdentityTags({
|
|
88
|
+
identityService: this._clientServices.services.IdentityService!,
|
|
89
|
+
devicesService: this._clientServices.services.DevicesService!,
|
|
90
|
+
setTag: (k: string, v: string) => {
|
|
91
|
+
this._signalMetadataTags[k] = v;
|
|
92
|
+
},
|
|
93
|
+
});
|
|
79
94
|
} catch (err: any) {
|
|
80
95
|
this._ready.wake(err);
|
|
81
96
|
log.error('starting', err);
|
|
@@ -112,6 +127,16 @@ export class WorkerRuntime {
|
|
|
112
127
|
});
|
|
113
128
|
|
|
114
129
|
await session.open();
|
|
130
|
+
// A worker can only service one origin currently
|
|
131
|
+
invariant(
|
|
132
|
+
!this._signalMetadataTags.origin || this._signalMetadataTags.origin === session.origin,
|
|
133
|
+
`worker origin changed from ${this._signalMetadataTags.origin} to ${session.origin}?`,
|
|
134
|
+
);
|
|
135
|
+
if (session.observabilityGroup) {
|
|
136
|
+
this._signalMetadataTags.group = session.observabilityGroup;
|
|
137
|
+
}
|
|
138
|
+
this._signalTelemetryEnabled = session.signalTelemetryEnabled ?? false;
|
|
139
|
+
this._signalMetadataTags.origin = session.origin;
|
|
115
140
|
this._sessions.add(session);
|
|
116
141
|
|
|
117
142
|
this._reconnectWebrtc();
|
|
@@ -41,6 +41,10 @@ export class WorkerSession {
|
|
|
41
41
|
@logInfo
|
|
42
42
|
public origin?: string;
|
|
43
43
|
|
|
44
|
+
// TODO(nf): factor out?
|
|
45
|
+
public observabilityGroup?: string;
|
|
46
|
+
public signalTelemetryEnabled?: boolean;
|
|
47
|
+
|
|
44
48
|
@logInfo
|
|
45
49
|
public lockKey?: string;
|
|
46
50
|
|
|
@@ -91,6 +95,8 @@ export class WorkerSession {
|
|
|
91
95
|
start: async (request) => {
|
|
92
96
|
this.origin = request.origin;
|
|
93
97
|
this.lockKey = request.lockKey;
|
|
98
|
+
this.observabilityGroup = request.observabilityGroup;
|
|
99
|
+
this.signalTelemetryEnabled = request.signalTelemetryEnabled;
|
|
94
100
|
this._startTrigger.wake();
|
|
95
101
|
},
|
|
96
102
|
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const DXOS_VERSION = "0.4.10-main.
|
|
1
|
+
export const DXOS_VERSION = "0.4.10-main.f68a1ca";
|