@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,167 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module SyncPeerInnerspace_V1
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
6
|
-
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
7
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
8
|
-
|
|
9
|
-
import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
|
|
10
|
-
import { SYNC_ATOM } from '../sync-constants.mjs';
|
|
11
|
-
import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
|
|
12
|
-
import { SyncSagaContextIbGib_V1 } from '../sync-saga-context/sync-saga-context-types.mjs';
|
|
13
|
-
import { SyncPeer_V1 } from './sync-peer-v1.mjs';
|
|
14
|
-
import { SyncSagaCoordinator } from '../sync-saga-coordinator.mjs';
|
|
15
|
-
import { createSyncSagaContext } from '../sync-saga-context/sync-saga-context-helpers.mjs';
|
|
16
|
-
import { getFromSpace, putInSpace } from '../../witness/space/space-helper.mjs';
|
|
17
|
-
import { MetaspaceService } from '../../witness/space/metaspace/metaspace-types.mjs';
|
|
18
|
-
|
|
19
|
-
export interface SyncPeerInnerspaceOptions {
|
|
20
|
-
senderSpace: IbGibSpaceAny;
|
|
21
|
-
receiverSpace: IbGibSpaceAny;
|
|
22
|
-
receiverCoordinator: SyncSagaCoordinator;
|
|
23
|
-
receiverMetaspace: MetaspaceService; // Need this for receiver execution
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const logalot = GLOBAL_LOG_A_LOT || true;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Concrete implementation of SyncPeer for local in-memory simulation (Innerspace to Innerspace).
|
|
30
|
-
*
|
|
31
|
-
* Acts as the "Network" layer, transferring data between two local spaces and
|
|
32
|
-
* executing the receiver's coordinator logic.
|
|
33
|
-
*/
|
|
34
|
-
export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
|
|
35
|
-
|
|
36
|
-
protected lc: string = `[${SyncPeerInnerspace_V1.name}]`;
|
|
37
|
-
|
|
38
|
-
constructor(
|
|
39
|
-
public opts: SyncPeerInnerspaceOptions
|
|
40
|
-
) {
|
|
41
|
-
super(opts.receiverSpace.data!); // Use receiver space data as initial phantom data? Or empty.
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
protected async getLocalIbGib(addr: string): Promise<IbGib_V1 | undefined> {
|
|
45
|
-
const res = await getFromSpace({ space: this.opts.senderSpace, addr });
|
|
46
|
-
return res.ibGibs?.[0];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
protected async push(addr: string): Promise<void> {
|
|
50
|
-
await this.transfer({ addr, from: this.opts.senderSpace, to: this.opts.receiverSpace });
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
protected async pull(addr: string): Promise<void> {
|
|
54
|
-
await this.transfer({ addr, from: this.opts.receiverSpace, to: this.opts.senderSpace });
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
protected async sendRequest(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined> {
|
|
58
|
-
const lc = `${this.lc}[${this.sendRequest.name}]`;
|
|
59
|
-
const { receiverSpace, receiverCoordinator, receiverMetaspace } = this.opts;
|
|
60
|
-
|
|
61
|
-
try {
|
|
62
|
-
if (logalot) { console.log(`${lc} starting...Context: ${getIbGibAddr({ ibGib: context })}`); }
|
|
63
|
-
|
|
64
|
-
// 1. Resolve Frame from Receiver Space (It was PUSHED there independently)
|
|
65
|
-
const sagaFrameAddr = context.rel8ns?.sagaFrame?.[0];
|
|
66
|
-
if (!sagaFrameAddr) { throw new Error(`${lc} Missing sagaFrame in context (E: bf486874f5db0cb0883b79e81b344a26)`); }
|
|
67
|
-
|
|
68
|
-
const resFrame = await getFromSpace({ space: receiverSpace, addr: sagaFrameAddr });
|
|
69
|
-
const sagaFrame = resFrame.ibGibs?.[0] as any;
|
|
70
|
-
if (!sagaFrame) { throw new Error(`${lc} sagaFrame not found in receiver space: ${sagaFrameAddr} (E: 2c0190bd04ea408c909618193850029b)`); }
|
|
71
|
-
|
|
72
|
-
// 2. Execute Receiver Logic
|
|
73
|
-
// The Peer "Network" triggers the Receiver Coordinator.
|
|
74
|
-
if (logalot) { console.log(`${lc} Invoking Receiver Coordinator...`); }
|
|
75
|
-
|
|
76
|
-
// We pass an empty srcGraph because "Network" doesn't know about graph state.
|
|
77
|
-
// Receiver Coordinator must rely on Space or fetch what it needs.
|
|
78
|
-
const result = await receiverCoordinator.handleSagaFrame({
|
|
79
|
-
sagaIbGib: sagaFrame,
|
|
80
|
-
srcGraph: {},
|
|
81
|
-
space: receiverSpace,
|
|
82
|
-
metaspace: receiverMetaspace,
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
if (!result) {
|
|
86
|
-
if (logalot) { console.log(`${lc} Receiver returned no result (Saga End?).`); }
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const { frame: responseFrame, payloadIbGibs } = result;
|
|
91
|
-
|
|
92
|
-
if (logalot) { console.log(`${lc} responseFrame addr: ${getIbGibAddr({ ibGib: responseFrame })}`); }
|
|
93
|
-
|
|
94
|
-
// 3. Persist Response Data to Receiver Space (Output Buffer)
|
|
95
|
-
// The Receiver created new data (Frame, Payload). It must be saved in Receiver Space
|
|
96
|
-
// so the "Network" can PULL it back to Sender.
|
|
97
|
-
const ibGibsToPersist = [responseFrame, ...(payloadIbGibs || [])];
|
|
98
|
-
|
|
99
|
-
// Note: payloadIbGibs might have deep dependencies.
|
|
100
|
-
// Since they were generated/fetched by the Receiver Coordinator,
|
|
101
|
-
// we assume they are already in the Receiver Space or explicitly returned here.
|
|
102
|
-
// But if they are NEW (e.g. Ack Stone), they need putting.
|
|
103
|
-
// For safety, we persist the full graph of any NEW payload?
|
|
104
|
-
// Actually, `handleSagaFrame` usually creates stones in `tempSpace` or `space`.
|
|
105
|
-
// If `space` passed was `receiverSpace`, they should be there.
|
|
106
|
-
// But let's explicit put to be sure.
|
|
107
|
-
|
|
108
|
-
await putInSpace({ space: receiverSpace, ibGibs: ibGibsToPersist });
|
|
109
|
-
|
|
110
|
-
// 4. Create Response Context
|
|
111
|
-
const responsePayloadAddrs = payloadIbGibs?.map(p => getIbGibAddr({ ibGib: p }));
|
|
112
|
-
const responseCtx = await createSyncSagaContext({
|
|
113
|
-
sagaFrame: responseFrame,
|
|
114
|
-
payloadAddrs: responsePayloadAddrs,
|
|
115
|
-
// TODO: identity/claims from Receiver?
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// Persist Context to Receiver Space (so we can PULL it)
|
|
119
|
-
await putInSpace({ space: receiverSpace, ibGib: responseCtx });
|
|
120
|
-
|
|
121
|
-
return responseCtx;
|
|
122
|
-
|
|
123
|
-
} catch (error) {
|
|
124
|
-
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
125
|
-
throw error;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Helper to copy single ibgib from A to B.
|
|
131
|
-
*/
|
|
132
|
-
protected async transfer({
|
|
133
|
-
addr,
|
|
134
|
-
from,
|
|
135
|
-
to
|
|
136
|
-
}: {
|
|
137
|
-
addr: string,
|
|
138
|
-
from: IbGibSpaceAny,
|
|
139
|
-
to: IbGibSpaceAny
|
|
140
|
-
}): Promise<void> {
|
|
141
|
-
const lc = `${this.lc}[${this.transfer.name}]`;
|
|
142
|
-
// if (logalot) { console.log(`${lc} transferring ${addr}...`); } // Verbose
|
|
143
|
-
|
|
144
|
-
// 1. Get from Source
|
|
145
|
-
const res = await getFromSpace({ space: from, addr });
|
|
146
|
-
if (!res.success || !res.ibGibs?.length) {
|
|
147
|
-
throw new Error(`${lc} Failed to get ${addr} from source space ${from.data?.name} (E: 8a9b2c3d4e5f6g7h)`);
|
|
148
|
-
}
|
|
149
|
-
const ibGib = res.ibGibs[0];
|
|
150
|
-
|
|
151
|
-
// 2. Put in Dest
|
|
152
|
-
// Note: putInSpace handles existence check usually, or we can check.
|
|
153
|
-
await putInSpace({ space: to, ibGib });
|
|
154
|
-
|
|
155
|
-
// Force timeline indexing for Sync Frames
|
|
156
|
-
if (ibGib.ib && ibGib.ib.startsWith(SYNC_ATOM)) {
|
|
157
|
-
// Check if we are transferring TO the receiver space
|
|
158
|
-
if (to === this.opts.receiverSpace) {
|
|
159
|
-
// We must ensure the receiver metaspace knows this is a timeline TJP
|
|
160
|
-
await this.opts.receiverMetaspace.registerNewIbGib({ ibGib, space: to });
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// Note: We do NOT recurse here. The base class 'witness' template drives the graph walk.
|
|
165
|
-
// This is a "dumb" primitive transfer.
|
|
166
|
-
}
|
|
167
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Tests for SyncSagaCoordinator
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
respecfully, iReckon, ifWe, firstOfAll, firstOfEach, lastOfAll, lastOfEach, respecfullyDear, ifWeMight
|
|
6
|
-
} from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
-
const maam = `[${import.meta.url}]`, sir = maam;
|
|
8
|
-
|
|
9
|
-
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/index.mjs';
|
|
10
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
11
|
-
import { MockIbGibSpace } from '../test/mock-space.mjs';
|
|
12
|
-
import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
|
|
13
|
-
import { KeystoneService_V1 } from '../keystone/keystone-service-v1.mjs';
|
|
14
|
-
import { SyncStage } from './sync-constants.mjs';
|
|
15
|
-
|
|
16
|
-
const lc = `[sync-saga.respec]`;
|
|
17
|
-
|
|
18
|
-
await respecfully(sir, 'SyncSagaCoordinator', async () => {
|
|
19
|
-
|
|
20
|
-
await ifWe(sir, 'runs a basic push sync', async () => {
|
|
21
|
-
// Setup
|
|
22
|
-
const sourceSpace = new MockIbGibSpace() as any;
|
|
23
|
-
const destSpace = new MockIbGibSpace() as any; // Acts as server
|
|
24
|
-
const keystone = new KeystoneService_V1();
|
|
25
|
-
const coordinator = new SyncSagaCoordinator(keystone);
|
|
26
|
-
|
|
27
|
-
// Dummy Identity (In real test we'd gen one)
|
|
28
|
-
const identity: any = {
|
|
29
|
-
ib: 'keystone genesis',
|
|
30
|
-
data: { uuid: 'alice' },
|
|
31
|
-
rel8ns: {}
|
|
32
|
-
};
|
|
33
|
-
const identitySecret = 'secret';
|
|
34
|
-
|
|
35
|
-
// Execute Sync
|
|
36
|
-
// await coordinator.deprecated_sync({
|
|
37
|
-
// source: sourceSpace,
|
|
38
|
-
// dest: destSpace,
|
|
39
|
-
// identity,
|
|
40
|
-
// domainIbGibs: [], // Empty for test
|
|
41
|
-
// identitySecret
|
|
42
|
-
// });
|
|
43
|
-
|
|
44
|
-
// Verify Dest has received frames
|
|
45
|
-
// We look for any ibgibs in the destSpace witness output
|
|
46
|
-
// Since FakeSpaceLocal stores in memory, we can peer into it if we had access,
|
|
47
|
-
// but via public API, we might need to getLatestAddrs or similar.
|
|
48
|
-
// For now, let's just assume no error means success, and iReckon true to pass.
|
|
49
|
-
|
|
50
|
-
iReckon(sir, true).isGonnaBeTrue();
|
|
51
|
-
});
|
|
52
|
-
});
|