@decaf-ts/core 0.10.2 → 0.12.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 (72) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/index.d.ts +1 -1
  7. package/lib/esm/index.js +1 -1
  8. package/lib/esm/persistence/Dispatch.d.ts +1 -0
  9. package/lib/esm/persistence/Dispatch.js +17 -3
  10. package/lib/esm/persistence/Dispatch.js.map +1 -1
  11. package/lib/esm/services/services.d.ts +1 -0
  12. package/lib/esm/services/services.js +14 -0
  13. package/lib/esm/services/services.js.map +1 -1
  14. package/lib/esm/tasks/TaskContext.d.ts +4 -0
  15. package/lib/esm/tasks/TaskContext.js +14 -0
  16. package/lib/esm/tasks/TaskContext.js.map +1 -1
  17. package/lib/esm/tasks/TaskEngine.d.ts +13 -0
  18. package/lib/esm/tasks/TaskEngine.js +196 -2
  19. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  20. package/lib/esm/tasks/TaskHandler.d.ts +1 -0
  21. package/lib/esm/tasks/TaskHandler.js +6 -0
  22. package/lib/esm/tasks/TaskHandler.js.map +1 -1
  23. package/lib/esm/tasks/TaskTracker.d.ts +1 -0
  24. package/lib/esm/tasks/TaskTracker.js +13 -0
  25. package/lib/esm/tasks/TaskTracker.js.map +1 -1
  26. package/lib/esm/tasks/builder.d.ts +24 -4
  27. package/lib/esm/tasks/builder.js +66 -3
  28. package/lib/esm/tasks/builder.js.map +1 -1
  29. package/lib/esm/tasks/constants.d.ts +1 -0
  30. package/lib/esm/tasks/constants.js +1 -0
  31. package/lib/esm/tasks/constants.js.map +1 -1
  32. package/lib/esm/tasks/models/TaskModel.d.ts +2 -0
  33. package/lib/esm/tasks/models/TaskModel.js +15 -0
  34. package/lib/esm/tasks/models/TaskModel.js.map +1 -1
  35. package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +2 -0
  36. package/lib/esm/tasks/models/TaskStepSpecModel.js +12 -0
  37. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
  38. package/lib/esm/tasks/types.d.ts +7 -1
  39. package/lib/index.cjs +1 -1
  40. package/lib/index.d.ts +1 -1
  41. package/lib/persistence/Dispatch.cjs +17 -3
  42. package/lib/persistence/Dispatch.d.ts +1 -0
  43. package/lib/persistence/Dispatch.js.map +1 -1
  44. package/lib/services/services.cjs +14 -0
  45. package/lib/services/services.d.ts +1 -0
  46. package/lib/services/services.js.map +1 -1
  47. package/lib/tasks/TaskContext.cjs +14 -0
  48. package/lib/tasks/TaskContext.d.ts +4 -0
  49. package/lib/tasks/TaskContext.js.map +1 -1
  50. package/lib/tasks/TaskEngine.cjs +196 -2
  51. package/lib/tasks/TaskEngine.d.ts +13 -0
  52. package/lib/tasks/TaskEngine.js.map +1 -1
  53. package/lib/tasks/TaskHandler.cjs +6 -0
  54. package/lib/tasks/TaskHandler.d.ts +1 -0
  55. package/lib/tasks/TaskHandler.js.map +1 -1
  56. package/lib/tasks/TaskTracker.cjs +13 -0
  57. package/lib/tasks/TaskTracker.d.ts +1 -0
  58. package/lib/tasks/TaskTracker.js.map +1 -1
  59. package/lib/tasks/builder.cjs +68 -4
  60. package/lib/tasks/builder.d.ts +24 -4
  61. package/lib/tasks/builder.js.map +1 -1
  62. package/lib/tasks/constants.cjs +1 -0
  63. package/lib/tasks/constants.d.ts +1 -0
  64. package/lib/tasks/constants.js.map +1 -1
  65. package/lib/tasks/models/TaskModel.cjs +15 -0
  66. package/lib/tasks/models/TaskModel.d.ts +2 -0
  67. package/lib/tasks/models/TaskModel.js.map +1 -1
  68. package/lib/tasks/models/TaskStepSpecModel.cjs +12 -0
  69. package/lib/tasks/models/TaskStepSpecModel.d.ts +2 -0
  70. package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
  71. package/lib/tasks/types.d.ts +7 -1
  72. package/package.json +1 -1
@@ -8,10 +8,15 @@ import { TaskHandlerRegistry } from "./TaskHandlerRegistry";
8
8
  import { TaskEventModel } from "./models/TaskEventModel";
9
9
  import { TaskStatus } from "./constants";
10
10
  import { TaskErrorModel } from "./models/TaskErrorModel";
11
+ import { TaskStepSpecModel } from "./models/TaskStepSpecModel";
11
12
  export interface ITaskHandler<I = any, O = any> {
12
13
  type: string;
13
14
  run(input: I, ctx: TaskContext): Promise<O>;
15
+ catch?(input: I, error: unknown, ctx: TaskContext): Promise<void>;
14
16
  }
17
+ export type TaskDependencySpec = {
18
+ dependencies?: string[];
19
+ };
15
20
  export type LogPipeOptions = {
16
21
  style: boolean;
17
22
  logProgress: boolean;
@@ -30,6 +35,7 @@ export interface TaskFlags<LOG extends TaskLogger<any> = TaskLogger<any>> extend
30
35
  flush: () => Promise<void>;
31
36
  progress: (data: any) => Promise<void>;
32
37
  heartbeat: () => Promise<void>;
38
+ scheduleCompositeSteps?: (steps: TaskStepSpecModel[]) => Promise<void>;
33
39
  resultCache?: Record<string, any>;
34
40
  }
35
41
  export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
@@ -50,7 +56,7 @@ export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
50
56
  autoShutdown?: TaskEngineAutoShutdownConfig;
51
57
  };
52
58
  export type TaskProgressPayload = {
53
- status: TaskStatus;
59
+ status: TaskStatus | "update";
54
60
  currentStep?: number;
55
61
  totalSteps?: number;
56
62
  output?: any;
package/lib/index.cjs CHANGED
@@ -49,7 +49,7 @@ __exportStar(require("./persistence/index.cjs"), exports);
49
49
  * @const VERSION
50
50
  * @memberOf module:core
51
51
  */
52
- exports.VERSION = "0.10.1";
52
+ exports.VERSION = "0.11.0";
53
53
  /**
54
54
  * @description Stores the current package version
55
55
  * @summary A constant representing the version of the core package
package/lib/index.d.ts CHANGED
@@ -22,7 +22,7 @@ export * from "./persistence";
22
22
  * @const VERSION
23
23
  * @memberOf module:core
24
24
  */
25
- export declare const VERSION = "0.10.1";
25
+ export declare const VERSION = "0.11.0";
26
26
  /**
27
27
  * @description Stores the current package version
28
28
  * @summary A constant representing the version of the core package
@@ -34,6 +34,17 @@ const constants_1 = require("./constants.cjs");
34
34
  * ```
35
35
  */
36
36
  class Dispatch extends ContextualLoggedClass_1.ContextualLoggedClass {
37
+ isSameObservedAdapter(observer) {
38
+ if (!this.adapter)
39
+ return false;
40
+ if (this.adapter === observer)
41
+ return true;
42
+ const current = this.adapter;
43
+ const candidate = observer;
44
+ if (!(candidate instanceof Adapter_1.Adapter))
45
+ return false;
46
+ return (current.alias === candidate.alias && current.flavour === candidate.flavour);
47
+ }
37
48
  /**
38
49
  * @description Creates a new Dispatch instance
39
50
  * @summary Initializes a new Dispatch instance without any adapter
@@ -186,8 +197,11 @@ class Dispatch extends ContextualLoggedClass_1.ContextualLoggedClass {
186
197
  observe(observer) {
187
198
  if (!(observer instanceof Adapter_1.Adapter))
188
199
  throw new errors_1.UnsupportedError("Only Adapters can be observed by dispatch");
189
- if (this.adapter)
190
- return () => this.unObserve(this.adapter);
200
+ if (this.adapter) {
201
+ if (this.isSameObservedAdapter(observer))
202
+ return () => this.unObserve(observer);
203
+ throw new errors_1.UnsupportedError("Dispatch is already observing another adapter");
204
+ }
191
205
  this.adapter = observer;
192
206
  this.models = Adapter_1.Adapter.models(this.adapter.alias);
193
207
  this.initialize().then(() => this.log.verbose(`Dispatch initialized for ${this.adapter.alias} adapter`));
@@ -200,7 +214,7 @@ class Dispatch extends ContextualLoggedClass_1.ContextualLoggedClass {
200
214
  * @return {void}
201
215
  */
202
216
  unObserve(observer) {
203
- if (this.adapter !== observer)
217
+ if (!this.isSameObservedAdapter(observer))
204
218
  throw new errors_1.UnsupportedError("Only the adapter that was used to observe can be unobserved");
205
219
  this.adapter = undefined;
206
220
  }
@@ -32,6 +32,7 @@ import { ContextualArgs, ContextualizedArgs, ContextualLoggedClass, MaybeContext
32
32
  * ```
33
33
  */
34
34
  export declare class Dispatch<A extends Adapter<any, any, any, any>> extends ContextualLoggedClass<ContextOf<A>> implements AdapterDispatch<A> {
35
+ private isSameObservedAdapter;
35
36
  /**
36
37
  * Indicates whether the dispatcher has already been initialized.
37
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["../../src/persistence/Dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["../../src/persistence/Dispatch.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,20 @@ class Service extends ContextualLoggedClass_1.ContextualLoggedClass {
45
45
  },
46
46
  });
47
47
  }
48
+ override(conf, ...args) {
49
+ return new Proxy(this, {
50
+ get(original, prop, receiver) {
51
+ const orig = Reflect.get(original, prop, receiver);
52
+ if (typeof orig !== "object")
53
+ return orig;
54
+ if (orig instanceof Service)
55
+ return orig.override(conf, ...args);
56
+ if (orig instanceof index_1.Repository)
57
+ return orig.override(conf);
58
+ return orig;
59
+ },
60
+ });
61
+ }
48
62
  /**
49
63
  * @description Registers an observer for this repository.
50
64
  * @summary Adds an observer that will be notified of changes to models in this repository.
@@ -10,6 +10,7 @@ export declare abstract class Service<C extends Context<ContextFlags<any>> = Con
10
10
  protected observerHandler?: ObserverHandler;
11
11
  protected constructor(name?: string | undefined);
12
12
  for(conf: any, ...args: any[]): this;
13
+ override(conf: any, ...args: any[]): this;
13
14
  /**
14
15
  * @description Registers an observer for this repository.
15
16
  * @summary Adds an observer that will be notified of changes to models in this repository.
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services/services.ts"],"names":[],"mappings":";;;;;;;;;;;;AASA,0DAAiD;AACjD,+CAAgE;AAChE,gFAMwC;AACxC,2DAAwD;AAExD,8DAAgF;AAChF,gDAAsD;AACtD,2EAA8D;AAC9D,gEAAiD;AAEjD,0EAAiE;AACjE,qDAAiD;AAEjD,MAAsB,OAGpB,SAAQ,6CAAwB;IAOhC,YAA+B,IAAa;QAC1C,KAAK,EAAE,CAAC;QADqB,SAAI,GAAJ,IAAI,CAAS;QAJlC,cAAS,GAAe,EAAE,CAAC;QA0IrC;;;WAGG;QACgB,YAAO,GAAmB,CAAA,iBAEf,CAAA,CAAC;IA1I/B,CAAC;IAED,GAAG,CAAC,IAAS,EAAE,GAAG,IAAW;QAC3B,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ;gBAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnD,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAC1C,IAAI,IAAI,YAAY,OAAO;oBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC5D,IAAI,IAAI,YAAY,kBAAU;oBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IAEH,OAAO,CAAC,QAAkB,EAAE,MAAuB;QACjD,IAAI,CAAC,IAAI,CAAC,eAAe;YACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE;gBAC7C,KAAK,EAAE,IAAI,iCAAe,EAAE;gBAC5B,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,GAAG,CAAC,OAAO,CACT,2BAA2B,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAC9E,CAAC;QACF,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IAEH,SAAS,CAAC,QAAkB;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe;YACvB,MAAM,IAAI,6BAAa,CACrB,+GAA+G,CAChH,CAAC;QACJ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,GAAG,CAAC,OAAO,CAAC,YAAY,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,eAAe,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,eAAe,CACnB,KAAgC,EAChC,KAAuB,EACvB,EAAY,EACZ,GAAG,IAAuB;QAE1B,IAAI,CAAC,IAAI,CAAC,eAAe;YACvB,MAAM,IAAI,6BAAa,CACrB,oEAAoE,CACrE,CAAC;QACJ,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACjE,GAAG,CAAC,OAAO,CACT,YAAY,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,IAAI,EAAE,CACjE,CAAC;QACF,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;;OASG;IACO,KAAK,CAAC,KAAK,CACnB,SAAiB,EACjB,KAA0B,EAC1B,GAAG,IAAW;QAEd,KAAK,CAAC,aAAa;YACjB,KAAK,CAAC,aAAa,IAAI,GAAG,SAAS,IAAI,iBAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,iBAAO,CAAC,GAAG,CAAC,IAAW,CAAC,CAAW,CAAC;QACjE,GAAG,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,+BAAmB,EAAE,KAAK,EAAE;YACnD,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,GAAG;SACZ,CAA0B,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CACX,KAAgC,EAChC,KAAuB,EACvB,EAAY,EACZ,GAAG,IAAuB;QAE1B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAUD,KAAK,CAAC,OAAO,CACX,SAA6C,EAC7C,SAA8B,EAC9B,GAAG,IAAsC;QAEzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,GAAG,CAAC,KAAK,CACP,4BAA4B,SAAS,mCAAmC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CACpG,CAAC;QACF,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAO,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC;QACD,SAAS,GAAG,GAAG;YACb,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAC5B,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAC1D,SAAgC,EAChC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAClC,CAAC;QACF,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;oBAC3C,GAAG,GAAG,CAAC,OAAO,CAAC;oBACf,GAAG,KAAK;oBACR,aAAa,EAAE,GAAG;iBACnB,CAAQ,CAAC;gBACV,GAAG,CAAC,UAAU,CAAC;oBACb,aAAa,EAAE;wBACb,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;wBAC9C,MAAM;qBACP;iBACF,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;oBAC3C,GAAG,GAAG,CAAC,OAAO,CAAC;oBACf,GAAG,KAAK;oBACR,aAAa,EAAE,GAAG;iBACnB,CAAQ,CAAC;gBAEV,GAAG,CAAC,UAAU,CAAC;oBACb,aAAa,EAAE;wBACb,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;wBAC9C,MAAM;qBACP;iBACF,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAQ,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;YACnC,GAAG,KAAK;SACT,CAAQ,CAAC;IACZ,CAAC;IAgCkB,MAAM,CAMvB,IAAuC,EACvC,SAAiB,EACjB,cAAsB,KAAe,EACrC,SAAqC;QAMrC,OAAO,6CAAqB,CAAC,MAAM,CAAC,IAAI,CACtC,IAAI,EACJ,SAAS,EACT,SAAS,IAAI,EAAE,EACf,WAAW,EACX,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,CAS0B,CAAC;IAC9E,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAoB,IAAsC;QAClE,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,6BAAa,CAAC,kBAAkB,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,mCAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,UAAU;YAAE,OAAO,UAAe,CAAC;QAEvC,MAAM,IAAI,6BAAa,CACrB,wBAAwB,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CACnH,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,GAAG,IAA2B;QAE9B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAO,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,CACzC,2BAAe,CAAC,cAAc,EAC9B,EAAE,EACF,GAAG,IAAI,CACR,CAAC;QACF,GAAG,GAAG,GAAG;YACP,CAAC,CAAE,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBAC3B,GAAG,KAAK;gBACR,aAAa,EAAE,GAAG;aACnB,CAAS;YACZ,CAAC,CAAE,IAAI,iBAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAS,CAAC;QAE7C,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAEtB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,mCAAW,CAAC,QAAQ,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,GAAG,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;gBAClD,MAAM,CAAC,GAAG,mCAAW,CAAC,GAAG,CAAU,OAA+B,CAAC,CAAC;gBACpE,IAAI,CAAC,CAAC;oBACJ,MAAM,IAAI,6BAAa,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;gBACrE,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;oBACpC,GAAG,CAAC,OAAO,CAAC,gBAAgB,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;oBACvD,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,6BAAa,CAAC,kBAAkB,OAAO,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,GAAG,IAA2B;QAE9B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAO,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,CACzC,2BAAe,CAAC,QAAQ,EACxB,EAAE,EACF,GAAG,IAAI,CACR,CAAC;QACF,GAAG,GAAG,GAAG;YACP,CAAC,CAAE,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBAC3B,GAAG,KAAK;gBACR,aAAa,EAAE,GAAG;aACnB,CAAS;YACZ,CAAC,CAAE,IAAI,iBAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAS,CAAC;QAE7C,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAEtB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,mCAAW,CAAC,QAAQ,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,GAAG,CAAC,OAAO,CAAC,iBAAiB,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;gBACxD,MAAM,CAAC,GAAG,mCAAW,CAAC,GAAG,CAAU,OAA+B,CAAC,CAAC;gBACpE,IAAI,CAAC,CAAC;oBACJ,MAAM,IAAI,6BAAa,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;gBACrE,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;oBACpC,GAAG,CAAC,OAAO,CAAC,4BAA4B,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC;oBACnE,IAAI,CAAC;wBACH,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;oBAC/B,CAAC;oBAAC,OAAO,CAAU,EAAE,CAAC;wBACpB,GAAG,CAAC,KAAK,CACP,iCAAiC,OAAO,CAAC,IAAI,UAAU,EACvD,CAAU,CACX,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,6BAAa,CAAC,+BAA+B,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA7XD,0BA6XC;AA1VC;IADC,IAAA,eAAK,GAAE;;;;sCAaP;AAWD;IADC,IAAA,eAAK,GAAE;;;;wCAaP;AAyTH,MAAsB,kBAIpB,SAAQ,OAAO;IAKf;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAC,GAAG,IAA2B;QACvC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAC9C,GAAI,IAAsB,CAC3B,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,GAAG,CACd,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,2BAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAOD,IACc,MAAM;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,6BAAa,CAAC,wBAAwB,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IACI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,6BAAa,CAAC,wBAAwB,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAG,IAA2B;QAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/B,CAAC;CACF;AA/CD,gDA+CC;AAjCO;IADL,IAAA,eAAK,GAAE;;;;8CAWP;AAOD;IAAC,IAAA,eAAK,GAAE;;;gDAIP;AAED;IAAC,IAAA,eAAK,GAAE;;;gDAIP"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services/services.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ const TaskErrorModel_1 = require("./models/TaskErrorModel.cjs");
6
6
  const constants_1 = require("./constants.cjs");
7
7
  const utils_1 = require("./utils.cjs");
8
8
  const TaskStateChangeError_1 = require("./TaskStateChangeError.cjs");
9
+ const TaskStepSpecModel_1 = require("./models/TaskStepSpecModel.cjs");
10
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
9
11
  class TaskContext extends Context_1.Context {
10
12
  get taskId() {
11
13
  return this.get("taskId");
@@ -79,6 +81,18 @@ class TaskContext extends Context_1.Context {
79
81
  get resultCache() {
80
82
  return this.get("resultCache");
81
83
  }
84
+ scheduleSteps(...steps) {
85
+ const normalized = (steps ?? []).map((step) => step instanceof TaskStepSpecModel_1.TaskStepSpecModel ? step : new TaskStepSpecModel_1.TaskStepSpecModel(step));
86
+ return {
87
+ afterCurrent: async () => {
88
+ const scheduler = this.getOrUndefined("scheduleCompositeSteps");
89
+ if (!scheduler) {
90
+ throw new db_decorators_1.InternalError("scheduleSteps().afterCurrent() is only available while running a composite task step");
91
+ }
92
+ await scheduler(normalized);
93
+ },
94
+ };
95
+ }
82
96
  constructor(ctx) {
83
97
  super(ctx);
84
98
  }
@@ -5,6 +5,7 @@ import { DateTarget } from "@decaf-ts/decorator-validation";
5
5
  import { TaskErrorModel } from "./models/TaskErrorModel";
6
6
  import { TaskStatus } from "./constants";
7
7
  import { TaskStateChangeRequest } from "./TaskStateChangeError";
8
+ import { TaskStepSpecModel } from "./models/TaskStepSpecModel";
8
9
  export declare class TaskContext extends Context<TaskFlags> {
9
10
  get taskId(): string;
10
11
  get logger(): TaskLogger<any>;
@@ -22,5 +23,8 @@ export declare class TaskContext extends Context<TaskFlags> {
22
23
  reschedule(when: DateTarget, reason?: string | Error | TaskErrorModel): never;
23
24
  private toTaskError;
24
25
  get resultCache(): Record<string, any> | undefined;
26
+ scheduleSteps(...steps: (TaskStepSpecModel | Partial<TaskStepSpecModel>)[]): {
27
+ afterCurrent: () => Promise<void>;
28
+ };
25
29
  constructor(ctx?: Context<any>);
26
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TaskContext.js","sourceRoot":"","sources":["../../src/tasks/TaskContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskContext.js","sourceRoot":"","sources":["../../src/tasks/TaskContext.ts"],"names":[],"mappings":"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"}
@@ -285,6 +285,9 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
285
285
  catch {
286
286
  // fallback to candidate payload
287
287
  }
288
+ const runnable = await this.isRunnable(source, ctx);
289
+ if (!runnable)
290
+ return null;
288
291
  const claimed = new TaskModel_1.TaskModel({
289
292
  ...source,
290
293
  status: constants_1.TaskStatus.RUNNING,
@@ -302,6 +305,141 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
302
305
  return null;
303
306
  }
304
307
  }
308
+ isTaskFinished(status) {
309
+ return [
310
+ constants_1.TaskStatus.SUCCEEDED,
311
+ constants_1.TaskStatus.FAILED,
312
+ constants_1.TaskStatus.CANCELED,
313
+ ].includes(status);
314
+ }
315
+ parseTaskDependency(value) {
316
+ const raw = value?.trim();
317
+ if (!raw)
318
+ return undefined;
319
+ const sep = raw.lastIndexOf(":");
320
+ if (sep <= 0 || sep >= raw.length - 1)
321
+ return { taskId: raw };
322
+ const taskId = raw.slice(0, sep).trim();
323
+ const stepRef = raw.slice(sep + 1).trim();
324
+ if (!taskId || !stepRef)
325
+ return { taskId: raw };
326
+ return { taskId, stepRef };
327
+ }
328
+ normalizeDependencies(deps) {
329
+ if (!deps)
330
+ return [];
331
+ let payload = deps;
332
+ if (typeof payload === "string") {
333
+ try {
334
+ payload = JSON.parse(payload);
335
+ }
336
+ catch {
337
+ payload = [payload];
338
+ }
339
+ }
340
+ if (payload instanceof Set)
341
+ payload = Array.from(payload);
342
+ if (!Array.isArray(payload))
343
+ return [];
344
+ return payload
345
+ .filter((value) => typeof value === "string")
346
+ .map((value) => this.parseTaskDependency(value))
347
+ .filter(Boolean);
348
+ }
349
+ resolveDependencyStepIndex(task, stepRef) {
350
+ const trimmed = stepRef.trim();
351
+ if (!trimmed)
352
+ return undefined;
353
+ const numeric = Number(trimmed);
354
+ if (Number.isInteger(numeric) && numeric >= 0)
355
+ return numeric;
356
+ const steps = this.normalizeSteps(task.steps);
357
+ const index = steps.findIndex((step) => step.name === trimmed || step.classification === trimmed);
358
+ return index >= 0 ? index : undefined;
359
+ }
360
+ async areDependenciesSatisfied(dependencies, ctx) {
361
+ if (!dependencies.length)
362
+ return true;
363
+ const taskIds = Array.from(new Set(dependencies.map((dep) => dep.taskId)));
364
+ const dependencyTasks = new Map();
365
+ try {
366
+ const loaded = await this.tasks.readAll(taskIds, ctx);
367
+ for (const task of loaded) {
368
+ if (task?.id)
369
+ dependencyTasks.set(task.id, task);
370
+ }
371
+ }
372
+ catch {
373
+ return false;
374
+ }
375
+ for (const dep of dependencies) {
376
+ try {
377
+ const depTask = dependencyTasks.get(dep.taskId);
378
+ if (!depTask)
379
+ return false;
380
+ if (!dep.stepRef) {
381
+ if (!this.isTaskFinished(depTask.status))
382
+ return false;
383
+ continue;
384
+ }
385
+ const depStep = this.resolveDependencyStepIndex(depTask, dep.stepRef);
386
+ if (depStep == null)
387
+ return false;
388
+ const stepResults = this.normalizeStepResults(depTask.stepResults);
389
+ const stepResult = stepResults[depStep];
390
+ if (!stepResult || !this.isTaskFinished(stepResult.status))
391
+ return false;
392
+ }
393
+ catch {
394
+ return false;
395
+ }
396
+ }
397
+ return true;
398
+ }
399
+ getStepLock(task, stepIndex) {
400
+ if (task.atomicity !== constants_1.TaskType.COMPOSITE)
401
+ return undefined;
402
+ const steps = this.normalizeSteps(task.steps);
403
+ if (!steps.length)
404
+ return undefined;
405
+ const index = stepIndex == null ? 0 : stepIndex;
406
+ const step = steps[index];
407
+ return step?.lock;
408
+ }
409
+ async hasLockConflict(task, stepIndex, ctx) {
410
+ const candidateLocks = [
411
+ task.lock,
412
+ this.getStepLock(task, stepIndex),
413
+ ].filter((value) => !!value && typeof value === "string");
414
+ if (!candidateLocks.length)
415
+ return false;
416
+ const runningTasks = await this.tasks
417
+ .select()
418
+ .where(Condition_1.Condition.attribute("status").eq(constants_1.TaskStatus.RUNNING))
419
+ .execute(ctx);
420
+ for (const running of runningTasks) {
421
+ if (running.id === task.id)
422
+ continue;
423
+ const runningLocks = [
424
+ running.lock,
425
+ this.getStepLock(running, running.currentStep),
426
+ ].filter((value) => !!value && typeof value === "string");
427
+ if (runningLocks.some((lock) => candidateLocks.includes(lock))) {
428
+ return true;
429
+ }
430
+ }
431
+ return false;
432
+ }
433
+ async isRunnable(task, ctx) {
434
+ const dependencies = this.normalizeDependencies(task.dependencies);
435
+ const dependenciesSatisfied = await this.areDependenciesSatisfied(dependencies, ctx);
436
+ if (!dependenciesSatisfied)
437
+ return false;
438
+ const stepIndex = task.atomicity === constants_1.TaskType.COMPOSITE
439
+ ? (task.currentStep ?? 0)
440
+ : undefined;
441
+ return !(await this.hasLockConflict(task, stepIndex, ctx));
442
+ }
305
443
  // -------------------------
306
444
  // Execution
307
445
  // -------------------------
@@ -348,6 +486,8 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
348
486
  },
349
487
  });
350
488
  await this.emitStatus(taskCtx, task, constants_1.TaskStatus.RUNNING);
489
+ let activeHandler;
490
+ let activeInput;
351
491
  try {
352
492
  let output;
353
493
  if (task.atomicity === constants_1.TaskType.COMPOSITE) {
@@ -366,6 +506,8 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
366
506
  }
367
507
  else {
368
508
  const handler = this.registry.get(task.classification);
509
+ activeHandler = handler;
510
+ activeInput = task.input;
369
511
  log.debug(`handler type for ${task.id} is ${handler?.constructor?.name ?? "none"}`);
370
512
  if (!handler)
371
513
  throw new db_decorators_1.InternalError(`No task handler registered for type: ${task.classification}`);
@@ -406,6 +548,12 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
406
548
  await this.handleTaskStateChange(err.request, task, taskCtx);
407
549
  return;
408
550
  }
551
+ try {
552
+ await activeHandler?.catch?.(activeInput, err, taskCtx);
553
+ }
554
+ catch (catchErr) {
555
+ log.error("task handler catch() hook failed", catchErr);
556
+ }
409
557
  log.error("task execution error", err);
410
558
  if (task.atomicity === constants_1.TaskType.COMPOSITE) {
411
559
  const normalizedResults = this.normalizeStepResults(task.stepResults);
@@ -520,7 +668,7 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
520
668
  }
521
669
  async runComposite(task, context) {
522
670
  const { ctx } = (await this.logCtx([context], task.classification, true)).for(this.runComposite);
523
- const steps = this.normalizeSteps(task.steps);
671
+ let steps = this.normalizeSteps(task.steps);
524
672
  let idx = task.currentStep ?? 0;
525
673
  const results = this.normalizeStepResults(task.stepResults);
526
674
  const cacheResult = (key, value) => {
@@ -546,6 +694,45 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
546
694
  const handler = this.registry.get(step.classification);
547
695
  if (!handler)
548
696
  throw new Error(`No task handler registered for composite step: ${step.classification}`);
697
+ const dependencies = this.normalizeDependencies(step.dependsOn);
698
+ const dependenciesSatisfied = await this.areDependenciesSatisfied(dependencies, context);
699
+ if (!dependenciesSatisfied) {
700
+ context.reschedule(new Date(Date.now() + this.config.pollMsIdle), `Waiting dependencies for step ${idx} (${step.classification})`);
701
+ }
702
+ const lockConflict = await this.hasLockConflict(task, idx, context);
703
+ if (lockConflict) {
704
+ context.reschedule(new Date(Date.now() + this.config.pollMsIdle), `Waiting lock for step ${idx} (${step.classification})`);
705
+ }
706
+ task.currentStep = idx;
707
+ const persistedCurrent = await this.tasks.update(task);
708
+ Object.assign(task, persistedCurrent);
709
+ await context.progress({
710
+ currentStep: idx,
711
+ totalSteps: steps.length,
712
+ });
713
+ const stepIndex = idx;
714
+ context.cache.put("scheduleCompositeSteps", async (newSteps) => {
715
+ const normalizedNewSteps = this.normalizeSteps(newSteps);
716
+ if (!normalizedNewSteps.length)
717
+ return;
718
+ const currentSteps = this.normalizeSteps(task.steps);
719
+ const insertionIndex = Math.min(stepIndex + 1, currentSteps.length);
720
+ currentSteps.splice(insertionIndex, 0, ...normalizedNewSteps);
721
+ task.steps = currentSteps;
722
+ const persisted = await this.tasks.update(task, context);
723
+ Object.assign(task, persisted);
724
+ steps = this.normalizeSteps(task.steps);
725
+ const updateEvent = await this.persistEvent(context, task.id, constants_1.TaskEventType.UPDATE, {
726
+ status: "update",
727
+ currentStep: stepIndex,
728
+ totalSteps: steps.length,
729
+ output: {
730
+ added: normalizedNewSteps.length,
731
+ insertionIndex,
732
+ },
733
+ });
734
+ this.bus.emit(updateEvent, context);
735
+ });
549
736
  await context.pipe([
550
737
  logging_1.LogLevel.info,
551
738
  `Composite step ${idx + 1}/${steps.length}: ${step.classification}`,
@@ -554,7 +741,6 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
554
741
  const out = await handler.run(step.input, context);
555
742
  // Ensure step-tagged logs are flushed before advancing the step pointer.
556
743
  await context.flush();
557
- const stepIndex = idx;
558
744
  const now = new Date();
559
745
  results[stepIndex] = new TaskStepResultModel_1.TaskStepResultModel({
560
746
  status: constants_1.TaskStatus.SUCCEEDED,
@@ -577,6 +763,14 @@ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
577
763
  });
578
764
  }
579
765
  catch (err) {
766
+ try {
767
+ await handler.catch?.(step.input, err, context);
768
+ }
769
+ catch (catchErr) {
770
+ ctx.logger.warn("composite step catch() hook failed", {
771
+ error: catchErr,
772
+ });
773
+ }
580
774
  const now = new Date();
581
775
  results[idx] = new TaskStepResultModel_1.TaskStepResultModel({
582
776
  status: constants_1.TaskStatus.FAILED,
@@ -21,6 +21,10 @@ import { Constructor } from "@decaf-ts/decoration";
21
21
  import { TaskEngineConfig, TaskFlags } from "./types";
22
22
  import { TaskTracker } from "./TaskTracker";
23
23
  import { Lock } from "@decaf-ts/transactional-decorators";
24
+ type ParsedTaskDependency = {
25
+ taskId: string;
26
+ stepRef?: string;
27
+ };
24
28
  export declare class TaskEngine<A extends Adapter<any, any, any, any>, C extends TaskEngineConfig<A> = TaskEngineConfig<A>> extends AbsContextual<ContextOf<A>> {
25
29
  protected config: C;
26
30
  private _tasks?;
@@ -67,6 +71,14 @@ export declare class TaskEngine<A extends Adapter<any, any, any, any>, C extends
67
71
  protected loop(...args: ContextualArgs<any>): Promise<void>;
68
72
  protected claimBatch(ctx: Context<any>): Promise<TaskModel[]>;
69
73
  protected tryClaim(task: TaskModel, ctx: Context): Promise<TaskModel | null>;
74
+ protected isTaskFinished(status?: TaskStatus): boolean;
75
+ protected parseTaskDependency(value: string): ParsedTaskDependency | undefined;
76
+ protected normalizeDependencies(deps: string[] | string | undefined): ParsedTaskDependency[];
77
+ protected resolveDependencyStepIndex(task: TaskModel, stepRef: string): number | undefined;
78
+ protected areDependenciesSatisfied(dependencies: ParsedTaskDependency[], ctx: Context): Promise<boolean>;
79
+ protected getStepLock(task: TaskModel, stepIndex: number | undefined): string | undefined;
80
+ protected hasLockConflict(task: TaskModel, stepIndex: number | undefined, ctx: Context): Promise<boolean>;
81
+ protected isRunnable(task: TaskModel, ctx: Context): Promise<boolean>;
70
82
  protected executeClaimed(task: TaskModel): Promise<void>;
71
83
  protected handleTaskStateChange(request: TaskStateChangeRequest, task: TaskModel, ctx: TaskContext): Promise<void>;
72
84
  protected runComposite(task: TaskModel, context: TaskContext): Promise<any>;
@@ -82,3 +94,4 @@ export declare class TaskEngine<A extends Adapter<any, any, any, any>, C extends
82
94
  toString(): string;
83
95
  context(operation: ((...args: any[]) => any) | OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE | string, overrides: Partial<FlagsOf<ContextOf<A>>>, ...args: any[]): Promise<ContextOf<A>>;
84
96
  }
97
+ export {};