@ibgib/core-gib 0.1.20 → 0.1.22
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/sync/graft-info/graft-info-constants.d.mts +5 -0
- package/dist/sync/graft-info/graft-info-constants.d.mts.map +1 -0
- package/dist/sync/graft-info/graft-info-constants.mjs +5 -0
- package/dist/sync/graft-info/graft-info-constants.mjs.map +1 -0
- package/dist/sync/graft-info/graft-info-helpers.d.mts +49 -0
- package/dist/sync/graft-info/graft-info-helpers.d.mts.map +1 -0
- package/dist/sync/graft-info/graft-info-helpers.mjs +236 -0
- package/dist/sync/graft-info/graft-info-helpers.mjs.map +1 -0
- package/dist/sync/graft-info/graft-info-helpers.respec.d.mts +2 -0
- package/dist/sync/graft-info/graft-info-helpers.respec.d.mts.map +1 -0
- package/dist/sync/graft-info/graft-info-helpers.respec.mjs +70 -0
- package/dist/sync/graft-info/graft-info-helpers.respec.mjs.map +1 -0
- package/dist/sync/graft-info/graft-info-types.d.mts +31 -0
- package/dist/sync/{merge-info/merge-info-types.d.mts.map → graft-info/graft-info-types.d.mts.map} +1 -1
- package/dist/sync/graft-info/graft-info-types.mjs +2 -0
- package/dist/sync/graft-info/graft-info-types.mjs.map +1 -0
- package/dist/sync/strategies/conflict-optimistic.d.mts +1 -1
- package/dist/sync/strategies/conflict-optimistic.d.mts.map +1 -1
- package/dist/sync/strategies/conflict-optimistic.mjs +10 -60
- package/dist/sync/strategies/conflict-optimistic.mjs.map +1 -1
- package/dist/sync/sync-conflict.respec.mjs +155 -34
- package/dist/sync/sync-conflict.respec.mjs.map +1 -1
- package/dist/sync/sync-constants.d.mts +9 -11
- package/dist/sync/sync-constants.d.mts.map +1 -1
- package/dist/sync/sync-constants.mjs +3 -5
- package/dist/sync/sync-constants.mjs.map +1 -1
- package/dist/sync/sync-helpers.d.mts +2 -0
- package/dist/sync/sync-helpers.d.mts.map +1 -1
- package/dist/sync/sync-helpers.mjs +11 -9
- package/dist/sync/sync-helpers.mjs.map +1 -1
- package/dist/sync/sync-innerspace-constants.respec.mjs +5 -1
- package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs +5 -1
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +8 -4
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +5 -1
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-partial-update.respec.mjs +5 -1
- package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace.respec.mjs +5 -1
- package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
- package/dist/sync/sync-peer/sync-peer-constants.d.mts +2 -0
- package/dist/sync/sync-peer/sync-peer-constants.d.mts.map +1 -0
- package/dist/sync/sync-peer/sync-peer-constants.mjs +2 -0
- package/dist/sync/sync-peer/sync-peer-constants.mjs.map +1 -0
- package/dist/sync/sync-peer/sync-peer-helpers.d.mts +2 -0
- package/dist/sync/sync-peer/sync-peer-helpers.d.mts.map +1 -0
- package/dist/sync/sync-peer/sync-peer-helpers.mjs +2 -0
- package/dist/sync/sync-peer/sync-peer-helpers.mjs.map +1 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.d.mts +8 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.d.mts.map +1 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs +8 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs.map +1 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.d.mts +18 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.d.mts.map +1 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.mjs +54 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.mjs.map +1 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts +80 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts.map +1 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mjs +5 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mjs.map +1 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts +43 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts.map +1 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs +229 -0
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs.map +1 -0
- package/dist/sync/sync-peer/sync-peer-types.d.mts +12 -0
- package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-v1.d.mts +15 -7
- package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-v1.mjs +105 -24
- package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts +5 -8
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs +34 -18
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts +26 -22
- package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-types.mjs +1 -9
- package/dist/sync/sync-saga-context/sync-saga-context-types.mjs.map +1 -1
- package/dist/sync/sync-saga-coordinator.d.mts +48 -51
- package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.mjs +720 -420
- package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
- package/dist/sync/sync-saga-message/sync-saga-message-helpers.d.mts.map +1 -1
- package/dist/sync/sync-saga-message/sync-saga-message-helpers.mjs +1 -0
- package/dist/sync/sync-saga-message/sync-saga-message-helpers.mjs.map +1 -1
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +1 -12
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
- package/dist/sync/sync-types.d.mts +15 -3
- package/dist/sync/sync-types.d.mts.map +1 -1
- package/dist/witness/light-witness-base-v1.d.mts.map +1 -1
- package/dist/witness/light-witness-base-v1.mjs +2 -0
- package/dist/witness/light-witness-base-v1.mjs.map +1 -1
- package/dist/witness/space/inner-space/inner-space-v1.mjs +1 -1
- package/dist/witness/space/inner-space/inner-space-v1.mjs.map +1 -1
- package/ibgib-foundations.md +20 -2
- package/package.json +1 -1
- package/src/sync/README.md +31 -22
- package/src/sync/graft-info/graft-info-constants.mts +4 -0
- package/src/sync/graft-info/graft-info-helpers.mts +308 -0
- package/src/sync/graft-info/graft-info-helpers.respec.mts +83 -0
- package/src/sync/graft-info/graft-info-types.mts +33 -0
- package/src/sync/strategies/conflict-optimistic.mts +11 -70
- package/src/sync/sync-conflict.respec.mts +177 -37
- package/src/sync/sync-constants.mts +5 -9
- package/src/sync/sync-helpers.mts +11 -7
- package/src/sync/sync-innerspace-constants.respec.mts +5 -1
- package/src/sync/sync-innerspace-deep-updates.respec.mts +5 -1
- package/src/sync/sync-innerspace-dest-ahead.respec.mts +7 -3
- package/src/sync/sync-innerspace-multiple-timelines.respec.mts +5 -1
- package/src/sync/sync-innerspace-partial-update.respec.mts +8 -2
- package/src/sync/sync-innerspace.respec.mts +5 -1
- package/src/sync/sync-peer/sync-peer-constants.mts +0 -0
- package/src/sync/sync-peer/sync-peer-helpers.mts +0 -0
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mts +8 -0
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.mts +72 -0
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts +87 -0
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +242 -0
- package/src/sync/sync-peer/sync-peer-types.mts +13 -1
- package/src/sync/sync-peer/sync-peer-v1.mts +93 -27
- package/src/sync/sync-saga-context/sync-saga-context-helpers.mts +47 -29
- package/src/sync/sync-saga-context/sync-saga-context-types.mts +29 -30
- package/src/sync/sync-saga-coordinator.mts +782 -441
- package/src/sync/sync-saga-message/sync-saga-message-helpers.mts +2 -0
- package/src/sync/sync-saga-message/sync-saga-message-types.mts +0 -11
- package/src/sync/sync-types.mts +17 -3
- package/src/witness/light-witness-base-v1.mts +2 -1
- package/src/witness/space/inner-space/inner-space-v1.mts +1 -1
- package/test_output.log +489 -0
- package/tmp.md +61 -2
- package/dist/sync/merge-info/merge-info-constants.d.mts +0 -2
- package/dist/sync/merge-info/merge-info-constants.d.mts.map +0 -1
- package/dist/sync/merge-info/merge-info-constants.mjs +0 -2
- package/dist/sync/merge-info/merge-info-constants.mjs.map +0 -1
- package/dist/sync/merge-info/merge-info-helpers.d.mts +0 -51
- package/dist/sync/merge-info/merge-info-helpers.d.mts.map +0 -1
- package/dist/sync/merge-info/merge-info-helpers.mjs +0 -92
- package/dist/sync/merge-info/merge-info-helpers.mjs.map +0 -1
- package/dist/sync/merge-info/merge-info-helpers.respec.d.mts +0 -2
- package/dist/sync/merge-info/merge-info-helpers.respec.d.mts.map +0 -1
- package/dist/sync/merge-info/merge-info-helpers.respec.mjs +0 -32
- package/dist/sync/merge-info/merge-info-helpers.respec.mjs.map +0 -1
- package/dist/sync/merge-info/merge-info-types.d.mts +0 -26
- package/dist/sync/merge-info/merge-info-types.mjs +0 -2
- package/dist/sync/merge-info/merge-info-types.mjs.map +0 -1
- package/dist/sync/sync-local-spaces.respec.d.mts +0 -2
- package/dist/sync/sync-local-spaces.respec.d.mts.map +0 -1
- package/dist/sync/sync-local-spaces.respec.mjs +0 -159
- package/dist/sync/sync-local-spaces.respec.mjs.map +0 -1
- package/dist/sync/sync-peer/sync-peer-innerspace-v1.d.mts +0 -39
- package/dist/sync/sync-peer/sync-peer-innerspace-v1.d.mts.map +0 -1
- package/dist/sync/sync-peer/sync-peer-innerspace-v1.mjs +0 -131
- package/dist/sync/sync-peer/sync-peer-innerspace-v1.mjs.map +0 -1
- package/dist/sync/sync-saga-coordinator.respec.d.mts +0 -2
- package/dist/sync/sync-saga-coordinator.respec.d.mts.map +0 -1
- package/dist/sync/sync-saga-coordinator.respec.mjs +0 -40
- package/dist/sync/sync-saga-coordinator.respec.mjs.map +0 -1
- package/src/sync/merge-info/merge-info-constants.mts +0 -1
- package/src/sync/merge-info/merge-info-helpers.mts +0 -134
- package/src/sync/merge-info/merge-info-helpers.respec.mts +0 -41
- package/src/sync/merge-info/merge-info-types.mts +0 -28
- package/src/sync/sync-local-spaces.respec.mts +0 -200
- package/src/sync/sync-peer/sync-peer-innerspace-v1.mts +0 -167
- package/src/sync/sync-saga-coordinator.respec.mts +0 -52
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module sync saga context helpers
|
|
3
3
|
*/
|
|
4
|
-
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
4
|
+
import { extractErrorMsg, getTimestamp } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
5
5
|
import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
|
|
6
6
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
7
7
|
import { SYNC_SAGA_CONTEXT_ATOM } from './sync-saga-context-constants.mjs';
|
|
8
|
-
import {
|
|
8
|
+
import { SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN } from '../sync-constants.mjs';
|
|
9
9
|
/**
|
|
10
10
|
* Constructs the standard 'ib' string for a Sync Saga Context stone.
|
|
11
11
|
*/
|
|
@@ -15,11 +15,11 @@ export async function getSyncSagaContextIb({ data, }) {
|
|
|
15
15
|
if (!data) {
|
|
16
16
|
throw new Error(`data required (E: 839d82138c234b3e89582855594191fe)`);
|
|
17
17
|
}
|
|
18
|
-
const
|
|
18
|
+
const payloadCount = data['@payloadAddrsDomain'] ? data['@payloadAddrsDomain'].length : 0;
|
|
19
19
|
// sync_sagacontext cmd
|
|
20
20
|
const ib = [
|
|
21
21
|
SYNC_SAGA_CONTEXT_ATOM,
|
|
22
|
-
|
|
22
|
+
payloadCount,
|
|
23
23
|
].join(' ');
|
|
24
24
|
return ib;
|
|
25
25
|
}
|
|
@@ -35,15 +35,21 @@ export async function parseSyncSagaContextIb({ ib, }) {
|
|
|
35
35
|
const lc = `[${parseSyncSagaContextIb.name}]`;
|
|
36
36
|
try {
|
|
37
37
|
const parts = ib.split(' ');
|
|
38
|
-
if (parts.length
|
|
39
|
-
throw new Error(`Invalid sync saga context ib. Expected at least 2 parts [atom
|
|
38
|
+
if (parts.length !== 2) {
|
|
39
|
+
throw new Error(`Invalid sync saga context ib. Expected at least 2 parts [atom, payloadCount]. Got ${parts.length}. (E: 8b06c88820c74f5fb9f21f148459422a)`);
|
|
40
40
|
}
|
|
41
|
-
const [atom,
|
|
42
|
-
const cmd = rest.join(' '); // cmd might have spaces if it's not a strict enum? but usually single word key.
|
|
41
|
+
const [atom, payloadCountStr,] = parts;
|
|
43
42
|
if (atom !== SYNC_SAGA_CONTEXT_ATOM) {
|
|
44
43
|
throw new Error(`Atom mismatch. Expected ${SYNC_SAGA_CONTEXT_ATOM}. Got ${atom}. (E: 67d71fc0f8d04840b178652309f471f5)`);
|
|
45
44
|
}
|
|
46
|
-
|
|
45
|
+
if (!payloadCountStr) {
|
|
46
|
+
throw new Error(`invalid ib. second piece should be payloadCount but is falsy (E: 0bb7580793d800ca02227828a7294826)`);
|
|
47
|
+
}
|
|
48
|
+
const payloadCount = parseInt(payloadCountStr);
|
|
49
|
+
if (isNaN(payloadCount)) {
|
|
50
|
+
throw new Error(`payloadCountStr is not a number. (E: 49457814282a44069871630987588722)`);
|
|
51
|
+
}
|
|
52
|
+
return { atom, payloadCount };
|
|
47
53
|
}
|
|
48
54
|
catch (error) {
|
|
49
55
|
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
@@ -55,19 +61,25 @@ export async function parseSyncSagaContextIb({ ib, }) {
|
|
|
55
61
|
*
|
|
56
62
|
* @returns The context ibGib.
|
|
57
63
|
*/
|
|
58
|
-
export async function createSyncSagaContext({
|
|
64
|
+
export async function createSyncSagaContext({ sagaFrame, sessionKeystones, payloadIbGibsDomain, }) {
|
|
65
|
+
const date = new Date();
|
|
66
|
+
const timestamp = getTimestamp(date);
|
|
67
|
+
const timestampMs = date.getMilliseconds();
|
|
59
68
|
const data = {
|
|
60
|
-
|
|
69
|
+
timestamp,
|
|
70
|
+
timestampMs,
|
|
61
71
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (sagaFrame) {
|
|
67
|
-
rel8ns.sagaFrame = [getIbGibAddr(sagaFrame)];
|
|
72
|
+
// Domain Payloads
|
|
73
|
+
const payloadAddrsDomain = payloadIbGibsDomain ? payloadIbGibsDomain?.map(x => getIbGibAddr({ ibGib: x })) : undefined;
|
|
74
|
+
if (payloadAddrsDomain && payloadAddrsDomain.length > 0) {
|
|
75
|
+
data[SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN] = payloadAddrsDomain;
|
|
68
76
|
}
|
|
77
|
+
// rel8ns should always have saga frame, sometimes have keystone
|
|
78
|
+
const rel8ns = {
|
|
79
|
+
sagaFrame: [getIbGibAddr({ ibGib: sagaFrame })],
|
|
80
|
+
};
|
|
69
81
|
if (sessionKeystones && sessionKeystones.length > 0) {
|
|
70
|
-
rel8ns.sessionKeystone = sessionKeystones.map(getIbGibAddr);
|
|
82
|
+
rel8ns.sessionKeystone = sessionKeystones.map(x => getIbGibAddr({ ibGib: x }));
|
|
71
83
|
}
|
|
72
84
|
// Generate standard ib
|
|
73
85
|
const ib = await getSyncSagaContextIb({ data });
|
|
@@ -77,6 +89,10 @@ export async function createSyncSagaContext({ cmd, sagaFrame, sessionKeystones,
|
|
|
77
89
|
data,
|
|
78
90
|
rel8ns,
|
|
79
91
|
});
|
|
92
|
+
// Attach actual ibgibs for transport
|
|
93
|
+
if (payloadIbGibsDomain && payloadIbGibsDomain.length > 0) {
|
|
94
|
+
contextIbGib.payloadIbGibsDomain = payloadIbGibsDomain;
|
|
95
|
+
}
|
|
80
96
|
return contextIbGib;
|
|
81
97
|
}
|
|
82
98
|
//# sourceMappingURL=sync-saga-context-helpers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-saga-context-helpers.mjs","sourceRoot":"","sources":["../../../src/sync/sync-saga-context/sync-saga-context-helpers.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-saga-context-helpers.mjs","sourceRoot":"","sources":["../../../src/sync/sync-saga-context/sync-saga-context-helpers.mts"],"names":[],"mappings":"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"}
|
|
@@ -3,35 +3,25 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
|
|
5
5
|
import { IbGibData_V1, IbGibRel8ns_V1, IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*/
|
|
10
|
-
export type SyncSagaContextCmd = 'process' | 'ping';
|
|
11
|
-
export declare const SyncSagaContextCmd: {
|
|
12
|
-
process: SyncSagaContextCmd;
|
|
13
|
-
ping: SyncSagaContextCmd;
|
|
14
|
-
};
|
|
15
|
-
export declare const SYNC_SAGA_CONTEXT_CMD_VALID_VALUES: SyncSagaContextCmd[];
|
|
16
|
-
export declare function isValidSyncSagaContextCmd(cmd: string): cmd is SyncSagaContextCmd;
|
|
6
|
+
import { SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN } from '../sync-constants.mjs';
|
|
7
|
+
import { SyncIbGib_V1 } from '../sync-types.mjs';
|
|
8
|
+
import { SYNC_SAGA_CONTEXT_ATOM } from './sync-saga-context-constants.mjs';
|
|
17
9
|
export interface SyncSagaContextIb_V1 {
|
|
18
|
-
atom:
|
|
19
|
-
|
|
10
|
+
atom: typeof SYNC_SAGA_CONTEXT_ATOM;
|
|
11
|
+
/**
|
|
12
|
+
* simple metadata count of data["@payloadAddrsDomain"]
|
|
13
|
+
*/
|
|
14
|
+
payloadCount: number;
|
|
20
15
|
}
|
|
21
16
|
/**
|
|
22
17
|
* Data payload for the Sync Saga Context.
|
|
23
18
|
*/
|
|
24
19
|
export interface SyncSagaContextData_V1 extends IbGibData_V1 {
|
|
25
20
|
/**
|
|
26
|
-
*
|
|
27
|
-
* e.g. "process", "ping".
|
|
28
|
-
*/
|
|
29
|
-
cmd?: SyncSagaContextCmd | string;
|
|
30
|
-
/**
|
|
31
|
-
* Payload data (ibGibs) being transported in this context (e.g. for Delta stage).
|
|
21
|
+
* Payload data addresses for DOMAIN ibGibs (Timeline frames, user content).
|
|
32
22
|
* Soft-linked via data property to avoid hard-linking graph dependencies.
|
|
33
23
|
*/
|
|
34
|
-
[
|
|
24
|
+
[SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN]?: IbGibAddr[];
|
|
35
25
|
}
|
|
36
26
|
/**
|
|
37
27
|
* Relationships for the Sync Saga Context.
|
|
@@ -40,9 +30,10 @@ export interface SyncSagaContextData_V1 extends IbGibData_V1 {
|
|
|
40
30
|
export interface SyncSagaContextRel8ns_V1 extends IbGibRel8ns_V1 {
|
|
41
31
|
/**
|
|
42
32
|
* The primary Saga Frame being transported (Init, Ack, Delta, etc.).
|
|
43
|
-
*
|
|
33
|
+
*
|
|
34
|
+
* Should be a single addr.
|
|
44
35
|
*/
|
|
45
|
-
sagaFrame
|
|
36
|
+
sagaFrame: IbGibAddr[];
|
|
46
37
|
/**
|
|
47
38
|
* The Ephemeral Session Keystone Identity used for this saga.
|
|
48
39
|
* Required for validating the saga frame signature.
|
|
@@ -54,5 +45,18 @@ export interface SyncSagaContextRel8ns_V1 extends IbGibRel8ns_V1 {
|
|
|
54
45
|
* between Sync Peers.
|
|
55
46
|
*/
|
|
56
47
|
export interface SyncSagaContextIbGib_V1 extends IbGib_V1<SyncSagaContextData_V1, SyncSagaContextRel8ns_V1> {
|
|
48
|
+
/**
|
|
49
|
+
* Domain ibgibs - OUTBOUND only.
|
|
50
|
+
*
|
|
51
|
+
* For inbound, the domain payload ibgibs are streamed via observable in the
|
|
52
|
+
* peer.
|
|
53
|
+
*/
|
|
54
|
+
payloadIbGibsDomain?: IbGib_V1[];
|
|
55
|
+
/**
|
|
56
|
+
* Reference to the actual sync saga frame that this context conveys.
|
|
57
|
+
*
|
|
58
|
+
* This frame's addr should be {@link SyncSagaContextRel8ns_V1.sagaFrame}.
|
|
59
|
+
*/
|
|
60
|
+
sagaFrame: SyncIbGib_V1;
|
|
57
61
|
}
|
|
58
62
|
//# sourceMappingURL=sync-saga-context-types.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-saga-context-types.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-saga-context/sync-saga-context-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-saga-context-types.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-saga-context/sync-saga-context-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,OAAO,sBAAsB,CAAC;IACpC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IACxD;;;OAGG;IACH,CAAC,8BAA8B,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC5D;;;;OAIG;IACH,SAAS,EAAE,SAAS,EAAE,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,QAAQ,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;IACvG;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEjC;;;;OAIG;IACH,SAAS,EAAE,YAAY,CAAC;CAC3B"}
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module sync saga context types
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
export const SyncSagaContextCmd = {
|
|
6
|
-
process: 'process',
|
|
7
|
-
ping: 'ping',
|
|
8
|
-
};
|
|
9
|
-
export const SYNC_SAGA_CONTEXT_CMD_VALID_VALUES = Object.values(SyncSagaContextCmd);
|
|
10
|
-
export function isValidSyncSagaContextCmd(cmd) {
|
|
11
|
-
return SYNC_SAGA_CONTEXT_CMD_VALID_VALUES.includes(cmd);
|
|
12
|
-
}
|
|
4
|
+
import { SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN } from '../sync-constants.mjs';
|
|
13
5
|
//# sourceMappingURL=sync-saga-context-types.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-saga-context-types.mjs","sourceRoot":"","sources":["../../../src/sync/sync-saga-context/sync-saga-context-types.mts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"sync-saga-context-types.mjs","sourceRoot":"","sources":["../../../src/sync/sync-saga-context/sync-saga-context-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -10,6 +10,15 @@ import { SyncSagaInfo } from "./sync-types.mjs";
|
|
|
10
10
|
import { SyncPeerWitness } from "./sync-peer/sync-peer-types.mjs";
|
|
11
11
|
import { SyncSagaContextIbGib_V1 } from "./sync-saga-context/sync-saga-context-types.mjs";
|
|
12
12
|
import { SubjectWitness } from "../common/pubsub/subject/subject-types.mjs";
|
|
13
|
+
/**
|
|
14
|
+
* Result of handling a saga frame.
|
|
15
|
+
* Separates control and domain payloads.
|
|
16
|
+
*/
|
|
17
|
+
export interface HandleSagaFrameResult {
|
|
18
|
+
frame: SyncIbGib_V1;
|
|
19
|
+
payloadIbGibsControl?: IbGib_V1[];
|
|
20
|
+
payloadIbGibsDomain?: IbGib_V1[];
|
|
21
|
+
}
|
|
13
22
|
/**
|
|
14
23
|
* Orchestrates the synchronization process between two spaces (Source and Destination).
|
|
15
24
|
*
|
|
@@ -122,32 +131,27 @@ export declare class SyncSagaCoordinator {
|
|
|
122
131
|
};
|
|
123
132
|
}>;
|
|
124
133
|
/**
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* @remarks
|
|
128
|
-
* **Execution Context**: **Universal (Both Sender and Receiver)**.
|
|
129
|
-
*
|
|
130
|
-
* This method acts as the "Reducer" for the Sync FSM. It determines the current stage
|
|
131
|
-
* based on the incoming frame and delegates to the appropriate handler.
|
|
132
|
-
*
|
|
133
|
-
* * If running on **Receiver**: Handles `Init` (via `handleInitFrame`).
|
|
134
|
-
* * If running on **Sender**: Handles `Ack` (via `handleAckFrame`).
|
|
135
|
-
* * If running on **Either**: Handles `Delta` (via `handleDeltaFrame`) or `Commit`.
|
|
134
|
+
* Helper to poll for streaming domain payloads and put them in the
|
|
135
|
+
* local {@link tempSpace}.
|
|
136
136
|
*/
|
|
137
|
-
|
|
137
|
+
protected pollForDomainPayloads({ expectedAddrs, domainPayloadsMap, tempSpace, }: {
|
|
138
|
+
expectedAddrs: string[];
|
|
139
|
+
domainPayloadsMap: Map<string, IbGib_V1>;
|
|
140
|
+
tempSpace: IbGibSpaceAny;
|
|
141
|
+
}): Promise<void>;
|
|
142
|
+
handleSagaFrame({ sagaIbGib, srcGraph, destSpace, tempSpace, identity, identitySecret, metaspace, }: {
|
|
138
143
|
sagaIbGib: SyncIbGib_V1;
|
|
139
144
|
srcGraph: {
|
|
140
145
|
[addr: string]: IbGib_V1;
|
|
141
146
|
};
|
|
142
|
-
|
|
147
|
+
destSpace: IbGibSpaceAny;
|
|
148
|
+
tempSpace: IbGibSpaceAny;
|
|
143
149
|
identity?: KeystoneIbGib_V1;
|
|
144
150
|
identitySecret?: string;
|
|
145
151
|
metaspace: MetaspaceService;
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
receivedPayloadIbGibs?: IbGib_V1[];
|
|
150
|
-
} | null>;
|
|
152
|
+
domainPayloadsMap?: Map<string, IbGib_V1>;
|
|
153
|
+
expectedDomainAddrs?: string[];
|
|
154
|
+
}): Promise<HandleSagaFrameResult | null>;
|
|
151
155
|
/**
|
|
152
156
|
* Handles the `Init` frame.
|
|
153
157
|
*
|
|
@@ -160,17 +164,15 @@ export declare class SyncSagaCoordinator {
|
|
|
160
164
|
* 3. Identifies what Receiver needs (`deltaReqAddrs`).
|
|
161
165
|
* 4. Returns an `Ack` frame containing these lists.
|
|
162
166
|
*/
|
|
163
|
-
protected handleInitFrame({ sagaIbGib, messageData,
|
|
167
|
+
protected handleInitFrame({ sagaIbGib, messageData, destSpace, tempSpace, metaspace, identity, identitySecret, }: {
|
|
164
168
|
sagaIbGib: SyncIbGib_V1;
|
|
165
169
|
messageData: any;
|
|
166
|
-
|
|
170
|
+
destSpace: IbGibSpaceAny;
|
|
171
|
+
tempSpace: IbGibSpaceAny;
|
|
167
172
|
metaspace: MetaspaceService;
|
|
168
173
|
identity?: KeystoneIbGib_V1;
|
|
169
174
|
identitySecret?: string;
|
|
170
|
-
}): Promise<
|
|
171
|
-
frame: SyncIbGib_V1;
|
|
172
|
-
payloadIbGibs?: IbGib_V1[];
|
|
173
|
-
} | null>;
|
|
175
|
+
}): Promise<HandleSagaFrameResult | null>;
|
|
174
176
|
/**
|
|
175
177
|
* Handles the `Ack` frame.
|
|
176
178
|
*
|
|
@@ -183,18 +185,16 @@ export declare class SyncSagaCoordinator {
|
|
|
183
185
|
*
|
|
184
186
|
* Returns a `Delta` frame.
|
|
185
187
|
*/
|
|
186
|
-
protected handleAckFrame({ sagaIbGib, srcGraph,
|
|
188
|
+
protected handleAckFrame({ sagaIbGib, srcGraph, destSpace, tempSpace, metaspace, identity, }: {
|
|
187
189
|
sagaIbGib: SyncIbGib_V1;
|
|
188
190
|
srcGraph: {
|
|
189
191
|
[addr: string]: IbGib_V1;
|
|
190
192
|
};
|
|
191
|
-
|
|
193
|
+
destSpace: IbGibSpaceAny;
|
|
194
|
+
tempSpace: IbGibSpaceAny;
|
|
192
195
|
metaspace: MetaspaceService;
|
|
193
196
|
identity?: KeystoneIbGib_V1;
|
|
194
|
-
}): Promise<
|
|
195
|
-
frame: SyncIbGib_V1;
|
|
196
|
-
payloadIbGibs?: IbGib_V1[];
|
|
197
|
-
} | null>;
|
|
197
|
+
}): Promise<HandleSagaFrameResult | null>;
|
|
198
198
|
/**
|
|
199
199
|
* Handles the `Delta` frame.
|
|
200
200
|
*
|
|
@@ -205,41 +205,38 @@ export declare class SyncSagaCoordinator {
|
|
|
205
205
|
* 2. **Fulfillment**: Checks `requests`. If Peer requested data, gathers it and prepares `outgoingPayload`.
|
|
206
206
|
* 3. **Completion**: If no more requests, transitions to `Commit`.
|
|
207
207
|
*/
|
|
208
|
-
protected handleDeltaFrame({ sagaIbGib, srcGraph,
|
|
208
|
+
protected handleDeltaFrame({ sagaIbGib, srcGraph, destSpace, tempSpace, metaspace, identity, }: {
|
|
209
209
|
sagaIbGib: SyncIbGib_V1;
|
|
210
210
|
srcGraph: {
|
|
211
211
|
[addr: string]: IbGib_V1;
|
|
212
212
|
};
|
|
213
|
-
|
|
213
|
+
destSpace: IbGibSpaceAny;
|
|
214
|
+
tempSpace: IbGibSpaceAny;
|
|
214
215
|
metaspace: MetaspaceService;
|
|
215
216
|
identity?: KeystoneIbGib_V1;
|
|
216
|
-
}): Promise<
|
|
217
|
-
|
|
218
|
-
payloadIbGibs?: IbGib_V1[];
|
|
219
|
-
receivedPayloadIbGibs?: IbGib_V1[];
|
|
220
|
-
} | null>;
|
|
221
|
-
protected handleCommitFrame({ sagaIbGib, space, metaspace, }: {
|
|
217
|
+
}): Promise<HandleSagaFrameResult | null>;
|
|
218
|
+
protected handleCommitFrame({ sagaIbGib, destSpace, tempSpace, metaspace, identity, }: {
|
|
222
219
|
sagaIbGib: SyncIbGib_V1;
|
|
223
|
-
|
|
220
|
+
destSpace: IbGibSpaceAny;
|
|
221
|
+
tempSpace: IbGibSpaceAny;
|
|
224
222
|
metaspace: MetaspaceService;
|
|
225
223
|
identity?: KeystoneIbGib_V1;
|
|
226
|
-
}): Promise<
|
|
227
|
-
frame: SyncIbGib_V1;
|
|
228
|
-
payloadIbGibs?: IbGib_V1[];
|
|
229
|
-
} | null>;
|
|
230
|
-
protected handleConflictFrame({ sagaIbGib, metaspace, space, }: {
|
|
231
|
-
sagaIbGib: SyncIbGib_V1;
|
|
232
|
-
metaspace: MetaspaceService;
|
|
233
|
-
space: IbGibSpaceAny;
|
|
234
|
-
}): Promise<{
|
|
235
|
-
frame: SyncIbGib_V1;
|
|
236
|
-
payloadIbGibs?: IbGib_V1[];
|
|
237
|
-
} | null>;
|
|
224
|
+
}): Promise<HandleSagaFrameResult | null>;
|
|
238
225
|
protected createSyncMsgStone<TStoneData extends SyncSagaMessageData_V1>({ data, space, metaspace, }: {
|
|
239
226
|
data: TStoneData;
|
|
240
227
|
space: IbGibSpaceAny;
|
|
241
228
|
metaspace: MetaspaceService;
|
|
242
229
|
}): Promise<IbGib_V1<TStoneData>>;
|
|
230
|
+
/**
|
|
231
|
+
* Ensures saga frame and its msg stone(s) are in BOTH spaces for audit trail.
|
|
232
|
+
* Control ibgibs (saga frames, msg stones, identity) must be in both destSpace and tempSpace.
|
|
233
|
+
*/
|
|
234
|
+
protected ensureSagaFrameInBothSpaces({ frame, destSpace, tempSpace, metaspace, }: {
|
|
235
|
+
frame: SyncIbGib_V1;
|
|
236
|
+
destSpace: IbGibSpaceAny;
|
|
237
|
+
tempSpace: IbGibSpaceAny;
|
|
238
|
+
metaspace: MetaspaceService;
|
|
239
|
+
}): Promise<void>;
|
|
243
240
|
/**
|
|
244
241
|
* Evolves the saga timeline with a new frame.
|
|
245
242
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-saga-coordinator.d.mts","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync-saga-coordinator.d.mts","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.mts"],"names":[],"mappings":"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"}
|