@ibgib/core-gib 0.1.6 → 0.1.8

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 (47) hide show
  1. package/dist/keystone/keystone-config-builder.d.mts +77 -0
  2. package/dist/keystone/keystone-config-builder.d.mts.map +1 -0
  3. package/dist/keystone/keystone-config-builder.mjs +157 -0
  4. package/dist/keystone/keystone-config-builder.mjs.map +1 -0
  5. package/dist/keystone/keystone-constants.d.mts +36 -0
  6. package/dist/keystone/keystone-constants.d.mts.map +1 -0
  7. package/dist/keystone/keystone-constants.mjs +39 -0
  8. package/dist/keystone/keystone-constants.mjs.map +1 -0
  9. package/dist/keystone/keystone-helpers.d.mts +117 -0
  10. package/dist/keystone/keystone-helpers.d.mts.map +1 -0
  11. package/dist/keystone/keystone-helpers.mjs +455 -0
  12. package/dist/keystone/keystone-helpers.mjs.map +1 -0
  13. package/dist/keystone/keystone-service-v1.d.mts +77 -0
  14. package/dist/keystone/keystone-service-v1.d.mts.map +1 -0
  15. package/dist/keystone/keystone-service-v1.mjs +502 -0
  16. package/dist/keystone/keystone-service-v1.mjs.map +1 -0
  17. package/dist/keystone/keystone-service-v1.respec.d.mts +2 -0
  18. package/dist/keystone/keystone-service-v1.respec.d.mts.map +1 -0
  19. package/dist/keystone/keystone-service-v1.respec.mjs +460 -0
  20. package/dist/keystone/keystone-service-v1.respec.mjs.map +1 -0
  21. package/dist/keystone/keystone-types.d.mts +248 -0
  22. package/dist/keystone/keystone-types.d.mts.map +1 -0
  23. package/dist/keystone/keystone-types.mjs +50 -0
  24. package/dist/keystone/keystone-types.mjs.map +1 -0
  25. package/dist/keystone/strategy/hash-reveal-v1/hash-reveal-v1.d.mts +35 -0
  26. package/dist/keystone/strategy/hash-reveal-v1/hash-reveal-v1.d.mts.map +1 -0
  27. package/dist/keystone/strategy/hash-reveal-v1/hash-reveal-v1.mjs +107 -0
  28. package/dist/keystone/strategy/hash-reveal-v1/hash-reveal-v1.mjs.map +1 -0
  29. package/dist/keystone/strategy/keystone-strategy-factory.d.mts +15 -0
  30. package/dist/keystone/strategy/keystone-strategy-factory.d.mts.map +1 -0
  31. package/dist/keystone/strategy/keystone-strategy-factory.mjs +26 -0
  32. package/dist/keystone/strategy/keystone-strategy-factory.mjs.map +1 -0
  33. package/dist/keystone/strategy/keystone-strategy.d.mts +48 -0
  34. package/dist/keystone/strategy/keystone-strategy.d.mts.map +1 -0
  35. package/dist/keystone/strategy/keystone-strategy.mjs +14 -0
  36. package/dist/keystone/strategy/keystone-strategy.mjs.map +1 -0
  37. package/package.json +2 -1
  38. package/src/keystone/README.md +162 -0
  39. package/src/keystone/keystone-config-builder.mts +187 -0
  40. package/src/keystone/keystone-constants.mts +44 -0
  41. package/src/keystone/keystone-helpers.mts +571 -0
  42. package/src/keystone/keystone-service-v1.mts +611 -0
  43. package/src/keystone/keystone-service-v1.respec.mts +555 -0
  44. package/src/keystone/keystone-types.mts +315 -0
  45. package/src/keystone/strategy/hash-reveal-v1/hash-reveal-v1.mts +146 -0
  46. package/src/keystone/strategy/keystone-strategy-factory.mts +35 -0
  47. package/src/keystone/strategy/keystone-strategy.mts +71 -0
@@ -0,0 +1,502 @@
1
+ import { extractErrorMsg, hash, pretty } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
2
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
3
+ import { mut8 } from '@ibgib/ts-gib/dist/V1/transforms/mut8.mjs';
4
+ import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
5
+ import { getGib } from '@ibgib/ts-gib/dist/V1/transforms/transform-helper.mjs';
6
+ import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
7
+ import { KeystoneReplenishStrategy, KEYSTONE_REPLENISH_STRATEGY_VALID_VALUES, } from './keystone-types.mjs';
8
+ import { KeystoneStrategyFactory } from './strategy/keystone-strategy-factory.mjs';
9
+ import { KEYSTONE_ATOM, POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE } from './keystone-constants.mjs';
10
+ import { addToBindingMap, getDeterministicRequirements, getKeystoneIb, removeFromBindingMap, validateKeystoneTransition, } from './keystone-helpers.mjs';
11
+ const logalot = GLOBAL_LOG_A_LOT || true;
12
+ /**
13
+ * Facade for managing Keystone Identities.
14
+ *
15
+ * Handles Genesis, Authorized Evolution (Signing), and Validation.
16
+ */
17
+ export class KeystoneService_V1 {
18
+ lc = `[${KeystoneService_V1.name}]`;
19
+ /**
20
+ * Creates a brand new Keystone Identity Timeline.
21
+ */
22
+ async genesis({ masterSecret, configs, metaspace, space, }) {
23
+ const lc = `${this.lc}[${this.genesis.name}]`;
24
+ try {
25
+ if (logalot) {
26
+ console.log(`${lc} starting... (I: c98ae8adbc5888dbf84c5aced7610b25)`);
27
+ }
28
+ const challengePools = [];
29
+ for (const config of configs) {
30
+ const strategy = KeystoneStrategyFactory.create({ config });
31
+ const poolSecret = await strategy.derivePoolSecret({ masterSecret });
32
+ const challenges = {};
33
+ const bindingMap = {};
34
+ const targetSize = config.behavior.size;
35
+ const timestamp = Date.now().toString();
36
+ for (let i = 0; i < targetSize; i++) {
37
+ const challengeId = await this.generateOpaqueChallengeId({
38
+ salt: config.salt, timestamp, index: i
39
+ });
40
+ const solution = await strategy.generateSolution({
41
+ poolSecret, poolId: config.salt, challengeId,
42
+ });
43
+ const challenge = await strategy.generateChallenge({ solution });
44
+ challenges[challengeId] = challenge;
45
+ // Populate Binding Map
46
+ addToBindingMap(bindingMap, challengeId);
47
+ }
48
+ challengePools.push({
49
+ id: config.salt,
50
+ config,
51
+ challenges,
52
+ bindingMap
53
+ });
54
+ }
55
+ const data = { challengePools, proofs: [] };
56
+ const keystoneIbGib = await this.createKeystoneIbGibImpl({ data, metaspace, space });
57
+ return keystoneIbGib;
58
+ }
59
+ catch (error) {
60
+ console.error(`${lc} ${extractErrorMsg(error)}`);
61
+ throw error;
62
+ }
63
+ finally {
64
+ if (logalot) {
65
+ console.log(`${lc} complete.`);
66
+ }
67
+ }
68
+ }
69
+ /**
70
+ * Signs a claim using a hybrid selection strategy.
71
+ * Supports: Mandatory IDs (Alice) + Sequential (FIFO) + Random (Stochastic).
72
+ */
73
+ async sign({ latestKeystone, masterSecret, claim, poolId, requiredChallengeIds = [], frameDetails, metaspace, space, }) {
74
+ const lc = `${this.lc}[${this.sign.name}]`;
75
+ try {
76
+ if (logalot) {
77
+ console.log(`${lc} starting... (I: 519e0810cce8647ce83bdb3b5019a825)`);
78
+ }
79
+ const prevData = latestKeystone.data;
80
+ if (prevData.revocationInfo) {
81
+ throw new Error(`keystone has been revoked (latestKeystone.data.revocationInfo is truthy). (E: 4f2198c39116d15c48ba191940316825)`);
82
+ }
83
+ let pool;
84
+ const poolsToSearch = prevData.challengePools;
85
+ if (logalot) {
86
+ console.log(`${lc} Searching pools: ${poolsToSearch.map(p => p.id).join(', ')} for target: ${poolId || 'auto'}`);
87
+ }
88
+ // ---------------------------------------------------------------
89
+ // 0. POOL RESOLUTION (Deterministic Mapping)
90
+ // ---------------------------------------------------------------
91
+ if (poolId) {
92
+ // Explicit selection
93
+ pool = poolsToSearch.find(p => p.id === poolId);
94
+ if (!pool) {
95
+ throw new Error(`Pool not found: ${poolId} (E: genuuid)`);
96
+ }
97
+ // Enforce Policy on Explicit Selection
98
+ // FIX: Check length > 0. If empty, it's a default pool (allow all).
99
+ if (pool.config.allowedVerbs && pool.config.allowedVerbs.length > 0 && claim.verb) {
100
+ if (!pool.config.allowedVerbs.includes(claim.verb)) {
101
+ throw new Error(`Pool ${poolId} is not authorized for verb: ${claim.verb} (E: genuuid)`);
102
+ }
103
+ }
104
+ }
105
+ else {
106
+ // Automatic Resolution based on Verb
107
+ if (!claim.verb) {
108
+ throw new Error(`Cannot auto-resolve pool without a verb in the claim. (E: genuuid)`);
109
+ }
110
+ // 1. Look for Specific Match
111
+ pool = poolsToSearch.find(p => p.config.allowedVerbs && p.config.allowedVerbs.includes(claim.verb));
112
+ // 2. Look for General/Default (No restrictions)
113
+ if (!pool) {
114
+ pool = poolsToSearch.find(p => !p.config.allowedVerbs || p.config.allowedVerbs.length === 0);
115
+ }
116
+ if (!pool) {
117
+ throw new Error(`No suitable pool found for verb: ${claim.verb} (E: genuuid)`);
118
+ }
119
+ }
120
+ // 1. Get Deterministic Requirements (Demands -> Binding -> FIFO)
121
+ const { mandatoryIds, availableIds } = getDeterministicRequirements({
122
+ pool,
123
+ requiredChallengeIds,
124
+ targetAddr: claim.target
125
+ });
126
+ // 2. Stochastic Selection
127
+ const randomCount = pool.config.behavior.selectRandomly;
128
+ const randomIds = [];
129
+ if (logalot) {
130
+ console.log(`${lc} Pool Info: id=${pool.id} invalid=${!pool} size=${Object.keys(pool.challenges || {}).length}`);
131
+ console.log(`${lc} Behavior: seq=${pool.config.behavior.selectSequentially} rand=${randomCount} binding=${pool.config.behavior.targetBindingChars}`);
132
+ console.log(`${lc} Requirements: mandatory=${mandatoryIds.size} available=${availableIds.length}`);
133
+ }
134
+ if (randomCount > 0) {
135
+ if (availableIds.length < randomCount) {
136
+ throw new Error(`Insufficient challenges for random requirement. Need ${randomCount}, have ${availableIds.length}`);
137
+ }
138
+ // Shuffle & Pick
139
+ const shuffled = availableIds.sort(() => 0.5 - Math.random());
140
+ randomIds.push(...shuffled.slice(0, randomCount));
141
+ }
142
+ // 3. Combine & Solve
143
+ const finalSelectedIds = [...mandatoryIds, ...randomIds];
144
+ const strategy = KeystoneStrategyFactory.create({ config: pool.config });
145
+ const secretToUse = masterSecret;
146
+ const poolSecret = await strategy.derivePoolSecret({ masterSecret: secretToUse });
147
+ const solutions = [];
148
+ for (const id of finalSelectedIds) {
149
+ const solution = await strategy.generateSolution({
150
+ poolSecret, poolId: pool.id, challengeId: id,
151
+ });
152
+ solutions.push(solution);
153
+ }
154
+ // 4. Replenish
155
+ const nextPools = await this.applyReplenishmentStrategy({
156
+ prevPools: poolsToSearch,
157
+ targetPoolId: pool.id,
158
+ consumedIds: finalSelectedIds,
159
+ masterSecret: secretToUse,
160
+ strategy,
161
+ config: pool.config
162
+ });
163
+ // 5. Build Proof (Include requiredChallengeIds!)
164
+ const proof = {
165
+ claim,
166
+ solutions,
167
+ requiredChallengeIds: requiredChallengeIds.length > 0 ? requiredChallengeIds : undefined
168
+ };
169
+ const newData = {
170
+ challengePools: nextPools,
171
+ proofs: [proof],
172
+ frameDetails,
173
+ };
174
+ const newIbGib = await this.evolveKeystoneIbGibImpl({ prevIbGib: latestKeystone, newData, metaspace, space });
175
+ return newIbGib;
176
+ }
177
+ catch (error) {
178
+ console.error(`${lc} ${extractErrorMsg(error)}`);
179
+ throw error;
180
+ }
181
+ finally {
182
+ if (logalot) {
183
+ console.log(`${lc} complete.`);
184
+ }
185
+ }
186
+ }
187
+ /**
188
+ * Validates a keystone.
189
+ *
190
+ * ## NOTES
191
+ *
192
+ * Atow (12/22/2025) this only validates the transition from Prev -> Curr.
193
+ *
194
+ * @returns Array of validation error strings. Empty array means Valid.
195
+ *
196
+ * @see {@link validateKeystoneTransition}
197
+ */
198
+ async validate({ currentIbGib, prevIbGib, }) {
199
+ // todo: change this to validate the entire keystone graph. the next
200
+ // step is to walk the history and validate each transition.
201
+ const errors = await validateKeystoneTransition({ currentIbGib, prevIbGib });
202
+ return errors;
203
+ }
204
+ /**
205
+ * Permanently revokes the Identity.
206
+ *
207
+ * Logic:
208
+ * 1. Locates the 'revoke' pool.
209
+ * 2. Consumes ALL available challenges in that pool (Scorched Earth).
210
+ * 3. Sets the revocationInfo on the new frame.
211
+ */
212
+ async revoke({ latestKeystone, masterSecret, reason = "User initiated revocation", frameDetails, metaspace, space, }) {
213
+ const lc = `${this.lc}[${this.revoke.name}]`;
214
+ try {
215
+ const prevData = latestKeystone.data;
216
+ space ??= await metaspace.getLocalUserSpace({ lock: false });
217
+ if (!space) {
218
+ throw new Error(`(UNEXPECTED) space falsy and couldn't get default local user space from the metaspace? (E: 73c8bfc0e7383a540ea1d6b14b020125)`);
219
+ }
220
+ // 1. Find Revocation Pool
221
+ const pool = prevData.challengePools.find(p => p.id === POOL_ID_REVOKE);
222
+ if (!pool) {
223
+ throw new Error(`Revocation pool not found (E: 8c4f18c5461c1d601283108878c79825)`);
224
+ }
225
+ // 2. Select Challenges (Standard Policy, NOT ALL)
226
+ const claim = {
227
+ verb: KEYSTONE_VERB_REVOKE,
228
+ target: getIbGibAddr({ ibGib: latestKeystone })
229
+ };
230
+ const { mandatoryIds, availableIds } = getDeterministicRequirements({
231
+ pool,
232
+ requiredChallengeIds: [], // Revocation usually doesn't have external demands
233
+ targetAddr: claim.target
234
+ });
235
+ // Stochastic Selection
236
+ const randomCount = pool.config.behavior.selectRandomly;
237
+ const randomIds = [];
238
+ if (randomCount > 0) {
239
+ if (availableIds.length < randomCount) {
240
+ throw new Error(`Insufficient challenges. availableIds.length (${availableIds.length}) is less than required random count (${randomCount}) (E: b2e3570ab998dfdbab5fbdda1e43d825)`);
241
+ }
242
+ const shuffled = availableIds.sort(() => 0.5 - Math.random());
243
+ randomIds.push(...shuffled.slice(0, randomCount));
244
+ }
245
+ const selectedIds = [...mandatoryIds, ...randomIds];
246
+ if (selectedIds.length === 0) {
247
+ throw new Error(`Revocation policy selected 0 challenges? Check config for pool. id: ${pool.id}. pool.config: ${pretty(pool.config)} (E: 97e5a8356d241ae7b882db791cb1f825)`);
248
+ }
249
+ // 3. Solve Selected
250
+ const strategy = KeystoneStrategyFactory.create({ config: pool.config });
251
+ const poolSecret = await strategy.derivePoolSecret({ masterSecret });
252
+ const solutions = [];
253
+ for (const id of selectedIds) {
254
+ const solution = await strategy.generateSolution({
255
+ poolSecret, poolId: pool.id, challengeId: id,
256
+ });
257
+ solutions.push(solution);
258
+ }
259
+ // 4. Replenish (Scorched Earth)
260
+ const nextPools = await this.applyReplenishmentStrategy({
261
+ prevPools: prevData.challengePools,
262
+ targetPoolId: pool.id,
263
+ consumedIds: selectedIds,
264
+ masterSecret,
265
+ strategy,
266
+ config: pool.config
267
+ });
268
+ // 5. Construct Proof
269
+ const proof = {
270
+ claim,
271
+ solutions,
272
+ };
273
+ const revocationInfo = { reason, proof };
274
+ const newData = {
275
+ challengePools: nextPools,
276
+ proofs: [proof],
277
+ revocationInfo,
278
+ frameDetails
279
+ };
280
+ return await this.evolveKeystoneIbGibImpl({
281
+ prevIbGib: latestKeystone,
282
+ newData,
283
+ metaspace,
284
+ space,
285
+ });
286
+ }
287
+ catch (error) {
288
+ console.error(`${lc} ${extractErrorMsg(error)}`);
289
+ throw error;
290
+ }
291
+ finally {
292
+ if (logalot) {
293
+ console.log(`${lc} complete.`);
294
+ }
295
+ }
296
+ }
297
+ /**
298
+ * Generates an opaque, collision-resistant ID for a challenge.
299
+ * atow (2025/12/22) - Hash(Salt + Timestamp + Index)
300
+ */
301
+ async generateOpaqueChallengeId({ salt, timestamp, index }) {
302
+ // Use full SHA-256 hash, or slice it?
303
+ // User suggested substring is fine for pool uniqueness.
304
+ // Let's use first 16 chars of hex (64 bits) for brevity + safety.
305
+ const raw = await hash({ s: `${salt}${timestamp}${index}` });
306
+ return raw.substring(0, 16);
307
+ }
308
+ async applyReplenishmentStrategy({ prevPools, targetPoolId, consumedIds, masterSecret, strategy, config }) {
309
+ const newPools = JSON.parse(JSON.stringify(prevPools));
310
+ if (logalot) {
311
+ console.log(`[applyReplenishmentStrategy] Cloned pools. Ref check: ${prevPools === newPools} (should be false)`);
312
+ }
313
+ const targetIdx = newPools.findIndex((p) => p.id === targetPoolId);
314
+ if (targetIdx === -1) {
315
+ throw new Error(`Target pool ${targetPoolId} not found in keytstone data. (E: 75200388d22744838634524233772545)`);
316
+ }
317
+ const pool = newPools[targetIdx];
318
+ const poolSecret = await strategy.derivePoolSecret({ masterSecret });
319
+ const timestamp = Date.now().toString();
320
+ const strategyType = config.behavior.replenish;
321
+ // Clean up Binding Map for consumed IDs
322
+ consumedIds.forEach(id => {
323
+ if (pool.bindingMap) {
324
+ removeFromBindingMap(pool.bindingMap, id);
325
+ }
326
+ });
327
+ if (strategyType === KeystoneReplenishStrategy.topUp) {
328
+ // Remove consumed
329
+ consumedIds.forEach(id => delete pool.challenges[id]);
330
+ // Add New
331
+ for (let i = 0; i < consumedIds.length; i++) {
332
+ const newId = await this.generateOpaqueChallengeId({
333
+ salt: config.salt, timestamp, index: i
334
+ });
335
+ const solution = await strategy.generateSolution({
336
+ poolSecret, poolId: pool.id, challengeId: newId
337
+ });
338
+ pool.challenges[newId] = await strategy.generateChallenge({ solution });
339
+ // Update Binding Map
340
+ if (!pool.bindingMap) {
341
+ pool.bindingMap = {};
342
+ }
343
+ addToBindingMap(pool.bindingMap, newId);
344
+ }
345
+ }
346
+ else if (strategyType === KeystoneReplenishStrategy.replaceAll) {
347
+ pool.challenges = {};
348
+ pool.bindingMap = {};
349
+ for (let i = 0; i < config.behavior.size; i++) {
350
+ const newId = await this.generateOpaqueChallengeId({
351
+ salt: config.salt, timestamp, index: i
352
+ });
353
+ const solution = await strategy.generateSolution({
354
+ poolSecret, poolId: pool.id, challengeId: newId
355
+ });
356
+ pool.challenges[newId] = await strategy.generateChallenge({ solution });
357
+ addToBindingMap(pool.bindingMap, newId);
358
+ }
359
+ }
360
+ else if (strategyType === KeystoneReplenishStrategy.consume) {
361
+ consumedIds.forEach(id => delete pool.challenges[id]);
362
+ }
363
+ else if (strategyType === KeystoneReplenishStrategy.scorchedEarth) {
364
+ pool.challenges = {};
365
+ pool.bindingMap = {};
366
+ }
367
+ else {
368
+ throw new Error(`Unknown replenish strategy: ${strategyType}. Valid list: ${pretty(KEYSTONE_REPLENISH_STRATEGY_VALID_VALUES)} (E: 0acf56f1e1486240080e11e8046d0825)`);
369
+ }
370
+ return newPools;
371
+ }
372
+ /**
373
+ * Creates a new keystone ibgib that has no dna and no past.
374
+ */
375
+ async createKeystoneIbGibImpl({ data, metaspace, space, }) {
376
+ const lc = `${this.lc}[${this.createKeystoneIbGibImpl.name}]`;
377
+ try {
378
+ if (logalot) {
379
+ console.log(`${lc} starting... (I: 5e32389700e9899e788cbefacef7c825)`);
380
+ }
381
+ space ??= await metaspace.getLocalUserSpace({ lock: false });
382
+ if (!space) {
383
+ throw new Error(`(UNEXPECTED) space was falsy and we couldn't get default local user space from metaspace? (E: 9a6498cf16a8801f19ec376749742225)`);
384
+ }
385
+ // create the actual keystoneIbGib
386
+ const resFirstGen = await Factory_V1.firstGen({
387
+ parentIbGib: Factory_V1.primitive({ ib: KEYSTONE_ATOM }),
388
+ ib: await getKeystoneIb({ keystoneData: data }),
389
+ data,
390
+ dna: false,
391
+ nCounter: true,
392
+ tjp: {
393
+ timestamp: true,
394
+ uuid: true,
395
+ },
396
+ });
397
+ const keystoneIbGib = resFirstGen.newIbGib;
398
+ if (!keystoneIbGib.data) {
399
+ throw new Error(`(UNEXPECTED) keystoneIbGib.data falsy? We expect the data to be populated with real keystone data. (E: 38a358facdb89d16d81d48c8520d3d25)`);
400
+ }
401
+ if (!keystoneIbGib.rel8ns) {
402
+ throw new Error(`(UNEXPECTED) keystoneIbGib.rel8ns falsy? we expect the rel8ns to have ancestor and past. (E: 20cb7723dc33ae1ef808fe76d1bf4b25)`);
403
+ }
404
+ if (!keystoneIbGib.rel8ns.past || keystoneIbGib.rel8ns.past.length === 0) {
405
+ throw new Error(`(UNEXPECTED) keystoneIbGib.rel8ns.past falsy or empty? we expect the firstGen call to generate an interstitial ibgib that we will splice out. (E: 0fd8388d045ab9f37834c27d67e78825)`);
406
+ }
407
+ // reset n
408
+ keystoneIbGib.data.n = 0;
409
+ // reset tjp
410
+ keystoneIbGib.data.isTjp = true;
411
+ delete keystoneIbGib.rel8ns.tjp;
412
+ // reset past
413
+ delete keystoneIbGib.rel8ns.past;
414
+ // recalculate gib
415
+ keystoneIbGib.gib = await getGib({ ibGib: keystoneIbGib });
416
+ // save and register
417
+ await metaspace.put({ ibGib: keystoneIbGib, space, });
418
+ await metaspace.registerNewIbGib({ ibGib: keystoneIbGib, space, });
419
+ return keystoneIbGib;
420
+ }
421
+ catch (error) {
422
+ console.error(`${lc} ${extractErrorMsg(error)}`);
423
+ throw error;
424
+ }
425
+ finally {
426
+ if (logalot) {
427
+ console.log(`${lc} complete.`);
428
+ }
429
+ }
430
+ }
431
+ async evolveKeystoneIbGibImpl({ prevIbGib, newData, metaspace, space, }) {
432
+ const lc = `${this.lc}[${this.evolveKeystoneIbGibImpl.name}]`;
433
+ try {
434
+ if (logalot) {
435
+ console.log(`${lc} starting... (I: 8b10e8920f08b7842803665834cf8925)`);
436
+ }
437
+ if (!prevIbGib.data) {
438
+ throw new Error(`(UNEXPECTED) prevIbGib.data falsy? (E: 5e84875bf992c585b979e6c8ed5bf225)`);
439
+ }
440
+ if (prevIbGib.data.revocationInfo) {
441
+ throw new Error(`Keystone has already been revoked (prevIbGib.data.revocationInfo truthy), so we cannot evolve the keystone. Keystone addr: ${getIbGibAddr({ ibGib: prevIbGib })} (E: 45d7f846556829de6b2a701838c3f825)`);
442
+ }
443
+ const prevData = prevIbGib.data;
444
+ /**
445
+ * we want to completely replace these keys, so we will remove them
446
+ * from the data. This occurs first in the underlying mut8
447
+ * transform.
448
+ * @see {@link mut8}
449
+ */
450
+ let dataToRemove = {};
451
+ if (prevData.proofs) {
452
+ dataToRemove.proofs = [];
453
+ }
454
+ if (prevData.challengePools) {
455
+ dataToRemove.challengePools = [];
456
+ }
457
+ if (prevData.frameDetails) {
458
+ dataToRemove.frameDetails = {};
459
+ }
460
+ if (Object.keys(dataToRemove).length === 0) {
461
+ dataToRemove = undefined;
462
+ }
463
+ const resMut8 = await mut8({
464
+ src: prevIbGib,
465
+ dataToRemove,
466
+ dataToAddOrPatch: newData,
467
+ // dna: false, // explicitly set to false just to show
468
+ nCounter: true,
469
+ });
470
+ if (!!resMut8.intermediateIbGibs) {
471
+ throw new Error(`(UNEXPECTED) resMut8.intermediateIbGibs truthy? I'm not sure if we expect there to be intermediateIbGibs, but I feel like we shouldn't. Pretty sure we shouldn't, definitely don't *want* them. (E: ba40d55d7c2d36d438c413886f148625)`);
472
+ }
473
+ if (!!resMut8.dnas) {
474
+ throw new Error(`(UNEXPECTED) resMut8.dnas truthy? We do not want dnas with keystones. (E: 49470513d018f97d28024f4e82da3b25)`);
475
+ }
476
+ const newKeystoneIbGib = resMut8.newIbGib;
477
+ // run validation here
478
+ const errors = await this.validate({
479
+ currentIbGib: newKeystoneIbGib,
480
+ prevIbGib,
481
+ });
482
+ if (errors.length > 0) {
483
+ console.error(`${lc} Validation Failed:\n${errors.join('\n')}`);
484
+ throw new Error(`(UNEXPECTED) invalid keystone after we just evolved it? Errors: ${errors.join('; ')} (E: ae2c58406c1db7687879dfb89fc1f825)`);
485
+ }
486
+ // save and register
487
+ await metaspace.put({ ibGib: newKeystoneIbGib, space, });
488
+ await metaspace.registerNewIbGib({ ibGib: newKeystoneIbGib, space, });
489
+ return newKeystoneIbGib;
490
+ }
491
+ catch (error) {
492
+ console.error(`${lc} ${extractErrorMsg(error)}`);
493
+ throw error;
494
+ }
495
+ finally {
496
+ if (logalot) {
497
+ console.log(`${lc} complete.`);
498
+ }
499
+ }
500
+ }
501
+ }
502
+ //# sourceMappingURL=keystone-service-v1.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keystone-service-v1.mjs","sourceRoot":"","sources":["../../src/keystone/keystone-service-v1.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keystone-service-v1.respec.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keystone-service-v1.respec.d.mts","sourceRoot":"","sources":["../../src/keystone/keystone-service-v1.respec.mts"],"names":[],"mappings":""}