@fnndsc/cumin 3.2.4
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/LICENSE +21 -0
- package/README.md +78 -0
- package/dist/activities/chrisActivity.d.ts +19 -0
- package/dist/activities/chrisActivity.js +29 -0
- package/dist/activities/chrisActivity.js.map +1 -0
- package/dist/cache/index.d.ts +9 -0
- package/dist/cache/index.js +15 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/listCache.d.ts +182 -0
- package/dist/cache/listCache.js +266 -0
- package/dist/cache/listCache.js.map +1 -0
- package/dist/cache/procCache.d.ts +150 -0
- package/dist/cache/procCache.js +257 -0
- package/dist/cache/procCache.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.js +43 -0
- package/dist/cli.js.map +1 -0
- package/dist/compute/computeResources.d.ts +65 -0
- package/dist/compute/computeResources.js +113 -0
- package/dist/compute/computeResources.js.map +1 -0
- package/dist/config/config.d.ts +221 -0
- package/dist/config/config.js +350 -0
- package/dist/config/config.js.map +1 -0
- package/dist/connect/chrisConnection.d.ts +121 -0
- package/dist/connect/chrisConnection.js +303 -0
- package/dist/connect/chrisConnection.js.map +1 -0
- package/dist/context/chrisContext.d.ts +110 -0
- package/dist/context/chrisContext.js +324 -0
- package/dist/context/chrisContext.js.map +1 -0
- package/dist/error/errorStack.d.ts +115 -0
- package/dist/error/errorStack.js +175 -0
- package/dist/error/errorStack.js.map +1 -0
- package/dist/feeds/chrisFeed.d.ts +188 -0
- package/dist/feeds/chrisFeed.js +432 -0
- package/dist/feeds/chrisFeed.js.map +1 -0
- package/dist/filebrowser/chrisFileBrowser.d.ts +77 -0
- package/dist/filebrowser/chrisFileBrowser.js +134 -0
- package/dist/filebrowser/chrisFileBrowser.js.map +1 -0
- package/dist/filebrowser/chrisFiles.d.ts +67 -0
- package/dist/filebrowser/chrisFiles.js +130 -0
- package/dist/filebrowser/chrisFiles.js.map +1 -0
- package/dist/filebrowser/chrisPACS.d.ts +43 -0
- package/dist/filebrowser/chrisPACS.js +103 -0
- package/dist/filebrowser/chrisPACS.js.map +1 -0
- package/dist/filebrowser/chrisPipeline.d.ts +47 -0
- package/dist/filebrowser/chrisPipeline.js +118 -0
- package/dist/filebrowser/chrisPipeline.js.map +1 -0
- package/dist/groups/chrisGroups.d.ts +11 -0
- package/dist/groups/chrisGroups.js +18 -0
- package/dist/groups/chrisGroups.js.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/io/browser_io.d.ts +97 -0
- package/dist/io/browser_io.js +149 -0
- package/dist/io/browser_io.js.map +1 -0
- package/dist/io/chrisIO.d.ts +110 -0
- package/dist/io/chrisIO.js +415 -0
- package/dist/io/chrisIO.js.map +1 -0
- package/dist/io/io.d.ts +21 -0
- package/dist/io/io.js +6 -0
- package/dist/io/io.js.map +1 -0
- package/dist/io/node_io.d.ts +30 -0
- package/dist/io/node_io.js +188 -0
- package/dist/io/node_io.js.map +1 -0
- package/dist/jobs/chrisJob.d.ts +43 -0
- package/dist/jobs/chrisJob.js +169 -0
- package/dist/jobs/chrisJob.js.map +1 -0
- package/dist/jobs/index.d.ts +7 -0
- package/dist/jobs/index.js +24 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/jobMonitor.d.ts +46 -0
- package/dist/jobs/jobMonitor.js +102 -0
- package/dist/jobs/jobMonitor.js.map +1 -0
- package/dist/pacs/chrisPACS.d.ts +200 -0
- package/dist/pacs/chrisPACS.js +562 -0
- package/dist/pacs/chrisPACS.js.map +1 -0
- package/dist/path/chrisPath.d.ts +78 -0
- package/dist/path/chrisPath.js +190 -0
- package/dist/path/chrisPath.js.map +1 -0
- package/dist/pipelines/chrisPipeline.d.ts +86 -0
- package/dist/pipelines/chrisPipeline.js +180 -0
- package/dist/pipelines/chrisPipeline.js.map +1 -0
- package/dist/pluginmetas/chrisPluginMetas.d.ts +11 -0
- package/dist/pluginmetas/chrisPluginMetas.js +18 -0
- package/dist/pluginmetas/chrisPluginMetas.js.map +1 -0
- package/dist/plugins/chrisPluginMetaPlugins.d.ts +12 -0
- package/dist/plugins/chrisPluginMetaPlugins.js +19 -0
- package/dist/plugins/chrisPluginMetaPlugins.js.map +1 -0
- package/dist/plugins/chrisPlugins.d.ts +127 -0
- package/dist/plugins/chrisPlugins.js +528 -0
- package/dist/plugins/chrisPlugins.js.map +1 -0
- package/dist/resources/chrisEmbeddedResourceGroup.d.ts +73 -0
- package/dist/resources/chrisEmbeddedResourceGroup.js +148 -0
- package/dist/resources/chrisEmbeddedResourceGroup.js.map +1 -0
- package/dist/resources/chrisObjContext.d.ts +16 -0
- package/dist/resources/chrisObjContext.js +109 -0
- package/dist/resources/chrisObjContext.js.map +1 -0
- package/dist/resources/chrisResourceGroup.d.ts +30 -0
- package/dist/resources/chrisResourceGroup.js +47 -0
- package/dist/resources/chrisResourceGroup.js.map +1 -0
- package/dist/resources/chrisResources.d.ts +163 -0
- package/dist/resources/chrisResources.js +415 -0
- package/dist/resources/chrisResources.js.map +1 -0
- package/dist/tags/chrisTags.d.ts +11 -0
- package/dist/tags/chrisTags.js +18 -0
- package/dist/tags/chrisTags.js.map +1 -0
- package/dist/users/chrisUsers.d.ts +34 -0
- package/dist/users/chrisUsers.js +57 -0
- package/dist/users/chrisUsers.js.map +1 -0
- package/dist/utils/keypair.d.ts +77 -0
- package/dist/utils/keypair.js +144 -0
- package/dist/utils/keypair.js.map +1 -0
- package/dist/utils/result.d.ts +77 -0
- package/dist/utils/result.js +58 -0
- package/dist/utils/result.js.map +1 -0
- package/dist/utils/searchable.d.ts +143 -0
- package/dist/utils/searchable.js +212 -0
- package/dist/utils/searchable.js.map +1 -0
- package/dist/workflows/chrisWorkflows.d.ts +11 -0
- package/dist/workflows/chrisWorkflows.js +18 -0
- package/dist/workflows/chrisWorkflows.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Key-Pair and CLI Option Parsing Utilities.
|
|
4
|
+
*
|
|
5
|
+
* This module provides parsing and transformation utilities for converting key-value strings,
|
|
6
|
+
* raw CLI parameters, and command options into standardized ChRIS query payloads and objects.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.dictionary_fromCLI = dictionary_fromCLI;
|
|
12
|
+
exports.keyPairString_parse = keyPairString_parse;
|
|
13
|
+
exports.keyPairParams_apply = keyPairParams_apply;
|
|
14
|
+
exports.listParams_fromOptions = listParams_fromOptions;
|
|
15
|
+
exports.record_extract = record_extract;
|
|
16
|
+
/**
|
|
17
|
+
* Parse a CLI string into a dictionary of arguments.
|
|
18
|
+
*
|
|
19
|
+
* @param cliString - The CLI argument string.
|
|
20
|
+
* @returns A dictionary of parsed arguments.
|
|
21
|
+
*/
|
|
22
|
+
function dictionary_fromCLI(cliString) {
|
|
23
|
+
const result = {};
|
|
24
|
+
// Split the string by spaces, but keep quoted sections together
|
|
25
|
+
const args = cliString.match(/('.*?'|".*?"|\S+)/g) || [];
|
|
26
|
+
let key = "";
|
|
27
|
+
for (let i = 0; i < args.length; i++) {
|
|
28
|
+
let arg = args[i].replace(/^['"]|['"]$/g, ""); // Remove surrounding quotes
|
|
29
|
+
if (arg.startsWith("-")) {
|
|
30
|
+
// This is a key
|
|
31
|
+
key = arg.replace(/^-+/, "");
|
|
32
|
+
result[key] = true; // Default to true, will be overwritten if there's a value
|
|
33
|
+
}
|
|
34
|
+
else if (key) {
|
|
35
|
+
// This is a value
|
|
36
|
+
const numValue = Number(arg);
|
|
37
|
+
result[key] = isNaN(numValue) ? arg : numValue;
|
|
38
|
+
key = "";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse a key-pair string (e.g., "key:value,key2:value2") into an object.
|
|
45
|
+
*
|
|
46
|
+
* @param searchString - The string containing key-value pairs.
|
|
47
|
+
* @returns A record of parsed key-value pairs.
|
|
48
|
+
*/
|
|
49
|
+
function keyPairString_parse(searchString) {
|
|
50
|
+
const searchParams = {};
|
|
51
|
+
const pairs = searchString.split(",").map((pair) => pair.trim());
|
|
52
|
+
pairs.forEach((pair) => {
|
|
53
|
+
const [key, ...valueParts] = pair.split(":").map((s) => s.trim());
|
|
54
|
+
const value = valueParts.join(":").trim(); // Rejoin in case the value contains colons
|
|
55
|
+
if (key && value) {
|
|
56
|
+
searchParams[key] = value;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
return searchParams;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Apply key-pair parameters from a search string to an existing params object.
|
|
63
|
+
*
|
|
64
|
+
* @param params - The base parameters object.
|
|
65
|
+
* @param searchString - Optional search string to parse and merge.
|
|
66
|
+
* @returns The merged parameters object.
|
|
67
|
+
*/
|
|
68
|
+
function keyPairParams_apply(params, searchString) {
|
|
69
|
+
if (searchString) {
|
|
70
|
+
const searchParams = keyPairString_parse(searchString);
|
|
71
|
+
return { ...params, ...searchParams };
|
|
72
|
+
}
|
|
73
|
+
return params;
|
|
74
|
+
}
|
|
75
|
+
function options_reduce(options) {
|
|
76
|
+
if (options.returnFilter && typeof options.returnFilter === "string") {
|
|
77
|
+
try {
|
|
78
|
+
const fieldsToReturn = options.returnFilter
|
|
79
|
+
.split(",")
|
|
80
|
+
.map((field) => field.trim());
|
|
81
|
+
const filteredObj = {};
|
|
82
|
+
for (const field of fieldsToReturn) {
|
|
83
|
+
if (field in options && field !== "returnFilter") {
|
|
84
|
+
filteredObj[field] = options[field];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return filteredObj;
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.error("Error parsing returnFilter field");
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return options;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Convert options object to ChRIS list parameters.
|
|
97
|
+
* Handles pagination, offset, and key-pair filtering.
|
|
98
|
+
*
|
|
99
|
+
* @param options - The raw options object.
|
|
100
|
+
* @param keyPairField - The field name containing the key-pair string.
|
|
101
|
+
* @returns Formatted ListOptions.
|
|
102
|
+
*/
|
|
103
|
+
function listParams_fromOptions(options, keyPairField = "search") {
|
|
104
|
+
const keyPairValue = options[keyPairField];
|
|
105
|
+
options.limit = options.page ? parseInt(options.page, 10) : 20;
|
|
106
|
+
options.offset = options.offset ? options.offset : 0;
|
|
107
|
+
if (typeof keyPairValue === "string") {
|
|
108
|
+
options = keyPairParams_apply(options, keyPairValue);
|
|
109
|
+
}
|
|
110
|
+
if (options.returnFilter && typeof options.returnFilter === "string") {
|
|
111
|
+
options = options_reduce(options);
|
|
112
|
+
}
|
|
113
|
+
return options;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Extract a specific field or fields from a list of records into a QueryHits object.
|
|
117
|
+
*
|
|
118
|
+
* @param arrayList - The list of records.
|
|
119
|
+
* @param record - The field name or an array of field names to extract from each record.
|
|
120
|
+
* @returns A QueryHits object containing the extracted values.
|
|
121
|
+
*/
|
|
122
|
+
function record_extract(arrayList, record) {
|
|
123
|
+
if (typeof record === 'string') {
|
|
124
|
+
const queryHits = {
|
|
125
|
+
hits: arrayList.map((item) => item[record]),
|
|
126
|
+
};
|
|
127
|
+
return queryHits;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const queryHits = {
|
|
131
|
+
hits: arrayList.map((item) => {
|
|
132
|
+
const extracted = {};
|
|
133
|
+
record.forEach(key => {
|
|
134
|
+
if (item[key] !== undefined) {
|
|
135
|
+
extracted[key] = item[key];
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
return extracted;
|
|
139
|
+
}),
|
|
140
|
+
};
|
|
141
|
+
return queryHits;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=keypair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../src/utils/keypair.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Result Type for Explicit Error Handling
|
|
3
|
+
*
|
|
4
|
+
* Provides a type-safe Result type that forces explicit error checking.
|
|
5
|
+
* Used in conjunction with errorStack for error accumulation and UI display.
|
|
6
|
+
*
|
|
7
|
+
* Pattern:
|
|
8
|
+
* - Functions return Result<T> instead of T | null
|
|
9
|
+
* - Errors are pushed to errorStack (for UI display)
|
|
10
|
+
* - Result type forces caller to check .ok before accessing .value
|
|
11
|
+
* - TypeScript prevents accessing .value when ok === false
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Result type representing success or failure.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* async function getData(): Promise<Result<Data>> {
|
|
21
|
+
* if (error) {
|
|
22
|
+
* errorStack.stack_push("error", "Failed to get data");
|
|
23
|
+
* return Err();
|
|
24
|
+
* }
|
|
25
|
+
* return Ok(data);
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* const result = await getData();
|
|
29
|
+
* if (!result.ok) {
|
|
30
|
+
* // Can't access result.value here - TypeScript error
|
|
31
|
+
* console.log(errorStack.stack_search("data"));
|
|
32
|
+
* return;
|
|
33
|
+
* }
|
|
34
|
+
* // TypeScript knows result.ok === true, so .value exists
|
|
35
|
+
* useData(result.value);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export type Result<T> = {
|
|
39
|
+
ok: true;
|
|
40
|
+
value: T;
|
|
41
|
+
} | {
|
|
42
|
+
ok: false;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Creates a successful Result containing a value.
|
|
46
|
+
*
|
|
47
|
+
* @param value - The success value to wrap
|
|
48
|
+
* @returns A Result indicating success
|
|
49
|
+
*/
|
|
50
|
+
export declare function Ok<T>(value: T): Result<T>;
|
|
51
|
+
/**
|
|
52
|
+
* Creates a failed Result.
|
|
53
|
+
*
|
|
54
|
+
* Note: Error details should be pushed to errorStack before calling this.
|
|
55
|
+
*
|
|
56
|
+
* @returns A Result indicating failure
|
|
57
|
+
*/
|
|
58
|
+
export declare function Err<T>(): Result<T>;
|
|
59
|
+
/**
|
|
60
|
+
* Type guard to check if a Result is successful.
|
|
61
|
+
*
|
|
62
|
+
* @param result - The Result to check.
|
|
63
|
+
* @returns True if the Result contains a value.
|
|
64
|
+
*/
|
|
65
|
+
export declare function result_isOk<T>(result: Result<T>): result is {
|
|
66
|
+
ok: true;
|
|
67
|
+
value: T;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Type guard to check if a Result is a failure.
|
|
71
|
+
*
|
|
72
|
+
* @param result - The Result to check.
|
|
73
|
+
* @returns True if the Result is a failure.
|
|
74
|
+
*/
|
|
75
|
+
export declare function result_isErr<T>(result: Result<T>): result is {
|
|
76
|
+
ok: false;
|
|
77
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Result Type for Explicit Error Handling
|
|
4
|
+
*
|
|
5
|
+
* Provides a type-safe Result type that forces explicit error checking.
|
|
6
|
+
* Used in conjunction with errorStack for error accumulation and UI display.
|
|
7
|
+
*
|
|
8
|
+
* Pattern:
|
|
9
|
+
* - Functions return Result<T> instead of T | null
|
|
10
|
+
* - Errors are pushed to errorStack (for UI display)
|
|
11
|
+
* - Result type forces caller to check .ok before accessing .value
|
|
12
|
+
* - TypeScript prevents accessing .value when ok === false
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Ok = Ok;
|
|
18
|
+
exports.Err = Err;
|
|
19
|
+
exports.result_isOk = result_isOk;
|
|
20
|
+
exports.result_isErr = result_isErr;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a successful Result containing a value.
|
|
23
|
+
*
|
|
24
|
+
* @param value - The success value to wrap
|
|
25
|
+
* @returns A Result indicating success
|
|
26
|
+
*/
|
|
27
|
+
function Ok(value) {
|
|
28
|
+
return { ok: true, value };
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates a failed Result.
|
|
32
|
+
*
|
|
33
|
+
* Note: Error details should be pushed to errorStack before calling this.
|
|
34
|
+
*
|
|
35
|
+
* @returns A Result indicating failure
|
|
36
|
+
*/
|
|
37
|
+
function Err() {
|
|
38
|
+
return { ok: false };
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Type guard to check if a Result is successful.
|
|
42
|
+
*
|
|
43
|
+
* @param result - The Result to check.
|
|
44
|
+
* @returns True if the Result contains a value.
|
|
45
|
+
*/
|
|
46
|
+
function result_isOk(result) {
|
|
47
|
+
return result.ok === true;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Type guard to check if a Result is a failure.
|
|
51
|
+
*
|
|
52
|
+
* @param result - The Result to check.
|
|
53
|
+
* @returns True if the Result is a failure.
|
|
54
|
+
*/
|
|
55
|
+
function result_isErr(result) {
|
|
56
|
+
return result.ok === false;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/utils/result.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAmCH,gBAEC;AASD,kBAEC;AAQD,kCAEC;AAQD,oCAEC;AAvCD;;;;;GAKG;AACH,SAAgB,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,GAAG;IACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAI,MAAiB;IAC9C,OAAO,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAI,MAAiB;IAC/C,OAAO,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Searchable String Management
|
|
3
|
+
*
|
|
4
|
+
* This module provides a unified interface for working with ChRIS "searchable" strings.
|
|
5
|
+
* A searchable is a flexible identifier format used to locate ChRIS resources (plugins, feeds, files).
|
|
6
|
+
*
|
|
7
|
+
* Searchable formats:
|
|
8
|
+
* - Simple: "pl-dircopy" → converted to "name: pl-dircopy"
|
|
9
|
+
* - Compound: "name: pl-dircopy, version: 1.3.2" → multiple key:value pairs
|
|
10
|
+
* - Batch: "id:77++id:33++name:pl-test" → multiple searchables for batch operations
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Represents the type of searchable string.
|
|
16
|
+
*/
|
|
17
|
+
export type SearchableType = 'simple' | 'compound' | 'batch';
|
|
18
|
+
/**
|
|
19
|
+
* Internal data structure for a searchable.
|
|
20
|
+
*/
|
|
21
|
+
export interface SearchableData {
|
|
22
|
+
/** Original input string */
|
|
23
|
+
raw: string;
|
|
24
|
+
/** Parsed key-value pairs */
|
|
25
|
+
parsed: Record<string, string>;
|
|
26
|
+
/** Type of searchable */
|
|
27
|
+
type: SearchableType;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Represents a searchable string for ChRIS resource queries.
|
|
31
|
+
*
|
|
32
|
+
* A Searchable encapsulates the logic for parsing, validating, and converting
|
|
33
|
+
* search strings into formats usable by the ChRIS API.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Simple name search
|
|
37
|
+
* const s1 = Searchable.from("pl-dircopy");
|
|
38
|
+
* s1.toQueryParams(); // { name: "pl-dircopy" }
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* // Compound search
|
|
42
|
+
* const s2 = Searchable.from("name: pl-dircopy, version: 1.3.2");
|
|
43
|
+
* s2.toQueryParams(); // { name: "pl-dircopy", version: "1.3.2" }
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* // Batch operations
|
|
47
|
+
* const s3 = Searchable.from("id:77++id:33");
|
|
48
|
+
* s3.toBatchSearchables(); // [Searchable("id:77"), Searchable("id:33")]
|
|
49
|
+
*/
|
|
50
|
+
export declare class Searchable {
|
|
51
|
+
private data;
|
|
52
|
+
private constructor();
|
|
53
|
+
/**
|
|
54
|
+
* Creates a Searchable from any input string.
|
|
55
|
+
* Automatically detects the type (simple, compound, or batch).
|
|
56
|
+
*
|
|
57
|
+
* @param input - The searchable string to parse.
|
|
58
|
+
* @returns A Searchable instance.
|
|
59
|
+
*/
|
|
60
|
+
static from(input: string): Searchable;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a simple searchable from a plain name.
|
|
63
|
+
* Converts "pl-dircopy" → "name: pl-dircopy"
|
|
64
|
+
*
|
|
65
|
+
* @param name - The resource name.
|
|
66
|
+
* @returns A Searchable instance.
|
|
67
|
+
*/
|
|
68
|
+
static simple(name: string): Searchable;
|
|
69
|
+
/**
|
|
70
|
+
* Creates a compound searchable from key:value pairs.
|
|
71
|
+
* Parses "name: pl-dircopy, version: 1.3.2" → { name: "pl-dircopy", version: "1.3.2" }
|
|
72
|
+
*
|
|
73
|
+
* @param keyValueString - Comma-separated key:value pairs.
|
|
74
|
+
* @returns A Searchable instance.
|
|
75
|
+
*/
|
|
76
|
+
static compound(keyValueString: string): Searchable;
|
|
77
|
+
/**
|
|
78
|
+
* Creates a batch searchable containing multiple searchables separated by ++.
|
|
79
|
+
* The parsed result is a placeholder; use toBatchSearchables() to get individual items.
|
|
80
|
+
*
|
|
81
|
+
* @param batchString - Multiple searchables separated by ++.
|
|
82
|
+
* @returns A Searchable instance.
|
|
83
|
+
*/
|
|
84
|
+
static batch(batchString: string): Searchable;
|
|
85
|
+
/**
|
|
86
|
+
* Returns the original raw input string.
|
|
87
|
+
*/
|
|
88
|
+
get raw(): string;
|
|
89
|
+
/**
|
|
90
|
+
* Returns the searchable type.
|
|
91
|
+
*/
|
|
92
|
+
get type(): SearchableType;
|
|
93
|
+
/**
|
|
94
|
+
* Checks if this is a simple searchable (plain name).
|
|
95
|
+
*/
|
|
96
|
+
isSimple(): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Checks if this is a compound searchable (multiple key:value pairs).
|
|
99
|
+
*/
|
|
100
|
+
isCompound(): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Checks if this is a batch searchable (contains ++).
|
|
103
|
+
*/
|
|
104
|
+
isBatch(): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Converts the searchable to query parameters suitable for the ChRIS API.
|
|
107
|
+
* For batch searchables, this returns a placeholder. Use toBatchSearchables() instead.
|
|
108
|
+
*
|
|
109
|
+
* @returns A record of key-value pairs.
|
|
110
|
+
*/
|
|
111
|
+
toQueryParams(): Record<string, string>;
|
|
112
|
+
/**
|
|
113
|
+
* Splits a batch searchable into individual searchables.
|
|
114
|
+
* Only applicable for batch searchables (containing ++).
|
|
115
|
+
*
|
|
116
|
+
* @returns An array of Searchable instances, or a single-item array if not a batch.
|
|
117
|
+
*/
|
|
118
|
+
toBatchSearchables(): Searchable[];
|
|
119
|
+
/**
|
|
120
|
+
* Converts the searchable to a normalized string format suitable for API queries.
|
|
121
|
+
* For simple searchables, this adds the "name:" prefix.
|
|
122
|
+
* For compound searchables, returns the original key:value format.
|
|
123
|
+
* For batch searchables, returns the original ++ separated format.
|
|
124
|
+
*
|
|
125
|
+
* @returns A normalized searchable string.
|
|
126
|
+
*/
|
|
127
|
+
toNormalizedString(): string;
|
|
128
|
+
/**
|
|
129
|
+
* Validates the searchable format.
|
|
130
|
+
* Checks for empty strings and invalid formats.
|
|
131
|
+
*
|
|
132
|
+
* @returns True if valid, false otherwise.
|
|
133
|
+
*/
|
|
134
|
+
validate(): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Returns a string representation of the searchable.
|
|
137
|
+
*/
|
|
138
|
+
toString(): string;
|
|
139
|
+
/**
|
|
140
|
+
* Returns a JSON representation of the searchable.
|
|
141
|
+
*/
|
|
142
|
+
toJSON(): SearchableData;
|
|
143
|
+
}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Searchable String Management
|
|
4
|
+
*
|
|
5
|
+
* This module provides a unified interface for working with ChRIS "searchable" strings.
|
|
6
|
+
* A searchable is a flexible identifier format used to locate ChRIS resources (plugins, feeds, files).
|
|
7
|
+
*
|
|
8
|
+
* Searchable formats:
|
|
9
|
+
* - Simple: "pl-dircopy" → converted to "name: pl-dircopy"
|
|
10
|
+
* - Compound: "name: pl-dircopy, version: 1.3.2" → multiple key:value pairs
|
|
11
|
+
* - Batch: "id:77++id:33++name:pl-test" → multiple searchables for batch operations
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.Searchable = void 0;
|
|
17
|
+
const keypair_js_1 = require("./keypair.js");
|
|
18
|
+
/**
|
|
19
|
+
* Represents a searchable string for ChRIS resource queries.
|
|
20
|
+
*
|
|
21
|
+
* A Searchable encapsulates the logic for parsing, validating, and converting
|
|
22
|
+
* search strings into formats usable by the ChRIS API.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // Simple name search
|
|
26
|
+
* const s1 = Searchable.from("pl-dircopy");
|
|
27
|
+
* s1.toQueryParams(); // { name: "pl-dircopy" }
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* // Compound search
|
|
31
|
+
* const s2 = Searchable.from("name: pl-dircopy, version: 1.3.2");
|
|
32
|
+
* s2.toQueryParams(); // { name: "pl-dircopy", version: "1.3.2" }
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* // Batch operations
|
|
36
|
+
* const s3 = Searchable.from("id:77++id:33");
|
|
37
|
+
* s3.toBatchSearchables(); // [Searchable("id:77"), Searchable("id:33")]
|
|
38
|
+
*/
|
|
39
|
+
class Searchable {
|
|
40
|
+
constructor(data) {
|
|
41
|
+
this.data = data;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Creates a Searchable from any input string.
|
|
45
|
+
* Automatically detects the type (simple, compound, or batch).
|
|
46
|
+
*
|
|
47
|
+
* @param input - The searchable string to parse.
|
|
48
|
+
* @returns A Searchable instance.
|
|
49
|
+
*/
|
|
50
|
+
static from(input) {
|
|
51
|
+
const trimmed = input.trim();
|
|
52
|
+
// Batch: contains ++
|
|
53
|
+
if (trimmed.includes('++')) {
|
|
54
|
+
return Searchable.batch(trimmed);
|
|
55
|
+
}
|
|
56
|
+
// Compound: contains : (key:value format)
|
|
57
|
+
if (trimmed.includes(':')) {
|
|
58
|
+
return Searchable.compound(trimmed);
|
|
59
|
+
}
|
|
60
|
+
// Simple: plain name
|
|
61
|
+
return Searchable.simple(trimmed);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Creates a simple searchable from a plain name.
|
|
65
|
+
* Converts "pl-dircopy" → "name: pl-dircopy"
|
|
66
|
+
*
|
|
67
|
+
* @param name - The resource name.
|
|
68
|
+
* @returns A Searchable instance.
|
|
69
|
+
*/
|
|
70
|
+
static simple(name) {
|
|
71
|
+
const trimmed = name.trim();
|
|
72
|
+
const normalized = `name: ${trimmed}`;
|
|
73
|
+
return new Searchable({
|
|
74
|
+
raw: trimmed,
|
|
75
|
+
parsed: { name: trimmed },
|
|
76
|
+
type: 'simple',
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Creates a compound searchable from key:value pairs.
|
|
81
|
+
* Parses "name: pl-dircopy, version: 1.3.2" → { name: "pl-dircopy", version: "1.3.2" }
|
|
82
|
+
*
|
|
83
|
+
* @param keyValueString - Comma-separated key:value pairs.
|
|
84
|
+
* @returns A Searchable instance.
|
|
85
|
+
*/
|
|
86
|
+
static compound(keyValueString) {
|
|
87
|
+
const trimmed = keyValueString.trim();
|
|
88
|
+
const parsed = (0, keypair_js_1.keyPairString_parse)(trimmed);
|
|
89
|
+
return new Searchable({
|
|
90
|
+
raw: trimmed,
|
|
91
|
+
parsed,
|
|
92
|
+
type: 'compound',
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Creates a batch searchable containing multiple searchables separated by ++.
|
|
97
|
+
* The parsed result is a placeholder; use toBatchSearchables() to get individual items.
|
|
98
|
+
*
|
|
99
|
+
* @param batchString - Multiple searchables separated by ++.
|
|
100
|
+
* @returns A Searchable instance.
|
|
101
|
+
*/
|
|
102
|
+
static batch(batchString) {
|
|
103
|
+
const trimmed = batchString.trim();
|
|
104
|
+
return new Searchable({
|
|
105
|
+
raw: trimmed,
|
|
106
|
+
parsed: { _batch: trimmed }, // Placeholder
|
|
107
|
+
type: 'batch',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Returns the original raw input string.
|
|
112
|
+
*/
|
|
113
|
+
get raw() {
|
|
114
|
+
return this.data.raw;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Returns the searchable type.
|
|
118
|
+
*/
|
|
119
|
+
get type() {
|
|
120
|
+
return this.data.type;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Checks if this is a simple searchable (plain name).
|
|
124
|
+
*/
|
|
125
|
+
isSimple() {
|
|
126
|
+
return this.data.type === 'simple';
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Checks if this is a compound searchable (multiple key:value pairs).
|
|
130
|
+
*/
|
|
131
|
+
isCompound() {
|
|
132
|
+
return this.data.type === 'compound';
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Checks if this is a batch searchable (contains ++).
|
|
136
|
+
*/
|
|
137
|
+
isBatch() {
|
|
138
|
+
return this.data.type === 'batch';
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Converts the searchable to query parameters suitable for the ChRIS API.
|
|
142
|
+
* For batch searchables, this returns a placeholder. Use toBatchSearchables() instead.
|
|
143
|
+
*
|
|
144
|
+
* @returns A record of key-value pairs.
|
|
145
|
+
*/
|
|
146
|
+
toQueryParams() {
|
|
147
|
+
return { ...this.data.parsed };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Splits a batch searchable into individual searchables.
|
|
151
|
+
* Only applicable for batch searchables (containing ++).
|
|
152
|
+
*
|
|
153
|
+
* @returns An array of Searchable instances, or a single-item array if not a batch.
|
|
154
|
+
*/
|
|
155
|
+
toBatchSearchables() {
|
|
156
|
+
if (!this.isBatch()) {
|
|
157
|
+
return [this];
|
|
158
|
+
}
|
|
159
|
+
const parts = this.data.raw.split('++').map((part) => part.trim());
|
|
160
|
+
return parts.map((part) => Searchable.from(part));
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Converts the searchable to a normalized string format suitable for API queries.
|
|
164
|
+
* For simple searchables, this adds the "name:" prefix.
|
|
165
|
+
* For compound searchables, returns the original key:value format.
|
|
166
|
+
* For batch searchables, returns the original ++ separated format.
|
|
167
|
+
*
|
|
168
|
+
* @returns A normalized searchable string.
|
|
169
|
+
*/
|
|
170
|
+
toNormalizedString() {
|
|
171
|
+
if (this.isSimple()) {
|
|
172
|
+
return `name: ${this.data.parsed.name}`;
|
|
173
|
+
}
|
|
174
|
+
return this.data.raw;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Validates the searchable format.
|
|
178
|
+
* Checks for empty strings and invalid formats.
|
|
179
|
+
*
|
|
180
|
+
* @returns True if valid, false otherwise.
|
|
181
|
+
*/
|
|
182
|
+
validate() {
|
|
183
|
+
if (!this.data.raw || this.data.raw.trim().length === 0) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
if (this.isBatch()) {
|
|
187
|
+
// Ensure all batch parts are valid
|
|
188
|
+
const parts = this.toBatchSearchables();
|
|
189
|
+
return parts.every((s) => s.validate());
|
|
190
|
+
}
|
|
191
|
+
if (this.isCompound()) {
|
|
192
|
+
// Ensure at least one key-value pair was parsed
|
|
193
|
+
return Object.keys(this.data.parsed).length > 0;
|
|
194
|
+
}
|
|
195
|
+
// Simple searchables are valid if they have a name
|
|
196
|
+
return !!this.data.parsed.name;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Returns a string representation of the searchable.
|
|
200
|
+
*/
|
|
201
|
+
toString() {
|
|
202
|
+
return `Searchable(type=${this.data.type}, raw="${this.data.raw}")`;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Returns a JSON representation of the searchable.
|
|
206
|
+
*/
|
|
207
|
+
toJSON() {
|
|
208
|
+
return { ...this.data };
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
exports.Searchable = Searchable;
|
|
212
|
+
//# sourceMappingURL=searchable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchable.js","sourceRoot":"","sources":["../../src/utils/searchable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file ChRIS Workflow resources.
|
|
3
|
+
* @module
|
|
4
|
+
*/
|
|
5
|
+
import { ChRISResourceGroup } from '../resources/chrisResourceGroup.js';
|
|
6
|
+
/**
|
|
7
|
+
* Group handler for ChRIS workflows.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ChRISWorkflowGroup extends ChRISResourceGroup {
|
|
10
|
+
constructor();
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file ChRIS Workflow resources.
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ChRISWorkflowGroup = void 0;
|
|
8
|
+
const chrisResourceGroup_js_1 = require("../resources/chrisResourceGroup.js");
|
|
9
|
+
/**
|
|
10
|
+
* Group handler for ChRIS workflows.
|
|
11
|
+
*/
|
|
12
|
+
class ChRISWorkflowGroup extends chrisResourceGroup_js_1.ChRISResourceGroup {
|
|
13
|
+
constructor() {
|
|
14
|
+
super('Workflows', 'getWorkflows');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ChRISWorkflowGroup = ChRISWorkflowGroup;
|
|
18
|
+
//# sourceMappingURL=chrisWorkflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrisWorkflows.js","sourceRoot":"","sources":["../../src/workflows/chrisWorkflows.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,8EAAwE;AAExE;;GAEG;AACH,MAAa,kBAAmB,SAAQ,0CAAkB;IACxD;QACE,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACrC,CAAC;CACF;AAJD,gDAIC"}
|