@powerhousedao/reactor 5.1.0-dev.23 → 5.1.0-dev.25
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/client/reactor-client.d.ts +1 -2
- package/dist/src/client/reactor-client.d.ts.map +1 -1
- package/dist/src/client/reactor-client.js.map +1 -1
- package/dist/src/core/reactor-builder.d.ts +4 -7
- package/dist/src/core/reactor-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-builder.js +10 -6
- package/dist/src/core/reactor-builder.js.map +1 -1
- package/dist/src/core/reactor-client-builder.d.ts +2 -1
- package/dist/src/core/reactor-client-builder.d.ts.map +1 -1
- package/dist/src/core/reactor-client-builder.js +1 -0
- package/dist/src/core/reactor-client-builder.js.map +1 -1
- package/dist/src/core/reactor.d.ts +6 -7
- package/dist/src/core/reactor.d.ts.map +1 -1
- package/dist/src/core/reactor.js +18 -8
- package/dist/src/core/reactor.js.map +1 -1
- package/dist/src/core/types.d.ts +19 -7
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/utils.d.ts +1 -2
- package/dist/src/core/utils.d.ts.map +1 -1
- package/dist/src/core/utils.js +1 -1
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/events/types.d.ts +1 -0
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts +10 -1
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.js +137 -195
- package/dist/src/executor/simple-job-executor.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/queue/types.d.ts +2 -0
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/queue/types.js.map +1 -1
- package/dist/src/read-models/coordinator.d.ts +3 -1
- package/dist/src/read-models/coordinator.d.ts.map +1 -1
- package/dist/src/read-models/coordinator.js +8 -7
- package/dist/src/read-models/coordinator.js.map +1 -1
- package/dist/src/shared/types.d.ts +4 -0
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/shared/types.js.map +1 -1
- package/dist/src/signer/passthrough-signer.d.ts +9 -3
- package/dist/src/signer/passthrough-signer.d.ts.map +1 -1
- package/dist/src/signer/passthrough-signer.js +13 -0
- package/dist/src/signer/passthrough-signer.js.map +1 -1
- package/dist/src/signer/types.d.ts +2 -22
- package/dist/src/signer/types.d.ts.map +1 -1
- package/dist/src/subs/subscription-notification-read-model.d.ts +16 -0
- package/dist/src/subs/subscription-notification-read-model.d.ts.map +1 -0
- package/dist/src/subs/subscription-notification-read-model.js +51 -0
- package/dist/src/subs/subscription-notification-read-model.js.map +1 -0
- package/dist/src/sync/channels/composite-channel-factory.d.ts +1 -1
- package/dist/src/sync/channels/composite-channel-factory.d.ts.map +1 -1
- package/dist/src/sync/channels/composite-channel-factory.js +5 -8
- package/dist/src/sync/channels/composite-channel-factory.js.map +1 -1
- package/dist/src/sync/channels/gql-channel.d.ts +8 -0
- package/dist/src/sync/channels/gql-channel.d.ts.map +1 -1
- package/dist/src/sync/channels/gql-channel.js +48 -7
- package/dist/src/sync/channels/gql-channel.js.map +1 -1
- package/dist/src/sync/channels/index.d.ts +1 -1
- package/dist/src/sync/channels/index.d.ts.map +1 -1
- package/dist/src/sync/channels/index.js +1 -1
- package/dist/src/sync/channels/index.js.map +1 -1
- package/dist/src/sync/channels/polling-channel.d.ts +39 -0
- package/dist/src/sync/channels/polling-channel.d.ts.map +1 -0
- package/dist/src/sync/channels/polling-channel.js +70 -0
- package/dist/src/sync/channels/polling-channel.js.map +1 -0
- package/dist/src/sync/channels/utils.d.ts +4 -2
- package/dist/src/sync/channels/utils.d.ts.map +1 -1
- package/dist/src/sync/channels/utils.js +52 -6
- package/dist/src/sync/channels/utils.js.map +1 -1
- package/dist/src/sync/errors.d.ts +1 -1
- package/dist/src/sync/errors.d.ts.map +1 -1
- package/dist/src/sync/errors.js +2 -2
- package/dist/src/sync/errors.js.map +1 -1
- package/dist/src/sync/index.d.ts +2 -2
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/index.js +2 -2
- package/dist/src/sync/index.js.map +1 -1
- package/dist/src/sync/interfaces.d.ts +7 -0
- package/dist/src/sync/interfaces.d.ts.map +1 -1
- package/dist/src/sync/sync-manager.d.ts.map +1 -1
- package/dist/src/sync/sync-manager.js +6 -2
- package/dist/src/sync/sync-manager.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/sync/channels/internal-channel.d.ts +0 -62
- package/dist/src/sync/channels/internal-channel.d.ts.map +0 -1
- package/dist/src/sync/channels/internal-channel.js +0 -113
- package/dist/src/sync/channels/internal-channel.js.map +0 -1
|
@@ -4,11 +4,13 @@ import type { SyncEnvelope } from "../types.js";
|
|
|
4
4
|
* Converts a SyncEnvelope containing operations into a SyncOperation.
|
|
5
5
|
*
|
|
6
6
|
* Extracts the necessary metadata from the envelope's operations to create
|
|
7
|
-
* a sync operation that can be processed by the receiving channel.
|
|
7
|
+
* a sync operation that can be processed by the receiving channel. Also
|
|
8
|
+
* deserializes any signatures from comma-separated strings back to tuples,
|
|
9
|
+
* as GraphQL transport serializes Signature tuples for compatibility.
|
|
8
10
|
*
|
|
9
11
|
* @param envelope - The sync envelope containing operations
|
|
10
12
|
* @param remoteName - The name of the remote this sync operation is associated with
|
|
11
|
-
* @returns A new SyncOperation containing the envelope's operations
|
|
13
|
+
* @returns A new SyncOperation containing the envelope's operations with deserialized signatures
|
|
12
14
|
* @throws Error if envelope has no operations or operations array is empty
|
|
13
15
|
*/
|
|
14
16
|
export declare function envelopeToSyncOperation(envelope: SyncEnvelope, remoteName: string): SyncOperation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAqDhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,aAAa,CA2Bf"}
|
|
@@ -1,26 +1,72 @@
|
|
|
1
1
|
import { SyncOperation } from "../sync-operation.js";
|
|
2
2
|
let syncOpCounter = 0;
|
|
3
|
+
/**
|
|
4
|
+
* Deserializes a signature from a comma-separated string back to a tuple.
|
|
5
|
+
*
|
|
6
|
+
* GraphQL serializes Signature tuples as comma-separated strings for transport.
|
|
7
|
+
* This function converts them back to the expected [string, string, string, string, string] format.
|
|
8
|
+
*/
|
|
9
|
+
function deserializeSignature(sig) {
|
|
10
|
+
if (Array.isArray(sig)) {
|
|
11
|
+
return sig;
|
|
12
|
+
}
|
|
13
|
+
return sig.split(", ");
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Deserializes signatures in an operation's signer context from strings back to tuples.
|
|
17
|
+
*
|
|
18
|
+
* When operations are transported via GraphQL, signatures are serialized as comma-separated
|
|
19
|
+
* strings. This function restores them to the Signature tuple format required for verification.
|
|
20
|
+
*/
|
|
21
|
+
function deserializeOperationSignatures(opWithContext) {
|
|
22
|
+
const signer = opWithContext.operation.action.context?.signer;
|
|
23
|
+
if (!signer?.signatures || signer.signatures.length === 0) {
|
|
24
|
+
return opWithContext;
|
|
25
|
+
}
|
|
26
|
+
const deserializedSignatures = signer.signatures.map(deserializeSignature);
|
|
27
|
+
const deserializedOperation = {
|
|
28
|
+
...opWithContext.operation,
|
|
29
|
+
action: {
|
|
30
|
+
...opWithContext.operation.action,
|
|
31
|
+
context: {
|
|
32
|
+
...opWithContext.operation.action.context,
|
|
33
|
+
signer: {
|
|
34
|
+
...signer,
|
|
35
|
+
signatures: deserializedSignatures,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
...opWithContext,
|
|
42
|
+
operation: deserializedOperation,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
3
45
|
/**
|
|
4
46
|
* Converts a SyncEnvelope containing operations into a SyncOperation.
|
|
5
47
|
*
|
|
6
48
|
* Extracts the necessary metadata from the envelope's operations to create
|
|
7
|
-
* a sync operation that can be processed by the receiving channel.
|
|
49
|
+
* a sync operation that can be processed by the receiving channel. Also
|
|
50
|
+
* deserializes any signatures from comma-separated strings back to tuples,
|
|
51
|
+
* as GraphQL transport serializes Signature tuples for compatibility.
|
|
8
52
|
*
|
|
9
53
|
* @param envelope - The sync envelope containing operations
|
|
10
54
|
* @param remoteName - The name of the remote this sync operation is associated with
|
|
11
|
-
* @returns A new SyncOperation containing the envelope's operations
|
|
55
|
+
* @returns A new SyncOperation containing the envelope's operations with deserialized signatures
|
|
12
56
|
* @throws Error if envelope has no operations or operations array is empty
|
|
13
57
|
*/
|
|
14
58
|
export function envelopeToSyncOperation(envelope, remoteName) {
|
|
15
59
|
if (!envelope.operations || envelope.operations.length === 0) {
|
|
16
60
|
throw new Error("Cannot create SyncOperation from envelope without operations");
|
|
17
61
|
}
|
|
18
|
-
const
|
|
19
|
-
const firstOp =
|
|
62
|
+
const deserializedOperations = envelope.operations.map(deserializeOperationSignatures);
|
|
63
|
+
const firstOp = deserializedOperations[0];
|
|
20
64
|
const documentId = firstOp.context.documentId;
|
|
21
65
|
const branch = firstOp.context.branch;
|
|
22
|
-
const scopes = [
|
|
66
|
+
const scopes = [
|
|
67
|
+
...new Set(deserializedOperations.map((op) => op.context.scope)),
|
|
68
|
+
];
|
|
23
69
|
const syncOpId = `syncop-${envelope.channelMeta.id}-${Date.now()}-${syncOpCounter++}`;
|
|
24
|
-
return new SyncOperation(syncOpId, remoteName, documentId, scopes, branch,
|
|
70
|
+
return new SyncOperation(syncOpId, remoteName, documentId, scopes, branch, deserializedOperations);
|
|
25
71
|
}
|
|
26
72
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,GAAuB;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAS,8BAA8B,CACrC,aAAmC;IAEnC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE3E,MAAM,qBAAqB,GAAc;QACvC,GAAG,aAAa,CAAC,SAAS;QAC1B,MAAM,EAAE;YACN,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM;YACjC,OAAO,EAAE;gBACP,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO;gBACzC,MAAM,EAAE;oBACN,GAAG,MAAM;oBACT,UAAU,EAAE,sBAAsB;iBACnC;aACF;SACF;KACF,CAAC;IAEF,OAAO;QACL,GAAG,aAAa;QAChB,SAAS,EAAE,qBAAqB;KACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAsB,EACtB,UAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IAED,MAAM,sBAAsB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CACpD,8BAA8B,CAC/B,CAAC;IACF,MAAM,OAAO,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,MAAM,GAAG;QACb,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACjE,CAAC;IAEF,MAAM,QAAQ,GAAG,UAAU,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,aAAa,EAAE,EAAE,CAAC;IAEtF,OAAO,IAAI,aAAa,CACtB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,MAAM,EACN,MAAM,EACN,sBAAsB,CACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/sync/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/sync/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC;gBAED,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK;CAMrD"}
|
package/dist/src/sync/errors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export class
|
|
1
|
+
export class PollingChannelError extends Error {
|
|
2
2
|
constructor(message) {
|
|
3
3
|
super(message);
|
|
4
|
-
this.name = "
|
|
4
|
+
this.name = "PollingChannelError";
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
7
|
export class ChannelError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/sync/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/sync/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,MAAM,CAAqB;IAC3B,KAAK,CAAQ;IAEb,YAAY,MAA0B,EAAE,KAAY;QAClD,KAAK,CAAC,gBAAgB,MAAM,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
package/dist/src/sync/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ export type { ChannelConfig, ChannelHealth, SyncOperationErrorType, RemoteFilter
|
|
|
4
4
|
export { ChannelErrorSource, SyncOperationStatus } from "./types.js";
|
|
5
5
|
export { SyncOperation, SyncOperationAggregateError, } from "./sync-operation.js";
|
|
6
6
|
export { Mailbox, type MailboxItem } from "./mailbox.js";
|
|
7
|
-
export { ChannelError,
|
|
8
|
-
export {
|
|
7
|
+
export { ChannelError, PollingChannelError } from "./errors.js";
|
|
8
|
+
export { PollingChannel, GqlChannelFactory, CompositeChannelFactory, } from "./channels/index.js";
|
|
9
9
|
export { SyncManager } from "./sync-manager.js";
|
|
10
10
|
export { SyncBuilder } from "./sync-builder.js";
|
|
11
11
|
export { createIdleHealth, filterOperations } from "./utils.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,MAAM,GACP,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,YAAY,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,MAAM,GACP,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,YAAY,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/src/sync/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { ChannelErrorSource, SyncOperationStatus } from "./types.js";
|
|
2
2
|
export { SyncOperation, SyncOperationAggregateError, } from "./sync-operation.js";
|
|
3
3
|
export { Mailbox } from "./mailbox.js";
|
|
4
|
-
export { ChannelError,
|
|
5
|
-
export {
|
|
4
|
+
export { ChannelError, PollingChannelError } from "./errors.js";
|
|
5
|
+
export { PollingChannel, GqlChannelFactory, CompositeChannelFactory, } from "./channels/index.js";
|
|
6
6
|
export { SyncManager } from "./sync-manager.js";
|
|
7
7
|
export { SyncBuilder } from "./sync-builder.js";
|
|
8
8
|
export { createIdleHealth, filterOperations } from "./utils.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -43,6 +43,13 @@ export interface IChannel {
|
|
|
43
43
|
* Shuts down the channel and prevents further operations.
|
|
44
44
|
*/
|
|
45
45
|
shutdown(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Updates the synchronization cursor for this channel.
|
|
48
|
+
* For polling channels, this also removes acknowledged operations from the outbox.
|
|
49
|
+
*
|
|
50
|
+
* @param cursorOrdinal - The last processed ordinal
|
|
51
|
+
*/
|
|
52
|
+
updateCursor(cursorOrdinal: number): Promise<void>;
|
|
46
53
|
}
|
|
47
54
|
/**
|
|
48
55
|
* Factory for creating channel instances.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/sync/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE9B;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEnC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/sync/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE9B;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEnC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;;OAKG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;OAUG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,kBAAkB,EACjC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,GACnB,QAAQ,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;;;;;OAOG;IACH,QAAQ,IAAI,cAAc,CAAC;IAE3B;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,CAAC,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMzD,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EAGd,MAAM,YAAY,CAAC;AAIpB,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAa;IAE/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;gBAGhD,aAAa,EAAE,kBAAkB,EACjC,aAAa,EAAE,kBAAkB,EACjC,cAAc,EAAE,eAAe,EAC/B,cAAc,EAAE,eAAe,EAC/B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS;IAef,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C9B,QAAQ,IAAI,cAAc;IA2B1B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ/B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IASrB,GAAG,CACP,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,GAAE,YAAwD,EAChE,OAAO,GAAE,aAAkB,EAC3B,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC;YAwDJ,cAAc;IAmDtB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,IAAI,IAAI,MAAM,EAAE;IAIhB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;YAUT,aAAa;CAsD5B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationEventTypes, } from "../events/types.js";
|
|
2
|
-
import { JobStatus, } from "../shared/types.js";
|
|
3
2
|
import { JobAwaiter } from "../shared/awaiter.js";
|
|
3
|
+
import { JobStatus, } from "../shared/types.js";
|
|
4
4
|
import { ChannelError } from "./errors.js";
|
|
5
5
|
import { SyncOperation } from "./sync-operation.js";
|
|
6
6
|
import { ChannelErrorSource, SyncOperationStatus } from "./types.js";
|
|
@@ -186,7 +186,11 @@ export class SyncManager {
|
|
|
186
186
|
if (this.isShutdown) {
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
|
+
const sourceRemote = event.jobMeta?.sourceRemote;
|
|
189
190
|
for (const remote of this.remotes.values()) {
|
|
191
|
+
if (sourceRemote && remote.name === sourceRemote) {
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
190
194
|
const filteredOps = filterOperations(event.operations, remote.filter);
|
|
191
195
|
if (filteredOps.length === 0) {
|
|
192
196
|
continue;
|
|
@@ -215,7 +219,7 @@ export class SyncManager {
|
|
|
215
219
|
const operations = syncOp.operations.map((op) => op.operation);
|
|
216
220
|
let jobInfo;
|
|
217
221
|
try {
|
|
218
|
-
jobInfo = await this.reactor.load(syncOp.documentId, syncOp.branch, operations);
|
|
222
|
+
jobInfo = await this.reactor.load(syncOp.documentId, syncOp.branch, operations, undefined, { sourceRemote: remote.name });
|
|
219
223
|
}
|
|
220
224
|
catch (error) {
|
|
221
225
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../../src/sync/sync-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../../src/sync/sync-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/reactor",
|
|
3
|
-
"version": "5.1.0-dev.
|
|
3
|
+
"version": "5.1.0-dev.25",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/powerhouse-inc/powerhouse",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"kysely": "^0.28.2",
|
|
29
29
|
"kysely-pglite-dialect": "^1.1.1",
|
|
30
30
|
"uuid": "^11.0.5",
|
|
31
|
-
"document-drive": "5.1.0-dev.
|
|
32
|
-
"document-model": "5.1.0-dev.
|
|
31
|
+
"document-drive": "5.1.0-dev.25",
|
|
32
|
+
"document-model": "5.1.0-dev.25"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@vitest/coverage-v8": "^3.2.4",
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { ISyncCursorStorage } from "../../storage/interfaces.js";
|
|
2
|
-
import type { IChannel } from "../interfaces.js";
|
|
3
|
-
import type { SyncOperation } from "../sync-operation.js";
|
|
4
|
-
import { Mailbox } from "../mailbox.js";
|
|
5
|
-
import type { SyncEnvelope } from "../types.js";
|
|
6
|
-
/**
|
|
7
|
-
* In-memory synchronization channel for testing purposes only.
|
|
8
|
-
*
|
|
9
|
-
* InternalChannel enables direct bidirectional communication between two reactor
|
|
10
|
-
* instances without network transport. Channels are wired together by passing
|
|
11
|
-
* a send function that delivers envelopes to the peer's inbox.
|
|
12
|
-
*/
|
|
13
|
-
export declare class InternalChannel implements IChannel {
|
|
14
|
-
readonly inbox: Mailbox<SyncOperation>;
|
|
15
|
-
readonly outbox: Mailbox<SyncOperation>;
|
|
16
|
-
readonly deadLetter: Mailbox<SyncOperation>;
|
|
17
|
-
private readonly channelId;
|
|
18
|
-
private readonly remoteName;
|
|
19
|
-
private readonly cursorStorage;
|
|
20
|
-
private readonly send;
|
|
21
|
-
private isShutdown;
|
|
22
|
-
constructor(channelId: string, remoteName: string, cursorStorage: ISyncCursorStorage, send: (envelope: SyncEnvelope) => void);
|
|
23
|
-
/**
|
|
24
|
-
* Shuts down the channel and prevents further operations.
|
|
25
|
-
*/
|
|
26
|
-
shutdown(): void;
|
|
27
|
-
/**
|
|
28
|
-
* Initializes the channel. For InternalChannel, this is a no-op since
|
|
29
|
-
* in-memory channels don't need remote registration.
|
|
30
|
-
*/
|
|
31
|
-
init(): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Receives a sync envelope from a peer channel.
|
|
34
|
-
*
|
|
35
|
-
* This method is called by the peer's send function to deliver an envelope
|
|
36
|
-
* to this channel's inbox.
|
|
37
|
-
*
|
|
38
|
-
* @param envelope - The sync envelope to receive
|
|
39
|
-
* @throws {InternalChannelError} If channel is shutdown
|
|
40
|
-
*/
|
|
41
|
-
receive(envelope: SyncEnvelope): void;
|
|
42
|
-
/**
|
|
43
|
-
* Updates the synchronization cursor for this channel's remote.
|
|
44
|
-
*
|
|
45
|
-
* Cursors track progress through the operation stream and enable resuming
|
|
46
|
-
* synchronization after restarts. The cursor is exclusive - the next sync
|
|
47
|
-
* will start at cursorOrdinal + 1.
|
|
48
|
-
*
|
|
49
|
-
* @param cursorOrdinal - The last processed ordinal (exclusive)
|
|
50
|
-
*/
|
|
51
|
-
updateCursor(cursorOrdinal: number): Promise<void>;
|
|
52
|
-
/**
|
|
53
|
-
* Handles sync operations added to the outbox by sending them to the peer.
|
|
54
|
-
*
|
|
55
|
-
* This method is called automatically via the outbox.onAdded callback.
|
|
56
|
-
* It converts the sync operation to a SyncEnvelope and sends it via the send function.
|
|
57
|
-
*
|
|
58
|
-
* @param syncOp - The sync operation to transport
|
|
59
|
-
*/
|
|
60
|
-
private handleOutboxAdded;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=internal-channel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal-channel.d.ts","sourceRoot":"","sources":["../../../../src/sync/channels/internal-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,aAAa,CAAC;AAI9D;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,OAAO,CAAC,UAAU,CAAU;gBAG1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,kBAAkB,EACjC,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI;IAiBxC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAcrC;;;;;;;;OAQG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAuB1B"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { ChannelError, InternalChannelError } from "../errors.js";
|
|
2
|
-
import { Mailbox } from "../mailbox.js";
|
|
3
|
-
import { ChannelErrorSource } from "../types.js";
|
|
4
|
-
import { envelopeToSyncOperation } from "./utils.js";
|
|
5
|
-
/**
|
|
6
|
-
* In-memory synchronization channel for testing purposes only.
|
|
7
|
-
*
|
|
8
|
-
* InternalChannel enables direct bidirectional communication between two reactor
|
|
9
|
-
* instances without network transport. Channels are wired together by passing
|
|
10
|
-
* a send function that delivers envelopes to the peer's inbox.
|
|
11
|
-
*/
|
|
12
|
-
export class InternalChannel {
|
|
13
|
-
inbox;
|
|
14
|
-
outbox;
|
|
15
|
-
deadLetter;
|
|
16
|
-
channelId;
|
|
17
|
-
remoteName;
|
|
18
|
-
cursorStorage;
|
|
19
|
-
send;
|
|
20
|
-
isShutdown;
|
|
21
|
-
constructor(channelId, remoteName, cursorStorage, send) {
|
|
22
|
-
this.channelId = channelId;
|
|
23
|
-
this.remoteName = remoteName;
|
|
24
|
-
this.cursorStorage = cursorStorage;
|
|
25
|
-
this.send = send;
|
|
26
|
-
this.isShutdown = false;
|
|
27
|
-
this.inbox = new Mailbox();
|
|
28
|
-
this.outbox = new Mailbox();
|
|
29
|
-
this.deadLetter = new Mailbox();
|
|
30
|
-
this.outbox.onAdded((syncOp) => {
|
|
31
|
-
this.handleOutboxAdded(syncOp);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Shuts down the channel and prevents further operations.
|
|
36
|
-
*/
|
|
37
|
-
shutdown() {
|
|
38
|
-
this.isShutdown = true;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Initializes the channel. For InternalChannel, this is a no-op since
|
|
42
|
-
* in-memory channels don't need remote registration.
|
|
43
|
-
*/
|
|
44
|
-
async init() {
|
|
45
|
-
// No-op for internal channels
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Receives a sync envelope from a peer channel.
|
|
49
|
-
*
|
|
50
|
-
* This method is called by the peer's send function to deliver an envelope
|
|
51
|
-
* to this channel's inbox.
|
|
52
|
-
*
|
|
53
|
-
* @param envelope - The sync envelope to receive
|
|
54
|
-
* @throws {InternalChannelError} If channel is shutdown
|
|
55
|
-
*/
|
|
56
|
-
receive(envelope) {
|
|
57
|
-
if (this.isShutdown) {
|
|
58
|
-
throw new InternalChannelError(`Channel ${this.channelId} is shutdown and cannot receive envelopes`);
|
|
59
|
-
}
|
|
60
|
-
if (envelope.type === "operations" && envelope.operations) {
|
|
61
|
-
const syncOp = envelopeToSyncOperation(envelope, this.remoteName);
|
|
62
|
-
syncOp.transported();
|
|
63
|
-
this.inbox.add(syncOp);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Updates the synchronization cursor for this channel's remote.
|
|
68
|
-
*
|
|
69
|
-
* Cursors track progress through the operation stream and enable resuming
|
|
70
|
-
* synchronization after restarts. The cursor is exclusive - the next sync
|
|
71
|
-
* will start at cursorOrdinal + 1.
|
|
72
|
-
*
|
|
73
|
-
* @param cursorOrdinal - The last processed ordinal (exclusive)
|
|
74
|
-
*/
|
|
75
|
-
async updateCursor(cursorOrdinal) {
|
|
76
|
-
const cursor = {
|
|
77
|
-
remoteName: this.remoteName,
|
|
78
|
-
cursorOrdinal,
|
|
79
|
-
lastSyncedAtUtcMs: Date.now(),
|
|
80
|
-
};
|
|
81
|
-
await this.cursorStorage.upsert(cursor);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Handles sync operations added to the outbox by sending them to the peer.
|
|
85
|
-
*
|
|
86
|
-
* This method is called automatically via the outbox.onAdded callback.
|
|
87
|
-
* It converts the sync operation to a SyncEnvelope and sends it via the send function.
|
|
88
|
-
*
|
|
89
|
-
* @param syncOp - The sync operation to transport
|
|
90
|
-
*/
|
|
91
|
-
handleOutboxAdded(syncOp) {
|
|
92
|
-
if (this.isShutdown) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
try {
|
|
96
|
-
syncOp.started();
|
|
97
|
-
const envelope = {
|
|
98
|
-
type: "operations",
|
|
99
|
-
channelMeta: { id: this.channelId },
|
|
100
|
-
operations: syncOp.operations,
|
|
101
|
-
};
|
|
102
|
-
this.send(envelope);
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
106
|
-
const channelError = new ChannelError(ChannelErrorSource.Outbox, err);
|
|
107
|
-
syncOp.failed(channelError);
|
|
108
|
-
this.deadLetter.add(syncOp);
|
|
109
|
-
this.outbox.remove(syncOp);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=internal-channel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal-channel.js","sourceRoot":"","sources":["../../../../src/sync/channels/internal-channel.ts"],"names":[],"mappings":"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"}
|