@defai.digital/cross-cutting 13.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +214 -0
- package/dist/dead-letter-queue.d.ts +76 -0
- package/dist/dead-letter-queue.d.ts.map +1 -0
- package/dist/dead-letter-queue.js +228 -0
- package/dist/dead-letter-queue.js.map +1 -0
- package/dist/idempotency-manager.d.ts +66 -0
- package/dist/idempotency-manager.d.ts.map +1 -0
- package/dist/idempotency-manager.js +220 -0
- package/dist/idempotency-manager.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/retention-manager.d.ts +89 -0
- package/dist/retention-manager.d.ts.map +1 -0
- package/dist/retention-manager.js +308 -0
- package/dist/retention-manager.js.map +1 -0
- package/dist/saga-manager.d.ts +57 -0
- package/dist/saga-manager.d.ts.map +1 -0
- package/dist/saga-manager.js +202 -0
- package/dist/saga-manager.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retention-manager.js","sourceRoot":"","sources":["../src/retention-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Saga Manager Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements the saga pattern for distributed transaction compensation.
|
|
5
|
+
* Enables automatic rollback of completed steps on failure.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-SG-001: Compensations run in reverse order on failure
|
|
9
|
+
* - INV-SG-002: Required compensations must succeed
|
|
10
|
+
* - INV-SG-003: Saga state transitions are valid
|
|
11
|
+
*/
|
|
12
|
+
import { type SagaDefinition, type SagaState, type SagaStep, type CompensationAction, type SagaResult } from '@defai.digital/contracts';
|
|
13
|
+
/**
|
|
14
|
+
* Saga step executor function
|
|
15
|
+
*/
|
|
16
|
+
export type SagaStepExecutor<T = unknown> = (step: SagaStep, context: Record<string, unknown>) => Promise<T>;
|
|
17
|
+
/**
|
|
18
|
+
* Compensation executor function
|
|
19
|
+
*/
|
|
20
|
+
export type CompensationExecutor = (action: CompensationAction, context: Record<string, unknown>) => Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Saga manager for orchestrating distributed transactions
|
|
23
|
+
*/
|
|
24
|
+
export interface SagaManager {
|
|
25
|
+
/** Get saga definition */
|
|
26
|
+
getDefinition(): SagaDefinition;
|
|
27
|
+
/** Execute the saga with given steps */
|
|
28
|
+
execute(steps: SagaStep[], stepExecutor: SagaStepExecutor, compensationExecutor: CompensationExecutor, correlationId?: string): Promise<SagaResult>;
|
|
29
|
+
/** Get current state */
|
|
30
|
+
getState(): SagaState | null;
|
|
31
|
+
/** Manually trigger compensation */
|
|
32
|
+
compensate(): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Creates a saga manager
|
|
36
|
+
*/
|
|
37
|
+
export declare function createSagaManager(definition: SagaDefinition): SagaManager;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a simple saga definition
|
|
40
|
+
*/
|
|
41
|
+
export declare function defineSaga(sagaId: string, compensations: CompensationAction[], options?: {
|
|
42
|
+
onFailure?: 'compensate' | 'pause' | 'continue';
|
|
43
|
+
compensationOrder?: 'reverse' | 'parallel';
|
|
44
|
+
workflowId?: string;
|
|
45
|
+
description?: string;
|
|
46
|
+
}): SagaDefinition;
|
|
47
|
+
/**
|
|
48
|
+
* Saga error
|
|
49
|
+
*/
|
|
50
|
+
export declare class SagaError extends Error {
|
|
51
|
+
readonly code: string;
|
|
52
|
+
constructor(code: string, message?: string);
|
|
53
|
+
static stepFailed(stepId: string, error: string): SagaError;
|
|
54
|
+
static compensationFailed(stepId: string, error: string): SagaError;
|
|
55
|
+
static sagaNotFound(sagaId: string): SagaError;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=saga-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saga-manager.d.ts","sourceRoot":"","sources":["../src/saga-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAKhB,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,CAC1C,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,aAAa,IAAI,cAAc,CAAC;IAEhC,wCAAwC;IACxC,OAAO,CACL,KAAK,EAAE,QAAQ,EAAE,EACjB,YAAY,EAAE,gBAAgB,EAC9B,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB,wBAAwB;IACxB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC;IAE7B,oCAAoC;IACpC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,WAAW,CAwMzE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,kBAAkB,EAAE,EACnC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,UAAU,CAAC;IAChD,iBAAiB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,cAAc,CAShB;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;aAEhB,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,MAAM;IAMlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAO3D,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAOnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;CAM/C"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Saga Manager Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements the saga pattern for distributed transaction compensation.
|
|
5
|
+
* Enables automatic rollback of completed steps on failure.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-SG-001: Compensations run in reverse order on failure
|
|
9
|
+
* - INV-SG-002: Required compensations must succeed
|
|
10
|
+
* - INV-SG-003: Saga state transitions are valid
|
|
11
|
+
*/
|
|
12
|
+
import { createInitialSagaState, isValidSagaTransition, SagaErrorCodes, } from '@defai.digital/contracts';
|
|
13
|
+
/**
|
|
14
|
+
* Creates a saga manager
|
|
15
|
+
*/
|
|
16
|
+
export function createSagaManager(definition) {
|
|
17
|
+
let state = null;
|
|
18
|
+
let compensationExec = null;
|
|
19
|
+
let context = {};
|
|
20
|
+
/**
|
|
21
|
+
* Update saga state with transition validation
|
|
22
|
+
* INV-SG-003: State transitions are valid
|
|
23
|
+
*/
|
|
24
|
+
function transitionTo(newStatus) {
|
|
25
|
+
if (!state)
|
|
26
|
+
return;
|
|
27
|
+
if (!isValidSagaTransition(state.status, newStatus)) {
|
|
28
|
+
throw new SagaError(SagaErrorCodes.INVALID_STATE_TRANSITION, `Invalid state transition from ${state.status} to ${newStatus}`);
|
|
29
|
+
}
|
|
30
|
+
state = { ...state, status: newStatus };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Execute compensations
|
|
34
|
+
* INV-SG-001: Execute in reverse order
|
|
35
|
+
*/
|
|
36
|
+
async function executeCompensations() {
|
|
37
|
+
if (!state || !compensationExec)
|
|
38
|
+
return;
|
|
39
|
+
transitionTo('compensating');
|
|
40
|
+
// Get compensations for completed steps in reverse order
|
|
41
|
+
const completedStepIds = [...state.completedSteps].reverse();
|
|
42
|
+
for (const stepId of completedStepIds) {
|
|
43
|
+
const compensation = definition.compensations.find((c) => c.stepId === stepId);
|
|
44
|
+
if (!compensation)
|
|
45
|
+
continue;
|
|
46
|
+
// Already compensated
|
|
47
|
+
if (state.compensatedSteps.includes(stepId))
|
|
48
|
+
continue;
|
|
49
|
+
let retries = 0;
|
|
50
|
+
let success = false;
|
|
51
|
+
while (retries <= compensation.retryCount && !success) {
|
|
52
|
+
try {
|
|
53
|
+
await compensationExec(compensation, context);
|
|
54
|
+
state.compensatedSteps.push(stepId);
|
|
55
|
+
success = true;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
retries++;
|
|
59
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
60
|
+
state.compensationErrors.push({
|
|
61
|
+
stepId,
|
|
62
|
+
error: errorMessage,
|
|
63
|
+
timestamp: new Date().toISOString(),
|
|
64
|
+
retryCount: retries,
|
|
65
|
+
});
|
|
66
|
+
// INV-SG-002: Required compensations must succeed
|
|
67
|
+
if (retries > compensation.retryCount) {
|
|
68
|
+
if (compensation.required) {
|
|
69
|
+
transitionTo('failed');
|
|
70
|
+
throw new SagaError(SagaErrorCodes.REQUIRED_COMPENSATION_FAILED, `Required compensation for step ${stepId} failed: ${errorMessage}`);
|
|
71
|
+
}
|
|
72
|
+
// Non-required compensation failed, continue
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
transitionTo('compensated');
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
getDefinition() {
|
|
82
|
+
return { ...definition };
|
|
83
|
+
},
|
|
84
|
+
async execute(steps, stepExecutor, compensationExecutor, correlationId) {
|
|
85
|
+
compensationExec = compensationExecutor;
|
|
86
|
+
context = {};
|
|
87
|
+
// Initialize saga state
|
|
88
|
+
state = createInitialSagaState(definition.sagaId, correlationId);
|
|
89
|
+
const startTime = Date.now();
|
|
90
|
+
const results = [];
|
|
91
|
+
try {
|
|
92
|
+
// Execute each step
|
|
93
|
+
for (const step of steps) {
|
|
94
|
+
try {
|
|
95
|
+
const result = await stepExecutor(step, context);
|
|
96
|
+
results.push(result);
|
|
97
|
+
// Record completed step
|
|
98
|
+
state.completedSteps.push(step.stepId);
|
|
99
|
+
// Store output in context for subsequent steps
|
|
100
|
+
context[step.stepId] = result;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
104
|
+
state.failedStep = step.stepId;
|
|
105
|
+
state.failureReason = errorMessage;
|
|
106
|
+
// Execute compensations based on strategy
|
|
107
|
+
if (definition.onFailure === 'compensate') {
|
|
108
|
+
await executeCompensations();
|
|
109
|
+
}
|
|
110
|
+
else if (definition.onFailure === 'pause') {
|
|
111
|
+
transitionTo('paused');
|
|
112
|
+
}
|
|
113
|
+
if (state.status !== 'compensated') {
|
|
114
|
+
transitionTo('failed');
|
|
115
|
+
}
|
|
116
|
+
state.completedAt = new Date().toISOString();
|
|
117
|
+
return {
|
|
118
|
+
success: false,
|
|
119
|
+
executionId: state.executionId,
|
|
120
|
+
error: errorMessage,
|
|
121
|
+
compensated: state.status === 'compensated',
|
|
122
|
+
durationMs: Date.now() - startTime,
|
|
123
|
+
finalStatus: state.status,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
transitionTo('completed');
|
|
128
|
+
state.completedAt = new Date().toISOString();
|
|
129
|
+
return {
|
|
130
|
+
success: true,
|
|
131
|
+
executionId: state.executionId,
|
|
132
|
+
results,
|
|
133
|
+
durationMs: Date.now() - startTime,
|
|
134
|
+
finalStatus: state.status,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
139
|
+
if (state) {
|
|
140
|
+
if (state.status !== 'failed') {
|
|
141
|
+
state.status = 'failed';
|
|
142
|
+
}
|
|
143
|
+
state.failureReason = errorMessage;
|
|
144
|
+
state.completedAt = new Date().toISOString();
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
success: false,
|
|
148
|
+
executionId: state?.executionId ?? '',
|
|
149
|
+
error: errorMessage,
|
|
150
|
+
durationMs: Date.now() - startTime,
|
|
151
|
+
finalStatus: 'failed',
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
getState() {
|
|
156
|
+
return state ? { ...state } : null;
|
|
157
|
+
},
|
|
158
|
+
async compensate() {
|
|
159
|
+
if (!state) {
|
|
160
|
+
throw new SagaError(SagaErrorCodes.SAGA_NOT_FOUND, 'No saga state to compensate');
|
|
161
|
+
}
|
|
162
|
+
if (state.status !== 'paused' && state.status !== 'running') {
|
|
163
|
+
throw new SagaError(SagaErrorCodes.INVALID_STATE_TRANSITION, `Cannot compensate saga in ${state.status} state`);
|
|
164
|
+
}
|
|
165
|
+
await executeCompensations();
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Creates a simple saga definition
|
|
171
|
+
*/
|
|
172
|
+
export function defineSaga(sagaId, compensations, options = {}) {
|
|
173
|
+
return {
|
|
174
|
+
sagaId,
|
|
175
|
+
compensations,
|
|
176
|
+
onFailure: options.onFailure ?? 'compensate',
|
|
177
|
+
compensationOrder: options.compensationOrder ?? 'reverse',
|
|
178
|
+
workflowId: options.workflowId,
|
|
179
|
+
description: options.description,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Saga error
|
|
184
|
+
*/
|
|
185
|
+
export class SagaError extends Error {
|
|
186
|
+
code;
|
|
187
|
+
constructor(code, message) {
|
|
188
|
+
super(message ?? `Saga error: ${code}`);
|
|
189
|
+
this.code = code;
|
|
190
|
+
this.name = 'SagaError';
|
|
191
|
+
}
|
|
192
|
+
static stepFailed(stepId, error) {
|
|
193
|
+
return new SagaError(SagaErrorCodes.STEP_FAILED, `Saga step ${stepId} failed: ${error}`);
|
|
194
|
+
}
|
|
195
|
+
static compensationFailed(stepId, error) {
|
|
196
|
+
return new SagaError(SagaErrorCodes.COMPENSATION_FAILED, `Compensation for ${stepId} failed: ${error}`);
|
|
197
|
+
}
|
|
198
|
+
static sagaNotFound(sagaId) {
|
|
199
|
+
return new SagaError(SagaErrorCodes.SAGA_NOT_FOUND, `Saga not found: ${sagaId}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=saga-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saga-manager.js","sourceRoot":"","sources":["../src/saga-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@defai.digital/cross-cutting",
|
|
3
|
+
"version": "13.0.3",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Cross-cutting concerns for AutomatosX - DLQ, Saga, Retention, Idempotency",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"author": "DEFAI Private Limited",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/defai-digital/automatosx.git",
|
|
11
|
+
"directory": "packages/core/cross-cutting"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/defai-digital/automatosx#readme",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/defai-digital/automatosx/issues"
|
|
16
|
+
},
|
|
17
|
+
"main": "./dist/index.js",
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"import": "./dist/index.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=20.0.0"
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@defai.digital/contracts": "13.0.3"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsc --build",
|
|
39
|
+
"clean": "rm -rf dist *.tsbuildinfo"
|
|
40
|
+
}
|
|
41
|
+
}
|