@decaf-ts/core 0.7.63 → 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 (112) 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/persistence/types.d.ts +1 -1
  25. package/lib/esm/ram/RamAdapter.js +9 -9
  26. package/lib/esm/ram/RamAdapter.js.map +1 -1
  27. package/lib/esm/ram/types.d.ts +2 -2
  28. package/lib/esm/services/PersistenceService.js +9 -1
  29. package/lib/esm/services/PersistenceService.js.map +1 -1
  30. package/lib/esm/tasks/TaskContext.d.ts +9 -4
  31. package/lib/esm/tasks/TaskContext.js +18 -3
  32. package/lib/esm/tasks/TaskContext.js.map +1 -1
  33. package/lib/esm/tasks/TaskEngine.d.ts +8 -22
  34. package/lib/esm/tasks/TaskEngine.js +189 -112
  35. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  36. package/lib/esm/tasks/TaskEventBus.d.ts +8 -3
  37. package/lib/esm/tasks/TaskEventBus.js +15 -7
  38. package/lib/esm/tasks/TaskEventBus.js.map +1 -1
  39. package/lib/esm/tasks/TaskHandler.js +9 -2
  40. package/lib/esm/tasks/TaskHandler.js.map +1 -1
  41. package/lib/esm/tasks/TaskService.d.ts +33 -3
  42. package/lib/esm/tasks/TaskService.js +181 -2
  43. package/lib/esm/tasks/TaskService.js.map +1 -1
  44. package/lib/esm/tasks/builder.d.ts +42 -0
  45. package/lib/esm/tasks/builder.js +180 -0
  46. package/lib/esm/tasks/builder.js.map +1 -0
  47. package/lib/esm/tasks/logging.d.ts +30 -0
  48. package/lib/esm/tasks/logging.js +73 -0
  49. package/lib/esm/tasks/logging.js.map +1 -0
  50. package/lib/esm/tasks/models/TaskBackoffModel.js +7 -3
  51. package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -1
  52. package/lib/esm/tasks/models/TaskModel.d.ts +2 -2
  53. package/lib/esm/tasks/models/TaskModel.js +10 -3
  54. package/lib/esm/tasks/models/TaskModel.js.map +1 -1
  55. package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +1 -1
  56. package/lib/esm/tasks/models/TaskStepSpecModel.js +3 -1
  57. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
  58. package/lib/esm/tasks/types.d.ts +8 -4
  59. package/lib/index.cjs +1 -1
  60. package/lib/index.d.ts +1 -1
  61. package/lib/migrations/MigrationService.cjs +2 -4
  62. package/lib/migrations/MigrationService.js.map +1 -1
  63. package/lib/migrations/MigrationTasks.cjs +72 -0
  64. package/lib/migrations/MigrationTasks.d.ts +9 -0
  65. package/lib/migrations/MigrationTasks.js.map +1 -0
  66. package/lib/migrations/index.cjs +1 -0
  67. package/lib/migrations/index.d.ts +1 -0
  68. package/lib/migrations/index.js.map +1 -1
  69. package/lib/persistence/Context.cjs +8 -1
  70. package/lib/persistence/Context.d.ts +4 -0
  71. package/lib/persistence/Context.js.map +1 -1
  72. package/lib/persistence/ObserverHandler.d.ts +2 -1
  73. package/lib/persistence/ObserverHandler.js.map +1 -1
  74. package/lib/persistence/constants.cjs +1 -0
  75. package/lib/persistence/constants.d.ts +1 -0
  76. package/lib/persistence/constants.js.map +1 -1
  77. package/lib/persistence/types.d.ts +1 -1
  78. package/lib/ram/RamAdapter.cjs +8 -8
  79. package/lib/ram/RamAdapter.js.map +1 -1
  80. package/lib/ram/types.d.ts +2 -2
  81. package/lib/services/PersistenceService.cjs +9 -1
  82. package/lib/services/PersistenceService.js.map +1 -1
  83. package/lib/tasks/TaskContext.cjs +19 -4
  84. package/lib/tasks/TaskContext.d.ts +9 -4
  85. package/lib/tasks/TaskContext.js.map +1 -1
  86. package/lib/tasks/TaskEngine.cjs +187 -110
  87. package/lib/tasks/TaskEngine.d.ts +8 -22
  88. package/lib/tasks/TaskEngine.js.map +1 -1
  89. package/lib/tasks/TaskEventBus.cjs +15 -7
  90. package/lib/tasks/TaskEventBus.d.ts +8 -3
  91. package/lib/tasks/TaskEventBus.js.map +1 -1
  92. package/lib/tasks/TaskHandler.cjs +9 -2
  93. package/lib/tasks/TaskHandler.js.map +1 -1
  94. package/lib/tasks/TaskService.cjs +179 -0
  95. package/lib/tasks/TaskService.d.ts +33 -3
  96. package/lib/tasks/TaskService.js.map +1 -1
  97. package/lib/tasks/builder.cjs +186 -0
  98. package/lib/tasks/builder.d.ts +42 -0
  99. package/lib/tasks/builder.js.map +1 -0
  100. package/lib/tasks/logging.cjs +77 -0
  101. package/lib/tasks/logging.d.ts +30 -0
  102. package/lib/tasks/logging.js.map +1 -0
  103. package/lib/tasks/models/TaskBackoffModel.cjs +6 -2
  104. package/lib/tasks/models/TaskBackoffModel.js.map +1 -1
  105. package/lib/tasks/models/TaskModel.cjs +10 -3
  106. package/lib/tasks/models/TaskModel.d.ts +2 -2
  107. package/lib/tasks/models/TaskModel.js.map +1 -1
  108. package/lib/tasks/models/TaskStepSpecModel.cjs +3 -1
  109. package/lib/tasks/models/TaskStepSpecModel.d.ts +1 -1
  110. package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
  111. package/lib/tasks/types.d.ts +8 -4
  112. package/package.json +1 -1
@@ -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"}
@@ -1,10 +1,23 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.TaskService = void 0;
4
13
  const services_1 = require("./../services/services.cjs");
5
14
  const TaskEngine_1 = require("./TaskEngine.cjs");
6
15
  const index_1 = require("./../persistence/index.cjs");
7
16
  const db_decorators_1 = require("@decaf-ts/db-decorators");
17
+ const index_2 = require("./../repository/index.cjs");
18
+ const TaskModel_1 = require("./models/TaskModel.cjs");
19
+ const index_3 = require("./../utils/index.cjs");
20
+ const index_4 = require("./../query/index.cjs");
8
21
  class TaskService extends services_1.ClientBasedService {
9
22
  constructor() {
10
23
  super();
@@ -24,6 +37,172 @@ class TaskService extends services_1.ClientBasedService {
24
37
  config: cfg,
25
38
  };
26
39
  }
40
+ async create(model, ...args) {
41
+ const { ctxArgs } = (await this.logCtx(args, db_decorators_1.OperationKeys.CREATE, true)).for(this.create);
42
+ return this.repo.create(model, ...ctxArgs);
43
+ if (!this.client.isRunning())
44
+ this.client.start();
45
+ }
46
+ async createAll(models, ...args) {
47
+ const { ctxArgs } = (await this.logCtx(args, db_decorators_1.BulkCrudOperationKeys.CREATE_ALL, true)).for(this.createAll);
48
+ return this.repo.createAll(models, ...ctxArgs);
49
+ if (!this.client.isRunning())
50
+ this.client.start();
51
+ }
52
+ async delete(key, ...args) {
53
+ const { ctxArgs } = (await this.logCtx(args, db_decorators_1.OperationKeys.DELETE, true)).for(this.delete);
54
+ return this.repo.delete(key, ...ctxArgs);
55
+ }
56
+ async deleteAll(keys, ...args) {
57
+ const { ctxArgs } = (await this.logCtx(args, db_decorators_1.BulkCrudOperationKeys.DELETE_ALL, true)).for(this.deleteAll);
58
+ return this.repo.deleteAll(keys, ...ctxArgs);
59
+ }
60
+ async read(key, ...args) {
61
+ const { ctxArgs } = (await this.logCtx(args, db_decorators_1.OperationKeys.READ, true)).for(this.read);
62
+ return this.repo.read(key, ...ctxArgs);
63
+ }
64
+ async readAll(keys, ...args) {
65
+ const { ctxArgs } = (await this.logCtx(args, db_decorators_1.BulkCrudOperationKeys.READ_ALL, true)).for(this.readAll);
66
+ return this.repo.readAll(keys, ...ctxArgs);
67
+ }
68
+ async query(methodName, ...args) {
69
+ const { ctxArgs } = (await this.logCtx(args, index_1.PersistenceKeys.QUERY, true)).for(this.query);
70
+ const method = this.repo?.[methodName];
71
+ if (typeof method !== "function")
72
+ throw new db_decorators_1.InternalError(`Method "${methodName}" is not implemented`);
73
+ return method.apply(this.repo, ctxArgs);
74
+ }
75
+ async update(
76
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
77
+ model,
78
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
79
+ ...args) {
80
+ throw new index_1.UnsupportedError("Updates to tasks are not available");
81
+ }
82
+ async updateAll(
83
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
84
+ models,
85
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
86
+ ...args) {
87
+ throw new index_1.UnsupportedError("Updates to tasks are not available");
88
+ }
89
+ //
90
+ // async query(
91
+ // condition: Condition<M>,
92
+ // orderBy: keyof M,
93
+ // order: OrderDirection = OrderDirection.ASC,
94
+ // limit?: number,
95
+ // skip?: number,
96
+ // ...args: MaybeContextualArg<ContextOf<R>>
97
+ // ): Promise<M[]> {
98
+ // const { ctxArgs } = await this.logCtx(args, this.query, true);
99
+ // return this.repo.query(condition, orderBy, order, limit, skip, ...ctxArgs);
100
+ // }
101
+ async listBy(key, order, ...args) {
102
+ const { ctxArgs } = (await this.logCtx(args, index_4.PreparedStatementKeys.LIST_BY, true)).for(this.listBy);
103
+ return this.repo.listBy(key, order, ...ctxArgs);
104
+ }
105
+ async paginateBy(key, order, ref, ...args) {
106
+ const { ctxArgs } = (await this.logCtx(args, index_4.PreparedStatementKeys.PAGE_BY, true)).for(this.paginateBy);
107
+ return this.repo.paginateBy(key, order, ref, ...ctxArgs);
108
+ }
109
+ async findOneBy(key, value, ...args) {
110
+ const { ctxArgs } = (await this.logCtx(args, index_4.PreparedStatementKeys.FIND_ONE_BY, true)).for(this.findOneBy);
111
+ return this.repo.findOneBy(key, value, ...ctxArgs);
112
+ }
113
+ async findBy(key, value, ...args) {
114
+ const { ctxArgs } = (await this.logCtx(args, index_4.PreparedStatementKeys.FIND_BY, true)).for(this.findBy);
115
+ return this.repo.findBy(key, value, ...ctxArgs);
116
+ }
117
+ async statement(name, ...args) {
118
+ const { ctxArgs } = (await this.logCtx(args, index_1.PersistenceKeys.STATEMENT, true)).for(this.statement);
119
+ return this.repo.statement(name, ...ctxArgs);
120
+ }
121
+ refresh(table, event, id, ...args) {
122
+ return this.repo.refresh(table, event, id, ...args);
123
+ }
124
+ observe(observer, filter) {
125
+ return this.repo.observe(observer, filter);
126
+ }
127
+ unObserve(observer) {
128
+ return this.repo.unObserve(observer);
129
+ }
130
+ updateObservers(model, operation, ids, ...args) {
131
+ return this.repo.updateObservers(model, operation, ids, ...args);
132
+ }
133
+ logCtx(args, operation, allowCreate = false) {
134
+ const ctx = this.repo["adapter"]["logCtx"]([this.repo.class, ...args], operation, allowCreate, this.repo["_overrides"] || {});
135
+ function squashArgs(ctx) {
136
+ ctx.ctxArgs.shift(); // removes added model to args
137
+ return ctx;
138
+ }
139
+ if (!(ctx instanceof Promise))
140
+ return squashArgs(ctx);
141
+ return ctx.then(squashArgs);
142
+ }
143
+ async shutdown(...args) {
144
+ const { ctxArgs } = await this.logCtx(args, "shutdown", true);
145
+ await super.shutdown(...ctxArgs);
146
+ this.client.stop();
147
+ }
27
148
  }
28
149
  exports.TaskService = TaskService;
150
+ __decorate([
151
+ (0, index_2.repository)(TaskModel_1.TaskModel),
152
+ __metadata("design:type", Object)
153
+ ], TaskService.prototype, "repo", void 0);
154
+ __decorate([
155
+ (0, index_3.create)(),
156
+ __metadata("design:type", Function),
157
+ __metadata("design:paramtypes", [TaskModel_1.TaskModel, void 0]),
158
+ __metadata("design:returntype", Promise)
159
+ ], TaskService.prototype, "create", null);
160
+ __decorate([
161
+ (0, index_3.create)(),
162
+ __metadata("design:type", Function),
163
+ __metadata("design:paramtypes", [Array, void 0]),
164
+ __metadata("design:returntype", Promise)
165
+ ], TaskService.prototype, "createAll", null);
166
+ __decorate([
167
+ (0, index_3.del)(),
168
+ __metadata("design:type", Function),
169
+ __metadata("design:paramtypes", [Object, void 0]),
170
+ __metadata("design:returntype", Promise)
171
+ ], TaskService.prototype, "delete", null);
172
+ __decorate([
173
+ (0, index_3.del)(),
174
+ __metadata("design:type", Function),
175
+ __metadata("design:paramtypes", [Array, void 0]),
176
+ __metadata("design:returntype", Promise)
177
+ ], TaskService.prototype, "deleteAll", null);
178
+ __decorate([
179
+ (0, index_3.read)(),
180
+ __metadata("design:type", Function),
181
+ __metadata("design:paramtypes", [Object, void 0]),
182
+ __metadata("design:returntype", Promise)
183
+ ], TaskService.prototype, "read", null);
184
+ __decorate([
185
+ (0, index_3.read)(),
186
+ __metadata("design:type", Function),
187
+ __metadata("design:paramtypes", [Array, void 0]),
188
+ __metadata("design:returntype", Promise)
189
+ ], TaskService.prototype, "readAll", null);
190
+ __decorate([
191
+ (0, index_3.read)(),
192
+ __metadata("design:type", Function),
193
+ __metadata("design:paramtypes", [String, void 0]),
194
+ __metadata("design:returntype", Promise)
195
+ ], TaskService.prototype, "query", null);
196
+ __decorate([
197
+ (0, index_3.update)(),
198
+ __metadata("design:type", Function),
199
+ __metadata("design:paramtypes", [TaskModel_1.TaskModel, void 0]),
200
+ __metadata("design:returntype", Promise)
201
+ ], TaskService.prototype, "update", null);
202
+ __decorate([
203
+ (0, index_3.update)(),
204
+ __metadata("design:type", Function),
205
+ __metadata("design:paramtypes", [Array, void 0]),
206
+ __metadata("design:returntype", Promise)
207
+ ], TaskService.prototype, "updateAll", null);
29
208
  //# sourceMappingURL=TaskService.js.map
@@ -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 +1 @@
1
- {"version":3,"file":"TaskService.js","sourceRoot":"","sources":["../../src/tasks/TaskService.ts"],"names":[],"mappings":";;;AACA,yDAA0D;AAC1D,iDAA4D;AAC5D,sDAK8B;AAC9B,2DAAwD;AAExD,MAAa,WAEX,SAAQ,6BAAsD;IAC9D;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEQ,KAAK,CAAC,UAAU,CACvB,GAAG,IAAsC;QAEzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAA+B,CAAC;QACtD,IAAI,CAAC,GAAG,IAAI,GAAG,YAAY,eAAO;YAChC,MAAM,IAAI,6BAAa,CAAC,4BAA4B,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,EAAE,GAAG,CACd,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,MAAM,IAAI,6BAAa,CAAC,qBAAqB,CAAC,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACxC,MAAM,MAAM,GAAkB,IAAI,uBAAU,CAAC,GAAG,CAAC,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,cAAc,CAAC,CAAC;QACrC,OAAO;YACL,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,GAAG;SACZ,CAAC;IACJ,CAAC;CACF;AAzBD,kCAyBC"}
1
+ {"version":3,"file":"TaskService.js","sourceRoot":"","sources":["../../src/tasks/TaskService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CompositeTaskBuilder = exports.TaskBuilder = exports.TaskBackoffBuilder = void 0;
13
+ const TaskModel_1 = require("./models/TaskModel.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const index_1 = require("./models/index.cjs");
16
+ const TaskStepSpecModel_1 = require("./models/TaskStepSpecModel.cjs");
17
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
18
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
19
+ const decoration_1 = require("@decaf-ts/decoration");
20
+ class TaskBackoffBuilder extends decorator_validation_1.Model {
21
+ constructor(arg) {
22
+ super(arg);
23
+ this.baseMs = 1000;
24
+ this.jitter = constants_1.JitterStrategy.FULL;
25
+ this.maxMs = 60_000;
26
+ this.strategy = constants_1.BackoffStrategy.EXPONENTIAL;
27
+ decorator_validation_1.Model.fromModel(this, arg);
28
+ }
29
+ setBaseMs(value) {
30
+ this.baseMs = value;
31
+ return this;
32
+ }
33
+ setJitter(value) {
34
+ this.jitter = value;
35
+ return this;
36
+ }
37
+ setMaxMs(value) {
38
+ this.maxMs = value;
39
+ return this;
40
+ }
41
+ setStrategy(value) {
42
+ this.strategy = value;
43
+ return this;
44
+ }
45
+ build() {
46
+ const errs = this.hasErrors();
47
+ if (errs)
48
+ throw new db_decorators_1.ValidationError(errs);
49
+ return new index_1.TaskBackoffModel(this);
50
+ }
51
+ }
52
+ exports.TaskBackoffBuilder = TaskBackoffBuilder;
53
+ __decorate([
54
+ (0, decorator_validation_1.required)(),
55
+ (0, decorator_validation_1.min)(1000),
56
+ __metadata("design:type", Number)
57
+ ], TaskBackoffBuilder.prototype, "baseMs", void 0);
58
+ __decorate([
59
+ (0, decorator_validation_1.required)(),
60
+ (0, decorator_validation_1.option)(constants_1.JitterStrategy),
61
+ __metadata("design:type", String)
62
+ ], TaskBackoffBuilder.prototype, "jitter", void 0);
63
+ __decorate([
64
+ (0, decorator_validation_1.gt)("baseMs"),
65
+ (0, decorator_validation_1.min)(1000),
66
+ (0, decorator_validation_1.required)(),
67
+ __metadata("design:type", Number)
68
+ ], TaskBackoffBuilder.prototype, "maxMs", void 0);
69
+ __decorate([
70
+ (0, decorator_validation_1.required)(),
71
+ (0, decorator_validation_1.option)(constants_1.BackoffStrategy),
72
+ __metadata("design:type", String)
73
+ ], TaskBackoffBuilder.prototype, "strategy", void 0);
74
+ class TaskBuilder extends decorator_validation_1.Model {
75
+ setClassification(value) {
76
+ this.classification = value;
77
+ return this;
78
+ }
79
+ setStatus(value) {
80
+ this.status = value;
81
+ return this;
82
+ }
83
+ setAtomicity(value) {
84
+ this.atomicity = value;
85
+ return this;
86
+ }
87
+ setBackoff(value) {
88
+ if (value) {
89
+ this.backoff = value;
90
+ return this;
91
+ }
92
+ const backOff = new TaskBackoffBuilder();
93
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
94
+ const self = this;
95
+ backOff.build = new Proxy(backOff.build, {
96
+ apply(target, thisArg, args) {
97
+ self.backoff = Reflect.apply(target, thisArg, args);
98
+ return self;
99
+ },
100
+ });
101
+ return backOff;
102
+ }
103
+ setInput(value) {
104
+ this.input = value;
105
+ return this;
106
+ }
107
+ setMaxAttempts(value) {
108
+ this.maxAttempts = value;
109
+ return this;
110
+ }
111
+ setAttempt(value) {
112
+ this.attempt = value;
113
+ return this;
114
+ }
115
+ constructor(arg) {
116
+ super(arg);
117
+ this.status = constants_1.TaskStatus.PENDING;
118
+ this.atomicity = constants_1.TaskType.ATOMIC;
119
+ this.backoff = new index_1.TaskBackoffModel();
120
+ this.attempt = 0;
121
+ this.maxAttempts = 1;
122
+ decorator_validation_1.Model.fromModel(this, arg);
123
+ }
124
+ build() {
125
+ const errs = this.hasErrors();
126
+ if (errs)
127
+ throw new db_decorators_1.ValidationError(errs);
128
+ return new TaskModel_1.TaskModel(this);
129
+ }
130
+ }
131
+ exports.TaskBuilder = TaskBuilder;
132
+ __decorate([
133
+ (0, decorator_validation_1.required)(),
134
+ __metadata("design:type", String)
135
+ ], TaskBuilder.prototype, "classification", void 0);
136
+ __decorate([
137
+ (0, decorator_validation_1.required)(),
138
+ __metadata("design:type", String)
139
+ ], TaskBuilder.prototype, "status", void 0);
140
+ __decorate([
141
+ (0, decorator_validation_1.required)(),
142
+ __metadata("design:type", String)
143
+ ], TaskBuilder.prototype, "atomicity", void 0);
144
+ __decorate([
145
+ (0, decorator_validation_1.required)(),
146
+ __metadata("design:type", index_1.TaskBackoffModel)
147
+ ], TaskBuilder.prototype, "backoff", void 0);
148
+ __decorate([
149
+ (0, decoration_1.prop)(),
150
+ __metadata("design:type", Object)
151
+ ], TaskBuilder.prototype, "input", void 0);
152
+ __decorate([
153
+ (0, decorator_validation_1.min)(0),
154
+ (0, decorator_validation_1.required)(),
155
+ __metadata("design:type", Number)
156
+ ], TaskBuilder.prototype, "attempt", void 0);
157
+ __decorate([
158
+ (0, decorator_validation_1.min)(1),
159
+ (0, decorator_validation_1.required)(),
160
+ __metadata("design:type", Number)
161
+ ], TaskBuilder.prototype, "maxAttempts", void 0);
162
+ class CompositeTaskBuilder extends TaskBuilder {
163
+ constructor(arg) {
164
+ super(arg);
165
+ this.stepResults = [];
166
+ decorator_validation_1.Model.fromModel(this, arg);
167
+ }
168
+ setSteps(value) {
169
+ this.steps = value;
170
+ return this;
171
+ }
172
+ addStep(classification, input) {
173
+ this.steps = this.steps || [];
174
+ this.steps.push(new TaskStepSpecModel_1.TaskStepSpecModel({
175
+ classification,
176
+ input,
177
+ }));
178
+ return this;
179
+ }
180
+ }
181
+ exports.CompositeTaskBuilder = CompositeTaskBuilder;
182
+ __decorate([
183
+ (0, decorator_validation_1.list)(() => TaskStepSpecModel_1.TaskStepSpecModel),
184
+ __metadata("design:type", Array)
185
+ ], CompositeTaskBuilder.prototype, "steps", void 0);
186
+ //# sourceMappingURL=builder.js.map
@@ -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 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/tasks/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskLogger = void 0;
4
+ const logging_1 = require("@decaf-ts/logging");
5
+ class TaskLogger {
6
+ constructor(logger, bufferSize = 150, maxBufferSize = 300, pipe) {
7
+ this.logger = logger;
8
+ this.bufferSize = bufferSize;
9
+ this.maxBufferSize = maxBufferSize;
10
+ this.pipe = pipe;
11
+ this.history = [];
12
+ this.root = this.logger.root;
13
+ Object.values(logging_1.LogLevel).forEach((level) => {
14
+ this[level] = new Proxy(this[level], {
15
+ apply: (target, thisArg, argArray) => {
16
+ target.apply(thisArg, argArray);
17
+ thisArg.push(...argArray);
18
+ },
19
+ });
20
+ });
21
+ }
22
+ push(level, string, meta) {
23
+ if (this.history.length >= this.maxBufferSize)
24
+ this.history.splice(0, this.history.length - this.bufferSize);
25
+ this.history.push([level, string, meta]);
26
+ }
27
+ flush(pipe) {
28
+ const result = this.history;
29
+ this.history = [];
30
+ if (pipe)
31
+ return pipe(result).catch((e) => this.logger.error(`Failed to pipe logs`, e));
32
+ this.history = [];
33
+ return result;
34
+ }
35
+ benchmark(msg) {
36
+ return this.logger.benchmark(msg);
37
+ }
38
+ clear() {
39
+ this.logger = this.logger.clear();
40
+ return this;
41
+ }
42
+ debug(msg, meta) {
43
+ this.logger.debug(msg, meta);
44
+ }
45
+ error(msg, e, meta) {
46
+ this.logger.error(msg, e, meta);
47
+ }
48
+ for(config, ...args) {
49
+ return new Proxy(this, {
50
+ get(target, p) {
51
+ if (p === "logger")
52
+ return Reflect.get(target, p).for(config, ...args);
53
+ return Reflect.get(target, p);
54
+ },
55
+ });
56
+ }
57
+ info(msg, meta) {
58
+ this.logger.info(msg, meta);
59
+ }
60
+ setConfig(config) {
61
+ this.logger.setConfig(config);
62
+ }
63
+ silly(msg, meta) {
64
+ this.logger.silly(msg, meta);
65
+ }
66
+ trace(msg, meta) {
67
+ this.logger.trace(msg, meta);
68
+ }
69
+ verbose(msg, verbosity, meta) {
70
+ this.logger.verbose(msg, verbosity, meta);
71
+ }
72
+ warn(msg, meta) {
73
+ this.logger.warn(msg, meta);
74
+ }
75
+ }
76
+ exports.TaskLogger = TaskLogger;
77
+ //# sourceMappingURL=logging.js.map
@@ -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 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/tasks/logging.ts"],"names":[],"mappings":"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"}