@decaf-ts/core 0.7.64 → 0.7.65

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 (110) 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/migrations/MigrationService.js +2 -4
  9. package/lib/esm/migrations/MigrationService.js.map +1 -1
  10. package/lib/esm/migrations/MigrationTasks.d.ts +9 -0
  11. package/lib/esm/migrations/MigrationTasks.js +69 -0
  12. package/lib/esm/migrations/MigrationTasks.js.map +1 -0
  13. package/lib/esm/migrations/index.d.ts +1 -0
  14. package/lib/esm/migrations/index.js +1 -0
  15. package/lib/esm/migrations/index.js.map +1 -1
  16. package/lib/esm/persistence/Context.d.ts +4 -0
  17. package/lib/esm/persistence/Context.js +6 -0
  18. package/lib/esm/persistence/Context.js.map +1 -1
  19. package/lib/esm/persistence/ObserverHandler.d.ts +2 -1
  20. package/lib/esm/persistence/ObserverHandler.js.map +1 -1
  21. package/lib/esm/persistence/constants.d.ts +1 -0
  22. package/lib/esm/persistence/constants.js +1 -0
  23. package/lib/esm/persistence/constants.js.map +1 -1
  24. package/lib/esm/ram/RamAdapter.js +9 -9
  25. package/lib/esm/ram/RamAdapter.js.map +1 -1
  26. package/lib/esm/ram/types.d.ts +2 -2
  27. package/lib/esm/services/PersistenceService.js +9 -1
  28. package/lib/esm/services/PersistenceService.js.map +1 -1
  29. package/lib/esm/tasks/TaskContext.d.ts +9 -4
  30. package/lib/esm/tasks/TaskContext.js +18 -3
  31. package/lib/esm/tasks/TaskContext.js.map +1 -1
  32. package/lib/esm/tasks/TaskEngine.d.ts +8 -22
  33. package/lib/esm/tasks/TaskEngine.js +189 -112
  34. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  35. package/lib/esm/tasks/TaskEventBus.d.ts +8 -3
  36. package/lib/esm/tasks/TaskEventBus.js +15 -7
  37. package/lib/esm/tasks/TaskEventBus.js.map +1 -1
  38. package/lib/esm/tasks/TaskHandler.js +9 -2
  39. package/lib/esm/tasks/TaskHandler.js.map +1 -1
  40. package/lib/esm/tasks/TaskService.d.ts +33 -3
  41. package/lib/esm/tasks/TaskService.js +181 -2
  42. package/lib/esm/tasks/TaskService.js.map +1 -1
  43. package/lib/esm/tasks/builder.d.ts +42 -0
  44. package/lib/esm/tasks/builder.js +180 -0
  45. package/lib/esm/tasks/builder.js.map +1 -0
  46. package/lib/esm/tasks/logging.d.ts +30 -0
  47. package/lib/esm/tasks/logging.js +73 -0
  48. package/lib/esm/tasks/logging.js.map +1 -0
  49. package/lib/esm/tasks/models/TaskBackoffModel.js +7 -3
  50. package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -1
  51. package/lib/esm/tasks/models/TaskModel.d.ts +2 -2
  52. package/lib/esm/tasks/models/TaskModel.js +10 -3
  53. package/lib/esm/tasks/models/TaskModel.js.map +1 -1
  54. package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +1 -1
  55. package/lib/esm/tasks/models/TaskStepSpecModel.js +3 -1
  56. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
  57. package/lib/esm/tasks/types.d.ts +8 -4
  58. package/lib/index.cjs +1 -1
  59. package/lib/index.d.ts +1 -1
  60. package/lib/migrations/MigrationService.cjs +2 -4
  61. package/lib/migrations/MigrationService.js.map +1 -1
  62. package/lib/migrations/MigrationTasks.cjs +72 -0
  63. package/lib/migrations/MigrationTasks.d.ts +9 -0
  64. package/lib/migrations/MigrationTasks.js.map +1 -0
  65. package/lib/migrations/index.cjs +1 -0
  66. package/lib/migrations/index.d.ts +1 -0
  67. package/lib/migrations/index.js.map +1 -1
  68. package/lib/persistence/Context.cjs +8 -1
  69. package/lib/persistence/Context.d.ts +4 -0
  70. package/lib/persistence/Context.js.map +1 -1
  71. package/lib/persistence/ObserverHandler.d.ts +2 -1
  72. package/lib/persistence/ObserverHandler.js.map +1 -1
  73. package/lib/persistence/constants.cjs +1 -0
  74. package/lib/persistence/constants.d.ts +1 -0
  75. package/lib/persistence/constants.js.map +1 -1
  76. package/lib/ram/RamAdapter.cjs +8 -8
  77. package/lib/ram/RamAdapter.js.map +1 -1
  78. package/lib/ram/types.d.ts +2 -2
  79. package/lib/services/PersistenceService.cjs +9 -1
  80. package/lib/services/PersistenceService.js.map +1 -1
  81. package/lib/tasks/TaskContext.cjs +19 -4
  82. package/lib/tasks/TaskContext.d.ts +9 -4
  83. package/lib/tasks/TaskContext.js.map +1 -1
  84. package/lib/tasks/TaskEngine.cjs +187 -110
  85. package/lib/tasks/TaskEngine.d.ts +8 -22
  86. package/lib/tasks/TaskEngine.js.map +1 -1
  87. package/lib/tasks/TaskEventBus.cjs +15 -7
  88. package/lib/tasks/TaskEventBus.d.ts +8 -3
  89. package/lib/tasks/TaskEventBus.js.map +1 -1
  90. package/lib/tasks/TaskHandler.cjs +9 -2
  91. package/lib/tasks/TaskHandler.js.map +1 -1
  92. package/lib/tasks/TaskService.cjs +179 -0
  93. package/lib/tasks/TaskService.d.ts +33 -3
  94. package/lib/tasks/TaskService.js.map +1 -1
  95. package/lib/tasks/builder.cjs +186 -0
  96. package/lib/tasks/builder.d.ts +42 -0
  97. package/lib/tasks/builder.js.map +1 -0
  98. package/lib/tasks/logging.cjs +77 -0
  99. package/lib/tasks/logging.d.ts +30 -0
  100. package/lib/tasks/logging.js.map +1 -0
  101. package/lib/tasks/models/TaskBackoffModel.cjs +6 -2
  102. package/lib/tasks/models/TaskBackoffModel.js.map +1 -1
  103. package/lib/tasks/models/TaskModel.cjs +10 -3
  104. package/lib/tasks/models/TaskModel.d.ts +2 -2
  105. package/lib/tasks/models/TaskModel.js.map +1 -1
  106. package/lib/tasks/models/TaskStepSpecModel.cjs +3 -1
  107. package/lib/tasks/models/TaskStepSpecModel.d.ts +1 -1
  108. package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
  109. package/lib/tasks/types.d.ts +8 -4
  110. package/package.json +1 -1
@@ -6,8 +6,6 @@ const Repository_1 = require("./../repository/Repository.cjs");
6
6
  const TaskEventModel_1 = require("./models/TaskEventModel.cjs");
7
7
  const TaskHandlerRegistry_1 = require("./TaskHandlerRegistry.cjs");
8
8
  const TaskEventBus_1 = require("./TaskEventBus.cjs");
9
- const TaskBackoffModel_1 = require("./models/TaskBackoffModel.cjs");
10
- const TaskStepSpecModel_1 = require("./models/TaskStepSpecModel.cjs");
11
9
  const Condition_1 = require("./../query/Condition.cjs");
12
10
  const TaskStepResultModel_1 = require("./models/TaskStepResultModel.cjs");
13
11
  const TaskLogEntryModel_1 = require("./models/TaskLogEntryModel.cjs");
@@ -24,8 +22,11 @@ exports.DefaultTaskEngineConfig = {
24
22
  pollMsIdle: 1000,
25
23
  pollMsBusy: 500,
26
24
  logTailMax: 100,
25
+ streamBufferSize: 5,
26
+ maxLoggingBuffer: 300,
27
+ loggingBufferTruncation: 20,
27
28
  };
28
- class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
29
+ class TaskEngine extends ContextualLoggedClass_1.AbsContextual {
29
30
  get adapter() {
30
31
  return this.config.adapter;
31
32
  }
@@ -38,7 +39,7 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
38
39
  get tasks() {
39
40
  if (this._tasks)
40
41
  return this._tasks;
41
- this._tasks = Repository_1.Repository.forModel(TaskModel_1.TaskModel, this.config.adapter.alias);
42
+ this._tasks = Repository_1.Repository.forModel(TaskModel_1.TaskModel, this.adapter.alias);
42
43
  return this._tasks;
43
44
  }
44
45
  get events() {
@@ -56,58 +57,83 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
56
57
  registry: config.registry || new TaskHandlerRegistry_1.TaskHandlerRegistry(),
57
58
  });
58
59
  }
59
- async enqueueAtomic(arg) {
60
- const doc = new TaskModel_1.TaskModel({
61
- id: arg.id,
62
- type: constants_1.TaskType.ATOMIC,
63
- name: arg.name,
64
- status: constants_1.TaskStatus.PENDING,
65
- input: arg.input,
66
- attempt: 0,
67
- maxAttempts: arg.maxAttempts ?? 5,
68
- backoff: {
69
- strategy: arg.backoff?.strategy ?? constants_1.BackoffStrategy.EXPONENTIAL,
70
- baseMs: arg.backoff?.baseMs ?? 1000,
71
- maxMs: arg.backoff?.maxMs ?? 60_000,
72
- jitter: arg.backoff?.jitter ?? constants_1.JitterStrategy.FULL,
73
- },
74
- logTail: [],
75
- });
76
- return await this.tasks.create(doc);
77
- }
78
- async enqueueComposite(arg) {
79
- const doc = new TaskModel_1.TaskModel({
80
- id: arg.id,
81
- type: constants_1.TaskType.COMPOSITE,
82
- name: arg.name,
83
- status: constants_1.TaskStatus.PENDING,
84
- attempt: 0,
85
- maxAttempts: arg.maxAttempts ?? 5,
86
- backoff: new TaskBackoffModel_1.TaskBackoffModel({
87
- strategy: arg.backoff?.strategy ?? constants_1.BackoffStrategy.EXPONENTIAL,
88
- baseMs: arg.backoff?.baseMs ?? 1000,
89
- maxMs: arg.backoff?.maxMs ?? 60_000,
90
- jitter: arg.backoff?.jitter ?? constants_1.JitterStrategy.FULL,
91
- }),
92
- steps: arg.steps.map((s) => new TaskStepSpecModel_1.TaskStepSpecModel({ type: s.type, input: s.input })),
93
- currentStep: 0,
94
- stepResults: [],
95
- logTail: [],
96
- });
97
- return await this.tasks.create(doc);
60
+ isRunning() {
61
+ return this.running;
98
62
  }
99
- async getTask(id) {
100
- return await this.tasks.read(id);
63
+ async push(task, ...args) {
64
+ const { ctx, log } = await this.logCtx(args, this.push, true);
65
+ log.verbose(`pushing task ${task.classification}`);
66
+ const t = await this.tasks.create(task, ctx);
67
+ log.info(`${task.classification} task registered under ${t.id}`);
68
+ return t;
101
69
  }
102
- async cancelTask(id) {
103
- const t = await this.tasks.read(id);
70
+ // async enqueueAtomic(arg: {
71
+ // id: string;
72
+ // input?: any;
73
+ // name?: string;
74
+ // maxAttempts?: number;
75
+ // backoff?: Partial<TaskBackoffModel>;
76
+ // }): Promise<TaskModel> {
77
+ // const doc = new TaskModel({
78
+ // id: arg.id,
79
+ // type: TaskType.ATOMIC,
80
+ // name: arg.name,
81
+ // status: TaskStatus.PENDING,
82
+ // input: arg.input,
83
+ // attempt: 0,
84
+ // maxAttempts: arg.maxAttempts ?? 5,
85
+ // backoff: {
86
+ // strategy: arg.backoff?.strategy ?? BackoffStrategy.EXPONENTIAL,
87
+ // baseMs: arg.backoff?.baseMs ?? 1000,
88
+ // maxMs: arg.backoff?.maxMs ?? 60_000,
89
+ // jitter: arg.backoff?.jitter ?? JitterStrategy.FULL,
90
+ // },
91
+ // logTail: [],
92
+ // });
93
+ //
94
+ // return await this.push(doc);
95
+ // }
96
+ //
97
+ // async enqueueComposite(arg: {
98
+ // id: string;
99
+ // name?: string;
100
+ // steps: Array<{ type: string; input?: any }>;
101
+ // maxAttempts?: number;
102
+ // backoff?: Partial<TaskBackoffModel>;
103
+ // }): Promise<TaskModel> {
104
+ // const doc = new TaskModel({
105
+ // id: arg.id,
106
+ // type: TaskType.COMPOSITE,
107
+ // name: arg.name,
108
+ // status: TaskStatus.PENDING,
109
+ // attempt: 0,
110
+ // maxAttempts: arg.maxAttempts ?? 5,
111
+ // backoff: new TaskBackoffModel({
112
+ // strategy: arg.backoff?.strategy ?? BackoffStrategy.EXPONENTIAL,
113
+ // baseMs: arg.backoff?.baseMs ?? 1000,
114
+ // maxMs: arg.backoff?.maxMs ?? 60_000,
115
+ // jitter: arg.backoff?.jitter ?? JitterStrategy.FULL,
116
+ // }),
117
+ // steps: arg.steps.map(
118
+ // (s) => new TaskStepSpecModel({ classification: s.type, input: s.input })
119
+ // ),
120
+ // currentStep: 0,
121
+ // stepResults: [],
122
+ // logTail: [],
123
+ // });
124
+ //
125
+ // return await this.push(doc);
126
+ // }
127
+ async cancel(id, ...args) {
128
+ const { ctx } = (await this.logCtx(args, "cancel", true)).for(this.cancel);
129
+ const t = await this.tasks.read(id, ctx);
104
130
  if (t.status === constants_1.TaskStatus.SUCCEEDED || t.status === constants_1.TaskStatus.FAILED)
105
131
  return t;
106
132
  t.status = constants_1.TaskStatus.CANCELED;
107
133
  t.leaseOwner = undefined;
108
134
  t.leaseExpiry = undefined;
109
- const saved = await this.tasks.update(t);
110
- await this.emitStatus(saved, constants_1.TaskStatus.CANCELED);
135
+ const saved = await this.tasks.update(t, ctx);
136
+ await this.emitStatus(ctx, saved, constants_1.TaskStatus.CANCELED);
111
137
  return saved;
112
138
  }
113
139
  start() {
@@ -124,13 +150,15 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
124
150
  // -------------------------
125
151
  async loop() {
126
152
  while (this.running) {
127
- const claimed = await this.claimBatch();
128
- await Promise.allSettled(claimed.map((t) => this.executeClaimed(t)));
153
+ const { ctx } = await this.logCtx([], "loop", true);
154
+ const claimed = await this.claimBatch(ctx);
155
+ await Promise.allSettled(claimed.map((t) => this.executeClaimed(t, ctx)));
129
156
  await (0, utils_1.sleep)(claimed.length ? this.config.pollMsBusy : this.config.pollMsIdle);
130
157
  }
131
158
  }
132
- async claimBatch() {
133
- const now = new Date();
159
+ async claimBatch(ctx) {
160
+ const log = ctx.logger.for(this.claimBatch);
161
+ const now = ctx.timestamp;
134
162
  // Runnable:
135
163
  // - PENDING
136
164
  // - WAITING_RETRY with nextRunAt <= now
@@ -149,27 +177,31 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
149
177
  .where(runnable)
150
178
  .limit(Math.max(this.config.concurrency * 4, 20))
151
179
  .execute();
180
+ log.verbose(`claimBatch candidates:${candidates.length}`);
152
181
  const out = [];
153
182
  for (const c of candidates) {
154
- const claimed = await this.tryClaim(c);
183
+ const claimed = await this.tryClaim(c, ctx);
155
184
  if (claimed)
156
185
  out.push(claimed);
157
186
  if (out.length >= this.config.concurrency)
158
187
  break;
159
188
  }
189
+ log.verbose(`claimBatch claimed:${out.length}`);
160
190
  return out;
161
191
  }
162
- async tryClaim(task) {
163
- const now = Date.now();
192
+ async tryClaim(task, ctx) {
193
+ const log = ctx.logger.for(this.claimBatch);
194
+ const now = ctx.timestamp.getTime();
164
195
  const claimed = new TaskModel_1.TaskModel({
165
196
  ...task,
166
197
  status: constants_1.TaskStatus.RUNNING,
167
198
  leaseOwner: this.config.workerId,
168
199
  leaseExpiry: new Date(now + this.config.leaseMs),
169
200
  });
201
+ log.info(`running handler for ${task.id} (${task.classification}) atomicity ${task.atomicity}`);
170
202
  try {
171
203
  // optimistic update; conflict errors depend on adapter implementation
172
- return await this.tasks.update(claimed);
204
+ return await this.tasks.update(claimed, ctx);
173
205
  }
174
206
  catch {
175
207
  return null;
@@ -178,17 +210,21 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
178
210
  // -------------------------
179
211
  // Execution
180
212
  // -------------------------
181
- async executeClaimed(task) {
182
- const taskId = task.id;
183
- const ctx = new TaskContext_1.TaskContext().accumulate({
184
- taskId,
213
+ async executeClaimed(task, context) {
214
+ const { log } = this.logCtx([context], this.executeClaimed);
215
+ const { ctx } = (await this.tasks["adapter"]["logCtx"]([TaskModel_1.TaskModel], task.classification, true, {
216
+ taskId: task.id,
185
217
  attempt: task.attempt,
186
- log: async (level, msg, meta) => {
187
- task = await this.appendLog(task, level, msg, meta);
188
- await this.emitLog(taskId, level, msg, meta);
218
+ resultCache: {},
219
+ pipe: async (data) => {
220
+ const [, logs] = await this.appendLog(ctx, task, data);
221
+ await this.emitLog(ctx, taskId, logs);
222
+ },
223
+ flush: async () => {
224
+ return ctx.logger.flush(ctx.pipe);
189
225
  },
190
226
  progress: async (data) => {
191
- await this.emitProgress(taskId, data);
227
+ await this.emitProgress(ctx, taskId, data);
192
228
  },
193
229
  heartbeat: async () => {
194
230
  // extend lease
@@ -202,28 +238,35 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
202
238
  // if we lose the claim, execution should still proceed; next update will fail and be retried by recovery
203
239
  }
204
240
  },
205
- });
206
- await this.emitStatus(task, constants_1.TaskStatus.RUNNING);
241
+ })).for(this.executeClaimed);
242
+ const taskId = task.id;
243
+ const taskContext = new TaskContext_1.TaskContext(ctx);
244
+ await this.emitStatus(ctx, task, constants_1.TaskStatus.RUNNING);
207
245
  try {
208
246
  let output;
209
- if (task.type === constants_1.TaskType.COMPOSITE) {
210
- output = await this.runComposite(task, ctx);
247
+ if (task.atomicity === constants_1.TaskType.COMPOSITE) {
248
+ output = await this.runComposite(task, taskContext);
211
249
  }
212
250
  else {
213
- const handler = this.registry.get(task.type);
251
+ const handler = this.registry.get(task.classification);
252
+ log.debug(`handler type for ${task.id} is ${handler?.constructor?.name ?? "none"}`);
214
253
  if (!handler)
215
- throw new db_decorators_1.InternalError(`No task handler registered for type: ${task.type}`);
216
- output = await handler.run(task.input, ctx);
254
+ throw new db_decorators_1.InternalError(`No task handler registered for type: ${task.classification}`);
255
+ output = await handler.run(task.input, taskContext);
256
+ log.verbose(`handler finished for ${task.id}`);
217
257
  }
218
258
  task.status = constants_1.TaskStatus.SUCCEEDED;
219
259
  task.output = output;
220
260
  task.error = undefined;
221
261
  task.leaseOwner = undefined;
222
262
  task.leaseExpiry = undefined;
223
- task = await this.tasks.update(task);
224
- await this.emitStatus(task, constants_1.TaskStatus.SUCCEEDED);
263
+ task = await this.tasks.update(task, ctx);
264
+ taskContext.logger.info(`task ${task.id} success state ${task.status}`);
265
+ log.info(`task ${task.id} success state ${task.status} attempt ${task.attempt}`);
266
+ await this.emitStatus(taskContext, task, constants_1.TaskStatus.SUCCEEDED);
225
267
  }
226
268
  catch (err) {
269
+ log.error("task execution error", err);
227
270
  const nextAttempt = (task.attempt ?? 0) + 1;
228
271
  const serialized = (0, utils_1.serializeError)(err);
229
272
  if (nextAttempt < task.maxAttempts) {
@@ -235,9 +278,10 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
235
278
  task.error = serialized;
236
279
  task.leaseOwner = undefined;
237
280
  task.leaseExpiry = undefined;
238
- task = await this.tasks.update(task);
239
- await this.emitStatus(task, constants_1.TaskStatus.WAITING_RETRY);
240
- await ctx.log(logging_1.LogLevel.warn, `Retry scheduled`, {
281
+ task = await this.tasks.update(task, ctx);
282
+ log.warn(`task ${task.id} waiting retry state ${task.status} attempt ${task.attempt}`);
283
+ await this.emitStatus(taskContext, task, constants_1.TaskStatus.WAITING_RETRY);
284
+ await ctx.pipe(logging_1.LogLevel.warn, `Retry scheduled`, {
241
285
  nextRunAt,
242
286
  delayMs: delay,
243
287
  attempt: nextAttempt,
@@ -249,35 +293,61 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
249
293
  task.error = serialized;
250
294
  task.leaseOwner = undefined;
251
295
  task.leaseExpiry = undefined;
252
- task = await this.tasks.update(task);
253
- await this.emitStatus(task, constants_1.TaskStatus.FAILED);
254
- await ctx.log(logging_1.LogLevel.error, `Task failed (max attempts reached)`, {
296
+ task = await this.tasks.update(task, ctx);
297
+ log.error(`task ${task.id} failed state ${task.status} attempt ${task.attempt}`);
298
+ await this.emitStatus(taskContext, task, constants_1.TaskStatus.FAILED);
299
+ await ctx.pipe(logging_1.LogLevel.error, `Task failed (max attempts reached)`, {
255
300
  maxAttempts: task.maxAttempts,
256
301
  });
257
302
  }
258
303
  }
259
304
  }
260
- async runComposite(task, ctx) {
305
+ async runComposite(task, context) {
306
+ const { ctx } = (await this.logCtx([context], task.classification, true)).for(this.runComposite);
261
307
  const steps = task.steps ?? [];
262
308
  let idx = task.currentStep ?? 0;
263
309
  const results = task.stepResults ?? [];
310
+ const cacheResult = (key, value) => {
311
+ context.cacheResult(key, value);
312
+ if (ctx instanceof TaskContext_1.TaskContext && ctx !== context) {
313
+ ctx.cacheResult(key, value);
314
+ }
315
+ };
316
+ for (let i = 0; i < results.length; i += 1) {
317
+ const existing = results[i];
318
+ if (existing?.status === constants_1.TaskStatus.SUCCEEDED) {
319
+ const prevStep = steps[i];
320
+ if (!prevStep)
321
+ continue;
322
+ const cacheKey = `${task.id}:step:${i}`;
323
+ cacheResult(prevStep.classification, existing.output);
324
+ cacheResult(cacheKey, existing.output);
325
+ }
326
+ }
264
327
  while (idx < steps.length) {
265
328
  const step = steps[idx];
266
- const handler = this.registry.get(step.type);
329
+ const handler = this.registry.get(step.classification);
267
330
  if (!handler)
268
- throw new Error(`No task handler registered for composite step: ${step.type}`);
269
- await ctx.log(logging_1.LogLevel.info, `Composite step ${idx + 1}/${steps.length}: ${step.type}`);
331
+ throw new Error(`No task handler registered for composite step: ${step.classification}`);
332
+ await ctx.pipe([
333
+ logging_1.LogLevel.info,
334
+ `Composite step ${idx + 1}/${steps.length}: ${step.classification}`,
335
+ ]);
270
336
  try {
271
337
  const out = await handler.run(step.input, ctx);
272
- results[idx] = new TaskStepResultModel_1.TaskStepResultModel({
338
+ const stepIndex = idx;
339
+ results[stepIndex] = new TaskStepResultModel_1.TaskStepResultModel({
273
340
  status: constants_1.TaskStatus.SUCCEEDED,
274
341
  output: out,
275
342
  });
276
- idx += 1;
343
+ const cacheKey = `${task.id}:step:${stepIndex}`;
344
+ cacheResult(step.classification, out);
345
+ cacheResult(cacheKey, out);
346
+ idx = stepIndex + 1;
277
347
  task.stepResults = results;
278
348
  task.currentStep = idx;
279
349
  task = await this.tasks.update(task);
280
- await this.emitProgress(task.id, {
350
+ await this.emitProgress(ctx, task.id, {
281
351
  currentStep: idx,
282
352
  totalSteps: steps.length,
283
353
  });
@@ -300,42 +370,49 @@ class TaskEngine extends ContextualLoggedClass_1.ContextualLoggedClass {
300
370
  // -------------------------
301
371
  // Events + log tail persistence
302
372
  // -------------------------
303
- async appendLog(task, level, msg, meta) {
304
- const entry = new TaskLogEntryModel_1.TaskLogEntryModel({
305
- level,
306
- msg,
307
- meta,
373
+ async appendLog(ctx, task, logEntries) {
374
+ const isMulti = Array.isArray(logEntries) && Array.isArray(logEntries[0]);
375
+ const entries = (isMulti ? logEntries : [logEntries]).map(([level, msg, meta]) => {
376
+ return new TaskLogEntryModel_1.TaskLogEntryModel({
377
+ level,
378
+ msg,
379
+ meta,
380
+ });
308
381
  });
309
- const nextTail = [...(task.logTail ?? []), entry].slice(-this.config.logTailMax);
382
+ const nextTail = [...(task.logTail ?? []), ...entries].slice(-this.config.logTailMax);
310
383
  task.logTail = nextTail;
311
384
  try {
312
- return await this.tasks.update(task);
385
+ return [await this.tasks.update(task, ctx), entries];
313
386
  }
314
387
  catch {
315
- return task;
388
+ return [task, []];
316
389
  }
317
390
  }
318
- async emitStatus(task, status) {
319
- const evt = await this.persistEvent(task.id, constants_1.TaskEventType.STATUS, {
391
+ async emitStatus(ctx, task, status) {
392
+ if (ctx instanceof TaskContext_1.TaskContext) {
393
+ await ctx.flush();
394
+ }
395
+ const evt = await this.persistEvent(ctx, task.id, constants_1.TaskEventType.STATUS, {
320
396
  status,
321
397
  });
322
- this.bus.emit(evt);
398
+ this.bus.emit(evt, ctx);
323
399
  }
324
- async emitLog(taskId, level, msg, meta) {
325
- const evt = await this.persistEvent(taskId, constants_1.TaskEventType.LOG, {
326
- level,
327
- msg,
328
- meta,
329
- });
330
- this.bus.emit(evt);
400
+ async emitLog(ctx, taskId, entries) {
401
+ const evt = await this.persistEvent(ctx, taskId, constants_1.TaskEventType.LOG, entries.map((e) => ({
402
+ ts: e.ts,
403
+ level: e.level,
404
+ msg: e.msg,
405
+ meta: e.meta,
406
+ })));
407
+ this.bus.emit(evt, ctx);
331
408
  }
332
- async emitProgress(taskId, data) {
333
- const evt = await this.persistEvent(taskId, constants_1.TaskEventType.PROGRESS, data);
334
- this.bus.emit(evt);
409
+ async emitProgress(ctx, taskId, data) {
410
+ const evt = await this.persistEvent(ctx, taskId, constants_1.TaskEventType.PROGRESS, data);
411
+ this.bus.emit(evt, ctx);
335
412
  }
336
- async persistEvent(taskId, type, payload) {
413
+ async persistEvent(ctx, taskId, type, payload) {
337
414
  const evt = new TaskEventModel_1.TaskEventModel({ taskId, type, payload });
338
- return await this.events.create(evt);
415
+ return await this.events.create(evt, ctx);
339
416
  }
340
417
  toString() {
341
418
  return `TaskEngine<${this.config.adapter.alias}>`;
@@ -3,9 +3,8 @@ import { Repo } from "../repository/Repository";
3
3
  import { TaskEventModel } from "./models/TaskEventModel";
4
4
  import { TaskHandlerRegistry } from "./TaskHandlerRegistry";
5
5
  import { TaskEventBus } from "./TaskEventBus";
6
- import { TaskBackoffModel } from "./models/TaskBackoffModel";
7
6
  import { Adapter, ContextOf } from "../persistence/index";
8
- import { ContextualLoggedClass } from "../utils/ContextualLoggedClass";
7
+ import { AbsContextual, MaybeContextualArg } from "../utils/ContextualLoggedClass";
9
8
  export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
10
9
  adapter: A;
11
10
  bus: TaskEventBus;
@@ -16,9 +15,12 @@ export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
16
15
  pollMsIdle: number;
17
16
  pollMsBusy: number;
18
17
  logTailMax: number;
18
+ streamBufferSize: number;
19
+ maxLoggingBuffer: number;
20
+ loggingBufferTruncation: number;
19
21
  };
20
22
  export declare const DefaultTaskEngineConfig: TaskEngineConfig<any>;
21
- export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends ContextualLoggedClass<ContextOf<A>> {
23
+ export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends AbsContextual<ContextOf<A>> {
22
24
  private config;
23
25
  private _tasks?;
24
26
  private _events?;
@@ -29,25 +31,9 @@ export declare class TaskEngine<A extends Adapter<any, any, any, any>> extends C
29
31
  protected get events(): Repo<TaskEventModel>;
30
32
  protected running: boolean;
31
33
  constructor(config: TaskEngineConfig<A>);
32
- enqueueAtomic(arg: {
33
- id: string;
34
- input?: any;
35
- name?: string;
36
- maxAttempts?: number;
37
- backoff?: Partial<TaskBackoffModel>;
38
- }): Promise<TaskModel>;
39
- enqueueComposite(arg: {
40
- id: string;
41
- name?: string;
42
- steps: Array<{
43
- type: string;
44
- input?: any;
45
- }>;
46
- maxAttempts?: number;
47
- backoff?: Partial<TaskBackoffModel>;
48
- }): Promise<TaskModel>;
49
- getTask(id: string): Promise<TaskModel>;
50
- cancelTask(id: string): Promise<TaskModel>;
34
+ isRunning(): boolean;
35
+ push(task: TaskModel, ...args: MaybeContextualArg<any>): Promise<TaskModel>;
36
+ cancel(id: string, ...args: MaybeContextualArg<any>): Promise<TaskModel>;
51
37
  start(): void;
52
38
  stop(): void;
53
39
  private loop;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskEngine.js","sourceRoot":"","sources":["../../src/tasks/TaskEngine.ts"],"names":[],"mappings":";;;AAAA,sDAA+C;AAC/C,+DAA4D;AAC5D,gEAAyD;AACzD,mEAA4D;AAC5D,qDAA8C;AAC9C,oEAA6D;AAC7D,sEAA+D;AAC/D,wDAA+C;AAC/C,0EAAmE;AACnE,sEAA+D;AAC/D,+CAMqB;AAErB,+CAA6C;AAC7C,gFAAuE;AACvE,2DAAwD;AACxD,uCAAkE;AAClE,mDAA4C;AAc/B,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;CACS,CAAC;AAE3B,MAAa,UAEX,SAAQ,6CAAmC;IAI3C,IAAc,OAAO;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAc,GAAG;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAc,KAAK;QACjB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,uBAAU,CAAC,QAAQ,CAAC,qBAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAc,MAAM;QAClB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,uBAAU,CAAC,QAAQ,CAChC,+BAAc,EACd,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAC1B,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAID,YAAoB,MAA2B;QAC7C,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAqB;QAFrC,YAAO,GAAG,KAAK,CAAC;QAIxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,+BAAuB,EAAE,MAAM,EAAE;YAC/D,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,2BAAY,EAAE;YACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,yCAAmB,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAMnB;QACC,MAAM,GAAG,GAAG,IAAI,qBAAS,CAAC;YACxB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,oBAAQ,CAAC,MAAM;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,sBAAU,CAAC,OAAO;YAC1B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;YACjC,OAAO,EAAE;gBACP,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,2BAAe,CAAC,WAAW;gBAC9D,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI;gBACnC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,MAAM;gBACnC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,0BAAc,CAAC,IAAI;aACnD;YACD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAMtB;QACC,MAAM,GAAG,GAAG,IAAI,qBAAS,CAAC;YACxB,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,oBAAQ,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,sBAAU,CAAC,OAAO;YAC1B,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;YACjC,OAAO,EAAE,IAAI,mCAAgB,CAAC;gBAC5B,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,2BAAe,CAAC,WAAW;gBAC9D,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI;gBACnC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,MAAM;gBACnC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,0BAAc,CAAC,IAAI;aACnD,CAAC;YACF,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,qCAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAC/D;YACD,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,MAAM,KAAK,sBAAU,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,sBAAU,CAAC,MAAM;YACrE,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,MAAM,GAAG,sBAAU,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAU,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,4BAA4B;IAC5B,cAAc;IACd,4BAA4B;IAEpB,KAAK,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,IAAA,aAAK,EACT,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,YAAY;QACZ,YAAY;QACZ,wCAAwC;QACxC,0CAA0C;QAC1C,MAAM,WAAW,GAAG,qBAAS,CAAC,SAAS,CAAY,QAAQ,CAAC,CAAC,EAAE,CAC7D,sBAAU,CAAC,OAAO,CACnB,CAAC;QACF,MAAM,SAAS,GAAG,qBAAS,CAAC,SAAS,CAAY,QAAQ,CAAC;aACvD,EAAE,CAAC,sBAAU,CAAC,aAAa,CAAC;aAC5B,GAAG,CAAC,qBAAS,CAAC,SAAS,CAAY,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,MAAM,gBAAgB,GAAG,qBAAS,CAAC,SAAS,CAAY,QAAQ,CAAC;aAC9D,EAAE,CAAC,sBAAU,CAAC,OAAO,CAAC;aACtB,GAAG,CAAC,qBAAS,CAAC,SAAS,CAAY,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/D,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAEhE,+EAA+E;QAC/E,MAAM,UAAU,GAAgB,MAAM,IAAI,CAAC,KAAK;aAC7C,MAAM,EAAE;aACR,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;aAChD,OAAO,EAAE,CAAC;QAEb,MAAM,GAAG,GAAgB,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW;gBAAE,MAAM;QACnD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAe;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,qBAAS,CAAC;YAC5B,GAAG,IAAI;YACP,MAAM,EAAE,sBAAU,CAAC,OAAO;YAC1B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAChC,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;SACjD,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,sEAAsE;YACtE,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,YAAY;IACZ,4BAA4B;IAEpB,KAAK,CAAC,cAAc,CAAC,IAAe;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAEvB,MAAM,GAAG,GAAgB,IAAI,yBAAW,EAAE,CAAC,UAAU,CAAC;YACpD,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,KAAK,EAAE,KAAe,EAAE,GAAW,EAAE,IAAS,EAAE,EAAE;gBACrD,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;gBAC5B,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC;YACD,SAAS,EAAE,KAAK,IAAI,EAAE;gBACpB,eAAe;gBACf,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAAE,OAAO;gBACrD,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;gBAAC,MAAM,CAAC;oBACP,yGAAyG;gBAC3G,CAAC;YACH,CAAC;SACF,CAAQ,CAAC;QAEV,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAU,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC;YACH,IAAI,MAAW,CAAC;YAEhB,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAQ,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,OAAO;oBACV,MAAM,IAAI,6BAAa,CACrB,wCAAwC,IAAI,CAAC,IAAI,EAAE,CACpD,CAAC;gBACJ,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,sBAAU,CAAC,SAAS,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAE7B,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAE5C,MAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAC;YAEvC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAA,wBAAgB,EAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;gBAE/C,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,sBAAU,CAAC,aAAa,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;gBACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAE7B,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAU,CAAC,aAAa,CAAC,CAAC;gBACtD,MAAM,GAAG,CAAC,GAAG,CAAC,kBAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE;oBAC9C,SAAS;oBACT,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,WAAW;iBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,sBAAU,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;gBACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAE7B,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAU,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,GAAG,CAAC,GAAG,CAAC,kBAAQ,CAAC,KAAK,EAAE,oCAAoC,EAAE;oBAClE,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAe,EAAE,GAAgB;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAEvC,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO;gBACV,MAAM,IAAI,KAAK,CACb,kDAAkD,IAAI,CAAC,IAAI,EAAE,CAC9D,CAAC;YAEJ,MAAM,GAAG,CAAC,GAAG,CACX,kBAAQ,CAAC,IAAI,EACb,kBAAkB,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,CAC1D,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAE/C,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,yCAAmB,CAAC;oBACrC,MAAM,EAAE,sBAAU,CAAC,SAAS;oBAC5B,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;gBACH,GAAG,IAAI,CAAC,CAAC;gBAET,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;gBAEvB,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC/B,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,KAAK,CAAC,MAAM;iBACzB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,yCAAmB,CAAC;oBACrC,MAAM,EAAE,sBAAU,CAAC,MAAM;oBACzB,KAAK,EAAE,IAAA,sBAAc,EAAC,GAAG,CAAC;iBAC3B,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;gBACvB,IAAI,CAAC,KAAK,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAC;gBAEjC,wEAAwE;gBACxE,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,4BAA4B;IAC5B,gCAAgC;IAChC,4BAA4B;IAEpB,KAAK,CAAC,SAAS,CACrB,IAAe,EACf,KAAe,EACf,GAAW,EACX,IAAU;QAEV,MAAM,KAAK,GAAG,IAAI,qCAAiB,CAAC;YAClC,KAAK;YACL,GAAG;YACH,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CACrD,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CACxB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QAExB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAe,EAAE,MAAkB;QAC1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAa,CAAC,MAAM,EAAE;YACjE,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,KAAa,EACb,GAAW,EACX,IAAU;QAEV,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAa,CAAC,GAAG,EAAE;YAC7D,KAAK;YACL,GAAG;YACH,IAAI;SACL,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,IAAS;QAClD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,MAAc,EACd,IAAmB,EACnB,OAAY;QAEZ,MAAM,GAAG,GAAG,IAAI,+BAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAEQ,QAAQ;QACf,OAAO,cAAc,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC;IACpD,CAAC;CACF;AArZD,gCAqZC"}
1
+ {"version":3,"file":"TaskEngine.js","sourceRoot":"","sources":["../../src/tasks/TaskEngine.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskEventBus = void 0;
4
- class TaskEventBus {
4
+ const TaskEventModel_1 = require("./models/TaskEventModel.cjs");
5
+ const index_1 = require("./../persistence/index.cjs");
6
+ class TaskEventBus extends index_1.ObserverHandler {
5
7
  constructor() {
8
+ super(...arguments);
6
9
  this.listeners = new Set();
7
10
  }
8
- on(listener) {
9
- this.listeners.add(listener);
10
- return () => this.listeners.delete(listener);
11
+ observe(observer, filter) {
12
+ super.observe(observer, filter);
11
13
  }
12
- emit(evt) {
13
- for (const l of this.listeners)
14
- l(evt);
14
+ unObserve(observer) {
15
+ super.unObserve(observer);
16
+ }
17
+ on(observer) {
18
+ this.observe(observer);
19
+ return () => this.unObserve(observer);
20
+ }
21
+ emit(evt, ctx) {
22
+ this.updateObservers(TaskEventModel_1.TaskEventModel, evt.classification, evt.id, evt, ctx);
15
23
  }
16
24
  }
17
25
  exports.TaskEventBus = TaskEventBus;
@@ -1,6 +1,11 @@
1
1
  import { TaskEventModel } from "./models/TaskEventModel";
2
- export declare class TaskEventBus {
2
+ import { Context, ObserverFilter, ObserverHandler } from "../persistence/index";
3
+ import { TaskContext } from "./TaskContext";
4
+ import { Observer } from "../interfaces/index";
5
+ export declare class TaskEventBus extends ObserverHandler<TaskContext> {
3
6
  protected readonly listeners: Set<(evt: TaskEventModel) => void>;
4
- on(listener: (evt: TaskEventModel) => void): () => void;
5
- emit(evt: TaskEventModel): void;
7
+ observe(observer: Observer, filter?: ObserverFilter): void;
8
+ unObserve(observer: Observer): void;
9
+ on(observer: Observer): () => void;
10
+ emit(evt: TaskEventModel, ctx: Context): void;
6
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TaskEventBus.js","sourceRoot":"","sources":["../../src/tasks/TaskEventBus.ts"],"names":[],"mappings":";;;AAIA,MAAa,YAAY;IAAzB;QACqB,cAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAU1E,CAAC;IARC,EAAE,CAAC,QAAuC;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,GAAmB;QACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AAXD,oCAWC"}
1
+ {"version":3,"file":"TaskEventBus.js","sourceRoot":"","sources":["../../src/tasks/TaskEventBus.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AAEzD,sDAAgF;AAIhF,MAAa,YAAa,SAAQ,uBAA4B;IAA9D;;QACqB,cAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAkB1E,CAAC;IAhBU,OAAO,CAAC,QAAkB,EAAE,MAAuB;QAC1D,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAEQ,SAAS,CAAC,QAAkB;QACnC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,EAAE,CAAC,QAAkB;QACnB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,GAAmB,EAAE,GAAY;QACpC,IAAI,CAAC,eAAe,CAAC,+BAAc,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;CACF;AAnBD,oCAmBC"}
@@ -7,8 +7,15 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
7
7
  const ContextualLoggedClass_1 = require("./../utils/ContextualLoggedClass.cjs");
8
8
  class TaskHandler extends ContextualLoggedClass_1.AbsContextual {
9
9
  get type() {
10
- if (!this._type)
11
- this._type = decoration_1.Metadata.get(this.constructor, constants_1.TasksKey);
10
+ if (!this._type) {
11
+ const meta = decoration_1.Metadata.get(this.constructor, constants_1.TasksKey);
12
+ if (typeof meta === "string") {
13
+ this._type = meta;
14
+ }
15
+ else if (meta && typeof meta.type === "string") {
16
+ this._type = meta.type;
17
+ }
18
+ }
12
19
  if (!this._type)
13
20
  throw new db_decorators_1.InternalError(`No type annotation for this handler found. did you use @task()?`);
14
21
  return this._type;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../src/tasks/TaskHandler.ts"],"names":[],"mappings":";;;AACA,+CAAuC;AACvC,qDAAgD;AAChD,2DAA+E;AAC/E,gFAGwC;AAGxC,MAAsB,WACpB,SAAQ,qCAA0B;IAKlC,IAAI,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,IAAI,CAAC,KAAK,GAAG,qBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAkB,EAAE,oBAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,MAAM,IAAI,6BAAa,CACrB,iEAAiE,CAClE,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QACR,IAAA,qCAAqB,EACnB,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CACd,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,KAAQ,EACR,GAAG,IAAqC;QAExC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7B,CAAC;IAES,SAAS,CAAC,MAAS,EAAE,GAAgB;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;CAGF;AA3CD,kCA2CC"}
1
+ {"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../src/tasks/TaskHandler.ts"],"names":[],"mappings":";;;AACA,+CAAuC;AACvC,qDAAgD;AAChD,2DAA+E;AAC/E,gFAGwC;AAGxC,MAAsB,WACpB,SAAQ,qCAA0B;IAKlC,IAAI,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,qBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAkB,EAAE,oBAAQ,CAAC,CAAC;YAC7D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,MAAM,IAAI,6BAAa,CACrB,iEAAiE,CAClE,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QACR,IAAA,qCAAqB,EACnB,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CACd,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,KAAQ,EACR,GAAG,IAAqC;QAExC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7B,CAAC;IAES,SAAS,CAAC,MAAS,EAAE,GAAgB;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;CAGF;AAjDD,kCAiDC"}