@fnndsc/cumin 3.17.1 → 3.19.0
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.
- package/dist/cache/index.d.ts +6 -2
- package/dist/cache/index.js +13 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/procCache.d.ts +61 -1
- package/dist/cache/procCache.js +92 -2
- package/dist/cache/procCache.js.map +1 -1
- package/dist/cache/queryIndex.d.ts +207 -0
- package/dist/cache/queryIndex.js +314 -0
- package/dist/cache/queryIndex.js.map +1 -0
- package/dist/cache/queryIndexCheckpoint.d.ts +55 -0
- package/dist/cache/queryIndexCheckpoint.js +159 -0
- package/dist/cache/queryIndexCheckpoint.js.map +1 -0
- package/dist/chrisapi/contract.d.ts +104 -0
- package/dist/chrisapi/contract.js +132 -0
- package/dist/chrisapi/contract.js.map +1 -1
- package/dist/feeds/chrisFeed.js +17 -5
- package/dist/feeds/chrisFeed.js.map +1 -1
- package/dist/filebrowser/chrisPipeline.js +8 -1
- package/dist/filebrowser/chrisPipeline.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/io/chrisIO.d.ts +26 -0
- package/dist/io/chrisIO.js +83 -7
- package/dist/io/chrisIO.js.map +1 -1
- package/dist/pacs/chrisPACS.d.ts +8 -0
- package/dist/pacs/chrisPACS.js.map +1 -1
- package/dist/pacs/queryIndexSweep.d.ts +69 -0
- package/dist/pacs/queryIndexSweep.js +159 -0
- package/dist/pacs/queryIndexSweep.js.map +1 -0
- package/dist/resources/chrisResources.d.ts +12 -0
- package/dist/resources/chrisResources.js +53 -3
- package/dist/resources/chrisResources.js.map +1 -1
- package/package.json +2 -2
package/dist/cache/index.d.ts
CHANGED
|
@@ -7,9 +7,13 @@ export { ListCache, listCache_get, LIST_CACHE_SIGNAL_BACKED_TTL_MS, LIST_CACHE_S
|
|
|
7
7
|
export type { CacheStats, CacheResult, CacheOptions, ListCacheSnapshot, ListCacheEntrySnapshot } from './listCache.js';
|
|
8
8
|
export { listCheckpointPath_get, listCheckpoint_restore, listCheckpoint_save, listCheckpoint_watch, } from './listCheckpoint.js';
|
|
9
9
|
export type { ListCheckpointRestoreResult } from './listCheckpoint.js';
|
|
10
|
+
export { QueryIndex, queryIndex_get, queryKey_build, queryCriteria_parse, } from './queryIndex.js';
|
|
11
|
+
export type { QueryIndexEntry, QueryIndexEntrySnapshot, QueryIndexSnapshot, QueryIndexListener, } from './queryIndex.js';
|
|
12
|
+
export { queryIndexCheckpointPath_get, queryIndexCheckpoint_restore, queryIndexCheckpoint_save, queryIndexCheckpoint_watch, QUERY_INDEX_CHECKPOINT_FLOOR_MS, } from './queryIndexCheckpoint.js';
|
|
13
|
+
export type { QueryIndexRestoreResult } from './queryIndexCheckpoint.js';
|
|
10
14
|
export { listingsForFeeds_note, listingsForFeeds_drop, listingsForRoster_note, listingInvalidation_flush, listingInvalidation_reset, LISTING_INVALIDATION_WINDOW_MS, } from './listingInvalidation.js';
|
|
11
|
-
export { ProcCache, procCache_get, status_isTerminal, feed_isActive, feedTopology_changed, PROC_TERMINAL_STATUSES, PROC_ARRIVAL_TTL_MS } from './procCache.js';
|
|
12
|
-
export type { RosterFolders, ProcInstance, ProcFeed, ProcFeedScopeCounts, ProcWarmupProgress, ProcFeedLoadProgress, ProcCacheState, ProcCacheLifecycle, ProcCacheSnapshot, ProcFeedSnapshot, ProcCacheChange, ProcCacheListener, } from './procCache.js';
|
|
15
|
+
export { ProcCache, procCache_get, status_isTerminal, feed_isActive, feedTopology_changed, PROC_TERMINAL_STATUSES, PROC_ARRIVAL_TTL_MS, PROC_FEED_LOAD_FAILURE_TTL_MS } from './procCache.js';
|
|
16
|
+
export type { RosterFolders, ProcInstance, ProcFeed, ProcFeedScopeCounts, ProcWarmupProgress, ProcFeedLoadProgress, ProcRosterSyncKind, ProcCacheState, ProcCacheLifecycle, ProcCacheSnapshot, ProcFeedSnapshot, ProcCacheChange, ProcCacheListener, } from './procCache.js';
|
|
13
17
|
export type { ProcPromptState, ProcPromptProgress } from '@fnndsc/menu';
|
|
14
18
|
export { procCheckpointPath_get, procCheckpointDir_get, procCheckpoint_restore, procCheckpoint_save, procCheckpointFeed_save, procCheckpointRoster_save, procCheckpoint_watch, } from './procCheckpoint.js';
|
|
15
19
|
export type { ProcCheckpointRestoreResult } from './procCheckpoint.js';
|
package/dist/cache/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.procCheckpoint_watch = exports.procCheckpointRoster_save = exports.procCheckpointFeed_save = exports.procCheckpoint_save = exports.procCheckpoint_restore = exports.procCheckpointDir_get = exports.procCheckpointPath_get = exports.PROC_ARRIVAL_TTL_MS = exports.PROC_TERMINAL_STATUSES = exports.feedTopology_changed = exports.feed_isActive = exports.status_isTerminal = exports.procCache_get = exports.ProcCache = exports.LISTING_INVALIDATION_WINDOW_MS = exports.listingInvalidation_reset = exports.listingInvalidation_flush = exports.listingsForRoster_note = exports.listingsForFeeds_drop = exports.listingsForFeeds_note = exports.listCheckpoint_watch = exports.listCheckpoint_save = exports.listCheckpoint_restore = exports.listCheckpointPath_get = exports.LIST_CACHE_MAX_ENTRIES = exports.LIST_CACHE_PLUGIN_INDEX_TTL_MS = exports.LIST_CACHE_SIGNAL_FREE_TTL_MS = exports.LIST_CACHE_SIGNAL_BACKED_TTL_MS = exports.listCache_get = exports.ListCache = void 0;
|
|
3
|
+
exports.procCheckpoint_watch = exports.procCheckpointRoster_save = exports.procCheckpointFeed_save = exports.procCheckpoint_save = exports.procCheckpoint_restore = exports.procCheckpointDir_get = exports.procCheckpointPath_get = exports.PROC_FEED_LOAD_FAILURE_TTL_MS = exports.PROC_ARRIVAL_TTL_MS = exports.PROC_TERMINAL_STATUSES = exports.feedTopology_changed = exports.feed_isActive = exports.status_isTerminal = exports.procCache_get = exports.ProcCache = exports.LISTING_INVALIDATION_WINDOW_MS = exports.listingInvalidation_reset = exports.listingInvalidation_flush = exports.listingsForRoster_note = exports.listingsForFeeds_drop = exports.listingsForFeeds_note = exports.QUERY_INDEX_CHECKPOINT_FLOOR_MS = exports.queryIndexCheckpoint_watch = exports.queryIndexCheckpoint_save = exports.queryIndexCheckpoint_restore = exports.queryIndexCheckpointPath_get = exports.queryCriteria_parse = exports.queryKey_build = exports.queryIndex_get = exports.QueryIndex = exports.listCheckpoint_watch = exports.listCheckpoint_save = exports.listCheckpoint_restore = exports.listCheckpointPath_get = exports.LIST_CACHE_MAX_ENTRIES = exports.LIST_CACHE_PLUGIN_INDEX_TTL_MS = exports.LIST_CACHE_SIGNAL_FREE_TTL_MS = exports.LIST_CACHE_SIGNAL_BACKED_TTL_MS = exports.listCache_get = exports.ListCache = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* @file Cache module exports.
|
|
6
6
|
*
|
|
@@ -18,6 +18,17 @@ Object.defineProperty(exports, "listCheckpointPath_get", { enumerable: true, get
|
|
|
18
18
|
Object.defineProperty(exports, "listCheckpoint_restore", { enumerable: true, get: function () { return listCheckpoint_js_1.listCheckpoint_restore; } });
|
|
19
19
|
Object.defineProperty(exports, "listCheckpoint_save", { enumerable: true, get: function () { return listCheckpoint_js_1.listCheckpoint_save; } });
|
|
20
20
|
Object.defineProperty(exports, "listCheckpoint_watch", { enumerable: true, get: function () { return listCheckpoint_js_1.listCheckpoint_watch; } });
|
|
21
|
+
var queryIndex_js_1 = require("./queryIndex.js");
|
|
22
|
+
Object.defineProperty(exports, "QueryIndex", { enumerable: true, get: function () { return queryIndex_js_1.QueryIndex; } });
|
|
23
|
+
Object.defineProperty(exports, "queryIndex_get", { enumerable: true, get: function () { return queryIndex_js_1.queryIndex_get; } });
|
|
24
|
+
Object.defineProperty(exports, "queryKey_build", { enumerable: true, get: function () { return queryIndex_js_1.queryKey_build; } });
|
|
25
|
+
Object.defineProperty(exports, "queryCriteria_parse", { enumerable: true, get: function () { return queryIndex_js_1.queryCriteria_parse; } });
|
|
26
|
+
var queryIndexCheckpoint_js_1 = require("./queryIndexCheckpoint.js");
|
|
27
|
+
Object.defineProperty(exports, "queryIndexCheckpointPath_get", { enumerable: true, get: function () { return queryIndexCheckpoint_js_1.queryIndexCheckpointPath_get; } });
|
|
28
|
+
Object.defineProperty(exports, "queryIndexCheckpoint_restore", { enumerable: true, get: function () { return queryIndexCheckpoint_js_1.queryIndexCheckpoint_restore; } });
|
|
29
|
+
Object.defineProperty(exports, "queryIndexCheckpoint_save", { enumerable: true, get: function () { return queryIndexCheckpoint_js_1.queryIndexCheckpoint_save; } });
|
|
30
|
+
Object.defineProperty(exports, "queryIndexCheckpoint_watch", { enumerable: true, get: function () { return queryIndexCheckpoint_js_1.queryIndexCheckpoint_watch; } });
|
|
31
|
+
Object.defineProperty(exports, "QUERY_INDEX_CHECKPOINT_FLOOR_MS", { enumerable: true, get: function () { return queryIndexCheckpoint_js_1.QUERY_INDEX_CHECKPOINT_FLOOR_MS; } });
|
|
21
32
|
var listingInvalidation_js_1 = require("./listingInvalidation.js");
|
|
22
33
|
Object.defineProperty(exports, "listingsForFeeds_note", { enumerable: true, get: function () { return listingInvalidation_js_1.listingsForFeeds_note; } });
|
|
23
34
|
Object.defineProperty(exports, "listingsForFeeds_drop", { enumerable: true, get: function () { return listingInvalidation_js_1.listingsForFeeds_drop; } });
|
|
@@ -33,6 +44,7 @@ Object.defineProperty(exports, "feed_isActive", { enumerable: true, get: functio
|
|
|
33
44
|
Object.defineProperty(exports, "feedTopology_changed", { enumerable: true, get: function () { return procCache_js_1.feedTopology_changed; } });
|
|
34
45
|
Object.defineProperty(exports, "PROC_TERMINAL_STATUSES", { enumerable: true, get: function () { return procCache_js_1.PROC_TERMINAL_STATUSES; } });
|
|
35
46
|
Object.defineProperty(exports, "PROC_ARRIVAL_TTL_MS", { enumerable: true, get: function () { return procCache_js_1.PROC_ARRIVAL_TTL_MS; } });
|
|
47
|
+
Object.defineProperty(exports, "PROC_FEED_LOAD_FAILURE_TTL_MS", { enumerable: true, get: function () { return procCache_js_1.PROC_FEED_LOAD_FAILURE_TTL_MS; } });
|
|
36
48
|
var procCheckpoint_js_1 = require("./procCheckpoint.js");
|
|
37
49
|
Object.defineProperty(exports, "procCheckpointPath_get", { enumerable: true, get: function () { return procCheckpoint_js_1.procCheckpointPath_get; } });
|
|
38
50
|
Object.defineProperty(exports, "procCheckpointDir_get", { enumerable: true, get: function () { return procCheckpoint_js_1.procCheckpointDir_get; } });
|
package/dist/cache/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,+CAOwB;AANtB,yGAAA,SAAS,OAAA;AACT,6GAAA,aAAa,OAAA;AACb,+HAAA,+BAA+B,OAAA;AAC/B,6HAAA,6BAA6B,OAAA;AAC7B,8HAAA,8BAA8B,OAAA;AAC9B,sHAAA,sBAAsB,OAAA;AAGxB,yDAK6B;AAJ3B,2HAAA,sBAAsB,OAAA;AACtB,2HAAA,sBAAsB,OAAA;AACtB,wHAAA,mBAAmB,OAAA;AACnB,yHAAA,oBAAoB,OAAA;AAGtB,mEAOkC;AANhC,+HAAA,qBAAqB,OAAA;AACrB,+HAAA,qBAAqB,OAAA;AACrB,gIAAA,sBAAsB,OAAA;AACtB,mIAAA,yBAAyB,OAAA;AACzB,mIAAA,yBAAyB,OAAA;AACzB,wIAAA,8BAA8B,OAAA;AAEhC,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,+CAOwB;AANtB,yGAAA,SAAS,OAAA;AACT,6GAAA,aAAa,OAAA;AACb,+HAAA,+BAA+B,OAAA;AAC/B,6HAAA,6BAA6B,OAAA;AAC7B,8HAAA,8BAA8B,OAAA;AAC9B,sHAAA,sBAAsB,OAAA;AAGxB,yDAK6B;AAJ3B,2HAAA,sBAAsB,OAAA;AACtB,2HAAA,sBAAsB,OAAA;AACtB,wHAAA,mBAAmB,OAAA;AACnB,yHAAA,oBAAoB,OAAA;AAGtB,iDAKyB;AAJvB,2GAAA,UAAU,OAAA;AACV,+GAAA,cAAc,OAAA;AACd,+GAAA,cAAc,OAAA;AACd,oHAAA,mBAAmB,OAAA;AAQrB,qEAMmC;AALjC,uIAAA,4BAA4B,OAAA;AAC5B,uIAAA,4BAA4B,OAAA;AAC5B,oIAAA,yBAAyB,OAAA;AACzB,qIAAA,0BAA0B,OAAA;AAC1B,0IAAA,+BAA+B,OAAA;AAGjC,mEAOkC;AANhC,+HAAA,qBAAqB,OAAA;AACrB,+HAAA,qBAAqB,OAAA;AACrB,gIAAA,sBAAsB,OAAA;AACtB,mIAAA,yBAAyB,OAAA;AACzB,mIAAA,yBAAyB,OAAA;AACzB,wIAAA,8BAA8B,OAAA;AAEhC,+CAA8L;AAArL,yGAAA,SAAS,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,oHAAA,oBAAoB,OAAA;AAAE,sHAAA,sBAAsB,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAAE,6HAAA,6BAA6B,OAAA;AA2BrK,yDAQ6B;AAP3B,2HAAA,sBAAsB,OAAA;AACtB,0HAAA,qBAAqB,OAAA;AACrB,2HAAA,sBAAsB,OAAA;AACtB,wHAAA,mBAAmB,OAAA;AACnB,4HAAA,uBAAuB,OAAA;AACvB,8HAAA,yBAAyB,OAAA;AACzB,yHAAA,oBAAoB,OAAA"}
|
|
@@ -128,7 +128,13 @@ export interface ProcFeedLoadProgress {
|
|
|
128
128
|
feedID: number;
|
|
129
129
|
loaded: number;
|
|
130
130
|
total: number;
|
|
131
|
+
/** What the walk said when it failed; absent while it runs. A failed entry is kept for {@link PROC_FEED_LOAD_FAILURE_TTL_MS}. */
|
|
132
|
+
failed?: string;
|
|
131
133
|
}
|
|
134
|
+
/** The roster walks the cache can have in flight: the delta, or the ten-minute full walk. */
|
|
135
|
+
export type ProcRosterSyncKind = 'delta' | 'full';
|
|
136
|
+
/** How long a failed feed load stays annunciated before the register forgets it. */
|
|
137
|
+
export declare const PROC_FEED_LOAD_FAILURE_TTL_MS: number;
|
|
132
138
|
/**
|
|
133
139
|
* Where a feed appears for one identity, by how that identity sees it.
|
|
134
140
|
*
|
|
@@ -220,6 +226,8 @@ export declare class ProcCache {
|
|
|
220
226
|
private _warmupProgress;
|
|
221
227
|
/** Per-feed topology loads in flight, keyed by feed id. */
|
|
222
228
|
private feedLoads;
|
|
229
|
+
private feedLoadFailedAt;
|
|
230
|
+
private rosterSync;
|
|
223
231
|
/** Feeds the roster gained (created or shared) with the moment they landed. */
|
|
224
232
|
private arrivals;
|
|
225
233
|
/**
|
|
@@ -275,6 +283,14 @@ export declare class ProcCache {
|
|
|
275
283
|
*/
|
|
276
284
|
feedScopeCounts_get(username: string): ProcFeedScopeCounts;
|
|
277
285
|
feedRoots_get(feedID: number): number[];
|
|
286
|
+
/**
|
|
287
|
+
* Drops a feed's topology — its instances, roots and the loaded mark —
|
|
288
|
+
* and keeps its roster row, so a re-walk starts from nothing the cache
|
|
289
|
+
* remembers about the graph while the feed stays where the roster put it.
|
|
290
|
+
*
|
|
291
|
+
* @param feedID - The feed whose topology is dropped.
|
|
292
|
+
*/
|
|
293
|
+
feedTopology_evict(feedID: number): void;
|
|
278
294
|
/**
|
|
279
295
|
* Removes a feed and all its instances from the cache.
|
|
280
296
|
*/
|
|
@@ -385,6 +401,22 @@ export declare class ProcCache {
|
|
|
385
401
|
warmup_abort(): void;
|
|
386
402
|
warmup_progress(loaded: number, total: number): void;
|
|
387
403
|
warmupProgress_get(): ProcWarmupProgress;
|
|
404
|
+
/**
|
|
405
|
+
* Notes that the roster is being brought up to date: a delta (feeds newer
|
|
406
|
+
* than the highest known id) or the ten-minute full walk. Index movement
|
|
407
|
+
* no command announces; the prompt says it while it runs.
|
|
408
|
+
*
|
|
409
|
+
* @param kind - Which walk is in flight.
|
|
410
|
+
*/
|
|
411
|
+
rosterSync_progress(kind: ProcRosterSyncKind): void;
|
|
412
|
+
/** Ends the roster's annunciation. */
|
|
413
|
+
rosterSync_clear(): void;
|
|
414
|
+
/**
|
|
415
|
+
* The roster walk in flight, if any.
|
|
416
|
+
*
|
|
417
|
+
* @returns The kind, or null when the roster is not moving.
|
|
418
|
+
*/
|
|
419
|
+
rosterSync_get(): ProcRosterSyncKind | null;
|
|
388
420
|
/**
|
|
389
421
|
* Records progress of one feed's topology load.
|
|
390
422
|
*
|
|
@@ -393,18 +425,46 @@ export declare class ProcCache {
|
|
|
393
425
|
* @param total - The server's count, or zero while unknown.
|
|
394
426
|
*/
|
|
395
427
|
feedLoad_progress(feedID: number, loaded: number, total: number): void;
|
|
428
|
+
/**
|
|
429
|
+
* Marks one feed's load as failed where it stopped. The entry stays
|
|
430
|
+
* annunciated for a minute so the failure is seen, then is forgotten; the
|
|
431
|
+
* next visit starts a fresh walk.
|
|
432
|
+
*
|
|
433
|
+
* @param feedID - The feed whose walk failed.
|
|
434
|
+
* @param message - What the failure said.
|
|
435
|
+
* @param at - When it failed (default now).
|
|
436
|
+
*/
|
|
437
|
+
feedLoad_fail(feedID: number, message: string, at?: number): void;
|
|
396
438
|
/**
|
|
397
439
|
* Ends one feed's load annunciation.
|
|
398
440
|
*
|
|
399
441
|
* @param feedID - The feed whose load finished or failed.
|
|
400
442
|
*/
|
|
401
443
|
feedLoad_clear(feedID: number): void;
|
|
444
|
+
/**
|
|
445
|
+
* Every feed load worth showing, earliest first: the walks in flight and
|
|
446
|
+
* the failures still remembered. Two feeds can walk at once (an operator
|
|
447
|
+
* and a pane, or two panes), and each is index movement of its own.
|
|
448
|
+
*
|
|
449
|
+
* @param now - The clock (default now), against which failures expire.
|
|
450
|
+
* @returns The loads, earliest first; empty when nothing moves.
|
|
451
|
+
*/
|
|
452
|
+
feedLoads_all(now?: number): ProcFeedLoadProgress[];
|
|
453
|
+
/**
|
|
454
|
+
* One feed's load annunciation, by feed.
|
|
455
|
+
*
|
|
456
|
+
* @param feedID - The feed in question.
|
|
457
|
+
* @param now - The clock (default now), against which a failure expires.
|
|
458
|
+
* @returns The load in flight or lately failed, or null.
|
|
459
|
+
*/
|
|
460
|
+
feedLoad_of(feedID: number, now?: number): ProcFeedLoadProgress | null;
|
|
461
|
+
private feedLoadFailures_expire;
|
|
402
462
|
/**
|
|
403
463
|
* The feed load currently worth showing: the earliest still in flight.
|
|
404
464
|
*
|
|
405
465
|
* @returns The load in progress, or null when none is.
|
|
406
466
|
*/
|
|
407
|
-
feedLoad_get(): ProcFeedLoadProgress | null;
|
|
467
|
+
feedLoad_get(now?: number): ProcFeedLoadProgress | null;
|
|
408
468
|
/**
|
|
409
469
|
* Notes feeds the roster just gained, so surfaces can annunciate them.
|
|
410
470
|
*
|
package/dist/cache/procCache.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProcCache = exports.PROC_ARRIVAL_TTL_MS = exports.PROC_TERMINAL_STATUSES = void 0;
|
|
3
|
+
exports.ProcCache = exports.PROC_ARRIVAL_TTL_MS = exports.PROC_FEED_LOAD_FAILURE_TTL_MS = exports.PROC_TERMINAL_STATUSES = void 0;
|
|
4
4
|
exports.feed_isActive = feed_isActive;
|
|
5
5
|
exports.feedTopology_changed = feedTopology_changed;
|
|
6
6
|
exports.status_isTerminal = status_isTerminal;
|
|
@@ -70,6 +70,8 @@ exports.PROC_TERMINAL_STATUSES = new Set([
|
|
|
70
70
|
function status_isTerminal(status) {
|
|
71
71
|
return status != null && exports.PROC_TERMINAL_STATUSES.has(status);
|
|
72
72
|
}
|
|
73
|
+
/** How long a failed feed load stays annunciated before the register forgets it. */
|
|
74
|
+
exports.PROC_FEED_LOAD_FAILURE_TTL_MS = 60000;
|
|
73
75
|
/** How long a roster arrival stays annunciated after it lands. */
|
|
74
76
|
exports.PROC_ARRIVAL_TTL_MS = 30 * 1000;
|
|
75
77
|
/**
|
|
@@ -106,6 +108,8 @@ class ProcCache {
|
|
|
106
108
|
this._warmupProgress = { loaded: 0, total: 0, active: false };
|
|
107
109
|
/** Per-feed topology loads in flight, keyed by feed id. */
|
|
108
110
|
this.feedLoads = new Map();
|
|
111
|
+
this.feedLoadFailedAt = new Map();
|
|
112
|
+
this.rosterSync = null;
|
|
109
113
|
/** Feeds the roster gained (created or shared) with the moment they landed. */
|
|
110
114
|
this.arrivals = new Map();
|
|
111
115
|
/**
|
|
@@ -199,6 +203,22 @@ class ProcCache {
|
|
|
199
203
|
feedRoots_get(feedID) {
|
|
200
204
|
return this.feedRoots.get(feedID) ?? [];
|
|
201
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Drops a feed's topology — its instances, roots and the loaded mark —
|
|
208
|
+
* and keeps its roster row, so a re-walk starts from nothing the cache
|
|
209
|
+
* remembers about the graph while the feed stays where the roster put it.
|
|
210
|
+
*
|
|
211
|
+
* @param feedID - The feed whose topology is dropped.
|
|
212
|
+
*/
|
|
213
|
+
feedTopology_evict(feedID) {
|
|
214
|
+
this.topologyLoaded.delete(feedID);
|
|
215
|
+
for (const inst of Array.from(this.instances.values())) {
|
|
216
|
+
if (inst.feedID === feedID)
|
|
217
|
+
this.instance_remove(inst.id);
|
|
218
|
+
}
|
|
219
|
+
this.feedRoots.delete(feedID);
|
|
220
|
+
this.change_emit({ scope: 'feed', feedID });
|
|
221
|
+
}
|
|
202
222
|
/**
|
|
203
223
|
* Removes a feed and all its instances from the cache.
|
|
204
224
|
*/
|
|
@@ -504,6 +524,29 @@ class ProcCache {
|
|
|
504
524
|
warmupProgress_get() {
|
|
505
525
|
return { ...this._warmupProgress };
|
|
506
526
|
}
|
|
527
|
+
// ── The roster's own movement ─────────────────────────────────────────────
|
|
528
|
+
/**
|
|
529
|
+
* Notes that the roster is being brought up to date: a delta (feeds newer
|
|
530
|
+
* than the highest known id) or the ten-minute full walk. Index movement
|
|
531
|
+
* no command announces; the prompt says it while it runs.
|
|
532
|
+
*
|
|
533
|
+
* @param kind - Which walk is in flight.
|
|
534
|
+
*/
|
|
535
|
+
rosterSync_progress(kind) {
|
|
536
|
+
this.rosterSync = kind;
|
|
537
|
+
}
|
|
538
|
+
/** Ends the roster's annunciation. */
|
|
539
|
+
rosterSync_clear() {
|
|
540
|
+
this.rosterSync = null;
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* The roster walk in flight, if any.
|
|
544
|
+
*
|
|
545
|
+
* @returns The kind, or null when the roster is not moving.
|
|
546
|
+
*/
|
|
547
|
+
rosterSync_get() {
|
|
548
|
+
return this.rosterSync;
|
|
549
|
+
}
|
|
507
550
|
// ── Per-feed load and roster arrivals ─────────────────────────────────────
|
|
508
551
|
/**
|
|
509
552
|
* Records progress of one feed's topology load.
|
|
@@ -514,6 +557,21 @@ class ProcCache {
|
|
|
514
557
|
*/
|
|
515
558
|
feedLoad_progress(feedID, loaded, total) {
|
|
516
559
|
this.feedLoads.set(feedID, { feedID, loaded, total });
|
|
560
|
+
this.feedLoadFailedAt.delete(feedID);
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Marks one feed's load as failed where it stopped. The entry stays
|
|
564
|
+
* annunciated for a minute so the failure is seen, then is forgotten; the
|
|
565
|
+
* next visit starts a fresh walk.
|
|
566
|
+
*
|
|
567
|
+
* @param feedID - The feed whose walk failed.
|
|
568
|
+
* @param message - What the failure said.
|
|
569
|
+
* @param at - When it failed (default now).
|
|
570
|
+
*/
|
|
571
|
+
feedLoad_fail(feedID, message, at = Date.now()) {
|
|
572
|
+
const current = this.feedLoads.get(feedID);
|
|
573
|
+
this.feedLoads.set(feedID, { feedID, loaded: current?.loaded ?? 0, total: current?.total ?? 0, failed: message });
|
|
574
|
+
this.feedLoadFailedAt.set(feedID, at);
|
|
517
575
|
}
|
|
518
576
|
/**
|
|
519
577
|
* Ends one feed's load annunciation.
|
|
@@ -522,13 +580,45 @@ class ProcCache {
|
|
|
522
580
|
*/
|
|
523
581
|
feedLoad_clear(feedID) {
|
|
524
582
|
this.feedLoads.delete(feedID);
|
|
583
|
+
this.feedLoadFailedAt.delete(feedID);
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Every feed load worth showing, earliest first: the walks in flight and
|
|
587
|
+
* the failures still remembered. Two feeds can walk at once (an operator
|
|
588
|
+
* and a pane, or two panes), and each is index movement of its own.
|
|
589
|
+
*
|
|
590
|
+
* @param now - The clock (default now), against which failures expire.
|
|
591
|
+
* @returns The loads, earliest first; empty when nothing moves.
|
|
592
|
+
*/
|
|
593
|
+
feedLoads_all(now = Date.now()) {
|
|
594
|
+
this.feedLoadFailures_expire(now);
|
|
595
|
+
return Array.from(this.feedLoads.values(), (entry) => ({ ...entry }));
|
|
596
|
+
}
|
|
597
|
+
/**
|
|
598
|
+
* One feed's load annunciation, by feed.
|
|
599
|
+
*
|
|
600
|
+
* @param feedID - The feed in question.
|
|
601
|
+
* @param now - The clock (default now), against which a failure expires.
|
|
602
|
+
* @returns The load in flight or lately failed, or null.
|
|
603
|
+
*/
|
|
604
|
+
feedLoad_of(feedID, now = Date.now()) {
|
|
605
|
+
this.feedLoadFailures_expire(now);
|
|
606
|
+
const entry = this.feedLoads.get(feedID);
|
|
607
|
+
return entry === undefined ? null : { ...entry };
|
|
608
|
+
}
|
|
609
|
+
feedLoadFailures_expire(now) {
|
|
610
|
+
for (const [feedID, at] of this.feedLoadFailedAt) {
|
|
611
|
+
if (now - at > exports.PROC_FEED_LOAD_FAILURE_TTL_MS)
|
|
612
|
+
this.feedLoad_clear(feedID);
|
|
613
|
+
}
|
|
525
614
|
}
|
|
526
615
|
/**
|
|
527
616
|
* The feed load currently worth showing: the earliest still in flight.
|
|
528
617
|
*
|
|
529
618
|
* @returns The load in progress, or null when none is.
|
|
530
619
|
*/
|
|
531
|
-
feedLoad_get() {
|
|
620
|
+
feedLoad_get(now = Date.now()) {
|
|
621
|
+
this.feedLoadFailures_expire(now);
|
|
532
622
|
const first = this.feedLoads.values().next().value;
|
|
533
623
|
return first === undefined ? null : { ...first };
|
|
534
624
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procCache.js","sourceRoot":"","sources":["../../src/cache/procCache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"procCache.js","sourceRoot":"","sources":["../../src/cache/procCache.ts"],"names":[],"mappings":";;;AAyEA,sCAEC;AASD,oDAMC;AAiED,8CAEC;AAm7BD,sCAEC;AAllCD;;;;;;;;;;;;;;;;;GAiBG;AACH,+DAAwI;AAqCxI,+EAA+E;AAC/E,MAAM,sBAAsB,GAEvB;IACH,cAAc;IACd,aAAa;IACb,aAAa;IACb,eAAe;IACf,eAAe;IACf,aAAa;CACd,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAc;IAC1C,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,QAAkB,EAAE,OAAiB;IACxE,OAAO,sBAAsB,CAAC,IAAI,CAChC,CAAC,OAEA,EAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CACtD,CAAC;AACJ,CAAC;AAiDD;;;GAGG;AACU,QAAA,sBAAsB,GAAwB,IAAI,GAAG,CAAS;IACzE,sBAAsB;IACtB,mBAAmB;IACnB,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAiC;IACjE,OAAO,MAAM,IAAI,IAAI,IAAI,8BAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC;AAkCD,oFAAoF;AACvE,QAAA,6BAA6B,GAAW,KAAM,CAAC;AAkB5D,kEAAkE;AACrD,QAAA,mBAAmB,GAAW,EAAE,GAAG,IAAI,CAAC;AA2DrD;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,IAAkB;IACjD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAiB,IAAI,CAAC;IACtE,OAAO;QACL,GAAG,UAAU;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAC3D,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAa,SAAS;IAyCpB;QAtCQ,UAAK,GAA0B,IAAI,GAAG,EAAE,CAAC;QACzC,cAAS,GAA8B,IAAI,GAAG,EAAE,CAAC;QACjD,cAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;QAC7C,aAAQ,GAA0B,IAAI,GAAG,EAAE,CAAC;QAEpD,+DAA+D;QACvD,mBAAc,GAAgB,IAAI,GAAG,EAAE,CAAC;QAEhD,wEAAwE;QAChE,YAAO,GAA+B,IAAI,GAAG,EAAE,CAAC;QAExD,2DAA2D;QACnD,oBAAe,GAAY,KAAK,CAAC;QAEjC,oBAAe,GAAuB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAErF,2DAA2D;QACnD,cAAS,GAAsC,IAAI,GAAG,EAAE,CAAC;QACzD,qBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;QAClD,eAAU,GAA8B,IAAI,CAAC;QAErD,+EAA+E;QACvE,aAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC;QAElD;;;;;WAKG;QACK,kBAAa,GAAkB,EAAE,CAAC;QAE1C,iDAAiD;QACzC,WAAM,GAAY,KAAK,CAAC;QAExB,cAAS,GAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACnD,cAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;IAE/B,CAAC;IAExB,MAAM,CAAC,YAAY;QACjB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,KAAc,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,IAAI,cAAc,KAAc,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAE9D;;;;OAIG;IACH,aAAa,KAAyB,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAErE;;;;;OAKG;IACH,aAAa,CAAC,KAAqB;QACjC,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,QAA2B;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,WAAW,CAAC,MAAuB;QACzC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,6EAA6E;IAE7E;;OAEG;IACH,QAAQ,CAAC,IAAc;QACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,MAAc;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,QAAgB;QAClC,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9F,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ;gBAAE,MAAM,CAAC,IAAI,EAAE,CAAC;iBAC9C,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,EAAE,CAAC;;gBACjC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAc;QAC/B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACvD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,MAAc;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,YAAY,GAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACrE,MAAM,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,KAAiB;QAC/B,MAAM,qBAAqB,GAAa,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAgB,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAc,EAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QACD,uEAAuE;QACvE,eAAe;QACf,MAAM,eAAe,GAAa,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACnE,KAAK,MAAM,MAAM,IAAI,QAAQ;YAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,kEAAkE;YAClE,mEAAmE;YACnE,+DAA+D;YAC/D,IAAA,4CAAsB,EAAC,EAAE,EAAE,eAAe,CAAC,CAAC;YAC5C,IAAA,2CAAqB,EAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAyB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7E,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,6EAA6E;IAE7E;;OAEG;IACH,YAAY,CAAC,IAAkB;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAa,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,mBAAmB,CACjB,EAAU,EACV,OAAoG;QAEpG,MAAM,IAAI,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;QAAC,CAAC;QACpI,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;QAAC,CAAC;QACzI,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;QAAC,CAAC;QAC9I,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC;YAAC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;QAAC,CAAC;QAClK,IAAI,OAAO;YAAE,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,sBAAsB,CAAC,MAAc;QACnC,IAAI,CAAC,GAAW,CAAC,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,CAAC,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,MAAc;QAChC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,GAAW,KAAK,CAAC,KAAK,EAAG,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,EAAU;QACxB,MAAM,IAAI,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAa,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,WAAwB;QACzC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,EAAU,EAAE,MAA+B;QACvD,MAAM,IAAI,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAU,EAAE,UAAyB;QACrD,MAAM,IAAI,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACzC,CAAC;IAED;;;;;;;;;OASG;IACH,gBAAgB,CAAC,OAAe;QAC9B,MAAM,SAAS,GAAW,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YACnE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC,CAAC,OAAO,CAAC;QACZ,IAAI,OAAiC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,UAAU,GAA8B,IAAI,CAAC,UAAU,CAAC;YAC9D,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,UAAU,GAAY,UAAU,KAAK,GAAG;gBAC5C,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC3B,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YACvE,IAAI,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,EAAU,EAAE,MAAc;QACtC,MAAM,IAAI,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO;QAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,sEAAsE;QACtE,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,iBAAiB,CAAC,MAAM,CAAC;YAAE,IAAA,2CAAqB,EAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAU,EAAE,GAAa;QAC1C,MAAM,IAAI,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,EAAE,CAAC;YAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAAC,CAAC;IACnG,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,aAAa,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,8EAA8E;IAE9E,mBAAmB,CAAC,MAAc;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,kBAAkB,CAAC,MAAc;QAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,6EAA6E;IAE7E,WAAW,CAAC,MAAc,EAAE,OAAsB;QAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,6EAA6E;IAE7E,eAAe;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,KAAa;QAC3C,IAAI,CAAC,eAAe,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,kBAAkB;QAChB,OAAO,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,6EAA6E;IAE7E;;;;;;OAMG;IACH,mBAAmB,CAAC,IAAwB;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,sCAAsC;IACtC,gBAAgB;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,6EAA6E;IAE7E;;;;;;OAMG;IACH,iBAAiB,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,aAAa,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,IAAI,CAAC,GAAG,EAAE;QACpE,MAAM,OAAO,GAAqC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAClH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,MAAc;QAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,KAA2B,EAAwB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IACpH,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,MAAc,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QAClD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAqC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3E,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACnD,CAAC;IAEO,uBAAuB,CAAC,GAAW;QACzC,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjD,IAAI,GAAG,GAAG,EAAE,GAAG,qCAA6B;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACnC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAqC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACrF,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,OAAiB,EAAE,KAAa,IAAI,CAAC,GAAG,EAAE;QACtD,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5D,kEAAkE;QAClE,sEAAsE;QACtE,qDAAqD;QACrD,IAAA,4CAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;;OASG;IACH,iBAAiB,CAAC,OAAsB;QACtC,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB,CAAC,MAAc;QACrC,MAAM,IAAI,GAAyB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC;QAC1D,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC9F,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,IAAI,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,OAA0B;QAClD,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAkB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QACtC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,GAAG,GAAG,EAAE,GAAG,2BAAmB;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;gBAC5D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAClG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY;YAC1C,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;YAC1C,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAU;QACnB,MAAM,IAAI,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,OAAO,GAA6B,IAAI,CAAC;QAC7C,OAAO,OAAO,EAAE,CAAC;YACf,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;gBAAE,MAAM;YACrC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,mBAAmB,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY;QACrB,MAAM,KAAK,GAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY;QACzB,MAAM,OAAO,GAAW,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;QAClE,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,GAAG,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aACvC,MAAM,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,6EAA6E;IAE7E,SAAS;QACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,eAAe;QACb,MAAM,SAAS,GAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACnG,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAc,EAAY,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACvF,SAAS;YACT,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;SAChD,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB,CAAC,MAAc;QAChC,MAAM,SAAS,GAAmB,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACH,kBAAkB;QAChB,MAAM,GAAG,GAAgB,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,QAA2B,EAAE,YAAoB;QAChE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,GAAiB,IAAI,CAAC;YACpE,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAU,EAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3G,IAAI,CAAC,eAAe,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAClG,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,YAAoB;QAClC,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAA,+CAAyB,GAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;;AAjyBH,8BAkyBC;AAjyBgB,mBAAS,GAAqB,IAAI,AAAzB,CAA0B;AAmyBpD;;;;;;;;;GASG;AACH,SAAgB,aAAa;IAC3B,OAAO,SAAS,CAAC,YAAY,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file The PACS query index: what has already been asked, and answered.
|
|
3
|
+
*
|
|
4
|
+
* CUBE keeps every PACS query it has run, criteria and result both, so a
|
|
5
|
+
* question asked before need not be asked again. It cannot be *searched*
|
|
6
|
+
* for, though: the queries collection accepts no parameter over the stored
|
|
7
|
+
* criteria, and every row of every page drags its compressed result along —
|
|
8
|
+
* kilobytes each, thousands of rows. Looking a question up by sweeping that
|
|
9
|
+
* collection would cost megabytes, and would cost them most often on a
|
|
10
|
+
* MISS, which is the common case for a genuinely new query. A client that
|
|
11
|
+
* searched naively would make every new query slower than not searching.
|
|
12
|
+
*
|
|
13
|
+
* So the collection is walked once, in the background, and what is learned
|
|
14
|
+
* is kept here: criteria and server in, the stored query's id out. A lookup
|
|
15
|
+
* is then a map read.
|
|
16
|
+
*
|
|
17
|
+
* The index is ADVISORY. A hit is a claim to be confirmed — the caller
|
|
18
|
+
* decodes the stored result before serving it, and any failure (the query
|
|
19
|
+
* deleted, the result unreadable) falls through to a fresh query. A stale
|
|
20
|
+
* entry can therefore cost a wasted lookup and never a wrong answer, which
|
|
21
|
+
* is what makes it safe to keep across restarts and to fill lazily.
|
|
22
|
+
*
|
|
23
|
+
* It is also the log itself. Each entry carries the criteria and owner the
|
|
24
|
+
* VFS renders into `/net/pacs/queries/<name>`, so that listing can be
|
|
25
|
+
* served from here — complete, rather than the first page of it.
|
|
26
|
+
*
|
|
27
|
+
* @module
|
|
28
|
+
*/
|
|
29
|
+
/** What the index knows about one stored query. */
|
|
30
|
+
export interface QueryIndexEntry {
|
|
31
|
+
/** The stored CUBE query's id — what a replay decodes. */
|
|
32
|
+
queryId: number;
|
|
33
|
+
/** The PACS this was asked of; part of the key, kept for the listing. */
|
|
34
|
+
server: string;
|
|
35
|
+
/** The criteria as asked, for rebuilding the log's display name. */
|
|
36
|
+
criteria: Record<string, string>;
|
|
37
|
+
/** Who asked. Part of the log's display name. */
|
|
38
|
+
owner: string;
|
|
39
|
+
/** When the query record was created — the age a replay states. */
|
|
40
|
+
answeredAt: string;
|
|
41
|
+
/**
|
|
42
|
+
* Whether it found anything.
|
|
43
|
+
*
|
|
44
|
+
* A query that found nothing is indexed *as such* rather than omitted,
|
|
45
|
+
* so a replay can refuse it knowingly. An absence decays where a hit does
|
|
46
|
+
* not: the patient is scanned next week, and "no imaging found" is the
|
|
47
|
+
* answer a clinician acts on.
|
|
48
|
+
*/
|
|
49
|
+
hasResult: boolean;
|
|
50
|
+
}
|
|
51
|
+
/** One entry with the key it is filed under. */
|
|
52
|
+
export interface QueryIndexEntrySnapshot extends QueryIndexEntry {
|
|
53
|
+
key: string;
|
|
54
|
+
}
|
|
55
|
+
/** The whole index, and how far the back-fill has walked. */
|
|
56
|
+
export interface QueryIndexSnapshot {
|
|
57
|
+
entries: QueryIndexEntrySnapshot[];
|
|
58
|
+
/**
|
|
59
|
+
* The oldest record the back-fill has reached, as an ISO timestamp.
|
|
60
|
+
*
|
|
61
|
+
* The sweep walks newest first, so this is where it resumes — everything
|
|
62
|
+
* newer is already held. Null before the first sweep.
|
|
63
|
+
*/
|
|
64
|
+
floor: string | null;
|
|
65
|
+
}
|
|
66
|
+
/** Told after any mutation, so a checkpoint writer can debounce on it. */
|
|
67
|
+
export type QueryIndexListener = () => void;
|
|
68
|
+
/**
|
|
69
|
+
* Builds the key a question is filed under.
|
|
70
|
+
*
|
|
71
|
+
* Two questions are the same question when their criteria sets are equal
|
|
72
|
+
* and they were asked of the same PACS. Key order and surrounding
|
|
73
|
+
* whitespace are normalized away because they are how the question was
|
|
74
|
+
* *typed*, not what it asked. Values are otherwise left exactly as given:
|
|
75
|
+
* they are the PACS's own vocabulary, and mise does not get to reinterpret
|
|
76
|
+
* them — a case fold here would silently claim that two DICOM values match
|
|
77
|
+
* when only the PACS can say so.
|
|
78
|
+
*
|
|
79
|
+
* The owner is part of the question. The index holds the whole log —
|
|
80
|
+
* every identity's queries, because that is what `/net/pacs/queries` lists
|
|
81
|
+
* — while a replay may only ever serve back an answer to the identity that
|
|
82
|
+
* asked for it. Keying by owner makes those two facts one lookup instead of
|
|
83
|
+
* a filter somebody can forget.
|
|
84
|
+
*
|
|
85
|
+
* @param criteria - The criteria as asked.
|
|
86
|
+
* @param server - The PACS identifier the query was asked of.
|
|
87
|
+
* @param owner - The identity that asked.
|
|
88
|
+
* @returns The key, stable for equal questions.
|
|
89
|
+
*/
|
|
90
|
+
export declare function queryKey_build(criteria: Record<string, string>, server: string, owner: string): string;
|
|
91
|
+
/**
|
|
92
|
+
* Parses the criteria CUBE stores as a JSON string on a query record.
|
|
93
|
+
*
|
|
94
|
+
* @param raw - The record's `query` field.
|
|
95
|
+
* @returns The criteria, or null when the field is absent or unparseable.
|
|
96
|
+
*/
|
|
97
|
+
export declare function queryCriteria_parse(raw: unknown): Record<string, string> | null;
|
|
98
|
+
/**
|
|
99
|
+
* What has already been asked of which PACS, and where the answer is kept.
|
|
100
|
+
*/
|
|
101
|
+
export declare class QueryIndex {
|
|
102
|
+
/**
|
|
103
|
+
* Every record, by its query id. This is the log: asking the same thing
|
|
104
|
+
* twice leaves two records, and both remain reachable.
|
|
105
|
+
*/
|
|
106
|
+
private entries;
|
|
107
|
+
/**
|
|
108
|
+
* Question to the newest record answering it. This is the lookup: a
|
|
109
|
+
* replay wants the most recent answer, not every answer.
|
|
110
|
+
*/
|
|
111
|
+
private byQuestion;
|
|
112
|
+
private floor;
|
|
113
|
+
private listeners;
|
|
114
|
+
/**
|
|
115
|
+
* Files a query under its question.
|
|
116
|
+
*
|
|
117
|
+
* The newest answer to a question wins: asking the same thing twice
|
|
118
|
+
* leaves the later record indexed, which is the one whose age a replay
|
|
119
|
+
* should state.
|
|
120
|
+
*
|
|
121
|
+
* @param entry - What was asked, of whom, and what came back.
|
|
122
|
+
*/
|
|
123
|
+
entry_note(entry: QueryIndexEntry): void;
|
|
124
|
+
/**
|
|
125
|
+
* Looks a question up.
|
|
126
|
+
*
|
|
127
|
+
* @param criteria - The criteria being asked.
|
|
128
|
+
* @param server - The PACS being asked.
|
|
129
|
+
* @param owner - The identity asking; another identity's answer is not
|
|
130
|
+
* an answer to this question.
|
|
131
|
+
* @returns What is known, or null when this question is new to the index.
|
|
132
|
+
*/
|
|
133
|
+
entry_find(criteria: Record<string, string>, server: string, owner: string): QueryIndexEntry | null;
|
|
134
|
+
/**
|
|
135
|
+
* Forgets one query, for when its stored answer turns out to be gone.
|
|
136
|
+
*
|
|
137
|
+
* @param criteria - The criteria it was filed under.
|
|
138
|
+
* @param server - The PACS it was asked of.
|
|
139
|
+
* @param owner - The identity that asked.
|
|
140
|
+
*/
|
|
141
|
+
entry_drop(criteria: Record<string, string>, server: string, owner: string): void;
|
|
142
|
+
/**
|
|
143
|
+
* Every record, for the callers that render the log rather than search it.
|
|
144
|
+
*
|
|
145
|
+
* This is the whole log — every query, not one per question — because
|
|
146
|
+
* that is what `/net/pacs/queries` lists and what an operator went
|
|
147
|
+
* looking for when they could not find a query they knew they had run.
|
|
148
|
+
*/
|
|
149
|
+
entries_all(): QueryIndexEntry[];
|
|
150
|
+
/** How many records the index holds. */
|
|
151
|
+
size_get(): number;
|
|
152
|
+
/** How many distinct questions those records answer. */
|
|
153
|
+
questions_count(): number;
|
|
154
|
+
/**
|
|
155
|
+
* The newest record held, which is where a resumed sweep starts.
|
|
156
|
+
*
|
|
157
|
+
* A completed sweep has walked everything down to the floor, so the only
|
|
158
|
+
* thing a later boot can be missing is what arrived since. Asking CUBE
|
|
159
|
+
* for records at or after this turns a rebuild into a top-up.
|
|
160
|
+
*
|
|
161
|
+
* @returns An ISO timestamp, or null when the index is empty.
|
|
162
|
+
*/
|
|
163
|
+
newest_get(): string | null;
|
|
164
|
+
/**
|
|
165
|
+
* The oldest record the back-fill has walked, where it resumes.
|
|
166
|
+
*
|
|
167
|
+
* @returns An ISO timestamp, or null before the first sweep.
|
|
168
|
+
*/
|
|
169
|
+
floor_get(): string | null;
|
|
170
|
+
/**
|
|
171
|
+
* Records how far back the sweep has reached.
|
|
172
|
+
*
|
|
173
|
+
* @param at - The oldest record walked, as an ISO timestamp.
|
|
174
|
+
*/
|
|
175
|
+
floor_set(at: string): void;
|
|
176
|
+
/**
|
|
177
|
+
* Creates a persistence-safe copy.
|
|
178
|
+
*
|
|
179
|
+
* @returns The snapshot.
|
|
180
|
+
*/
|
|
181
|
+
snapshot_create(): QueryIndexSnapshot;
|
|
182
|
+
/**
|
|
183
|
+
* Merges a snapshot in, keeping anything this process already learned:
|
|
184
|
+
* a query indexed since the checkpoint was written is newer than the
|
|
185
|
+
* checkpoint by definition.
|
|
186
|
+
*
|
|
187
|
+
* @param snapshot - A validated snapshot.
|
|
188
|
+
*/
|
|
189
|
+
snapshot_restore(snapshot: QueryIndexSnapshot): void;
|
|
190
|
+
/**
|
|
191
|
+
* Registers a listener told after any mutation.
|
|
192
|
+
*
|
|
193
|
+
* @param listener - The listener.
|
|
194
|
+
* @returns A function that removes it.
|
|
195
|
+
*/
|
|
196
|
+
changeListener_add(listener: QueryIndexListener): () => void;
|
|
197
|
+
/** Empties the index. For tests, and for a change of identity. */
|
|
198
|
+
reset(): void;
|
|
199
|
+
/** Tells every listener. A listener that throws must not stop the rest. */
|
|
200
|
+
private change_emit;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* The process-wide query index.
|
|
204
|
+
*
|
|
205
|
+
* @returns The singleton.
|
|
206
|
+
*/
|
|
207
|
+
export declare function queryIndex_get(): QueryIndex;
|