@ibgib/core-gib 0.1.22 → 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 +12 -11
- package/dist/sync/sync-conflict.respec.mjs.map +1 -1
- package/dist/sync/sync-constants.d.mts +14 -4
- package/dist/sync/sync-constants.d.mts.map +1 -1
- package/dist/sync/sync-constants.mjs +15 -3
- package/dist/sync/sync-constants.mjs.map +1 -1
- package/dist/sync/sync-helpers.d.mts +22 -15
- package/dist/sync/sync-helpers.d.mts.map +1 -1
- package/dist/sync/sync-helpers.mjs +159 -90
- package/dist/sync/sync-helpers.mjs.map +1 -1
- package/dist/sync/sync-innerspace-constants.respec.mjs +11 -10
- package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs +11 -10
- package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +11 -10
- package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +12 -10
- package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace-partial-update.respec.mjs +14 -10
- package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -1
- package/dist/sync/sync-innerspace.respec.mjs +12 -10
- package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts +0 -15
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts +15 -14
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs +9 -55
- package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs.map +1 -1
- package/dist/sync/sync-peer/sync-peer-types.d.mts +16 -0
- package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-v1.d.mts +39 -5
- package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
- package/dist/sync/sync-peer/sync-peer-v1.mjs +141 -4
- package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
- package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts +22 -3
- 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 +104 -31
- 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 +5 -0
- package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.d.mts +74 -70
- package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
- package/dist/sync/sync-saga-coordinator.mjs +475 -527
- 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 -88
- 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/package.json +1 -1
- package/src/common/other/graph-helper.mts +26 -1
- package/src/sync/sync-conflict.respec.mts +12 -11
- package/src/sync/sync-constants.mts +15 -4
- package/src/sync/sync-helpers.mts +167 -95
- package/src/sync/sync-innerspace-constants.respec.mts +11 -10
- package/src/sync/sync-innerspace-deep-updates.respec.mts +11 -10
- package/src/sync/sync-innerspace-dest-ahead.respec.mts +11 -10
- package/src/sync/sync-innerspace-multiple-timelines.respec.mts +12 -10
- package/src/sync/sync-innerspace-partial-update.respec.mts +14 -12
- package/src/sync/sync-innerspace.respec.mts +12 -10
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts +0 -15
- package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +16 -65
- package/src/sync/sync-peer/sync-peer-types.mts +17 -0
- package/src/sync/sync-peer/sync-peer-v1.mts +141 -8
- package/src/sync/sync-saga-context/sync-saga-context-helpers.mts +116 -37
- package/src/sync/sync-saga-context/sync-saga-context-types.mts +5 -0
- package/src/sync/sync-saga-coordinator.mts +525 -617
- package/src/sync/sync-saga-message/sync-saga-message-types.mts +106 -22
- package/src/sync/sync-types.mts +59 -101
- package/src/timeline/timeline-api.mts +17 -10
|
@@ -89,16 +89,18 @@ await respecfully(sir, `Sync InnerSpaces`, async () => {
|
|
|
89
89
|
// So we can reuse or create separate instances. Let's create separate to simulate remote.
|
|
90
90
|
const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
|
|
91
91
|
// Peer (The "Network")
|
|
92
|
-
const peer = new SyncPeerInnerspace_V1({
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}, {
|
|
100
|
-
|
|
101
|
-
});
|
|
92
|
+
// const peer = new SyncPeerInnerspace_V1({
|
|
93
|
+
// senderSpace: sourceSpace, // "Client"
|
|
94
|
+
// receiverSpace: destSpace, // "Server"
|
|
95
|
+
// receiverCoordinator: receiverCoordinator,
|
|
96
|
+
// receiverMetaspace: metaspace,
|
|
97
|
+
// senderTempSpace: 0 as any,
|
|
98
|
+
// receiverTempSpace: 0 as any,
|
|
99
|
+
// }, {
|
|
100
|
+
// classname: SyncPeerInnerspace_V1.name,
|
|
101
|
+
// });
|
|
102
|
+
const peer = new SyncPeerInnerspace_V1(0, 0, 0, 0);
|
|
103
|
+
await peer.initialized;
|
|
102
104
|
// 4. Run Sync
|
|
103
105
|
console.log(`${lc} Running Sync...`);
|
|
104
106
|
const resSync = await senderCoordinator.sync({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-innerspace.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace.respec.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sync-innerspace.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -11,21 +11,6 @@ import { SyncPeerData_V1, SyncPeerRel8ns_V1 } from '../sync-peer-types.mjs';
|
|
|
11
11
|
* Options for creating a SyncPeerInnerspace instance.
|
|
12
12
|
*/
|
|
13
13
|
export interface SyncPeerInnerspaceOptions {
|
|
14
|
-
/**
|
|
15
|
-
* sender's durable space.
|
|
16
|
-
*
|
|
17
|
-
* will store control ibgibs (context, sync saga ibgib, control msg stones)
|
|
18
|
-
* here (and in {@link senderTempSpace}) throughout the process for audit trail.
|
|
19
|
-
*/
|
|
20
|
-
senderSpace: IbGibSpaceAny;
|
|
21
|
-
/**
|
|
22
|
-
* sender's temporary space for the entire sync transaction.
|
|
23
|
-
*
|
|
24
|
-
* In addition to control ibgibs which are stored in both temp and durable
|
|
25
|
-
* spaces, this temp space will be where domain ibgibs are stored that are
|
|
26
|
-
* received/created throughout the transaction until commit.
|
|
27
|
-
*/
|
|
28
|
-
senderTempSpace: IbGibSpaceAny;
|
|
29
14
|
/**
|
|
30
15
|
* The "receiver" durable space (not temp).
|
|
31
16
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-peer-innerspace-types.d.mts","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgC,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC
|
|
1
|
+
{"version":3,"file":"sync-peer-innerspace-types.d.mts","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgC,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;;;;;;OAOG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;IACzC;;;;OAIG;IACH,iBAAiB,EAAE,gBAAgB,CAAC;IACpC;;;;;OAKG;IACH,iBAAiB,EAAE,aAAa,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,OAAO,yBAAyB,CAAC;IACvC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,eAAe;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;CAErE;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,QAAQ,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;CACnH"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module SyncPeerInnerspace_V1
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
|
|
5
5
|
import { IbGibSpaceAny } from '../../../witness/space/space-base-v1.mjs';
|
|
6
6
|
import { SyncPeer_V1 } from '../sync-peer-v1.mjs';
|
|
7
7
|
import { SyncSagaContextIbGib_V1 } from '../../sync-saga-context/sync-saga-context-types.mjs';
|
|
8
|
-
import { SubjectWitness } from '../../../common/pubsub/subject/subject-types.mjs';
|
|
9
8
|
import { SyncPeerInnerspaceData_V1, SyncPeerInnerspaceIbGib_V1, SyncPeerInnerspaceOptions, SyncPeerInnerspaceRel8ns_V1 } from './sync-peer-innerspace-types.mjs';
|
|
10
|
-
import {
|
|
9
|
+
import { MetaspaceService } from '../../../witness/space/metaspace/metaspace-types.mjs';
|
|
10
|
+
import { SyncSagaCoordinator } from '../../sync-saga-coordinator.mjs';
|
|
11
11
|
/**
|
|
12
12
|
* Concrete implementation of SyncPeer for local in-memory simulation (Innerspace to Innerspace).
|
|
13
13
|
*
|
|
@@ -16,18 +16,19 @@ import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
|
|
|
16
16
|
*/
|
|
17
17
|
export declare class SyncPeerInnerspace_V1 extends SyncPeer_V1 implements SyncPeerInnerspaceIbGib_V1 {
|
|
18
18
|
protected lc: string;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
/**
|
|
20
|
+
* specific to innerspace
|
|
21
|
+
*/
|
|
22
|
+
protected receiverCoordinator: SyncSagaCoordinator;
|
|
23
|
+
/**
|
|
24
|
+
* specific to innerspace
|
|
25
|
+
*/
|
|
26
|
+
protected receiverMetaspace: MetaspaceService;
|
|
27
|
+
receiverSpace: IbGibSpaceAny;
|
|
28
|
+
receiverTempSpace: IbGibSpaceAny;
|
|
26
29
|
get classname(): string;
|
|
27
|
-
constructor(opts: SyncPeerInnerspaceOptions, initialData: SyncPeerInnerspaceData_V1, initialRel8ns?: SyncPeerInnerspaceRel8ns_V1);
|
|
28
|
-
|
|
29
|
-
private ensureReceiverTempSpace;
|
|
30
|
-
protected getLocalIbGib(addr: string): Promise<IbGib_V1 | undefined>;
|
|
30
|
+
constructor(senderSpace: IbGibSpaceAny, senderTempSpace: IbGibSpaceAny, opts: SyncPeerInnerspaceOptions, initialData: SyncPeerInnerspaceData_V1, initialRel8ns?: SyncPeerInnerspaceRel8ns_V1);
|
|
31
|
+
protected ensureReceiverTempSpace(): Promise<IbGibSpaceAny>;
|
|
31
32
|
protected push(addrs: IbGibAddr[]): Promise<void>;
|
|
32
33
|
protected pull(addrs: IbGibAddr[]): Promise<void>;
|
|
33
34
|
protected sendContextRequest(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-peer-innerspace-v1.d.mts","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"sync-peer-innerspace-v1.d.mts","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAG,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACjK,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,WAAY,YAAW,0BAA0B;IAExF,SAAS,CAAC,EAAE,EAAE,MAAM,CAAqC;IAEzD;;OAEG;IACH,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,aAAa,CAAC;IAExC,IAAa,SAAS,IAAI,MAAM,CAE/B;gBAGG,WAAW,EAAE,aAAa,EAC1B,eAAe,EAAE,aAAa,EAC9B,IAAI,EAAE,yBAAyB,EAC/B,WAAW,EAAE,yBAAyB,EACtC,aAAa,CAAC,EAAE,2BAA2B;cActB,uBAAuB,IAAI,OAAO,CAAC,aAAa,CAAC;cAsB1D,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAkBvC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAkBvC,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAsBlH;;OAEG;cACa,QAAQ,CAAC,EACrB,KAAK,EACL,IAAI,EACJ,EAAE,EACL,EAAE;QACC,KAAK,EAAE,SAAS,EAAE,CAAC;QACnB,IAAI,EAAE,aAAa,CAAC;QACpB,EAAE,EAAE,aAAa,CAAA;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;CAkCpB"}
|
|
@@ -6,7 +6,6 @@ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
|
6
6
|
import { GLOBAL_LOG_A_LOT } from '../../../core-constants.mjs';
|
|
7
7
|
import { SyncPeer_V1 } from '../sync-peer-v1.mjs';
|
|
8
8
|
import { getFromSpace, putInSpace } from '../../../witness/space/space-helper.mjs';
|
|
9
|
-
import { newupSubject } from '../../../common/pubsub/subject/subject-helper.mjs';
|
|
10
9
|
const logalot = GLOBAL_LOG_A_LOT || true;
|
|
11
10
|
const logalotControlDomain = true;
|
|
12
11
|
const lcControlDomain = '[ControlDomain]';
|
|
@@ -18,29 +17,27 @@ const lcControlDomain = '[ControlDomain]';
|
|
|
18
17
|
*/
|
|
19
18
|
export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
|
|
20
19
|
lc = `[${SyncPeerInnerspace_V1.name}]`;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
/**
|
|
21
|
+
* specific to innerspace
|
|
22
|
+
*/
|
|
24
23
|
receiverCoordinator;
|
|
24
|
+
/**
|
|
25
|
+
* specific to innerspace
|
|
26
|
+
*/
|
|
25
27
|
receiverMetaspace;
|
|
26
28
|
receiverSpace;
|
|
27
29
|
receiverTempSpace;
|
|
28
30
|
get classname() {
|
|
29
31
|
return SyncPeerInnerspace_V1.name;
|
|
30
32
|
}
|
|
31
|
-
constructor(opts, initialData, initialRel8ns) {
|
|
32
|
-
super(initialData, initialRel8ns);
|
|
33
|
-
const {
|
|
34
|
-
this.senderSpace = senderSpace;
|
|
35
|
-
this.senderTempSpace = senderTempSpace;
|
|
33
|
+
constructor(senderSpace, senderTempSpace, opts, initialData, initialRel8ns) {
|
|
34
|
+
super(senderSpace, senderTempSpace, initialData, initialRel8ns);
|
|
35
|
+
const { receiverCoordinator, receiverMetaspace, receiverSpace, receiverTempSpace } = opts;
|
|
36
36
|
this.receiverCoordinator = receiverCoordinator;
|
|
37
37
|
this.receiverMetaspace = receiverMetaspace;
|
|
38
38
|
this.receiverSpace = receiverSpace;
|
|
39
39
|
this.receiverTempSpace = receiverTempSpace;
|
|
40
40
|
}
|
|
41
|
-
async initialize() {
|
|
42
|
-
this.payloadIbGibsDomainReceived$ = await newupSubject();
|
|
43
|
-
}
|
|
44
41
|
async ensureReceiverTempSpace() {
|
|
45
42
|
if (!this.receiverTempSpace) {
|
|
46
43
|
const { receiverMetaspace } = this;
|
|
@@ -62,32 +59,6 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
|
|
|
62
59
|
}
|
|
63
60
|
return this.receiverTempSpace;
|
|
64
61
|
}
|
|
65
|
-
async getLocalIbGib(addr) {
|
|
66
|
-
const lc = `${this.lc}[${this.getLocalIbGib.name}]`;
|
|
67
|
-
try {
|
|
68
|
-
if (logalot) {
|
|
69
|
-
console.log(`${lc} starting... (I: 27b248cb9801eeb2386b71485389a826)`);
|
|
70
|
-
}
|
|
71
|
-
console.warn(`${lc} possibly a bottleneck here, getLocalIbGib only gets a single ibgib... (W: 2fd448a435480e6b128f6b8bcbef4826)`);
|
|
72
|
-
const resGet = await getFromSpace({ space: this.senderSpace, addr });
|
|
73
|
-
if (resGet.success && resGet.ibGibs && resGet.ibGibs.length === 1) {
|
|
74
|
-
const ibGib = resGet.ibGibs[0];
|
|
75
|
-
return ibGib;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
throw new Error(`couldn't get addr (${addr}) from local space ${this.senderSpace}. reason: ${resGet.errorMsg ?? 'unknown error (E: 926ef8bf4fcc299ab89dba34ea691a26)'} (E: d8a89807e471d3f8b938ab21df44cb26)`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
83
|
-
throw error;
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
if (logalot) {
|
|
87
|
-
console.log(`${lc} complete.`);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
62
|
async push(addrs) {
|
|
92
63
|
const lc = `${this.lc}[${this.push.name}]`;
|
|
93
64
|
try {
|
|
@@ -158,23 +129,6 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
|
|
|
158
129
|
if (!context.sagaFrame) {
|
|
159
130
|
throw new Error(`(UNEXPECTED) context.sagaFrame falsy? (E: 79cd98a6d9b88a591f4596c8bc58ff26)`);
|
|
160
131
|
}
|
|
161
|
-
// validate the context, sagaFrame, and identity(s)
|
|
162
|
-
// persist the context, sagaframe, identity(s) ONLY in the receiver's durable space
|
|
163
|
-
// if sending domain ibgibs...
|
|
164
|
-
// verify the domain ibgibs intrinsically.
|
|
165
|
-
// persist the domain ibgibs in the receiver's temp space (push all addrs?)
|
|
166
|
-
// await until all domain ibgibs are in receiver's temp space
|
|
167
|
-
// process the context with the receiver's coordinator to get a new response context
|
|
168
|
-
// analyze the response context
|
|
169
|
-
// validate context intrinsically
|
|
170
|
-
// validate return identity if present
|
|
171
|
-
// persist the response context's dependency graph (context, saga frame and msg(s), identities)
|
|
172
|
-
// if response has payload domain ibgibs,
|
|
173
|
-
// spin off...
|
|
174
|
-
// pull domain ibgibs to local temp space
|
|
175
|
-
// publish domain ibgibs to observable
|
|
176
|
-
// when all domain ibgibs are pulled, publish complete to the observable
|
|
177
|
-
// return resulting context ibgib (which the caller should get BEFORE the domain ibgibs observable completes)
|
|
178
132
|
throw new Error(`not implemented (E: 72840872e252d9f7380f1998b5a0c826)`);
|
|
179
133
|
}
|
|
180
134
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-peer-innerspace-v1.mjs","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAU,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-peer-innerspace-v1.mjs","sourceRoot":"","sources":["../../../../src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { IbGibData_V1, IbGibRel8ns_V1, IbGib_V1 } from '@ibgib/ts-gib/dist/V1/ty
|
|
|
5
5
|
import { SubjectWitness } from '../../common/pubsub/subject/subject-types.mjs';
|
|
6
6
|
import { SyncSagaContextData_V1, SyncSagaContextIbGib_V1, SyncSagaContextRel8ns_V1 } from '../sync-saga-context/sync-saga-context-types.mjs';
|
|
7
7
|
import { Witness_V1 } from '../../witness/witness-types.mjs';
|
|
8
|
+
import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
|
|
8
9
|
/**
|
|
9
10
|
* Data for the SyncPeer witness.
|
|
10
11
|
*/
|
|
@@ -31,6 +32,21 @@ export interface SyncPeerIbGib_V1 extends IbGib_V1<SyncPeerData_V1, SyncPeerRel8
|
|
|
31
32
|
export interface SyncPeerWitness extends Witness_V1<SyncSagaContextData_V1, SyncSagaContextRel8ns_V1, SyncSagaContextIbGib_V1, // Input
|
|
32
33
|
SyncSagaContextData_V1, SyncSagaContextRel8ns_V1, SyncSagaContextIbGib_V1, // Output
|
|
33
34
|
SyncPeerData_V1, SyncPeerRel8ns_V1> {
|
|
35
|
+
/**
|
|
36
|
+
* sender's durable space.
|
|
37
|
+
*
|
|
38
|
+
* will store control ibgibs (context, sync saga ibgib, control msg stones)
|
|
39
|
+
* here (and in {@link senderTempSpace}) throughout the process for audit trail.
|
|
40
|
+
*/
|
|
41
|
+
senderSpace: IbGibSpaceAny;
|
|
42
|
+
/**
|
|
43
|
+
* sender's temporary space for the entire sync transaction.
|
|
44
|
+
*
|
|
45
|
+
* In addition to control ibgibs which are stored in both temp and durable
|
|
46
|
+
* spaces, this temp space will be where domain ibgibs are stored that are
|
|
47
|
+
* received/created throughout the transaction until commit.
|
|
48
|
+
*/
|
|
49
|
+
senderTempSpace: IbGibSpaceAny;
|
|
34
50
|
/**
|
|
35
51
|
* Observable for streaming large domain payloads asynchronously.
|
|
36
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-peer-types.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE/E,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC7I,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-peer-types.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-types.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE/E,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC7I,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;CAAI;AAE1F;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU,CAC/C,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAAE,QAAQ;AACjC,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAAE,SAAS;AAClC,eAAe,EACf,iBAAiB,CACpB;IAGG;;;;;OAKG;IACH,WAAW,EAAE,aAAa,CAAC;IAC3B;;;;;;OAMG;IACH,eAAe,EAAE,aAAa,CAAC;IAE/B;;;;;OAKG;IACH,4BAA4B,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CAC1D"}
|
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module SyncPeer_V1 witness class
|
|
3
|
+
*
|
|
4
|
+
*
|
|
5
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
6
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
7
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
8
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
9
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
10
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
11
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
12
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
13
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
14
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
3
15
|
*/
|
|
4
16
|
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
17
|
+
import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
|
|
5
18
|
import { SubjectWitness } from '../../common/pubsub/subject/subject-types.mjs';
|
|
6
19
|
import { SyncSagaContextIbGib_V1 } from '../sync-saga-context/sync-saga-context-types.mjs';
|
|
7
20
|
import { SyncPeerData_V1, SyncPeerRel8ns_V1, SyncPeerWitness } from './sync-peer-types.mjs';
|
|
8
21
|
import { LightWitnessBase_V1 } from '../../witness/light-witness-base-v1.mjs';
|
|
9
|
-
import {
|
|
22
|
+
import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
|
|
10
23
|
/**
|
|
11
24
|
* Abstract witness for talking to a Sync Peer (e.g. Remote Node or Local Simulator).
|
|
12
25
|
*
|
|
@@ -19,16 +32,23 @@ import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
|
|
|
19
32
|
*/
|
|
20
33
|
export declare abstract class SyncPeer_V1 extends LightWitnessBase_V1<SyncPeerData_V1, SyncPeerRel8ns_V1> implements SyncPeerWitness {
|
|
21
34
|
protected lc: string;
|
|
22
|
-
|
|
35
|
+
senderSpace: IbGibSpaceAny;
|
|
36
|
+
senderTempSpace: IbGibSpaceAny;
|
|
37
|
+
payloadIbGibsDomainReceived$: SubjectWitness<IbGib_V1>;
|
|
23
38
|
get classname(): string;
|
|
24
|
-
constructor(initialData: SyncPeerData_V1, initialRel8ns?: SyncPeerRel8ns_V1);
|
|
39
|
+
constructor(senderSpace: IbGibSpaceAny, senderTempSpace: IbGibSpaceAny, initialData: SyncPeerData_V1, initialRel8ns?: SyncPeerRel8ns_V1);
|
|
40
|
+
initialize(): Promise<void>;
|
|
41
|
+
protected abstract ensureReceiverTempSpace(): Promise<IbGibSpaceAny>;
|
|
25
42
|
/**
|
|
26
43
|
* Witness the synchronization context (Send/Receive).
|
|
27
44
|
*
|
|
45
|
+
* At this point in code, we are sending the context OUTGOING. The {@link context} should
|
|
46
|
+
* have a fully populated {@link SyncSagaContextIbGib_V1.sagaFrame}
|
|
47
|
+
*
|
|
28
48
|
* @param arg The OUTGOING context (Request).
|
|
29
49
|
* @returns The INCOMING context (Response), or undefined if failed/empty.
|
|
30
50
|
*/
|
|
31
|
-
witness(
|
|
51
|
+
witness(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined>;
|
|
32
52
|
/**
|
|
33
53
|
* Transmits the Context IbGib itself to the Peer.
|
|
34
54
|
*/
|
|
@@ -45,6 +65,18 @@ export declare abstract class SyncPeer_V1 extends LightWitnessBase_V1<SyncPeerDa
|
|
|
45
65
|
* Primitive: Pulls specific IbGib(s) (by address) from Remote to Local.
|
|
46
66
|
*/
|
|
47
67
|
protected abstract pull(addrs: IbGibAddr[]): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* move to sync-peer-helpers.mts as a pure function?
|
|
70
|
+
*/
|
|
71
|
+
protected authenticateContext({ context }: {
|
|
72
|
+
context: SyncSagaContextIbGib_V1;
|
|
73
|
+
}): Promise<string[]>;
|
|
74
|
+
/**
|
|
75
|
+
* move to sync-peer-helpers.mts as a pure function?
|
|
76
|
+
*/
|
|
77
|
+
protected authorizeContext({ context }: {
|
|
78
|
+
context: SyncSagaContextIbGib_V1;
|
|
79
|
+
}): Promise<string[]>;
|
|
48
80
|
/**
|
|
49
81
|
* Helper to orchestrate the PUSH of a Context's dependency graph.
|
|
50
82
|
*/
|
|
@@ -60,7 +92,9 @@ export declare abstract class SyncPeer_V1 extends LightWitnessBase_V1<SyncPeerDa
|
|
|
60
92
|
/**
|
|
61
93
|
* Abstract accessor to get an IbGib from the Local space/store.
|
|
62
94
|
* Needed for inspecting rela8ns during the graph walk.
|
|
95
|
+
*
|
|
96
|
+
* Default implementation simply looks in senderSpace
|
|
63
97
|
*/
|
|
64
|
-
protected
|
|
98
|
+
protected getLocalIbGib(addr: string): Promise<IbGib_V1 | undefined>;
|
|
65
99
|
}
|
|
66
100
|
//# sourceMappingURL=sync-peer-v1.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-peer-v1.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sync-peer-v1.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKzD,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAStE;;;;;;;;;GASG;AACH,8BAAsB,WAAY,SAAQ,mBAAmB,CAAC,eAAe,EAAE,iBAAiB,CAC5F,YAAW,eAAe;IAE1B,SAAS,CAAC,EAAE,EAAE,MAAM,CAA2B;IAExC,WAAW,EAAE,aAAa,CAAC;IAC3B,eAAe,EAAE,aAAa,CAAC;IAC/B,4BAA4B,EAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,SAAS,IAAI,MAAM,CAItB;gBAEW,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAMjI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,IAAI,OAAO,CAAC,aAAa,CAAC;IAEpE;;;;;;;;OAQG;IACY,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAsEtG;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAErH;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D;;OAEG;cACa,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,uBAAuB,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBzG;;OAEG;cACa,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,uBAAuB,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBtG;;OAEG;cACa,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,uBAAuB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuElG;;OAEG;cACa,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,uBAAuB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DlG;;;;;OAKG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAsB7E"}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module SyncPeer_V1 witness class
|
|
3
|
+
*
|
|
4
|
+
*
|
|
5
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
6
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
7
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
8
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
9
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
10
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
11
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
12
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
13
|
+
* NOTE: All push/pulls in this were done to get to compile. These should mostly
|
|
14
|
+
* not be single push/pull calls but should be batched with multiple addresses
|
|
3
15
|
*/
|
|
4
16
|
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
5
17
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
6
18
|
import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
|
|
7
19
|
import { SYNC_MSG_REL8N_NAME, SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN } from '../sync-constants.mjs';
|
|
8
20
|
import { LightWitnessBase_V1 } from '../../witness/light-witness-base-v1.mjs';
|
|
21
|
+
import { newupSubject } from '../../common/pubsub/subject/subject-helper.mjs';
|
|
22
|
+
import { validateContext } from '../sync-saga-context/sync-saga-context-helpers.mjs';
|
|
23
|
+
import { getFromSpace } from '../../witness/space/space-helper.mjs';
|
|
9
24
|
const logalot = GLOBAL_LOG_A_LOT || true;
|
|
10
25
|
const logalotControlDomain = true;
|
|
11
26
|
const lcControlDomain = '[ControlDomain]';
|
|
@@ -21,6 +36,9 @@ const lcControlDomain = '[ControlDomain]';
|
|
|
21
36
|
*/
|
|
22
37
|
export class SyncPeer_V1 extends LightWitnessBase_V1 {
|
|
23
38
|
lc = `[${SyncPeer_V1.name}]`;
|
|
39
|
+
senderSpace;
|
|
40
|
+
senderTempSpace;
|
|
41
|
+
payloadIbGibsDomainReceived$;
|
|
24
42
|
get classname() {
|
|
25
43
|
if (!this.data) {
|
|
26
44
|
throw new Error(`(UNEXPECTED) this.data falsy? (E: 1ab1841e9338b54f3aa615fa37024826)`);
|
|
@@ -30,16 +48,24 @@ export class SyncPeer_V1 extends LightWitnessBase_V1 {
|
|
|
30
48
|
}
|
|
31
49
|
return this.data.classname;
|
|
32
50
|
}
|
|
33
|
-
constructor(initialData, initialRel8ns) {
|
|
51
|
+
constructor(senderSpace, senderTempSpace, initialData, initialRel8ns) {
|
|
34
52
|
super(initialData, initialRel8ns);
|
|
53
|
+
this.senderSpace = senderSpace;
|
|
54
|
+
this.senderTempSpace = senderTempSpace;
|
|
55
|
+
}
|
|
56
|
+
async initialize() {
|
|
57
|
+
this.payloadIbGibsDomainReceived$ = await newupSubject();
|
|
35
58
|
}
|
|
36
59
|
/**
|
|
37
60
|
* Witness the synchronization context (Send/Receive).
|
|
38
61
|
*
|
|
62
|
+
* At this point in code, we are sending the context OUTGOING. The {@link context} should
|
|
63
|
+
* have a fully populated {@link SyncSagaContextIbGib_V1.sagaFrame}
|
|
64
|
+
*
|
|
39
65
|
* @param arg The OUTGOING context (Request).
|
|
40
66
|
* @returns The INCOMING context (Response), or undefined if failed/empty.
|
|
41
67
|
*/
|
|
42
|
-
async witness(
|
|
68
|
+
async witness(context) {
|
|
43
69
|
const lc = `${this.lc}[${this.witness.name}]`;
|
|
44
70
|
try {
|
|
45
71
|
if (logalot) {
|
|
@@ -48,16 +74,51 @@ export class SyncPeer_V1 extends LightWitnessBase_V1 {
|
|
|
48
74
|
if (logalot) {
|
|
49
75
|
console.log(`${lc} starting...`);
|
|
50
76
|
}
|
|
77
|
+
// validate, authenticate, and authorize the context, sagaFrame, and identity(s)
|
|
78
|
+
const validationErrors = await validateContext({ context });
|
|
79
|
+
if (validationErrors.length > 0) {
|
|
80
|
+
throw new Error(`invalid context received. validationErrors: ${validationErrors} (E: 8b34c875c968af29bc433138e57a7826)`);
|
|
81
|
+
}
|
|
82
|
+
const authenticationErrors = await this.authenticateContext({ context });
|
|
83
|
+
if (authenticationErrors.length > 0) {
|
|
84
|
+
throw new Error(`invalid context authentication. authenticationErrors: ${authenticationErrors} (E: da89da5ee1269aeb78952d475d607526)`);
|
|
85
|
+
}
|
|
86
|
+
const authorizationErrors = await this.authorizeContext({ context });
|
|
87
|
+
if (authorizationErrors.length > 0) {
|
|
88
|
+
throw new Error(`invalid context authorization. authorizationErrors: ${authorizationErrors} (E: 8ddc284a758cf10ba829334c1babb826)`);
|
|
89
|
+
}
|
|
90
|
+
// at this point, we have a valid, authenticated, authorized context
|
|
91
|
+
// persist the context, sagaframe, identity(s) ONLY in the receiver's durable space
|
|
92
|
+
// if sending domain ibgibs...
|
|
93
|
+
// verify the domain ibgibs intrinsically.
|
|
94
|
+
// persist the domain ibgibs in the receiver's temp space (push all addrs?)
|
|
95
|
+
// await until all domain ibgibs are in receiver's temp space
|
|
96
|
+
// process the context with the receiver's coordinator to get a new response context
|
|
97
|
+
// analyze the response context
|
|
98
|
+
// validate context intrinsically
|
|
99
|
+
// validate return identity if present
|
|
100
|
+
// persist the response context's dependency graph (context, saga frame and msg(s), identities)
|
|
101
|
+
// if response has payload domain ibgibs,
|
|
102
|
+
// spin off...
|
|
103
|
+
// pull domain ibgibs to local temp space
|
|
104
|
+
// publish domain ibgibs to observable
|
|
105
|
+
// when all domain ibgibs are pulled, publish complete to the observable
|
|
106
|
+
// return resulting context ibgib (which the caller should get BEFORE the domain ibgibs observable completes)
|
|
51
107
|
// 1. PUSH: Ensure Request Data is available on Receiver
|
|
52
|
-
await this.pushContextGraph({ context
|
|
108
|
+
await this.pushContextGraph({ context }); // ???
|
|
53
109
|
// 2. EXECUTE: Trigger Remote Processing
|
|
54
|
-
const response = await this.sendContextRequest(
|
|
110
|
+
const response = await this.sendContextRequest(context);
|
|
55
111
|
if (!response) {
|
|
56
112
|
if (logalot) {
|
|
57
113
|
console.log(`${lc} No response from peer.`);
|
|
58
114
|
}
|
|
59
115
|
return undefined;
|
|
60
116
|
}
|
|
117
|
+
// at this point, we have received the response context, sync saga
|
|
118
|
+
// frame/msg stones, and any keystones should be evolved. Depending
|
|
119
|
+
// on the concrete implementation, if there are domain ibgibs to
|
|
120
|
+
// receive, they may already be coming.
|
|
121
|
+
// todo: this pull is a
|
|
61
122
|
// 3. PULL: Ensure Response Data is available on Sender (Local)
|
|
62
123
|
await this.pullContextGraph({ context: response });
|
|
63
124
|
return response;
|
|
@@ -72,6 +133,50 @@ export class SyncPeer_V1 extends LightWitnessBase_V1 {
|
|
|
72
133
|
}
|
|
73
134
|
}
|
|
74
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* move to sync-peer-helpers.mts as a pure function?
|
|
138
|
+
*/
|
|
139
|
+
async authenticateContext({ context }) {
|
|
140
|
+
const lc = `${this.lc}[${this.authenticateContext.name}]`;
|
|
141
|
+
try {
|
|
142
|
+
if (logalot) {
|
|
143
|
+
console.log(`${lc} starting... (I: 2677a482dfa873dcd1aa04a3031ff826)`);
|
|
144
|
+
}
|
|
145
|
+
console.error(`${lc} NAG ERROR (NOT THROWN): not implemented. // todo: authenticate (v1 must have this after we get merge logic workflow going) (E: bc3a78f2dab18ab64c36d055a4b50526)`);
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
if (logalot) {
|
|
154
|
+
console.log(`${lc} complete.`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* move to sync-peer-helpers.mts as a pure function?
|
|
160
|
+
*/
|
|
161
|
+
async authorizeContext({ context }) {
|
|
162
|
+
const lc = `${this.lc}[${this.authorizeContext.name}]`;
|
|
163
|
+
try {
|
|
164
|
+
if (logalot) {
|
|
165
|
+
console.log(`${lc} starting... (I: 48c918b41ceec0cd489ca3b8819e6826)`);
|
|
166
|
+
}
|
|
167
|
+
console.error(`${lc} NAG ERROR (NOT THROWN): not implemented. authorize business logic (v1 must have this, but later when we are working on admin vs. student)(E: bc3a78f2dab18ab64c36d055a4b50526)`);
|
|
168
|
+
return [];
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
if (logalot) {
|
|
176
|
+
console.log(`${lc} complete.`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
75
180
|
/**
|
|
76
181
|
* Helper to orchestrate the PUSH of a Context's dependency graph.
|
|
77
182
|
*/
|
|
@@ -222,5 +327,37 @@ export class SyncPeer_V1 extends LightWitnessBase_V1 {
|
|
|
222
327
|
console.log(`${lc}${lcControlDomain} PULL COMPLETE for context ${contextAddr} (I: c8d9e0f1a2b3c4d5)`);
|
|
223
328
|
}
|
|
224
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* Abstract accessor to get an IbGib from the Local space/store.
|
|
332
|
+
* Needed for inspecting rela8ns during the graph walk.
|
|
333
|
+
*
|
|
334
|
+
* Default implementation simply looks in senderSpace
|
|
335
|
+
*/
|
|
336
|
+
async getLocalIbGib(addr) {
|
|
337
|
+
const lc = `${this.lc}[${this.getLocalIbGib.name}]`;
|
|
338
|
+
try {
|
|
339
|
+
if (logalot) {
|
|
340
|
+
console.log(`${lc} starting... (I: 27b248cb9801eeb2386b71485389a826)`);
|
|
341
|
+
}
|
|
342
|
+
console.warn(`${lc} possibly a bottleneck here, getLocalIbGib only gets a single ibgib... (W: 2fd448a435480e6b128f6b8bcbef4826)`);
|
|
343
|
+
const resGet = await getFromSpace({ space: this.senderSpace, addr });
|
|
344
|
+
if (resGet.success && resGet.ibGibs && resGet.ibGibs.length === 1) {
|
|
345
|
+
const ibGib = resGet.ibGibs[0];
|
|
346
|
+
return ibGib;
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
throw new Error(`couldn't get addr (${addr}) from local space ${this.senderSpace}. reason: ${resGet.errorMsg ?? 'unknown error (E: 926ef8bf4fcc299ab89dba34ea691a26)'} (E: d8a89807e471d3f8b938ab21df44cb26)`);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
354
|
+
throw error;
|
|
355
|
+
}
|
|
356
|
+
finally {
|
|
357
|
+
if (logalot) {
|
|
358
|
+
console.log(`${lc} complete.`);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
225
362
|
}
|
|
226
363
|
//# sourceMappingURL=sync-peer-v1.mjs.map
|