@fnndsc/cumin 3.19.0 → 3.20.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.
@@ -65,6 +65,7 @@ exports.collectionItems_get = collectionItems_get;
65
65
  exports.resource_call = resource_call;
66
66
  exports.method_exists = method_exists;
67
67
  exports.pacsRetrieve_deleteByUrl = pacsRetrieve_deleteByUrl;
68
+ const pace_js_1 = require("./pace.js");
68
69
  const chrisapi_1 = __importStar(require("@fnndsc/chrisapi"));
69
70
  exports.Client = chrisapi_1.default;
70
71
  /**
@@ -204,7 +205,15 @@ async function resource_call(obj, methodName, ...args) {
204
205
  if (typeof method !== 'function') {
205
206
  throw new Error(`chrisapi object has no method '${methodName}'`);
206
207
  }
207
- return method.apply(obj, args);
208
+ if (!(0, pace_js_1.pace_isPageMethod)(methodName)) {
209
+ return method.apply(obj, args);
210
+ }
211
+ // A page fetch is timed: the pace register is how a surface turns a
212
+ // walk's page count into minutes.
213
+ const startedAt = performance.now();
214
+ const result = await method.apply(obj, args);
215
+ (0, pace_js_1.pace_note)(Math.round(performance.now() - startedAt));
216
+ return result;
208
217
  }
209
218
  /**
210
219
  * Tests whether a chrisapi object exposes a named runtime method.
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/chrisapi/adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DH,sCAMC;AASD,sCAEC;AAQD,wCAEC;AAUD,sDAUC;AAYD,kDAaC;AAQD,0CAEC;AAQD,oCAGC;AAQD,oCAGC;AAQD,8BAGC;AAQD,kDAKC;AAeD,sCAUC;AAYD,sCAEC;AAWD,4DAMC;AAlPD,6DAA+E;AAQtE,iBARF,kBAAM,CAQE;AAyCf;;;;;;;;GAQG;AACI,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,IAAY,EACZ,QAAgB;IAEhB,OAAO,kBAAM,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,GAAW,EAAE,KAAa;IACtD,OAAO,IAAI,kBAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,MAAc;IAC3C,OAAQ,MAA0C,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,qBAAqB,CAAC,MAAc;IACxD,MAAM,KAAK,GACT,MAAyE,CAAC;IAC5E,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3D,sEAAsE;QACtE,yEAAyE;QACzE,6CAA6C;QAC7C,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,IAAY,EACZ,MAAsB,EACtB,IAA6B;IAE7B,MAAM,QAAQ,GAAkB,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAY,IAAI,kBAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAChG,MAAM,GAAG,GAAW,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjG,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC9G,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,QAAiB;IAC/C,OAAO,QAAQ,YAAY,uBAAY,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAI,IAA2C;IACzE,MAAM,IAAI,GAAY,IAAI,EAAE,IAAI,CAAC;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAI,IAA2C;IACzE,MAAM,IAAI,GAAY,IAAI,EAAE,IAAI,CAAC;IACjC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAU,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAI,IAAgD;IAC3E,MAAM,KAAK,GAAY,IAAI,EAAE,QAAQ,EAAE,CAAC;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,QAAqD;IAErD,MAAM,KAAK,GAAa,QAAQ,EAAE,UAA8C,EAAE,KAAK,CAAC;IACxF,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,UAAkB,EAClB,GAAG,IAAe;IAElB,MAAM,MAAM,GAAa,GAA+B,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,OAAQ,MAAiD,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAAC,GAAW,EAAE,UAAkB;IAC3D,OAAO,OAAQ,GAA+B,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC;AAC5E,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,wBAAwB,CAC5C,WAAmB,EACnB,IAAgB;IAEhB,MAAM,QAAQ,GAAiB,IAAI,uBAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/chrisapi/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @file CUBE pace: how long a page of a list takes to come back.
3
+ *
4
+ * Every paged read of CUBE (feeds, public feeds, plugin instances) is timed
5
+ * as it passes through {@link resource_call}, and the last twenty samples
6
+ * are kept. The daemon's telemetry carries the median so a surface can say
7
+ * what a walk costs in time, not only in pages.
8
+ *
9
+ * @module
10
+ */
11
+ /** How many recent page timings the register keeps. */
12
+ export declare const PACE_WINDOW: number;
13
+ /** What the register says about CUBE's pace. */
14
+ export interface CubePace {
15
+ /** Median wall time of one page fetch over the window, in milliseconds. */
16
+ msPerPage: number;
17
+ /** How many page fetches the median is over. */
18
+ samples: number;
19
+ /** When the latest sample landed (epoch milliseconds). */
20
+ at: number;
21
+ }
22
+ /**
23
+ * Whether a chrisapi method is a paged list read the register times.
24
+ *
25
+ * @param methodName - The method about to be invoked.
26
+ * @returns True for the page fetchers.
27
+ */
28
+ export declare function pace_isPageMethod(methodName: string): boolean;
29
+ /**
30
+ * Records one page fetch's wall time.
31
+ *
32
+ * @param ms - How long the fetch took.
33
+ * @param at - When it landed (default now).
34
+ */
35
+ export declare function pace_note(ms: number, at?: number): void;
36
+ /**
37
+ * The pace CUBE is serving pages at, or null before any page was timed.
38
+ *
39
+ * @returns The median over the window, its size, and the latest sample's time.
40
+ */
41
+ export declare function pace_get(): CubePace | null;
42
+ /** Forgets every sample (tests). */
43
+ export declare function pace_reset(): void;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * @file CUBE pace: how long a page of a list takes to come back.
4
+ *
5
+ * Every paged read of CUBE (feeds, public feeds, plugin instances) is timed
6
+ * as it passes through {@link resource_call}, and the last twenty samples
7
+ * are kept. The daemon's telemetry carries the median so a surface can say
8
+ * what a walk costs in time, not only in pages.
9
+ *
10
+ * @module
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.PACE_WINDOW = void 0;
14
+ exports.pace_isPageMethod = pace_isPageMethod;
15
+ exports.pace_note = pace_note;
16
+ exports.pace_get = pace_get;
17
+ exports.pace_reset = pace_reset;
18
+ /** The chrisapi methods that fetch one page of a list. */
19
+ const PAGE_METHODS = new Set(['getFeeds', 'getPublicFeeds', 'getPluginInstances']);
20
+ /** How many recent page timings the register keeps. */
21
+ exports.PACE_WINDOW = 20;
22
+ const samples = [];
23
+ /**
24
+ * Whether a chrisapi method is a paged list read the register times.
25
+ *
26
+ * @param methodName - The method about to be invoked.
27
+ * @returns True for the page fetchers.
28
+ */
29
+ function pace_isPageMethod(methodName) {
30
+ return PAGE_METHODS.has(methodName);
31
+ }
32
+ /**
33
+ * Records one page fetch's wall time.
34
+ *
35
+ * @param ms - How long the fetch took.
36
+ * @param at - When it landed (default now).
37
+ */
38
+ function pace_note(ms, at = Date.now()) {
39
+ samples.push({ ms, at });
40
+ if (samples.length > exports.PACE_WINDOW)
41
+ samples.splice(0, samples.length - exports.PACE_WINDOW);
42
+ }
43
+ /**
44
+ * The pace CUBE is serving pages at, or null before any page was timed.
45
+ *
46
+ * @returns The median over the window, its size, and the latest sample's time.
47
+ */
48
+ function pace_get() {
49
+ if (samples.length === 0)
50
+ return null;
51
+ const sorted = samples.map((s) => s.ms).sort((a, b) => a - b);
52
+ const mid = Math.floor(sorted.length / 2);
53
+ const median = sorted.length % 2 === 1 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
54
+ return { msPerPage: Math.round(median), samples: samples.length, at: samples[samples.length - 1].at };
55
+ }
56
+ /** Forgets every sample (tests). */
57
+ function pace_reset() {
58
+ samples.length = 0;
59
+ }
60
+ //# sourceMappingURL=pace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pace.js","sourceRoot":"","sources":["../../src/chrisapi/pace.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AA0BH,8CAEC;AAQD,8BAGC;AAOD,4BAMC;AAGD,gCAEC;AAvDD,0DAA0D;AAC1D,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAExG,uDAAuD;AAC1C,QAAA,WAAW,GAAW,EAAE,CAAC;AAYtC,MAAM,OAAO,GAAsC,EAAE,CAAC;AAEtD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,UAAkB;IAClD,OAAO,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,EAAU,EAAE,KAAa,IAAI,CAAC,GAAG,EAAE;IAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAW;QAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,mBAAW,CAAC,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ;IACtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAa,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxG,MAAM,GAAG,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,GAAG,CAAY,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAY,GAAI,MAAM,CAAC,GAAG,CAAY,CAAC,GAAG,CAAC,CAAC;IACvI,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,EAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAoB,CAAC,EAAE,EAAE,CAAC;AAC5H,CAAC;AAED,oCAAoC;AACpC,SAAgB,UAAU;IACxB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACrB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -46,6 +46,7 @@ export * from "./pluginmetas/chrisPluginMetas";
46
46
  export * from "./workflows/chrisWorkflows";
47
47
  export * from "./output/runtimeOutput";
48
48
  export { listData_get, itemData_get, items_get } from "./chrisapi/adapter";
49
+ export { pace_get, pace_note, pace_reset, pace_isPageMethod, PACE_WINDOW, type CubePace } from "./chrisapi/pace";
49
50
  export { feedsPage_get, publicFeedsPage_get, pluginInstancesPage_get, pluginInstance_get, plugin_find, pluginParameters_drain, pipeline_get, pipelineSourceFilesPage_get, pipelineSourceFiles_drain, downloadToken_create, listPages_walk, listPages_walkWindowed, type WindowedPageWalkOptions, listPages_drain, collectionPage_wrap, } from "./chrisapi/contract";
50
51
  export type { ListPage, PageWalkOptions, PageWalkStep, FeedData, PluginInstanceData, InstanceParameterData, DownloadToken, PluginInstanceHandle, PipelineHandle, PluginPipingItem, PluginPipingData, PipingDefaultParameterData, PipelineSourceFileData, PluginParameterData, ComputeResourceData, PluginHandle, PluginData, PluginFound, } from "./chrisapi/contract";
51
52
  export type { ListResource, Resource, ItemResource, PluginInstance, Feed, FileBrowserFolder, UserFile, PACSFile, } from "./chrisapi/adapter";
package/dist/index.js CHANGED
@@ -24,7 +24,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
24
24
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.collectionPage_wrap = exports.listPages_drain = exports.listPages_walkWindowed = exports.listPages_walk = exports.downloadToken_create = exports.pipelineSourceFiles_drain = exports.pipelineSourceFilesPage_get = exports.pipeline_get = exports.pluginParameters_drain = exports.plugin_find = exports.pluginInstance_get = exports.pluginInstancesPage_get = exports.publicFeedsPage_get = exports.feedsPage_get = exports.items_get = exports.itemData_get = exports.listData_get = void 0;
27
+ exports.collectionPage_wrap = exports.listPages_drain = exports.listPages_walkWindowed = exports.listPages_walk = exports.downloadToken_create = exports.pipelineSourceFiles_drain = exports.pipelineSourceFilesPage_get = exports.pipeline_get = exports.pluginParameters_drain = exports.plugin_find = exports.pluginInstance_get = exports.pluginInstancesPage_get = exports.publicFeedsPage_get = exports.feedsPage_get = exports.PACE_WINDOW = exports.pace_isPageMethod = exports.pace_reset = exports.pace_note = exports.pace_get = exports.items_get = exports.itemData_get = exports.listData_get = void 0;
28
28
  exports.chrisVersion_get = chrisVersion_get;
29
29
  __exportStar(require("./"), exports);
30
30
  __exportStar(require("./error/errorStack"), exports);
@@ -68,6 +68,12 @@ var adapter_1 = require("./chrisapi/adapter");
68
68
  Object.defineProperty(exports, "listData_get", { enumerable: true, get: function () { return adapter_1.listData_get; } });
69
69
  Object.defineProperty(exports, "itemData_get", { enumerable: true, get: function () { return adapter_1.itemData_get; } });
70
70
  Object.defineProperty(exports, "items_get", { enumerable: true, get: function () { return adapter_1.items_get; } });
71
+ var pace_1 = require("./chrisapi/pace");
72
+ Object.defineProperty(exports, "pace_get", { enumerable: true, get: function () { return pace_1.pace_get; } });
73
+ Object.defineProperty(exports, "pace_note", { enumerable: true, get: function () { return pace_1.pace_note; } });
74
+ Object.defineProperty(exports, "pace_reset", { enumerable: true, get: function () { return pace_1.pace_reset; } });
75
+ Object.defineProperty(exports, "pace_isPageMethod", { enumerable: true, get: function () { return pace_1.pace_isPageMethod; } });
76
+ Object.defineProperty(exports, "PACE_WINDOW", { enumerable: true, get: function () { return pace_1.PACE_WINDOW; } });
71
77
  // Typed wire contract over the hot API surfaces (jobs, PACS): downstream
72
78
  // packages call these instead of casting the opaque client per call site.
73
79
  var contract_1 = require("./chrisapi/contract");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;AAsHH,4CAKC;AAzHD,qCAAmB;AACnB,qDAAmC;AACnC,kDAAgC;AAChC,oDAAkC;AAClC,4DAA0C;AAC1C,yDAAuC;AACvC,yDAAuC;AACvC,mEAAiD;AACjD,6DAA2C;AAC3C,mDAAiC;AACjC,yDAAuC;AACvC,sDAAoC;AACpC,6DAA2C;AAC3C,iEAA+C;AAC/C,8DAA4C;AAC5C,yEAAuD;AACvD,iEAA+C;AAC/C,2DAAyC;AACzC,0DAAwC;AACxC,8DAA4C;AAC5C,+CAA6B;AAC7B,0CAAwB;AACxB,+CAA6B;AAC7B,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,gDAA8B;AAC9B,mDAAiC;AACjC,0CAAwB;AACxB,mDAAiC;AACjC,4DAA0C;AAC1C,qDAAmC;AACnC,mDAAiC;AACjC,uDAAqC;AACrC,iEAA+C;AAC/C,6DAA2C;AAC3C,yDAAuC;AAEvC,iFAAiF;AACjF,8CAA2E;AAAlE,uGAAA,YAAY,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,oGAAA,SAAS,OAAA;AAE9C,yEAAyE;AACzE,0EAA0E;AAC1E,gDAc6B;AAb3B,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,8GAAA,kBAAkB,OAAA;AAClB,uGAAA,WAAW,OAAA;AACX,kHAAA,sBAAsB,OAAA;AACtB,wGAAA,YAAY,OAAA;AACZ,uHAAA,2BAA2B,OAAA;AAC3B,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,0GAAA,cAAc,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AACtC,2GAAA,eAAe,OAAA;AACf,+GAAA,mBAAmB,OAAA;AAsDrB;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAW,OAAO,CAAC;IAChC,wCAAwC;IACxC,6CAA6C;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC;AAED,gEAAgE;AAChE,qCAAqC;AACrC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;AAuHH,4CAKC;AA1HD,qCAAmB;AACnB,qDAAmC;AACnC,kDAAgC;AAChC,oDAAkC;AAClC,4DAA0C;AAC1C,yDAAuC;AACvC,yDAAuC;AACvC,mEAAiD;AACjD,6DAA2C;AAC3C,mDAAiC;AACjC,yDAAuC;AACvC,sDAAoC;AACpC,6DAA2C;AAC3C,iEAA+C;AAC/C,8DAA4C;AAC5C,yEAAuD;AACvD,iEAA+C;AAC/C,2DAAyC;AACzC,0DAAwC;AACxC,8DAA4C;AAC5C,+CAA6B;AAC7B,0CAAwB;AACxB,+CAA6B;AAC7B,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,gDAA8B;AAC9B,mDAAiC;AACjC,0CAAwB;AACxB,mDAAiC;AACjC,4DAA0C;AAC1C,qDAAmC;AACnC,mDAAiC;AACjC,uDAAqC;AACrC,iEAA+C;AAC/C,6DAA2C;AAC3C,yDAAuC;AAEvC,iFAAiF;AACjF,8CAA2E;AAAlE,uGAAA,YAAY,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,oGAAA,SAAS,OAAA;AAC9C,wCAAiH;AAAxG,gGAAA,QAAQ,OAAA;AAAE,iGAAA,SAAS,OAAA;AAAE,kGAAA,UAAU,OAAA;AAAE,yGAAA,iBAAiB,OAAA;AAAE,mGAAA,WAAW,OAAA;AAExE,yEAAyE;AACzE,0EAA0E;AAC1E,gDAc6B;AAb3B,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,8GAAA,kBAAkB,OAAA;AAClB,uGAAA,WAAW,OAAA;AACX,kHAAA,sBAAsB,OAAA;AACtB,wGAAA,YAAY,OAAA;AACZ,uHAAA,2BAA2B,OAAA;AAC3B,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,0GAAA,cAAc,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AACtC,2GAAA,eAAe,OAAA;AACf,+GAAA,mBAAmB,OAAA;AAsDrB;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAW,OAAO,CAAC;IAChC,wCAAwC;IACxC,6CAA6C;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC5B,CAAC;AAED,gEAAgE;AAChE,qCAAqC;AACrC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fnndsc/cumin",
3
- "version": "3.19.0",
3
+ "version": "3.20.0",
4
4
  "description": "Utility library for ChILI and other ChRIS-related JavaScript applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -63,6 +63,6 @@
63
63
  "@fnndsc/chrisapi": "^1.25.0",
64
64
  "chalk": "^4.1.2",
65
65
  "figlet": "^1.7.0",
66
- "@fnndsc/menu": "^0.5.0"
66
+ "@fnndsc/menu": "^0.6.0"
67
67
  }
68
68
  }