@ibgib/core-gib 0.1.54 → 0.1.57

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 (190) hide show
  1. package/CHANGELOG.md +11 -3
  2. package/README.md +12 -15
  3. package/dist/keystone/aggregate-details.respec.d.mts +2 -0
  4. package/dist/keystone/aggregate-details.respec.d.mts.map +1 -0
  5. package/dist/keystone/aggregate-details.respec.mjs +118 -0
  6. package/dist/keystone/aggregate-details.respec.mjs.map +1 -0
  7. package/dist/keystone/keystone-constants.d.mts +5 -0
  8. package/dist/keystone/keystone-constants.d.mts.map +1 -1
  9. package/dist/keystone/keystone-constants.mjs +6 -1
  10. package/dist/keystone/keystone-constants.mjs.map +1 -1
  11. package/dist/keystone/keystone-helpers.d.mts +7 -1
  12. package/dist/keystone/keystone-helpers.d.mts.map +1 -1
  13. package/dist/keystone/keystone-helpers.mjs +5 -2
  14. package/dist/keystone/keystone-helpers.mjs.map +1 -1
  15. package/dist/keystone/keystone-service-v1.d.mts +51 -0
  16. package/dist/keystone/keystone-service-v1.d.mts.map +1 -1
  17. package/dist/keystone/keystone-service-v1.mjs +176 -9
  18. package/dist/keystone/keystone-service-v1.mjs.map +1 -1
  19. package/dist/keystone/keystone-service-v1.respec.mjs +40 -98
  20. package/dist/keystone/keystone-service-v1.respec.mjs.map +1 -1
  21. package/dist/keystone/keystone-types.d.mts +5 -0
  22. package/dist/keystone/keystone-types.d.mts.map +1 -1
  23. package/dist/sync/graft-info/graft-info-helpers.respec.mjs +8 -8
  24. package/dist/sync/graft-info/graft-info-helpers.respec.mjs.map +1 -1
  25. package/dist/sync/sync-conflict-adv-multitimelines.respec.mjs +26 -30
  26. package/dist/sync/sync-conflict-adv-multitimelines.respec.mjs.map +1 -1
  27. package/dist/sync/sync-conflict-basic-divergence.respec.mjs +7 -8
  28. package/dist/sync/sync-conflict-basic-divergence.respec.mjs.map +1 -1
  29. package/dist/sync/sync-conflict-basic-multitimelines.respec.mjs +10 -11
  30. package/dist/sync/sync-conflict-basic-multitimelines.respec.mjs.map +1 -1
  31. package/dist/sync/sync-conflict-text-merge.respec.mjs +30 -33
  32. package/dist/sync/sync-conflict-text-merge.respec.mjs.map +1 -1
  33. package/dist/sync/sync-constants.d.mts +1 -56
  34. package/dist/sync/sync-constants.d.mts.map +1 -1
  35. package/dist/sync/sync-constants.mjs +2 -59
  36. package/dist/sync/sync-constants.mjs.map +1 -1
  37. package/dist/sync/sync-helpers.d.mts +0 -1
  38. package/dist/sync/sync-helpers.d.mts.map +1 -1
  39. package/dist/sync/sync-helpers.mjs +1 -6
  40. package/dist/sync/sync-helpers.mjs.map +1 -1
  41. package/dist/sync/sync-innerspace-constants.respec.mjs +5 -9
  42. package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -1
  43. package/dist/sync/sync-innerspace-deep-updates.respec.mjs +6 -7
  44. package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
  45. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.mjs +22 -22
  46. package/dist/sync/sync-innerspace-dest-ahead-withid.respec.mjs.map +1 -1
  47. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +8 -9
  48. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
  49. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +6 -7
  50. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
  51. package/dist/sync/sync-innerspace-partial-update.respec.mjs +7 -8
  52. package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -1
  53. package/dist/sync/sync-innerspace.respec.mjs +8 -11
  54. package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
  55. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-http-node-adapter.mjs +10 -5
  56. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-http-node-adapter.mjs.map +1 -1
  57. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-types.d.mts +3 -1
  58. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-types.d.mts.map +1 -1
  59. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.d.mts +4 -2
  60. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.d.mts.map +1 -1
  61. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mjs +37 -6
  62. package/dist/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mjs.map +1 -1
  63. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-types.d.mts +3 -1
  64. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-types.d.mts.map +1 -1
  65. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.d.mts +4 -2
  66. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.d.mts.map +1 -1
  67. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mjs +37 -0
  68. package/dist/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mjs.map +1 -1
  69. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts +7 -1
  70. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts.map +1 -1
  71. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts +10 -2
  72. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts.map +1 -1
  73. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs +50 -38
  74. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs.map +1 -1
  75. package/dist/sync/sync-peer/sync-peer-types.d.mts +21 -5
  76. package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
  77. package/dist/sync/sync-peer/sync-peer-v1.d.mts +30 -5
  78. package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
  79. package/dist/sync/sync-peer/sync-peer-v1.mjs +41 -25
  80. package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
  81. package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts +2 -11
  82. package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts.map +1 -1
  83. package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs +7 -51
  84. package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs.map +1 -1
  85. package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts +1 -47
  86. package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts.map +1 -1
  87. package/dist/sync/sync-saga-coordinator.d.mts +6 -58
  88. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  89. package/dist/sync/sync-saga-coordinator.mjs +23 -425
  90. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  91. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +2 -2
  92. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
  93. package/dist/sync/sync-types.d.mts +2 -19
  94. package/dist/sync/sync-types.d.mts.map +1 -1
  95. package/dist/sync/sync-types.mjs.map +1 -1
  96. package/dist/test/mock-space.mjs +1 -1
  97. package/dist/test/mock-space.mjs.map +1 -1
  98. package/dist/test-helpers.d.mts +0 -6
  99. package/dist/test-helpers.d.mts.map +1 -1
  100. package/dist/test-helpers.mjs +2 -25
  101. package/dist/test-helpers.mjs.map +1 -1
  102. package/package.json +10 -34
  103. package/src/keystone/aggregate-details.respec.mts +137 -0
  104. package/src/keystone/docs/architecture.md +16 -0
  105. package/src/keystone/keystone-constants.mts +6 -1
  106. package/src/keystone/keystone-helpers.mts +9 -1
  107. package/src/keystone/keystone-service-v1.mts +216 -8
  108. package/src/keystone/keystone-service-v1.respec.mts +39 -103
  109. package/src/keystone/keystone-types.mts +6 -0
  110. package/src/sync/README.md +2 -87
  111. package/src/sync/docs/architecture.md +26 -5
  112. package/src/sync/docs/security.md +176 -0
  113. package/src/sync/graft-info/graft-info-helpers.respec.mts +7 -7
  114. package/src/sync/sync-conflict-adv-multitimelines.respec.mts +25 -29
  115. package/src/sync/sync-conflict-basic-divergence.respec.mts +6 -7
  116. package/src/sync/sync-conflict-basic-multitimelines.respec.mts +9 -10
  117. package/src/sync/sync-conflict-text-merge.respec.mts +29 -32
  118. package/src/sync/sync-constants.mts +2 -62
  119. package/src/sync/sync-helpers.mts +1 -8
  120. package/src/sync/sync-id-testlog.txt +421 -0
  121. package/src/sync/sync-innerspace-constants.respec.mts +4 -8
  122. package/src/sync/sync-innerspace-deep-updates.respec.mts +5 -6
  123. package/src/sync/sync-innerspace-dest-ahead-withid.respec.mts +23 -25
  124. package/src/sync/sync-innerspace-dest-ahead.respec.mts +7 -8
  125. package/src/sync/sync-innerspace-multiple-timelines.respec.mts +5 -6
  126. package/src/sync/sync-innerspace-partial-update.respec.mts +6 -7
  127. package/src/sync/sync-innerspace.respec.mts +7 -10
  128. package/src/sync/sync-peer/sync-peer-http-receiver/sync-http-node-adapter.mts +5 -5
  129. package/src/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-types.mts +5 -1
  130. package/src/sync/sync-peer/sync-peer-http-receiver/sync-peer-http-receiver-v1.mts +30 -9
  131. package/src/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-types.mts +3 -1
  132. package/src/sync/sync-peer/sync-peer-http-sender/sync-peer-http-sender-v1.mts +29 -2
  133. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts +7 -1
  134. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +51 -38
  135. package/src/sync/sync-peer/sync-peer-types.mts +23 -6
  136. package/src/sync/sync-peer/sync-peer-v1.mts +68 -28
  137. package/src/sync/sync-saga-context/sync-saga-context-helpers.mts +6 -66
  138. package/src/sync/sync-saga-context/sync-saga-context-types.mts +1 -48
  139. package/src/sync/sync-saga-coordinator.mts +12 -552
  140. package/src/sync/sync-saga-message/sync-saga-message-types.mts +2 -3
  141. package/src/sync/sync-types.mts +2 -22
  142. package/src/sync/unused-identity-backup.mts.md +311 -0
  143. package/src/test/mock-space.mts +1 -1
  144. package/src/test-helpers.mts +1 -26
  145. package/test_output.log +0 -0
  146. package/test_output_utf8.txt +398 -0
  147. package/.vscode/core-gib-snippets.code-snippets +0 -293
  148. package/.vscode/launch.json +0 -40
  149. package/.vscode/settings.json +0 -58
  150. package/.vscode/tasks.json +0 -37
  151. package/dist/sync/sync-peer/sync-peer-http.respec.d.mts +0 -2
  152. package/dist/sync/sync-peer/sync-peer-http.respec.d.mts.map +0 -1
  153. package/dist/sync/sync-peer/sync-peer-http.respec.mjs +0 -340
  154. package/dist/sync/sync-peer/sync-peer-http.respec.mjs.map +0 -1
  155. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.d.mts +0 -42
  156. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.d.mts.map +0 -1
  157. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.mjs +0 -312
  158. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.mjs.map +0 -1
  159. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.d.mts +0 -84
  160. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.d.mts.map +0 -1
  161. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.mjs +0 -65
  162. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.mjs.map +0 -1
  163. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.d.mts +0 -73
  164. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.d.mts.map +0 -1
  165. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.mjs +0 -667
  166. package/dist/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.mjs.map +0 -1
  167. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.d.mts +0 -2
  168. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.d.mts.map +0 -1
  169. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs +0 -67
  170. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs.map +0 -1
  171. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.d.mts +0 -2
  172. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.d.mts.map +0 -1
  173. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs +0 -67
  174. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs.map +0 -1
  175. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.d.mts +0 -2
  176. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.d.mts.map +0 -1
  177. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs +0 -68
  178. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs.map +0 -1
  179. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.d.mts +0 -2
  180. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.d.mts.map +0 -1
  181. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs +0 -69
  182. package/dist/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs.map +0 -1
  183. package/src/sync/sync-peer/sync-peer-http.respec.mts +0 -396
  184. package/src/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-helper.mts +0 -298
  185. package/src/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-types.mts +0 -150
  186. package/src/witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.mts +0 -666
  187. package/src/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mts +0 -87
  188. package/src/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mts +0 -88
  189. package/src/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mts +0 -88
  190. package/src/witness/space/filesystem-space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mts +0 -90
@@ -17,7 +17,7 @@ import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
17
17
  import { putInSpace, getFromSpace, registerNewIbGib } from '../witness/space/space-helper.mjs';
18
18
  import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
19
19
  import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
20
- import { createTimelineRootTestHelper, getTestKeystoneServiceHelper } from '../test-helpers.mjs';
20
+ import { createTimelineRootTestHelper, } from '../test-helpers.mjs';
21
21
  import { mut8Timeline } from '../timeline/timeline-api.mjs';
22
22
  import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
23
23
  import { toDto } from '../common/other/ibgib-helper.mjs';
@@ -116,7 +116,7 @@ await respecfully(sir, `Sync InnerSpaces (Dest Ahead)`, async () => {
116
116
  return resGet.success && resGet.ibGibs && resGet.ibGibs.length === 1;
117
117
  }
118
118
 
119
- await ifWe(sir, 'verify setup', async () => {
119
+ await ifWeMight(sir, 'verify setup', async () => {
120
120
  // Ensure V2 is ONLY in Dest (it is, per `space: destSpace`)
121
121
  // Ensure Source does NOT have V2
122
122
  iReckon(sir, await fnAddrExistsInSpace(addrV0, sourceSpace)).asTo('source has V0').isGonnaBeTrue();
@@ -128,13 +128,13 @@ await respecfully(sir, `Sync InnerSpaces (Dest Ahead)`, async () => {
128
128
  });
129
129
 
130
130
  // 3. Setup Sync
131
- const mockKeystone = await getTestKeystoneServiceHelper();
132
- const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
133
- const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
131
+ const senderCoordinator = new SyncSagaCoordinator();
132
+ const receiverCoordinator = new SyncSagaCoordinator();
134
133
 
135
134
  const peer = new SyncPeerInnerspace_V1(clone(SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1));
136
135
  await peer.initialized;
137
136
  await peer.initializeOpts({
137
+ localMetaspace: metaspace,
138
138
  localSpace: sourceSpace, // "Client"
139
139
  receiverSpace: destSpace, // "Server"
140
140
  receiverCoordinator,
@@ -148,14 +148,13 @@ await respecfully(sir, `Sync InnerSpaces (Dest Ahead)`, async () => {
148
148
  localSpace: sourceSpace,
149
149
  metaspace: metaspace,
150
150
  domainIbGibs: [v1], // Source tries to push V1
151
- useSessionIdentity: false,
152
151
  });
153
152
  await done;
154
153
 
155
154
  // 5. Verify Sync (v2 should be in both source and dest now)
156
155
  console.log(`${lc} Verifying Sync...`);
157
156
 
158
- await ifWe(sir, `verify v2 now also in source`, async () => {
157
+ await ifWeMight(sir, `verify v2 now also in source`, async () => {
159
158
  // Verify Tip (V2)
160
159
 
161
160
  iReckon(sir, await fnAddrExistsInSpace(addrV0, sourceSpace)).asTo('source has V0').isGonnaBeTrue();
@@ -167,7 +166,7 @@ await respecfully(sir, `Sync InnerSpaces (Dest Ahead)`, async () => {
167
166
 
168
167
  });
169
168
 
170
- await ifWe(sir, `dependency graphs the same`, async () => {
169
+ await ifWeMight(sir, `dependency graphs the same`, async () => {
171
170
 
172
171
  const sourceDepGraph = await getDependencyGraph({
173
172
  ibGibAddr: addrV2,
@@ -17,7 +17,7 @@ import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
17
17
  import { putInSpace, getFromSpace } from '../witness/space/space-helper.mjs';
18
18
  import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
19
19
  import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
20
- import { createTimelineRootTestHelper, getTestKeystoneServiceHelper } from '../test-helpers.mjs';
20
+ import { createTimelineRootTestHelper, } from '../test-helpers.mjs';
21
21
  import { mut8Timeline } from '../timeline/timeline-api.mjs';
22
22
  import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
23
23
  import { toDto } from '../common/other/ibgib-helper.mjs';
@@ -101,13 +101,13 @@ await respecfully(sir, `Sync InnerSpaces (Multiple Timelines)`, async () => {
101
101
  const addrB = getIbGibAddr({ ibGib: childB2 });
102
102
 
103
103
  // 3. Setup Coordinators & Peer
104
- const mockKeystone = await getTestKeystoneServiceHelper();
105
- const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
106
- const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
104
+ const senderCoordinator = new SyncSagaCoordinator();
105
+ const receiverCoordinator = new SyncSagaCoordinator();
107
106
 
108
107
  const peer = new SyncPeerInnerspace_V1(clone(SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1));
109
108
  await peer.initialized;
110
109
  await peer.initializeOpts({
110
+ localMetaspace: metaspace,
111
111
  localSpace: sourceSpace, // "Client"
112
112
  receiverSpace: destSpace, // "Server"
113
113
  receiverCoordinator,
@@ -121,7 +121,6 @@ await respecfully(sir, `Sync InnerSpaces (Multiple Timelines)`, async () => {
121
121
  localSpace: sourceSpace,
122
122
  metaspace: metaspace,
123
123
  domainIbGibs: [childA, childB2], // Sync both tips
124
- useSessionIdentity: false,
125
124
  });
126
125
 
127
126
  await resSync.done;
@@ -130,7 +129,7 @@ await respecfully(sir, `Sync InnerSpaces (Multiple Timelines)`, async () => {
130
129
  // 5. Verify Dest
131
130
  console.log(`${lc} Verifying Destination...`);
132
131
 
133
- await ifWe(sir, `verify timelines present`, async () => {
132
+ await ifWeMight(sir, `verify timelines present`, async () => {
134
133
  // Verify A
135
134
  const getA = await getFromSpace({ space: destSpace, addr: addrA });
136
135
  iReckon(sir, getA.success).asTo('Timeline A present').isGonnaBeTrue();
@@ -17,7 +17,7 @@ import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
17
17
  import { putInSpace, getFromSpace } from '../witness/space/space-helper.mjs';
18
18
  import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
19
19
  import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
20
- import { createTimelineRootTestHelper, getTestKeystoneServiceHelper } from '../test-helpers.mjs';
20
+ import { createTimelineRootTestHelper, } from '../test-helpers.mjs';
21
21
  import { mut8Timeline } from '../timeline/timeline-api.mjs';
22
22
  import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
23
23
  import { toDto } from '../common/other/ibgib-helper.mjs';
@@ -98,7 +98,7 @@ await respecfully(sir, `Sync InnerSpaces (Partial Update)`, async () => {
98
98
  // Transfer Root & V1 to Dest (Simulate previous sync)
99
99
  await putInSpace({ space: destSpace, ibGibs: [root, v1] });
100
100
 
101
- await ifWe(sir, 'verify setup', async () => {
101
+ await ifWeMight(sir, 'verify setup', async () => {
102
102
  // Verify Dest has V1
103
103
  const checkV1 = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: v1 }) });
104
104
  iReckon(sir, checkV1.success).asTo('Dest has V1').isGonnaBeTrue();
@@ -109,13 +109,13 @@ await respecfully(sir, `Sync InnerSpaces (Partial Update)`, async () => {
109
109
  });
110
110
 
111
111
  // 3. Setup Sync
112
- const mockKeystone = await getTestKeystoneServiceHelper();
113
- const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
114
- const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
112
+ const senderCoordinator = new SyncSagaCoordinator();
113
+ const receiverCoordinator = new SyncSagaCoordinator();
115
114
 
116
115
  const peer = new SyncPeerInnerspace_V1(clone(SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1));
117
116
  await peer.initialized;
118
117
  await peer.initializeOpts({
118
+ localMetaspace: metaspace,
119
119
  localSpace: sourceSpace, // "Client"
120
120
  receiverSpace: destSpace, // "Server"
121
121
  receiverCoordinator,
@@ -129,7 +129,6 @@ await respecfully(sir, `Sync InnerSpaces (Partial Update)`, async () => {
129
129
  localSpace: sourceSpace,
130
130
  metaspace: metaspace,
131
131
  domainIbGibs: [v2],
132
- useSessionIdentity: false,
133
132
  });
134
133
 
135
134
  await resSync.done;
@@ -137,7 +136,7 @@ await respecfully(sir, `Sync InnerSpaces (Partial Update)`, async () => {
137
136
  // 5. Verify Dest (Should now have V2)
138
137
  console.log(`${lc} Verifying Destination...`);
139
138
 
140
- await ifWe(sir, `verify dest updated`, async () => {
139
+ await ifWeMight(sir, `verify dest updated`, async () => {
141
140
  // Verify Tip (V2)
142
141
  const getV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
143
142
  iReckon(sir, getV2.success).asTo('V2 present in Dest').isGonnaBeTrue();
@@ -18,7 +18,7 @@ import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
18
18
  import { getFromSpace } from '../witness/space/space-helper.mjs';
19
19
  import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
20
20
  import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
21
- import { createTimelineRootTestHelper, getTestKeystoneServiceHelper } from '../test-helpers.mjs';
21
+ import { createTimelineRootTestHelper, } from '../test-helpers.mjs';
22
22
  import { mut8Timeline, } from '../timeline/timeline-api.mjs';
23
23
  import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
24
24
  import { toDto } from '../common/other/ibgib-helper.mjs';
@@ -92,27 +92,25 @@ await respecfully(sir, `Sync InnerSpaces`, async () => {
92
92
 
93
93
  // 3. Setup Coordinators & Peer
94
94
  if (logalot) { console.log(`${lc} Setting up Coordinators...`); }
95
- const mockKeystone = await getTestKeystoneServiceHelper();
96
- // const identity = await (mockKeystone as any).getIdentity(); // SKIP IDENTITY FOR INITIAL TESTING SIMPLICITY
97
95
 
98
96
  // Sender Coordinator
99
- const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
97
+ const senderCoordinator = new SyncSagaCoordinator();
100
98
 
101
99
  // Receiver Coordinator
102
100
  // Note: Receiver acts "globally" usually, but here we treat it as bound to the dest operations?
103
101
  // Actually SyncSagaCoordinator isn't bound to a space. It works ON a space.
104
102
  // So we can reuse or create separate instances. Let's create separate to simulate remote.
105
- const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
103
+ const receiverCoordinator = new SyncSagaCoordinator();
106
104
 
107
105
  // Peer (The "Network")
108
106
  const peer = new SyncPeerInnerspace_V1(clone(SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1));
109
107
  await peer.initialized;
110
108
  await peer.initializeOpts({
109
+ localMetaspace: metaspace,
111
110
  localSpace: sourceSpace, // "Client"
112
111
  receiverSpace: destSpace, // "Server"
113
112
  receiverCoordinator,
114
113
  receiverMetaspace: metaspace,
115
- keystoneSvc: mockKeystone
116
114
  });
117
115
 
118
116
  // 4. Run Sync
@@ -122,7 +120,6 @@ await respecfully(sir, `Sync InnerSpaces`, async () => {
122
120
  localSpace: sourceSpace,
123
121
  metaspace: metaspace,
124
122
  domainIbGibs: [child], // Sync the child
125
- useSessionIdentity: false,
126
123
  }); // Type cast if needed until we align optional params
127
124
 
128
125
  if (logalot) { console.log(`${lc} resSync: ${pretty(resSync)}`); }
@@ -155,18 +152,18 @@ await respecfully(sir, `Sync InnerSpaces`, async () => {
155
152
  try {
156
153
  const getChildInDest = await getFromSpace({ space: destSpace, addr: childAddr });
157
154
 
158
- await ifWe(sir, `verify success getChildInDest`, async () => {
155
+ await ifWeMight(sir, `verify success getChildInDest`, async () => {
159
156
  iReckon(sir, getChildInDest.success).asTo('Child present in Dest').isGonnaBeTrue();
160
157
  });
161
158
 
162
- await ifWe(sir, `verify getChildInDest.ibGibs`, async () => {
159
+ await ifWeMight(sir, `verify getChildInDest.ibGibs`, async () => {
163
160
  const firstChild = getChildInDest.ibGibs?.[0];
164
161
  if (logalot) { console.log(`${lc} firstChild: ${pretty(firstChild)}`); }
165
162
  iReckon(sir, firstChild?.data?.n).asTo('Child content matches').isGonnaBe(2);
166
163
  });
167
164
 
168
165
  } catch (error) {
169
- await ifWe(sir, `doh`, async () => {
166
+ await ifWeMight(sir, `doh`, async () => {
170
167
  // hack here I'm getting tired...
171
168
  iReckon(sir, true).asTo(`error: ${extractErrorMsg(error)}`).isGonnaBeFalse();
172
169
  });
@@ -80,10 +80,10 @@ export class SyncHttpNodeAdapter_V1 {
80
80
  const secureOpts: http2.SecureServerOptions = {
81
81
  allowHTTP1: true // Fallback to HTTP/1.1 for clients that don't support HTTP/2
82
82
  };
83
- if (this.opts.key) secureOpts.key = this.opts.key;
84
- if (this.opts.cert) secureOpts.cert = this.opts.cert;
85
- if (this.opts.pfx) secureOpts.pfx = this.opts.pfx;
86
- if (this.opts.passphrase) secureOpts.passphrase = this.opts.passphrase;
83
+ if (this.opts.key) { secureOpts.key = this.opts.key; }
84
+ if (this.opts.cert) { secureOpts.cert = this.opts.cert; }
85
+ if (this.opts.pfx) { secureOpts.pfx = this.opts.pfx; }
86
+ if (this.opts.passphrase) { secureOpts.passphrase = this.opts.passphrase; }
87
87
 
88
88
  this.server = http2.createSecureServer(secureOpts, requestHandler);
89
89
  } else {
@@ -119,7 +119,7 @@ export class SyncHttpNodeAdapter_V1 {
119
119
 
120
120
  if (this.server) {
121
121
  this.server.close((err) => {
122
- if (err) return reject(err);
122
+ if (err) { return reject(err); }
123
123
  resolve();
124
124
  });
125
125
  } else {
@@ -2,7 +2,7 @@
2
2
  * @module sync-peer-http-receiver-types
3
3
  */
4
4
  import { IbGibData_V1, IbGibRel8ns_V1, IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
5
- import { SyncPeerData_V1, SyncPeerRel8ns_V1, SyncPeerWitness, InitializeSyncPeerOpts } from '../sync-peer-types.mjs';
5
+ import { SyncPeerData_V1, SyncPeerRel8ns_V1, SyncPeerWitness, InitializeSyncPeerOpts, ConnectSyncPeerOpts } from '../sync-peer-types.mjs';
6
6
  import { MetaspaceService } from '../../../witness/space/metaspace/metaspace-types.mjs';
7
7
  import { SyncSagaCoordinator } from '../../sync-saga-coordinator.mjs';
8
8
  import { IbGibSpaceAny } from '../../../witness/space/space-base-v1.mjs';
@@ -24,6 +24,10 @@ export interface SyncPeerHttpReceiverRel8ns_V1 extends SyncPeerRel8ns_V1 {
24
24
  */
25
25
  export interface SyncPeerHttpReceiverIbGib_V1 extends IbGib_V1<SyncPeerHttpReceiverData_V1, SyncPeerHttpReceiverRel8ns_V1> { }
26
26
 
27
+ export interface ConnectSyncPeerHttpReceiverOpts extends ConnectSyncPeerOpts {
28
+
29
+ }
30
+
27
31
  export interface InitializeSyncPeerHttpReceiverOpts extends InitializeSyncPeerOpts {
28
32
  localCoordinator: SyncSagaCoordinator;
29
33
  localMetaspace: MetaspaceService;
@@ -14,7 +14,8 @@ import {
14
14
  InitializeSyncPeerHttpReceiverOpts,
15
15
  SyncPeerHttpReceiverData_V1,
16
16
  SyncPeerHttpReceiverRel8ns_V1,
17
- SyncPeerHttpReceiverIbGib_V1
17
+ SyncPeerHttpReceiverIbGib_V1,
18
+ ConnectSyncPeerHttpReceiverOpts
18
19
  } from './sync-peer-http-receiver-types.mjs';
19
20
  import { putInSpace, registerNewIbGib } from '../../../witness/space/space-helper.mjs';
20
21
 
@@ -25,7 +26,7 @@ const logalot = GLOBAL_LOG_A_LOT;
25
26
  * Acts as the Symmetric Server Node. Accepts requests, routes to Receiver Coordinator.
26
27
  */
27
28
  export class SyncPeerHttpReceiver_V1
28
- extends SyncPeer_V1<InitializeSyncPeerHttpReceiverOpts>
29
+ extends SyncPeer_V1<ConnectSyncPeerHttpReceiverOpts, InitializeSyncPeerHttpReceiverOpts>
29
30
  implements SyncPeerHttpReceiverIbGib_V1 {
30
31
 
31
32
  protected override lc: string = `[${SyncPeerHttpReceiver_V1.name}]`;
@@ -44,6 +45,33 @@ export class SyncPeerHttpReceiver_V1
44
45
  super(initialData, initialRel8ns);
45
46
  }
46
47
 
48
+ protected override async preConnectCheck(opts: ConnectSyncPeerHttpReceiverOpts): Promise<void> {
49
+ const lc = `${this.lc}[${this.preConnectCheck.name}]`;
50
+ try {
51
+ if (logalot) { console.log(`${lc} starting... (I: 7cf8f805a31877fddf25b0ee09e49e26)`); }
52
+ throw new Error(`not implemented (E: 4163e88d42f811da8b699cb6f7554a26)`);
53
+ } catch (error) {
54
+ console.error(`${lc} ${extractErrorMsg(error)}`);
55
+ throw error;
56
+ } finally {
57
+ if (logalot) { console.log(`${lc} complete.`); }
58
+ }
59
+ }
60
+
61
+ protected override async connectImpl(opts: ConnectSyncPeerHttpReceiverOpts): Promise<void> {
62
+ const lc = `${this.lc}[${this.connectImpl.name}]`;
63
+ try {
64
+ if (logalot) { console.log(`${lc} starting... (I: 4c3d2a1b5f6e4d5c3b2a1b9c8d7e6f5a)`); }
65
+ // Stub implementation for now.
66
+ throw new Error(`not implemented (E: 48a5b8714d6861272510fc8c3cfef726)`);
67
+ } catch (error) {
68
+ console.error(`${lc} ${extractErrorMsg(error)}`);
69
+ throw error;
70
+ } finally {
71
+ if (logalot) { console.log(`${lc} complete.`); }
72
+ }
73
+ }
74
+
47
75
  protected async ensureLocalTempSpace(): Promise<IbGibSpaceAny> {
48
76
  const lc = `${this.lc}[${this.ensureLocalTempSpace.name}]`;
49
77
  try {
@@ -121,7 +149,6 @@ export class SyncPeerHttpReceiver_V1
121
149
  const authErrors = await authenticateContext({
122
150
  context,
123
151
  space: localSpace,
124
- keystoneSvc: localCoordinator.keystoneSvc,
125
152
  });
126
153
  if (authErrors.length > 0) {
127
154
  throw new Error(`Context authentication failed: ${authErrors.join(', ')} (E: d34b8ad97d84d1ba8d8f7facd288826)`);
@@ -134,17 +161,11 @@ export class SyncPeerHttpReceiver_V1
134
161
  }
135
162
  }
136
163
 
137
- const identitySecret = context.fnIdentitySecret ?
138
- await context.fnIdentitySecret() :
139
- undefined;
140
-
141
164
  const responseCtx = await localCoordinator.continueSync({
142
165
  sagaContext: context,
143
166
  metaspace: localMetaspace,
144
167
  mySpace: localSpace,
145
168
  myTempSpace: localTempSpace,
146
- identity: context.signedSessionKeystone,
147
- identitySecret,
148
169
  });
149
170
 
150
171
  return responseCtx || undefined;
@@ -2,7 +2,7 @@
2
2
  * @module sync-peer-http-sender-types
3
3
  */
4
4
  import { IbGibData_V1, IbGibRel8ns_V1, IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
5
- import { SyncPeerData_V1, SyncPeerRel8ns_V1, SyncPeerWitness, InitializeSyncPeerOpts } from '../sync-peer-types.mjs';
5
+ import { SyncPeerData_V1, SyncPeerRel8ns_V1, SyncPeerWitness, InitializeSyncPeerOpts, ConnectSyncPeerOpts } from '../sync-peer-types.mjs';
6
6
 
7
7
  /**
8
8
  * Data for the SyncPeerHttpSender witness.
@@ -25,6 +25,8 @@ export interface SyncPeerHttpSenderRel8ns_V1 extends SyncPeerRel8ns_V1 {
25
25
  */
26
26
  export interface SyncPeerHttpSenderIbGib_V1 extends IbGib_V1<SyncPeerHttpSenderData_V1, SyncPeerHttpSenderRel8ns_V1> { }
27
27
 
28
+ export interface ConnectSyncPeerHttpSenderOpts extends ConnectSyncPeerOpts {
29
+ }
28
30
  export interface InitializeSyncPeerHttpSenderOpts extends InitializeSyncPeerOpts {
29
31
  /**
30
32
  * Specific options needed for initializing the HTTP sender
@@ -11,7 +11,8 @@ import {
11
11
  InitializeSyncPeerHttpSenderOpts,
12
12
  SyncPeerHttpSenderData_V1,
13
13
  SyncPeerHttpSenderRel8ns_V1,
14
- SyncPeerHttpSenderIbGib_V1
14
+ SyncPeerHttpSenderIbGib_V1,
15
+ ConnectSyncPeerHttpSenderOpts
15
16
  } from './sync-peer-http-sender-types.mjs';
16
17
 
17
18
  const logalot = GLOBAL_LOG_A_LOT;
@@ -21,7 +22,7 @@ const logalot = GLOBAL_LOG_A_LOT;
21
22
  * Sends Context to a remote server utilizing POST for uplink and SSE for downlink.
22
23
  */
23
24
  export class SyncPeerHttpSender_V1
24
- extends SyncPeer_V1<InitializeSyncPeerHttpSenderOpts>
25
+ extends SyncPeer_V1<ConnectSyncPeerHttpSenderOpts, InitializeSyncPeerHttpSenderOpts>
25
26
  implements SyncPeerHttpSenderIbGib_V1 {
26
27
 
27
28
  protected override lc: string = `[${SyncPeerHttpSender_V1.name}]`;
@@ -46,7 +47,33 @@ export class SyncPeerHttpSender_V1
46
47
  super(initialData, initialRel8ns);
47
48
  }
48
49
 
50
+ protected override preConnectCheck(opts: ConnectSyncPeerHttpSenderOpts): Promise<void> {
51
+ const lc = `${this.lc}[${this.preConnectCheck.name}]`;
52
+ try {
53
+ if (logalot) { console.log(`${lc} starting... (I: 518718d0aa6830e182892b68fe2a2826)`); }
54
+
55
+ throw new Error(`not implemented (E: 248be8a09b4dbd2fa820ef78258c5326)`);
56
+ } catch (error) {
57
+ console.error(`${lc} ${extractErrorMsg(error)}`);
58
+ throw error;
59
+ } finally {
60
+ if (logalot) { console.log(`${lc} complete.`); }
61
+ }
62
+ }
49
63
 
64
+ protected override async connectImpl(opts: ConnectSyncPeerHttpSenderOpts): Promise<void> {
65
+ const lc = `${this.lc}[${this.connectImpl.name}]`;
66
+ try {
67
+ if (logalot) { console.log(`${lc} starting... (I: ad84d8137351662fb8a30114a1fa4826)`); }
68
+ throw new Error(`not implemented (E: 50752d5f4d188c45727d293549bffd26)`);
69
+ // Stub implementation for now.
70
+ } catch (error) {
71
+ console.error(`${lc} ${extractErrorMsg(error)}`);
72
+ throw error;
73
+ } finally {
74
+ if (logalot) { console.log(`${lc} complete.`); }
75
+ }
76
+ }
50
77
 
51
78
  protected override async sendContextRequest(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined> {
52
79
  const lc = `${this.lc}[${this.sendContextRequest.name}]`;
@@ -39,9 +39,15 @@ export interface SyncPeerInnerspaceOptions {
39
39
  * Temporary sync transaction space for the "receiver", for storage of
40
40
  * domain ibgibs created/received throughout the sync saga until commit.
41
41
  *
42
+ * If not available at first, this will be automatically created.
43
+ *
42
44
  * @see {@link receiverSpace} notes.
43
45
  */
44
- receiverTempSpace: IbGibSpaceAny;
46
+ receiverTempSpace?: IbGibSpaceAny;
47
+ /**
48
+ * The sender coordinator, used for authentication-related (k eystones).
49
+ */
50
+ senderCoordinator?: SyncSagaCoordinator;
45
51
  }
46
52
 
47
53
  export interface SyncPeerInnerspaceIb_V1 {
@@ -15,7 +15,7 @@ import { SyncPeerInnerspaceData_V1, SyncPeerInnerspaceIbGib_V1, SyncPeerInnerspa
15
15
  import { authenticateContext } from '../../sync-saga-context/sync-saga-context-helpers.mjs';
16
16
  import { MetaspaceService } from '../../../witness/space/metaspace/metaspace-types.mjs';
17
17
  import { SyncSagaCoordinator } from '../../sync-saga-coordinator.mjs';
18
- import { InitializeSyncPeerOpts } from '../sync-peer-types.mjs';
18
+ import { ConnectSyncPeerOpts, InitializeSyncPeerOpts } from '../sync-peer-types.mjs';
19
19
  import { getSyncSagaFrameDependencyGraph, putInSpace_dnasThenNonDnas } from '../../sync-helpers.mjs';
20
20
  import { getDependencyGraph } from '../../../common/other/graph-helper.mjs';
21
21
  import { SyncStage } from '../../sync-constants.mjs';
@@ -26,6 +26,10 @@ const logalot = GLOBAL_LOG_A_LOT;
26
26
  const logalotControlDomain = false;
27
27
  const lcControlDomain = '[ControlDomain]';
28
28
 
29
+ export interface ConnectSyncPeerInnerspaceOpts extends ConnectSyncPeerOpts {
30
+
31
+ }
32
+
29
33
  /**
30
34
  * The innerspace sync peer works with innerspaces for both sender/receiver
31
35
  * durable/temp spaces, as well as coordinators for each.
@@ -47,6 +51,10 @@ export interface InitializeSyncPeerInnerspaceOpts extends InitializeSyncPeerOpts
47
51
  * If not available at first, this will be automatically created.
48
52
  */
49
53
  receiverTempSpace?: IbGibSpaceAny;
54
+ /**
55
+ * The sender coordinator, used for authentication-related (k eystones).
56
+ */
57
+ senderCoordinator?: SyncSagaCoordinator;
50
58
  }
51
59
 
52
60
  /**
@@ -55,7 +63,7 @@ export interface InitializeSyncPeerInnerspaceOpts extends InitializeSyncPeerOpts
55
63
  * Acts as the "Network" layer, transferring data between two local spaces and
56
64
  * executing the receiver's coordinator logic.
57
65
  */
58
- export class SyncPeerInnerspace_V1 extends SyncPeer_V1<InitializeSyncPeerInnerspaceOpts>
66
+ export class SyncPeerInnerspace_V1 extends SyncPeer_V1<ConnectSyncPeerInnerspaceOpts, InitializeSyncPeerInnerspaceOpts>
59
67
  implements SyncPeerInnerspaceIbGib_V1 {
60
68
 
61
69
  protected lc: string = `[${SyncPeerInnerspace_V1.name}]`;
@@ -71,6 +79,41 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1<InitializeSyncPeerInnersp
71
79
  super(initialData, initialRel8ns);
72
80
  }
73
81
 
82
+
83
+ protected override async preConnectCheck(opts: ConnectSyncPeerInnerspaceOpts): Promise<void> {
84
+ const lc = `${this.lc}[${this.preConnectCheck.name}]`;
85
+ try {
86
+ if (logalot) { console.log(`${lc} starting... (I: af5dc1a0bf980848b84e50515614be26)`); }
87
+
88
+ if (!opts.sagaId) {
89
+ throw new Error(`${lc} sagaId required for connect (E: 8a4c0a9b8f1d4f2b1c3b5d6e8a4c0a9b)`);
90
+ }
91
+
92
+ if (!this.opts) { throw new Error(`this.opts falsy. required to connect (E: 4c24fd577f9cd695a8bf0dc8ddea6826)`); }
93
+ } catch (error) {
94
+ console.error(`${lc} ${extractErrorMsg(error)}`);
95
+ throw error;
96
+ } finally {
97
+ if (logalot) { console.log(`${lc} complete.`); }
98
+ }
99
+ }
100
+
101
+ protected async connectImpl(opts: ConnectSyncPeerInnerspaceOpts): Promise<void> {
102
+ const lc = `${this.lc}[${this.connectImpl.name}]`;
103
+ try {
104
+ if (logalot) { console.log(`${lc} starting... (I: 2b8f8040d9b4c48a735c021c33f2a826)`); }
105
+
106
+ if (!this.opts) { throw new Error(`(UNEXPECTED) this.opts falsy? (E: d617e80d8e082bc76853dba8bb87cc26)`); }
107
+ // console.warn(`${lc} no op right now...hmm (W: )`)
108
+ // throw new Error(`not implemented (E: 4ff318e55d27a44eea06ba585a890c26)`);
109
+ } catch (error) {
110
+ console.error(`${lc} ${extractErrorMsg(error)}`);
111
+ throw error;
112
+ } finally {
113
+ if (logalot) { console.log(`${lc} complete.`); }
114
+ }
115
+ }
116
+
74
117
  protected async ensureReceiverTempSpace(): Promise<IbGibSpaceAny> {
75
118
  const lc = `${this.lc}[${this.ensureReceiverTempSpace.name}]`;
76
119
  try {
@@ -154,7 +197,7 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1<InitializeSyncPeerInnersp
154
197
  // remoteTempSpace = senderSpace;
155
198
  // }
156
199
 
157
- const { sagaIbGib: _alreadyHave, msgStones, identities } = await getSyncSagaFrameDependencyGraph({
200
+ const { sagaIbGib: _alreadyHave, msgStones, } = await getSyncSagaFrameDependencyGraph({
158
201
  sagaIbGib: sagaFrame,
159
202
  localSpace: localSpace,
160
203
  });
@@ -162,26 +205,8 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1<InitializeSyncPeerInnersp
162
205
  const msg = msgStones[0];
163
206
  if (!msg.data) { throw new Error(`(UNEXPECTED) sync saga message ibgib.data falsy? (E: 61ec18743988ad3cbab2072d1dd69826)`); }
164
207
 
165
- // Bill architecture: Keystone identity transportation.
166
- // On each turn, the sender must include the current signed session
167
- // keystone. If it's the first turn (Init), we include the entire
168
- // keystone graph to ensure the receiver has the primary-to-session
169
- // authorized link.
170
- const identityIbGibs: IbGib_V1[] = [];
171
- const { signedSessionKeystone } = context;
172
- if (signedSessionKeystone) {
173
- if (msg.data.stage === SyncStage.init) {
174
- // transmit full keystone graph on the first handshake
175
- const keystoneGraph = await getDependencyGraph({
176
- ibGib: signedSessionKeystone,
177
- space: localSpace,
178
- });
179
- identityIbGibs.push(...Object.values(keystoneGraph));
180
- } else {
181
- // transmit only the latest evolution for subsequent turns
182
- identityIbGibs.push(signedSessionKeystone);
183
- }
184
- }
208
+
209
+ // this is where we did the i dentityIbGibs
185
210
 
186
211
  // send the context itself, then send the payload ibgibs separately.
187
212
  // in this innerspace, this just means putting the control ibgibs
@@ -193,7 +218,7 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1<InitializeSyncPeerInnersp
193
218
  // we store inside out, meaning we do the dependencies first and
194
219
  // then the higher-level dependents.
195
220
  const payloadIbGibsControl = [
196
- ...identities, ...identityIbGibs, msg, sagaFrame, context
221
+ msg, sagaFrame, context
197
222
  ].map(x => toDto({ ibGib: x }));
198
223
  if (logalot) { console.log(`${lc} putting into receiverSpace: ${receiverSpace.ib} (I: 1ba18b14a26bdd0e7800da4812898826)`); }
199
224
  await putInSpace({
@@ -230,22 +255,16 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1<InitializeSyncPeerInnersp
230
255
  const authErrors = await authenticateContext({
231
256
  context,
232
257
  space: receiverSpace,
233
- keystoneSvc: receiverCoordinator.keystoneSvc,
234
258
  });
235
259
  if (authErrors.length > 0) {
236
260
  throw new Error(`Context authentication failed: ${authErrors.join(', ')} (E: d34b8ad98d84e1ba8d8f7facd288826)`);
237
261
  }
238
262
 
239
- const identitySecret = context.fnIdentitySecret ?
240
- await context.fnIdentitySecret() :
241
- undefined;
242
263
  const responseCtx = await receiverCoordinator.continueSync({
243
264
  sagaContext: context,
244
265
  metaspace: receiverMetaspace,
245
266
  mySpace: receiverSpace,
246
267
  myTempSpace: receiverTempSpace,
247
- identity: context.signedSessionKeystone,
248
- identitySecret,
249
268
  });
250
269
 
251
270
  if (logalot) { console.log(`${lc} receiverCoordinator.continueSync responseCtx: ${responseCtx ? pretty(responseCtx) : 'undefined'} (I: fb2831decde1f2b3589021f85ab19126)`); }
@@ -262,7 +281,7 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1<InitializeSyncPeerInnersp
262
281
  // the process of any response payloads, and return the context.
263
282
 
264
283
  // get control ibgibs from the receiver space...
265
- const { msgStones: msgStonesResponse, identities: identitiesResponse } =
284
+ const { msgStones: msgStonesResponse, } =
266
285
  await getSyncSagaFrameDependencyGraph({
267
286
  sagaIbGib: responseCtx.sagaFrame,
268
287
  localSpace: receiverSpace,
@@ -271,14 +290,8 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1<InitializeSyncPeerInnersp
271
290
  const msgResponse = msgStonesResponse[0];
272
291
  if (!msgResponse.data) { throw new Error(`(UNEXPECTED) sync saga message ibgib.data falsy? (E: 61ec18743988ad3cbab2072d1dd69826)`); }
273
292
 
274
- const responseIdentityIbGibs: IbGib_V1[] = [];
275
- if (responseCtx.signedSessionKeystone) {
276
- // receiver also evolved the identity
277
- responseIdentityIbGibs.push(responseCtx.signedSessionKeystone);
278
- }
279
-
280
293
  const responsePayloadIbGibsControl = [
281
- ...identitiesResponse, ...responseIdentityIbGibs, msgResponse, responseCtx.sagaFrame, context
294
+ msgResponse, responseCtx.sagaFrame, context
282
295
  ].map(x => toDto({ ibGib: x }));
283
296
  // ...put into sender's durable space
284
297
  await putInSpace({