@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.
Files changed (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +78 -0
  3. package/dist/activities/chrisActivity.d.ts +19 -0
  4. package/dist/activities/chrisActivity.js +29 -0
  5. package/dist/activities/chrisActivity.js.map +1 -0
  6. package/dist/cache/index.d.ts +9 -0
  7. package/dist/cache/index.js +15 -0
  8. package/dist/cache/index.js.map +1 -0
  9. package/dist/cache/listCache.d.ts +182 -0
  10. package/dist/cache/listCache.js +266 -0
  11. package/dist/cache/listCache.js.map +1 -0
  12. package/dist/cache/procCache.d.ts +150 -0
  13. package/dist/cache/procCache.js +257 -0
  14. package/dist/cache/procCache.js.map +1 -0
  15. package/dist/cli.d.ts +7 -0
  16. package/dist/cli.js +43 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/compute/computeResources.d.ts +65 -0
  19. package/dist/compute/computeResources.js +113 -0
  20. package/dist/compute/computeResources.js.map +1 -0
  21. package/dist/config/config.d.ts +221 -0
  22. package/dist/config/config.js +350 -0
  23. package/dist/config/config.js.map +1 -0
  24. package/dist/connect/chrisConnection.d.ts +121 -0
  25. package/dist/connect/chrisConnection.js +303 -0
  26. package/dist/connect/chrisConnection.js.map +1 -0
  27. package/dist/context/chrisContext.d.ts +110 -0
  28. package/dist/context/chrisContext.js +324 -0
  29. package/dist/context/chrisContext.js.map +1 -0
  30. package/dist/error/errorStack.d.ts +115 -0
  31. package/dist/error/errorStack.js +175 -0
  32. package/dist/error/errorStack.js.map +1 -0
  33. package/dist/feeds/chrisFeed.d.ts +188 -0
  34. package/dist/feeds/chrisFeed.js +432 -0
  35. package/dist/feeds/chrisFeed.js.map +1 -0
  36. package/dist/filebrowser/chrisFileBrowser.d.ts +77 -0
  37. package/dist/filebrowser/chrisFileBrowser.js +134 -0
  38. package/dist/filebrowser/chrisFileBrowser.js.map +1 -0
  39. package/dist/filebrowser/chrisFiles.d.ts +67 -0
  40. package/dist/filebrowser/chrisFiles.js +130 -0
  41. package/dist/filebrowser/chrisFiles.js.map +1 -0
  42. package/dist/filebrowser/chrisPACS.d.ts +43 -0
  43. package/dist/filebrowser/chrisPACS.js +103 -0
  44. package/dist/filebrowser/chrisPACS.js.map +1 -0
  45. package/dist/filebrowser/chrisPipeline.d.ts +47 -0
  46. package/dist/filebrowser/chrisPipeline.js +118 -0
  47. package/dist/filebrowser/chrisPipeline.js.map +1 -0
  48. package/dist/groups/chrisGroups.d.ts +11 -0
  49. package/dist/groups/chrisGroups.js +18 -0
  50. package/dist/groups/chrisGroups.js.map +1 -0
  51. package/dist/index.d.ts +68 -0
  52. package/dist/index.js +86 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/io/browser_io.d.ts +97 -0
  55. package/dist/io/browser_io.js +149 -0
  56. package/dist/io/browser_io.js.map +1 -0
  57. package/dist/io/chrisIO.d.ts +110 -0
  58. package/dist/io/chrisIO.js +415 -0
  59. package/dist/io/chrisIO.js.map +1 -0
  60. package/dist/io/io.d.ts +21 -0
  61. package/dist/io/io.js +6 -0
  62. package/dist/io/io.js.map +1 -0
  63. package/dist/io/node_io.d.ts +30 -0
  64. package/dist/io/node_io.js +188 -0
  65. package/dist/io/node_io.js.map +1 -0
  66. package/dist/jobs/chrisJob.d.ts +43 -0
  67. package/dist/jobs/chrisJob.js +169 -0
  68. package/dist/jobs/chrisJob.js.map +1 -0
  69. package/dist/jobs/index.d.ts +7 -0
  70. package/dist/jobs/index.js +24 -0
  71. package/dist/jobs/index.js.map +1 -0
  72. package/dist/jobs/jobMonitor.d.ts +46 -0
  73. package/dist/jobs/jobMonitor.js +102 -0
  74. package/dist/jobs/jobMonitor.js.map +1 -0
  75. package/dist/pacs/chrisPACS.d.ts +200 -0
  76. package/dist/pacs/chrisPACS.js +562 -0
  77. package/dist/pacs/chrisPACS.js.map +1 -0
  78. package/dist/path/chrisPath.d.ts +78 -0
  79. package/dist/path/chrisPath.js +190 -0
  80. package/dist/path/chrisPath.js.map +1 -0
  81. package/dist/pipelines/chrisPipeline.d.ts +86 -0
  82. package/dist/pipelines/chrisPipeline.js +180 -0
  83. package/dist/pipelines/chrisPipeline.js.map +1 -0
  84. package/dist/pluginmetas/chrisPluginMetas.d.ts +11 -0
  85. package/dist/pluginmetas/chrisPluginMetas.js +18 -0
  86. package/dist/pluginmetas/chrisPluginMetas.js.map +1 -0
  87. package/dist/plugins/chrisPluginMetaPlugins.d.ts +12 -0
  88. package/dist/plugins/chrisPluginMetaPlugins.js +19 -0
  89. package/dist/plugins/chrisPluginMetaPlugins.js.map +1 -0
  90. package/dist/plugins/chrisPlugins.d.ts +127 -0
  91. package/dist/plugins/chrisPlugins.js +528 -0
  92. package/dist/plugins/chrisPlugins.js.map +1 -0
  93. package/dist/resources/chrisEmbeddedResourceGroup.d.ts +73 -0
  94. package/dist/resources/chrisEmbeddedResourceGroup.js +148 -0
  95. package/dist/resources/chrisEmbeddedResourceGroup.js.map +1 -0
  96. package/dist/resources/chrisObjContext.d.ts +16 -0
  97. package/dist/resources/chrisObjContext.js +109 -0
  98. package/dist/resources/chrisObjContext.js.map +1 -0
  99. package/dist/resources/chrisResourceGroup.d.ts +30 -0
  100. package/dist/resources/chrisResourceGroup.js +47 -0
  101. package/dist/resources/chrisResourceGroup.js.map +1 -0
  102. package/dist/resources/chrisResources.d.ts +163 -0
  103. package/dist/resources/chrisResources.js +415 -0
  104. package/dist/resources/chrisResources.js.map +1 -0
  105. package/dist/tags/chrisTags.d.ts +11 -0
  106. package/dist/tags/chrisTags.js +18 -0
  107. package/dist/tags/chrisTags.js.map +1 -0
  108. package/dist/users/chrisUsers.d.ts +34 -0
  109. package/dist/users/chrisUsers.js +57 -0
  110. package/dist/users/chrisUsers.js.map +1 -0
  111. package/dist/utils/keypair.d.ts +77 -0
  112. package/dist/utils/keypair.js +144 -0
  113. package/dist/utils/keypair.js.map +1 -0
  114. package/dist/utils/result.d.ts +77 -0
  115. package/dist/utils/result.js +58 -0
  116. package/dist/utils/result.js.map +1 -0
  117. package/dist/utils/searchable.d.ts +143 -0
  118. package/dist/utils/searchable.js +212 -0
  119. package/dist/utils/searchable.js.map +1 -0
  120. package/dist/workflows/chrisWorkflows.d.ts +11 -0
  121. package/dist/workflows/chrisWorkflows.js +18 -0
  122. package/dist/workflows/chrisWorkflows.js.map +1 -0
  123. package/package.json +55 -0
@@ -0,0 +1,415 @@
1
+ "use strict";
2
+ /**
3
+ * @file ChRIS Resource Management
4
+ *
5
+ * This module defines the base class and interfaces for managing ChRIS resources.
6
+ * It provides functionality for listing, filtering, and manipulating resource items.
7
+ *
8
+ * @module
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ChRISResource = void 0;
12
+ exports.resourceFields_get = resourceFields_get;
13
+ const chrisapi_1 = require("@fnndsc/chrisapi");
14
+ const chrisConnection_js_1 = require("../connect/chrisConnection.js");
15
+ const config_js_1 = require("../config/config.js");
16
+ /**
17
+ * Base class for managing ChRIS resources.
18
+ */
19
+ class ChRISResource {
20
+ constructor() {
21
+ this._client = null;
22
+ this._resourceName = "";
23
+ this._resourceCollection = null;
24
+ this._resourceArrayItems = null;
25
+ this._resourceArray = null;
26
+ this._resourceItem = null;
27
+ this.resourceMethod = null;
28
+ this._lazyMethodName = null;
29
+ this._lazyObjProvider = null;
30
+ // Client initialization is deferred
31
+ }
32
+ /**
33
+ * Retrieves the ChRIS client instance asynchronously.
34
+ * @returns A Promise resolving to the Client instance or null.
35
+ */
36
+ async client_get() {
37
+ if (!this._client) {
38
+ this._client = await chrisConnection_js_1.chrisConnection.client_get();
39
+ }
40
+ return this._client;
41
+ }
42
+ get resourceName() {
43
+ return this._resourceName;
44
+ }
45
+ set resourceName(name) {
46
+ this._resourceName = name;
47
+ }
48
+ set resourceCollection(collection) {
49
+ this._resourceCollection = collection;
50
+ }
51
+ /**
52
+ * Converts a resource item to a dictionary.
53
+ * @param item - The item to convert.
54
+ * @returns A dictionary representation of the item.
55
+ */
56
+ resourceItem_toDict(item) {
57
+ return item.data.reduce((acc, { name, value }) => {
58
+ acc[name] = value;
59
+ return acc;
60
+ }, {});
61
+ }
62
+ /**
63
+ * Converts a list of resource items to dictionaries.
64
+ * @param items - The list of items to convert.
65
+ * @returns An array of dictionaries.
66
+ */
67
+ resourceItems_toDicts(items) {
68
+ return items.map(this.resourceItem_toDict);
69
+ }
70
+ /**
71
+ * Deletes a resource item by its ID.
72
+ * @param id - The ID of the item to delete.
73
+ * @returns A Promise resolving to true on success, false otherwise.
74
+ */
75
+ async resourceItem_delete(id) {
76
+ if (!(this._resourceCollection instanceof chrisapi_1.ListResource)) {
77
+ return false;
78
+ }
79
+ const res = this._resourceCollection?.getItem(id);
80
+ try {
81
+ await res._delete();
82
+ return true;
83
+ }
84
+ catch (e) {
85
+ return false;
86
+ }
87
+ }
88
+ /**
89
+ * Builds a list of items from a resource collection.
90
+ * @param resources - The resource collection.
91
+ * @returns An array of Items or null.
92
+ */
93
+ resourceItems_buildFromCollection(resources) {
94
+ if (!resources || !resources.collection) {
95
+ return null;
96
+ }
97
+ return resources.collection.items.map((item) => ({
98
+ data: item.data,
99
+ href: item.href,
100
+ links: item.links,
101
+ }));
102
+ }
103
+ /**
104
+ * Binds a resource fetching method to an object.
105
+ * @param obj - The object context.
106
+ * @param resourceMethod - The method to bind.
107
+ * @param resourceName - Optional name for the resource.
108
+ */
109
+ binding_applyGet(obj, resourceMethod, resourceName) {
110
+ // this._resourceObj = obj;
111
+ this.resourceMethod = resourceMethod.bind(obj);
112
+ if (resourceName)
113
+ this._resourceName = resourceName;
114
+ }
115
+ /**
116
+ * Binds a resource fetching method lazily.
117
+ * @param objProvider - A function returning a Promise to the object context.
118
+ * @param methodName - The name of the method to bind.
119
+ * @param resourceName - Optional name for the resource.
120
+ */
121
+ binding_applyLazy(objProvider, methodName, resourceName) {
122
+ this._lazyObjProvider = objProvider;
123
+ this._lazyMethodName = methodName;
124
+ if (resourceName)
125
+ this._resourceName = resourceName;
126
+ }
127
+ async lazyBinding_resolve() {
128
+ if (!this.resourceMethod && this._lazyObjProvider && this._lazyMethodName) {
129
+ const obj = await this._lazyObjProvider();
130
+ if (obj) {
131
+ const method = obj[this._lazyMethodName];
132
+ if (typeof method === 'function') {
133
+ this.resourceMethod = method.bind(obj);
134
+ }
135
+ else {
136
+ console.error(`Method ${this._lazyMethodName} not found on object.`);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ get hasNextPage() {
142
+ if (this._resourceCollection instanceof chrisapi_1.ListResource) {
143
+ return this._resourceCollection.hasNext;
144
+ }
145
+ return false;
146
+ }
147
+ /**
148
+ * Lists *all* resources by automatically handling pagination.
149
+ * @param options - Filtering options. Limit and offset will be managed internally.
150
+ * @returns A Promise resolving to FilteredResourceData containing all matching resources, or null.
151
+ */
152
+ async resources_getAll(options) {
153
+ const limit = 100;
154
+ let offset = 0;
155
+ let allTableData = [];
156
+ let selectedFields = [];
157
+ // If options has a limit, we should respect it? No, getAll implies fetching everything.
158
+ // But we should respect filters.
159
+ while (true) {
160
+ const pageOptions = { ...options, limit, offset };
161
+ const result = await this.resources_listAndFilterByOptions(pageOptions);
162
+ if (!result || !result.tableData) {
163
+ break;
164
+ }
165
+ if (selectedFields.length === 0) {
166
+ selectedFields = result.selectedFields;
167
+ }
168
+ allTableData = allTableData.concat(result.tableData);
169
+ // Robust exit conditions:
170
+ // 1. If we got 0 items, we are definitely done.
171
+ if (result.tableData.length === 0) {
172
+ break;
173
+ }
174
+ // 2. If we got fewer items than the limit, this must be the last page.
175
+ if (result.tableData.length < limit) {
176
+ break;
177
+ }
178
+ // 3. If API explicitly says no next page (and it's not undefined).
179
+ if (this.hasNextPage === false) {
180
+ break;
181
+ }
182
+ // If we got a full page and hasNextPage is not explicitly false, continue
183
+ offset += limit;
184
+ }
185
+ if (allTableData.length === 0) {
186
+ return null;
187
+ }
188
+ return {
189
+ tableData: allTableData,
190
+ selectedFields,
191
+ totalCount: allTableData.length,
192
+ };
193
+ }
194
+ /**
195
+ * Lists and filters resources based on options.
196
+ * @param options - Filtering and listing options.
197
+ * @returns A Promise resolving to filtered resource data or null.
198
+ */
199
+ async resources_listAndFilterByOptions(options) {
200
+ const results = this.resources_filterByFields(await this.resourceFields_get(await this.resources_getList(options)));
201
+ if (results && this._resourceCollection instanceof chrisapi_1.ListResource) {
202
+ const total = this._resourceCollection.totalCount;
203
+ if (total >= 0)
204
+ results.totalCount = total;
205
+ }
206
+ return results;
207
+ }
208
+ /**
209
+ * Filters resources by specific fields.
210
+ * @param resourcesByFields - The resources and fields to filter.
211
+ * @returns Filtered data suitable for table display.
212
+ */
213
+ resources_filterByFields(resourcesByFields) {
214
+ if (!resourcesByFields) {
215
+ return null;
216
+ }
217
+ const resources = resourcesByFields.items;
218
+ const selectedFields = resourcesByFields.fields;
219
+ if (!resources)
220
+ return null;
221
+ const tableData = resources.map((resource) => {
222
+ const rowData = {
223
+ id: resource.href.split("/").slice(-2)[0],
224
+ };
225
+ resource.data.forEach((item) => {
226
+ if (selectedFields.includes(item.name)) {
227
+ rowData[item.name] = item.value;
228
+ }
229
+ });
230
+ return rowData;
231
+ });
232
+ return { tableData, selectedFields };
233
+ }
234
+ resourcesByFields_enumerate(items) {
235
+ if (!items || !items.length) {
236
+ return null;
237
+ }
238
+ const allFields = ["id", ...items[0].data.map((item) => item.name)];
239
+ const resourcesFieldsPerItem = {
240
+ items: items,
241
+ fields: allFields,
242
+ };
243
+ return resourcesFieldsPerItem;
244
+ }
245
+ fieldSpec_resolve(fieldFilter, options) {
246
+ let selectedFields = [];
247
+ let fieldSpec = "";
248
+ if (typeof options?.fields === "string") {
249
+ fieldSpec = options.fields;
250
+ }
251
+ else if (fieldFilter) {
252
+ fieldSpec = fieldFilter;
253
+ }
254
+ if (fieldSpec) {
255
+ selectedFields = fieldSpec.split(",").map((f) => f.trim());
256
+ }
257
+ return selectedFields;
258
+ }
259
+ async resourceFields_get(options, fields) {
260
+ if (!this._resourceCollection) {
261
+ await this.resources_getList();
262
+ }
263
+ if (!this._resourceArrayItems) {
264
+ return null;
265
+ }
266
+ let selectedFields = this.fieldSpec_resolve(fields, options);
267
+ const resourcesFields = this.resourcesByFields_enumerate(this._resourceArrayItems);
268
+ if (!resourcesFields) {
269
+ return null;
270
+ }
271
+ if (!selectedFields.length) {
272
+ if (resourcesFields) {
273
+ selectedFields = resourcesFields.fields;
274
+ }
275
+ }
276
+ selectedFields = Array.from(new Set(selectedFields));
277
+ const resourcesByFields = {
278
+ resources: this._resourceCollection,
279
+ items: this._resourceArrayItems,
280
+ options: options,
281
+ fields: selectedFields,
282
+ };
283
+ return resourcesByFields;
284
+ }
285
+ async resources_getItems(options) {
286
+ const params = {
287
+ limit: options?.limit ?? 20,
288
+ offset: options?.offset ?? 0,
289
+ };
290
+ await this.lazyBinding_resolve();
291
+ if (!this.resourceMethod) {
292
+ return null;
293
+ }
294
+ const resources = await this.resourceMethod(params);
295
+ if (!(this._resourceCollection instanceof chrisapi_1.ListResource)) {
296
+ return null;
297
+ }
298
+ this._resourceArray = this._resourceCollection?.getItems();
299
+ if (this._resourceArray) {
300
+ // console.log(this._resourceArray);
301
+ return this._resourceArray;
302
+ }
303
+ return null;
304
+ }
305
+ options_simplify(options) {
306
+ const params = {
307
+ limit: options?.limit ?? 20,
308
+ offset: options?.offset ?? 0,
309
+ };
310
+ return params;
311
+ }
312
+ filtering_applyAdditional(originalParams) {
313
+ if (!this._resourceArrayItems || this._resourceArrayItems.length === 0) {
314
+ return null;
315
+ }
316
+ const filteredItems = this._resourceArrayItems.filter((item) => {
317
+ return Object.entries(originalParams).every(([paramKey, paramValue]) => {
318
+ // Skip non-search related parameters
319
+ if (["limit", "offset"].includes(paramKey)) {
320
+ return true;
321
+ }
322
+ const dataItem = item.data.find((d) => d.name === paramKey);
323
+ if (!dataItem) {
324
+ return false; // If the field is not found, it doesn't match the filter
325
+ }
326
+ const itemValue = String(dataItem.value).toLowerCase();
327
+ const searchValue = String(paramValue).toLowerCase();
328
+ // Perform exact match for 'id', partial match for other fields
329
+ if (paramKey === "id") {
330
+ return itemValue === searchValue;
331
+ }
332
+ else {
333
+ return itemValue.includes(searchValue);
334
+ }
335
+ });
336
+ });
337
+ return filteredItems.length > 0 ? filteredItems : null;
338
+ }
339
+ async resources_getList(options, resourceMethod) {
340
+ const params = {
341
+ limit: 20,
342
+ offset: 0,
343
+ ...options,
344
+ };
345
+ // Remove the "fields" otherwise some list resource ops break
346
+ const { fields, ...pureparams } = params;
347
+ let simplifiedParams = pureparams;
348
+ if (resourceMethod) {
349
+ this.resourceMethod = resourceMethod;
350
+ }
351
+ await this.lazyBinding_resolve();
352
+ if (!this.resourceMethod)
353
+ return params;
354
+ let resources = null;
355
+ try {
356
+ resources = await this.resourceMethod(pureparams);
357
+ }
358
+ catch (error) {
359
+ if (config_js_1.connectionConfig && config_js_1.connectionConfig.debug) {
360
+ console.error(`Error fetching ${this._resourceName}:`, error);
361
+ }
362
+ // Attempt simplified params as fallback
363
+ try {
364
+ simplifiedParams = this.options_simplify(pureparams);
365
+ resources = await this.resourceMethod(simplifiedParams);
366
+ }
367
+ catch (retryError) {
368
+ if (config_js_1.connectionConfig && config_js_1.connectionConfig.debug) {
369
+ console.error(`Retry failed for ${this._resourceName}:`, retryError);
370
+ }
371
+ throw retryError; // Re-throw the error if retry fails
372
+ }
373
+ }
374
+ if (resources == undefined || resources == null) {
375
+ console.log(this._resourceName + " resource list returned 'undefined' or 'null'");
376
+ return params;
377
+ }
378
+ this._resourceCollection = resources;
379
+ if (!(this._resourceCollection instanceof chrisapi_1.ListResource)) {
380
+ return null;
381
+ }
382
+ this._resourceArray = this._resourceCollection?.getItems();
383
+ this._resourceArrayItems =
384
+ this.resourceItems_buildFromCollection(resources);
385
+ if (Object.keys(pureparams).length > Object.keys(simplifiedParams).length) {
386
+ const filteredItems = this.filtering_applyAdditional(pureparams);
387
+ if (filteredItems === null) {
388
+ console.log("Warning: No items match the search criteria.");
389
+ }
390
+ this._resourceArrayItems = filteredItems;
391
+ }
392
+ return params;
393
+ }
394
+ }
395
+ exports.ChRISResource = ChRISResource;
396
+ /**
397
+ * Helper to get resource fields from a resource object.
398
+ * @param obj - The resource object.
399
+ * @param fields - The fields to extract.
400
+ * @returns A SimpleRecord of fields or null.
401
+ */
402
+ function resourceFields_get(obj, fields) {
403
+ const chrisResource = new ChRISResource();
404
+ const item = chrisResource.resourceItems_buildFromCollection(obj);
405
+ const resourceData = chrisResource.resources_filterByFields({
406
+ resources: obj,
407
+ items: item,
408
+ fields: fields,
409
+ });
410
+ if (!resourceData) {
411
+ return null;
412
+ }
413
+ return resourceData.tableData[0];
414
+ }
415
+ //# sourceMappingURL=chrisResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrisResources.js","sourceRoot":"","sources":["../../src/resources/chrisResources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @file ChRIS Tag resources.
3
+ * @module
4
+ */
5
+ import { ChRISResourceGroup } from '../resources/chrisResourceGroup.js';
6
+ /**
7
+ * Group handler for ChRIS tags.
8
+ */
9
+ export declare class ChRISTagGroup extends ChRISResourceGroup {
10
+ constructor();
11
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * @file ChRIS Tag resources.
4
+ * @module
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ChRISTagGroup = void 0;
8
+ const chrisResourceGroup_js_1 = require("../resources/chrisResourceGroup.js");
9
+ /**
10
+ * Group handler for ChRIS tags.
11
+ */
12
+ class ChRISTagGroup extends chrisResourceGroup_js_1.ChRISResourceGroup {
13
+ constructor() {
14
+ super('Tags', 'getTags');
15
+ }
16
+ }
17
+ exports.ChRISTagGroup = ChRISTagGroup;
18
+ //# sourceMappingURL=chrisTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrisTags.js","sourceRoot":"","sources":["../../src/tags/chrisTags.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,8EAAwE;AAExE;;GAEG;AACH,MAAa,aAAc,SAAQ,0CAAkB;IACnD;QACE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3B,CAAC;CACF;AAJD,sCAIC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @file ChRIS User and Group Resource Access
3
+ *
4
+ * @module
5
+ */
6
+ import { Result } from '../utils/result.js';
7
+ /**
8
+ * Represents a ChRIS group resource.
9
+ */
10
+ export interface ChrisGroup {
11
+ id: number;
12
+ name: string;
13
+ }
14
+ /**
15
+ * Represents the currently authenticated ChRIS user.
16
+ */
17
+ export interface ChrisUser {
18
+ id: number;
19
+ username: string;
20
+ email: string;
21
+ is_staff: boolean;
22
+ }
23
+ /**
24
+ * Fetches all groups from ChRIS CUBE.
25
+ *
26
+ * @returns A Result containing array of ChrisGroup, or Err on failure.
27
+ */
28
+ export declare function groups_getAll(): Promise<Result<ChrisGroup[]>>;
29
+ /**
30
+ * Fetches the currently authenticated user from ChRIS CUBE.
31
+ *
32
+ * @returns A Result containing ChrisUser, or Err on failure.
33
+ */
34
+ export declare function currentUser_get(): Promise<Result<ChrisUser>>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * @file ChRIS User and Group Resource Access
4
+ *
5
+ * @module
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.groups_getAll = groups_getAll;
9
+ exports.currentUser_get = currentUser_get;
10
+ const chrisConnection_js_1 = require("../connect/chrisConnection.js");
11
+ const errorStack_js_1 = require("../error/errorStack.js");
12
+ const result_js_1 = require("../utils/result.js");
13
+ /**
14
+ * Fetches all groups from ChRIS CUBE.
15
+ *
16
+ * @returns A Result containing array of ChrisGroup, or Err on failure.
17
+ */
18
+ async function groups_getAll() {
19
+ try {
20
+ const client = await chrisConnection_js_1.chrisConnection.client_get();
21
+ if (!client) {
22
+ errorStack_js_1.errorStack.stack_push('error', 'Not connected to ChRIS. Please log in.');
23
+ return (0, result_js_1.Err)();
24
+ }
25
+ const groupList = await client.getGroups({ limit: 1000 });
26
+ const groups = groupList.data || [];
27
+ return (0, result_js_1.Ok)(groups);
28
+ }
29
+ catch (error) {
30
+ const msg = error instanceof Error ? error.message : String(error);
31
+ errorStack_js_1.errorStack.stack_push('error', `Failed to fetch groups: ${msg}`);
32
+ return (0, result_js_1.Err)();
33
+ }
34
+ }
35
+ /**
36
+ * Fetches the currently authenticated user from ChRIS CUBE.
37
+ *
38
+ * @returns A Result containing ChrisUser, or Err on failure.
39
+ */
40
+ async function currentUser_get() {
41
+ try {
42
+ const client = await chrisConnection_js_1.chrisConnection.client_get();
43
+ if (!client) {
44
+ errorStack_js_1.errorStack.stack_push('error', 'Not connected to ChRIS. Please log in.');
45
+ return (0, result_js_1.Err)();
46
+ }
47
+ const user = await client.getUser();
48
+ const userData = user.data;
49
+ return (0, result_js_1.Ok)(userData);
50
+ }
51
+ catch (error) {
52
+ const msg = error instanceof Error ? error.message : String(error);
53
+ errorStack_js_1.errorStack.stack_push('error', `Failed to fetch current user: ${msg}`);
54
+ return (0, result_js_1.Err)();
55
+ }
56
+ }
57
+ //# sourceMappingURL=chrisUsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrisUsers.js","sourceRoot":"","sources":["../../src/users/chrisUsers.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA8BH,sCAiBC;AAOD,0CAiBC;AArED,sEAAgE;AAEhE,0DAAoD;AACpD,kDAAqD;AAoBrD;;;;GAIG;AACI,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oCAAe,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,0BAAU,CAAC,UAAU,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;YACzE,OAAO,IAAA,eAAG,GAAE,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAc,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAkB,SAAS,CAAC,IAAgC,IAAI,EAAE,CAAC;QAE/E,OAAO,IAAA,cAAE,EAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,0BAAU,CAAC,UAAU,CAAC,OAAO,EAAE,2BAA2B,GAAG,EAAE,CAAC,CAAC;QACjE,OAAO,IAAA,eAAG,GAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oCAAe,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,0BAAU,CAAC,UAAU,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;YACzE,OAAO,IAAA,eAAG,GAAE,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAc,IAAI,CAAC,IAA4B,CAAC;QAE9D,OAAO,IAAA,cAAE,EAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,0BAAU,CAAC,UAAU,CAAC,OAAO,EAAE,iCAAiC,GAAG,EAAE,CAAC,CAAC;QACvE,OAAO,IAAA,eAAG,GAAE,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @file Key-Pair and CLI Option Parsing Utilities.
3
+ *
4
+ * This module provides parsing and transformation utilities for converting key-value strings,
5
+ * raw CLI parameters, and command options into standardized ChRIS query payloads and objects.
6
+ *
7
+ * @module
8
+ */
9
+ import { ListOptions } from "../resources/chrisResources";
10
+ /**
11
+ * Base parameters for ChRIS object operations.
12
+ */
13
+ export interface ChRISObjectParams {
14
+ limit?: number;
15
+ offset?: number;
16
+ page?: string;
17
+ returnFilter?: string;
18
+ [key: string]: unknown;
19
+ }
20
+ /**
21
+ * Parameters for getting ChRIS elements, including search query.
22
+ */
23
+ export interface ChRISElementsGet extends ChRISObjectParams {
24
+ search?: string;
25
+ params?: string;
26
+ }
27
+ /**
28
+ * Represents hits from a query.
29
+ */
30
+ export interface QueryHits {
31
+ hits: Array<unknown>;
32
+ }
33
+ /**
34
+ * Represents parsed CLI arguments.
35
+ */
36
+ export interface ClIarguments {
37
+ [key: string]: string | boolean | number;
38
+ }
39
+ /**
40
+ * Parse a CLI string into a dictionary of arguments.
41
+ *
42
+ * @param cliString - The CLI argument string.
43
+ * @returns A dictionary of parsed arguments.
44
+ */
45
+ export declare function dictionary_fromCLI(cliString: string): ClIarguments;
46
+ /**
47
+ * Parse a key-pair string (e.g., "key:value,key2:value2") into an object.
48
+ *
49
+ * @param searchString - The string containing key-value pairs.
50
+ * @returns A record of parsed key-value pairs.
51
+ */
52
+ export declare function keyPairString_parse(searchString: string): Record<string, string>;
53
+ /**
54
+ * Apply key-pair parameters from a search string to an existing params object.
55
+ *
56
+ * @param params - The base parameters object.
57
+ * @param searchString - Optional search string to parse and merge.
58
+ * @returns The merged parameters object.
59
+ */
60
+ export declare function keyPairParams_apply<T extends Record<string, any>>(params: T, searchString?: string): T;
61
+ /**
62
+ * Convert options object to ChRIS list parameters.
63
+ * Handles pagination, offset, and key-pair filtering.
64
+ *
65
+ * @param options - The raw options object.
66
+ * @param keyPairField - The field name containing the key-pair string.
67
+ * @returns Formatted ListOptions.
68
+ */
69
+ export declare function listParams_fromOptions(options: ChRISElementsGet, keyPairField?: keyof ChRISElementsGet): ListOptions;
70
+ /**
71
+ * Extract a specific field or fields from a list of records into a QueryHits object.
72
+ *
73
+ * @param arrayList - The list of records.
74
+ * @param record - The field name or an array of field names to extract from each record.
75
+ * @returns A QueryHits object containing the extracted values.
76
+ */
77
+ export declare function record_extract(arrayList: Array<Record<string, unknown>>, record: string | string[]): QueryHits;