@acmekit/workflow-engine-redis 2.13.1

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 (87) hide show
  1. package/README.md +1 -0
  2. package/dist/index.d.ts +7 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +11 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/loaders/index.d.ts +3 -0
  7. package/dist/loaders/index.d.ts.map +1 -0
  8. package/dist/loaders/index.js +11 -0
  9. package/dist/loaders/index.js.map +1 -0
  10. package/dist/loaders/redis.d.ts +4 -0
  11. package/dist/loaders/redis.d.ts.map +1 -0
  12. package/dist/loaders/redis.js +113 -0
  13. package/dist/loaders/redis.js.map +1 -0
  14. package/dist/loaders/utils.d.ts +6 -0
  15. package/dist/loaders/utils.d.ts.map +1 -0
  16. package/dist/loaders/utils.js +11 -0
  17. package/dist/loaders/utils.js.map +1 -0
  18. package/dist/migrations/Migration20231228143900.d.ts +6 -0
  19. package/dist/migrations/Migration20231228143900.d.ts.map +1 -0
  20. package/dist/migrations/Migration20231228143900.js +40 -0
  21. package/dist/migrations/Migration20231228143900.js.map +1 -0
  22. package/dist/migrations/Migration20241206123341.d.ts +5 -0
  23. package/dist/migrations/Migration20241206123341.d.ts.map +1 -0
  24. package/dist/migrations/Migration20241206123341.js +19 -0
  25. package/dist/migrations/Migration20241206123341.js.map +1 -0
  26. package/dist/migrations/Migration20250120111059.d.ts +6 -0
  27. package/dist/migrations/Migration20250120111059.d.ts.map +1 -0
  28. package/dist/migrations/Migration20250120111059.js +14 -0
  29. package/dist/migrations/Migration20250120111059.js.map +1 -0
  30. package/dist/migrations/Migration20250128174354.d.ts +6 -0
  31. package/dist/migrations/Migration20250128174354.d.ts.map +1 -0
  32. package/dist/migrations/Migration20250128174354.js +24 -0
  33. package/dist/migrations/Migration20250128174354.js.map +1 -0
  34. package/dist/migrations/Migration20250505101505.d.ts +6 -0
  35. package/dist/migrations/Migration20250505101505.d.ts.map +1 -0
  36. package/dist/migrations/Migration20250505101505.js +40 -0
  37. package/dist/migrations/Migration20250505101505.js.map +1 -0
  38. package/dist/migrations/Migration20250819110923.d.ts +6 -0
  39. package/dist/migrations/Migration20250819110923.d.ts.map +1 -0
  40. package/dist/migrations/Migration20250819110923.js +14 -0
  41. package/dist/migrations/Migration20250819110923.js.map +1 -0
  42. package/dist/migrations/Migration20250819110924.d.ts +6 -0
  43. package/dist/migrations/Migration20250819110924.d.ts.map +1 -0
  44. package/dist/migrations/Migration20250819110924.js +16 -0
  45. package/dist/migrations/Migration20250819110924.js.map +1 -0
  46. package/dist/migrations/Migration20250908080326.d.ts +6 -0
  47. package/dist/migrations/Migration20250908080326.d.ts.map +1 -0
  48. package/dist/migrations/Migration20250908080326.js +20 -0
  49. package/dist/migrations/Migration20250908080326.js.map +1 -0
  50. package/dist/models/index.d.ts +2 -0
  51. package/dist/models/index.d.ts.map +1 -0
  52. package/dist/models/index.js +6 -0
  53. package/dist/models/index.js.map +1 -0
  54. package/dist/models/workflow-execution.d.ts +12 -0
  55. package/dist/models/workflow-execution.d.ts.map +1 -0
  56. package/dist/models/workflow-execution.js +60 -0
  57. package/dist/models/workflow-execution.js.map +1 -0
  58. package/dist/schema/index.d.ts +3 -0
  59. package/dist/schema/index.d.ts.map +1 -0
  60. package/dist/schema/index.js +26 -0
  61. package/dist/schema/index.js.map +1 -0
  62. package/dist/services/index.d.ts +3 -0
  63. package/dist/services/index.d.ts.map +1 -0
  64. package/dist/services/index.js +19 -0
  65. package/dist/services/index.js.map +1 -0
  66. package/dist/services/workflow-orchestrator.d.ts +101 -0
  67. package/dist/services/workflow-orchestrator.d.ts.map +1 -0
  68. package/dist/services/workflow-orchestrator.js +660 -0
  69. package/dist/services/workflow-orchestrator.js.map +1 -0
  70. package/dist/services/workflows-module.d.ts +165 -0
  71. package/dist/services/workflows-module.d.ts.map +1 -0
  72. package/dist/services/workflows-module.js +212 -0
  73. package/dist/services/workflows-module.js.map +1 -0
  74. package/dist/tsconfig.tsbuildinfo +1 -0
  75. package/dist/types/index.d.ts +138 -0
  76. package/dist/types/index.d.ts.map +1 -0
  77. package/dist/types/index.js +3 -0
  78. package/dist/types/index.js.map +1 -0
  79. package/dist/utils/index.d.ts +2 -0
  80. package/dist/utils/index.d.ts.map +1 -0
  81. package/dist/utils/index.js +18 -0
  82. package/dist/utils/index.js.map +1 -0
  83. package/dist/utils/workflow-orchestrator-storage.d.ts +72 -0
  84. package/dist/utils/workflow-orchestrator-storage.d.ts.map +1 -0
  85. package/dist/utils/workflow-orchestrator-storage.js +621 -0
  86. package/dist/utils/workflow-orchestrator-storage.js.map +1 -0
  87. package/package.json +50 -0
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowExecution = void 0;
4
+ const orchestration_1 = require("@acmekit/framework/orchestration");
5
+ const utils_1 = require("@acmekit/framework/utils");
6
+ exports.WorkflowExecution = utils_1.model
7
+ .define("workflow_execution", {
8
+ id: utils_1.model.id({ prefix: "wf_exec" }),
9
+ workflow_id: utils_1.model.text().primaryKey(),
10
+ transaction_id: utils_1.model.text().primaryKey(),
11
+ run_id: utils_1.model.text().primaryKey(),
12
+ execution: utils_1.model.json().nullable(),
13
+ context: utils_1.model.json().nullable(),
14
+ state: utils_1.model.enum(orchestration_1.TransactionState),
15
+ retention_time: utils_1.model.number().nullable(),
16
+ })
17
+ .indexes([
18
+ {
19
+ on: ["id"],
20
+ where: "deleted_at IS NULL",
21
+ },
22
+ {
23
+ on: ["workflow_id"],
24
+ where: "deleted_at IS NULL",
25
+ },
26
+ {
27
+ on: ["transaction_id"],
28
+ where: "deleted_at IS NULL",
29
+ },
30
+ {
31
+ on: ["workflow_id", "transaction_id", "run_id"],
32
+ unique: true,
33
+ where: "deleted_at IS NULL",
34
+ },
35
+ {
36
+ on: ["state"],
37
+ where: "deleted_at IS NULL",
38
+ },
39
+ {
40
+ on: ["run_id"],
41
+ where: "deleted_at IS NULL",
42
+ },
43
+ {
44
+ on: ["workflow_id", "transaction_id"],
45
+ where: "deleted_at IS NULL",
46
+ },
47
+ {
48
+ on: ["state", "updated_at"],
49
+ where: "deleted_at IS NULL",
50
+ },
51
+ {
52
+ on: ["retention_time", "updated_at", "state"],
53
+ where: "deleted_at IS NULL AND retention_time IS NOT NULL",
54
+ },
55
+ {
56
+ on: ["updated_at", "retention_time"],
57
+ where: "deleted_at IS NULL AND retention_time IS NOT NULL AND state IN ('done', 'failed', 'reverted')",
58
+ },
59
+ ]);
60
+ //# sourceMappingURL=workflow-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-execution.js","sourceRoot":"","sources":["../../src/models/workflow-execution.ts"],"names":[],"mappings":";;;AAAA,oEAAmE;AACnE,oDAAgD;AAEnC,QAAA,iBAAiB,GAAG,aAAK;KACnC,MAAM,CAAC,oBAAoB,EAAE;IAC5B,EAAE,EAAE,aAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACnC,WAAW,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IACtC,cAAc,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IACzC,MAAM,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE;IACjC,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,aAAK,CAAC,IAAI,CAAC,gCAAgB,CAAC;IACnC,cAAc,EAAE,aAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,OAAO,CAAC;IACP;QACE,EAAE,EAAE,CAAC,IAAI,CAAC;QACV,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,aAAa,CAAC;QACnB,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,gBAAgB,CAAC;QACtB,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC;QAC/C,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,OAAO,CAAC;QACb,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,QAAQ,CAAC;QACd,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC;QACrC,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;QAC3B,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,EAAE,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC;QAC7C,KAAK,EAAE,mDAAmD;KAC3D;IACD;QACE,EAAE,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;QACpC,KAAK,EACH,+FAA+F;KAClG;CACF,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ declare const _default: "\nenum TransactionState {\n NOT_STARTED\n INVOKING\n WAITING_TO_COMPENSATE\n COMPENSATING\n DONE\n REVERTED\n FAILED\n}\n\ntype WorkflowExecution {\n id: ID!\n created_at: DateTime!\n updated_at: DateTime!\n deleted_at: DateTime\n workflow_id: string\n transaction_id: string\n execution: JSON\n context: JSON\n state: TransactionState\n}\n";
2
+ export default _default;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":";AAAA,wBAsBC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = `
4
+ enum TransactionState {
5
+ NOT_STARTED
6
+ INVOKING
7
+ WAITING_TO_COMPENSATE
8
+ COMPENSATING
9
+ DONE
10
+ REVERTED
11
+ FAILED
12
+ }
13
+
14
+ type WorkflowExecution {
15
+ id: ID!
16
+ created_at: DateTime!
17
+ updated_at: DateTime!
18
+ deleted_at: DateTime
19
+ workflow_id: string
20
+ transaction_id: string
21
+ execution: JSON
22
+ context: JSON
23
+ state: TransactionState
24
+ }
25
+ `;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":";;AAAA,kBAAe;;;;;;;;;;;;;;;;;;;;;;CAsBd,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "./workflow-orchestrator";
2
+ export * from "./workflows-module";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./workflow-orchestrator"), exports);
18
+ __exportStar(require("./workflows-module"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC;AACvC,qDAAkC"}
@@ -0,0 +1,101 @@
1
+ import { DistributedTransactionEvents, DistributedTransactionType, TransactionStep } from "@acmekit/framework/orchestration";
2
+ import { ContainerLike, Context, AcmeKitContainer } from "@acmekit/framework/types";
3
+ import { TransactionState } from "@acmekit/framework/utils";
4
+ import { FlowCancelOptions, FlowRunOptions, ReturnWorkflow } from "@acmekit/framework/workflows-sdk";
5
+ import Redis from "ioredis";
6
+ import type { RedisDistributedTransactionStorage } from "../utils";
7
+ export type WorkflowOrchestratorRunOptions<T> = Omit<FlowRunOptions<T>, "container"> & {
8
+ transactionId?: string;
9
+ runId?: string;
10
+ container?: ContainerLike;
11
+ };
12
+ export type WorkflowOrchestratorCancelOptions = Omit<FlowCancelOptions, "transaction" | "transactionId" | "container"> & {
13
+ transactionId: string;
14
+ runId?: string;
15
+ container?: ContainerLike;
16
+ };
17
+ type RegisterStepSuccessOptions<T> = Omit<WorkflowOrchestratorRunOptions<T>, "transactionId" | "input">;
18
+ type RegisterStepFailureOptions<T> = Omit<WorkflowOrchestratorRunOptions<T>, "transactionId" | "input"> & {
19
+ forcePermanentFailure?: boolean;
20
+ };
21
+ type RetryStepOptions<T> = Omit<WorkflowOrchestratorRunOptions<T>, "transactionId" | "input" | "resultFrom">;
22
+ type IdempotencyKeyParts = {
23
+ workflowId: string;
24
+ transactionId: string;
25
+ stepId: string;
26
+ action: "invoke" | "compensate";
27
+ };
28
+ type NotifyOptions = {
29
+ eventType: keyof DistributedTransactionEvents;
30
+ isFlowAsync: boolean;
31
+ workflowId: string;
32
+ transactionId?: string;
33
+ step?: TransactionStep;
34
+ response?: unknown;
35
+ result?: unknown;
36
+ errors?: unknown[];
37
+ state?: TransactionState;
38
+ };
39
+ type SubscriberHandler = {
40
+ (input: NotifyOptions): void;
41
+ } & {
42
+ _id?: string;
43
+ };
44
+ type SubscribeOptions = {
45
+ workflowId: string;
46
+ transactionId?: string;
47
+ subscriber: SubscriberHandler;
48
+ subscriberId?: string;
49
+ };
50
+ type UnsubscribeOptions = {
51
+ workflowId: string;
52
+ transactionId?: string;
53
+ subscriberOrId: string | SubscriberHandler;
54
+ };
55
+ export declare class WorkflowOrchestratorService {
56
+ #private;
57
+ private instanceId;
58
+ protected redisPublisher: Redis;
59
+ protected redisSubscriber: Redis;
60
+ protected container_: AcmeKitContainer;
61
+ private static subscribers;
62
+ protected redisDistributedTransactionStorage_: RedisDistributedTransactionStorage;
63
+ constructor({ dataLoaderOnly, redisDistributedTransactionStorage, redisPublisher, redisSubscriber, sharedContainer, }: {
64
+ dataLoaderOnly: boolean;
65
+ redisDistributedTransactionStorage: RedisDistributedTransactionStorage;
66
+ workflowOrchestratorService: WorkflowOrchestratorService;
67
+ redisPublisher: Redis;
68
+ redisSubscriber: Redis;
69
+ sharedContainer: AcmeKitContainer;
70
+ });
71
+ onApplicationShutdown(): Promise<void>;
72
+ onApplicationPrepareShutdown(): Promise<void>;
73
+ onApplicationStart(): Promise<void>;
74
+ private triggerParentStep;
75
+ run<T = unknown>(workflowIdOrWorkflow: string | ReturnWorkflow<any, any, any>, options?: WorkflowOrchestratorRunOptions<T>): Promise<any>;
76
+ cancel(workflowIdOrWorkflow: string | ReturnWorkflow<any, any, any>, options?: WorkflowOrchestratorCancelOptions): Promise<any>;
77
+ getRunningTransaction(workflowId: string, transactionId: string, context?: Context): Promise<DistributedTransactionType>;
78
+ retryStep<T = unknown>({ idempotencyKey, options, }: {
79
+ idempotencyKey: string | IdempotencyKeyParts;
80
+ options?: RetryStepOptions<T>;
81
+ }): Promise<any>;
82
+ setStepSuccess<T = unknown>({ idempotencyKey, stepResponse, options, }: {
83
+ idempotencyKey: string | IdempotencyKeyParts;
84
+ stepResponse: unknown;
85
+ options?: RegisterStepSuccessOptions<T>;
86
+ }): Promise<any>;
87
+ setStepFailure<T = unknown>({ idempotencyKey, stepResponse, options, }: {
88
+ idempotencyKey: string | IdempotencyKeyParts;
89
+ stepResponse: unknown;
90
+ options?: RegisterStepFailureOptions<T>;
91
+ }): Promise<any>;
92
+ subscribe({ workflowId, transactionId, subscriber, subscriberId, }: SubscribeOptions): void;
93
+ unsubscribe({ workflowId, transactionId, subscriberOrId, }: UnsubscribeOptions): void;
94
+ private notify;
95
+ private processSubscriberNotifications;
96
+ private getChannelName;
97
+ private buildWorkflowEvents;
98
+ private buildIdempotencyKeyAndParts;
99
+ }
100
+ export {};
101
+ //# sourceMappingURL=workflow-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-orchestrator.d.ts","sourceRoot":"","sources":["../../src/services/workflow-orchestrator.ts"],"names":[],"mappings":"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"}