@dxos/client-services 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef
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-CK3KJB3B.mjs → chunk-KW4WMU5R.mjs} +1310 -3084
- package/dist/lib/browser/chunk-KW4WMU5R.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NQSC7HOE.mjs → chunk-XJRPB3GA.mjs} +1 -1
- package/dist/lib/browser/index.mjs +100 -197
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/packlets/diagnostics/browser-diagnostics-broadcast.mjs +1 -6
- package/dist/lib/browser/packlets/diagnostics/browser-diagnostics-broadcast.mjs.map +2 -2
- package/dist/lib/browser/packlets/diagnostics/diagnostics-broadcast.mjs +1 -1
- package/dist/lib/browser/packlets/locks/browser.mjs +9 -49
- package/dist/lib/browser/packlets/locks/browser.mjs.map +2 -2
- package/dist/lib/browser/packlets/locks/node.mjs +4 -22
- package/dist/lib/browser/packlets/locks/node.mjs.map +2 -2
- package/dist/lib/browser/testing/index.mjs +7 -27
- package/dist/lib/browser/testing/index.mjs.map +2 -2
- package/dist/lib/node-esm/{chunk-PKEGMOQ4.mjs → chunk-2DT3MZRL.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-WHBWCIEN.mjs → chunk-NDMKP2CH.mjs} +1310 -3084
- package/dist/lib/node-esm/chunk-NDMKP2CH.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +100 -197
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/packlets/diagnostics/browser-diagnostics-broadcast.mjs +1 -6
- package/dist/lib/node-esm/packlets/diagnostics/browser-diagnostics-broadcast.mjs.map +2 -2
- package/dist/lib/node-esm/packlets/diagnostics/diagnostics-broadcast.mjs +1 -1
- package/dist/lib/node-esm/packlets/locks/browser.mjs +9 -49
- package/dist/lib/node-esm/packlets/locks/browser.mjs.map +2 -2
- package/dist/lib/node-esm/packlets/locks/node.mjs +4 -22
- package/dist/lib/node-esm/packlets/locks/node.mjs.map +2 -2
- package/dist/lib/node-esm/testing/index.mjs +7 -27
- package/dist/lib/node-esm/testing/index.mjs.map +2 -2
- package/dist/types/src/packlets/agents/edge-agent-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/agents/edge-agent-service.d.ts +2 -1
- package/dist/types/src/packlets/agents/edge-agent-service.d.ts.map +1 -1
- package/dist/types/src/packlets/devices/devices-service.d.ts.map +1 -1
- package/dist/types/src/packlets/devtools/devtools.d.ts.map +1 -1
- package/dist/types/src/packlets/devtools/feeds.d.ts.map +1 -1
- package/dist/types/src/packlets/devtools/keys.d.ts.map +1 -1
- package/dist/types/src/packlets/devtools/metadata.d.ts.map +1 -1
- package/dist/types/src/packlets/devtools/network.d.ts.map +1 -1
- package/dist/types/src/packlets/devtools/spaces.d.ts.map +1 -1
- package/dist/types/src/packlets/diagnostics/browser-diagnostics-broadcast.d.ts.map +1 -1
- package/dist/types/src/packlets/diagnostics/diagnostics-broadcast.d.ts.map +1 -1
- package/dist/types/src/packlets/diagnostics/diagnostics-collector.d.ts.map +1 -1
- package/dist/types/src/packlets/diagnostics/diagnostics.d.ts +2 -3
- package/dist/types/src/packlets/diagnostics/diagnostics.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/authenticator.d.ts.map +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.map +1 -1
- package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts +2 -2
- package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/identity-service.d.ts +6 -5
- package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
- package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts +2 -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 +1 -1
- package/dist/types/src/packlets/invitations/edge-invitation-handler.d.ts.map +1 -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.map +1 -1
- package/dist/types/src/packlets/invitations/invitation-protocol.d.ts +5 -1
- package/dist/types/src/packlets/invitations/invitation-protocol.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitation-state.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitation-topology.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitations-manager.d.ts +1 -1
- package/dist/types/src/packlets/invitations/invitations-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/invitations-service.d.ts +3 -3
- package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts +2 -1
- package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
- package/dist/types/src/packlets/invitations/utils.d.ts.map +1 -1
- package/dist/types/src/packlets/locks/browser.d.ts.map +1 -1
- package/dist/types/src/packlets/locks/node.d.ts.map +1 -1
- package/dist/types/src/packlets/logging/logging-service.d.ts.map +1 -1
- package/dist/types/src/packlets/network/network-service.d.ts +5 -4
- package/dist/types/src/packlets/network/network-service.d.ts.map +1 -1
- package/dist/types/src/packlets/services/client-rpc-server.d.ts +3 -3
- package/dist/types/src/packlets/services/client-rpc-server.d.ts.map +1 -1
- package/dist/types/src/packlets/services/feed-syncer.d.ts +1 -1
- package/dist/types/src/packlets/services/feed-syncer.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-context.d.ts +1 -2
- package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-host.d.ts +1 -2
- package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
- package/dist/types/src/packlets/services/service-registry.d.ts.map +1 -1
- package/dist/types/src/packlets/services/util.d.ts.map +1 -1
- package/dist/types/src/packlets/space-export/archive-format.d.ts +9 -0
- package/dist/types/src/packlets/space-export/archive-format.d.ts.map +1 -0
- package/dist/types/src/packlets/space-export/index.d.ts +4 -1
- package/dist/types/src/packlets/space-export/index.d.ts.map +1 -1
- package/dist/types/src/packlets/space-export/serialized-space-reader.d.ts +23 -0
- package/dist/types/src/packlets/space-export/serialized-space-reader.d.ts.map +1 -0
- package/dist/types/src/packlets/space-export/serialized-space-writer.d.ts +36 -0
- package/dist/types/src/packlets/space-export/serialized-space-writer.d.ts.map +1 -0
- package/dist/types/src/packlets/space-export/space-archive-reader.d.ts.map +1 -1
- package/dist/types/src/packlets/space-export/space-archive-writer.d.ts +1 -1
- package/dist/types/src/packlets/space-export/space-archive-writer.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/automerge-space-state.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/data-space-manager.d.ts +1 -2
- package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/data-space.d.ts +2 -1
- package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/edge-feed-replicator.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/epoch-migrations.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/genesis.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/notarization-plugin.d.ts +1 -4
- package/dist/types/src/packlets/spaces/notarization-plugin.d.ts.map +1 -1
- package/dist/types/src/packlets/spaces/spaces-service.d.ts +9 -6
- package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
- package/dist/types/src/packlets/storage/level.d.ts.map +1 -1
- package/dist/types/src/packlets/storage/profile-archive.d.ts.map +1 -1
- package/dist/types/src/packlets/storage/storage.d.ts.map +1 -1
- package/dist/types/src/packlets/storage/util.d.ts.map +1 -1
- package/dist/types/src/packlets/system/system-service.d.ts +1 -1
- package/dist/types/src/packlets/system/system-service.d.ts.map +1 -1
- package/dist/types/src/packlets/testing/credential-utils.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.map +1 -1
- package/dist/types/src/packlets/worker/worker-runtime.d.ts +11 -1
- package/dist/types/src/packlets/worker/worker-runtime.d.ts.map +1 -1
- package/dist/types/src/packlets/worker/worker-session.d.ts +0 -2
- package/dist/types/src/packlets/worker/worker-session.d.ts.map +1 -1
- package/dist/types/src/testing/setup.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +39 -46
- package/src/packlets/agents/edge-agent-service.ts +3 -2
- package/src/packlets/diagnostics/diagnostics.ts +1 -2
- package/src/packlets/identity/identity-manager.ts +2 -4
- package/src/packlets/identity/identity-service.ts +12 -9
- package/src/packlets/identity/identity.ts +2 -2
- package/src/packlets/invitations/device-invitation-protocol.ts +3 -1
- package/src/packlets/invitations/edge-invitation-handler.ts +5 -2
- package/src/packlets/invitations/invitation-host-extension.ts +7 -10
- package/src/packlets/invitations/invitation-protocol.ts +5 -1
- package/src/packlets/invitations/invitation-state.ts +1 -15
- package/src/packlets/invitations/invitations-handler.ts +64 -12
- package/src/packlets/invitations/invitations-manager.ts +6 -4
- package/src/packlets/invitations/invitations-service.ts +6 -6
- package/src/packlets/invitations/space-invitation-protocol.ts +3 -3
- package/src/packlets/logging/logging-service.ts +15 -15
- package/src/packlets/network/network-service.ts +9 -8
- package/src/packlets/services/client-rpc-server.ts +15 -12
- package/src/packlets/services/service-context.ts +12 -15
- package/src/packlets/services/service-host.ts +8 -19
- package/src/packlets/space-export/archive-format.ts +42 -0
- package/src/packlets/space-export/index.ts +4 -1
- package/src/packlets/space-export/serialized-space-reader.ts +111 -0
- package/src/packlets/space-export/serialized-space-writer.ts +253 -0
- package/src/packlets/space-export/space-archive-writer.ts +2 -1
- package/src/packlets/space-export/space-archive.test.ts +175 -1
- package/src/packlets/spaces/data-space-manager.ts +17 -19
- package/src/packlets/spaces/data-space.ts +9 -7
- package/src/packlets/spaces/edge-feed-replicator.ts +1 -0
- package/src/packlets/spaces/spaces-service.test.ts +9 -4
- package/src/packlets/spaces/spaces-service.ts +91 -16
- package/src/packlets/worker/worker-runtime.ts +38 -4
- package/src/packlets/worker/worker-session.ts +4 -10
- package/src/version.ts +1 -1
- package/dist/lib/browser/chunk-CK3KJB3B.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WHBWCIEN.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-NQSC7HOE.mjs.map → chunk-XJRPB3GA.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-PKEGMOQ4.mjs.map → chunk-2DT3MZRL.mjs.map} +0 -0
|
@@ -65,12 +65,7 @@ var createCollectDiagnosticsBroadcastHandler = (systemService) => {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
} catch (error) {
|
|
68
|
-
log.catch(error, void 0, {
|
|
69
|
-
F: __dxlog_file,
|
|
70
|
-
L: 77,
|
|
71
|
-
S: void 0,
|
|
72
|
-
C: (f, a) => f(...a)
|
|
73
|
-
});
|
|
68
|
+
log.catch(error, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 73, S: void 0 });
|
|
74
69
|
}
|
|
75
70
|
};
|
|
76
71
|
},
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/packlets/diagnostics/browser-diagnostics-broadcast.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { log } from '@dxos/log';\nimport { type SystemService } from '@dxos/protocols/proto/dxos/client/services';\n\nimport {\n type CollectDiagnosticsBroadcastHandler,\n type CollectDiagnosticsBroadcastSender,\n} from './diagnostics-collector';\n\nconst CHANNEL_NAME = 'dxos.diagnostics.broadcast';\n\nenum MessageType {\n PROBE = 'probe',\n PROBE_ACK = 'probe-ack',\n REQUEST_DIAGNOSTICS = 'request-diagnostics',\n RECEIVE_DIAGNOSTICS = 'receive-diagnostics',\n}\n\ninterface Message {\n type: MessageType;\n payload?: any;\n}\n\nexport const createCollectDiagnosticsBroadcastSender = (): CollectDiagnosticsBroadcastSender => {\n return {\n broadcastDiagnosticsRequest: async () => {\n let expectedResponse = MessageType.PROBE_ACK;\n let channel: BroadcastChannel | undefined;\n try {\n const trigger = new Trigger<Message>();\n channel = new BroadcastChannel(CHANNEL_NAME);\n channel.onmessage = (msg) => {\n if (expectedResponse === msg.data.type) {\n trigger.wake(msg.data);\n }\n };\n channel.postMessage({ type: MessageType.PROBE });\n await trigger.wait({ timeout: 200 });\n expectedResponse = MessageType.RECEIVE_DIAGNOSTICS;\n trigger.reset();\n channel.postMessage({ type: MessageType.REQUEST_DIAGNOSTICS });\n const diagnostics = await trigger.wait({ timeout: 5000 });\n return diagnostics.payload;\n } catch (e) {\n const errorDescription = e instanceof Error ? e.message : JSON.stringify(e);\n return { expectedResponse, errorDescription };\n } finally {\n safeClose(channel);\n }\n },\n };\n};\n\nexport const createCollectDiagnosticsBroadcastHandler = (\n systemService: SystemService,\n): CollectDiagnosticsBroadcastHandler => {\n let channel: BroadcastChannel | undefined;\n return {\n start: () => {\n channel = new BroadcastChannel(CHANNEL_NAME);\n channel.onmessage = async (message) => {\n try {\n if (message.data.type === MessageType.PROBE) {\n channel?.postMessage({ type: MessageType.PROBE_ACK });\n } else if (message.data.type === MessageType.REQUEST_DIAGNOSTICS) {\n const diagnostics = await systemService.getDiagnostics({});\n channel?.postMessage({\n type: MessageType.RECEIVE_DIAGNOSTICS,\n payload: diagnostics,\n });\n }\n } catch (error) {\n log.catch(error);\n }\n };\n },\n stop: () => {\n safeClose(channel);\n channel = undefined;\n },\n };\n};\n\nconst safeClose = (channel?: BroadcastChannel) => {\n try {\n channel?.close();\n } catch (e) {\n // ignored\n }\n};\n"],
|
|
5
|
-
"mappings": ";;;;AAIA,SAASA,eAAe;AACxB,SAASC,WAAW
|
|
6
|
-
"names": ["Trigger", "log", "CHANNEL_NAME", "
|
|
5
|
+
"mappings": ";;;;AAIA,SAASA,eAAe;AACxB,SAASC,WAAW;AAQpB,IAAA,eAAMC;;IAgBFC,0CAA6B,MAAA;;iCAEvBC,YAAAA;AACJ,UAAI,mBAAA;UACF;UACAA;AACAA,cAAAA,UAAQC,IAAY,QAACC;kBACfC,IAAAA,iBAAqBD,YAAa;gBACpCE,YAAY,CAACF,QAAIG;AACnB,cAAA,qBAAA,IAAA,KAAA,MAAA;AACF,oBAAA,KAAA,IAAA,IAAA;UACAL;;AAA8C,gBAAA,YAAA;UAC9C,MAAMI;;AAA4B,cAAA,QAAA,KAAA;UAClCD,SAAAA;QACAC,CAAAA;AACAJ,2BAAmB;gBAAO,MAAA;AAAkC,gBAAA,YAAA;UAC5D,MAAMM;;AAAiD,cAAA,cAAA,MAAA,QAAA,KAAA;UACvD,SAAOA;QACP,CAAA;AACA,eAAMC,YAAAA;eACN,GAAO;cAAEJ,mBAAAA,aAAAA,QAAAA,EAAAA,UAAAA,KAAAA,UAAAA,CAAAA;eAAkBI;UAAiB;UAC9C;QACEC;MACF,UAAA;AACF,kBAAA,OAAA;MACF;IACA;EAEF;;AAIE,IAAO,2CAAA,CAAA,kBAAA;MACLC;;WAEET,MAAAA;gBACM,IAAA,iBAAA,YAAA;cACF,YAAYK,OAAKK,YAAI;;sBACQ,KAAA,SAAA,SAAA;AAAwB,qBAAA,YAAA;cAC9C,MAAIC;YACT,CAAA;qBACAX,QAASY,KAAAA,SAAY,uBAAA;kBACnBF,cAAI,MAAA,cAAA,eAAA,CAAA,CAAA;qBACJG,YAASP;cACX,MAAA;cACF,SAAA;YACA,CAAOQ;UACPC;QACF,SAAA,OAAA;AACF,cAAA,MAAA,OAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,OAAA,CAAA;QACF;MACAC;;UAEEhB,MAAAA;AACF,gBAAA,OAAA;AACF,gBAAA;IACA;EAEF;;gBAEaiB,CAAAA,YAAAA;AACX,MAAE;AACA,aAAU,MAAA;EACZ,SAAA,GAAA;;;",
|
|
6
|
+
"names": ["Trigger", "log", "CHANNEL_NAME", "broadcastDiagnosticsRequest", "channel", "onmessage", "msg", "expectedResponse", "trigger", "data", "diagnostics", "errorDescription", "safeClose", "start", "type", "message", "postMessage", "payload", "error", "log", "stop", "close"]
|
|
7
7
|
}
|
|
@@ -2,7 +2,7 @@ import "@dxos/node-std/globals";
|
|
|
2
2
|
import {
|
|
3
3
|
createCollectDiagnosticsBroadcastHandler,
|
|
4
4
|
createCollectDiagnosticsBroadcastSender
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-XJRPB3GA.mjs";
|
|
6
6
|
import "../../chunk-QCWEHHJW.mjs";
|
|
7
7
|
export {
|
|
8
8
|
createCollectDiagnosticsBroadcastHandler,
|
|
@@ -5,13 +5,13 @@ import "../../chunk-QCWEHHJW.mjs";
|
|
|
5
5
|
import { Trigger, asyncTimeout } from "@dxos/async";
|
|
6
6
|
import { RESOURCE_LOCK_TIMEOUT } from "@dxos/client-protocol";
|
|
7
7
|
import { log, logInfo } from "@dxos/log";
|
|
8
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/locks/browser.ts";
|
|
8
9
|
function _ts_decorate(decorators, target, key, desc) {
|
|
9
10
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
10
11
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
11
12
|
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;
|
|
12
13
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
14
|
}
|
|
14
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/locks/browser.ts";
|
|
15
15
|
var Lock = class {
|
|
16
16
|
_broadcastChannel = new BroadcastChannel("vault-resource-lock");
|
|
17
17
|
_lockKey;
|
|
@@ -32,33 +32,13 @@ var Lock = class {
|
|
|
32
32
|
message: "acquiring"
|
|
33
33
|
});
|
|
34
34
|
try {
|
|
35
|
-
log("aquiring lock...", void 0, {
|
|
36
|
-
F: __dxlog_file,
|
|
37
|
-
L: 42,
|
|
38
|
-
S: this,
|
|
39
|
-
C: (f, a) => f(...a)
|
|
40
|
-
});
|
|
35
|
+
log("aquiring lock...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 39, S: this });
|
|
41
36
|
await asyncTimeout(this._requestLock(), RESOURCE_LOCK_TIMEOUT);
|
|
42
|
-
log("acquired lock", void 0, {
|
|
43
|
-
F: __dxlog_file,
|
|
44
|
-
L: 44,
|
|
45
|
-
S: this,
|
|
46
|
-
C: (f, a) => f(...a)
|
|
47
|
-
});
|
|
37
|
+
log("acquired lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 41, S: this });
|
|
48
38
|
} catch {
|
|
49
|
-
log("stealing lock...", void 0, {
|
|
50
|
-
F: __dxlog_file,
|
|
51
|
-
L: 46,
|
|
52
|
-
S: this,
|
|
53
|
-
C: (f, a) => f(...a)
|
|
54
|
-
});
|
|
39
|
+
log("stealing lock...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 43, S: this });
|
|
55
40
|
await this._requestLock(true);
|
|
56
|
-
log("stolen lock", void 0, {
|
|
57
|
-
F: __dxlog_file,
|
|
58
|
-
L: 48,
|
|
59
|
-
S: this,
|
|
60
|
-
C: (f, a) => f(...a)
|
|
61
|
-
});
|
|
41
|
+
log("stolen lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 45, S: this });
|
|
62
42
|
}
|
|
63
43
|
}
|
|
64
44
|
async release() {
|
|
@@ -72,12 +52,7 @@ var Lock = class {
|
|
|
72
52
|
async _requestLock(steal = false) {
|
|
73
53
|
log("requesting lock...", {
|
|
74
54
|
steal
|
|
75
|
-
}, {
|
|
76
|
-
F: __dxlog_file,
|
|
77
|
-
L: 63,
|
|
78
|
-
S: this,
|
|
79
|
-
C: (f, a) => f(...a)
|
|
80
|
-
});
|
|
55
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 57, S: this });
|
|
81
56
|
const acquired = new Trigger();
|
|
82
57
|
void navigator.locks.request(this._lockKey, {
|
|
83
58
|
steal
|
|
@@ -86,31 +61,16 @@ var Lock = class {
|
|
|
86
61
|
acquired.wake();
|
|
87
62
|
this._releaseTrigger = new Trigger();
|
|
88
63
|
await this._releaseTrigger.wait();
|
|
89
|
-
log("releasing lock...", void 0, {
|
|
90
|
-
F: __dxlog_file,
|
|
91
|
-
L: 72,
|
|
92
|
-
S: this,
|
|
93
|
-
C: (f, a) => f(...a)
|
|
94
|
-
});
|
|
64
|
+
log("releasing lock...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 68, S: this });
|
|
95
65
|
await this._onRelease?.();
|
|
96
|
-
log("released lock", void 0, {
|
|
97
|
-
F: __dxlog_file,
|
|
98
|
-
L: 74,
|
|
99
|
-
S: this,
|
|
100
|
-
C: (f, a) => f(...a)
|
|
101
|
-
});
|
|
66
|
+
log("released lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 70, S: this });
|
|
102
67
|
}).catch(async () => {
|
|
103
68
|
await this._onRelease?.();
|
|
104
69
|
});
|
|
105
70
|
await acquired.wait();
|
|
106
71
|
log("recieved lock", {
|
|
107
72
|
steal
|
|
108
|
-
}, {
|
|
109
|
-
F: __dxlog_file,
|
|
110
|
-
L: 81,
|
|
111
|
-
S: this,
|
|
112
|
-
C: (f, a) => f(...a)
|
|
113
|
-
});
|
|
73
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 75, S: this });
|
|
114
74
|
}
|
|
115
75
|
};
|
|
116
76
|
_ts_decorate([
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/packlets/locks/browser.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Trigger, asyncTimeout } from '@dxos/async';\nimport { RESOURCE_LOCK_TIMEOUT } from '@dxos/client-protocol';\nimport { log, logInfo } from '@dxos/log';\n\nimport { type ResourceLock, type ResourceLockOptions } from './resource-lock';\n\nenum Message {\n ACQUIRING = 'acquiring',\n}\n\n// TODO(mykola): Factor out.\n// TODO(burdon): Extend to support locking for web and NodeJS (use npm lockfile). Use to lock agents.\nexport class Lock implements ResourceLock {\n private readonly _broadcastChannel = new BroadcastChannel('vault-resource-lock');\n private readonly _lockKey: string;\n private readonly _onAcquire: ResourceLockOptions['onAcquire'];\n private readonly _onRelease: ResourceLockOptions['onRelease'];\n private _releaseTrigger = new Trigger();\n\n constructor({ lockKey, onAcquire, onRelease }: ResourceLockOptions) {\n this._lockKey = lockKey;\n this._onAcquire = onAcquire;\n this._onRelease = onRelease;\n this._broadcastChannel.onmessage = this._onMessage.bind(this);\n }\n\n @logInfo\n get lockKey() {\n return this._lockKey;\n }\n\n async acquire(): Promise<void> {\n this._broadcastChannel.postMessage({\n message: Message.ACQUIRING,\n });\n\n try {\n log('aquiring lock...');\n await asyncTimeout(this._requestLock(), RESOURCE_LOCK_TIMEOUT);\n log('acquired lock');\n } catch {\n log('stealing lock...');\n await this._requestLock(true);\n log('stolen lock');\n }\n }\n\n async release(): Promise<void> {\n this._releaseTrigger.wake();\n }\n\n private _onMessage(event: MessageEvent<any>): void {\n if (event.data.message === Message.ACQUIRING) {\n this._releaseTrigger.wake();\n }\n }\n\n private async _requestLock(steal = false): Promise<void> {\n log('requesting lock...', { steal });\n const acquired = new Trigger();\n\n void navigator.locks\n .request(this._lockKey, { steal }, async () => {\n await this._onAcquire?.();\n acquired.wake();\n this._releaseTrigger = new Trigger();\n await this._releaseTrigger.wait();\n log('releasing lock...');\n await this._onRelease?.();\n log('released lock');\n })\n .catch(async () => {\n await this._onRelease?.();\n });\n\n await acquired.wait();\n log('recieved lock', { steal });\n }\n}\n\n// TODO(mykola): Implement.\nexport const isLocked = (lockPath: string) => {\n throw new Error('Not implemented');\n};\n"],
|
|
5
|
-
"mappings": ";;;;
|
|
6
|
-
"names": ["
|
|
5
|
+
"mappings": ";;;;AAKA,SAASA,SAAAA,oBAA6B;AACtC,SAASC,6BAAoB;AAI7B,SAAKC,KAAAA,eAAAA;AAVL,IAAE,eAAA;;;;;;AAIF;AAamBC,IAAAA,OAAAA,MAAAA;EACAC,oBAAiB,IAAA,iBAAA,qBAAA;EACjBC;EACAC;EACTC;EAER,kBAAcC,IAAO,QAAEC;cAChBL,EAAAA,SAAWI,WAAAA,UAAAA,GAAAA;AAChB,SAAKH,WAAU;AACf,SAAKC,aAAaI;AAClB,SAAKP,aAAAA;AACP,SAAA,kBAAA,YAAA,KAAA,WAAA,KAAA,IAAA;EAEA;MAEE,UAAO;AACT,WAAA,KAAA;EAEA;QACE,UAAKA;SACHQ,kBAAO,YAAA;MACT,SAAA;IAEA,CAAA;QACEC;AACA,UAAA,oBAAuB,QAACC,EAAAA,YAAgBC,YAAAA,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AACxCF,YAAI,aAAA,KAAA,aAAA,GAAA,qBAAA;AACJ,UAAA,iBAAM,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;YACF;AACJ,UAAA,oBAAuB,QAAC,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AACxBA,YAAI,KAAA,aAAA,IAAA;AACN,UAAA,eAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;IACF;EAEA;QACE,UAAKL;AACP,SAAA,gBAAA,KAAA;EAEQQ;aACFC,OAAU;QACZ,MAAKT,KAAAA,YAAgBU,aAAI;AAC3B,WAAA,gBAAA,KAAA;IACF;EAEA;QACEL,aAAI,QAAA,OAAsB;QAAEM,sBAAAA;MAAM;IAClC,GAAA,EAAA,YAAMC,YAAeC,GAAAA,cAAAA,GAAAA,IAAAA,GAAAA,KAAAA,CAAAA;AAErB,UAAKC,WAAUC,IACZC,QAAQ;SAAiBL,UAAAA,MAAAA,QAAAA,KAAAA,UAAAA;MAAS;mBAC3B;AACNC,YAAAA,KAASF,aAAI;AACb,eAAKV,KAAAA;AACL,WAAA,kBAAWA,IAAgBiB,QAAI;AAC/BZ,YAAI,KAAA,gBAAA,KAAA;AACJ,UAAA,qBAAqB,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AACrBA,YAAI,KAAA,aAAA;AAELa,UAAK,iBAAC,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;aACL,YAAWnB;AACb,YAAA,KAAA,aAAA;IAEF,CAAA;AACAM,UAAI,SAAA,KAAA;QAAmBM,iBAAAA;MAAM;IAC/B,GAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;EACF;;;;AAEA,GAAA,KAAA,WAAA,WAA2B,IAAA;AAEzB,IAAM,WAAU,CAAA,aAAA;AAChB,QAAA,IAAA,MAAA,iBAAA;;",
|
|
6
|
+
"names": ["RESOURCE_LOCK_TIMEOUT", "log", "Message", "_broadcastChannel", "_lockKey", "_onAcquire", "_onRelease", "_releaseTrigger", "lockKey", "onAcquire", "onRelease", "message", "log", "_requestLock", "RESOURCE_LOCK_TIMEOUT", "_onMessage", "event", "wake", "steal", "acquired", "Trigger", "navigator", "locks", "request", "wait", "catch"]
|
|
7
7
|
}
|
|
@@ -5,13 +5,13 @@ import "../../chunk-QCWEHHJW.mjs";
|
|
|
5
5
|
import { invariant } from "@dxos/invariant";
|
|
6
6
|
import { LockFile } from "@dxos/lock-file";
|
|
7
7
|
import { log, logInfo } from "@dxos/log";
|
|
8
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/locks/node.ts";
|
|
8
9
|
function _ts_decorate(decorators, target, key, desc) {
|
|
9
10
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
10
11
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
11
12
|
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;
|
|
12
13
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
14
|
}
|
|
14
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/client-services/src/packlets/locks/node.ts";
|
|
15
15
|
var Lock = class {
|
|
16
16
|
_lockPath;
|
|
17
17
|
_onAcquire;
|
|
@@ -26,32 +26,14 @@ var Lock = class {
|
|
|
26
26
|
return this._lockPath;
|
|
27
27
|
}
|
|
28
28
|
async acquire() {
|
|
29
|
-
log("acquiring lock...", void 0, {
|
|
30
|
-
F: __dxlog_file,
|
|
31
|
-
L: 32,
|
|
32
|
-
S: this,
|
|
33
|
-
C: (f, a) => f(...a)
|
|
34
|
-
});
|
|
29
|
+
log("acquiring lock...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 28, S: this });
|
|
35
30
|
this._fileHandle = await LockFile.acquire(this._lockPath);
|
|
36
31
|
await this._onAcquire?.();
|
|
37
|
-
log("acquired lock", void 0, {
|
|
38
|
-
F: __dxlog_file,
|
|
39
|
-
L: 37,
|
|
40
|
-
S: this,
|
|
41
|
-
C: (f, a) => f(...a)
|
|
42
|
-
});
|
|
32
|
+
log("acquired lock", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 31, S: this });
|
|
43
33
|
}
|
|
44
34
|
async release() {
|
|
45
35
|
await this._onRelease?.();
|
|
46
|
-
invariant(this._fileHandle, "Lock is not acquired", {
|
|
47
|
-
F: __dxlog_file,
|
|
48
|
-
L: 42,
|
|
49
|
-
S: this,
|
|
50
|
-
A: [
|
|
51
|
-
"this._fileHandle",
|
|
52
|
-
"'Lock is not acquired'"
|
|
53
|
-
]
|
|
54
|
-
});
|
|
36
|
+
invariant(this._fileHandle, "Lock is not acquired", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 35, S: this, A: ["this._fileHandle", "'Lock is not acquired'"] });
|
|
55
37
|
await LockFile.release(this._fileHandle);
|
|
56
38
|
}
|
|
57
39
|
};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/packlets/locks/node.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type FileHandle } from 'node:fs/promises';\n\nimport { invariant } from '@dxos/invariant';\nimport { LockFile } from '@dxos/lock-file';\nimport { log, logInfo } from '@dxos/log';\n\nimport { type ResourceLock, type ResourceLockOptions } from './resource-lock';\n\n// TODO(mykola): Factor out.\nexport class Lock implements ResourceLock {\n private readonly _lockPath: string;\n private readonly _onAcquire: ResourceLockOptions['onAcquire'];\n private readonly _onRelease: ResourceLockOptions['onRelease'];\n private _fileHandle?: FileHandle;\n\n constructor({ lockKey: lockPath, onAcquire, onRelease }: ResourceLockOptions) {\n this._lockPath = lockPath;\n this._onAcquire = onAcquire;\n this._onRelease = onRelease;\n }\n\n @logInfo\n get lockKey() {\n return this._lockPath;\n }\n\n async acquire(): Promise<void> {\n log('acquiring lock...');\n this._fileHandle = await LockFile.acquire(this._lockPath);\n\n await this._onAcquire?.();\n\n log('acquired lock');\n }\n\n async release(): Promise<void> {\n await this._onRelease?.();\n invariant(this._fileHandle, 'Lock is not acquired');\n await LockFile.release(this._fileHandle);\n }\n}\n\nexport const isLocked = (lockPath: string) => LockFile.isLocked(lockPath);\n"],
|
|
5
|
-
"mappings": ";;;;
|
|
6
|
-
"names": ["
|
|
5
|
+
"mappings": ";;;;AAOA,SAASA,iBAAgB;AACzB,SAASC,gBAAY;AAIrB,SAAA,KAAA,eAA4B;AAZ5B,IAAE,eAAA;;;;;;AAMF;AAQmBC,IAAAA,OAAAA,MAAkB;EAClBC;EACAC;EACTC;EAER;cACOH,EAAAA,SAAYI,UAAAA,WAAAA,UAAAA,GAAAA;AACjB,SAAKH,YAAU;AACf,SAAKC,aAAaG;AACpB,SAAA,aAAA;EAEA;MAEE,UAAO;AACT,WAAA,KAAA;EAEA;QACEN,UAAI;AACJ,QAAI,qBAAe,QAAMD,EAAAA,YAAiB,YAAKE,GAAS,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;AAExD,SAAA,cAAWC,MAAU,SAAA,QAAA,KAAA,SAAA;AAErBF,UAAI,KAAA,aAAA;AACN,QAAA,iBAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,KAAA,CAAA;EAEA;QACE,UAAWG;AACXI,UAAAA,KAAU,aAAKH;AACf,cAAML,KAASS,aAAaJ,wBAAW,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,oBAAA,wBAAA,EAAA,CAAA;AACzC,UAAA,SAAA,QAAA,KAAA,WAAA;EACF;;;;AAEA,GAAA,KAAO,WAAMK,WAAYJ,IAAAA;;",
|
|
6
|
+
"names": ["LockFile", "log", "_lockPath", "_onAcquire", "_onRelease", "_fileHandle", "lockPath", "onRelease", "invariant", "release", "isLocked"]
|
|
7
7
|
}
|
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
InvitationsManager,
|
|
7
7
|
ServiceContext,
|
|
8
8
|
SpaceInvitationProtocol
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-KW4WMU5R.mjs";
|
|
10
|
+
import "../chunk-XJRPB3GA.mjs";
|
|
11
11
|
import "../chunk-QCWEHHJW.mjs";
|
|
12
12
|
|
|
13
13
|
// src/packlets/testing/credential-utils.ts
|
|
@@ -66,15 +66,7 @@ var performInvitation = ({ host, guest, guestDeviceProfile, options, hooks, code
|
|
|
66
66
|
if (hooks?.guest?.onConnecting?.(guestObservable)) {
|
|
67
67
|
break;
|
|
68
68
|
}
|
|
69
|
-
invariant(hostInvitation.swarmKey.equals(guestInvitation.swarmKey), void 0, {
|
|
70
|
-
F: __dxlog_file,
|
|
71
|
-
L: 99,
|
|
72
|
-
S: void 0,
|
|
73
|
-
A: [
|
|
74
|
-
"hostInvitation.swarmKey!.equals(guestInvitation.swarmKey!)",
|
|
75
|
-
""
|
|
76
|
-
]
|
|
77
|
-
});
|
|
69
|
+
invariant(hostInvitation.swarmKey.equals(guestInvitation.swarmKey), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 51, S: void 0, A: ["hostInvitation.swarmKey.equals(guestInvitation.swarmKey)", ""] });
|
|
78
70
|
break;
|
|
79
71
|
}
|
|
80
72
|
case Invitation.State.CONNECTED: {
|
|
@@ -205,10 +197,7 @@ var createInvitation = async (host, options) => {
|
|
|
205
197
|
...options ?? {}
|
|
206
198
|
};
|
|
207
199
|
if (host instanceof ServiceContext) {
|
|
208
|
-
return host.invitationsManager.createInvitation(new Context(void 0, {
|
|
209
|
-
F: __dxlog_file,
|
|
210
|
-
L: 233
|
|
211
|
-
}), {
|
|
200
|
+
return host.invitationsManager.createInvitation(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 194 }), {
|
|
212
201
|
kind: Invitation.Kind.SPACE,
|
|
213
202
|
...options
|
|
214
203
|
});
|
|
@@ -218,10 +207,7 @@ var createInvitation = async (host, options) => {
|
|
|
218
207
|
var acceptInvitation = (guest, invitation, guestDeviceProfile) => {
|
|
219
208
|
invitation = sanitizeInvitation(invitation);
|
|
220
209
|
if (guest instanceof ServiceContext) {
|
|
221
|
-
return guest.invitationsManager.acceptInvitation(new Context(void 0, {
|
|
222
|
-
F: __dxlog_file,
|
|
223
|
-
L: 250
|
|
224
|
-
}), {
|
|
210
|
+
return guest.invitationsManager.acceptInvitation(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 204 }), {
|
|
225
211
|
invitation,
|
|
226
212
|
deviceProfile: guestDeviceProfile
|
|
227
213
|
});
|
|
@@ -288,10 +274,7 @@ var createPeers = async (numPeers, signalManagerFactory) => {
|
|
|
288
274
|
const peer = await createServiceContext({
|
|
289
275
|
signalManagerFactory
|
|
290
276
|
});
|
|
291
|
-
await peer.open(new Context2(void 0, {
|
|
292
|
-
F: __dxlog_file2,
|
|
293
|
-
L: 87
|
|
294
|
-
}));
|
|
277
|
+
await peer.open(new Context2(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 67 }));
|
|
295
278
|
return peer;
|
|
296
279
|
}));
|
|
297
280
|
};
|
|
@@ -301,10 +284,7 @@ var createIdentity = async (peer) => {
|
|
|
301
284
|
};
|
|
302
285
|
var TestBuilder = class {
|
|
303
286
|
signalContext = new MemorySignalManagerContext();
|
|
304
|
-
_ctx = new Context2(void 0, {
|
|
305
|
-
F: __dxlog_file2,
|
|
306
|
-
L: 100
|
|
307
|
-
});
|
|
287
|
+
_ctx = new Context2(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 77 });
|
|
308
288
|
createPeer(peerOptions) {
|
|
309
289
|
const peer = new TestPeer(this.signalContext, peerOptions);
|
|
310
290
|
this._ctx.onDispose(async () => peer.destroy());
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/packlets/testing/credential-utils.ts", "../../../../src/packlets/testing/invitation-utils.ts", "../../../../src/packlets/testing/test-builder.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createCredential } from '@dxos/credentials';\nimport { type Signer } from '@dxos/crypto';\nimport { PublicKey } from '@dxos/keys';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nexport const createMockCredential = async ({\n signer,\n issuer,\n}: {\n signer: Signer;\n issuer: PublicKey;\n}): Promise<Credential> =>\n createCredential({\n signer,\n issuer,\n subject: new PublicKey(Buffer.from('test')),\n assertion: {\n '@type': 'example.testing.rpc.MessageWithAny',\n payload: {\n '@type': 'google.protobuf.Any',\n value: Buffer.from('test'),\n },\n },\n });\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Trigger } from '@dxos/async';\nimport { type AuthenticatingInvitation, type CancellableInvitation, InvitationEncoder } from '@dxos/client-protocol';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\nimport { type DeviceProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';\n\nimport { ServiceContext } from '../services';\n\n/**\n * Strip secrets from invitation before giving it to the peer.\n */\nexport const sanitizeInvitation = (invitation: Invitation): Invitation => {\n return InvitationEncoder.decode(InvitationEncoder.encode(invitation));\n};\n\nexport type InvitationHost = {\n share(options?: Partial<Invitation>): CancellableInvitation;\n};\n\nexport type InvitationGuest = {\n join(invitation: Invitation | string, deviceProfile?: DeviceProfileDocument): AuthenticatingInvitation;\n};\n\nexport type PerformInvitationCallbacks<T> = {\n onConnecting?: (value: T) => boolean | void;\n onConnected?: (value: T) => boolean | void;\n onReady?: (value: T) => boolean | void;\n onAuthenticating?: (value: T) => boolean | void;\n onSuccess?: (value: T) => boolean | void;\n onCancelled?: (value: T) => boolean | void;\n onTimeout?: (value: T) => boolean | void;\n onError?: (value: T) => boolean | void;\n};\n\nexport type PerformInvitationProps = {\n host: ServiceContext | InvitationHost;\n guest: ServiceContext | InvitationGuest;\n guestDeviceProfile?: DeviceProfileDocument;\n options?: Partial<Invitation>;\n hooks?: {\n host?: PerformInvitationCallbacks<CancellableInvitation>;\n guest?: PerformInvitationCallbacks<AuthenticatingInvitation>;\n };\n codeInputDelay?: number;\n};\n\nexport type Result = { invitation?: Invitation; error?: Error };\n\n// TODO(burdon): Make async.\n// TODO(burdon): Rename startInvitation.\n/**\n *\n */\nexport const performInvitation = ({\n host,\n guest,\n guestDeviceProfile,\n options,\n hooks,\n codeInputDelay,\n}: PerformInvitationProps): [Promise<Result>, Promise<Result>] => {\n let guestError = false;\n let guestConnected = false;\n let wereConnected = false;\n const hostComplete = new Trigger<Result>();\n const guestComplete = new Trigger<Result>();\n const authCode = new Trigger<string>();\n\n void createInvitation(host, options).then((hostObservable) => {\n hostObservable.subscribe(\n async (hostInvitation: Invitation) => {\n switch (hostInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (guestConnected) {\n if (wereConnected) {\n hostComplete.wake({ invitation: hostInvitation });\n }\n break;\n }\n\n guestConnected = true;\n if (hooks?.host?.onConnecting?.(hostObservable)) {\n break;\n }\n\n const guestObservable = acceptInvitation(guest, hostInvitation, guestDeviceProfile);\n guestObservable.subscribe(\n async (guestInvitation: Invitation) => {\n switch (guestInvitation.state) {\n case Invitation.State.CONNECTING: {\n if (hooks?.guest?.onConnecting?.(guestObservable)) {\n break;\n }\n invariant(hostInvitation.swarmKey!.equals(guestInvitation.swarmKey!));\n break;\n }\n\n case Invitation.State.CONNECTED: {\n hooks?.guest?.onConnected?.(guestObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.guest?.onReady?.(guestObservable)) {\n break;\n }\n const code = await authCode.wait();\n if (codeInputDelay == null) {\n await guestObservable.authenticate(code);\n } else {\n setTimeout(async () => {\n if (!guestError) {\n await guestObservable.authenticate(code);\n }\n }, codeInputDelay);\n }\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.guest?.onAuthenticating?.(guestObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.guest?.onSuccess?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.guest?.onCancelled?.(guestObservable)) {\n break;\n }\n guestComplete.wake({ invitation: guestInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.guest?.onTimeout?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ invitation: guestInvitation });\n }\n }\n },\n (error: Error) => {\n guestError = true;\n if (hooks?.guest?.onError?.(guestObservable)) {\n return;\n }\n guestComplete.wake({ error });\n },\n );\n break;\n }\n\n case Invitation.State.CONNECTED: {\n wereConnected = true;\n hooks?.host?.onConnected?.(hostObservable);\n break;\n }\n\n case Invitation.State.READY_FOR_AUTHENTICATION: {\n if (hooks?.host?.onReady?.(hostObservable)) {\n break;\n }\n if (hostInvitation.authCode) {\n authCode.wake(hostInvitation.authCode);\n }\n break;\n }\n\n case Invitation.State.AUTHENTICATING: {\n hooks?.host?.onAuthenticating?.(hostObservable);\n break;\n }\n\n case Invitation.State.SUCCESS: {\n if (hooks?.host?.onSuccess?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.CANCELLED: {\n if (hooks?.host?.onCancelled?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n\n case Invitation.State.TIMEOUT: {\n if (hooks?.host?.onTimeout?.(hostObservable)) {\n break;\n }\n hostComplete.wake({ invitation: hostInvitation });\n break;\n }\n }\n },\n (error: Error) => {\n if (hooks?.host?.onError?.(hostObservable)) {\n return;\n }\n hostComplete.wake({ error });\n },\n );\n });\n\n return [hostComplete.wait(), guestComplete.wait()];\n};\n\nexport const createInvitation = async (\n host: ServiceContext | InvitationHost,\n options?: Partial<Invitation>,\n): Promise<CancellableInvitation> => {\n options ??= {\n authMethod: Invitation.AuthMethod.NONE,\n ...(options ?? {}),\n };\n\n if (host instanceof ServiceContext) {\n return host.invitationsManager.createInvitation(new Context(), {\n kind: Invitation.Kind.SPACE,\n ...options,\n });\n }\n\n return host.share(options);\n};\n\nexport const acceptInvitation = (\n guest: ServiceContext | InvitationGuest,\n invitation: Invitation,\n guestDeviceProfile?: DeviceProfileDocument,\n): AuthenticatingInvitation => {\n invitation = sanitizeInvitation(invitation);\n\n if (guest instanceof ServiceContext) {\n return guest.invitationsManager.acceptInvitation(new Context(), {\n invitation,\n deviceProfile: guestDeviceProfile,\n });\n }\n\n return guest.join(invitation, guestDeviceProfile);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport * as Reactivity from '@effect/experimental/Reactivity';\nimport * as Layer from 'effect/Layer';\nimport * as ManagedRuntime from 'effect/ManagedRuntime';\n\nimport { type Config } from '@dxos/config';\nimport { Context } from '@dxos/context';\nimport { CredentialGenerator, createCredentialSignerWithChain } from '@dxos/credentials';\nimport { failUndefined } from '@dxos/debug';\nimport { EchoHost, MeshEchoReplicator, MetadataStore, SpaceManager, valueEncoding } from '@dxos/echo-pipeline';\nimport { FeedFactory, FeedStore } from '@dxos/feed-store';\nimport { Keyring } from '@dxos/keyring';\nimport { type LevelDB } from '@dxos/kv-store';\nimport { createTestLevel } from '@dxos/kv-store/testing';\nimport { MemorySignalManager, MemorySignalManagerContext, type SignalManager } from '@dxos/messaging';\nimport { MemoryTransportFactory, SwarmNetworkManager } from '@dxos/network-manager';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\nimport { type Storage, StorageType, createStorage } from '@dxos/random-access-storage';\nimport { layerMemory as sqliteLayerMemory } from '@dxos/sql-sqlite/platform';\nimport * as SqlTransaction from '@dxos/sql-sqlite/SqlTransaction';\nimport { BlobStore } from '@dxos/teleport-extension-object-sync';\n\nimport { InvitationsHandler, InvitationsManager, SpaceInvitationProtocol } from '../invitations';\nimport { ClientServicesHost, ServiceContext, type ServiceContextRuntimeProps } from '../services';\nimport { DataSpaceManager, type DataSpaceManagerRuntimeProps, type SigningContext } from '../spaces';\n\n//\n// TODO(burdon): Replace with test builder.\n//\n\nexport const createServiceHost = (config: Config, signalManagerContext: MemorySignalManagerContext) => {\n return new ClientServicesHost({\n config,\n signalManager: new MemorySignalManager(signalManagerContext),\n transportFactory: MemoryTransportFactory,\n runtime: ManagedRuntime.make(\n SqlTransaction.layer\n .pipe(Layer.provideMerge(sqliteLayerMemory), Layer.provideMerge(Reactivity.layer))\n .pipe(Layer.orDie),\n ).runtimeEffect,\n });\n};\n\nexport const createServiceContext = async ({\n signalManagerFactory = async () => {\n const signalContext = new MemorySignalManagerContext();\n return new MemorySignalManager(signalContext);\n },\n storage = createStorage({ type: StorageType.RAM }),\n runtimeProps,\n}: {\n signalManagerFactory?: () => Promise<SignalManager>;\n storage?: Storage;\n runtimeProps?: ServiceContextRuntimeProps;\n} = {}) => {\n const signalManager = await signalManagerFactory();\n const networkManager = new SwarmNetworkManager({\n signalManager,\n transportFactory: MemoryTransportFactory,\n });\n const level = createTestLevel();\n await level.open();\n\n const runtime = ManagedRuntime.make(\n SqlTransaction.layer\n .pipe(Layer.provideMerge(sqliteLayerMemory), Layer.provideMerge(Reactivity.layer))\n .pipe(Layer.orDie),\n ).runtimeEffect;\n\n return new ServiceContext(storage, level, networkManager, signalManager, undefined, undefined, runtime, {\n invitationConnectionDefaultProps: { teleport: { controlHeartbeatInterval: 200 } },\n ...runtimeProps,\n });\n};\n\nexport const createPeers = async (numPeers: number, signalManagerFactory?: () => Promise<SignalManager>) => {\n if (!signalManagerFactory) {\n const signalContext = new MemorySignalManagerContext();\n signalManagerFactory = async () => new MemorySignalManager(signalContext);\n }\n return await Promise.all(\n Array.from(Array(numPeers)).map(async () => {\n const peer = await createServiceContext({ signalManagerFactory });\n await peer.open(new Context());\n return peer;\n }),\n );\n};\n\nexport const createIdentity = async (peer: ServiceContext) => {\n await peer.createIdentity();\n return peer;\n};\n\nexport class TestBuilder {\n public readonly signalContext = new MemorySignalManagerContext();\n private readonly _ctx = new Context();\n\n createPeer(peerOptions?: TestPeerOpts): TestPeer {\n const peer = new TestPeer(this.signalContext, peerOptions);\n this._ctx.onDispose(async () => peer.destroy());\n return peer;\n }\n\n async destroy(): Promise<void> {\n await this._ctx.dispose();\n }\n}\n\nexport type TestPeerOpts = {\n dataStore?: StorageType;\n dataSpaceProps?: DataSpaceManagerRuntimeProps;\n};\n\nexport type TestPeerProps = {\n storage?: Storage;\n level?: LevelDB;\n feedStore?: FeedStore<any>;\n metadataStore?: MetadataStore;\n keyring?: Keyring;\n networkManager?: SwarmNetworkManager;\n spaceManager?: SpaceManager;\n dataSpaceManager?: DataSpaceManager;\n signingContext?: SigningContext;\n blobStore?: BlobStore;\n echoHost?: EchoHost;\n meshEchoReplicator?: MeshEchoReplicator;\n invitationsManager?: InvitationsManager;\n};\n\nexport class TestPeer {\n private _props: TestPeerProps = {};\n private readonly _runtime = ManagedRuntime.make(\n SqlTransaction.layer\n .pipe(Layer.provideMerge(sqliteLayerMemory), Layer.provideMerge(Reactivity.layer))\n .pipe(Layer.orDie),\n );\n\n constructor(\n private readonly _signalContext: MemorySignalManagerContext,\n private readonly _opts: TestPeerOpts = { dataStore: StorageType.RAM },\n ) {}\n\n get props() {\n return this._props;\n }\n\n get storage() {\n return (this._props.storage ??= createStorage({ type: this._opts.dataStore }));\n }\n\n get keyring() {\n return (this._props.keyring ??= new Keyring(this.storage.createDirectory('keyring')));\n }\n\n get level() {\n return (this._props.level ??= createTestLevel());\n }\n\n get feedStore() {\n return (this._props.feedStore ??= new FeedStore({\n factory: new FeedFactory({\n root: this.storage.createDirectory('feeds'),\n signer: this.keyring,\n hypercore: {\n valueEncoding,\n },\n }),\n }));\n }\n\n get metadataStore() {\n return (this._props.metadataStore ??= new MetadataStore(this.storage.createDirectory('metadata')));\n }\n\n get blobStore() {\n return (this._props.blobStore ??= new BlobStore(this.storage.createDirectory('blobs')));\n }\n\n get networkManager() {\n return (this._props.networkManager ??= new SwarmNetworkManager({\n signalManager: new MemorySignalManager(this._signalContext),\n transportFactory: MemoryTransportFactory,\n }));\n }\n\n get spaceManager() {\n return (this._props.spaceManager ??= new SpaceManager({\n feedStore: this.feedStore,\n networkManager: this.networkManager,\n metadataStore: this.metadataStore,\n blobStore: this.blobStore,\n }));\n }\n\n get identity() {\n return this._props.signingContext ?? failUndefined();\n }\n\n get echoHost() {\n return (this._props.echoHost ??= new EchoHost({\n kv: this.level,\n runtime: this._runtime.runtimeEffect,\n }));\n }\n\n get meshEchoReplicator() {\n return (this._props.meshEchoReplicator ??= new MeshEchoReplicator());\n }\n\n get dataSpaceManager(): DataSpaceManager {\n return (this._props.dataSpaceManager ??= new DataSpaceManager({\n spaceManager: this.spaceManager,\n metadataStore: this.metadataStore,\n keyring: this.keyring,\n signingContext: this.identity,\n feedStore: this.feedStore,\n echoHost: this.echoHost,\n invitationsManager: this.invitationsManager,\n edgeConnection: undefined,\n meshReplicator: this.meshEchoReplicator,\n echoEdgeReplicator: undefined,\n runtimeProps: this._opts.dataSpaceProps,\n }));\n }\n\n get invitationsManager() {\n return (this._props.invitationsManager ??= new InvitationsManager(\n new InvitationsHandler(this.networkManager),\n (invitation) => {\n if (invitation.kind === Invitation.Kind.SPACE) {\n return new SpaceInvitationProtocol(this.dataSpaceManager, this.identity!, this.keyring, invitation.spaceKey!);\n } else {\n throw new Error('not implemented');\n }\n },\n this.metadataStore,\n ));\n }\n\n async createIdentity(): Promise<void> {\n this._props.signingContext ??= await createSigningContext(this.keyring);\n this.networkManager.setPeerInfo({\n identityKey: this._props.signingContext.identityKey.toHex(),\n peerKey: this._props.signingContext.deviceKey.toHex(),\n });\n }\n\n async destroy(): Promise<void> {\n await this.level.close();\n await this.storage.reset();\n await this._runtime.dispose();\n }\n}\n\nexport const createSigningContext = async (keyring: Keyring): Promise<SigningContext> => {\n const identityKey = await keyring.createKey();\n const deviceKey = await keyring.createKey();\n\n return {\n identityKey,\n deviceKey,\n credentialSigner: createCredentialSignerWithChain(\n keyring,\n {\n credential: await new CredentialGenerator(keyring, identityKey, deviceKey).createDeviceAuthorization(deviceKey),\n },\n deviceKey,\n ),\n recordCredential: async () => {}, // No-op.\n getProfile: () => undefined,\n };\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;AAIA,SAASA,wBAAwB;AAEjC,SAASC,iBAAiB;AAGnB,IAAMC,uBAAuB,OAAO,EACzCC,QACAC,OAAM,
|
|
6
|
-
"names": ["createCredential", "PublicKey", "createMockCredential", "signer", "issuer", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["createCredential", "PublicKey", "createMockCredential", "signer", "issuer", "subject", "Buffer", "from", "assertion", "payload", "value", "Trigger", "InvitationEncoder", "Context", "invariant", "Invitation", "guestConnected", "wereConnected", "guestComplete", "authCode", "Trigger", "createInvitation", "host", "options", "hostObservable", "subscribe", "hostInvitation", "Invitation", "State", "CONNECTING", "hostComplete", "invitation", "guestObservable", "guestInvitation", "hooks", "guest", "invariant", "onConnected", "authenticate", "setTimeout", "codeInputDelay", "onAuthenticating", "error", "guestError", "authMethod", "AuthMethod", "NONE", "acceptInvitation", "ServiceContext", "invitationsManager", "deviceProfile", "guestDeviceProfile", "Reactivity", "Layer", "ManagedRuntime", "Context", "CredentialGenerator", "createCredentialSignerWithChain", "failUndefined", "EchoHost", "MeshEchoReplicator", "MetadataStore", "SpaceManager", "valueEncoding", "FeedFactory", "FeedStore", "Keyring", "createTestLevel", "MemorySignalManager", "MemorySignalManagerContext", "MemoryTransportFactory", "SwarmNetworkManager", "Invitation", "StorageType", "createStorage", "layerMemory", "sqliteLayerMemory", "SqlTransaction", "BlobStore", "__dxlog_file", "config", "signalManager", "MemorySignalManager", "transportFactory", "runtime", "ManagedRuntime", "SqlTransaction", "Layer", "signalContext", "storage", "createStorage", "type", "StorageType", "runtimeProps", "networkManager", "MemoryTransportFactory", "createTestLevel", "ServiceContext", "invitationConnectionDefaultProps", "teleport", "MemorySignalManagerContext", "signalManagerFactory", "Array", "Context", "peer", "_ctx", "createPeer", "peerOptions", "TestPeer", "destroy", "_props", "_runtime", "_signalContext", "props", "keyring", "level", "feedStore", "factory", "root", "createDirectory", "signer", "hypercore", "valueEncoding", "metadataStore", "blobStore", "spaceManager", "identity", "echoHost", "runtimeEffect", "meshEchoReplicator", "dataSpaceManager", "signingContext", "invitationsManager", "edgeConnection", "meshReplicator", "echoEdgeReplicator", "_opts", "kind", "SpaceInvitationProtocol", "spaceKey", "Invitation", "Error", "createIdentity", "identityKey", "toHex", "peerKey", "dispose", "deviceKey", "createKey", "credentialSigner", "recordCredential", "getProfile"]
|
|
7
7
|
}
|