@decaf-ts/core 0.10.2 → 0.11.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 (66) 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/services/services.d.ts +1 -0
  9. package/lib/esm/services/services.js +14 -0
  10. package/lib/esm/services/services.js.map +1 -1
  11. package/lib/esm/tasks/TaskContext.d.ts +4 -0
  12. package/lib/esm/tasks/TaskContext.js +14 -0
  13. package/lib/esm/tasks/TaskContext.js.map +1 -1
  14. package/lib/esm/tasks/TaskEngine.d.ts +13 -0
  15. package/lib/esm/tasks/TaskEngine.js +196 -2
  16. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  17. package/lib/esm/tasks/TaskHandler.d.ts +1 -0
  18. package/lib/esm/tasks/TaskHandler.js +6 -0
  19. package/lib/esm/tasks/TaskHandler.js.map +1 -1
  20. package/lib/esm/tasks/TaskTracker.d.ts +1 -0
  21. package/lib/esm/tasks/TaskTracker.js +13 -0
  22. package/lib/esm/tasks/TaskTracker.js.map +1 -1
  23. package/lib/esm/tasks/builder.d.ts +24 -4
  24. package/lib/esm/tasks/builder.js +66 -3
  25. package/lib/esm/tasks/builder.js.map +1 -1
  26. package/lib/esm/tasks/constants.d.ts +1 -0
  27. package/lib/esm/tasks/constants.js +1 -0
  28. package/lib/esm/tasks/constants.js.map +1 -1
  29. package/lib/esm/tasks/models/TaskModel.d.ts +2 -0
  30. package/lib/esm/tasks/models/TaskModel.js +15 -0
  31. package/lib/esm/tasks/models/TaskModel.js.map +1 -1
  32. package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +2 -0
  33. package/lib/esm/tasks/models/TaskStepSpecModel.js +12 -0
  34. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
  35. package/lib/esm/tasks/types.d.ts +7 -1
  36. package/lib/index.cjs +1 -1
  37. package/lib/index.d.ts +1 -1
  38. package/lib/services/services.cjs +14 -0
  39. package/lib/services/services.d.ts +1 -0
  40. package/lib/services/services.js.map +1 -1
  41. package/lib/tasks/TaskContext.cjs +14 -0
  42. package/lib/tasks/TaskContext.d.ts +4 -0
  43. package/lib/tasks/TaskContext.js.map +1 -1
  44. package/lib/tasks/TaskEngine.cjs +196 -2
  45. package/lib/tasks/TaskEngine.d.ts +13 -0
  46. package/lib/tasks/TaskEngine.js.map +1 -1
  47. package/lib/tasks/TaskHandler.cjs +6 -0
  48. package/lib/tasks/TaskHandler.d.ts +1 -0
  49. package/lib/tasks/TaskHandler.js.map +1 -1
  50. package/lib/tasks/TaskTracker.cjs +13 -0
  51. package/lib/tasks/TaskTracker.d.ts +1 -0
  52. package/lib/tasks/TaskTracker.js.map +1 -1
  53. package/lib/tasks/builder.cjs +68 -4
  54. package/lib/tasks/builder.d.ts +24 -4
  55. package/lib/tasks/builder.js.map +1 -1
  56. package/lib/tasks/constants.cjs +1 -0
  57. package/lib/tasks/constants.d.ts +1 -0
  58. package/lib/tasks/constants.js.map +1 -1
  59. package/lib/tasks/models/TaskModel.cjs +15 -0
  60. package/lib/tasks/models/TaskModel.d.ts +2 -0
  61. package/lib/tasks/models/TaskModel.js.map +1 -1
  62. package/lib/tasks/models/TaskStepSpecModel.cjs +12 -0
  63. package/lib/tasks/models/TaskStepSpecModel.d.ts +2 -0
  64. package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
  65. package/lib/tasks/types.d.ts +7 -1
  66. package/package.json +1 -1
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CompositeTaskBuilder = exports.TaskBuilder = exports.TaskBackoffBuilder = void 0;
12
+ exports.CompositeTaskBuilder = exports.TaskStepSpecBuilder = exports.TaskBuilder = exports.TaskBackoffBuilder = void 0;
13
13
  const TaskModel_1 = require("./models/TaskModel.cjs");
14
14
  const constants_1 = require("./constants.cjs");
15
15
  const index_1 = require("./models/index.cjs");
@@ -104,6 +104,17 @@ class TaskBuilder extends decorator_validation_1.Model {
104
104
  this.input = value;
105
105
  return this;
106
106
  }
107
+ setLock(value) {
108
+ this.lock = value;
109
+ return this;
110
+ }
111
+ setDependencies(value) {
112
+ this.dependencies = value;
113
+ return this;
114
+ }
115
+ setDependsOn(value) {
116
+ return this.setDependencies(value);
117
+ }
107
118
  setMaxAttempts(value) {
108
119
  this.maxAttempts = value;
109
120
  return this;
@@ -148,11 +159,56 @@ __decorate([
148
159
  (0, decoration_1.prop)(),
149
160
  __metadata("design:type", Object)
150
161
  ], TaskBuilder.prototype, "input", void 0);
162
+ __decorate([
163
+ (0, decoration_1.prop)(),
164
+ __metadata("design:type", String)
165
+ ], TaskBuilder.prototype, "lock", void 0);
166
+ __decorate([
167
+ (0, decoration_1.prop)(),
168
+ (0, decorator_validation_1.list)(() => String),
169
+ __metadata("design:type", Array)
170
+ ], TaskBuilder.prototype, "dependencies", void 0);
151
171
  __decorate([
152
172
  (0, decorator_validation_1.min)(1),
153
173
  (0, decorator_validation_1.required)(),
154
174
  __metadata("design:type", Number)
155
175
  ], TaskBuilder.prototype, "maxAttempts", void 0);
176
+ class TaskStepSpecBuilder {
177
+ constructor(parent, step) {
178
+ this.parent = parent;
179
+ this.step = step;
180
+ }
181
+ setClassification(value) {
182
+ this.step.classification = value;
183
+ return this;
184
+ }
185
+ setName(value) {
186
+ this.step.name = value;
187
+ return this;
188
+ }
189
+ setInput(value) {
190
+ this.step.input = value;
191
+ return this;
192
+ }
193
+ setLock(value) {
194
+ this.step.lock = value;
195
+ return this;
196
+ }
197
+ setDependsOn(value) {
198
+ this.step.dependsOn = value;
199
+ return this;
200
+ }
201
+ addStep(classification, nameOrInput, inputMaybe) {
202
+ return this.parent.addStep(classification, nameOrInput, inputMaybe);
203
+ }
204
+ setSteps(value) {
205
+ return this.parent.setSteps(value);
206
+ }
207
+ build() {
208
+ return this.parent;
209
+ }
210
+ }
211
+ exports.TaskStepSpecBuilder = TaskStepSpecBuilder;
156
212
  class CompositeTaskBuilder extends TaskBuilder {
157
213
  constructor(arg) {
158
214
  super(arg);
@@ -171,16 +227,24 @@ class CompositeTaskBuilder extends TaskBuilder {
171
227
  addStep(classification, nameOrInput, inputMaybe) {
172
228
  this.steps = this.steps || [];
173
229
  const now = new Date();
230
+ const hasOnlyClassification = arguments.length === 1;
174
231
  const hasThirdArg = arguments.length >= 3;
175
232
  const name = hasThirdArg && typeof nameOrInput === "string" ? nameOrInput : undefined;
176
- const input = hasThirdArg ? inputMaybe : nameOrInput;
177
- this.steps.push(new TaskStepSpecModel_1.TaskStepSpecModel({
233
+ const input = hasThirdArg
234
+ ? inputMaybe
235
+ : hasOnlyClassification
236
+ ? undefined
237
+ : nameOrInput;
238
+ const step = new TaskStepSpecModel_1.TaskStepSpecModel({
178
239
  classification,
179
240
  name,
180
241
  input,
181
242
  createdAt: now,
182
243
  updatedAt: now,
183
- }));
244
+ });
245
+ this.steps.push(step);
246
+ if (hasOnlyClassification)
247
+ return new TaskStepSpecBuilder(this, step);
184
248
  return this;
185
249
  }
186
250
  }
@@ -22,16 +22,36 @@ export declare class TaskBuilder extends Model {
22
22
  protected atomicity: TaskType;
23
23
  protected backoff: TaskBackoffModel;
24
24
  protected input?: any;
25
+ protected lock?: string;
26
+ protected dependencies?: string[];
25
27
  protected maxAttempts: number;
26
28
  setClassification(value: string): this;
27
29
  setName(value: string): this;
28
30
  setAtomicity(value: TaskType): this;
29
31
  setBackoff<V extends TaskBackoffModel>(value?: TaskBackoffModel): V extends TaskBackoffModel ? this : TaskBackoffBuilder<true>;
30
32
  setInput(value: any): this;
33
+ setLock(value?: string): this;
34
+ setDependencies(value?: string[]): this;
35
+ setDependsOn(value?: string[]): this;
31
36
  setMaxAttempts(value: number): this;
32
37
  constructor(arg?: ModelArg<TaskBuilder>);
33
38
  build(): TaskModel<any, any>;
34
39
  }
40
+ export declare class TaskStepSpecBuilder {
41
+ protected parent: CompositeTaskBuilder;
42
+ protected step: TaskStepSpecModel;
43
+ constructor(parent: CompositeTaskBuilder, step: TaskStepSpecModel);
44
+ setClassification(value: string): this;
45
+ setName(value?: string): this;
46
+ setInput(value: any): this;
47
+ setLock(value?: string): this;
48
+ setDependsOn(value?: string[]): this;
49
+ addStep(classification: string): TaskStepSpecBuilder;
50
+ addStep(classification: string, input: any): CompositeTaskBuilder;
51
+ addStep(classification: string, name: string, input?: any): CompositeTaskBuilder;
52
+ setSteps(value: TaskStepSpecModel[]): CompositeTaskBuilder;
53
+ build(): CompositeTaskBuilder;
54
+ }
35
55
  export declare class CompositeTaskBuilder extends TaskBuilder {
36
56
  protected steps?: TaskStepSpecModel[];
37
57
  protected stepResults?: TaskStepSpecModel[];
@@ -43,10 +63,10 @@ export declare class CompositeTaskBuilder extends TaskBuilder {
43
63
  * - addStep(classification, input?)
44
64
  * - addStep(classification, name, input?)
45
65
  *
46
- * Note: `name` is only treated as such when provided as the 2nd argument AND
47
- * a 3rd argument is present. This avoids breaking existing calls where input
48
- * is a string.
66
+ * When called with only `classification`, returns a TaskStepSpecBuilder so
67
+ * callers can configure the step and then `.build()` back to this builder.
49
68
  */
50
- addStep(classification: string, input?: any): this;
69
+ addStep(classification: string): TaskStepSpecBuilder;
70
+ addStep(classification: string, input: any): this;
51
71
  addStep(classification: string, name: string, input?: any): this;
52
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/tasks/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/tasks/builder.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ var JitterStrategy;
24
24
  var TaskEventType;
25
25
  (function (TaskEventType) {
26
26
  TaskEventType["STATUS"] = "status";
27
+ TaskEventType["UPDATE"] = "update";
27
28
  TaskEventType["LOG"] = "log";
28
29
  TaskEventType["PROGRESS"] = "progress";
29
30
  TaskEventType["ALL"] = "all";
@@ -18,6 +18,7 @@ export declare enum JitterStrategy {
18
18
  }
19
19
  export declare enum TaskEventType {
20
20
  STATUS = "status",
21
+ UPDATE = "update",
21
22
  LOG = "log",
22
23
  PROGRESS = "progress",
23
24
  ALL = "all"
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tasks/constants.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;IACvB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;IACvB,mCAAqB,CAAA;IACrB,6CAA+B,CAAA;AACjC,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,4BAAW,CAAA;IACX,sCAAqB,CAAA;IACrB,4BAAW,CAAA;AACb,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAEY,QAAA,QAAQ,GAAG,OAAO,CAAC;AAEnB,QAAA,uBAAuB,GAA0B;IAC5D,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,GAAG;IACrB,uBAAuB,EAAE,EAAE;IAC3B,yBAAyB,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI;IACxC,YAAY,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,EAAE,GAAG,IAAI;KAC1B;CACuB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tasks/constants.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;IACvB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;IACvB,mCAAqB,CAAA;IACrB,6CAA+B,CAAA;AACjC,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,4BAAW,CAAA;IACX,sCAAqB,CAAA;IACrB,4BAAW,CAAA;AACb,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAEY,QAAA,QAAQ,GAAG,OAAO,CAAC;AAEnB,QAAA,uBAAuB,GAA0B;IAC5D,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,GAAG;IACrB,uBAAuB,EAAE,EAAE;IAC3B,yBAAyB,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI;IACxC,YAAY,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,EAAE,GAAG,IAAI;KAC1B;CACuB,CAAC"}
@@ -64,12 +64,21 @@ __decorate([
64
64
  (0, decoration_1.description)("optional task name for ambiguity"),
65
65
  __metadata("design:type", String)
66
66
  ], TaskModel.prototype, "name", void 0);
67
+ __decorate([
68
+ (0, decorators_2.column)(),
69
+ (0, decoration_1.prop)(),
70
+ (0, decoration_1.description)("Optional lock key. Tasks/steps sharing the same key cannot run concurrently"),
71
+ __metadata("design:type", String)
72
+ ], TaskModel.prototype, "lock", void 0);
67
73
  __decorate([
68
74
  (0, decorators_2.column)(),
69
75
  (0, decorator_validation_1.required)(),
70
76
  (0, decorator_validation_1.type)(String),
71
77
  (0, decorator_validation_1.option)(constants_1.TaskStatus),
72
78
  (0, index_2.index)([index_3.OrderDirection.ASC, index_3.OrderDirection.DSC]),
79
+ (0, index_2.index)([index_3.OrderDirection.ASC, index_3.OrderDirection.DSC], ["nextRunAt"]),
80
+ (0, index_2.index)([index_3.OrderDirection.ASC, index_3.OrderDirection.DSC], ["leaseExpiry"]),
81
+ (0, index_2.index)([index_3.OrderDirection.ASC, index_3.OrderDirection.DSC], ["scheduledTo"]),
73
82
  (0, decoration_1.description)("Holds the task current status"),
74
83
  __metadata("design:type", String)
75
84
  ], TaskModel.prototype, "status", void 0);
@@ -128,6 +137,12 @@ __decorate([
128
137
  (0, decoration_1.description)("Task scheduled timestamp"),
129
138
  __metadata("design:type", Date)
130
139
  ], TaskModel.prototype, "scheduledTo", void 0);
140
+ __decorate([
141
+ (0, decorators_2.column)(),
142
+ (0, db_decorators_1.serialize)(),
143
+ (0, decoration_1.description)("Task dependencies. Supports '<taskId>' or '<taskId>:<step index|step reference>'"),
144
+ __metadata("design:type", Array)
145
+ ], TaskModel.prototype, "dependencies", void 0);
131
146
  __decorate([
132
147
  (0, decoration_1.prop)(),
133
148
  (0, decorators_2.column)(),
@@ -10,6 +10,7 @@ export declare class TaskModel<INPUT = any, OUTPUT = any> extends Model {
10
10
  atomicity: TaskType;
11
11
  classification: string;
12
12
  name?: string;
13
+ lock?: string;
13
14
  status: TaskStatus;
14
15
  input?: INPUT;
15
16
  output?: OUTPUT;
@@ -19,6 +20,7 @@ export declare class TaskModel<INPUT = any, OUTPUT = any> extends Model {
19
20
  backoff: TaskBackoffModel;
20
21
  nextRunAt?: Date;
21
22
  scheduledTo?: Date;
23
+ dependencies?: string[];
22
24
  leaseOwner?: string;
23
25
  leaseExpiry?: Date;
24
26
  steps?: TaskStepSpecModel[];
@@ -1 +1 @@
1
- {"version":3,"file":"TaskModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskModel.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TaskStepSpecModel = void 0;
13
13
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
14
14
  const decoration_1 = require("@decaf-ts/decoration");
15
+ const decorator_validation_2 = require("@decaf-ts/decorator-validation");
15
16
  let TaskStepSpecModel = class TaskStepSpecModel extends decorator_validation_1.Model {
16
17
  constructor(arg) {
17
18
  super(arg);
@@ -33,6 +34,17 @@ __decorate([
33
34
  (0, decoration_1.prop)(),
34
35
  __metadata("design:type", Object)
35
36
  ], TaskStepSpecModel.prototype, "input", void 0);
37
+ __decorate([
38
+ (0, decoration_1.description)("Optional lock key. Tasks/steps sharing the same key cannot run concurrently"),
39
+ (0, decoration_1.prop)(),
40
+ __metadata("design:type", String)
41
+ ], TaskStepSpecModel.prototype, "lock", void 0);
42
+ __decorate([
43
+ (0, decoration_1.description)("Task-step dependencies. Supports '<taskId>' or '<taskId>:<step index|step reference>'"),
44
+ (0, decoration_1.prop)(),
45
+ (0, decorator_validation_2.list)(() => String),
46
+ __metadata("design:type", Array)
47
+ ], TaskStepSpecModel.prototype, "dependsOn", void 0);
36
48
  exports.TaskStepSpecModel = TaskStepSpecModel = __decorate([
37
49
  (0, decorator_validation_1.model)(),
38
50
  __metadata("design:paramtypes", [Object])
@@ -3,5 +3,7 @@ export declare class TaskStepSpecModel extends Model {
3
3
  classification: string;
4
4
  name?: string;
5
5
  input?: any;
6
+ lock?: string;
7
+ dependsOn?: string[];
6
8
  constructor(arg?: ModelArg<TaskStepSpecModel>);
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TaskStepSpecModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepSpecModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAMwC;AACxC,qDAAyD;AAGlD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,4BAAK;IAa1C,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAhBY,8CAAiB;AAG5B;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,wBAAW,EAAC,mBAAmB,CAAC;;yDACT;AAIxB;IAFC,IAAA,gCAAS,EAAC,CAAC,CAAC;IACZ,IAAA,wBAAW,EAAC,kCAAkC,CAAC;;+CAClC;AAId;IAFC,IAAA,wBAAW,EAAC,0BAA0B,CAAC;IACvC,IAAA,iBAAI,GAAE;;gDACK;4BAXD,iBAAiB;IAD7B,IAAA,4BAAK,GAAE;;GACK,iBAAiB,CAgB7B"}
1
+ {"version":3,"file":"TaskStepSpecModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepSpecModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAMwC;AACxC,qDAAyD;AACzD,yEAAsD;AAG/C,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,4BAAK;IA0B1C,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AA7BY,8CAAiB;AAG5B;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,wBAAW,EAAC,mBAAmB,CAAC;;yDACT;AAIxB;IAFC,IAAA,gCAAS,EAAC,CAAC,CAAC;IACZ,IAAA,wBAAW,EAAC,kCAAkC,CAAC;;+CAClC;AAId;IAFC,IAAA,wBAAW,EAAC,0BAA0B,CAAC;IACvC,IAAA,iBAAI,GAAE;;gDACK;AAMZ;IAJC,IAAA,wBAAW,EACV,6EAA6E,CAC9E;IACA,IAAA,iBAAI,GAAE;;+CACO;AAOd;IALC,IAAA,wBAAW,EACV,uFAAuF,CACxF;IACA,IAAA,iBAAI,GAAE;IACN,IAAA,2BAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;oDACE;4BAxBV,iBAAiB;IAD7B,IAAA,4BAAK,GAAE;;GACK,iBAAiB,CA6B7B"}
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/core",
3
- "version": "0.10.2",
3
+ "version": "0.11.0",
4
4
  "description": "Core persistence module for the decaf framework",
5
5
  "type": "module",
6
6
  "exports": {