@ibgib/core-gib 0.1.22 → 0.1.25

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.
Files changed (86) hide show
  1. package/dist/common/other/graph-helper.d.mts +25 -0
  2. package/dist/common/other/graph-helper.d.mts.map +1 -1
  3. package/dist/common/other/graph-helper.mjs +75 -1
  4. package/dist/common/other/graph-helper.mjs.map +1 -1
  5. package/dist/sync/graft-info/graft-info-helpers.mjs +2 -2
  6. package/dist/sync/graft-info/graft-info-helpers.mjs.map +1 -1
  7. package/dist/sync/sync-conflict.respec.mjs +8 -12
  8. package/dist/sync/sync-conflict.respec.mjs.map +1 -1
  9. package/dist/sync/sync-constants.d.mts +14 -4
  10. package/dist/sync/sync-constants.d.mts.map +1 -1
  11. package/dist/sync/sync-constants.mjs +15 -3
  12. package/dist/sync/sync-constants.mjs.map +1 -1
  13. package/dist/sync/sync-helpers.d.mts +22 -15
  14. package/dist/sync/sync-helpers.d.mts.map +1 -1
  15. package/dist/sync/sync-helpers.mjs +159 -90
  16. package/dist/sync/sync-helpers.mjs.map +1 -1
  17. package/dist/sync/sync-innerspace-constants.respec.mjs +8 -9
  18. package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -1
  19. package/dist/sync/sync-innerspace-deep-updates.respec.mjs +8 -9
  20. package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
  21. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +8 -9
  22. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
  23. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +8 -9
  24. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
  25. package/dist/sync/sync-innerspace-partial-update.respec.mjs +8 -9
  26. package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -1
  27. package/dist/sync/sync-innerspace.respec.mjs +6 -7
  28. package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
  29. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.d.mts +2 -0
  30. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.d.mts.map +1 -1
  31. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs +4 -0
  32. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs.map +1 -1
  33. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts +0 -15
  34. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts.map +1 -1
  35. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts +30 -16
  36. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts.map +1 -1
  37. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs +47 -79
  38. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs.map +1 -1
  39. package/dist/sync/sync-peer/sync-peer-types.d.mts +40 -1
  40. package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
  41. package/dist/sync/sync-peer/sync-peer-v1.d.mts +47 -14
  42. package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
  43. package/dist/sync/sync-peer/sync-peer-v1.mjs +188 -144
  44. package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
  45. package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts +39 -3
  46. package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts.map +1 -1
  47. package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs +137 -31
  48. package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs.map +1 -1
  49. package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts +5 -0
  50. package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts.map +1 -1
  51. package/dist/sync/sync-saga-coordinator.d.mts +81 -77
  52. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  53. package/dist/sync/sync-saga-coordinator.mjs +608 -597
  54. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  55. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +154 -26
  56. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
  57. package/dist/sync/sync-types.d.mts +87 -92
  58. package/dist/sync/sync-types.d.mts.map +1 -1
  59. package/dist/sync/sync-types.mjs +6 -2
  60. package/dist/sync/sync-types.mjs.map +1 -1
  61. package/dist/timeline/timeline-api.d.mts.map +1 -1
  62. package/dist/timeline/timeline-api.mjs +15 -8
  63. package/dist/timeline/timeline-api.mjs.map +1 -1
  64. package/package.json +1 -1
  65. package/src/common/other/graph-helper.mts +79 -1
  66. package/src/sync/graft-info/graft-info-helpers.mts +3 -3
  67. package/src/sync/sync-conflict.respec.mts +8 -14
  68. package/src/sync/sync-constants.mts +15 -4
  69. package/src/sync/sync-helpers.mts +173 -101
  70. package/src/sync/sync-innerspace-constants.respec.mts +8 -9
  71. package/src/sync/sync-innerspace-deep-updates.respec.mts +8 -9
  72. package/src/sync/sync-innerspace-dest-ahead.respec.mts +8 -9
  73. package/src/sync/sync-innerspace-multiple-timelines.respec.mts +8 -9
  74. package/src/sync/sync-innerspace-partial-update.respec.mts +9 -12
  75. package/src/sync/sync-innerspace.respec.mts +6 -7
  76. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mts +7 -0
  77. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts +0 -15
  78. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +72 -96
  79. package/src/sync/sync-peer/sync-peer-types.mts +43 -2
  80. package/src/sync/sync-peer/sync-peer-v1.mts +215 -142
  81. package/src/sync/sync-saga-context/sync-saga-context-helpers.mts +145 -37
  82. package/src/sync/sync-saga-context/sync-saga-context-types.mts +5 -0
  83. package/src/sync/sync-saga-coordinator.mts +680 -714
  84. package/src/sync/sync-saga-message/sync-saga-message-types.mts +160 -24
  85. package/src/sync/sync-types.mts +96 -105
  86. package/src/timeline/timeline-api.mts +17 -10
@@ -1,12 +1,15 @@
1
1
  /**
2
- * @module SyncPeer_V1 witness class
2
+ * @module SyncPeer_V1 witness class for base class plumbing of sync peers.
3
+ *
4
+ * You are expected to implement concrete peer classes for concrete architecture.
3
5
  */
4
6
  import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
7
+ import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
5
8
  import { SubjectWitness } from '../../common/pubsub/subject/subject-types.mjs';
6
9
  import { SyncSagaContextIbGib_V1 } from '../sync-saga-context/sync-saga-context-types.mjs';
7
- import { SyncPeerData_V1, SyncPeerRel8ns_V1, SyncPeerWitness } from './sync-peer-types.mjs';
10
+ import { InitializeSyncPeerOpts, SyncPeerData_V1, SyncPeerRel8ns_V1, SyncPeerWitness } from './sync-peer-types.mjs';
8
11
  import { LightWitnessBase_V1 } from '../../witness/light-witness-base-v1.mjs';
9
- import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
12
+ import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
10
13
  /**
11
14
  * Abstract witness for talking to a Sync Peer (e.g. Remote Node or Local Simulator).
12
15
  *
@@ -17,20 +20,48 @@ import { IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
17
20
  * 2. Send Request (RPC)
18
21
  * 3. Pull Response & Dependencies (Receiver -> Sender)
19
22
  */
20
- export declare abstract class SyncPeer_V1 extends LightWitnessBase_V1<SyncPeerData_V1, SyncPeerRel8ns_V1> implements SyncPeerWitness {
23
+ export declare abstract class SyncPeer_V1<TInitializeOpts extends InitializeSyncPeerOpts = InitializeSyncPeerOpts> extends LightWitnessBase_V1<SyncPeerData_V1, SyncPeerRel8ns_V1> implements SyncPeerWitness<TInitializeOpts> {
21
24
  protected lc: string;
22
- abstract payloadIbGibsDomainReceived$: SubjectWitness<IbGib_V1>;
25
+ opts: TInitializeOpts | undefined;
26
+ payloadIbGibsDomainReceived$: SubjectWitness<IbGib_V1>;
23
27
  get classname(): string;
24
28
  constructor(initialData: SyncPeerData_V1, initialRel8ns?: SyncPeerRel8ns_V1);
29
+ initialize(): Promise<void>;
30
+ /**
31
+ * base implementation just sets the opts property.
32
+ *
33
+ * override this in concrete classes for further initialization code
34
+ * specific to the sender.
35
+ *
36
+ * @see {@link SyncPeerWitness.opts}
37
+ */
38
+ initializeSender(opts: TInitializeOpts): Promise<void>;
39
+ setOptionalOpts(arg: Partial<TInitializeOpts>): void;
40
+ protected abstract ensureReceiverTempSpace(): Promise<IbGibSpaceAny>;
25
41
  /**
26
42
  * Witness the synchronization context (Send/Receive).
27
43
  *
44
+ * At this point in code, we are sending the context OUTGOING. The {@link context} should
45
+ * have a fully populated {@link SyncSagaContextIbGib_V1.sagaFrame}
46
+ *
28
47
  * @param arg The OUTGOING context (Request).
29
48
  * @returns The INCOMING context (Response), or undefined if failed/empty.
30
49
  */
31
- witness(arg: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined>;
50
+ witness(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined>;
32
51
  /**
33
- * Transmits the Context IbGib itself to the Peer.
52
+ * This is responsible for:
53
+ *
54
+ * * sending outgoing {@link context}, the sync saga frame and msg stone(s),
55
+ * and identities...
56
+ * * AND sending OUTGOING domain ibgibs
57
+ * {@link SyncSagaContextIbGib_V1.payloadIbGibsDomain}
58
+ * * getting back the other end's resultant context ibgib, sync saga frame
59
+ * and msg stone(s), and identities in their entirety...
60
+ * * AND stream/receiving the RESPONSE payload domain ibgibs, publishing
61
+ * these to this.payloadIbGibsDomainReceived$.
62
+ *
63
+ * So this returns the RESPONSE context, possibly BEFORE the RESPONSE domain
64
+ * ibgibs have been completely received/streamed. The coordinator is responsible
34
65
  */
35
66
  protected abstract sendContextRequest(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined>;
36
67
  /**
@@ -46,21 +77,23 @@ export declare abstract class SyncPeer_V1 extends LightWitnessBase_V1<SyncPeerDa
46
77
  */
47
78
  protected abstract pull(addrs: IbGibAddr[]): Promise<void>;
48
79
  /**
49
- * Helper to orchestrate the PUSH of a Context's dependency graph.
80
+ * move to sync-peer-helpers.mts as a pure function?
50
81
  */
51
- protected pushContextGraph({ context }: {
82
+ protected authenticateContext({ context }: {
52
83
  context: SyncSagaContextIbGib_V1;
53
- }): Promise<void>;
84
+ }): Promise<string[]>;
54
85
  /**
55
- * Helper to orchestrate the PULL of a Context's dependency graph.
86
+ * move to sync-peer-helpers.mts as a pure function?
56
87
  */
57
- protected pullContextGraph({ context }: {
88
+ protected authorizeContext({ context }: {
58
89
  context: SyncSagaContextIbGib_V1;
59
- }): Promise<void>;
90
+ }): Promise<string[]>;
60
91
  /**
61
92
  * Abstract accessor to get an IbGib from the Local space/store.
62
93
  * Needed for inspecting rela8ns during the graph walk.
94
+ *
95
+ * Default implementation simply looks in senderSpace
63
96
  */
64
- protected abstract getLocalIbGib(addr: string): Promise<IbGib_V1 | undefined>;
97
+ protected getLocalIbGib(addr: string): Promise<IbGib_V1 | undefined>;
65
98
  }
66
99
  //# 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;;GAEG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAI/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,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAMzD;;;;;;;;;GASG;AACH,8BAAsB,WAAY,SAAQ,mBAAmB,CAAC,eAAe,EAAE,iBAAiB,CAC5F,YAAW,eAAe;IAE1B,SAAS,CAAC,EAAE,EAAE,MAAM,CAA2B;IAE/C,QAAQ,CAAC,4BAA4B,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEhE,IAAI,SAAS,IAAI,MAAM,CAItB;gBAEW,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAG3E;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IA+BzF;;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;IAE1D;;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;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAChF"}
1
+ {"version":3,"file":"sync-peer-v1.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"AAAA;;;;GAIG;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,sBAAsB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAStE;;;;;;;;;GASG;AACH,8BAAsB,WAAW,CAAC,eAAe,SAAS,sBAAsB,GAAG,sBAAsB,CACrG,SAAQ,mBAAmB,CAAC,eAAe,EAAE,iBAAiB,CAC9D,YAAW,eAAe,CAAC,eAAe,CAAC;IAE3C,SAAS,CAAC,EAAE,EAAE,MAAM,CAA2B;IAExC,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,4BAA4B,EAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,SAAS,IAAI,MAAM,CAItB;gBAEW,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,iBAAiB;IAI9D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;;;;OAOG;IACU,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAoC3D,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;IAwFtG;;;;;;;;;;;;;;OAcG;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;;;;;OAKG;cACa,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;CAuB7E"}
@@ -1,11 +1,14 @@
1
1
  /**
2
- * @module SyncPeer_V1 witness class
2
+ * @module SyncPeer_V1 witness class for base class plumbing of sync peers.
3
+ *
4
+ * You are expected to implement concrete peer classes for concrete architecture.
3
5
  */
4
6
  import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
5
- import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
6
7
  import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
7
- import { SYNC_MSG_REL8N_NAME, SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN } from '../sync-constants.mjs';
8
8
  import { LightWitnessBase_V1 } from '../../witness/light-witness-base-v1.mjs';
9
+ import { newupSubject } from '../../common/pubsub/subject/subject-helper.mjs';
10
+ import { validateContextAndSagaFrame } from '../sync-saga-context/sync-saga-context-helpers.mjs';
11
+ import { getFromSpace } from '../../witness/space/space-helper.mjs';
9
12
  const logalot = GLOBAL_LOG_A_LOT || true;
10
13
  const logalotControlDomain = true;
11
14
  const lcControlDomain = '[ControlDomain]';
@@ -21,6 +24,8 @@ const lcControlDomain = '[ControlDomain]';
21
24
  */
22
25
  export class SyncPeer_V1 extends LightWitnessBase_V1 {
23
26
  lc = `[${SyncPeer_V1.name}]`;
27
+ opts;
28
+ payloadIbGibsDomainReceived$;
24
29
  get classname() {
25
30
  if (!this.data) {
26
31
  throw new Error(`(UNEXPECTED) this.data falsy? (E: 1ab1841e9338b54f3aa615fa37024826)`);
@@ -33,33 +38,143 @@ export class SyncPeer_V1 extends LightWitnessBase_V1 {
33
38
  constructor(initialData, initialRel8ns) {
34
39
  super(initialData, initialRel8ns);
35
40
  }
41
+ async initialize() {
42
+ this.payloadIbGibsDomainReceived$ = await newupSubject();
43
+ }
44
+ /**
45
+ * base implementation just sets the opts property.
46
+ *
47
+ * override this in concrete classes for further initialization code
48
+ * specific to the sender.
49
+ *
50
+ * @see {@link SyncPeerWitness.opts}
51
+ */
52
+ async initializeSender(opts) {
53
+ const lc = `${this.lc}[${this.initializeSender.name}]`;
54
+ try {
55
+ if (logalot) {
56
+ console.log(`${lc} starting... (I: 31bd5fda37c89fa37fbaf14daf5fe726)`);
57
+ }
58
+ this.opts = opts;
59
+ }
60
+ catch (error) {
61
+ console.error(`${lc} ${extractErrorMsg(error)}`);
62
+ throw error;
63
+ }
64
+ finally {
65
+ if (logalot) {
66
+ console.log(`${lc} complete.`);
67
+ }
68
+ }
69
+ }
70
+ setOptionalOpts(arg) {
71
+ const lc = `${this.lc}[${this.setOptionalOpts.name}]`;
72
+ try {
73
+ if (logalot) {
74
+ console.log(`${lc} starting... (I: ae5ddbd3577db267f84743175a736626)`);
75
+ }
76
+ if (!this.opts) {
77
+ throw new Error(`(UNEXPECTED) this.opts falsy? (E: 0dd4d6080a6e2f31d86cf4d86e11b826)`);
78
+ }
79
+ if (logalot) {
80
+ console.log(`${lc} updating opts. arg keys: ${Object.keys(arg)} (I: 452d78a558f8fc3468c8e2e68c70b226)`);
81
+ }
82
+ this.opts = { ...this.opts, ...arg };
83
+ }
84
+ catch (error) {
85
+ console.error(`${lc} ${extractErrorMsg(error)}`);
86
+ throw error;
87
+ }
88
+ finally {
89
+ if (logalot) {
90
+ console.log(`${lc} complete.`);
91
+ }
92
+ }
93
+ }
36
94
  /**
37
95
  * Witness the synchronization context (Send/Receive).
38
96
  *
97
+ * At this point in code, we are sending the context OUTGOING. The {@link context} should
98
+ * have a fully populated {@link SyncSagaContextIbGib_V1.sagaFrame}
99
+ *
39
100
  * @param arg The OUTGOING context (Request).
40
101
  * @returns The INCOMING context (Response), or undefined if failed/empty.
41
102
  */
42
- async witness(arg) {
103
+ async witness(context) {
43
104
  const lc = `${this.lc}[${this.witness.name}]`;
44
105
  try {
45
106
  if (logalot) {
46
107
  console.log(`${lc} starting...`);
47
108
  }
48
- if (logalot) {
49
- console.log(`${lc} starting...`);
109
+ if (!this.opts) {
110
+ throw new Error(`(UNEXPECTED) this.opts falsy? Concrete class should have initialized sender opts by now. (E: 0b9e28287318fdf8bf9f5a6886a24826)`);
111
+ }
112
+ // NOTE: There are two basic types of peers:
113
+ // * local-only (peer)
114
+ // * this peer is both sender/receiver peer
115
+ // * for local merges and relatively fast spaces
116
+ // * proxy to remote space
117
+ // * this peer is both sender/receiver peer
118
+ // * works directly with remote/outerspaces
119
+ // * Less efficient over-the-wire xfer due to chatiness
120
+ // * symmetric node sender/receiver peers
121
+ // * separate sender/receiver classes
122
+ // * e.g., SyncPeerClient[Substrate]Sender_V1,
123
+ // SyncPeerClient[Substrate]Receiver_V1
124
+ // * More efficient over-the-wire xfer
125
+ // * Most difficult to mentally model
126
+ // * sender.witness does the pushing out
127
+ // * what the sender/initiator's coordinator has a reference to
128
+ // * receiver.witness does the coming in
129
+ // * lives on a server/remote instance with its own coordinator
130
+ // instance
131
+ // * must do its own validation/authn/authz for possible MITM
132
+ // issues
133
+ // The following is a sketch where some of these may be blurred
134
+ // persist the context, sagaframe, identity(s) ONLY in the receiver's durable space
135
+ // if sending domain ibgibs...
136
+ // verify the domain ibgibs intrinsically.
137
+ // persist the domain ibgibs in the receiver's temp space (push all addrs?)
138
+ // await until all domain ibgibs are in receiver's temp space
139
+ // process the context with the receiver's coordinator to get a new response context
140
+ // analyze the response context
141
+ // validate context intrinsically
142
+ // validate return identity if present
143
+ // persist the response context's dependency graph (context, saga frame and msg(s), identities)
144
+ // if response has payload domain ibgibs,
145
+ // spin off...
146
+ // pull domain ibgibs to local temp space
147
+ // publish domain ibgibs to observable
148
+ // when all domain ibgibs are pulled, publish complete to the observable
149
+ // return resulting context ibgib (which the caller should get BEFORE the domain ibgibs observable completes)
150
+ // validate, authenticate, and authorize the context, sagaFrame, and identity(s)
151
+ const validationErrors = await validateContextAndSagaFrame({ context });
152
+ if (validationErrors.length > 0) {
153
+ throw new Error(`invalid context received. validationErrors: ${validationErrors} (E: 8b34c875c968af29bc433138e57a7826)`);
50
154
  }
51
- // 1. PUSH: Ensure Request Data is available on Receiver
52
- await this.pushContextGraph({ context: arg });
155
+ const authenticationErrors = await this.authenticateContext({ context });
156
+ if (authenticationErrors.length > 0) {
157
+ throw new Error(`invalid context authentication. authenticationErrors: ${authenticationErrors} (E: da89da5ee1269aeb78952d475d607526)`);
158
+ }
159
+ const authorizationErrors = await this.authorizeContext({ context });
160
+ if (authorizationErrors.length > 0) {
161
+ throw new Error(`invalid context authorization. authorizationErrors: ${authorizationErrors} (E: 8ddc284a758cf10ba829334c1babb826)`);
162
+ }
163
+ // at this point, we have a valid, authenticated, authorized context
53
164
  // 2. EXECUTE: Trigger Remote Processing
54
- const response = await this.sendContextRequest(arg);
165
+ const response = await this.sendContextRequest(context);
55
166
  if (!response) {
56
167
  if (logalot) {
57
168
  console.log(`${lc} No response from peer.`);
58
169
  }
59
170
  return undefined;
60
171
  }
61
- // 3. PULL: Ensure Response Data is available on Sender (Local)
62
- await this.pullContextGraph({ context: response });
172
+ // at this point, all outgoing payload domain ibgibs have been sent.
173
+ // we have received the response context, wherein the sync saga
174
+ // frame/msg stone(s) and any keystones should be evolved. Depending
175
+ // on the concrete implementation, if there are domain ibgibs to
176
+ // receive, they may still be transferring. These will be published
177
+ // to this.payloadIbGibsDomainReceived$
63
178
  return response;
64
179
  }
65
180
  catch (error) {
@@ -73,153 +188,82 @@ export class SyncPeer_V1 extends LightWitnessBase_V1 {
73
188
  }
74
189
  }
75
190
  /**
76
- * Helper to orchestrate the PUSH of a Context's dependency graph.
191
+ * move to sync-peer-helpers.mts as a pure function?
77
192
  */
78
- async pushContextGraph({ context }) {
79
- const lc = `[${SyncPeer_V1.name}][pushContextGraph]`;
80
- // A. Push Context Envelope
81
- const contextAddr = getIbGibAddr({ ibGib: context });
82
- if (logalotControlDomain) {
83
- console.log(`${lc}${lcControlDomain} PUSH Context Envelope -> ${contextAddr} (I: 3f4e5a6b7c8d9e0f)`);
84
- }
85
- await this.push([contextAddr]);
86
- // B. Push Saga Frame & Immediate Deps (Msg, Identity)
87
- const frameAddr = context.rel8ns?.sagaFrame?.[0];
88
- if (frameAddr) {
89
- if (logalotControlDomain) {
90
- console.log(`${lc}${lcControlDomain} PUSH CONTROL: Saga Frame -> ${frameAddr} (I: 4a5b6c7d8e9f0a1b)`);
91
- }
92
- await this.push([frameAddr]);
93
- // We inspect the local frame to find its immediate deps
94
- const frame = await this.getLocalIbGib(frameAddr);
95
- if (frame) {
96
- // Msg Stone
97
- const msgAddrs = frame.rel8ns?.[SYNC_MSG_REL8N_NAME];
98
- if (msgAddrs) {
99
- for (const addr of msgAddrs) {
100
- if (logalotControlDomain) {
101
- console.log(`${lc}${lcControlDomain} PUSH CONTROL: Msg Stone -> ${addr} (I: 5b6c7d8e9f0a1b2c)`);
102
- }
103
- await this.push([addr]);
104
- }
105
- }
106
- // Identity
107
- const idAddrs = frame.rel8ns?.identity;
108
- if (idAddrs) {
109
- for (const addr of idAddrs) {
110
- if (logalotControlDomain) {
111
- console.log(`${lc}${lcControlDomain} PUSH CONTROL: Identity -> ${addr} (I: 6c7d8e9f0a1b2c3d)`);
112
- }
113
- await this.push([addr]);
114
- }
115
- }
193
+ async authenticateContext({ context }) {
194
+ const lc = `${this.lc}[${this.authenticateContext.name}]`;
195
+ try {
196
+ if (logalot) {
197
+ console.log(`${lc} starting... (I: 2677a482dfa873dcd1aa04a3031ff826)`);
116
198
  }
199
+ console.error(`${lc} NAG ERROR (NOT THROWN): not implemented. // todo: authenticate (v1 must have this after we get merge logic workflow going) (E: bc3a78f2dab18ab64c36d055a4b50526)`);
200
+ return [];
117
201
  }
118
- // C. Push Session Identity
119
- const sessionKeystoneAddr = context.rel8ns?.sessionKeystone?.[0];
120
- if (sessionKeystoneAddr) {
121
- if (logalotControlDomain) {
122
- console.log(`${lc}${lcControlDomain} PUSH CONTROL: Session Keystone -> ${sessionKeystoneAddr} (I: 7d8e9f0a1b2c3d4e)`);
123
- }
124
- await this.push([sessionKeystoneAddr]);
125
- }
126
- // D. Push Payloads (Deep/Soft)
127
- // For payloads, the Peer is just a transport. It doesn't know the structure.
128
- // It relies on "push" handling the "deep" transfer if needed, or we explicitly iterate if we had a graph.
129
- // But since we are "Witnessing", we usually assume "push(addr)" acts like "copy(addr, recursive=true)"?
130
- // Or do we need to be explicit?
131
- // User said: "payloads should be flat... sync coordinator is the one doing the heavy lifting".
132
- // So we just push the addrs listed.
133
- // 1. Control Payloads
134
- // const controlAddrs = context.data?.[SYNC_SAGA_PAYLOAD_ADDRS_CONTROL];
135
- // if (controlAddrs && controlAddrs.length > 0) {
136
- // if (logalotControlDomain) { console.log(`${lc}${lcControlDomain} PUSH CONTROL PAYLOADS (${controlAddrs.length}): ${controlAddrs.join(', ')} (I: 8e9f0a1b2c3d4e5f)`); }
137
- // for (const addr of controlAddrs) {
138
- // await this.push(addr);
139
- // }
140
- // }
141
- // 2. Domain Payloads
142
- const domainAddrs = context.data?.[SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN];
143
- if (domainAddrs && domainAddrs.length > 0) {
144
- if (logalotControlDomain) {
145
- console.log(`${lc}${lcControlDomain} PUSH DOMAIN PAYLOADS (${domainAddrs.length}): ${domainAddrs.join(', ')} (I: 9f0a1b2c3d4e5f6a)`);
146
- }
147
- for (const addr of domainAddrs) {
148
- await this.push([addr]);
149
- }
150
- }
151
- if (logalotControlDomain) {
152
- console.log(`${lc}${lcControlDomain} PUSH COMPLETE for context ${contextAddr} (I: a0b1c2d3e4f5a6b7)`);
202
+ catch (error) {
203
+ console.error(`${lc} ${extractErrorMsg(error)}`);
204
+ throw error;
205
+ }
206
+ finally {
207
+ if (logalot) {
208
+ console.log(`${lc} complete.`);
209
+ }
153
210
  }
154
211
  }
155
212
  /**
156
- * Helper to orchestrate the PULL of a Context's dependency graph.
213
+ * move to sync-peer-helpers.mts as a pure function?
157
214
  */
158
- async pullContextGraph({ context }) {
159
- const lc = `[${SyncPeer_V1.name}][pullContextGraph]`;
160
- // A. Pull Context Envelope
161
- const contextAddr = getIbGibAddr({ ibGib: context });
162
- if (logalotControlDomain) {
163
- console.log(`${lc}${lcControlDomain} PULL Context Envelope <- ${contextAddr} (I: b1c2d3e4f5a6b7c8)`);
164
- }
165
- await this.pull([contextAddr]);
166
- // B. Pull Saga Frame & Immediate Deps
167
- const frameAddr = context.rel8ns?.sagaFrame?.[0];
168
- if (frameAddr) {
169
- if (logalotControlDomain) {
170
- console.log(`${lc}${lcControlDomain} PULL CONTROL: Saga Frame <- ${frameAddr} (I: c2d3e4f5a6b7c8d9)`);
171
- }
172
- await this.pull([frameAddr]);
173
- // Inspect REMOTE frame? We need to have pulled it first.
174
- const frame = await this.getLocalIbGib(frameAddr); // Should be local now
175
- if (frame) {
176
- const msgAddrs = frame.rel8ns?.[SYNC_MSG_REL8N_NAME];
177
- if (msgAddrs) {
178
- for (const addr of msgAddrs) {
179
- if (logalotControlDomain) {
180
- console.log(`${lc}${lcControlDomain} PULL CONTROL: Msg Stone <- ${addr} (I: d3e4f5a6b7c8d9e0)`);
181
- }
182
- await this.pull([addr]);
183
- }
184
- }
185
- const idAddrs = frame.rel8ns?.identity;
186
- if (idAddrs) {
187
- for (const addr of idAddrs) {
188
- if (logalotControlDomain) {
189
- console.log(`${lc}${lcControlDomain} PULL CONTROL: Identity <- ${addr} (I: e4f5a6b7c8d9e0f1)`);
190
- }
191
- await this.pull([addr]);
192
- }
193
- }
215
+ async authorizeContext({ context }) {
216
+ const lc = `${this.lc}[${this.authorizeContext.name}]`;
217
+ try {
218
+ if (logalot) {
219
+ console.log(`${lc} starting... (I: 48c918b41ceec0cd489ca3b8819e6826)`);
194
220
  }
221
+ 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)`);
222
+ return [];
195
223
  }
196
- // C. Pull Session Identity
197
- const sessionKeystoneAddr = context.rel8ns?.sessionKeystone?.[0];
198
- if (sessionKeystoneAddr) {
199
- if (logalotControlDomain) {
200
- console.log(`${lc}${lcControlDomain} PULL CONTROL: Session Keystone <- ${sessionKeystoneAddr} (I: f5a6b7c8d9e0f1a2)`);
224
+ catch (error) {
225
+ console.error(`${lc} ${extractErrorMsg(error)}`);
226
+ throw error;
227
+ }
228
+ finally {
229
+ if (logalot) {
230
+ console.log(`${lc} complete.`);
201
231
  }
202
- await this.pull([sessionKeystoneAddr]);
203
232
  }
204
- // D. Pull Payloads
205
- // const controlAddrs = context.data?.[SYNC_SAGA_PAYLOAD_ADDRS_CONTROL];
206
- // if (controlAddrs && controlAddrs.length > 0) {
207
- // if (logalotControlDomain) { console.log(`${lc}${lcControlDomain} PULL CONTROL PAYLOADS (${controlAddrs.length}): ${controlAddrs.join(', ')} (I: a6b7c8d9e0f1a2b3)`); }
208
- // for (const addr of controlAddrs) {
209
- // await this.pull(addr);
210
- // }
211
- // }
212
- const domainAddrs = context.data?.[SYNC_SAGA_PAYLOAD_ADDRS_DOMAIN];
213
- if (domainAddrs && domainAddrs.length > 0) {
214
- if (logalotControlDomain) {
215
- console.log(`${lc}${lcControlDomain} PULL DOMAIN PAYLOADS (${domainAddrs.length}): ${domainAddrs.join(', ')} (I: b7c8d9e0f1a2b3c4)`);
233
+ }
234
+ /**
235
+ * Abstract accessor to get an IbGib from the Local space/store.
236
+ * Needed for inspecting rela8ns during the graph walk.
237
+ *
238
+ * Default implementation simply looks in senderSpace
239
+ */
240
+ async getLocalIbGib(addr) {
241
+ const lc = `${this.lc}[${this.getLocalIbGib.name}]`;
242
+ try {
243
+ if (logalot) {
244
+ console.log(`${lc} starting... (I: 27b248cb9801eeb2386b71485389a826)`);
216
245
  }
217
- for (const addr of domainAddrs) {
218
- await this.pull([addr]);
246
+ console.warn(`${lc} possibly a bottleneck here, getLocalIbGib only gets a single ibgib... (W: 2fd448a435480e6b128f6b8bcbef4826)`);
247
+ if (!this.opts) {
248
+ throw new Error(`(UNEXPECTED) this.opts falsy? (E: cfb9431f2fb851f24a6c88e80c3b3326)`);
219
249
  }
250
+ const resGet = await getFromSpace({ space: this.opts.senderSpace, addr });
251
+ if (resGet.success && resGet.ibGibs && resGet.ibGibs.length === 1) {
252
+ const ibGib = resGet.ibGibs[0];
253
+ return ibGib;
254
+ }
255
+ else {
256
+ throw new Error(`couldn't get addr (${addr}) from local space ${this.opts.senderSpace}. reason: ${resGet.errorMsg ?? 'unknown error (E: 926ef8bf4fcc299ab89dba34ea691a26)'} (E: d8a89807e471d3f8b938ab21df44cb26)`);
257
+ }
258
+ }
259
+ catch (error) {
260
+ console.error(`${lc} ${extractErrorMsg(error)}`);
261
+ throw error;
220
262
  }
221
- if (logalotControlDomain) {
222
- console.log(`${lc}${lcControlDomain} PULL COMPLETE for context ${contextAddr} (I: c8d9e0f1a2b3c4d5)`);
263
+ finally {
264
+ if (logalot) {
265
+ console.log(`${lc} complete.`);
266
+ }
223
267
  }
224
268
  }
225
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync-peer-v1.mjs","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-peer-v1.mjs","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-v1.mts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@
4
4
  import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
5
5
  import { Ib } from '@ibgib/ts-gib/dist/types.mjs';
6
6
  import { SyncSagaContextData_V1, SyncSagaContextIbGib_V1, SyncSagaContextIb_V1 } from './sync-saga-context-types.mjs';
7
+ import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
8
+ import { SyncIbGib_V1 } from '../sync-types.mjs';
7
9
  /**
8
10
  * Options for creating a SyncSagaContext ibgib.
9
11
  */
@@ -11,7 +13,7 @@ export interface CreateSyncSagaContextOptions {
11
13
  /**
12
14
  * The main saga frame (Init, Ack, etc.).
13
15
  */
14
- sagaFrame: IbGib_V1;
16
+ sagaFrame: SyncIbGib_V1;
15
17
  /**
16
18
  * Session identity keystones.
17
19
  */
@@ -21,6 +23,11 @@ export interface CreateSyncSagaContextOptions {
21
23
  * payloads to send, e.g., in a Delta frame.
22
24
  */
23
25
  payloadIbGibsDomain?: IbGib_V1[];
26
+ /**
27
+ * we persist the context in the local/sender space (relative to our
28
+ * execution POV) right when we create it.
29
+ */
30
+ localSpace: IbGibSpaceAny;
24
31
  }
25
32
  /**
26
33
  * Constructs the standard 'ib' string for a Sync Saga Context stone.
@@ -35,9 +42,38 @@ export declare function parseSyncSagaContextIb({ ib, }: {
35
42
  ib: Ib;
36
43
  }): Promise<SyncSagaContextIb_V1>;
37
44
  /**
38
- * Creates a new SyncSagaContext ibGib stone.
45
+ * Creates new SyncSagaContext stone. Puts/registers in {@link localSpace}
46
+ * immediately after creation.
39
47
  *
40
48
  * @returns The context ibGib.
49
+ *
50
+ * ## notes
51
+ *
52
+ * the other ibgibs that are related to this context stone should already be
53
+ * put/registered in {@link localSpace}.
54
+ */
55
+ export declare function createSyncSagaContext({ sagaFrame, sessionKeystones, payloadIbGibsDomain, localSpace, }: CreateSyncSagaContextOptions): Promise<SyncSagaContextIbGib_V1>;
56
+ /**
57
+ * Validates ONLY the {@link context} ibgib itself and saga frame/msg stone(s)
58
+ * ({@link SyncSagaContextIbGib_V1.sagaFrame}).
59
+ *
60
+ * Does NOT...
61
+ * * validate keystones (authn or authz)
62
+ * * validate domain payload ibgibs...
63
+ * * intrinsically
64
+ * * in relation to this context (addrs match up)
65
+ *
66
+ * @returns empty array if valid, else validation errors
67
+ */
68
+ export declare function validateContextAndSagaFrame({ context }: {
69
+ context: SyncSagaContextIbGib_V1;
70
+ }): Promise<string[]>;
71
+ /**
72
+ * validates the payload ibgibs ({@link SyncSagaContextIbGib_V1.payloadIbGibsDomain}) intrinsically
73
+ *
74
+ * @returns empty array if valid, else validation errors
41
75
  */
42
- export declare function createSyncSagaContext({ sagaFrame, sessionKeystones, payloadIbGibsDomain, }: CreateSyncSagaContextOptions): Promise<SyncSagaContextIbGib_V1>;
76
+ export declare function validateContextDomainPayloadIbGibs({ context }: {
77
+ context: SyncSagaContextIbGib_V1;
78
+ }): Promise<string[]>;
43
79
  //# sourceMappingURL=sync-saga-context-helpers.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-saga-context-helpers.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-saga-context/sync-saga-context-helpers.mts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAG,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAIlD,OAAO,EACH,sBAAsB,EAAE,uBAAuB,EAC/C,oBAAoB,EACvB,MAAM,+BAA+B,CAAC;AAGvC;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,SAAS,EAAE,QAAQ,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,EACvC,IAAI,GACP,EAAE;IACC,IAAI,EAAE,sBAAsB,CAAC;CAChC,GAAG,OAAO,CAAC,EAAE,CAAC,CAiBd;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,EACzC,EAAE,GACL,EAAE;IACC,EAAE,EAAE,EAAE,CAAC;CACV,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2BhC;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,EACxC,SAAS,EACT,gBAAgB,EAChB,mBAAmB,GACtB,EAAE,4BAA4B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAyCjE"}
1
+ {"version":3,"file":"sync-saga-context-helpers.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-saga-context/sync-saga-context-helpers.mts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAG,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAMlD,OAAO,EACH,sBAAsB,EAAE,uBAAuB,EAAE,oBAAoB,EAExE,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,SAAS,EAAE,YAAY,CAAC;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACjC;;;OAGG;IACH,UAAU,EAAE,aAAa,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,EACvC,IAAI,GACP,EAAE;IACC,IAAI,EAAE,sBAAsB,CAAC;CAChC,GAAG,OAAO,CAAC,EAAE,CAAC,CAiBd;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,EACzC,EAAE,GACL,EAAE;IACC,EAAE,EAAE,EAAE,CAAC;CACV,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2BhC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CAAC,EACxC,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACb,EAAE,4BAA4B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA8DjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,uBAAuB,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmCtH;AAGD;;;;GAIG;AACH,wBAAsB,kCAAkC,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,uBAAuB,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAY7H"}