@decaf-ts/core 0.8.5 → 0.8.7
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.
- package/README.md +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +2 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/persistence/Adapter.d.ts +1 -1
- package/lib/esm/persistence/Adapter.js +4 -1
- package/lib/esm/persistence/Adapter.js.map +1 -1
- package/lib/esm/tasks/TaskEngine.d.ts +5 -3
- package/lib/esm/tasks/TaskEngine.js +82 -14
- package/lib/esm/tasks/TaskEngine.js.map +1 -1
- package/lib/esm/tasks/TaskService.d.ts +7 -7
- package/lib/esm/tasks/TaskService.js +10 -8
- package/lib/esm/tasks/TaskService.js.map +1 -1
- package/lib/esm/tasks/TaskTracker.d.ts +18 -6
- package/lib/esm/tasks/TaskTracker.js +98 -10
- package/lib/esm/tasks/TaskTracker.js.map +1 -1
- package/lib/esm/tasks/constants.js +1 -0
- package/lib/esm/tasks/constants.js.map +1 -1
- package/lib/esm/tasks/models/TaskErrorModel.d.ts +2 -3
- package/lib/esm/tasks/models/TaskErrorModel.js +2 -3
- package/lib/esm/tasks/models/TaskErrorModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskEventModel.d.ts +2 -3
- package/lib/esm/tasks/models/TaskEventModel.js +3 -5
- package/lib/esm/tasks/models/TaskEventModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskLogEntryModel.js +0 -1
- package/lib/esm/tasks/models/TaskLogEntryModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskModel.d.ts +14 -3
- package/lib/esm/tasks/models/TaskModel.js +44 -8
- package/lib/esm/tasks/models/TaskModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskStepResultModel.d.ts +2 -3
- package/lib/esm/tasks/models/TaskStepResultModel.js +2 -6
- package/lib/esm/tasks/models/TaskStepResultModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +2 -3
- package/lib/esm/tasks/models/TaskStepSpecModel.js +2 -6
- package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/esm/tasks/types.d.ts +1 -0
- package/lib/index.cjs +2 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js.map +1 -1
- package/lib/persistence/Adapter.cjs +4 -1
- package/lib/persistence/Adapter.d.ts +1 -1
- package/lib/persistence/Adapter.js.map +1 -1
- package/lib/tasks/TaskEngine.cjs +82 -14
- package/lib/tasks/TaskEngine.d.ts +5 -3
- package/lib/tasks/TaskEngine.js.map +1 -1
- package/lib/tasks/TaskService.cjs +19 -17
- package/lib/tasks/TaskService.d.ts +7 -7
- package/lib/tasks/TaskService.js.map +1 -1
- package/lib/tasks/TaskTracker.cjs +98 -10
- package/lib/tasks/TaskTracker.d.ts +18 -6
- package/lib/tasks/TaskTracker.js.map +1 -1
- package/lib/tasks/constants.cjs +1 -0
- package/lib/tasks/constants.js.map +1 -1
- package/lib/tasks/models/TaskErrorModel.cjs +1 -2
- package/lib/tasks/models/TaskErrorModel.d.ts +2 -3
- package/lib/tasks/models/TaskErrorModel.js.map +1 -1
- package/lib/tasks/models/TaskEventModel.cjs +1 -3
- package/lib/tasks/models/TaskEventModel.d.ts +2 -3
- package/lib/tasks/models/TaskEventModel.js.map +1 -1
- package/lib/tasks/models/TaskLogEntryModel.cjs +0 -1
- package/lib/tasks/models/TaskLogEntryModel.js.map +1 -1
- package/lib/tasks/models/TaskModel.cjs +42 -6
- package/lib/tasks/models/TaskModel.d.ts +14 -3
- package/lib/tasks/models/TaskModel.js.map +1 -1
- package/lib/tasks/models/TaskStepResultModel.cjs +1 -5
- package/lib/tasks/models/TaskStepResultModel.d.ts +2 -3
- package/lib/tasks/models/TaskStepResultModel.js.map +1 -1
- package/lib/tasks/models/TaskStepSpecModel.cjs +1 -5
- package/lib/tasks/models/TaskStepSpecModel.d.ts +2 -3
- package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/tasks/types.d.ts +1 -0
- package/package.json +1 -1
- package/lib/esm/tasks/models/TaskBaseModel.d.ts +0 -14
- package/lib/esm/tasks/models/TaskBaseModel.js +0 -30
- package/lib/esm/tasks/models/TaskBaseModel.js.map +0 -1
- package/lib/tasks/models/TaskBaseModel.cjs +0 -34
- package/lib/tasks/models/TaskBaseModel.d.ts +0 -14
- package/lib/tasks/models/TaskBaseModel.js.map +0 -1
|
@@ -5,10 +5,12 @@ const TaskEventModel_1 = require("./models/TaskEventModel.cjs");
|
|
|
5
5
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
6
6
|
const constants_1 = require("./constants.cjs");
|
|
7
7
|
const logging_1 = require("./logging.cjs");
|
|
8
|
+
const index_1 = require("./../persistence/index.cjs");
|
|
8
9
|
class TaskTracker {
|
|
9
10
|
constructor(bus, task) {
|
|
10
11
|
this.bus = bus;
|
|
11
12
|
this.task = task;
|
|
13
|
+
this.resolved = false;
|
|
12
14
|
this.unregistration = bus.observe(this, (table, operation, id,
|
|
13
15
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
16
|
...args) => {
|
|
@@ -19,10 +21,11 @@ class TaskTracker {
|
|
|
19
21
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
20
22
|
const self = this;
|
|
21
23
|
this.promise = new Promise((resolve, reject) => {
|
|
22
|
-
self.
|
|
23
|
-
self.
|
|
24
|
+
self.resolveResult = resolve;
|
|
25
|
+
self.rejectResult = reject;
|
|
24
26
|
});
|
|
25
27
|
this.pipe(this.track.bind(this));
|
|
28
|
+
this.resolveTerminalState();
|
|
26
29
|
}
|
|
27
30
|
resolve() {
|
|
28
31
|
return this.promise;
|
|
@@ -44,21 +47,106 @@ class TaskTracker {
|
|
|
44
47
|
this.pipes[type].add(pipe);
|
|
45
48
|
}
|
|
46
49
|
succeed(result) {
|
|
47
|
-
this.
|
|
48
|
-
this.onSuccess(result);
|
|
49
|
-
this.pipes = undefined;
|
|
50
|
+
this.complete(result, true);
|
|
50
51
|
}
|
|
51
52
|
fail(error) {
|
|
53
|
+
this.complete(error, false);
|
|
54
|
+
}
|
|
55
|
+
cancel(evt) {
|
|
56
|
+
if (!evt.payload?.error)
|
|
57
|
+
return;
|
|
58
|
+
this.fail(evt.payload.error);
|
|
59
|
+
}
|
|
60
|
+
onSucceed(handler) {
|
|
61
|
+
return this.registerStatusHandler(constants_1.TaskStatus.SUCCEEDED, handler);
|
|
62
|
+
}
|
|
63
|
+
onFailure(handler) {
|
|
64
|
+
return this.registerStatusHandler(constants_1.TaskStatus.FAILED, handler);
|
|
65
|
+
}
|
|
66
|
+
onCancel(handler) {
|
|
67
|
+
return this.registerStatusHandler(constants_1.TaskStatus.CANCELED, handler);
|
|
68
|
+
}
|
|
69
|
+
complete(payload, success) {
|
|
70
|
+
if (this.resolved)
|
|
71
|
+
return;
|
|
72
|
+
this.resolved = true;
|
|
52
73
|
this.unregistration();
|
|
53
|
-
this.onFail(error);
|
|
54
74
|
this.pipes = undefined;
|
|
75
|
+
if (success)
|
|
76
|
+
this.resolveResult(payload);
|
|
77
|
+
else
|
|
78
|
+
this.rejectResult(payload);
|
|
79
|
+
}
|
|
80
|
+
isTerminalStatus(status) {
|
|
81
|
+
return [
|
|
82
|
+
constants_1.TaskStatus.SUCCEEDED,
|
|
83
|
+
constants_1.TaskStatus.CANCELED,
|
|
84
|
+
constants_1.TaskStatus.FAILED,
|
|
85
|
+
].includes(status);
|
|
55
86
|
}
|
|
56
87
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
57
88
|
async track(evt, ctx) {
|
|
58
|
-
if (evt.payload
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
89
|
+
if (!evt.payload)
|
|
90
|
+
return;
|
|
91
|
+
this.task.status = evt.payload.status;
|
|
92
|
+
if (evt.payload.output !== undefined)
|
|
93
|
+
this.task.output = evt.payload.output;
|
|
94
|
+
if (evt.payload.error)
|
|
95
|
+
this.task.error = evt.payload.error;
|
|
96
|
+
if (evt.payload.status === constants_1.TaskStatus.SUCCEEDED) {
|
|
97
|
+
this.succeed(evt.payload.output);
|
|
98
|
+
}
|
|
99
|
+
if (evt.payload.status === constants_1.TaskStatus.FAILED) {
|
|
100
|
+
this.fail(evt.payload.error);
|
|
101
|
+
}
|
|
102
|
+
if (evt.payload.status === constants_1.TaskStatus.CANCELED)
|
|
103
|
+
this.cancel(evt);
|
|
104
|
+
}
|
|
105
|
+
registerStatusHandler(status, handler) {
|
|
106
|
+
const wrapped = async (evt, ctx) => {
|
|
107
|
+
if (evt.payload?.status !== status)
|
|
108
|
+
return;
|
|
109
|
+
await handler(evt, ctx);
|
|
110
|
+
};
|
|
111
|
+
this.pipe(wrapped, constants_1.TaskEventType.STATUS);
|
|
112
|
+
if (this.task.status === status) {
|
|
113
|
+
const terminalEvent = this.buildTerminalEvent(status);
|
|
114
|
+
void wrapped(terminalEvent, this.getTerminalContext());
|
|
115
|
+
}
|
|
116
|
+
return () => {
|
|
117
|
+
this.pipes?.[constants_1.TaskEventType.STATUS]?.delete(wrapped);
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
getTerminalContext() {
|
|
121
|
+
if (!this.terminalContext)
|
|
122
|
+
this.terminalContext = new index_1.Context();
|
|
123
|
+
return this.terminalContext;
|
|
124
|
+
}
|
|
125
|
+
buildTerminalEvent(status) {
|
|
126
|
+
const payload = { status };
|
|
127
|
+
if (status === constants_1.TaskStatus.SUCCEEDED) {
|
|
128
|
+
payload.output = this.task.output;
|
|
129
|
+
}
|
|
130
|
+
if ((status === constants_1.TaskStatus.FAILED || status === constants_1.TaskStatus.CANCELED) &&
|
|
131
|
+
this.task.error) {
|
|
132
|
+
payload.error = this.task.error;
|
|
133
|
+
}
|
|
134
|
+
return new TaskEventModel_1.TaskEventModel({
|
|
135
|
+
classification: constants_1.TaskEventType.STATUS,
|
|
136
|
+
taskId: this.task.id,
|
|
137
|
+
payload,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
resolveTerminalState() {
|
|
141
|
+
if (!this.isTerminalStatus(this.task.status))
|
|
142
|
+
return;
|
|
143
|
+
if (this.task.status === constants_1.TaskStatus.SUCCEEDED) {
|
|
144
|
+
this.succeed(this.task.output);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (this.task.error) {
|
|
148
|
+
this.fail(this.task.error);
|
|
149
|
+
}
|
|
62
150
|
}
|
|
63
151
|
async refresh(evt, ctx) {
|
|
64
152
|
if (!this.pipes)
|
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
import { Observer } from "../interfaces/Observer";
|
|
2
2
|
import { TaskEventModel } from "./models/TaskEventModel";
|
|
3
3
|
import { Logger } from "@decaf-ts/logging";
|
|
4
|
-
import { TaskEventType } from "./constants";
|
|
4
|
+
import { TaskEventType, TaskStatus } from "./constants";
|
|
5
5
|
import { EventPipe, LogPipe, LogPipeOptions } from "./types";
|
|
6
6
|
import { TaskModel } from "./models/TaskModel";
|
|
7
7
|
import { Context } from "../persistence/index";
|
|
8
8
|
import { TaskErrorModel } from "./models/TaskErrorModel";
|
|
9
9
|
import { TaskEventBus } from "./TaskEventBus";
|
|
10
|
-
export declare class TaskTracker<
|
|
10
|
+
export declare class TaskTracker<O = any> implements Observer<[TaskEventModel, Context]> {
|
|
11
11
|
protected bus: TaskEventBus;
|
|
12
12
|
private readonly task;
|
|
13
13
|
protected unregistration: () => void;
|
|
14
|
-
private
|
|
15
|
-
private
|
|
14
|
+
private resolveResult;
|
|
15
|
+
private rejectResult;
|
|
16
16
|
protected pipes?: Record<TaskEventType, Set<EventPipe>>;
|
|
17
|
+
private resolved;
|
|
17
18
|
private readonly promise;
|
|
19
|
+
private terminalContext?;
|
|
18
20
|
constructor(bus: TaskEventBus, task: TaskModel);
|
|
19
|
-
resolve(): Promise<
|
|
21
|
+
resolve(): Promise<O>;
|
|
20
22
|
attach(log: Logger, opts?: LogPipeOptions): void;
|
|
21
23
|
logs(pipe: LogPipe): void;
|
|
22
24
|
protected pipe(pipe: EventPipe, type?: TaskEventType): void;
|
|
23
|
-
protected succeed(result:
|
|
25
|
+
protected succeed(result: O): void;
|
|
24
26
|
protected fail(error: TaskErrorModel): void;
|
|
27
|
+
protected cancel(evt: TaskEventModel): void;
|
|
28
|
+
onSucceed(handler: EventPipe): () => void;
|
|
29
|
+
onFailure(handler: EventPipe): () => void;
|
|
30
|
+
onCancel(handler: EventPipe): () => void;
|
|
31
|
+
private complete;
|
|
32
|
+
protected isTerminalStatus(status: TaskStatus): boolean;
|
|
25
33
|
protected track(evt: TaskEventModel, ctx: Context): Promise<void>;
|
|
34
|
+
private registerStatusHandler;
|
|
35
|
+
private getTerminalContext;
|
|
36
|
+
private buildTerminalEvent;
|
|
37
|
+
private resolveTerminalState;
|
|
26
38
|
refresh(evt: TaskEventModel, ctx: Context): Promise<void>;
|
|
27
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskTracker.js","sourceRoot":"","sources":["../../src/tasks/TaskTracker.ts"],"names":[],"mappings":";;;AACA,gEAAyD;AACzD,yEAAyE;AAEzE,+CAAwD;AAExD,2CAAuC;
|
|
1
|
+
{"version":3,"file":"TaskTracker.js","sourceRoot":"","sources":["../../src/tasks/TaskTracker.ts"],"names":[],"mappings":"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"}
|
package/lib/tasks/constants.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tasks/constants.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;IACvB,mCAAqB,CAAA;IACrB,6CAA+B,CAAA;AACjC,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB;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;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tasks/constants.ts"],"names":[],"mappings":";;;AAEA,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;IACvB,mCAAqB,CAAA;IACrB,6CAA+B,CAAA;AACjC,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB;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;CAChB,CAAC"}
|
|
@@ -10,10 +10,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TaskErrorModel = void 0;
|
|
13
|
-
const TaskBaseModel_1 = require("./TaskBaseModel.cjs");
|
|
14
13
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
15
14
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
16
|
-
let TaskErrorModel = class TaskErrorModel extends
|
|
15
|
+
let TaskErrorModel = class TaskErrorModel extends decorator_validation_1.Model {
|
|
17
16
|
constructor(arg) {
|
|
18
17
|
super(arg);
|
|
19
18
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare class TaskErrorModel extends TaskBaseModel {
|
|
1
|
+
import { Model, type ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
|
+
export declare class TaskErrorModel extends Model {
|
|
4
3
|
message: string;
|
|
5
4
|
stack?: string;
|
|
6
5
|
code?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskErrorModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskErrorModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"TaskErrorModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskErrorModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAKwC;AACxC,qDAAyD;AAGlD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,4BAAK;IAcvC,YAAY,GAA8B;QACxC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAjBY,wCAAc;AAGzB;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,wBAAW,EAAC,mBAAmB,CAAC;;+CAChB;AAGjB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,iBAAiB,CAAC;;6CAChB;AAGf;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,gBAAgB,CAAC;;4CAChB;AAGd;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,mBAAmB,CAAC;;+CACnB;yBAZH,cAAc;IAD1B,IAAA,4BAAK,GAAE;;GACK,cAAc,CAiB1B"}
|
|
@@ -17,8 +17,7 @@ const decoration_1 = require("@decaf-ts/decoration");
|
|
|
17
17
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
18
18
|
const constants_1 = require("./../constants.cjs");
|
|
19
19
|
const decorators_3 = require("./../../persistence/decorators.cjs");
|
|
20
|
-
|
|
21
|
-
let TaskEventModel = class TaskEventModel extends BaseModel_1.BaseModel {
|
|
20
|
+
let TaskEventModel = class TaskEventModel extends decorator_validation_1.Model {
|
|
22
21
|
constructor(arg) {
|
|
23
22
|
super(arg);
|
|
24
23
|
this.ts = new Date();
|
|
@@ -56,7 +55,6 @@ __decorate([
|
|
|
56
55
|
__decorate([
|
|
57
56
|
(0, decoration_1.prop)(),
|
|
58
57
|
(0, db_decorators_1.readonly)(),
|
|
59
|
-
(0, db_decorators_1.serialize)(),
|
|
60
58
|
__metadata("design:type", Object)
|
|
61
59
|
], TaskEventModel.prototype, "payload", void 0);
|
|
62
60
|
exports.TaskEventModel = TaskEventModel = __decorate([
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type ModelArg } from "@decaf-ts/decorator-validation";
|
|
1
|
+
import { Model, type ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { TaskEventType } from "../constants";
|
|
3
|
-
|
|
4
|
-
export declare class TaskEventModel extends BaseModel {
|
|
3
|
+
export declare class TaskEventModel extends Model {
|
|
5
4
|
id: string;
|
|
6
5
|
uuid: string;
|
|
7
6
|
taskId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskEventModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskEventModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"TaskEventModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskEventModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA+C;AAC/C,yEAOwC;AACxC,6DAA+C;AAC/C,qDAA4C;AAC5C,2DAAwE;AACxE,kDAA6C;AAC7C,mEAAoD;AAI7C,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,4BAAK;IA4BvC,YAAY,GAA8B;QACxC,KAAK,CAAC,GAAG,CAAC,CAAC;QAZb,OAAE,GAAS,IAAI,IAAI,EAAE,CAAC;IAatB,CAAC;CACF,CAAA;AA/BY,wCAAc;AAGzB;IAFC,IAAA,wBAAQ,EAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;IACnD,IAAA,eAAE,GAAE;;0CACO;AAMZ;IAJC,IAAA,wBAAQ,GAAE;IACV,IAAA,+BAAQ,GAAE;IACV,IAAA,yBAAS,GAAE;IACX,IAAA,iBAAI,EAAC,KAAK,CAAC;;4CACE;AAId;IAFC,IAAA,wBAAQ,GAAE;IACV,IAAA,+BAAQ,GAAE;;8CACK;AAIhB;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,+BAAQ,GAAE;8BACP,IAAI;0CAAc;AAKtB;IAHC,IAAA,wBAAQ,GAAE;IACV,IAAA,+BAAQ,GAAE;IACV,IAAA,6BAAM,EAAC,yBAAa,CAAC;;sDACS;AAI/B;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAQ,GAAE;;+CACG;yBA1BH,cAAc;IAF1B,IAAA,kBAAK,EAAC,YAAY,CAAC;IACnB,IAAA,4BAAK,GAAE;;GACK,cAAc,CA+B1B"}
|
|
@@ -27,7 +27,6 @@ __decorate([
|
|
|
27
27
|
], TaskLogEntryModel.prototype, "ts", void 0);
|
|
28
28
|
__decorate([
|
|
29
29
|
(0, decorator_validation_1.required)(),
|
|
30
|
-
(0, decoration_1.prop)(),
|
|
31
30
|
(0, decorator_validation_1.option)(logging_1.LogLevel),
|
|
32
31
|
__metadata("design:type", String)
|
|
33
32
|
], TaskLogEntryModel.prototype, "level", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskLogEntryModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskLogEntryModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6C;AAC7C,yEAOwC;AACxC,qDAA4C;AAGrC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,4BAAK;
|
|
1
|
+
{"version":3,"file":"TaskLogEntryModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskLogEntryModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6C;AAC7C,yEAOwC;AACxC,qDAA4C;AAGrC,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,4BAAK;IAgB1C,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;QAdb,OAAE,GAAS,IAAI,IAAI,EAAE,CAAC;IAetB,CAAC;CACF,CAAA;AAnBY,8CAAiB;AAG5B;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,+BAAQ,GAAE;8BACP,IAAI;6CAAc;AAItB;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,6BAAM,EAAC,kBAAQ,CAAC;;gDACA;AAIjB;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,iBAAI,GAAE;;8CACM;AAGb;IADC,IAAA,iBAAI,GAAE;;+CACI;4BAdA,iBAAiB;IAD7B,IAAA,4BAAK,GAAE;;GACK,iBAAiB,CAmB7B"}
|
|
@@ -10,7 +10,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TaskModel = void 0;
|
|
13
|
-
const TaskBaseModel_1 = require("./TaskBaseModel.cjs");
|
|
14
13
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
15
14
|
const decorators_1 = require("./../../identity/decorators.cjs");
|
|
16
15
|
const constants_1 = require("./../constants.cjs");
|
|
@@ -19,61 +18,69 @@ const TaskBackoffModel_1 = require("./TaskBackoffModel.cjs");
|
|
|
19
18
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
20
19
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
21
20
|
const decorators_2 = require("./../../model/decorators.cjs");
|
|
22
|
-
let TaskModel = class TaskModel extends
|
|
21
|
+
let TaskModel = class TaskModel extends decorator_validation_1.Model {
|
|
23
22
|
constructor(arg) {
|
|
24
23
|
super(arg);
|
|
25
24
|
// required routing / identity
|
|
26
25
|
this.atomicity = constants_1.TaskType.ATOMIC; // atomic handler type OR "composite"
|
|
27
26
|
// execution
|
|
28
27
|
this.status = constants_1.TaskStatus.PENDING;
|
|
29
|
-
// logging
|
|
30
28
|
this.logTail = [];
|
|
31
29
|
}
|
|
32
30
|
};
|
|
33
31
|
exports.TaskModel = TaskModel;
|
|
34
32
|
__decorate([
|
|
35
33
|
(0, decorators_1.pk)({ type: "uuid" }),
|
|
34
|
+
(0, decoration_1.description)("the task id"),
|
|
36
35
|
__metadata("design:type", String)
|
|
37
36
|
], TaskModel.prototype, "id", void 0);
|
|
38
37
|
__decorate([
|
|
39
38
|
(0, decorator_validation_1.required)(),
|
|
40
39
|
(0, decorator_validation_1.type)(String),
|
|
41
40
|
(0, decorator_validation_1.option)(constants_1.TaskType),
|
|
41
|
+
(0, decoration_1.description)("defines a single or composite task"),
|
|
42
42
|
__metadata("design:type", String)
|
|
43
43
|
], TaskModel.prototype, "atomicity", void 0);
|
|
44
44
|
__decorate([
|
|
45
45
|
(0, decorator_validation_1.required)(),
|
|
46
|
+
(0, decoration_1.description)("Holds task classification - must match @task()"),
|
|
46
47
|
__metadata("design:type", String)
|
|
47
48
|
], TaskModel.prototype, "classification", void 0);
|
|
48
49
|
__decorate([
|
|
49
50
|
(0, decorator_validation_1.required)(),
|
|
50
51
|
(0, decorator_validation_1.type)(String),
|
|
51
52
|
(0, decorator_validation_1.option)(constants_1.TaskStatus),
|
|
53
|
+
(0, decoration_1.description)("Holds the task current status"),
|
|
52
54
|
__metadata("design:type", String)
|
|
53
55
|
], TaskModel.prototype, "status", void 0);
|
|
54
56
|
__decorate([
|
|
55
57
|
(0, decoration_1.prop)(),
|
|
56
58
|
(0, db_decorators_1.serialize)(),
|
|
59
|
+
(0, decoration_1.description)("Holds task input"),
|
|
57
60
|
__metadata("design:type", Object)
|
|
58
61
|
], TaskModel.prototype, "input", void 0);
|
|
59
62
|
__decorate([
|
|
60
63
|
(0, decoration_1.prop)(),
|
|
61
64
|
(0, db_decorators_1.serialize)(),
|
|
65
|
+
(0, decoration_1.description)("Holds the task output when successfully completed"),
|
|
62
66
|
__metadata("design:type", Object)
|
|
63
67
|
], TaskModel.prototype, "output", void 0);
|
|
64
68
|
__decorate([
|
|
65
69
|
(0, decoration_1.prop)(),
|
|
66
70
|
(0, db_decorators_1.serialize)(),
|
|
71
|
+
(0, decoration_1.description)("Holds the error for failed tasks"),
|
|
67
72
|
__metadata("design:type", TaskErrorModel_1.TaskErrorModel)
|
|
68
73
|
], TaskModel.prototype, "error", void 0);
|
|
69
74
|
__decorate([
|
|
70
|
-
(0, decorator_validation_1.min)(0),
|
|
71
75
|
(0, decorator_validation_1.required)(),
|
|
76
|
+
(0, decorator_validation_1.min)(0),
|
|
77
|
+
(0, decoration_1.description)("Holds the current attempt"),
|
|
72
78
|
__metadata("design:type", Number)
|
|
73
79
|
], TaskModel.prototype, "attempt", void 0);
|
|
74
80
|
__decorate([
|
|
75
81
|
(0, decorator_validation_1.min)(1),
|
|
76
82
|
(0, decorator_validation_1.required)(),
|
|
83
|
+
(0, decoration_1.description)("max attempts for the task"),
|
|
77
84
|
__metadata("design:type", Number)
|
|
78
85
|
], TaskModel.prototype, "maxAttempts", void 0);
|
|
79
86
|
__decorate([
|
|
@@ -100,24 +107,53 @@ __decorate([
|
|
|
100
107
|
__decorate([
|
|
101
108
|
(0, decoration_1.prop)(),
|
|
102
109
|
(0, db_decorators_1.serialize)(),
|
|
110
|
+
(0, decoration_1.description)("Holds the various steps definition and inputs - only for type === 'composite'"),
|
|
103
111
|
__metadata("design:type", Array)
|
|
104
112
|
], TaskModel.prototype, "steps", void 0);
|
|
105
113
|
__decorate([
|
|
106
114
|
(0, decorator_validation_1.min)(0),
|
|
107
115
|
(0, decoration_1.prop)(),
|
|
116
|
+
(0, decoration_1.description)("Holds the current step - only for type === 'composite'"),
|
|
108
117
|
__metadata("design:type", Number)
|
|
109
118
|
], TaskModel.prototype, "currentStep", void 0);
|
|
110
119
|
__decorate([
|
|
111
|
-
(0, db_decorators_1.serialize)(),
|
|
112
120
|
(0, decoration_1.prop)(),
|
|
121
|
+
(0, db_decorators_1.serialize)(),
|
|
122
|
+
(0, decoration_1.description)("Holds the step results - only for type === 'composite'"),
|
|
113
123
|
__metadata("design:type", Array)
|
|
114
124
|
], TaskModel.prototype, "stepResults", void 0);
|
|
115
125
|
__decorate([
|
|
116
|
-
(0, db_decorators_1.serialize)(),
|
|
117
126
|
(0, decoration_1.prop)(),
|
|
127
|
+
(0, db_decorators_1.serialize)(),
|
|
128
|
+
(0, decoration_1.description)("Holds the task log entries"),
|
|
118
129
|
__metadata("design:type", Array)
|
|
119
130
|
], TaskModel.prototype, "logTail", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
(0, decorators_2.column)(),
|
|
133
|
+
(0, decorators_2.createdAt)(),
|
|
134
|
+
(0, decoration_1.description)("timestamp of creation"),
|
|
135
|
+
__metadata("design:type", Date)
|
|
136
|
+
], TaskModel.prototype, "createdAt", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
(0, decorators_2.column)(),
|
|
139
|
+
(0, decorators_2.updatedAt)(),
|
|
140
|
+
(0, decoration_1.description)("timestamp of last update"),
|
|
141
|
+
__metadata("design:type", Date)
|
|
142
|
+
], TaskModel.prototype, "updatedAt", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
(0, decorators_2.column)(),
|
|
145
|
+
(0, decorators_2.createdBy)(),
|
|
146
|
+
(0, decoration_1.description)("Holds the creator of the task"),
|
|
147
|
+
__metadata("design:type", String)
|
|
148
|
+
], TaskModel.prototype, "createdBy", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
(0, decorators_2.column)(),
|
|
151
|
+
(0, decorators_2.updatedBy)(),
|
|
152
|
+
(0, decoration_1.description)("Holds the creator of the task"),
|
|
153
|
+
__metadata("design:type", String)
|
|
154
|
+
], TaskModel.prototype, "updatedBy", void 0);
|
|
120
155
|
exports.TaskModel = TaskModel = __decorate([
|
|
156
|
+
(0, decoration_1.description)("Holds the current step when applicable"),
|
|
121
157
|
(0, decorators_2.table)("tasks"),
|
|
122
158
|
(0, decorator_validation_1.model)(),
|
|
123
159
|
__metadata("design:paramtypes", [Object])
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type ModelArg } from "@decaf-ts/decorator-validation";
|
|
1
|
+
import { Model, type ModelArg } from "@decaf-ts/decorator-validation";
|
|
3
2
|
import { TaskStatus, TaskType } from "../constants";
|
|
4
3
|
import { TaskErrorModel } from "./TaskErrorModel";
|
|
5
4
|
import { TaskBackoffModel } from "./TaskBackoffModel";
|
|
6
5
|
import { TaskStepSpecModel } from "./TaskStepSpecModel";
|
|
7
6
|
import { TaskStepResultModel } from "./TaskStepResultModel";
|
|
8
7
|
import { TaskLogEntryModel } from "./TaskLogEntryModel";
|
|
9
|
-
export declare class TaskModel<INPUT = any, OUTPUT = any> extends
|
|
8
|
+
export declare class TaskModel<INPUT = any, OUTPUT = any> extends Model {
|
|
10
9
|
id: string;
|
|
11
10
|
atomicity: TaskType;
|
|
12
11
|
classification: string;
|
|
@@ -24,5 +23,17 @@ export declare class TaskModel<INPUT = any, OUTPUT = any> extends TaskBaseModel
|
|
|
24
23
|
currentStep?: number;
|
|
25
24
|
stepResults?: TaskStepResultModel[];
|
|
26
25
|
logTail?: TaskLogEntryModel[];
|
|
26
|
+
/**
|
|
27
|
+
* @description Creation timestamp for the model
|
|
28
|
+
* @summary Automatically set to the current date and time when the model is created
|
|
29
|
+
*/
|
|
30
|
+
createdAt: Date;
|
|
31
|
+
/**
|
|
32
|
+
* @description Last update timestamp for the model
|
|
33
|
+
* @summary Automatically updated to the current date and time whenever the model is modified
|
|
34
|
+
*/
|
|
35
|
+
updatedAt: Date;
|
|
36
|
+
createdBy: string;
|
|
37
|
+
updatedBy: string;
|
|
27
38
|
constructor(arg?: ModelArg<TaskModel>);
|
|
28
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"TaskModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,10 +13,8 @@ exports.TaskStepResultModel = void 0;
|
|
|
13
13
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
14
|
const constants_1 = require("./../constants.cjs");
|
|
15
15
|
const TaskErrorModel_1 = require("./TaskErrorModel.cjs");
|
|
16
|
-
const TaskBaseModel_1 = require("./TaskBaseModel.cjs");
|
|
17
|
-
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
18
16
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
19
|
-
let TaskStepResultModel = class TaskStepResultModel extends
|
|
17
|
+
let TaskStepResultModel = class TaskStepResultModel extends decorator_validation_1.Model {
|
|
20
18
|
constructor(arg) {
|
|
21
19
|
super(arg);
|
|
22
20
|
}
|
|
@@ -24,9 +22,7 @@ let TaskStepResultModel = class TaskStepResultModel extends TaskBaseModel_1.Task
|
|
|
24
22
|
exports.TaskStepResultModel = TaskStepResultModel;
|
|
25
23
|
__decorate([
|
|
26
24
|
(0, decorator_validation_1.required)(),
|
|
27
|
-
(0, decoration_1.prop)(),
|
|
28
25
|
(0, decoration_1.description)("The status of a step"),
|
|
29
|
-
(0, db_decorators_1.serialize)(),
|
|
30
26
|
__metadata("design:type", String)
|
|
31
27
|
], TaskStepResultModel.prototype, "status", void 0);
|
|
32
28
|
__decorate([
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { type ModelArg } from "@decaf-ts/decorator-validation";
|
|
1
|
+
import { Model, type ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { TaskStatus } from "../constants";
|
|
3
3
|
import { TaskErrorModel } from "./TaskErrorModel";
|
|
4
|
-
|
|
5
|
-
export declare class TaskStepResultModel extends TaskBaseModel {
|
|
4
|
+
export declare class TaskStepResultModel extends Model {
|
|
6
5
|
status: TaskStatus;
|
|
7
6
|
output?: any;
|
|
8
7
|
error?: TaskErrorModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskStepResultModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepResultModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"TaskStepResultModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepResultModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAKwC;AACxC,kDAA0C;AAC1C,yDAAkD;AAClD,qDAAyD;AAGlD,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,4BAAK;IAa5C,YAAY,GAAmC;QAC7C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAhBY,kDAAmB;AAG9B;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,wBAAW,EAAC,sBAAsB,CAAC;;mDAChB;AAIpB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,iCAAiC,CAAC;;mDAClC;AAIb;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,4BAA4B,CAAC;8BAClC,+BAAc;kDAAC;8BAXZ,mBAAmB;IAD/B,IAAA,4BAAK,GAAE;;GACK,mBAAmB,CAgB/B"}
|
|
@@ -11,10 +11,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TaskStepSpecModel = void 0;
|
|
13
13
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
|
-
const TaskBaseModel_1 = require("./TaskBaseModel.cjs");
|
|
15
14
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
16
|
-
|
|
17
|
-
let TaskStepSpecModel = class TaskStepSpecModel extends TaskBaseModel_1.TaskBaseModel {
|
|
15
|
+
let TaskStepSpecModel = class TaskStepSpecModel extends decorator_validation_1.Model {
|
|
18
16
|
constructor(arg) {
|
|
19
17
|
super(arg);
|
|
20
18
|
}
|
|
@@ -24,13 +22,11 @@ __decorate([
|
|
|
24
22
|
(0, decorator_validation_1.required)(),
|
|
25
23
|
(0, decoration_1.prop)(),
|
|
26
24
|
(0, decoration_1.description)("task handler type"),
|
|
27
|
-
(0, db_decorators_1.serialize)(),
|
|
28
25
|
__metadata("design:type", String)
|
|
29
26
|
], TaskStepSpecModel.prototype, "classification", void 0);
|
|
30
27
|
__decorate([
|
|
31
28
|
(0, decoration_1.description)("optional task step input"),
|
|
32
29
|
(0, decoration_1.prop)(),
|
|
33
|
-
(0, db_decorators_1.serialize)(),
|
|
34
30
|
__metadata("design:type", Object)
|
|
35
31
|
], TaskStepSpecModel.prototype, "input", void 0);
|
|
36
32
|
exports.TaskStepSpecModel = TaskStepSpecModel = __decorate([
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { type ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
|
-
|
|
3
|
-
export declare class TaskStepSpecModel extends TaskBaseModel {
|
|
1
|
+
import { Model, type ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
|
+
export declare class TaskStepSpecModel extends Model {
|
|
4
3
|
classification: string;
|
|
5
4
|
input?: any;
|
|
6
5
|
constructor(arg?: ModelArg<TaskStepSpecModel>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskStepSpecModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepSpecModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"TaskStepSpecModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepSpecModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAKwC;AACxC,qDAAyD;AAGlD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,4BAAK;IAU1C,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAbY,8CAAiB;AAI5B;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,mBAAmB,CAAC;;yDACT;AAIxB;IAFC,IAAA,wBAAW,EAAC,0BAA0B,CAAC;IACvC,IAAA,iBAAI,GAAE;;gDACK;4BARD,iBAAiB;IAD7B,IAAA,4BAAK,GAAE;;GACK,iBAAiB,CAa7B"}
|
package/lib/tasks/types.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ export type TaskEngineConfig<A extends Adapter<any, any, any, any>> = {
|
|
|
40
40
|
streamBufferSize: number;
|
|
41
41
|
maxLoggingBuffer: number;
|
|
42
42
|
loggingBufferTruncation: number;
|
|
43
|
+
gracefulShutdownMsTimeout: number;
|
|
43
44
|
};
|
|
44
45
|
export type TaskProgressPayload = {
|
|
45
46
|
status: TaskStatus;
|
package/package.json
CHANGED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Model, type ModelArg } from "@decaf-ts/decorator-validation";
|
|
2
|
-
export declare abstract class TaskBaseModel extends Model {
|
|
3
|
-
/**
|
|
4
|
-
* @description Creation timestamp for the model
|
|
5
|
-
* @summary Automatically set to the current date and time when the model is created
|
|
6
|
-
*/
|
|
7
|
-
createdAt: Date;
|
|
8
|
-
/**
|
|
9
|
-
* @description Last update timestamp for the model
|
|
10
|
-
* @summary Automatically updated to the current date and time whenever the model is modified
|
|
11
|
-
*/
|
|
12
|
-
updatedAt: Date;
|
|
13
|
-
protected constructor(arg?: ModelArg<TaskBaseModel>);
|
|
14
|
-
}
|