@decaf-ts/core 0.7.64 → 0.7.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/index.d.ts +1 -1
  7. package/lib/esm/index.js +1 -1
  8. package/lib/esm/migrations/MigrationService.js +2 -4
  9. package/lib/esm/migrations/MigrationService.js.map +1 -1
  10. package/lib/esm/migrations/MigrationTasks.d.ts +9 -0
  11. package/lib/esm/migrations/MigrationTasks.js +69 -0
  12. package/lib/esm/migrations/MigrationTasks.js.map +1 -0
  13. package/lib/esm/migrations/index.d.ts +1 -0
  14. package/lib/esm/migrations/index.js +1 -0
  15. package/lib/esm/migrations/index.js.map +1 -1
  16. package/lib/esm/persistence/Context.d.ts +4 -0
  17. package/lib/esm/persistence/Context.js +6 -0
  18. package/lib/esm/persistence/Context.js.map +1 -1
  19. package/lib/esm/persistence/ObserverHandler.d.ts +2 -1
  20. package/lib/esm/persistence/ObserverHandler.js.map +1 -1
  21. package/lib/esm/persistence/constants.d.ts +1 -0
  22. package/lib/esm/persistence/constants.js +1 -0
  23. package/lib/esm/persistence/constants.js.map +1 -1
  24. package/lib/esm/ram/RamAdapter.js +9 -9
  25. package/lib/esm/ram/RamAdapter.js.map +1 -1
  26. package/lib/esm/ram/types.d.ts +2 -2
  27. package/lib/esm/services/PersistenceService.js +9 -1
  28. package/lib/esm/services/PersistenceService.js.map +1 -1
  29. package/lib/esm/tasks/TaskContext.d.ts +9 -4
  30. package/lib/esm/tasks/TaskContext.js +18 -3
  31. package/lib/esm/tasks/TaskContext.js.map +1 -1
  32. package/lib/esm/tasks/TaskEngine.d.ts +8 -22
  33. package/lib/esm/tasks/TaskEngine.js +189 -112
  34. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  35. package/lib/esm/tasks/TaskEventBus.d.ts +8 -3
  36. package/lib/esm/tasks/TaskEventBus.js +15 -7
  37. package/lib/esm/tasks/TaskEventBus.js.map +1 -1
  38. package/lib/esm/tasks/TaskHandler.js +9 -2
  39. package/lib/esm/tasks/TaskHandler.js.map +1 -1
  40. package/lib/esm/tasks/TaskService.d.ts +33 -3
  41. package/lib/esm/tasks/TaskService.js +181 -2
  42. package/lib/esm/tasks/TaskService.js.map +1 -1
  43. package/lib/esm/tasks/builder.d.ts +42 -0
  44. package/lib/esm/tasks/builder.js +180 -0
  45. package/lib/esm/tasks/builder.js.map +1 -0
  46. package/lib/esm/tasks/logging.d.ts +30 -0
  47. package/lib/esm/tasks/logging.js +73 -0
  48. package/lib/esm/tasks/logging.js.map +1 -0
  49. package/lib/esm/tasks/models/TaskBackoffModel.js +7 -3
  50. package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -1
  51. package/lib/esm/tasks/models/TaskModel.d.ts +2 -2
  52. package/lib/esm/tasks/models/TaskModel.js +10 -3
  53. package/lib/esm/tasks/models/TaskModel.js.map +1 -1
  54. package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +1 -1
  55. package/lib/esm/tasks/models/TaskStepSpecModel.js +3 -1
  56. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
  57. package/lib/esm/tasks/types.d.ts +8 -4
  58. package/lib/index.cjs +1 -1
  59. package/lib/index.d.ts +1 -1
  60. package/lib/migrations/MigrationService.cjs +2 -4
  61. package/lib/migrations/MigrationService.js.map +1 -1
  62. package/lib/migrations/MigrationTasks.cjs +72 -0
  63. package/lib/migrations/MigrationTasks.d.ts +9 -0
  64. package/lib/migrations/MigrationTasks.js.map +1 -0
  65. package/lib/migrations/index.cjs +1 -0
  66. package/lib/migrations/index.d.ts +1 -0
  67. package/lib/migrations/index.js.map +1 -1
  68. package/lib/persistence/Context.cjs +8 -1
  69. package/lib/persistence/Context.d.ts +4 -0
  70. package/lib/persistence/Context.js.map +1 -1
  71. package/lib/persistence/ObserverHandler.d.ts +2 -1
  72. package/lib/persistence/ObserverHandler.js.map +1 -1
  73. package/lib/persistence/constants.cjs +1 -0
  74. package/lib/persistence/constants.d.ts +1 -0
  75. package/lib/persistence/constants.js.map +1 -1
  76. package/lib/ram/RamAdapter.cjs +8 -8
  77. package/lib/ram/RamAdapter.js.map +1 -1
  78. package/lib/ram/types.d.ts +2 -2
  79. package/lib/services/PersistenceService.cjs +9 -1
  80. package/lib/services/PersistenceService.js.map +1 -1
  81. package/lib/tasks/TaskContext.cjs +19 -4
  82. package/lib/tasks/TaskContext.d.ts +9 -4
  83. package/lib/tasks/TaskContext.js.map +1 -1
  84. package/lib/tasks/TaskEngine.cjs +187 -110
  85. package/lib/tasks/TaskEngine.d.ts +8 -22
  86. package/lib/tasks/TaskEngine.js.map +1 -1
  87. package/lib/tasks/TaskEventBus.cjs +15 -7
  88. package/lib/tasks/TaskEventBus.d.ts +8 -3
  89. package/lib/tasks/TaskEventBus.js.map +1 -1
  90. package/lib/tasks/TaskHandler.cjs +9 -2
  91. package/lib/tasks/TaskHandler.js.map +1 -1
  92. package/lib/tasks/TaskService.cjs +179 -0
  93. package/lib/tasks/TaskService.d.ts +33 -3
  94. package/lib/tasks/TaskService.js.map +1 -1
  95. package/lib/tasks/builder.cjs +186 -0
  96. package/lib/tasks/builder.d.ts +42 -0
  97. package/lib/tasks/builder.js.map +1 -0
  98. package/lib/tasks/logging.cjs +77 -0
  99. package/lib/tasks/logging.d.ts +30 -0
  100. package/lib/tasks/logging.js.map +1 -0
  101. package/lib/tasks/models/TaskBackoffModel.cjs +6 -2
  102. package/lib/tasks/models/TaskBackoffModel.js.map +1 -1
  103. package/lib/tasks/models/TaskModel.cjs +10 -3
  104. package/lib/tasks/models/TaskModel.d.ts +2 -2
  105. package/lib/tasks/models/TaskModel.js.map +1 -1
  106. package/lib/tasks/models/TaskStepSpecModel.cjs +3 -1
  107. package/lib/tasks/models/TaskStepSpecModel.d.ts +1 -1
  108. package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
  109. package/lib/tasks/types.d.ts +8 -4
  110. package/package.json +1 -1
@@ -22,6 +22,12 @@ const decorators_2 = require("./../../model/decorators.cjs");
22
22
  let TaskModel = class TaskModel extends TaskBaseModel_1.TaskBaseModel {
23
23
  constructor(arg) {
24
24
  super(arg);
25
+ // required routing / identity
26
+ this.atomicity = constants_1.TaskType.ATOMIC; // atomic handler type OR "composite"
27
+ // execution
28
+ this.status = constants_1.TaskStatus.PENDING;
29
+ // logging
30
+ this.logTail = [];
25
31
  }
26
32
  };
27
33
  exports.TaskModel = TaskModel;
@@ -31,13 +37,14 @@ __decorate([
31
37
  ], TaskModel.prototype, "id", void 0);
32
38
  __decorate([
33
39
  (0, decorator_validation_1.required)(),
40
+ (0, decorator_validation_1.type)(String),
34
41
  (0, decorator_validation_1.option)(constants_1.TaskType),
35
42
  __metadata("design:type", String)
36
- ], TaskModel.prototype, "type", void 0);
43
+ ], TaskModel.prototype, "atomicity", void 0);
37
44
  __decorate([
38
- (0, decoration_1.prop)(),
45
+ (0, decorator_validation_1.required)(),
39
46
  __metadata("design:type", String)
40
- ], TaskModel.prototype, "name", void 0);
47
+ ], TaskModel.prototype, "classification", void 0);
41
48
  __decorate([
42
49
  (0, decorator_validation_1.required)(),
43
50
  (0, decorator_validation_1.type)(String),
@@ -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
- type: TaskType;
12
- name?: string;
11
+ atomicity: TaskType;
12
+ classification: string;
13
13
  status: TaskStatus;
14
14
  input?: any;
15
15
  output?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAgD;AAChD,yEAQwC;AACxC,gEAA+C;AAC/C,kDAAoD;AACpD,yDAAkD;AAClD,6DAAsD;AAItD,qDAAyD;AACzD,2DAAoD;AACpD,6DAA+C;AAIxC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,6BAAa;IA2E1C,YAAY,GAAyB;QACnC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AA9EY,8BAAS;AAEpB;IADC,IAAA,eAAE,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qCACT;AAKZ;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,6BAAM,EAAC,oBAAQ,CAAC;;uCACD;AAGhB;IADC,IAAA,iBAAI,GAAE;;uCACO;AAMd;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,2BAAI,EAAC,MAAM,CAAC;IACZ,IAAA,6BAAM,EAAC,sBAAU,CAAC;;yCACC;AAIpB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;wCACA;AAIZ;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;yCACC;AAIb;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;8BACJ,+BAAc;wCAAC;AAKvB;IAFC,IAAA,0BAAG,EAAC,CAAC,CAAC;IACN,IAAA,+BAAQ,GAAE;;0CACM;AAIjB;IAFC,IAAA,0BAAG,EAAC,CAAC,CAAC;IACN,IAAA,+BAAQ,GAAE;;8CACU;AAKrB;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,yBAAS,GAAE;IACX,IAAA,wBAAW,EAAC,uBAAuB,CAAC;8BAC3B,mCAAgB;0CAAC;AAI3B;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,wBAAW,EAAC,0BAA0B,CAAC;8BAC5B,IAAI;4CAAC;AAKjB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,6BAA6B,CAAC;;6CACvB;AAIpB;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,wBAAW,EAAC,iCAAiC,CAAC;8BACjC,IAAI;8CAAC;AAKnB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;wCACgB;AAG5B;IADC,IAAA,0BAAG,EAAC,CAAC,CAAC;;8CACc;AAIrB;IAFC,IAAA,yBAAS,GAAE;IACX,IAAA,iBAAI,GAAE;;8CAC6B;AAMpC;IAFC,IAAA,yBAAS,GAAE;IACX,IAAA,iBAAI,GAAE;;0CACuB;oBAzEnB,SAAS;IAFrB,IAAA,kBAAK,EAAC,OAAO,CAAC;IACd,IAAA,4BAAK,GAAE;;GACK,SAAS,CA8ErB"}
1
+ {"version":3,"file":"TaskModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAgD;AAChD,yEAQwC;AACxC,gEAA+C;AAC/C,kDAAoD;AACpD,yDAAkD;AAClD,6DAAsD;AAGtD,qDAAyD;AACzD,2DAAoD;AACpD,6DAA+C;AAKxC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,6BAAa;IA4E1C,YAAY,GAAyB;QACnC,KAAK,CAAC,GAAG,CAAC,CAAC;QAzEb,8BAA8B;QAI9B,cAAS,GAAa,oBAAQ,CAAC,MAAM,CAAC,CAAC,qCAAqC;QAK5E,YAAY;QAIZ,WAAM,GAAe,sBAAU,CAAC,OAAO,CAAC;QAqDxC,UAAU;QAIV,YAAO,GAAyB,EAAE,CAAC;IAInC,CAAC;CACF,CAAA;AA/EY,8BAAS;AAEpB;IADC,IAAA,eAAE,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qCACT;AAMZ;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,2BAAI,EAAC,MAAM,CAAC;IACZ,IAAA,6BAAM,EAAC,oBAAQ,CAAC;;4CACqB;AAGtC;IADC,IAAA,+BAAQ,GAAE;;iDACa;AAMxB;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,2BAAI,EAAC,MAAM,CAAC;IACZ,IAAA,6BAAM,EAAC,sBAAU,CAAC;;yCACqB;AAIxC;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;wCACA;AAIZ;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;yCACC;AAIb;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;8BACJ,+BAAc;wCAAC;AAKvB;IAFC,IAAA,0BAAG,EAAC,CAAC,CAAC;IACN,IAAA,+BAAQ,GAAE;;0CACM;AAIjB;IAFC,IAAA,0BAAG,EAAC,CAAC,CAAC;IACN,IAAA,+BAAQ,GAAE;;8CACU;AAKrB;IAHC,IAAA,+BAAQ,GAAE;IACV,IAAA,yBAAS,GAAE;IACX,IAAA,wBAAW,EAAC,uBAAuB,CAAC;8BAC3B,mCAAgB;0CAAC;AAI3B;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,wBAAW,EAAC,0BAA0B,CAAC;8BAC5B,IAAI;4CAAC;AAKjB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,wBAAW,EAAC,6BAA6B,CAAC;;6CACvB;AAIpB;IAFC,IAAA,2BAAI,GAAE;IACN,IAAA,wBAAW,EAAC,iCAAiC,CAAC;8BACjC,IAAI;8CAAC;AAKnB;IAFC,IAAA,iBAAI,GAAE;IACN,IAAA,yBAAS,GAAE;;wCACgB;AAG5B;IADC,IAAA,0BAAG,EAAC,CAAC,CAAC;;8CACc;AAIrB;IAFC,IAAA,yBAAS,GAAE;IACX,IAAA,iBAAI,GAAE;;8CAC6B;AAMpC;IAFC,IAAA,yBAAS,GAAE;IACX,IAAA,iBAAI,GAAE;;0CAC4B;oBA1ExB,SAAS;IAFrB,IAAA,kBAAK,EAAC,OAAO,CAAC;IACd,IAAA,4BAAK,GAAE;;GACK,SAAS,CA+ErB"}
@@ -13,6 +13,7 @@ exports.TaskStepSpecModel = void 0;
13
13
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
14
14
  const TaskBaseModel_1 = require("./TaskBaseModel.cjs");
15
15
  const decoration_1 = require("@decaf-ts/decoration");
16
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
16
17
  let TaskStepSpecModel = class TaskStepSpecModel extends TaskBaseModel_1.TaskBaseModel {
17
18
  constructor(arg) {
18
19
  super(arg);
@@ -23,9 +24,10 @@ __decorate([
23
24
  (0, decorator_validation_1.required)(),
24
25
  (0, decoration_1.description)("task handler type"),
25
26
  __metadata("design:type", String)
26
- ], TaskStepSpecModel.prototype, "type", void 0);
27
+ ], TaskStepSpecModel.prototype, "classification", void 0);
27
28
  __decorate([
28
29
  (0, decoration_1.description)("optional task step input"),
30
+ (0, db_decorators_1.serialize)(),
29
31
  __metadata("design:type", Object)
30
32
  ], TaskStepSpecModel.prototype, "input", void 0);
31
33
  exports.TaskStepSpecModel = TaskStepSpecModel = __decorate([
@@ -1,7 +1,7 @@
1
1
  import { type ModelArg } from "@decaf-ts/decorator-validation";
2
2
  import { TaskBaseModel } from "./TaskBaseModel";
3
3
  export declare class TaskStepSpecModel extends TaskBaseModel {
4
- type: string;
4
+ classification: string;
5
5
  input?: any;
6
6
  constructor(arg?: ModelArg<TaskStepSpecModel>);
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TaskStepSpecModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepSpecModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAAgF;AAChF,uDAAgD;AAChD,qDAAmD;AAG5C,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,6BAAa;IAQlD,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAXY,8CAAiB;AAG5B;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,wBAAW,EAAC,mBAAmB,CAAC;;+CACnB;AAGd;IADC,IAAA,wBAAW,EAAC,0BAA0B,CAAC;;gDAC5B;4BAND,iBAAiB;IAD7B,IAAA,4BAAK,GAAE;;GACK,iBAAiB,CAW7B"}
1
+ {"version":3,"file":"TaskStepSpecModel.js","sourceRoot":"","sources":["../../../src/tasks/models/TaskStepSpecModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAAgF;AAChF,uDAAgD;AAChD,qDAAmD;AACnD,2DAAoD;AAG7C,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,6BAAa;IASlD,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAZY,8CAAiB;AAG5B;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,wBAAW,EAAC,mBAAmB,CAAC;;yDACT;AAIxB;IAFC,IAAA,wBAAW,EAAC,0BAA0B,CAAC;IACvC,IAAA,yBAAS,GAAE;;gDACA;4BAPD,iBAAiB;IAD7B,IAAA,4BAAK,GAAE;;GACK,iBAAiB,CAY7B"}
@@ -1,16 +1,20 @@
1
- import { LogLevel } from "@decaf-ts/logging";
2
1
  import { TaskContext } from "./TaskContext";
3
- import { AdapterFlags } from "../persistence/index";
2
+ import { ContextFlags } from "@decaf-ts/db-decorators";
3
+ import { TaskLogger } from "./logging";
4
+ import { LogLevel } from "@decaf-ts/logging";
4
5
  export interface ITaskHandler<I = any, O = any> {
5
6
  type: string;
6
7
  run(input: I, ctx: TaskContext): Promise<O>;
7
8
  }
8
- export interface ITaskContext extends AdapterFlags {
9
+ export type LogPipe = (logs: [LogLevel, string, any][]) => Promise<void>;
10
+ export interface TaskFlags<LOG extends TaskLogger<any> = TaskLogger<any>> extends ContextFlags<LOG> {
9
11
  taskId: string;
10
12
  attempt: number;
11
- log: (level: LogLevel, msg: string, meta?: any) => Promise<void>;
13
+ pipe: LogPipe;
14
+ flush: () => Promise<void>;
12
15
  progress: (data: any) => Promise<void>;
13
16
  heartbeat: () => Promise<void>;
17
+ resultCache?: Record<string, any>;
14
18
  }
15
19
  export type TaskEngineOptions = {
16
20
  workerId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/core",
3
- "version": "0.7.64",
3
+ "version": "0.7.65",
4
4
  "description": "Core persistence module for the decaf framework",
5
5
  "type": "module",
6
6
  "exports": {