@fnndsc/cumin 3.8.1 → 3.10.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.
Files changed (64) hide show
  1. package/README.md +2 -2
  2. package/dist/cache/index.d.ts +5 -1
  3. package/dist/cache/index.js +9 -1
  4. package/dist/cache/index.js.map +1 -1
  5. package/dist/cache/listCache.d.ts +11 -0
  6. package/dist/cache/listCache.js +19 -0
  7. package/dist/cache/listCache.js.map +1 -1
  8. package/dist/cache/procCache.d.ts +118 -5
  9. package/dist/cache/procCache.js +213 -6
  10. package/dist/cache/procCache.js.map +1 -1
  11. package/dist/cache/procCheckpoint.d.ts +47 -0
  12. package/dist/cache/procCheckpoint.js +217 -0
  13. package/dist/cache/procCheckpoint.js.map +1 -0
  14. package/dist/cache/procPrompt.d.ts +34 -0
  15. package/dist/cache/procPrompt.js +25 -0
  16. package/dist/cache/procPrompt.js.map +1 -0
  17. package/dist/chrisapi/adapter.d.ts +23 -1
  18. package/dist/chrisapi/adapter.js +39 -0
  19. package/dist/chrisapi/adapter.js.map +1 -1
  20. package/dist/chrisapi/contract.d.ts +336 -0
  21. package/dist/chrisapi/contract.js +219 -0
  22. package/dist/chrisapi/contract.js.map +1 -0
  23. package/dist/connect/chrisConnection.d.ts +20 -0
  24. package/dist/connect/chrisConnection.js +33 -0
  25. package/dist/connect/chrisConnection.js.map +1 -1
  26. package/dist/feeds/chrisFeed.js +2 -1
  27. package/dist/feeds/chrisFeed.js.map +1 -1
  28. package/dist/groups/chrisGroups.d.ts +67 -1
  29. package/dist/groups/chrisGroups.js +171 -1
  30. package/dist/groups/chrisGroups.js.map +1 -1
  31. package/dist/index.d.ts +4 -0
  32. package/dist/index.js +13 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/io/chrisIO.d.ts +14 -0
  35. package/dist/io/chrisIO.js +31 -2
  36. package/dist/io/chrisIO.js.map +1 -1
  37. package/dist/jobs/chrisJob.js +4 -0
  38. package/dist/jobs/chrisJob.js.map +1 -1
  39. package/dist/output/runtimeOutput.d.ts +49 -0
  40. package/dist/output/runtimeOutput.js +51 -0
  41. package/dist/output/runtimeOutput.js.map +1 -0
  42. package/dist/pacs/chrisPACS.d.ts +28 -0
  43. package/dist/pacs/chrisPACS.js +40 -21
  44. package/dist/pacs/chrisPACS.js.map +1 -1
  45. package/dist/path/chrisPath.js +3 -3
  46. package/dist/path/chrisPath.js.map +1 -1
  47. package/dist/pipelines/chrisPipeline.d.ts +4 -0
  48. package/dist/pipelines/chrisPipeline.js +1 -1
  49. package/dist/pipelines/chrisPipeline.js.map +1 -1
  50. package/dist/plugins/chrisPlugins.d.ts +8 -1
  51. package/dist/plugins/chrisPlugins.js +8 -1
  52. package/dist/plugins/chrisPlugins.js.map +1 -1
  53. package/dist/resources/chrisObjContext.d.ts +11 -0
  54. package/dist/resources/chrisObjContext.js +38 -2
  55. package/dist/resources/chrisObjContext.js.map +1 -1
  56. package/dist/resources/chrisResources.js +4 -0
  57. package/dist/resources/chrisResources.js.map +1 -1
  58. package/dist/users/chrisUsers.d.ts +56 -10
  59. package/dist/users/chrisUsers.js +149 -20
  60. package/dist/users/chrisUsers.js.map +1 -1
  61. package/dist/utils/retry.d.ts +29 -0
  62. package/dist/utils/retry.js +44 -0
  63. package/dist/utils/retry.js.map +1 -0
  64. package/package.json +19 -8
@@ -1 +1 @@
1
- {"version":3,"file":"chrisObjContext.js","sourceRoot":"","sources":["../../src/resources/chrisObjContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chrisObjContext.js","sourceRoot":"","sources":["../../src/resources/chrisObjContext.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA4IH,8CAeC;AAYD,4CAEC;AAvKD,mFAA6E;AAC7E,0DAAoD;AAUpD,MAAM,uBAAwB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,sBAAsB;IAK1B,YAAY,MAAwB;QAH5B,UAAK,GACX,IAAI,GAAG,EAAE,CAAC;QAGV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAe;QAEf,4EAA4E;QAC5E,6EAA6E;QAC7E,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,mBAAmB;QACnB,MAAM,SAAS,GAAY,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC;QAChE,MAAM,QAAQ,GAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;QAE1D,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GACd,MAAM,0DAA0B,CAAC,MAAM,CACrC,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,OAAO,CACR,CAAC;YACJ,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,0BAAU,CAAC,UAAU,CACnB,OAAO,EACP,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CACxD,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,cAAc,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,IAAI,uBAAuB,CAC/B,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CACxD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAe;QACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,WAAW,GAAwC;IACvD,gBAAgB,EAAE;QAChB,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,2BAA2B;QACtC,WAAW,EAAE,QAAQ;KACtB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE,oBAAoB;QAC/B,WAAW,EAAE,QAAQ;KACtB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,QAAQ;KACtB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,QAAQ;KACtB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,QAAQ;KACtB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,aAAa;QACxB,WAAW,EAAE,QAAQ;KACtB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,UAAU;QACrB,WAAW,EAAE,MAAM;KACpB;CACF,CAAC;AAEF,MAAM,mBAAmB,GAA8C,EAAE,CAAC;AAE1E,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IACxD,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,OAAe;IAEf,MAAM,OAAO,GAAuC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,uBAAuB,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAAC,IAAY,EAAE,OAAe;IAC5D,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,kBAAkB;AAClB,4KAA4K;AAC5K,+LAA+L"}
@@ -13,6 +13,7 @@ exports.resourceFields_get = resourceFields_get;
13
13
  const adapter_js_1 = require("../chrisapi/adapter.js");
14
14
  const chrisConnection_js_1 = require("../connect/chrisConnection.js");
15
15
  const config_js_1 = require("../config/config.js");
16
+ const errorStack_js_1 = require("../error/errorStack.js");
16
17
  /**
17
18
  * Base class for managing ChRIS resources.
18
19
  */
@@ -74,6 +75,7 @@ class ChRISResource {
74
75
  */
75
76
  async resourceItem_delete(id) {
76
77
  if (!(0, adapter_js_1.resource_isList)(this._resourceCollection)) {
78
+ errorStack_js_1.errorStack.stack_push("error", `Cannot delete item ${id}: no list collection loaded.`);
77
79
  return false;
78
80
  }
79
81
  const res = this._resourceCollection?.getItem(id);
@@ -82,6 +84,8 @@ class ChRISResource {
82
84
  return true;
83
85
  }
84
86
  catch (e) {
87
+ const msg = e instanceof Error ? e.message : String(e);
88
+ errorStack_js_1.errorStack.stack_push("error", `Failed to delete item ${id}: ${msg}`);
85
89
  return false;
86
90
  }
87
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chrisResources.js","sourceRoot":"","sources":["../../src/resources/chrisResources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chrisResources.js","sourceRoot":"","sources":["../../src/resources/chrisResources.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA+hBH,gDAiBC;AA9iBD,uDAOgC;AAChC,sEAAgE;AAChE,mDAAuD;AACvD,0DAAoD;AAuEpD;;GAEG;AACH,MAAa,aAAa;IAWxB;QAVQ,YAAO,GAAkB,IAAI,CAAC;QAC9B,kBAAa,GAAW,EAAE,CAAC;QAC3B,wBAAmB,GAAmC,IAAI,CAAC;QAC3D,wBAAmB,GAAkB,IAAI,CAAC;QAC1C,mBAAc,GAAsC,IAAI,CAAC;QACzD,kBAAa,GAAwB,IAAI,CAAC;QAC1C,mBAAc,GAAuE,IAAI,CAAC;QAC1F,oBAAe,GAAkB,IAAI,CAAC;QACtC,qBAAgB,GAAoC,IAAI,CAAC;QAG/D,oCAAoC;IACtC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,MAAM,oCAAe,CAAC,UAAU,EAAE,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY,CAAC,IAAY;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,kBAAkB,CAAC,UAAmC;QACxD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,IAAU;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAe,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YAC3D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAkC,CAAC;YAC/C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,KAAa;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAClC,IAAI,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/C,0BAAU,CAAC,UAAU,CAAC,OAAO,EAAE,sBAAsB,EAAE,8BAA8B,CAAC,CAAC;YACvF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,GAAiB,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAAE,CAAiB,CAAC;QAChF,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/D,0BAAU,CAAC,UAAU,CAAC,OAAO,EAAE,yBAAyB,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,iCAAiC,CAC/B,SAAyC;QAEzC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAA,gCAAmB,EAAO,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC;YAC/D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,GAAY,EACZ,cAAyE,EACzE,YAAqB;QAErB,2BAA2B;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,YAAY;YAAE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CACf,WAAmC,EACnC,UAAkB,EAClB,YAAqB;QAErB,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAClC,IAAI,YAAY;YAAE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1E,MAAM,GAAG,GAAY,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,MAAM,GAAa,GAA+B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/E,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC/B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,eAAe,uBAAuB,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACb,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,OAAQ,IAAI,CAAC,mBAAkD,CAAC,OAAO,CAAC;QAC1E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAA8B;QAE9B,MAAM,KAAK,GAAW,GAAG,CAAC;QAC1B,IAAI,MAAM,GAAW,CAAC,CAAC;QACvB,IAAI,YAAY,GAA8B,EAAE,CAAC;QACjD,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,wFAAwF;QACxF,iCAAiC;QAEjC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,WAAW,GAAyB,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACxE,MAAM,MAAM,GAAgC,MAAM,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC,CAAC;YAErG,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACjC,MAAM;YACR,CAAC;YAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YACzC,CAAC;YAED,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAErD,0BAA0B;YAC1B,gDAAgD;YAChD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM;YACR,CAAC;YAED,uEAAuE;YACvE,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;gBACpC,MAAM;YACR,CAAC;YAED,mEAAmE;YACnE,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM;YACR,CAAC;YAED,0EAA0E;YAC1E,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,SAAS,EAAE,YAAY;YACvB,cAAc;YACd,UAAU,EAAE,YAAY,CAAC,MAAM;SAChC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gCAAgC,CACpC,OAA8B;QAE9B,MAAM,OAAO,GAAgC,IAAI,CAAC,wBAAwB,CACxE,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CACrE,CAAC;QACF,IAAI,OAAO,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,GAAW,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;YAC1D,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;QAC7C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CACtB,iBAA2C;QAE3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAkB,iBAAiB,CAAC,KAAK,CAAC;QACzD,MAAM,cAAc,GAAa,iBAAiB,CAAC,MAAM,CAAC;QAE1D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,SAAS,GAA8B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACtE,MAAM,OAAO,GAA4B;gBACvC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,2BAA2B,CACzB,KAAoB;QAEpB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAa,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,MAAM,sBAAsB,GAA0B;YACpD,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,SAAS;SAClB,CAAC;QACF,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,iBAAiB,CACf,WAAoB,EACpB,OAA4B;QAE5B,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,IAAI,SAAS,GAAW,EAAE,CAAC;QAC3B,IAAI,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,SAAS,GAAG,WAAW,CAAC;QAC1B,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAA4B,EAC5B,MAAe;QAEf,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,cAAc,GAAa,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvE,MAAM,eAAe,GACnB,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3B,IAAI,eAAe,EAAE,CAAC;gBACpB,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QAErD,MAAM,iBAAiB,GAAsB;YAC3C,SAAS,EAAE,IAAI,CAAC,mBAAmB;YACnC,KAAK,EAAE,IAAI,CAAC,mBAAmB;YAC/B,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,cAAc;SACvB,CAAC;QACF,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAA8B;QAE9B,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YAC3B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;SAC7B,CAAC;QAEF,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAmC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACpF,IAAI,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAA2B,CAAC;QACpF,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,oCAAoC;YACpC,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,OAAoB;QACnC,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YAC3B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;SAC7B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,yBAAyB,CAAC,cAA2B;QAC3D,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAW,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACrE,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE;gBACrE,qCAAqC;gBACrC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,QAAQ,GAAiD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;gBAC1G,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,KAAK,CAAC,CAAC,yDAAyD;gBACzE,CAAC;gBAED,MAAM,SAAS,GAAW,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC/D,MAAM,WAAW,GAAW,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE7D,+DAA+D;gBAC/D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,OAAO,SAAS,KAAK,WAAW,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,OAA8B,EAC9B,cAA0E;QAE1E,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,CAAC;YACT,GAAG,OAAO;SACX,CAAC;QACF,6DAA6D;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAgB,MAAM,CAAC;QACtD,IAAI,gBAAgB,GAAgB,UAAU,CAAC;QAC/C,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,MAAM,CAAC;QACxC,IAAI,SAAS,GAAmC,IAAI,CAAC;QACrD,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,4BAAgB,IAAI,4BAAgB,CAAC,KAAK,EAAE,CAAC;gBAC/C,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,aAAa,GAAG,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;YACD,wCAAwC;YACxC,IAAI,CAAC;gBACH,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACrD,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,UAAmB,EAAE,CAAC;gBAC7B,IAAI,4BAAgB,IAAI,4BAAgB,CAAC,KAAK,EAAE,CAAC;oBAC/C,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,aAAa,GAAG,EAAE,UAAU,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM,UAAU,CAAC,CAAC,oCAAoC;YACxD,CAAC;QACH,CAAC;QACD,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,aAAa,GAAG,+CAA+C,CACrE,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAA2B,CAAC;QACpF,IAAI,CAAC,mBAAmB;YACtB,IAAI,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1E,MAAM,aAAa,GAAkB,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;YAChF,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,aAAa,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAjcD,sCAicC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,GAA4B,EAC5B,MAAgB;IAEhB,MAAM,aAAa,GAAkB,IAAI,aAAa,EAAE,CAAC;IACzD,MAAM,IAAI,GACR,aAAa,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,YAAY,GAChB,aAAa,CAAC,wBAAwB,CAAC;QACrC,SAAS,EAAE,GAAG;QACd,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IACL,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
@@ -1,34 +1,80 @@
1
1
  /**
2
- * @file ChRIS User and Group Resource Access
2
+ * @file ChRIS user identity resource access.
3
3
  *
4
4
  * @module
5
5
  */
6
6
  import { Result } from '../utils/result.js';
7
+ import type { ChrisGroup } from '../groups/chrisGroups.js';
7
8
  /**
8
- * Represents a ChRIS group resource.
9
+ * Represents the currently authenticated ChRIS user.
9
10
  */
10
- export interface ChrisGroup {
11
+ export interface ChrisUser {
11
12
  id: number;
12
- name: string;
13
+ username: string;
14
+ email: string;
15
+ is_staff: boolean;
13
16
  }
14
17
  /**
15
- * Represents the currently authenticated ChRIS user.
18
+ * Represents the authenticated ChRIS user and their CUBE group memberships.
19
+ *
20
+ * @property user - The currently authenticated user.
21
+ * @property groups - Every CUBE group to which the user belongs.
16
22
  */
17
- export interface ChrisUser {
23
+ export interface ChrisIdentity {
24
+ user: ChrisUser;
25
+ groups: ChrisGroup[];
26
+ }
27
+ /** A CUBE-local account managed independently from a federated identity. */
28
+ export interface LocalAccount {
18
29
  id: number;
19
30
  username: string;
20
31
  email: string;
21
- is_staff: boolean;
32
+ is_active: boolean;
33
+ disabled_at: string | null;
34
+ removed_at: string | null;
22
35
  }
36
+ /** One allowed lifecycle transition for a CUBE-local account. */
37
+ export type LocalAccountAction = 'disable' | 'enable' | 'remove';
38
+ /**
39
+ * Verifies that the current CUBE identity may use the local-account endpoint.
40
+ *
41
+ * @returns Success when the current identity has an administrative CUBE link.
42
+ */
43
+ export declare function localAccount_adminAccessEnsure(): Promise<Result<void>>;
44
+ /**
45
+ * Finds one CUBE-local account by its exact username.
46
+ *
47
+ * @param username - Exact CUBE-local username to find.
48
+ * @returns The matching local account or a recorded operation error.
49
+ */
50
+ export declare function localAccount_find(username: string): Promise<Result<LocalAccount>>;
23
51
  /**
24
- * Fetches all groups from ChRIS CUBE.
52
+ * Creates one CUBE-local account through the administrative endpoint.
25
53
  *
26
- * @returns A Result containing array of ChrisGroup, or Err on failure.
54
+ * @param username - New CUBE-local username.
55
+ * @param email - Email address stored on the CUBE account.
56
+ * @param password - Initial local-login password.
57
+ * @returns The created local account or a recorded operation error.
27
58
  */
28
- export declare function groups_getAll(): Promise<Result<ChrisGroup[]>>;
59
+ export declare function localAccount_create(username: string, email: string, password: string): Promise<Result<LocalAccount>>;
60
+ /**
61
+ * Applies one lifecycle action to a CUBE-local account.
62
+ *
63
+ * @param accountID - Stable local-account record identifier.
64
+ * @param action - Lifecycle transition to apply.
65
+ * @returns The updated local account or a recorded operation error.
66
+ */
67
+ export declare function localAccount_action(accountID: number, action: LocalAccountAction): Promise<Result<LocalAccount>>;
29
68
  /**
30
69
  * Fetches the currently authenticated user from ChRIS CUBE.
31
70
  *
32
71
  * @returns A Result containing ChrisUser, or Err on failure.
33
72
  */
34
73
  export declare function currentUser_get(): Promise<Result<ChrisUser>>;
74
+ /**
75
+ * Fetches the authenticated user together with all CUBE group memberships.
76
+ *
77
+ * @returns A Result containing the current user and their groups, or Err on
78
+ * connection, user, or membership lookup failure.
79
+ */
80
+ export declare function currentIdentity_get(): Promise<Result<ChrisIdentity>>;
@@ -1,57 +1,144 @@
1
1
  "use strict";
2
2
  /**
3
- * @file ChRIS User and Group Resource Access
3
+ * @file ChRIS user identity resource access.
4
4
  *
5
5
  * @module
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.groups_getAll = groups_getAll;
8
+ exports.localAccount_adminAccessEnsure = localAccount_adminAccessEnsure;
9
+ exports.localAccount_find = localAccount_find;
10
+ exports.localAccount_create = localAccount_create;
11
+ exports.localAccount_action = localAccount_action;
9
12
  exports.currentUser_get = currentUser_get;
13
+ exports.currentIdentity_get = currentIdentity_get;
10
14
  const chrisConnection_js_1 = require("../connect/chrisConnection.js");
11
15
  const adapter_js_1 = require("../chrisapi/adapter.js");
12
16
  const errorStack_js_1 = require("../error/errorStack.js");
13
17
  const result_js_1 = require("../utils/result.js");
14
18
  /**
15
- * Fetches all groups from ChRIS CUBE.
19
+ * Verifies that the current CUBE identity may use the local-account endpoint.
16
20
  *
17
- * @returns A Result containing array of ChrisGroup, or Err on failure.
21
+ * @returns Success when the current identity has an administrative CUBE link.
18
22
  */
19
- async function groups_getAll() {
23
+ async function localAccount_adminAccessEnsure() {
20
24
  try {
21
25
  const client = await chrisConnection_js_1.chrisConnection.client_get();
22
- if (!client) {
23
- errorStack_js_1.errorStack.stack_push('error', 'Not connected to ChRIS. Please log in.');
24
- return (0, result_js_1.Err)();
26
+ if (!client)
27
+ throw new Error('Not connected to ChRIS. Please log in.');
28
+ if (!await (0, adapter_js_1.client_adminUrlEnsure)(client)) {
29
+ throw new Error('Administrator privileges are required.');
25
30
  }
26
- const groupList = await client.getGroups({ limit: 1000 });
27
- const groups = (0, adapter_js_1.listData_get)(groupList);
28
- return (0, result_js_1.Ok)(groups);
31
+ return (0, result_js_1.Ok)(undefined);
29
32
  }
30
33
  catch (error) {
31
- const msg = error instanceof Error ? error.message : String(error);
32
- errorStack_js_1.errorStack.stack_push('error', `Failed to fetch groups: ${msg}`);
34
+ errorStack_js_1.errorStack.stack_push('error', error instanceof Error ? error.message : String(error));
33
35
  return (0, result_js_1.Err)();
34
36
  }
35
37
  }
36
38
  /**
37
- * Fetches the currently authenticated user from ChRIS CUBE.
39
+ * Decodes one collection+json item into a plain local-account record.
38
40
  *
39
- * @returns A Result containing ChrisUser, or Err on failure.
41
+ * @param document - Collection+JSON response document.
42
+ * @returns The decoded account, or null when the response lacks a valid item.
40
43
  */
41
- async function currentUser_get() {
44
+ function localAccount_decode(document) {
45
+ const item = document
46
+ ?.collection?.items?.[0];
47
+ if (!item?.data)
48
+ return null;
49
+ const values = Object.fromEntries(item.data.map(({ name, value }) => [name, value]));
50
+ const id = Number(values.id);
51
+ return Number.isInteger(id) && typeof values.username === 'string' && typeof values.email === 'string'
52
+ ? { id, username: values.username, email: values.email, is_active: values.is_active === true,
53
+ disabled_at: typeof values.disabled_at === 'string' ? values.disabled_at : null,
54
+ removed_at: typeof values.removed_at === 'string' ? values.removed_at : null }
55
+ : null;
56
+ }
57
+ /**
58
+ * Finds one CUBE-local account by its exact username.
59
+ *
60
+ * @param username - Exact CUBE-local username to find.
61
+ * @returns The matching local account or a recorded operation error.
62
+ */
63
+ async function localAccount_find(username) {
64
+ try {
65
+ const client = await chrisConnection_js_1.chrisConnection.client_get();
66
+ if (!client)
67
+ throw new Error('Not connected to ChRIS. Please log in.');
68
+ const account = localAccount_decode(await (0, adapter_js_1.client_adminRequest)(client, `users/?username=${encodeURIComponent(username)}`, 'get'));
69
+ if (!account)
70
+ throw new Error(`No CUBE-local account named '${username}'.`);
71
+ return (0, result_js_1.Ok)(account);
72
+ }
73
+ catch (error) {
74
+ errorStack_js_1.errorStack.stack_push('error', error instanceof Error ? error.message : String(error));
75
+ return (0, result_js_1.Err)();
76
+ }
77
+ }
78
+ /**
79
+ * Creates one CUBE-local account through the administrative endpoint.
80
+ *
81
+ * @param username - New CUBE-local username.
82
+ * @param email - Email address stored on the CUBE account.
83
+ * @param password - Initial local-login password.
84
+ * @returns The created local account or a recorded operation error.
85
+ */
86
+ async function localAccount_create(username, email, password) {
87
+ try {
88
+ const client = await chrisConnection_js_1.chrisConnection.client_get();
89
+ if (!client)
90
+ throw new Error('Not connected to ChRIS. Please log in.');
91
+ const account = localAccount_decode(await (0, adapter_js_1.client_adminRequest)(client, 'users/', 'post', { username, email, password }));
92
+ if (!account)
93
+ throw new Error('CUBE returned no local-account record.');
94
+ return (0, result_js_1.Ok)(account);
95
+ }
96
+ catch (error) {
97
+ errorStack_js_1.errorStack.stack_push('error', error instanceof Error ? error.message : String(error));
98
+ return (0, result_js_1.Err)();
99
+ }
100
+ }
101
+ /**
102
+ * Applies one lifecycle action to a CUBE-local account.
103
+ *
104
+ * @param accountID - Stable local-account record identifier.
105
+ * @param action - Lifecycle transition to apply.
106
+ * @returns The updated local account or a recorded operation error.
107
+ */
108
+ async function localAccount_action(accountID, action) {
109
+ try {
110
+ const client = await chrisConnection_js_1.chrisConnection.client_get();
111
+ if (!client)
112
+ throw new Error('Not connected to ChRIS. Please log in.');
113
+ const account = localAccount_decode(await (0, adapter_js_1.client_adminRequest)(client, `users/${accountID}/`, 'post', { action }));
114
+ if (!account)
115
+ throw new Error('CUBE returned no local-account record.');
116
+ return (0, result_js_1.Ok)(account);
117
+ }
118
+ catch (error) {
119
+ errorStack_js_1.errorStack.stack_push('error', error instanceof Error ? error.message : String(error));
120
+ return (0, result_js_1.Err)();
121
+ }
122
+ }
123
+ /**
124
+ * Resolves the current user resource and its typed domain data.
125
+ *
126
+ * @returns The paired ChrisAPI resource and user data, or Err when unavailable.
127
+ */
128
+ async function currentUserResource_get() {
42
129
  try {
43
130
  const client = await chrisConnection_js_1.chrisConnection.client_get();
44
131
  if (!client) {
45
132
  errorStack_js_1.errorStack.stack_push('error', 'Not connected to ChRIS. Please log in.');
46
133
  return (0, result_js_1.Err)();
47
134
  }
48
- const user = await client.getUser();
49
- const userData = (0, adapter_js_1.itemData_get)(user);
50
- if (!userData) {
135
+ const resource = await client.getUser();
136
+ const user = (0, adapter_js_1.itemData_get)(resource);
137
+ if (!user) {
51
138
  errorStack_js_1.errorStack.stack_push('error', 'Current user response carried no data.');
52
139
  return (0, result_js_1.Err)();
53
140
  }
54
- return (0, result_js_1.Ok)(userData);
141
+ return (0, result_js_1.Ok)({ resource, user });
55
142
  }
56
143
  catch (error) {
57
144
  const msg = error instanceof Error ? error.message : String(error);
@@ -59,4 +146,46 @@ async function currentUser_get() {
59
146
  return (0, result_js_1.Err)();
60
147
  }
61
148
  }
149
+ /**
150
+ * Fetches the currently authenticated user from ChRIS CUBE.
151
+ *
152
+ * @returns A Result containing ChrisUser, or Err on failure.
153
+ */
154
+ async function currentUser_get() {
155
+ const current = await currentUserResource_get();
156
+ return current.ok ? (0, result_js_1.Ok)(current.value.user) : (0, result_js_1.Err)();
157
+ }
158
+ /**
159
+ * Fetches the authenticated user together with all CUBE group memberships.
160
+ *
161
+ * @returns A Result containing the current user and their groups, or Err on
162
+ * connection, user, or membership lookup failure.
163
+ */
164
+ async function currentIdentity_get() {
165
+ const current = await currentUserResource_get();
166
+ if (!current.ok)
167
+ return (0, result_js_1.Err)();
168
+ try {
169
+ const membershipPageSize = 1000;
170
+ const groups = [];
171
+ let offset = 0;
172
+ while (true) {
173
+ const groupList = await current.value.resource.getGroups({
174
+ limit: membershipPageSize,
175
+ offset,
176
+ });
177
+ const pageGroups = (0, adapter_js_1.listData_get)(groupList);
178
+ groups.push(...pageGroups);
179
+ if (!groupList.hasNextPage || pageGroups.length === 0)
180
+ break;
181
+ offset += pageGroups.length;
182
+ }
183
+ return (0, result_js_1.Ok)({ user: current.value.user, groups });
184
+ }
185
+ catch (error) {
186
+ const msg = error instanceof Error ? error.message : String(error);
187
+ errorStack_js_1.errorStack.stack_push('error', `Failed to fetch current identity: ${msg}`);
188
+ return (0, result_js_1.Err)();
189
+ }
190
+ }
62
191
  //# sourceMappingURL=chrisUsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrisUsers.js","sourceRoot":"","sources":["../../src/users/chrisUsers.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA8BH,sCAiBC;AAOD,0CAqBC;AAzED,sEAAgE;AAChE,uDAAoF;AACpF,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,GAAiB,IAAA,yBAAY,EAAa,SAAS,CAAC,CAAC;QAEjE,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,GAAqB,IAAA,yBAAY,EAAY,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,0BAAU,CAAC,UAAU,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;YACzE,OAAO,IAAA,eAAG,GAAE,CAAC;QACf,CAAC;QAED,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"}
1
+ {"version":3,"file":"chrisUsers.js","sourceRoot":"","sources":["../../src/users/chrisUsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @file Bounded retry with backoff.
3
+ *
4
+ * The one implementation of the attempt-count-plus-backoff loop that was
5
+ * previously reimplemented independently at every call site that talks to a
6
+ * service that browns out under load (retrieve firing, storage resolution,
7
+ * query polling). See docs/code-audit-2026-08.adoc, finding 2.
8
+ *
9
+ * @module
10
+ */
11
+ /**
12
+ * Runs `fn` up to `attempts` times, sleeping between attempts, until it
13
+ * yields a non-null value.
14
+ *
15
+ * The delay before retry N (1-based) is `delaysMs[N-1]`, with the last entry
16
+ * reused when attempts outnumber delays; no sleep precedes the first attempt.
17
+ *
18
+ * @param attempts - Maximum number of attempts (at least 1).
19
+ * @param delaysMs - Backoff delays in milliseconds between attempts.
20
+ * @param fn - The operation; `null` means "failed, retry if attempts remain".
21
+ * Receives the 0-based attempt index.
22
+ * @returns The first non-null value, or null when every attempt failed.
23
+ *
24
+ * @example
25
+ * ```
26
+ * const record = await retry_untilValue(3, [250, 500], () => record_fetch(id));
27
+ * ```
28
+ */
29
+ export declare function retry_untilValue<T>(attempts: number, delaysMs: readonly number[], fn: (attempt: number) => Promise<T | null>): Promise<T | null>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * @file Bounded retry with backoff.
4
+ *
5
+ * The one implementation of the attempt-count-plus-backoff loop that was
6
+ * previously reimplemented independently at every call site that talks to a
7
+ * service that browns out under load (retrieve firing, storage resolution,
8
+ * query polling). See docs/code-audit-2026-08.adoc, finding 2.
9
+ *
10
+ * @module
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.retry_untilValue = retry_untilValue;
14
+ /**
15
+ * Runs `fn` up to `attempts` times, sleeping between attempts, until it
16
+ * yields a non-null value.
17
+ *
18
+ * The delay before retry N (1-based) is `delaysMs[N-1]`, with the last entry
19
+ * reused when attempts outnumber delays; no sleep precedes the first attempt.
20
+ *
21
+ * @param attempts - Maximum number of attempts (at least 1).
22
+ * @param delaysMs - Backoff delays in milliseconds between attempts.
23
+ * @param fn - The operation; `null` means "failed, retry if attempts remain".
24
+ * Receives the 0-based attempt index.
25
+ * @returns The first non-null value, or null when every attempt failed.
26
+ *
27
+ * @example
28
+ * ```
29
+ * const record = await retry_untilValue(3, [250, 500], () => record_fetch(id));
30
+ * ```
31
+ */
32
+ async function retry_untilValue(attempts, delaysMs, fn) {
33
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
34
+ for (let attempt = 0; attempt < attempts; attempt++) {
35
+ if (attempt > 0) {
36
+ await sleep(delaysMs[Math.min(attempt - 1, delaysMs.length - 1)] ?? 0);
37
+ }
38
+ const value = await fn(attempt);
39
+ if (value !== null)
40
+ return value;
41
+ }
42
+ return null;
43
+ }
44
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAoBH,4CAcC;AAhCD;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,QAA2B,EAC3B,EAA0C;IAE1C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACtG,KAAK,IAAI,OAAO,GAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QAC5D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,GAAa,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@fnndsc/cumin",
3
- "version": "3.8.1",
3
+ "version": "3.10.0",
4
4
  "description": "Utility library for ChILI and other ChRIS-related JavaScript applications",
5
5
  "repository": {
6
6
  "type": "git",
7
- "url": "git+https://github.com/FNNDSC/cumin.git"
7
+ "url": "git+https://github.com/FNNDSC/mise.git",
8
+ "directory": "packages/cumin"
8
9
  },
9
- "homepage": "https://github.com/FNNDSC/cumin#readme",
10
+ "homepage": "https://github.com/FNNDSC/mise/tree/main/packages/cumin#readme",
10
11
  "bugs": {
11
- "url": "https://github.com/FNNDSC/cumin/issues"
12
+ "url": "https://github.com/FNNDSC/mise/issues"
12
13
  },
13
14
  "main": "dist/index.js",
14
15
  "module": "dist/index.js",
@@ -22,15 +23,25 @@
22
23
  "types": "./dist/index.d.ts",
23
24
  "require": "./dist/index.js"
24
25
  },
26
+ "./proc-prompt": {
27
+ "import": "./dist/cache/procPrompt.js",
28
+ "types": "./dist/cache/procPrompt.d.ts",
29
+ "require": "./dist/cache/procPrompt.js"
30
+ },
31
+ "./runtime-output": {
32
+ "import": "./dist/output/runtimeOutput.js",
33
+ "types": "./dist/output/runtimeOutput.d.ts",
34
+ "require": "./dist/output/runtimeOutput.js"
35
+ },
25
36
  "./package.json": "./package.json"
26
37
  },
27
38
  "scripts": {
28
39
  "build": "rm -fr dist types && tsc && chmod +x ./dist/cli.js",
29
40
  "test": "jest --coverage",
30
- "prepublishOnly": "npm run build"
41
+ "prepublishOnly": "test -f dist/index.js && test -f dist/index.d.ts"
31
42
  },
32
43
  "bin": {
33
- "cumin": "./dist/cli.js"
44
+ "cumin": "dist/cli.js"
34
45
  },
35
46
  "keywords": [
36
47
  "chris",
@@ -43,10 +54,10 @@
43
54
  "@types/chalk": "^0.4.31",
44
55
  "@types/figlet": "^1.5.8",
45
56
  "@types/jest": "^30.0.0",
57
+ "@types/node": "^22.0.0",
46
58
  "jest": "^30.2.0",
47
59
  "ts-jest": "^29.4.5",
48
- "typescript": "^5.0.0",
49
- "@types/node": "^22.0.0"
60
+ "typescript": "^5.0.0"
50
61
  },
51
62
  "dependencies": {
52
63
  "@fnndsc/chrisapi": "^1.25.0",