@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
|
@@ -2,27 +2,24 @@
|
|
|
2
2
|
* @module sync saga context helpers
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
5
|
+
import { extractErrorMsg, getTimestamp } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
6
6
|
import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
|
|
7
7
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
8
8
|
import { IbGib_V1, } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
9
9
|
import { Ib } from '@ibgib/ts-gib/dist/types.mjs';
|
|
10
10
|
|
|
11
11
|
import { SYNC_SAGA_CONTEXT_ATOM } from './sync-saga-context-constants.mjs';
|
|
12
|
-
import {
|
|
12
|
+
import { SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN } from '../sync-constants.mjs';
|
|
13
13
|
import {
|
|
14
|
-
|
|
14
|
+
SyncSagaContextData_V1, SyncSagaContextIbGib_V1,
|
|
15
15
|
SyncSagaContextIb_V1, SyncSagaContextRel8ns_V1
|
|
16
16
|
} from './sync-saga-context-types.mjs';
|
|
17
|
+
import { getTimestampInfo } from '../../common/other/ibgib-helper.mjs';
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Options for creating a SyncSagaContext ibgib.
|
|
20
21
|
*/
|
|
21
22
|
export interface CreateSyncSagaContextOptions {
|
|
22
|
-
/**
|
|
23
|
-
* Optional command string (e.g. 'process').
|
|
24
|
-
*/
|
|
25
|
-
cmd?: SyncSagaContextCmd | string;
|
|
26
23
|
/**
|
|
27
24
|
* The main saga frame (Init, Ack, etc.).
|
|
28
25
|
*/
|
|
@@ -32,9 +29,10 @@ export interface CreateSyncSagaContextOptions {
|
|
|
32
29
|
*/
|
|
33
30
|
sessionKeystones?: IbGib_V1[];
|
|
34
31
|
/**
|
|
35
|
-
*
|
|
32
|
+
* Domain payload ibgibs when the sync saga frame includes actual domain
|
|
33
|
+
* payloads to send, e.g., in a Delta frame.
|
|
36
34
|
*/
|
|
37
|
-
|
|
35
|
+
payloadIbGibsDomain?: IbGib_V1[];
|
|
38
36
|
}
|
|
39
37
|
|
|
40
38
|
/**
|
|
@@ -48,11 +46,12 @@ export async function getSyncSagaContextIb({
|
|
|
48
46
|
const lc = `[${getSyncSagaContextIb.name}]`;
|
|
49
47
|
try {
|
|
50
48
|
if (!data) { throw new Error(`data required (E: 839d82138c234b3e89582855594191fe)`); }
|
|
51
|
-
|
|
49
|
+
|
|
50
|
+
const payloadCount = data['@payloadAddrsDomain'] ? data['@payloadAddrsDomain'].length : 0;
|
|
52
51
|
// sync_sagacontext cmd
|
|
53
52
|
const ib = [
|
|
54
53
|
SYNC_SAGA_CONTEXT_ATOM,
|
|
55
|
-
|
|
54
|
+
payloadCount,
|
|
56
55
|
].join(' ');
|
|
57
56
|
|
|
58
57
|
return ib;
|
|
@@ -73,17 +72,25 @@ export async function parseSyncSagaContextIb({
|
|
|
73
72
|
const lc = `[${parseSyncSagaContextIb.name}]`;
|
|
74
73
|
try {
|
|
75
74
|
const parts = ib.split(' ');
|
|
76
|
-
if (parts.length
|
|
77
|
-
throw new Error(`Invalid sync saga context ib. Expected at least 2 parts [atom
|
|
75
|
+
if (parts.length !== 2) {
|
|
76
|
+
throw new Error(`Invalid sync saga context ib. Expected at least 2 parts [atom, payloadCount]. Got ${parts.length}. (E: 8b06c88820c74f5fb9f21f148459422a)`);
|
|
78
77
|
}
|
|
79
|
-
const [
|
|
80
|
-
|
|
78
|
+
const [
|
|
79
|
+
atom,
|
|
80
|
+
payloadCountStr,
|
|
81
|
+
] = parts;
|
|
81
82
|
|
|
82
83
|
if (atom !== SYNC_SAGA_CONTEXT_ATOM) {
|
|
83
84
|
throw new Error(`Atom mismatch. Expected ${SYNC_SAGA_CONTEXT_ATOM}. Got ${atom}. (E: 67d71fc0f8d04840b178652309f471f5)`);
|
|
84
85
|
}
|
|
85
86
|
|
|
86
|
-
|
|
87
|
+
if (!payloadCountStr) { throw new Error(`invalid ib. second piece should be payloadCount but is falsy (E: 0bb7580793d800ca02227828a7294826)`); }
|
|
88
|
+
const payloadCount = parseInt(payloadCountStr);
|
|
89
|
+
if (isNaN(payloadCount)) {
|
|
90
|
+
throw new Error(`payloadCountStr is not a number. (E: 49457814282a44069871630987588722)`);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return { atom, payloadCount };
|
|
87
94
|
} catch (error) {
|
|
88
95
|
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
89
96
|
throw error;
|
|
@@ -96,26 +103,32 @@ export async function parseSyncSagaContextIb({
|
|
|
96
103
|
* @returns The context ibGib.
|
|
97
104
|
*/
|
|
98
105
|
export async function createSyncSagaContext({
|
|
99
|
-
cmd,
|
|
100
106
|
sagaFrame,
|
|
101
107
|
sessionKeystones,
|
|
102
|
-
|
|
108
|
+
payloadIbGibsDomain,
|
|
103
109
|
}: CreateSyncSagaContextOptions): Promise<SyncSagaContextIbGib_V1> {
|
|
104
110
|
|
|
111
|
+
const date = new Date();
|
|
112
|
+
const timestamp = getTimestamp(date);
|
|
113
|
+
const timestampMs = date.getMilliseconds();
|
|
114
|
+
|
|
105
115
|
const data: SyncSagaContextData_V1 = {
|
|
106
|
-
|
|
116
|
+
timestamp,
|
|
117
|
+
timestampMs,
|
|
107
118
|
};
|
|
108
|
-
if (payloadAddrs && payloadAddrs.length > 0) {
|
|
109
|
-
data[SYNC_SAGA_PAYLOAD_ADDRS_REL8N_NAME] = payloadAddrs;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const rel8ns: SyncSagaContextRel8ns_V1 = {};
|
|
113
119
|
|
|
114
|
-
|
|
115
|
-
|
|
120
|
+
// Domain Payloads
|
|
121
|
+
const payloadAddrsDomain = payloadIbGibsDomain ? payloadIbGibsDomain?.map(x => getIbGibAddr({ ibGib: x })) : undefined;
|
|
122
|
+
if (payloadAddrsDomain && payloadAddrsDomain.length > 0) {
|
|
123
|
+
data[SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN] = payloadAddrsDomain;
|
|
116
124
|
}
|
|
125
|
+
|
|
126
|
+
// rel8ns should always have saga frame, sometimes have keystone
|
|
127
|
+
const rel8ns: SyncSagaContextRel8ns_V1 = {
|
|
128
|
+
sagaFrame: [getIbGibAddr({ ibGib: sagaFrame })],
|
|
129
|
+
};
|
|
117
130
|
if (sessionKeystones && sessionKeystones.length > 0) {
|
|
118
|
-
rel8ns.sessionKeystone = sessionKeystones.map(getIbGibAddr);
|
|
131
|
+
rel8ns.sessionKeystone = sessionKeystones.map(x => getIbGibAddr({ ibGib: x }));
|
|
119
132
|
}
|
|
120
133
|
|
|
121
134
|
// Generate standard ib
|
|
@@ -126,7 +139,12 @@ export async function createSyncSagaContext({
|
|
|
126
139
|
ib,
|
|
127
140
|
data,
|
|
128
141
|
rel8ns,
|
|
129
|
-
});
|
|
142
|
+
}) as SyncSagaContextIbGib_V1;
|
|
143
|
+
|
|
144
|
+
// Attach actual ibgibs for transport
|
|
145
|
+
if (payloadIbGibsDomain && payloadIbGibsDomain.length > 0) {
|
|
146
|
+
contextIbGib.payloadIbGibsDomain = payloadIbGibsDomain;
|
|
147
|
+
}
|
|
130
148
|
|
|
131
|
-
return contextIbGib
|
|
149
|
+
return contextIbGib;
|
|
132
150
|
}
|
|
@@ -4,28 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
|
|
6
6
|
import { IbGibData_V1, IbGibRel8ns_V1, IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
7
|
-
import { SYNC_SAGA_PAYLOAD_ADDRS_REL8N_NAME } from '../sync-constants.mjs';
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*/
|
|
13
|
-
export type SyncSagaContextCmd =
|
|
14
|
-
| 'process'
|
|
15
|
-
| 'ping';
|
|
16
|
-
export const SyncSagaContextCmd = {
|
|
17
|
-
process: 'process' as SyncSagaContextCmd,
|
|
18
|
-
ping: 'ping' as SyncSagaContextCmd,
|
|
19
|
-
} satisfies { [key in SyncSagaContextCmd]: SyncSagaContextCmd };
|
|
20
|
-
export const SYNC_SAGA_CONTEXT_CMD_VALID_VALUES = Object.values(SyncSagaContextCmd);
|
|
21
|
-
export function isValidSyncSagaContextCmd(cmd: string): cmd is SyncSagaContextCmd {
|
|
22
|
-
return SYNC_SAGA_CONTEXT_CMD_VALID_VALUES.includes(cmd as SyncSagaContextCmd);
|
|
23
|
-
}
|
|
24
|
-
// #endregion SyncSagaContextCmd
|
|
8
|
+
import { SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN } from '../sync-constants.mjs';
|
|
9
|
+
import { SyncIbGib_V1 } from '../sync-types.mjs';
|
|
10
|
+
import { SYNC_SAGA_CONTEXT_ATOM } from './sync-saga-context-constants.mjs';
|
|
25
11
|
|
|
26
12
|
export interface SyncSagaContextIb_V1 {
|
|
27
|
-
atom:
|
|
28
|
-
|
|
13
|
+
atom: typeof SYNC_SAGA_CONTEXT_ATOM;
|
|
14
|
+
/**
|
|
15
|
+
* simple metadata count of data["@payloadAddrsDomain"]
|
|
16
|
+
*/
|
|
17
|
+
payloadCount: number;
|
|
29
18
|
}
|
|
30
19
|
|
|
31
20
|
/**
|
|
@@ -33,16 +22,10 @@ export interface SyncSagaContextIb_V1 {
|
|
|
33
22
|
*/
|
|
34
23
|
export interface SyncSagaContextData_V1 extends IbGibData_V1 {
|
|
35
24
|
/**
|
|
36
|
-
*
|
|
37
|
-
* e.g. "process", "ping".
|
|
38
|
-
*/
|
|
39
|
-
cmd?: SyncSagaContextCmd | string;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Payload data (ibGibs) being transported in this context (e.g. for Delta stage).
|
|
25
|
+
* Payload data addresses for DOMAIN ibGibs (Timeline frames, user content).
|
|
43
26
|
* Soft-linked via data property to avoid hard-linking graph dependencies.
|
|
44
27
|
*/
|
|
45
|
-
[
|
|
28
|
+
[SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN]?: IbGibAddr[];
|
|
46
29
|
}
|
|
47
30
|
|
|
48
31
|
/**
|
|
@@ -52,9 +35,10 @@ export interface SyncSagaContextData_V1 extends IbGibData_V1 {
|
|
|
52
35
|
export interface SyncSagaContextRel8ns_V1 extends IbGibRel8ns_V1 {
|
|
53
36
|
/**
|
|
54
37
|
* The primary Saga Frame being transported (Init, Ack, Delta, etc.).
|
|
55
|
-
*
|
|
38
|
+
*
|
|
39
|
+
* Should be a single addr.
|
|
56
40
|
*/
|
|
57
|
-
sagaFrame
|
|
41
|
+
sagaFrame: IbGibAddr[];
|
|
58
42
|
|
|
59
43
|
/**
|
|
60
44
|
* The Ephemeral Session Keystone Identity used for this saga.
|
|
@@ -67,4 +51,19 @@ export interface SyncSagaContextRel8ns_V1 extends IbGibRel8ns_V1 {
|
|
|
67
51
|
* The SyncSagaContext is a full-fledged ibGib used as the payload
|
|
68
52
|
* between Sync Peers.
|
|
69
53
|
*/
|
|
70
|
-
export interface SyncSagaContextIbGib_V1 extends IbGib_V1<SyncSagaContextData_V1, SyncSagaContextRel8ns_V1> {
|
|
54
|
+
export interface SyncSagaContextIbGib_V1 extends IbGib_V1<SyncSagaContextData_V1, SyncSagaContextRel8ns_V1> {
|
|
55
|
+
/**
|
|
56
|
+
* Domain ibgibs - OUTBOUND only.
|
|
57
|
+
*
|
|
58
|
+
* For inbound, the domain payload ibgibs are streamed via observable in the
|
|
59
|
+
* peer.
|
|
60
|
+
*/
|
|
61
|
+
payloadIbGibsDomain?: IbGib_V1[];
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Reference to the actual sync saga frame that this context conveys.
|
|
65
|
+
*
|
|
66
|
+
* This frame's addr should be {@link SyncSagaContextRel8ns_V1.sagaFrame}.
|
|
67
|
+
*/
|
|
68
|
+
sagaFrame: SyncIbGib_V1;
|
|
69
|
+
}
|