@fnndsc/cumin 3.15.1 → 3.16.1

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.
@@ -1,15 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROC_CHECKPOINT_FLOOR_MS = void 0;
3
4
  exports.procCheckpointPath_get = procCheckpointPath_get;
5
+ exports.procCheckpointDir_get = procCheckpointDir_get;
4
6
  exports.procCheckpoint_restore = procCheckpoint_restore;
7
+ exports.procCheckpointRoster_save = procCheckpointRoster_save;
8
+ exports.procCheckpointFeed_save = procCheckpointFeed_save;
5
9
  exports.procCheckpoint_save = procCheckpoint_save;
6
10
  exports.procCheckpoint_watch = procCheckpoint_watch;
7
11
  /**
8
12
  * @file Persistent checkpoints for the daemon process index.
9
13
  *
10
- * Serializes persistence-safe {@link ProcCacheSnapshot} values to an
11
- * identity-keyed, mode-0600 file and validates the complete snapshot before
12
- * replacing live cache state. Saves use same-directory atomic renames.
14
+ * The checkpoint is a directory of shards under an identity-keyed,
15
+ * mode-0700 folder: `roster.json` (the feed index) and one `feed-<id>.json`
16
+ * per feed that holds topology. A mutation to one feed rewrites one shard,
17
+ * so a growing 80k-node feed never drags the whole index back to disk, and
18
+ * a torn write can damage at most one feed. Every file is mode 0600 and
19
+ * written with a same-directory atomic rename.
20
+ *
21
+ * Restore reads the roster and every shard, assembles one snapshot, and
22
+ * validates it whole before replacing live cache state — a shard whose feed
23
+ * is not in the roster is an orphan and is ignored. A legacy single-file v2
24
+ * checkpoint is read once and migrated into shards.
25
+ *
26
+ * The watcher persists what changed, throttled per shard: a shard is
27
+ * written no more than once per {@link PROC_CHECKPOINT_FLOOR_MS}, and never
28
+ * later than that after its first pending mutation.
13
29
  *
14
30
  * @module
15
31
  */
@@ -18,26 +34,47 @@ const fs_1 = require("fs");
18
34
  const os_1 = require("os");
19
35
  const path_1 = require("path");
20
36
  const procCache_1 = require("./procCache");
21
- // v2: instances carry execution metrics (startedAt/finishedAt/outputBytes).
22
- // The bump is deliberate: metrics ride the warmup's list rows, and settled
23
- // feeds never re-page — a v1 checkpoint would never backfill them. One
24
- // fresh warmup repopulates with metrics, then the checkpoint carries them.
25
- const PROC_CHECKPOINT_SCHEMA = 2;
37
+ const errorStack_1 = require("../error/errorStack");
38
+ // v3: per-feed shards. v2 (one file, instances with metrics) is still read
39
+ // for migration; v1 never carried metrics and is not read.
40
+ const PROC_CHECKPOINT_SCHEMA = 3;
41
+ const LEGACY_CHECKPOINT_SCHEMA = 2;
42
+ const ROSTER_FILE = 'roster.json';
43
+ const SHARD_PATTERN = /^feed-(\d+)\.json$/;
44
+ /** Minimum spacing between two writes of the same shard. */
45
+ exports.PROC_CHECKPOINT_FLOOR_MS = 30 * 1000;
26
46
  /** Returns the default directory for persistent process-cache files. */
27
47
  function procCheckpointRoot_get() {
28
48
  const cacheHome = process.env.XDG_CACHE_HOME ?? (0, path_1.join)((0, os_1.homedir)(), '.cache');
29
49
  return (0, path_1.join)(cacheHome, 'chell', 'proc');
30
50
  }
51
+ /** Hashes an identity into a short, non-revealing directory key. */
52
+ function identityKey_get(identity) {
53
+ return (0, crypto_1.createHash)('sha256').update(identity).digest('hex').slice(0, 16);
54
+ }
31
55
  /**
32
- * Builds the identity-keyed checkpoint path without exposing the identity.
56
+ * Builds the legacy (v2, single-file) checkpoint path for an identity.
33
57
  *
34
58
  * @param identity - Canonical ChRIS identity string.
35
59
  * @param root - Checkpoint directory override.
36
- * @returns Versioned checkpoint path.
60
+ * @returns The v2 file path, read only for migration.
37
61
  */
38
62
  function procCheckpointPath_get(identity, root = procCheckpointRoot_get()) {
39
- const key = (0, crypto_1.createHash)('sha256').update(identity).digest('hex').slice(0, 16);
40
- return (0, path_1.join)(root, `proc-${key}-v${PROC_CHECKPOINT_SCHEMA}.json`);
63
+ return (0, path_1.join)(root, `proc-${identityKey_get(identity)}-v${LEGACY_CHECKPOINT_SCHEMA}.json`);
64
+ }
65
+ /**
66
+ * Builds the identity-keyed checkpoint directory without exposing the identity.
67
+ *
68
+ * @param identity - Canonical ChRIS identity string.
69
+ * @param root - Checkpoint directory override.
70
+ * @returns The directory holding `roster.json` and the feed shards.
71
+ */
72
+ function procCheckpointDir_get(identity, root = procCheckpointRoot_get()) {
73
+ return (0, path_1.join)(root, identityKey_get(identity));
74
+ }
75
+ /** Path of one feed's shard inside a checkpoint directory. */
76
+ function shardPath_get(dir, feedID) {
77
+ return (0, path_1.join)(dir, `feed-${feedID}.json`);
41
78
  }
42
79
  /** Reports whether a value is a finite integer. */
43
80
  function integer_check(value) {
@@ -134,92 +171,299 @@ function procCacheSnapshot_check(value) {
134
171
  }
135
172
  return true;
136
173
  }
137
- /** Reports whether parsed JSON is a compatible checkpoint for an identity. */
138
- function procCheckpointFile_check(value, identity) {
174
+ /** Shared header checks for any checkpoint file of the current schema. */
175
+ function header_check(value, identity) {
139
176
  if (!value || typeof value !== 'object')
140
177
  return false;
141
178
  const file = value;
142
179
  return file.schemaVersion === PROC_CHECKPOINT_SCHEMA &&
180
+ file.identity === identity &&
181
+ typeof file.writtenAt === 'string' &&
182
+ !Number.isNaN(Date.parse(file.writtenAt));
183
+ }
184
+ /** Reports whether parsed JSON is a compatible roster file for an identity. */
185
+ function rosterFile_check(value, identity) {
186
+ return header_check(value, identity) && Array.isArray(value.feeds);
187
+ }
188
+ /** Reports whether parsed JSON is a compatible shard file for an identity. */
189
+ function shardFile_check(value, identity) {
190
+ if (!header_check(value, identity))
191
+ return false;
192
+ const file = value;
193
+ return integer_check(file.feedID) && typeof file.loaded === 'boolean' && Array.isArray(file.instances);
194
+ }
195
+ /** Reports whether parsed JSON is a compatible legacy (v2) checkpoint for an identity. */
196
+ function legacyFile_check(value, identity) {
197
+ if (!value || typeof value !== 'object')
198
+ return false;
199
+ const file = value;
200
+ return file.schemaVersion === LEGACY_CHECKPOINT_SCHEMA &&
143
201
  file.identity === identity &&
144
202
  typeof file.writtenAt === 'string' &&
145
203
  !Number.isNaN(Date.parse(file.writtenAt)) &&
146
204
  procCacheSnapshot_check(file.snapshot);
147
205
  }
206
+ /** Reads and parses one JSON file; null when it does not exist. */
207
+ async function json_read(path) {
208
+ try {
209
+ return JSON.parse(await fs_1.promises.readFile(path, 'utf8'));
210
+ }
211
+ catch (error) {
212
+ if (error.code === 'ENOENT')
213
+ return null;
214
+ throw error;
215
+ }
216
+ }
217
+ /** Writes one mode-0600 JSON file through a same-directory atomic rename. */
218
+ async function json_write(path, value) {
219
+ const temporaryPath = `${path}.${process.pid}-${(0, crypto_1.randomUUID)()}.tmp`;
220
+ await fs_1.promises.writeFile(temporaryPath, `${JSON.stringify(value)}\n`, { encoding: 'utf8', mode: 0o600 });
221
+ await fs_1.promises.rename(temporaryPath, path);
222
+ await fs_1.promises.chmod(path, 0o600);
223
+ }
224
+ /** Ensures the checkpoint directory exists, private to the user. */
225
+ async function dir_ensure(dir) {
226
+ await fs_1.promises.mkdir(dir, { recursive: true, mode: 0o700 });
227
+ await fs_1.promises.chmod((0, path_1.dirname)(dir), 0o700);
228
+ await fs_1.promises.chmod(dir, 0o700);
229
+ }
230
+ /**
231
+ * Assembles the sharded checkpoint into one snapshot. Shards whose feed is
232
+ * absent from the roster are orphans (a feed removed after its shard was
233
+ * written) and are skipped; a shard that fails its own header check is
234
+ * skipped too, so one bad file costs one feed, not the checkpoint.
235
+ *
236
+ * @param dir - The checkpoint directory.
237
+ * @param identity - Canonical ChRIS identity string.
238
+ * @returns The assembled snapshot with its roster's write time, or null
239
+ * when there is no roster.
240
+ */
241
+ async function shards_assemble(dir, identity) {
242
+ const roster = await json_read((0, path_1.join)(dir, ROSTER_FILE));
243
+ if (roster === null)
244
+ return null;
245
+ if (!rosterFile_check(roster, identity))
246
+ throw new Error('incompatible checkpoint');
247
+ if (!roster.feeds.every(procFeed_check))
248
+ throw new Error('incompatible checkpoint');
249
+ const feedIDs = new Set(roster.feeds.map((feed) => feed.id));
250
+ const snapshot = { feeds: roster.feeds, instances: [], topologyLoaded: [] };
251
+ let skipped = 0;
252
+ for (const name of await fs_1.promises.readdir(dir)) {
253
+ const match = SHARD_PATTERN.exec(name);
254
+ if (!match)
255
+ continue;
256
+ const feedID = Number(match[1]);
257
+ if (!feedIDs.has(feedID)) {
258
+ skipped++;
259
+ continue;
260
+ }
261
+ const shard = await json_read((0, path_1.join)(dir, name));
262
+ if (!shardFile_check(shard, identity) || shard.feedID !== feedID) {
263
+ skipped++;
264
+ continue;
265
+ }
266
+ snapshot.instances.push(...shard.instances);
267
+ if (shard.loaded)
268
+ snapshot.topologyLoaded.push(feedID);
269
+ }
270
+ if (skipped > 0) {
271
+ errorStack_1.errorStack.stack_push('warning', `proc checkpoint: ${skipped} feed shard(s) skipped (orphaned or unreadable)`);
272
+ }
273
+ return { snapshot, writtenAt: roster.writtenAt };
274
+ }
148
275
  /**
149
276
  * Restores a matching, fully validated checkpoint into the process cache.
277
+ * A sharded (v3) checkpoint is preferred; failing that, a legacy single-file
278
+ * v2 checkpoint is restored and migrated into shards.
150
279
  *
151
280
  * @param identity - Canonical ChRIS identity string.
152
281
  * @param root - Checkpoint directory override.
153
282
  * @returns Restoration outcome without throwing for absent or invalid files.
154
283
  */
155
284
  async function procCheckpoint_restore(identity, root = procCheckpointRoot_get()) {
285
+ const dir = procCheckpointDir_get(identity, root);
156
286
  try {
157
- const raw = await fs_1.promises.readFile(procCheckpointPath_get(identity, root), 'utf8');
158
- const parsed = JSON.parse(raw);
159
- if (!procCheckpointFile_check(parsed, identity)) {
287
+ const assembled = await shards_assemble(dir, identity);
288
+ if (assembled) {
289
+ if (!procCacheSnapshot_check(assembled.snapshot)) {
290
+ return { restored: false, count: 0, reason: 'incompatible checkpoint' };
291
+ }
292
+ (0, procCache_1.procCache_get)().snapshot_restore(assembled.snapshot, assembled.writtenAt);
293
+ return { restored: true, count: assembled.snapshot.instances.length, writtenAt: assembled.writtenAt };
294
+ }
295
+ const legacy = await json_read(procCheckpointPath_get(identity, root));
296
+ if (legacy === null)
297
+ return { restored: false, count: 0, reason: 'no checkpoint' };
298
+ if (!legacyFile_check(legacy, identity)) {
160
299
  return { restored: false, count: 0, reason: 'incompatible checkpoint' };
161
300
  }
162
- (0, procCache_1.procCache_get)().snapshot_restore(parsed.snapshot, parsed.writtenAt);
163
- return { restored: true, count: parsed.snapshot.instances.length, writtenAt: parsed.writtenAt };
301
+ (0, procCache_1.procCache_get)().snapshot_restore(legacy.snapshot, legacy.writtenAt);
302
+ await procCheckpoint_save(identity, root);
303
+ return { restored: true, count: legacy.snapshot.instances.length, writtenAt: legacy.writtenAt, migrated: true };
164
304
  }
165
305
  catch (error) {
166
- const code = error.code;
167
306
  return {
168
307
  restored: false,
169
308
  count: 0,
170
- reason: code === 'ENOENT' ? 'no checkpoint' : (error instanceof Error ? error.message : String(error)),
309
+ reason: error instanceof Error ? error.message : String(error),
171
310
  };
172
311
  }
173
312
  }
174
313
  /**
175
- * Atomically saves the current persistence-safe process-cache snapshot.
314
+ * Whether the in-memory roster is internally consistent: every feed whose
315
+ * topology is loaded must exist in it. A cache violating that has been
316
+ * amputated in memory (observed: a transiently-empty public-feeds walk
317
+ * removed 641 feeds, and the watcher persisted the amputation over a good
318
+ * checkpoint). Never durably replace good data with it.
319
+ *
320
+ * @returns True when the roster may be written.
321
+ */
322
+ function roster_isConsistent() {
323
+ const cache = (0, procCache_1.procCache_get)();
324
+ const rosterIDs = new Set(cache.feedIDs_get());
325
+ const orphaned = cache.shardedFeedIDs_get()
326
+ .filter((id) => cache.topologyLoaded_has(id) && !rosterIDs.has(id)).length;
327
+ if (orphaned > 0) {
328
+ errorStack_1.errorStack.stack_push('warning', `proc checkpoint skipped: ${orphaned} topology-loaded feeds missing from the roster (inconsistent snapshot)`);
329
+ return false;
330
+ }
331
+ return true;
332
+ }
333
+ /**
334
+ * Atomically writes the roster shard (the feed index) for an identity.
176
335
  *
177
336
  * @param identity - Canonical ChRIS identity string.
178
337
  * @param root - Checkpoint directory override.
179
- * @returns Promise resolved after the mode-0600 file is durable in place.
338
+ * @returns Promise resolved after the file is durable in place; resolves
339
+ * without writing when the roster is inconsistent.
180
340
  */
181
- async function procCheckpoint_save(identity, root = procCheckpointRoot_get()) {
182
- const path = procCheckpointPath_get(identity, root);
183
- const temporaryPath = `${path}.${process.pid}-${(0, crypto_1.randomUUID)()}.tmp`;
341
+ async function procCheckpointRoster_save(identity, root = procCheckpointRoot_get()) {
342
+ if (!roster_isConsistent())
343
+ return;
344
+ const dir = procCheckpointDir_get(identity, root);
345
+ await dir_ensure(dir);
346
+ const cache = (0, procCache_1.procCache_get)();
184
347
  const file = {
185
348
  schemaVersion: PROC_CHECKPOINT_SCHEMA,
186
349
  identity,
187
350
  writtenAt: new Date().toISOString(),
188
- snapshot: (0, procCache_1.procCache_get)().snapshot_create(),
351
+ feeds: cache.feedIDs_get().map((id) => ({ ...cache.feed_get(id) })),
189
352
  };
190
- await fs_1.promises.mkdir((0, path_1.dirname)(path), { recursive: true, mode: 0o700 });
191
- await fs_1.promises.chmod((0, path_1.dirname)(path), 0o700);
192
- await fs_1.promises.writeFile(temporaryPath, `${JSON.stringify(file)}\n`, { encoding: 'utf8', mode: 0o600 });
193
- await fs_1.promises.rename(temporaryPath, path);
194
- await fs_1.promises.chmod(path, 0o600);
195
- (0, procCache_1.procCache_get)().checkpoint_mark(file.writtenAt);
353
+ await json_write((0, path_1.join)(dir, ROSTER_FILE), file);
354
+ cache.checkpoint_mark(file.writtenAt);
355
+ }
356
+ /**
357
+ * Atomically writes one feed's shard, or removes it when the feed no longer
358
+ * holds topology (removed from the roster, or emptied).
359
+ *
360
+ * @param identity - Canonical ChRIS identity string.
361
+ * @param feedID - The feed whose shard to write.
362
+ * @param root - Checkpoint directory override.
363
+ * @returns Promise resolved after the shard is durable in place.
364
+ */
365
+ async function procCheckpointFeed_save(identity, feedID, root = procCheckpointRoot_get()) {
366
+ const dir = procCheckpointDir_get(identity, root);
367
+ const cache = (0, procCache_1.procCache_get)();
368
+ const snapshot = cache.feedSnapshot_create(feedID);
369
+ const path = shardPath_get(dir, feedID);
370
+ if (!cache.feed_get(feedID) || (snapshot.instances.length === 0 && !snapshot.loaded)) {
371
+ await fs_1.promises.rm(path, { force: true });
372
+ return;
373
+ }
374
+ await dir_ensure(dir);
375
+ const file = {
376
+ schemaVersion: PROC_CHECKPOINT_SCHEMA,
377
+ identity,
378
+ writtenAt: new Date().toISOString(),
379
+ feedID,
380
+ loaded: snapshot.loaded,
381
+ instances: snapshot.instances,
382
+ };
383
+ await json_write(path, file);
384
+ }
385
+ /**
386
+ * Saves the whole process cache: the roster and every feed shard, removing
387
+ * shards for feeds no longer in the roster.
388
+ *
389
+ * @param identity - Canonical ChRIS identity string.
390
+ * @param root - Checkpoint directory override.
391
+ * @returns Promise resolved after every file is durable in place; resolves
392
+ * without writing when the roster is inconsistent.
393
+ */
394
+ async function procCheckpoint_save(identity, root = procCheckpointRoot_get()) {
395
+ if (!roster_isConsistent())
396
+ return;
397
+ const dir = procCheckpointDir_get(identity, root);
398
+ const cache = (0, procCache_1.procCache_get)();
399
+ await procCheckpointRoster_save(identity, root);
400
+ const wanted = new Set(cache.shardedFeedIDs_get());
401
+ for (const feedID of wanted)
402
+ await procCheckpointFeed_save(identity, feedID, root);
403
+ for (const name of await fs_1.promises.readdir(dir)) {
404
+ const match = SHARD_PATTERN.exec(name);
405
+ if (match && !wanted.has(Number(match[1])))
406
+ await fs_1.promises.rm((0, path_1.join)(dir, name), { force: true });
407
+ }
196
408
  }
197
409
  /**
198
- * Starts a debounced checkpoint writer for mutations to a current cache.
410
+ * Starts a throttled, per-shard checkpoint writer for mutations to a
411
+ * current cache. Each touched shard is written at least `delayMs` after
412
+ * its first pending mutation and no more often than once per `floorMs`;
413
+ * a burst of mutations to one feed coalesces into one write, and a quiet
414
+ * feed's shard is never rewritten at all.
199
415
  *
200
416
  * @param identity - Canonical ChRIS identity string.
201
417
  * @param root - Checkpoint directory override.
202
418
  * @param delayMs - Debounce interval in milliseconds.
203
- * @returns Function that stops watching and cancels a pending save.
419
+ * @param floorMs - Minimum spacing between two writes of the same shard.
420
+ * @returns Function that stops watching and cancels pending saves.
204
421
  */
205
- function procCheckpoint_watch(identity, root = procCheckpointRoot_get(), delayMs = 1000) {
206
- let timer = null;
207
- const listener_remove = (0, procCache_1.procCache_get)().changeListener_add(() => {
208
- if ((0, procCache_1.procCache_get)().lifecycle_get().state !== 'current')
422
+ function procCheckpoint_watch(identity, root = procCheckpointRoot_get(), delayMs = 1000, floorMs = exports.PROC_CHECKPOINT_FLOOR_MS) {
423
+ const timers = new Map();
424
+ const lastWrite = new Map();
425
+ const shard_write = async (key) => {
426
+ if (key === 'roster')
427
+ await procCheckpointRoster_save(identity, root);
428
+ else if (key === 'all')
429
+ await procCheckpoint_save(identity, root);
430
+ else
431
+ await procCheckpointFeed_save(identity, key, root);
432
+ };
433
+ const shard_schedule = (key) => {
434
+ if (timers.has(key))
209
435
  return;
210
- if (timer)
211
- clearTimeout(timer);
212
- timer = setTimeout(() => {
213
- timer = null;
214
- void procCheckpoint_save(identity, root).catch(() => { });
215
- }, delayMs);
436
+ const earliest = (lastWrite.get(key) ?? 0) + floorMs;
437
+ const wait = Math.max(delayMs, earliest - Date.now());
438
+ const timer = setTimeout(() => {
439
+ timers.delete(key);
440
+ lastWrite.set(key, Date.now());
441
+ void shard_write(key).catch(() => { });
442
+ }, wait);
216
443
  timer.unref();
444
+ timers.set(key, timer);
445
+ };
446
+ const listener_remove = (0, procCache_1.procCache_get)().changeListener_add((change) => {
447
+ if ((0, procCache_1.procCache_get)().lifecycle_get().state !== 'current')
448
+ return;
449
+ if (change.scope === 'lifecycle')
450
+ return;
451
+ if (change.scope === 'all') {
452
+ for (const timer of timers.values())
453
+ clearTimeout(timer);
454
+ timers.clear();
455
+ shard_schedule('all');
456
+ return;
457
+ }
458
+ if (timers.has('all'))
459
+ return;
460
+ shard_schedule(change.scope === 'roster' ? 'roster' : change.feedID);
217
461
  });
218
462
  return () => {
219
463
  listener_remove();
220
- if (timer)
464
+ for (const timer of timers.values())
221
465
  clearTimeout(timer);
222
- timer = null;
466
+ timers.clear();
223
467
  };
224
468
  }
225
469
  //# sourceMappingURL=procCheckpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"procCheckpoint.js","sourceRoot":"","sources":["../../src/cache/procCheckpoint.ts"],"names":[],"mappings":";;AA8DA,wDAGC;AAsHD,wDAoBC;AASD,kDAkBC;AAUD,oDAoBC;AApQD;;;;;;;;GAQG;AACH,mCAAgD;AAChD,2BAAoC;AACpC,2BAA6B;AAC7B,+BAAqC;AACrC,2CAMqB;AAErB,4EAA4E;AAC5E,2EAA2E;AAC3E,uEAAuE;AACvE,2EAA2E;AAC3E,MAAM,sBAAsB,GAAW,CAAC,CAAC;AAwBzC,wEAAwE;AACxE,SAAS,sBAAsB;IAC7B,MAAM,SAAS,GAAW,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,QAAQ,CAAC,CAAC;IAClF,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,QAAgB,EAAE,OAAe,sBAAsB,EAAE;IAC9F,MAAM,GAAG,GAAW,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,OAAO,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,sBAAsB,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,mDAAmD;AACnD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxF,CAAC;AAED,sEAAsE;AACtE,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAAsB,KAA0B,CAAC;IAC3D,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;QACtC,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS;QAChC,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;QACrC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;QAChC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QAC/B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QAC/B,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,0EAA0E;AAC1E,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,QAAQ,GAA0B,KAA8B,CAAC;IACvE,MAAM,WAAW,GAAY,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5F,MAAM,eAAe,GAAY,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC;IAC9G,MAAM,WAAW,GAAY,QAAQ,CAAC,MAAM,KAAK,IAAI;QACnD,CAAC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAA,6BAAiB,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAY,QAAQ,CAAC,aAAa,KAAK,SAAS;QAC9D,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACzF,MAAM,YAAY,GAChB,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC;QAC5E,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC;QAC9E,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC;IACnF,OAAO,YAAY;QACjB,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9B,WAAW;QACX,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,eAAe;QACf,QAAQ,CAAC,MAAM,KAAK,IAAI;QACxB,WAAW;QACX,UAAU,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,QAAQ,GAA+B,KAAmC,CAAC;IACjF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC9B,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QACvC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;QACrC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC7C,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAgB,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAc,EAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9F,MAAM,YAAY,GAA8B,IAAI,GAAG,CACrD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAsB,EAA0B,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CACpG,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM;QACtC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,CAAC,MAAM;QAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,MAAM;QACxE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAc,EAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,MAAM,MAAM,GAA6B,QAAQ,CAAC,QAAQ,KAAK,IAAI;YACjE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/F,IAAI,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,EAAU,EAAW,EAAE;YACvD,MAAM,UAAU,GAA6B,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;QACpF,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEjB,MAAM,SAAS,GAAgB,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,QAAQ,GAA6B,MAAM,CAAC;QAChD,OAAO,QAAQ,EAAE,CAAC;YAChB,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,SAAS,wBAAwB,CAAC,KAAc,EAAE,QAAgB;IAChE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAAgC,KAAoC,CAAC;IAC/E,OAAO,IAAI,CAAC,aAAa,KAAK,sBAAsB;QAClD,IAAI,CAAC,QAAQ,KAAK,QAAQ;QAC1B,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAClC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,OAAe,sBAAsB,EAAE;IAEvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAW,MAAM,aAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACtF,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;QAC1E,CAAC;QACD,IAAA,yBAAa,GAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACpE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IAClG,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,IAAI,GAAwB,KAA+B,CAAC,IAAI,CAAC;QACvE,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACvG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,OAAe,sBAAsB,EAAE;IAEvC,MAAM,IAAI,GAAW,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAW,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,IAAA,mBAAU,GAAE,MAAM,CAAC;IAC3E,MAAM,IAAI,GAAuB;QAC/B,aAAa,EAAE,sBAAsB;QACrC,QAAQ;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,QAAQ,EAAE,IAAA,yBAAa,GAAE,CAAC,eAAe,EAAE;KAC5C,CAAC;IACF,MAAM,aAAE,CAAC,KAAK,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,MAAM,aAAE,CAAC,KAAK,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,aAAE,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClG,MAAM,aAAE,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,aAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,IAAA,yBAAa,GAAE,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAClC,QAAgB,EAChB,OAAe,sBAAsB,EAAE,EACvC,UAAkB,IAAI;IAEtB,IAAI,KAAK,GAA0B,IAAI,CAAC;IACxC,MAAM,eAAe,GAAe,IAAA,yBAAa,GAAE,CAAC,kBAAkB,CAAC,GAAS,EAAE;QAChF,IAAI,IAAA,yBAAa,GAAE,CAAC,aAAa,EAAE,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QAChE,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,GAAG,UAAU,CAAC,GAAS,EAAE;YAC5B,KAAK,GAAG,IAAI,CAAC;YACb,KAAK,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAS,EAAE,GAA+B,CAAC,CAAC,CAAC;QAC9F,CAAC,EAAE,OAAO,CAAC,CAAC;QACZ,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,OAAO,GAAS,EAAE;QAChB,eAAe,EAAE,CAAC;QAClB,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,GAAG,IAAI,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"procCheckpoint.js","sourceRoot":"","sources":["../../src/cache/procCheckpoint.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fnndsc/cumin",
3
- "version": "3.15.1",
3
+ "version": "3.16.1",
4
4
  "description": "Utility library for ChILI and other ChRIS-related JavaScript applications",
5
5
  "repository": {
6
6
  "type": "git",