@decaf-ts/core 0.7.64 → 0.7.66
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 +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/migrations/MigrationService.js +2 -4
- package/lib/esm/migrations/MigrationService.js.map +1 -1
- package/lib/esm/migrations/MigrationTasks.d.ts +9 -0
- package/lib/esm/migrations/MigrationTasks.js +69 -0
- package/lib/esm/migrations/MigrationTasks.js.map +1 -0
- package/lib/esm/migrations/index.d.ts +1 -0
- package/lib/esm/migrations/index.js +1 -0
- package/lib/esm/migrations/index.js.map +1 -1
- package/lib/esm/persistence/Context.d.ts +4 -0
- package/lib/esm/persistence/Context.js +6 -0
- package/lib/esm/persistence/Context.js.map +1 -1
- package/lib/esm/persistence/ObserverHandler.d.ts +2 -1
- package/lib/esm/persistence/ObserverHandler.js.map +1 -1
- package/lib/esm/persistence/constants.d.ts +1 -0
- package/lib/esm/persistence/constants.js +1 -0
- package/lib/esm/persistence/constants.js.map +1 -1
- package/lib/esm/ram/RamAdapter.js +10 -10
- package/lib/esm/ram/RamAdapter.js.map +1 -1
- package/lib/esm/ram/types.d.ts +2 -2
- package/lib/esm/services/PersistenceService.js +9 -1
- package/lib/esm/services/PersistenceService.js.map +1 -1
- package/lib/esm/tasks/TaskContext.d.ts +9 -4
- package/lib/esm/tasks/TaskContext.js +18 -3
- package/lib/esm/tasks/TaskContext.js.map +1 -1
- package/lib/esm/tasks/TaskEngine.d.ts +8 -22
- package/lib/esm/tasks/TaskEngine.js +189 -112
- package/lib/esm/tasks/TaskEngine.js.map +1 -1
- package/lib/esm/tasks/TaskEventBus.d.ts +8 -3
- package/lib/esm/tasks/TaskEventBus.js +15 -7
- package/lib/esm/tasks/TaskEventBus.js.map +1 -1
- package/lib/esm/tasks/TaskHandler.js +9 -2
- package/lib/esm/tasks/TaskHandler.js.map +1 -1
- package/lib/esm/tasks/TaskService.d.ts +33 -3
- package/lib/esm/tasks/TaskService.js +181 -2
- package/lib/esm/tasks/TaskService.js.map +1 -1
- package/lib/esm/tasks/builder.d.ts +42 -0
- package/lib/esm/tasks/builder.js +180 -0
- package/lib/esm/tasks/builder.js.map +1 -0
- package/lib/esm/tasks/logging.d.ts +30 -0
- package/lib/esm/tasks/logging.js +73 -0
- package/lib/esm/tasks/logging.js.map +1 -0
- package/lib/esm/tasks/models/TaskBackoffModel.js +7 -3
- package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskModel.d.ts +2 -2
- package/lib/esm/tasks/models/TaskModel.js +10 -3
- package/lib/esm/tasks/models/TaskModel.js.map +1 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +1 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.js +3 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/esm/tasks/types.d.ts +8 -4
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/migrations/MigrationService.cjs +2 -4
- package/lib/migrations/MigrationService.js.map +1 -1
- package/lib/migrations/MigrationTasks.cjs +72 -0
- package/lib/migrations/MigrationTasks.d.ts +9 -0
- package/lib/migrations/MigrationTasks.js.map +1 -0
- package/lib/migrations/index.cjs +1 -0
- package/lib/migrations/index.d.ts +1 -0
- package/lib/migrations/index.js.map +1 -1
- package/lib/persistence/Context.cjs +8 -1
- package/lib/persistence/Context.d.ts +4 -0
- package/lib/persistence/Context.js.map +1 -1
- package/lib/persistence/ObserverHandler.d.ts +2 -1
- package/lib/persistence/ObserverHandler.js.map +1 -1
- package/lib/persistence/constants.cjs +1 -0
- package/lib/persistence/constants.d.ts +1 -0
- package/lib/persistence/constants.js.map +1 -1
- package/lib/ram/RamAdapter.cjs +9 -9
- package/lib/ram/RamAdapter.js.map +1 -1
- package/lib/ram/types.d.ts +2 -2
- package/lib/services/PersistenceService.cjs +9 -1
- package/lib/services/PersistenceService.js.map +1 -1
- package/lib/tasks/TaskContext.cjs +19 -4
- package/lib/tasks/TaskContext.d.ts +9 -4
- package/lib/tasks/TaskContext.js.map +1 -1
- package/lib/tasks/TaskEngine.cjs +187 -110
- package/lib/tasks/TaskEngine.d.ts +8 -22
- package/lib/tasks/TaskEngine.js.map +1 -1
- package/lib/tasks/TaskEventBus.cjs +15 -7
- package/lib/tasks/TaskEventBus.d.ts +8 -3
- package/lib/tasks/TaskEventBus.js.map +1 -1
- package/lib/tasks/TaskHandler.cjs +9 -2
- package/lib/tasks/TaskHandler.js.map +1 -1
- package/lib/tasks/TaskService.cjs +179 -0
- package/lib/tasks/TaskService.d.ts +33 -3
- package/lib/tasks/TaskService.js.map +1 -1
- package/lib/tasks/builder.cjs +186 -0
- package/lib/tasks/builder.d.ts +42 -0
- package/lib/tasks/builder.js.map +1 -0
- package/lib/tasks/logging.cjs +77 -0
- package/lib/tasks/logging.d.ts +30 -0
- package/lib/tasks/logging.js.map +1 -0
- package/lib/tasks/models/TaskBackoffModel.cjs +6 -2
- package/lib/tasks/models/TaskBackoffModel.js.map +1 -1
- package/lib/tasks/models/TaskModel.cjs +10 -3
- package/lib/tasks/models/TaskModel.d.ts +2 -2
- package/lib/tasks/models/TaskModel.js.map +1 -1
- package/lib/tasks/models/TaskStepSpecModel.cjs +3 -1
- package/lib/tasks/models/TaskStepSpecModel.d.ts +1 -1
- package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
- package/lib/tasks/types.d.ts +8 -4
- package/package.json +1 -1
|
@@ -1,11 +1,41 @@
|
|
|
1
|
-
import { MaybeContextualArg } from "../utils/ContextualLoggedClass";
|
|
1
|
+
import { type ContextualArgs, type ContextualizedArgs, type MaybeContextualArg, type MethodOrOperation } from "../utils/ContextualLoggedClass";
|
|
2
2
|
import { ClientBasedService } from "../services/services";
|
|
3
|
-
import { TaskEngine, TaskEngineConfig } from "./TaskEngine";
|
|
4
|
-
import { Adapter, ContextOf } from "../persistence/index";
|
|
3
|
+
import { TaskEngine, type TaskEngineConfig } from "./TaskEngine";
|
|
4
|
+
import { Adapter, type AllOperationKeys, type ContextOf, type EventIds, type ObserverFilter } from "../persistence/index";
|
|
5
|
+
import { type PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
6
|
+
import { OrderDirection, type Repo } from "../repository/index";
|
|
7
|
+
import { TaskModel } from "./models/TaskModel";
|
|
8
|
+
import { type DirectionLimitOffset } from "../query/index";
|
|
9
|
+
import type { Constructor } from "@decaf-ts/decoration";
|
|
10
|
+
import type { Observer } from "../interfaces/index";
|
|
11
|
+
import { ArrayMode } from "../services/index";
|
|
5
12
|
export declare class TaskService<A extends Adapter<any, any, any, any>> extends ClientBasedService<TaskEngine<A>, TaskEngineConfig<A>> {
|
|
13
|
+
protected repo: Repo<TaskModel>;
|
|
6
14
|
constructor();
|
|
7
15
|
initialize(...args: MaybeContextualArg<ContextOf<A>>): Promise<{
|
|
8
16
|
config: TaskEngineConfig<A>;
|
|
9
17
|
client: TaskEngine<A>;
|
|
10
18
|
}>;
|
|
19
|
+
create(model: TaskModel, ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel>;
|
|
20
|
+
createAll(models: TaskModel[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel[]>;
|
|
21
|
+
delete(key: PrimaryKeyType, ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel>;
|
|
22
|
+
deleteAll(keys: PrimaryKeyType[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel[]>;
|
|
23
|
+
read(key: PrimaryKeyType, ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel>;
|
|
24
|
+
readAll(keys: PrimaryKeyType[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel[]>;
|
|
25
|
+
query<M, R extends ArrayMode = "one">(methodName: string, ...args: MaybeContextualArg<ContextOf<A>>): Promise<R extends "one" ? M : M[]>;
|
|
26
|
+
update(model: TaskModel, ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel>;
|
|
27
|
+
updateAll(models: TaskModel[], ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel[]>;
|
|
28
|
+
listBy(key: keyof TaskModel, order: OrderDirection, ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel[]>;
|
|
29
|
+
paginateBy(key: keyof TaskModel, order: OrderDirection, ref: Omit<DirectionLimitOffset, "direction">, ...args: MaybeContextualArg<ContextOf<A>>): Promise<import("../query/Paginator").SerializedPage<TaskModel>>;
|
|
30
|
+
findOneBy(key: keyof TaskModel, value: any, ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel>;
|
|
31
|
+
findBy(key: keyof TaskModel, value: any, ...args: MaybeContextualArg<ContextOf<A>>): Promise<TaskModel[]>;
|
|
32
|
+
statement(name: string, ...args: MaybeContextualArg<ContextOf<A>>): Promise<any>;
|
|
33
|
+
refresh(table: Constructor<any>, event: AllOperationKeys, id: EventIds, ...args: ContextualArgs<ContextOf<A>>): Promise<void>;
|
|
34
|
+
observe(observer: Observer, filter?: ObserverFilter): void;
|
|
35
|
+
unObserve(observer: Observer): void;
|
|
36
|
+
updateObservers(model: Constructor, operation: AllOperationKeys, ids: EventIds, ...args: ContextualArgs<ContextOf<A>>): Promise<void>;
|
|
37
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<ContextOf<A>, ARGS>, operation: METHOD): ContextualizedArgs<ContextOf<A>, ARGS, METHOD extends string ? true : false>;
|
|
38
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<ContextOf<A>, ARGS>, operation: METHOD, allowCreate: false): ContextualizedArgs<ContextOf<A>, ARGS, METHOD extends string ? true : false>;
|
|
39
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<ContextOf<A>, ARGS>, operation: METHOD, allowCreate: true): Promise<ContextualizedArgs<ContextOf<A>, ARGS, METHOD extends string ? true : false>>;
|
|
40
|
+
shutdown(...args: MaybeContextualArg<any>): Promise<void>;
|
|
11
41
|
}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
1
10
|
import { ClientBasedService } from "./../services/services.js";
|
|
2
11
|
import { TaskEngine } from "./TaskEngine.js";
|
|
3
|
-
import { Context, PersistenceKeys, } from "./../persistence/index.js";
|
|
4
|
-
import { InternalError } from "@decaf-ts/db-decorators";
|
|
12
|
+
import { Context, PersistenceKeys, UnsupportedError, } from "./../persistence/index.js";
|
|
13
|
+
import { BulkCrudOperationKeys, InternalError, OperationKeys, } from "@decaf-ts/db-decorators";
|
|
14
|
+
import { repository } from "./../repository/index.js";
|
|
15
|
+
import { TaskModel } from "./models/TaskModel.js";
|
|
16
|
+
import { create, del, read, update } from "./../utils/index.js";
|
|
17
|
+
import { PreparedStatementKeys, } from "./../query/index.js";
|
|
5
18
|
export class TaskService extends ClientBasedService {
|
|
6
19
|
constructor() {
|
|
7
20
|
super();
|
|
@@ -21,5 +34,171 @@ export class TaskService extends ClientBasedService {
|
|
|
21
34
|
config: cfg,
|
|
22
35
|
};
|
|
23
36
|
}
|
|
37
|
+
async create(model, ...args) {
|
|
38
|
+
const { ctxArgs } = (await this.logCtx(args, OperationKeys.CREATE, true)).for(this.create);
|
|
39
|
+
return this.repo.create(model, ...ctxArgs);
|
|
40
|
+
if (!this.client.isRunning())
|
|
41
|
+
this.client.start();
|
|
42
|
+
}
|
|
43
|
+
async createAll(models, ...args) {
|
|
44
|
+
const { ctxArgs } = (await this.logCtx(args, BulkCrudOperationKeys.CREATE_ALL, true)).for(this.createAll);
|
|
45
|
+
return this.repo.createAll(models, ...ctxArgs);
|
|
46
|
+
if (!this.client.isRunning())
|
|
47
|
+
this.client.start();
|
|
48
|
+
}
|
|
49
|
+
async delete(key, ...args) {
|
|
50
|
+
const { ctxArgs } = (await this.logCtx(args, OperationKeys.DELETE, true)).for(this.delete);
|
|
51
|
+
return this.repo.delete(key, ...ctxArgs);
|
|
52
|
+
}
|
|
53
|
+
async deleteAll(keys, ...args) {
|
|
54
|
+
const { ctxArgs } = (await this.logCtx(args, BulkCrudOperationKeys.DELETE_ALL, true)).for(this.deleteAll);
|
|
55
|
+
return this.repo.deleteAll(keys, ...ctxArgs);
|
|
56
|
+
}
|
|
57
|
+
async read(key, ...args) {
|
|
58
|
+
const { ctxArgs } = (await this.logCtx(args, OperationKeys.READ, true)).for(this.read);
|
|
59
|
+
return this.repo.read(key, ...ctxArgs);
|
|
60
|
+
}
|
|
61
|
+
async readAll(keys, ...args) {
|
|
62
|
+
const { ctxArgs } = (await this.logCtx(args, BulkCrudOperationKeys.READ_ALL, true)).for(this.readAll);
|
|
63
|
+
return this.repo.readAll(keys, ...ctxArgs);
|
|
64
|
+
}
|
|
65
|
+
async query(methodName, ...args) {
|
|
66
|
+
const { ctxArgs } = (await this.logCtx(args, PersistenceKeys.QUERY, true)).for(this.query);
|
|
67
|
+
const method = this.repo?.[methodName];
|
|
68
|
+
if (typeof method !== "function")
|
|
69
|
+
throw new InternalError(`Method "${methodName}" is not implemented`);
|
|
70
|
+
return method.apply(this.repo, ctxArgs);
|
|
71
|
+
}
|
|
72
|
+
async update(
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
74
|
+
model,
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
76
|
+
...args) {
|
|
77
|
+
throw new UnsupportedError("Updates to tasks are not available");
|
|
78
|
+
}
|
|
79
|
+
async updateAll(
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
81
|
+
models,
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
83
|
+
...args) {
|
|
84
|
+
throw new UnsupportedError("Updates to tasks are not available");
|
|
85
|
+
}
|
|
86
|
+
//
|
|
87
|
+
// async query(
|
|
88
|
+
// condition: Condition<M>,
|
|
89
|
+
// orderBy: keyof M,
|
|
90
|
+
// order: OrderDirection = OrderDirection.ASC,
|
|
91
|
+
// limit?: number,
|
|
92
|
+
// skip?: number,
|
|
93
|
+
// ...args: MaybeContextualArg<ContextOf<R>>
|
|
94
|
+
// ): Promise<M[]> {
|
|
95
|
+
// const { ctxArgs } = await this.logCtx(args, this.query, true);
|
|
96
|
+
// return this.repo.query(condition, orderBy, order, limit, skip, ...ctxArgs);
|
|
97
|
+
// }
|
|
98
|
+
async listBy(key, order, ...args) {
|
|
99
|
+
const { ctxArgs } = (await this.logCtx(args, PreparedStatementKeys.LIST_BY, true)).for(this.listBy);
|
|
100
|
+
return this.repo.listBy(key, order, ...ctxArgs);
|
|
101
|
+
}
|
|
102
|
+
async paginateBy(key, order, ref, ...args) {
|
|
103
|
+
const { ctxArgs } = (await this.logCtx(args, PreparedStatementKeys.PAGE_BY, true)).for(this.paginateBy);
|
|
104
|
+
return this.repo.paginateBy(key, order, ref, ...ctxArgs);
|
|
105
|
+
}
|
|
106
|
+
async findOneBy(key, value, ...args) {
|
|
107
|
+
const { ctxArgs } = (await this.logCtx(args, PreparedStatementKeys.FIND_ONE_BY, true)).for(this.findOneBy);
|
|
108
|
+
return this.repo.findOneBy(key, value, ...ctxArgs);
|
|
109
|
+
}
|
|
110
|
+
async findBy(key, value, ...args) {
|
|
111
|
+
const { ctxArgs } = (await this.logCtx(args, PreparedStatementKeys.FIND_BY, true)).for(this.findBy);
|
|
112
|
+
return this.repo.findBy(key, value, ...ctxArgs);
|
|
113
|
+
}
|
|
114
|
+
async statement(name, ...args) {
|
|
115
|
+
const { ctxArgs } = (await this.logCtx(args, PersistenceKeys.STATEMENT, true)).for(this.statement);
|
|
116
|
+
return this.repo.statement(name, ...ctxArgs);
|
|
117
|
+
}
|
|
118
|
+
refresh(table, event, id, ...args) {
|
|
119
|
+
return this.repo.refresh(table, event, id, ...args);
|
|
120
|
+
}
|
|
121
|
+
observe(observer, filter) {
|
|
122
|
+
return this.repo.observe(observer, filter);
|
|
123
|
+
}
|
|
124
|
+
unObserve(observer) {
|
|
125
|
+
return this.repo.unObserve(observer);
|
|
126
|
+
}
|
|
127
|
+
updateObservers(model, operation, ids, ...args) {
|
|
128
|
+
return this.repo.updateObservers(model, operation, ids, ...args);
|
|
129
|
+
}
|
|
130
|
+
logCtx(args, operation, allowCreate = false) {
|
|
131
|
+
const ctx = this.repo["adapter"]["logCtx"]([this.repo.class, ...args], operation, allowCreate, this.repo["_overrides"] || {});
|
|
132
|
+
function squashArgs(ctx) {
|
|
133
|
+
ctx.ctxArgs.shift(); // removes added model to args
|
|
134
|
+
return ctx;
|
|
135
|
+
}
|
|
136
|
+
if (!(ctx instanceof Promise))
|
|
137
|
+
return squashArgs(ctx);
|
|
138
|
+
return ctx.then(squashArgs);
|
|
139
|
+
}
|
|
140
|
+
async shutdown(...args) {
|
|
141
|
+
const { ctxArgs } = await this.logCtx(args, "shutdown", true);
|
|
142
|
+
await super.shutdown(...ctxArgs);
|
|
143
|
+
this.client.stop();
|
|
144
|
+
}
|
|
24
145
|
}
|
|
146
|
+
__decorate([
|
|
147
|
+
repository(TaskModel),
|
|
148
|
+
__metadata("design:type", Object)
|
|
149
|
+
], TaskService.prototype, "repo", void 0);
|
|
150
|
+
__decorate([
|
|
151
|
+
create(),
|
|
152
|
+
__metadata("design:type", Function),
|
|
153
|
+
__metadata("design:paramtypes", [TaskModel, void 0]),
|
|
154
|
+
__metadata("design:returntype", Promise)
|
|
155
|
+
], TaskService.prototype, "create", null);
|
|
156
|
+
__decorate([
|
|
157
|
+
create(),
|
|
158
|
+
__metadata("design:type", Function),
|
|
159
|
+
__metadata("design:paramtypes", [Array, void 0]),
|
|
160
|
+
__metadata("design:returntype", Promise)
|
|
161
|
+
], TaskService.prototype, "createAll", null);
|
|
162
|
+
__decorate([
|
|
163
|
+
del(),
|
|
164
|
+
__metadata("design:type", Function),
|
|
165
|
+
__metadata("design:paramtypes", [Object, void 0]),
|
|
166
|
+
__metadata("design:returntype", Promise)
|
|
167
|
+
], TaskService.prototype, "delete", null);
|
|
168
|
+
__decorate([
|
|
169
|
+
del(),
|
|
170
|
+
__metadata("design:type", Function),
|
|
171
|
+
__metadata("design:paramtypes", [Array, void 0]),
|
|
172
|
+
__metadata("design:returntype", Promise)
|
|
173
|
+
], TaskService.prototype, "deleteAll", null);
|
|
174
|
+
__decorate([
|
|
175
|
+
read(),
|
|
176
|
+
__metadata("design:type", Function),
|
|
177
|
+
__metadata("design:paramtypes", [Object, void 0]),
|
|
178
|
+
__metadata("design:returntype", Promise)
|
|
179
|
+
], TaskService.prototype, "read", null);
|
|
180
|
+
__decorate([
|
|
181
|
+
read(),
|
|
182
|
+
__metadata("design:type", Function),
|
|
183
|
+
__metadata("design:paramtypes", [Array, void 0]),
|
|
184
|
+
__metadata("design:returntype", Promise)
|
|
185
|
+
], TaskService.prototype, "readAll", null);
|
|
186
|
+
__decorate([
|
|
187
|
+
read(),
|
|
188
|
+
__metadata("design:type", Function),
|
|
189
|
+
__metadata("design:paramtypes", [String, void 0]),
|
|
190
|
+
__metadata("design:returntype", Promise)
|
|
191
|
+
], TaskService.prototype, "query", null);
|
|
192
|
+
__decorate([
|
|
193
|
+
update(),
|
|
194
|
+
__metadata("design:type", Function),
|
|
195
|
+
__metadata("design:paramtypes", [TaskModel, void 0]),
|
|
196
|
+
__metadata("design:returntype", Promise)
|
|
197
|
+
], TaskService.prototype, "update", null);
|
|
198
|
+
__decorate([
|
|
199
|
+
update(),
|
|
200
|
+
__metadata("design:type", Function),
|
|
201
|
+
__metadata("design:paramtypes", [Array, void 0]),
|
|
202
|
+
__metadata("design:returntype", Promise)
|
|
203
|
+
], TaskService.prototype, "updateAll", null);
|
|
25
204
|
//# sourceMappingURL=TaskService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskService.js","sourceRoot":"","sources":["../../../src/tasks/TaskService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TaskService.js","sourceRoot":"","sources":["../../../src/tasks/TaskService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TaskModel } from "./models/TaskModel";
|
|
2
|
+
import { BackoffStrategy, JitterStrategy, TaskStatus, TaskType } from "./constants";
|
|
3
|
+
import { TaskBackoffModel } from "./models/index";
|
|
4
|
+
import { TaskStepSpecModel } from "./models/TaskStepSpecModel";
|
|
5
|
+
import { Model, ModelArg } from "@decaf-ts/decorator-validation";
|
|
6
|
+
export declare class TaskBackoffBuilder<NESTED extends boolean = false> extends Model {
|
|
7
|
+
baseMs: number;
|
|
8
|
+
jitter: JitterStrategy;
|
|
9
|
+
maxMs: number;
|
|
10
|
+
strategy: BackoffStrategy;
|
|
11
|
+
constructor(arg?: ModelArg<TaskBackoffBuilder>);
|
|
12
|
+
setBaseMs(value: number): this;
|
|
13
|
+
setJitter(value: JitterStrategy): this;
|
|
14
|
+
setMaxMs(value: number): this;
|
|
15
|
+
setStrategy(value: BackoffStrategy): this;
|
|
16
|
+
build(): NESTED extends false ? TaskBackoffModel : TaskBuilder;
|
|
17
|
+
}
|
|
18
|
+
export declare class TaskBuilder extends Model {
|
|
19
|
+
protected classification: string;
|
|
20
|
+
protected status: TaskStatus;
|
|
21
|
+
protected atomicity: TaskType;
|
|
22
|
+
protected backoff: TaskBackoffModel;
|
|
23
|
+
protected input?: any;
|
|
24
|
+
protected attempt: number;
|
|
25
|
+
protected maxAttempts: number;
|
|
26
|
+
setClassification(value: string): this;
|
|
27
|
+
setStatus(value: TaskStatus): this;
|
|
28
|
+
setAtomicity(value: TaskType): this;
|
|
29
|
+
setBackoff<V extends TaskBackoffModel>(value?: TaskBackoffModel): V extends TaskBackoffModel ? this : TaskBackoffBuilder<true>;
|
|
30
|
+
setInput(value: any): this;
|
|
31
|
+
setMaxAttempts(value: number): this;
|
|
32
|
+
setAttempt(value: number): this;
|
|
33
|
+
constructor(arg?: ModelArg<TaskBuilder>);
|
|
34
|
+
build(): TaskModel;
|
|
35
|
+
}
|
|
36
|
+
export declare class CompositeTaskBuilder extends TaskBuilder {
|
|
37
|
+
protected steps?: TaskStepSpecModel[];
|
|
38
|
+
protected stepResults?: TaskStepSpecModel[];
|
|
39
|
+
constructor(arg?: ModelArg<CompositeTaskBuilder>);
|
|
40
|
+
setSteps(value: TaskStepSpecModel[]): this;
|
|
41
|
+
addStep(classification: string, input?: any): this;
|
|
42
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { TaskModel } from "./models/TaskModel.js";
|
|
11
|
+
import { BackoffStrategy, JitterStrategy, TaskStatus, TaskType, } from "./constants.js";
|
|
12
|
+
import { TaskBackoffModel } from "./models/index.js";
|
|
13
|
+
import { TaskStepSpecModel } from "./models/TaskStepSpecModel.js";
|
|
14
|
+
import { gt, list, min, Model, option, required, } from "@decaf-ts/decorator-validation";
|
|
15
|
+
import { ValidationError } from "@decaf-ts/db-decorators";
|
|
16
|
+
import { prop } from "@decaf-ts/decoration";
|
|
17
|
+
export class TaskBackoffBuilder extends Model {
|
|
18
|
+
constructor(arg) {
|
|
19
|
+
super(arg);
|
|
20
|
+
this.baseMs = 1000;
|
|
21
|
+
this.jitter = JitterStrategy.FULL;
|
|
22
|
+
this.maxMs = 60_000;
|
|
23
|
+
this.strategy = BackoffStrategy.EXPONENTIAL;
|
|
24
|
+
Model.fromModel(this, arg);
|
|
25
|
+
}
|
|
26
|
+
setBaseMs(value) {
|
|
27
|
+
this.baseMs = value;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
setJitter(value) {
|
|
31
|
+
this.jitter = value;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
setMaxMs(value) {
|
|
35
|
+
this.maxMs = value;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
setStrategy(value) {
|
|
39
|
+
this.strategy = value;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
build() {
|
|
43
|
+
const errs = this.hasErrors();
|
|
44
|
+
if (errs)
|
|
45
|
+
throw new ValidationError(errs);
|
|
46
|
+
return new TaskBackoffModel(this);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
__decorate([
|
|
50
|
+
required(),
|
|
51
|
+
min(1000),
|
|
52
|
+
__metadata("design:type", Number)
|
|
53
|
+
], TaskBackoffBuilder.prototype, "baseMs", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
required(),
|
|
56
|
+
option(JitterStrategy),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], TaskBackoffBuilder.prototype, "jitter", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
gt("baseMs"),
|
|
61
|
+
min(1000),
|
|
62
|
+
required(),
|
|
63
|
+
__metadata("design:type", Number)
|
|
64
|
+
], TaskBackoffBuilder.prototype, "maxMs", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
required(),
|
|
67
|
+
option(BackoffStrategy),
|
|
68
|
+
__metadata("design:type", String)
|
|
69
|
+
], TaskBackoffBuilder.prototype, "strategy", void 0);
|
|
70
|
+
export class TaskBuilder extends Model {
|
|
71
|
+
setClassification(value) {
|
|
72
|
+
this.classification = value;
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
setStatus(value) {
|
|
76
|
+
this.status = value;
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
setAtomicity(value) {
|
|
80
|
+
this.atomicity = value;
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
setBackoff(value) {
|
|
84
|
+
if (value) {
|
|
85
|
+
this.backoff = value;
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
const backOff = new TaskBackoffBuilder();
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
90
|
+
const self = this;
|
|
91
|
+
backOff.build = new Proxy(backOff.build, {
|
|
92
|
+
apply(target, thisArg, args) {
|
|
93
|
+
self.backoff = Reflect.apply(target, thisArg, args);
|
|
94
|
+
return self;
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
return backOff;
|
|
98
|
+
}
|
|
99
|
+
setInput(value) {
|
|
100
|
+
this.input = value;
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
setMaxAttempts(value) {
|
|
104
|
+
this.maxAttempts = value;
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
setAttempt(value) {
|
|
108
|
+
this.attempt = value;
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
constructor(arg) {
|
|
112
|
+
super(arg);
|
|
113
|
+
this.status = TaskStatus.PENDING;
|
|
114
|
+
this.atomicity = TaskType.ATOMIC;
|
|
115
|
+
this.backoff = new TaskBackoffModel();
|
|
116
|
+
this.attempt = 0;
|
|
117
|
+
this.maxAttempts = 1;
|
|
118
|
+
Model.fromModel(this, arg);
|
|
119
|
+
}
|
|
120
|
+
build() {
|
|
121
|
+
const errs = this.hasErrors();
|
|
122
|
+
if (errs)
|
|
123
|
+
throw new ValidationError(errs);
|
|
124
|
+
return new TaskModel(this);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
__decorate([
|
|
128
|
+
required(),
|
|
129
|
+
__metadata("design:type", String)
|
|
130
|
+
], TaskBuilder.prototype, "classification", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
required(),
|
|
133
|
+
__metadata("design:type", String)
|
|
134
|
+
], TaskBuilder.prototype, "status", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
required(),
|
|
137
|
+
__metadata("design:type", String)
|
|
138
|
+
], TaskBuilder.prototype, "atomicity", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
required(),
|
|
141
|
+
__metadata("design:type", TaskBackoffModel)
|
|
142
|
+
], TaskBuilder.prototype, "backoff", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
prop(),
|
|
145
|
+
__metadata("design:type", Object)
|
|
146
|
+
], TaskBuilder.prototype, "input", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
min(0),
|
|
149
|
+
required(),
|
|
150
|
+
__metadata("design:type", Number)
|
|
151
|
+
], TaskBuilder.prototype, "attempt", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
min(1),
|
|
154
|
+
required(),
|
|
155
|
+
__metadata("design:type", Number)
|
|
156
|
+
], TaskBuilder.prototype, "maxAttempts", void 0);
|
|
157
|
+
export class CompositeTaskBuilder extends TaskBuilder {
|
|
158
|
+
constructor(arg) {
|
|
159
|
+
super(arg);
|
|
160
|
+
this.stepResults = [];
|
|
161
|
+
Model.fromModel(this, arg);
|
|
162
|
+
}
|
|
163
|
+
setSteps(value) {
|
|
164
|
+
this.steps = value;
|
|
165
|
+
return this;
|
|
166
|
+
}
|
|
167
|
+
addStep(classification, input) {
|
|
168
|
+
this.steps = this.steps || [];
|
|
169
|
+
this.steps.push(new TaskStepSpecModel({
|
|
170
|
+
classification,
|
|
171
|
+
input,
|
|
172
|
+
}));
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
__decorate([
|
|
177
|
+
list(() => TaskStepSpecModel),
|
|
178
|
+
__metadata("design:type", Array)
|
|
179
|
+
], CompositeTaskBuilder.prototype, "steps", void 0);
|
|
180
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/tasks/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AnyFunction, Logger, LoggingConfig, LogLevel, LogMeta, StringLike } from "@decaf-ts/logging";
|
|
2
|
+
import { LogPipe } from "./types";
|
|
3
|
+
export declare class TaskLogger<LOG extends Logger> implements Logger {
|
|
4
|
+
protected logger: Logger;
|
|
5
|
+
protected bufferSize: number;
|
|
6
|
+
protected maxBufferSize: number;
|
|
7
|
+
protected pipe?: LogPipe | undefined;
|
|
8
|
+
protected history: [LogLevel, string, any][];
|
|
9
|
+
constructor(logger: Logger, bufferSize?: number, maxBufferSize?: number, pipe?: LogPipe | undefined);
|
|
10
|
+
push(level: LogLevel, string: string, meta?: any): void;
|
|
11
|
+
flush<PIPE extends LogPipe>(pipe?: PIPE): PIPE extends LogPipe ? Promise<[LogLevel, string, any][]> : [LogLevel, string, any][];
|
|
12
|
+
readonly root: string[];
|
|
13
|
+
benchmark(msg: StringLike): void;
|
|
14
|
+
clear(): this;
|
|
15
|
+
debug(msg: StringLike, meta?: LogMeta): void;
|
|
16
|
+
error(msg: StringLike | Error, e?: Error | LogMeta, meta?: LogMeta): void;
|
|
17
|
+
for(config: Partial<LoggingConfig>): this;
|
|
18
|
+
for(context: string | {
|
|
19
|
+
new (...args: any[]): any;
|
|
20
|
+
} | AnyFunction | object): this;
|
|
21
|
+
for(method: string | {
|
|
22
|
+
new (...args: any[]): any;
|
|
23
|
+
} | AnyFunction | object | Partial<LoggingConfig>, config?: Partial<LoggingConfig>, ...args: any[]): this;
|
|
24
|
+
info(msg: StringLike, meta?: LogMeta): void;
|
|
25
|
+
setConfig(config: Partial<LoggingConfig>): void;
|
|
26
|
+
silly(msg: StringLike, meta?: LogMeta): void;
|
|
27
|
+
trace(msg: StringLike, meta?: LogMeta): void;
|
|
28
|
+
verbose(msg: StringLike, verbosity?: number | LogMeta, meta?: LogMeta): void;
|
|
29
|
+
warn(msg: StringLike, meta?: LogMeta): void;
|
|
30
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { LogLevel, } from "@decaf-ts/logging";
|
|
2
|
+
export class TaskLogger {
|
|
3
|
+
constructor(logger, bufferSize = 150, maxBufferSize = 300, pipe) {
|
|
4
|
+
this.logger = logger;
|
|
5
|
+
this.bufferSize = bufferSize;
|
|
6
|
+
this.maxBufferSize = maxBufferSize;
|
|
7
|
+
this.pipe = pipe;
|
|
8
|
+
this.history = [];
|
|
9
|
+
this.root = this.logger.root;
|
|
10
|
+
Object.values(LogLevel).forEach((level) => {
|
|
11
|
+
this[level] = new Proxy(this[level], {
|
|
12
|
+
apply: (target, thisArg, argArray) => {
|
|
13
|
+
target.apply(thisArg, argArray);
|
|
14
|
+
thisArg.push(...argArray);
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
push(level, string, meta) {
|
|
20
|
+
if (this.history.length >= this.maxBufferSize)
|
|
21
|
+
this.history.splice(0, this.history.length - this.bufferSize);
|
|
22
|
+
this.history.push([level, string, meta]);
|
|
23
|
+
}
|
|
24
|
+
flush(pipe) {
|
|
25
|
+
const result = this.history;
|
|
26
|
+
this.history = [];
|
|
27
|
+
if (pipe)
|
|
28
|
+
return pipe(result).catch((e) => this.logger.error(`Failed to pipe logs`, e));
|
|
29
|
+
this.history = [];
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
benchmark(msg) {
|
|
33
|
+
return this.logger.benchmark(msg);
|
|
34
|
+
}
|
|
35
|
+
clear() {
|
|
36
|
+
this.logger = this.logger.clear();
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
debug(msg, meta) {
|
|
40
|
+
this.logger.debug(msg, meta);
|
|
41
|
+
}
|
|
42
|
+
error(msg, e, meta) {
|
|
43
|
+
this.logger.error(msg, e, meta);
|
|
44
|
+
}
|
|
45
|
+
for(config, ...args) {
|
|
46
|
+
return new Proxy(this, {
|
|
47
|
+
get(target, p) {
|
|
48
|
+
if (p === "logger")
|
|
49
|
+
return Reflect.get(target, p).for(config, ...args);
|
|
50
|
+
return Reflect.get(target, p);
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
info(msg, meta) {
|
|
55
|
+
this.logger.info(msg, meta);
|
|
56
|
+
}
|
|
57
|
+
setConfig(config) {
|
|
58
|
+
this.logger.setConfig(config);
|
|
59
|
+
}
|
|
60
|
+
silly(msg, meta) {
|
|
61
|
+
this.logger.silly(msg, meta);
|
|
62
|
+
}
|
|
63
|
+
trace(msg, meta) {
|
|
64
|
+
this.logger.trace(msg, meta);
|
|
65
|
+
}
|
|
66
|
+
verbose(msg, verbosity, meta) {
|
|
67
|
+
this.logger.verbose(msg, verbosity, meta);
|
|
68
|
+
}
|
|
69
|
+
warn(msg, meta) {
|
|
70
|
+
this.logger.warn(msg, meta);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/tasks/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { model, option, required, type, } from "@decaf-ts/decorator-validation";
|
|
11
11
|
import { BackoffStrategy, JitterStrategy } from "./../constants.js";
|
|
12
12
|
import { description } from "@decaf-ts/decoration";
|
|
13
13
|
import { TaskBaseModel } from "./TaskBaseModel.js";
|
|
14
14
|
let TaskBackoffModel = class TaskBackoffModel extends TaskBaseModel {
|
|
15
15
|
constructor(arg) {
|
|
16
16
|
super(arg);
|
|
17
|
+
this.strategy = BackoffStrategy.EXPONENTIAL;
|
|
18
|
+
this.baseMs = 1000;
|
|
19
|
+
this.maxMs = 60_000;
|
|
20
|
+
this.jitter = JitterStrategy.FULL;
|
|
17
21
|
}
|
|
18
22
|
};
|
|
19
23
|
__decorate([
|
|
@@ -25,12 +29,12 @@ __decorate([
|
|
|
25
29
|
], TaskBackoffModel.prototype, "strategy", void 0);
|
|
26
30
|
__decorate([
|
|
27
31
|
required(),
|
|
28
|
-
description("
|
|
32
|
+
description("base interval between attempts"),
|
|
29
33
|
__metadata("design:type", Number)
|
|
30
34
|
], TaskBackoffModel.prototype, "baseMs", void 0);
|
|
31
35
|
__decorate([
|
|
32
36
|
required(),
|
|
33
|
-
description("
|
|
37
|
+
description("max interval"),
|
|
34
38
|
__metadata("design:type", Number)
|
|
35
39
|
], TaskBackoffModel.prototype, "maxMs", void 0);
|
|
36
40
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskBackoffModel.js","sourceRoot":"","sources":["../../../../src/tasks/models/TaskBackoffModel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"TaskBackoffModel.js","sourceRoot":"","sources":["../../../../src/tasks/models/TaskBackoffModel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,KAAK,EAEL,MAAM,EACN,QAAQ,EACR,IAAI,GACL,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,0BAAqB;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,2BAAwB;AAGzC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,aAAa;IAoBjD,YAAY,GAAgC;QAC1C,KAAK,CAAC,GAAG,CAAC,CAAC;QAhBb,aAAQ,GAAoB,eAAe,CAAC,WAAW,CAAC;QAIxD,WAAM,GAAW,IAAI,CAAC;QAItB,UAAK,GAAW,MAAM,CAAC;QAKvB,WAAM,GAAoB,cAAc,CAAC,IAAI,CAAC;IAI9C,CAAC;CACF,CAAA;AAlBC;IAJC,QAAQ,EAAE;IACV,IAAI,CAAC,MAAM,CAAC;IACZ,MAAM,CAAC,eAAe,CAAC;IACvB,WAAW,CAAC,sBAAsB,CAAC;;kDACoB;AAIxD;IAFC,QAAQ,EAAE;IACV,WAAW,CAAC,gCAAgC,CAAC;;gDACxB;AAItB;IAFC,QAAQ,EAAE;IACV,WAAW,CAAC,cAAc,CAAC;;+CACL;AAKvB;IAHC,IAAI,CAAC,MAAM,CAAC;IACZ,MAAM,CAAC,cAAc,CAAC;IACtB,WAAW,CAAC,0BAA0B,CAAC;;gDACM;AAlBnC,gBAAgB;IAD5B,KAAK,EAAE;;GACK,gBAAgB,CAuB5B"}
|
|
@@ -8,8 +8,8 @@ import { TaskStepResultModel } from "./TaskStepResultModel";
|
|
|
8
8
|
import { TaskLogEntryModel } from "./TaskLogEntryModel";
|
|
9
9
|
export declare class TaskModel extends TaskBaseModel {
|
|
10
10
|
id: string;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
atomicity: TaskType;
|
|
12
|
+
classification: string;
|
|
13
13
|
status: TaskStatus;
|
|
14
14
|
input?: any;
|
|
15
15
|
output?: any;
|