@ibgib/core-gib 0.1.60 → 0.1.61

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 (179) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/common/other/graph-helper.d.mts.map +1 -1
  3. package/dist/common/other/graph-helper.mjs +7 -6
  4. package/dist/common/other/graph-helper.mjs.map +1 -1
  5. package/dist/keystone/keystone-config-builder.d.mts +1 -2
  6. package/dist/keystone/keystone-config-builder.d.mts.map +1 -1
  7. package/dist/keystone/keystone-config-builder.mjs +4 -19
  8. package/dist/keystone/keystone-config-builder.mjs.map +1 -1
  9. package/dist/keystone/keystone-constants.d.mts +2 -0
  10. package/dist/keystone/keystone-constants.d.mts.map +1 -1
  11. package/dist/keystone/keystone-constants.mjs +2 -0
  12. package/dist/keystone/keystone-constants.mjs.map +1 -1
  13. package/dist/keystone/keystone-helpers.d.mts +5 -15
  14. package/dist/keystone/keystone-helpers.d.mts.map +1 -1
  15. package/dist/keystone/keystone-helpers.mjs +59 -73
  16. package/dist/keystone/keystone-helpers.mjs.map +1 -1
  17. package/dist/keystone/keystone-policy-types.d.mts +6 -4
  18. package/dist/keystone/keystone-policy-types.d.mts.map +1 -1
  19. package/dist/keystone/keystone-service-v1.d.mts.map +1 -1
  20. package/dist/keystone/keystone-service-v1.mjs +4 -8
  21. package/dist/keystone/keystone-service-v1.mjs.map +1 -1
  22. package/dist/keystone/keystone-service-v1.respec.mjs +182 -33
  23. package/dist/keystone/keystone-service-v1.respec.mjs.map +1 -1
  24. package/dist/keystone/keystone-types.d.mts +4 -11
  25. package/dist/keystone/keystone-types.d.mts.map +1 -1
  26. package/dist/keystone/policy/keystone-profile-builder.d.mts +25 -0
  27. package/dist/keystone/policy/keystone-profile-builder.d.mts.map +1 -0
  28. package/dist/keystone/policy/keystone-profile-builder.mjs +117 -0
  29. package/dist/keystone/policy/keystone-profile-builder.mjs.map +1 -0
  30. package/dist/keystone/policy/profiles/profile-high.json +84 -0
  31. package/dist/keystone/policy/profiles/profile-low.json +84 -0
  32. package/dist/keystone/policy/profiles/profile-medium.json +84 -0
  33. package/dist/keystone/policy/profiles/profile-session.json +84 -0
  34. package/dist/keystone/policy/profiles/profile-test.json +84 -0
  35. package/dist/keystone/policy/schemas/connect-pool.high.schema.json +23 -0
  36. package/dist/keystone/policy/schemas/connect-pool.low.schema.json +23 -0
  37. package/dist/keystone/policy/schemas/connect-pool.medium.schema.json +23 -0
  38. package/dist/keystone/policy/schemas/keystone.high.schema.json +26 -0
  39. package/dist/keystone/policy/schemas/keystone.low.schema.json +26 -0
  40. package/dist/keystone/policy/schemas/keystone.medium.schema.json +26 -0
  41. package/dist/keystone/policy/schemas/manage-pool.high.schema.json +23 -0
  42. package/dist/keystone/policy/schemas/manage-pool.low.schema.json +23 -0
  43. package/dist/keystone/policy/schemas/manage-pool.medium.schema.json +23 -0
  44. package/dist/keystone/policy/schemas/revoke-pool.high.schema.json +23 -0
  45. package/dist/keystone/policy/schemas/revoke-pool.low.schema.json +23 -0
  46. package/dist/keystone/policy/schemas/revoke-pool.medium.schema.json +23 -0
  47. package/dist/keystone/policy/schemas/sign-pool.high.schema.json +23 -0
  48. package/dist/keystone/policy/schemas/sign-pool.low.schema.json +23 -0
  49. package/dist/keystone/policy/schemas/sign-pool.medium.schema.json +23 -0
  50. package/dist/keystone/policy/schemas/sync-pool.high.schema.json +23 -0
  51. package/dist/keystone/policy/schemas/sync-pool.low.schema.json +23 -0
  52. package/dist/keystone/policy/schemas/sync-pool.medium.schema.json +23 -0
  53. package/dist/sync/sync-conflict-adv-multitimelines.withid.respec.d.mts +8 -0
  54. package/dist/sync/sync-conflict-adv-multitimelines.withid.respec.d.mts.map +1 -0
  55. package/dist/sync/sync-conflict-adv-multitimelines.withid.respec.mjs +582 -0
  56. package/dist/sync/sync-conflict-adv-multitimelines.withid.respec.mjs.map +1 -0
  57. package/dist/sync/sync-conflict-basic-divergence.withid.respec.d.mts +7 -0
  58. package/dist/sync/sync-conflict-basic-divergence.withid.respec.d.mts.map +1 -0
  59. package/dist/sync/sync-conflict-basic-divergence.withid.respec.mjs +274 -0
  60. package/dist/sync/sync-conflict-basic-divergence.withid.respec.mjs.map +1 -0
  61. package/dist/sync/sync-conflict-basic-multitimelines.withid.respec.d.mts +8 -0
  62. package/dist/sync/sync-conflict-basic-multitimelines.withid.respec.d.mts.map +1 -0
  63. package/dist/sync/sync-conflict-basic-multitimelines.withid.respec.mjs +322 -0
  64. package/dist/sync/sync-conflict-basic-multitimelines.withid.respec.mjs.map +1 -0
  65. package/dist/sync/sync-conflict-text-merge.withid.respec.d.mts +7 -0
  66. package/dist/sync/sync-conflict-text-merge.withid.respec.d.mts.map +1 -0
  67. package/dist/sync/sync-conflict-text-merge.withid.respec.mjs +307 -0
  68. package/dist/sync/sync-conflict-text-merge.withid.respec.mjs.map +1 -0
  69. package/dist/sync/sync-innerspace-constants.withid.respec.d.mts +8 -0
  70. package/dist/sync/sync-innerspace-constants.withid.respec.d.mts.map +1 -0
  71. package/dist/sync/sync-innerspace-constants.withid.respec.mjs +233 -0
  72. package/dist/sync/sync-innerspace-constants.withid.respec.mjs.map +1 -0
  73. package/dist/sync/sync-innerspace-deep-updates.withid.respec.d.mts +7 -0
  74. package/dist/sync/sync-innerspace-deep-updates.withid.respec.d.mts.map +1 -0
  75. package/dist/sync/sync-innerspace-deep-updates.withid.respec.mjs +233 -0
  76. package/dist/sync/sync-innerspace-deep-updates.withid.respec.mjs.map +1 -0
  77. package/dist/sync/sync-innerspace-dest-ahead.withid.respec.d.mts +7 -0
  78. package/dist/sync/sync-innerspace-dest-ahead.withid.respec.d.mts.map +1 -0
  79. package/dist/sync/sync-innerspace-dest-ahead.withid.respec.mjs +225 -0
  80. package/dist/sync/sync-innerspace-dest-ahead.withid.respec.mjs.map +1 -0
  81. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
  82. package/dist/sync/sync-innerspace-multiple-timelines.withid.respec.d.mts +7 -0
  83. package/dist/sync/sync-innerspace-multiple-timelines.withid.respec.d.mts.map +1 -0
  84. package/dist/sync/sync-innerspace-multiple-timelines.withid.respec.mjs +235 -0
  85. package/dist/sync/sync-innerspace-multiple-timelines.withid.respec.mjs.map +1 -0
  86. package/dist/sync/sync-innerspace-partial-update.withid.respec.d.mts +7 -0
  87. package/dist/sync/sync-innerspace-partial-update.withid.respec.d.mts.map +1 -0
  88. package/dist/sync/sync-innerspace-partial-update.withid.respec.mjs +211 -0
  89. package/dist/sync/sync-innerspace-partial-update.withid.respec.mjs.map +1 -0
  90. package/dist/sync/sync-innerspace.withid.respec.d.mts +8 -0
  91. package/dist/sync/sync-innerspace.withid.respec.d.mts.map +1 -0
  92. package/dist/sync/sync-innerspace.withid.respec.mjs +260 -0
  93. package/dist/sync/sync-innerspace.withid.respec.mjs.map +1 -0
  94. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.d.mts +1 -0
  95. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.d.mts.map +1 -1
  96. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mjs +13 -4
  97. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mjs.map +1 -1
  98. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.d.mts +1 -1
  99. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.d.mts.map +1 -1
  100. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mjs +5 -3
  101. package/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mjs.map +1 -1
  102. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  103. package/dist/sync/sync-saga-coordinator.mjs +165 -145
  104. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  105. package/dist/sync/sync-withid.pingpong.respec.mjs +8 -8
  106. package/dist/sync/sync-withid.pingpong.respec.mjs.map +1 -1
  107. package/dist/timeline/timeline-api.d.mts.map +1 -1
  108. package/dist/timeline/timeline-api.mjs +1 -14
  109. package/dist/timeline/timeline-api.mjs.map +1 -1
  110. package/dist/witness/space/reconciliation-space/reconciliation-space-base.d.mts.map +1 -1
  111. package/dist/witness/space/reconciliation-space/reconciliation-space-base.mjs +0 -40
  112. package/dist/witness/space/reconciliation-space/reconciliation-space-base.mjs.map +1 -1
  113. package/dist/witness/space/reconciliation-space/reconciliation-space-helper.d.mts.map +1 -1
  114. package/dist/witness/space/reconciliation-space/reconciliation-space-helper.mjs +6 -6
  115. package/dist/witness/space/reconciliation-space/reconciliation-space-helper.mjs.map +1 -1
  116. package/ibgib-foundations.md +2 -1
  117. package/package.json +1 -1
  118. package/src/common/other/graph-helper.mts +7 -6
  119. package/src/keystone/README.md +19 -15
  120. package/src/keystone/docs/CRYPTANALYSIS.md +185 -0
  121. package/src/keystone/docs/architecture.md +24 -1
  122. package/src/keystone/docs/profiles.md +124 -0
  123. package/src/keystone/keystone-config-builder.mts +3 -21
  124. package/src/keystone/keystone-constants.mts +2 -0
  125. package/src/keystone/keystone-helpers.mts +74 -77
  126. package/src/keystone/keystone-policy-types.mts +6 -4
  127. package/src/keystone/keystone-service-v1.mts +4 -9
  128. package/src/keystone/keystone-service-v1.respec.mts +214 -32
  129. package/src/keystone/keystone-types.mts +5 -9
  130. package/src/keystone/policy/IMPLEMENTATION.md +60 -0
  131. package/src/keystone/policy/README.md +94 -0
  132. package/src/keystone/policy/keystone-profile-builder.mts +131 -0
  133. package/src/keystone/policy/profiles/profile-high.json +84 -0
  134. package/src/keystone/policy/profiles/profile-low.json +84 -0
  135. package/src/keystone/policy/profiles/profile-medium.json +84 -0
  136. package/src/keystone/policy/profiles/profile-session.json +84 -0
  137. package/src/keystone/policy/profiles/profile-test.json +84 -0
  138. package/src/keystone/policy/schemas/connect-pool.high.schema.json +23 -0
  139. package/src/keystone/policy/schemas/connect-pool.low.schema.json +23 -0
  140. package/src/keystone/policy/schemas/connect-pool.medium.schema.json +23 -0
  141. package/src/keystone/policy/schemas/keystone.high.schema.json +26 -0
  142. package/src/keystone/policy/schemas/keystone.low.schema.json +26 -0
  143. package/src/keystone/policy/schemas/keystone.medium.schema.json +26 -0
  144. package/src/keystone/policy/schemas/manage-pool.high.schema.json +23 -0
  145. package/src/keystone/policy/schemas/manage-pool.low.schema.json +23 -0
  146. package/src/keystone/policy/schemas/manage-pool.medium.schema.json +23 -0
  147. package/src/keystone/policy/schemas/revoke-pool.high.schema.json +23 -0
  148. package/src/keystone/policy/schemas/revoke-pool.low.schema.json +23 -0
  149. package/src/keystone/policy/schemas/revoke-pool.medium.schema.json +23 -0
  150. package/src/keystone/policy/schemas/sign-pool.high.schema.json +23 -0
  151. package/src/keystone/policy/schemas/sign-pool.low.schema.json +23 -0
  152. package/src/keystone/policy/schemas/sign-pool.medium.schema.json +23 -0
  153. package/src/keystone/policy/schemas/sync-pool.high.schema.json +23 -0
  154. package/src/keystone/policy/schemas/sync-pool.low.schema.json +23 -0
  155. package/src/keystone/policy/schemas/sync-pool.medium.schema.json +23 -0
  156. package/src/sync/docs/security.md +54 -21
  157. package/src/sync/sync-conflict-adv-multitimelines.withid.respec.mts +706 -0
  158. package/src/sync/sync-conflict-basic-divergence.withid.respec.mts +321 -0
  159. package/src/sync/sync-conflict-basic-multitimelines.withid.respec.mts +374 -0
  160. package/src/sync/sync-conflict-text-merge.withid.respec.mts +347 -0
  161. package/src/sync/sync-innerspace-constants.withid.respec.mts +264 -0
  162. package/src/sync/sync-innerspace-deep-updates.withid.respec.mts +272 -0
  163. package/src/sync/sync-innerspace-dest-ahead.withid.respec.mts +266 -0
  164. package/src/sync/sync-innerspace-multiple-timelines.respec.mts +0 -1
  165. package/src/sync/sync-innerspace-multiple-timelines.withid.respec.mts +273 -0
  166. package/src/sync/sync-innerspace-partial-update.withid.respec.mts +249 -0
  167. package/src/sync/sync-innerspace.withid.respec.mts +265 -0
  168. package/src/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-peer-websocket-receiver-v1.mts +12 -4
  169. package/src/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mts +5 -3
  170. package/src/sync/sync-saga-coordinator.mts +159 -143
  171. package/src/sync/sync-withid.pingpong.respec.mts +8 -8
  172. package/src/timeline/timeline-api.mts +1 -15
  173. package/src/timeline/timeline-api.respec.mts +3 -3
  174. package/src/witness/space/reconciliation-space/reconciliation-space-base.mts +0 -46
  175. package/src/witness/space/reconciliation-space/reconciliation-space-helper.mts +6 -5
  176. package/tsconfig.json +6 -1
  177. package/src/keystone/keystone-policy.schema.json +0 -51
  178. package/src/witness/space/reconciliation-space/reconciliation-space-base.mts.OLD.md +0 -884
  179. package/src/witness/space/reconciliation-space/reconciliation-space-helper.mts.OLD.md +0 -125
@@ -0,0 +1,235 @@
1
+ /**
2
+ * @module sync-innerspace-multiple-timelines.withid.respec
3
+ *
4
+ * Verifies syncing multiple independent timelines with Identity.
5
+ */
6
+ import { respecfully, iReckon, ifWe } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
7
+ const maam = `[${import.meta.url}]`, sir = maam;
8
+ import { clone, delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
9
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
10
+ import { getDependencyGraph, graphsAreEquivalent } from '../common/other/graph-helper.mjs';
11
+ import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
12
+ import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
13
+ import { getFromSpace } from '../witness/space/space-helper.mjs';
14
+ import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
15
+ import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
16
+ import { createTimelineRootTestHelper } from '../test-helpers.mjs';
17
+ import { mut8Timeline } from '../timeline/timeline-api.mjs';
18
+ import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
19
+ import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs';
20
+ import { SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1 } from './sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs';
21
+ import { KeystoneService_V1 } from '../keystone/keystone-service-v1.mjs';
22
+ import { KEYSTONE_VERB_SYNC, POOL_ID_SYNC, } from '../keystone/keystone-constants.mjs';
23
+ import { createStandardPoolConfig } from '../keystone/keystone-config-builder.mjs';
24
+ import { KeystoneReplenishStrategy } from '../keystone/keystone-types.mjs';
25
+ const logalot = GLOBAL_LOG_A_LOT || true;
26
+ const lc = `[sync-innerspace-multiple-timelines.withid.respec]`;
27
+ const SENDER_SECRET = 'test-sender-secret-multiple-timelines-withid';
28
+ const SENDER_IDENTITY_SYNC_POOL_CONFIG = createStandardPoolConfig({
29
+ id: POOL_ID_SYNC,
30
+ salt: 'senderidentitysyncsaltmultipletimelineswithid',
31
+ verbs: [KEYSTONE_VERB_SYNC],
32
+ size: 200,
33
+ sequential: 1,
34
+ random: 1,
35
+ targetBinding: 2,
36
+ replenishStrategy: KeystoneReplenishStrategy.topUp,
37
+ });
38
+ await respecfully(sir, `Sync InnerSpaces (Multiple Timelines) with Identity`, async () => {
39
+ let metaspace;
40
+ let sourceSpace;
41
+ let destSpace;
42
+ // #region Round 1 - Multiple Timelines Push Sync
43
+ await respecfully(sir, `Multiple Timelines (Push Source -> Dest with Identity)`, async () => {
44
+ // 1. Setup Spaces
45
+ metaspace = new Metaspace_Innerspace(undefined);
46
+ await metaspace.initialize({
47
+ getFnAlert: () => async ({ title, msg }) => { console.log(`[Alert] ${title}: ${msg}`); },
48
+ getFnPrompt: () => async ({ title, msg }) => { console.log(`[Prompt] ${title}: ${msg}`); return ''; },
49
+ getFnPromptPassword: () => async (title, msg) => { console.log(`[PromptPwd] ${title}: ${msg}`); return null; },
50
+ });
51
+ while (!metaspace.initialized) {
52
+ await delay(10);
53
+ }
54
+ sourceSpace = new InnerSpace_V1({
55
+ ...DEFAULT_INNER_SPACE_DATA_V1,
56
+ name: 'source',
57
+ uuid: 'source_uuid',
58
+ description: 'source test space',
59
+ });
60
+ await sourceSpace.initialized;
61
+ destSpace = new InnerSpace_V1({
62
+ ...DEFAULT_INNER_SPACE_DATA_V1,
63
+ name: 'dest',
64
+ uuid: 'dest_uuid',
65
+ description: 'dest test space',
66
+ });
67
+ await destSpace.initialized;
68
+ // 2. Setup Identities
69
+ const keystoneSvc = new KeystoneService_V1();
70
+ const r1_senderIdentity_v0_source = await keystoneSvc.genesis({
71
+ masterSecret: SENDER_SECRET,
72
+ configs: [SENDER_IDENTITY_SYNC_POOL_CONFIG],
73
+ metaspace,
74
+ space: sourceSpace,
75
+ });
76
+ // Register sender identity on destination space as well
77
+ await metaspace.put({ ibGib: r1_senderIdentity_v0_source, space: destSpace });
78
+ await metaspace.registerNewIbGib({ ibGib: r1_senderIdentity_v0_source, space: destSpace });
79
+ // #region r1 setup
80
+ // 3. Seed Source Data (Multiple Independent Timelines)
81
+ console.log(`${lc} Creating data in Source...`);
82
+ // Timeline A
83
+ const r1_alpha_v0_source = await createTimelineRootTestHelper({
84
+ ib: 'timeline_root_A',
85
+ data: { type: 'root', label: 'A' },
86
+ space: sourceSpace,
87
+ });
88
+ const r1_alpha_v1_source = await mut8Timeline({
89
+ timeline: r1_alpha_v0_source,
90
+ mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'A1' } },
91
+ metaspace,
92
+ space: sourceSpace,
93
+ });
94
+ const r1_alpha_v1_source_addr = getIbGibAddr({ ibGib: r1_alpha_v1_source });
95
+ // Timeline B
96
+ const r1_beta_v0_source = await createTimelineRootTestHelper({
97
+ ib: 'timeline_root_B',
98
+ data: { type: 'root', label: 'B' },
99
+ space: sourceSpace,
100
+ });
101
+ const r1_beta_v1_source = await mut8Timeline({
102
+ timeline: r1_beta_v0_source,
103
+ mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'B1' } },
104
+ metaspace,
105
+ space: sourceSpace,
106
+ });
107
+ const r1_beta_v2_source = await mut8Timeline({
108
+ timeline: r1_beta_v1_source,
109
+ mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'B2' } },
110
+ metaspace,
111
+ space: sourceSpace,
112
+ });
113
+ const r1_beta_v2_source_addr = getIbGibAddr({ ibGib: r1_beta_v2_source });
114
+ // #endregion r1 setup
115
+ // #region r1 verify pre
116
+ await respecfully(sir, `r1 verify pre`, async () => {
117
+ await ifWe(sir, `Dest does not have any of the timeline frames initially`, async () => {
118
+ const getA1 = await getFromSpace({ space: destSpace, addr: r1_alpha_v1_source_addr });
119
+ const getA0 = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: r1_alpha_v0_source }) });
120
+ const getB2 = await getFromSpace({ space: destSpace, addr: r1_beta_v2_source_addr });
121
+ const getB1 = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: r1_beta_v1_source }) });
122
+ const getB0 = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: r1_beta_v0_source }) });
123
+ iReckon(sir, getA1.success || getA0.success || getB2.success || getB1.success || getB0.success).asTo('Dest initially lacks alpha and beta frames').isGonnaBeFalse();
124
+ });
125
+ });
126
+ // #endregion r1 verify pre
127
+ // 4. Setup Coordinator & Peer
128
+ const senderCoordinator = new SyncSagaCoordinator();
129
+ const receiverCoordinator = new SyncSagaCoordinator();
130
+ const peer = new SyncPeerInnerspace_V1(clone(SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1));
131
+ await peer.initialized;
132
+ await peer.initializeOpts({
133
+ sagaId: '',
134
+ localMetaspace: metaspace,
135
+ localSpace: sourceSpace, // "Client"
136
+ receiverSpace: destSpace, // "Server"
137
+ receiverCoordinator,
138
+ receiverMetaspace: metaspace,
139
+ });
140
+ // #region r1 syncs
141
+ // 5. Run Sync (Sync both tips: A1 and B2)
142
+ console.log(`${lc} Running Sync...`);
143
+ const resSync = await senderCoordinator.sync({
144
+ peer: peer,
145
+ localSpace: sourceSpace,
146
+ metaspace: metaspace,
147
+ domainIbGibs: [r1_alpha_v1_source, r1_beta_v2_source],
148
+ senderIdentity: r1_senderIdentity_v0_source,
149
+ fnSenderSecret: async () => SENDER_SECRET,
150
+ });
151
+ await resSync.done;
152
+ // #endregion r1 syncs
153
+ // #region r1 verify post
154
+ await respecfully(sir, `r1 verify post`, async () => {
155
+ await ifWe(sir, `verify timelines present and correct in Dest`, async () => {
156
+ // Verify A
157
+ const getA1 = await getFromSpace({ space: destSpace, addr: r1_alpha_v1_source_addr });
158
+ iReckon(sir, getA1.success).asTo('Timeline A present').isGonnaBeTrue();
159
+ iReckon(sir, getA1.ibGibs?.[0]?.data?.label).asTo('Label A match').isGonnaBe('A1');
160
+ // Verify B
161
+ const getB2 = await getFromSpace({ space: destSpace, addr: r1_beta_v2_source_addr });
162
+ iReckon(sir, getB2.success).asTo('Timeline B present').isGonnaBeTrue();
163
+ iReckon(sir, getB2.ibGibs?.[0]?.data?.label).asTo('Label B match').isGonnaBe('B2');
164
+ });
165
+ await ifWe(sir, 'sessionIdentity evolved the expected number of times', async () => {
166
+ const latestS = peer.currentSessionIdentity;
167
+ iReckon(sir, latestS).asTo('latest session identity exists on peer').isGonnaBeTruthy();
168
+ if (latestS) {
169
+ iReckon(sir, latestS.data?.n).asTo('session identity data.n').isGonnaBe(2);
170
+ }
171
+ });
172
+ await ifWe(sir, 'sender durable space has I (evolved frame)', async () => {
173
+ const latestSenderIdentityAddr = await metaspace.getLatestAddr({
174
+ addr: getIbGibAddr({ ibGib: r1_senderIdentity_v0_source }),
175
+ space: sourceSpace,
176
+ });
177
+ iReckon(sir, latestSenderIdentityAddr).asTo('latestSenderIdentityAddr exists').isGonnaBeTruthy();
178
+ if (latestSenderIdentityAddr) {
179
+ const resGetSourceI = await getFromSpace({ space: sourceSpace, addr: latestSenderIdentityAddr });
180
+ iReckon(sir, resGetSourceI.success && resGetSourceI.ibGibs?.length === 1).asTo('evolved I exists in sourceSpace').isGonnaBeTrue();
181
+ if (resGetSourceI.success && resGetSourceI.ibGibs?.[0]) {
182
+ const evolvedI = resGetSourceI.ibGibs[0];
183
+ iReckon(sir, evolvedI.data?.n).asTo('evolved I data.n').isGonnaBe(1);
184
+ }
185
+ }
186
+ });
187
+ await ifWe(sir, 'receiver durable space has I (evolved frame)', async () => {
188
+ const latestSenderIdentityAddr = await metaspace.getLatestAddr({
189
+ addr: getIbGibAddr({ ibGib: r1_senderIdentity_v0_source }),
190
+ space: sourceSpace,
191
+ });
192
+ iReckon(sir, latestSenderIdentityAddr).asTo('latestSenderIdentityAddr exists').isGonnaBeTruthy();
193
+ if (latestSenderIdentityAddr) {
194
+ const resGetDestI = await getFromSpace({ space: destSpace, addr: latestSenderIdentityAddr });
195
+ iReckon(sir, resGetDestI.success && resGetDestI.ibGibs?.length === 1).asTo('evolved I exists in destSpace').isGonnaBeTrue();
196
+ if (resGetDestI.success && resGetDestI.ibGibs?.[0]) {
197
+ const evolvedI = resGetDestI.ibGibs[0];
198
+ iReckon(sir, evolvedI.data?.n).asTo('evolved I data.n').isGonnaBe(1);
199
+ }
200
+ }
201
+ });
202
+ await ifWe(sir, 'sender durable space has full S dep graph', async () => {
203
+ const latestS = peer.currentSessionIdentity;
204
+ iReckon(sir, latestS).asTo('latestS exists').isGonnaBeTruthy();
205
+ if (latestS) {
206
+ const depGraphS = await getDependencyGraph({ ibGib: latestS, space: sourceSpace });
207
+ const addrs = Object.keys(depGraphS);
208
+ iReckon(sir, addrs.length > 2).asTo('number of nodes in S graph > 2').isGonnaBeTrue();
209
+ }
210
+ });
211
+ await ifWe(sir, 'receiver durable space has full S dep graph', async () => {
212
+ const latestS = peer.currentSessionIdentity;
213
+ iReckon(sir, latestS).asTo('latestS exists').isGonnaBeTruthy();
214
+ if (latestS) {
215
+ const depGraphS = await getDependencyGraph({ ibGib: latestS, space: destSpace });
216
+ const addrs = Object.keys(depGraphS);
217
+ iReckon(sir, addrs.length > 2).asTo('number of nodes in S graph in destSpace > 2').isGonnaBeTrue();
218
+ }
219
+ });
220
+ await ifWe(sir, 'session keystone dependency graphs are equivalent on source and dest', async () => {
221
+ const latestS = peer.currentSessionIdentity;
222
+ iReckon(sir, latestS).asTo('latestS exists').isGonnaBeTruthy();
223
+ if (latestS) {
224
+ const depGraphSource = await getDependencyGraph({ ibGib: latestS, space: sourceSpace });
225
+ const depGraphDest = await getDependencyGraph({ ibGib: latestS, space: destSpace });
226
+ const equal = graphsAreEquivalent({ graphA: depGraphSource, graphB: depGraphDest });
227
+ iReckon(sir, equal).asTo('session graphs are equivalent').isGonnaBeTrue();
228
+ }
229
+ });
230
+ });
231
+ // #endregion r1 verify post
232
+ });
233
+ // #endregion Round 1 - Multiple Timelines Push Sync
234
+ });
235
+ //# sourceMappingURL=sync-innerspace-multiple-timelines.withid.respec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-innerspace-multiple-timelines.withid.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-multiple-timelines.withid.respec.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @module sync-innerspace-partial-update.withid.respec
3
+ *
4
+ * Verifies Sync Scenarios where the Destination has partial history, using Identity.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=sync-innerspace-partial-update.withid.respec.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-innerspace-partial-update.withid.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-innerspace-partial-update.withid.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * @module sync-innerspace-partial-update.withid.respec
3
+ *
4
+ * Verifies Sync Scenarios where the Destination has partial history, using Identity.
5
+ */
6
+ import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
7
+ const maam = `[${import.meta.url}]`, sir = maam;
8
+ import { clone, delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
9
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
10
+ import { getDependencyGraph } from '../common/other/graph-helper.mjs';
11
+ import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
12
+ import { putInSpace, getFromSpace } from '../witness/space/space-helper.mjs';
13
+ import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
14
+ import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
15
+ import { createTimelineRootTestHelper, } from '../test-helpers.mjs';
16
+ import { mut8Timeline } from '../timeline/timeline-api.mjs';
17
+ import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
18
+ import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs';
19
+ import { SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1 } from './sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs';
20
+ import { KeystoneService_V1 } from '../keystone/keystone-service-v1.mjs';
21
+ import { KEYSTONE_VERB_SYNC, POOL_ID_SYNC, } from '../keystone/keystone-constants.mjs';
22
+ import { createStandardPoolConfig } from '../keystone/keystone-config-builder.mjs';
23
+ import { KeystoneReplenishStrategy } from '../keystone/keystone-types.mjs';
24
+ const logalot = true;
25
+ const lc = `[sync-innerspace-partial-update.withid.respec]`;
26
+ const SENDER_SECRET = 'test-sender-secret-partial-update-withid';
27
+ const SENDER_IDENTITY_SYNC_POOL_CONFIG = createStandardPoolConfig({
28
+ id: POOL_ID_SYNC,
29
+ salt: 'senderidentitysyncsaltpartialupdatewithid',
30
+ verbs: [KEYSTONE_VERB_SYNC],
31
+ size: 200,
32
+ sequential: 1,
33
+ random: 1,
34
+ targetBinding: 2,
35
+ replenishStrategy: KeystoneReplenishStrategy.topUp,
36
+ });
37
+ await respecfully(sir, `Sync InnerSpaces (Partial Update) with Identity`, async () => {
38
+ let metaspace;
39
+ let sourceSpace;
40
+ let destSpace;
41
+ // #region Round 1 - Sync Destination with Partial History
42
+ await respecfully(sir, `Sender Newer (Partial History) (Source -> Dest)`, async () => {
43
+ // 1. Setup Spaces
44
+ metaspace = new Metaspace_Innerspace(undefined);
45
+ await metaspace.initialize({
46
+ getFnAlert: () => async ({ title, msg }) => { },
47
+ getFnPrompt: () => async ({ title, msg }) => { return ''; },
48
+ getFnPromptPassword: () => async (title, msg) => { return null; },
49
+ });
50
+ while (!metaspace.initialized) {
51
+ await delay(10);
52
+ }
53
+ sourceSpace = new InnerSpace_V1({
54
+ ...DEFAULT_INNER_SPACE_DATA_V1,
55
+ name: 'source',
56
+ uuid: 'source_uuid',
57
+ description: 'source test space',
58
+ });
59
+ await sourceSpace.initialized;
60
+ destSpace = new InnerSpace_V1({
61
+ ...DEFAULT_INNER_SPACE_DATA_V1,
62
+ name: 'dest',
63
+ uuid: 'dest_uuid',
64
+ description: 'dest test space',
65
+ });
66
+ await destSpace.initialized;
67
+ const keystoneSvc = new KeystoneService_V1();
68
+ const r1_senderIdentity_v0_source = await keystoneSvc.genesis({
69
+ masterSecret: SENDER_SECRET,
70
+ configs: [SENDER_IDENTITY_SYNC_POOL_CONFIG],
71
+ metaspace,
72
+ space: sourceSpace,
73
+ });
74
+ // post the senderIdentity to receiver
75
+ await metaspace.put({ ibGib: r1_senderIdentity_v0_source, space: destSpace });
76
+ await metaspace.registerNewIbGib({ ibGib: r1_senderIdentity_v0_source, space: destSpace });
77
+ // #region r1 setup
78
+ // 2. Create Timeline: Root -> V1 (Shared) -> V2 (Source Only)
79
+ const r1_alpha_v0_source = await createTimelineRootTestHelper({
80
+ ib: 'timeline_root_partial',
81
+ data: { type: 'root', label: 'Root' },
82
+ space: sourceSpace,
83
+ });
84
+ // V1
85
+ const r1_alpha_v1_source = await mut8Timeline({
86
+ timeline: r1_alpha_v0_source,
87
+ mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'V1' } },
88
+ metaspace,
89
+ space: sourceSpace,
90
+ });
91
+ // V2 (Source Only)
92
+ const r1_alpha_v2_source = await mut8Timeline({
93
+ timeline: r1_alpha_v1_source,
94
+ mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'V2' } },
95
+ metaspace,
96
+ space: sourceSpace,
97
+ });
98
+ const r1_alpha_v2_source_addr = getIbGibAddr({ ibGib: r1_alpha_v2_source });
99
+ // Transfer Root & V1 to Dest (Simulate previous sync)
100
+ await putInSpace({ space: destSpace, ibGibs: [r1_alpha_v0_source, r1_alpha_v1_source] });
101
+ // #endregion r1 setup
102
+ // #region r1 verify pre
103
+ await respecfully(sir, `r1 verify pre`, async () => {
104
+ await ifWe(sir, `Dest has V1 but not V2 initially`, async () => {
105
+ // Verify Dest has V1
106
+ const checkV1 = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: r1_alpha_v1_source }) });
107
+ iReckon(sir, checkV1.success).asTo('Dest has V1').isGonnaBeTrue();
108
+ // Verify Dest does NOT have V2
109
+ const checkV2 = await getFromSpace({ space: destSpace, addr: r1_alpha_v2_source_addr });
110
+ iReckon(sir, checkV2.success && !!checkV2.ibGibs?.length).asTo('Dest does not have V2').isGonnaBeFalse();
111
+ });
112
+ });
113
+ // #endregion r1 verify pre
114
+ // 3. Setup Sync
115
+ const senderCoordinator = new SyncSagaCoordinator();
116
+ const receiverCoordinator = new SyncSagaCoordinator();
117
+ const peer = new SyncPeerInnerspace_V1(clone(SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1));
118
+ await peer.initialized;
119
+ await peer.initializeOpts({
120
+ sagaId: '',
121
+ localMetaspace: metaspace,
122
+ localSpace: sourceSpace, // "Client"
123
+ receiverSpace: destSpace, // "Server"
124
+ receiverCoordinator,
125
+ receiverMetaspace: metaspace,
126
+ });
127
+ // #region r1 syncs
128
+ // 4. Run Sync (Source Pushes V2)
129
+ console.log(`${lc} Running Sync...`);
130
+ const resSync = await senderCoordinator.sync({
131
+ peer: peer,
132
+ localSpace: sourceSpace,
133
+ metaspace: metaspace,
134
+ domainIbGibs: [r1_alpha_v2_source],
135
+ senderIdentity: r1_senderIdentity_v0_source,
136
+ fnSenderSecret: async () => SENDER_SECRET,
137
+ });
138
+ await resSync.done;
139
+ // #endregion r1 syncs
140
+ // #region r1 verify post
141
+ await respecfully(sir, `r1 verify post`, async () => {
142
+ await ifWe(sir, `verify dest updated with V2 and links to V1`, async () => {
143
+ // Verify Tip (V2)
144
+ const getV2 = await getFromSpace({ space: destSpace, addr: r1_alpha_v2_source_addr });
145
+ iReckon(sir, getV2.success).asTo('V2 present in Dest').isGonnaBeTrue();
146
+ // Verify V2 points to V1
147
+ const v2IbGib = getV2.ibGibs[0];
148
+ const pastAddr = v2IbGib.rel8ns?.past?.at(-1);
149
+ iReckon(sir, pastAddr === getIbGibAddr({ ibGib: r1_alpha_v1_source })).asTo('V2 points to V1').isGonnaBeTrue();
150
+ });
151
+ await ifWe(sir, 'sessionIdentity evolved the expected number of times', async () => {
152
+ const latestS = peer.currentSessionIdentity;
153
+ iReckon(sir, latestS).asTo('latest session identity exists on peer').isGonnaBeTruthy();
154
+ if (latestS) {
155
+ iReckon(sir, latestS.data?.n).asTo('session identity data.n').isGonnaBe(2);
156
+ }
157
+ });
158
+ await ifWe(sir, 'sender durable space has I (evolved frame)', async () => {
159
+ const latestSenderIdentityAddr = await metaspace.getLatestAddr({
160
+ addr: getIbGibAddr({ ibGib: r1_senderIdentity_v0_source }),
161
+ space: sourceSpace,
162
+ });
163
+ iReckon(sir, latestSenderIdentityAddr).asTo('latestSenderIdentityAddr exists').isGonnaBeTruthy();
164
+ if (latestSenderIdentityAddr) {
165
+ const resGetSourceI = await getFromSpace({ space: sourceSpace, addr: latestSenderIdentityAddr });
166
+ iReckon(sir, resGetSourceI.success && resGetSourceI.ibGibs?.length === 1).asTo('evolved I exists in sourceSpace').isGonnaBeTrue();
167
+ if (resGetSourceI.success && resGetSourceI.ibGibs?.[0]) {
168
+ const evolvedI = resGetSourceI.ibGibs[0];
169
+ iReckon(sir, evolvedI.data?.n).asTo('evolved I data.n').isGonnaBe(1);
170
+ }
171
+ }
172
+ });
173
+ await ifWe(sir, 'receiver durable space has I (evolved frame)', async () => {
174
+ const latestSenderIdentityAddr = await metaspace.getLatestAddr({
175
+ addr: getIbGibAddr({ ibGib: r1_senderIdentity_v0_source }),
176
+ space: sourceSpace,
177
+ });
178
+ iReckon(sir, latestSenderIdentityAddr).asTo('latestSenderIdentityAddr exists').isGonnaBeTruthy();
179
+ if (latestSenderIdentityAddr) {
180
+ const resGetDestI = await getFromSpace({ space: destSpace, addr: latestSenderIdentityAddr });
181
+ iReckon(sir, resGetDestI.success && resGetDestI.ibGibs?.length === 1).asTo('evolved I exists in destSpace').isGonnaBeTrue();
182
+ if (resGetDestI.success && resGetDestI.ibGibs?.[0]) {
183
+ const evolvedI = resGetDestI.ibGibs[0];
184
+ iReckon(sir, evolvedI.data?.n).asTo('evolved I data.n').isGonnaBe(1);
185
+ }
186
+ }
187
+ });
188
+ await ifWe(sir, 'sender durable space has full S dep graph', async () => {
189
+ const latestS = peer.currentSessionIdentity;
190
+ iReckon(sir, latestS).asTo('latestS exists').isGonnaBeTruthy();
191
+ if (latestS) {
192
+ const depGraphS = await getDependencyGraph({ ibGib: latestS, space: sourceSpace });
193
+ const addrs = Object.keys(depGraphS);
194
+ iReckon(sir, addrs.length > 2).asTo('number of nodes in S graph > 2').isGonnaBeTrue();
195
+ }
196
+ });
197
+ await ifWe(sir, 'receiver durable space has full S dep graph', async () => {
198
+ const latestS = peer.currentSessionIdentity;
199
+ iReckon(sir, latestS).asTo('latestS exists').isGonnaBeTruthy();
200
+ if (latestS) {
201
+ const depGraphS = await getDependencyGraph({ ibGib: latestS, space: destSpace });
202
+ const addrs = Object.keys(depGraphS);
203
+ iReckon(sir, addrs.length > 2).asTo('number of nodes in S graph in destSpace > 2').isGonnaBeTrue();
204
+ }
205
+ });
206
+ });
207
+ // #endregion r1 verify post
208
+ });
209
+ // #endregion Round 1 - Sync Destination with Partial History
210
+ });
211
+ //# sourceMappingURL=sync-innerspace-partial-update.withid.respec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-innerspace-partial-update.withid.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-innerspace-partial-update.withid.respec.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module sync-innerspace.withid.respec
3
+ *
4
+ * Verifies SyncSagaCoordinator using InnerSpace (in-memory/local) spaces with Identity.
5
+ * This utilizes SyncPeerInnerspace_V1 for local-to-local synchronization simulations.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=sync-innerspace.withid.respec.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-innerspace.withid.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-innerspace.withid.respec.mts"],"names":[],"mappings":"AAAA;;;;;GAKG"}