@ibgib/core-gib 0.1.18 → 0.1.20
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/common/other/ibgib-helper.d.mts +13 -0
- package/dist/common/other/ibgib-helper.d.mts.map +1 -1
- package/dist/common/other/ibgib-helper.mjs +44 -0
- package/dist/common/other/ibgib-helper.mjs.map +1 -1
- package/dist/sync/merge-info/merge-info-constants.d.mts +2 -0
- package/dist/sync/merge-info/merge-info-constants.d.mts.map +1 -0
- package/dist/sync/merge-info/merge-info-constants.mjs +2 -0
- package/dist/sync/merge-info/merge-info-constants.mjs.map +1 -0
- package/dist/sync/merge-info/merge-info-helpers.d.mts +51 -0
- package/dist/sync/merge-info/merge-info-helpers.d.mts.map +1 -0
- package/dist/sync/merge-info/merge-info-helpers.mjs +92 -0
- package/dist/sync/merge-info/merge-info-helpers.mjs.map +1 -0
- package/dist/sync/merge-info/merge-info-helpers.respec.d.mts +2 -0
- package/dist/sync/merge-info/merge-info-helpers.respec.d.mts.map +1 -0
- package/dist/sync/merge-info/merge-info-helpers.respec.mjs +32 -0
- package/dist/sync/merge-info/merge-info-helpers.respec.mjs.map +1 -0
- package/dist/sync/merge-info/merge-info-types.d.mts +26 -0
- package/dist/sync/merge-info/merge-info-types.d.mts.map +1 -0
- package/dist/sync/merge-info/merge-info-types.mjs +2 -0
- package/dist/sync/merge-info/merge-info-types.mjs.map +1 -0
- package/dist/sync/strategies/conflict-optimistic.d.mts +37 -0
- package/dist/sync/strategies/conflict-optimistic.d.mts.map +1 -0
- package/dist/sync/strategies/conflict-optimistic.mjs +162 -0
- package/dist/sync/strategies/conflict-optimistic.mjs.map +1 -0
- package/dist/sync/sync-conflict.respec.d.mts +8 -0
- package/dist/sync/sync-conflict.respec.d.mts.map +1 -0
- package/dist/sync/sync-conflict.respec.mjs +158 -0
- package/dist/sync/sync-conflict.respec.mjs.map +1 -0
- package/dist/sync/sync-innerspace-constants.respec.d.mts +8 -0
- package/dist/sync/sync-innerspace-constants.respec.d.mts.map +1 -0
- package/dist/sync/sync-innerspace-constants.respec.mjs +116 -0
- package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -0
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs +2 -3
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +3 -3
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +2 -2
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-partial-update.respec.d.mts +7 -0
- package/dist/sync/sync-innerspace-partial-update.respec.d.mts.map +1 -0
- package/dist/sync/sync-innerspace-partial-update.respec.mjs +116 -0
- package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -0
- package/dist/sync/sync-innerspace.respec.mjs +5 -5
- package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
- package/dist/sync/sync-saga-coordinator.d.mts +23 -12
- package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.mjs +612 -95
- package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
- package/dist/sync/sync-saga-message/sync-saga-message-helpers.d.mts +11 -0
- 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 +24 -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 +30 -0
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
- package/dist/sync/sync-types.d.mts +31 -4
- package/dist/sync/sync-types.d.mts.map +1 -1
- package/dist/sync/sync-types.mjs.map +1 -1
- package/ibgib-foundations.md +129 -0
- package/package.json +1 -1
- package/roadmap.md +59 -0
- package/src/common/other/ibgib-helper.mts +52 -0
- package/src/keystone/README.md +13 -155
- package/src/keystone/docs/architecture.md +55 -0
- package/src/sync/README.md +37 -42
- package/src/sync/docs/architecture.md +69 -0
- package/src/sync/docs/verification.md +43 -0
- package/src/sync/merge-info/merge-info-constants.mts +1 -0
- package/src/sync/merge-info/merge-info-helpers.mts +134 -0
- package/src/sync/merge-info/merge-info-helpers.respec.mts +41 -0
- package/src/sync/merge-info/merge-info-types.mts +28 -0
- package/src/sync/strategies/conflict-optimistic.mts +208 -0
- package/src/sync/sync-conflict.respec.mts +194 -0
- package/src/sync/sync-innerspace-constants.respec.mts +133 -0
- package/src/sync/sync-innerspace-deep-updates.respec.mts +1 -2
- package/src/sync/sync-innerspace-dest-ahead.respec.mts +2 -2
- package/src/sync/sync-innerspace-multiple-timelines.respec.mts +1 -1
- package/src/sync/sync-innerspace-partial-update.respec.mts +150 -0
- package/src/sync/sync-innerspace.respec.mts +4 -4
- package/src/sync/sync-saga-coordinator.mts +673 -103
- package/src/sync/sync-saga-message/sync-saga-message-helpers.mts +41 -0
- package/src/sync/sync-saga-message/sync-saga-message-types.mts +28 -0
- package/src/sync/sync-types.mts +33 -4
- package/tmp.md +2 -374
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-innerspace-multiple-timelines.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-multiple-timelines.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,WAAW,
|
|
1
|
+
{"version":3,"file":"sync-innerspace-multiple-timelines.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-multiple-timelines.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-partial-update.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-innerspace-partial-update.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module sync-innerspace-partial-update.respec
|
|
3
|
+
*
|
|
4
|
+
* Verifies Sync Scenarios where the Destination has partial history.
|
|
5
|
+
*/
|
|
6
|
+
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
+
const maam = `[${import.meta.url}]`, sir = maam;
|
|
8
|
+
import { delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
9
|
+
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
10
|
+
import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
|
|
11
|
+
import { putInSpace, getFromSpace } from '../witness/space/space-helper.mjs';
|
|
12
|
+
import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
|
|
13
|
+
import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
|
|
14
|
+
import { createTimelineRootHelper, getTestKeystoneServiceHelper } from '../agent-helpers.mjs';
|
|
15
|
+
import { mut8Timeline } from '../timeline/timeline-api.mjs';
|
|
16
|
+
import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace-v1.mjs';
|
|
17
|
+
import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
|
|
18
|
+
const logalot = true;
|
|
19
|
+
const lc = `[sync-innerspace-partial-update.respec]`;
|
|
20
|
+
await respecfully(sir, `Sync InnerSpaces (Partial Update)`, async () => {
|
|
21
|
+
let metaspace;
|
|
22
|
+
let sourceSpace;
|
|
23
|
+
let destSpace;
|
|
24
|
+
await respecfully(sir, `Sender Newer (Partial History)`, async () => {
|
|
25
|
+
// 1. Setup Spaces
|
|
26
|
+
metaspace = new Metaspace_Innerspace(undefined);
|
|
27
|
+
await metaspace.initialize({
|
|
28
|
+
getFnAlert: () => async ({ title, msg }) => { },
|
|
29
|
+
getFnPrompt: () => async ({ title, msg }) => { return ''; },
|
|
30
|
+
getFnPromptPassword: () => async (title, msg) => { return null; },
|
|
31
|
+
});
|
|
32
|
+
while (!metaspace.initialized) {
|
|
33
|
+
await delay(10);
|
|
34
|
+
}
|
|
35
|
+
const defaultLocalUserSpace = await metaspace.getLocalUserSpace({ lock: false });
|
|
36
|
+
await defaultLocalUserSpace.initialized;
|
|
37
|
+
sourceSpace = new InnerSpace_V1({
|
|
38
|
+
...DEFAULT_INNER_SPACE_DATA_V1,
|
|
39
|
+
name: 'source',
|
|
40
|
+
uuid: 'source_uuid',
|
|
41
|
+
description: 'source test space',
|
|
42
|
+
});
|
|
43
|
+
await sourceSpace.initialized;
|
|
44
|
+
destSpace = new InnerSpace_V1({
|
|
45
|
+
...DEFAULT_INNER_SPACE_DATA_V1,
|
|
46
|
+
name: 'dest',
|
|
47
|
+
uuid: 'dest_uuid',
|
|
48
|
+
description: 'dest test space',
|
|
49
|
+
});
|
|
50
|
+
await destSpace.initialized;
|
|
51
|
+
// 2. See Data
|
|
52
|
+
// Root -> V1 (Shared) -> V2 (Source Only)
|
|
53
|
+
const root = await createTimelineRootHelper({
|
|
54
|
+
ib: 'timeline_root_partial',
|
|
55
|
+
data: { type: 'root', label: 'Root' },
|
|
56
|
+
space: sourceSpace,
|
|
57
|
+
});
|
|
58
|
+
// V1
|
|
59
|
+
const v1 = await mut8Timeline({
|
|
60
|
+
timeline: root,
|
|
61
|
+
mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'V1' } },
|
|
62
|
+
metaspace,
|
|
63
|
+
space: sourceSpace,
|
|
64
|
+
});
|
|
65
|
+
// V2 (Source Only)
|
|
66
|
+
const v2 = await mut8Timeline({
|
|
67
|
+
timeline: v1,
|
|
68
|
+
mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'V2' } },
|
|
69
|
+
metaspace,
|
|
70
|
+
space: sourceSpace,
|
|
71
|
+
});
|
|
72
|
+
const addrV2 = getIbGibAddr({ ibGib: v2 });
|
|
73
|
+
// Transfer Root & V1 to Dest (Simulate previous sync)
|
|
74
|
+
await putInSpace({ space: destSpace, ibGibs: [root, v1] });
|
|
75
|
+
await ifWe(sir, 'verify setup', async () => {
|
|
76
|
+
// Verify Dest has V1
|
|
77
|
+
const checkV1 = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: v1 }) });
|
|
78
|
+
iReckon(sir, checkV1.success).asTo('Dest has V1').isGonnaBeTrue();
|
|
79
|
+
// Verify Dest does NOT have V2
|
|
80
|
+
const checkV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
|
|
81
|
+
iReckon(sir, checkV2.success && !!checkV2.ibGibs?.length).asTo('Dest has V2').isGonnaBeFalse();
|
|
82
|
+
});
|
|
83
|
+
// 3. Setup Sync
|
|
84
|
+
const mockKeystone = await getTestKeystoneServiceHelper();
|
|
85
|
+
const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
86
|
+
const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
87
|
+
const peer = new SyncPeerInnerspace_V1({
|
|
88
|
+
senderSpace: sourceSpace,
|
|
89
|
+
receiverSpace: destSpace,
|
|
90
|
+
receiverCoordinator: receiverCoordinator,
|
|
91
|
+
receiverMetaspace: metaspace,
|
|
92
|
+
});
|
|
93
|
+
// 4. Run Sync (Source Pushes V2)
|
|
94
|
+
console.log(`${lc} Running Sync...`);
|
|
95
|
+
const resSync = await senderCoordinator.sync({
|
|
96
|
+
peer: peer,
|
|
97
|
+
localSpace: sourceSpace,
|
|
98
|
+
metaspace: metaspace,
|
|
99
|
+
domainIbGibs: [v2],
|
|
100
|
+
useSessionIdentity: false,
|
|
101
|
+
});
|
|
102
|
+
await resSync.done;
|
|
103
|
+
// 5. Verify Dest (Should now have V2)
|
|
104
|
+
console.log(`${lc} Verifying Destination...`);
|
|
105
|
+
await ifWe(sir, `verify dest updated`, async () => {
|
|
106
|
+
// Verify Tip (V2)
|
|
107
|
+
const getV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
|
|
108
|
+
iReckon(sir, getV2.success).asTo('V2 present in Dest').isGonnaBeTrue();
|
|
109
|
+
// Verify V2 points to V1
|
|
110
|
+
const v2IbGib = getV2.ibGibs[0];
|
|
111
|
+
const pastAddr = v2IbGib.rel8ns?.past?.at(-1);
|
|
112
|
+
iReckon(sir, pastAddr === getIbGibAddr({ ibGib: v1 })).asTo('V2 points to V1').isGonnaBeTrue();
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=sync-innerspace-partial-update.respec.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-partial-update.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-partial-update.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Verifies SyncSagaCoordinator using InnerSpace (in-memory/local) spaces.
|
|
5
5
|
* This utilizes SyncPeerInnerspace_V1 for local-to-local synchronization simulations.
|
|
6
6
|
*/
|
|
7
|
-
import { respecfully,
|
|
7
|
+
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
8
8
|
const maam = `[${import.meta.url}]`, sir = maam;
|
|
9
9
|
import { delay, extractErrorMsg, pretty } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
10
10
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
@@ -24,7 +24,7 @@ await respecfully(sir, `Sync InnerSpaces`, async () => {
|
|
|
24
24
|
let metaspace;
|
|
25
25
|
let sourceSpace;
|
|
26
26
|
let destSpace;
|
|
27
|
-
await
|
|
27
|
+
await respecfully(sir, `Basic Push Sync (Source -> Dest)`, async () => {
|
|
28
28
|
// 1. Setup Spaces
|
|
29
29
|
metaspace = new Metaspace_Innerspace(undefined);
|
|
30
30
|
await metaspace.initialize({
|
|
@@ -128,17 +128,17 @@ await respecfully(sir, `Sync InnerSpaces`, async () => {
|
|
|
128
128
|
console.log(`${lc} Verifying Destination...`);
|
|
129
129
|
try {
|
|
130
130
|
const getChildInDest = await getFromSpace({ space: destSpace, addr: childAddr });
|
|
131
|
-
await
|
|
131
|
+
await ifWe(sir, `verify success getChildInDest`, async () => {
|
|
132
132
|
iReckon(sir, getChildInDest.success).asTo('Child present in Dest').isGonnaBeTrue();
|
|
133
133
|
});
|
|
134
|
-
await
|
|
134
|
+
await ifWe(sir, `verify getChildInDest.ibGibs`, async () => {
|
|
135
135
|
const firstChild = getChildInDest.ibGibs?.[0];
|
|
136
136
|
console.log(`${lc} firstChild: ${pretty(firstChild)}`);
|
|
137
137
|
iReckon(sir, firstChild?.data?.n).asTo('Child content matches').isGonnaBe(2);
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
catch (error) {
|
|
141
|
-
await
|
|
141
|
+
await ifWe(sir, `doh`, async () => {
|
|
142
142
|
// hack here I'm getting tired...
|
|
143
143
|
iReckon(sir, true).asTo(`error: ${extractErrorMsg(error)}`).isGonnaBeFalse();
|
|
144
144
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-innerspace.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace.respec.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACH,WAAW,
|
|
1
|
+
{"version":3,"file":"sync-innerspace.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { KeystoneIbGib_V1 } from "../keystone/keystone-types.mjs";
|
|
|
4
4
|
import { KeystoneService_V1 } from "../keystone/keystone-service-v1.mjs";
|
|
5
5
|
import { MetaspaceService } from "../witness/space/metaspace/metaspace-types.mjs";
|
|
6
6
|
import { SyncStage } from "./sync-constants.mjs";
|
|
7
|
-
import { SyncIbGib_V1 } from "./sync-types.mjs";
|
|
7
|
+
import { SyncIbGib_V1, SyncConflictStrategy, SyncOptions } from "./sync-types.mjs";
|
|
8
8
|
import { SyncSagaMessageData_V1 } from "./sync-saga-message/sync-saga-message-types.mjs";
|
|
9
9
|
import { SyncSagaInfo } from "./sync-types.mjs";
|
|
10
10
|
import { SyncPeerWitness } from "./sync-peer/sync-peer-types.mjs";
|
|
@@ -40,13 +40,7 @@ export declare class SyncSagaCoordinator {
|
|
|
40
40
|
* @param opts.domainIbGibs - The root ibgibs defining the scope of the sync.
|
|
41
41
|
* @param opts.useSessionIdentity - (Optional) Whether to create an ephemeral session identity. Default: true.
|
|
42
42
|
*/
|
|
43
|
-
sync({ peer, localSpace, metaspace, domainIbGibs, useSessionIdentity, }:
|
|
44
|
-
peer: SyncPeerWitness;
|
|
45
|
-
localSpace: IbGibSpaceAny;
|
|
46
|
-
metaspace: MetaspaceService;
|
|
47
|
-
domainIbGibs: IbGib_V1[];
|
|
48
|
-
useSessionIdentity: boolean;
|
|
49
|
-
}): Promise<SyncSagaInfo>;
|
|
43
|
+
sync({ peer, localSpace: _localSpace, source: _source, metaspace, domainIbGibs, conflictStrategy, useSessionIdentity, }: SyncOptions): Promise<SyncSagaInfo>;
|
|
50
44
|
protected getSessionIdentity({ sagaId, metaspace, tempSpace, }: {
|
|
51
45
|
sagaId: string;
|
|
52
46
|
metaspace: MetaspaceService;
|
|
@@ -79,6 +73,18 @@ export declare class SyncSagaCoordinator {
|
|
|
79
73
|
tempSpace: IbGibSpaceAny;
|
|
80
74
|
metaspace: MetaspaceService;
|
|
81
75
|
}): Promise<IbGib_V1[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Helper to get Knowledge Vector for specific domain ibGibs or TJPs.
|
|
78
|
+
* Useful for testing and external validation.
|
|
79
|
+
*/
|
|
80
|
+
getKnowledgeVector({ space, metaspace, domainIbGibs, tjpAddrs, }: {
|
|
81
|
+
space: IbGibSpaceAny;
|
|
82
|
+
metaspace: MetaspaceService;
|
|
83
|
+
domainIbGibs?: IbGib_V1[];
|
|
84
|
+
tjpAddrs?: string[];
|
|
85
|
+
}): Promise<{
|
|
86
|
+
[tjp: string]: string | null;
|
|
87
|
+
}>;
|
|
82
88
|
protected analyzeTimelines({ domainIbGibs, space, }: {
|
|
83
89
|
domainIbGibs: IbGib_V1[];
|
|
84
90
|
space: IbGibSpaceAny;
|
|
@@ -101,13 +107,14 @@ export declare class SyncSagaCoordinator {
|
|
|
101
107
|
* Generates the first frame containing the Knowledge Vector of the Local Space.
|
|
102
108
|
* This is sent to the Receiver to begin Gap Analysis.
|
|
103
109
|
*/
|
|
104
|
-
protected createInitFrame({ sagaId, sessionIdentity, localSpace, domainIbGibs, tempSpace, metaspace }: {
|
|
110
|
+
protected createInitFrame({ sagaId, sessionIdentity, localSpace, domainIbGibs, tempSpace, metaspace, conflictStrategy, }: {
|
|
105
111
|
sagaId: string;
|
|
106
112
|
sessionIdentity?: KeystoneIbGib_V1;
|
|
107
113
|
localSpace: IbGibSpaceAny;
|
|
108
114
|
domainIbGibs: IbGib_V1[];
|
|
109
115
|
tempSpace: IbGibSpaceAny;
|
|
110
116
|
metaspace: MetaspaceService;
|
|
117
|
+
conflictStrategy: SyncConflictStrategy;
|
|
111
118
|
}): Promise<{
|
|
112
119
|
sagaFrame: SyncIbGib_V1;
|
|
113
120
|
srcGraph: {
|
|
@@ -211,15 +218,18 @@ export declare class SyncSagaCoordinator {
|
|
|
211
218
|
payloadIbGibs?: IbGib_V1[];
|
|
212
219
|
receivedPayloadIbGibs?: IbGib_V1[];
|
|
213
220
|
} | null>;
|
|
214
|
-
protected handleCommitFrame({ sagaIbGib, space, }: {
|
|
221
|
+
protected handleCommitFrame({ sagaIbGib, space, metaspace, }: {
|
|
215
222
|
sagaIbGib: SyncIbGib_V1;
|
|
216
223
|
space: IbGibSpaceAny;
|
|
224
|
+
metaspace: MetaspaceService;
|
|
225
|
+
identity?: KeystoneIbGib_V1;
|
|
217
226
|
}): Promise<{
|
|
218
227
|
frame: SyncIbGib_V1;
|
|
219
228
|
payloadIbGibs?: IbGib_V1[];
|
|
220
229
|
} | null>;
|
|
221
|
-
protected handleConflictFrame({ sagaIbGib, space, }: {
|
|
230
|
+
protected handleConflictFrame({ sagaIbGib, metaspace, space, }: {
|
|
222
231
|
sagaIbGib: SyncIbGib_V1;
|
|
232
|
+
metaspace: MetaspaceService;
|
|
223
233
|
space: IbGibSpaceAny;
|
|
224
234
|
}): Promise<{
|
|
225
235
|
frame: SyncIbGib_V1;
|
|
@@ -233,12 +243,13 @@ export declare class SyncSagaCoordinator {
|
|
|
233
243
|
/**
|
|
234
244
|
* Evolves the saga timeline with a new frame.
|
|
235
245
|
*/
|
|
236
|
-
protected evolveSyncSagaIbGib({ prevSagaIbGib, msgStones, identity, space, metaspace, }: {
|
|
246
|
+
protected evolveSyncSagaIbGib({ prevSagaIbGib, msgStones, identity, space, metaspace, conflictStrategy, }: {
|
|
237
247
|
prevSagaIbGib?: SyncIbGib_V1;
|
|
238
248
|
msgStones: IbGib_V1[];
|
|
239
249
|
identity?: KeystoneIbGib_V1;
|
|
240
250
|
space: IbGibSpaceAny;
|
|
241
251
|
metaspace: MetaspaceService;
|
|
252
|
+
conflictStrategy?: SyncConflictStrategy;
|
|
242
253
|
}): Promise<SyncIbGib_V1>;
|
|
243
254
|
protected getStageAndPayloadFromFrame({ ibGib, space }: {
|
|
244
255
|
ibGib: IbGib_V1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-saga-coordinator.d.mts","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.mts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAkB,MAAM,iCAAiC,CAAC;AAI3E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,SAAS,EAAkC,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EACU,YAAY,
|
|
1
|
+
{"version":3,"file":"sync-saga-coordinator.d.mts","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.mts"],"names":[],"mappings":"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"}
|