@medusajs/workflow-engine-inmemory 0.0.5 → 1.0.0-rc-20241001083650

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 (66) hide show
  1. package/dist/index.d.ts +5 -6
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +8 -41
  4. package/dist/index.js.map +1 -0
  5. package/dist/loaders/index.d.ts +1 -3
  6. package/dist/loaders/index.d.ts.map +1 -1
  7. package/dist/loaders/index.js +6 -16
  8. package/dist/loaders/index.js.map +1 -0
  9. package/dist/loaders/utils.d.ts.map +1 -1
  10. package/dist/loaders/utils.js +1 -0
  11. package/dist/loaders/utils.js.map +1 -0
  12. package/dist/migrations/Migration20231228143900.js +1 -0
  13. package/dist/migrations/Migration20231228143900.js.map +1 -0
  14. package/dist/models/index.js +1 -0
  15. package/dist/models/index.js.map +1 -0
  16. package/dist/models/workflow-execution.d.ts +1 -1
  17. package/dist/models/workflow-execution.d.ts.map +1 -1
  18. package/dist/models/workflow-execution.js +3 -2
  19. package/dist/models/workflow-execution.js.map +1 -0
  20. package/dist/schema/index.d.ts +1 -1
  21. package/dist/schema/index.d.ts.map +1 -1
  22. package/dist/schema/index.js +1 -3
  23. package/dist/schema/index.js.map +1 -0
  24. package/dist/services/index.js +1 -0
  25. package/dist/services/index.js.map +1 -0
  26. package/dist/services/workflow-orchestrator.d.ts +9 -6
  27. package/dist/services/workflow-orchestrator.d.ts.map +1 -1
  28. package/dist/services/workflow-orchestrator.js +61 -21
  29. package/dist/services/workflow-orchestrator.js.map +1 -0
  30. package/dist/services/workflows-module.d.ts +15 -14
  31. package/dist/services/workflows-module.d.ts.map +1 -1
  32. package/dist/services/workflows-module.js +10 -89
  33. package/dist/services/workflows-module.js.map +1 -0
  34. package/dist/tsconfig.tsbuildinfo +1 -0
  35. package/dist/types/index.d.ts +1 -1
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/index.js +1 -0
  38. package/dist/types/index.js.map +1 -0
  39. package/dist/utils/index.js +1 -0
  40. package/dist/utils/index.js.map +1 -0
  41. package/dist/utils/workflow-orchestrator-storage.d.ts +22 -13
  42. package/dist/utils/workflow-orchestrator-storage.d.ts.map +1 -1
  43. package/dist/utils/workflow-orchestrator-storage.js +104 -27
  44. package/dist/utils/workflow-orchestrator-storage.js.map +1 -0
  45. package/package.json +24 -19
  46. package/dist/initialize/index.d.ts +0 -6
  47. package/dist/initialize/index.d.ts.map +0 -1
  48. package/dist/initialize/index.js +0 -18
  49. package/dist/joiner-config.d.ts +0 -8
  50. package/dist/joiner-config.d.ts.map +0 -1
  51. package/dist/joiner-config.js +0 -34
  52. package/dist/loaders/connection.d.ts +0 -5
  53. package/dist/loaders/connection.d.ts.map +0 -1
  54. package/dist/loaders/connection.js +0 -41
  55. package/dist/loaders/container.d.ts +0 -3
  56. package/dist/loaders/container.d.ts.map +0 -1
  57. package/dist/loaders/container.js +0 -33
  58. package/dist/module-definition.d.ts +0 -3
  59. package/dist/module-definition.d.ts.map +0 -1
  60. package/dist/module-definition.js +0 -16
  61. package/dist/repositories/index.d.ts +0 -3
  62. package/dist/repositories/index.d.ts.map +0 -1
  63. package/dist/repositories/index.js +0 -7
  64. package/dist/repositories/workflow-execution.d.ts +0 -8
  65. package/dist/repositories/workflow-execution.d.ts.map +0 -1
  66. package/dist/repositories/workflow-execution.js +0 -9
@@ -14,93 +14,34 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  var _a;
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.WorkflowsModuleService = void 0;
17
- const utils_1 = require("@medusajs/utils");
18
- const joiner_config_1 = require("../joiner-config");
19
- class WorkflowsModuleService {
17
+ const types_1 = require("@medusajs/framework/types");
18
+ const utils_1 = require("@medusajs/framework/utils");
19
+ const _models_1 = require("../models");
20
+ class WorkflowsModuleService extends utils_1.ModulesSdkUtils.MedusaService({ WorkflowExecution: _models_1.WorkflowExecution }) {
20
21
  constructor({ baseRepository, workflowExecutionService, workflowOrchestratorService, }, moduleDeclaration) {
22
+ // @ts-ignore
23
+ super(...arguments);
21
24
  this.moduleDeclaration = moduleDeclaration;
22
25
  this.baseRepository_ = baseRepository;
23
26
  this.workflowExecutionService_ = workflowExecutionService;
24
27
  this.workflowOrchestratorService_ = workflowOrchestratorService;
25
28
  }
26
- __joinerConfig() {
27
- return joiner_config_1.joinerConfig;
28
- }
29
- async retrieveWorkflowExecution(idOrObject, config = {}, sharedContext = {}) {
30
- const objValue = (0, utils_1.isString)(idOrObject)
31
- ? { id: idOrObject }
32
- : {
33
- workflow_id: idOrObject.workflow_id,
34
- transaction_id: idOrObject.transaction_id,
35
- };
36
- const wfExecution = await this.workflowExecutionService_.list(objValue, config, sharedContext);
37
- if (wfExecution.length === 0) {
38
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `WorkflowExecution with ${Object.keys(objValue).join(", ")}: ${Object.values(objValue).join(", ")} was not found`);
39
- }
40
- // eslint-disable-next-line max-len
41
- return await this.baseRepository_.serialize(wfExecution[0], {
42
- populate: true,
43
- });
44
- }
45
- async listWorkflowExecution(filters = {}, config = {}, sharedContext = {}) {
46
- if (filters.transaction_id) {
47
- if (Array.isArray(filters.transaction_id)) {
48
- filters.transaction_id = {
49
- $in: filters.transaction_id,
50
- };
51
- }
52
- }
53
- if (filters.workflow_id) {
54
- if (Array.isArray(filters.workflow_id)) {
55
- filters.workflow_id = {
56
- $in: filters.workflow_id,
57
- };
58
- }
59
- }
60
- const wfExecutions = await this.workflowExecutionService_.list(filters, config, sharedContext);
61
- return await this.baseRepository_.serialize(wfExecutions, {
62
- populate: true,
63
- });
64
- }
65
- async listAndCountWorkflowExecution(filters = {}, config = {}, sharedContext = {}) {
66
- if (filters.transaction_id) {
67
- if (Array.isArray(filters.transaction_id)) {
68
- filters.transaction_id = {
69
- $in: filters.transaction_id,
70
- };
71
- }
72
- }
73
- if (filters.workflow_id) {
74
- if (Array.isArray(filters.workflow_id)) {
75
- filters.workflow_id = {
76
- $in: filters.workflow_id,
77
- };
78
- }
79
- }
80
- const [wfExecutions, count] = await this.workflowExecutionService_.listAndCount(filters, config, sharedContext);
81
- return [
82
- await this.baseRepository_.serialize(wfExecutions, {
83
- populate: true,
84
- }),
85
- count,
86
- ];
87
- }
88
29
  async run(workflowIdOrWorkflow, options = {}, context = {}) {
89
30
  const ret = await this.workflowOrchestratorService_.run(workflowIdOrWorkflow, options, context);
90
31
  return ret;
91
32
  }
92
33
  async getRunningTransaction(workflowId, transactionId, context = {}) {
93
- return this.workflowOrchestratorService_.getRunningTransaction(workflowId, transactionId, context);
34
+ return await this.workflowOrchestratorService_.getRunningTransaction(workflowId, transactionId, context);
94
35
  }
95
36
  async setStepSuccess({ idempotencyKey, stepResponse, options, }, context = {}) {
96
- return this.workflowOrchestratorService_.setStepSuccess({
37
+ return await this.workflowOrchestratorService_.setStepSuccess({
97
38
  idempotencyKey,
98
39
  stepResponse,
99
40
  options,
100
41
  }, context);
101
42
  }
102
43
  async setStepFailure({ idempotencyKey, stepResponse, options, }, context = {}) {
103
- return this.workflowOrchestratorService_.setStepFailure({
44
+ return await this.workflowOrchestratorService_.setStepFailure({
104
45
  idempotencyKey,
105
46
  stepResponse,
106
47
  options,
@@ -114,27 +55,6 @@ class WorkflowsModuleService {
114
55
  }
115
56
  }
116
57
  exports.WorkflowsModuleService = WorkflowsModuleService;
117
- __decorate([
118
- (0, utils_1.InjectManager)("baseRepository_"),
119
- __param(2, (0, utils_1.MedusaContext)()),
120
- __metadata("design:type", Function),
121
- __metadata("design:paramtypes", [Object, Object, Object]),
122
- __metadata("design:returntype", Promise)
123
- ], WorkflowsModuleService.prototype, "retrieveWorkflowExecution", null);
124
- __decorate([
125
- (0, utils_1.InjectManager)("baseRepository_"),
126
- __param(2, (0, utils_1.MedusaContext)()),
127
- __metadata("design:type", Function),
128
- __metadata("design:paramtypes", [Object, Object, Object]),
129
- __metadata("design:returntype", Promise)
130
- ], WorkflowsModuleService.prototype, "listWorkflowExecution", null);
131
- __decorate([
132
- (0, utils_1.InjectManager)("baseRepository_"),
133
- __param(2, (0, utils_1.MedusaContext)()),
134
- __metadata("design:type", Function),
135
- __metadata("design:paramtypes", [Object, Object, Object]),
136
- __metadata("design:returntype", Promise)
137
- ], WorkflowsModuleService.prototype, "listAndCountWorkflowExecution", null);
138
58
  __decorate([
139
59
  (0, utils_1.InjectSharedContext)(),
140
60
  __param(2, (0, utils_1.MedusaContext)()),
@@ -177,3 +97,4 @@ __decorate([
177
97
  __metadata("design:paramtypes", [Object, Object]),
178
98
  __metadata("design:returntype", Promise)
179
99
  ], WorkflowsModuleService.prototype, "unsubscribe", null);
100
+ //# sourceMappingURL=workflows-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows-module.js","sourceRoot":"","sources":["../../src/services/workflows-module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAOkC;AAClC,qDAIkC;AAKlC,qCAA2C;AAS3C,MAAa,sBAEX,SAAQ,uBAAe,CAAC,aAAa,CAEpC,EAAE,iBAAiB,EAAjB,2BAAiB,EAAE,CAAC;IAMvB,YACE,EACE,cAAc,EACd,wBAAwB,EACxB,2BAA2B,GACN,EACJ,iBAA4C;QAE/D,aAAa;QACb,KAAK,CAAC,GAAG,SAAS,CAAC,CAAA;QAHA,sBAAiB,GAAjB,iBAAiB,CAA2B;QAK/D,IAAI,CAAC,eAAe,GAAG,cAAc,CAAA;QACrC,IAAI,CAAC,yBAAyB,GAAG,wBAAwB,CAAA;QACzD,IAAI,CAAC,4BAA4B,GAAG,2BAA2B,CAAA;IACjE,CAAC;IAGK,AAAN,KAAK,CAAC,GAAG,CACP,oBAA+B,EAC/B,UAII,EAAE,EACW,UAAmB,EAAE;QAEtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAIrD,oBAAoB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAEzC,OAAO,GAAU,CAAA;IACnB,CAAC;IAGK,AAAN,KAAK,CAAC,qBAAqB,CACzB,UAAkB,EAClB,aAAqB,EACJ,UAAmB,EAAE;QAEtC,OAAO,MAAM,IAAI,CAAC,4BAA4B,CAAC,qBAAqB,CAClE,UAAU,EACV,aAAa,EACb,OAAO,CACR,CAAA;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAClB,EACE,cAAc,EACd,YAAY,EACZ,OAAO,GAKR,EACgB,UAAmB,EAAE;QAEtC,OAAO,MAAM,IAAI,CAAC,4BAA4B,CAAC,cAAc,CAC3D;YACE,cAAc;YACd,YAAY;YACZ,OAAO;SACD,EACR,OAAO,CACR,CAAA;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAClB,EACE,cAAc,EACd,YAAY,EACZ,OAAO,GAKR,EACgB,UAAmB,EAAE;QAEtC,OAAO,MAAM,IAAI,CAAC,4BAA4B,CAAC,cAAc,CAC3D;YACE,cAAc;YACd,YAAY;YACZ,OAAO;SACD,EACR,OAAO,CACR,CAAA;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CACb,IAKC,EACgB,UAAmB,EAAE;QAEtC,OAAO,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,IAAW,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CACf,IAIC,EACgB,UAAmB,EAAE;QAEtC,OAAO,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,IAAW,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;CACF;AAhID,wDAgIC;AArGO;IADL,IAAA,2BAAmB,GAAE;IAQnB,WAAA,IAAA,qBAAa,GAAE,CAAA;;yDANM,SAAS,oBAAT,SAAS;;iDAehC;AAGK;IADL,IAAA,2BAAmB,GAAE;IAInB,WAAA,IAAA,qBAAa,GAAE,CAAA;;;;mEAOjB;AAGK;IADL,IAAA,2BAAmB,GAAE;IAWnB,WAAA,IAAA,qBAAa,GAAE,CAAA;;;;4DAUjB;AAGK;IADL,IAAA,2BAAmB,GAAE;IAWnB,WAAA,IAAA,qBAAa,GAAE,CAAA;;;;4DAUjB;AAGK;IADL,IAAA,2BAAmB,GAAE;IAQnB,WAAA,IAAA,qBAAa,GAAE,CAAA;;;;uDAGjB;AAGK;IADL,IAAA,2BAAmB,GAAE;IAOnB,WAAA,IAAA,qBAAa,GAAE,CAAA;;;;yDAGjB"}
@@ -0,0 +1 @@
1
+ {"root":["../src/index.ts","../src/loaders/index.ts","../src/loaders/utils.ts","../src/migrations/migration20231228143900.ts","../src/models/index.ts","../src/models/workflow-execution.ts","../src/schema/index.ts","../src/services/index.ts","../src/services/workflow-orchestrator.ts","../src/services/workflows-module.ts","../src/types/index.ts","../src/utils/index.ts","../src/utils/workflow-orchestrator-storage.ts"],"version":"5.6.2"}
@@ -1,4 +1,4 @@
1
- import { Logger } from "@medusajs/types";
1
+ import { Logger } from "@medusajs/framework/types";
2
2
  export type InitializeModuleInjectableDependencies = {
3
3
  logger?: Logger;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./workflow-orchestrator-storage"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAA+C"}
@@ -1,25 +1,34 @@
1
- import { DistributedTransaction, DistributedTransactionStorage, TransactionCheckpoint, TransactionStep } from "@medusajs/orchestration";
2
- import { ModulesSdkTypes } from "@medusajs/types";
3
- export declare class InMemoryDistributedTransactionStorage extends DistributedTransactionStorage {
1
+ import { DistributedTransactionType, IDistributedSchedulerStorage, IDistributedTransactionStorage, SchedulerOptions, TransactionCheckpoint, TransactionOptions, TransactionStep } from "@medusajs/framework/orchestration";
2
+ import { Logger, ModulesSdkTypes } from "@medusajs/framework/types";
3
+ export declare class InMemoryDistributedTransactionStorage implements IDistributedTransactionStorage, IDistributedSchedulerStorage {
4
4
  private workflowExecutionService_;
5
+ private logger_;
5
6
  private workflowOrchestratorService_;
6
7
  private storage;
8
+ private scheduled;
7
9
  private retries;
8
10
  private timeouts;
9
- constructor({ workflowExecutionService, }: {
10
- workflowExecutionService: ModulesSdkTypes.InternalModuleService<any>;
11
+ constructor({ workflowExecutionService, logger, }: {
12
+ workflowExecutionService: ModulesSdkTypes.IMedusaInternalService<any>;
13
+ logger: Logger;
11
14
  });
12
15
  setWorkflowOrchestratorService(workflowOrchestratorService: any): void;
13
16
  private saveToDb;
14
17
  private deleteFromDb;
15
- get(key: string): Promise<TransactionCheckpoint | undefined>;
18
+ get(key: string, options?: TransactionOptions): Promise<TransactionCheckpoint | undefined>;
16
19
  list(): Promise<TransactionCheckpoint[]>;
17
- save(key: string, data: TransactionCheckpoint, ttl?: number): Promise<void>;
18
- scheduleRetry(transaction: DistributedTransaction, step: TransactionStep, timestamp: number, interval: number): Promise<void>;
19
- clearRetry(transaction: DistributedTransaction, step: TransactionStep): Promise<void>;
20
- scheduleTransactionTimeout(transaction: DistributedTransaction, timestamp: number, interval: number): Promise<void>;
21
- clearTransactionTimeout(transaction: DistributedTransaction): Promise<void>;
22
- scheduleStepTimeout(transaction: DistributedTransaction, step: TransactionStep, timestamp: number, interval: number): Promise<void>;
23
- clearStepTimeout(transaction: DistributedTransaction, step: TransactionStep): Promise<void>;
20
+ save(key: string, data: TransactionCheckpoint, ttl?: number, options?: TransactionOptions): Promise<void>;
21
+ scheduleRetry(transaction: DistributedTransactionType, step: TransactionStep, timestamp: number, interval: number): Promise<void>;
22
+ clearRetry(transaction: DistributedTransactionType, step: TransactionStep): Promise<void>;
23
+ scheduleTransactionTimeout(transaction: DistributedTransactionType, timestamp: number, interval: number): Promise<void>;
24
+ clearTransactionTimeout(transaction: DistributedTransactionType): Promise<void>;
25
+ scheduleStepTimeout(transaction: DistributedTransactionType, step: TransactionStep, timestamp: number, interval: number): Promise<void>;
26
+ clearStepTimeout(transaction: DistributedTransactionType, step: TransactionStep): Promise<void>;
27
+ schedule(jobDefinition: string | {
28
+ jobId: string;
29
+ }, schedulerOptions: SchedulerOptions): Promise<void>;
30
+ remove(jobId: string): Promise<void>;
31
+ removeAll(): Promise<void>;
32
+ jobHandler(jobId: string): Promise<void>;
24
33
  }
25
34
  //# sourceMappingURL=workflow-orchestrator-storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-orchestrator-storage.d.ts","sourceRoot":"","sources":["../../src/utils/workflow-orchestrator-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EAChB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAKjD,qBAAa,qCAAsC,SAAQ,6BAA6B;IACtF,OAAO,CAAC,yBAAyB,CAA4C;IAC7E,OAAO,CAAC,4BAA4B,CAA6B;IAEjE,OAAO,CAAC,OAAO,CAAgD;IAC/D,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,EACV,wBAAwB,GACzB,EAAE;QACD,wBAAwB,EAAE,eAAe,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;KACrE;IAMD,8BAA8B,CAAC,2BAA2B,KAAA;YAI5C,QAAQ;YAeR,YAAY;IAyBpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAI5D,IAAI,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAIxC,IAAI,CACR,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,qBAAqB,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAoCV,aAAa,CACjB,WAAW,EAAE,sBAAsB,EACnC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAcV,UAAU,CACd,WAAW,EAAE,sBAAsB,EACnC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC;IAWV,0BAA0B,CAC9B,WAAW,EAAE,sBAAsB,EACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAcV,uBAAuB,CAC3B,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,IAAI,CAAC;IAWV,mBAAmB,CACvB,WAAW,EAAE,sBAAsB,EACnC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAcV,gBAAgB,CACpB,WAAW,EAAE,sBAAsB,EACnC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC;CAUjB"}
1
+ {"version":3,"file":"workflow-orchestrator-storage.d.ts","sourceRoot":"","sources":["../../src/utils/workflow-orchestrator-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAKnE,qBAAa,qCACX,YAAW,8BAA8B,EAAE,4BAA4B;IAEvE,OAAO,CAAC,yBAAyB,CAA6C;IAC9E,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,4BAA4B,CAA6B;IAEjE,OAAO,CAAC,OAAO,CAAgD;IAC/D,OAAO,CAAC,SAAS,CAQJ;IACb,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,EACV,wBAAwB,EACxB,MAAM,GACP,EAAE;QACD,wBAAwB,EAAE,eAAe,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;QACrE,MAAM,EAAE,MAAM,CAAA;KACf;IAKD,8BAA8B,CAAC,2BAA2B,KAAA;YAI5C,QAAQ;YAeR,YAAY;IASpB,GAAG,CACP,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAoCvC,IAAI,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAIxC,IAAI,CACR,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,qBAAqB,EAC3B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAmCV,aAAa,CACjB,WAAW,EAAE,0BAA0B,EACvC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAeV,UAAU,CACd,WAAW,EAAE,0BAA0B,EACvC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC;IAWV,0BAA0B,CAC9B,WAAW,EAAE,0BAA0B,EACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAcV,uBAAuB,CAC3B,WAAW,EAAE,0BAA0B,GACtC,OAAO,CAAC,IAAI,CAAC;IAWV,mBAAmB,CACvB,WAAW,EAAE,0BAA0B,EACvC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAcV,gBAAgB,CACpB,WAAW,EAAE,0BAA0B,EACvC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC;IAYV,QAAQ,CACZ,aAAa,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACzC,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,IAAI,CAAC;IAsBV,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1B,UAAU,CAAC,KAAK,EAAE,MAAM;CA6C/B"}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InMemoryDistributedTransactionStorage = void 0;
4
- const orchestration_1 = require("@medusajs/orchestration");
5
- const utils_1 = require("@medusajs/utils");
6
- // eslint-disable-next-line max-len
7
- class InMemoryDistributedTransactionStorage extends orchestration_1.DistributedTransactionStorage {
8
- constructor({ workflowExecutionService, }) {
9
- super();
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const cron_parser_1 = require("cron-parser");
6
+ class InMemoryDistributedTransactionStorage {
7
+ constructor({ workflowExecutionService, logger, }) {
10
8
  this.storage = new Map();
9
+ this.scheduled = new Map();
11
10
  this.retries = new Map();
12
11
  this.timeouts = new Map();
13
12
  this.workflowExecutionService_ = workflowExecutionService;
13
+ this.logger_ = logger;
14
14
  }
15
15
  setWorkflowOrchestratorService(workflowOrchestratorService) {
16
16
  this.workflowOrchestratorService_ = workflowOrchestratorService;
@@ -37,30 +37,38 @@ class InMemoryDistributedTransactionStorage extends orchestration_1.DistributedT
37
37
  },
38
38
  ]);
39
39
  }
40
- /*private stringifyWithSymbol(key, value) {
41
- if (key === "__type" && typeof value === "symbol") {
42
- return Symbol.keyFor(value)
43
- }
44
-
45
- return value
46
- }
47
-
48
- private jsonWithSymbol(key, value) {
49
- if (key === "__type" && typeof value === "string") {
50
- return Symbol.for(value)
51
- }
52
-
53
- return value
54
- }*/
55
- async get(key) {
56
- return this.storage.get(key);
40
+ async get(key, options) {
41
+ const data = this.storage.get(key);
42
+ if (data) {
43
+ return data;
44
+ }
45
+ const { idempotent } = options ?? {};
46
+ if (!idempotent) {
47
+ return;
48
+ }
49
+ const [_, workflowId, transactionId] = key.split(":");
50
+ const trx = await this.workflowExecutionService_
51
+ .retrieve({
52
+ workflow_id: workflowId,
53
+ transaction_id: transactionId,
54
+ }, {
55
+ select: ["execution", "context"],
56
+ })
57
+ .catch(() => undefined);
58
+ if (trx) {
59
+ return {
60
+ flow: trx.execution,
61
+ context: trx.context.data,
62
+ errors: trx.context.errors,
63
+ };
64
+ }
65
+ return;
57
66
  }
58
67
  async list() {
59
68
  return Array.from(this.storage.values());
60
69
  }
61
- async save(key, data, ttl) {
70
+ async save(key, data, ttl, options) {
62
71
  this.storage.set(key, data);
63
- let retentionTime;
64
72
  /**
65
73
  * Store the retention time only if the transaction is done, failed or reverted.
66
74
  * From that moment, this tuple can be later on archived or deleted after the retention time.
@@ -70,15 +78,15 @@ class InMemoryDistributedTransactionStorage extends orchestration_1.DistributedT
70
78
  utils_1.TransactionState.FAILED,
71
79
  utils_1.TransactionState.REVERTED,
72
80
  ].includes(data.flow.state);
81
+ const { retentionTime, idempotent } = options ?? {};
73
82
  if (hasFinished) {
74
- retentionTime = data.flow.options?.retentionTime;
75
83
  Object.assign(data, {
76
84
  retention_time: retentionTime,
77
85
  });
78
86
  }
79
87
  const stringifiedData = JSON.stringify(data);
80
88
  const parsedData = JSON.parse(stringifiedData);
81
- if (hasFinished && !retentionTime) {
89
+ if (hasFinished && !retentionTime && !idempotent) {
82
90
  await this.deleteFromDb(parsedData);
83
91
  }
84
92
  else {
@@ -93,6 +101,7 @@ class InMemoryDistributedTransactionStorage extends orchestration_1.DistributedT
93
101
  const inter = setTimeout(async () => {
94
102
  await this.workflowOrchestratorService_.run(workflowId, {
95
103
  transactionId,
104
+ logOnError: true,
96
105
  throwOnError: false,
97
106
  });
98
107
  }, interval * 1e3);
@@ -148,5 +157,73 @@ class InMemoryDistributedTransactionStorage extends orchestration_1.DistributedT
148
157
  this.timeouts.delete(key);
149
158
  }
150
159
  }
160
+ /* Scheduler storage methods */
161
+ async schedule(jobDefinition, schedulerOptions) {
162
+ const jobId = typeof jobDefinition === "string" ? jobDefinition : jobDefinition.jobId;
163
+ // In order to ensure that the schedule configuration is always up to date, we first cancel an existing job, if there was one
164
+ // any only then we add the new one.
165
+ await this.remove(jobId);
166
+ const expression = (0, cron_parser_1.parseExpression)(schedulerOptions.cron);
167
+ const nextExecution = expression.next().getTime() - Date.now();
168
+ const timer = setTimeout(async () => {
169
+ this.jobHandler(jobId);
170
+ }, nextExecution);
171
+ this.scheduled.set(jobId, {
172
+ timer,
173
+ expression,
174
+ numberOfExecutions: 0,
175
+ config: schedulerOptions,
176
+ });
177
+ }
178
+ async remove(jobId) {
179
+ const job = this.scheduled.get(jobId);
180
+ if (!job) {
181
+ return;
182
+ }
183
+ clearTimeout(job.timer);
184
+ this.scheduled.delete(jobId);
185
+ }
186
+ async removeAll() {
187
+ for (const [key] of this.scheduled) {
188
+ await this.remove(key);
189
+ }
190
+ }
191
+ async jobHandler(jobId) {
192
+ const job = this.scheduled.get(jobId);
193
+ if (!job) {
194
+ return;
195
+ }
196
+ if (job.config?.numberOfExecutions !== undefined &&
197
+ job.config.numberOfExecutions <= job.numberOfExecutions) {
198
+ this.scheduled.delete(jobId);
199
+ return;
200
+ }
201
+ const nextExecution = job.expression.next().getTime() - Date.now();
202
+ const timer = setTimeout(async () => {
203
+ this.jobHandler(jobId);
204
+ }, nextExecution);
205
+ this.scheduled.set(jobId, {
206
+ timer,
207
+ expression: job.expression,
208
+ numberOfExecutions: (job.numberOfExecutions ?? 0) + 1,
209
+ config: job.config,
210
+ });
211
+ try {
212
+ // With running the job after setting a new timer we basically allow for concurrent runs, unless we add idempotency keys once they are supported.
213
+ await this.workflowOrchestratorService_.run(jobId, {
214
+ logOnError: true,
215
+ throwOnError: false,
216
+ });
217
+ }
218
+ catch (e) {
219
+ if (e instanceof utils_1.MedusaError && e.type === utils_1.MedusaError.Types.NOT_FOUND) {
220
+ this.logger_?.warn(`Tried to execute a scheduled workflow with ID ${jobId} that does not exist, removing it from the scheduler.`);
221
+ await this.remove(jobId);
222
+ return;
223
+ }
224
+ throw e;
225
+ }
226
+ }
151
227
  }
152
228
  exports.InMemoryDistributedTransactionStorage = InMemoryDistributedTransactionStorage;
229
+ //# sourceMappingURL=workflow-orchestrator-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-orchestrator-storage.js","sourceRoot":"","sources":["../../src/utils/workflow-orchestrator-storage.ts"],"names":[],"mappings":";;;AAUA,qDAAyE;AAEzE,6CAA6D;AAE7D,MAAa,qCAAqC;IAoBhD,YAAY,EACV,wBAAwB,EACxB,MAAM,GAIP;QAnBO,YAAO,GAAuC,IAAI,GAAG,EAAE,CAAA;QACvD,cAAS,GAQb,IAAI,GAAG,EAAE,CAAA;QACL,YAAO,GAAyB,IAAI,GAAG,EAAE,CAAA;QACzC,aAAQ,GAAyB,IAAI,GAAG,EAAE,CAAA;QAShD,IAAI,CAAC,yBAAyB,GAAG,wBAAwB,CAAA;QACzD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,8BAA8B,CAAC,2BAA2B;QACxD,IAAI,CAAC,4BAA4B,GAAG,2BAA2B,CAAA;IACjE,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAA2B;QAChD,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC;YAC1C;gBACE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAC9B,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;gBACvC,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI,CAAC,OAAO;oBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB;gBACD,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;aACvB;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAA2B;QACpD,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC;YAC1C;gBACE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAC9B,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;aACxC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,GAAW,EACX,OAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAElC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAM;QACR,CAAC;QAED,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACrD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,yBAAyB;aAC7C,QAAQ,CACP;YACE,WAAW,EAAE,UAAU;YACvB,cAAc,EAAE,aAAa;SAC9B,EACD;YACE,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;SACjC,CACF;aACA,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAEzB,IAAI,GAAG,EAAE,CAAC;YACR,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,SAAS;gBACnB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;gBACzB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;aAC3B,CAAA;QACH,CAAC;QAED,OAAM;IACR,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CACR,GAAW,EACX,IAA2B,EAC3B,GAAY,EACZ,OAA4B;QAE5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAE3B;;;WAGG;QACH,MAAM,WAAW,GAAG;YAClB,wBAAgB,CAAC,IAAI;YACrB,wBAAgB,CAAC,MAAM;YACvB,wBAAgB,CAAC,QAAQ;SAC1B,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAE3B,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAEnD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBAClB,cAAc,EAAE,aAAa;aAC9B,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QAE9C,IAAI,WAAW,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAuC,EACvC,IAAqB,EACrB,SAAiB,EACjB,QAAgB;QAEhB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,CAAA;QAE1D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,UAAU,EAAE;gBACtD,aAAa;gBACb,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAA;QACJ,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;QAElB,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,aAAa,IAAI,IAAI,CAAC,EAAE,EAAE,CAAA;QACvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU,CACd,WAAuC,EACvC,IAAqB;QAErB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,CAAA;QAE1D,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,aAAa,IAAI,IAAI,CAAC,EAAE,EAAE,CAAA;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAuB,CAAC,CAAA;YACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,WAAuC,EACvC,SAAiB,EACjB,QAAgB;QAEhB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,CAAA;QAE1D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,UAAU,EAAE;gBACtD,aAAa;gBACb,YAAY,EAAE,KAAK;aACpB,CAAC,CAAA;QACJ,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;QAElB,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,aAAa,EAAE,CAAA;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,WAAuC;QAEvC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,CAAA;QAE1D,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,aAAa,EAAE,CAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAuB,CAAC,CAAA;YACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,WAAuC,EACvC,IAAqB,EACrB,SAAiB,EACjB,QAAgB;QAEhB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,CAAA;QAE1D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,UAAU,EAAE;gBACtD,aAAa;gBACb,YAAY,EAAE,KAAK;aACpB,CAAC,CAAA;QACJ,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;QAElB,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,aAAa,IAAI,IAAI,CAAC,EAAE,EAAE,CAAA;QACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,WAAuC,EACvC,IAAqB;QAErB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,WAAW,CAAA;QAE1D,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,aAAa,IAAI,IAAI,CAAC,EAAE,EAAE,CAAA;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAuB,CAAC,CAAA;YACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,QAAQ,CACZ,aAAyC,EACzC,gBAAkC;QAElC,MAAM,KAAK,GACT,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAA;QAEzE,6HAA6H;QAC7H,oCAAoC;QACpC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACxB,MAAM,UAAU,GAAG,IAAA,6BAAe,EAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACzD,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE9D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC,EAAE,aAAa,CAAC,CAAA;QAEjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YACxB,KAAK;YACL,UAAU;YACV,kBAAkB,EAAE,CAAC;YACrB,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAM;QACR,CAAC;QAED,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAM;QACR,CAAC;QAED,IACE,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,SAAS;YAC5C,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,GAAG,CAAC,kBAAkB,EACvD,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC5B,OAAM;QACR,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAClE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC,EAAE,aAAa,CAAC,CAAA;QAEjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YACxB,KAAK;YACL,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,kBAAkB,EAAE,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC;YACrD,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,iJAAiJ;YACjJ,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,EAAE;gBACjD,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,mBAAW,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvE,IAAI,CAAC,OAAO,EAAE,IAAI,CAChB,iDAAiD,KAAK,uDAAuD,CAC9G,CAAA;gBAED,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,OAAM;YACR,CAAC;YAED,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;CACF;AAvUD,sFAuUC"}
package/package.json CHANGED
@@ -1,14 +1,17 @@
1
1
  {
2
2
  "name": "@medusajs/workflow-engine-inmemory",
3
- "version": "0.0.5",
3
+ "version": "1.0.0-rc-20241001083650",
4
4
  "description": "Medusa Workflow Orchestrator module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
- "dist"
8
+ "dist",
9
+ "!dist/**/__tests__",
10
+ "!dist/**/__mocks__",
11
+ "!dist/**/__fixtures__"
9
12
  ],
10
13
  "engines": {
11
- "node": ">=16"
14
+ "node": ">=20"
12
15
  },
13
16
  "repository": {
14
17
  "type": "git",
@@ -23,10 +26,10 @@
23
26
  "scripts": {
24
27
  "watch": "tsc --build --watch",
25
28
  "watch:test": "tsc --build tsconfig.spec.json --watch",
26
- "prepublishOnly": "cross-env NODE_ENV=production tsc --build && tsc-alias -p tsconfig.json",
27
- "build": "rimraf dist && tsc --build && tsc-alias -p tsconfig.json",
29
+ "resolve:aliases": "tsc --showConfig -p tsconfig.json > tsconfig.resolved.json && tsc-alias -p tsconfig.resolved.json && rimraf tsconfig.resolved.json",
30
+ "build": "rimraf dist && tsc --build && npm run resolve:aliases",
28
31
  "test": "jest --passWithNoTests --runInBand --bail --forceExit -- src",
29
- "test:integration": "jest --forceExit -- integration-tests/**/__tests__/**/*.ts",
32
+ "test:integration": "jest --silent --forceExit -- integration-tests/**/__tests__/**/*.ts",
30
33
  "migration:generate": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:generate",
31
34
  "migration:initial": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:create --initial",
32
35
  "migration:create": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:create",
@@ -34,26 +37,28 @@
34
37
  "orm:cache:clear": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm cache:clear"
35
38
  },
36
39
  "devDependencies": {
40
+ "@medusajs/framework": "1.0.0-rc-20241001083650",
37
41
  "@mikro-orm/cli": "5.9.7",
38
- "cross-env": "^5.2.1",
39
- "jest": "^29.6.3",
40
- "medusa-test-utils": "^1.1.45",
42
+ "@mikro-orm/core": "5.9.7",
43
+ "@mikro-orm/migrations": "5.9.7",
44
+ "@mikro-orm/postgresql": "5.9.7",
45
+ "@swc/core": "^1.7.28",
46
+ "@swc/jest": "^0.2.36",
47
+ "jest": "^29.7.0",
48
+ "medusa-test-utils": "2.0.0-rc-20241001083650",
41
49
  "rimraf": "^3.0.2",
42
- "ts-jest": "^29.1.1",
43
- "ts-node": "^10.9.1",
44
50
  "tsc-alias": "^1.8.6",
45
- "typescript": "^5.1.6"
51
+ "typescript": "^5.6.2"
46
52
  },
47
53
  "dependencies": {
48
- "@medusajs/modules-sdk": "^1.12.12",
49
- "@medusajs/types": "^1.11.17",
50
- "@medusajs/utils": "^1.11.10",
51
- "@medusajs/workflows-sdk": "^0.1.8",
54
+ "cron-parser": "^4.9.0",
55
+ "ulid": "^2.3.0"
56
+ },
57
+ "peerDependencies": {
58
+ "@medusajs/framework": "1.0.0-rc-20241001083650",
52
59
  "@mikro-orm/core": "5.9.7",
53
60
  "@mikro-orm/migrations": "5.9.7",
54
61
  "@mikro-orm/postgresql": "5.9.7",
55
- "awilix": "^8.0.0",
56
- "dotenv": "^16.4.5",
57
- "knex": "2.4.2"
62
+ "awilix": "^8.0.1"
58
63
  }
59
64
  }
@@ -1,6 +0,0 @@
1
- import { ExternalModuleDeclaration, InternalModuleDeclaration } from "@medusajs/modules-sdk";
2
- import { ModulesSdkTypes } from "@medusajs/types";
3
- import { IWorkflowEngineService } from "@medusajs/workflows-sdk";
4
- import { InitializeModuleInjectableDependencies } from "../types";
5
- export declare const initialize: (options?: ModulesSdkTypes.ModuleServiceInitializeOptions | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions | ExternalModuleDeclaration | InternalModuleDeclaration, injectedDependencies?: InitializeModuleInjectableDependencies) => Promise<IWorkflowEngineService>;
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/initialize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EAI1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,EAAE,sCAAsC,EAAE,MAAM,UAAU,CAAA;AAEjE,eAAO,MAAM,UAAU,aAEjB,gBAAgB,8BAA8B,GAC9C,gBAAgB,6CAA6C,GAC7D,yBAAyB,GACzB,yBAAyB,yBACN,sCAAsC,KAC5D,QAAQ,sBAAsB,CAchC,CAAA"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initialize = void 0;
4
- const modules_sdk_1 = require("@medusajs/modules-sdk");
5
- const module_definition_1 = require("../module-definition");
6
- const initialize = async (options, injectedDependencies) => {
7
- const loaded =
8
- // eslint-disable-next-line max-len
9
- await modules_sdk_1.MedusaModule.bootstrap({
10
- moduleKey: modules_sdk_1.Modules.WORKFLOW_ENGINE,
11
- defaultPath: modules_sdk_1.MODULE_PACKAGE_NAMES[modules_sdk_1.Modules.WORKFLOW_ENGINE],
12
- declaration: options,
13
- injectedDependencies,
14
- moduleExports: module_definition_1.moduleDefinition,
15
- });
16
- return loaded[modules_sdk_1.Modules.WORKFLOW_ENGINE];
17
- };
18
- exports.initialize = initialize;
@@ -1,8 +0,0 @@
1
- import { ModuleJoinerConfig } from "@medusajs/types";
2
- import { MapToConfig } from "@medusajs/utils";
3
- export declare const LinkableKeys: {
4
- workflow_execution_id: string;
5
- };
6
- export declare const entityNameToLinkableKeysMap: MapToConfig;
7
- export declare const joinerConfig: ModuleJoinerConfig;
8
- //# sourceMappingURL=joiner-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"joiner-config.d.ts","sourceRoot":"","sources":["../src/joiner-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAI7C,eAAO,MAAM,YAAY;;CAExB,CAAA;AAWD,eAAO,MAAM,2BAA2B,EAAE,WAAmC,CAAA;AAE7E,eAAO,MAAM,YAAY,EAAE,kBAY1B,CAAA"}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.joinerConfig = exports.entityNameToLinkableKeysMap = exports.LinkableKeys = void 0;
7
- const modules_sdk_1 = require("@medusajs/modules-sdk");
8
- const _models_1 = require("./models");
9
- const schema_1 = __importDefault(require("./schema"));
10
- exports.LinkableKeys = {
11
- workflow_execution_id: _models_1.WorkflowExecution.name,
12
- };
13
- const entityLinkableKeysMap = {};
14
- Object.entries(exports.LinkableKeys).forEach(([key, value]) => {
15
- entityLinkableKeysMap[value] ?? (entityLinkableKeysMap[value] = []);
16
- entityLinkableKeysMap[value].push({
17
- mapTo: key,
18
- valueFrom: key.split("_").pop(),
19
- });
20
- });
21
- exports.entityNameToLinkableKeysMap = entityLinkableKeysMap;
22
- exports.joinerConfig = {
23
- serviceName: modules_sdk_1.Modules.WORKFLOW_ENGINE,
24
- primaryKeys: ["id"],
25
- schema: schema_1.default,
26
- linkableKeys: exports.LinkableKeys,
27
- alias: {
28
- name: ["workflow_execution", "workflow_executions"],
29
- args: {
30
- entity: _models_1.WorkflowExecution.name,
31
- methodSuffix: "WorkflowExecution",
32
- },
33
- },
34
- };
@@ -1,5 +0,0 @@
1
- import { InternalModuleDeclaration, LoaderOptions } from "@medusajs/modules-sdk";
2
- import { ModulesSdkTypes } from "@medusajs/types";
3
- declare const _default: ({ options, container, logger, }: LoaderOptions<ModulesSdkTypes.ModuleServiceInitializeOptions | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions>, moduleDeclaration?: InternalModuleDeclaration) => Promise<void>;
4
- export default _default;
5
- //# sourceMappingURL=connection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/loaders/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,aAAa,EAEd,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;0DAU5C,cACC,gBAAgB,8BAA8B,GAC9C,gBAAgB,6CAA6C,CAChE,sBACmB,yBAAyB,KAC5C,QAAQ,IAAI,CAAC;AAVhB,wBAyBC"}