@ibgib/core-gib 0.1.17 → 0.1.19
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/CHANGELOG.md +5 -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.d.mts +7 -0
- package/dist/sync/sync-innerspace-deep-updates.respec.d.mts.map +1 -0
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs +128 -0
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -0
- package/dist/sync/sync-innerspace-dest-ahead.respec.d.mts +7 -0
- package/dist/sync/sync-innerspace-dest-ahead.respec.d.mts.map +1 -0
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +115 -0
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -0
- package/dist/sync/sync-innerspace-multiple-timelines.respec.d.mts +7 -0
- package/dist/sync/sync-innerspace-multiple-timelines.respec.d.mts.map +1 -0
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +121 -0
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -0
- 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 +15 -15
- package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
- package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.mjs +186 -40
- package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +7 -0
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
- package/package.json +1 -1
- package/src/sync/sync-innerspace-constants.respec.mts +133 -0
- package/src/sync/sync-innerspace-deep-updates.respec.mts +159 -0
- package/src/sync/sync-innerspace-dest-ahead.respec.mts +148 -0
- package/src/sync/sync-innerspace-multiple-timelines.respec.mts +144 -0
- package/src/sync/sync-innerspace-partial-update.respec.mts +150 -0
- package/src/sync/sync-innerspace.respec.mts +18 -17
- package/src/sync/sync-saga-coordinator.mts +202 -40
- package/src/sync/sync-saga-message/sync-saga-message-types.mts +5 -0
- package/tmp.md +206 -151
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module sync-innerspace-constants.respec
|
|
3
|
+
*
|
|
4
|
+
* Verifies syncing "Constants" (ibGibs without timelines/TJPs).
|
|
5
|
+
* Also verifies Smart Diff behavior (Constants shouldn't be re-sent).
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=sync-innerspace-constants.respec.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-constants.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-innerspace-constants.respec.mts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module sync-innerspace-constants.respec
|
|
3
|
+
*
|
|
4
|
+
* Verifies syncing "Constants" (ibGibs without timelines/TJPs).
|
|
5
|
+
* Also verifies Smart Diff behavior (Constants shouldn't be re-sent).
|
|
6
|
+
*/
|
|
7
|
+
import { respecfully, ifWeMight, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
8
|
+
const maam = `[${import.meta.url}]`, sir = maam;
|
|
9
|
+
import { delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
10
|
+
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
11
|
+
import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/index.mjs';
|
|
12
|
+
import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
|
|
13
|
+
import { putInSpace, getFromSpace } from '../witness/space/space-helper.mjs';
|
|
14
|
+
import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
|
|
15
|
+
import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace-v1.mjs';
|
|
16
|
+
import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
|
|
17
|
+
import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
|
|
18
|
+
import { getTestKeystoneServiceHelper } from '../agent-helpers.mjs';
|
|
19
|
+
const lc = `[sync-innerspace-constants.respec]`;
|
|
20
|
+
await respecfully(sir, `Sync Constants (No TJP)`, async () => {
|
|
21
|
+
await ifWeMight(sir, `Verify Constants Sync`, async () => {
|
|
22
|
+
// 1. Setup Spaces
|
|
23
|
+
const metaspace = new Metaspace_Innerspace(undefined);
|
|
24
|
+
await metaspace.initialize({
|
|
25
|
+
getFnAlert: () => async ({ title, msg }) => { },
|
|
26
|
+
getFnPrompt: () => async ({ title, msg }) => { return ''; },
|
|
27
|
+
getFnPromptPassword: () => async (title, msg) => { return null; },
|
|
28
|
+
});
|
|
29
|
+
while (!metaspace.initialized) {
|
|
30
|
+
await delay(10);
|
|
31
|
+
}
|
|
32
|
+
const sourceSpace = new InnerSpace_V1({
|
|
33
|
+
...DEFAULT_INNER_SPACE_DATA_V1,
|
|
34
|
+
name: 'source',
|
|
35
|
+
uuid: 'source_uuid',
|
|
36
|
+
description: 'source test space',
|
|
37
|
+
});
|
|
38
|
+
await sourceSpace.initialized;
|
|
39
|
+
const destSpace = new InnerSpace_V1({
|
|
40
|
+
...DEFAULT_INNER_SPACE_DATA_V1,
|
|
41
|
+
name: 'dest',
|
|
42
|
+
uuid: 'dest_uuid',
|
|
43
|
+
description: 'dest test space',
|
|
44
|
+
});
|
|
45
|
+
await destSpace.initialized;
|
|
46
|
+
// 2. Create Constant (C1) in Source
|
|
47
|
+
// Factory_V1.constant returns Promise<IbGib_V1>, not { newIbGib: ... }
|
|
48
|
+
const c1 = await Factory_V1.constant({
|
|
49
|
+
ib: 'constant_c1',
|
|
50
|
+
parentPrimitiveIb: 'root',
|
|
51
|
+
data: { some: 'data' },
|
|
52
|
+
});
|
|
53
|
+
const addrC1 = getIbGibAddr({ ibGib: c1 });
|
|
54
|
+
await putInSpace({ space: sourceSpace, ibGibs: [c1] });
|
|
55
|
+
const checkDest1 = await getFromSpace({ space: destSpace, addr: addrC1 });
|
|
56
|
+
iReckon(sir, checkDest1.success).asTo('Dest initially does not have C1').isGonnaBeFalse();
|
|
57
|
+
// 3. Setup Coordinator
|
|
58
|
+
const mockKeystone = await getTestKeystoneServiceHelper();
|
|
59
|
+
const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
60
|
+
const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
61
|
+
const peer = new SyncPeerInnerspace_V1({
|
|
62
|
+
senderSpace: sourceSpace,
|
|
63
|
+
receiverSpace: destSpace,
|
|
64
|
+
receiverCoordinator: receiverCoordinator,
|
|
65
|
+
receiverMetaspace: metaspace,
|
|
66
|
+
});
|
|
67
|
+
// 4. Sync C1 (First Pass)
|
|
68
|
+
let resSync = await senderCoordinator.sync({
|
|
69
|
+
peer: peer,
|
|
70
|
+
localSpace: sourceSpace,
|
|
71
|
+
metaspace: metaspace,
|
|
72
|
+
domainIbGibs: [c1],
|
|
73
|
+
useSessionIdentity: false,
|
|
74
|
+
});
|
|
75
|
+
await resSync.done;
|
|
76
|
+
iReckon(sir, true).asTo('Sync execution 1 completes').isGonnaBeTrue();
|
|
77
|
+
// Verify C1 in Dest
|
|
78
|
+
const getC1Dest = await getFromSpace({ space: destSpace, addr: addrC1 });
|
|
79
|
+
iReckon(sir, getC1Dest.success && !!getC1Dest.ibGibs[0]).asTo('Dest has C1 after sync').isGonnaBeTrue();
|
|
80
|
+
// 5. Sync C1 (Second Pass - Idempotency / Smart Diff)
|
|
81
|
+
// Should NOT send payload again.
|
|
82
|
+
resSync = await senderCoordinator.sync({
|
|
83
|
+
peer: peer,
|
|
84
|
+
localSpace: sourceSpace,
|
|
85
|
+
metaspace: metaspace,
|
|
86
|
+
domainIbGibs: [c1],
|
|
87
|
+
useSessionIdentity: false,
|
|
88
|
+
});
|
|
89
|
+
await resSync.done;
|
|
90
|
+
iReckon(sir, true).asTo('Sync execution 2 (idempotent) completes').isGonnaBeTrue();
|
|
91
|
+
// 6. Create "Constant with Dependency" (C2 -> C1)
|
|
92
|
+
const c2 = await Factory_V1.constant({
|
|
93
|
+
ib: 'constant_c2',
|
|
94
|
+
parentPrimitiveIb: 'root',
|
|
95
|
+
rel8ns: {
|
|
96
|
+
link: [addrC1], // C2 links to C1
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
const addrC2 = getIbGibAddr({ ibGib: c2 });
|
|
100
|
+
await putInSpace({ space: sourceSpace, ibGibs: [c2] });
|
|
101
|
+
// Sync C2
|
|
102
|
+
resSync = await senderCoordinator.sync({
|
|
103
|
+
peer: peer,
|
|
104
|
+
localSpace: sourceSpace,
|
|
105
|
+
metaspace: metaspace,
|
|
106
|
+
domainIbGibs: [c2],
|
|
107
|
+
useSessionIdentity: false,
|
|
108
|
+
});
|
|
109
|
+
await resSync.done;
|
|
110
|
+
iReckon(sir, true).asTo('Sync C2 completes').isGonnaBeTrue();
|
|
111
|
+
// Verify C2 in Dest
|
|
112
|
+
const getC2Dest = await getFromSpace({ space: destSpace, addr: addrC2 });
|
|
113
|
+
iReckon(sir, getC2Dest.success).asTo('Dest has C2').isGonnaBeTrue();
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=sync-innerspace-constants.respec.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-constants.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-constants.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-deep-updates.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-innerspace-deep-updates.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module sync-innerspace-deep-updates.respec
|
|
3
|
+
*
|
|
4
|
+
* Verifies Complex Sync Scenarios using InnerSpace.
|
|
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 { getDependencyGraph } from '../common/other/graph-helper.mjs';
|
|
11
|
+
import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
|
|
12
|
+
import { getFromSpace } from '../witness/space/space-helper.mjs';
|
|
13
|
+
import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
|
|
14
|
+
import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
|
|
15
|
+
import { createTimelineRootHelper, getTestKeystoneServiceHelper } from '../agent-helpers.mjs';
|
|
16
|
+
import { mut8Timeline } from '../timeline/timeline-api.mjs';
|
|
17
|
+
import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace-v1.mjs';
|
|
18
|
+
import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
|
|
19
|
+
const logalot = true;
|
|
20
|
+
const lc = `[sync-innerspace-deep-updates.respec]`;
|
|
21
|
+
await respecfully(sir, `Sync InnerSpaces (Deep Updates)`, async () => {
|
|
22
|
+
let metaspace;
|
|
23
|
+
let sourceSpace;
|
|
24
|
+
let destSpace;
|
|
25
|
+
await respecfully(sir, `Deep Updates (Push Source -> Dest)`, async () => {
|
|
26
|
+
// 1. Setup Spaces
|
|
27
|
+
metaspace = new Metaspace_Innerspace(undefined);
|
|
28
|
+
await metaspace.initialize({
|
|
29
|
+
getFnAlert: () => async ({ title, msg }) => { console.log(`[Alert] ${title}: ${msg}`); },
|
|
30
|
+
getFnPrompt: () => async ({ title, msg }) => { console.log(`[Prompt] ${title}: ${msg}`); return ''; },
|
|
31
|
+
getFnPromptPassword: () => async (title, msg) => { console.log(`[PromptPwd] ${title}: ${msg}`); return null; },
|
|
32
|
+
});
|
|
33
|
+
while (!metaspace.initialized) {
|
|
34
|
+
await delay(10);
|
|
35
|
+
}
|
|
36
|
+
const defaultLocalUserSpace = await metaspace.getLocalUserSpace({ lock: false });
|
|
37
|
+
await defaultLocalUserSpace.initialized;
|
|
38
|
+
sourceSpace = new InnerSpace_V1({
|
|
39
|
+
...DEFAULT_INNER_SPACE_DATA_V1,
|
|
40
|
+
name: 'source',
|
|
41
|
+
uuid: 'source_uuid',
|
|
42
|
+
description: 'source test space',
|
|
43
|
+
});
|
|
44
|
+
await sourceSpace.initialized;
|
|
45
|
+
destSpace = new InnerSpace_V1({
|
|
46
|
+
...DEFAULT_INNER_SPACE_DATA_V1,
|
|
47
|
+
name: 'dest',
|
|
48
|
+
uuid: 'dest_uuid',
|
|
49
|
+
description: 'dest test space',
|
|
50
|
+
});
|
|
51
|
+
await destSpace.initialized;
|
|
52
|
+
// 2. Seed Source Data (Deep History)
|
|
53
|
+
console.log(`${lc} Creating deep data in Source...`);
|
|
54
|
+
// Root -> Comment (Child) -> Edit Comment (Child v2)
|
|
55
|
+
const root = await createTimelineRootHelper({
|
|
56
|
+
ib: 'timeline_root_deep',
|
|
57
|
+
data: { type: 'root', label: 'Root' },
|
|
58
|
+
space: sourceSpace,
|
|
59
|
+
});
|
|
60
|
+
// n=1
|
|
61
|
+
const commentV1 = await mut8Timeline({
|
|
62
|
+
timeline: root,
|
|
63
|
+
mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'Hello World' } },
|
|
64
|
+
metaspace,
|
|
65
|
+
space: sourceSpace,
|
|
66
|
+
});
|
|
67
|
+
// n=2 (Edit)
|
|
68
|
+
const commentV2 = await mut8Timeline({
|
|
69
|
+
timeline: commentV1,
|
|
70
|
+
mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'Hello Sync' } },
|
|
71
|
+
metaspace,
|
|
72
|
+
space: sourceSpace,
|
|
73
|
+
});
|
|
74
|
+
const addrV2 = getIbGibAddr({ ibGib: commentV2 });
|
|
75
|
+
// 3. Setup
|
|
76
|
+
const mockKeystone = await getTestKeystoneServiceHelper();
|
|
77
|
+
const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
78
|
+
const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
79
|
+
const peer = new SyncPeerInnerspace_V1({
|
|
80
|
+
senderSpace: sourceSpace,
|
|
81
|
+
receiverSpace: destSpace,
|
|
82
|
+
receiverCoordinator: receiverCoordinator,
|
|
83
|
+
receiverMetaspace: metaspace,
|
|
84
|
+
});
|
|
85
|
+
// 4. Run Sync
|
|
86
|
+
console.log(`${lc} Running Sync...`);
|
|
87
|
+
// Debug Source Graph
|
|
88
|
+
const sourceGraph = await getDependencyGraph({ ibGib: commentV2, space: sourceSpace });
|
|
89
|
+
console.log(`${lc} Source Graph count: ${sourceGraph ? Object.keys(sourceGraph).length : 'null'}`);
|
|
90
|
+
const resSync = await senderCoordinator.sync({
|
|
91
|
+
peer: peer,
|
|
92
|
+
localSpace: sourceSpace,
|
|
93
|
+
metaspace: metaspace,
|
|
94
|
+
domainIbGibs: [commentV2], // Sync the TIP
|
|
95
|
+
useSessionIdentity: false,
|
|
96
|
+
});
|
|
97
|
+
await resSync.done;
|
|
98
|
+
// 5. Verify Dest
|
|
99
|
+
console.log(`${lc} Verifying Destination...`);
|
|
100
|
+
await ifWe(sir, `verify deep timeline present`, async () => {
|
|
101
|
+
// Verify Tip (V2)
|
|
102
|
+
const getV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
|
|
103
|
+
iReckon(sir, getV2.success).asTo('Tip V2 present').isGonnaBeTrue();
|
|
104
|
+
const v2IbGib = getV2.ibGibs[0];
|
|
105
|
+
iReckon(sir, v2IbGib.data.label).asTo('Label V2 match').isGonnaBe('Hello Sync');
|
|
106
|
+
// iReckon(sir, v2IbGib.data!.n).asTo('n=2').isGonnaBe(2); // Relaxing n check for now
|
|
107
|
+
// Verify Past Frame (V1) availability
|
|
108
|
+
// Sync should transfer dependencies (past frames)
|
|
109
|
+
// Rel8ns are accretive, so we check the LAST one.
|
|
110
|
+
const pastAddr = v2IbGib.rel8ns?.past?.at(-1);
|
|
111
|
+
if (pastAddr) {
|
|
112
|
+
const getV1 = await getFromSpace({ space: destSpace, addr: pastAddr });
|
|
113
|
+
iReckon(sir, getV1.success).asTo('Past Frame (V1) present').isGonnaBeTrue();
|
|
114
|
+
iReckon(sir, getV1.ibGibs?.[0]?.data?.label).asTo('Label V1 match').isGonnaBe('Hello World');
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
iReckon(sir, false).asTo('Past relation present').isGonnaBeTrue();
|
|
118
|
+
}
|
|
119
|
+
// Verify Full Graph Integrity (DNA, Roots)
|
|
120
|
+
const graph = await getDependencyGraph({ ibGib: v2IbGib, space: destSpace });
|
|
121
|
+
iReckon(sir, !!graph).asTo('Dependency Graph resolvable in Dest').isGonnaBeTrue();
|
|
122
|
+
// Should contain Root, V1, V2
|
|
123
|
+
// We can check counts or specific existence.
|
|
124
|
+
iReckon(sir, Object.keys(graph).length > 2).asTo('Graph size > 2').isGonnaBeTrue();
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=sync-innerspace-deep-updates.respec.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-deep-updates.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-deep-updates.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,WAAW,EAAa,IAAI,EAAE,OAAO,EAExC,MAAM,kDAAkD,CAAC;AAC1D,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;AAChD,OAAO,EAAE,KAAK,EAA2B,MAAM,iDAAiD,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAc,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0EAA0E,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AAGjG,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,EAAE,GAAG,uCAAuC,CAAC;AAEnD,MAAM,WAAW,CAAC,GAAG,EAAE,iCAAiC,EAAE,KAAK,IAAI,EAAE;IAEjE,IAAI,SAA+B,CAAC;IACpC,IAAI,WAA0B,CAAC;IAC/B,IAAI,SAAwB,CAAC;IAS7B,MAAM,WAAW,CAAC,GAAG,EAAE,oCAAoC,EAAE,KAAK,IAAI,EAAE;QACpE,kBAAkB;QAClB,SAAS,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC,UAAU,CAAC;YACvB,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACxF,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACrG,mBAAmB,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;SACjH,CAAC,CAAC;QACH,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QAEnD,MAAM,qBAAqB,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,MAAM,qBAAsB,CAAC,WAAW,CAAC;QAEzC,WAAW,GAAG,IAAI,aAAa,CAAC;YAC5B,GAAG,2BAA2B;YAC9B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,mBAAmB;SACnC,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,WAAW,CAAC;QAE9B,SAAS,GAAG,IAAI,aAAa,CAAC;YAC1B,GAAG,2BAA2B;YAC9B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,iBAAiB;SACjC,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,WAAW,CAAC;QAE5B,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;QAErD,qDAAqD;QACrD,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAW;YAClD,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YACrC,KAAK,EAAE,WAAW;SACrB,CAAC,CAAC;QAEH,MAAM;QACN,MAAM,SAAS,GAAG,MAAM,YAAY,CAAW;YAC3C,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YACzE,SAAS;YACT,KAAK,EAAE,WAAW;SACrB,CAAC,CAAC;QAEH,aAAa;QACb,MAAM,SAAS,GAAG,MAAM,YAAY,CAAW;YAC3C,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YACxE,SAAS;YACT,KAAK,EAAE,WAAW;SACrB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAElD,WAAW;QACX,MAAM,YAAY,GAAG,MAAM,4BAA4B,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAC;YACnC,WAAW,EAAE,WAAW;YACxB,aAAa,EAAE,SAAS;YACxB,mBAAmB,EAAE,mBAAmB;YACxC,iBAAiB,EAAE,SAAS;SAC/B,CAAC,CAAC;QAEH,cAAc;QACd,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACrC,qBAAqB;QACrB,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAwB,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAEnG,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC;YACzC,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,CAAC,SAAS,CAAC,EAAE,eAAe;YAC1C,kBAAkB,EAAE,KAAK;SAC5B,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,IAAI,CAAC;QAEnB,iBAAiB;QACjB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;QAE9C,MAAM,IAAI,CAAC,GAAG,EAAE,8BAA8B,EAAE,KAAK,IAAI,EAAE;YACvD,kBAAkB;YAClB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,aAAa,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACjF,sFAAsF;YAEtF,sCAAsC;YACtC,kDAAkD;YAClD,kDAAkD;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,aAAa,EAAE,CAAC;gBAC5E,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACjG,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,aAAa,EAAE,CAAC;YACtE,CAAC;YAED,2CAA2C;YAC3C,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAE7E,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,aAAa,EAAE,CAAC;YAClF,8BAA8B;YAC9B,6CAA6C;YAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,aAAa,EAAE,CAAC;QACxF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-dest-ahead.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-innerspace-dest-ahead.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module sync-innerspace-dest-ahead.respec
|
|
3
|
+
*
|
|
4
|
+
* Verifies Complex Sync Scenarios using InnerSpace.
|
|
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-dest-ahead.respec]`;
|
|
20
|
+
await respecfully(sir, `Sync InnerSpaces (Dest Ahead)`, async () => {
|
|
21
|
+
let metaspace;
|
|
22
|
+
let sourceSpace;
|
|
23
|
+
let destSpace;
|
|
24
|
+
await respecfully(sir, `Dest Ahead (Remote Newer)`, 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. Seed Data
|
|
52
|
+
// Root -> V1 (Shared) -> V2 (Dest has New)
|
|
53
|
+
// Source only has V1.
|
|
54
|
+
const root = await createTimelineRootHelper({
|
|
55
|
+
ib: 'timeline_root_ff',
|
|
56
|
+
data: { type: 'root', label: 'Root' },
|
|
57
|
+
space: sourceSpace,
|
|
58
|
+
});
|
|
59
|
+
// V1 (Both have it, but we create in source and copy to dest)
|
|
60
|
+
const v1 = await mut8Timeline({
|
|
61
|
+
timeline: root,
|
|
62
|
+
mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'V1' } },
|
|
63
|
+
metaspace,
|
|
64
|
+
space: sourceSpace,
|
|
65
|
+
});
|
|
66
|
+
// Transfer Root & V1 to Dest
|
|
67
|
+
await putInSpace({ space: destSpace, ibGibs: [root, v1] }); // Naive seeding
|
|
68
|
+
// V2 (Created in Dest ONLY)
|
|
69
|
+
const v2 = await mut8Timeline({
|
|
70
|
+
timeline: v1, // v1 is in memory, linked to source, but we want to Mutate IN DEST SPACE
|
|
71
|
+
mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'V2' } },
|
|
72
|
+
metaspace,
|
|
73
|
+
space: destSpace, // Mutate in Dest
|
|
74
|
+
});
|
|
75
|
+
const addrV2 = getIbGibAddr({ ibGib: v2 });
|
|
76
|
+
await ifWe(sir, 'verify setup', async () => {
|
|
77
|
+
// Ensure V2 is ONLY in Dest (it is, per `space: destSpace`)
|
|
78
|
+
// Ensure Source does NOT have V2
|
|
79
|
+
const checkV2InSource = await getFromSpace({ space: sourceSpace, addr: addrV2 });
|
|
80
|
+
iReckon(sir, checkV2InSource.success && !!checkV2InSource.ibGibs?.length).asTo('Source has V2').isGonnaBeFalse();
|
|
81
|
+
});
|
|
82
|
+
// 3. Setup Sync
|
|
83
|
+
const mockKeystone = await getTestKeystoneServiceHelper();
|
|
84
|
+
const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
85
|
+
const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
86
|
+
const peer = new SyncPeerInnerspace_V1({
|
|
87
|
+
senderSpace: sourceSpace,
|
|
88
|
+
receiverSpace: destSpace,
|
|
89
|
+
receiverCoordinator: receiverCoordinator,
|
|
90
|
+
receiverMetaspace: metaspace,
|
|
91
|
+
});
|
|
92
|
+
// 4. Run Sync (Source Pushes V1)
|
|
93
|
+
console.log(`${lc} Running Sync...`);
|
|
94
|
+
const resSync = await senderCoordinator.sync({
|
|
95
|
+
peer: peer,
|
|
96
|
+
localSpace: sourceSpace,
|
|
97
|
+
metaspace: metaspace,
|
|
98
|
+
domainIbGibs: [v1], // Source tries to push V1
|
|
99
|
+
useSessionIdentity: false,
|
|
100
|
+
});
|
|
101
|
+
await resSync.done;
|
|
102
|
+
// 5. Verify Dest (Should still have V2 as latest)
|
|
103
|
+
console.log(`${lc} Verifying Destination...`);
|
|
104
|
+
await ifWe(sir, `verify dest stays ahead`, async () => {
|
|
105
|
+
// Verify Tip (V2)
|
|
106
|
+
const getV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
|
|
107
|
+
iReckon(sir, getV2.success).asTo('V2 still present in Dest').isGonnaBeTrue();
|
|
108
|
+
// Verify V2 points to V1
|
|
109
|
+
const v2IbGib = getV2.ibGibs[0];
|
|
110
|
+
const pastAddr = v2IbGib.rel8ns?.past?.at(-1);
|
|
111
|
+
iReckon(sir, pastAddr === getIbGibAddr({ ibGib: v1 })).asTo('V2 points to V1').isGonnaBeTrue();
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=sync-innerspace-dest-ahead.respec.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-dest-ahead.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-dest-ahead.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-innerspace-multiple-timelines.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-innerspace-multiple-timelines.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module sync-innerspace-multiple-timelines.respec
|
|
3
|
+
*
|
|
4
|
+
* Verifies Complex Sync Scenarios using InnerSpace.
|
|
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 { 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-multiple-timelines.respec]`;
|
|
20
|
+
await respecfully(sir, `Sync InnerSpaces (Multiple Timelines)`, async () => {
|
|
21
|
+
let metaspace;
|
|
22
|
+
let sourceSpace;
|
|
23
|
+
let destSpace;
|
|
24
|
+
await respecfully(sir, `Multiple Timelines (Push Source -> Dest)`, async () => {
|
|
25
|
+
// 1. Setup Spaces
|
|
26
|
+
metaspace = new Metaspace_Innerspace(undefined);
|
|
27
|
+
await metaspace.initialize({
|
|
28
|
+
getFnAlert: () => async ({ title, msg }) => { console.log(`[Alert] ${title}: ${msg}`); },
|
|
29
|
+
getFnPrompt: () => async ({ title, msg }) => { console.log(`[Prompt] ${title}: ${msg}`); return ''; },
|
|
30
|
+
getFnPromptPassword: () => async (title, msg) => { console.log(`[PromptPwd] ${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. Seed Source Data (Multiple Independent Timelines)
|
|
52
|
+
console.log(`${lc} Creating data in Source...`);
|
|
53
|
+
// Timeline A
|
|
54
|
+
const rootA = await createTimelineRootHelper({
|
|
55
|
+
ib: 'timeline_root_A',
|
|
56
|
+
data: { type: 'root', label: 'A' },
|
|
57
|
+
space: sourceSpace,
|
|
58
|
+
});
|
|
59
|
+
const childA = await mut8Timeline({
|
|
60
|
+
timeline: rootA,
|
|
61
|
+
mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'A1' } },
|
|
62
|
+
metaspace,
|
|
63
|
+
space: sourceSpace,
|
|
64
|
+
});
|
|
65
|
+
const addrA = getIbGibAddr({ ibGib: childA });
|
|
66
|
+
// Timeline B
|
|
67
|
+
const rootB = await createTimelineRootHelper({
|
|
68
|
+
ib: 'timeline_root_B',
|
|
69
|
+
data: { type: 'root', label: 'B' },
|
|
70
|
+
space: sourceSpace,
|
|
71
|
+
});
|
|
72
|
+
// B has deeper history
|
|
73
|
+
const childB1 = await mut8Timeline({
|
|
74
|
+
timeline: rootB,
|
|
75
|
+
mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'B1' } },
|
|
76
|
+
metaspace,
|
|
77
|
+
space: sourceSpace,
|
|
78
|
+
});
|
|
79
|
+
const childB2 = await mut8Timeline({
|
|
80
|
+
timeline: childB1,
|
|
81
|
+
mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'B2' } },
|
|
82
|
+
metaspace,
|
|
83
|
+
space: sourceSpace,
|
|
84
|
+
});
|
|
85
|
+
const addrB = getIbGibAddr({ ibGib: childB2 });
|
|
86
|
+
// 3. Setup Coordinators & Peer
|
|
87
|
+
const mockKeystone = await getTestKeystoneServiceHelper();
|
|
88
|
+
const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
89
|
+
const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
90
|
+
const peer = new SyncPeerInnerspace_V1({
|
|
91
|
+
senderSpace: sourceSpace,
|
|
92
|
+
receiverSpace: destSpace,
|
|
93
|
+
receiverCoordinator: receiverCoordinator,
|
|
94
|
+
receiverMetaspace: metaspace,
|
|
95
|
+
});
|
|
96
|
+
// 4. Run Sync (Push Both)
|
|
97
|
+
console.log(`${lc} Running Sync...`);
|
|
98
|
+
const resSync = await senderCoordinator.sync({
|
|
99
|
+
peer: peer,
|
|
100
|
+
localSpace: sourceSpace,
|
|
101
|
+
metaspace: metaspace,
|
|
102
|
+
domainIbGibs: [childA, childB2], // Sync both tips
|
|
103
|
+
useSessionIdentity: false,
|
|
104
|
+
});
|
|
105
|
+
await resSync.done;
|
|
106
|
+
// await delay(100); // Wait for flush?
|
|
107
|
+
// 5. Verify Dest
|
|
108
|
+
console.log(`${lc} Verifying Destination...`);
|
|
109
|
+
await ifWe(sir, `verify timelines present`, async () => {
|
|
110
|
+
// Verify A
|
|
111
|
+
const getA = await getFromSpace({ space: destSpace, addr: addrA });
|
|
112
|
+
iReckon(sir, getA.success).asTo('Timeline A present').isGonnaBeTrue();
|
|
113
|
+
iReckon(sir, getA.ibGibs?.[0]?.data?.label).asTo('Label A match').isGonnaBe('A1');
|
|
114
|
+
// Verify B
|
|
115
|
+
const getB = await getFromSpace({ space: destSpace, addr: addrB });
|
|
116
|
+
iReckon(sir, getB.success).asTo('Timeline B present').isGonnaBeTrue();
|
|
117
|
+
iReckon(sir, getB.ibGibs?.[0]?.data?.label).asTo('Label B match').isGonnaBe('B2');
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=sync-innerspace-multiple-timelines.respec.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|