@ibgib/core-gib 0.1.21 → 0.1.23
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/graph-helper.d.mts +8 -0
- package/dist/common/other/graph-helper.d.mts.map +1 -1
- package/dist/common/other/graph-helper.mjs +31 -1
- package/dist/common/other/graph-helper.mjs.map +1 -1
- package/dist/sync/sync-conflict.respec.mjs +31 -28
- package/dist/sync/sync-conflict.respec.mjs.map +1 -1
- package/dist/sync/sync-constants.d.mts +21 -11
- package/dist/sync/sync-constants.d.mts.map +1 -1
- package/dist/sync/sync-constants.mjs +18 -6
- package/dist/sync/sync-constants.mjs.map +1 -1
- package/dist/sync/sync-helpers.d.mts +24 -15
- package/dist/sync/sync-helpers.d.mts.map +1 -1
- package/dist/sync/sync-helpers.mjs +163 -92
- package/dist/sync/sync-helpers.mjs.map +1 -1
- package/dist/sync/sync-innerspace-constants.respec.mjs +12 -7
- package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs +12 -7
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +15 -10
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +13 -7
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-partial-update.respec.mjs +15 -7
- package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace.respec.mjs +13 -7
- 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 +65 -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 +44 -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 +183 -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 +28 -0
- package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-v1.d.mts +51 -9
- package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-v1.mjs +244 -26
- package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts +26 -10
- 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 +119 -30
- 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 +31 -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 +81 -87
- package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.mjs +627 -571
- package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +105 -22
- package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
- package/dist/sync/sync-types.d.mts +56 -76
- package/dist/sync/sync-types.d.mts.map +1 -1
- package/dist/sync/sync-types.mjs +5 -0
- package/dist/sync/sync-types.mjs.map +1 -1
- package/dist/timeline/timeline-api.d.mts.map +1 -1
- package/dist/timeline/timeline-api.mjs +15 -8
- package/dist/timeline/timeline-api.mjs.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/package.json +1 -1
- package/src/common/other/graph-helper.mts +26 -1
- package/src/sync/README.md +31 -22
- package/src/sync/sync-conflict.respec.mts +31 -26
- package/src/sync/sync-constants.mts +19 -9
- package/src/sync/sync-helpers.mts +173 -97
- package/src/sync/sync-innerspace-constants.respec.mts +12 -7
- package/src/sync/sync-innerspace-deep-updates.respec.mts +12 -7
- package/src/sync/sync-innerspace-dest-ahead.respec.mts +14 -9
- package/src/sync/sync-innerspace-multiple-timelines.respec.mts +13 -7
- package/src/sync/sync-innerspace-partial-update.respec.mts +15 -7
- package/src/sync/sync-innerspace.respec.mts +13 -7
- 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 +72 -0
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +193 -0
- package/src/sync/sync-peer/sync-peer-types.mts +30 -1
- package/src/sync/sync-peer/sync-peer-v1.mts +229 -30
- package/src/sync/sync-saga-context/sync-saga-context-helpers.mts +140 -43
- package/src/sync/sync-saga-context/sync-saga-context-types.mts +34 -30
- package/src/sync/sync-saga-coordinator.mts +678 -660
- package/src/sync/sync-saga-message/sync-saga-message-types.mts +106 -22
- package/src/sync/sync-types.mts +59 -87
- package/src/timeline/timeline-api.mts +17 -10
- 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 +0 -0
- package/tmp.md +62 -44
- 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 -42
- 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 -194
- 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/sync-local-spaces.respec.mts +0 -200
- package/src/sync/sync-peer/sync-peer-innerspace-v1.mts +0 -240
- package/src/sync/sync-saga-coordinator.respec.mts +0 -52
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { rm } from 'node:fs/promises';
|
|
2
|
-
import { default as pathUtils } from 'path';
|
|
3
|
-
import { respecfully, lastOfAll } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
4
|
-
const maam = `[${import.meta.url}]`, sir = maam;
|
|
5
|
-
import { IBGIB_ENCODING } from '../witness/space/filesystem-space/filesystem-constants.mjs';
|
|
6
|
-
import { NodeFilesystemSpace_V1 } from '../witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.mjs';
|
|
7
|
-
import { getUUID } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
8
|
-
const logalot = true;
|
|
9
|
-
const lc = `[sync-local-spaces.respec]`;
|
|
10
|
-
// Helper to create a temp space
|
|
11
|
-
const createTempSpace = async ({ baseDir, name }) => {
|
|
12
|
-
const uuid = await getUUID();
|
|
13
|
-
const initialData = {
|
|
14
|
-
version: '1',
|
|
15
|
-
classname: NodeFilesystemSpace_V1.name,
|
|
16
|
-
uuid,
|
|
17
|
-
name,
|
|
18
|
-
description: `Temp space for ${name}`,
|
|
19
|
-
baseDir,
|
|
20
|
-
baseSubPath: 'ibgib', // keep short to avoid long path issues
|
|
21
|
-
spaceSubPath: name,
|
|
22
|
-
ibgibsSubPath: 'ibgibs',
|
|
23
|
-
metaSubPath: 'meta',
|
|
24
|
-
binSubPath: 'bin',
|
|
25
|
-
dnaSubPath: 'dna',
|
|
26
|
-
encoding: IBGIB_ENCODING,
|
|
27
|
-
mitigateLongPaths: true,
|
|
28
|
-
// other defaults
|
|
29
|
-
catchAllErrors: false,
|
|
30
|
-
trace: false,
|
|
31
|
-
};
|
|
32
|
-
// mimic constructor logic if needed, or just new it up
|
|
33
|
-
const space = new NodeFilesystemSpace_V1(initialData);
|
|
34
|
-
// Explicitly initialize if needed (based on findings, constructor calls super which calls initialize?
|
|
35
|
-
// Actually source had it commented out in ctor. Let's call it via a witness "put" which should verify initialization)
|
|
36
|
-
return space;
|
|
37
|
-
};
|
|
38
|
-
// class MockKeystoneService implements KeystoneService_V1 {
|
|
39
|
-
// async getIdentity(): Promise<KeystoneIbGib_V1> {
|
|
40
|
-
// // Return a dummy identity
|
|
41
|
-
// const res = await Factory_V1.firstGen({
|
|
42
|
-
// ib: 'identity',
|
|
43
|
-
// data: { uuid: await getUUID() },
|
|
44
|
-
// dna: true,
|
|
45
|
-
// });
|
|
46
|
-
// return res.newIbGib as KeystoneIbGib_V1;
|
|
47
|
-
// }
|
|
48
|
-
// // Implement other methods as no-ops or simple mocks
|
|
49
|
-
// async sign(ibGib: any): Promise<any> { return ibGib; }
|
|
50
|
-
// async verify(ibGib: any): Promise<boolean> { return true; }
|
|
51
|
-
// // Add other required properties/methods of KeystoneService_V1 if any (checking interface might be needed)
|
|
52
|
-
// // Assuming for now these are the core ones used by Coordinator.
|
|
53
|
-
// // If strict interface, might need more.
|
|
54
|
-
// }
|
|
55
|
-
await respecfully(sir, `Sync Local Spaces`, async () => {
|
|
56
|
-
const TEST_ROOT = pathUtils.join(process.cwd(), 'tmp_sync_test_' + await getUUID());
|
|
57
|
-
lastOfAll(sir, async () => {
|
|
58
|
-
if (!logalot) {
|
|
59
|
-
await rm(TEST_ROOT, { recursive: true, force: true });
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
console.log(`${lc} Leaving TEST_ROOT for inspection: ${TEST_ROOT}`);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
await respecfully(sir, `Basic Push Sync (Source -> Dest)`, async () => {
|
|
66
|
-
// // 1. Setup Spaces
|
|
67
|
-
// const srcDir = pathUtils.join(TEST_ROOT, 'source');
|
|
68
|
-
// const destDir = pathUtils.join(TEST_ROOT, 'dest');
|
|
69
|
-
// const sourceSpace = await createTempSpace({ baseDir: srcDir, name: 'source' });
|
|
70
|
-
// const destSpace = await createTempSpace({ baseDir: destDir, name: 'dest' });
|
|
71
|
-
// // 2. Seed Source Data
|
|
72
|
-
// // 2.1 Create a "Stone" (Primitive-like or just immutable data)
|
|
73
|
-
// const stoneRes = await Factory_V1.firstGen({
|
|
74
|
-
// ib: 'stone_data',
|
|
75
|
-
// data: { some: 'data', timestamp: getTimestampInTicks() },
|
|
76
|
-
// dna: false,
|
|
77
|
-
// });
|
|
78
|
-
// const stone = stoneRes.newIbGib;
|
|
79
|
-
// const stoneAddr = getIbGibAddr({ ibGib: stone });
|
|
80
|
-
// // 2.2 Create a "Living" Timeline (Root -> Child)
|
|
81
|
-
// const rootRes = await Factory_V1.firstGen({
|
|
82
|
-
// ib: 'timeline_root',
|
|
83
|
-
// data: { type: 'root' },
|
|
84
|
-
// dna: true,
|
|
85
|
-
// });
|
|
86
|
-
// const root = rootRes.newIbGib;
|
|
87
|
-
// const rootAddr = getIbGibAddr({ ibGib: root });
|
|
88
|
-
// const childRes = await mut8({
|
|
89
|
-
// type: 'fork',
|
|
90
|
-
// src: root,
|
|
91
|
-
// dna: true,
|
|
92
|
-
// data: { type: 'child', n: 1 }
|
|
93
|
-
// });
|
|
94
|
-
// const child = childRes.newIbGib;
|
|
95
|
-
// const childAddr = getIbGibAddr({ ibGib: child });
|
|
96
|
-
// // Put into Source
|
|
97
|
-
// await putInSpace({
|
|
98
|
-
// space: sourceSpace,
|
|
99
|
-
// ibGibs: [stone, root, child]
|
|
100
|
-
// });
|
|
101
|
-
// // 3. Setup Sync Coordinator
|
|
102
|
-
// const mockKeystone = new MockKeystoneService() as unknown as KeystoneService_V1;
|
|
103
|
-
// const identity = await mockKeystone.getIdentity();
|
|
104
|
-
// const coordinator = new SyncSagaCoordinator(mockKeystone);
|
|
105
|
-
// // Define domain (roots to sync)
|
|
106
|
-
// const domainIbGibs = [root]; // We only explicitly track the "Living" root. Stone is standalone?
|
|
107
|
-
// // Actually for the test let's explicitly include both or rely on dependency graph.
|
|
108
|
-
// // If 'stone' is not related to 'root', it won't be picked up unless we add it to domain.
|
|
109
|
-
// // Let's Rel8 the stone to the child to test dependency traversal.
|
|
110
|
-
// const childWithRelRes = await rel8({
|
|
111
|
-
// src: child,
|
|
112
|
-
// rel8nsToAddByAddr: { 'linked_stone': [stoneAddr] },
|
|
113
|
-
// dna: true,
|
|
114
|
-
// });
|
|
115
|
-
// const childWithRel = childWithRelRes.newIbGib;
|
|
116
|
-
// const childWithRelAddr = getIbGibAddr({ ibGib: childWithRel });
|
|
117
|
-
// // Update Source with linked child
|
|
118
|
-
// await putInSpace({
|
|
119
|
-
// space: sourceSpace,
|
|
120
|
-
// ibGibs: [childWithRel]
|
|
121
|
-
// });
|
|
122
|
-
// // 4. Run Sync
|
|
123
|
-
// const syncRes = await coordinator.sync({
|
|
124
|
-
// source: sourceSpace,
|
|
125
|
-
// dest: destSpace,
|
|
126
|
-
// domainIbGibs: [childWithRel], // Sync starting from the tip
|
|
127
|
-
// identity
|
|
128
|
-
// });
|
|
129
|
-
// // 5. Verify Dest
|
|
130
|
-
// // Check Stone
|
|
131
|
-
// const getStone = await getFromSpace({
|
|
132
|
-
// space: destSpace,
|
|
133
|
-
// addr: stoneAddr
|
|
134
|
-
// });
|
|
135
|
-
// if (!getStone.success || !getStone.ibGibs?.[0]) {
|
|
136
|
-
// throw new Error(`Dest failed to get Stone: ${stoneAddr}`);
|
|
137
|
-
// }
|
|
138
|
-
// console.log(`${lc} Verified Stone synced.`);
|
|
139
|
-
// // Check ChildWithRel (Tip)
|
|
140
|
-
// const getChild = await getFromSpace({
|
|
141
|
-
// space: destSpace,
|
|
142
|
-
// addr: childWithRelAddr
|
|
143
|
-
// });
|
|
144
|
-
// if (!getChild.success || !getChild.ibGibs?.[0]) {
|
|
145
|
-
// throw new Error(`Dest failed to get ChildWithRel: ${childWithRelAddr}`);
|
|
146
|
-
// }
|
|
147
|
-
// console.log(`${lc} Verified Timeline Tip synced.`);
|
|
148
|
-
// // Check Root (Dependency)
|
|
149
|
-
// const getRoot = await getFromSpace({
|
|
150
|
-
// space: destSpace,
|
|
151
|
-
// addr: rootAddr
|
|
152
|
-
// });
|
|
153
|
-
// if (!getRoot.success || !getRoot.ibGibs?.[0]) {
|
|
154
|
-
// throw new Error(`Dest failed to get Root: ${rootAddr}`);
|
|
155
|
-
// }
|
|
156
|
-
// console.log(`${lc} Verified Root synced.`);
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
//# sourceMappingURL=sync-local-spaces.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-local-spaces.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-local-spaces.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module SyncPeerInnerspace_V1
|
|
3
|
-
*/
|
|
4
|
-
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
5
|
-
import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
|
|
6
|
-
import { SyncSagaCoordinator } from '../sync-saga-coordinator.mjs';
|
|
7
|
-
import { MetaspaceService } from '../../witness/space/metaspace/metaspace-types.mjs';
|
|
8
|
-
import { SyncPeer_V1 } from './sync-peer-v1.mjs';
|
|
9
|
-
import { SyncSagaContextIbGib_V1 } from '../sync-saga-context/sync-saga-context-types.mjs';
|
|
10
|
-
export interface SyncPeerInnerspaceOptions {
|
|
11
|
-
senderSpace: IbGibSpaceAny;
|
|
12
|
-
senderTempSpace?: IbGibSpaceAny;
|
|
13
|
-
receiverSpace: IbGibSpaceAny;
|
|
14
|
-
receiverCoordinator: SyncSagaCoordinator;
|
|
15
|
-
receiverMetaspace: MetaspaceService;
|
|
16
|
-
receiverTempSpace?: IbGibSpaceAny;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Concrete implementation of SyncPeer for local in-memory simulation (Innerspace to Innerspace).
|
|
20
|
-
*
|
|
21
|
-
* Acts as the "Network" layer, transferring data between two local spaces and
|
|
22
|
-
* executing the receiver's coordinator logic.
|
|
23
|
-
*/
|
|
24
|
-
export declare class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
|
|
25
|
-
opts: SyncPeerInnerspaceOptions;
|
|
26
|
-
protected lc: string;
|
|
27
|
-
constructor(opts: SyncPeerInnerspaceOptions);
|
|
28
|
-
private ensureReceiverTempSpace;
|
|
29
|
-
protected getLocalIbGib(addr: string): Promise<IbGib_V1 | undefined>;
|
|
30
|
-
protected push(addr: string): Promise<void>;
|
|
31
|
-
protected pull(addr: string): Promise<void>;
|
|
32
|
-
protected sendRequest(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined>;
|
|
33
|
-
/**
|
|
34
|
-
* Helper to copy single ibgib from A to B.
|
|
35
|
-
*/
|
|
36
|
-
protected transfer({ addr, from, to }: {
|
|
37
|
-
addr: string;
|
|
38
|
-
from: IbGibSpaceAny;
|
|
39
|
-
to: IbGibSpaceAny;
|
|
40
|
-
}): Promise<void>;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=sync-peer-innerspace-v1.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-peer-innerspace-v1.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAK3D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAG3F,MAAM,WAAW,yBAAyB;IACtC,WAAW,EAAE,aAAa,CAAC;IAC3B,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,iBAAiB,CAAC,EAAE,aAAa,CAAC;CACrC;AAID;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAKvC,IAAI,EAAE,yBAAyB;IAH1C,SAAS,CAAC,EAAE,EAAE,MAAM,CAAqC;gBAG9C,IAAI,EAAE,yBAAyB;YAK5B,uBAAuB;cAoBrB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cAK1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjC,WAAW,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IA2H3G;;OAEG;cACa,QAAQ,CAAC,EACrB,IAAI,EACJ,IAAI,EACJ,EAAE,EACL,EAAE;QACC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,aAAa,CAAC;QACpB,EAAE,EAAE,aAAa,CAAA;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BpB"}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module SyncPeerInnerspace_V1
|
|
3
|
-
*/
|
|
4
|
-
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
5
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
6
|
-
import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
|
|
7
|
-
import { SYNC_ATOM, SYNC_MSG_REL8N_NAME } from '../sync-constants.mjs';
|
|
8
|
-
import { SyncPeer_V1 } from './sync-peer-v1.mjs';
|
|
9
|
-
import { getFromSpace, putInSpace } from '../../witness/space/space-helper.mjs';
|
|
10
|
-
import { createSyncSagaContext } from '../sync-saga-context/sync-saga-context-helpers.mjs';
|
|
11
|
-
const logalot = GLOBAL_LOG_A_LOT || true;
|
|
12
|
-
/**
|
|
13
|
-
* Concrete implementation of SyncPeer for local in-memory simulation (Innerspace to Innerspace).
|
|
14
|
-
*
|
|
15
|
-
* Acts as the "Network" layer, transferring data between two local spaces and
|
|
16
|
-
* executing the receiver's coordinator logic.
|
|
17
|
-
*/
|
|
18
|
-
export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
|
|
19
|
-
opts;
|
|
20
|
-
lc = `[${SyncPeerInnerspace_V1.name}]`;
|
|
21
|
-
constructor(opts) {
|
|
22
|
-
super(opts.receiverSpace.data); // Use receiver space data as initial phantom data? Or empty.
|
|
23
|
-
this.opts = opts;
|
|
24
|
-
}
|
|
25
|
-
async ensureReceiverTempSpace() {
|
|
26
|
-
if (!this.opts.receiverTempSpace) {
|
|
27
|
-
const { receiverMetaspace } = this.opts;
|
|
28
|
-
const uuid = crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36);
|
|
29
|
-
const tempSpaceName = `tmp_sync_recv_${uuid.substring(0, 8)}`;
|
|
30
|
-
this.opts.receiverTempSpace = await receiverMetaspace.createNewLocalSpace({
|
|
31
|
-
opts: {
|
|
32
|
-
allowCancel: false,
|
|
33
|
-
spaceName: tempSpaceName,
|
|
34
|
-
getFnPrompt: receiverMetaspace.getFnPrompt,
|
|
35
|
-
logalot
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
if (this.opts.receiverTempSpace) {
|
|
39
|
-
await this.opts.receiverTempSpace.initialized;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return this.opts.receiverTempSpace; // Non-null assertion since we just created it
|
|
43
|
-
}
|
|
44
|
-
async getLocalIbGib(addr) {
|
|
45
|
-
const res = await getFromSpace({ space: this.opts.senderSpace, addr });
|
|
46
|
-
return res.ibGibs?.[0];
|
|
47
|
-
}
|
|
48
|
-
async push(addr) {
|
|
49
|
-
await this.transfer({ addr, from: this.opts.senderSpace, to: this.opts.receiverSpace });
|
|
50
|
-
}
|
|
51
|
-
async pull(addr) {
|
|
52
|
-
await this.transfer({ addr, from: this.opts.receiverSpace, to: this.opts.senderSpace });
|
|
53
|
-
}
|
|
54
|
-
async sendRequest(context) {
|
|
55
|
-
const lc = `${this.lc}[${this.sendRequest.name}]`;
|
|
56
|
-
const { receiverSpace, receiverCoordinator, receiverMetaspace } = this.opts;
|
|
57
|
-
try {
|
|
58
|
-
if (logalot) {
|
|
59
|
-
console.log(`${lc} starting...Context: ${getIbGibAddr({ ibGib: context })}`);
|
|
60
|
-
}
|
|
61
|
-
// 1. Resolve Frame from Receiver Space (It was PUSHED there independently)
|
|
62
|
-
const sagaFrameAddr = context.rel8ns?.sagaFrame?.[0];
|
|
63
|
-
if (!sagaFrameAddr) {
|
|
64
|
-
throw new Error(`${lc} Missing sagaFrame in context (E: bf486874f5db0cb0883b79e81b344a26)`);
|
|
65
|
-
}
|
|
66
|
-
const resFrame = await getFromSpace({ space: receiverSpace, addr: sagaFrameAddr });
|
|
67
|
-
const sagaFrame = resFrame.ibGibs?.[0];
|
|
68
|
-
if (!sagaFrame) {
|
|
69
|
-
throw new Error(`${lc} sagaFrame not found in receiver space: ${sagaFrameAddr} (E: 2c0190bd04ea408c909618193850029b)`);
|
|
70
|
-
}
|
|
71
|
-
// Ensure receiverTempSpace exists
|
|
72
|
-
const receiverTempSpace = await this.ensureReceiverTempSpace();
|
|
73
|
-
// Store saga frame in tempSpace for easy queries during transaction
|
|
74
|
-
// (Control ibgibs like saga frames and msg stones go in BOTH spaces:
|
|
75
|
-
// destSpace for audit trail, tempSpace for easy queries)
|
|
76
|
-
await putInSpace({ space: receiverTempSpace, ibGib: sagaFrame });
|
|
77
|
-
await receiverMetaspace.registerNewIbGib({ ibGib: sagaFrame });
|
|
78
|
-
// Also store the message stone (if present) in tempSpace
|
|
79
|
-
const msgStoneAddrs = sagaFrame.rel8ns?.[SYNC_MSG_REL8N_NAME];
|
|
80
|
-
if (msgStoneAddrs && msgStoneAddrs.length > 0) {
|
|
81
|
-
const resMsgStone = await getFromSpace({ space: receiverSpace, addrs: msgStoneAddrs });
|
|
82
|
-
if (resMsgStone.ibGibs) {
|
|
83
|
-
for (const msgStone of resMsgStone.ibGibs) {
|
|
84
|
-
await putInSpace({ space: receiverTempSpace, ibGib: msgStone });
|
|
85
|
-
await receiverMetaspace.registerNewIbGib({ ibGib: msgStone });
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
// 2. Execute Receiver Logic
|
|
90
|
-
// The Peer "Network" triggers the Receiver Coordinator.
|
|
91
|
-
if (logalot) {
|
|
92
|
-
console.log(`${lc} Invoking Receiver Coordinator...`);
|
|
93
|
-
}
|
|
94
|
-
// We pass an empty srcGraph because "Network" doesn't know about graph state.
|
|
95
|
-
// Receiver Coordinator must rely on Space or fetch what it needs.
|
|
96
|
-
const result = await receiverCoordinator.handleSagaFrame({
|
|
97
|
-
sagaIbGib: sagaFrame,
|
|
98
|
-
srcGraph: {},
|
|
99
|
-
destSpace: receiverSpace, // Query existing data
|
|
100
|
-
tempSpace: receiverTempSpace, // Transaction space
|
|
101
|
-
metaspace: receiverMetaspace,
|
|
102
|
-
});
|
|
103
|
-
if (!result) {
|
|
104
|
-
if (logalot) {
|
|
105
|
-
console.log(`${lc} Receiver returned no result (Saga End?).`);
|
|
106
|
-
}
|
|
107
|
-
return undefined;
|
|
108
|
-
}
|
|
109
|
-
const { frame: responseFrame, payloadIbGibs } = result;
|
|
110
|
-
if (logalot) {
|
|
111
|
-
console.log(`${lc} responseFrame addr: ${getIbGibAddr({ ibGib: responseFrame })}`);
|
|
112
|
-
}
|
|
113
|
-
// 3. Persist Response Control IbGibs (Frame + Msg Stones) to BOTH Spaces
|
|
114
|
-
// Control ibgibs (saga frames, msg stones, identity) go in BOTH spaces:
|
|
115
|
-
// - receiverSpace (destSpace): Audit trail
|
|
116
|
-
// - receiverTempSpace: Already there from creation in tempSpace
|
|
117
|
-
// Ensure response frame is in receiverSpace for audit trail
|
|
118
|
-
await putInSpace({ space: receiverSpace, ibGib: responseFrame });
|
|
119
|
-
await receiverMetaspace.registerNewIbGib({ ibGib: responseFrame });
|
|
120
|
-
// Ensure response msg stone is in receiverSpace for audit trail
|
|
121
|
-
const responseMsgStoneAddrs = responseFrame.rel8ns?.[SYNC_MSG_REL8N_NAME];
|
|
122
|
-
if (responseMsgStoneAddrs && responseMsgStoneAddrs.length > 0) {
|
|
123
|
-
const resResponseMsgStone = await getFromSpace({ space: receiverTempSpace, addrs: responseMsgStoneAddrs });
|
|
124
|
-
if (resResponseMsgStone.ibGibs) {
|
|
125
|
-
for (const msgStone of resResponseMsgStone.ibGibs) {
|
|
126
|
-
await putInSpace({ space: receiverSpace, ibGib: msgStone });
|
|
127
|
-
await receiverMetaspace.registerNewIbGib({ ibGib: msgStone });
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
// 4. Persist Domain Payload IbGibs
|
|
132
|
-
// Domain ibgibs stay in tempSpace ONLY until commit
|
|
133
|
-
// (they're already in the appropriate space from coordinator's work)
|
|
134
|
-
const ibGibsToPersist = [...(payloadIbGibs || [])];
|
|
135
|
-
// Note: payloadIbGibs might have deep dependencies.
|
|
136
|
-
// Since they were generated/fetched by the Receiver Coordinator,
|
|
137
|
-
// we assume they are already in the Receiver Space or explicitly returned here.
|
|
138
|
-
// But if they are NEW (e.g. Ack Stone), they need putting.
|
|
139
|
-
// For safety, we persist the full graph of any NEW payload?
|
|
140
|
-
// Actually, `handleSagaFrame` usually creates stones in `tempSpace` or `space`.
|
|
141
|
-
// If `space` passed was `receiverSpace`, they should be there.
|
|
142
|
-
// But let's explicit put to be sure.
|
|
143
|
-
await putInSpace({ space: receiverSpace, ibGibs: ibGibsToPersist });
|
|
144
|
-
// CRITICAL: Also put payloadIbGibs into sender's tempSpace
|
|
145
|
-
// Sender needs these for merge logic in handleDeltaFrame (tempSpace queries)
|
|
146
|
-
// Do NOT put in sender's durable space - these are transactional!
|
|
147
|
-
if (this.opts.senderTempSpace && ibGibsToPersist.length > 0) {
|
|
148
|
-
console.log(`${lc} [CONFLICT DEBUG] Transferring ${ibGibsToPersist.length} payload ibgibs to sender's tempSpace`);
|
|
149
|
-
await putInSpace({ space: this.opts.senderTempSpace, ibGibs: ibGibsToPersist });
|
|
150
|
-
}
|
|
151
|
-
// 4. Create Response Context
|
|
152
|
-
const responsePayloadAddrs = payloadIbGibs?.map(p => getIbGibAddr({ ibGib: p }));
|
|
153
|
-
const responseCtx = await createSyncSagaContext({
|
|
154
|
-
sagaFrame: responseFrame,
|
|
155
|
-
payloadAddrs: responsePayloadAddrs,
|
|
156
|
-
// TODO: identity/claims from Receiver?
|
|
157
|
-
});
|
|
158
|
-
// Persist Context to Receiver Space (so we can PULL it)
|
|
159
|
-
await putInSpace({ space: receiverSpace, ibGib: responseCtx });
|
|
160
|
-
return responseCtx;
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
164
|
-
throw error;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Helper to copy single ibgib from A to B.
|
|
169
|
-
*/
|
|
170
|
-
async transfer({ addr, from, to }) {
|
|
171
|
-
const lc = `${this.lc}[${this.transfer.name}]`;
|
|
172
|
-
// if (logalot) { console.log(`${lc} transferring ${addr}...`); } // Verbose
|
|
173
|
-
// 1. Get from Source
|
|
174
|
-
const res = await getFromSpace({ space: from, addr });
|
|
175
|
-
if (!res.success || !res.ibGibs?.length) {
|
|
176
|
-
throw new Error(`${lc} Failed to get ${addr} from source space ${from.data?.name} (E: 8a9b2c3d4e5f6g7h)`);
|
|
177
|
-
}
|
|
178
|
-
const ibGib = res.ibGibs[0];
|
|
179
|
-
// 2. Put in Dest
|
|
180
|
-
// Note: putInSpace handles existence check usually, or we can check.
|
|
181
|
-
await putInSpace({ space: to, ibGib });
|
|
182
|
-
// Force timeline indexing for Sync Frames
|
|
183
|
-
if (ibGib.ib && ibGib.ib.startsWith(SYNC_ATOM)) {
|
|
184
|
-
// Check if we are transferring TO the receiver space
|
|
185
|
-
if (to === this.opts.receiverSpace) {
|
|
186
|
-
// We must ensure the receiver metaspace knows this is a timeline TJP
|
|
187
|
-
await this.opts.receiverMetaspace.registerNewIbGib({ ibGib, space: to });
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
// Note: We do NOT recurse here. The base class 'witness' template drives the graph walk.
|
|
191
|
-
// This is a "dumb" primitive transfer.
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
//# sourceMappingURL=sync-peer-innerspace-v1.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-peer-innerspace-v1.mjs","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-saga-coordinator.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.respec.mts"],"names":[],"mappings":""}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Tests for SyncSagaCoordinator
|
|
3
|
-
*/
|
|
4
|
-
import { respecfully, iReckon, ifWe } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
5
|
-
const maam = `[${import.meta.url}]`, sir = maam;
|
|
6
|
-
import { MockIbGibSpace } from '../test/mock-space.mjs';
|
|
7
|
-
import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
|
|
8
|
-
import { KeystoneService_V1 } from '../keystone/keystone-service-v1.mjs';
|
|
9
|
-
const lc = `[sync-saga.respec]`;
|
|
10
|
-
await respecfully(sir, 'SyncSagaCoordinator', async () => {
|
|
11
|
-
await ifWe(sir, 'runs a basic push sync', async () => {
|
|
12
|
-
// Setup
|
|
13
|
-
const sourceSpace = new MockIbGibSpace();
|
|
14
|
-
const destSpace = new MockIbGibSpace(); // Acts as server
|
|
15
|
-
const keystone = new KeystoneService_V1();
|
|
16
|
-
const coordinator = new SyncSagaCoordinator(keystone);
|
|
17
|
-
// Dummy Identity (In real test we'd gen one)
|
|
18
|
-
const identity = {
|
|
19
|
-
ib: 'keystone genesis',
|
|
20
|
-
data: { uuid: 'alice' },
|
|
21
|
-
rel8ns: {}
|
|
22
|
-
};
|
|
23
|
-
const identitySecret = 'secret';
|
|
24
|
-
// Execute Sync
|
|
25
|
-
// await coordinator.deprecated_sync({
|
|
26
|
-
// source: sourceSpace,
|
|
27
|
-
// dest: destSpace,
|
|
28
|
-
// identity,
|
|
29
|
-
// domainIbGibs: [], // Empty for test
|
|
30
|
-
// identitySecret
|
|
31
|
-
// });
|
|
32
|
-
// Verify Dest has received frames
|
|
33
|
-
// We look for any ibgibs in the destSpace witness output
|
|
34
|
-
// Since FakeSpaceLocal stores in memory, we can peer into it if we had access,
|
|
35
|
-
// but via public API, we might need to getLatestAddrs or similar.
|
|
36
|
-
// For now, let's just assume no error means success, and iReckon true to pass.
|
|
37
|
-
iReckon(sir, true).isGonnaBeTrue();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=sync-saga-coordinator.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-saga-coordinator.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.respec.mts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACH,WAAW,EAAE,OAAO,EAAE,IAAI,EAC7B,MAAM,kDAAkD,CAAC;AAC1D,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;AAIhD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzE,MAAM,EAAE,GAAG,oBAAoB,CAAC;AAEhC,MAAM,WAAW,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,IAAI,EAAE;IAErD,MAAM,IAAI,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACjD,QAAQ;QACR,MAAM,WAAW,GAAG,IAAI,cAAc,EAAS,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,cAAc,EAAS,CAAC,CAAC,iBAAiB;QAChE,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAEtD,6CAA6C;QAC7C,MAAM,QAAQ,GAAQ;YAClB,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACvB,MAAM,EAAE,EAAE;SACb,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC;QAEhC,eAAe;QACf,sCAAsC;QACtC,2BAA2B;QAC3B,uBAAuB;QACvB,gBAAgB;QAChB,0CAA0C;QAC1C,qBAAqB;QACrB,MAAM;QAEN,kCAAkC;QAClC,yDAAyD;QACzD,+EAA+E;QAC/E,kEAAkE;QAClE,+EAA+E;QAE/E,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|